Correzione duplicazione impianti per Promemoria

This commit is contained in:
Dasc3er 2020-09-25 11:40:52 +02:00
parent 10fafa685e
commit 80131f0496
2 changed files with 11 additions and 6 deletions

View File

@ -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));

View File

@ -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,
]);
}
}
}