76 lines
1.8 KiB
JavaScript
76 lines
1.8 KiB
JavaScript
import ngModule from '../module';
|
|
import Section from 'salix/components/section';
|
|
|
|
class Controller extends Section {
|
|
constructor($element, $, vnReport, vnEmail) {
|
|
super($element, $);
|
|
this.vnReport = vnReport;
|
|
this.vnEmail = vnEmail;
|
|
|
|
this.filter = {
|
|
where: {
|
|
isPackaging: false
|
|
}
|
|
};
|
|
|
|
this.setDefaultFilter();
|
|
}
|
|
|
|
setDefaultFilter() {
|
|
const minDate = Date.vnNew();
|
|
minDate.setHours(0, 0, 0, 0);
|
|
minDate.setMonth(minDate.getMonth() - 2);
|
|
|
|
const maxDate = Date.vnNew();
|
|
maxDate.setHours(23, 59, 59, 59);
|
|
|
|
this.filterParams = {
|
|
from: minDate,
|
|
to: maxDate
|
|
};
|
|
}
|
|
|
|
get reportParams() {
|
|
const userParams = this.$.model.userParams;
|
|
return Object.assign({
|
|
recipient: this.client.email,
|
|
recipientId: this.client.id
|
|
}, userParams);
|
|
}
|
|
|
|
showTicketDescriptor(event, sale) {
|
|
if (!sale.isTicket) return;
|
|
|
|
this.$.ticketDescriptor.show(event.target, sale.origin);
|
|
}
|
|
|
|
showReport() {
|
|
const path = `Clients/${this.client.id}/campaign-metrics-pdf`;
|
|
this.vnReport.show(path, this.reportParams);
|
|
}
|
|
|
|
sendEmail() {
|
|
const path = `Clients/${this.client.id}/campaign-metrics-email`;
|
|
this.vnEmail.send(path, this.reportParams);
|
|
}
|
|
|
|
changeGrouped(value) {
|
|
const model = this.$.model;
|
|
|
|
model.addFilter({}, {grouped: value});
|
|
}
|
|
}
|
|
|
|
Controller.$inject = ['$element', '$scope', 'vnReport', 'vnEmail'];
|
|
|
|
ngModule.vnComponent('vnClientConsumption', {
|
|
template: require('./index.html'),
|
|
controller: Controller,
|
|
bindings: {
|
|
client: '<'
|
|
},
|
|
require: {
|
|
card: '^vnClientCard'
|
|
}
|
|
});
|