details:   https://code.openbravo.com/erp/devel/pi/rev/ddb6f48d04a7
changeset: 13145:ddb6f48d04a7
user:      Ioritz Cia <ioritz.cia <at> openbravo.com>
date:      Thu Jun 30 16:41:13 2011 +0200
summary:   Fixes issue 17770: Payment report is not filtering properly when you 
enter the date in Document Date From.

details:   https://code.openbravo.com/erp/devel/pi/rev/add1c452cbb9
changeset: 13146:add1c452cbb9
user:      Ioritz Cia <ioritz.cia <at> openbravo.com>
date:      Fri Jul 08 13:57:53 2011 +0200
summary:   Fixes issue 17797: Payment Report: wrong subtotal amounts by status.

diffstat:

 
modules/org.openbravo.financial.paymentreport/src/org/openbravo/financial/paymentreport/erpCommon/ad_reports/PaymentReportDao.java
 |  77 +++++++--
 1 files changed, 54 insertions(+), 23 deletions(-)

diffs (140 lines):

diff -r 89bf25a054b2 -r add1c452cbb9 
modules/org.openbravo.financial.paymentreport/src/org/openbravo/financial/paymentreport/erpCommon/ad_reports/PaymentReportDao.java
--- 
a/modules/org.openbravo.financial.paymentreport/src/org/openbravo/financial/paymentreport/erpCommon/ad_reports/PaymentReportDao.java
        Mon Jul 11 18:09:25 2011 +0200
+++ 
b/modules/org.openbravo.financial.paymentreport/src/org/openbravo/financial/paymentreport/erpCommon/ad_reports/PaymentReportDao.java
        Fri Jul 08 13:57:53 2011 +0200
@@ -173,19 +173,19 @@
 
       // document date from - document date to
       if (!strDocumentDateFrom.isEmpty()) {
-        hsqlScript.append(" and coalesce(pay.");
+        hsqlScript.append(" and coalesce(inv.");
+        hsqlScript.append(Invoice.PROPERTY_INVOICEDATE);
+        hsqlScript.append(", pay.");
         hsqlScript.append(FIN_Payment.PROPERTY_PAYMENTDATE);
-        hsqlScript.append(", inv.");
-        hsqlScript.append(Invoice.PROPERTY_INVOICEDATE);
-        hsqlScript.append(") > ?");
+        hsqlScript.append(") >= ?");
         parameters.add(FIN_Utility.getDate(strDocumentDateFrom));
       }
       if (!strDocumentDateTo.isEmpty()) {
-        hsqlScript.append(" and coalesce(pay.");
+        hsqlScript.append(" and coalesce(inv.");
+        hsqlScript.append(Invoice.PROPERTY_INVOICEDATE);
+        hsqlScript.append(", pay.");
         hsqlScript.append(FIN_Payment.PROPERTY_PAYMENTDATE);
-        hsqlScript.append(", inv.");
-        hsqlScript.append(Invoice.PROPERTY_INVOICEDATE);
-        hsqlScript.append(") < ?");
+        hsqlScript.append(") <= ?");
         parameters.add(FIN_Utility.getDate(strDocumentDateTo));
       }
 
@@ -406,6 +406,7 @@
       FieldProvider previousRow = null;
       ConversionRate previousConvRate = null;
       long milisecDayConv = (1000 * 60 * 60 * 24);
