Aggiunta azione bulk da articoli per creare preventivo
This commit is contained in:
parent
dfd907cf09
commit
bb346c9318
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue