From bb346c9318577547ef5eae8b6d064b19e15f3470 Mon Sep 17 00:00:00 2001 From: MatteoPistorello Date: Mon, 25 Jan 2021 16:44:56 +0100 Subject: [PATCH] Aggiunta azione bulk da articoli per creare preventivo --- modules/articoli/bulk.php | 60 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) diff --git a/modules/articoli/bulk.php b/modules/articoli/bulk.php index 38f951eb8..ea0cb05c2 100644 --- a/modules/articoli/bulk.php +++ b/modules/articoli/bulk.php @@ -19,6 +19,11 @@ include_once __DIR__.'/../../core.php'; use Modules\Articoli\Articolo; +use Modules\Preventivi\Preventivo; +use Modules\Anagrafiche\Anagrafica; +use Modules\Preventivi\Components\Articolo as ArticoloPreventivo; +use Modules\TipiIntervento\Tipo as TipoSessione; +use Modules; use Prints; switch (post('op')) { @@ -86,6 +91,47 @@ switch (post('op')) { flash()->warning(tr('Nessun articolo modificato!')); } + break; + + case 'crea-preventivo': + $nome = post('nome'); + $data = post('data'); + $id_tipo = post('id_tipo'); + $id_cliente = post('id_cliente'); + $anagrafica = Anagrafica::find($id_cliente); + $tipo = TipoSessione::find($id_tipo); + $n_articoli = 0; + + $preventivo = Preventivo::build($anagrafica, $tipo, $nome, $data, 0); + $id_preventivo = $preventivo->id; + + foreach ($id_records as $id) { + $originale = Articolo::find($id); + $articolo = ArticoloPreventivo::build($preventivo, $originale); + $articolo->qta = 1; + $articolo->descrizione = $originale->descrizione; + $articolo->um = $originale->um ?: null; + $articolo->costo_unitario = $originale->prezzo_acquisto; + $articolo->prezzo_unitario = $originale->prezzo_vendita; + $articolo->idiva = $originale->idiva_vendita; + $articolo->setPrezzoUnitario($originale->prezzo_vendita, $originale->idiva_vendita); + $articolo->save(); + + ++$n_articoli; + } + + if ($n_articoli > 0) { + flash()->info(tr('_NUM_ articoli sono stati aggiunti al preventivo', [ + '_NUM_' => $n_articoli, + ])); + } else { + flash()->warning(tr('Nessun articolo modificato!')); + } + + $database->commitTransaction(); + redirect( base_path().'/editor.php?id_module='.Modules::get('Preventivi')['id'].'&id_record='.$id_preventivo); + exit(); + break; } @@ -135,4 +181,18 @@ $operations['change-qta'] = [ ], ]; +$operations['crea-preventivo'] = [ + 'text' => ' '.tr('Crea preventivo').'', + 'data' => [ + 'title' => tr('Creare preventivo?'), + 'msg' => tr('Ogni articolo selezionato, verrà aggiunto al preventivo').' +

{[ "type": "text", "label": "'.tr('Nome preventivo').'", "name": "nome", "required": 1 ]} + {[ "type": "select", "label": "'.tr('Cliente').'", "name": "id_cliente", "ajax-source": "clienti", "required": 1 ]} + {[ "type": "select", "label": "'.tr('Tipo di attività').'", "name": "id_tipo", "values": "query=SELECT idtipointervento AS id, descrizione FROM in_tipiintervento", "required": 1 ]} + {[ "type": "date", "label": "'.tr('Data').'", "name": "data", "required": 1, "value": "-now-" ]}', + 'button' => tr('Procedi'), + 'class' => 'btn btn-lg btn-warning', + ], +]; + return $operations;