import ngModule from '../module'; import Section from 'salix/components/section'; import './style.scss'; class Controller extends Section { constructor($element, $) { super($element, $); this.filter = { include: [ { relation: 'item' }, { relation: 'saleTracking', scope: { fields: ['isChecked'] } }, { relation: 'saleGroupDetail', scope: { fields: ['saleGroupFk'], include: { relation: 'saleGroup', scope: { fields: ['parkingFk'], include: { relation: 'parking', scope: { fields: ['code'] } } } } } } ] }; } get sales() { return this._sales; } set sales(value) { this._sales = value; if (value) { const query = `Sales/${this.$params.id}/salePreparingList`; this.$http.get(query) .then(res => { res.data.forEach(salePreparing => { const sale = this.sales.find(sale => salePreparing.saleFk === sale.id); if (sale) sale.preparingList = salePreparing; }); }); } } showItemDescriptor(event, sale) { this.quicklinks = { btnThree: { icon: 'icon-transaction', state: `item.card.diary({ id: ${sale.item.id}, warehouseFk: ${this.ticket.warehouseFk}, lineFk: ${sale.id} })`, tooltip: 'Item diary' } }; this.$.itemDescriptor.show(event.target, sale.item.id); } showSaleTracking(sale) { this.saleId = sale.id; this.$.saleTracking.show(); } showItemShelvingSale(sale) { this.saleId = sale.id; this.$.itemShelvingSale.show(); } clickPreviousSelected(index) { const sale = this.sales[index]; if (!sale.preparingList.isPreviousSelected) { this.saleTrackingNew(sale, 'PREVIOUS_PREPARATION', false); sale.preparingList.isPreviousSelected = true; } else { this.saleTrackingDel(sale, 'PREVIOUS_PREPARATION'); sale.preparingList.isPreviousSelected = false; } } saleTrackingNew(sale, stateCode, isChecked) { const params = { saleFk: sale.id, isChecked: isChecked, quantity: sale.quantity, stateCode: stateCode }; this.$http.post(`SaleTrackings/replace`, params).then(() => { this.vnApp.showSuccess(this.$t('Data saved!')); }); } saleTrackingDel(sale, stateCode) { const params = { saleFk: sale.id, stateCode: stateCode }; this.$http.post(`SaleTrackings/delete`, params).then(() => { this.vnApp.showSuccess(this.$t('Data saved!')); }); } } ngModule.vnComponent('vnTicketSaleTracking', { template: require('./index.html'), controller: Controller, bindings: { ticket: '<', model: '