import ngModule from '../module'; import Descriptor from 'salix/components/descriptor'; class Controller extends Descriptor { get entry() { return this.entity; } set entry(value) { this.entity = value; } get travelFilter() { let travelFilter; const entryTravel = this.entry && this.entry.travel; if (entryTravel && entryTravel.agencyModeFk) { travelFilter = this.entry && JSON.stringify({ agencyModeFk: entryTravel.agencyModeFk }); } return travelFilter; } get entryFilter() { let entryTravel = this.entry && this.entry.travel; if (!entryTravel || !entryTravel.landed) return null; const date = new Date(entryTravel.landed); date.setHours(0, 0, 0, 0); const from = new Date(date.getTime()); from.setDate(from.getDate() - 10); const to = new Date(date.getTime()); to.setDate(to.getDate() + 10); return JSON.stringify({ supplierFk: this.entry.supplierFk, from, to }); } loadData() { const filter = { include: [ { relation: 'travel', scope: { fields: ['id', 'landed', 'agencyModeFk', 'warehouseOutFk'], include: [ { relation: 'agency', scope: { fields: ['name'] } }, { relation: 'warehouseOut', scope: { fields: ['name'] } }, { relation: 'warehouseIn', scope: { fields: ['name'] } } ] } }, { relation: 'supplier', scope: { fields: ['id', 'nickname'] } } ] }; return this.getData(`Entries/${this.id}`, {filter}) .then(res => this.entity = res.data); } showEntryReport() { this.vnReport.show(`Entries/${this.id}/entry-order-pdf`); } } ngModule.vnComponent('vnEntryDescriptor', { template: require('./index.html'), controller: Controller, bindings: { entry: '<' } });