From 79053119f7dcd2e41fd0bf309cfe21c424e6fe66 Mon Sep 17 00:00:00 2001 From: Fabio Lovato Date: Mon, 1 Apr 2019 15:27:19 +0200 Subject: [PATCH] =?UTF-8?q?Corretta=20evasione=20righe=20con=20pi=C3=B9=20?= =?UTF-8?q?righe=20simili=20nei=20documenti=20da=20cui=20si=20prelevano?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- include/src/Components/Article.php | 6 +++--- modules/fatture/modutil.php | 11 ++++------- 2 files changed, 7 insertions(+), 10 deletions(-) diff --git a/include/src/Components/Article.php b/include/src/Components/Article.php index 45e9b9779..15fb19841 100644 --- a/include/src/Components/Article.php +++ b/include/src/Components/Article.php @@ -104,12 +104,12 @@ abstract class Article extends Row // Se c'è un collegamento ad un ddt, aggiorno la quantità evasa if (!empty($this->idddt)) { - $database->query('UPDATE dt_righe_ddt SET qta_evasa = qta_evasa + '.$diff.' WHERE descrizione = '.prepare($this->descrizione).' AND idarticolo = '.prepare($this->idarticolo).' AND idddt = '.prepare($this->idddt).' AND idiva = '.prepare($this->idiva)); + $database->query('UPDATE dt_righe_ddt SET qta_evasa = qta_evasa + '.$diff.' WHERE descrizione = '.prepare($this->descrizione).' AND idarticolo = '.prepare($this->idarticolo).' AND idddt = '.prepare($this->idddt).' AND idiva = '.prepare($this->idiva).' AND qta_evasa < qta LIMIT 1'); } // Se c'è un collegamento ad un ordine, aggiorno la quantità evasa - if (!empty($this->idordine)) { - $database->query('UPDATE or_righe_ordini SET qta_evasa = qta_evasa + '.$diff.' WHERE descrizione = '.prepare($this->descrizione).' AND idarticolo = '.prepare($this->idarticolo).' AND idordine = '.prepare($this->idordine).' AND idiva = '.prepare($this->idiva)); + elseif (!empty($this->idordine)) { + $database->query('UPDATE or_righe_ordini SET qta_evasa = qta_evasa + '.$diff.' WHERE descrizione = '.prepare($this->descrizione).' AND idarticolo = '.prepare($this->idarticolo).' AND idordine = '.prepare($this->idordine).' AND idiva = '.prepare($this->idiva).' AND qta_evasa < qta LIMIT 1'); } } diff --git a/modules/fatture/modutil.php b/modules/fatture/modutil.php index 781a7232c..dc78bbe49 100755 --- a/modules/fatture/modutil.php +++ b/modules/fatture/modutil.php @@ -698,22 +698,19 @@ function rimuovi_riga_fattura($id_documento, $id_riga, $dir) add_movimento_magazzino($riga['idarticolo'], ($dir == 'entrata') ? $riga['qta'] : -$riga['qta'], ['iddocumento' => $id_documento]); } - // TODO: possibile ambiguità tra righe molto simili tra loro // Se l'articolo è stato inserito in fattura tramite un preventivo devo sanare la qta_evasa if (!empty($riga['idpreventivo'])) { - $dbo->query('UPDATE co_righe_preventivi SET qta_evasa=qta_evasa-'.$riga['qta'].' WHERE qta='.prepare($riga['qta']).' AND idarticolo='.prepare($riga['idarticolo']).' AND idpreventivo='.prepare($riga['idpreventivo'])); + $dbo->query('UPDATE co_righe_preventivi SET qta_evasa=qta_evasa-'.$riga['qta'].' WHERE qta='.prepare($riga['qta']).' AND idarticolo='.prepare($riga['idarticolo']).' AND idpreventivo='.prepare($riga['idpreventivo']).' AND qta_evasa > 0 LIMIT 1'); } - // TODO: possibile ambiguità tra righe molto simili tra loro // Se l'articolo è stato inserito in fattura tramite un ddt devo sanare la qta_evasa if (!empty($riga['idddt'])) { - $dbo->query('UPDATE dt_righe_ddt SET qta_evasa=qta_evasa-'.$riga['qta'].' WHERE qta='.prepare($riga['qta']).' AND idarticolo='.prepare($riga['idarticolo']).' AND idddt='.prepare($riga['idddt'])); + $dbo->query('UPDATE dt_righe_ddt SET qta_evasa=qta_evasa-'.$riga['qta'].' WHERE qta='.prepare($riga['qta']).' AND idarticolo='.prepare($riga['idarticolo']).' AND idddt='.prepare($riga['idddt']).' AND qta_evasa > 0 LIMIT 1'); } - // TODO: possibile ambiguità tra righe molto simili tra loro // Se l'articolo è stato inserito in fattura tramite un ordine devo sanare la qta_evasa - if (!empty($riga['idordine'])) { - $dbo->query('UPDATE or_righe_ordini SET qta_evasa=qta_evasa-'.$riga['qta'].' WHERE qta='.prepare($riga['qta']).' AND idarticolo='.prepare($riga['idarticolo']).' AND idordine='.prepare($riga['idordine'])); + elseif (!empty($riga['idordine'])) { + $dbo->query('UPDATE or_righe_ordini SET qta_evasa=qta_evasa-'.$riga['qta'].' WHERE qta='.prepare($riga['qta']).' AND idarticolo='.prepare($riga['idarticolo']).' AND idordine='.prepare($riga['idordine']).' AND qta_evasa > 0 LIMIT 1'); } }