From b85e87aad692cc1e5c57e804a83f03684aff7104 Mon Sep 17 00:00:00 2001 From: Thomas Zilio Date: Tue, 1 Oct 2019 18:32:06 +0200 Subject: [PATCH] Correzioni movimentazioni --- modules/articoli/modutil.php | 6 +- modules/contratti/actions.php | 10 ++- modules/ddt/actions.php | 58 ++++------------- modules/ddt/modutil.php | 4 +- modules/ddt/row-list.php | 15 +---- modules/ddt/src/Components/Articolo.php | 4 +- modules/fatture/actions.php | 2 +- modules/fatture/modutil.php | 2 +- modules/fatture/row-list.php | 2 +- modules/fatture/src/Components/Articolo.php | 4 +- modules/interventi/actions.php | 42 ++++++------- modules/interventi/ajax_righe.php | 2 +- modules/ordini/actions.php | 69 +++++---------------- modules/ordini/modutil.php | 4 ++ modules/ordini/row-list.php | 4 +- modules/preventivi/actions.php | 8 ++- 16 files changed, 83 insertions(+), 153 deletions(-) diff --git a/modules/articoli/modutil.php b/modules/articoli/modutil.php index 360ff8875..ac8e2573e 100644 --- a/modules/articoli/modutil.php +++ b/modules/articoli/modutil.php @@ -7,7 +7,7 @@ use Modules\Articoli\Articolo; /** * Funzione per inserire i movimenti di magazzino. * - * @deprecated + * @deprecated 2.4.11 */ function add_movimento_magazzino($id_articolo, $qta, $array = [], $descrizone = '', $data = '') { @@ -71,8 +71,8 @@ function add_movimento_magazzino($id_articolo, $qta, $array = [], $descrizone = // Descrizione di default if (empty($movimento)) { - $carico = (!empty($rs[0]['dir']) && $rs[0]['dir'] == 'entrata') ? tr('Ripristino articolo da _TYPE_ _NUM_') : tr('Carico magazzino da _TYPE_ numero _NUM_'); - $scarico = (!empty($rs[0]['dir']) && $rs[0]['dir'] == 'uscita') ? tr('Rimozione articolo da _TYPE_ _NUM_') : tr('Scarico magazzino per _TYPE_ numero _NUM_'); + $carico = (!empty($rs[0]['dir']) && $rs[0]['dir'] == 'entrata') ? tr('Ripristino articolo da _TYPE_ numero _NUM_') : tr('Carico magazzino da _TYPE_ numero _NUM_'); + $scarico = (!empty($rs[0]['dir']) && $rs[0]['dir'] == 'uscita') ? tr('Rimozione articolo da _TYPE_ numero _NUM_') : tr('Scarico magazzino per _TYPE_ numero _NUM_'); $movimento = ($qta > 0) ? $carico : $scarico; } diff --git a/modules/contratti/actions.php b/modules/contratti/actions.php index d9a832f7b..7665b0f65 100644 --- a/modules/contratti/actions.php +++ b/modules/contratti/actions.php @@ -259,11 +259,15 @@ switch (post('op')) { // eliminazione contratto case 'delete': - $dbo->query('DELETE FROM co_promemoria WHERE idcontratto='.prepare($id_record)); + try { + $contratto->delete(); - $contratto->delete(); + $dbo->query('DELETE FROM co_promemoria WHERE idcontratto='.prepare($id_record)); - flash()->info(tr('Contratto eliminato!')); + flash()->info(tr('Contratto eliminato!')); + } catch (InvalidArgumentException $e) { + flash()->error(tr('Sono stati utilizzati alcuni serial number nel documento: impossibile procedere!')); + } break; diff --git a/modules/ddt/actions.php b/modules/ddt/actions.php index 566d71f76..2799995e6 100644 --- a/modules/ddt/actions.php +++ b/modules/ddt/actions.php @@ -277,58 +277,24 @@ switch (post('op')) { break; - // Scollegamento articolo da ddt - case 'unlink_articolo': - $idriga = post('idriga'); - $idarticolo = post('idarticolo'); - - if (!rimuovi_articolo_daddt($idarticolo, $id_record, $idriga)) { - flash()->error(tr('Alcuni serial number sono già stati utilizzati!')); - - return; - } - - // Ricalcolo inps, ritenuta e bollo - if ($dir == 'entrata') { - ricalcola_costiagg_ddt($id_record); - } else { - ricalcola_costiagg_ddt($id_record, 0, 0, 0); - } - - flash()->info(tr('Articolo rimosso!')); - break; - // Scollegamento riga generica da ddt - case 'unlink_riga': - $idriga = post('idriga'); + case 'delete_riga': + $id_riga = post('idriga'); - if ($id_record != '' && $idriga != '') { - // Se la riga è stata creata da un ordine, devo riportare la quantità evasa nella tabella degli ordini - // al valore di prima, riaggiungendo la quantità che sto togliendo - $rs = $dbo->fetchArray('SELECT qta, descrizione, idarticolo, idordine, idiva FROM dt_righe_ddt WHERE idddt='.prepare($id_record).' AND id='.prepare($idriga)); + if (!empty($id_riga)) { + $riga = $ddt->getRighe()->find($id_riga); - // Rimpiazzo la quantità negli ordini - $dbo->query('UPDATE or_righe_ordini SET qta_evasa=qta_evasa-'.$rs[0]['qta'].' WHERE descrizione='.prepare($rs[0]['descrizione']).' AND idarticolo='.prepare($rs[0]['idarticolo']).' AND idordine='.prepare($rs[0]['idordine']).' AND idiva='.prepare($rs[0]['idiva'])); - - // Eliminazione delle righe dal ddt - $query = 'DELETE FROM dt_righe_ddt WHERE idddt='.prepare($id_record).' AND id='.prepare($idriga); - - if ($dbo->query($query)) { - //Aggiorno lo stato dell'ordine - if (setting('Cambia automaticamente stato ordini fatturati') && !empty($rs[0]['idordine'])) { - $dbo->query('UPDATE or_ordini SET idstatoordine=(SELECT id FROM or_statiordine WHERE descrizione="'.get_stato_ordine($rs[0]['idordine']).'") WHERE id = '.prepare($rs[0]['idordine'])); - } - - // Ricalcolo inps, ritenuta e bollo - if ($dir == 'entrata') { - ricalcola_costiagg_ddt($id_record); - } else { - ricalcola_costiagg_ddt($id_record, 0, 0, 0); - } + try { + $riga->delete(); flash()->info(tr('Riga rimossa!')); + } catch (InvalidArgumentException $e) { + flash()->error(tr('Alcuni serial number sono già stati utilizzati!')); } } + + ricalcola_costiagg_ddt($id_record); + break; // eliminazione ddt @@ -336,7 +302,7 @@ switch (post('op')) { try { $ddt->delete(); - $dbo->query('DELETE FROM mg_movimenti WHERE idddt='.prepare($id_record)); + $dbo->query('DELETE FROM mg_movimenti WHERE idddt = '.prepare($id_record)); flash()->info(tr('Ddt eliminato!')); } catch (InvalidArgumentException $e) { diff --git a/modules/ddt/modutil.php b/modules/ddt/modutil.php index a9b488c36..387654e64 100755 --- a/modules/ddt/modutil.php +++ b/modules/ddt/modutil.php @@ -93,7 +93,7 @@ function get_ivaindetraibile_ddt($id_ddt) * $idarticolo integer codice dell'articolo da scollegare dal ddt * $idddt integer codice del ddt da cui scollegare l'articolo. * - * @deprecated + * @deprecated 2.4.11 */ function rimuovi_articolo_daddt($idarticolo, $idddt, $idrigaddt) { @@ -246,7 +246,7 @@ function ricalcola_costiagg_ddt($idddt, $idrivalsainps = '', $idritenutaacconto * $qta float quantità dell'articolo nell'ordine * $prezzo float prezzo totale degli articoli (prezzounitario*qtà). * - * @deprecated + * @deprecated 2.4.11 */ function add_articolo_inddt($idddt, $idarticolo, $descrizione, $idiva, $qta, $idum, $prezzo, $sconto = 0, $sconto_unitario = 0, $tipo_sconto = 'UNT') { diff --git a/modules/ddt/row-list.php b/modules/ddt/row-list.php index 96b996c94..18d6e0e5d 100644 --- a/modules/ddt/row-list.php +++ b/modules/ddt/row-list.php @@ -144,19 +144,8 @@ if (!empty($rs)) { - "; - - if (!empty($r['idarticolo'])) { - echo " - - "; - } else { - echo " - - "; - } - - echo " + +
"; diff --git a/modules/ddt/src/Components/Articolo.php b/modules/ddt/src/Components/Articolo.php index 00a10360b..3967b41b8 100644 --- a/modules/ddt/src/Components/Articolo.php +++ b/modules/ddt/src/Components/Articolo.php @@ -36,8 +36,8 @@ class Articolo extends Article $numero = $ddt->numero_esterno ?: $ddt->numero; $data = $ddt->data; - $carico = ($tipo->dir == 'entrata') ? tr('Ripristino articolo da _TYPE_ _NUM_') : tr('Carico magazzino da _TYPE_ numero _NUM_'); - $scarico = ($tipo->dir == 'entrata') ? tr('Scarico magazzino per _TYPE_ numero _NUM_') : tr('Rimozione articolo da _TYPE_ _NUM_'); + $carico = ($tipo->dir == 'entrata') ? tr('Ripristino articolo da _TYPE_ numero _NUM_') : tr('Carico magazzino da _TYPE_ numero _NUM_'); + $scarico = ($tipo->dir == 'entrata') ? tr('Scarico magazzino per _TYPE_ numero _NUM_') : tr('Rimozione articolo da _TYPE_ numero _NUM_'); $qta = ($tipo->dir == 'uscita') ? -$qta : $qta; $movimento = ($qta < 0) ? $carico : $scarico; diff --git a/modules/fatture/actions.php b/modules/fatture/actions.php index 8f652a597..849ee5a08 100644 --- a/modules/fatture/actions.php +++ b/modules/fatture/actions.php @@ -536,7 +536,7 @@ switch (post('op')) { break; // Scollegamento riga generica da documento - case 'unlink_riga': + case 'delete_riga': $id_riga = post('idriga'); if (!empty($id_riga)) { diff --git a/modules/fatture/modutil.php b/modules/fatture/modutil.php index 42b2dbe7b..0d0138ff3 100644 --- a/modules/fatture/modutil.php +++ b/modules/fatture/modutil.php @@ -358,7 +358,7 @@ function ricalcola_costiagg_fattura($iddocumento) * $prezzo float prezzo totale dell'articolo (prezzounitario*qtà) * $idintervento integer id dell'intervento da cui arriva l'articolo (per non creare casini quando si rimuoverà un articolo dalla fattura). * - * @deprecated + * @deprecated 2.4.11 */ function add_articolo_infattura($iddocumento, $idarticolo, $descrizione, $idiva, $qta, $prezzo, $sconto = 0, $sconto_unitario = 0, $tipo_sconto = 'UNT', $idintervento = 0, $idconto = 0, $idum = 0, $idrivalsainps = '', $idritenutaacconto = '', $calcolo_ritenuta_acconto = '') { diff --git a/modules/fatture/row-list.php b/modules/fatture/row-list.php index 15d3053b9..dda826d03 100644 --- a/modules/fatture/row-list.php +++ b/modules/fatture/row-list.php @@ -37,7 +37,7 @@ foreach ($righe as $row) { $extra = ''; - $delete = 'unlink_riga'; + $delete = 'delete_riga'; // Articoli if ($row->isArticolo()) { diff --git a/modules/fatture/src/Components/Articolo.php b/modules/fatture/src/Components/Articolo.php index 89d296df3..7ab4c46ab 100644 --- a/modules/fatture/src/Components/Articolo.php +++ b/modules/fatture/src/Components/Articolo.php @@ -41,8 +41,8 @@ class Articolo extends Article $numero = $fattura->numero_esterno ?: $fattura->numero; $data = $fattura->data; - $carico = ($tipo->dir == 'entrata') ? tr('Ripristino articolo da _TYPE_ _NUM_') : tr('Carico magazzino da _TYPE_ numero _NUM_'); - $scarico = ($tipo->dir == 'entrata') ? tr('Scarico magazzino per _TYPE_ numero _NUM_') : tr('Rimozione articolo da _TYPE_ _NUM_'); + $carico = ($tipo->dir == 'entrata') ? tr('Ripristino articolo da _TYPE_ numero _NUM_') : tr('Carico magazzino da _TYPE_ numero _NUM_'); + $scarico = ($tipo->dir == 'entrata') ? tr('Scarico magazzino per _TYPE_ numero _NUM_') : tr('Rimozione articolo da _TYPE_ numero _NUM_'); $qta = ($tipo->dir == 'uscita') ? -$qta : $qta; $movimento = ($qta < 0) ? $carico : $scarico; diff --git a/modules/interventi/actions.php b/modules/interventi/actions.php index ca15be181..46f99e6ec 100644 --- a/modules/interventi/actions.php +++ b/modules/interventi/actions.php @@ -189,32 +189,31 @@ switch (post('op')) { // Eliminazione intervento case 'delete': - // Elimino anche eventuali file caricati - Uploads::deleteLinked([ - 'id_module' => $id_module, - 'id_record' => $id_record, - ]); + try { + $intervento->delete(); - // Eliminazione associazioni tra interventi e contratti - $dbo->query('UPDATE co_promemoria SET idintervento = NULL WHERE idintervento='.prepare($id_record)); + // Eliminazione associazioni tra interventi e contratti + $dbo->query('UPDATE co_promemoria SET idintervento = NULL WHERE idintervento='.prepare($id_record)); - // Elimino il collegamento al componente - $dbo->query('DELETE FROM my_impianto_componenti WHERE idintervento='.prepare($id_record)); + // Elimino il collegamento al componente + $dbo->query('DELETE FROM my_impianto_componenti WHERE idintervento='.prepare($id_record)); - // Eliminazione associazione tecnici collegati all'intervento - $query = 'DELETE FROM in_interventi_tecnici WHERE idintervento='.prepare($id_record); - $dbo->query($query); + // Eliminazione associazione tecnici collegati all'intervento + $dbo->query('DELETE FROM in_interventi_tecnici WHERE idintervento='.prepare($id_record)); - // Eliminazione associazione interventi e my_impianti - $query = 'DELETE FROM my_impianti_interventi WHERE idintervento='.prepare($id_record); - $dbo->query($query); + // Eliminazione associazione interventi e my_impianti + $dbo->query('DELETE FROM my_impianti_interventi WHERE idintervento='.prepare($id_record)); - // Eliminazione dell'intervento - $intervento->delete(); + // Elimino anche eventuali file caricati + Uploads::deleteLinked([ + 'id_module' => $id_module, + 'id_record' => $id_record, + ]); - flash()->info(tr('Intervento _NUM_ eliminato!', [ - '_NUM_' => "'".$intervento->codice."'", - ])); + flash()->info(tr('Intervento eliminato!')); + } catch (InvalidArgumentException $e) { + flash()->error(tr('Sono stati utilizzati alcuni serial number nel documento: impossibile procedere!')); + } break; @@ -288,9 +287,10 @@ switch (post('op')) { ' WHERE id='.prepare($idriga)); aggiorna_sedi_movimenti('interventi', $id_record); + break; - case 'unlink_riga': + case 'delete_riga': $id_riga = post('idriga'); if (!empty($id_riga)) { diff --git a/modules/interventi/ajax_righe.php b/modules/interventi/ajax_righe.php index b133f46f5..0756af101 100644 --- a/modules/interventi/ajax_righe.php +++ b/modules/interventi/ajax_righe.php @@ -158,7 +158,7 @@ if (!$righe->isEmpty()) {