Author: sichen
Date: Wed Dec 12 17:01:46 2007
New Revision: 603794
URL:
http://svn.apache.org/viewvc?rev=603794&view=revLog:
Cosmetic fix for OrderPaymentPreference: When captures are deeclined, set the status to PAYMENT_DECLINED. This makes more sense when looking at the results on orderview. Previously, it wasn't even checking if the capture was declined or not and always setting them to Settled or Received, which is erroneous.
Modified:
ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/payment/PaymentGatewayServices.java
Modified: ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/payment/PaymentGatewayServices.java
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/payment/PaymentGatewayServices.java?rev=603794&r1=603793&r2=603794&view=diff==============================================================================
--- ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/payment/PaymentGatewayServices.java (original)
+++ ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/payment/PaymentGatewayServices.java Wed Dec 12 17:01:46 2007
@@ -1989,7 +1989,8 @@
Double amount = (Double) context.get("captureAmount");
String serviceType = (String) context.get("serviceTypeEnum");
String currencyUomId = (String) context.get("currencyUomId");
-
+ boolean captureSuccessful = ((Boolean) context.get("captureResult")).booleanValue();
+
String paymentMethodTypeId = paymentPreference.getString("paymentMethodTypeId");
if (UtilValidate.isEmpty(serviceType)) {
@@ -2005,7 +2006,13 @@
}
// update the status and maxAmount
- paymentPreference.set("statusId", ("EXT_BILLACT".equals(paymentMethodTypeId)? "PAYMENT_RECEIVED": "PAYMENT_SETTLED"));
+ String prefStatusId;
+ if (captureSuccessful) {
+ prefStatusId = "EXT_BILLACT".equals(paymentMethodTypeId) ? "PAYMENT_RECEIVED": "PAYMENT_SETTLED";
+ } else {
+ prefStatusId = "PAYMENT_DECLINED";
+ }
+ paymentPreference.set("statusId", prefStatusId);
paymentPreference.set("maxAmount", amount);
try {
paymentPreference.store();