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 2012/11/09 22:31:47 UTC
svn commit: r1407654 - in /ofbiz/branches/release12.04: ./
applications/product/script/org/ofbiz/product/inventory/StockMoveServices.xml
Author: apatel
Date: Fri Nov 9 21:31:47 2012
New Revision: 1407654
URL: http://svn.apache.org/viewvc?rev=1407654&view=rev
Log:
Applied fix from trunk for revision: 1407634
===
[OFBIZ-5063] Stock Move is not working correctly when reservation record has quantity not available value at bulk location. Thanks Albert Mayo and Amardeep for working on fix.
Modified:
ofbiz/branches/release12.04/ (props changed)
ofbiz/branches/release12.04/applications/product/script/org/ofbiz/product/inventory/StockMoveServices.xml
Propchange: ofbiz/branches/release12.04/
------------------------------------------------------------------------------
Merged /ofbiz/trunk:r1407634
Modified: ofbiz/branches/release12.04/applications/product/script/org/ofbiz/product/inventory/StockMoveServices.xml
URL: http://svn.apache.org/viewvc/ofbiz/branches/release12.04/applications/product/script/org/ofbiz/product/inventory/StockMoveServices.xml?rev=1407654&r1=1407653&r2=1407654&view=diff
==============================================================================
--- ofbiz/branches/release12.04/applications/product/script/org/ofbiz/product/inventory/StockMoveServices.xml (original)
+++ ofbiz/branches/release12.04/applications/product/script/org/ofbiz/product/inventory/StockMoveServices.xml Fri Nov 9 21:31:47 2012
@@ -490,12 +490,11 @@ under the License.
OISGIR (reservation), so we would have to split it up
-->
<clear-field field="reservedQuantityLeftOver"/>
+ <clear-field field="currentQuantityToMove"/>
+ <clear-field field="quantityNotAvailableToMove"/>
+ <if-compare field="quantityLeftToProcess" operator="greater" value="0" type="Double">
<if-compare-field field="quantityLeftToProcess" to-field="orderItemShipGrpInvRes.quantity" operator="less" type="BigDecimal">
<!-- the complicated part: can split up the OISGIR (reservation) into two parts, and then transfer the inventory, somewhat complicated... -->
- <calculate field="reservedQuantityLeftOver">
- <calcop field="orderItemShipGrpInvRes.quantity" operator="get"/>
- <calcop field="quantityLeftToProcess" operator="negative"/>
- </calculate>
<set from-field="quantityLeftToProcess" field="currentQuantityToMove"/>
@@ -512,21 +511,25 @@ under the License.
<if-compare-field field="currentQuantityToMove" to-field="remainingQuantityOnHand" operator="greater" type="BigDecimal">
<set from-field="remainingQuantityOnHand" field="currentQuantityToMove"/>
</if-compare-field>
+ <if-empty field="orderItemShipGrpInvRes.quantityNotAvailable">
+ <set value="0" field="orderItemShipGrpInvRes.quantityNotAvailable" type="BigDecimal" />
+ </if-empty>
+ <calculate field="reservedQuantityLeftOver" type="BigDecimal">
+ <calcop field="orderItemShipGrpInvRes.quantity" operator="get"/>
+ <calcop field="orderItemShipGrpInvRes.quantityNotAvailable" operator="negative"/>
+ <calcop field="currentQuantityToMove" operator="negative"/>
+ </calculate>
<!-- now one other little trick: reservedQuantityLeftOver is not empty and if orderItemShipGrpInvRes.quantityNotAvailable is greater than reservedQuantityLeftOver, then the difference should be moved -->
<if>
<condition>
<and>
- <not><if-empty field="orderItemShipGrpInvRes.quantityNotAvailable"/></not>
<not><if-empty field="reservedQuantityLeftOver"/></not>
- <if-compare-field field="orderItemShipGrpInvRes.quantityNotAvailable" to-field="reservedQuantityLeftOver" operator="greater" type="BigDecimal"/>
+ <if-compare field="reservedQuantityLeftOver" value="0" operator="greater" type="BigDecimal"/>
</and>
</condition>
<then>
- <calculate field="quantityNotAvailableToMove">
- <calcop field="orderItemShipGrpInvRes.quantityNotAvailable" operator="get"/>
- <calcop field="reservedQuantityLeftOver" operator="negative"/>
- </calculate>
+ <set value="0" field="quantityNotAvailableToMove" type="BigDecimal" />
</then>
<else>
<set from-field="orderItemShipGrpInvRes.quantityNotAvailable" field="quantityNotAvailableToMove"/>
@@ -571,22 +574,39 @@ under the License.
<call-service service-name="createInventoryItemDetail" in-map-name="createOisgirTargetDetailMap"/>
<!-- create the new and remove or update the old OISGIRs -->
+ <calculate field="targetOrderItemShipGrpInvRes.quantity" type="BigDecimal">
+ <calcop field="currentQuantityToMove" operator="get"/>
+ <calcop field="quantityNotAvailableToMove" operator="get"/>
+ </calculate>
+ <calculate field="targetOrderItemShipGrpInvRes.quantityNotAvailable" type="BigDecimal">
+ <calcop field="quantityNotAvailableToMove" operator="get"/>
+ </calculate>
<create-value value-field="targetOrderItemShipGrpInvRes"/>
- <if-empty field="reservedQuantityLeftOver">
- <remove-value value-field="orderItemShipGrpInvRes"/>
- <else>
<calculate field="orderItemShipGrpInvRes.quantity">
<calcop field="orderItemShipGrpInvRes.quantity" operator="get"/>
- <calcop field="reservedQuantityLeftOver" operator="negative"/>
+ <calcop field="currentQuantityToMove" operator="negative"/>
+ <calcop field="quantityNotAvailableToMove" operator="negative"/>
</calculate>
<calculate field="orderItemShipGrpInvRes.quantityNotAvailable">
<calcop field="orderItemShipGrpInvRes.quantityNotAvailable" operator="get"/>
<calcop field="quantityNotAvailableToMove" operator="negative"/>
</calculate>
<store-value value-field="orderItemShipGrpInvRes"/>
- </else>
- </if-empty>
+ <if>
+ <condition>
+ <and>
+ <if-compare field="orderItemShipGrpInvRes.quantity" operator="equals" value="0" type="BigDecimal" />
+ <if-compare field="orderItemShipGrpInvRes.quantityNotAvailable" operator="equals" value="0" type="BigDecimal" />
+ </and>
+ </condition>
+ <then>
+ <remove-value value-field="orderItemShipGrpInvRes"/>
+ </then>
+ <else>
+ <store-value value-field="orderItemShipGrpInvRes"/>
+ </else>
+ </if>
<set value="Y" field="haveSetIiDetail"/>
<!-- deduct the orderItemShipGrpInvRes.quantity from quantityLeftToProcess -->
@@ -600,6 +620,7 @@ under the License.
</calculate>
<!-- part of the following log data prep: <refresh-value value-field="targetInventoryItem"/> -->
<!-- <log level="info" message="Just update targetInventoryItem from OISGIR [${targetInventoryItem}]"/> -->
+ </if-compare>
</iterate>
<if-compare field="haveSetIiDetail" operator="equals" value="N">