diff --git a/ayanova/src/views/inv-purchase-order.vue b/ayanova/src/views/inv-purchase-order.vue index 4fc6aa4c..7b647357 100644 --- a/ayanova/src/views/inv-purchase-order.vue +++ b/ayanova/src/views/inv-purchase-order.vue @@ -258,7 +258,7 @@ }} - + $ayiClipboardList @@ -267,8 +267,7 @@ }} - - + $ayiParachuteBox @@ -728,7 +727,22 @@ restock title here - select items here + + + + + + + + + @@ -824,6 +867,8 @@ export default { editPoItemDialog: false, editPoItemIndex: 0, restockSelectDialog: false, + restockItems: [], + requestSelectDialog: false, selectLists: { status: [] }, @@ -1086,9 +1131,118 @@ export default { ) }; }); + }, + restockHeaderList: function() { + let headers = []; + let vm = this; + headers.push({ + text: vm.$ay.t("Part"), + align: "left", + value: "partnumber" + }); + + if (vm.obj.hasSelectableWarehouses) { + headers.push({ + text: vm.$ay.t("PartWarehouse"), + align: "left", + value: "displayWarehouse" + }); + } + + headers.push({ + text: vm.$ay.t("PartByWarehouseInventoryMinStockLevel"), + align: "right", + value: "minimumQuantity" + }); + + headers.push({ + text: vm.$ay.t("PartInventoryBalance"), + align: "right", + value: "balance" + }); + + headers.push({ + text: vm.$ay.t("PartByWarehouseInventoryQuantityOnOrder"), + align: "right", + value: "onOrderQuantity" + }); + + headers.push({ + text: vm.$ay.t("PartByWarehouseInventoryReorderQuantity"), + align: "right", + value: "requiredQuantity" + }); + + return headers; + }, + restockItemList: function() { + /** + * + * {"data":[{"partId":2,"partWarehouseId":1,"partNumber":"249986","displayWarehouse":"Default","manufacturerId":2, + * "displayManufacturer":"Ryan - Legros","wholesalerId":6,"displayWholesaler":"Emmerich and Sons","alternativeWholesalerId":9, + * "displayAlternativeWholesaler":"O'Connell - MacGyver","minimumQuantity":6.0000,"balance":4.0000,"onOrderQuantity":0.0,"requiredQuantity":2.0000}]} + */ + let vm = this; + return vm.restockItems.map((x, i) => { + return { + index: i, + partId: x.partId, + partWarehouseId: x.partWarehouseId, + partNumber: x.partNumber, + displayWarehouse: x.displayWarehouse, + + minimumQuantity: window.$gz.locale.decimalLocalized( + x.minimumQuantity, + vm.languageName + ), + balance: window.$gz.locale.decimalLocalized( + x.balance, + vm.languageName + ), + onOrderQuantity: window.$gz.locale.decimalLocalized( + x.onOrderQuantity, + vm.languageName + ), + requiredQuantity: window.$gz.locale.decimalLocalized( + x.requiredQuantity, + vm.languageName + ) + }; + }); } }, methods: { + async showRestockSelectDialog() { + let vm = this; + + let url = API_BASE_URL + "restock-by-vendor/" + vm.obj.vendorId; + window.$gz.form.deleteAllErrorBoxErrors(vm); + try { + let res = await window.$gz.api.get(url); + + if (res.error) { + vm.formState.serverError = res.error; + window.$gz.form.setErrorBoxErrors(vm); + } else { + //process add url dl token and id + if (res.data) { + vm.restockItems = res.data; + } else { + vm.restockItems = []; + } + vm.restockSelectDialog = true; + } + } catch (error) { + window.$gz.form.setFormState({ + vm: vm, + loading: false + }); + window.$gz.errorHandler.handleFormError(error, vm); + } + }, + showRequestSelectDialgo() { + requestSelectDialog = true; + }, poItemsRowClasses: function(item) { if (this.form().childRowHasError(this, "Items", item.index)) { return "font-weight-black font-italic error--text"; @@ -1587,6 +1741,10 @@ async function fetchTranslatedText(vm) { "JobCompleted", "ConfirmUpdatePartCost", "PurchaseOrderUIRestockList", + "PartByWarehouseInventoryMinStockLevel", + "PartInventoryBalance", + "PartByWarehouseInventoryQuantityOnOrder", + "PartByWarehouseInventoryReorderQuantity", "WorkOrderItemPartRequestList", "PurchaseOrderCustom1", "PurchaseOrderCustom2",