2018-01-25 13:14:58 +00:00
|
|
|
import ngModule from '../module';
|
2020-04-25 09:50:04 +00:00
|
|
|
import Descriptor from 'salix/components/descriptor';
|
2018-01-25 13:14:58 +00:00
|
|
|
|
2020-04-25 09:50:04 +00:00
|
|
|
class Controller extends Descriptor {
|
2020-11-27 12:10:39 +00:00
|
|
|
constructor($element, $, $rootScope) {
|
|
|
|
super($element, $);
|
|
|
|
this.$rootScope = $rootScope;
|
|
|
|
}
|
|
|
|
|
2020-04-30 10:48:52 +00:00
|
|
|
get item() {
|
|
|
|
return this.entity;
|
2018-11-12 12:12:25 +00:00
|
|
|
}
|
|
|
|
|
2020-04-30 10:48:52 +00:00
|
|
|
set item(value) {
|
|
|
|
this.entity = value;
|
2018-11-12 12:12:25 +00:00
|
|
|
}
|
|
|
|
|
2020-04-30 10:48:52 +00:00
|
|
|
get entity() {
|
|
|
|
return super.entity;
|
2018-11-12 12:12:25 +00:00
|
|
|
}
|
|
|
|
|
2020-04-30 10:48:52 +00:00
|
|
|
set entity(value) {
|
|
|
|
super.entity = value;
|
2021-05-24 08:31:51 +00:00
|
|
|
if (this.warehouseFk) this.updateStock();
|
|
|
|
}
|
|
|
|
|
|
|
|
get warehouseFk() {
|
|
|
|
return this._warehouseFk;
|
|
|
|
}
|
|
|
|
|
|
|
|
set warehouseFk(value) {
|
|
|
|
this._warehouseFk = value;
|
2023-02-07 12:40:39 +00:00
|
|
|
if (value) {
|
|
|
|
this.updateStock();
|
|
|
|
this.getWarehouseName(value);
|
|
|
|
}
|
2019-02-18 12:31:57 +00:00
|
|
|
}
|
|
|
|
|
2020-04-30 10:48:52 +00:00
|
|
|
loadData() {
|
|
|
|
return this.getData(`Items/${this.id}/getCard`)
|
|
|
|
.then(res => this.entity = res.data);
|
2019-02-18 12:31:57 +00:00
|
|
|
}
|
|
|
|
|
2020-04-30 10:48:52 +00:00
|
|
|
updateStock() {
|
2019-02-18 06:57:15 +00:00
|
|
|
this.available = null;
|
|
|
|
this.visible = null;
|
2020-04-30 10:48:52 +00:00
|
|
|
if (!this.item) return;
|
2019-02-15 15:04:24 +00:00
|
|
|
|
2020-04-30 10:48:52 +00:00
|
|
|
const params = {
|
2021-05-21 13:31:05 +00:00
|
|
|
warehouseFk: this.warehouseFk,
|
2020-05-26 08:37:52 +00:00
|
|
|
dated: this.dated
|
2020-04-30 10:48:52 +00:00
|
|
|
};
|
2018-11-12 12:12:25 +00:00
|
|
|
|
2020-04-30 10:48:52 +00:00
|
|
|
return this.$http.get(`Items/${this.id}/getVisibleAvailable`, {params})
|
|
|
|
.then(res => {
|
|
|
|
this.available = res.data.available;
|
|
|
|
this.visible = res.data.visible;
|
|
|
|
});
|
2018-08-01 10:15:09 +00:00
|
|
|
}
|
|
|
|
|
2020-04-30 10:48:52 +00:00
|
|
|
saveRegularize() {
|
|
|
|
const params = {
|
|
|
|
itemFk: this.id,
|
|
|
|
quantity: parseInt(this.quantity),
|
|
|
|
warehouseFk: this.warehouseFk
|
|
|
|
};
|
2018-11-12 12:12:25 +00:00
|
|
|
|
2020-04-30 10:48:52 +00:00
|
|
|
return this.$http.post(`Items/regularize`, params)
|
|
|
|
.then(() => {
|
|
|
|
this.vnApp.showSuccess(this.$t('Data saved!'));
|
|
|
|
this.updateStock();
|
2018-11-12 12:12:25 +00:00
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
clearRegularizeDialog() {
|
|
|
|
this.warehouseFk = null;
|
|
|
|
this.quantity = null;
|
|
|
|
}
|
2020-05-13 15:51:27 +00:00
|
|
|
|
|
|
|
onCloneAccept() {
|
|
|
|
this.$http.post(`Items/${this.item.id}/clone`)
|
|
|
|
.then(res => this.$state.go('item.card.tags', {id: res.data.id}));
|
|
|
|
}
|
2020-11-27 12:10:39 +00:00
|
|
|
|
|
|
|
onUploadResponse() {
|
2023-01-16 14:18:24 +00:00
|
|
|
const timestamp = Date.vnNew().getTime();
|
2020-11-27 12:10:39 +00:00
|
|
|
const src = this.$rootScope.imagePath('catalog', '200x200', this.item.id);
|
|
|
|
const zoomSrc = this.$rootScope.imagePath('catalog', '1600x900', this.item.id);
|
|
|
|
const newSrc = `${src}&t=${timestamp}`;
|
|
|
|
const newZoomSrc = `${zoomSrc}&t=${timestamp}`;
|
|
|
|
|
|
|
|
this.$.photo.setAttribute('src', newSrc);
|
|
|
|
this.$.photo.setAttribute('zoom-image', newZoomSrc);
|
2023-02-24 09:25:08 +00:00
|
|
|
|
2023-02-24 09:37:35 +00:00
|
|
|
if (this.item.isPhotoRequested)
|
|
|
|
this.$http.patch(`Items/${this.item.id}`, {isPhotoRequested: false});
|
2020-11-27 12:10:39 +00:00
|
|
|
}
|
2023-02-07 12:40:39 +00:00
|
|
|
|
|
|
|
getWarehouseName(warehouseFk) {
|
|
|
|
this.showIcon = false;
|
|
|
|
|
|
|
|
const filter = {
|
|
|
|
where: {id: warehouseFk}
|
|
|
|
};
|
|
|
|
this.$http.get('Warehouses/findOne', {filter})
|
|
|
|
.then(res => {
|
|
|
|
this.warehouseText = this.$t('WarehouseFk', {
|
|
|
|
warehouseName: res.data.name
|
|
|
|
});
|
|
|
|
|
|
|
|
this.showIcon = true;
|
|
|
|
});
|
|
|
|
}
|
2018-08-01 10:15:09 +00:00
|
|
|
}
|
|
|
|
|
2020-11-27 12:10:39 +00:00
|
|
|
Controller.$inject = ['$element', '$scope', '$rootScope'];
|
|
|
|
|
2020-04-25 09:50:04 +00:00
|
|
|
ngModule.vnComponent('vnItemDescriptor', {
|
2018-05-25 08:03:45 +00:00
|
|
|
template: require('./index.html'),
|
2018-08-01 10:15:09 +00:00
|
|
|
controller: Controller,
|
2018-01-25 13:14:58 +00:00
|
|
|
bindings: {
|
2020-05-26 08:37:52 +00:00
|
|
|
item: '<',
|
2020-11-27 12:10:39 +00:00
|
|
|
dated: '<',
|
2021-05-21 13:31:05 +00:00
|
|
|
cardReload: '&',
|
2023-02-06 11:24:26 +00:00
|
|
|
warehouseFk: '<'
|
2018-01-25 13:14:58 +00:00
|
|
|
}
|
|
|
|
});
|