Jacques Le Roux created OFBIZ-5899:
--------------------------------------
Summary: Hide useless error message related to the "Happy hour" (9020) promotion
Key: OFBIZ-5899
URL:
https://issues.apache.org/jira/browse/OFBIZ-5899 Project: OFBiz
Issue Type: Improvement
Components: product
Affects Versions: Trunk
Reporter: Jacques Le Roux
Assignee: Jacques Le Roux
Priority: Minor
When you run the tests and in other cases, the "Happy hour" (9020) promotion show this error message
{code}
[java] 2014-12-03 09:31:31,224 |main |ProductPromoWorker |E| org.ofbiz.order.shoppingcart.product.ProductPromoWorker$UseLimitException: ERROR: While calculating promotions the
promotion [9020] action was applied more than 0 times, so the calculation has been ended. This should generally never happen unless you have bad rule definitions.
[java] org.ofbiz.order.shoppingcart.product.ProductPromoWorker$UseLimitException: ERROR: While calculating promotions the promotion [9020] action was applied more than 0 times, so the calculation has bee
n ended. This should generally never happen unless you have bad rule definitions.
[java] at org.ofbiz.order.shoppingcart.product.ProductPromoWorker.runProductPromoRules(ProductPromoWorker.java:835) ~[ofbiz-order.jar:?]
{code}
Though it has no real effects, it makes no sense to show such message *"action was applied more than 0 times"* So I propose to hide it in such cases where it's misleading. The patch is quite simple
{code}
Index: ProductPromoWorker.java
===================================================================
--- ProductPromoWorker.java (revision 1643125)
+++ ProductPromoWorker.java (working copy)
@@ -411,6 +411,7 @@
// set a max limit on how many times each promo can be run, for cases where there is no use limit this will be the use limit
//default to 2 times the number of items in the cart
long maxUseLimit = cart.getTotalQuantity().multiply(BigDecimal.valueOf(2)).setScale(0, BigDecimal.ROUND_CEILING).longValue();
+ maxUseLimit = Math.max(1, maxUseLimit);
try {
// repeat until no more rules to run: either all rules are run, or no changes to the cart in a loop
{code}
If nobody seems a reason to not hide this message I will commit this fix in a week...
You can easily test it at any hour by changing the RecurrenceRule of recurrenceRuleId="205", for instance:
<RecurrenceRule recurrenceRuleId="205" frequency="DAILY" intervalNumber="1" countNumber="-1" byHourList="8,9,10,11,12,13,14,15,16,17,18,19" byDayList="MO,TU,WE,TH,FR"/>
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)