You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by ap...@apache.org on 2007/07/25 10:56:23 UTC

svn commit: r559368 - /ofbiz/trunk/applications/product/script/org/ofbiz/product/inventory/InventoryReserveServices.xml

Author: apatel
Date: Wed Jul 25 01:56:22 2007
New Revision: 559368

URL: http://svn.apache.org/viewvc?view=rev&rev=559368
Log:
allow using shadow inventoryitem instead of real serailzed Item.

Modified:
    ofbiz/trunk/applications/product/script/org/ofbiz/product/inventory/InventoryReserveServices.xml

Modified: ofbiz/trunk/applications/product/script/org/ofbiz/product/inventory/InventoryReserveServices.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/script/org/ofbiz/product/inventory/InventoryReserveServices.xml?view=diff&rev=559368&r1=559367&r2=559368
==============================================================================
--- ofbiz/trunk/applications/product/script/org/ofbiz/product/inventory/InventoryReserveServices.xml (original)
+++ ofbiz/trunk/applications/product/script/org/ofbiz/product/inventory/InventoryReserveServices.xml Wed Jul 25 01:56:22 2007
@@ -259,6 +259,15 @@
         <entity-one entity-name="InventoryItem" value-name="inventoryItem"/>
         <set field="facilityId" from-field="inventoryItem.facilityId"/>
         <set field="inventoryReservationLookUp.inventoryItemId" from-field="inventoryItem.inventoryItemId"/>
+        <if-compare value="NON_SERIAL_INV_ITEM" operator="equals" field-name="inventoryItem.inventoryItemTypeId">
+          <!-- Reservation was holding on to a InventoryItem shadow, Reduce number of Shadow's available -->
+          <set from-field="inventoryItem.inventoryItemId" field="createDetailMap.inventoryItemId"/>
+          <set from-field="parameters.orderId" field="createDetailMap.orderId"/>
+          <set from-field="parameters.orderItemSeqId" field="createDetailMap.orderItemSeqId"/>
+          <set field="createDetailMap.quantityOnHandDiff" value="-1" type="Double"/>
+          <set field="createDetailMap.availableToPromiseDiff" value="-1" type="Double"/>
+          <call-service service-name="createInventoryItemDetail" in-map-name="createDetailMap"/>
+        </if-compare>
         <set-service-fields map-name="parameters" to-map-name="cancelOrderItemShipGrpInvResMap" service-name="cancelOrderItemShipGrpInvRes"/>
         <!-- Step 1 cancel our reservation, we'll later reserve Inventory we want-->
         <call-service service-name="cancelOrderItemShipGrpInvRes" in-map-name="cancelOrderItemShipGrpInvResMap"/>
@@ -282,21 +291,30 @@
             <refresh-value value-name="inventoryItem"/>
             <set value="INV_PROMISED" field="inventoryItem.statusId"/>
             <store-value value-name="inventoryItem"/>
-            <!-- get something else for other order --> 
-            <entity-and entity-name="InventoryItem" list-name="inventoryItems">                
-                <field-map field-name="productId" env-name="parameters.productId"/>
-                <field-map field-name="inventoryItemTypeId"  value="SERIALIZED_INV_ITEM"/>
-                <field-map field-name="statusId"  value="INV_AVAILABLE"/>
-            </entity-and>
-            <first-from-list list-name="inventoryItems" entry-name="availableInventoryItem"/>
-            <!-- change status on available inventoryItem -->            
-            <set value="INV_PROMISED" field="availableInventoryItem.statusId"/>
-            <store-value value-name="availableInventoryItem"/>
+            <!-- get something else for other order, First try to get a Shadow for resv if not available then we'll try getting serialized item-->
+            <!-- Get the product's total quantityOnHand in the facility -->
+            <set from-field="parameters.productId" field="inputMap.productId"/>
+            <set from-field="facilityId" field="inputMap.facilityId"/>
+            <call-service service-name="getInventoryAvailableByFacility" in-map-name="inputMap">
+                <result-to-field field-name="quantityOnHandTotal" result-name="quantityOnHandTotal"/>
+                <result-to-field field-name="availableToPromiseTotal" result-name="availableToPromiseTotal"/>
+            </call-service>
+            <if-compare operator="less" field-name="availableToPromiseTotal" value="1" type="Double">
+                <entity-and entity-name="InventoryItem" list-name="inventoryItems">                
+                    <field-map field-name="productId" env-name="parameters.productId"/>
+                    <field-map field-name="inventoryItemTypeId"  value="SERIALIZED_INV_ITEM"/>
+                    <field-map field-name="statusId"  value="INV_AVAILABLE"/>
+                </entity-and>
+                <first-from-list list-name="inventoryItems" entry-name="availableInventoryItem"/>
+                <!-- change status on available inventoryItem -->            
+                <set value="INV_PROMISED" field="availableInventoryItem.statusId"/>
+                <store-value value-name="availableInventoryItem"/>
+                <set from-field="availableInventoryItem.inventoryItemId" field="reserveOisgirMap.inventoryItemId"/>
+            </if-compare> 
             <!-- store OrderItemShipGrpInvRes record -->
             <set from-field="inventoryItemReservation.orderId" field="reserveOisgirMap.orderId"/>
             <set from-field="inventoryItemReservation.orderItemSeqId" field="reserveOisgirMap.orderItemSeqId"/>
             <set from-field="inventoryItemReservation.shipGroupSeqId" field="reserveOisgirMap.shipGroupSeqId"/>
-            <set from-field="availableInventoryItem.inventoryItemId" field="reserveOisgirMap.inventoryItemId"/>
             <set from-field="inventoryItemReservation.reserveOrderEnumId" field="reserveOisgirMap.reserveOrderEnumId"/>
             <set from-field="inventoryItemReservation.reservedDatetime" field="reserveOisgirMap.reservedDatetime"/>
             <set from-field="inventoryItemReservation.promisedDatetime" field="reserveOisgirMap.promisedDatetime"/>