From 4c05142af4044e5dea40aa55bf46bf2655d5732e Mon Sep 17 00:00:00 2001 From: Pek5892 Date: Mon, 8 May 2023 17:52:10 +0200 Subject: [PATCH] Aggiunta impostazione visualizza solo promemoria assegnati --- src/API/App/v1/Interventi.php | 67 ++++++++++++++++++++++++++++------- update/2_4_45.sql | 2 ++ 2 files changed, 57 insertions(+), 12 deletions(-) diff --git a/src/API/App/v1/Interventi.php b/src/API/App/v1/Interventi.php index 170b6cdf5..71ba478e3 100644 --- a/src/API/App/v1/Interventi.php +++ b/src/API/App/v1/Interventi.php @@ -98,26 +98,59 @@ class Interventi extends AppResource // Informazioni sull'utente $id_tecnico = Auth::user()->id_anagrafica; + + if (setting('Visualizza solo promemoria assegnati') == 1) { - $query = 'SELECT - in_interventi.id, - in_interventi.updated_at - FROM in_interventi WHERE - deleted_at IS NULL AND ( + $query = ' + SELECT + in_interventi.id, + in_interventi.updated_at + FROM + in_interventi + WHERE + deleted_at IS NULL AND ( in_interventi.id IN ( SELECT idintervento FROM in_interventi_tecnici WHERE in_interventi_tecnici.idintervento = in_interventi.id AND in_interventi_tecnici.orario_fine BETWEEN :period_start AND :period_end - AND in_interventi_tecnici.idtecnico = :id_tecnico + AND in_interventi_tecnici.idtecnico = :id_tecnico_q1 ) OR ( in_interventi.id NOT IN ( SELECT idintervento FROM in_interventi_tecnici ) - AND in_interventi.idstatointervento IN (SELECT idstatointervento FROM in_statiintervento WHERE is_completato = 0) + AND in_interventi.idstatointervento IN (SELECT idstatointervento FROM in_statiintervento WHERE is_completato = 0 AND in_interventi.id IN ( + SELECT id_intervento FROM in_interventi_tecnici_assegnati WHERE in_interventi_tecnici_assegnati.id_tecnico = :id_tecnico_q2) + ) ) )'; + } else { + + $query = ' + SELECT + in_interventi.id, + in_interventi.updated_at + FROM + in_interventi + WHERE + deleted_at IS NULL AND ( + in_interventi.id IN ( + SELECT idintervento FROM in_interventi_tecnici + WHERE in_interventi_tecnici.idintervento = in_interventi.id + AND in_interventi_tecnici.orario_fine BETWEEN :period_start AND :period_end + AND in_interventi_tecnici.idtecnico = :id_tecnico_q1 + ) + OR ( + in_interventi.id NOT IN ( + SELECT idintervento FROM in_interventi_tecnici + ) + AND in_interventi.idstatointervento IN (SELECT idstatointervento FROM in_statiintervento WHERE is_completato = 0) + ) + )'; + + } + // Filtro per data // Gestione di tecnici assegnati o impianti modificati // Possibile problematica: in caso di rimozione di un tecnico assegnato o impianto collegato, la modifica non viene rilevata @@ -131,13 +164,23 @@ class Interventi extends AppResource )'; } - $records = database()->fetchArray($query, [ - ':period_start' => $start, - ':period_end' => $end, - ':id_tecnico' => $id_tecnico, - ]); + if (setting('Visualizza solo promemoria assegnati') == 1) { + $records = database()->fetchArray($query, [ + ':period_start' => $start, + ':period_end' => $end, + ':id_tecnico_q1' => $id_tecnico, + ':id_tecnico_q2' => $id_tecnico, + ]); + } else { + $records = database()->fetchArray($query, [ + ':period_start' => $start, + ':period_end' => $end, + ':id_tecnico_q1' => $id_tecnico, + ]); + } return $this->mapModifiedRecords($records); + } public function retrieveRecord($id) diff --git a/update/2_4_45.sql b/update/2_4_45.sql index 63ca162d2..649032ad2 100644 --- a/update/2_4_45.sql +++ b/update/2_4_45.sql @@ -104,3 +104,5 @@ UPDATE `em_templates` SET `body` = '

Gentile Cliente,

\n

inviamo in alleg -- Aggiunta stampa liquidazione provvigioni INSERT INTO `zz_prints` (`id_module`, `is_record`, `name`, `title`, `filename`, `directory`, `previous`, `options`, `icon`, `version`, `compatibility`, `order`, `predefined`, `default`, `enabled`, `available_options`) VALUES ((SELECT id FROM zz_modules WHERE `name` = 'Anagrafiche'), 1, 'Provvigioni', 'Provvigioni', 'Provvigioni {ragione_sociale}', 'provvigione', 'idanagrafica', '', 'fa fa-print', '', '', 0, 0, 0, 1, NULL); + +INSERT INTO `zz_settings` (`nome`, `valore`, `tipo`, `editable`, `sezione`, `order`, `help`) VALUES ( "Visualizza solo promemoria assegnati", '0', 'boolean', '1', 'Applicazione', '7', 'Se abilitata permetti ai tecnici la visualizzazione dei soli promemoria in cui risultano come assegnati'); \ No newline at end of file