details:   https://code.openbravo.com/erp/devel/pi/rev/ec4c6d3b7bde
changeset: 16700:ec4c6d3b7bde
user:      Ioritz Cia <ioritz.cia <at> openbravo.com>
date:      Tue May 29 09:52:54 2012 +0200
summary:   Fixes issue 20253: Total Gross Amount is not updated correctly.

details:   https://code.openbravo.com/erp/devel/pi/rev/20ba1feb4a41
changeset: 16701:20ba1feb4a41
user:      Ioritz Cia <ioritz.cia <at> openbravo.com>
date:      Tue May 29 17:36:06 2012 +0200
summary:   Fixes issue 20208: Import bank statement.
Bank statement lines with amount zero should not be imported.

diffstat:

 modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_MESSAGE.xml 
                            |  11 ++
 
modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/utility/FIN_BankStatementImport.java
 |  41 ++++++++-
 src-db/database/model/triggers/C_INVOICETAX_TRG2.xml                           
                            |  21 ++++-
 3 files changed, 64 insertions(+), 9 deletions(-)

diffs (163 lines):

diff -r 25447e74a93f -r 20ba1feb4a41 
modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_MESSAGE.xml
--- 
a/modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_MESSAGE.xml
    Wed May 30 07:36:48 2012 +0200
+++ 
b/modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_MESSAGE.xml
    Tue May 29 17:36:06 2012 +0200
@@ -485,6 +485,17 @@
 <!--8A4E2745545245ED81BFBC5324648833-->  
<AD_MODULE_ID><![CDATA[A918E3331C404B889D69AA9BFAFB23AC]]></AD_MODULE_ID>
 <!--8A4E2745545245ED81BFBC5324648833--></AD_MESSAGE>
 
+<!--8E01FDCFBE034863898A47F1AE37BB15--><AD_MESSAGE>
+<!--8E01FDCFBE034863898A47F1AE37BB15-->  
<AD_MESSAGE_ID><![CDATA[8E01FDCFBE034863898A47F1AE37BB15]]></AD_MESSAGE_ID>
+<!--8E01FDCFBE034863898A47F1AE37BB15-->  
<AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--8E01FDCFBE034863898A47F1AE37BB15-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--8E01FDCFBE034863898A47F1AE37BB15-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--8E01FDCFBE034863898A47F1AE37BB15-->  
<VALUE><![CDATA[APRM_ZeroAmountNotInserted]]></VALUE>
+<!--8E01FDCFBE034863898A47F1AE37BB15-->  <MSGTEXT><![CDATA[%s row/s 
inserted.<br/>%s row/s not inserted because credit and debit amount were 
0.]]></MSGTEXT>
+<!--8E01FDCFBE034863898A47F1AE37BB15-->  <MSGTYPE><![CDATA[S]]></MSGTYPE>
+<!--8E01FDCFBE034863898A47F1AE37BB15-->  
<AD_MODULE_ID><![CDATA[A918E3331C404B889D69AA9BFAFB23AC]]></AD_MODULE_ID>
+<!--8E01FDCFBE034863898A47F1AE37BB15--></AD_MESSAGE>
+
 <!--92EC1935A8B947BA83EF82DBD169CA8B--><AD_MESSAGE>
 <!--92EC1935A8B947BA83EF82DBD169CA8B-->  
<AD_MESSAGE_ID><![CDATA[92EC1935A8B947BA83EF82DBD169CA8B]]></AD_MESSAGE_ID>
 <!--92EC1935A8B947BA83EF82DBD169CA8B-->  
<AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
diff -r 25447e74a93f -r 20ba1feb4a41 
modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/utility/FIN_BankStatementImport.java
--- 
a/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/utility/FIN_BankStatementImport.java
        Wed May 30 07:36:48 2012 +0200
+++ 
b/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/utility/FIN_BankStatementImport.java
        Tue May 29 17:36:06 2012 +0200
@@ -21,6 +21,7 @@
 
 import java.io.IOException;
 import java.io.InputStream;
+import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
@@ -128,6 +129,7 @@
     InputStream file = null;
     FIN_BankStatement bankStatement;
     List<FIN_BankStatementLine> bankStatementLines = new 
ArrayList<FIN_BankStatementLine>();
+    int previousNumberofLines = 0;
     int numberOfLines = 0;
 
     try {
@@ -153,6 +155,8 @@
       return getMyError();
     }
 
