<?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>Accounting Services</description>
    <vendor>OFBiz</vendor>
    <version>1.0</version>


    <service name="getNextInvoiceId" engine="simple"
        location="component://accounting/script/org/ofbiz/accounting/invoice/InvoiceServices.xml" invoke="getNextInvoiceId">
        <description>Get the Next Invoice ID According to Settings on the PartyAcctgPreference Entity for the given Party</description>
        <attribute name="partyId" type="String" mode="IN" optional="false"/>
        <attribute name="invoiceId" type="String" mode="OUT" optional="false"/>
    </service>

    <!-- Invoice services -->
    <service name="createInvoice" engine="simple" default-entity-name="Invoice"
        location="component://accounting/script/org/ofbiz/accounting/invoice/InvoiceServices.xml" invoke="createInvoice">
        <description>Create Invoice Record</description>
        <permission-service service-name="acctgInvoicePermissionCheck" main-action="CREATE"/>
        <auto-attributes mode="INOUT" include="pk" optional="true"/>
        <auto-attributes mode="IN" include="nonpk" optional="true"/>
        <override name="invoiceTypeId" mode="IN" optional="false"/>
        <override name="statusId" mode = "IN" optional="false"/>
        <override name="partyIdFrom" mode = "IN" optional="false"/>
        <override name="partyId" mode = "IN" optional="false"/>
        <override name="description" allow-html="safe"/>
        <override name="invoiceMessage" allow-html="safe"/>
    </service>
    <service name="copyInvoice" engine="simple" default-entity-name="Invoice"
        location="component://accounting/script/org/ofbiz/accounting/invoice/InvoiceServices.xml" invoke="copyInvoice">
        <description>Create Invoice Record/items from an existing invoice</description>
        <permission-service service-name="acctgInvoicePermissionCheck" main-action="CREATE"/>
        <auto-attributes mode="INOUT" include="pk" optional="true"/>
        <attribute name="invoiceIdToCopyFrom" type="String" mode="IN" optional="false"/>
    </service>
    <service name="getInvoice" engine="simple" default-entity-name="Invoice"
        location="component://accounting/script/org/ofbiz/accounting/invoice/InvoiceServices.xml" invoke="getInvoice">
        <description>Retrieve an existing Invoice/Items</description>
        <permission-service service-name="acctgInvoicePermissionCheck" main-action="VIEW"/>
        <auto-attributes mode="IN" include="pk" optional="false"/>
        <attribute name="invoice" type="org.ofbiz.entity.GenericValue" mode="OUT"/>
        <attribute name="invoiceItems" type="List" mode="OUT"/><!-- list of invoiceItem GenericValues -->
    </service>
    <service name="updateInvoice" engine="simple" default-entity-name="Invoice"
        location="component://accounting/script/org/ofbiz/accounting/invoice/InvoiceServices.xml" invoke="updateInvoice">
        <description>Update an existing Invoice Record</description>
        <permission-service service-name="acctgInvoicePermissionCheck" main-action="UPDATE"/>
        <auto-attributes mode="IN" include="pk" optional="false"/>
        <auto-attributes mode="IN" include="nonpk" optional="true"/>
        <override name="description" allow-html="safe"/>
        <override name="invoiceMessage" allow-html="safe"/>
    </service>
    <service name="setInvoiceStatus" engine="simple"
        location="component://accounting/script/org/ofbiz/accounting/invoice/InvoiceServices.xml" invoke="setInvoiceStatus">
        <description>Set the Invoice  Status</description>
        <permission-service service-name="acctgInvoicePermissionCheck" main-action="UPDATE"/>
        <attribute name="invoiceId" type="String" mode="IN" optional="false"/>
        <attribute name="statusId" type="String" mode="IN" optional="false"/>
        <attribute name="statusDate" type="Timestamp" mode="IN" optional="true"/>
        <attribute name="paidDate" type="Timestamp" mode="IN" optional="true"/> <!-- only relevant for changes to PAID -->
        <attribute name="invoiceTypeId" type="String" mode="OUT" optional="true"/>
        <attribute name="oldStatusId" type="String" mode="OUT" optional="true"/>
    </service>
    <service name="copyInvoiceToTemplate" engine="simple"
        location="component://accounting/script/org/ofbiz/accounting/invoice/InvoiceServices.xml" invoke="copyInvoiceToTemplate">
        <description>Save a Invoice data to a template .</description>
        <permission-service service-name="acctgInvoicePermissionCheck" main-action="CREATE"/>
        <attribute name="invoiceId" type="String" mode="INOUT" optional="false"/>
        <attribute name="invoiceTypeId" type="String" mode="IN" optional="false"/>
    </service>

    <!--
    TODO: There is a big problem with the taxableFlag. Currently, all adjustments are treated as having the same taxableFlag as
    the product except when it is a sales tax. This is not very flexible. Additionally, when the invoices are computed, a
    null taxableFlag is considered to be "N" when it should be "unknown". At some point we'll have to implement the adjustment.includeInTax
    field properly so we don't have to rely on Product.taxable and checking by hand each type that is not taxable. The old way is already
    creating an issue with return-wide adjustments: How do we know that such an adjustment is to be taxed or not?  Because of this problem,
    we will continue to have null taxableFlags for awhile yet, which is why the mandatory taxableFlag of this method was taken out.
    -->
    <service name="createInvoiceItem" engine="simple" default-entity-name="InvoiceItem"
        location="component://accounting/script/org/ofbiz/accounting/invoice/InvoiceServices.xml" invoke="createInvoiceItem">
        <description>Create a new Invoice Item Record</description>
        <permission-service service-name="acctgInvoicePermissionCheck" main-action="UPDATE"/>
        <auto-attributes mode="IN" include="pk" optional="false"/>
        <auto-attributes mode="IN" include="nonpk" optional="true"/>
        <override name="invoiceItemSeqId" mode="INOUT" optional="true"/><!-- will optionally assign by the system -->
    </service>
    <service name="updateInvoiceItem" engine="simple" default-entity-name="InvoiceItem"
        location="component://accounting/script/org/ofbiz/accounting/invoice/InvoiceServices.xml" invoke="updateInvoiceItem">
        <description>Update existing Invoice Item Record</description>
        <permission-service service-name="acctgInvoicePermissionCheck" main-action="UPDATE"/>
        <auto-attributes mode="IN" include="pk" optional="false"/>
        <auto-attributes mode="IN" include="nonpk" optional="true"/>
    </service>
    <service name="removeInvoiceItem" engine="simple" default-entity-name="InvoiceItem"
        location="component://accounting/script/org/ofbiz/accounting/invoice/InvoiceServices.xml" invoke="removeInvoiceItem">
        <description>Remove an existing Invoice Item Record</description>
        <permission-service service-name="acctgInvoicePermissionCheck" main-action="UPDATE"/>
        <auto-attributes mode="IN" include="pk" optional="false"/>
    </service>

    <service name="createInvoiceRole" engine="simple" default-entity-name="InvoiceRole"
        location="component://accounting/script/org/ofbiz/accounting/invoice/InvoiceServices.xml" invoke="createInvoiceRole">
        <description>Create a new Invoice Role Record</description>
        <permission-service service-name="acctgInvoicePermissionCheck" main-action="UPDATE"/>
        <auto-attributes mode="IN" include="pk" optional="false"/>
        <auto-attributes mode="IN" include="nonpk" optional="true"/>
    </service>
    <service name="removeInvoiceRole" engine="simple" default-entity-name="InvoiceRole"
        location="component://accounting/script/org/ofbiz/accounting/invoice/InvoiceServices.xml" invoke="removeInvoiceRole">
        <description>Remove an existing Invoice Role Record</description>
        <permission-service service-name="acctgInvoicePermissionCheck" main-action="UPDATE"/>
        <auto-attributes mode="IN" include="pk" optional="false"/>
    </service>
    <service name="createInvoiceTerm" engine="simple" default-entity-name="InvoiceTerm"
        location="component://accounting/script/org/ofbiz/accounting/invoice/InvoiceServices.xml" invoke="createInvoiceTerm">
        <description>Create Invoice (Item) Term Record</description>
        <permission-service service-name="acctgInvoicePermissionCheck" main-action="UPDATE"/>
        <auto-attributes mode="OUT" include="pk" optional="false"/>
        <auto-attributes mode="IN" include="nonpk" optional="true"/>
    </service>
    <service name="createInvoiceForOrderAllItems" engine="java"
        location="org.ofbiz.accounting.invoice.InvoiceServices" invoke="createInvoiceForOrderAllItems">
        <description>
            Create an invoice from existing order using all order items
            orderId = The orderId to associate the invoice with
        </description>
        <attribute name="orderId" type="String" mode="IN" optional="false"/>
        <attribute name="invoiceId" type="String" mode="OUT" optional="true"/>
    </service>
    <service name="createInvoiceForOrder" engine="java"
        location="org.ofbiz.accounting.invoice.InvoiceServices" invoke="createInvoiceForOrder">
        <description>
            Create an invoice from existing order
            orderId = The orderId to associate the invoice with
            billItems = List of ItemIssuance records to use for creating the invoice
        </description>
        <attribute name="orderId" type="String" mode="IN" optional="false"/>
        <attribute name="billItems" type="List" mode="IN" optional="false"/>
        <attribute name="eventDate" type="Timestamp" mode="IN" optional="true"/>
        <attribute name="invoiceId" type="String" mode="INOUT" optional="true"/>
        <attribute name="invoiceTypeId" type="String" mode="OUT" optional="true"/>
    </service>
    <service name="createInvoiceFromReturn" engine="java"
        location="org.ofbiz.accounting.invoice.InvoiceServices" invoke="createInvoiceFromReturn">
        <description>
            Create an invoice from a return
            returnId = The returnId to associate the invoice with
            shipmentReceiptsToBill = List of ShipmentReceipts to use for creating the invoice
        </description>
        <attribute name="returnId" type="String" mode="IN" optional="false"/>
        <attribute name="billItems" type="List" mode="IN" optional="false"/>
        <attribute name="invoiceId" type="String" mode="OUT" optional="true"/>
    </service>
    <service name="createCommissionInvoices" engine="java"
        location="org.ofbiz.accounting.invoice.InvoiceServices" invoke="createCommissionInvoices">
        <description>
            Create commission invoice for the list of sales invoices.  
            Returns a List of Maps, one for each invoice created containing: 
                commissionInvoiceId: the invoiceId of the invoice created 
                salesRepresentative: the invoice partyIdFrom 
        </description>
        <attribute name="partyIds" type="List" mode="IN" optional="true"/>
        <attribute name="invoiceIds" type="List" mode="IN" optional="false"/>
        <attribute name="invoicesCreated" type="List" mode="OUT" optional="true"/>
    </service>
    <service name="sampleInvoiceAffiliateCommission" engine="simple"
        location="component://accounting/script/org/ofbiz/accounting/invoice/SampleCommissionServices.xml" invoke="sampleCalculateAffiliateCommission" auth="true">
        <description>
            A sample/example service to calculate an affiliate commission (direct relationship to customer) and create
            and invoice for it on behalf of the affiliate, ie an invoice from the affiliate to the company that can
            then be paid by the company to balance it.
        </description>
        <attribute name="paymentId" type="String" mode="IN" optional="false"/>
        <attribute name="invoiceId" type="String" mode="OUT" optional="false"/>
    </service>
    <service name="readyInvoices" engine="java"
        location="org.ofbiz.accounting.invoice.InvoiceServices" invoke="readyInvoices">
        <description>
            Sets status of each invoice in the list of invoices to INVOICE_READY.
        </description>
        <attribute name="invoicesCreated" type="List" mode="IN" optional="false"/>
    </service>
    <service name="createInvoicesFromShipment" engine="java"
        location="org.ofbiz.accounting.invoice.InvoiceServices" invoke="createInvoicesFromShipment">
        <description>
            Create invoice(s) from a Shipment
            All the order items associated with the shipment will be selected and
            one invoice for each order in the shipment will be created.
            invoicesCreated = List of invoiceIds which were created by this service
        </description>
        <attribute name="shipmentId" type="String" mode="IN" optional="false"/>
        <attribute name="eventDate" type="Timestamp" mode="IN" optional="true"/>
        <attribute name="invoicesCreated" type="List" mode="OUT" optional="true"/>
    </service>
    <service name="setInvoicesToReadyFromShipment" engine="java"
        location="org.ofbiz.accounting.invoice.InvoiceServices" invoke="setInvoicesToReadyFromShipment">
        <description>Set invoice(s) to Ready from Shipment</description>
        <attribute name="shipmentId" type="String" mode="IN" optional="false"/>
    </service>

    <service name="createSalesInvoicesFromDropShipment" engine="java"
        location="org.ofbiz.accounting.invoice.InvoiceServices" invoke="createSalesInvoicesFromDropShipment">
        <description>
            Create sales invoice(s) from a drop shipment by wrapping a call to
            createInvoicesFromShipments with the createSalesInvoicesForDropShipments parameter
        </description>
        <attribute name="shipmentId" type="String" mode="IN" optional="false"/>
        <attribute name="invoicesCreated" type="List" mode="OUT" optional="true"/>
    </service>
    <service name="createInvoicesFromShipments" engine="java"
        location="org.ofbiz.accounting.invoice.InvoiceServices" invoke="createInvoicesFromShipments">
        <description>
            Create invoice(s) from a shipment list.
            All the order items associated with the shipments will be selected and
            one invoice for each order will be created (each invoice could contain
            items shipped in different shipments).
            If the shipments are drop shipments, the type of invoices (purchase or sales) created
            will be controlled by the createSalesInvoicesForDropShipments parameter (purchase by default).
            invoicesCreated = List of invoiceIds which were created by this service
        </description>
        <attribute name="shipmentIds" type="List" mode="IN" optional="false"/>
        <attribute name="createSalesInvoicesForDropShipments" type="Boolean" mode="IN" optional="true"/>
        <attribute name="eventDate" type="Timestamp" mode="IN" optional="true"/>
        <attribute name="invoicesCreated" type="List" mode="OUT" optional="true"/>
    </service>
    <service name="createInvoicesFromReturnShipment" engine="java"
        location="org.ofbiz.accounting.invoice.InvoiceServices" invoke="createInvoicesFromReturnShipment">
        <description>
            Create invoice(s) from a return Shipment
            invoicesCreated = List of invoiceIds which were created by this service
        </description>
        <attribute name="shipmentId" type="String" mode="IN" optional="false"/>
        <attribute name="invoicesCreated" type="List" mode="OUT" optional="true"/>
    </service>
    <service name="sendInvoicePerEmail" engine="simple"
        location="component://accounting/script/org/ofbiz/accounting/invoice/InvoiceServices.xml" invoke="sendInvoicePerEmail">
        <description>Send an invoice per email</description>
        <attribute name="invoiceId" type="String" mode="IN" optional="false"/>
        <attribute name="sendFrom" type="String" mode="IN" optional="false"/>
        <attribute name="sendTo" type="String" mode="IN" optional="false"/>
        <attribute name="sendCc" type="String" mode="IN" optional="true"/>
        <attribute name="subject" type="String" mode="IN" optional="true"/>
        <attribute name="bodyText" type="String" mode="IN" optional="true" allow-html="safe"/>
        <attribute name="other" type="String" mode="IN" optional="true"/><!-- to send the invoice in the 'other' currency (y) -->
    </service>
    <service name="checkInvoicePaymentApplications" engine="java"
            location="org.ofbiz.accounting.invoice.InvoiceServices" invoke="checkInvoicePaymentApplications">
        <description>Checks to see if the payments applied to an invoice total up to the invoice total; if so sets to PAID</description>
        <attribute name="invoiceId" type="String" mode="IN" optional="false"/>
    </service>
    <service name="createInvoiceContactMech" engine="simple"
            location="component://accounting/script/org/ofbiz/accounting/invoice/InvoiceServices.xml" invoke="createInvoiceContactMech">
        <description>Create a ContactMech for an invoice</description>
        <permission-service service-name="acctgInvoicePermissionCheck" main-action="CREATE"/>
        <auto-attributes entity-name="InvoiceContactMech" include="pk" mode="IN" optional="false"/>
        <attribute name="contactMechId" type="String" mode="OUT" optional="true"/>
    </service>
    <service name="calculateInvoicedAdjustmentTotal" engine="java"
            location="org.ofbiz.accounting.invoice.InvoiceServices" invoke="calculateInvoicedAdjustmentTotal">
        <description>Calculate the previously invoiced amount for an OrderAdjustment</description>
        <attribute name="orderAdjustment" type="org.ofbiz.entity.GenericValue" mode="IN" optional="false"/>
        <attribute name="invoicedTotal" type="BigDecimal" mode="OUT" optional="false"/>
    </service>

    <service name="updateInvoiceItemType" engine="simple" default-entity-name="InvoiceItemType"
        location="component://accounting/script/org/ofbiz/accounting/invoice/InvoiceServices.xml" invoke="updateInvoiceItemType">
        <description>Update Invoice Item Type Record</description>
        <auto-attributes mode="IN" include="pk" optional="false"/>
        <auto-attributes mode="IN" include="nonpk" optional="true"/>
    </service>
    <!-- Auto generate Invoice for fixed period -->
    <service name="autoGenerateInvoiceFromExistingInvoice" engine="simple" location="component://accounting/script/org/ofbiz/accounting/invoice/InvoiceServices.xml" invoke="autoGenerateInvoiceFromExistingInvoice">
        <description>Scheduled service to generate Invoice from an existing Invoice</description>
        <attribute name="recurrenceInfoId" mode="IN" type="String" optional="false"/>
    </service>
    
    <service name="cancelInvoice" engine="simple"
            location="component://accounting/script/org/ofbiz/accounting/invoice/InvoiceServices.xml" invoke="cancelInvoice">
        <description>Cancel Invoice</description>
        <attribute name="invoiceId" type="String" mode="IN" optional="false"/>
        <attribute name="invoiceTypeId" type="String" mode="OUT" optional="false"/>
    </service>
    
    <service name="getInvoiceRunningTotal" engine="simple"
            location="component://accounting/script/org/ofbiz/accounting/invoice/InvoiceServices.xml" invoke="getInvoiceRunningTotal" auth="true">
        <description>calculate running total for selected Invoices</description>
        <attribute name="invoiceIds" type="List" mode="IN" optional="false"/>
        <attribute name="organizationPartyId" type="String" mode="IN" optional="true"/>
        <attribute name="invoiceRunningTotal" type="String" mode="OUT" optional="false"/>
    </service>
    
    <service name="addtax" engine="simple" 
        location="component://accounting/script/org/ofbiz/accounting/invoice/InvoiceServices.xml" invoke="addtax">
        <description>Call Tax Calculate Service</description>
        <attribute name="invoiceId" type="String" mode="IN" optional="false"/>
    </service>

    <service name="getInvoicesFilterByAssocType" engine="simple"
            location="component://accounting/script/org/ofbiz/accounting/invoice/InvoiceServices.xml" invoke="getInvoicesFilterByAssocType" auth="true">
        <description>Filter invoices by invoiceItemAssocTypeId</description>
        <attribute name="invoiceList" type="List" mode="IN" optional="false"/>
        <attribute name="invoiceItemAssocTypeId" type="String" mode="IN" optional="false"/>
        <attribute name="filteredInvoiceList" type="List" mode="OUT" optional="true"/>
    </service>

    <!-- Invoice Association Services -->
    <service name="createInvoiceItemAssoc" default-entity-name="InvoiceItemAssoc" engine="entity-auto" invoke="create" auth="true">
        <description>Create a InvoiceItemAssoc</description>
        <auto-attributes include="pk" mode="IN" optional="false"/>
        <auto-attributes include="nonpk" mode="IN" optional="true"/>
        <override name="fromDate" optional="true"/>
    </service>
    <service name="updateInvoiceItemAssoc" default-entity-name="InvoiceItemAssoc" engine="entity-auto" invoke="update" auth="true">
        <description>Update a InvoiceItemAssoc</description>
        <auto-attributes include="pk" mode="IN" optional="false"/>
        <auto-attributes include="nonpk" mode="IN" optional="true"/>
    </service>
    <service name="deleteInvoiceItemAssoc" default-entity-name="InvoiceItemAssoc" engine="entity-auto" invoke="delete" auth="true">
        <description>Delete a InvoiceItemAssoc</description>
        <auto-attributes include="pk" mode="IN" optional="false"/>
    </service>

    <service name="removeInvoiceItemAssocOnCancelInvoice" engine="simple"
            location="component://accounting/script/org/ofbiz/accounting/invoice/InvoiceServices.xml" invoke="removeInvoiceItemAssocOnCancelInvoice" auth="true">
        <description>Remove invoiceItemAssoc record on cancel invoice</description>
        <attribute name="invoiceId" type="String" mode="IN" optional="false"/>
    </service>

    <service name="massChangeInvoiceStatus" engine="simple"
            location="component://accounting/script/org/ofbiz/accounting/invoice/InvoiceServices.xml" invoke="massChangeInvoiceStatus" auth="true">
        <description>Set status of invoices in bulk.</description>
        <attribute name="invoiceIds" type="List" mode="IN" optional="false"/>
        <attribute name="statusId" type="String" mode="IN" optional="false"/>
        <attribute name="errorMessage" type="String" optional="true" mode="OUT"/>
    </service>
    
</services>
