From e079017d7b68debc353c356bd1a4dbd585e02504 Mon Sep 17 00:00:00 2001 From: Luca Date: Fri, 21 Jun 2019 13:04:46 +0200 Subject: [PATCH] Aggiunto modulo per gestire i tipi di scadenze --- modules/scadenzario/add.php | 2 +- modules/tipi_scadenze/actions.php | 79 +++++++++++++++++++++++++++ modules/tipi_scadenze/add.php | 23 ++++++++ modules/tipi_scadenze/ajax/select.php | 18 ++++++ modules/tipi_scadenze/edit.php | 51 +++++++++++++++++ modules/tipi_scadenze/init.php | 7 +++ update/2_4_10.sql | 26 ++++++++- 7 files changed, 203 insertions(+), 3 deletions(-) create mode 100644 modules/tipi_scadenze/actions.php create mode 100644 modules/tipi_scadenze/add.php create mode 100644 modules/tipi_scadenze/ajax/select.php create mode 100644 modules/tipi_scadenze/edit.php create mode 100644 modules/tipi_scadenze/init.php diff --git a/modules/scadenzario/add.php b/modules/scadenzario/add.php index 1aaac5d5c..49ccdd442 100755 --- a/modules/scadenzario/add.php +++ b/modules/scadenzario/add.php @@ -11,7 +11,7 @@ include_once __DIR__.'/../../core.php';
- {[ "type": "select", "label": "", "name": "tipo", "required": 1, "values": "list=\"\":\"- Seleziona un'opzione -\", \"f24\":\"F24\", \"generico\":\"Scadenze generiche\"", "value": "" ]} + {[ "type": "select", "label": "", "name": "tipo", "required": 1, "ajax-source": "tipi_scadenze", "icon-after": "add|" ]}
diff --git a/modules/tipi_scadenze/actions.php b/modules/tipi_scadenze/actions.php new file mode 100644 index 000000000..dd4856ee0 --- /dev/null +++ b/modules/tipi_scadenze/actions.php @@ -0,0 +1,79 @@ +fetchNum('SELECT * FROM `co_tipiscadenze` WHERE `nome`='.prepare($nome).' AND `id`!='.prepare($id_record)) == 0) { + $predefined = post('predefined'); + if (!empty($predefined)) { + $dbo->query('UPDATE co_tipiscadenze SET predefined = 0'); + } + + $dbo->update('co_tipiscadenze', [ + 'nome' => $nome, + 'descrizione' => $descrizione, + 'predefined' => $predefined, + ], ['id' => $id_record]); + + flash()->info(tr('Salvataggio completato!')); + } else { + flash()->error(tr("E' già presente una tipologia di _TYPE_ con lo stesso nome", [ + '_TYPE_' => 'scadenza', + ])); + } + } else { + flash()->error(tr('Ci sono stati alcuni errori durante il salvataggio.')); + } + + break; + + case 'add': + $descrizione = filter('descrizione'); + $nome = filter('nome'); + + if (isset($descrizione)) { + if ($dbo->fetchNum('SELECT * FROM `co_tipiscadenze` WHERE `descrizione`='.prepare($descrizione)) == 0) { + $dbo->insert('co_tipiscadenze', [ + 'nome' => $nome, + 'descrizione' => $descrizione, + ]); + $id_record = $dbo->lastInsertedID(); + + if (isAjaxRequest()) { + echo json_encode(['id' => $nome, 'text' => $descrizione]); + } + + flash()->info(tr('Aggiunta nuova tipologia di _TYPE_', [ + '_TYPE_' => 'scadenza', + ])); + } else { + flash()->error(tr("E' già presente una tipologia di _TYPE_ con lo stesso nome", [ + '_TYPE_' => 'scadenza', + ])); + } + } else { + flash()->error(tr('Ci sono stati alcuni errori durante il salvataggio')); + } + + break; + + case 'delete': + + $documenti = $dbo->fetchNum('SELECT id FROM co_scadenzario WHERE tipo='.prepare($id_record)); + + if (isset($id_record) && empty($documenti)) { + $dbo->query('DELETE FROM `co_tipiscadenze` WHERE `id`='.prepare($id_record)); + flash()->info(tr('Tipologia di _TYPE_ eliminata con successo.', [ + '_TYPE_' => 'scadenza', + ])); + } else { + flash()->error(tr('Sono presenti delle scadenze collegate a questo tipo di scadenza')); + } + + break; +} diff --git a/modules/tipi_scadenze/add.php b/modules/tipi_scadenze/add.php new file mode 100644 index 000000000..076009596 --- /dev/null +++ b/modules/tipi_scadenze/add.php @@ -0,0 +1,23 @@ +
+ + + +
+
+ {[ "type": "text", "label": "", "name": "nome", "required": 1 ]} +
+
+ {[ "type": "text", "label": "", "name": "descrizione", "required": 1 ]} +
+
+ + +
+
+ +
+
+
\ No newline at end of file diff --git a/modules/tipi_scadenze/ajax/select.php b/modules/tipi_scadenze/ajax/select.php new file mode 100644 index 000000000..d70dfdd13 --- /dev/null +++ b/modules/tipi_scadenze/ajax/select.php @@ -0,0 +1,18 @@ +
+ + + + +
+
+

