openstamanager/modules/listini_cliente/actions.php

98 lines
3.5 KiB
PHP

<?php
/*
* OpenSTAManager: il software gestionale open source per l'assistenza tecnica e la fatturazione
* Copyright (C) DevCode s.r.l.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
include_once __DIR__.'/../../core.php';
use Modules\Articoli\Articolo AS ArticoloOriginale;
use Modules\ListiniCliente\Articolo;
use Modules\ListiniCliente\Listino;
switch (filter('op')) {
case 'update':
$listino->nome = post('nome');
$listino->data_attivazione = post('data_attivazione') ?: null;
$listino->data_scadenza_predefinita = post('data_scadenza_predefinita') ?: null;
$listino->is_sempre_visibile = post('is_sempre_visibile');
$listino->attivo = post('attivo');
$listino->note = post('note');
$listino->save();
flash()->info(tr('Listino modificato correttamente!'));
break;
case 'add':
$listino = Listino::build(post('nome'));
$listino->data_attivazione = post('data_attivazione') ?: null;
$listino->data_scadenza_predefinita = post('data_scadenza_predefinita') ?: null;
$listino->is_sempre_visibile = post('is_sempre_visibile');
$listino->attivo = post('attivo');
$listino->note = post('note');
$listino->save();
$id_record = $listino->id;
flash()->info(tr('Nuovo listino aggiunto!'));
break;
case 'manage_articolo':
if (empty(post('id'))) {
$articolo_originale = ArticoloOriginale::find(post('id_articolo'));
$articolo_listino = Articolo::build($articolo_originale, $id_record);
$articolo_listino->data_scadenza = post('data_scadenza') ?: null;
$articolo_listino->setPrezzoUnitario(post('prezzo_unitario'));
$articolo_listino->sconto_percentuale = post('sconto_percentuale');
$articolo_listino->save();
} else {
$articolo_listino = Articolo::find(post('id'));
$articolo_listino->data_scadenza = post('data_scadenza') ?: null;
$articolo_listino->setPrezzoUnitario(post('prezzo_unitario'));
$articolo_listino->sconto_percentuale = post('sconto_percentuale');
$articolo_listino->save();
}
flash()->info(tr('Nuovo articolo al listino aggiunto!'));
break;
case 'delete_articolo':
$id_righe = (array)post('id');
foreach ($id_righe as $id_riga) {
$articolo_listino = Articolo::find($id_riga);
$articolo_listino->delete();
}
flash()->info(tr('Articoli del listino eliminati correttamente!'));
break;
case 'delete':
if (isset($id_record)) {
$listino->delete();
$dbo->query('UPDATE `an_anagrafiche` SET id_listino=0 WHERE id_listino='.prepare($id_record));
$dbo->query('DELETE FROM `mg_listini_articoli` WHERE id_listino='.prepare($id_record));
flash()->info(tr('Listino eliminato correttamente!'));
}
break;
}