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']) {