+
+ +
+
+ +
+ {[ "type": "text", "label": "", "name": "nome", "required": 1, "value": "$nome$" ]} +
+ +
+ {[ "type": "text", "label": "", "name": "descrizione", "required": 1, "value": "$descrizione$" ]} +
+ +
+ {[ "type": "checkbox", "label": "", "name": "predefined", "value": "$predefined$", "help":"." ]} +
+
+
+
+ +
+ +fetchNum('SELECT id FROM co_scadenziario WHERE tipo = '.prepare($record['nome'])); + +if (!empty($scadenze)) { + echo ' +
+ '.tr('Ci sono _NUM_ scadenze collegate', [ + '_NUM_' => count($scadenze), + ]).'. +
'; +} +?> + + + + diff --git a/modules/tipi_scadenze/init.php b/modules/tipi_scadenze/init.php new file mode 100644 index 000000000..fdf322df6 --- /dev/null +++ b/modules/tipi_scadenze/init.php @@ -0,0 +1,7 @@ +fetchOne('SELECT * FROM `co_tipiscadenze` WHERE id='.prepare($id_record)); +} diff --git a/update/2_4_10.sql b/update/2_4_10.sql index 4e6635222..e94ae6ccc 100644 --- a/update/2_4_10.sql +++ b/update/2_4_10.sql @@ -102,7 +102,7 @@ UPDATE `zz_views` SET `query` = '`email`.`name`' WHERE `zz_views`.`name` = 'icon CREATE TABLE `zz_user_sedi` ( `id_user` int(11) NOT NULL, `idsede` int(11) NOT NULL -); +) ENGINE=InnoDB; -- Sistemo colonna Nome, Descrizione - Modelli prima nota UPDATE `zz_views` SET `query` = 'CONCAT_WS(co_movimenti_modelli.nome, co_movimenti_modelli.descrizione)' WHERE `zz_views`.`name` = 'Nome' AND `id_module` = (SELECT `id` FROM `zz_modules` WHERE `name` = 'Modelli prima nota'); @@ -110,4 +110,26 @@ UPDATE `zz_views` SET `query` = 'CONCAT_WS(co_movimenti_modelli.nome, co_movimen UPDATE `co_movimenti_modelli` SET `nome` = `descrizione` WHERE `nome` = ''; -- Rimuovo le interruzioni di riga per descrizioni vuote -UPDATE `in_interventi` SET `descrizione` = REPLACE(`descrizione`, '\n', '') where `descrizione` LIKE '%\n'; \ No newline at end of file +--UPDATE `in_interventi` SET `descrizione` = REPLACE(`descrizione`, '\n', '') where `descrizione` LIKE '%\n'; + +-- Aggiunto tabella co_tipiscadenze +CREATE TABLE `co_tipiscadenze` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `nome` varchar(255) NOT NULL, + `descrizione` varchar(255) NOT NULL, + `predefined` tinyint(1) NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB; + +INSERT INTO `co_tipiscadenze` (`id`, `nome`, `descrizione`, `predefined`) VALUES +(1, 'f24', 'F24', 1), +(2, 'generico', 'Scadenze generiche', 1); + +-- Aggiunto modulo per gestire i tipi di scadenze +INSERT INTO `zz_modules` (`id`, `name`, `title`, `directory`, `options`, `options2`, `icon`, `version`, `compatibility`, `order`, `parent`, `default`, `enabled`) VALUES (NULL, 'Tipi scadenze', 'Tipi scadenze', 'tipi_scadenze', 'SELECT |select| FROM `co_tipiscadenze` WHERE 1=1 HAVING 2=2', '', 'fa fa-calendar', '2.4.10', '2.4.10', '1', (SELECT `id` FROM `zz_modules` t WHERE t.`name` = 'Tabelle'), '1', '1'; + +INSERT INTO `zz_views` (`id_module`, `name`, `query`, `order`, `search`, `slow`, `default`) VALUES +((SELECT `id` FROM `zz_modules` WHERE `name` = 'Tipi scadenze'), 'Predefinita', 'predefined', 4, 1, 0, 0), +((SELECT `id` FROM `zz_modules` WHERE `name` = 'Tipi scadenze'), 'Descrizione', 'descrizione', 3, 1, 0, 0), +((SELECT `id` FROM `zz_modules` WHERE `name` = 'Tipi scadenze'), 'Nome', 'nome', 2, 1, 0, 0), +((SELECT `id` FROM `zz_modules` WHERE `name` = 'Tipi scadenze'), 'id', 'id', 1, 1, 0, 0); \ No newline at end of file