Skip to content

Commit 76ea493

Browse files
feat: gestione utenti in tipi attività
1 parent 94e136f commit 76ea493

4 files changed

Lines changed: 45 additions & 5 deletions

File tree

modules/interventi/ajax/select.php

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,19 @@
6868
}
6969
}
7070

71+
// Controllo se il tipo intervento è compatibile con il gruppo utente
72+
$gruppi_tipo_intervento = $dbo->fetchArray('SELECT `id_gruppo`
73+
FROM `in_tipiintervento_groups`
74+
WHERE `idtipointervento` = '.prepare($r['id']));
75+
76+
$gruppi_tipo_intervento = array_column($gruppi_tipo_intervento, 'id_gruppo');
77+
if (!empty($gruppi_tipo_intervento)) {
78+
$compatibile = in_array($id_gruppo, $gruppi_tipo_intervento);
79+
if (!$compatibile) {
80+
$disabled = true;
81+
}
82+
}
83+
7184
$rs[$k] = array_merge($r, [
7285
'text' => $r['descrizione'],
7386
'disabled' => $disabled,

modules/tipi_intervento/actions.php

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,20 @@
7474
]);
7575
}
7676

77+
$dbo->delete('in_tipiintervento_groups', [
78+
'idtipointervento' => $id_record
79+
]);
80+
$gruppi = (array) post('gruppi');
81+
foreach ($gruppi as $id_gruppo) {
82+
if (!$id_gruppo) {
83+
continue;
84+
}
85+
$dbo->insert('in_tipiintervento_groups', [
86+
'idtipointervento' => $id_record,
87+
'id_gruppo' => $id_gruppo
88+
]);
89+
}
90+
7791
flash()->info(tr('Informazioni tipo intervento salvate correttamente!'));
7892

7993
break;

modules/tipi_intervento/edit.php

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,11 @@
2828
<input type="hidden" name="id_record" value="<?php echo $id_record; ?>">
2929

3030
<div class="row">
31-
<div class="col-md-3">
31+
<div class="col-md-2">
3232
{[ "type": "span", "label": "<?php echo tr('Codice'); ?>", "name": "codice", "value": "$codice$" ]}
3333
</div>
3434

35-
<div class="col-md-3">
35+
<div class="col-md-4">
3636
{[ "type": "text", "label": "<?php echo tr('Descrizione'); ?>", "name": "descrizione", "required": 1, "value": "$title$" ]}
3737
</div>
3838

@@ -46,13 +46,23 @@
4646
</div>
4747

4848
<div class="row">
49-
<div class="col-md-3">
49+
<div class="col-md-2">
5050
{[ "type": "number", "label": "<?php echo tr('Tempo standard'); ?>", "name": "tempo_standard", "help": "<?php echo tr('Valore compreso tra 0,25 - 24 ore. <br><small>Esempi: <em><ul><li>60 minuti = 1 ora</li><li>30 minuti = 0,5 ore</li><li>15 minuti = 0,25 ore</li></ul></em></small> Suggerisce il tempo solitamente impiegato per questa tipologia di attivita'); ?>.", "min-value": "0", "max-value": "24", "class": "text-center", "value": "$tempo_standard$", "icon-after": "ore" ]}
5151
</div>
5252

53-
<div class="col-md-3">
53+
<div class="col-md-4">
5454
{[ "type": "select", "label": "<?php echo tr('Tipi anagrafiche'); ?>", "multiple": "1", "name": "tipi[]", "values": "list=\"Azienda\": \"<?php echo tr('Azienda'); ?>\", \"Ente pubblico\": \"<?php echo tr('Ente pubblico'); ?>\", \"Privato\":\"<?php echo tr('Privato'); ?>\"", "value": "<?php echo $id_tipi; ?>", "help": "<?php echo tr('Seleziona le tipologie di anagrafica a cui questo tipo di attività si applica, se non viene selezionata alcuna tipologia, il tipo di attività si applica a tutte le anagrafiche'); ?>." ]}
5555
</div>
56+
57+
<div class="col-md-6">
58+
<?php
59+
echo '
60+
{[ "type": "select", "label": "'.tr('Gruppi utenti').'", "name": "gruppi[]", "multiple": "1", "icon-before": "<i class=\'fa fa-users\'></i>", "placeholder": "'.tr('Tutti').'", "values": "query=SELECT DISTINCT `zz_groups`.`id`, `title` AS descrizione FROM `zz_groups` LEFT JOIN `zz_groups_lang` ON (`zz_groups`.`id` = `zz_groups_lang`.`id_record` AND `zz_groups_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).') ORDER BY `zz_groups`.`id` ASC", "value": "';
61+
$results = $dbo->fetchArray('SELECT GROUP_CONCAT(DISTINCT `id_gruppo` SEPARATOR \',\') AS gruppi FROM `in_tipiintervento_groups` WHERE `idtipointervento`='.prepare($id_record));
62+
echo $results[0]['gruppi'].'"';
63+
echo ', "help": "'.tr('Seleziona i gruppi utenti a cui questo tipo di attività si applica, se non viene selezionata alcun gruppo, il tipo di attività si applica a tutti i gruppi').'" ]}';
64+
?>
65+
</div>
5666
</div>
5767

5868
<div class="row">

update/2_10.sql

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,4 +93,7 @@ INSERT INTO `zz_api_resources` (`id`, `version`, `type`, `resource`, `class`, `e
9393
VALUES (NULL, 'app-v1', 'create', 'fcm-tokens', 'API\\App\\v1\\FcmTokens', '1');
9494

9595
INSERT INTO `zz_api_resources` (`id`, `version`, `type`, `resource`, `class`, `enabled`)
96-
VALUES (NULL, 'app-v1', 'update', 'fcm-tokens', 'API\\App\\v1\\FcmTokens', '1');
96+
VALUES (NULL, 'app-v1', 'update', 'fcm-tokens', 'API\\App\\v1\\FcmTokens', '1');
97+
98+
-- Tabella per la gestione dei gruppi in tipi di intervento
99+
CREATE TABLE `in_tipiintervento_groups` (`id` INT NOT NULL AUTO_INCREMENT , `idtipointervento` INT NOT NULL , `id_gruppo` INT NOT NULL , PRIMARY KEY (`id`));

0 commit comments

Comments
 (0)