diff --git a/CHANGELOG.md b/CHANGELOG.md index 72644d237..63cb44605 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -76,6 +76,7 @@ Il formato utilizzato è basato sulle linee guida di [Keep a Changelog](http://k ## 2.6 (2024--) ### Aggiunto (Added) - Aggiunto il modulo Marchi +- Aggiunto il modulo Stati dei DDT ## 2.5.6 (2024-10-30) ### Modificato (Changed) diff --git a/modules/stati_ddt/actions.php b/modules/stati_ddt/actions.php new file mode 100644 index 000000000..ecd12472e --- /dev/null +++ b/modules/stati_ddt/actions.php @@ -0,0 +1,84 @@ +. + */ + +include_once __DIR__.'/../../core.php'; + +use Modules\DDT\Stato; + +switch (post('op')) { + case 'update': + $descrizione = post('descrizione'); + $stato_new = Stato::where('name', $descrizione)->first()->id; + + if (!empty($stato_new) && $stato_new != $id_record) { + flash()->error(tr('Questo nome è già stato utilizzato per un altro stato DDT.')); + } else { + if (Models\Locale::getDefault()->id == Models\Locale::getPredefined()->id) { + $stato->name = $descrizione; + } + $stato->icona = post('icona'); + $stato->colore = post('colore'); + $stato->completato = post('completato'); + $stato->is_fatturabile = post('is_fatturabile'); + $stato->setTranslation('title', $descrizione); + $stato->save(); + + flash()->info(tr('Informazioni salvate correttamente.')); + } + + break; + + case 'add': + $descrizione = post('descrizione'); + $icona = post('icona'); + $colore = post('colore'); + $completato = post('completato_add'); + $is_fatturabile = post('is_fatturabile_add'); + + $stato_new = Stato::where('name', $descrizione)->first(); + + if ($stato_new) { + flash()->error(tr('Questo nome è già stato utilizzato per un altro stato DDT.')); + } else { + $stato = Stato::build($icona, $colore, $completato, $is_fatturabile); + if (Models\Locale::getDefault()->id == Models\Locale::getPredefined()->id) { + $stato->name = $descrizione; + } + $id_record = $dbo->lastInsertedID(); + $stato->setTranslation('title', $descrizione); + $stato->save(); + flash()->info(tr('Nuovo stato DDT aggiunto.')); + } + + break; + + case 'delete': + // scelgo se settare come eliminato o cancellare direttamente la riga se non è stato utilizzato negli ordini + if (count($dbo->fetchArray('SELECT `id` FROM `dt_statiddt` WHERE `id`='.prepare($id_record))) > 0) { + $query = 'UPDATE `dt_statiddt` SET `deleted_at` = NOW() WHERE `can_delete` = 1 AND `id`='.prepare($id_record); + } else { + $query = 'DELETE FROM `dt_statiddt` WHERE `can_delete` = 1 AND `id`='.prepare($id_record); + } + + $dbo->query($query); + + flash()->info(tr('Stato DDT eliminato.')); + + break; +} diff --git a/modules/stati_ddt/add.php b/modules/stati_ddt/add.php new file mode 100644 index 000000000..c230477df --- /dev/null +++ b/modules/stati_ddt/add.php @@ -0,0 +1,68 @@ +. + */ + +include_once __DIR__.'/../../core.php'; + +?>
+ + \ No newline at end of file diff --git a/modules/stati_ddt/edit.php b/modules/stati_ddt/edit.php new file mode 100644 index 000000000..0100cbb1b --- /dev/null +++ b/modules/stati_ddt/edit.php @@ -0,0 +1,94 @@ +. + */ + +include_once __DIR__.'/../../core.php'; + +if ($record['can_delete']) { + $attr = ''; +} else { + $attr = 'readonly'; + echo '