<?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="orderAdjustmentPermissionCheck" short-description="Permission service for the creation and editing of order adjustments">
        <set field="primaryPermission" value="ORDERMGR"/>
        <set field="altPermission" value="ORDERMGR_ROLE"/>
        <set field="mainAction" from-field="parameters.mainAction"/>
        <call-simple-method method-name="genericBasePermissionCheck" xml-resource="component://common/minilang/permission/CommonPermissionServices.xml"/>
        <if-compare field="hasPermission" operator="not-equals" value="true">
            <set field="resourceDescription" from-field="parameters.resourceDescription"/>
            <if-empty field="resourceDescription">
                <property-to-field resource="CommonUiLabels" property="CommonPermissionThisOperation" field="resourceDescription"/>
            </if-empty>
            <if-compare field="mainAction" value="CREATE" operator="equals">
                <property-to-field resource="OrderErrorUiLabels" property="OrderSecurityErrorToRunCreateOrderAdjustement" field="failMessage"/>
            </if-compare>
            <if-compare field="mainAction" value="UPDATE" operator="equals">
                <property-to-field resource="OrderErrorUiLabels" property="OrderSecurityErrorToRunAutoCreateOrderAdjustments" field="failMessage"/>
            </if-compare>
            <set field="hasPermission" type="Boolean" value="false"/>
            <field-to-result field="failMessage"/>
            <else>
                <field-to-result field="hasPermission"/>
            </else>
        </if-compare>
    </simple-method>
    <simple-method method-name="deleteOrderAdjustment" short-description="Delete an OrderAdjustment">
        <check-permission permission="ORDERMGR" action="_DELETE"><fail-property resource="OrderErrorUiLabels" property="OrderSecurityErrorToRunDeleteOrderAdjustement"/></check-permission>
        <check-errors/>
        <entity-one entity-name="OrderAdjustment" value-field="lookedUpValue"/>
        <remove-value value-field="lookedUpValue"/>

        <if-not-empty field="parameters.productPromoCodeId">
            <entity-one entity-name="OrderProductPromoCode" value-field="lookedUpValue"/>
            <if-not-empty field="lookedUpValue">
                <remove-value value-field="lookedUpValue"/>
            </if-not-empty>
        </if-not-empty>
    </simple-method>

    <simple-method method-name="updateOrderStatusFromReceipt" short-description="Update Order Status From ShipmentReceipt">
        <check-permission permission="ORDERMGR" action="_UPDATE"><fail-property resource="OrderErrorUiLabels" property="OrderSecurityErrorToRunUpdateOrderStatusFromReceipt"/></check-permission>
        <check-errors/>

        <entity-one entity-name="OrderHeader" value-field="orderHeader"/>
        <entity-and entity-name="ShipmentReceipt" list="shipmentReceipts">
            <field-map field-name="orderId" from-field="parameters.orderId"/>
        </entity-and>
        <iterate list="shipmentReceipts" entry="receipt">
            <if-empty field="totalsMap[receipt.orderItemSeqId]">
                <set field="totalsMap[receipt.orderItemSeqId]" value="0" type="BigDecimal"/>
            </if-empty>
            <calculate field="totalsMap[receipt.orderItemSeqId]">
                <calcop operator="add" field="totalsMap[receipt.orderItemSeqId]">
                    <calcop operator="get" field="receipt.quantityAccepted"/>
                    <calcop operator="get" field="receipt.quantityRejected"/>
                </calcop>
            </calculate>
            <set from-field="receipt.orderId" field="newLookupMap.orderId"/>
            <set from-field="receipt.orderItemSeqId" field="newLookupMap.orderItemSeqId"/>
            <find-by-primary-key entity-name="OrderItem" map="newLookupMap" value-field="orderItem"/>
            <if-compare field="orderItem.statusId" operator="not-equals" value="ITEM_COMPLETED">
                <if-compare-field field="orderItem.quantity" to-field="totalsMap[receipt.orderItemSeqId]" operator="less-equals" type="BigDecimal">
                    <!-- update the status for the item -->
                    <set field="orderItem.statusId" value="ITEM_COMPLETED"/>
                    <store-value value-field="orderItem"/>
                    <!-- create status change history -->
                    <make-value entity-name="OrderStatus" value-field="newValue"/>
                    <sequenced-id sequence-name="OrderStatus" field="newValue.orderStatusId"/>
                    <set from-field="orderItem.orderItemSeqId" field="newValue.orderItemSeqId"/>
                    <set from-field="orderItem.orderId" field="newValue.orderId"/>
                    <set from-field="orderItem.statusId" field="newValue.statusId"/>
                    <set from-field="parameters.userLogin.userLoginId" field="newValue.statusUserLogin"/>
                    <now-timestamp field="newValue.statusDatetime"/>

                    <create-value value-field="newValue"/>
                </if-compare-field>
            </if-compare>
        </iterate>

        <!-- check to see if all items have been completed -->
        <entity-and entity-name="OrderItem" list="allOrderItems">
            <field-map field-name="orderId" from-field="parameters.orderId"/>
        </entity-and>
        <set value="true" field="allCompleted"/>
        <iterate list="allOrderItems" entry="item">
            <if-compare field="item.statusId" operator="not-equals" value="ITEM_COMPLETED">
                <set value="false" field="allCompleted"/>
            </if-compare>
        </iterate>

        <if-compare field="allCompleted" operator="equals" value="true">
            <!-- update the order header -->
            <set field="orderHeader.statusId" value="ORDER_COMPLETED"/>
            <store-value value-field="orderHeader"/>
            <!-- create the status history -->
            <make-value entity-name="OrderStatus" value-field="newValue"/>
            <sequenced-id sequence-name="OrderStatus" field="newValue.orderStatusId"/>

            <set from-field="orderHeader.orderId" field="newValue.orderId"/>
            <set from-field="orderHeader.statusId" field="newValue.statusId"/>
            <set from-field="parameters.userLogin.userLoginId" field="newValue.statusUserLogin"/>
            <now-timestamp field="newValue.statusDatetime"/>

            <create-value value-field="newValue"/>
        </if-compare>

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