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

<forms xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/widget-form.xsd">
    <form name="ListReports" type="list" separate-columns="true" title="${uiLabelMap.AccountingInvoice} ${uiLabelMap.CommonList}" list-name="invoices" target=""
        odd-row-style="alternate-row" default-table-style="basic-table hover-bar">
        <row-actions>
            <service service-name="getPartyNameForDate" result-map="partyNameResultFrom">
                <field-map field-name="partyId" from-field="partyIdFrom"/>
                <field-map field-name="compareDate" from-field="invoiceDate"/>
                <field-map field-name="lastNameFirst" value="Y"/>
            </service>
            <service service-name="getPartyNameForDate" result-map="partyNameResultTo">
                <field-map field-name="partyId" from-field="partyId"/>
                <field-map field-name="compareDate" from-field="invoiceDate"/>
                <field-map field-name="lastNameFirst" value="Y"/>
            </service>
            <set field="amountToApply" value="${groovy:
                import java.text.NumberFormat;
                return(NumberFormat.getNumberInstance(context.get(&quot;locale&quot;)).format(org.ofbiz.accounting.invoice.InvoiceWorker.getInvoiceNotApplied(delegator,invoiceId)));}"/>
            <set field="total" value="${groovy:
                import java.text.NumberFormat;
                return(NumberFormat.getNumberInstance(context.get(&quot;locale&quot;)).format(org.ofbiz.accounting.invoice.InvoiceWorker.getInvoiceTotal(delegator,invoiceId)));}"/>
        </row-actions>
        <field name="invoiceId" widget-style="buttontext">
            <hyperlink description="${invoiceId}" target="invoiceOverview">
                <parameter param-name="invoiceId"/>
            </hyperlink>
        </field>
        <field name="invoiceTypeId"><display-entity entity-name="InvoiceType"/></field>
        <field name="invoiceDate"><display/></field>
        <field name="statusId" title="${uiLabelMap.CommonStatus}"><display-entity entity-name="StatusItem"/></field>
        <field name="description"><display/></field>
        <field name="partyIdFrom">
            <hyperlink target="/partymgr/control/viewprofile" description="${partyNameResultFrom.fullName} [${partyIdFrom}]" target-type="inter-app">
                <parameter param-name="partyId" from-field="partyIdFrom"/>
            </hyperlink>
        </field>
        <field name="partyIdTo" parameter-name="partyId">
            <hyperlink target="/partymgr/control/viewprofile" description="${partyNameResultTo.fullName} [${partyId}]" target-type="inter-app">
                <parameter param-name="partyId" from-field="partyId"/>
            </hyperlink>
        </field>
        <field name="invoiceDate"><display/></field>
        <field name="dueDate"><display/></field>
        <field name="total" widget-area-style="align-text"><display type="currency" currency="${currencyUomId}"/></field>
        <field name="amountToApply" widget-area-style="align-text"><display type="currency" currency="${currencyUomId}"/></field>
   </form>
    
    <form name="FindApInvoices" type="single" target="FindApInvoices" extends="FindInvoices" extends-resource="component://accounting/widget/InvoiceForms.xml">
        <field name="parentTypeId"><hidden value="PURCHASE_INVOICE"/></field>
        <field position="1" name="invoiceTypeId">
            <drop-down allow-empty="true">
                <entity-options entity-name="InvoiceType" description="${description}">
                    <entity-constraint name="parentTypeId" value="PURCHASE_INVOICE"/>
                </entity-options>
            </drop-down>
        </field>
    </form>
    
    <form name="FindPurchaseInvoices" type="single" target="FindPurchaseInvoices">
        <actions>
            <set field="organizationPartyId" from-field="parameters.organizationPartyId" default-value="${defaultOrganizationPartyId}"/>
        </actions>
        <field name="partyIdFrom" title="${uiLabelMap.AccountingVendorParty}" position="1"><lookup target-form-name="LookupPartyName"/></field>
        <field name="statusId" title="${uiLabelMap.CommonStatus}" position="2">
            <drop-down allow-empty="true">
                <entity-options entity-name="StatusItem" description="${description}">
                    <entity-constraint name="statusTypeId" operator="equals" value="INVOICE_STATUS"/>
                </entity-options>
            </drop-down>
        </field>
        <field name="organizationPartyId"><hidden/></field>
        <field name="fromInvoiceDate" position="1"><date-time/></field>
        <field name="thruInvoiceDate" position="2"><date-time/></field>
        <field name="fromDueDate" position="1"><date-time/></field>
        <field name="thruDueDate" position="2"><date-time/></field>
        <field name="invoiceTypeId" position="1">
            <drop-down allow-empty="false">
                <entity-options entity-name="InvoiceType" description="${description}">
                    <entity-constraint name="parentTypeId" value="PURCHASE_INVOICE"/>
                </entity-options>
            </drop-down>
        </field>
        <field name="search" title="${uiLabelMap.CommonFind}" widget-style="smallSubmit"><submit button-type="button"/></field>
    </form>

    <form name="CommissionRun" type="single" target="CommissionRun">
        <field name="partyIds" field-name="partyId" title="${uiLabelMap.PartyPartyId}">
            <drop-down allow-multiple="true" allow-empty="true">
                <entity-options entity-name="PartyRoleAndPartyDetail" description="${firstName} ${middleName} ${lastName} ${groupName}(${partyId})">
                    <entity-constraint name="roleTypeId" operator="equals" value="SALES_REP"/>
                </entity-options>
            </drop-down>
        </field>
        <field name="invoiceTypeId"><hidden value="SALES_INVOICE"/></field>
        <field name="statusId"><hidden value="INVOICE_PAID"/></field>
        <field name="fromDate" position="1"><date-time/></field>
        <field name="thruDate" position="2"><date-time/></field>
        <field name="search" title="${uiLabelMap.CommonFind}" widget-style="smallSubmit"><submit button-type="button"/></field>
    </form>

    <form name="CommissionReport" type="single" target="FindCommissions">
        <field name="isSearch"><hidden value="Y"/><!-- if this isn't there then with all fields empty no query will be done --></field>
        <field name="productId" position="1"><lookup target-form-name="LookupProduct"/></field>
        <field name="partyId" position="2" title="${uiLabelMap.PartyPartyId}">
            <drop-down allow-empty="true">
                <entity-options entity-name="PartyRoleAndPartyDetail" description="${firstName} ${middleName} ${lastName} ${groupName}(${partyId})">
                    <entity-constraint name="roleTypeId" operator="equals" value="SALES_REP"/>
                </entity-options>
            </drop-down>
        </field>
        <field name="fromDate" position="1"><date-time/></field>
        <field name="thruDate" position="2"><date-time/></field>
        <field name="search" title="${uiLabelMap.CommonFind}" widget-style="smallSubmit" position="1"><submit button-type="button"/></field>
    </form>
</forms>
