Done in  595663

Thanks Scott for use case and BJ for reminder

Jacques

De : "Scott Gray" <[EMAIL PROTECTED]>
> 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);
> > >
> > >
> > >
> > >
> > >
> >
>

Reply via email to