Thanks Adrian for your comment. I will do the necessary changes and will commit the updated code soon.
-- Ashish On Sunday, August 17, 2014, Adrian Crum <[email protected]> wrote: > Please do not use the <calculate> element. Mini-language supports UEL: > > <set field="totalsMap[receipt.returnItemSeqId]" > from="receipt.quantityAccepted + receipt.quantityRejected /> > > Also, the <set> element "from-field" attribute has been deprecated, use > "from". > > Mini-language has an updated schema, it would be best if you configured > your XML editor to use it. > > > Adrian Crum > Sandglass Software > www.sandglass-software.com > > On 8/16/2014 9:41 PM, [email protected] wrote: > >> 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"/> >> >> >>
