salix/modules/order/front/line/index.js

71 lines
1.7 KiB
JavaScript

import ngModule from '../module';
import Section from 'salix/components/section';
import './style.scss';
class Controller extends Section {
$onInit() {
this.getRows();
}
set order(value) {
this._order = value;
this.getVAT();
}
get order() {
return this._order;
}
get subtotal() {
return this.order ? this.order.total - this.VAT : 0;
}
getRows() {
let filter = {
where: {orderFk: this.$params.id},
include: [
{relation: 'item'},
{relation: 'warehouse'}
]
};
this.$http.get(`OrderRows`, {filter})
.then(res => this.rows = res.data);
}
getVAT() {
this.$http.get(`Orders/${this.$params.id}/getVAT`)
.then(res => this.VAT = res.data);
}
deleteRow(index) {
let [row] = this.rows.splice(index, 1);
let params = {
rows: [row.id],
actualOrderId: this.$params.id
};
return this.$http.post(`OrderRows/removes`, params)
.then(() => this.card.reload())
.then(() => this.vnApp.showSuccess(this.$t('Data saved!')));
}
save() {
this.$http.post(`Orders/${this.$params.id}/confirm`).then(() => {
this.vnApp.showSuccess(this.$t('Order confirmed'));
this.$state.go(`ticket.index`, {
q: JSON.stringify({clientFk: this.order.clientFk})
});
});
}
}
ngModule.vnComponent('vnOrderLine', {
template: require('./index.html'),
controller: Controller,
bindings: {
order: '<'
},
require: {
card: '^vnOrderCard'
}
});