From d51280beb9fc16d8ac0abb7479e96bb14eb24acc Mon Sep 17 00:00:00 2001 From: Dasc3er Date: Tue, 15 Sep 2020 12:30:25 +0200 Subject: [PATCH] Miglioramento elenco promemoria in Dashboard --- modules/dashboard/actions.php | 52 +++++++++++++++++++++++++++-------- modules/dashboard/edit.php | 2 +- modules/interventi/add.php | 2 +- 3 files changed, 43 insertions(+), 13 deletions(-) diff --git a/modules/dashboard/actions.php b/modules/dashboard/actions.php index a7e4c9c98..484e8c27c 100755 --- a/modules/dashboard/actions.php +++ b/modules/dashboard/actions.php @@ -190,34 +190,52 @@ switch (filter('op')) { } // Righe inserite - $qp = "SELECT + $query_promemoria_contratti = "SELECT co_promemoria.id, idcontratto, - richiesta,co_contratti.nome AS nomecontratto, + richiesta, + co_contratti.nome AS nome_contratto, DATE_FORMAT( data_richiesta, '%m%Y') AS mese, data_richiesta, an_anagrafiche.ragione_sociale, 'promemoria' AS ref, - (SELECT descrizione FROM in_tipiintervento WHERE idtipointervento = co_promemoria.idtipointervento) AS tipointervento + (SELECT descrizione FROM in_tipiintervento WHERE idtipointervento = co_promemoria.idtipointervento) AS tipo_intervento 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 WHERE idintervento IS NULL AND idcontratto IN (SELECT id FROM co_contratti WHERE idstato IN(SELECT id FROM co_staticontratti WHERE is_pianificabile = 1)) ORDER BY data_richiesta ASC"; - $promemoria_contratti = $dbo->fetchArray($qp); + $promemoria_contratti = $dbo->fetchArray($query_promemoria_contratti); - $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 + $query_interventi = "SELECT in_interventi.id, + in_interventi.richiesta, + in_interventi.id_contratto AS idcontratto, + in_interventi_tecnici_assegnati.id_tecnico AS id_tecnico, + tecnico.ragione_sociale AS ragione_sociale_tecnico, + DATE_FORMAT(IF(in_interventi.data_scadenza IS NULL, in_interventi.data_richiesta, in_interventi.data_scadenza), '%m%Y') AS mese, + IF(in_interventi.data_scadenza IS NULL, in_interventi.data_richiesta, in_interventi.data_scadenza) AS data_richiesta, + in_interventi.data_scadenza, + an_anagrafiche.ragione_sociale, + 'intervento' AS ref, + (SELECT descrizione FROM in_tipiintervento WHERE in_tipiintervento.idtipointervento=in_interventi.idtipointervento) AS tipo_intervento 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); + } elseif ($user->is_admin) { + $query_interventi .= ' + INNER JOIN in_interventi_tecnici_assegnati ON in_interventi.id = in_interventi_tecnici_assegnati.id_intervento'; } $query_interventi .= ' - WHERE (SELECT COUNT(*) FROM in_interventi_tecnici WHERE in_interventi_tecnici.idintervento = in_interventi.id) = 0 ORDER BY data_richiesta ASC'; + LEFT JOIN in_interventi_tecnici ON in_interventi_tecnici.idintervento = in_interventi.id AND in_interventi_tecnici_assegnati.id_tecnico = in_interventi_tecnici.idtecnico + LEFT JOIN an_anagrafiche AS tecnico ON in_interventi_tecnici_assegnati.id_tecnico = tecnico.idanagrafica + GROUP BY in_interventi.id, in_interventi_tecnici_assegnati.id_tecnico + HAVING COUNT(in_interventi_tecnici.id) = 0 + ORDER BY data_richiesta ASC'; $promemoria_interventi = $dbo->fetchArray($query_interventi); $promemoria = array_merge($promemoria_contratti, $promemoria_interventi); @@ -233,12 +251,24 @@ switch (filter('op')) { $class = 'primary'; } + $link = null; + if ($sessione['ref'] == 'intervento'){ + $modulo_riferimento = 'Interventi'; + $id_riferimento = $sessione['id']; + } else { + $modulo_riferimento = 'Contratti'; + $id_riferimento = $sessione['idcontratto']; + } + echo ' -
'.(($sessione['ref'] == 'intervento') ? '' : '').' - '.$sessione['ragione_sociale'].'
'.Translator::dateToLocale($sessione['data_richiesta']).' ('.$sessione['tipointervento'].')
'.(!empty($sessione['richiesta']) ? ' - '.$sessione['richiesta'] : '').'
'.(!empty($sessione['nomecontratto']) ? '
Contratto: '.$sessione['nomecontratto'] : ''). - (!empty($sessione['data_scadenza'] and $sessione['data_scadenza'] != '0000-00-00 00:00:00') ? '
'.tr('entro il: ').Translator::dateToLocale($sessione['data_scadenza']).'' : ''). - (($sessione['ref'] == 'intervento') ? (Modules::link('Interventi', $sessione['id'], '', null, 'title="'.tr('Visualizza scheda').'" class="btn btn-'.$class.' btn-xs pull-right"')).'
' : (Modules::link('Contratti', $sessione['idcontratto'], '', null, 'title="'.tr('Visualizza scheda').'" class="btn btn-'.$class.' btn-xs pull-right"')).'
'). - '
'; +
'.($sessione['ref'] == 'intervento' ? '' : '').' + '.$sessione['ragione_sociale'].''.(!empty($sessione['id_tecnico']) ? ' - '.tr('Tecnico').': '.$sessione['ragione_sociale_tecnico'] : '').' +
'.dateFormat($sessione['data_richiesta']).' ('.$sessione['tipo_intervento'].') +
'.(!empty($sessione['richiesta']) ? ' - '.$sessione['richiesta'] : '').'
+ '.(!empty($sessione['nome_contratto']) ? '
Contratto: '.$sessione['nome_contratto'] : '').' + '.(!empty($sessione['data_scadenza'] && $sessione['data_scadenza'] != '0000-00-00 00:00:00') ? '
'.tr('entro il: ').dateFormat($sessione['data_scadenza']).'' : '').' + '.Modules::link($modulo_riferimento, $id_riferimento, '', null, 'title="'.tr('Visualizza scheda').'" class="btn btn-'.$class.' btn-xs pull-right"').'
+
'; } } diff --git a/modules/dashboard/edit.php b/modules/dashboard/edit.php index 3b7041a3d..9b2d54a2a 100755 --- a/modules/dashboard/edit.php +++ b/modules/dashboard/edit.php @@ -489,7 +489,7 @@ echo ' name = "id_intervento"; } - openModal(globals.dashboard.drop.title, globals.dashboard.drop.url + "&data=" + data + "&orario_inizio=" + ora_dal + "&orario_fine=" + ora_al + "&ref=dashboard&idcontratto=" + $(this).data("idcontratto") + "&" + name + "=" + $(this).data("id")); + openModal(globals.dashboard.drop.title, globals.dashboard.drop.url + "&data=" + data + "&orario_inizio=" + ora_dal + "&orario_fine=" + ora_al + "&ref=dashboard&idcontratto=" + $(this).data("idcontratto") + "&" + name + "=" + $(this).data("id") + "&id_tecnico=" + $(this).data("id_tecnico")); // Ricaricamento dei dati alla chiusura del modal $(this).remove(); diff --git a/modules/interventi/add.php b/modules/interventi/add.php index e6c359042..f3aed1ec8 100755 --- a/modules/interventi/add.php +++ b/modules/interventi/add.php @@ -38,7 +38,7 @@ if (null == $orario_inizio || '00:00:00' == $orario_inizio) { } // Un utente del gruppo Tecnici può aprire attività solo a proprio nome -$id_tecnico = null; +$id_tecnico = filter('id_tecnico'); if ($user['gruppo'] == 'Tecnici' && !empty($user['idanagrafica'])) { $id_tecnico = $user['idanagrafica']; }