You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by su...@apache.org on 2020/06/05 07:44:07 UTC
[ofbiz-framework] branch trunk updated: Improved: Enforce
noninstantiability to FinAccountHelper Class. (#171)
This is an automated email from the ASF dual-hosted git repository.
surajk pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/ofbiz-framework.git
The following commit(s) were added to refs/heads/trunk by this push:
new 73b15e9 Improved: Enforce noninstantiability to FinAccountHelper Class. (#171)
73b15e9 is described below
commit 73b15e98677567787e983db5d76df0f296070a44
Author: Suraj Khurana <64...@users.noreply.github.com>
AuthorDate: Fri Jun 5 13:13:58 2020 +0530
Improved: Enforce noninstantiability to FinAccountHelper Class. (#171)
(OFBIZ-11723)
Made class as final, added private constructor, also made data members as private, defined getter methods and changed related occurrences.
---
.../finaccount/FinAccountPaymentServices.java | 18 +++---
.../finaccount/FinAccountProductServices.java | 2 +-
.../accounting/finaccount/FinAccountServices.java | 14 ++---
.../payment/GiftCertificateServices.java | 26 ++++----
.../ofbiz/order/finaccount/FinAccountHelper.java | 72 ++++++++++++----------
.../ofbiz/order/shoppingcart/CheckOutHelper.java | 2 +-
.../ofbiz/order/shoppingcart/ShoppingCart.java | 3 +-
7 files changed, 74 insertions(+), 63 deletions(-)
diff --git a/applications/accounting/src/main/java/org/apache/ofbiz/accounting/finaccount/FinAccountPaymentServices.java b/applications/accounting/src/main/java/org/apache/ofbiz/accounting/finaccount/FinAccountPaymentServices.java
index 3557bf2..dca9894 100644
--- a/applications/accounting/src/main/java/org/apache/ofbiz/accounting/finaccount/FinAccountPaymentServices.java
+++ b/applications/accounting/src/main/java/org/apache/ofbiz/accounting/finaccount/FinAccountPaymentServices.java
@@ -152,14 +152,14 @@ public class FinAccountPaymentServices {
Debug.logVerbose("In finAccountPreAuth finAccountSettings=" + finAccountSettings, MODULE);
}
- BigDecimal minBalance = FinAccountHelper.ZERO;
+ BigDecimal minBalance = FinAccountHelper.getZero();
String allowAuthToNegative = "N";
if (finAccountSettings != null) {
allowAuthToNegative = finAccountSettings.getString("allowAuthToNegative");
minBalance = finAccountSettings.getBigDecimal("minBalance");
if (minBalance == null) {
- minBalance = FinAccountHelper.ZERO;
+ minBalance = FinAccountHelper.getZero();
}
// validate the PIN if the store requires it
@@ -229,10 +229,10 @@ public class FinAccountPaymentServices {
// which includes active authorizations as well as transactions
BigDecimal availableBalance = finAccount.getBigDecimal("availableBalance");
if (availableBalance == null) {
- availableBalance = FinAccountHelper.ZERO;
+ availableBalance = FinAccountHelper.getZero();
} else {
BigDecimal availableBalanceOriginal = availableBalance;
- availableBalance = availableBalance.setScale(FinAccountHelper.decimals, FinAccountHelper.rounding);
+ availableBalance = availableBalance.setScale(FinAccountHelper.getDecimals(), FinAccountHelper.getRounding());
if (availableBalance.compareTo(availableBalanceOriginal) != 0) {
Debug.logWarning("In finAccountPreAuth for finAccountId [" + finAccountId + "] availableBalance ["
+ availableBalanceOriginal + "] was different after rounding [" + availableBalance
@@ -247,7 +247,7 @@ public class FinAccountPaymentServices {
String refNum;
// make sure to round and scale it to the same as availableBalance
- amount = amount.setScale(FinAccountHelper.decimals, FinAccountHelper.rounding);
+ amount = amount.setScale(FinAccountHelper.getDecimals(), FinAccountHelper.getRounding());
Debug.logInfo("Allow auth to negative: " + allowAuthToNegative + " :: available: " + availableBalance + " comp: " + minBalance + " = " + availableBalance.compareTo(minBalance) + " :: req: " + amount, MODULE);
// check the available balance to see if we can auth this tx
@@ -594,7 +594,7 @@ public class FinAccountPaymentServices {
// transaction if it is sufficient
BigDecimal previousBalance = finAccount.getBigDecimal("actualBalance");
if (previousBalance == null) {
- previousBalance = FinAccountHelper.ZERO;
+ previousBalance = FinAccountHelper.getZero();
}
BigDecimal balance;
@@ -621,7 +621,7 @@ public class FinAccountPaymentServices {
// make sure balance is not null
if (balance == null) {
- balance = FinAccountHelper.ZERO;
+ balance = FinAccountHelper.getZero();
}
Map<String, Object> result = ServiceUtil.returnSuccess();
@@ -686,7 +686,7 @@ public class FinAccountPaymentServices {
// get the previous balance
BigDecimal previousBalance = finAccount.getBigDecimal("actualBalance");
if (previousBalance == null) {
- previousBalance = FinAccountHelper.ZERO;
+ previousBalance = FinAccountHelper.getZero();
}
// create the transaction
@@ -704,7 +704,7 @@ public class FinAccountPaymentServices {
// make sure balance is not null
if (actualBalance == null) {
- actualBalance = FinAccountHelper.ZERO;
+ actualBalance = FinAccountHelper.getZero();
} else {
if (actualBalance.compareTo(BigDecimal.ZERO) < 0) {
// balance went below zero, set negative pending replenishment status so that no
diff --git a/applications/accounting/src/main/java/org/apache/ofbiz/accounting/finaccount/FinAccountProductServices.java b/applications/accounting/src/main/java/org/apache/ofbiz/accounting/finaccount/FinAccountProductServices.java
index 63ec943..d5c378d 100644
--- a/applications/accounting/src/main/java/org/apache/ofbiz/accounting/finaccount/FinAccountProductServices.java
+++ b/applications/accounting/src/main/java/org/apache/ofbiz/accounting/finaccount/FinAccountProductServices.java
@@ -189,7 +189,7 @@ public class FinAccountProductServices {
// price/amount/quantity to create initial deposit amount
BigDecimal quantity = orderItem.getBigDecimal("quantity");
BigDecimal price = orderItem.getBigDecimal("unitPrice");
- BigDecimal deposit = price.multiply(quantity).setScale(FinAccountHelper.decimals, FinAccountHelper.rounding);
+ BigDecimal deposit = price.multiply(quantity).setScale(FinAccountHelper.getDecimals(), FinAccountHelper.getRounding());
// create the financial account
Map<String, Object> createCtx = new HashMap<>();
diff --git a/applications/accounting/src/main/java/org/apache/ofbiz/accounting/finaccount/FinAccountServices.java b/applications/accounting/src/main/java/org/apache/ofbiz/accounting/finaccount/FinAccountServices.java
index 80b37e6..4b246d7 100644
--- a/applications/accounting/src/main/java/org/apache/ofbiz/accounting/finaccount/FinAccountServices.java
+++ b/applications/accounting/src/main/java/org/apache/ofbiz/accounting/finaccount/FinAccountServices.java
@@ -279,10 +279,10 @@ public class FinAccountServices {
BigDecimal availableBalance = finAccount.getBigDecimal("availableBalance");
BigDecimal balance = finAccount.getBigDecimal("actualBalance");
if (availableBalance == null) {
- availableBalance = FinAccountHelper.ZERO;
+ availableBalance = FinAccountHelper.getZero();
}
if (balance == null) {
- balance = FinAccountHelper.ZERO;
+ balance = FinAccountHelper.getZero();
}
String statusId = finAccount.getString("statusId");
@@ -321,16 +321,16 @@ public class FinAccountServices {
BigDecimal balance = finAccount.getBigDecimal("actualBalance");
if (balance == null) {
- balance = FinAccountHelper.ZERO;
+ balance = FinAccountHelper.getZero();
}
Debug.logInfo("Account #" + finAccountId + " Balance: " + balance + " Status: " + statusId, MODULE);
- if ("FNACT_ACTIVE".equals(statusId) && balance.compareTo(FinAccountHelper.ZERO) < 1) {
+ if ("FNACT_ACTIVE".equals(statusId) && balance.compareTo(FinAccountHelper.getZero()) < 1) {
finAccount.set("statusId", "FNACT_MANFROZEN");
Debug.logInfo("Financial account [" + finAccountId + "] has passed its threshold [" + balance
+ "] (Frozen)", MODULE);
- } else if ("FNACT_MANFROZEN".equals(statusId) && balance.compareTo(FinAccountHelper.ZERO) > 0) {
+ } else if ("FNACT_MANFROZEN".equals(statusId) && balance.compareTo(FinAccountHelper.getZero()) > 0) {
finAccount.set("statusId", "FNACT_ACTIVE");
Debug.logInfo("Financial account [" + finAccountId + "] has been made current [" + balance
+ "] (Un-Frozen)", MODULE);
@@ -391,7 +391,7 @@ public class FinAccountServices {
try (EntityListIterator eli = EntityQuery.use(delegator).from("FinAccountTrans").where(condition)
.orderBy("-transactionDate").queryIterator()) {
GenericValue trans;
- while (remainingBalance.compareTo(FinAccountHelper.ZERO) < 0 && (trans = eli.next()) != null) {
+ while (remainingBalance.compareTo(FinAccountHelper.getZero()) < 0 && (trans = eli.next()) != null) {
String orderId = trans.getString("orderId");
String orderItemSeqId = trans.getString("orderItemSeqId");
@@ -497,7 +497,7 @@ public class FinAccountServices {
}
// check to make sure we balanced out
- if (remainingBalance.compareTo(FinAccountHelper.ZERO) == 1) {
+ if (remainingBalance.compareTo(FinAccountHelper.getZero()) == 1) {
result = ServiceUtil.returnSuccess(UtilProperties.getMessage(RES_ERROR,
"AccountingFinAccountPartiallyRefunded", locale));
}
diff --git a/applications/accounting/src/main/java/org/apache/ofbiz/accounting/payment/GiftCertificateServices.java b/applications/accounting/src/main/java/org/apache/ofbiz/accounting/payment/GiftCertificateServices.java
index 9d22ec6..af6267f 100644
--- a/applications/accounting/src/main/java/org/apache/ofbiz/accounting/payment/GiftCertificateServices.java
+++ b/applications/accounting/src/main/java/org/apache/ofbiz/accounting/payment/GiftCertificateServices.java
@@ -84,7 +84,7 @@ public class GiftCertificateServices {
final String deposit = "DEPOSIT";
GenericValue giftCertSettings = EntityQuery.use(delegator).from("ProductStoreFinActSetting")
- .where("productStoreId", productStoreId, "finAccountTypeId", FinAccountHelper.giftCertFinAccountTypeId)
+ .where("productStoreId", productStoreId, "finAccountTypeId", FinAccountHelper.getGiftCertFinAccountTypeId())
.cache().queryOne();
Map<String, Object> acctResult = null;
@@ -106,7 +106,7 @@ public class GiftCertificateServices {
// create the FinAccount
Map<String, Object> acctCtx = UtilMisc.<String, Object>toMap("finAccountId", finAccountId);
- acctCtx.put("finAccountTypeId", FinAccountHelper.giftCertFinAccountTypeId);
+ acctCtx.put("finAccountTypeId", FinAccountHelper.getGiftCertFinAccountTypeId());
acctCtx.put("finAccountName", accountName);
acctCtx.put("finAccountCode", pinNumber);
acctCtx.put("userLogin", userLogin);
@@ -118,7 +118,7 @@ public class GiftCertificateServices {
} else {
Map<String, Object> createAccountCtx = new HashMap<>();
createAccountCtx.put("ownerPartyId", partyId);
- createAccountCtx.put("finAccountTypeId", FinAccountHelper.giftCertFinAccountTypeId);
+ createAccountCtx.put("finAccountTypeId", FinAccountHelper.getGiftCertFinAccountTypeId());
createAccountCtx.put("productStoreId", productStoreId);
createAccountCtx.put("currencyUomId", currency);
createAccountCtx.put("finAccountName", accountName + " for party ["+partyId+"]");
@@ -188,7 +188,7 @@ public class GiftCertificateServices {
// validate the pin if the store requires it and figure out the finAccountId from card number
try {
GenericValue giftCertSettings = EntityQuery.use(delegator).from("ProductStoreFinActSetting")
- .where("productStoreId", productStoreId, "finAccountTypeId", FinAccountHelper.giftCertFinAccountTypeId)
+ .where("productStoreId", productStoreId, "finAccountTypeId", FinAccountHelper.getGiftCertFinAccountTypeId())
.cache().queryOne();
if ("Y".equals(giftCertSettings.getString("requirePinCode"))) {
if (!validatePin(delegator, cardNumber, pinNumber)) {
@@ -206,7 +206,7 @@ public class GiftCertificateServices {
return ServiceUtil.returnError(UtilProperties.getMessage(RES_ERROR,
"AccountingFinAccountSetting",
UtilMisc.toMap("productStoreId", productStoreId,
- "finAccountTypeId", FinAccountHelper.giftCertFinAccountTypeId), locale));
+ "finAccountTypeId", FinAccountHelper.getGiftCertFinAccountTypeId()), locale));
}
if (finAccountId == null) {
@@ -283,7 +283,7 @@ public class GiftCertificateServices {
// validate the pin if the store requires it
try {
GenericValue giftCertSettings = EntityQuery.use(delegator).from("ProductStoreFinActSetting")
- .where("productStoreId", productStoreId, "finAccountTypeId", FinAccountHelper.giftCertFinAccountTypeId)
+ .where("productStoreId", productStoreId, "finAccountTypeId", FinAccountHelper.getGiftCertFinAccountTypeId())
.cache().queryOne();
if ("Y".equals(giftCertSettings.getString("requirePinCode")) && !validatePin(delegator, cardNumber, pinNumber)) {
return ServiceUtil.returnError(UtilProperties.getMessage(RES_ERROR,
@@ -293,7 +293,7 @@ public class GiftCertificateServices {
return ServiceUtil.returnError(UtilProperties.getMessage(RES_ERROR,
"AccountingFinAccountSetting",
UtilMisc.toMap("productStoreId", productStoreId,
- "finAccountTypeId", FinAccountHelper.giftCertFinAccountTypeId), locale));
+ "finAccountTypeId", FinAccountHelper.getGiftCertFinAccountTypeId()), locale));
}
Debug.logInfo("Attempting to redeem GC for " + amount, MODULE);
@@ -486,7 +486,7 @@ public class GiftCertificateServices {
// if the store requires pin codes, then validate pin code against card number, and the gift certificate's finAccountId is the gift card's card number
// otherwise, the gift card's card number is an ecrypted string, which must be decoded to find the FinAccount
GenericValue giftCertSettings = EntityQuery.use(delegator).from("ProductStoreFinActSetting")
- .where("productStoreId", productStoreId, "finAccountTypeId", FinAccountHelper.giftCertFinAccountTypeId)
+ .where("productStoreId", productStoreId, "finAccountTypeId", FinAccountHelper.getGiftCertFinAccountTypeId())
.cache().queryOne();
GenericValue finAccount = null;
String finAccountId = null;
@@ -509,7 +509,7 @@ public class GiftCertificateServices {
return ServiceUtil.returnError(UtilProperties.getMessage(RES_ERROR,
"AccountingFinAccountSetting",
UtilMisc.toMap("productStoreId", productStoreId,
- "finAccountTypeId", FinAccountHelper.giftCertFinAccountTypeId), locale));
+ "finAccountTypeId", FinAccountHelper.getGiftCertFinAccountTypeId()), locale));
}
if (finAccountId == null) {
@@ -531,7 +531,7 @@ public class GiftCertificateServices {
Map<String, Object> result = ServiceUtil.returnSuccess();
// make sure to round and scale it to the same as availableBalance
- amount = amount.setScale(FinAccountHelper.decimals, FinAccountHelper.rounding);
+ amount = amount.setScale(FinAccountHelper.getDecimals(), FinAccountHelper.getRounding());
// if availableBalance equal to or greater than amount, then auth
if (UtilValidate.isNotEmpty(availableBalance) && availableBalance.compareTo(amount) >= 0) {
@@ -756,14 +756,14 @@ public class GiftCertificateServices {
GenericValue giftCertSettings = null;
try {
giftCertSettings = EntityQuery.use(delegator).from("ProductStoreFinActSetting")
- .where("productStoreId", productStoreId, "finAccountTypeId", FinAccountHelper.giftCertFinAccountTypeId)
+ .where("productStoreId", productStoreId, "finAccountTypeId", FinAccountHelper.getGiftCertFinAccountTypeId())
.cache().queryOne();
} catch (GenericEntityException e) {
- Debug.logError(e, "Unable to get Product Store FinAccount settings for " + FinAccountHelper.giftCertFinAccountTypeId, MODULE);
+ Debug.logError(e, "Unable to get Product Store FinAccount settings for " + FinAccountHelper.getGiftCertFinAccountTypeId(), MODULE);
return ServiceUtil.returnError(UtilProperties.getMessage(RES_ERROR,
"AccountingFinAccountSetting",
UtilMisc.toMap("productStoreId", productStoreId,
- "finAccountTypeId", FinAccountHelper.giftCertFinAccountTypeId), locale) + ": " + e.getMessage());
+ "finAccountTypeId", FinAccountHelper.getGiftCertFinAccountTypeId()), locale) + ": " + e.getMessage());
}
// survey information
diff --git a/applications/order/src/main/java/org/apache/ofbiz/order/finaccount/FinAccountHelper.java b/applications/order/src/main/java/org/apache/ofbiz/order/finaccount/FinAccountHelper.java
index 8f18868..48a5f61 100644
--- a/applications/order/src/main/java/org/apache/ofbiz/order/finaccount/FinAccountHelper.java
+++ b/applications/order/src/main/java/org/apache/ofbiz/order/finaccount/FinAccountHelper.java
@@ -42,31 +42,41 @@ import org.apache.ofbiz.entity.util.EntityQuery;
* A package of methods for improving efficiency of financial accounts services
*
*/
-public class FinAccountHelper {
-
- private static final String MODULE = FinAccountHelper.class.getName();
- /**
- * A word on precision: since we're just adding and subtracting, the interim figures should have one more decimal place of precision than the final numbers.
- */
- public static final int decimals = UtilNumber.getBigDecimalScale("finaccount.decimals");
- public static final RoundingMode rounding = UtilNumber.getRoundingMode("finaccount.rounding");
- public static final BigDecimal ZERO = BigDecimal.ZERO.setScale(decimals, rounding);
-
- public static final String giftCertFinAccountTypeId = "GIFTCERT_ACCOUNT";
-
- // pool of available characters for account codes, here numbers plus uppercase characters
- static char[] char_pool = new char[10+26];
- static {
- int j = 0;
- for (int i = "0".charAt(0); i <= "9".charAt(0); i++) {
- char_pool[j++] = (char) i;
- }
- for (int i = "A".charAt(0); i <= "Z".charAt(0); i++) {
- char_pool[j++] = (char) i;
- }
- }
-
-
+public final class FinAccountHelper {
+ private static final String MODULE = FinAccountHelper.class.getName();
+ /**
+ * Precision: since we're just adding and subtracting, the interim figures should have one more decimal place of precision than the final numbers
+ */
+ private static final int DECIMALS = UtilNumber.getBigDecimalScale("finaccount.decimals");
+ private static final RoundingMode ROUNDING = UtilNumber.getRoundingMode("finaccount.rounding");
+ private static final BigDecimal ZERO = BigDecimal.ZERO.setScale(DECIMALS, ROUNDING);
+ private static final String GC_FIN_ACCOUNT_TYPE = "GIFTCERT_ACCOUNT";
+
+ protected FinAccountHelper() { }
+
+ // pool of available characters for account codes, here numbers plus uppercase characters
+ private static char[] charPool = new char[10 + 26];
+ static {
+ int j = 0;
+ for (int i = "0".charAt(0); i <= "9".charAt(0); i++) {
+ charPool[j++] = (char) i;
+ }
+ for (int i = "A".charAt(0); i <= "Z".charAt(0); i++) {
+ charPool[j++] = (char) i;
+ }
+ }
+ public static int getDecimals() {
+ return DECIMALS;
+ }
+ public static RoundingMode getRounding() {
+ return ROUNDING;
+ }
+ public static BigDecimal getZero() {
+ return ZERO;
+ }
+ public static String getGiftCertFinAccountTypeId() {
+ return GC_FIN_ACCOUNT_TYPE;
+ }
/**
* A convenience method which adds transactions.get(0).get(fieldName) to initialValue, all done in BigDecimal to decimals and rounding
* @param initialValue the initial value
@@ -109,7 +119,7 @@ public class FinAccountHelper {
while (!foundUniqueNewCode) {
newAccountCode = new StringBuilder(codeLength);
for (int i = 0; i < codeLength; i++) {
- newAccountCode.append(char_pool[r.nextInt(char_pool.length)]);
+ newAccountCode.append(charPool[r.nextInt(charPool.length)]);
}
GenericValue existingAccountWithCode = EntityQuery.use(delegator).from("FinAccount")
@@ -183,7 +193,7 @@ public class FinAccountHelper {
EntityCondition.makeCondition("finAccountTransTypeId", EntityOperator.EQUALS, "ADJUSTMENT")),
EntityOperator.OR))
.queryList();
- incrementTotal = addFirstEntryAmount(incrementTotal, transSums, "amount", (decimals+1), rounding);
+ incrementTotal = addFirstEntryAmount(incrementTotal, transSums, "amount", (DECIMALS+1), ROUNDING);
// now find sum of all transactions with decrease the value
transSums = EntityQuery.use(delegator)
@@ -193,10 +203,10 @@ public class FinAccountHelper {
EntityCondition.makeCondition("transactionDate", EntityOperator.LESS_THAN_EQUAL_TO, asOfDateTime),
EntityCondition.makeCondition("finAccountTransTypeId", EntityOperator.EQUALS, "WITHDRAWAL"))
.queryList();
- decrementTotal = addFirstEntryAmount(decrementTotal, transSums, "amount", (decimals+1), rounding);
+ decrementTotal = addFirstEntryAmount(decrementTotal, transSums, "amount", (DECIMALS+1), ROUNDING);
// the net balance is just the incrementTotal minus the decrementTotal
- return incrementTotal.subtract(decrementTotal).setScale(decimals, rounding);
+ return incrementTotal.subtract(decrementTotal).setScale(DECIMALS, ROUNDING);
}
/**
@@ -220,10 +230,10 @@ public class FinAccountHelper {
EntityCondition.makeCondition("authorizationDate", EntityOperator.LESS_THAN_EQUAL_TO, asOfDateTime))
.queryList();
- BigDecimal authorizationsTotal = addFirstEntryAmount(ZERO, authSums, "amount", (decimals+1), rounding);
+ BigDecimal authorizationsTotal = addFirstEntryAmount(ZERO, authSums, "amount", (DECIMALS+1), ROUNDING);
// the total available balance is transactions total minus authorizations total
- return netBalance.subtract(authorizationsTotal).setScale(decimals, rounding);
+ return netBalance.subtract(authorizationsTotal).setScale(DECIMALS, ROUNDING);
}
public static boolean validateFinAccount(GenericValue finAccount) {
diff --git a/applications/order/src/main/java/org/apache/ofbiz/order/shoppingcart/CheckOutHelper.java b/applications/order/src/main/java/org/apache/ofbiz/order/shoppingcart/CheckOutHelper.java
index 863b1eb..f6b0e5c 100644
--- a/applications/order/src/main/java/org/apache/ofbiz/order/shoppingcart/CheckOutHelper.java
+++ b/applications/order/src/main/java/org/apache/ofbiz/order/shoppingcart/CheckOutHelper.java
@@ -471,7 +471,7 @@ public class CheckOutHelper {
errorMessages.add(errMsg);
gcFieldsOkay = false;
} else if ((finAccount.getBigDecimal("availableBalance") == null) ||
- !((finAccount.getBigDecimal("availableBalance")).compareTo(FinAccountHelper.ZERO) > 0)) {
+ !((finAccount.getBigDecimal("availableBalance")).compareTo(FinAccountHelper.getZero()) > 0)) {
// if account's available balance (including authorizations) is not greater than zero, then return an error
errMsg = UtilProperties.getMessage(RES_ERROR,"checkhelper.gift_card_has_no_value", cart.getLocale());
errorMessages.add(errMsg);
diff --git a/applications/order/src/main/java/org/apache/ofbiz/order/shoppingcart/ShoppingCart.java b/applications/order/src/main/java/org/apache/ofbiz/order/shoppingcart/ShoppingCart.java
index c91a056..5131be5 100644
--- a/applications/order/src/main/java/org/apache/ofbiz/order/shoppingcart/ShoppingCart.java
+++ b/applications/order/src/main/java/org/apache/ofbiz/order/shoppingcart/ShoppingCart.java
@@ -1951,7 +1951,8 @@ public class ShoppingCart implements Iterable<ShoppingCartItem>, Serializable {
* @throws GenericEntityException
*/
public GenericValue getGiftCertSettingFromStore(Delegator delegator) throws GenericEntityException {
- return EntityQuery.use(delegator).from("ProductStoreFinActSetting").where("productStoreId", getProductStoreId(), "finAccountTypeId", FinAccountHelper.giftCertFinAccountTypeId).cache().queryOne();
+ return EntityQuery.use(delegator).from("ProductStoreFinActSetting")
+ .where("productStoreId", getProductStoreId(), "finAccountTypeId", FinAccountHelper.getGiftCertFinAccountTypeId()).cache().queryOne();
}
/**