Author: sichen
Date: Fri Jan 25 07:02:34 2008 New Revision: 615240 URL: http://svn.apache.org/viewvc?rev=615240&view=rev Log: reversing my previous commit r 614970 which may have undesirable side effects Modified: ofbiz/trunk/applications/product/servicedef/secas.xml ofbiz/trunk/applications/product/servicedef/services_facility.xml ofbiz/trunk/applications/product/src/org/ofbiz/product/inventory/InventoryServices.java Modified: ofbiz/trunk/applications/product/servicedef/secas.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/servicedef/secas.xml?rev=615240&r1=615239&r2=615240&view=diff ============================================================================== --- ofbiz/trunk/applications/product/servicedef/secas.xml (original) +++ ofbiz/trunk/applications/product/servicedef/secas.xml Fri Jan 25 07:02:34 2008 @@ -70,22 +70,6 @@ <action service="updateProductIfAvailableFromShipment" mode="sync"/> </eca> - <!-- Before reserving inventory, ensure that we're not over reserving the item --> - <eca service="reserveProductInventory" event="invoke"> - <action service="checkInventoryAlreadyReserved" mode="sync"/> - </eca> - <eca service="reserveProductInventoryByFacility" event="invoke"> - <action service="checkInventoryAlreadyReserved" mode="sync"/> - </eca> - <eca service="reserveProductInventoryByContainer" event="invoke"> - <action service="checkInventoryAlreadyReserved" mode="sync"/> - </eca> - <eca service="reserveStoreInventory" event="invoke"> - <condition field-name="orderId" operator="is-not-empty"/> - <condition field-name="orderItemSeqId" operator="is-not-empty"/> - <action service="checkInventoryAlreadyReserved" mode="sync"/> - </eca> - <!-- Product Price Change ECAs --> <eca service="createProductPrice" event="commit"> <action service="saveProductPriceChange" mode="sync"/> Modified: ofbiz/trunk/applications/product/servicedef/services_facility.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/servicedef/services_facility.xml?rev=615240&r1=615239&r2=615240&view=diff ============================================================================== --- ofbiz/trunk/applications/product/servicedef/services_facility.xml (original) +++ ofbiz/trunk/applications/product/servicedef/services_facility.xml Fri Jan 25 07:02:34 2008 @@ -312,14 +312,6 @@ <attribute name="sequenceId" type="Long" mode="IN" optional="true"/> <attribute name="quantityNotReserved" type="Double" mode="OUT" optional="false"/> </service> - <service name="checkInventoryAlreadyReserved" engine="java" - location="org.ofbiz.product.inventory.InventoryServices" invoke="checkInventoryAlreadyReserved"> - <description>Ensures that a request to reserve inventory for an order item does not over reserve it. - This should be run as an invoke SECA on all reserveProductInventory services.</description> - <attribute name="orderId" type="String" mode="IN" optional="false"/> - <attribute name="orderItemSeqId" type="String" mode="IN" optional="false"/> - <attribute name="quantity" type="Double" mode="IN" optional="false"/> - </service> <service name="reserveOrderItemInventory" engine="simple" location="org/ofbiz/product/inventory/InventoryReserveServices.xml" invoke="reserveOrderItemInventory" auth="true"> <description>Create OrderItemShipGrpInvRes or increment existing reserved quantity.</description> Modified: ofbiz/trunk/applications/product/src/org/ofbiz/product/inventory/InventoryServices.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/src/org/ofbiz/product/inventory/InventoryServices.java?rev=615240&r1=615239&r2=615240&view=diff ============================================================================== --- ofbiz/trunk/applications/product/src/org/ofbiz/product/inventory/InventoryServices.java (original) +++ ofbiz/trunk/applications/product/src/org/ofbiz/product/inventory/InventoryServices.java Fri Jan 25 07:02:34 2008 @@ -1004,37 +1004,4 @@ return result; } - public static Map checkInventoryAlreadyReserved(DispatchContext dctx, Map context) { - GenericDelegator delegator = dctx.getDelegator(); - - String orderId = (String) context.get("orderId"); - String orderItemSeqId = (String) context.get("orderItemSeqId"); - double reserving = (Double) context.get("quantity"); - try { - // count quantity ordered - double ordered = 0.0; - GenericValue item = delegator.findByPrimaryKey("OrderItem", UtilMisc.toMap("orderId", orderId, "orderItemSeqId", orderItemSeqId)); - if (item == null) return ServiceUtil.returnError("Order Item for order ["+orderId+"] with sequence Id ["+orderItemSeqId+"] not found."); - ordered = item.getDouble("quantity"); - ordered -= (item.get("cancelQuantity") == null ? 0 : item.getDouble("cancelQuantity")); - - // count up the quantity already reserved for this item (note that canceling a reservation deletes it, thus this data represents what's actually reserved) - double reserved = 0.0; - List<GenericValue> reservations = delegator.findByAnd("OrderItemShipGrpInvRes", UtilMisc.toMap("orderId", orderId, "orderItemSeqId", orderItemSeqId)); - for (GenericValue reservation : reservations) { - if (reservation.get("quantity") == null) continue; // paranoia - reserved += reservation.getDouble("quantity"); - } - - // make sure we're not over reserving the item - if (reserving > (ordered - reserved)) { - return ServiceUtil.returnError("Cannot reserve " + reserving + " of Product ["+item.get("productId")+"]. There are already " + - reserved + " reserved out of " + ordered + " ordered for order ["+orderId+"] line item ["+orderItemSeqId+"]."); - } - - return ServiceUtil.returnSuccess(); - } catch (GenericEntityException e) { - return ServiceUtil.returnError("Inventory Item/Transfer lookup problem [" + e.getMessage() + "]"); - } - } } |
Free forum by Nabble | Edit this page |