From 80131f0496ad5b27c0947b0cce0cfbf5e95e3ba1 Mon Sep 17 00:00:00 2001 From: Dasc3er Date: Fri, 25 Sep 2020 11:40:52 +0200 Subject: [PATCH] Correzione duplicazione impianti per Promemoria --- modules/interventi/actions.php | 7 ++++--- plugins/pianificazione_interventi/src/Promemoria.php | 10 +++++++--- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/modules/interventi/actions.php b/modules/interventi/actions.php index 884f48ea7..5e6e54bd3 100644 --- a/modules/interventi/actions.php +++ b/modules/interventi/actions.php @@ -135,12 +135,13 @@ switch (post('op')) { // Sincronizzazione con il promemoria indicato if (!empty($id_promemoria)) { $promemoria = Promemoria::find($id_promemoria); - $promemoria->pianifica($intervento); + $promemoria->pianifica($intervento, false); } // Collegamenti intervento/impianti $impianti = (array) post('idimpianti'); if (!empty($impianti)) { + $impianti = array_unique($impianti); foreach ($impianti as $impianto) { $dbo->insert('my_impianti_interventi', [ 'idintervento' => $id_record, @@ -192,11 +193,11 @@ switch (post('op')) { // Eliminazione intervento case 'delete': try { - $intervento->delete(); - // Eliminazione associazioni tra interventi e contratti $dbo->query('UPDATE co_promemoria SET idintervento = NULL WHERE idintervento='.prepare($id_record)); + $intervento->delete(); + // Elimino il collegamento al componente $dbo->query('DELETE FROM my_impianto_componenti WHERE idintervento='.prepare($id_record)); diff --git a/plugins/pianificazione_interventi/src/Promemoria.php b/plugins/pianificazione_interventi/src/Promemoria.php index 7e87a2fe3..451a91035 100755 --- a/plugins/pianificazione_interventi/src/Promemoria.php +++ b/plugins/pianificazione_interventi/src/Promemoria.php @@ -78,7 +78,7 @@ class Promemoria extends Document return 'entrata'; } - public function pianifica(Intervento $intervento) + public function pianifica(Intervento $intervento, $copia_impianti = true) { $this->intervento()->associate($intervento); // Collego l'intervento ai promemoria $this->save(); @@ -100,10 +100,14 @@ class Promemoria extends Document // Collego gli impianti del promemoria all'intervento $database = database(); - if (!empty($this->idimpianti)) { + if ($copia_impianti && !empty($this->idimpianti)) { $impianti = explode(',', $this->idimpianti); + $impianti = array_unique($impianti); foreach ($impianti as $impianto) { - $database->query('INSERT INTO my_impianti_interventi (idintervento, idimpianto) VALUES ('.prepare($intervento->id).', '.prepare($impianto).' )'); + $database->insert('my_impianti_interventi', [ + 'idintervento' => $intervento->id, + 'idimpianto' => $impianto, + ]); } } }