90 lines
2.4 KiB
JavaScript
90 lines
2.4 KiB
JavaScript
import ngModule from '../module';
|
|
import Section from 'salix/components/section';
|
|
|
|
export default class Controller extends Section {
|
|
constructor($element, $) {
|
|
super($element, $);
|
|
|
|
this.smartTableOptions = {
|
|
activeButtons: {
|
|
search: true
|
|
},
|
|
columns: [
|
|
{
|
|
field: 'parking',
|
|
autocomplete: {
|
|
url: 'Parkings',
|
|
showField: 'code',
|
|
valueField: 'code'
|
|
}
|
|
},
|
|
{
|
|
field: 'shelving',
|
|
autocomplete: {
|
|
url: 'Shelvings',
|
|
showField: 'code',
|
|
valueField: 'code'
|
|
}
|
|
},
|
|
{
|
|
field: 'created',
|
|
searchable: false
|
|
},
|
|
{
|
|
field: 'itemFk',
|
|
searchable: false
|
|
},
|
|
{
|
|
field: 'longName',
|
|
searchable: false
|
|
}
|
|
]
|
|
};
|
|
}
|
|
|
|
get checked() {
|
|
const itemShelvings = this.$.model.data || [];
|
|
const checkedLines = [];
|
|
for (let itemShelving of itemShelvings) {
|
|
if (itemShelving.checked)
|
|
checkedLines.push(itemShelving.itemShelvingFk);
|
|
}
|
|
|
|
return checkedLines;
|
|
}
|
|
|
|
calculateTotals() {
|
|
this.labelTotal = 0;
|
|
const itemShelvings = this.$.model.data || [];
|
|
itemShelvings.forEach(itemShelving => {
|
|
const label = itemShelving.stock / itemShelving.packing;
|
|
this.labelTotal += label;
|
|
});
|
|
}
|
|
|
|
onRemove() {
|
|
const params = {itemShelvingIds: this.checked};
|
|
const query = `ItemShelvings/deleteItemShelvings`;
|
|
this.$http.post(query, params)
|
|
.then(() => {
|
|
this.vnApp.showSuccess(this.$t('ItemShelvings removed'));
|
|
this.$.model.refresh();
|
|
});
|
|
}
|
|
|
|
exprBuilder(param, value) {
|
|
switch (param) {
|
|
case 'parking':
|
|
case 'shelving':
|
|
case 'label':
|
|
case 'packing':
|
|
return {[param]: value};
|
|
}
|
|
}
|
|
}
|
|
|
|
ngModule.vnComponent('vnItemShelving', {
|
|
template: require('./index.html'),
|
|
controller: Controller
|
|
});
|