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 });