72 lines
1.5 KiB
JavaScript
72 lines
1.5 KiB
JavaScript
import ngModule from '../module';
|
|
import Summary from 'salix/components/summary';
|
|
import './style.scss';
|
|
|
|
class Controller extends Summary {
|
|
$onInit() {
|
|
this.entries = [];
|
|
}
|
|
|
|
get travel() {
|
|
return this._travel;
|
|
}
|
|
|
|
set travel(value) {
|
|
this._travel = value;
|
|
|
|
if (value && value.id) {
|
|
this.getTravel();
|
|
this.getEntries();
|
|
this.getThermographs();
|
|
}
|
|
}
|
|
|
|
getTravel() {
|
|
return this.$http.get(`Travels/${this.travel.id}/getTravel`)
|
|
.then(res => this.travelData = res.data);
|
|
}
|
|
|
|
getEntries() {
|
|
return this.$http.get(`Travels/${this.travel.id}/getEntries`)
|
|
.then(res => this.entries = res.data);
|
|
}
|
|
|
|
getThermographs() {
|
|
const filter = {
|
|
include: {
|
|
relation: 'warehouse',
|
|
scope: {
|
|
fields: ['id', 'name']
|
|
}
|
|
},
|
|
where: {
|
|
travelFk: this.travel.id
|
|
}
|
|
};
|
|
|
|
return this.$http.get(`TravelThermographs`, {filter})
|
|
.then(res => this.travelThermographs = res.data);
|
|
}
|
|
|
|
total(field) {
|
|
let total = 0;
|
|
|
|
for (let entry of this.entries)
|
|
total += entry[field];
|
|
|
|
return total;
|
|
}
|
|
|
|
get isBuyer() {
|
|
return this.aclService.hasAny(['buyer']);
|
|
}
|
|
}
|
|
|
|
ngModule.vnComponent('vnTravelSummary', {
|
|
template: require('./index.html'),
|
|
controller: Controller,
|
|
bindings: {
|
|
travel: '<'
|
|
}
|
|
});
|