Author: jleroux
Date: Sat Jul 5 03:14:21 2008
New Revision: 674173
URL: http://svn.apache.org/viewvc?rev=674173&view=rev
Log:
Merged by hand from a Rashko Rejmer's patch "capturePaymentsByInvoice service doesn't return not optional parameter while
processing multiple orders invoice" (https://issues.apache.org/jira/browse/OFBIZ-1221) - -1221
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=674173&r1=674172&r2=674173&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
Sat Jul 5 03:14:21 2008
@@ -6,9 +6,9 @@
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -79,13 +79,13 @@
// set zero to the proper scale
if (decimals != -1) ZERO = ZERO.setScale(decimals);
}
-
+
/**
* Authorizes a single order preference with an option to specify an
amount. The result map has the Booleans
* "errors" and "finished" which notify the user if there were any errors
and if the authorizatoin was finished.
- * There is also a List "messages" for the authorization response messages and a
Double, "processAmount" as the
- * amount processed.
- *
+ * There is also a List "messages" for the authorization response messages and a
Double, "processAmount" as the
+ * amount processed.
+ *
* TODO: it might be nice to return the paymentGatewayResponseId
*/
public static Map authOrderPaymentPreference(DispatchContext dctx, Map
context) {
@@ -147,7 +147,7 @@
} else {
transAmount = orderPaymentPreference.getDouble("maxAmount");
}
-
+
// round this before moving on just in case a funny number made it this
far
transAmount = (new BigDecimal(transAmount)).setScale(decimals,
rounding).doubleValue();
@@ -186,7 +186,7 @@
// TODO: what do we do with this? we need to fail the auth but still allow the order through so it can
be fixed later
// NOTE: this is called through a different path for auto re-orders, so it should be good to go...
will leave this comment here just in case...
}
-
+
// if we have a failure at this point and no NSF retry is needed, then try other credit cards on file, if
the user has any
if (!needsNsfRetry) {
// is this an auto-order?
@@ -196,16 +196,16 @@
if
("Y".equals(productStore.getString("autoOrderCcTryOtherCards"))) {
// get other credit cards for the bill to
party
List otherPaymentMethodAndCreditCardList =
null;
- String billToPartyId = null;
+ String billToPartyId = null;
GenericValue billToParty =
orh.getBillToParty();
if (billToParty != null) {
billToPartyId =
billToParty.getString("partyId");
} else {
// TODO optional: any other ways to find the bill to party? perhaps look at info from
OrderPaymentPreference, ie search back from other PaymentMethod...
}
-
+
if (UtilValidate.isNotEmpty(billToPartyId))
{
- otherPaymentMethodAndCreditCardList =
delegator.findByAnd("PaymentMethodAndCreditCard",
+ otherPaymentMethodAndCreditCardList =
delegator.findByAnd("PaymentMethodAndCreditCard",
UtilMisc.toMap("partyId", billToPartyId,
"paymentMethodTypeId", "CREDIT_CARD"));
otherPaymentMethodAndCreditCardList =
EntityUtil.filterByDate(otherPaymentMethodAndCreditCardList, true);
}
@@ -214,18 +214,18 @@
Iterator otherPaymentMethodAndCreditCardIter =
otherPaymentMethodAndCreditCardList.iterator();
while
(otherPaymentMethodAndCreditCardIter.hasNext()) {
GenericValue otherPaymentMethodAndCreditCard = (GenericValue)
otherPaymentMethodAndCreditCardIter.next();
-
+
// change OrderPaymentPreference in
memory only and call auth service
orderPaymentPreference.set("paymentMethodId",
otherPaymentMethodAndCreditCard.getString("paymentMethodId"));
Map authRetryResult = authPayment(dispatcher, userLogin, orh, orderPaymentPreference,
totalRemaining, reAuth, transAmount);
try {
boolean processRetryResult = processResult(dctx, authPaymentResult, userLogin,
orderPaymentPreference);
-
+
if (processRetryResult) {
// wow, we got here that
means the other card was successful...
// on success save the OrderPaymentPreference, and then return finished (which
will break from loop)
orderPaymentPreference.store();
-
+
Map results =
ServiceUtil.returnSuccess();
results.put("messages",
authRetryResult.get("customerRespMsgs"));
results.put("processAmount", thisAmount);
@@ -242,7 +242,7 @@
results.put("errors",
Boolean.TRUE);
return results;
}
-
+
// if no sucess, fall through to
return not finished
}
}
@@ -376,7 +376,7 @@
if (ServiceUtil.isError(results)) {
hadError += 1;
- messages.add("Could not authorize OrderPaymentPreference [" + paymentPref.getString("orderPaymentPreferenceId") +
"] for order [" + orderId + "]: " + results.get(ModelService.ERROR_MESSAGE));
+ messages.add("Could not authorize OrderPaymentPreference [" + paymentPref.getString("orderPaymentPreferenceId") +
"] for order [" + orderId + "]: " + results.get(ModelService.ERROR_MESSAGE));
continue;
}
@@ -466,7 +466,7 @@
if (paymentPreference.get("securityCode") != null) {
processContext.put("cardSecurityCode",
paymentPreference.get("securityCode"));
}
-
+
// get the billing information
getBillingInformation(orh, paymentPreference, processContext);
@@ -504,9 +504,9 @@
Map processorResult = null;
try {
// invoke the payment processor; allow 5 minute transaction timeout and require a new tx; we'll capture the error and
pass back nicely
-
+
GenericValue creditCard = (GenericValue)
processContext.get("creditCard");
-
+
// only try other exp dates if orderHeader.autoOrderShoppingListId is not empty, productStore.autoOrderCcTryExp=Y and
this payment is a creditCard
boolean tryOtherExpDates = "Y".equals(productStore.getString("autoOrderCcTryExp")) && creditCard != null &&
UtilValidate.isNotEmpty(orderHeader.getString("autoOrderShoppingListId"));
@@ -514,15 +514,15 @@
if (!tryOtherExpDates ||
UtilValidate.isDateAfterToday(creditCard.getString("expireDate"))) {
processorResult = dispatcher.runSync(serviceName,
processContext, TX_TIME, true);
}
-
- // try other expire dates if the expireDate is not after today, or if we called the auth service and resultBadExpire
= true
+
+ // try other expire dates if the expireDate is not after today, or if we called the auth service and resultBadExpire
= true
if (tryOtherExpDates && (!UtilValidate.isDateAfterToday(creditCard.getString("expireDate")) || (processorResult !=
null && Boolean.TRUE.equals((Boolean) processorResult.get("resultBadExpire"))))) {
// try adding 2, 3, 4 years later with the same month
String expireDate = creditCard.getString("expireDate");
int dateSlash1 = expireDate.indexOf("/");
String month = expireDate.substring(0, dateSlash1);
String year = expireDate.substring(dateSlash1 + 1);
-
+
// start adding 2 years, if comes back with resultBadExpire try
again up to twice incrementing one year
year = StringUtil.addToNumberString(year, 2);
// note that this is set in memory only for now, not saved to
the database unless successful
@@ -537,14 +537,14 @@
creditCard.set("expireDate", month + "/" + year);
processorResult = dispatcher.runSync(serviceName,
processContext, TX_TIME, true);
}
-
+
if (!ServiceUtil.isError(processorResult) && Boolean.TRUE.equals((Boolean)
processorResult.get("resultBadExpire"))) {
// okay, try one more year... and this is the last try
year = StringUtil.addToNumberString(year, 1);
creditCard.set("expireDate", month + "/" + year);
processorResult = dispatcher.runSync(serviceName,
processContext, TX_TIME, true);
}
-
+
// at this point if we have a successful result, let's save the
new creditCard expireDate
if (!ServiceUtil.isError(processorResult) &&
Boolean.TRUE.equals((Boolean) processorResult.get("authResult"))) {
// TODO: this is bad; we should be expiring the old card
and creating a new one instead of editing it
@@ -725,7 +725,7 @@
Debug.logError(ServiceUtil.getErrorMessage(releaseResult),
module);
return
ServiceUtil.returnError(ServiceUtil.getErrorMessage(releaseResult));
} else if (! ServiceUtil.isFailure(releaseResult)) {
- finished.add(paymentPref);
+ finished.add(paymentPref);
}
}
result = ServiceUtil.returnSuccess();
@@ -739,7 +739,7 @@
}
/**
- *
+ *
* Releases authorization for a single OrderPaymentPreference through service calls to the defined processing service for the
ProductStore/PaymentMethodType
* @return SUCCESS|FAILED|ERROR for complete processing of payment.
*/
@@ -756,14 +756,14 @@
try {
paymentPref = delegator.findByPrimaryKey("OrderPaymentPreference", UtilMisc.toMap("orderPaymentPreferenceId",
orderPaymentPreferenceId));
} catch( GenericEntityException e ) {
- String errMsg = "Problem getting OrderPaymentPreference for
orderPaymentPreferenceId " + orderPaymentPreferenceId;
+ String errMsg = "Problem getting OrderPaymentPreference for
orderPaymentPreferenceId " + orderPaymentPreferenceId;
Debug.logWarning(e, errMsg, module);
return ServiceUtil.returnError(errMsg);
}
// Error if no OrderPaymentPreference was found
if (paymentPref == null) {
- String errMsg = "Could not find OrderPaymentPreference with
orderPaymentPreferenceId: " + orderPaymentPreferenceId;
+ String errMsg = "Could not find OrderPaymentPreference with
orderPaymentPreferenceId: " + orderPaymentPreferenceId;
Debug.logWarning(errMsg, module);
return ServiceUtil.returnError(errMsg);
}
@@ -773,14 +773,14 @@
try {
orderHeader = delegator.findByPrimaryKey("OrderHeader",
UtilMisc.toMap("orderId", paymentPref.getString("orderId")));
} catch( GenericEntityException e ) {
- String errMsg = "Problem getting OrderHeader for orderId " +
paymentPref.getString("orderId");
+ String errMsg = "Problem getting OrderHeader for orderId " +
paymentPref.getString("orderId");
Debug.logWarning(e, errMsg, module);
return ServiceUtil.returnError(errMsg);
}
// Error if no OrderHeader was found
if (orderHeader == null) {
- String errMsg = "Could not find OrderHeader with orderId: " + paymentPref.getString("orderId") + "; not processing
payments.";
+ String errMsg = "Could not find OrderHeader with orderId: " + paymentPref.getString("orderId") + "; not processing
payments.";
Debug.logWarning(errMsg, module);
return ServiceUtil.returnError(errMsg);
}
@@ -798,12 +798,12 @@
paymentConfig = paymentSettings.getString("paymentPropertiesPath");
serviceName = paymentSettings.getString("paymentService");
if (serviceName == null) {
- String errMsg = "No payment release service for - " +
paymentPref.getString("paymentMethodTypeId");
+ String errMsg = "No payment release service for - " +
paymentPref.getString("paymentMethodTypeId");
Debug.logWarning(errMsg, module);
return ServiceUtil.returnError(errMsg);
}
} else {
- String errMsg = "No payment release settings found for - " +
paymentPref.getString("paymentMethodTypeId");
+ String errMsg = "No payment release settings found for - " +
paymentPref.getString("paymentMethodTypeId");
Debug.logWarning(errMsg, module);
return ServiceUtil.returnError(errMsg);
}
@@ -996,7 +996,9 @@
if (testOrderId == null || !allSameOrder) {
Debug.logWarning("Attempt to settle Invoice #" + invoiceId + " which
contained none/multiple orders", module);
- return ServiceUtil.returnSuccess();
+ Map result = ServiceUtil.returnSuccess();
+ result.put("processResult", "FAILED");
+ return result;
}
// get the invoice amount (amount to bill)
@@ -1109,7 +1111,7 @@
return ServiceUtil.returnError(ex.getMessage());
}
if (captureResult != null) {
-
+
Double amountCaptured = (Double)
captureResult.get("captureAmount");
Debug.logInfo("Amount captured for order [" + orderId + "] from unapplied payments associated to billing
account [" + billingAccountId + "] is: " + amountCaptured, module);
@@ -1215,7 +1217,7 @@
amountCapturedBd = amountCapturedBd.setScale(decimals,
rounding);
// decrease amount of next payment preference to capture
- amountToCapture =
amountToCapture.subtract(amountCapturedBd);
+ amountToCapture =
amountToCapture.subtract(amountCapturedBd);
// add the invoiceId to the result for processing
captureResult.put("invoiceId", invoiceId);
@@ -1330,12 +1332,12 @@
Double captureAmount = (Double) context.get("captureAmount");
String orderId = (String) context.get("orderId");
Map results = ServiceUtil.returnSuccess();
-
+
try {
// Note that the partyIdFrom of the Payment should be the partyIdTo of the invoice, since you're receiving a payment
from the party you billed
GenericValue invoice = delegator.findByPrimaryKey("Invoice",
UtilMisc.toMap("invoiceId", invoiceId));
- Map paymentParams = UtilMisc.toMap("paymentTypeId", "CUSTOMER_PAYMENT",
"paymentMethodTypeId", "EXT_BILLACT",
- "partyIdFrom", invoice.getString("partyId"), "partyIdTo",
invoice.getString("partyIdFrom"),
+ Map paymentParams = UtilMisc.toMap("paymentTypeId", "CUSTOMER_PAYMENT",
"paymentMethodTypeId", "EXT_BILLACT",
+ "partyIdFrom", invoice.getString("partyId"), "partyIdTo",
invoice.getString("partyIdFrom"),
"statusId", "PMNT_RECEIVED", "effectiveDate",
UtilDateTime.nowTimestamp());
paymentParams.put("amount", captureAmount);
paymentParams.put("currencyUomId",
invoice.getString("currencyUomId"));
@@ -1343,10 +1345,10 @@
Map tmpResult = dispatcher.runSync("createPayment", paymentParams);
if (ServiceUtil.isError(tmpResult)) {
return tmpResult;
- }
-
+ }
+
String paymentId = (String) tmpResult.get("paymentId");
- tmpResult = dispatcher.runSync("createPaymentApplication", UtilMisc.<String, Object>toMap("paymentId", paymentId,
"invoiceId", invoiceId, "billingAccountId", billingAccountId,
+ tmpResult = dispatcher.runSync("createPaymentApplication", UtilMisc.<String, Object>toMap("paymentId", paymentId,
"invoiceId", invoiceId, "billingAccountId", billingAccountId,
"amountApplied", captureAmount, "userLogin", userLogin));
if (ServiceUtil.isError(tmpResult)) {
return tmpResult;
@@ -1355,7 +1357,7 @@
return ServiceUtil.returnError("No payment created for invoice [" + invoiceId + "] and billing account [" +
billingAccountId + "]");
}
results.put("paymentId", paymentId);
-
+
if (orderId != null && captureAmount.doubleValue() > 0) {
// Create a paymentGatewayResponse, if necessary
GenericValue order = delegator.findByPrimaryKey("OrderHeader",
UtilMisc.toMap("orderId", orderId));
@@ -1366,10 +1368,10 @@
List orderPaymentPreferences = delegator.findByAnd("OrderPaymentPreference", UtilMisc.toMap("orderId", orderId,
"paymentMethodTypeId", "EXT_BILLACT"));
if (orderPaymentPreferences != null &&
orderPaymentPreferences.size() > 0) {
GenericValue orderPaymentPreference =
EntityUtil.getFirst(orderPaymentPreferences);
-
+
// Check the productStore setting to see if we need to do
this explicitly
GenericValue productStore =
order.getRelatedOne("ProductStore");
- if (productStore.getString("manualAuthIsCapture") == null || (!
productStore.getString("manualAuthIsCapture").equalsIgnoreCase("Y"))) {
+ if (productStore.getString("manualAuthIsCapture") == null || (!
productStore.getString("manualAuthIsCapture").equalsIgnoreCase("Y"))) {
String responseId =
delegator.getNextSeqId("PaymentGatewayResponse");
GenericValue pgResponse =
delegator.makeValue("PaymentGatewayResponse");
pgResponse.set("paymentGatewayResponseId", responseId);
@@ -1390,7 +1392,7 @@
// Update the orderPaymentPreference
orderPaymentPreference.set("statusId",
"PAYMENT_SETTLED");
orderPaymentPreference.store();
-
+
results.put("paymentGatewayResponseId", responseId);
}
}
@@ -1415,7 +1417,7 @@
captureAmount = captureAmount.setScale(decimals, rounding);
String orderId = (String) context.get("orderId");
BigDecimal capturedAmount = BigDecimal.ZERO;
-
+
try {
// Select all the unapplied payment applications associated to the
billing account
List conditionList = UtilMisc.toList(EntityCondition.makeCondition("billingAccountId", EntityOperator.EQUALS,
billingAccountId),
@@ -1468,7 +1470,7 @@
results.put("captureAmount", new Double(capturedAmount.doubleValue()));
return results;
}
-
+
private static Map capturePayment(DispatchContext dctx, GenericValue userLogin, OrderReadHelper orh, GenericValue paymentPref,
double amount) {
return capturePayment(dctx, userLogin, orh, paymentPref, amount, null);
}
@@ -1544,17 +1546,17 @@
ModelService captureService = dctx.getModelService(serviceName);
Set inParams = captureService.getInParamNames();
if (inParams.contains("captureAmount")) {
- captureContext.put("captureAmount", new Double(amount));
+ captureContext.put("captureAmount", new Double(amount));
} else if (inParams.contains("processAmount")) {
- captureContext.put("processAmount", new Double(amount));
+ captureContext.put("processAmount", new Double(amount));
} else {
return ServiceUtil.returnError("Service [" + serviceName + "] does not have a captureAmount or processAmount. Its
parameters are: " + inParams);
}
} catch (GenericServiceException ex) {
return ServiceUtil.returnError("Cannot get model service for " +
serviceName);
}
-
-
+
+
if (authTrans != null) {
captureContext.put("authTrans", authTrans);
}
@@ -1564,7 +1566,7 @@
// now invoke the capture service
Map captureResult = null;
try {
- // NOTE DEJ20070819 calling this with a new transaction
synchronously caused a deadlock because in this
+ // NOTE DEJ20070819 calling this with a new transaction
synchronously caused a deadlock because in this
//transaction OrderHeader was updated and with this transaction
paused and waiting for the new transaction
//and the new transaction was waiting trying to read the same
OrderHeader record; note that this only happens
//for FinAccounts because they are processed internally whereas
others are not
@@ -1673,7 +1675,7 @@
// in case we rollback make sure this service gets called
dispatcher.addRollbackService(model.name, context, true);
- // invoke the service
+ // invoke the service
Map resResp;
try {
resResp = dispatcher.runSync(model.name, context);
@@ -1683,7 +1685,7 @@
}
if (ServiceUtil.isError(resResp)) {
throw new GeneralException(ServiceUtil.getErrorMessage(resResp));
- }
+ }
}
public static Map processAuthResult(DispatchContext dctx, Map context) {
@@ -1725,7 +1727,7 @@
response.set("paymentMethodId",
orderPaymentPreference.get("paymentMethodId"));
response.set("transCodeEnumId", "PGT_AUTHORIZE");
response.set("currencyUomId", currencyUomId);
-
+
// set the avs/fraud result
response.set("gatewayAvsResult", context.get("avsCode"));
response.set("gatewayCvResult", context.get("cvCode"));
@@ -1739,7 +1741,7 @@
response.set("gatewayFlag", context.get("authFlag"));
response.set("gatewayMessage", context.get("authMessage"));
response.set("transactionDate", UtilDateTime.nowTimestamp());
-
+
if (Boolean.TRUE.equals((Boolean) context.get("resultDeclined")))
response.set("resultDeclined", "Y");
if (Boolean.TRUE.equals((Boolean) context.get("resultNsf")))
response.set("resultNsf", "Y");
if (Boolean.TRUE.equals((Boolean) context.get("resultBadExpire")))
response.set("resultBadExpire", "Y");
@@ -1747,7 +1749,7 @@
// save the response
savePgr(dctx, response);
-
+
// create the internal messages
List messages = (List) context.get("internalRespMsgs");
if (messages != null && messages.size() > 0) {
@@ -1762,11 +1764,11 @@
savePgr(dctx, respMsg);
}
}
-
+
if (response.getDouble("amount").doubleValue() != ((Double)
context.get("processAmount")).doubleValue()) {
Debug.logWarning("The authorized amount does not match the max amount : Response - " + response + " : result - " +
context, module);
}
-
+
// set the status of the OrderPaymentPreference
if (context != null && authResult.booleanValue()) {
orderPaymentPreference.set("statusId", "PAYMENT_AUTHORIZED");
@@ -1775,11 +1777,11 @@
} else {
orderPaymentPreference.set("statusId", "PAYMENT_ERROR");
}
-
+
// remove sensitive credit card data regardless of outcome
orderPaymentPreference.set("securityCode", null);
- orderPaymentPreference.set("track2", null);
-
+ orderPaymentPreference.set("track2", null);
+
boolean needsNsfRetry = needsNsfRetry(orderPaymentPreference,
context, delegator);
if (needsNsfRetry) {
orderPaymentPreference.set("needsNsfRetry", "Y");
@@ -1799,7 +1801,7 @@
creditCard.set("consecutiveFailedAuths", new
Long(consecutiveFailedAuths.longValue() + 1));
}
creditCard.set("lastFailedAuthDate", nowTimestamp);
-
+
if (Boolean.TRUE.equals((Boolean)
context.get("resultNsf"))) {
Long consecutiveFailedNsf =
creditCard.getLong("consecutiveFailedNsf");
if (consecutiveFailedNsf == null) {
@@ -1812,7 +1814,7 @@
creditCard.store();
}
}
-
+
// auth was successful, to clear out any failed auth or nsf info
if (authResult.booleanValue()) {
if ((creditCard != null) &&
(creditCard.get("lastFailedAuthDate") != null)) {
@@ -1831,7 +1833,7 @@
return ServiceUtil.returnSuccess();
}
-
+
private static boolean needsNsfRetry(GenericValue orderPaymentPreference, Map processContext, GenericDelegator delegator)
throws GenericEntityException {
boolean needsNsfRetry = false;
if (Boolean.TRUE.equals((Boolean) processContext.get("resultNsf"))) {
@@ -1840,16 +1842,16 @@
if
(UtilValidate.isNotEmpty(orderHeader.getString("autoOrderShoppingListId"))) {
GenericValue productStore =
orderHeader.getRelatedOne("ProductStore");
if
("Y".equals(productStore.getString("autoOrderCcTryLaterNsf"))) {
- // one last condition: make sure there have been less than
ProductStore.autoOrderCcTryLaterMax
+ // one last condition: make sure there have been less than
ProductStore.autoOrderCcTryLaterMax
// PaymentGatewayResponse records with the same orderPaymentPreferenceId and paymentMethodId (just in case
it has changed)
// and that have resultNsf = Y, ie only consider other
NSF responses
Long autoOrderCcTryLaterMax =
productStore.getLong("autoOrderCcTryLaterMax");
if (autoOrderCcTryLaterMax != null) {
- long failedTries =
delegator.findCountByCondition("PaymentGatewayResponse",
+ long failedTries =
delegator.findCountByCondition("PaymentGatewayResponse",
EntityCondition.makeCondition(UtilMisc.toMap(
- "orderPaymentPreferenceId",
orderPaymentPreference.get("orderPaymentPreferenceId"),
+ "orderPaymentPreferenceId",
orderPaymentPreference.get("orderPaymentPreferenceId"),
"paymentMethodId",
orderPaymentPreference.get("paymentMethodId"),
- "resultNsf", "Y"),
+ "resultNsf", "Y"),
EntityOperator.AND),
null, null);
if (failedTries < autoOrderCcTryLaterMax.longValue()) {
@@ -2085,7 +2087,7 @@
Debug.logError(e, message, module);
return ServiceUtil.returnError(message );
}
- }
+ }
// determine the partyIdFrom for the payment, which is who made the
payment
String partyIdFrom = null;
@@ -2118,7 +2120,7 @@
} else {
// otherwise default to Company and print a big warning about
this
partyIdTo = "Company";
- Debug.logWarning("Using default value of [" + partyIdTo + "] for payTo on invoice [" + invoiceId + "] and
orderPaymentPreference [" +
+ Debug.logWarning("Using default value of [" + partyIdTo + "] for payTo on invoice [" + invoiceId + "] and
orderPaymentPreference [" +
paymentPreference.getString("orderPaymentPreferenceId") +
"]", module);
}
@@ -2486,12 +2488,12 @@
return ServiceUtil.returnSuccess();
}
-
+
public static Map retryFailedAuthNsfs(DispatchContext dctx, Map context) {
GenericDelegator delegator = dctx.getDelegator();
LocalDispatcher dispatcher = dctx.getDispatcher();
GenericValue userLogin = (GenericValue) context.get("userLogin");
-
+
// get the date/time for one week before now since we'll only retry
once a week for NSFs
Calendar calcCal = Calendar.getInstance();
calcCal.setTimeInMillis(System.currentTimeMillis());
@@ -2501,7 +2503,7 @@
EntityListIterator eli = null;
try {
eli = delegator.find("OrderPaymentPreference",
- EntityCondition.makeCondition(EntityCondition.makeCondition("needsNsfRetry", EntityOperator.EQUALS, "Y"),
EntityOperator.AND, EntityCondition.makeCondition(ModelEntity.STAMP_FIELD, EntityOperator.LESS_THAN_EQUAL_TO, oneWeekAgo)),
+ EntityCondition.makeCondition(EntityCondition.makeCondition("needsNsfRetry", EntityOperator.EQUALS, "Y"),
EntityOperator.AND, EntityCondition.makeCondition(ModelEntity.STAMP_FIELD, EntityOperator.LESS_THAN_EQUAL_TO, oneWeekAgo)),
null, null, UtilMisc.toList("orderId"), null);
List processList = new ArrayList();
@@ -2535,7 +2537,7 @@
return ServiceUtil.returnSuccess();
}
-
+
public static GenericValue getCaptureTransaction(GenericValue
orderPaymentPreference) {
GenericValue capTrans = null;
try {
@@ -2555,7 +2557,7 @@
/**
* Gets the chronologically latest PaymentGatewayResponse from an
OrderPaymentPreference which is either a PRDS_PAY_AUTH
- * or PRDS_PAY_REAUTH. Used for capturing.
+ * or PRDS_PAY_REAUTH. Used for capturing.
* @param orderPaymentPreference
* @return
*/
@@ -2648,7 +2650,7 @@
}
// safe payment gateway store
- private static void savePgr(DispatchContext dctx, GenericValue pgr) {
+ private static void savePgr(DispatchContext dctx, GenericValue pgr) {
Map context = UtilMisc.toMap("paymentGatewayResponse", pgr);
LocalDispatcher dispatcher = dctx.getDispatcher();
GenericDelegator delegator = dctx.getDelegator();
@@ -2957,7 +2959,7 @@
}
}
}
-
+
return ServiceUtil.returnSuccess();
}
@@ -3044,7 +3046,7 @@
result.put("processAmount", context.get("processAmount"));
result.put("authRefNum", refNum);
result.put("authAltRefNum", refNum);
- result.put("authCode", "100");
+ result.put("authCode", "100");
result.put("authMessage", "This is a test processor; no payments were
captured or authorized.");
return result;
@@ -3156,7 +3158,7 @@
String expireDate = creditCard.getString("expireDate");
String lastNumberStr = expireDate.substring(expireDate.length() - 1);
int lastNumber = Integer.parseInt(lastNumberStr);
-
+
if ((float) lastNumber / 2.0 == 0.0) {
return alwaysBadExpireProcessor(dctx, context);
} else {