<vn-crud-model
    auto-load="true"
    url="InvoiceCorrectionTypes"
    data="invoiceCorrectionTypes">
</vn-crud-model>

<vn-icon-button
    icon="more_vert"
    vn-popover="menu">
</vn-icon-button>
<vn-menu vn-id="menu">
    <vn-list>
        <vn-item
        vn-acl="administrative"
        vn-acl-action="remove"
        ng-click="transferInvoice.show()"
        translate>
            Transfer invoice to...
        </vn-item>
        <vn-item class="dropdown"
            vn-click-stop="showInvoiceMenu.show($event, 'left')"
            name="showInvoicePdf"
            translate>
            Show invoice...
            <vn-menu vn-id="showInvoiceMenu">
                <vn-list>
                    <a class="vn-item"
                        href="api/InvoiceOuts/{{$ctrl.id}}/download?access_token={{$ctrl.vnToken.tokenMultimedia}}"
                        target="_blank"
                        name="showInvoicePdf"
                        translate>
                        as PDF
                    </a>
                    <vn-item
                        ng-click="$ctrl.showCsvInvoice()"
                        translate>
                        as CSV
                    </vn-item>
                </vn-list>
            </vn-menu>
        </vn-item>
        <vn-item class="dropdown"
            vn-click-stop="sendInvoiceMenu.show($event, 'left')"
            name="sendInvoice"
            translate>
            Send invoice...
            <vn-menu vn-id="sendInvoiceMenu">
                <vn-list>
                    <vn-item
                        ng-click="sendPdfConfirmation.show({email: $ctrl.invoiceOut.client.email})"
                        translate>
                        Send PDF
                    </vn-item>
                    <vn-item
                        ng-click="sendCsvConfirmation.show({email: $ctrl.invoiceOut.client.email})"
                        translate>
                        Send CSV
                    </vn-item>
                </vn-list>
            </vn-menu>
        </vn-item>
        <vn-item
            ng-click="deleteConfirmation.show()"
            vn-acl="invoicing"
            vn-acl-action="remove"
            name="deleteInvoice"
            translate>
            Delete Invoice
        </vn-item>
        <vn-item
            ng-click="bookConfirmation.show()"
            vn-acl="invoicing"
            vn-acl-action="remove"
            name="bookInvoice"
            translate>
            Book invoice
        </vn-item>
        <vn-item
            ng-click="createInvoicePdfConfirmation.show()"
            ng-show="$ctrl.hasInvoicing || !$ctrl.invoiceOut.hasPdf"
            name="regenerateInvoice"
            translate>
            {{!$ctrl.invoiceOut.hasPdf ? 'Generate PDF invoice': 'Regenerate PDF invoice'}}
        </vn-item>
        <vn-item
            ng-click="$ctrl.showExportationLetter()"
            ng-show="$ctrl.invoiceOut.serial == 'E'"
            translate>
            Show CITES letter
        </vn-item>

    </vn-list>
</vn-menu>
<vn-confirm
    vn-id="deleteConfirmation"
    on-accept="$ctrl.deleteInvoiceOut()"
    question="Are you sure you want to delete this invoice?">
</vn-confirm>
<vn-confirm
    vn-id="bookConfirmation"
    on-accept="$ctrl.bookInvoiceOut()"
    question="Are you sure you want to book this invoice?">
</vn-confirm>
<vn-client-descriptor-popover
    vn-id="clientDescriptor">
</vn-client-descriptor-popover>

<!-- Create invoice PDF confirmation dialog -->
<vn-confirm
    vn-id="createInvoicePdfConfirmation"
    on-accept="$ctrl.createPdfInvoice()"
    question="Are you sure you want to generate/regenerate the PDF invoice?"
    message="Generate PDF invoice document">
</vn-confirm>

<!-- Send PDF invoice confirmation popup -->
<vn-dialog
    vn-id="sendPdfConfirmation"
    on-accept="$ctrl.sendPdfInvoice($data)"
    message="Send PDF invoice">
    <tpl-body>
        <span translate>Are you sure you want to send it?</span>
        <vn-textfield vn-one
            label="Email"
            ng-model="sendPdfConfirmation.data.email">
        </vn-textfield>
    </tpl-body>
    <tpl-buttons>
        <input type="button" response="cancel" translate-attr="{value: 'Cancel'}"/>
        <button response="accept" translate>Confirm</button>
    </tpl-buttons>
</vn-dialog>

<!-- Send CSV invoice confirmation popup -->
<vn-dialog
    vn-id="sendCsvConfirmation"
    on-accept="$ctrl.sendCsvInvoice($data)"
    message="Send CSV invoice">
    <tpl-body>
        <span translate>Are you sure you want to send it?</span>
        <vn-textfield vn-one
            label="Email"
            ng-model="sendCsvConfirmation.data.email">
        </vn-textfield>
    </tpl-body>
    <tpl-buttons>
        <input type="button" response="cancel" translate-attr="{value: 'Cancel'}"/>
        <button response="accept" translate>Confirm</button>
    </tpl-buttons>
</vn-dialog>

<vn-dialog
    vn-id="transferInvoice"
    title="transferInvoice"
    on-accept="$ctrl.transferInvoice()">
    <tpl-title translate>
        transferInvoice
    </tpl-title>
    <tpl-body>
        <section class="transferInvoice">
            <vn-horizontal>
                <vn-autocomplete
                    vn-one
                    vn-id="client"
                    required="true"
                    url="Clients"
                    label="Client"
                    show-field="name"
                    value-field="id"
                    search-function="{or: [{id: $search}, {name: {like: '%'+ $search +'%'}}]}"
                    ng-model="$ctrl.clientId"
                    order="id">
                    <tpl-item>
                        #{{id}} - {{::name}}
                    </tpl-item>
                </vn-autocomplete>
                <vn-autocomplete
                    vn-one
                    vn-id="cplusRectificationType"
                    required="true"
                    data="$ctrl.cplusRectificationTypes"
                    show-field="description"
                    value-field="id"
                    ng-model="$ctrl.cplusRectificationType"
                    search-function="{or: [{id: $search}, {description: {like: '%'+ $search +'%'}}]}"
                    label="Rectificative type">
                    <tpl-item>
                    {{ ::description}}
                    </tpl-item>
                </vn-autocomplete>
            </vn-horizontal>
            <vn-horizontal>
                <vn-autocomplete
                    vn-one
                    vn-id="siiTypeInvoiceOut"
                    data="$ctrl.siiTypeInvoiceOuts"
                    show-field="description"
                    value-field="id"
                    fields="['id','code','description']"
                    required="true"
                    ng-model="$ctrl.siiTypeInvoiceOut"
                    label="Class">
                    <tpl-item>
                        {{::code}} - {{::description}}
                    </tpl-item>
                </vn-autocomplete>
                <vn-autocomplete
                    vn-one
                    vn-id="invoiceCorrectionType"
                    data="invoiceCorrectionTypes"
                    ng-model="$ctrl.invoiceCorrectionType"
                    show-field="description"
                    value-field="id"
                    required="true"
                    label="Type">
                </vn-autocomplete>
            </vn-horizontal>
            <vn-horizontal>
                <vn-check
                    ng-model="$ctrl.isChecked"
                    label="destinationClient"
                    info="transferInvoiceInfo"
                />
                </vn-check>
            </vn-horizontal>
        </section>
    </tpl-body>
    <tpl-buttons>
        <button response="accept" translate>Transfer client</button>
    </tpl-buttons>
</vn-dialog>