salix/modules/zone/front/delivery-days/index.js

66 lines
1.9 KiB
JavaScript
Raw Normal View History

2019-09-25 18:06:42 +00:00
import ngModule from '../module';
2019-11-14 13:37:18 +00:00
import Section from 'salix/components/section';
2019-09-25 18:06:42 +00:00
import './style.scss';
2019-11-14 13:37:18 +00:00
class Controller extends Section {
$onInit() {
this.$.params = {};
2020-03-24 16:32:30 +00:00
this.$.params.deliveryMethodFk = 'delivery';
2019-09-25 18:06:42 +00:00
}
onSubmit() {
2020-01-08 12:27:43 +00:00
this.$.data = null;
2019-11-14 13:37:18 +00:00
this.$http.get(`Zones/getEvents`, {params: this.$.params})
2020-01-08 12:27:43 +00:00
.then(res => {
let data = res.data;
this.$.data = data;
if (!data.events.length)
this.vnApp.showMessage(this.$t('No service for the specified zone'));
});
2019-09-25 18:06:42 +00:00
}
2020-02-26 06:02:03 +00:00
2020-03-24 16:32:30 +00:00
get deliveryMethodFk() {
return this._deliveryMethod;
}
set deliveryMethodFk(value) {
this._deliveryMethod = value;
let filter;
if (value === 'pickUp')
filter = {where: {code: 'PICKUP'}};
else
filter = {where: {code: {neq: 'PICKUP'}}};
let json = encodeURIComponent(JSON.stringify(filter));
this.$http.get(`DeliveryMethods?filter=${json}`).then(json => {
let deliveryMethods = json.data.map(deliveryMethod => deliveryMethod.id);
this.agencyFilter = {deliveryMethodFk: {inq: deliveryMethods}};
});
}
2020-02-26 06:02:03 +00:00
onSelection($event, $events) {
if (!$events.length) return;
const zones = [];
for (let event of $events)
zones.push(event.zoneFk);
this.$.zoneEvents.show($event.target);
const zoneIndex = this.$.zoneIndex;
const zoneModel = zoneIndex.$scope.model;
zoneModel.applyFilter({
include: {
relation: 'agencyMode',
scope: {fields: ['name']}
},
where: {
id: {inq: zones}
}
});
}
2019-09-25 18:06:42 +00:00
}
ngModule.component('vnZoneDeliveryDays', {
template: require('./index.html'),
controller: Controller
});