import ngModule from '../../module'; import Section from 'salix/components/section'; export default class Controller extends Section { constructor($element, $) { super($element, $); this.address = { isActive: true, isDefaultAddress: false }; } onSubmit() { this.$.watcher.submit().then(res => { if (this.address.isDefaultAddress) this.client.defaultAddressFk = res.data.id; this.$state.go('client.card.address.index'); }); } showCustomAgent(event) { if (event.defaultPrevented) return; event.preventDefault(); this.$.customAgent.show(); } onCustomAgentAccept() { return this.$http.post(`CustomsAgents`, this.newCustomsAgent) .then(res => this.address.customsAgentFk = res.data.id); } get town() { return this._town; } // Town auto complete set town(selection) { this._town = selection; if (!selection) return; const province = selection.province; const postcodes = selection.postcodes; if (!this.address.provinceFk) this.address.provinceFk = province.id; if (postcodes.length === 1) this.address.postalCode = postcodes[0].code; } get postcode() { return this._postcode; } // Postcode auto complete set postcode(selection) { this._postcode = selection; if (!selection) return; const town = selection.town; const province = town.province; if (!this.address.city) this.address.city = town.name; if (!this.address.provinceFk) this.address.provinceFk = province.id; } onResponse(response) { this.address.postalCode = response.code; this.address.city = response.city; this.address.provinceFk = response.provinceFk; } } Controller.$inject = ['$element', '$scope']; ngModule.vnComponent('vnClientAddressCreate', { template: require('./index.html'), controller: Controller, bindings: { client: '<' } });