details: https://code.openbravo.com/erp/devel/pi/rev/ee2bac874153 changeset: 31642:ee2bac874153 user: Alvaro Ferraz <alvaro.ferraz <at> openbravo.com> date: Fri Mar 10 15:57:33 2017 +0100 summary: Related to bug 35471: Add last TaxAmt when calculating cascade/dependant taxes
diffstat: src-db/database/model/functions/C_INVOICETAX_ADJUSTMENT.xml | 2 ++ src-db/database/model/functions/C_ORDERTAX_ADJUSTMENT.xml | 2 ++ src-db/database/model/triggers/C_INVOICELINETAX_TRG.xml | 13 ++++++------- src-db/database/model/triggers/C_ORDERLINETAX_TRG.xml | 12 +++++------- 4 files changed, 15 insertions(+), 14 deletions(-) diffs (113 lines): diff -r 5e4e6352a9f7 -r ee2bac874153 src-db/database/model/functions/C_INVOICETAX_ADJUSTMENT.xml --- a/src-db/database/model/functions/C_INVOICETAX_ADJUSTMENT.xml Fri Mar 10 14:37:32 2017 +0100 +++ b/src-db/database/model/functions/C_INVOICETAX_ADJUSTMENT.xml Fri Mar 10 15:57:33 2017 +0100 @@ -137,6 +137,8 @@ SET LineNetAmt = LineNetAmt + CUR_Tax.LineAdjustment WHERE C_InvoiceLine_ID = CUR_Line.C_InvoiceLine_ID; + -- TODO: Adjust C_InvoiceLineTax accordingly + EXIT; END LOOP; END IF; diff -r 5e4e6352a9f7 -r ee2bac874153 src-db/database/model/functions/C_ORDERTAX_ADJUSTMENT.xml --- a/src-db/database/model/functions/C_ORDERTAX_ADJUSTMENT.xml Fri Mar 10 14:37:32 2017 +0100 +++ b/src-db/database/model/functions/C_ORDERTAX_ADJUSTMENT.xml Fri Mar 10 15:57:33 2017 +0100 @@ -132,6 +132,8 @@ SET LineNetAmt = LineNetAmt + CUR_Tax.LineAdjustment WHERE C_OrderLine_ID = CUR_Line.C_OrderLine_ID; + -- TODO: Adjust C_OrderLineTax accordingly + EXIT; END LOOP; END IF; diff -r 5e4e6352a9f7 -r ee2bac874153 src-db/database/model/triggers/C_INVOICELINETAX_TRG.xml --- a/src-db/database/model/triggers/C_INVOICELINETAX_TRG.xml Fri Mar 10 14:37:32 2017 +0100 +++ b/src-db/database/model/triggers/C_INVOICELINETAX_TRG.xml Fri Mar 10 15:57:33 2017 +0100 @@ -38,7 +38,6 @@ v_Processed VARCHAR(60); v_Increment_Amount C_INVOICETAX.TAXAMT%TYPE; v_Increment_Base C_INVOICETAX.TAXBASEAMT%TYPE; -v_IsTaxIncluded M_PRICELIST.IsTaxIncluded%TYPE; BEGIN @@ -53,11 +52,11 @@ v_C_Invoice_ID:=:OLD.C_INVOICE_ID; END IF; - SELECT C_CURRENCY.STDPRECISION, PROCESSED, M_PRICELIST.ISTAXINCLUDED - INTO v_Prec, v_Processed, v_IsTaxIncluded - FROM C_INVOICE, C_CURRENCY, M_PRICELIST + SELECT C_CURRENCY.STDPRECISION, PROCESSED + INTO v_Prec, v_Processed + FROM C_INVOICE, C_CURRENCY WHERE C_INVOICE.C_CURRENCY_ID = C_CURRENCY.C_CURRENCY_ID - AND C_INVOICE.M_PRICELIST_ID = M_PRICELIST.M_PRICELIST_ID + AND C_INVOICE_ID = v_C_Invoice_ID; SELECT DocTaxAmount, Rate, Cascade, BaseAmount, C_TaxBase_ID, Line @@ -84,7 +83,7 @@ AND Recalculate = 'Y'; IF(v_Count>0) THEN IF (v_DocTaxAmount = 'D' AND (v_Cascade = 'Y' OR v_BaseAmount IN ('TAX', 'LNATAX', 'TBATAX'))) THEN - SELECT COALESCE(CASE WHEN MAX(it.TaxBaseAmt) > 0 THEN MAX(ROUND(it.TaxBaseAmt, v_Prec)) ELSE MIN(ROUND(it.TaxBaseAmt, v_Prec)) END + SUM(it.TaxAmt), 0) + SELECT COALESCE(CASE WHEN MAX(it.TaxBaseAmt) > 0 THEN MAX(ROUND(it.TaxBaseAmt, v_Prec)) + MAX(it.TaxAmt) ELSE MIN(ROUND(it.TaxBaseAmt, v_Prec)) + MIN(it.TaxAmt) END, 0) INTO v_Increment_Base FROM C_InvoiceTax it JOIN C_Tax t @@ -128,7 +127,7 @@ RAISE_APPLICATION_ERROR(-20000, '@20501@') ; ELSE IF (v_DocTaxAmount = 'D' AND (v_Cascade = 'Y' OR v_BaseAmount IN ('TAX', 'LNATAX', 'TBATAX'))) THEN - SELECT COALESCE(CASE WHEN MAX(it.TaxBaseAmt) > 0 THEN MAX(ROUND(it.TaxBaseAmt, v_Prec)) ELSE MIN(ROUND(it.TaxBaseAmt, v_Prec)) END + SUM(it.TaxAmt), 0) + SELECT COALESCE(CASE WHEN MAX(it.TaxBaseAmt) > 0 THEN MAX(ROUND(it.TaxBaseAmt, v_Prec)) + MAX(it.TaxAmt) ELSE MIN(ROUND(it.TaxBaseAmt, v_Prec)) + MIN(it.TaxAmt) END, 0) INTO v_Increment_Base FROM C_InvoiceTax it JOIN C_Tax t diff -r 5e4e6352a9f7 -r ee2bac874153 src-db/database/model/triggers/C_ORDERLINETAX_TRG.xml --- a/src-db/database/model/triggers/C_ORDERLINETAX_TRG.xml Fri Mar 10 14:37:32 2017 +0100 +++ b/src-db/database/model/triggers/C_ORDERLINETAX_TRG.xml Fri Mar 10 15:57:33 2017 +0100 @@ -37,7 +37,6 @@ v_Line C_TAX.LINE%TYPE; v_Increment_Amount C_ORDERTAX.TAXAMT%TYPE; v_Increment_Base C_ORDERTAX.TAXBASEAMT%TYPE; -v_IsTaxIncluded M_PRICELIST.IsTaxIncluded%TYPE; v_Processed VARCHAR(60) ; v_DocAction VARCHAR(60); BEGIN @@ -53,11 +52,10 @@ v_C_Order_ID:=:OLD.C_ORDER_ID; END IF; - SELECT C_CURRENCY.STDPRECISION, M_PRICELIST.ISTAXINCLUDED - INTO v_Prec, v_IsTaxIncluded - FROM C_ORDER, C_CURRENCY, M_PRICELIST + SELECT C_CURRENCY.STDPRECISION + INTO v_Prec + FROM C_ORDER, C_CURRENCY WHERE C_ORDER.C_CURRENCY_ID = C_CURRENCY.C_CURRENCY_ID - AND C_ORDER.M_PRICELIST_ID = M_PRICELIST.M_PRICELIST_ID AND C_ORDER_ID = v_C_Order_ID; SELECT DocTaxAmount, Rate, Cascade, BaseAmount, C_TaxBase_ID, Line @@ -83,7 +81,7 @@ AND C_Tax_ID = :new.C_Tax_ID; IF(v_Count>0) THEN IF (v_DocTaxAmount = 'D' AND (v_Cascade = 'Y' OR v_BaseAmount IN ('TAX', 'LNATAX', 'TBATAX'))) THEN - SELECT COALESCE(CASE WHEN MAX(ot.TaxBaseAmt) > 0 THEN MAX(ROUND(ot.TaxBaseAmt, v_Prec)) ELSE MIN(ROUND(ot.TaxBaseAmt, v_Prec)) END + SUM(ot.TaxAmt), 0) + SELECT COALESCE(CASE WHEN MAX(ot.TaxBaseAmt) > 0 THEN MAX(ROUND(ot.TaxBaseAmt, v_Prec)) + MAX(ot.TaxAmt) ELSE MIN(ROUND(ot.TaxBaseAmt, v_Prec)) + MIN(ot.TaxAmt) END, 0) INTO v_Increment_Base FROM C_OrderTax ot JOIN C_Tax t @@ -132,7 +130,7 @@ RAISE_APPLICATION_ERROR(-20000, '@20501@') ; END IF; IF (v_DocTaxAmount = 'D' AND (v_Cascade = 'Y' OR v_BaseAmount IN ('TAX', 'LNATAX', 'TBATAX'))) THEN - SELECT COALESCE(CASE WHEN MAX(ot.TaxBaseAmt) > 0 THEN MAX(ROUND(ot.TaxBaseAmt, v_Prec)) ELSE MIN(ROUND(ot.TaxBaseAmt, v_Prec)) END + SUM(ot.TaxAmt), 0) + SELECT COALESCE(CASE WHEN MAX(ot.TaxBaseAmt) > 0 THEN MAX(ROUND(ot.TaxBaseAmt, v_Prec)) + MAX(ot.TaxAmt) ELSE MIN(ROUND(ot.TaxBaseAmt, v_Prec)) + MIN(ot.TaxAmt) END, 0) INTO v_Increment_Base FROM C_OrderTax ot JOIN C_Tax t ------------------------------------------------------------------------------ Announcing the Oxford Dictionaries API! The API offers world-renowned dictionary content that is easy and intuitive to access. Sign up for an account today to start using our lexical data to power your apps and projects. Get started today and enter our developer competition. http://sdm.link/oxford _______________________________________________ Openbravo-commits mailing list Openbravo-commits@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/openbravo-commits