details:   /erp/devel/pi/rev/dff773cd5937
changeset: 11821:dff773cd5937
user:      Ioritz Cia <ioritz.cia <at> openbravo.com>
date:      Mon May 02 11:58:06 2011 +0200
summary:   Fixes issue 15623: The ordering options of payment report do not 
order well.

diffstat:

 
modules/org.openbravo.financial.paymentreport/src/org/openbravo/financial/paymentreport/erpCommon/ad_reports/PaymentReport.java
    |   10 +-
 
modules/org.openbravo.financial.paymentreport/src/org/openbravo/financial/paymentreport/erpCommon/ad_reports/PaymentReportDao.java
 |  424 ++-------
 2 files changed, 128 insertions(+), 306 deletions(-)

diffs (truncated from 698 to 300 lines):

diff -r aeb491794d7e -r dff773cd5937 
modules/org.openbravo.financial.paymentreport/src/org/openbravo/financial/paymentreport/erpCommon/ad_reports/PaymentReport.java
--- 
a/modules/org.openbravo.financial.paymentreport/src/org/openbravo/financial/paymentreport/erpCommon/ad_reports/PaymentReport.java
   Mon May 02 11:57:58 2011 +0200
+++ 
b/modules/org.openbravo.financial.paymentreport/src/org/openbravo/financial/paymentreport/erpCommon/ad_reports/PaymentReport.java
   Mon May 02 11:58:06 2011 +0200
@@ -68,9 +68,10 @@
           "PaymentReport|DueDateFrom");
       String strDueDateTo = vars
           .getRequestGlobalVariable("inpDueDateTo", "PaymentReport|DueDateTo");
