import ngModule from '../module';
import Descriptor from 'salix/components/descriptor';

class Controller extends Descriptor {
    get invoiceOut() {
        return this.entity;
    }

    set invoiceOut(value) {
        this.entity = value;
    }

    get hasInvoicing() {
        return this.aclService.hasAny(['invoicing']);
    }

    get filter() {
        if (this.invoiceOut)
            return JSON.stringify({refFk: this.invoiceOut.ref});

        return null;
    }

    loadData() {
        const filter = {
            include: [
                {
                    relation: 'company',
                    scope: {
                        fields: ['id', 'code']
                    }
                }, {
                    relation: 'client',
                    scope: {
                        fields: ['id', 'name', 'email']
                    }
                }
            ]
        };

        return this.getData(`InvoiceOuts/${this.id}`, {filter})
            .then(res => this.entity = res.data);
    }
}

ngModule.vnComponent('vnInvoiceOutDescriptor', {
    template: require('./index.html'),
    controller: Controller,
    bindings: {
        invoiceOut: '<',
    }
});