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/21 10:28:47 UTC
svn commit: r558268 - in /ofbiz/trunk/applications/product:
script/org/ofbiz/product/inventory/InventoryReserveServices.xml
servicedef/services_facility.xml
Author: apatel
Date: Sat Jul 21 01:28:46 2007
New Revision: 558268
URL: http://svn.apache.org/viewvc?view=rev&rev=558268
Log:
Improved service to reserve specific Inventory .
Modified:
ofbiz/trunk/applications/product/script/org/ofbiz/product/inventory/InventoryReserveServices.xml
ofbiz/trunk/applications/product/servicedef/services_facility.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=558268&r1=558267&r2=558268
==============================================================================
--- ofbiz/trunk/applications/product/script/org/ofbiz/product/inventory/InventoryReserveServices.xml (original)
+++ ofbiz/trunk/applications/product/script/org/ofbiz/product/inventory/InventoryReserveServices.xml Sat Jul 21 01:28:46 2007
@@ -252,49 +252,67 @@
<simple-method method-name="reserveAnInventoryItem" short-description="Reserve a Specific Serialized InventoryItem">
<!--
- Well the InventoryItem I want to reserve is already reserved, But my customer wants the just this inventoryItem.
+ Well the InventoryItem I want to reserve is already reserved, But my customer wants just this inventoryItem.
Let me find the reservation on this inventory, cancel it and re-reserve something else for the other order.
This way I'll get what I want and the other orderItem will also have a similar thing to issue.
- -->
+ -->
<set field="inventoryItemLookUp.inventoryItemId" from-field="parameters.inventoryItemId"/>
- <find-by-primary-key map-name="inventoryItemLookUp" entity-name="InventoryItem" value-name="inventoryItem"/>
+ <find-by-primary-key map-name="inventoryItemLookUp" entity-name="InventoryItem" value-name="inventoryItem"/>
<set field="inventoryReservationLookUp.inventoryItemId" from-field="inventoryItem.inventoryItemId"/>
<find-by-and map-name="inventoryReservationLookUp" list-name="invReservations" entity-name="OrderItemShipGrpInvRes"/>
<first-from-list entry-name="inventoryItemReservation" list-name="invReservations"/>
+
<set-service-fields map-name="inventoryItemReservation" to-map-name="cancelOrderItemShipGrpInvResMap" service-name="cancelOrderItemShipGrpInvRes"/>
- <!-- We'll get all except productId, facilityId, requireInventory fields in inventoryItemReservation -->
- <set field="reReserveOrderItemShipGrpInvResMap.facilityId" from-field="parameters.facilityId"/>
- <set field="reReserveOrderItemShipGrpInvResMap.productId" from-field="parameters.productId"/>
- <set field="reReserveOrderItemShipGrpInvResMap.requireInventory" from-field="parameters.requireInventory"/>
<!-- Step 1 call the cancel reservation service -->
<call-service service-name="cancelOrderItemShipGrpInvRes" in-map-name="cancelOrderItemShipGrpInvResMap"/>
- <!-- Step 2 call this method again and the reservation should go through -->
+
+ <!-- Step 2 Lets reserve what we need call reserveOrderItemInventory -->
+ <!-- change status on inventoryItem -->
+ <set value="INV_PROMISED" field="inventoryItem.statusId"/>
+ <store-value value-name="inventoryItem"/>
+ <!-- store OrderItemShipGrpInvRes record -->
+ <set from-field="parameters.orderId" field="reserveOisgirMap.orderId"/>
+ <set from-field="parameters.orderItemSeqId" field="reserveOisgirMap.orderItemSeqId"/>
+ <set from-field="parameters.shipGroupSeqId" field="reserveOisgirMap.shipGroupSeqId"/>
+ <set from-field="inventoryItem.inventoryItemId" field="reserveOisgirMap.inventoryItemId"/>
+ <set from-field="parameters.reserveOrderEnumId" field="reserveOisgirMap.reserveOrderEnumId"/>
+ <set from-field="parameters.reservedDatetime" field="reserveOisgirMap.reservedDatetime"/>
+ <set from-field="promisedDatetime" field="reserveOisgirMap.promisedDatetime"/>
+ <set field="reserveOisgirMap.quantity" value="1" type="Double"/>
+ <if-not-empty field-name="parameters.sequenceId">
+ <set field="reserveOisgirMap.sequenceId" from-field="parameters.sequenceId"/>
+ </if-not-empty>
+ <call-service service-name="reserveOrderItemInventory" in-map-name="reserveOisgirMap"/>
+ <clear-field field-name="reserveOisgirMap"/>
+
+ <!-- Step 3 Now last thing, lets reReserve inventory for order form where we got our item. Be curtious -->
+ <!-- Lets find a free inventory to reserve -->
<entity-and entity-name="InventoryItem" list-name="inventoryItems">
- <field-map field-name="serialNumber" env-name="parameters.serialNumber"/>
- <field-map field-name="productId" env-name="parameters.productId"/>
- </entity-and>
- <set field="orderHeaderMap.orderId" from-field="parameters.orderId"/>
- <find-by-primary-key entity-name="OrderHeader" value-name="orderHeader" map-name="orderHeaderMap"/>
- <!-- Get the actual inventoryItem by the help of serialnumber and productId -->
- <first-from-list list-name="inventoryItems" entry-name="inventoryItem"/>
- <entity-and entity-name="OrderItemShipGrpInvRes" list-name="inventoryItemReservations">
- <field-map field-name="inventoryItemId" env-name="inventoryItem.inventoryItemId"/>
- </entity-and>
- <first-from-list list-name="inventoryItemReservations" entry-name="inventoryItemReservation"/>
- <if-not-empty field-name="inventoryItemReservation">
- <set-service-fields map-name="inventoryItemReservation" to-map-name="reReserveOrderItemShipGrpInvResMap" service-name="reserveProductInventory"/>
- <call-service service-name="reserveProductInventory" in-map-name="reReserveOrderItemShipGrpInvResMap">
- <result-to-field result-name="quantityNotReserved" field-name="paramaters.quantityNotReserved"/>
- </call-service>
- <set value="INV_AVAILABLE" field="inventoryItem.statusId"/>
- <store-value value-name="inventoryItem"/>
+ <field-map field-name="facilityId" env-name="parameters.facilityId"/>
+ <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="inventoryItem"/>
+ <!-- change status on inventoryItem -->
+ <set value="INV_PROMISED" field="inventoryItem.statusId"/>
+ <store-value value-name="inventoryItem"/>
+ <!-- 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="inventoryItems.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"/>
+ <set field="reserveOisgirMap.quantity" value="1" type="Double"/>
+ <if-not-empty field-name="inventoryItemReservation.sequenceId">
+ <set field="reserveOisgirMap.sequenceId" from-field="inventoryItemReservation.sequenceId"/>
</if-not-empty>
- <!-- Step 3 Now last thing, lets reReserve inventory for order form where we got our item. Be curtious -->
- <call-simple-method method-name="reserveForInventoryItemInline"/>
- <field-to-result field-name="quantityNotReserved" map-name="parameters"/>
- <field-to-result field-name="inventoryItemId" map-name="inventoryItem"/>
+ <call-service service-name="reserveOrderItemInventory" in-map-name="reserveOisgirMap"/>
+ <clear-field field-name="reserveOisgirMap"/>
</simple-method>
-
+
<simple-method method-name="reserveForInventoryItemInline" short-description="Does a reservation for one InventoryItem, meant to be called in-line">
<!-- only do something with this inventoryItem if there is more inventory to reserve -->
<if-compare field-name="parameters.quantityNotReserved" operator="greater" value="0" type="Double">
@@ -536,5 +554,6 @@
</if-compare>
</simple-method>
</simple-methods>
+
Modified: ofbiz/trunk/applications/product/servicedef/services_facility.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/servicedef/services_facility.xml?view=diff&rev=558268&r1=558267&r2=558268
==============================================================================
--- ofbiz/trunk/applications/product/servicedef/services_facility.xml (original)
+++ ofbiz/trunk/applications/product/servicedef/services_facility.xml Sat Jul 21 01:28:46 2007
@@ -243,10 +243,9 @@
<attribute name="quantity" type="Double" mode="IN" optional="false"/>
<attribute name="reservedDatetime" type="Timestamp" mode="IN" optional="true"/>
<attribute name="requireInventory" type="String" mode="IN" optional="false"/>
- <attribute name="reserveOrderEnumId" type="String" mode="IN" optional="false"/>
<attribute name="serialNumber" type="String" mode="IN" optional="true"/>
<attribute name="sequenceId" type="Long" mode="IN" optional="true"/>
- <attribute name="quantityNotReserved" type="Double" mode="INOUT" optional="false"/>
+ <attribute name="promisedDatetime" type="Timestamp" mode="IN" optional="false"/>
</service>
<service name="reserveProductInventory" engine="simple"