ofbiz-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From bibr...@apache.org
Subject svn commit: r608283 - /ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/product/ProductPromoWorker.java
Date Wed, 02 Jan 2008 23:40:29 GMT
Author: bibryam
Date: Wed Jan  2 15:40:27 2008
New Revision: 608283

URL: http://svn.apache.org/viewvc?rev=608283&view=rev
Log:
Applied (modified) patch from Rashko Rejmer, OFBIZ-1520: "X Product for Y%" promo action does
not calculate properly discounts for rental order items.
I also fixed the same bug for the other promotion actions.

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=608283&r1=608282&r2=608283&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
Wed Jan  2 15:40:27 2008
@@ -1250,7 +1250,7 @@
 
                         // create an adjustment and add it to the cartItem that implements
the promotion action
                         double percentModifier = productPromoAction.get("amount") == null
? 0.0 : (productPromoAction.getDouble("amount").doubleValue()/100.0);
-                        double lineAmount = quantityUsed * cartItem.getBasePrice();
+                        double lineAmount = quantityUsed * cartItem.getBasePrice() * cartItem.getRentalAdjustment();
                         double discountAmount = -(lineAmount * percentModifier);
                         discountAmountTotal += discountAmount;
                         // not doing this any more, now distributing among conditions and
actions (see call below): doOrderItemPromoAction(productPromoAction, cartItem, discountAmount,
"amount", delegator);
@@ -1295,8 +1295,8 @@
                     // create an adjustment and add it to the cartItem that implements the
promotion action
                     double discount = productPromoAction.get("amount") == null ? 0.0 : productPromoAction.getDouble("amount").doubleValue();
                     // don't allow the discount to be greater than the price
-                    if (discount > cartItem.getBasePrice()) {
-                        discount = cartItem.getBasePrice();
+                    if (discount > cartItem.getBasePrice() * cartItem.getRentalAdjustment())
{
+                        discount = cartItem.getBasePrice() * cartItem.getRentalAdjustment();
                     }
                     double discountAmount = -(quantityUsed * discount);
                     discountAmountTotal += discountAmount;
@@ -1337,7 +1337,7 @@
                     double quantityUsed = cartItem.addPromoQuantityCandidateUse(quantityDesired,
productPromoAction, false);
                     if (quantityUsed > 0) {
                         quantityDesired -= quantityUsed;
-                        totalAmount += quantityUsed * cartItem.getBasePrice();
+                        totalAmount += quantityUsed * cartItem.getBasePrice() * cartItem.getRentalAdjustment();
                         cartItemsUsed.add(cartItem);
                     }
                 }
@@ -1396,7 +1396,7 @@
                 }
                 
                 // get difference between basePrice and specialPromoPrice and adjust for
that
-                double difference = -(cartItem.getBasePrice() - cartItem.getSpecialPromoPrice().doubleValue());
+                double difference = -(cartItem.getBasePrice() * cartItem.getRentalAdjustment()
- cartItem.getSpecialPromoPrice().doubleValue());
 
                 if (difference != 0.0) {
                     double quantityUsed = cartItem.addPromoQuantityCandidateUse(cartItem.getQuantity(),
productPromoAction, false);



Mime
View raw message