Aggiunte azioni di gruppo per associare i listini ad anagrafiche e articoli

This commit is contained in:
MatteoPistorello 2023-12-28 17:14:26 +01:00
parent 9ec77ca597
commit 9996dc6df8
2 changed files with 57 additions and 0 deletions

View File

@ -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' => '<span><i class="fa fa-refresh"></i> '.tr('Aggiorna listino cliente').'</span>',
'data' => [
'msg' => tr('Vuoi davvero aggiornare il listino cliente delle anagrafiche selezionate?').'<br><br>{[ "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;

View File

@ -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' => '<span><i class="fa fa-plus"></i> '.tr('Aggiungi a listino cliente').'</span>',
'data' => [
'msg' => tr('Vuoi davvero aggiungere gli articoli al listino cliente?').'<br><br>{[ "type": "select", "label": "'.tr('Listino cliente').'", "name": "id_listino", "required": 1, "ajax-source": "listini" ]}
<br>{[ "type": "number", "label": "'.tr('Sconto percentuale').'", "name": "sconto_percentuale", "required": 1, "icon-after": "%" ]}
<br>{[ "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;