<?xml version="1.0" encoding="UTF-8" ?>
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements.  See the NOTICE file
distributed with this work for additional information
regarding copyright ownership.  The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License.  You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied.  See the License for the
specific language governing permissions and limitations
under the License.
-->

<simple-methods xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns="http://ofbiz.apache.org/Simple-Method" xsi:schemaLocation="http://ofbiz.apache.org/Simple-Method http://ofbiz.apache.org/dtds/simple-methods.xsd">
    <simple-method method-name="createReturnHeader" short-description="Create a ReturnHeader">
        <now-timestamp field="nowTimestamp"/>

        <if>
            <condition>
                <and>
                    <not><if-has-permission permission="ORDERMGR" action="_CREATE"/></not>
                    <not><if-compare-field field="userLogin.partyId" to-field="parameters.fromPartyId" operator="equals"/></not>
                </and>
            </condition>
            <then>
                <add-error><fail-property resource="OrderErrorUiLabels" property="OrderSecurityErrorToRunCreateReturnHeader"/></add-error>
            </then>
        </if>
        <set field="returnHeaderTypeId" from-field="parameters.returnHeaderTypeId"/>
        <if-empty field="parameters.toPartyId">
            <!-- no toPartyId was specified. use destination facility to determine the party of the return -->
            <if-compare field="returnHeaderTypeId" operator="equals" value="CUSTOMER_RETURN">
                <if-not-empty field="parameters.destinationFacilityId">
                    <entity-one entity-name="Facility" value-field="destinationFacility" auto-field-map="false">
                        <field-map field-name="facilityId" from-field="parameters.destinationFacilityId"/>
                    </entity-one>
                    <set from-field="destinationFacility.ownerPartyId" field="parameters.toPartyId"/>
                </if-not-empty>
            </if-compare>
        <else>
            <!-- make sure that the party to return to is an INTERNAL_ORGANIZATIO for customer return and SUPPLIER for vendor return else stop -->
            <if-compare field="returnHeaderTypeId" operator="contains" value="CUSTOMER_">
                <entity-one entity-name="PartyRole" value-field="partyRole" use-cache="true" auto-field-map="false">
                    <field-map field-name="partyId" from-field="parameters.toPartyId"/>
                    <field-map field-name="roleTypeId" value="INTERNAL_ORGANIZATIO"/>
                </entity-one>
                <if-empty field="partyRole">
                    <add-error>
                        <fail-property resource="OrderErrorUiLabels" property="OrderReturnRequestPartyRoleInternalOrg"/>
                    </add-error>
                </if-empty>
            <else>
                <entity-one entity-name="PartyRole" value-field="partyRole" use-cache="true" auto-field-map="false">
                    <field-map field-name="partyId" from-field="parameters.toPartyId"/>
                    <field-map field-name="roleTypeId" value="SUPPLIER"/>
                </entity-one>
                <if-empty field="partyRole">
                    <add-error>
                        <fail-property resource="OrderErrorUiLabels" property="OrderReturnRequestPartyRoleSupplier"/>
                    </add-error>
                </if-empty>
            </else>
            </if-compare>
         </else>
        </if-empty>
        <check-errors/>

        <!-- check the needs (auto) inventory receive flag (default to N, meaning that return won't automatically be considered Received when Accepted) -->
        <if-empty field="parameters.needsInventoryReceive">
            <set field="parameters.needsInventoryReceive" value="N"/>
        </if-empty>

        <make-value value-field="newEntity" entity-name="ReturnHeader"/>
        <set-nonpk-fields map="parameters" value-field="newEntity"/>

        <!-- If PartyAcctgPreference.useInvoiceIdForReturns is Y, get the ID from the getNextInvoiceId service -->
        <set field="partyAccountingPreferencesCallMap.organizationPartyId" from-field="parameters.toPartyId"/>
        <set field="systemMap.userLoginId" value="system"/>
        <find-by-primary-key  entity-name="UserLogin" map="systemMap" value-field="systemLogin"/>
        <set field="partyAccountingPreferencesCallMap.userLogin" from-field="systemLogin"/>
        <call-service service-name="getPartyAccountingPreferences" in-map-name="partyAccountingPreferencesCallMap">
             <result-to-field result-name="partyAccountingPreference" field="partyAcctgPreference"/>
        </call-service>
        <if-compare field="partyAcctgPreference.useInvoiceIdForReturns" operator="equals" value="Y">
            <set field="getNextInvoiceIdMap.partyId" from-field="parameters.toPartyId"/>
            <call-service service-name="getNextInvoiceId" in-map-name="getNextInvoiceIdMap">
                <result-to-field result-name="invoiceId" field="newEntity.returnId"/>
            </call-service>

            <else>
                <sequenced-id sequence-name="ReturnHeader" field="newEntity.returnId"/>
            </else>
        </if-compare>
        <field-to-result field="newEntity.returnId" result-name="returnId"/>

        <if>
            <condition>
                <not><if-has-permission permission="ORDERMGR" action="_CREATE"/></not>
            </condition>
            <then>
                <if-compare field="returnHeaderTypeId" operator="equals" value="CUSTOMER_RETURN">
                    <set field="newEntity.statusId" value="RETURN_REQUESTED"/>
                <else>
                    <set field="newEntity.statusId" value="SUP_RETURN_REQUESTED"/>
                </else>
                </if-compare>
                <set from-field="nowTimestamp" field="newEntity.entryDate"/>
            </then>
        </if>

        <if-empty field="newEntity.entryDate">
            <set from-field="nowTimestamp" field="newEntity.entryDate"/>
        </if-empty>

        <if-empty field="newEntity.statusId">
            <if-compare field="returnHeaderTypeId" operator="equals" value="CUSTOMER_RETURN">
                <set field="newEntity.statusId" value="RETURN_REQUESTED"/>
            <else>
                <set field="newEntity.statusId" value="SUP_RETURN_REQUESTED"/>
            </else>
            </if-compare>
        </if-empty>
        <set field="newEntity.createdBy" from-field="userLogin.userLoginId"/>

        <create-value value-field="newEntity"/>
        <set field="responseMessage" value="Return Request #${newEntity.returnId} was created successfully."/>
        <field-to-result field="responseMessage" result-name="successMessage"/>
    </simple-method>
    <simple-method method-name="updateReturnHeader" short-description="Update a ReturnHeader">
        <entity-one entity-name="ReturnHeader" value-field="returnHeader"/>

        <!-- test the total return amount vs the total order amount -->
        <if-compare field="parameters.statusId" value="RETURN_ACCEPTED" operator="equals">
            <!-- get the list of ReturnItems.  Note: return may be associated with many different orders -->
            <entity-condition entity-name="ReturnItem" list="returnItems" distinct="true">
                <condition-expr field-name="returnId" from-field="returnHeader.returnId"/>
            </entity-condition>

            <!-- this block is for debugging and can be removed later -->
            <!--
            <log level="verbose" message="Items and adjustments for return ${returnHeader.returnId}"/>
            <entity-condition entity-name="ReturnAdjustment" list="returnAdjustments" distinct="true">
                <condition-expr field-name="returnId" operator="equals" from-field="returnHeader.returnId"/>
            </entity-condition>
            <iterate list="returnItems" entry="returnItem">
                <log level="verbose" message="item: ${returnItem.returnItemSeqId} ${returnItem.returnItemTypeId} [${returnItem.description}] ${returnItem.productId} ${returnItem.returnQuantity} ${returnItem.returnPrice}"/>
            </iterate>
            <iterate list="returnAdjustments" entry="returnAdjustment">
                <log level="verbose" message="adjustment: ${returnAdjustment.returnItemSeqId} ${returnAdjustment.returnAdjustmentTypeId} [${returnAdjustment.description}] ${returnAdjustment.amount}"/>
            </iterate>
            -->
            <!-- end debugging block -->

            <!-- this is used to make sure we don't return a negative amount -->
            <calculate field="returnTotalAmount"><number value="0.0"/></calculate>

            <!-- check them all to make sure that the return total does not exceed order total.  -->
            <iterate list="returnItems" entry="returnItem">
              <!-- check, for cross-ship returns, if a payment method is set to guarantee the cross-shipped item(s)..  -->
              <if>
                  <condition>
                      <and>
                          <if-empty field="returnHeader.paymentMethodId"/>
                          <if-empty field="parameters.paymentMethodId"/><!-- because we haven't done the set-nonpk-fields yet, check this too -->
                          <or>
                              <if-compare field="returnItem.returnTypeId" operator="equals" value="RTN_CSREPLACE"/>
                              <if-compare field="returnItem.returnTypeId" operator="equals" value="RTN_REPAIR_REPLACE"/>
                          </or>
                      </and>
                  </condition>
                  <then>
                      <add-error><fail-property resource="OrderErrorUiLabels" property="OrderReturnPaymentMethodNeededForThisTypeOfReturn"/></add-error>
                  </then>
              </if>
              <check-errors/>
               <!-- tally up the return total amount -->
               <calculate field="returnTotalAmount">
                   <calcop operator="add" field="returnTotalAmount">
                       <calcop operator="multiply">
                           <calcop operator="get" field="returnItem.returnPrice"/>
                           <calcop operator="get" field="returnItem.returnQuantity"/>
                        </calcop>
                   </calcop>
                </calculate>

                <!-- compare return vs order total -->
                <if-not-empty field="returnItem.orderId">
                    <set field="returnTotalCtx.orderId" from-field="returnItem.orderId"/>
                    <!-- no adjustment needed: adjustment is passed in to calculate the effect of an additional item on return total.  -->
                    <calculate field="returnTotalCtx.adjustment" type="BigDecimal"><number value="0.0"/></calculate>
                    <call-service service-name="getOrderAvailableReturnedTotal" in-map-name="returnTotalCtx">
                        <result-to-field result-name="availableReturnTotal" field="availableReturnTotal"/>
                        <result-to-field result-name="returnTotal" field="returnTotal"/>
                        <result-to-field result-name="orderTotal" field="orderTotal"/>
                    </call-service>
                    <log level="info" message="Available amount for return on order #${returnItem.orderId} is [${availableReturnTotal}] (orderTotal = [${orderTotal}] - returnTotal = [${returnTotal}]"/>

                    <if-compare field="availableReturnTotal" operator="less" value="-0.01" type="BigDecimal">
                        <add-error><fail-property resource="OrderErrorUiLabels" property="OrderReturnPriceCannotExceedTheOrderTotal"/></add-error>
                    </if-compare>
                    <check-errors/>
                    <else>
                        <log level="info" message="Not an order based returnItem; unable to check valid amounts!"/>
                    </else>
                </if-not-empty>
            </iterate>
            <!-- Checking that the Status change is Valid or Not-->
            <if>
                <condition>
                    <and>
                        <not><if-empty field="parameters.statusId"></if-empty></not>
                        <if-compare-field operator="not-equals" field="parameters.statusId" to-field="returnHeader.statusId"/>
                    </and>
                </condition>
                <then>
                    <set field="statusIdTo" from-field="parameters.statusId"/>
                    <set field="statusId" from-field="returnHeader.statusId"/>
                    <entity-one entity-name="StatusValidChange" value-field="statusValidChange"/>
                    <if-empty field="statusValidChange">
                        <add-error><fail-property resource="OrderErrorUiLabels" property="OrderErrorReturnHeaderItemStatusNotChangedIsNotAValidChange"/></add-error>
                    </if-empty>
                    <check-errors/>
                </then>
            </if>
            <entity-and entity-name="ReturnAdjustment" list="returnAdjustments">
                <field-map field-name="returnId" from-field="returnHeader.returnId"/>
            </entity-and>
            <iterate list="returnAdjustments" entry="returnAdjustment">
                <calculate field="returnTotalAmount">
                    <calcop operator="add" field="returnTotalAmount">
                        <calcop operator="get" field="returnAdjustment.amount"/>
                    </calcop>
                </calculate>
            </iterate>
            <if-compare field="returnTotalAmount" operator="less" value="0" type="BigDecimal">
                <add-error><fail-property resource="OrderErrorUiLabels" property="OrderReturnTotalCannotLessThanZero"/></add-error>
            </if-compare>
            <check-errors/>
        </if-compare>

        <field-to-result field="returnHeader.statusId" result-name="oldStatusId"/>
        <set-nonpk-fields map="parameters" value-field="returnHeader"/>
        <store-value value-field="returnHeader"/>
    </simple-method>

    <simple-method method-name="createReturnItem" short-description="Create Return Item">

        <set field="lookupPKMap.returnId" from-field="parameters.returnId"/>
        <find-by-primary-key entity-name="ReturnHeader" map="lookupPKMap" value-field="returnHeader"/>

        <if>
            <condition>
                <and>
                    <not>
                        <if-has-permission permission="ORDERMGR" action="_CREATE"/>
                    </not>
                    <not>
                        <if-compare-field field="userLogin.partyId" to-field="returnHeader.fromPartyId" operator="equals"/>
                    </not>
                </and>
            </condition>
            <then>
                <add-error>
                    <fail-property resource="OrderErrorUiLabels" property="OrderSecurityErrorToRunCreateReturnItem"/>
                </add-error>
            </then>
        </if>
        <check-errors/>

        <if-empty field="parameters.returnItemTypeId">
            <add-error>
                <fail-property resource="OrderErrorUiLabels" property="OrderReturnItemTypeIsNotDefined"/>
            </add-error>
            <check-errors/>
        </if-empty>

        <if>
            <condition>
                <and>
                    <if-empty field="returnHeader.paymentMethodId"/>
                    <if-compare field="returnHeader.statusId" operator="equals" value="RETURN_ACCEPTED"/>
                    <or>
                        <if-compare field="parameters.returnTypeId" operator="equals" value="RTN_CSREPLACE"/>
                        <if-compare field="parameters.returnTypeId" operator="equals" value="RTN_REPAIR_REPLACE"/>
                    </or>
                </and>
            </condition>
            <then>
                <add-error>
                    <fail-property resource="OrderErrorUiLabels" property="OrderReturnPaymentMethodNeededForThisTypeOfReturn"/>
                </add-error>
            </then>
        </if>
        <check-errors/>

        <if-compare field="parameters.returnQuantity" operator="equals" value="0" type="BigDecimal">
            <add-error>
                <fail-property resource="OrderErrorUiLabels" property="OrderNoReturnQuantityAvailablePreviousReturnsMayExist"/>
            </add-error>
            <check-errors/>
        </if-compare>

        <!-- setup some default values for protection -->
        <set field="returnableQuantity" value="0" type="BigDecimal"/>
        <set field="returnablePrice" value="0" type="BigDecimal"/>

        <!-- if an orderItemSeqId is provided, then find the corresponding orderItem  -->
        <if-not-empty field="parameters.orderItemSeqId">
            <make-value value-field="itemLookup" entity-name="OrderItem"/>
            <set-pk-fields map="parameters" value-field="itemLookup"/>
            <if-not-empty field="parameters.orderItemSeqId">
                <find-by-primary-key entity-name="OrderItem" value-field="orderItem" map="itemLookup"/>
                <log level="info" message="Return item is an OrderItem - ${orderItem.orderItemSeqId}"/>
            </if-not-empty>
        </if-not-empty>

        <!-- get the returnableQuantity and returnablePrice:
            for orderItems, it's found by getReturnableQuantity;
            for adjustments, either order adjustments or manual adjustments, it's always 1 and based on input parameter -->
        <if-not-empty field="orderItem">
            <set field="serviceContext.orderItem" from-field="orderItem"/>
            <call-service service-name="getReturnableQuantity" in-map-name="serviceContext">
                <result-to-field result-name="returnableQuantity" field="returnableQuantity"/>
                <result-to-field result-name="returnablePrice" field="returnablePrice"/>
            </call-service>
        </if-not-empty>

        <if-compare field="returnableQuantity" value="0" operator="greater" type="BigDecimal">
            <!-- the user is only allowed to set a returnPrice if he has ORDERMGR_CREATE privilege, otherwise only the returnablePrice calculated by service is used -->
            <if>
                <condition>
                    <not>
                        <if-has-permission permission="ORDERMGR" action="_CREATE"/>
                    </not>
                </condition>
                <then>
                    <set from-field="returnablePrice" field="parameters.returnPrice"/>
                </then>
            </if>

            <!-- make sure the returnQuantity is not greater than the returnableQuantity from service or the quantity on the original orderItem -->
            <if-compare-field field="parameters.returnQuantity" to-field="returnableQuantity" operator="greater" type="BigDecimal">
                <add-error>
                    <fail-property resource="OrderErrorUiLabels" property="OrderRequestedReturnQuantityNotAvailablePreviousReturnsMayExist"/>
                </add-error>
            </if-compare-field>
            <if-not-empty field="orderItem">
                <if-compare-field field="parameters.returnQuantity" to-field="orderItem.quantity" operator="greater" type="BigDecimal">
                    <add-error>
                        <fail-property resource="OrderErrorUiLabels" property="OrderReturnQuantityCannotExceedTheOrderedQuantity"/>
                    </add-error>
                </if-compare-field>
            </if-not-empty>
            <if-compare-field field="parameters.returnPrice" to-field="returnablePrice" operator="greater" type="BigDecimal">
                <add-error>
                    <fail-property resource="OrderErrorUiLabels" property="OrderReturnPriceCannotExceedThePurchasePrice"/>
                </add-error>
            </if-compare-field>
            <check-errors/>

            <else>
                <set from-field="parameters.orderId" field="orderId"/>
                <set from-field="parameters.orderItemSeqId" field="orderItemSeqId"/>
                <log level="error" message="Order ${orderId} item ${orderItemSeqId} has been returned in full"/>
                <add-error>
                    <fail-property resource="OrderErrorUiLabels" property="OrderIllegalReturnItemTypePassed"/>
                </add-error>
                <check-errors/>
            </else>
        </if-compare>

        <make-value value-field="newEntity" entity-name="ReturnItem"/>
        <set from-field="parameters.returnId" field="newEntity.returnId"/>
        <make-next-seq-id seq-field-name="returnItemSeqId" value-field="newEntity"/>
        <set-nonpk-fields map="parameters" value-field="newEntity"/>
        <set field="newEntity.statusId" value="RETURN_REQUESTED"/> <!-- default status for new return items -->
        <field-to-result field="newEntity.returnItemSeqId" result-name="returnItemSeqId"/>
        <create-value value-field="newEntity"/>
        <refresh-value value-field="newEntity"/>

        <if>
            <condition>
                <or>
                    <if-empty field="parameters.includeAdjustments"/>
                    <if-compare field="parameters.includeAdjustments" operator="equals" value="Y"/>
                </or>
            </condition>
            <then>
                <!-- create return adjustments for all adjustments associated with the order item -->
                <if-not-empty field="orderItem">
                    <get-related value-field="orderItem" relation-name="OrderAdjustment" list="orderAdjustments"/>
                    <iterate list="orderAdjustments" entry="orderAdjustment">
                        <clear-field field="returnAdjCtx"/>
                        <set field="returnAdjCtx.returnId" from-field="parameters.returnId"/>
                        <set field="returnAdjCtx.returnItemSeqId" from-field="newEntity.returnItemSeqId"/>
                        <set field="returnAdjCtx.returnTypeId" from-field="newEntity.returnTypeId"/>
                        <set field="returnAdjCtx.orderAdjustmentId" from-field="orderAdjustment.orderAdjustmentId"/>
                        <call-service service-name="createReturnAdjustment" in-map-name="returnAdjCtx"/>
                    </iterate>
                </if-not-empty>
            </then>
        </if>

    </simple-method>

    <simple-method method-name="updateReturnItem" short-description="Update Return Item">
        <set from-field="parameters.returnId" field="lookupPKMap.returnId"/>
        <set from-field="parameters.returnItemSeqId" field="lookupPKMap.returnItemSeqId"/>
        <find-by-primary-key entity-name="ReturnItem" map="lookupPKMap" value-field="returnItem"/>
        <set field="originalReturnPrice" from-field="returnItem.returnPrice"/>
        <set field="originalReturnQuantity" from-field="returnItem.returnQuantity"/>
        <field-to-result field="returnItem.statusId" result-name="oldStatusId"/>

        <set-nonpk-fields map="parameters" value-field="returnItem"/>
        <store-value value-field="returnItem"/>
        <refresh-value value-field="returnItem"/>

        <!-- now update all return adjustments associated with this return item -->
        <entity-and entity-name="ReturnAdjustment" list="returnAdjustments">
            <field-map field-name="returnId" from-field="returnItem.returnId"/>
            <field-map field-name="returnItemSeqId" from-field="returnItem.returnItemSeqId"/>
        </entity-and>
        <iterate list="returnAdjustments" entry="returnAdjustment">
            <log level="info" message="updating returnAdjustment with Id:[${returnAdjustment.returnAdjustmentId}]"/>
            <set-service-fields service-name="updateReturnAdjustment" map="returnAdjustment" to-map="ctx"/>
            <set field="ctx.originalReturnPrice" from-field="originalReturnPrice"/>
            <set field="ctx.originalReturnQuantity" from-field="originalReturnQuantity"/>
            <set field="ctx.returnTypeId" from-field="returnItem.returnTypeId"/>
            <call-service service-name="updateReturnAdjustment" in-map-name="ctx" include-user-login="true"/>
        </iterate>

    </simple-method>
    <simple-method method-name="updateReturnItemsStatus" short-description="Update Return Items Status">
        <set from-field="parameters.returnId" field="lookupPKMap.returnId"/>
        <find-by-and entity-name="ReturnItem" map="lookupPKMap" list="returnItems"/>
        <iterate list="returnItems" entry="item">
            <set field="item.statusId" from-field="parameters.statusId"/>
            <set-service-fields service-name="updateReturnItem" map="item" to-map="serviceInMap"/>
            <call-service service-name="updateReturnItem" in-map-name="serviceInMap"/>
            <clear-field field="serviceInMap"/>
            <clear-field field="item"/>
        </iterate>
    </simple-method>
    <simple-method method-name="removeReturnItem" short-description="Remove Return Item">
        <entity-one entity-name="ReturnHeader" value-field="returnHeader"/>
        <if-compare field="returnHeader.returnHeaderTypeId" operator="equals" value="CUSTOMER_RETURN">
            <if-compare field="returnHeader.statusId" operator="not-equals" type="String" value="RETURN_REQUESTED">
                <add-error><fail-property resource="OrderErrorUiLabels" property="OrderCannotRemoveItemsOnceReturnIsApproved"/></add-error>
            </if-compare>
        <else>
            <if-compare field="returnHeader.statusId" operator="not-equals" type="String" value="SUP_RETURN_REQUESTED">
                <add-error><fail-property resource="OrderErrorUiLabels" property="OrderCannotRemoveItemsOnceReturnIsApproved"/></add-error>
            </if-compare>
        </else>
        </if-compare>
        <check-errors/>

        <set from-field="parameters.returnId" field="lookupPKMap.returnId"/>
        <set from-field="parameters.returnItemSeqId" field="lookupPKMap.returnItemSeqId"/>
        <find-by-primary-key entity-name="ReturnItem" map="lookupPKMap" value-field="returnItem"/>
        <!--remove related  adjustments-->
        <entity-and entity-name="ReturnAdjustment" list="returnAdjustments">
            <field-map field-name="returnItemSeqId" from-field="returnItem.returnItemSeqId"/>
            <field-map field-name="returnId" from-field="returnItem.returnId"/>
        </entity-and>
        <iterate list="returnAdjustments" entry="returnAdjustment">
            <set field="removeCtx.returnAdjustmentId" from-field="returnAdjustment.returnAdjustmentId"/>
            <call-service service-name="removeReturnAdjustment" in-map-name="removeCtx"/>
        </iterate>
        <remove-value value-field="returnItem"/>
    </simple-method>

    <simple-method method-name="createReturnAdjustment" short-description="Create Return Adjustment">
        <if>
            <condition>
                <not><if-has-permission permission="ORDERMGR" action="_CREATE"/></not>
            </condition>
            <then>
                <add-error>
                    <fail-property resource="OrderErrorUiLabels" property="OrderErrorCreatePermissionError"/>
                </add-error>
            </then>
        </if>
        <check-errors/>

        <make-value value-field="newEntity" entity-name="ReturnAdjustment"/>
        <set-nonpk-fields map="parameters" value-field="newEntity"/>
        <sequenced-id sequence-name="ReturnAdjustment" field="newEntity.returnAdjustmentId"/>
        <field-to-result field="newEntity.returnAdjustmentId" result-name="returnAdjustmentId"/>
        <create-value value-field="newEntity"/>
        <set field="responseMessage" value="Return Adjustment #${newEntity.returnAdjustmentId} was created successfully."/>
        <field-to-result field="responseMessage" result-name="successMessage"/>
    </simple-method>
    <simple-method method-name="removeReturnAdjustment" short-description="Remove Return Adjustment">
        <set from-field="parameters.returnAdjustmentId" field="lookupPKMap.returnAdjustmentId"/>
        <find-by-primary-key entity-name="ReturnAdjustment" map="lookupPKMap" value-field="returnAdjustment"/>
        <if-not-empty field="returnAdjustment">
            <remove-value value-field="returnAdjustment"/>
        </if-not-empty>
    </simple-method>
    <!-- note that this service is designed to be called once for each shipment receipt that is created -->
    <simple-method method-name="updateReturnStatusFromReceipt" short-description="Update Return Status From ShipmentReceipt">
        <set from-field="parameters.returnId" field="lookupPKMap.returnId"/>
        <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>
            <set field="totalsMap[receipt.returnItemSeqId]" from="totalsMap[receipt.returnItemSeqId] + (receipt.quantityAccepted + receipt.quantityRejected)"/>
        </iterate>
        <get-related relation-name="ReturnItem" list="returnItems" value-field="returnHeader"/>
        <iterate-map key="returnItemSeqId" value="value" map="totalsMap">
            <set field="filterMap.returnItemSeqId" from="returnItemSeqId"/>
            <filter-list-by-and list="returnItems" map="filterMap" to-list="items"/>
            <first-from-list list="items" entry="item"/>
            <set field="item.receivedQuantity" from="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"/>
            </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"/>
            <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"/>
        <iterate list="allReturnItems" entry="item">
            <if-compare field="item.statusId" operator="not-equals" value="RETURN_RECEIVED">
                <if-not-empty field="item.orderItemSeqId">
                    <!-- non-order items (i.e. adjustments) are not received -->
                    <set value="false" field="allReceived"/>
                </if-not-empty>
            </if-compare>
        </iterate>

        <!-- if the items are all received, then update the return header, store the status history change, and set the shipment to received -->
        <if-compare field="allReceived" operator="equals" value="true">

            <!--  Go through all the items yet again and set their shipment status to PURCH_SHIP_RECEIVED (if it isn't already)
                This activates SECAS such as creating return invoices. This MUST be done before updating the return header so that
                the ReturnItemBillings are created and then whatever SECA binds to the return header update will have them. . -->
            <iterate list="shipmentReceipts" entry="receipt">
                <get-related-one relation-name="Shipment" value-field="receipt" to-value-field="shipment"/>
                <if-not-empty field="shipment.shipmentId">
                    <if-compare field="shipment.statusId" operator="not-equals" value="RETURN_RECEIVED">
                        <set field="serviceInput.shipmentId" from-field="shipment.shipmentId"/>
                        <set field="serviceInput.statusId" value="PURCH_SHIP_RECEIVED"/>
                        <call-service service-name="updateShipment" in-map-name="serviceInput"/>
                    </if-compare>
                </if-not-empty>
            </iterate>

            <!-- update the return header -->
            <set field="returnHeaderCtx.statusId" value="RETURN_RECEIVED"/>
            <set from-field="returnHeader.returnId" field="returnHeaderCtx.returnId"/>
            <call-service service-name="updateReturnHeader" in-map-name="returnHeaderCtx"/>
        </if-compare>

        <!-- return the current return header status -->
        <field-to-result field="returnHeader.statusId" result-name="returnHeaderStatus"/>
    </simple-method>

    <simple-method method-name="quickReturnFromOrder" short-description="Create Quick Return From Order">
        <if>
            <condition>
                <and>
                    <not><if-has-permission permission="ORDERMGR" action="_CREATE"/></not>
                    <not><if-compare-field field="userLogin.partyId" to-field="parameters.fromPartyId" operator="equals"/></not>
                </and>
            </condition>
            <then>
                <add-error><fail-property resource="OrderErrorUiLabels" property="OrderSecurityErrorToRunQuickReturnFromOrder"/></add-error>
            </then>
        </if>
        <check-errors/>

        <!-- get primary information from the order header -->
        <entity-one entity-name="OrderHeader" value-field="orderHeader">
            <field-map field-name="orderId" from-field="parameters.orderId"/>
        </entity-one>
        <set field="returnHeaderTypeId" from-field="parameters.returnHeaderTypeId"/>
        <if-compare field="returnHeaderTypeId" operator="equals" value="CUSTOMER_RETURN">
            <set field="roleTypeId" value="BILL_TO_CUSTOMER"/>
        <else>
            <set field="roleTypeId" value="BILL_FROM_VENDOR"/>
        </else>
        </if-compare>

        <!-- find the bill to customer; for return's fromPartyId -->
        <entity-condition entity-name="OrderRole" list="orderRoles">
            <condition-list combine="and">
                <condition-expr field-name="orderId" operator="equals" from-field="orderHeader.orderId"/>
                <condition-expr field-name="roleTypeId" operator="equals" from-field="roleTypeId"/>
            </condition-list>
        </entity-condition>
        <first-from-list list="orderRoles" entry="orderRole"/>
        <!-- create the return header -->
        <set from-field="orderHeader.originFacilityId" field="createHeaderCtx.destinationFacilityId"/>
        <set value="Y" field="updateHeaderCtx.needsInventoryReceive"/>
        <set from-field="returnHeaderTypeId" field="createHeaderCtx.returnHeaderTypeId"/>

        <!-- get the return to party for customer return and return from party for vendor return from the product store -->
        <get-related-one relation-name="ProductStore" value-field="orderHeader" to-value-field="productStore"/>
        <if-compare field="returnHeaderTypeId" operator="equals" value="CUSTOMER_RETURN">
            <set field="createHeaderCtx.fromPartyId" from-field="orderRole.partyId"/>
            <set field="createHeaderCtx.toPartyId" from-field="productStore.payToPartyId"/>
            <if-empty field="createHeaderCtx.destinationFacilityId">
                <set field="createHeaderCtx.destinationFacilityId" from-field="productStore.inventoryFacilityId"/>
            </if-empty>
        <else>
            <set field="createHeaderCtx.fromPartyId" from-field="productStore.payToPartyId"/>
            <set field="createHeaderCtx.toPartyId" from-field="orderRole.partyId"/>
        </else>
        </if-compare>
        <!-- copy over the currency of the order to the currency of the return -->
        <set from-field="orderHeader.currencyUom" field="createHeaderCtx.currencyUomId"/>

        <call-service service-name="createReturnHeader" in-map-name="createHeaderCtx" include-user-login="true">
            <result-to-field result-name="returnId"/>
        </call-service>

        <!-- get the available to return order items -->
        <entity-condition entity-name="OrderItem" list="orderItems">
            <condition-list combine="and">
                <condition-expr field-name="orderId" operator="equals" from-field="orderHeader.orderId"/>
                <condition-expr field-name="statusId" operator="equals" value="ITEM_COMPLETED"/>
            </condition-list>
        </entity-condition>

        <if-empty field="parameters.returnReasonId">
            <set value="RTN_NOT_WANT" field="parameters.returnReasonId"/>
        </if-empty>
        <if-empty field="parameters.returnTypeId">
            <set value="RTN_REFUND" field="parameters.returnTypeId"/>
        </if-empty>

        <!-- create the return items -->
        <iterate list="orderItems" entry="orderItem">
            <set from-field="returnId" field="newItemCtx.returnId"/>
            <set from-field="parameters.returnReasonId" field="newItemCtx.returnReasonId"/>
            <set from-field="parameters.returnTypeId" field="newItemCtx.returnTypeId"/>

            <if-not-empty field="orderItem.productId">
                <set from-field="orderItem.productId" field="newItemCtx.productId"/>
            </if-not-empty>

            <set from-field="orderItem.orderId" field="newItemCtx.orderId"/>
            <set from-field="orderItem.orderItemSeqId" field="newItemCtx.orderItemSeqId"/>
            <set from-field="orderItem.itemDescription" field="newItemCtx.description"/>

            <!-- get the returnable price and quantity -->
            <set from-field="orderItem" field="itemCheckMap.orderItem"/>
            <call-service service-name="getReturnableQuantity" in-map-name="itemCheckMap">
                <result-to-field result-name="returnableQuantity" field="newItemCtx.returnQuantity"/>
                <result-to-field result-name="returnablePrice" field="newItemCtx.returnPrice"/>
            </call-service>

            <!-- get the matching return item type from the order item type -->

            <set from-field="orderItem.orderItemTypeId" field="orderItemTypeId"/>
            <if-compare field="orderItemTypeId" value="PRODUCT_ORDER_ITEM" operator="equals">
            <!-- Check if orderItemTypeId equals PRODUCT_ORDER_ITEM, if so, use ProductType and ReturnItemTypeMap to get ReturnItemType-->
                <entity-one entity-name="Product" value-field="product">
                    <field-map field-name="productId" from-field="orderItem.productId"/>
                    <select-field field-name="productTypeId"/>
                </entity-one>
                <entity-one entity-name="ReturnItemTypeMap" value-field="returnItemTypeMapping">
                    <field-map field-name="returnItemMapKey" from-field="product.productTypeId"/>
                    <field-map field-name="returnHeaderTypeId" from-field="returnHeaderTypeId"/>
                </entity-one>
            <else>
            <!-- if not, try the ReturnItemTypeMap, but this may not actually work, so log a warning -->
                <log level="warning" message="Trying to find returnItemtype from ReturnItemTypeMap with orderItemtypeId [${orderItem.orderItemTypeId}] for order item [${orderItem}]"/>
                <entity-one entity-name="ReturnItemTypeMap" value-field="returnItemTypeMapping">
                   <field-map field-name="returnItemMapKey" from-field="orderItemTypeId"/>
                   <field-map field-name="returnHeaderTypeId" from-field="returnHeaderTypeId"/>
                </entity-one>
            </else>
            </if-compare>

            <if-empty field="returnItemTypeMapping.returnItemTypeId">
                <add-error>
                    <fail-property resource="OrderErrorUiLabels" property="OrderReturnItemTypeOrderItemNoMatching"/>
                </add-error>
                <check-errors/>
            <else>
                <set from-field="returnItemTypeMapping.returnItemTypeId" field="newItemCtx.returnItemTypeId"/>
            </else>
            </if-empty>

            <!-- create the return item -->
            <if-not-empty field="newItemCtx.orderAdjustmentId">
                <log level="info" message="Found unexpected orderAdjustment:${newItemCtx.orderAdjustmentId}"/>
                <clear-field field="newItemCtx.orderAdjustmentId"/>
            </if-not-empty>
            <if-compare field="newItemCtx.returnQuantity" value="0" operator="greater" type="BigDecimal">
                <!-- otherwise, items which have been fully returned would still get passed in and then come back with an error -->
                <call-service service-name="createReturnItem" in-map-name="newItemCtx" include-user-login="true"/>
            <else>
                <log level="info" message="This return item is not going to be created because its returnQuantity is zero: ${newItemCtx}"/>
            </else>
            </if-compare>
        </iterate>

        <!-- create a return adjustment for all order adjustments not attached to a particular orderItem (orderItemSeqId = "_NA_") -->
        <entity-condition entity-name="OrderAdjustment" list="orderAdjustments">
            <condition-list combine="and">
                <condition-expr field-name="orderId" operator="equals" from-field="orderHeader.orderId"/>
                <condition-expr field-name="orderItemSeqId" operator="equals" value="_NA_"/>
            </condition-list>
        </entity-condition>
        <iterate list="orderAdjustments" entry="orderAdjustment">
            <clear-field field="returnAdjCtx"/>
            <set from-field="orderAdjustment.orderAdjustmentId" field="returnAdjCtx.orderAdjustmentId"/>
            <set from-field="returnId" field="returnAdjCtx.returnId"/>
            <!--filter out orderAdjustment that have been returned-->
            <entity-count entity-name="ReturnAdjustment" count-field="returnCount">
                <condition-expr field-name="orderAdjustmentId" operator="equals" from-field="orderAdjustment.orderAdjustmentId"/>
            </entity-count>
            <if-compare field="returnCount" value="0" operator="equals">
                <log level="info" message="Create new return adjustment: ${returnAdjCtx}"/>
                <call-service service-name="createReturnAdjustment" in-map-name="returnAdjCtx" include-user-login="true"/>
            </if-compare>
        </iterate>
        <set field="orderAvailableCtx.orderId" from-field="orderHeader.orderId"/>
        <set field="orderAvailableCtx.countNewReturnItems" value="true" type="Boolean"/> <!-- very important: if this is not set, getOrderAvailableReturnedTotal would not count the return items we just created -->
        <call-service service-name="getOrderAvailableReturnedTotal" in-map-name="orderAvailableCtx">
            <result-to-field result-name="availableReturnTotal" field="availableReturnTotal"/>
            <result-to-field result-name="returnTotal" field="returnTotal"/>
            <result-to-field result-name="orderTotal" field="orderTotal"/>
        </call-service>
        <log level="info" message="OrderTotal [${orderTotal}] - ReturnTotal [${returnTotal}] = available Return Total [${availableReturnTotal}]"/>

        <!-- create a manual balance adjustment based on the difference between order total and return total -->
        <if-compare field="availableReturnTotal" operator="not-equals" value="0.00" type="BigDecimal">
            <set value="Balance Adjustment" field="balanceItemCtx.description"/>
            <set value="RET_MAN_ADJ" field="balanceItemCtx.returnAdjustmentTypeId"/>

            <set from-field="returnId" field="balanceItemCtx.returnId"/>
            <set field="balanceItemCtx.returnItemSeqId" value="_NA_"/>
            <set from-field="availableReturnTotal" field="balanceItemCtx.amount" type="BigDecimal"/>
            <log level="warning" message="Creating a balance adjustment of [${availableReturnTotal}] for return [${returnId}]"/>

            <!-- create the balance adjustment return item -->
            <call-service service-name="createReturnAdjustment" in-map-name="balanceItemCtx" include-user-login="true"/>
        </if-compare>

        <!-- update the header status -->
        <if-compare field="returnHeaderTypeId" operator="equals" value="CUSTOMER_RETURN">
            <set field="updateHeaderCtx.statusId" value="RETURN_ACCEPTED"/>
        <else>
            <set field="updateHeaderCtx.statusId" value="SUP_RETURN_ACCEPTED"/>
        </else>
        </if-compare>
        <set from-field="returnId" field="updateHeaderCtx.returnId"/>
        <call-service service-name="updateReturnHeader" in-map-name="updateHeaderCtx" include-user-login="true"/>

        <if-compare field="returnHeaderTypeId" operator="equals" value="CUSTOMER_RETURN">
            <!-- auto-receive this return if we passed in the flag -->
            <if-compare field="parameters.receiveReturn" operator="equals" value="true" type="Boolean">
                <set from-field="returnId" field="receiveCtx.returnId"/>
                <call-service service-name="quickReceiveReturn" in-map-name="receiveCtx"/>
            <else>
                <!-- update the header status -->
                <log level="info" message="Receive flag not set; will handle receiving on entity-sync"/>
            </else>
            </if-compare>
        </if-compare>
        <field-to-result field="returnId"/>
    </simple-method>

    <simple-method method-name="createReturnAndItemOrAdjustment" short-description="If returnId is null, create a return; then create Return Item or Adjustment based on the parameters passed in">
        <if-empty field="parameters.returnId">
            <set-service-fields service-name="createReturnHeader" map="parameters" to-map="returnHeaderInMap"/>
            <call-service service-name="createReturnHeader" in-map-name="returnHeaderInMap">
                <result-to-field result-name="returnId" field="returnId"/>
            </call-service>
            <check-errors/>
            <set field="parameters.returnId" from-field="returnId"/>
            <field-to-result field="returnId" result-name="returnId"/>
        </if-empty>
        <set-service-fields service-name="createReturnItemOrAdjustment" map="parameters" to-map="createReturnItemOrAdjustmentInMap"/>
        <call-service service-name="createReturnItemOrAdjustment" in-map-name="createReturnItemOrAdjustmentInMap">
            <result-to-field result-name="returnAdjustmentId" field="returnAdjustmentId"/>
            <result-to-field result-name="returnItemSeqId" field="returnItemSeqId"/>
        </call-service>
        <check-errors/>
        <field-to-result field="returnAdjustmentId" result-name="returnAdjustmentId"/>
        <field-to-result field="returnItemSeqId" result-name="returnItemSeqId"/>
    </simple-method>

    <simple-method method-name="cancelReturnItems" short-description="Update a ReturnItems">
        <entity-condition entity-name="ReturnItem" list="returnItems" distinct="true">
            <condition-expr field-name="returnId" operator="equals" from-field="parameters.returnId"/>
        </entity-condition>
        <iterate list="returnItems" entry="returnItem">
            <set field="returnItemMap.returnId" from-field="parameters.returnId"/>
            <set field="returnItemMap.returnItemSeqId" from-field="returnItem.returnItemSeqId"/>
            <set field="returnItemMap.statusId" value="RETURN_CANCELLED"/>
            <call-service service-name="updateReturnItem" in-map-name="returnItemMap"/>
        </iterate>
    </simple-method>

    <simple-method method-name="cancelReplacementOrderItems" short-description="Cancel the associated OrderItems of the replacement order, if any.">
        <entity-one entity-name="ReturnItem" value-field="returnItem"/>
        <if>
            <condition>
                <or>
                    <if-compare field="returnItem.returnTypeId" operator="equals" value="RTN_REPLACE"/>
                    <if-compare field="returnItem.returnTypeId" operator="equals" value="RTN_CSREPLACE"/>
                    <if-compare field="returnItem.returnTypeId" operator="equals" value="RTN_REPAIR_REPLACE"/>
                </or>
            </condition>
            <then>
                <!-- get the returned order item -->
                <get-related-one value-field="returnItem" relation-name="OrderItem" to-value-field="orderItem"/>
                <!-- get the order items of the replacement order associated to the returned item  -->
                <set field="oiaMap.orderItemAssocTypeId" value="REPLACEMENT"/>
                <get-related value-field="orderItem" relation-name="FromOrderItemAssoc" map="oiaMap" list="replacementOrderItems"/>
                <iterate list="replacementOrderItems" entry="replacementOrderItem">
                    <set field="orderItemMap.orderId" from-field="replacementOrderItem.toOrderId"/>
                    <set field="orderItemMap.orderItemSeqId" from-field="replacementOrderItem.toOrderItemSeqId"/>
                    <call-service service-name="cancelOrderItem" in-map-name="orderItemMap"/>
                </iterate>
            </then>
        </if>
    </simple-method>

    <simple-method method-name="processWaitReplacementReturn" short-description="Process the replacements in a wait return">
        <set field="inMap.returnId" from-field="parameters.returnId"/>
        <set field="inMap.returnTypeId" value="RTN_REPLACE"/>
        <call-service service-name="processReplacementReturn" in-map-name="inMap"/>
    </simple-method>
    <simple-method method-name="processCrossShipReplacementReturn" short-description="Process the replacements in a cross-ship return">
        <set field="inMap.returnId" from-field="parameters.returnId"/>
        <set field="inMap.returnTypeId" value="RTN_CSREPLACE"/>
        <call-service service-name="processReplacementReturn" in-map-name="inMap"/>
    </simple-method>
    <simple-method method-name="processRepairReplacementReturn" short-description="Process the replacements in a repair return">
        <set field="inMap.returnId" from-field="parameters.returnId"/>
        <set field="inMap.returnTypeId" value="RTN_REPAIR_REPLACE"/>
        <call-service service-name="processReplacementReturn" in-map-name="inMap"/>
    </simple-method>
    <simple-method method-name="processWaitReplacementReservedReturn" short-description="Process the replacements in a wait reserved return when the return is accepted and then received">
        <entity-one entity-name="ReturnHeader" value-field="returnHeader"/>
        <if-compare field="returnHeader.statusId" operator="equals" value="RETURN_ACCEPTED">
            <set field="inMap.returnId" from-field="parameters.returnId"/>
            <set field="inMap.returnTypeId" value="RTN_WAIT_REPLACE_RES"/>
            <call-service service-name="processReplacementReturn" in-map-name="inMap"/>
        </if-compare>
        <if-compare field="returnHeader.statusId" operator="equals" value="RETURN_RECEIVED">
            <entity-and entity-name="ReturnItem" list="returnItems">
                <field-map field-name="returnId" from-field="returnHeader.returnId"/>
                <field-map field-name="returnTypeId" value="RTN_WAIT_REPLACE_RES"/>
            </entity-and>
            <if-not-empty field="returnItems">
                <!-- Get the replacement order and update its status to Approved -->
                <first-from-list list="returnItems" entry="returnItem"/>
                <get-related-one relation-name="ReturnItemResponse" value-field="returnItem" to-value-field="returnItemResponse"/>
                <entity-one entity-name="OrderHeader" value-field="orderHeader" >
                    <field-map field-name="orderId" from-field="returnItemResponse.replacementOrderId"/>
                </entity-one>
                <if-not-empty field="orderHeader">
                    <if-compare field="orderHeader.statusId" operator="equals" value="ORDER_HOLD">
                        <set field="changeOrderStatusMap.statusId" value="ORDER_APPROVED"/>
                        <set field="changeOrderStatusMap.orderId" from-field="returnItemResponse.replacementOrderId"/>
                        <set field="changeOrderStatusMap.setItemStatus" value="Y"/>
                        <call-service service-name="changeOrderStatus" in-map-name="changeOrderStatusMap"/>
                    </if-compare>
                    <if-compare field="orderHeader.statusId" operator="equals" value="ORDER_CANCELLED">
                        <set field="createOrderMap.returnId" from-field="parameters.returnId"/>
                        <set field="createOrderMap.returnTypeId" value="RTN_WAIT_REPLACE_RES"/>
                        <call-service service-name="processReplacementReturn" in-map-name="createOrderMap"/>
                    </if-compare>
                </if-not-empty>                                
            </if-not-empty>
        </if-compare>
    </simple-method>
   
    <simple-method method-name="processReplaceImmediatelyReturn" short-description="Process the replacements in a immediate return">
        <set field="inMap.returnId" from-field="parameters.returnId"/>
        <set field="inMap.returnTypeId" value="RTN_REPLACE_IMMEDIAT"/>
        <call-service service-name="processReplacementReturn" in-map-name="inMap"/>
    </simple-method> 
    <simple-method method-name="processRefundOnlyReturn" short-description="Process the refund in a return">
        <set field="inMap.returnId" from-field="parameters.returnId"/>
        <set field="inMap.returnTypeId" value="RTN_REFUND"/>
        <call-service service-name="processRefundReturn" in-map-name="inMap"/>
    </simple-method> 
    <simple-method method-name="processRefundImmediatelyReturn" short-description="Process the Immediate refund in a return">
        <set field="inMap.returnId" from-field="parameters.returnId"/>
        <set field="inMap.returnTypeId" value="RTN_REFUND_IMMEDIATE"/>
        <call-service service-name="processRefundReturn" in-map-name="inMap"/>
    </simple-method> 

    <simple-method method-name="createReturnItemShipment" short-description="Create a ReturnItemShipment">
        <make-value value-field="newEntity" entity-name="ReturnItemShipment"/>
        <set-pk-fields map="parameters" value-field="newEntity"/>
        <set-nonpk-fields map="parameters" value-field="newEntity"/>
        <create-value value-field="newEntity"/>
    </simple-method>

    <simple-method method-name="getStatusItemsForReturn" short-description="Get the return status associated with customer vs. vendor return">
        <if-compare field="parameters.returnHeaderTypeId" operator="equals" value="CUSTOMER_RETURN">
            <entity-and entity-name="StatusItem" list="statusItems">
                <field-map field-name="statusTypeId" value="ORDER_RETURN_STTS"/>
            </entity-and>
            <field-to-result field="statusItems"/>
        <else>
            <entity-and entity-name="StatusItem" list="statusItems">
                <field-map field-name="statusTypeId" value="PORDER_RETURN_STTS"/>
            </entity-and>
            <field-to-result field="statusItems"/>
        </else>
        </if-compare>
    </simple-method>

    <simple-method method-name="createExchangeOrderAssoc" short-description="Associate exchange order with original order in OrderItemAssoc entity">
        <entity-and entity-name="ReturnItem" list="returnItems">
            <field-map field-name="orderId" from-field="parameters.originOrderId"/>
            <field-map field-name="returnTypeId" value="RTN_REFUND"/>
        </entity-and>
        <set field="returnItemSize" value="${util:size(returnItems)}" type="Long"/>
        <entity-and entity-name="OrderItem" list="orderItems">
            <field-map field-name="orderId" from-field="parameters.orderId"/>
        </entity-and>
        <set field="orderItemSize" value="${util:size(orderItems)}" type="Long"/>
        <if>
            <condition>
                <if-compare-field field="returnItemSize" operator="greater" to-field="orderItemSize" type="Long"/>
            </condition>
            <then>
                <set field="returnItemCounter" value="1" type="Long"/>
                <iterate list="returnItems" entry="returnItem">
                    <set field="orderItemAssocMap.orderId" from-field="parameters.originOrderId"/>
                    <set field="orderItemAssocMap.orderItemSeqId" from-field="returnItem.orderItemSeqId"/>
                    <set field="orderItemCounter" value="1" type="Long"/>
                    <iterate list="orderItems" entry="orderItem">
                        <if>
                            <condition>
                                <if-compare-field field="returnItemCounter" operator="equals" to-field="orderItemCounter" type="Long"/>
                            </condition>
                            <then>
                                <set field="orderItemAssocMap.toOrderId" from-field="parameters.orderId"/>
                                <set field="orderItemAssocMap.toOrderItemSeqId" from-field="orderItem.orderItemSeqId"/>
                            </then>
                        <else-if>
                            <condition>
                                <if-compare-field field="returnItemCounter" operator="greater" to-field="orderItemSize" type="Long"/>
                            </condition>
                            <then>
                                <set field="orderItemAssocMap.toOrderId" from-field="parameters.orderId"/>
                                <set field="orderItemAssocMap.toOrderItemSeqId" from-field="orderItem.orderItemSeqId"/>
                            </then>
                        </else-if>
                        </if>
                        <set field="orderItemCounter" value="${orderItemCounter+1}" type="Long"/>
                    </iterate>
                    <set field="orderItemAssocMap.shipGroupSeqId" value="_NA_"/>
                    <set field="orderItemAssocMap.toShipGroupSeqId" value="_NA_"/>
                    <set field="orderItemAssocMap.orderItemAssocTypeId" value="EXCHANGE"/>
                    <make-value entity-name="OrderItemAssoc" value-field="orderItemAssoc"/>
                    <set-pk-fields map="orderItemAssocMap" value-field="orderItemAssoc"/>
                    <find-by-primary-key entity-name="OrderItemAssoc" map="orderItemAssoc" value-field="orderItemAssocValue"/>
                    <if-empty field="orderItemAssocValue">
                        <create-value value-field="orderItemAssoc"/>
                        <clear-field field="orderItemAssoc"/>
                    </if-empty>
                    <set field="returnItemCounter" value="${returnItemCounter+1}" type="Long"/>
                </iterate>
            </then>
            <else>
                <set field="orderItemCounter" value="1" type="Long"/>
                <iterate list="orderItems" entry="orderItem">
                    <set field="orderItemAssocMap.toOrderId" from-field="parameters.orderId"/>
                    <set field="orderItemAssocMap.toOrderItemSeqId" from-field="orderItem.orderItemSeqId"/>
                    <set field="returnItemCounter" value="1" type="Long"/>
                    <iterate list="returnItems" entry="returnItem">
                        <if>
                            <condition>
                                <if-compare-field field="orderItemCounter" operator="equals" to-field="returnItemCounter" type="Long"/>
                            </condition>
                            <then>
                                <set field="orderItemAssocMap.orderId" from-field="parameters.originOrderId"/>
                                <set field="orderItemAssocMap.orderItemSeqId" from-field="returnItem.orderItemSeqId"/>
                            </then>
                        <else-if>
                            <condition>
                                <if-compare-field field="orderItemCounter" operator="greater" to-field="returnItemSize" type="Long"/>
                            </condition>
                            <then>
                                <set field="orderItemAssocMap.orderId" from-field="parameters.originOrderId"/>
                                <set field="orderItemAssocMap.orderItemSeqId" from-field="returnItem.orderItemSeqId"/>
                            </then>
                        </else-if>
                        </if>
                        <set field="returnItemCounter" value="${returnItemCounter+1}" type="Long"/>
                    </iterate>
                    <set field="orderItemAssocMap.shipGroupSeqId" value="_NA_"/>
                    <set field="orderItemAssocMap.toShipGroupSeqId" value="_NA_"/>
                    <set field="orderItemAssocMap.orderItemAssocTypeId" value="EXCHANGE"/>
                    <make-value entity-name="OrderItemAssoc" value-field="orderItemAssoc"/>
                    <set-pk-fields map="orderItemAssocMap" value-field="orderItemAssoc"/>
                    <find-by-primary-key entity-name="OrderItemAssoc" map="orderItemAssoc" value-field="orderItemAssocValue"/>
                    <if-empty field="orderItemAssocValue">
                        <create-value value-field="orderItemAssoc"/>
                        <clear-field field="orderItemAssocMap"/>
                    </if-empty>
                    <set field="orderItemCounter" value="${orderItemCounter+1}" type="Long"/>
                </iterate>
            </else>
        </if>
    </simple-method>

    <simple-method method-name="addProductsBackToCategory" short-description="When one or more product is received directly through receive inventory or refund return then add these product(s) back to category, if they does not have any active category">
        <if-not-empty field="parameters.inventoryItemId">
            <entity-one entity-name="InventoryItem" value-field="inventoryItem"/>
            <get-related-one relation-name="Product" value-field="inventoryItem" to-value-field="product"/>
            <set field="orderBy[]" value="-thruDate"/>
            <get-related relation-name="ProductCategoryMember" value-field="product" list="productCategoryMembers" order-by-list="orderBy"/>
            <!-- check whether this product is associated to any category, if not just skip -->
            <if-not-empty field="productCategoryMembers">
                <filter-list-by-date list="productCategoryMembers" to-list="pcms"/>
                <!-- check if this product is associated to any active category, if not found then activate the most recent inactive category -->
                <if-empty field="pcms">
                    <first-from-list list="productCategoryMembers" entry="pcm"/>
                    <clear-field field="pcm.thruDate"/>
                    <set-service-fields service-name="updateProductToCategory" map="pcm" to-map="updateProductToCategoryMap"/>
                    <call-service service-name="updateProductToCategory" in-map-name="updateProductToCategoryMap"/>
                </if-empty>
            </if-not-empty>
        <else>
            <if-not-empty field="parameters.returnId">
                <entity-and entity-name="ReturnItem" list="returnItems">
                    <field-map field-name="returnId" from-field="parameters.returnId"/>
                    <field-map field-name="returnTypeId" value="RTN_REFUND"/>
                </entity-and>
                <if-not-empty field="returnItems">
                    <iterate list="returnItems" entry="returnItem">
                        <get-related-one relation-name="Product" value-field="returnItem" to-value-field="product"/>
                        <set field="orderBy[]" value="-thruDate"/>
                        <get-related relation-name="ProductCategoryMember" value-field="product" list="productCategoryMembers" order-by-list="orderBy"/>
                        <!-- check whether this product is associated to any category, if not just skip -->
                        <if-not-empty field="productCategoryMembers">
                            <filter-list-by-date list="productCategoryMembers" to-list="pcms"/>
                            <!-- check if this product is associated to any active category, if not found then activate the most recent inactive category -->
                            <if-empty field="pcms">
                                <first-from-list list="productCategoryMembers" entry="pcm"/>
                                <clear-field field="pcm.thruDate"/>
                                <set-service-fields service-name="updateProductToCategory" map="pcm" to-map="updateProductToCategoryMap"/>
                                <call-service service-name="updateProductToCategory" in-map-name="updateProductToCategoryMap"/>
                            </if-empty>
                        </if-not-empty>
                    </iterate>
                </if-not-empty>
            </if-not-empty>
        </else>
        </if-not-empty>
    </simple-method>
    
    <simple-method method-name="createReturnStatus" short-description="Create ReturnHeader and ReturnItem Status">
        <make-value entity-name="ReturnStatus" value-field="newEntity"/>
        <if-empty field="parameters.returnItemSeqId">
            <entity-one entity-name="ReturnHeader" value-field="returnHeader"/>
            <set field="newEntity.statusId" from-field="returnHeader.statusId"/>
        <else>
            <entity-one entity-name="ReturnItem"  value-field="returnItem"/>
            <set field="newEntity.returnItemSeqId" from-field="returnItem.returnItemSeqId"/>
            <set field="newEntity.statusId" from-field="returnItem.statusId"/>
        </else>
        </if-empty>
        <sequenced-id sequence-name="ReturnStatus" field="newEntity.returnStatusId"/>
        <set field="newEntity.returnId" from-field="parameters.returnId"/>
        <set field="newEntity.changeByUserLoginId" from-field="userLogin.userLoginId"/>
        <now-timestamp field="newEntity.statusDatetime"/>
        <create-value value-field="newEntity"/>
    </simple-method>
    
    <simple-method method-name="updateReturnContactMech" short-description="Update ReturnContactMech">
        <make-value value-field="returnContactMechMap" entity-name="ReturnContactMech"/>

        <set-pk-fields map="parameters" value-field="returnContactMechMap"/>
        <entity-one entity-name="ReturnHeader" value-field="returnHeader"/>
        <set from-field="parameters.returnId" field="createReturnContactMechMap.returnId"/>
        <set from-field="parameters.contactMechPurposeTypeId" field="createReturnContactMechMap.contactMechPurposeTypeId"/>
        <set from-field="parameters.contactMechId" field="createReturnContactMechMap.contactMechId"/>
  
        <find-by-and entity-name="ReturnContactMech" map="createReturnContactMechMap" list="returnContactMechList"/>
        <!-- If returnContactMechList value is null then create new entry in ReturnContactMech entity-->
        <if-empty field="returnContactMechList">
            <if-compare field="parameters.contactMechPurposeTypeId" operator="equals" value="SHIPPING_LOCATION">
                <set field="returnHeader.originContactMechId" from-field="createReturnContactMechMap.contactMechId"/>
                <store-value value-field="returnHeader"/>
            </if-compare>
            <call-service service-name="createReturnContactMech" in-map-name="createReturnContactMechMap" include-user-login="true"/>
            <set from-field="parameters.returnId" field="deleteReturnContactMechMap.returnId"/>
            <set from-field="parameters.oldContactMechId" field="deleteReturnContactMechMap.contactMechId"/>
            <set from-field="parameters.contactMechPurposeTypeId" field="deleteReturnContactMechMap.contactMechPurposeTypeId"/>
            <call-service service-name="deleteReturnContactMech" in-map-name="deleteReturnContactMechMap" include-user-login="true"/>
        </if-empty>
        <store-value value-field="returnContactMechMap"/>
     </simple-method>

    <simple-method method-name="createReturnItemForRental" short-description="Create the return item for rental (which items has product type is ASSET_USAGE_OUT_IN)">
        <entity-one entity-name="OrderHeader" value-field="orderHeader">
            <field-map field-name="orderId" from-field="parameters.orderId"/>
        </entity-one>

        <if-compare operator="equals" value="SALES_ORDER" field="orderHeader.orderTypeId">
            <entity-condition entity-name="OrderRole" list="orderRoles">
                <condition-list combine="and">
                    <condition-expr field-name="orderId" operator="equals" from-field="orderHeader.orderId"/>
                    <condition-expr field-name="roleTypeId" operator="equals" value="BILL_TO_CUSTOMER"/>
                </condition-list>
            </entity-condition>
            <first-from-list list="orderRoles" entry="orderRole"/>

            <get-related-one relation-name="ProductStore" value-field="orderHeader" to-value-field="productStore"/>

            <if-not-empty field="productStore.inventoryFacilityId">
                <set field="createReturnCtx.destinationFacilityId" from-field="productStore.inventoryFacilityId"/>
            </if-not-empty>

            <if-not-empty field="productStore.reqReturnInventoryReceive">
                <set field="updateHeaderCtx.needsInventoryReceive" from-field="productStore.reqReturnInventoryReceive"/>
            <else>
                <set field="updateHeaderCtx.needsInventoryReceive" value="N"/>
            </else>
            </if-not-empty>

            <set field="createReturnCtx.orderId" from-field="orderHeader.orderId"/>
            <set field="createReturnCtx.currencyUomId" from-field="orderHeader.currencyUom"/>
            <set field="createReturnCtx.fromPartyId" from-field="orderRole.partyId"/>
            <set field="createReturnCtx.toPartyId" from-field="productStore.payToPartyId"/>
            <set field="createReturnCtx.returnHeaderTypeId" value="CUSTOMER_RETURN"/>
            <set field="createReturnCtx.returnReasonId" value="RTN_NORMAL_RETURN"/>
            <set field="createReturnCtx.returnTypeId" value="RTN_RENTAL"/>
            <set field="createReturnCtx.returnItemTypeId" value="RET_FDPROD_ITEM"/>
            <set field="createReturnCtx.expectedItemStatus" value="INV_RETURNED"/>
            <set field="createReturnCtx.returnPrice" value="0.00" type="BigDecimal"/>

            <entity-condition entity-name="OrderItemAndProduct" list="orderItems">
                <condition-list combine="and">
                    <condition-expr field-name="orderId" operator="equals" from-field="orderHeader.orderId"/>
                    <condition-expr field-name="statusId" operator="equals" value="ITEM_COMPLETED"/>
                    <condition-expr field-name="productTypeId" operator="equals" value="ASSET_USAGE_OUT_IN"/>
                </condition-list>
            </entity-condition>
            <iterate list="orderItems" entry="orderItem">
                <set field="createReturnCtx.productId" from-field="orderItem.productId"/>
                <set field="createReturnCtx.orderItemSeqId" from-field="orderItem.orderItemSeqId"/>
                <set field="createReturnCtx.description" from-field="orderItem.itemDescription"/>
                <set field="createReturnCtx.returnQuantity" from-field="orderItem.quantity"/>
                <call-service service-name="createReturnAndItemOrAdjustment" in-map-name="createReturnCtx" include-user-login="true">
                    <result-to-field result-name="returnId" field="returnId"/>
                </call-service>
                <if-not-empty field="returnId">
                    <set field="createReturnCtx.returnId" from-field="returnId"/>
                </if-not-empty>
            </iterate>
        </if-compare>
    </simple-method>
</simple-methods>
