import ngModule from '../../module';
import Section from 'salix/components/section';
import './style.scss';

export default class Controller extends Section {
    get checked() {
        const rows = this.$.model.data || [];
        const checkedRows = [];
        for (let row of rows) {
            if (row.checked)
                checkedRows.push(row.id);
        }

        return checkedRows;
    }

    get totalChecked() {
        return this.checked.length;
    }

    onDelete() {
        const params = {deletes: this.checked};
        const query = `SalesMonitors/deleteOrders`;
        this.$http.post(query, params).then(
            () => this.$.model.refresh());
    }

    chipColor(date) {
        const today = new Date();
        today.setHours(0, 0, 0, 0);

        const orderLanded = new Date(date);
        orderLanded.setHours(0, 0, 0, 0);

        const difference = today - orderLanded;

        if (difference == 0)
            return 'warning';
        if (difference < 0)
            return 'success';
        if (difference > 0)
            return 'alert';
    }

    exprBuilder(param, value) {
        switch (param) {
        case 'date_send':
            return {[`o.date_send`]: {
                between: this.dateRange(value)}
            };
        case 'clientFk':
            return {[`c.id`]: value};
        case 'salesPersonFk':
            return {[`c.${param}`]: value};
        }
    }

    dateRange(value) {
        const minHour = new Date(value);
        minHour.setHours(0, 0, 0, 0);
        const maxHour = new Date(value);
        maxHour.setHours(23, 59, 59, 59);

        return [minHour, maxHour];
    }
}

ngModule.vnComponent('vnMonitorSalesOrders', {
    template: require('./index.html'),
    controller: Controller,
    require: {
        main: '^vnMonitorIndex'
    }
});