From e9a3b266a7aff064a09492bb2e209d46fc978a1f Mon Sep 17 00:00:00 2001 From: Fabio Lovato Date: Thu, 31 Dec 2020 11:08:11 +0100 Subject: [PATCH] Fix update 2.4.20 --- update/2_4_20.php | 41 +++++++++++++++++++++++++++++++++-------- update/2_4_20.sql | 4 ++-- 2 files changed, 35 insertions(+), 10 deletions(-) diff --git a/update/2_4_20.php b/update/2_4_20.php index cc721107a..ac6b2c426 100644 --- a/update/2_4_20.php +++ b/update/2_4_20.php @@ -25,8 +25,9 @@ delete($files); * in quanto veniva calcolato lo sconto ivato erroneamente. */ +// TODO: aggiornare procedura con query SQL esplicite invece che con i metodi che possono cambiare nel tempo // Fix sconti contratti -$righe = $dbo->fetchArray('SELECT id, idiva, sconto_percentuale, prezzo_unitario FROM co_righe_contratti WHERE sconto_percentuale != 0 AND tipo_sconto="PRC"'); +$righe = $dbo->fetchArray('SELECT id, idiva, sconto_percentuale, sconto_unitario, tipo_sconto, prezzo_unitario FROM co_righe_contratti WHERE sconto_percentuale != 0 AND tipo_sconto="PRC"'); foreach ($righe as $riga) { if (empty($riga['idarticolo'])) { @@ -37,13 +38,19 @@ foreach ($righe as $riga) { if ($this_riga !== null) { $this_riga->setPrezzoUnitario($riga['prezzo_unitario'], $riga['idiva']); - $this_riga->setSconto($riga['sconto_percentuale'], 'PRC'); + + if ($riga['tipo_sconto'] == 'PRC') { + $this_riga->setSconto($riga['sconto_percentuale'], $riga['tipo_sconto']); + } else { + $this_riga->setSconto($riga['sconto_unitario'], $riga['tipo_sconto']); + } + $this_riga->save(); } } // Fix sconti preventivi -$righe = $dbo->fetchArray('SELECT id, idiva, sconto_percentuale, prezzo_unitario FROM co_righe_preventivi WHERE sconto_percentuale != 0 AND tipo_sconto="PRC"'); +$righe = $dbo->fetchArray('SELECT id, idiva, sconto_percentuale, sconto_unitario, tipo_sconto, prezzo_unitario FROM co_righe_preventivi WHERE sconto_percentuale != 0 AND tipo_sconto="PRC"'); foreach ($righe as $riga) { if (empty($riga['idarticolo'])) { @@ -54,13 +61,19 @@ foreach ($righe as $riga) { if ($this_riga !== null) { $this_riga->setPrezzoUnitario($riga['prezzo_unitario'], $riga['idiva']); - $this_riga->setSconto($riga['sconto_percentuale'], 'PRC'); + + if ($riga['tipo_sconto'] == 'PRC') { + $this_riga->setSconto($riga['sconto_percentuale'], $riga['tipo_sconto']); + } else { + $this_riga->setSconto($riga['sconto_unitario'], $riga['tipo_sconto']); + } + $this_riga->save(); } } // Fix sconti ordini -$righe = $dbo->fetchArray('SELECT id, idiva, sconto_percentuale, prezzo_unitario FROM or_righe_ordini WHERE sconto_percentuale != 0 AND tipo_sconto="PRC"'); +$righe = $dbo->fetchArray('SELECT id, idiva, sconto_percentuale, sconto_unitario, tipo_sconto, prezzo_unitario FROM or_righe_ordini WHERE sconto_percentuale != 0 AND tipo_sconto="PRC"'); foreach ($righe as $riga) { if (empty($riga['idarticolo'])) { @@ -71,13 +84,19 @@ foreach ($righe as $riga) { if ($this_riga !== null) { $this_riga->setPrezzoUnitario($riga['prezzo_unitario'], $riga['idiva']); - $this_riga->setSconto($riga['sconto_percentuale'], 'PRC'); + + if ($riga['tipo_sconto'] == 'PRC') { + $this_riga->setSconto($riga['sconto_percentuale'], $riga['tipo_sconto']); + } else { + $this_riga->setSconto($riga['sconto_unitario'], $riga['tipo_sconto']); + } + $this_riga->save(); } } // Fix sconti ddt -$righe = $dbo->fetchArray('SELECT id, idiva, sconto_percentuale, prezzo_unitario FROM dt_righe_ddt WHERE sconto_percentuale != 0 AND tipo_sconto="PRC"'); +$righe = $dbo->fetchArray('SELECT id, idiva, sconto_percentuale, sconto_unitario, tipo_sconto, prezzo_unitario FROM dt_righe_ddt WHERE sconto_percentuale != 0 AND tipo_sconto="PRC"'); foreach ($righe as $riga) { if (empty($riga['idarticolo'])) { @@ -88,7 +107,13 @@ foreach ($righe as $riga) { if ($this_riga !== null) { $this_riga->setPrezzoUnitario($riga['prezzo_unitario'], $riga['idiva']); - $this_riga->setSconto($riga['sconto_percentuale'], 'PRC'); + + if ($riga['tipo_sconto'] == 'PRC') { + $this_riga->setSconto($riga['sconto_percentuale'], $riga['tipo_sconto']); + } else { + $this_riga->setSconto($riga['sconto_unitario'], $riga['tipo_sconto']); + } + $this_riga->save(); } } diff --git a/update/2_4_20.sql b/update/2_4_20.sql index 0c3a24aa0..6b2b27a0f 100644 --- a/update/2_4_20.sql +++ b/update/2_4_20.sql @@ -143,14 +143,14 @@ UPDATE `zz_views` SET `summable` = 1 WHERE `name` IN ('Dare', 'Avere') AND `id_m UPDATE `zz_plugins` SET `options` = '{ \"main_query\": [ { \"type\": \"table\", \"fields\": \"Protocollo, Progressivo, Massimale, Totale, Data inizio, Data fine\", \"query\": \"SELECT id, numero_protocollo AS Protocollo, numero_progressivo AS Progressivo, DATE_FORMAT(data_inizio,\'%d/%m/%Y\') AS \'Data inizio\', DATE_FORMAT(data_fine,\'%d/%m/%Y\') AS \'Data fine\', ROUND(massimale, 2) AS Massimale, ROUND(totale, 2) AS Totale FROM co_dichiarazioni_intento WHERE 1=1 AND deleted_at IS NULL AND id_anagrafica = |id_parent| HAVING 2=2 ORDER BY co_dichiarazioni_intento.id DESC\"} ]}' WHERE `zz_plugins`.`name` = "Dichiarazioni d\'Intento"; -- Aggiunto colonne categoria e sottocategoria su listini -UPDATE `zz_modules` SET `options` = 'SELECT |select|FROM mg_prezzi_articoli +UPDATE `zz_modules` SET `options` = 'SELECT |select| FROM mg_prezzi_articoli INNER JOIN an_anagrafiche ON an_anagrafiche.idanagrafica = mg_prezzi_articoli.id_anagrafica INNER JOIN mg_articoli ON mg_articoli.id = mg_prezzi_articoli.id_articolo INNER JOIN mg_categorie AS categoria ON mg_articoli.id_categoria=categoria.id INNER JOIN mg_categorie AS sottocategoria ON mg_articoli.id_sottocategoria=sottocategoria.id WHERE 1=1 AND mg_articoli.deleted_at IS NULL AND an_anagrafiche.deleted_at IS NULL HAVING 2=2 -ORDER BY an_anagrafiche.ragione_sociale'; +ORDER BY an_anagrafiche.ragione_sociale' WHERE `name` = 'Listini'; INSERT INTO `zz_views` (`id_module`, `name`, `query`, `order`, `search`, `slow`, `format`, `search_inside`, `order_by`, `visible`, `summable`, `default`) VALUES ((SELECT `id` FROM `zz_modules` WHERE `name` = 'Listini'), 'Sottocategoria', 'sottocategoria.nome', 5, 1, 0, 0, '', '', 1, 0, 0),