[jira] [Created] (OFBIZ-5899) Hide useless error message related to the "Happy hour" (9020) promotion

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

[jira] [Created] (OFBIZ-5899) Hide useless error message related to the "Happy hour" (9020) promotion

Nicolas Malin (Jira)
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)