diff --git a/CHANGELOG.md b/CHANGELOG.md index 3acd44631..61a706097 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -44,6 +44,7 @@ Il formato utilizzato è basato sulle linee guida di [Keep a Changelog](http://k - Aggiunta possibilità di importare ddt di acquisto nei ddt di vendita - Aggiunta possibilità di creare una nota di credito da un ddt di acquisto - Aggiunta stampa del bilancio + - Aggiunta possibilità di notificare al cliente/tecnico in modo automatico quando viene cambiato lo stato dell'intervento ### Modificato (Changed) - Impostazione CAP automatico a 99999 nella FE per clienti esteri diff --git a/modules/interventi/actions.php b/modules/interventi/actions.php index a4b6ad01f..bea83f25c 100644 --- a/modules/interventi/actions.php +++ b/modules/interventi/actions.php @@ -76,12 +76,39 @@ switch (post('op')) { // Notifica chiusura intervento $stato = $dbo->selectOne('in_statiintervento', '*', ['idstatointervento' => post('idstatointervento')]); - if (!empty($stato['notifica']) && !empty($stato['destinatari']) && $stato['idstatointervento'] != $record['idstatointervento']) { + if (!empty($stato['notifica']) && $stato['idstatointervento'] != $record['idstatointervento']) { $template = Template::find($stato['id_email']); - $mail = Mail::build(auth()->getUser(), $template, $id_record); - $mail->addReceiver($stato['destinatari']); - $mail->save(); + if(!empty($stato['destinatari'])){ + $mail = Mail::build(auth()->getUser(), $template, $id_record); + $mail->addReceiver($stato['destinatari']); + $mail->save(); + } + + if(!empty($stato['notifica_cliente'])){ + $mail_cliente = $dbo->selectOne('an_anagrafiche', '*', ['idanagrafica' => post('idanagrafica')]); + if(!empty($mail_cliente['email'])){ + $mail = Mail::build(auth()->getUser(), $template, $id_record); + $mail->addReceiver($mail_cliente['email']); + $mail->save(); + } + } + + if(!empty($stato['notifica_tecnici'])){ + $tecnici_intervento = $dbo->select('in_interventi_tecnici', 'idtecnico', ['idintervento' => $id_record]); + $tecnici_assegnati = $dbo->select('in_interventi_tecnici_assegnati', 'id_tecnico AS idtecnico', ['id_intervento' => $id_record]); + $tecnici = array_unique(array_merge($tecnici_intervento, $tecnici_assegnati), SORT_REGULAR); + + foreach($tecnici as $tecnico){ + $mail_tecnico = $dbo->selectOne('an_anagrafiche', '*', ['idanagrafica' => $tecnico]); + if(!empty($mail_tecnico['email'])){ + $mail = Mail::build(auth()->getUser(), $template, $id_record); + $mail->addReceiver($mail_tecnico['email']); + $mail->save(); + } + } + } + } aggiorna_sedi_movimenti('interventi', $id_record); flash()->info(tr('Attività modificata correttamente!')); diff --git a/modules/stati_intervento/actions.php b/modules/stati_intervento/actions.php index d9e880b40..8eaae89bb 100755 --- a/modules/stati_intervento/actions.php +++ b/modules/stati_intervento/actions.php @@ -28,6 +28,8 @@ switch (post('op')) { 'is_completato' => post('is_completato'), 'is_fatturabile' => post('is_fatturabile'), 'notifica' => post('notifica'), + 'notifica_cliente' => post('notifica_cliente'), + 'notifica_tecnici' => post('notifica_tecnici'), 'id_email' => post('email') ?: null, 'destinatari' => post('destinatari'), ], ['idstatointervento' => $id_record]); diff --git a/modules/stati_intervento/edit.php b/modules/stati_intervento/edit.php index 5b704f8c2..3bbf9849e 100755 --- a/modules/stati_intervento/edit.php +++ b/modules/stati_intervento/edit.php @@ -48,13 +48,31 @@ if ($record['can_delete']) {
+ +
+ {[ "type": "checkbox", "label": "", "name": "notifica", "help": ".", "value": "$notifica$" ]} +
+
{[ "type": "select", "label": "", "name": "email", "value": "$id_email$", "values": "query=SELECT id, name AS descrizione FROM em_templates WHERE id_module = AND deleted_at IS NULL", "disabled": ]}
-
- {[ "type": "text", "label": "", "name": "destinatari", "value": "$destinatari$", "disabled": ]} + +
+
+ +
+ {[ "type": "checkbox", "label": "", "name": "notifica_cliente", "help": ".", "value": "$notifica_cliente$" ]}
+ +
+ {[ "type": "checkbox", "label": "", "name": "notifica_tecnici", "help": ".", "value": "$notifica_tecnici$" ]} +
+ +
+ {[ "type": "text", "label": "", "name": "destinatari", "value": "$destinatari$", "disabled": ]} +
+
@@ -66,8 +84,7 @@ if ($record['can_delete']) {
{[ "type": "checkbox", "label": "", "name": "is_completato", "value": "$is_completato$", "help": "", "placeholder": "", "extra": "" ]} - {[ "type": "checkbox", "label": "", "name": "is_fatturabile", "value": "$is_fatturabile$", "help": "", "placeholder": "", "extra": "" ]} - {[ "type": "checkbox", "label": "", "name": "notifica", "help": ".", "value": "$notifica$" ]} + {[ "type": "checkbox", "label": "", "name": "is_fatturabile", "value": "$is_fatturabile$", "help": "", "placeholder": "", "extra": "" ]}
@@ -96,13 +113,18 @@ if ($record['can_delete']) { if ($(this).is(":checked")) { $("#email").attr("required", true); $("#email").attr("disabled", false); - $("#destinatari").attr("required", true); $("#destinatari").attr("disabled", false); + $("#notifica_cliente").attr("disabled", false); + $("#notifica_tecnici").attr("disabled", false); }else{ $("#email").attr("required", false); $("#email").attr("disabled", true); - $("#destinatari").attr("required", false); $("#destinatari").attr("disabled", true); + $("#destinatari").val(""); + $("#notifica_cliente").attr("disabled", true); + $("#notifica_tecnici").attr("disabled", true); + $("#notifica_cliente").val([0]); + $("#notifica_tecnici").val([0]); } }); diff --git a/update/2_4_22.sql b/update/2_4_22.sql index 443cefc4e..0ed9395e9 100644 --- a/update/2_4_22.sql +++ b/update/2_4_22.sql @@ -79,4 +79,7 @@ ALTER TABLE `co_preventivi` ADD `garanzia` TEXT NOT NULL AFTER `condizioni_forni ALTER TABLE `an_anagrafiche` CHANGE `piva` `piva` VARCHAR(16) NOT NULL; -- Aggiunta stampa bilancio -INSERT INTO `zz_prints` (`id`, `id_module`, `is_record`, `name`, `title`, `filename`, `directory`, `previous`, `options`, `icon`, `version`, `compatibility`, `order`, `predefined`, `default`, `enabled`) VALUES (NULL, (SELECT `id` FROM `zz_modules` WHERE name='Piano dei conti'), '1', 'Bilancio', 'Bilancio', 'Bilancio', 'bilancio', '', '', 'fa fa-print', '', '', '0', '0', '1', '1'); \ No newline at end of file +INSERT INTO `zz_prints` (`id`, `id_module`, `is_record`, `name`, `title`, `filename`, `directory`, `previous`, `options`, `icon`, `version`, `compatibility`, `order`, `predefined`, `default`, `enabled`) VALUES (NULL, (SELECT `id` FROM `zz_modules` WHERE name='Piano dei conti'), '1', 'Bilancio', 'Bilancio', 'Bilancio', 'bilancio', '', '', 'fa fa-print', '', '', '0', '0', '1', '1'); + +-- Aggiunta flag notifica cliente e tecnici in in_statiintervento +ALTER TABLE `in_statiintervento` ADD `notifica_cliente` TINYINT NOT NULL AFTER `notifica`, ADD `notifica_tecnici` TINYINT NOT NULL AFTER `notifica_cliente`; \ No newline at end of file