<?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="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>

