From a772e17d8c27fec44ff5a1bb4cfbb5db5b7b1bee Mon Sep 17 00:00:00 2001 From: Thomas Zilio Date: Tue, 4 Aug 2020 19:04:53 +0200 Subject: [PATCH] Aggiunto supporto al filtro sui promemoria dei Tecnici --- modules/dashboard/actions.php | 19 ++++++++++++++++++- modules/dashboard/edit.php | 30 ++++++++++++++++++++++++++---- modules/fatture/actions.php | 2 ++ modules/interventi/add.php | 8 ++++++-- 4 files changed, 52 insertions(+), 7 deletions(-) diff --git a/modules/dashboard/actions.php b/modules/dashboard/actions.php index c62dfc8ce..61fd29f73 100755 --- a/modules/dashboard/actions.php +++ b/modules/dashboard/actions.php @@ -166,6 +166,12 @@ switch (filter('op')) { case 'carica_interventi': $mese = filter('mese'); + $solo_promemoria_assegnati = setting('Mostra promemoria attività ai soli Tecnici assegnati'); + $id_tecnico = null; + if ($user['gruppo'] == 'Tecnici' && !empty($user['idanagrafica'])) { + $id_tecnico = $user['idanagrafica']; + } + // Righe inserite $qp = "SELECT co_promemoria.id, @@ -184,7 +190,18 @@ switch (filter('op')) { ORDER BY data_richiesta ASC"; $promemoria_contratti = $dbo->fetchArray($qp); - $promemoria_interventi = $dbo->fetchArray("SELECT id, richiesta, id_contratto AS idcontratto, DATE_FORMAT(IF(data_scadenza IS NULL, data_richiesta, data_scadenza),'%m%Y') AS mese, IF(data_scadenza IS NULL, data_richiesta, data_scadenza)AS data_richiesta, data_scadenza, an_anagrafiche.ragione_sociale, 'intervento' AS ref, (SELECT descrizione FROM in_tipiintervento WHERE in_tipiintervento.idtipointervento=in_interventi.idtipointervento) AS tipointervento FROM in_interventi INNER JOIN an_anagrafiche ON in_interventi.idanagrafica=an_anagrafiche.idanagrafica WHERE (SELECT COUNT(*) FROM in_interventi_tecnici WHERE in_interventi_tecnici.idintervento = in_interventi.id) = 0 ORDER BY data_richiesta ASC"); + $query_interventi = "SELECT id, richiesta, id_contratto AS idcontratto, DATE_FORMAT(IF(data_scadenza IS NULL, data_richiesta, data_scadenza),'%m%Y') AS mese, IF(data_scadenza IS NULL, data_richiesta, data_scadenza)AS data_richiesta, data_scadenza, an_anagrafiche.ragione_sociale, 'intervento' AS ref, (SELECT descrizione FROM in_tipiintervento WHERE in_tipiintervento.idtipointervento=in_interventi.idtipointervento) AS tipointervento + FROM in_interventi + INNER JOIN an_anagrafiche ON in_interventi.idanagrafica=an_anagrafiche.idanagrafica"; + + if (!empty($id_tecnico) && !empty($solo_promemoria_assegnati)) { + $query_interventi .= ' + INNER JOIN in_interventi_tecnici_assegnati ON in_interventi.id = in_interventi_tecnici_assegnati.id_intervento AND id_tecnico = '.prepare($id_tecnico); + } + + $query_interventi .= ' + WHERE (SELECT COUNT(*) FROM in_interventi_tecnici WHERE in_interventi_tecnici.idintervento = in_interventi.id) = 0 ORDER BY data_richiesta ASC'; + $promemoria_interventi = $dbo->fetchArray($query_interventi); $promemoria = array_merge($promemoria_contratti, $promemoria_interventi); if (!empty($promemoria)) { diff --git a/modules/dashboard/edit.php b/modules/dashboard/edit.php index 613381663..b4e210c5a 100755 --- a/modules/dashboard/edit.php +++ b/modules/dashboard/edit.php @@ -156,15 +156,28 @@ echo '
'; +$solo_promemoria_assegnati = setting('Mostra promemoria attività ai soli Tecnici assegnati'); +$id_tecnico = null; +if ($user['gruppo'] == 'Tecnici' && !empty($user['idanagrafica'])) { + $id_tecnico = $user['idanagrafica']; +} + $query_da_programmare = 'SELECT data_richiesta AS data FROM co_promemoria - INNER JOIN co_contratti ON co_promemoria.idcontratto=co_contratti.id - INNER JOIN an_anagrafiche ON co_contratti.idanagrafica=an_anagrafiche.idanagrafica + INNER JOIN co_contratti ON co_promemoria.idcontratto = co_contratti.id + INNER JOIN an_anagrafiche ON co_contratti.idanagrafica = an_anagrafiche.idanagrafica WHERE idcontratto IN (SELECT id FROM co_contratti WHERE idstato IN (SELECT id FROM co_staticontratti WHERE is_pianificabile = 1)) AND idintervento IS NULL UNION SELECT IF(data_scadenza IS NULL, data_richiesta, data_scadenza) AS data FROM in_interventi - INNER JOIN an_anagrafiche ON in_interventi.idanagrafica=an_anagrafiche.idanagrafica + INNER JOIN an_anagrafiche ON in_interventi.idanagrafica = an_anagrafiche.idanagrafica'; + +if (!empty($id_tecnico) && !empty($solo_promemoria_assegnati)) { + $query_da_programmare .= ' + INNER JOIN in_interventi_tecnici_assegnati ON in_interventi.id = in_interventi_tecnici_assegnati.id_intervento AND id_tecnico = '.prepare($id_tecnico); +} + +$query_da_programmare .= ' WHERE (SELECT COUNT(*) FROM in_interventi_tecnici WHERE in_interventi_tecnici.idintervento = in_interventi.id) = 0'; $risultati_da_programmare = $dbo->fetchArray($query_da_programmare); @@ -187,7 +200,16 @@ if (!empty($risultati_da_programmare)) { // Controllo pianificazioni mesi precedenti $query_mesi_precenti = 'SELECT co_promemoria.id FROM co_promemoria INNER JOIN co_contratti ON co_promemoria.idcontratto=co_contratti.id WHERE idstato IN(SELECT id FROM co_staticontratti WHERE is_pianificabile = 1) AND idintervento IS NULL AND DATE_ADD(co_promemoria.data_richiesta, INTERVAL 1 DAY) <= NOW() - UNION SELECT in_interventi.id FROM in_interventi INNER JOIN an_anagrafiche ON in_interventi.idanagrafica=an_anagrafiche.idanagrafica WHERE (SELECT COUNT(*) FROM in_interventi_tecnici WHERE in_interventi_tecnici.idintervento = in_interventi.id) = 0 AND DATE_ADD(IF(in_interventi.data_scadenza IS NULL, in_interventi.data_richiesta, in_interventi.data_scadenza), INTERVAL 1 DAY) <= NOW()'; + UNION SELECT in_interventi.id FROM in_interventi + INNER JOIN an_anagrafiche ON in_interventi.idanagrafica=an_anagrafiche.idanagrafica'; + + if (!empty($id_tecnico) && !empty($solo_promemoria_assegnati)) { + $query_mesi_precenti .= ' + INNER JOIN in_interventi_tecnici_assegnati ON in_interventi.id = in_interventi_tecnici_assegnati.id_intervento AND id_tecnico = '.prepare($id_tecnico); + } + + $query_mesi_precenti .= ' +WHERE (SELECT COUNT(*) FROM in_interventi_tecnici WHERE in_interventi_tecnici.idintervento = in_interventi.id) = 0 AND DATE_ADD(IF(in_interventi.data_scadenza IS NULL, in_interventi.data_richiesta, in_interventi.data_scadenza), INTERVAL 1 DAY) <= NOW()'; $numero_mesi_precenti = $dbo->fetchNum($query_mesi_precenti); if ($numero_mesi_precenti > 0) { diff --git a/modules/fatture/actions.php b/modules/fatture/actions.php index e2c82d0ad..9214057b2 100755 --- a/modules/fatture/actions.php +++ b/modules/fatture/actions.php @@ -274,6 +274,8 @@ switch (post('op')) { } $new->codice_stato_fe = null; + $new->progressivo_invio = null; + $new->data_stato_fe = null; $new->stato()->associate($stato); $new->save(); diff --git a/modules/interventi/add.php b/modules/interventi/add.php index 019a6b033..25c2375d6 100755 --- a/modules/interventi/add.php +++ b/modules/interventi/add.php @@ -223,8 +223,10 @@ echo ' - + '; +if (empty($id_intervento)) { + echo '
@@ -243,8 +245,10 @@ echo '
- + '; +} +echo '