mirror of
https://github.com/devcode-it/openstamanager.git
synced 2025-02-05 10:17:30 +01:00
Aggiunta importazione CSV articoli con prezzi specifici
This commit is contained in:
parent
8cf1fb1ea0
commit
9688312299
@ -26,6 +26,7 @@ use Modules\Articoli\Articolo;
|
||||
use Modules\Articoli\Categoria;
|
||||
use Modules\Iva\Aliquota;
|
||||
use Modules\Anagrafiche\Anagrafica;
|
||||
use Plugins\DettagliArticolo\DettaglioPrezzo;
|
||||
|
||||
/**
|
||||
* Struttura per la gestione delle operazioni di importazione (da CSV) degli Articoli.
|
||||
@ -34,6 +35,8 @@ use Modules\Anagrafiche\Anagrafica;
|
||||
*/
|
||||
class CSV extends CSVImporter
|
||||
{
|
||||
protected $id_articoli_processati;
|
||||
|
||||
public function getAvailableFields()
|
||||
{
|
||||
return [
|
||||
@ -113,11 +116,12 @@ class CSV extends CSVImporter
|
||||
],
|
||||
[
|
||||
'field' => 'id_fornitore',
|
||||
'label' => 'Fornitore',
|
||||
'label' => 'Fornitore predefinito',
|
||||
'names' => [
|
||||
'id_fornitore',
|
||||
'Id Fornitore',
|
||||
'Fornitore',
|
||||
'Fornitore predefinito',
|
||||
],
|
||||
],
|
||||
[
|
||||
@ -136,6 +140,30 @@ class CSV extends CSVImporter
|
||||
'field' => 'note',
|
||||
'label' => 'Note',
|
||||
],
|
||||
[
|
||||
'field' => 'anagrafica_listino',
|
||||
'label' => 'Anagrafica listino',
|
||||
],
|
||||
[
|
||||
'field' => 'qta_minima',
|
||||
'label' => 'Qta minima',
|
||||
],
|
||||
[
|
||||
'field' => 'qta_massima',
|
||||
'label' => 'Qta massima',
|
||||
],
|
||||
[
|
||||
'field' => 'prezzo_listino',
|
||||
'label' => 'Prezzo listino',
|
||||
],
|
||||
[
|
||||
'field' => 'sconto_listino',
|
||||
'label' => 'Sconto listino',
|
||||
],
|
||||
[
|
||||
'field' => 'dir',
|
||||
'label' => 'Cliente/Fornitore listino',
|
||||
],
|
||||
];
|
||||
}
|
||||
|
||||
@ -197,14 +225,59 @@ class CSV extends CSVImporter
|
||||
|
||||
// Esportazione della quantità indicata
|
||||
$qta_registrata = (float) ($record['qta']);
|
||||
$nome_sede = $record['$nome_sede'];
|
||||
$nome_sede = $record['nome_sede'];
|
||||
unset($record['qta']);
|
||||
unset($record['nome_sede']);
|
||||
|
||||
|
||||
$dettagli['anagrafica_listino'] = $record['anagrafica_listino'];
|
||||
$dettagli['qta_minima'] = $record['qta_minima'];
|
||||
$dettagli['qta_massima'] = $record['qta_massima'];
|
||||
$dettagli['prezzo_listino'] = $record['prezzo_listino'];
|
||||
$dettagli['sconto_listino'] = $record['sconto_listino'];
|
||||
$dettagli['dir'] = $record['dir'];
|
||||
unset($record['anagrafica_listino']);
|
||||
unset($record['qta_minima']);
|
||||
unset($record['qta_massima']);
|
||||
unset($record['prezzo_listino']);
|
||||
unset($record['sconto_listino']);
|
||||
unset($record['dir']);
|
||||
|
||||
// Salvataggio delle informazioni generali
|
||||
$articolo->fill($record);
|
||||
$articolo->save();
|
||||
|
||||
// Listini
|
||||
$anagrafica = Anagrafica::where('ragione_sociale', $dettagli['anagrafica_listino'])->first();
|
||||
|
||||
$dettagli['dir'] = strtolower($dettagli['dir']);
|
||||
if($dettagli['dir']=='fornitore'){
|
||||
$dettagli['dir']='uscita';
|
||||
} else if($dettagli['dir']=='cliente'){
|
||||
$dettagli['dir']='entrata';
|
||||
} else{
|
||||
$dettagli['dir']=null;
|
||||
}
|
||||
|
||||
if(!empty($anagrafica) && !empty($dettagli['dir'])){
|
||||
if(!in_array($articolo->id, $this->$id_articoli_processati)){
|
||||
$database->query('DELETE FROM mg_prezzi_articoli WHERE id_articolo='.prepare($articolo->id));
|
||||
}
|
||||
$this->$id_articoli_processati[] = $articolo->id;
|
||||
|
||||
$dettaglio_predefinito = DettaglioPrezzo::build($articolo, $anagrafica, $dettagli['dir']);
|
||||
$dettaglio_predefinito->sconto_percentuale = $dettagli['sconto_listino'];
|
||||
$dettaglio_predefinito->setPrezzoUnitario($dettagli['prezzo_listino']);
|
||||
|
||||
if($dettagli['qta_minima']!==null && !empty($dettagli['qta_massima'])){
|
||||
$dettaglio_predefinito->minimo = $dettagli['qta_minima'];
|
||||
$dettaglio_predefinito->massimo = $dettagli['qta_massima'];
|
||||
}
|
||||
|
||||
$dettaglio_predefinito->save();
|
||||
}
|
||||
|
||||
|
||||
// Movimentazione della quantità registrata
|
||||
$giacenze = $articolo->getGiacenze();
|
||||
$id_sede = 0;
|
||||
@ -221,13 +294,18 @@ class CSV extends CSVImporter
|
||||
'idsede_azienda' => $id_sede,
|
||||
'idsede_controparte' => 0,
|
||||
]);
|
||||
|
||||
|
||||
}
|
||||
|
||||
public static function getExample()
|
||||
{
|
||||
return [
|
||||
['Codice', 'Barcode', 'Descrizione', 'Fornitore', 'Quantità', 'Unità di misura', 'Prezzo acquisto', 'Prezzo vendita', 'Peso lordo (KG)', 'Volume (M3)', 'Categoria', 'Sottocategoria', 'Ubicazione', 'Note'],
|
||||
['00004', '719376861871', 'Articolo', 'Mario Rossi', '10', 'Kg', '5,25', '12,72', '10,2', '500', 'Categoria4', 'Sottocategoria2', 'Scaffale 1', 'Articolo di prova'],
|
||||
['Codice', 'Barcode', 'Descrizione', 'Fornitore predefinito', 'Quantità', 'Unità di misura', 'Prezzo acquisto', 'Prezzo vendita', 'Peso lordo (KG)', 'Volume (M3)', 'Categoria', 'Sottocategoria', 'Ubicazione', 'Note', 'Anagrafica listino', 'Qta minima', 'Qta massima', 'Prezzo listino', 'Sconto listino', 'Cliente/Fornitore listino'],
|
||||
['00004', '719376861871', 'Articolo', 'Mario Rossi', '10', 'Kg', '5.25', '12.72', '10.2', '500', 'Categoria4', 'Sottocategoria2', 'Scaffale 1', 'Articolo di prova', 'Mario Rossi', '', '', '10', '5', 'Fornitore'],
|
||||
['00004', '719376861871', 'Articolo', 'Mario Rossi', '10', 'Kg', '5.25', '12.72', '10.2', '500', 'Categoria4', 'Sottocategoria2', 'Scaffale 1', 'Articolo di prova', 'Mario Rossi', '1', '10', '9', '', 'Fornitore'],
|
||||
['00004', '719376861871', 'Articolo', 'Mario Rossi', '10', 'Kg', '5.25', '12.72', '10.2', '500', 'Categoria4', 'Sottocategoria2', 'Scaffale 1', 'Articolo di prova', 'Mario Rossi', '11', '20', '8', '5', 'Fornitore'],
|
||||
['00004', '719376861871', 'Articolo', 'Mario Rossi', '10', 'Kg', '5.25', '12.72', '10.2', '500', 'Categoria4', 'Sottocategoria2', 'Scaffale 1', 'Articolo di prova', 'Mario Verdi', '1', '10', '20', '10', 'Cliente']
|
||||
];
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user