salix/modules/travel/front/descriptor/index.js

85 lines
2.0 KiB
JavaScript

import ngModule from '../module';
import Descriptor from 'salix/components/descriptor';
class Controller extends Descriptor {
get travel() {
return this.entity;
}
set travel(value) {
this.entity = value;
}
get travelFilter() {
let travelFilter;
const travel = this.travel;
if (travel && travel.agencyFk) {
travelFilter = this.travel && JSON.stringify({
agencyFk: this.travel.agencyFk
});
}
return travelFilter;
}
get entryFilter() {
let travel = this.travel;
if (!travel || !travel.landed) return null;
const date = new Date(travel.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.travel.cargoSupplierFk,
from,
to
});
}
loadData() {
const filter = {
fields: [
'id',
'ref',
'shipped',
'landed',
'totalEntries',
'warehouseInFk',
'warehouseOutFk',
'cargoSupplierFk'
],
include: [
{
relation: 'warehouseIn',
scope: {
fields: ['name']
}
}, {
relation: 'warehouseOut',
scope: {
fields: ['name']
}
}
]
};
return this.getData(`Travels/${this.id}`, {filter})
.then(res => this.entity = res.data);
}
}
ngModule.vnComponent('vnTravelDescriptor', {
template: require('./index.html'),
controller: Controller,
bindings: {
travel: '<'
}
});