svn commit: r1153073 - /ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/invoice/InvoiceServices.java

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

svn commit: r1153073 - /ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/invoice/InvoiceServices.java

bibryam
Author: bibryam
Date: Tue Aug  2 09:04:02 2011
New Revision: 1153073

URL: http://svn.apache.org/viewvc?rev=1153073&view=rev
Log:
A slightly modified patch from Martin Kreidenweis - voided payments are auto-applied to new order invoices
https://issues.apache.org/jira/browse/OFBIZ-4345

Modified:
    ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/invoice/InvoiceServices.java

Modified: ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/invoice/InvoiceServices.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/invoice/InvoiceServices.java?rev=1153073&r1=1153072&r2=1153073&view=diff
==============================================================================
--- ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/invoice/InvoiceServices.java (original)
+++ ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/invoice/InvoiceServices.java Tue Aug  2 09:04:02 2011
@@ -747,7 +747,10 @@ public class InvoiceServices {
             }
 
             // check for previous order payments
-            List<GenericValue> orderPaymentPrefs = delegator.findByAnd("OrderPaymentPreference", UtilMisc.toMap("orderId", orderId));
+            List<EntityExpr> paymentPrefConds = UtilMisc.toList(
+                    EntityCondition.makeCondition("orderId", EntityOperator.EQUALS, orderId),
+                    EntityCondition.makeCondition("statusId", EntityOperator.NOT_EQUAL, "PAYMENT_CANCELLED"));
+            List<GenericValue> orderPaymentPrefs = delegator.findList("OrderPaymentPreference", EntityCondition.makeCondition(paymentPrefConds, EntityOperator.AND), null, null, null, false);
             List<GenericValue> currentPayments = FastList.newInstance();
             for (GenericValue paymentPref : orderPaymentPrefs) {
                 List<GenericValue> payments = paymentPref.getRelated("Payment");
@@ -755,6 +758,9 @@ public class InvoiceServices {
             }
             // apply these payments to the invoice if they have any remaining amount to apply
             for (GenericValue payment : currentPayments) {
+                if ("PMNT_VOID".equals(payment.getString("statusId")) || "PMNT_CANCELLED".equals(payment.getString("statusId"))) {
+                    continue;
+                }
                 BigDecimal notApplied = PaymentWorker.getPaymentNotApplied(payment);
                 if (notApplied.signum() > 0) {
                     Map<String, Object> appl = FastMap.newInstance();