salix/modules/ticket/front/future/index.js

174 lines
4.6 KiB
JavaScript
Raw Permalink Normal View History

import ngModule from '../module';
import Section from 'salix/components/section';
export default class Controller extends Section {
constructor($element, $) {
super($element, $);
this.$checkAll = false;
this.smartTableOptions = {
activeButtons: {
2022-11-10 14:54:00 +00:00
search: true,
},
columns: [{
field: 'totalProblems',
searchable: false,
},
{
2022-12-14 11:17:12 +00:00
field: 'shipped',
searchable: false
},
{
field: 'futureShipped',
searchable: false
2024-01-09 11:53:58 +00:00
}, {
field: 'totalWithVat',
searchable: false
2022-11-10 14:54:00 +00:00
},
{
field: 'state',
searchable: false
},
{
field: 'futureState',
2022-11-10 14:54:00 +00:00
searchable: false
},
{
field: 'ipt',
autocomplete: {
url: 'ItemPackingTypes',
where: `{isActive: true}`,
2022-11-10 14:54:00 +00:00
showField: 'description',
valueField: 'code'
2022-11-10 14:54:00 +00:00
}
},
{
field: 'futureIpt',
2022-11-10 14:54:00 +00:00
autocomplete: {
url: 'ItemPackingTypes',
where: `{isActive: true}`,
2022-11-10 14:54:00 +00:00
showField: 'description',
valueField: 'code'
2022-11-10 14:54:00 +00:00
}
},
]
};
}
$postLink() {
2022-11-16 10:10:00 +00:00
this.setDefaultFilter();
}
setDefaultFilter() {
2023-01-16 14:18:24 +00:00
const today = Date.vnNew();
2022-11-16 10:10:00 +00:00
2023-02-08 12:47:35 +00:00
this.$http.get(`UserConfigs/getUserConfig`)
.then(res => {
this.filterParams = {
originScopeDays: today,
futureScopeDays: today,
2023-02-08 12:47:35 +00:00
warehouseFk: res.data.warehouseFk
};
this.$.model.applyFilter(null, this.filterParams);
});
}
compareDate(date) {
2023-01-16 14:18:24 +00:00
let today = Date.vnNew();
today.setHours(0, 0, 0, 0);
let timeTicket = new Date(date);
timeTicket.setHours(0, 0, 0, 0);
let comparation = today - timeTicket;
if (comparation == 0)
return 'warning';
if (comparation < 0)
return 'success';
}
2022-11-08 14:56:58 +00:00
get checked() {
const tickets = this.$.model.data || [];
const checkedLines = [];
for (let ticket of tickets) {
if (ticket.checked)
checkedLines.push(ticket);
}
return checkedLines;
}
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];
}
2022-11-08 14:56:58 +00:00
get confirmationMessage() {
if (!this.$.model) return 0;
return this.$t(`Move confirmation`, {
checked: this.checked.length
});
}
moveTicketsFuture() {
let ticketsToMove = [];
this.checked.forEach(ticket => {
ticketsToMove.push({
originId: ticket.id,
destinationId: ticket.futureId,
originShipped: ticket.shipped,
destinationShipped: ticket.futureShipped,
workerFk: ticket.workerFk
});
});
let params = {tickets: ticketsToMove};
2022-11-08 14:56:58 +00:00
return this.$http.post('Tickets/merge', params)
.then(() => {
this.$.model.refresh();
this.vnApp.showSuccess(this.$t('Success'));
});
}
2024-01-09 11:53:58 +00:00
totalPriceColor(totalWithVat) {
return this.isLessThan50(totalWithVat) ? 'warning' : '';
}
totalPriceTitle(totalWithVat) {
return this.isLessThan50(totalWithVat) ? 'Less than 50€' : '';
}
isLessThan50(totalWithVat) {
return (parseInt(totalWithVat) > 0 && parseInt(totalWithVat) < 50);
}
2022-11-10 14:54:00 +00:00
exprBuilder(param, value) {
switch (param) {
2022-12-14 11:17:12 +00:00
case 'id':
return {'id': value};
case 'futureId':
return {'futureId': value};
2022-12-14 11:17:12 +00:00
case 'liters':
return {'liters': value};
case 'lines':
return {'lines': value};
case 'ipt':
2023-04-18 09:33:36 +00:00
return {'ipt': {like: `%${value}%`}};
case 'futureIpt':
2023-04-18 09:33:36 +00:00
return {'futureIpt': {like: `%${value}%`}};
2024-01-09 11:53:58 +00:00
case 'totalWithVat':
return {'totalWithVat': value};
2022-11-10 14:54:00 +00:00
}
}
}
2022-11-08 14:56:58 +00:00
Controller.$inject = ['$element', '$scope'];
ngModule.vnComponent('vnTicketFuture', {
template: require('./index.html'),
controller: Controller
});