From 9996dc6df86314b967014870547faf6e242ac0e4 Mon Sep 17 00:00:00 2001 From: MatteoPistorello Date: Thu, 28 Dec 2023 17:14:26 +0100 Subject: [PATCH] Aggiunte azioni di gruppo per associare i listini ad anagrafiche e articoli --- modules/anagrafiche/bulk.php | 23 +++++++++++++++++++++++ modules/articoli/bulk.php | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 57 insertions(+) diff --git a/modules/anagrafiche/bulk.php b/modules/anagrafiche/bulk.php index 59fadc5dd..d39f2b85f 100755 --- a/modules/anagrafiche/bulk.php +++ b/modules/anagrafiche/bulk.php @@ -119,6 +119,20 @@ switch (post('op')) { $anagrafica->save(); } break; + + case 'aggiorna-listino': + $id_listino = post('id_listino') ?: 0; + foreach ($id_records as $id) { + $anagrafica = Anagrafica::find($id); + if ($anagrafica->isTipo('Cliente')) { + $anagrafica->id_listino = $id_listino; + $anagrafica->save(); + } + } + + flash()->info(tr('Listino aggiornato correttamente!')); + + break; } $operations = []; @@ -173,4 +187,13 @@ $operations['cambia-relazione'] = [ ], ]; +$operations['aggiorna-listino'] = [ + 'text' => ' '.tr('Aggiorna listino cliente').'', + 'data' => [ + 'msg' => tr('Vuoi davvero aggiornare il listino cliente delle anagrafiche selezionate?').'

{[ "type": "select", "label": "'.tr('Listino cliente').'", "name": "id_listino", "required": 0, "ajax-source": "listini", "placeholder": "'.tr('Listino scollegato').'" ]}', + 'button' => tr('Procedi'), + 'class' => 'btn btn-lg btn-warning', + ], +]; + return $operations; diff --git a/modules/articoli/bulk.php b/modules/articoli/bulk.php index acc7ebed8..4f5c1fe39 100755 --- a/modules/articoli/bulk.php +++ b/modules/articoli/bulk.php @@ -21,6 +21,7 @@ use Modules\Anagrafiche\Anagrafica; use Modules\Articoli\Articolo; use Modules\Articoli\Export\CSV; use Modules\Iva\Aliquota; +use Modules\ListiniCliente\Articolo as ArticoloListino; use Modules\Preventivi\Components\Articolo as ArticoloPreventivo; use Modules\Preventivi\Preventivo; use Modules\TipiIntervento\Tipo as TipoSessione; @@ -394,6 +395,28 @@ switch (post('op')) { '_NUM_' => $n_art, ])); + break; + + case 'add-listino': + $id_listino = post('id_listino'); + $prezzi_ivati = setting('Utilizza prezzi di vendita comprensivi di IVA'); + + foreach ($id_records as $id) { + $articolo = Articolo::find($id); + $prezzo_unitario = $prezzi_ivati ? $articolo->prezzo_vendita_ivato : $articolo->prezzo_vendita; + $articolo_listino = ArticoloListino::where('id_articolo', $id)->where('id_listino', $id_listino)->first(); + + if (!$articolo_listino) { + $articolo_listino = ArticoloListino::build($articolo, $id_listino); + } + $articolo_listino->data_scadenza = post('data_scadenza') ?: null; + $articolo_listino->setPrezzoUnitario($prezzo_unitario); + $articolo_listino->sconto_percentuale = post('sconto_percentuale'); + $articolo_listino->save(); + } + + flash()->info(tr('Listino aggiornato correttamente!')); + break; } @@ -574,4 +597,15 @@ $operations['set-provvigione'] = [ ], ]; +$operations['add-listino'] = [ + 'text' => ' '.tr('Aggiungi a listino cliente').'', + 'data' => [ + 'msg' => tr('Vuoi davvero aggiungere gli articoli al listino cliente?').'

{[ "type": "select", "label": "'.tr('Listino cliente').'", "name": "id_listino", "required": 1, "ajax-source": "listini" ]} +
{[ "type": "number", "label": "'.tr('Sconto percentuale').'", "name": "sconto_percentuale", "required": 1, "icon-after": "%" ]} +
{[ "type": "date", "label": "'.tr('Data scadenza').'", "name": "data_scadenza", "placeholder": "'.tr('Utilizza data scadenza predefinita listino').'" ]}', + 'button' => tr('Procedi'), + 'class' => 'btn btn-lg btn-warning', + ], +]; + return $operations;