Aggiunta possibilità di utilizzare campi "multiple" in impostazioni

Aggiunte impostazioni:
- Inizio orario lavorativo
- Fine orario lavorativo
- Giorni lavorativi
This commit is contained in:
Luca 2020-01-30 13:53:45 +01:00
parent f84b2dd9be
commit e5da5d776d
4 changed files with 56 additions and 10 deletions

View File

@ -6,11 +6,19 @@ switch (filter('op')) {
case 'update': case 'update':
$is_all_valid = true; $is_all_valid = true;
foreach (post('setting') as $id => $value) { 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); $is_valid = Settings::setValue($id, $value);
if (!$is_valid) { if (!$is_valid) {
$result = Settings::get($id);
// integer // integer
if ($result['tipo'] == 'integer') { if ($result['tipo'] == 'integer') {
@ -26,6 +34,8 @@ switch (filter('op')) {
'_NAME_' => '"'.$result['nome'].'"', '_NAME_' => '"'.$result['nome'].'"',
])); ]));
} }
} }
$is_all_valid &= $is_valid; $is_all_valid &= $is_valid;

View File

@ -165,16 +165,16 @@ class Intervento extends Document
*/ */
public static function getNextCodice($data) public static function getNextCodice($data)
{ {
$maschera = setting('Formato codice intervento'); $maschera = setting('Formato codice attività');
//$ultimo = Generator::getPreviousFrom($maschera, 'in_interventi', 'codice'); //$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', [ $ultimo = Generator::getPreviousFrom($maschera, 'in_interventi', 'codice', [
'YEAR(data_richiesta) = '.prepare(date('Y', strtotime($data))), 'YEAR(data_richiesta) = '.prepare(date('Y', strtotime($data))),
]); ]);
}else{
$ultimo = Generator::getPreviousFrom($maschera, 'in_interventi', 'codice', []);
} }
$numero = Generator::generate($maschera, $ultimo); $numero = Generator::generate($maschera, $ultimo);

View File

@ -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 * @param string|int $setting
* *
@ -87,7 +87,9 @@ class Settings
*/ */
public static function setValue($setting, $value) public static function setValue($setting, $value)
{ {
$setting = self::get($setting); $setting = self::get($setting);
// Trasformazioni // Trasformazioni
// Boolean (checkbox) // Boolean (checkbox)
@ -105,6 +107,15 @@ class Settings
// verifico che il valore scelto sia nella lista enumerata nel db // verifico che il valore scelto sia nella lista enumerata nel db
elseif (preg_match("/list\[(.+?)\]/", $setting->tipo, $m)) { elseif (preg_match("/list\[(.+?)\]/", $setting->tipo, $m)) {
$validator = v::in(explode(',', $m[1])); $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) // 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.'" ]}'; {[ "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 // Lista da query
elseif (preg_match('/^query=(.+?)$/', $setting->tipo, $m)) { elseif (preg_match('/^query=(.+?)$/', $setting->tipo, $m)) {
$result = ' $result = '

View File

@ -146,10 +146,19 @@ ALTER TABLE `co_scadenziario` ADD `note` VARCHAR(255) DEFAULT NULL AFTER `data_p
-- Aggiunta note in vista scadenzario -- -- 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'); 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 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` = '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 -- 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.'); 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', '');