<mg-ajax path="Clients/{{patch.params.id}}/updateFiscalData" options="vnPatch"></mg-ajax>
<vn-watcher
    vn-id="watcher"
    data="$ctrl.client"
    id-field="id"
    form="form"
    save="patch">
</vn-watcher>
<vn-crud-model
    auto-load="true"
    url="Provinces/location"
    data="provincesLocation"
    order="name">
</vn-crud-model>
<vn-crud-model
    auto-load="true"
    url="Countries"
    data="countries"
    order="country">
</vn-crud-model>
<vn-crud-model
    auto-load="true"
    url="SageTaxTypes"
    data="sageTaxTypes"
    order="vat">
</vn-crud-model>
<form name="form" ng-submit="$ctrl.onSubmit()" class="vn-w-md">
    <vn-card class="vn-pa-lg">
        <vn-horizontal>
            <vn-textfield
                vn-focus
                label="Social name"
                ng-model="$ctrl.client.socialName"
                info="Only letters, numbers and spaces can be used"
                required="true"
                ng-keyup="$ctrl.client.socialName = $ctrl.client.socialName.toUpperCase()"
                rule>
            </vn-textfield>
            <vn-textfield
                label="Tax number"
                ng-model="$ctrl.client.fi"
                rule>
            </vn-textfield>
        </vn-horizontal>
        <vn-horizontal>
            <vn-textfield
                vn-two
                label="Street"
                ng-model="$ctrl.client.street"
                ng-keyup="$ctrl.client.street = $ctrl.client.street.toUpperCase()"
                rule>
            </vn-textfield>
        </vn-horizontal>
        <vn-horizontal>
            <vn-autocomplete
                ng-model="$ctrl.client.sageTaxTypeFk"
                data="sageTaxTypes"
                show-field="vat"
                value-field="id"
                label="Sage tax type"
                vn-acl="salesAssistant"
                rule>
            </vn-autocomplete>
            <vn-autocomplete
                ng-model="$ctrl.client.sageTransactionTypeFk"
                url="SageTransactionTypes"
                show-field="transaction"
                value-field="id"
                label="Sage transaction type"
                search-function="{or: [{id: $search}, {transaction: {like: '%'+ $search +'%'}}]}"
                vn-acl="salesAssistant"
                order="transaction"
                rule>
                <tpl-item>{{id}}: {{transaction}}</tpl-item>
            </vn-autocomplete>
        </vn-horizontal>
        <vn-horizontal>
            <vn-datalist
                label="Postcode"
                ng-model="$ctrl.client.postcode"
                selection="$ctrl.postcode"
                url="Postcodes/location"
                fields="['code','townFk']"
                order="code, townFk"
                value-field="code"
                show-field="code"
                rule>
                <tpl-item>
                    {{code}} - {{town.name}} ({{town.province.name}},
                    {{town.province.country.country}})
                </tpl-item>
                <append>
                    <vn-icon-button
                        icon="add_circle"
                        vn-tooltip="New postcode"
                        ng-click="postcode.open()"
                        vn-acl="deliveryAssistant"
                        vn-acl-action="remove">
                    </vn-icon-button>
                </append>
            </vn-datalist>
            <vn-datalist
                vn-id="town"
                label="City"
                ng-model="$ctrl.client.city"
                selection="$ctrl.town"
                url="Towns/location"
                fields="['id', 'name', 'provinceFk']"
                show-field="name"
                value-field="name">
                <tpl-item>
                    {{name}}, {{province.name}}
                    ({{province.country.country}})
                </tpl-item>
            </vn-datalist>
        </vn-horizontal>
        <vn-horizontal>
            <vn-autocomplete
                vn-one
                vn-id="province"
                label="Province"
                ng-model="$ctrl.client.provinceFk"
                selection="$ctrl.province"
                data="provincesLocation"
                fields="['id', 'name', 'countryFk']"
                show-field="name"
                value-field="id"
                rule>
                <tpl-item>{{name}} ({{country.country}})</tpl-item>
            </vn-autocomplete>
            <vn-autocomplete
                vn-one
                vn-id="country"
                ng-model="$ctrl.client.countryFk"
                data="countries"
                show-field="country"
                value-field="id"
                label="Country"
                rule>
            </vn-autocomplete>
        </vn-horizontal>
        <vn-horizontal>
            <vn-check
                label="Active"
                ng-model="$ctrl.client.isActive">
            </vn-check>
            <vn-check
                label="Frozen"
                ng-model="$ctrl.client.isFreezed">
            </vn-check>
        </vn-horizontal>
        <vn-horizontal>
            <vn-check
                label="Has to invoice"
                ng-model="$ctrl.client.hasToInvoice">
            </vn-check>
            <vn-check
                label="Vies"
                info="When activating it, do not enter the country code in the ID field."
                ng-model="$ctrl.client.isVies">
            </vn-check>
        </vn-horizontal>
        <vn-horizontal>
            <vn-check
                label="Notify by email"
                ng-model="$ctrl.client.isToBeMailed">
            </vn-check>
            <vn-check
                label="Invoice by address"
                ng-model="$ctrl.client.hasToInvoiceByAddress">
            </vn-check>
        </vn-horizontal>
        <vn-horizontal>
            <vn-check
                label="Is equalizated"
                ng-model="$ctrl.client.isEqualizated"
                info="In order to invoice, this field is not consulted, but the consignee's ET. When modifying this field if the invoice by address option is not checked, the change will be automatically propagated to all addresses, otherwise the user will be asked if he wants to propagate it or not."
                on-change="$ctrl.onChangeEqualizated(value)">
            </vn-check>
            <vn-check
                label="Verified data"
                ng-model="$ctrl.client.isTaxDataChecked"
                vn-acl="salesAssistant">
            </vn-check>
        </vn-horizontal>
        <vn-horizontal>
            <vn-check
                label="Incoterms authorization"
                ng-model="$ctrl.client.hasIncoterms"
                vn-acl="administrative">
            </vn-check>
            <vn-check
                label="Electronic invoice"
                ng-model="$ctrl.client.hasElectronicInvoice"
                vn-acl="administrative">
            </vn-check>
        </vn-horizontal>
    </vn-card>
    <vn-button-bar>
        <vn-submit disabled="!watcher.dataChanged()" label="Save">
        </vn-submit>
        <vn-button
            class="cancel"
            label="Undo changes"
            disabled="!watcher.dataChanged()"
            ng-click="watcher.loadOriginalData()">
        </vn-button>
    </vn-button-bar>
</form>
<vn-confirm
    vn-id="propagate-isEqualizated"
    question="You changed the equalization tax"
    message="Do you want to spread the change?"
    on-accept="$ctrl.onAcceptEt()">
</vn-confirm>
<vn-confirm
    vn-id="confirm-duplicatedClient"
    message="Found a client with this data"
    on-accept="$ctrl.onAcceptDuplication()">
</vn-confirm>
<vn-geo-postcode
    vn-id="postcode"
    on-response="$ctrl.onResponse($response)">
</vn-geo-postcode>