<?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"
        xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/simple-methods-v2.xsd">

    <simple-method method-name="getProductRouting" short-description="Get the product's routing and routing tasks">
        <set from-field="parameters.productId" field="lookupRouting.productId"/>
        <set value="ROU_PROD_TEMPLATE" field="lookupRouting.workEffortGoodStdTypeId"/>
        <!-- If applicableDate has been passed use the value with all filter-by-date calls-->
        <if-not-empty field="parameters.applicableDate">
                <set from-field="parameters.applicableDate" field="filterDate"/>
            <else>
                <now-timestamp field="filterDate"/>
            </else>
        </if-not-empty>
        <!-- If a workEffortId has been passed, use it to look up the desired routing-->
        <if-not-empty field="parameters.workEffortId">
            <set from-field="parameters.workEffortId" field="lookupRouting.workEffortId"/>
            <find-by-and entity-name="WorkEffortGoodStandard" list="routings" map="lookupRouting"/>
            <filter-list-by-date list="routings" valid-date="filterDate"/>
            <first-from-list list="routings" entry="routingGS"/>
            <!-- If the routing is not associated with our product and it's a variant, then
                 check to see if it's virtual product has the routing -->
            <if-empty field="routingGS">
                <entity-condition entity-name="ProductAssoc" list="virtualProductAssocList" filter-by-date="true">
                    <condition-list combine="and">
                        <condition-expr field-name="productIdTo" from-field="parameters.productId"/>
                        <condition-expr field-name="productAssocTypeId" value="PRODUCT_VARIANT"/>
                    </condition-list>
                </entity-condition>
                <first-from-list list="virtualProductAssocList" entry="virtualProductAssoc"/>
                <if-not-empty field="virtualProductAssoc">
                    <set from-field="virtualProductAssoc.productId" field="lookupRouting.productId"/>
                    <find-by-and entity-name="WorkEffortGoodStandard" list="routings" map="lookupRouting"/>
                    <!-- Consider the validity against a date passed as (optional) parameter -->
                    <filter-list-by-date list="routings" valid-date="filterDate"/>
                    <first-from-list list="routings" entry="routingGS"/>
                </if-not-empty>
            </if-empty>
            <!-- No workEffortId has been passed, so retrieve the first routing found for this product-->
            <else>
                <find-by-and entity-name="WorkEffortGoodStandard" list="routings" map="lookupRouting"/>
                <!-- Consider the validity against a date passed as (optional) parameter -->
                <filter-list-by-date list="routings" valid-date="filterDate"/>
                <!-- TODO: we should consider the quantity to select the best routing -->
                <first-from-list list="routings" entry="routingGS"/>
                <!-- If there are no routings associated with our product and it's a variant, then
                     check to see if it's virtual product has a routing -->
                <if-empty field="routingGS">
                    <entity-condition entity-name="ProductAssoc" list="virtualProductAssocList">
                        <condition-list combine="and">
                            <condition-expr field-name="productIdTo" from-field="parameters.productId"/>
                            <condition-expr field-name="productAssocTypeId" value="PRODUCT_VARIANT"/>
                        </condition-list>
                    </entity-condition>
                    <filter-list-by-date list="virtualProductAssocList" valid-date="filterDate"/>
                    <first-from-list list="virtualProductAssocList" entry="virtualProductAssoc"/>
                    <if-not-empty field="virtualProductAssoc">
                        <set from-field="virtualProductAssoc.productId" field="lookupRouting.productId"/>
                        <set value="ROU_PROD_TEMPLATE" field="lookupRouting.workEffortGoodStdTypeId"/>
                        <find-by-and entity-name="WorkEffortGoodStandard" list="routings" map="lookupRouting"/>
                        <!-- Consider the validity against a date passed as (optional) parameter -->
                        <filter-list-by-date list="routings" valid-date="filterDate"/>
                        <!-- TODO: we should consider the quantity to select the best routing -->
                        <first-from-list list="routings" entry="routingGS"/>
                    </if-not-empty>
                </if-empty>
            </else>
        </if-not-empty>
        <if-not-empty field="routingGS">
            <clear-field field="lookupRouting"/>
            <set from-field="routingGS.workEffortId" field="lookupRouting.workEffortId"/>
            <find-by-primary-key entity-name="WorkEffort" value-field="routing" map="lookupRouting"/>
            <else>
                <!-- The default routing is used when no explicit routing is associated to the product
                     and the ignoreDefaultRouting is not equals to Y -->
                <if>
                    <condition>
                    <or>
                        <if-empty field="parameters.ignoreDefaultRouting"/>
                        <if-compare field="parameters.ignoreDefaultRouting" operator="equals" value="N"/>
                    </or>
                    </condition>
                    <then>
                        <clear-field field="lookupRouting"/>
                        <set value="DEFAULT_ROUTING" field="lookupRouting.workEffortId"/>
                        <find-by-primary-key entity-name="WorkEffort" value-field="routing" map="lookupRouting"/>
                    </then>
                </if>
            </else>
        </if-not-empty>
        <if-not-empty field="routing">
            <set from-field="routing.workEffortId" field="lookupTasks.workEffortIdFrom"/>
            <string-to-list string="sequenceNum" list="tasksOrder"/>
            <set value="ROUTING_COMPONENT" field="lookupTasks.workEffortAssocTypeId"/>
            <find-by-and entity-name="WorkEffortAssoc" list="tasks" map="lookupTasks" order-by-list="tasksOrder"/>
            <filter-list-by-date list="tasks"/>
        </if-not-empty>

        <field-to-result field="routing"/>
        <field-to-result field="tasks"/>
    </simple-method>
    <simple-method method-name="getRoutingTaskAssocs" short-description="Get the routing task assocs of a given routing">
        <set from-field="parameters.workEffortId" field="lookupTasks.workEffortIdFrom"/>
        <string-to-list string="sequenceNum" list="tasksOrder"/>
        <set value="ROUTING_COMPONENT" field="lookupTasks.workEffortAssocTypeId"/>
        <find-by-and entity-name="WorkEffortAssoc" list="routingTaskAssocs" map="lookupTasks" order-by-list="tasksOrder"/>
        <filter-list-by-date list="routingTaskAssocs"/>
        <field-to-result field="routingTaskAssocs"/>
    </simple-method>

</simple-methods>

