. */ include_once __DIR__.'/../../core.php'; use Modules\Preventivi\Stato; switch (post('op')) { case 'update': $descrizione = post('descrizione'); $stato_new = (new Stato())->getByField('name', $descrizione); if (!empty($stato_new) && $stato_new != $id_record) { flash()->error(tr('Questo nome è già stato utilizzato per un altro stato dei preventivi.')); } else { $stato->icona = post('icona'); $stato->colore = post('colore'); $stato->is_completato = post('is_completato'); $stato->is_fatturabile = post('is_fatturabile'); $stato->is_pianificabile = post('is_pianificabile'); $stato->is_revisionabile = post('is_revisionabile'); $stato->setTranslation('name', $descrizione); $stato->save(); } break; case 'add': $descrizione = post('descrizione'); $icona = post('icona'); $colore = post('colore'); $is_completato = post('is_completato'); $is_fatturabile = post('is_fatturabile'); $is_pianificabile = post('is_pianificabile'); $stato_new = Stato::find((new Stato())->getByField('name', $descrizione)); if ($stato_new) { flash()->error(tr('Questo nome è già stato utilizzato per un altro stato dei preventivi.')); } else { $stato = Stato::build($icona, $colore, $is_completato, $is_fatturabile, $is_pianificabile); $id_record = $dbo->lastInsertedID(); $stato->setTranslation('name', $descrizione); $stato->save(); flash()->info(tr('Nuovo stato preventivi aggiunto.')); } break; case 'delete': // scelgo se settare come eliminato o cancellare direttamente la riga se non è stato utilizzato nei preventivi if (count($dbo->fetchArray('SELECT `id` FROM `co_preventivi` WHERE `idstato`='.prepare($id_record))) > 0) { $query = 'UPDATE `co_statipreventivi` SET `deleted_at` = NOW() WHERE `can_delete` = 1 AND `id`='.prepare($id_record); } else { $query = 'DELETE FROM `co_statipreventivi` WHERE `can_delete` = 1 AND `id`='.prepare($id_record); } $dbo->query($query); flash()->info(tr('Stato preventivo eliminato.')); break; }