Author: jonesde Date: Tue Sep 26 08:06:21 2006 New Revision: 450076 URL: http://svn.apache.org/viewvc?view=rev&rev=450076 Log: Fixed a bug in ensure quantity method, in certain circumstances was remove a full quantity of an item instead of reducing it to quantity to keep
Modified: incubator/ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCart.java Modified: incubator/ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCart.java URL: http://svn.apache.org/viewvc/incubator/ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCart.java?view=diff&rev=450076&r1=450075&r2=450076 ============================================================================== --- incubator/ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCart.java (original) +++ incubator/ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCart.java Tue Sep 26 08:06:21 2006 @@ -677,19 +677,19 @@ while (localIter.hasNext()) { ShoppingCartItem item = (ShoppingCartItem) localIter.next(); - if (quantityToKeep > item.getQuantity()) { + if (quantityToKeep >= item.getQuantity()) { // quantityToKeep sufficient to keep it all... just reduce quantityToKeep and move on quantityToKeep = quantityToKeep - item.getQuantity(); } else { // there is more in this than we want to keep, so reduce the quantity, or remove altogether... if (quantityToKeep == 0) { // nothing left to keep, just remove it... - this.removeCartItem(item, dispatcher); quantityRemoved += item.getQuantity(); + this.removeCartItem(item, dispatcher); } else { - // there is some to keep, so reduce quantity by quantityToKeep, at this point we know we'll take up all of the rest of the quantityToKeep - item.setQuantity(item.getQuantity() - quantityToKeep, dispatcher, this); - quantityRemoved += quantityToKeep; + // there is some to keep, so reduce quantity to quantityToKeep, at this point we know we'll take up all of the rest of the quantityToKeep + quantityRemoved += (item.getQuantity() - quantityToKeep); + item.setQuantity(quantityToKeep, dispatcher, this); quantityToKeep = 0; } }