Aggiunta azione bulk da articoli per creare preventivo

This commit is contained in:
MatteoPistorello 2021-01-25 16:44:56 +01:00
parent dfd907cf09
commit bb346c9318
1 changed files with 60 additions and 0 deletions

View File

@ -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' => '<span><i class="fa fa-plus"></i> '.tr('Crea preventivo').'</span>',
'data' => [
'title' => tr('Creare preventivo?'),
'msg' => tr('Ogni articolo selezionato, verrà aggiunto al preventivo').'
<br><br>{[ "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;