svn commit: r553754 - /ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/payment/BillingAccountWorker.java

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

svn commit: r553754 - /ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/payment/BillingAccountWorker.java

jacopoc
Author: jacopoc
Date: Thu Jul  5 23:18:56 2007
New Revision: 553754

URL: http://svn.apache.org/viewvc?view=rev&rev=553754
Log:
Applied patch by Rashko Rejmer (OFBIZ-1128) to fix a bug in the billing account balance calculation: the error was that the query to the OrderPurchasePaymentSummary entity doesn't group the OrderPaymentPreference records with different order statuses.

Modified:
    ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/payment/BillingAccountWorker.java

Modified: ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/payment/BillingAccountWorker.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/payment/BillingAccountWorker.java?view=diff&rev=553754&r1=553753&r2=553754
==============================================================================
--- ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/payment/BillingAccountWorker.java (original)
+++ ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/payment/BillingAccountWorker.java Thu Jul  5 23:18:56 2007
@@ -153,14 +153,13 @@
                 new EntityExpr("preferenceStatusId", EntityOperator.NOT_IN, UtilMisc.toList("PAYMENT_SETTLED", "PAYMENT_RECEIVED", "PAYMENT_DECLINED", "PAYMENT_CANCELLED")) // PAYMENT_NOT_AUTH
             ), EntityOperator.AND);
 
-        GenericValue orderPaymentPreferenceSum = EntityUtil.getFirst(delegator.findByCondition("OrderPurchasePaymentSummary", whereConditions, null, UtilMisc.toList("maxAmount"), null, null));
-        BigDecimal ordersTotal = null;
-        if (UtilValidate.isNotEmpty(orderPaymentPreferenceSum)) {
-            ordersTotal = orderPaymentPreferenceSum.getBigDecimal("maxAmount");
-        } else {
-            ordersTotal = ZERO;
+        List orderPaymentPreferenceSums = delegator.findByCondition("OrderPurchasePaymentSummary", whereConditions, null, UtilMisc.toList("maxAmount"), null, null);
+        if (orderPaymentPreferenceSums != null) {
+            for (Iterator oppsi = orderPaymentPreferenceSums.iterator(); oppsi.hasNext(); ) {
+                GenericValue orderPaymentPreferenceSum = (GenericValue) oppsi.next();
+                balance = balance.subtract(orderPaymentPreferenceSum.getBigDecimal("maxAmount"));
+            }
         }
-        balance = balance.subtract(ordersTotal);
 
         List paymentAppls = delegator.findByAnd("PaymentApplication", UtilMisc.toMap("billingAccountId", billingAccountId));
         // TODO: cancelled payments?