Author: ashish
Date: Sat Aug 16 20:41:54 2014
New Revision: 1618412
URL: http://svn.apache.org/r1618412
Log:
Applied fix from jira issue - OFBIZ-5392 - Return Item received quantity does
not updated correctly in case of partial receiving.
Thanks Deepak for reporting the issue and team ofbiz.us for providing the fix
for the same.
Modified:
ofbiz/trunk/applications/order/script/org/ofbiz/order/order/OrderReturnServices.xml
Modified:
ofbiz/trunk/applications/order/script/org/ofbiz/order/order/OrderReturnServices.xml
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/script/org/ofbiz/order/order/OrderReturnServices.xml?rev=1618412&r1=1618411&r2=1618412&view=diff
==============================================================================
---
ofbiz/trunk/applications/order/script/org/ofbiz/order/order/OrderReturnServices.xml
(original)
+++
ofbiz/trunk/applications/order/script/org/ofbiz/order/order/OrderReturnServices.xml
Sat Aug 16 20:41:54 2014
@@ -532,29 +532,33 @@ under the License.
<find-by-primary-key entity-name="ReturnHeader" map="lookupPKMap"
value-field="returnHeader"/>
<find-by-and entity-name="ShipmentReceipt" map="lookupPKMap"
list="shipmentReceipts"/>
<iterate list="shipmentReceipts" entry="receipt">
- <if-empty field="totalsMap.receipt.returnItemSeqId">
- <set field="totalsMap.receipt.returnItemSeqId" value="0"
type="BigDecimal"/>
+ <if-empty field="totalsMap[receipt.returnItemSeqId]">
+ <set field="totalsMap[receipt.returnItemSeqId]" value="0"
type="BigDecimal"/>
</if-empty>
- <set field="totalsMap.receipt.returnItemSeqId"
value="${receipt.quantityAccepted + receipt.quantityRejected}"
default-value="0" type="BigDecimal"/>
-
- <entity-one entity-name="ReturnItem" value-field="returnItem">
- <field-map field-name="returnId"
from-field="receipt.returnId"/>
- <field-map field-name="returnItemSeqId"
from-field="receipt.returnItemSeqId"/>
- </entity-one>
- <set field="returnItem.receivedQuantity"
from-field="${totalsMap.receipt.returnItemSeqId}" type="BigDecimal"/>
- <set-service-fields service-name="updateReturnItem"
map="returnItem" to-map="serviceInMap"/>
-
- <if-compare-field field="totalsMap.receipt.returnItemSeqId"
to-field="returnItem.returnQuantity" operator="greater-equals"
type="BigDecimal">
+ <calculate field="totalsMap[receipt.returnItemSeqId]">
+ <calcop field="totalsMap[receipt.returnItemSeqId]"
operator="add">
+ <calcop field="receipt.quantityAccepted" operator="get"/>
+ <calcop field="receipt.quantityRejected" operator="get"/>
+ </calcop>
+ </calculate>
+ </iterate>
+ <get-related relation-name="ReturnItem" list="returnItems"
value-field="returnHeader"/>
+ <iterate-map key="returnItemSeqId" value="value" map="totalsMap">
+ <set field="filterMap.returnItemSeqId"
from-field="returnItemSeqId"/>
+ <filter-list-by-and list="returnItems" map="filterMap"
to-list="items"/>
+ <first-from-list entry="item" list="items"/>
+ <set field="item.receivedQuantity" from-field="value"
type="BigDecimal"/>
+ <set-service-fields service-name="updateReturnItem" map="item"
to-map="serviceInMap"/>
+ <if-compare-field field="value" to-field="item.returnQuantity"
operator="greater-equals" type="BigDecimal">
<!-- update the status for the item -->
<set field="serviceInMap.statusId" value="RETURN_RECEIVED"/>
- <call-service service-name="updateReturnItem"
in-map-name="serviceInMap"/>
</if-compare-field>
<!-- update the returnItem with at least receivedQuantity, and
also statusId if applicable -->
<call-service service-name="updateReturnItem"
in-map-name="serviceInMap"/>
<clear-field field="serviceInMap"/>
- </iterate>
-
+ <clear-field field="filterMap"/>
+ </iterate-map>
<!-- check to see if all items have been received -->
<set field="allReceived" value="true"/>
<find-by-and entity-name="ReturnItem" map="lookupPKMap"
list="allReturnItems"/>