<?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/minilang/invoice/InvoiceServices.xml" invoke="getNextInvoiceId">
        <description>Get the Next Invoice ID According to Settings on the PartyAcctgPreference Entity for the given Party</description>
        <implements service="createInvoice"/>
        <attribute name="partyId" type="String" mode="IN" optional="false"/>
        <attribute name="invoiceId" type="String" mode="OUT" optional="false"/>
    </service>

    <service name="invoiceSequenceEnforced" engine="simple"
        location="component://accounting/minilang/invoice/InvoiceServices.xml" invoke="invoiceSequenceEnforced">
        <implements service="getNextInvoiceId"/>
        <attribute name="partyAcctgPreference" type="org.apache.ofbiz.entity.GenericValue" mode="IN"/>
        <override name="invoiceId" type="Long" mode="OUT"/>
    </service>

    <service name="invoiceSequenceRestart" engine="simple"
        location="component://accounting/minilang/invoice/InvoiceServices.xml" invoke="invoiceSequenceRestart">
        <implements service="getNextInvoiceId"/>
        <attribute name="partyAcctgPreference" type="org.apache.ofbiz.entity.GenericValue" mode="IN"/>
    </service>

    <!-- Invoice services -->
    <service name="createInvoice" engine="simple" default-entity-name="Invoice"
        location="component://accounting/minilang/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="partyIdFrom" mode = "IN" optional="false"/>
        <override name="partyId" mode = "IN" optional="false"/>
        <override name="description" allow-html="any"/>
        <override name="invoiceMessage" allow-html="any"/>
    </service>
    <service name="copyInvoice" engine="simple" default-entity-name="Invoice"
        location="component://accounting/minilang/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/minilang/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.apache.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/minilang/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="any"/>
        <override name="invoiceMessage" allow-html="any"/>
    </service>
    <service name="setInvoiceStatus" engine="simple"
        location="component://accounting/minilang/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/minilang/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/minilang/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 be assigned by the system -->
        <override name="description" allow-html="any"/>
    </service>
    <service name="updateInvoiceItem" engine="simple" default-entity-name="InvoiceItem"
        location="component://accounting/minilang/invoice/InvoiceServices.xml" invoke="updateInvoiceItem">
        <description>Update existing Invoice Item Record</description>
        <permission-service service-name="acctgInvoicePermissionCheck" main-action="UPDATE"/>
        <auto-attributes mode="INOUT" include="pk" optional="false"/>
        <auto-attributes mode="IN" include="nonpk" optional="true"/>
        <override name="description" allow-html="any"/>
    </service>
    <service name="removeInvoiceItem" engine="simple" default-entity-name="InvoiceItem"
        location="component://accounting/minilang/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="createInvoiceStatus" engine="entity-auto" default-entity-name="InvoiceStatus" invoke="create" auth="true">
        <description>Create a Invoice Status Record</description>
        <auto-attributes mode="IN" include="pk" optional="false"/>
        <override name="statusDate" mode="IN" optional="true"/>
    </service>

    <service name="createInvoiceRole" engine="simple" default-entity-name="InvoiceRole"
        location="component://accounting/minilang/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/minilang/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/minilang/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.apache.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.apache.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.apache.ofbiz.accounting.invoice.InvoiceServices" invoke="createInvoiceFromReturn">
        <description>
            Create an invoice from a return
            returnId = The returnId to associate the invoice with
            billItems = List of ShipmentReceipts (for sales return) or ItemIssuance (for purchase return) to use for creating the invoice
        </description>
        <attribute name="returnId" type="String" mode="IN" optional="false"/>
        <attribute name="billItems" type="List" mode="IN" optional="true"/>
        <attribute name="invoiceId" type="String" mode="OUT" optional="true"/>
    </service>
    <service name="createCommissionInvoices" engine="java"
        location="org.apache.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/minilang/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.apache.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.apache.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.apache.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.apache.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.apache.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.apache.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/minilang/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="any"/>
        <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.apache.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/minilang/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.apache.ofbiz.accounting.invoice.InvoiceServices" invoke="calculateInvoicedAdjustmentTotal">
        <description>Calculate the previously invoiced amount for an OrderAdjustment</description>
        <attribute name="orderAdjustment" type="org.apache.ofbiz.entity.GenericValue" mode="IN" optional="false"/>
        <attribute name="invoicedTotal" type="BigDecimal" mode="OUT" optional="false"/>
    </service>

    <service name="updateInvoiceItemType" default-entity-name="InvoiceItemType" engine="entity-auto" invoke="update">
        <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/minilang/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/minilang/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/minilang/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/minilang/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/minilang/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/minilang/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="resetOrderItemBillingAndOrderAdjustmentBillingOnCancelInvoice" engine="simple"
            location="component://accounting/minilang/invoice/InvoiceServices.xml" invoke="resetOrderItemBillingAndOrderAdjustmentBillingOnCancelInvoice" auth="true">
        <description>Reset OrderItemBilling and OrderAdjustmentBilling records on cancel invoice, so it is isn't considered invoiced any more by createInvoiceForOrder service</description>
        <attribute name="invoiceId" type="String" mode="IN" optional="false"/>
    </service>

    <service name="massChangeInvoiceStatus" engine="simple"
            location="component://accounting/minilang/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>
    
    <service name="createInvoiceFromOrder" engine="simple"
        location="component://accounting/minilang/invoice/InvoiceServices.xml" invoke="createInvoiceFromOrder">
        <description>Create an invoice from existing order when invoicePerShipment is N</description>
        <attribute name="orderId" type="String" mode="IN" optional="false"/>
        <attribute name="invoiceId" type="String" mode="OUT" optional="true"/>
    </service>
    
    <!-- Invoice content services -->
    <service name="createInvoiceContent" default-entity-name="InvoiceContent" engine="simple"
        location="component://accounting/minilang/invoice/InvoiceServices.xml" invoke="createInvoiceContent" auth="true">
        <description>Add Content To Invoice</description>
        <auto-attributes include="pk" mode="INOUT" optional="false"/>
        <auto-attributes include="nonpk" mode="IN" optional="true"/>
        <auto-attributes entity-name="Content" include="nonpk" mode="IN" optional="true"/>
        <override name="fromDate" optional="true"/>
        <!--<override name="contentId" optional="true" mode="INOUT"/>-->
    </service>
    <service name="updateInvoiceContent" default-entity-name="InvoiceContent" engine="simple"
        location="component://accounting/minilang/invoice/InvoiceServices.xml" invoke="updateInvoiceContent" auth="true">
        <description>Update Content To Invoice</description>
        <auto-attributes include="pk" mode="IN" optional="false"/>
        <auto-attributes include="nonpk" mode="IN" optional="true"/>
        <auto-attributes entity-name="Content" include="nonpk" mode="IN" optional="true"/>
    </service>
    <service name="removeInvoiceContent" default-entity-name="InvoiceContent" engine="simple"
        location="component://accounting/minilang/invoice/InvoiceServices.xml" invoke="removeInvoiceContent" auth="true">
        <description>Remove Content From Invoice</description>
        <auto-attributes include="pk" mode="IN" optional="false"/>
        <auto-attributes include="nonpk" mode="IN" optional="true"/>
    </service>
    
    <service name="createSimpleTextContentForInvoice" default-entity-name="InvoiceContent" engine="simple"
        location="component://accounting/minilang/invoice/InvoiceServices.xml" invoke="createSimpleTextContentForInvoice" auth="true">
        <auto-attributes include="pk" mode="IN" optional="false"/>
        <auto-attributes include="nonpk" mode="IN" optional="true"/>
        <auto-attributes entity-name="Content" include="nonpk" mode="IN" optional="true"/>
        <attribute name="text" type="String" mode="IN" optional="false" allow-html="any"/>
        <override name="contentId" optional="true"/>
        <override name="fromDate" optional="true"/>
    </service>
    <service name="updateSimpleTextContentForInvoice" default-entity-name="InvoiceContent" engine="simple"
        location="component://accounting/minilang/invoice/InvoiceServices.xml" invoke="updateSimpleTextContentForInvoice" auth="true">
        <auto-attributes include="pk" mode="IN" optional="false"/>
        <auto-attributes include="nonpk" mode="IN" optional="true"/>
        <auto-attributes mode="IN" entity-name="Content" optional="true"/>
        <attribute name="textDataResourceId" type="String" mode="IN" optional="true"/>
        <attribute name="text" type="String" mode="IN" optional="true" allow-html="any"/>
    </service>
    <service name="isInvoiceInForeignCurrency" engine="simple"
        location="component://accounting/minilang/invoice/InvoiceServices.xml" invoke="isInvoiceInForeignCurrency" auth="true">
        <description>check if a invoice is in a foreign currency related to the accounting company.</description>
        <attribute name="invoiceId" type="String" mode="IN" optional="false"/>
        <attribute name="isForeign" type="Boolean" mode="OUT" optional="false"/>
    </service>
    <service name="importInvoice" engine="java"
        location="org.apache.ofbiz.accounting.invoice.InvoiceServices" invoke="importInvoice" auth="true">
        <description>Import an invoice with invoiceitems in csv format</description>
        <permission-service service-name="acctgInvoicePermissionCheck" main-action="CREATE"/>
        <attribute mode="INOUT" name="organizationPartyId" type="String" optional="false"/>
        <attribute mode="IN" name="uploadedFile" type="java.nio.ByteBuffer" optional="true" />
    </service>
    
</services>
