Author: sichen
Date: Mon Mar 3 09:17:50 2008
New Revision: 633182
URL:
http://svn.apache.org/viewvc?rev=633182&view=revLog:
Fix for issue in the cancelRemainingPurchaseOrderItems (used by the completePurchaseOrder service) where the code was getting short-circuited for items which were *not* being cancelled, so that approved items weren't being set to completed when they should have been.
Modified:
ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderServices.java
Modified: ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderServices.java
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderServices.java?rev=633182&r1=633181&r2=633182&view=diff==============================================================================
--- ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderServices.java (original)
+++ ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderServices.java Mon Mar 3 09:17:50 2008
@@ -4259,11 +4259,12 @@
}
double quantityToCancel = orderItemQuantity - orderItemCancelQuantity - receivedQuantity;
- if (quantityToCancel <= 0) continue;
-
+ if (quantityToCancel > 0) {
Map cancelOrderItemResult = dispatcher.runSync("cancelOrderItem", UtilMisc.toMap("orderId", orderId, "orderItemSeqId", orderItem.get("orderItemSeqId"), "cancelQuantity", new Double(quantityToCancel), "userLogin", userLogin));
if (ServiceUtil.isError(cancelOrderItemResult)) return cancelOrderItemResult;
-
+ }
+
+ // If there's nothing to cancel, the item should be set to completed, if it isn't already
orderItem.refresh();
if ("ITEM_APPROVED".equals(orderItem.getString("statusId"))) {
Map changeOrderItemStatusResult = dispatcher.runSync("changeOrderItemStatus", UtilMisc.toMap("orderId", orderId, "orderItemSeqId", orderItem.get("orderItemSeqId"), "statusId", "ITEM_COMPLETED", "userLogin", userLogin));