103 lines
2.5 KiB
JavaScript
103 lines
2.5 KiB
JavaScript
import ngModule from '../module';
|
|
import Component from 'core/lib/component';
|
|
import './style.scss';
|
|
|
|
class Controller extends Component {
|
|
constructor($element, $) {
|
|
super($element, $);
|
|
this.moreOptions = [
|
|
{callback: this.showRegularizeDialog, name: 'Regularize stock'}
|
|
];
|
|
}
|
|
|
|
set quantity(value) {
|
|
this._quantity = parseInt(value);
|
|
}
|
|
|
|
get quantity() {
|
|
return this._quantity;
|
|
}
|
|
|
|
set warehouseFk(value) {
|
|
if (value)
|
|
this._warehouseFk = value;
|
|
}
|
|
get warehouseFk() {
|
|
if (!this._warehouseFk)
|
|
this._warehouseFk = this.vnConfig.warehouseFk;
|
|
|
|
return this._warehouseFk;
|
|
}
|
|
|
|
set item(value) {
|
|
this._item = value;
|
|
if (value && value.itemType && value.itemType.warehouseFk)
|
|
this.updateStock(value.itemType.warehouseFk);
|
|
}
|
|
|
|
get item() {
|
|
return this._item;
|
|
}
|
|
|
|
updateStock(warehouseFk) {
|
|
this.available = null;
|
|
this.visible = null;
|
|
if (this._item && this._item.id) {
|
|
let options = {
|
|
params: {
|
|
warehouseFk: warehouseFk
|
|
}
|
|
};
|
|
this.$http.get(`Items/${this._item.id}/getVisibleAvailable`, options).then(response => {
|
|
this.available = response.data.available;
|
|
this.visible = response.data.visible;
|
|
});
|
|
}
|
|
}
|
|
|
|
onMoreChange(callback) {
|
|
callback.call(this);
|
|
}
|
|
|
|
showRegularizeDialog() {
|
|
this.$.regularize.show();
|
|
}
|
|
|
|
set quicklinks(value = {}) {
|
|
this._quicklinks = Object.assign(value, this._quicklinks);
|
|
}
|
|
|
|
get quicklinks() {
|
|
return this._quicklinks;
|
|
}
|
|
|
|
saveRegularize(response) {
|
|
if (response == 'accept') {
|
|
this.$http.post(`Items/regularize`, {
|
|
itemFk: this.item.id,
|
|
quantity: this.quantity,
|
|
warehouseFk: this.warehouseFk
|
|
}).then(res => {
|
|
this.vnApp.showSuccess(this.$translate.instant('Data saved!'));
|
|
this.updateStock(this.item.itemType.warehouseFk);
|
|
});
|
|
}
|
|
}
|
|
|
|
clearRegularizeDialog() {
|
|
this.warehouseFk = null;
|
|
this.quantity = null;
|
|
}
|
|
}
|
|
|
|
Controller.$inject = ['$element', '$scope'];
|
|
|
|
ngModule.component('vnItemDescriptor', {
|
|
template: require('./index.html'),
|
|
controller: Controller,
|
|
bindings: {
|
|
item: '<',
|
|
quicklinks: '<'
|
|
}
|
|
});
|