From e5da5d776d730414203e105fc1201e878fa1b753 Mon Sep 17 00:00:00 2001 From: Luca Date: Thu, 30 Jan 2020 13:53:45 +0100 Subject: [PATCH] =?UTF-8?q?Aggiunta=20possibilit=C3=A0=20di=20utilizzare?= =?UTF-8?q?=20campi=20"multiple"=20in=20impostazioni?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Aggiunte impostazioni: - Inizio orario lavorativo - Fine orario lavorativo - Giorni lavorativi --- modules/impostazioni/actions.php | 14 +++++++++++-- modules/interventi/src/Intervento.php | 8 ++++---- src/Settings.php | 29 ++++++++++++++++++++++++++- update/2_4_13.sql | 15 +++++++++++--- 4 files changed, 56 insertions(+), 10 deletions(-) diff --git a/modules/impostazioni/actions.php b/modules/impostazioni/actions.php index 0d032fa7b..0e1b6e4ec 100644 --- a/modules/impostazioni/actions.php +++ b/modules/impostazioni/actions.php @@ -6,11 +6,19 @@ switch (filter('op')) { case 'update': $is_all_valid = true; + + foreach (post('setting') as $id => $value) { + + $result = Settings::get($id); + + if (preg_match("/multiple\[(.+?)\]/", $result['tipo'], $m)) { + $value = implode(",", $value); + } + $is_valid = Settings::setValue($id, $value); - if (!$is_valid) { - $result = Settings::get($id); + if (!$is_valid) { // integer if ($result['tipo'] == 'integer') { @@ -26,6 +34,8 @@ switch (filter('op')) { '_NAME_' => '"'.$result['nome'].'"', ])); } + + } $is_all_valid &= $is_valid; diff --git a/modules/interventi/src/Intervento.php b/modules/interventi/src/Intervento.php index edd58527c..ca4f8b8c7 100644 --- a/modules/interventi/src/Intervento.php +++ b/modules/interventi/src/Intervento.php @@ -165,16 +165,16 @@ class Intervento extends Document */ public static function getNextCodice($data) { - $maschera = setting('Formato codice intervento'); + $maschera = setting('Formato codice attività'); //$ultimo = Generator::getPreviousFrom($maschera, 'in_interventi', 'codice'); - if (setting('Continua la numerazione')){ + if (setting('Ingnora il periodo temporale per il calcolo del codice attività')){ + $ultimo = Generator::getPreviousFrom($maschera, 'in_interventi', 'codice', []); + }else{ $ultimo = Generator::getPreviousFrom($maschera, 'in_interventi', 'codice', [ 'YEAR(data_richiesta) = '.prepare(date('Y', strtotime($data))), ]); - }else{ - $ultimo = Generator::getPreviousFrom($maschera, 'in_interventi', 'codice', []); } $numero = Generator::generate($maschera, $ultimo); diff --git a/src/Settings.php b/src/Settings.php index 1ff93f9d5..b037d8ecd 100644 --- a/src/Settings.php +++ b/src/Settings.php @@ -48,7 +48,7 @@ class Settings } /** - * Restituisce le informazioni relative a una singolo impostazione specificata. + * Restituisce le informazioni relative ad una singola impostazione specificata. * * @param string|int $setting * @@ -87,7 +87,9 @@ class Settings */ public static function setValue($setting, $value) { + $setting = self::get($setting); + // Trasformazioni // Boolean (checkbox) @@ -105,6 +107,15 @@ class Settings // verifico che il valore scelto sia nella lista enumerata nel db elseif (preg_match("/list\[(.+?)\]/", $setting->tipo, $m)) { $validator = v::in(explode(',', $m[1])); + + } + + // multiple + // verifico che il valore scelto sia nella lista enumerata nel db + elseif (preg_match("/multiple\[(.+?)\]/", $setting->tipo, $m[0][0])) { + + //$validator = v::in(explode(',', $m[0][0][1])); + } // Boolean (checkbox) @@ -150,6 +161,22 @@ class Settings {[ "type": "select", "label": "'.$setting->nome.'", "name": "setting['.$setting->id.']", "values": '.json_encode($list).', "value": "'.$setting->valore.'", "required": "'.intval($required).'", "help": "'.$setting->help.'" ]}'; } + // Lista multipla + if (preg_match("/multiple\[(.+?)\]/", $setting->tipo, $m)) { + $values = explode(',', $m[1]); + + $list = []; + foreach ($values as $value) { + $list[] = [ + 'id' => $value, + 'text' => $value, + ]; + } + + $result = ' + {[ "type": "select", "multiple": 1, "label": "'.$setting->nome.'", "name": "setting['.$setting->id.'][]", "values": '.json_encode($list).', "value": "'.$setting->valore.'", "required": "'.intval($required).'", "help": "'.$setting->help.'" ]}'; + } + // Lista da query elseif (preg_match('/^query=(.+?)$/', $setting->tipo, $m)) { $result = ' diff --git a/update/2_4_13.sql b/update/2_4_13.sql index 730ceb6a2..37af3aab8 100755 --- a/update/2_4_13.sql +++ b/update/2_4_13.sql @@ -146,10 +146,19 @@ ALTER TABLE `co_scadenziario` ADD `note` VARCHAR(255) DEFAULT NULL AFTER `data_p -- Aggiunta note in vista scadenzario -- INSERT INTO `zz_views` (`id`, `id_module`, `name`, `query`, `order`, `search`, `slow`, `format`, `search_inside`, `order_by`, `visible`, `summable`, `default`) VALUES (NULL, (SELECT `zz_modules`.`id` FROM `zz_modules` WHERE `zz_modules`.`name`='Scadenzario' ), 'Note', 'co_scadenziario.note', '5', '1', '0', '0', '', '', '0', '0', '0'); - - UPDATE `zz_settings` SET `nome` = 'Ora inizio sul calendario' WHERE `zz_settings`.`nome` = 'Inizio orario lavorativo'; UPDATE `zz_settings` SET `nome` = 'Ora fine sul calendario' WHERE `zz_settings`.`nome` = 'Fine orario lavorativo'; +UPDATE `zz_settings` SET `nome` = 'Formato codice attività' WHERE `zz_settings`.`nome` = 'Formato codice intervento'; -- Flag per decisere se continuare attraverso gli anni la numerazione delle attività sulla base dello stesso contatore -INSERT INTO `zz_settings` (`id`, `nome`, `valore`, `tipo`, `editable`, `sezione`, `help`) VALUES (NULL, 'Continua la numerazione', '0', 'boolean', '1', 'Interventi', 'Continua attraverso gli anni la numerazione delle attività sulla base dello stesso contatore.'); \ No newline at end of file +INSERT INTO `zz_settings` (`id`, `nome`, `valore`, `tipo`, `editable`, `sezione`, `help`) VALUES (NULL, 'Ingnora il periodo temporale per il calcolo del codice attività', '0', 'boolean', '1', 'Interventi', 'Continua attraverso gli anni la numerazione delle attività sulla base dello stesso contatore.'); + + +-- Inizio orario lavorativo +INSERT INTO `zz_settings` (`id`, `nome`, `valore`, `tipo`, `editable`, `sezione`, `help`) VALUES (NULL, 'Inizio orario lavorativo', '08:00:00', 'time', '1', 'Interventi', 'Inizio dell''orario lavorativo standard.'); + +-- Fine orario lavorativo +INSERT INTO `zz_settings` (`id`, `nome`, `valore`, `tipo`, `editable`, `sezione`, `help`) VALUES (NULL, 'Fine orario lavorativo', '18:00:00', 'time', '1', 'Interventi', 'Fine dell''orario lavorativo standard.'); + +-- Giorni lavorativi +INSERT INTO `zz_settings` (`id`, `nome`, `valore`, `tipo`, `editable`, `sezione`,`help`) VALUES (NULL, 'Giorni lavorativi', 'Lunedì,Martedì,Mercoledì,Giovedì,Venerdì', 'multiple[Lunedì,Martedì,Mercoledì,Giovedì,Venerdì,Sabato,Domenica]', '1', 'Interventi', ''); \ No newline at end of file