<?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="editProductionRunRoutingTask" short-description="Check parameters and edit a production run task.">
        <call-map-processor in-map-name="parameters" out-map-name="context">
            <simple-map-processor name="prCheckUpdatePrunRoutingTask">
                <process field="productionRunId">
                    <copy/>
                </process>
                <process field="routingTaskId">
                    <copy/>
                </process>
                <process field="priority">
                    <copy/>
                    <convert type="Long">
                        <fail-property resource="ManufacturingUiLabels" property="ManufacturingRoutingSeqIdFormatNotCorrect"/>
                    </convert>
                </process>
                <process field="estimatedStartDate">
                    <copy/>
                    <not-empty>
                        <fail-property resource="ManufacturingUiLabels" property="ManufacturingProductionRunStartDateMissing"/>
                    </not-empty>
                    <convert type="Timestamp">
                        <fail-property resource="ManufacturingUiLabels" property="ManufacturingProductionRunStartDateNotCorrect"/>
                    </convert>
                </process>
                <process field="estimatedSetupMillis">
                    <copy/>
                    <convert type="BigDecimal">
                        <fail-property resource="ManufacturingUiLabels" property="ManufacturingProductionRunEstimatedSetupMillisNotCorrect"/>
                    </convert>
                </process>
                <process field="estimatedMilliSeconds">
                    <copy/>
                    <convert type="BigDecimal">
                        <fail-property resource="ManufacturingUiLabels" property="ManufacturingProductionRunEstimatedMilliSecondsNotCorrect"/>
                    </convert>
                </process>
            </simple-map-processor>
        </call-map-processor>
        <check-errors/>
        <call-service service-name="checkUpdatePrunRoutingTask" in-map-name="context">
        </call-service>
        <check-errors/>
        <call-map-processor in-map-name="parameters" out-map-name="context1">
            <simple-map-processor name="prepareUpdateRoutingTask">
                <process field="productionRunId">
                    <copy to-field="workEffortParentId"/>
                </process>
                <process field="routingTaskId">
                    <copy to-field="workEffortId"/>
                </process>
                <process field="priority">
                    <copy/>
                    <convert type="Long">
                        <fail-property resource="ManufacturingUiLabels" property="ManufacturingRoutingSeqIdFormatNotCorrect"/>
                    </convert>
                </process>
                <process field="workEffortName">
                    <copy/>
                </process>
                <process field="description">
                    <copy/>
                </process>
                <process field="estimatedSetupMillis">
                    <copy/>
                    <convert type="BigDecimal">
                        <fail-property resource="ManufacturingUiLabels" property="ManufacturingProductionRunEstimatedSetupMillisNotCorrect"/>
                    </convert>
                </process>
                <process field="estimatedMilliSeconds">
                    <copy/>
                    <convert type="BigDecimal">
                        <fail-property resource="ManufacturingUiLabels" property="ManufacturingProductionRunEstimatedMilliSecondsNotCorrect"/>
                    </convert>
                </process>
                <process field="reservPersons">
                    <copy/>
                    <convert type="BigDecimal">
                        <fail-property resource="ManufacturingUiLabels" property="ManufacturingProductionRunReservPersonNotCorrect"/>
                    </convert>
                </process>
            </simple-map-processor>
        </call-map-processor>
        <check-errors/>
        <call-service service-name="updateWorkEffort" in-map-name="context1">
        </call-service>
    </simple-method>

    <simple-method method-name="addProductionRunRoutingTask" short-description="Check parameters and add a production run task.">
        <call-map-processor in-map-name="parameters" out-map-name="context">
            <simple-map-processor name="prepareAddRoutingTask">
                <process field="productionRunId">
                    <copy/>
                </process>
                <process field="routingTaskId">
                    <copy/>
                    <not-empty>
                        <fail-property resource="ManufacturingUiLabels" property="ManufacturingRoutingTaskIdMissing"/>
                    </not-empty>
                </process>
                <process field="priority">
                    <copy/>
                    <not-empty>
                        <fail-property resource="ManufacturingUiLabels" property="ManufacturingProductionRunPriorityMissing"/>
                    </not-empty>
                    <convert type="Long">
                        <fail-property resource="ManufacturingUiLabels" property="ManufacturingRoutingSeqIdFormatNotCorrect"/>
                    </convert>
                </process>
                <process field="estimatedStartDate">
                    <copy/>
                    <convert type="Timestamp">
                        <fail-property resource="ManufacturingUiLabels" property="ManufacturingProductionRunStartDateNotCorrect"/>
                    </convert>
                </process>
                <process field="estimatedCompletionDate">
                    <copy/>
                    <convert type="Timestamp">
                        <fail-property resource="ManufacturingUiLabels" property="ManufacturingProductionRunCompletionDateNotCorrect"/>
                    </convert>
                </process>
                <process field="estimatedSetupMillis">
                    <copy/>
                    <convert type="BigDecimal">
                        <fail-property resource="ManufacturingUiLabels" property="ManufacturingProductionRunQuantityNotCorrect"/>
                    </convert>
                </process>
                <process field="estimatedMilliSeconds">
                    <copy/>
                    <convert type="BigDecimal">
                        <fail-property resource="ManufacturingUiLabels" property="ManufacturingProductionRunQuantityNotCorrect"/>
                    </convert>
                </process>
                <process field="workEffortName">
                    <copy/>
                </process>
                <process field="description">
                    <copy/>
                </process>
            </simple-map-processor>
        </call-map-processor>
        <check-errors/>
        <call-service service-name="addProductionRunRoutingTask" in-map-name="context">
        </call-service>
    </simple-method>
    <simple-method method-name="createProductionRun" short-description="Based on selected options, calls one of the specialized services to create a production run.">
        <if-compare field="parameters.createDependentProductionRuns" operator="equals" value="Y">
                <return response-code="createProductionRunsForProductBom"/>
            <else>
                <set field="parameters.pRQuantity" from-field="parameters.quantity" type="BigDecimal"/>
                <field-to-request field="parameters.quantity" request-name="pRQuantity"/>
                <return response-code="createProductionRunSingle"/>
            </else>
        </if-compare>
    </simple-method>

</simple-methods>

