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