+    previousNumberofLines = bankStatementLines.size();
+
     try {
       numberOfLines = saveFINBankStatementLines(bankStatementLines);
       OBDal.getInstance().refresh(bankStatement);
@@ -167,6 +171,16 @@
       OBDal.getInstance().rollbackAndClose();
       return getMyError();
     } else if (getMyError() != null && 
getMyError().getType().toLowerCase().equals("success")) {
+      if (numberOfLines < previousNumberofLines) {
+        OBError msg = new OBError();
+        msg.setType("Success");
+        msg.setTitle(Utility.messageBD(conn, "Success", vars.getLanguage()));
+        String message = String.format(
+            Utility.messageBD(conn, "APRM_ZeroAmountNotInserted", 
vars.getLanguage()),
+            String.valueOf(numberOfLines), 
String.valueOf(previousNumberofLines - numberOfLines));
+        msg.setMessage(message);
+        setMyError(msg);
+      }
       return getMyError();
     } else {
       return getOBError(conn, vars, "@APRM_BankStatementNo@ " + 
bankStatement.getDocumentNo()
@@ -185,17 +199,28 @@
 
   private int saveFINBankStatementLines(List<FIN_BankStatementLine> 
bankStatementLines) {
     int counter = 0;
+    BigDecimal crAmount;
+    BigDecimal drAmount;
     for (FIN_BankStatementLine bankStatementLine : bankStatementLines) {
       BusinessPartner businessPartner;
-      try {
-        businessPartner = 
matchBusinessPartner(bankStatementLine.getBpartnername(),
-            bankStatementLine.getOrganization(), 
bankStatementLine.getBankStatement().getAccount());
-      } catch (Exception e) {
-        businessPartner = null;
+      crAmount = bankStatementLine.getCramount();
+      drAmount = bankStatementLine.getDramount();
+      if (!(crAmount.compareTo(BigDecimal.ZERO) == 0)
+          || !(drAmount.compareTo(BigDecimal.ZERO) == 0)) {
+        try {
+          businessPartner = 
matchBusinessPartner(bankStatementLine.getBpartnername(),
+              bankStatementLine.getOrganization(), 
bankStatementLine.getBankStatement()
+                  .getAccount());
+        } catch (Exception e) {
+          businessPartner = null;
+        }
+        bankStatementLine.setBusinessPartner(businessPartner);
+        bankStatementLine.setLineNo(new Long((counter + 1) * 10));
+        OBDal.getInstance().save(bankStatementLine);
+        counter++;
+      } else {
+        OBDal.getInstance().remove(bankStatementLine);
       }
-      bankStatementLine.setBusinessPartner(businessPartner);
-      OBDal.getInstance().save(bankStatementLine);
-      counter++;
     }
     OBDal.getInstance().flush();
     return counter;
diff -r 25447e74a93f -r 20ba1feb4a41 
src-db/database/model/triggers/C_INVOICETAX_TRG2.xml
--- a/src-db/database/model/triggers/C_INVOICETAX_TRG2.xml      Wed May 30 
07:36:48 2012 +0200
+++ b/src-db/database/model/triggers/C_INVOICETAX_TRG2.xml      Tue May 29 
17:36:06 2012 +0200
@@ -28,6 +28,7 @@
 v_taxid varchar2(32);
 taxamountnew NUMBER;
 taxamountold NUMBER;
+v_recalculate CHAR(1);
 -- BP_Withholding
 isbaseamountpercent CHAR(1);
 baseamountpercent NUMBER;
@@ -48,22 +49,24 @@
     IF AD_isTriggerEnabled()='N' THEN RETURN;
     END IF;
 
-
   IF(inserting) THEN
     v_invoiceid := :NEW.c_invoice_id;
     v_taxid := :NEW.c_tax_id;
     taxamountnew := :NEW.taxamt;
     taxamountold := 0;
+    v_recalculate:= :NEW.recalculate;
     ELSIF(updating) THEN
       v_invoiceid := :NEW.c_invoice_id;
       v_taxid := :NEW.c_tax_id;
       taxamountnew := :NEW.taxamt;
       taxamountold := :OLD.taxamt;
+      v_recalculate := :OLD.recalculate;
       ELSIF(deleting) THEN
         v_invoiceid := :OLD.c_invoice_id;
         v_taxid := :OLD.c_tax_id;
         taxamountnew := 0;
         taxamountold := :OLD.taxamt;
+        v_recalculate := :OLD.recalculate;
       END IF;
      -- Read data from invoice
      select c_bpartner_id,withholdingamount,issotrx , coalesce(processed,'N') 
,c_withholding_id
@@ -117,6 +120,22 @@
     END IF;
   END IF;
 
+  IF(v_recalculate = 'N') THEN
+    IF(INSERTING) THEN
+      UPDATE c_invoice
+      SET grandtotal = grandtotal + taxamountnew
+      WHERE c_invoice_id = v_invoiceid;
+    ELSIF(UPDATING) THEN
+      UPDATE c_invoice
+      SET grandtotal = grandtotal - taxamountold + taxamountnew
+      WHERE c_invoice_id = v_invoiceid;
+    ELSIF(DELETING) THEN
+      UPDATE c_invoice
+      SET grandtotal = grandtotal - taxamountold
+      WHERE c_invoice_id = v_invoiceid;
+    END IF;
+  END IF;
+
     END C_INVOICETAX_TRG2
 ]]></body>
     </trigger>

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Openbravo-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openbravo-commits

Reply via email to