details:   /erp/devel/pi/rev/dc1eb4edffa6
changeset: 6719:dc1eb4edffa6
user:      Eduardo Argal Guibert <eduardo.argal <at> openbravo.com>
date:      Mon Mar 15 18:29:51 2010 +0100
summary:   Fixes bug 0012667: Tax record is deleted when other tax is entered, 
after processing

diffstat:

 src-db/database/model/triggers/C_INVOICELINETAX_TRG.xml |  13 ++++++++-----
 1 files changed, 8 insertions(+), 5 deletions(-)

diffs (41 lines):

diff -r bfd3a0e51157 -r dc1eb4edffa6 
src-db/database/model/triggers/C_INVOICELINETAX_TRG.xml
--- a/src-db/database/model/triggers/C_INVOICELINETAX_TRG.xml   Mon Mar 15 
16:54:59 2010 +0100
+++ b/src-db/database/model/triggers/C_INVOICELINETAX_TRG.xml   Mon Mar 15 
18:29:51 2010 +0100
@@ -59,11 +59,13 @@
     SELECT COUNT(C_TAX_ID) INTO v_Count
     FROM C_INVOICETAX
     WHERE C_INVOICE_ID = :NEW.C_Invoice_ID
-    AND C_TAX_ID = :NEW.C_TAX_ID;
+    AND C_TAX_ID = :NEW.C_TAX_ID
+    AND Recalculate = 'Y';
     IF(v_Count>0) THEN
       UPDATE C_INVOICETAX SET TAXAMT = (CASE WHEN v_DocTaxAmount='D' THEN 
ROUND((TAXBASEAMT + :NEW.TAXBASEAMT) * v_Rate/100, v_Prec) ELSE (TAXAMT + 
:NEW.TAXAMT) END), TAXBASEAMT=TAXBASEAMT + :NEW.TAXBASEAMT
       WHERE C_INVOICE_ID = :NEW.C_Invoice_ID
-      AND C_TAX_ID = :NEW.C_TAX_ID;
+      AND C_TAX_ID = :NEW.C_TAX_ID
+      AND Recalculate = 'Y';
     ELSE
       SELECT COALESCE(MAX(LINE),0) + 10
       INTO v_LineNo
@@ -73,17 +75,18 @@
       INTO C_INVOICETAX (
       C_InvoiceTax_ID, C_Invoice_ID, C_Tax_ID, AD_Client_ID, AD_Org_ID,
       IsActive, Created, CreatedBy, Updated,
-      UpdatedBy, TaxBaseAmt, TaxAmt, Line)
+      UpdatedBy, TaxBaseAmt, TaxAmt, Line, Recalculate)
       VALUES (
       GET_UUID(), :NEW.C_Invoice_ID, :NEW.C_TAX_ID, :NEW.AD_CLIENT_ID, 
:NEW.AD_ORG_ID,
       'Y', now(), :NEW.UPDATEDBY, now(),
-      :NEW.UPDATEDBY, :NEW.TAXBASEAMT, :NEW.TAXAMT, v_LineNo);
+      :NEW.UPDATEDBY, :NEW.TAXBASEAMT, :NEW.TAXAMT, v_LineNo, 'Y');
     END IF;
   ELSE
     
     UPDATE C_INVOICETAX SET TAXAMT = (CASE WHEN v_DocTaxAmount='D' THEN 
ROUND((TAXBASEAMT - :OLD.TAXBASEAMT) * v_Rate/100, v_Prec) ELSE (TAXAMT - 
:OLD.TAXAMT) END), TAXBASEAMT=TAXBASEAMT - :OLD.TAXBASEAMT
     WHERE C_INVOICE_ID = :OLD.C_Invoice_ID
-    AND C_TAX_ID = :OLD.C_TAX_ID;
+    AND C_TAX_ID = :OLD.C_TAX_ID
+    AND Recalculate = 'Y';
     
     DELETE FROM C_INVOICETAX 
     WHERE C_INVOICE_ID = :OLD.C_Invoice_ID

------------------------------------------------------------------------------
Download Intel&#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
Openbravo-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openbravo-commits

Reply via email to