<!--
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.
-->

<services xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/services.xsd">
    <description>Manufacturing Services - Production Run</description>
    <vendor>OFBiz</vendor>
    <version>1.0</version>

    <!-- Job Shop Management services -->
    <!-- creation of production runs -->
    <service name="createProductionRun" engine="java"
            location="org.apache.ofbiz.manufacturing.jobshopmgt.ProductionRunServices" invoke="createProductionRun" auth="true">
        <description>Create a Production Run</description>
        <attribute name="productId" type="String" mode="IN" optional="false"/>
        <attribute name="pRQuantity" type="BigDecimal" mode="IN" optional="false"/>
        <attribute name="startDate" type="java.sql.Timestamp" mode="IN" optional="false"/>
        <attribute name="facilityId" type="String" mode="IN" optional="false"/>
        <attribute name="routingId" type="String" mode="IN" optional="true"/>
        <attribute name="workEffortName" type="String" mode="IN" optional="true"/>
        <attribute name="description" type="String" mode="IN" optional="true"/>
        <attribute name="productionRunId" type="String" mode="OUT" optional="false"/>
        <attribute name="estimatedCompletionDate" type="java.sql.Timestamp" mode="OUT" optional="true"/>
    </service>
    <service name="createProductionRunPartyAssign" engine="simple"
        location="component://manufacturing/minilang/jobshopmgt/ProductionRunServices.xml" invoke="createProductionRunPartyAssign" auth="false">
        <description>
            Associate a party to the production run
        </description>
        <attribute name="productionRunId" type="String" mode="INOUT" optional="false"/>
        <attribute name="partyId" type="String" mode="IN" optional="false"/>
        <attribute name="roleTypeId" type="String" mode="IN" optional="false"/>
        <attribute name="workEffortId" mode="IN" type="String" optional="true"/>
        <attribute name="fromDate" type="java.sql.Timestamp" mode="INOUT" optional="true"/>
        <attribute name="thruDate" type="Timestamp" mode="IN" optional="true"/>
    </service>
    <service name="createProductionRunAssoc" engine="simple"
                location="component://manufacturing/minilang/jobshopmgt/ProductionRunServices.xml" invoke="createProductionRunAssoc" auth="false">
        <description>
            Associate the production run to another production run
        </description>
        <attribute name="productionRunId" type="String" mode="IN" optional="false"/>
        <attribute name="productionRunIdTo" type="String" mode="IN" optional="false"/>
        <attribute name="workFlowSequenceTypeId" type="String" mode="IN" optional="false"/>
    </service>
    <service name="createProductionRunsForProductBom" engine="java"
            location="org.apache.ofbiz.manufacturing.jobshopmgt.ProductionRunServices" invoke="createProductionRunsForProductBom" auth="true">
        <description>Explodes a product id and creates all the needed production runs.</description>
        <attribute name="productId" type="String" mode="IN" optional="false"/>
        <attribute name="quantity" optional="true" mode="IN" type="BigDecimal"/>
        <attribute name="startDate" type="java.sql.Timestamp" mode="IN" optional="false"/>
        <attribute name="facilityId" type="String" mode="IN" optional="false"/>
        <attribute name="routingId" type="String" mode="IN" optional="true"/>
        <attribute name="workEffortName" type="String" mode="IN" optional="true"/>
        <attribute name="description" type="String" mode="IN" optional="true"/>
        <attribute name="productionRuns" optional="true" mode="OUT" type="java.util.List"/><!-- TODO -->
        <attribute name="productionRunId" type="String" mode="OUT" optional="false"/>
    </service>
    <service name="createProductionRunsForOrder" engine="java"
            location="org.apache.ofbiz.manufacturing.jobshopmgt.ProductionRunServices" invoke="createProductionRunsForOrder" auth="true">
        <description>Explodes a product id and creates all the needed production runs; if an order id is also provided, it links the production runs to the sales order.</description>
        <attribute mode="IN" name="orderId" optional="false" type="String"/>
        <attribute mode="IN" name="orderItemSeqId" optional="true" type="String"/>
        <attribute mode="IN" name="shipGroupSeqId" optional="true" type="String"/>
        <attribute mode="IN" name="quantity" optional="true" type="BigDecimal"/>
        <attribute mode="IN" name="fromDate" optional="true" type="String"/>
        <attribute mode="IN" name="shipmentId" optional="true" type="String"/>
        <attribute mode="OUT" name="productionRuns" type="java.util.List"/>
    </service>
    <service name="createProductionRunFromRequirement" engine="java"
            location="org.apache.ofbiz.manufacturing.jobshopmgt.ProductionRunServices" invoke="createProductionRunFromRequirement" auth="true">
        <description>Creates a production run from a requirement.</description>
        <attribute mode="IN" name="requirementId" optional="false" type="String"/>
        <attribute mode="IN" name="quantity" optional="true" type="BigDecimal"/>
        <attribute mode="OUT" name="productionRunId" optional="true" type="String"/>
    </service>
    <service name="createProductionRunFromConfiguration" engine="java"
            location="org.apache.ofbiz.manufacturing.jobshopmgt.ProductionRunServices" invoke="createProductionRunFromConfiguration" auth="true">
        <description>Creates a production run from a product configuration.</description>
        <attribute mode="IN" name="facilityId" optional="false" type="String"/>
        <attribute mode="IN" name="configId" optional="true" type="String"/>
        <attribute mode="IN" name="config" optional="true" type="org.apache.ofbiz.product.config.ProductConfigWrapper"/>
        <attribute mode="IN" name="quantity" optional="true" type="BigDecimal"/>
        <attribute mode="IN" name="orderId" optional="true" type="String"/>
        <attribute mode="IN" name="orderItemSeqId" optional="true" type="String"/>
        <attribute mode="OUT" name="productionRunId" optional="false" type="String"/>
    </service>
    <service name="createProductionRunForMktgPkg" engine="java"
            location="org.apache.ofbiz.manufacturing.jobshopmgt.ProductionRunServices" invoke="createProductionRunForMktgPkg" auth="true">
        <description>Creates a production run for a marketing package when the product is out of stock (ATP quantity less than zero.)
                Attempts to produce enough to bring total ATP quantity of the product back up to zero, but will only produce what is
                available based on the components required.</description>
        <attribute mode="IN" name="orderId" optional="false" type="String"/>
        <attribute mode="IN" name="orderItemSeqId" optional="false" type="String"/>
        <attribute mode="IN" name="facilityId" optional="false" type="String"/>
        <attribute mode="OUT" name="productionRunId" optional="true" type="String"/>
    </service>

    
    <service name="updateProductionRun" engine="java"
            location="org.apache.ofbiz.manufacturing.jobshopmgt.ProductionRunServices" invoke="updateProductionRun" auth="true">
        <description>Update a Production Run</description>
        <attribute name="productionRunId" type="String" mode="IN" optional="false"/>
        <attribute name="quantity" type="BigDecimal" mode="IN" optional="true"/>
        <attribute name="estimatedStartDate" type="Timestamp" mode="IN" optional="true"/>
        <attribute name="workEffortName" type="String" mode="IN" optional="true"/>
        <attribute name="description" type="String" mode="IN" optional="true"/>
        <attribute name="facilityId" type="String" mode="IN" optional="true"/>
    </service>
    <service name="changeProductionRunStatus" engine="java"
            location="org.apache.ofbiz.manufacturing.jobshopmgt.ProductionRunServices" invoke="changeProductionRunStatus" auth="true">
        <description>Change the Production Run status</description>
        <attribute name="productionRunId" type="String" mode="IN" optional="false"/>
        <attribute name="statusId" type="String" mode="IN" optional="true"/>
        <attribute name="newStatusId" type="String" mode="OUT" optional="false"/>
    </service>
    <service name="changeProductionRunTaskStatus" engine="java"
            location="org.apache.ofbiz.manufacturing.jobshopmgt.ProductionRunServices" invoke="changeProductionRunTaskStatus" auth="true">
        <description>Change the Production Run Task status</description>
        <attribute name="productionRunId" type="String" mode="IN" optional="false"/>
        <attribute name="workEffortId" type="String" mode="IN" optional="false"/> <!-- The task id -->
        <attribute name="statusId" type="String" mode="IN" optional="true"/>
        <attribute name="issueAllComponents" type="Boolean" mode="IN" optional="true"/>
        <attribute name="oldStatusId" type="String" mode="OUT" optional="false"/>
        <attribute name="newStatusId" type="String" mode="OUT" optional="false"/>
    </service>
    <service name="addProductionRunRoutingTask" engine="java"
            location="org.apache.ofbiz.manufacturing.jobshopmgt.ProductionRunServices" invoke="addProductionRunRoutingTask" auth="true">
        <description>add a RoutingTask to an existing ProductionRun</description>
        <attribute name="productionRunId" type="String" mode="IN" optional="false"/>
        <attribute name="routingTaskId" type="String" mode="INOUT" optional="false"/>
        <attribute name="priority" type="Long" mode="IN" optional="false"/>
        <attribute name="estimatedSetupMillis" type="BigDecimal" mode="IN" optional="true"/>
        <attribute name="estimatedMilliSeconds" type="BigDecimal" mode="IN" optional="true"/>
        <attribute name="workEffortName" type="String" mode="IN" optional="true"/>
        <attribute name="description" type="String" mode="IN" optional="true"/>
        <attribute name="estimatedStartDate" type="Timestamp" mode="INOUT" optional="true"/>
        <attribute name="estimatedCompletionDate" type="Timestamp" mode="INOUT" optional="true"/>
    </service>
    <service name="checkUpdatePrunRoutingTask" engine="java"
            location="org.apache.ofbiz.manufacturing.jobshopmgt.ProductionRunServices" invoke="checkUpdatePrunRoutingTask" auth="true">
        <description>check if field for routingTask update are correct and if needed  recalculated data and update Production Run</description>
        <attribute name="productionRunId" type="String" mode="IN" optional="false"/>
        <attribute name="routingTaskId" type="String" mode="IN" optional="false"/>
        <attribute name="priority" type="Long" mode="IN"/>
        <attribute name="estimatedStartDate" type="Timestamp" mode="IN"/>
        <attribute name="estimatedSetupMillis" type="BigDecimal" mode="IN"/>
        <attribute name="estimatedMilliSeconds" type="BigDecimal" mode="IN"/>
    </service>
    <!-- TODO: NOT STILL IMPLEMENTED ('deleteWorkEffort' is called directly) -->
    <service name="deleteProductionRunRoutingTask" engine="java"
            location="org.apache.ofbiz.manufacturing.jobshopmgt.ProductionRunServices" invoke="deleteProductionRunRoutingTask" auth="true">
        <description>delete a RoutingTask to an existing ProductionRun</description>
        <attribute name="productionRunId" type="String" mode="IN" optional="false"/>
        <attribute name="routingTaskId" type="String" mode="IN" optional="false"/>
    </service>
    <service name="addProductionRunComponent" engine="java"
            location="org.apache.ofbiz.manufacturing.jobshopmgt.ProductionRunServices" invoke="addProductionRunComponent" auth="true">
        <description>add a Product Component to an existing ProductionRun</description>
        <attribute name="productionRunId" type="String" mode="IN" optional="false"/>
        <attribute name="productId" type="String" mode="IN" optional="false"/>
        <attribute name="estimatedQuantity" type="BigDecimal" mode="IN"/>
        <attribute name="workEffortId" type="String" mode="IN" optional="true"/>
    </service>
    <service name="updateProductionRunComponent" engine="java"
            location="org.apache.ofbiz.manufacturing.jobshopmgt.ProductionRunServices" invoke="updateProductionRunComponent" auth="true">
        <description>update a Product Component to an existing ProductionRun</description>
        <attribute name="productionRunId" type="String" mode="IN" optional="false"/>
        <attribute name="productId" type="String" mode="IN" optional="false"/>
        <attribute name="workEffortId" type="String" mode="IN" optional="true"/>
        <attribute name="estimatedQuantity" type="BigDecimal" mode="IN" optional="true"/>
    </service>
    <!-- TODO: NOT STILL IMPLEMENTED ('removeWorkEffortGoodStandard' is called directly) -->
    <service name="deleteProductionRunComponent" engine="java"
            location="org.apache.ofbiz.manufacturing.jobshopmgt.ProductionRunServices" invoke="deleteProductionRunComponent" auth="true">
        <description>delete a Product Component to an existing ProductionRun</description>
        <attribute name="productionRunId" type="String" mode="IN" optional="false"/>
        <attribute name="productId" type="String" mode="IN" optional="false"/>
    </service>
    <service name="issueProductionRunTask" engine="simple"
                location="component://manufacturing/minilang/jobshopmgt/ProductionRunServices.xml" invoke="issueProductionRunTask" auth="false">
        <description>
            Issues the Inventory for a Production Run Task.
            Note that this skips the normal inventory reservation process.
        </description>
        <attribute name="workEffortId" type="String" mode="IN" optional="false"/>
        <attribute name="reserveOrderEnumId" type="String" mode="IN" optional="true"/>
        <attribute name="failIfItemsAreNotAvailable" type="String" mode="IN" optional="true"/>
        <attribute name="failIfItemsAreNotOnHand" type="String" mode="IN" optional="true"/>
    </service>
    <service name="issueProductionRunTaskComponent" engine="simple"
                location="component://manufacturing/minilang/jobshopmgt/ProductionRunServices.xml" invoke="issueProductionRunTaskComponent" auth="false">
        <description>
            Issues the Inventory for a Production Run Task Component. For more info see the issueProductionRunTask service.
            If fromDate is passed, then the WorkEffortGoodStandard record with pk composed of (workEffortId|productId|fromDate)
            with type PRUNT_PROD_NEEDED is retrieved and used to get the quantity; its status is also updated to COMPLETED after
            the issuance is done.
            If locationSeqIds are provided, then the items are only issued from the inventory items associated to the locations.
            If failIfItemsAreNotAvailable is set to "Y" (the default is "Y") then the service fails if there is not enough inventory available:
            no reservation will be stolen.
            If failIfItemsAreNotOnHand is set to "Y" (the default is "Y") then the service fails if there is not enough inventory:
            no items with negative qoh will be created.
            If lotId is filled, failIfItemsAreNotAvailable is set to automatically set to "Y".
        </description>
        <attribute name="workEffortId" type="String" mode="IN" optional="false"/>
        <attribute name="productId" type="String" mode="IN" optional="false"/>
        <attribute name="fromDate" type="Timestamp" mode="IN" optional="true"/>
        <attribute name="quantity" type="BigDecimal" mode="IN" optional="true"/>
        <attribute name="failIfItemsAreNotAvailable" type="String" mode="IN" optional="true"/>
        <attribute name="failIfItemsAreNotOnHand" type="String" mode="IN" optional="true"/>
        <attribute name="reserveOrderEnumId" type="String" mode="IN" optional="true"/>
        <attribute name="lotId" mode="IN" type="String" optional="true" />
        <attribute name="locationSeqId" type="String" mode="IN" optional="true"/>
        <attribute name="secondaryLocationSeqId" type="String" mode="IN" optional="true"/>
        <attribute name="reasonEnumId" type="String" mode="IN" optional="true"/>
        <attribute name="description" type="String" mode="IN" optional="true"/>
    </service>
    <service name="issueInventoryItemToWorkEffort" engine="simple"
                location="component://manufacturing/minilang/jobshopmgt/ProductionRunServices.xml" invoke="issueInventoryItemToWorkEffort" auth="false">
        <description>
            Issue one InventoryItem (or part of it) to a WorkEffort.
            Note that this skips the normal inventory reservation process.
        </description>
        <attribute name="workEffortId" type="String" mode="IN" optional="false"/>
        <attribute name="inventoryItem" type="org.apache.ofbiz.entity.GenericValue" mode="IN" optional="false"/>
        <attribute name="quantity" type="BigDecimal" mode="IN" optional="true"/>
        <attribute name="quantityIssued" type="BigDecimal" mode="OUT" optional="false"/>
        <attribute name="finishedProductId" type="String" mode="OUT" optional="false"/>
    </service>
    <service name="productionRunProduce" engine="java" transaction-timeout="7200"
            location="org.apache.ofbiz.manufacturing.jobshopmgt.ProductionRunServices" invoke="productionRunProduce" auth="true">
        <description>
            Create Inventory for product produced by a Production Run.
        </description>
        <attribute name="workEffortId" type="String" mode="IN" optional="false"/>
        <attribute name="inventoryItemIds" type="List" mode="OUT" optional="false"/>
        <attribute name="quantity" type="BigDecimal" mode="INOUT" optional="true"/>
        <attribute name="quantityUomId" type="String" mode="IN" optional="true"/>
        <attribute name="inventoryItemTypeId" type="String" mode="IN" optional="true"/>
        <attribute name="lotId" type="String" mode="IN" optional="true"/>
        <attribute name="locationSeqId" type="String" mode="IN" optional="true"/>
        <attribute name="createLotIfNeeded" type="Boolean" mode="IN" optional="true"/>
        <attribute name="autoCreateLot" type="Boolean" mode="IN" optional="true"/>
    </service>
    <service name="productionRunDeclareAndProduce" engine="java" transaction-timeout="7200"
            location="org.apache.ofbiz.manufacturing.jobshopmgt.ProductionRunServices" invoke="productionRunDeclareAndProduce" auth="true">
        <description>
            Create Inventory for product produced by a Production Run and if necessary add declared quantities to tasks (and issue materials, if needed).
        </description>
        <attribute name="workEffortId" type="String" mode="IN" optional="false"/>
        <attribute name="inventoryItemIds" type="List" mode="OUT" optional="false"/>
        <attribute name="quantity" type="BigDecimal" mode="INOUT" optional="false"/>
        <attribute name="quantityUomId" type="String" mode="IN" optional="true"/>
        <attribute name="inventoryItemTypeId" type="String" mode="IN" optional="true"/>
        <attribute name="locationSeqId" type="String" mode="IN" optional="true"/>
        <attribute name="lotId" type="String" mode="IN" optional="true"/>
        <attribute name="createLotIfNeeded" type="Boolean" mode="IN" optional="true"/>
        <attribute name="autoCreateLot" type="Boolean" mode="IN" optional="true"/>
        <attribute name="componentsLocationMap" mode="IN" type="Map" optional="true"/>
    </service>
    <service name="productionRunTaskProduce" engine="java"
            location="org.apache.ofbiz.manufacturing.jobshopmgt.ProductionRunServices" invoke="productionRunTaskProduce" auth="true">
        <description>
            Create Inventory from a Production Run Task.
        </description>
        <attribute name="workEffortId" type="String" mode="IN" optional="false"/>
        <attribute name="productId" type="String" mode="IN" optional="false"/>
        <attribute name="quantity" type="BigDecimal" mode="IN" optional="false"/>
        <attribute name="facilityId" type="String" mode="IN" optional="true"/>
        <attribute name="locationSeqId" type="String" mode="IN" optional="true"/>
        <attribute name="unitCost" type="BigDecimal" mode="IN" optional="true"/>
        <attribute name="currencyUomId" type="String" mode="IN" optional="true"/>
        <attribute name="inventoryItemTypeId" type="String" mode="IN" optional="true"/>
        <attribute name="inventoryItemIds" type="List" mode="OUT" optional="false"/>
        <attribute name="lotId" mode="IN" type="String" optional="true" />
        <attribute name="isReturned" mode="IN" type="String" optional="true" default-value="N"></attribute>
    </service>
    <service name="productionRunTaskReturnMaterial" engine="java"
            location="org.apache.ofbiz.manufacturing.jobshopmgt.ProductionRunServices" invoke="productionRunTaskReturnMaterial" auth="true">
        <description>
            Create Inventory from a Production Run Task, by returning to warehouse part of the materials allocated.
        </description>
        <attribute name="workEffortId" type="String" mode="IN" optional="false"/>
        <attribute name="productId" type="String" mode="IN" optional="false"/>
        <attribute name="quantity" type="BigDecimal" mode="IN" optional="true"/>
        <attribute name="inventoryItemTypeId" type="String" mode="IN" optional="true"/>
        <attribute name="lotId" mode="IN" type="String" optional="true" />
    </service>
    <service name="checkDecomposeInventoryItem" engine="java"
            location="org.apache.ofbiz.manufacturing.jobshopmgt.ProductionRunServices" invoke="checkDecomposeInventoryItem" auth="true">
        <description>
            If the inventory item is for a 'marketing package' run the decomposeInventoryItem service.
            It is intended to be called as seca when a marketing package is received into warehouse (e.g. from a return).
        </description>
        <attribute name="inventoryItemId" type="String" mode="IN" optional="false"/>
        <!--<attribute name="quantityAccepted" type="BigDecimal" mode="IN" optional="true"/>-->
    </service>
    <service name="decomposeInventoryItem" engine="java"
            location="org.apache.ofbiz.manufacturing.jobshopmgt.ProductionRunServices" invoke="decomposeInventoryItem" auth="true">
        <description>
            Create a decompose work effort, issue the inventory item (or part of it), and put in warehouse its components.
            It is intended to be called when a marketing package is received into warehouse (e.g. from a return).
            The components will be returned to inventory at ((Marketing Package Actual Inventory Unit Cost) / (Marketing Package Standard Cost)) * (Component Standard Cost)
        </description>
        <attribute name="inventoryItemId" type="String" mode="IN" optional="false"/>
        <attribute name="quantity" type="BigDecimal" mode="IN" optional="true"/>
        <attribute name="inventoryItemIds" type="List" mode="OUT" optional="false"/>
    </service>
    <service name="updateProductionRunTask" engine="java"
            location="org.apache.ofbiz.manufacturing.jobshopmgt.ProductionRunServices" invoke="updateProductionRunTask" auth="true">
        <description>
            Add a TimeEntry for the production run task and updates the relevant fields.
        </description>
        <attribute name="productionRunId" type="String" mode="IN" optional="false"/>
        <attribute name="productionRunTaskId" type="String" mode="IN" optional="false"/>
        <attribute name="partyId" type="String" mode="IN" optional="true"/>
        <attribute name="fromDate" type="Timestamp" mode="IN" optional="true"/>
        <attribute name="thruDate" type="Timestamp" mode="IN" optional="true"/>
        <attribute name="addQuantityProduced" type="BigDecimal" mode="IN" optional="true"/>
        <attribute name="addQuantityRejected" type="BigDecimal" mode="IN" optional="true"/>
        <attribute name="addSetupTime" type="BigDecimal" mode="IN" optional="true"/>
        <attribute name="addTaskTime" type="BigDecimal" mode="IN" optional="true"/>
        <attribute name="comments" type="String" mode="IN" optional="true"/>
        <attribute name="issueRequiredComponents" type="Boolean" mode="IN" optional="true"/>
        <attribute name="componentsLocationMap" mode="IN" type="Map" optional="true"/>
    </service>
    <service name="quickRunProductionRunTask" engine="java"
            location="org.apache.ofbiz.manufacturing.jobshopmgt.ProductionRunServices" invoke="quickRunProductionRunTask" auth="true">
        <description>Quick runs a ProductionRun task to the completed status, also issuing components if necessary.</description>
        <attribute name="productionRunId" type="String" mode="IN" optional="false"/>
        <attribute name="taskId" type="String" mode="IN" optional="false"/>
    </service>
    <service name="quickRunAllProductionRunTasks" engine="java"
            location="org.apache.ofbiz.manufacturing.jobshopmgt.ProductionRunServices" invoke="quickRunAllProductionRunTasks" auth="true">
        <description>Quick runs all the tasks of a ProductionRun to the completed status, also issuing components if necessary.</description>
        <attribute name="productionRunId" type="String" mode="IN" optional="false"/>
    </service>
    <service name="quickStartAllProductionRunTasks" engine="java"
            location="org.apache.ofbiz.manufacturing.jobshopmgt.ProductionRunServices" invoke="quickStartAllProductionRunTasks" auth="true">
        <description>Quick starts all the tasks of a ProductionRun.</description>
        <attribute name="productionRunId" type="String" mode="IN" optional="false"/>
    </service>
    <service name="quickChangeProductionRunStatus" engine="java"
            location="org.apache.ofbiz.manufacturing.jobshopmgt.ProductionRunServices" invoke="quickChangeProductionRunStatus" auth="true">
        <description>Quick moves a ProductionRun to the passed in status, performing all the needed tasks in the way</description>
        <attribute name="productionRunId" type="String" mode="IN" optional="false"/>
        <attribute name="statusId" type="String" mode="IN" optional="false"/>
    </service>
    <service name="cancelProductionRun" engine="java"
            location="org.apache.ofbiz.manufacturing.jobshopmgt.ProductionRunServices" invoke="cancelProductionRun" auth="true">
        <description>Cancels a ProductionRun.</description>
        <attribute name="productionRunId" type="String" mode="IN" optional="false"/>
    </service>
    <service name="getProductionRunTotResQty" engine="java"
            location="org.apache.ofbiz.manufacturing.jobshopmgt.ProductionRunServices" invoke="getProductionRunTotResQty" auth="true">
        <description>Given a productId and an optional date, returns the total qty of productId reserved by production runs</description>
        <attribute name="productId" type="String" mode="IN" optional="false"/>
        <attribute name="startDate" type="Timestamp" mode="IN" optional="true"/>
        <attribute name="reservedQuantity" type="BigDecimal" mode="OUT" optional="false"/>
    </service>
    <service name="getWorkEffortCosts" engine="java"
            location="org.apache.ofbiz.manufacturing.jobshopmgt.ProductionRunServices" invoke="getWorkEffortCosts" auth="true">
        <description>Retrieve the costs of a work effort (production run task).</description>
        <attribute mode="IN" name="workEffortId" optional="false" type="String"/>
        <attribute mode="OUT" name="costComponents" optional="false" type="List"/>
        <attribute mode="OUT" name="totalCost" optional="false" type="BigDecimal"/>
        <attribute mode="OUT" name="totalCostNoMaterials" optional="false" type="BigDecimal"/>
    </service>
    <service name="getProductionRunCost" engine="java"
            location="org.apache.ofbiz.manufacturing.jobshopmgt.ProductionRunServices" invoke="getProductionRunCost" auth="true">
        <description>Retrieve the total cost of a production run.</description>
        <attribute mode="IN" name="workEffortId" optional="false" type="String"/>
        <attribute mode="OUT" name="totalCost" optional="false" type="BigDecimal"/>
    </service>
    <service name="createProductionRunTaskCosts" engine="java"
            location="org.apache.ofbiz.manufacturing.jobshopmgt.ProductionRunServices" invoke="createProductionRunTaskCosts" auth="true">
        <description>Compute the actual costs for the production run task.</description>
        <attribute mode="IN" name="productionRunTaskId" optional="false" type="String"/>
    </service>
</services>
