Author: jonesde
Date: Sun Mar 13 18:28:41 2011
New Revision: 1081185
URL:
http://svn.apache.org/viewvc?rev=1081185&view=revLog:
Fixed bug causing promotions with text condValues to blow up, causing other promos to also not run
Modified:
ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/product/ProductPromoWorker.java
Modified: ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/product/ProductPromoWorker.java
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/product/ProductPromoWorker.java?rev=1081185&r1=1081184&r2=1081185&view=diff==============================================================================
--- ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/product/ProductPromoWorker.java (original)
+++ ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/product/ProductPromoWorker.java Sun Mar 13 18:28:41 2011
@@ -1295,20 +1295,22 @@ public class ProductPromoWorker {
BigDecimal amountOff = listPrice.subtract(basePrice);
BigDecimal percentOff = amountOff.divide(listPrice, 2, BigDecimal.ROUND_HALF_UP).multiply(BigDecimal.valueOf(100L));
- BigDecimal condValueBigDecimal = new BigDecimal(condValue);
-
Integer compareBase = null;
if ("PPIP_LPMUP_AMT".equals(inputParamEnumId)) {
+ // NOTE: only check this after we know it's this type of cond, otherwise condValue may not be a number
+ BigDecimal condValueBigDecimal = new BigDecimal(condValue);
compareBase = Integer.valueOf(amountOff.compareTo(condValueBigDecimal));
} else if ("PPIP_LPMUP_PER".equals(inputParamEnumId)) {
+ // NOTE: only check this after we know it's this type of cond, otherwise condValue may not be a number
+ BigDecimal condValueBigDecimal = new BigDecimal(condValue);
compareBase = Integer.valueOf(percentOff.compareTo(condValueBigDecimal));
} else {
// condition doesn't apply to individual item, always passes
return true;
}
- Debug.logInfo("Checking condition for item productId=" + cartItem.getProductId() + ", listPrice=" + listPrice + ", basePrice=" + basePrice + ", amountOff=" + amountOff + ", percentOff=" + percentOff + ", condValueBigDecimal=" + condValueBigDecimal + ", compareBase=" + compareBase + ", productPromoCond=" + productPromoCond, module);
+ Debug.logInfo("Checking condition for item productId=" + cartItem.getProductId() + ", listPrice=" + listPrice + ", basePrice=" + basePrice + ", amountOff=" + amountOff + ", percentOff=" + percentOff + ", condValue=" + condValue + ", compareBase=" + compareBase + ", productPromoCond=" + productPromoCond, module);
if (compareBase != null) {
int compare = compareBase.intValue();