106 lines
2.6 KiB
JavaScript
106 lines
2.6 KiB
JavaScript
import ngModule from '../module';
|
|
import './style.scss';
|
|
|
|
class Controller {
|
|
constructor($state, $scope, $http, vnApp, $translate) {
|
|
this.$state = $state;
|
|
this.$scope = $scope;
|
|
this.$http = $http;
|
|
this.vnApp = vnApp;
|
|
this.$translate = $translate;
|
|
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 = parseInt(window.localStorage.defaultWarehouseFk);
|
|
|
|
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(`/item/api/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.$scope.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(`/item/api/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 = ['$state', '$scope', '$http', 'vnApp', '$translate'];
|
|
|
|
ngModule.component('vnItemDescriptor', {
|
|
template: require('./index.html'),
|
|
controller: Controller,
|
|
bindings: {
|
|
item: '<',
|
|
quicklinks: '<'
|
|
}
|
|
});
|