Author: surajk
Date: Sat Mar 30 05:53:42 2019
New Revision: 1856602
URL: http://svn.apache.org/viewvc?rev=1856602&view=rev
Log:
Improved: OrderId should be set in FinAccountTrans while gift card redemption
and creation.
(OFBIZ-10867)
Modified:
ofbiz/ofbiz-framework/trunk/applications/accounting/servicedef/services_finaccount.xml
ofbiz/ofbiz-framework/trunk/applications/accounting/src/main/java/org/apache/ofbiz/accounting/finaccount/FinAccountPaymentServices.java
ofbiz/ofbiz-framework/trunk/applications/accounting/src/main/java/org/apache/ofbiz/accounting/payment/GiftCertificateServices.java
Modified:
ofbiz/ofbiz-framework/trunk/applications/accounting/servicedef/services_finaccount.xml
URL:
http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/applications/accounting/servicedef/services_finaccount.xml?rev=1856602&r1=1856601&r2=1856602&view=diff
==============================================================================
---
ofbiz/ofbiz-framework/trunk/applications/accounting/servicedef/services_finaccount.xml
(original)
+++
ofbiz/ofbiz-framework/trunk/applications/accounting/servicedef/services_finaccount.xml
Sat Mar 30 05:53:42 2019
@@ -339,6 +339,7 @@ under the License.
location="org.apache.ofbiz.accounting.payment.GiftCertificateServices"
invoke="createGiftCertificate" auth="true">
<description>Generate a Gift Certificate number/pin and store as a
FinAccount</description>
<attribute name="productStoreId" type="String" mode="IN"
optional="false"/>
+ <attribute name="orderId" type="String" mode="IN" optional="false"/>
<attribute name="initialAmount" type="BigDecimal" mode="INOUT"
optional="false"/>
<attribute name="currency" type="String" mode="IN" optional="true"/>
<attribute name="partyId" type="String" mode="IN" optional="true"/>
@@ -367,6 +368,7 @@ under the License.
location="org.apache.ofbiz.accounting.payment.GiftCertificateServices"
invoke="redeemGiftCertificate" auth="true">
<description>Deduct funds from a Gift Certificate</description>
<attribute name="productStoreId" type="String" mode="IN"
optional="false"/>
+ <attribute name="orderId" type="String" mode="IN" optional="true"/>
<attribute name="cardNumber" type="String" mode="IN" optional="false"/>
<attribute name="pinNumber" type="String" mode="IN" optional="false"/>
<attribute name="amount" type="BigDecimal" mode="INOUT"
optional="false"/>
Modified:
ofbiz/ofbiz-framework/trunk/applications/accounting/src/main/java/org/apache/ofbiz/accounting/finaccount/FinAccountPaymentServices.java
URL:
http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/applications/accounting/src/main/java/org/apache/ofbiz/accounting/finaccount/FinAccountPaymentServices.java?rev=1856602&r1=1856601&r2=1856602&view=diff
==============================================================================
---
ofbiz/ofbiz-framework/trunk/applications/accounting/src/main/java/org/apache/ofbiz/accounting/finaccount/FinAccountPaymentServices.java
(original)
+++
ofbiz/ofbiz-framework/trunk/applications/accounting/src/main/java/org/apache/ofbiz/accounting/finaccount/FinAccountPaymentServices.java
Sat Mar 30 05:53:42 2019
@@ -1040,7 +1040,7 @@ public class FinAccountPaymentServices {
throw new GeneralException(e);
}
if (payResult == null) {
- throw new GeneralException("Unknow error in creating financial
account transaction!");
+ throw new GeneralException("Unknown error in creating financial
account transaction!");
}
if (ServiceUtil.isError(payResult)) {
throw new GeneralException(ServiceUtil.getErrorMessage(payResult));
Modified:
ofbiz/ofbiz-framework/trunk/applications/accounting/src/main/java/org/apache/ofbiz/accounting/payment/GiftCertificateServices.java
URL:
http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/applications/accounting/src/main/java/org/apache/ofbiz/accounting/payment/GiftCertificateServices.java?rev=1856602&r1=1856601&r2=1856602&view=diff
==============================================================================
---
ofbiz/ofbiz-framework/trunk/applications/accounting/src/main/java/org/apache/ofbiz/accounting/payment/GiftCertificateServices.java
(original)
+++
ofbiz/ofbiz-framework/trunk/applications/accounting/src/main/java/org/apache/ofbiz/accounting/payment/GiftCertificateServices.java
Sat Mar 30 05:53:42 2019
@@ -63,6 +63,7 @@ public class GiftCertificateServices {
Locale locale = (Locale) context.get("locale");
GenericValue userLogin = (GenericValue) context.get("userLogin");
String productStoreId = (String) context.get("productStoreId");
+ String orderId = (String) context.get("orderId");
BigDecimal initialAmount = (BigDecimal) context.get("initialAmount");
String currency = (String) context.get("currency");
String partyId = (String) context.get("partyId");
@@ -120,7 +121,7 @@ public class GiftCertificateServices {
createAccountCtx.put("finAccountTypeId",
FinAccountHelper.giftCertFinAccountTypeId);
createAccountCtx.put("productStoreId", productStoreId);
createAccountCtx.put("currencyUomId", currency);
- createAccountCtx.put("finAccountName", accountName + "for
party ["+partyId+"]");
+ createAccountCtx.put("finAccountName", accountName + " for
party ["+partyId+"]");
createAccountCtx.put("userLogin", userLogin);
acctResult = dispatcher.runSync("createFinAccountForStore",
createAccountCtx);
if (ServiceUtil.isError(acctResult)) {
@@ -139,7 +140,7 @@ public class GiftCertificateServices {
// that can actually create a financial account transaction
GenericValue permUserLogin =
EntityQuery.use(delegator).from("UserLogin").where("userLoginId",
"system").cache().queryOne();
refNum = createTransaction(delegator, dispatcher, permUserLogin,
initialAmount, productStoreId,
- partyId, currencyUom, deposit, finAccountId, locale);
+ partyId, currencyUom, deposit, finAccountId, locale,
orderId);
} catch (GenericEntityException | GenericServiceException e) {
Debug.logError(e, module);
@@ -259,6 +260,7 @@ public class GiftCertificateServices {
Locale locale = (Locale) context.get("locale");
GenericValue userLogin = (GenericValue) context.get("userLogin");
String productStoreId = (String) context.get("productStoreId");
+ String orderId = (String) context.get("orderId");
String cardNumber = (String) context.get("cardNumber");
String pinNumber = (String) context.get("pinNumber");
BigDecimal amount = (BigDecimal) context.get("amount");
@@ -312,7 +314,7 @@ public class GiftCertificateServices {
if (previousBalance.compareTo(amount) >= 0) {
try {
refNum = GiftCertificateServices.createTransaction(delegator,
dispatcher, userLogin, amount, productStoreId,
- partyId, currencyUom, withdrawl, cardNumber, locale);
+ partyId, currencyUom, withdrawl, cardNumber, locale,
orderId);
finAccount.refresh();
balance = finAccount.get("availableBalance") == null ?
BigDecimal.ZERO : finAccount.getBigDecimal("availableBalance");
procResult = Boolean.TRUE;
@@ -375,6 +377,7 @@ public class GiftCertificateServices {
Locale locale = (Locale) context.get("locale");
BigDecimal amount = (BigDecimal) context.get("processAmount");
String currency = (String) context.get("currency");
+ String orderId = (String) context.get("orderId");
// make sure we have a currency
if (currency == null) {
currency = EntityUtilProperties.getPropertyValue("general",
"currency.uom.id.default", "USD", delegator);
@@ -420,6 +423,7 @@ public class GiftCertificateServices {
redeemCtx.put("cardNumber", giftCard.get("finAccountId"));
redeemCtx.put("pinNumber", giftCard.get("finAccountCode"));
redeemCtx.put("currency", currency);
+ redeemCtx.put("orderId", orderId);
if (orh.getBillToParty() != null) {
redeemCtx.put("partyId", orh.getBillToParty().get("partyId"));
}
@@ -828,6 +832,7 @@ public class GiftCertificateServices {
// create a gift certificate
Map<String, Object> createGcCtx = new HashMap<>();
createGcCtx.put("productStoreId", productStoreId);
+ createGcCtx.put("orderId", orderId);
createGcCtx.put("currency", currency);
createGcCtx.put("partyId", partyId);
createGcCtx.put("initialAmount", amount);
@@ -1337,10 +1342,15 @@ public class GiftCertificateServices {
}
return false;
}
-
- private static String createTransaction(Delegator delegator,
LocalDispatcher dispatcher, GenericValue userLogin,
+ private static String createTransaction(Delegator delegator,
LocalDispatcher dispatcher, GenericValue userLogin,
+ BigDecimal amount, String
productStoreId, String partyId, String currencyUom, String txType,
+ String finAccountId, Locale
locale) throws GeneralException {
+ return createTransaction(delegator, dispatcher, userLogin, amount,
productStoreId,
+ partyId, currencyUom, txType, finAccountId, locale, null);
+ }
+ private static String createTransaction(Delegator delegator,
LocalDispatcher dispatcher, GenericValue userLogin,
BigDecimal amount, String productStoreId, String partyId, String
currencyUom, String txType,
- String finAccountId, Locale locale) throws GeneralException {
+ String finAccountId, Locale locale, String orderId) throws
GeneralException {
final String coParty = getPayToPartyId(delegator, productStoreId);
final String paymentMethodType = "GIFT_CERTIFICATE";
@@ -1383,7 +1393,7 @@ public class GiftCertificateServices {
throw new GeneralException(e);
}
if (payResult == null) {
- throw new GeneralException("Unknow error in creating financial
account transaction!");
+ throw new GeneralException("Unknown error in creating financial
account transaction!");
}
if (ServiceUtil.isError(payResult)) {
throw new GeneralException(ServiceUtil.getErrorMessage(payResult));
@@ -1397,6 +1407,7 @@ public class GiftCertificateServices {
transCtx.put("partyId", userLogin.getString("partyId"));
transCtx.put("userLogin", userLogin);
transCtx.put("paymentId", paymentId);
+ transCtx.put("orderId", orderId);
transCtx.put("amount", amount);
Map<String, Object> transResult = null;