-      String strAmountFrom = vars.getRequestGlobalVariable("inpAmountFrom",
+      String strAmountFrom = 
vars.getNumericRequestGlobalVariable("inpAmountFrom",
           "PaymentReport|AmountFrom");
-      String strAmountTo = vars.getRequestGlobalVariable("inpAmountTo", 
"PaymentReport|AmountTo");
+      String strAmountTo = vars.getNumericRequestGlobalVariable("inpAmountTo",
+          "PaymentReport|AmountTo");
       String strDocumentDateFrom = 
vars.getRequestGlobalVariable("inpDocumentDateFrom",
           "PaymentReport|DocumentDateFrom");
       String strDocumentDateTo = 
vars.getRequestGlobalVariable("inpDocumentDateTo",
@@ -114,9 +115,10 @@
           "PaymentReport|DueDateFrom");
       String strDueDateTo = vars
           .getRequestGlobalVariable("inpDueDateTo", "PaymentReport|DueDateTo");
-      String strAmountFrom = vars.getRequestGlobalVariable("inpAmountFrom",
+      String strAmountFrom = 
vars.getNumericRequestGlobalVariable("inpAmountFrom",
           "PaymentReport|AmountFrom");
-      String strAmountTo = vars.getRequestGlobalVariable("inpAmountTo", 
"PaymentReport|AmountTo");
+      String strAmountTo = vars.getNumericRequestGlobalVariable("inpAmountTo",
+          "PaymentReport|AmountTo");
       String strDocumentDateFrom = 
vars.getRequestGlobalVariable("inpDocumentDateFrom",
           "PaymentReport|DocumentDateFrom");
       String strDocumentDateTo = 
vars.getRequestGlobalVariable("inpDocumentDateTo",
diff -r aeb491794d7e -r dff773cd5937 
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 May 02 11:57:58 2011 +0200
+++ 
b/modules/org.openbravo.financial.paymentreport/src/org/openbravo/financial/paymentreport/erpCommon/ad_reports/PaymentReportDao.java
        Mon May 02 11:58:06 2011 +0200
@@ -47,6 +47,7 @@
 import org.openbravo.model.ad.ui.Tab;
 import org.openbravo.model.ad.ui.Window;
 import org.openbravo.model.common.businesspartner.BusinessPartner;
+import org.openbravo.model.common.businesspartner.Category;
 import org.openbravo.model.common.currency.ConversionRate;
 import org.openbravo.model.common.currency.Currency;
 import org.openbravo.model.common.invoice.Invoice;
@@ -54,6 +55,7 @@
 import org.openbravo.model.financialmgmt.payment.FIN_PaymentDetail;
 import org.openbravo.model.financialmgmt.payment.FIN_PaymentSchedule;
 import org.openbravo.model.financialmgmt.payment.FIN_PaymentScheduleDetail;
+import org.openbravo.model.project.Project;
 import org.openbravo.utils.Replace;
 
 public class PaymentReportDao {
@@ -93,18 +95,18 @@
     try {
 
       hsqlScript.append(" as fpsd ");
-      hsqlScript.append(" left outer join fpsd.paymentDetails.finPayment ");
-      hsqlScript.append(" left outer join fpsd.invoicePaymentSchedule ");
-      hsqlScript.append(" left outer join fpsd.invoicePaymentSchedule.invoice 
");
-      hsqlScript
-          .append(" left outer join 
fpsd.paymentDetails.finPayment.businessPartner.businessPartnerCategory a");
-      hsqlScript
-          .append(" left outer join 
fpsd.invoicePaymentSchedule.invoice.businessPartner.businessPartnerCategory b");
+      hsqlScript.append(" left outer join fpsd.paymentDetails.finPayment pay");
+      hsqlScript.append(" left outer join 
pay.businessPartner.businessPartnerCategory paybpc");
+      hsqlScript.append(" left outer join fpsd.invoicePaymentSchedule invps");
+      hsqlScript.append(" left outer join invps.invoice inv");
+      hsqlScript.append(" left outer join 
inv.businessPartner.businessPartnerCategory invbpc");
+      hsqlScript.append(" left outer join 
fpsd.paymentDetails.finPayment.currency paycur");
+      hsqlScript.append(" left outer join 
fpsd.invoicePaymentSchedule.invoice.currency invcur");
+      hsqlScript.append(" left outer join pay.project paypro");
+      hsqlScript.append(" left outer join inv.project invpro");
       hsqlScript.append(" where (fpsd.");
       hsqlScript.append(FIN_PaymentScheduleDetail.PROPERTY_PAYMENTDETAILS);
-      hsqlScript.append(" is not null or fpsd.");
-      
hsqlScript.append(FIN_PaymentScheduleDetail.PROPERTY_INVOICEPAYMENTSCHEDULE);
-      hsqlScript.append(" is not null ");
+      hsqlScript.append(" is not null or invps is not null ");
       hsqlScript.append(") ");
 
       // organization + include sub-organization
@@ -135,17 +137,13 @@
 
       // due date from - due date to
       if (!strDueDateFrom.isEmpty()) {
-        hsqlScript.append(" and fpsd.");
-        
hsqlScript.append(FIN_PaymentScheduleDetail.PROPERTY_INVOICEPAYMENTSCHEDULE);
-        hsqlScript.append(".");
+        hsqlScript.append(" and invps.");
         hsqlScript.append(FIN_PaymentSchedule.PROPERTY_DUEDATE);
         hsqlScript.append(" > ?");
         parameters.add(FIN_Utility.getDate(strDueDateFrom));
       }
       if (!strDueDateTo.isEmpty()) {
-        hsqlScript.append(" and fpsd.");
-        
hsqlScript.append(FIN_PaymentScheduleDetail.PROPERTY_INVOICEPAYMENTSCHEDULE);
-        hsqlScript.append(".");
+        hsqlScript.append(" and invps.");
         hsqlScript.append(FIN_PaymentSchedule.PROPERTY_DUEDATE);
         hsqlScript.append(" < ?");
         parameters.add(FIN_Utility.getDate(strDueDateTo));
@@ -153,65 +151,35 @@
 
       // amount from - amount to
       if (!strAmountFrom.isEmpty()) {
-        hsqlScript.append(" and coalesce(fpsd.");
-        hsqlScript.append(FIN_PaymentScheduleDetail.PROPERTY_PAYMENTDETAILS);
-        hsqlScript.append(".");
-        hsqlScript.append(FIN_PaymentDetail.PROPERTY_FINPAYMENT);
-        hsqlScript.append(".");
+        hsqlScript.append(" and coalesce(pay.");
         hsqlScript.append(FIN_Payment.PROPERTY_AMOUNT);
-        hsqlScript.append(", fpsd.");
-        
hsqlScript.append(FIN_PaymentScheduleDetail.PROPERTY_INVOICEPAYMENTSCHEDULE);
-        hsqlScript.append(".");
+        hsqlScript.append(", invps.");
         hsqlScript.append(FIN_PaymentSchedule.PROPERTY_AMOUNT);
-        hsqlScript.append(") > '");
+        hsqlScript.append(") > ");
         hsqlScript.append(strAmountFrom);
-        hsqlScript.append("'");
       }
       if (!strAmountTo.isEmpty()) {
-        hsqlScript.append(" and coalesce(fpsd.");
-        hsqlScript.append(FIN_PaymentScheduleDetail.PROPERTY_PAYMENTDETAILS);
-        hsqlScript.append(".");
-        hsqlScript.append(FIN_PaymentDetail.PROPERTY_FINPAYMENT);
-        hsqlScript.append(".");
+        hsqlScript.append(" and coalesce(pay.");
         hsqlScript.append(FIN_Payment.PROPERTY_AMOUNT);
-        hsqlScript.append(", fpsd.");
-        
hsqlScript.append(FIN_PaymentScheduleDetail.PROPERTY_INVOICEPAYMENTSCHEDULE);
-        hsqlScript.append(".");
+        hsqlScript.append(", invps.");
         hsqlScript.append(FIN_PaymentSchedule.PROPERTY_AMOUNT);
-        hsqlScript.append(") < '");
+        hsqlScript.append(") < ");
         hsqlScript.append(strAmountTo);
-        hsqlScript.append("'");
       }
 
       // document date from - document date to
       if (!strDocumentDateFrom.isEmpty()) {
-        hsqlScript.append(" and coalesce(fpsd.");
-        hsqlScript.append(FIN_PaymentScheduleDetail.PROPERTY_PAYMENTDETAILS);
-        hsqlScript.append(".");
-        hsqlScript.append(FIN_PaymentDetail.PROPERTY_FINPAYMENT);
-        hsqlScript.append(".");
+        hsqlScript.append(" and coalesce(pay.");
         hsqlScript.append(FIN_Payment.PROPERTY_PAYMENTDATE);
-        hsqlScript.append(", fpsd.");
-        
hsqlScript.append(FIN_PaymentScheduleDetail.PROPERTY_INVOICEPAYMENTSCHEDULE);
-        hsqlScript.append(".");
-        hsqlScript.append(FIN_PaymentSchedule.PROPERTY_INVOICE);
-        hsqlScript.append(".");
+        hsqlScript.append(", inv.");
         hsqlScript.append(Invoice.PROPERTY_INVOICEDATE);
         hsqlScript.append(") > ?");
         parameters.add(FIN_Utility.getDate(strDocumentDateFrom));
       }
       if (!strDocumentDateTo.isEmpty()) {
-        hsqlScript.append(" and coalesce(fpsd.");
-        hsqlScript.append(FIN_PaymentScheduleDetail.PROPERTY_PAYMENTDETAILS);
-        hsqlScript.append(".");
-        hsqlScript.append(FIN_PaymentDetail.PROPERTY_FINPAYMENT);
-        hsqlScript.append(".");
+        hsqlScript.append(" and coalesce(pay.");
         hsqlScript.append(FIN_Payment.PROPERTY_PAYMENTDATE);
-        hsqlScript.append(", fpsd.");
-        
hsqlScript.append(FIN_PaymentScheduleDetail.PROPERTY_INVOICEPAYMENTSCHEDULE);
-        hsqlScript.append(".");
-        hsqlScript.append(FIN_PaymentSchedule.PROPERTY_INVOICE);
-        hsqlScript.append(".");
+        hsqlScript.append(", inv.");
         hsqlScript.append(Invoice.PROPERTY_INVOICEDATE);
         hsqlScript.append(") < ?");
         parameters.add(FIN_Utility.getDate(strDocumentDateTo));
@@ -219,17 +187,9 @@
 
       // business partner
       if (!strcBPartnerIdIN.isEmpty()) {
-        hsqlScript.append(" and coalesce(fpsd.");
-        hsqlScript.append(FIN_PaymentScheduleDetail.PROPERTY_PAYMENTDETAILS);
-        hsqlScript.append(".");
-        hsqlScript.append(FIN_PaymentDetail.PROPERTY_FINPAYMENT);
-        hsqlScript.append(".");
+        hsqlScript.append(" and coalesce(pay.");
         hsqlScript.append(FIN_Payment.PROPERTY_BUSINESSPARTNER);
-        hsqlScript.append(", fpsd.");
-        
hsqlScript.append(FIN_PaymentScheduleDetail.PROPERTY_INVOICEPAYMENTSCHEDULE);
-        hsqlScript.append(".");
-        hsqlScript.append(FIN_PaymentSchedule.PROPERTY_INVOICE);
-        hsqlScript.append(".");
+        hsqlScript.append(", inv.");
         hsqlScript.append(Invoice.PROPERTY_BUSINESSPARTNER);
         hsqlScript.append(") in ");
         hsqlScript.append(strcBPartnerIdIN);
@@ -237,40 +197,16 @@
 
       // business partner category
       if (!strcBPGroupIdIN.isEmpty()) {
-        hsqlScript.append(" and coalesce(fpsd.");
-        hsqlScript.append(FIN_PaymentScheduleDetail.PROPERTY_PAYMENTDETAILS);
-        hsqlScript.append(".");
-        hsqlScript.append(FIN_PaymentDetail.PROPERTY_FINPAYMENT);
-        hsqlScript.append(".");
-        hsqlScript.append(FIN_Payment.PROPERTY_BUSINESSPARTNER);
-        hsqlScript.append(".");
-        hsqlScript.append(BusinessPartner.PROPERTY_BUSINESSPARTNERCATEGORY);
-        hsqlScript.append(", fpsd.");
-        
hsqlScript.append(FIN_PaymentScheduleDetail.PROPERTY_INVOICEPAYMENTSCHEDULE);
-        hsqlScript.append(".");
-        hsqlScript.append(FIN_PaymentSchedule.PROPERTY_INVOICE);
-        hsqlScript.append(".");
-        hsqlScript.append(Invoice.PROPERTY_BUSINESSPARTNER);
-        hsqlScript.append(".");
-        hsqlScript.append(BusinessPartner.PROPERTY_BUSINESSPARTNERCATEGORY);
-        hsqlScript.append(") = '");
+        hsqlScript.append(" and coalesce(paybpc, invbpc) = '");
         hsqlScript.append(strcBPGroupIdIN);
         hsqlScript.append("'");
       }
 
       // project
       if (!strcProjectIdIN.isEmpty()) {
-        hsqlScript.append(" and coalesce(fpsd.");
-        hsqlScript.append(FIN_PaymentScheduleDetail.PROPERTY_PAYMENTDETAILS);
-        hsqlScript.append(".");
-        hsqlScript.append(FIN_PaymentDetail.PROPERTY_FINPAYMENT);
-        hsqlScript.append(".");
+        hsqlScript.append(" and coalesce(pay.");
         hsqlScript.append(FIN_Payment.PROPERTY_PROJECT);
-        hsqlScript.append(", fpsd.");
-        
hsqlScript.append(FIN_PaymentScheduleDetail.PROPERTY_INVOICEPAYMENTSCHEDULE);
-        hsqlScript.append(".");
-        hsqlScript.append(FIN_PaymentSchedule.PROPERTY_INVOICE);
-        hsqlScript.append(".");
+        hsqlScript.append(", inv.");
         hsqlScript.append(Invoice.PROPERTY_PROJECT);
         hsqlScript.append(") in ");
         hsqlScript.append(strcProjectIdIN);
@@ -278,11 +214,7 @@
 
       // status
       if (!strfinPaymSt.isEmpty() && !strfinPaymSt.equalsIgnoreCase("('')")) {
-        hsqlScript.append(" and (fpsd.");
-        hsqlScript.append(FIN_PaymentScheduleDetail.PROPERTY_PAYMENTDETAILS);
-        hsqlScript.append(".");
-        hsqlScript.append(FIN_PaymentDetail.PROPERTY_FINPAYMENT);
-        hsqlScript.append(".");
+        hsqlScript.append(" and (pay.");
         hsqlScript.append(FIN_Payment.PROPERTY_STATUS);
         hsqlScript.append(" in ");
         hsqlScript.append(strfinPaymSt);
@@ -297,17 +229,9 @@
 
       // payment method
       if (!strPaymentMethodId.isEmpty()) {
-        hsqlScript.append(" and coalesce(fpsd.");
-        hsqlScript.append(FIN_PaymentScheduleDetail.PROPERTY_PAYMENTDETAILS);
-        hsqlScript.append(".");
-        hsqlScript.append(FIN_PaymentDetail.PROPERTY_FINPAYMENT);
-        hsqlScript.append(".");
+        hsqlScript.append(" and coalesce(pay.");
         hsqlScript.append(FIN_Payment.PROPERTY_PAYMENTMETHOD);
-        hsqlScript.append(", fpsd.");
-        
hsqlScript.append(FIN_PaymentScheduleDetail.PROPERTY_INVOICEPAYMENTSCHEDULE);
-        hsqlScript.append(".");
-        hsqlScript.append(FIN_PaymentSchedule.PROPERTY_INVOICE);
-        hsqlScript.append(".");
+        hsqlScript.append(", inv.");
         hsqlScript.append(Invoice.PROPERTY_PAYMENTMETHOD);
         hsqlScript.append(") = '");
         hsqlScript.append(strPaymentMethodId);
@@ -316,66 +240,37 @@
 
       // financial account
       if (!strFinancialAccountId.isEmpty()) {
-        hsqlScript.append(" and (fpsd.");
-        hsqlScript.append(FIN_PaymentScheduleDetail.PROPERTY_PAYMENTDETAILS);
-        hsqlScript.append(".");
-        hsqlScript.append(FIN_PaymentDetail.PROPERTY_FINPAYMENT);
-        hsqlScript.append(" is not null and fpsd.");
-        hsqlScript.append(FIN_PaymentScheduleDetail.PROPERTY_PAYMENTDETAILS);
-        hsqlScript.append(".");
-        hsqlScript.append(FIN_PaymentDetail.PROPERTY_FINPAYMENT);
-        hsqlScript.append(".");
+        hsqlScript.append(" and (pay is not null and pay.");
         hsqlScript.append(FIN_Payment.PROPERTY_ACCOUNT);
-        hsqlScript.append(" = '");
+        hsqlScript.append(".id = '");
         hsqlScript.append(strFinancialAccountId);
-        hsqlScript.append("' or ((fpsd.");
-        
hsqlScript.append(FIN_PaymentScheduleDetail.PROPERTY_INVOICEPAYMENTSCHEDULE);
-        hsqlScript.append(".");
-        hsqlScript.append(FIN_PaymentSchedule.PROPERTY_INVOICE);
-        hsqlScript.append(".");
+        hsqlScript.append("' or ((inv.");
         hsqlScript.append(Invoice.PROPERTY_SALESTRANSACTION);
-        hsqlScript.append(" = 'Y' and fpsd.");
-        
hsqlScript.append(FIN_PaymentScheduleDetail.PROPERTY_INVOICEPAYMENTSCHEDULE);
-        hsqlScript.append(".");
-        hsqlScript.append(FIN_PaymentSchedule.PROPERTY_INVOICE);
-        hsqlScript.append(".");

------------------------------------------------------------------------------
WhatsUp Gold - Download Free Network Management Software
The most intuitive, comprehensive, and cost-effective network 
management toolset available today.  Delivers lowest initial 
acquisition cost and overall TCO of any competing solution.
http://p.sf.net/sfu/whatsupgold-sd
_______________________________________________
Openbravo-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openbravo-commits

Reply via email to