mirror of
https://github.com/devcode-it/openstamanager.git
synced 2025-02-05 18:27:32 +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\Articoli\Categoria;
|
||||||
use Modules\Iva\Aliquota;
|
use Modules\Iva\Aliquota;
|
||||||
use Modules\Anagrafiche\Anagrafica;
|
use Modules\Anagrafiche\Anagrafica;
|
||||||
|
use Plugins\DettagliArticolo\DettaglioPrezzo;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Struttura per la gestione delle operazioni di importazione (da CSV) degli Articoli.
|
* Struttura per la gestione delle operazioni di importazione (da CSV) degli Articoli.
|
||||||
@ -34,6 +35,8 @@ use Modules\Anagrafiche\Anagrafica;
|
|||||||
*/
|
*/
|
||||||
class CSV extends CSVImporter
|
class CSV extends CSVImporter
|
||||||
{
|
{
|
||||||
|
protected $id_articoli_processati;
|
||||||
|
|
||||||
public function getAvailableFields()
|
public function getAvailableFields()
|
||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
@ -113,11 +116,12 @@ class CSV extends CSVImporter
|
|||||||
],
|
],
|
||||||
[
|
[
|
||||||
'field' => 'id_fornitore',
|
'field' => 'id_fornitore',
|
||||||
'label' => 'Fornitore',
|
'label' => 'Fornitore predefinito',
|
||||||
'names' => [
|
'names' => [
|
||||||
'id_fornitore',
|
'id_fornitore',
|
||||||
'Id Fornitore',
|
'Id Fornitore',
|
||||||
'Fornitore',
|
'Fornitore',
|
||||||
|
'Fornitore predefinito',
|
||||||
],
|
],
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
@ -136,6 +140,30 @@ class CSV extends CSVImporter
|
|||||||
'field' => 'note',
|
'field' => 'note',
|
||||||
'label' => '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
|
// Esportazione della quantità indicata
|
||||||
$qta_registrata = (float) ($record['qta']);
|
$qta_registrata = (float) ($record['qta']);
|
||||||
$nome_sede = $record['$nome_sede'];
|
$nome_sede = $record['nome_sede'];
|
||||||
unset($record['qta']);
|
unset($record['qta']);
|
||||||
unset($record['nome_sede']);
|
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
|
// Salvataggio delle informazioni generali
|
||||||
$articolo->fill($record);
|
$articolo->fill($record);
|
||||||
$articolo->save();
|
$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
|
// Movimentazione della quantità registrata
|
||||||
$giacenze = $articolo->getGiacenze();
|
$giacenze = $articolo->getGiacenze();
|
||||||
$id_sede = 0;
|
$id_sede = 0;
|
||||||
@ -221,13 +294,18 @@ class CSV extends CSVImporter
|
|||||||
'idsede_azienda' => $id_sede,
|
'idsede_azienda' => $id_sede,
|
||||||
'idsede_controparte' => 0,
|
'idsede_controparte' => 0,
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function getExample()
|
public static function getExample()
|
||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
['Codice', 'Barcode', 'Descrizione', 'Fornitore', 'Quantità', 'Unità di misura', 'Prezzo acquisto', 'Prezzo vendita', 'Peso lordo (KG)', 'Volume (M3)', 'Categoria', 'Sottocategoria', 'Ubicazione', 'Note'],
|
['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'],
|
['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