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: '<'
    }
});