Miglioramenti import articoli CSV

This commit is contained in:
MatteoPistorello 2022-09-09 16:06:35 +02:00
parent 2484ac2d6f
commit 56082c7920
1 changed files with 25 additions and 21 deletions

View File

@ -231,10 +231,12 @@ class CSV extends CSVImporter
continue; continue;
} }
$database->query('DELETE FROM mg_prezzi_articoli WHERE id_articolo = '.prepare($articolo->id).' AND id_anagrafica = '.prepare($anagrafica->id)); if (!empty($record['prezzo_listino'])) {
$database->query('DELETE FROM mg_prezzi_articoli WHERE id_articolo = '.prepare($articolo->id).' AND id_anagrafica = '.prepare($anagrafica->id));
}
if (!empty($dettagli['codice_fornitore']) && !empty($dettagli['descrizione_fornitore'])) { if (!empty($record['codice_fornitore']) && !empty($record['descrizione_fornitore'])) {
$database->query('DELETE FROM mg_fornitore_articolo WHERE id_articolo = '.prepare($articolo->id).' AND id_anagrafica = '.prepare($anagrafica->id)); $database->query('DELETE FROM mg_fornitore_articolo WHERE id_articolo = '.prepare($articolo->id).' AND id_fornitore = '.prepare($anagrafica->id));
} }
} }
} }
@ -285,12 +287,6 @@ class CSV extends CSVImporter
} }
} }
// Individuazione dell'IVA di vendita tramite il relativo Codice
$aliquota = null;
if (!empty($record['codice_iva_vendita'])) {
$aliquota = Aliquota::where('codice', $record['codice_iva_vendita'])->first();
}
// Individuazione articolo e generazione // Individuazione articolo e generazione
$articolo = null; $articolo = null;
// Ricerca sulla base della chiave primaria se presente // Ricerca sulla base della chiave primaria se presente
@ -303,7 +299,13 @@ class CSV extends CSVImporter
$articolo->restore(); $articolo->restore();
} }
$articolo->idiva_vendita = $aliquota->id; // Individuazione dell'IVA di vendita tramite il relativo Codice
$aliquota = null;
if (!empty($record['codice_iva_vendita'])) {
$aliquota = Aliquota::where('codice', $record['codice_iva_vendita'])->first();
$articolo->idiva_vendita = $aliquota->id;
}
$articolo->attivo = 1; $articolo->attivo = 1;
// Esportazione della quantità indicata // Esportazione della quantità indicata
@ -387,12 +389,13 @@ class CSV extends CSVImporter
]); ]);
// Prezzo di vendita // Prezzo di vendita
$articolo->setPrezzoVendita($record['prezzo_vendita'], $aliquota->id ? $aliquota->id : setting('Iva predefinita')); if (!empty($record['prezzo_vendita'])) {
$articolo->setPrezzoVendita($record['prezzo_vendita'], $aliquota ? $aliquota->id : setting('Iva predefinita'));
}
$articolo->save(); $articolo->save();
// Movimentazione della quantità registrata // Movimentazione della quantità registrata
$giacenze = $articolo->getGiacenze();
$anagrafica_azienda = Anagrafica::find(setting('Azienda predefinita')); $anagrafica_azienda = Anagrafica::find(setting('Azienda predefinita'));
$id_sede = 0; $id_sede = 0;
if (!empty($nome_sede)) { if (!empty($nome_sede)) {
@ -403,6 +406,7 @@ class CSV extends CSVImporter
} }
if( isset($record['qta']) ) { if( isset($record['qta']) ) {
$giacenze = $articolo->getGiacenze();
$qta_movimento = $qta_registrata - $giacenze[$id_sede][0]; $qta_movimento = $qta_registrata - $giacenze[$id_sede][0];
$articolo->movimenta($qta_movimento, tr('Movimento da importazione'), new Carbon(), false, [ $articolo->movimenta($qta_movimento, tr('Movimento da importazione'), new Carbon(), false, [
@ -442,7 +446,7 @@ class CSV extends CSVImporter
} }
// Aggiungo Listino // Aggiungo Listino
if (!empty($anagrafica) && !empty($dettagli['dir'])) { if (!empty($anagrafica) && !empty($dettagli['dir']) && $dettagli['prezzo_listino']) {
$dettaglio_predefinito = DettaglioPrezzo::build($articolo, $anagrafica, $dettagli['dir']); $dettaglio_predefinito = DettaglioPrezzo::build($articolo, $anagrafica, $dettagli['dir']);
$dettaglio_predefinito->sconto_percentuale = $dettagli['sconto_listino']; $dettaglio_predefinito->sconto_percentuale = $dettagli['sconto_listino'];
$dettaglio_predefinito->setPrezzoUnitario($dettagli['prezzo_listino']); $dettaglio_predefinito->setPrezzoUnitario($dettagli['prezzo_listino']);
@ -453,15 +457,15 @@ class CSV extends CSVImporter
} }
$dettaglio_predefinito->save(); $dettaglio_predefinito->save();
}
// Aggiungo dettagli fornitore // Aggiungo dettagli fornitore
if ($dettagli['dir'] == 'uscita' && !empty($dettagli['codice_fornitore']) && !empty($dettagli['descrizione_fornitore'])) { if (!empty($anagrafica) && $dettagli['dir'] == 'uscita' && !empty($dettagli['codice_fornitore']) && !empty($dettagli['descrizione_fornitore'])) {
$fornitore = DettaglioFornitore::build($anagrafica, $articolo); $fornitore = DettaglioFornitore::build($anagrafica, $articolo);
$fornitore->codice_fornitore = $dettagli['codice_fornitore']; $fornitore->codice_fornitore = $dettagli['codice_fornitore'];
$fornitore->barcode_fornitore = $dettagli['barcode_fornitore']; $fornitore->barcode_fornitore = $dettagli['barcode_fornitore'];
$fornitore->descrizione = $dettagli['descrizione_fornitore']; $fornitore->descrizione = $dettagli['descrizione_fornitore'];
$fornitore->save(); $fornitore->save();
}
} }
// Imposto fornitore e prezzo predefinito // Imposto fornitore e prezzo predefinito