<vn-watcher
    vn-id="watcher"
    url="Workers/new"
    data="$ctrl.worker"
    insert-mode="true"
    form="form">
</vn-watcher>
<form name="form" vn-http-submit="$ctrl.onSubmit()" class="vn-w-md">
    <vn-card class="vn-pa-lg">
        <vn-horizontal>
            <vn-textfield
                vn-one
                label="Firstname"
                ng-model="$ctrl.worker.firstName"
                rule
                on-change="$ctrl.generateCodeUser()"
                vn-focus>
            </vn-textfield>
            <vn-textfield
                vn-one
                label="Lastname"
                on-change="$ctrl.generateCodeUser()"
                ng-model="$ctrl.worker.lastNames"
                rule>
            </vn-textfield>
            <vn-date-picker
                vn-one
                label="Birth"
                ng-model="$ctrl.worker.birth">
            </vn-date-picker>
        </vn-horizontal>
        <vn-horizontal>
            <vn-textfield
                vn-one
                label="Fi"
                ng-model="$ctrl.worker.fi"
                rule>
            </vn-textfield>
            <vn-textfield
                vn-one
                label="Worker code"
                ng-model="$ctrl.worker.code"
                maxLength="3"
                on-change="$ctrl.worker.code = $ctrl.worker.code.toUpperCase()"
                rule>
            </vn-textfield>
            <vn-textfield
                vn-one
                label="Phone"
                ng-model="$ctrl.worker.phone"
                rule>
            </vn-textfield>
        </vn-horizontal>
        <vn-horizontal>
            <vn-datalist
                label="Postcode"
                vn-one
                ng-model="$ctrl.worker.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-autocomplete
                vn-id="province"
                label="Province"
                ng-model="$ctrl.worker.provinceFk"
                selection="$ctrl.province"
                url="Provinces/location"
                fields="['id', 'name', 'countryFk']"
                rule>
                <tpl-item>{{name}} ({{country.country}})</tpl-item>
            </vn-autocomplete>
        </vn-horizontal>
        <vn-horizontal>
            <vn-datalist
                vn-id="town"
                label="City"
                ng-model="$ctrl.worker.city"
                selection="$ctrl.town"
                url="Towns/location"
                fields="['id', 'name', 'provinceFk']"
                value-field="name">
                <tpl-item>
                    {{name}}, {{province.name}}
                    ({{province.country.country}})
                </tpl-item>
            </vn-datalist>
            <vn-textfield
                vn-two
                label="Street"
                ng-model="$ctrl.worker.street"
                rule>
            </vn-textfield>
        </vn-horizontal>
        <vn-horizontal>
            <vn-textfield
                label="Web user"
                ng-model="$ctrl.worker.name"
                rule>
            </vn-textfield>
            <vn-textfield
                label="Personal email"
                ng-model="$ctrl.worker.email"
                rule>
            </vn-textfield>
        </vn-horizontal>
        <vn-horizontal>
            <vn-autocomplete
                vn-one
                vn-id="company"
                ng-model="$ctrl.worker.companyFk"
                url="Companies"
                show-field="code"
                value-field="id"
                label="Company">
            </vn-autocomplete>
            <vn-worker-autocomplete
                vn-one
                ng-model="$ctrl.worker.bossFk"
                show-field="nickname"
                label="Boss">
            </vn-worker-autocomplete>
        </vn-horizontal>
        <vn-horizontal>
            <vn-autocomplete
                vn-one
                label="Pay method"
                url="Paymethods"
                ng-model="$ctrl.worker.payMethodFk"
                initial-data="$ctrl.workerConfig.payMethodFk">
            </vn-autocomplete>
            <vn-textfield
                vn-one
                label="IBAN"
                ng-model="$ctrl.worker.iban"
                on-change="$ctrl.autofillBic()"
                rule>
            </vn-textfield>
            <vn-autocomplete
                vn-one
                label="Swift / BIC"
                url="BankEntities"
                ng-model="$ctrl.worker.bankEntityFk"
                fields="['name']"
                initial-data="$ctrl.worker.bankEntityFk"
                on-change="$ctrl.autofillBic()"
                search-function="{or: [{bic: {like: $search +'%'}}, {name: {like: '%'+ $search +'%'}}]}"
                value-field="id"
                show-field="bic"
                vn-acl="salesAssistant, hr"
                disabled="$ctrl.ibanCountry == 'ES'">
                <tpl-item>{{bic}} {{name}}</tpl-item>
                <append>
                    <vn-icon-button
                        vn-auto
                        icon="add_circle"
                        vn-click-stop="bankEntity.show({countryFk: $ctrl.worker.countryFk})"
                        vn-tooltip="New bank entity"
                        vn-acl="salesAssistant, hr">
                    </vn-icon-button>
                </append>
        </vn-autocomplete>
        </vn-horizontal>
    </vn-card>
    <vn-button-bar>
        <vn-submit
            disabled="!watcher.dataChanged()"
            label="Create">
        </vn-submit>
        <vn-button
            class="cancel"
            label="Cancel"
            ui-sref="worker.index">
        </vn-button>
    </vn-button-bar>
</form>
<!-- New postcode dialog -->
<vn-geo-postcode
    vn-id="postcode"
    on-response="$ctrl.onResponse($response)">
</vn-geo-postcode>