Possibly, you could check if you wanted to, in ecommerce add a few products to the cart as an anonymous shopper so that it goes over $50 then in the view cart screen enter the promo code 9000. A $10 discount should be applied but if the bug exists 3 x $10 discounts will be applied.
Regards Scott On 15/11/2007, BJ Freeman <[EMAIL PROTECTED]> wrote: > is this to fix something before branch to ver 4.0? > > [EMAIL PROTECTED] sent the following on 11/13/2007 9:56 PM: > > Author: lektran > > Date: Tue Nov 13 21:56:16 2007 > > New Revision: 594781 > > > > URL: http://svn.apache.org/viewvc?rev=594781&view=rev > > Log: > > Promo Code's use limit per customer was not being honoured for anonymous > > shoppers, resulted in a promotion being applied to the cart multiple times > > (up to the promo code use limit) > > > > 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=594781&r1=594780&r2=594781&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 > > Tue Nov 13 21:56:16 2007 > > @@ -485,14 +485,17 @@ > > > > // check promo code use limits, per customer, code > > Long codeUseLimitPerCustomer = > > productPromoCode.getLong("useLimitPerCustomer"); > > - if (codeUseLimitPerCustomer != null && > > UtilValidate.isNotEmpty(partyId)) { > > - // check to see how many times this has been used for other > > orders for this customer, the remainder is the limit for this order > > - EntityCondition checkCondition = new > > EntityConditionList(UtilMisc.toList( > > - new EntityExpr("productPromoCodeId", > > EntityOperator.EQUALS, productPromoCodeId), > > - new EntityExpr("partyId", EntityOperator.EQUALS, > > partyId), > > - new EntityExpr("statusId", EntityOperator.NOT_EQUAL, > > "ORDER_REJECTED"), > > - new EntityExpr("statusId", EntityOperator.NOT_EQUAL, > > "ORDER_CANCELLED")), EntityOperator.AND); > > - long productPromoCustomerUseSize = > > delegator.findCountByCondition("ProductPromoUseCheck", checkCondition, > > null); > > + if (codeUseLimitPerCustomer != null) { > > + long productPromoCustomerUseSize = 0; > > + if (UtilValidate.isNotEmpty(partyId)) { > > + // check to see how many times this has been used for > > other orders for this customer, the remainder is the limit for this order > > + EntityCondition checkCondition = new > > EntityConditionList(UtilMisc.toList( > > + new EntityExpr("productPromoCodeId", > > EntityOperator.EQUALS, productPromoCodeId), > > + new EntityExpr("partyId", EntityOperator.EQUALS, > > partyId), > > + new EntityExpr("statusId", > > EntityOperator.NOT_EQUAL, "ORDER_REJECTED"), > > + new EntityExpr("statusId", > > EntityOperator.NOT_EQUAL, "ORDER_CANCELLED")), EntityOperator.AND); > > + productPromoCustomerUseSize = > > delegator.findCountByCondition("ProductPromoUseCheck", checkCondition, > > null); > > + } > > long perCustomerThisOrder = > > codeUseLimitPerCustomer.longValue() - productPromoCustomerUseSize; > > if (codeUseLimit == null || codeUseLimit.longValue() > > > perCustomerThisOrder) { > > codeUseLimit = new Long(perCustomerThisOrder); > > > > > > > > > > >
