details: https://code.openbravo.com/erp/devel/pi/rev/c4a55a7aa3c4 changeset: 33607:c4a55a7aa3c4 user: David Miguelez <david.miguelez <at> openbravo.com> date: Fri Feb 23 14:32:01 2018 +0100 summary: Fixes issue 37989. Order Invoice Tax Lines before deleting.
The order in which the Invoice Tax Lines are deleted can affect calculations done by the triggers. They must be deleted in the correct order. diffstat: src-db/database/model/triggers/C_INVOICELINE_TRG2.xml | 13 +++++++++++-- 1 files changed, 11 insertions(+), 2 deletions(-) diffs (30 lines): diff -r 5c21517ea155 -r c4a55a7aa3c4 src-db/database/model/triggers/C_INVOICELINE_TRG2.xml --- a/src-db/database/model/triggers/C_INVOICELINE_TRG2.xml Mon Feb 26 17:29:18 2018 +0100 +++ b/src-db/database/model/triggers/C_INVOICELINE_TRG2.xml Fri Feb 23 14:32:01 2018 +0100 @@ -55,7 +55,8 @@ v_CalcLine NUMBER; TYPE RECORD IS REF CURSOR; - Cur_BOM RECORD; + Cur_BOM RECORD; + Cur_TAXLINES RECORD; BEGIN IF AD_isTriggerEnabled()='N' THEN RETURN; @@ -113,7 +114,15 @@ IF (:new.AD_Org_ID <> :old.AD_Org_ID OR :new.C_Tax_ID <> :old.C_Tax_ID OR v_newLineNetAmt <> v_oldLine OR v_newLineAlternate <> v_oldLineAlternate OR :new.line_gross_amount <> :old.line_gross_amount) THEN - DELETE FROM C_INVOICELINETAX WHERE C_INVOICELINE_ID = :new.C_InvoiceLine_ID; + -- Delete the TaxLines using a Cursor to be able to delete them in the proper order. + -- If not, the calculations done in the triggers can be incorrect + FOR Cur_TAXLINES IN (SELECT C_INVOICELINETAX_ID + FROM C_INVOICELINETAX + WHERE C_INVOICELINE_ID = :new.C_InvoiceLine_ID + ORDER BY line ASC) + LOOP + DELETE FROM C_INVOICELINETAX WHERE C_INVOICELINETAX_ID = cur_taxlines.C_INVOICELINETAX_ID; + END LOOP; v_create := 'Y'; ELSE v_create := 'N'; ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ Openbravo-commits mailing list Openbravo-commits@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/openbravo-commits