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

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

    <!-- Picking Related Services -->
    <service name="convertPickOrderIdListToHeaders" engine="java"
            location="org.ofbiz.shipment.picklist.PickListServices" invoke="convertOrderIdListToHeaders">
        <description>Convert a list of order IDs to a list of headers</description>
        <attribute name="orderIdList" type="List" mode="IN" optional="true"/>
        <attribute name="orderHeaderList" type="List" mode="INOUT" optional="true"/>
    </service>

    <service name="findOrdersToPickMove" engine="simple"
            location="component://product/script/org/ofbiz/shipment/picklist/PicklistServices.xml" invoke="findOrdersToPickMove">
        <description>Gets Picklist Data</description>
        <attribute name="facilityId" type="String" mode="IN" optional="false"/>
        <attribute name="shipmentMethodTypeId" type="String" mode="IN" optional="true"/>
        <attribute name="isRushOrder" type="String" mode="IN" optional="true"/>
        <attribute name="maxNumberOfOrders" type="Long" mode="IN" optional="true"/>
        <attribute name="orderHeaderList" type="List" mode="IN" optional="true"/>
        <attribute name="pickMoveInfoList" type="List" mode="OUT" optional="true"/>
        <attribute name="rushOrderInfo" type="Map" mode="OUT" optional="true"/>
        <attribute name="groupByNoOfOrderItems" type="String" mode="IN" optional="true"/>
        <attribute name="groupByWarehouseArea" type="String" mode="IN" optional="true"/>
        <attribute name="groupByShippingMethod" type="String" mode="IN" optional="true"/>
        <attribute name="orderId" type="String" mode="IN" optional="true"/>
    </service>

    <!-- Persisted Picklist Services -->
    <service name="createPicklistFromOrders" engine="simple"
            location="component://product/script/org/ofbiz/shipment/picklist/PicklistServices.xml" invoke="createPicklistFromOrders" transaction-timeout="600">
        <description>Create Picklist From Orders</description>
        <attribute name="facilityId" type="String" mode="IN" optional="false"/>
        <attribute name="shipmentMethodTypeId" type="String" mode="IN" optional="true"/>
        <attribute name="maxNumberOfOrders" type="Long" mode="IN" optional="true"/>
        <attribute name="isRushOrder" type="String" mode="IN" optional="true"/>
        <attribute name="orderIdList" type="List" mode="IN" optional="true"/>
        <attribute name="orderHeaderList" type="List" mode="INOUT" optional="true"/>
        <attribute name="picklistId" type="String" mode="OUT" optional="false"/>
    </service>

    <service name="printPickSheets" engine="simple"
            location="component://product/script/org/ofbiz/shipment/picklist/PicklistServices.xml" invoke="printPickSheets">
        <description>Print pick sheets for orders</description>
        <permission-service service-name="facilityGenericPermission" main-action="CREATE"/>
        <attribute name="facilityId" type="String" mode="IN" optional="false"/>
        <attribute name="maxNumberOfOrdersToPrint" type="Long" mode="IN" optional="true"/>
        <attribute name="printGroupName" type="String" mode="IN" optional="true"/>
        <attribute name="groupByNoOfOrderItems" type="String" mode="IN" optional="true"/>
        <attribute name="groupByWarehouseArea" type="String" mode="IN" optional="true"/>
        <attribute name="groupByShippingMethod" type="String" mode="IN" optional="true"/>
        <attribute name="pickMoveInfoList" type="List" mode="OUT" optional="true"/>
        <attribute name="orderId" type="String" mode="IN" optional="true"/>
    </service>

    <service name="getPicklistDisplayInfo" engine="simple"
            location="component://product/script/org/ofbiz/shipment/picklist/PicklistServices.xml" invoke="getPicklistDisplayInfo">
        <description>Create Picklist From Orders</description>
        <attribute name="facilityId" type="String" mode="IN" optional="false"/>
        <attribute name="viewIndex" mode="INOUT" type="Integer" optional="true"/>
        <attribute name="viewSize" mode="INOUT" type="Integer" optional="true"/>
        <attribute name="highIndex" mode="OUT" type="Integer" optional="true"/>
        <attribute name="lowIndex" mode="OUT" type="Integer" optional="true"/>
        <attribute name="picklistCount" mode="OUT" type="Long" optional="true"/>
        <attribute name="picklistInfoList" type="List" mode="OUT" optional="true"/>
    </service>

    <service name="getPickAndPackReportInfo" engine="simple"
            location="component://product/script/org/ofbiz/shipment/picklist/PicklistServices.xml" invoke="getPickAndPackReportInfo">
        <description>Get Pick And Pack Report Info</description>
        <attribute name="picklistId" type="String" mode="IN" optional="false"/>
        <attribute name="picklistInfo" type="Map" mode="OUT" optional="false"/>
        <attribute name="facilityLocationInfoList" type="List" mode="OUT" optional="true"/>
        <attribute name="noLocationProductInfoList" type="List" mode="OUT" optional="true"/>
    </service>

    <!-- Picklist -->
    <service name="createPicklist" default-entity-name="Picklist" engine="simple"
            location="component://product/script/org/ofbiz/shipment/picklist/PicklistServices.xml" invoke="createPicklist" auth="true">
        <description>Create Picklist</description>
        <auto-attributes include="pk" mode="OUT" optional="false"/>
        <auto-attributes include="nonpk" mode="IN" optional="true">
            <exclude field-name="picklistDate"/>
            <exclude field-name="createdByUserLogin"/>
            <exclude field-name="lastModifiedByUserLogin"/>
        </auto-attributes>
    </service>
    <service name="updatePicklist" default-entity-name="Picklist" engine="simple"
            location="component://product/script/org/ofbiz/shipment/picklist/PicklistServices.xml" invoke="updatePicklist" auth="true">
        <description>Update Picklist</description>
        <auto-attributes include="pk" mode="IN" optional="false"/>
        <auto-attributes include="nonpk" mode="IN" optional="true">
            <exclude field-name="picklistDate"/>
            <exclude field-name="createdByUserLogin"/>
            <exclude field-name="lastModifiedByUserLogin"/>
        </auto-attributes>
        <attribute name="oldStatusId" type="String" mode="OUT" optional="true"/>
    </service>
    <service name="deletePicklist" default-entity-name="Picklist" engine="simple"
            location="component://product/script/org/ofbiz/shipment/picklist/PicklistServices.xml" invoke="deletePicklist" auth="true">
        <description>Delete Picklist</description>
        <auto-attributes include="pk" mode="IN" optional="false"/>
    </service>

    <!-- PicklistBin -->
    <service name="createPicklistBin" default-entity-name="PicklistBin" engine="simple"
            location="component://product/script/org/ofbiz/shipment/picklist/PicklistServices.xml" invoke="createPicklistBin" auth="true">
        <description>Create PicklistBin</description>
        <auto-attributes include="pk" mode="OUT" optional="false"/>
        <auto-attributes include="nonpk" mode="IN" optional="false"/>
    </service>
    <service name="updatePicklistBin" default-entity-name="PicklistBin" engine="simple"
            location="component://product/script/org/ofbiz/shipment/picklist/PicklistServices.xml" invoke="updatePicklistBin" auth="true">
        <description>Update PicklistBin</description>
        <auto-attributes include="pk" mode="IN" optional="false"/>
        <auto-attributes include="nonpk" mode="IN" optional="true"/>
    </service>
    <service name="deletePicklistBin" default-entity-name="PicklistBin" engine="simple"
            location="component://product/script/org/ofbiz/shipment/picklist/PicklistServices.xml" invoke="deletePicklistBin" auth="true">
        <description>Delete PicklistBin</description>
        <auto-attributes include="pk" mode="IN" optional="false"/>
    </service>
    <service name="checkPicklistBinItemStatuses" default-entity-name="PicklistBin" engine="simple"
            location="component://product/script/org/ofbiz/shipment/picklist/PicklistServices.xml" invoke="checkPicklistBinItemStatuses" auth="true">
        <description>Update Picklist based on Item Status</description>
        <auto-attributes include="pk" mode="IN" optional="false"/>
    </service>

    <!-- PicklistItem -->
    <service name="createPicklistItem" default-entity-name="PicklistItem" engine="simple"
            location="component://product/script/org/ofbiz/shipment/picklist/PicklistServices.xml" invoke="createPicklistItem" auth="true">
        <description>Create PicklistItem</description>
        <auto-attributes include="pk" mode="IN" optional="false"/>
        <auto-attributes include="nonpk" mode="IN" optional="false"/>
        <override name="itemStatusId" optional="true"/>
    </service>
    <service name="updatePicklistItem" default-entity-name="PicklistItem" engine="simple"
            location="component://product/script/org/ofbiz/shipment/picklist/PicklistServices.xml" invoke="updatePicklistItem" auth="true">
        <description>Update PicklistItem</description>
        <auto-attributes include="pk" mode="IN" optional="false"/>
        <auto-attributes include="nonpk" mode="IN" optional="true"/>
        <attribute name="oldItemStatusId" type="String" mode="OUT" optional="true"/>
    </service>
    <service name="deletePicklistItem" default-entity-name="PicklistItem" engine="simple"
            location="component://product/script/org/ofbiz/shipment/picklist/PicklistServices.xml" invoke="deletePicklistItem" auth="true">
        <description>Delete PicklistItem</description>
        <auto-attributes include="pk" mode="IN" optional="false"/>
    </service>
    <service name="editPicklistItem" default-entity-name="PicklistItem" engine="simple"
            location="component://product/script/org/ofbiz/shipment/picklist/PicklistServices.xml" invoke="editPicklistItem" auth="true">
        <description>Edit PicklistItem</description>
        <auto-attributes include="pk" mode="IN" optional="false"/>
        <attribute name="lotId" mode="IN" type="String" optional="false" />
        <attribute name="quantity" mode="IN" type="BigDecimal" optional="false" />
        <attribute name="productId" mode="IN" type="String" optional="false" />
        <attribute name="facilityId" mode="IN" type="String" optional="false" />
        <attribute name="oldLotId" mode="IN" type="String" optional="true" />
    </service>
    <service name="setPicklistItemToComplete" default-entity-name="PicklistItem" engine="simple"
            location="component://product/script/org/ofbiz/shipment/picklist/PicklistServices.xml" invoke="setPicklistItemToComplete" auth="true">
        <description>Update PicklistItem's Status to COMPLETE</description>
        <auto-attributes include="pk" mode="IN" optional="false"/>
        <auto-attributes include="nonpk" mode="IN" optional="false"/>
    </service>
    <service name="cancelPicklistAndItems" engine="simple"
            location="component://product/script/org/ofbiz/shipment/picklist/PicklistServices.xml" invoke="cancelPicklistAndItems" auth="true">
        <description>If Picklist is Cancelled then cancel all the PicklistItems.</description>
        <attribute name="picklistId" type="String" mode="IN"/>
    </service>

    <!-- PicklistRole -->
    <service name="createPicklistRole" default-entity-name="PicklistRole" engine="simple"
            location="component://product/script/org/ofbiz/shipment/picklist/PicklistServices.xml" invoke="createPicklistRole" auth="true">
        <description>Create PicklistRole</description>
        <auto-attributes include="pk" mode="IN" optional="false"/>
        <auto-attributes include="nonpk" mode="IN" optional="true">
            <exclude field-name="createdByUserLogin"/>
            <exclude field-name="lastModifiedByUserLogin"/>
        </auto-attributes>
        <override name="fromDate" optional="true"/>
    </service>
    <service name="updatePicklistRole" default-entity-name="PicklistRole" engine="simple"
            location="component://product/script/org/ofbiz/shipment/picklist/PicklistServices.xml" invoke="updatePicklistRole" auth="true">
        <description>Update PicklistRole</description>
        <auto-attributes include="pk" mode="IN" optional="false"/>
        <auto-attributes include="nonpk" mode="IN" optional="true">
            <exclude field-name="createdByUserLogin"/>
            <exclude field-name="lastModifiedByUserLogin"/>
        </auto-attributes>
    </service>
    <service name="deletePicklistRole" default-entity-name="PicklistRole" engine="simple"
            location="component://product/script/org/ofbiz/shipment/picklist/PicklistServices.xml" invoke="deletePicklistRole" auth="true">
        <description>Delete PicklistRole</description>
        <auto-attributes include="pk" mode="IN" optional="false"/>
    </service>
</services>
