167 lines
4.6 KiB
JavaScript
167 lines
4.6 KiB
JavaScript
import ngModule from '../module';
|
|
import Section from 'salix/components/section';
|
|
import './style.scss';
|
|
|
|
export default class Controller extends Section {
|
|
constructor($element, $) {
|
|
super($element, $);
|
|
this.editedColumn;
|
|
this.$checkAll = false;
|
|
|
|
this.smartTableOptions = {
|
|
activeButtons: {
|
|
search: true,
|
|
shownColumns: true,
|
|
},
|
|
columns: [
|
|
{
|
|
field: 'code',
|
|
autocomplete: {
|
|
url: 'ItemTypes',
|
|
showField: 'code',
|
|
valueField: 'code',
|
|
}
|
|
},
|
|
{
|
|
field: 'origin',
|
|
autocomplete: {
|
|
url: 'Origins',
|
|
showField: 'code',
|
|
valueField: 'code'
|
|
}
|
|
},
|
|
{
|
|
field: 'family',
|
|
autocomplete: {
|
|
url: 'ItemFamilies',
|
|
valueField: 'code',
|
|
showField: 'code'
|
|
}
|
|
},
|
|
{
|
|
field: 'intrastat',
|
|
autocomplete: {
|
|
url: 'Intrastats',
|
|
showField: 'description',
|
|
valueField: 'description'
|
|
}
|
|
},
|
|
{
|
|
field: 'packageFk',
|
|
autocomplete: {
|
|
url: 'Packagings',
|
|
showField: 'id'
|
|
}
|
|
},
|
|
{
|
|
field: 'isActive',
|
|
searchable: false
|
|
},
|
|
{
|
|
field: 'isIgnored',
|
|
searchable: false
|
|
},
|
|
]
|
|
};
|
|
}
|
|
|
|
get columns() {
|
|
if (this._columns) return this._columns;
|
|
|
|
this._columns = [
|
|
{field: 'packing', displayName: this.$t('Packing')},
|
|
{field: 'grouping', displayName: this.$t('Grouping')},
|
|
{field: 'packageValue', displayName: this.$t('Package value')},
|
|
{field: 'weight', displayName: this.$t('Weight')},
|
|
{field: 'description', displayName: this.$t('Description')},
|
|
{field: 'size', displayName: this.$t('Size')},
|
|
{field: 'density', displayName: this.$t('Density')},
|
|
{field: 'packingOut', displayName: this.$t('PackingOut')},
|
|
{field: 'landing', displayName: this.$t('Landing')}
|
|
];
|
|
|
|
return this._columns;
|
|
}
|
|
|
|
get checked() {
|
|
const buys = this.$.model.data || [];
|
|
const checkedBuys = [];
|
|
for (let buy of buys) {
|
|
if (buy.$checked)
|
|
checkedBuys.push(buy);
|
|
}
|
|
|
|
return checkedBuys;
|
|
}
|
|
|
|
exprBuilder(param, value) {
|
|
switch (param) {
|
|
case 'id':
|
|
case 'size':
|
|
case 'density':
|
|
case 'isActive':
|
|
case 'family':
|
|
case 'minPrice':
|
|
case 'packingOut':
|
|
return {[`i.${param}`]: value};
|
|
case 'name':
|
|
case 'description':
|
|
return {[`i.${param}`]: {like: `%${value}%`}};
|
|
case 'code':
|
|
return {'it.code': value};
|
|
case 'intrastat':
|
|
return {'intr.description': value};
|
|
case 'origin':
|
|
return {'ori.code': value};
|
|
case 'landing':
|
|
return {[`lb.${param}`]: value};
|
|
case 'packing':
|
|
case 'grouping':
|
|
case 'quantity':
|
|
case 'entryFk':
|
|
case 'buyingValue':
|
|
case 'freightValue':
|
|
case 'comissionValue':
|
|
case 'packageValue':
|
|
case 'isIgnored':
|
|
case 'price2':
|
|
case 'price3':
|
|
case 'ektFk':
|
|
case 'weight':
|
|
case 'packageFk':
|
|
return {[`b.${param}`]: value};
|
|
}
|
|
}
|
|
|
|
uncheck() {
|
|
this.checkAll = false;
|
|
}
|
|
|
|
get totalChecked() {
|
|
return this.checked.length;
|
|
}
|
|
|
|
onEditAccept() {
|
|
const rowsToEdit = [];
|
|
for (let row of this.checked)
|
|
rowsToEdit.push({id: row.id, itemFk: row.itemFk});
|
|
|
|
const data = {
|
|
field: this.editedColumn.field,
|
|
newValue: this.editedColumn.newValue,
|
|
lines: rowsToEdit
|
|
};
|
|
|
|
return this.$http.post('Buys/editLatestBuys', data)
|
|
.then(() => {
|
|
this.uncheck();
|
|
this.$.model.refresh();
|
|
});
|
|
}
|
|
}
|
|
|
|
ngModule.component('vnEntryLatestBuys', {
|
|
template: require('./index.html'),
|
|
controller: Controller
|
|
});
|