+      boolean isReceipt = false;
 
       for (int i = 0; i < data.length; i++) {
         if (FIN_PaymentScheduleDetail[i].getPaymentDetails() != null) {
@@ -445,10 +446,13 @@
               
translateRefList(FIN_PaymentScheduleDetail[i].getPaymentDetails().getFinPayment()
                   .getStatus()));
           // is receipt
-          if 
(FIN_PaymentScheduleDetail[i].getPaymentDetails().getFinPayment().isReceipt())
+          if 
(FIN_PaymentScheduleDetail[i].getPaymentDetails().getFinPayment().isReceipt()) {
             FieldProviderFactory.setField(data[i], "ISRECEIPT", "Y");
-          else
+            isReceipt = true;
+          } else {
             FieldProviderFactory.setField(data[i], "ISRECEIPT", "N");
+            isReceipt = false;
+          }
         } else {
 
           // bp_group -- bp_category
@@ -476,11 +480,15 @@
           FieldProviderFactory.setField(data[i], "STATUS", 
translateRefList("RPAP"));
           // is receipt
           if 
(FIN_PaymentScheduleDetail[i].getInvoicePaymentSchedule().getInvoice()
-              .isSalesTransaction())
+              .isSalesTransaction()) {
             FieldProviderFactory.setField(data[i], "ISRECEIPT", "Y");
-          else
+            isReceipt = true;
+          }
+
+          else {
             FieldProviderFactory.setField(data[i], "ISRECEIPT", "N");
-
+            isReceipt = false;
+          }
         }
 
         if (FIN_PaymentScheduleDetail[i].getInvoicePaymentSchedule() != null) {
@@ -573,8 +581,12 @@
           if (convRate != null) {
             transAmount = FIN_PaymentScheduleDetail[i].getAmount();
             // baseAmount
-            FieldProviderFactory.setField(data[i], "BASE_AMOUNT",
-                transAmount.multiply(convRate.getMultipleRateBy()).toString());
+            if (isReceipt)
+              FieldProviderFactory.setField(data[i], "BASE_AMOUNT",
+                  
transAmount.multiply(convRate.getMultipleRateBy()).toString());
+            else
+              FieldProviderFactory.setField(data[i], "BASE_AMOUNT",
+                  
transAmount.multiply(convRate.getMultipleRateBy()).negate().toString());
           } else {
             FieldProvider[] fp = new FieldProvider[1];
             HashMap<String, String> hm = new HashMap<String, String>();
@@ -623,12 +635,24 @@
           amountSum = amountSum.add(transAmount);
         } else {
           if (previousRow != null) {
-            FieldProviderFactory.setField(previousRow, "TRANS_AMOUNT", 
amountSum.toString());
+            if (previousRow.getField("ISRECEIPT").equalsIgnoreCase("Y"))
+              FieldProviderFactory.setField(previousRow, "TRANS_AMOUNT", 
amountSum.toString());
+            else
+              FieldProviderFactory.setField(previousRow, "TRANS_AMOUNT", 
amountSum.negate()
+                  .toString());
             if (previousConvRate == null) {
-              FieldProviderFactory.setField(previousRow, "BASE_AMOUNT", 
amountSum.toString());
+              if (previousRow.getField("ISRECEIPT").equalsIgnoreCase("Y"))
+                FieldProviderFactory.setField(previousRow, "BASE_AMOUNT", 
amountSum.toString());
+              else
+                FieldProviderFactory.setField(previousRow, "BASE_AMOUNT", 
amountSum.negate()
+                    .toString());
             } else {
-              FieldProviderFactory.setField(previousRow, "BASE_AMOUNT",
-                  
amountSum.multiply(previousConvRate.getMultipleRateBy()).toString());
+              if (previousRow.getField("ISRECEIPT").equalsIgnoreCase("Y"))
+                FieldProviderFactory.setField(previousRow, "BASE_AMOUNT",
+                    
amountSum.multiply(previousConvRate.getMultipleRateBy()).toString());
+              else
+                FieldProviderFactory.setField(previousRow, "BASE_AMOUNT",
+                    
amountSum.multiply(previousConvRate.getMultipleRateBy()).negate().toString());
             }
             groupedData.add(previousRow);
           }
@@ -658,10 +682,17 @@
       }
 
       if (convRate != null) {
-        FieldProviderFactory.setField(previousRow, "TRANS_AMOUNT", 
amountSum.toString());
-        FieldProviderFactory.setField(previousRow, "BASE_AMOUNT",
-            amountSum.multiply(convRate.getMultipleRateBy()).toString());
-        groupedData.add(previousRow);
+        if (isReceipt) {
+          FieldProviderFactory.setField(previousRow, "TRANS_AMOUNT", 
amountSum.toString());
+          FieldProviderFactory.setField(previousRow, "BASE_AMOUNT",
+              amountSum.multiply(convRate.getMultipleRateBy()).toString());
+          groupedData.add(previousRow);
+        } else {
+          FieldProviderFactory.setField(previousRow, "TRANS_AMOUNT", 
amountSum.negate().toString());
+          FieldProviderFactory.setField(previousRow, "BASE_AMOUNT",
+              
amountSum.multiply(convRate.getMultipleRateBy()).negate().toString());
+          groupedData.add(previousRow);
+        }
       } else {
         FieldProviderFactory.setField(previousRow, "TRANS_AMOUNT", 
amountSum.toString());
         FieldProviderFactory.setField(previousRow, "BASE_AMOUNT", 
amountSum.toString());

------------------------------------------------------------------------------
All of the data generated in your IT infrastructure is seriously valuable.
Why? It contains a definitive record of application performance, security 
threats, fraudulent activity, and more. Splunk takes this data and makes 
sense of it. IT sense. And common sense.
http://p.sf.net/sfu/splunk-d2d-c2
_______________________________________________
Openbravo-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openbravo-commits

Reply via email to