diff --git a/src/components/ClosePurchaseOrderModal.vue b/src/components/ClosePurchaseOrderModal.vue index aa84d48f..7f118f1b 100644 --- a/src/components/ClosePurchaseOrderModal.vue +++ b/src/components/ClosePurchaseOrderModal.vue @@ -94,7 +94,8 @@ export default defineComponent({ getProduct: 'product/getProduct', getPOItemAccepted: 'order/getPOItemAccepted', order: 'order/getCurrent', - productIdentificationPref: 'user/getProductIdentificationPref' + productIdentificationPref: 'user/getProductIdentificationPref', + purchaseOrders: 'order/getPurchaseOrders' }) }, props: ['isEligibileForCreatingShipment'], @@ -137,11 +138,42 @@ export default defineComponent({ orderItemSeqId: item.orderItemSeqId, statusId: "ITEM_COMPLETED" }) + return item.orderItemSeqId })) const failedItemsCount = responses.filter((response) => response.status === 'rejected').length if(failedItemsCount){ console.error('Failed to update the status of purchase order items.') } + + const completedItems = responses.filter((response) => response.status === 'fulfilled')?.map((response: any) => response.value) + + if(!completedItems.length) return; + + this.order.items.map((item: any) => { + if(completedItems.includes(item.orderItemSeqId)) { + item.orderItemStatusId = "ITEM_COMPLETED" + } + }) + this.store.dispatch("order/updateCurrentOrder", this.order) + + if(this.purchaseOrders.length) { + let purchaseOrders = JSON.parse(JSON.stringify(this.purchaseOrders)) + const currentOrder = purchaseOrders.find((purchaseOrder: any) => purchaseOrder.groupValue === this.order.orderId) + let isPOCompleted = true; + + currentOrder.doclist.docs.map((item: any) => { + if(completedItems.includes(item.orderItemSeqId)) { + item.orderItemStatusId = "ITEM_COMPLETED" + } else if(item.orderItemStatusId !== "ITEM_COMPLETED" && item.orderItemStatusId !== "ITEM_REJECTED") { + isPOCompleted = false + } + }) + + if(isPOCompleted) { + purchaseOrders = purchaseOrders.filter((purchaseOrder: any) => purchaseOrder.groupValue !== currentOrder.groupValue) + } + this.store.dispatch("order/updatePurchaseOrders", { purchaseOrders }) + } }, isEligibleToClosePOItems() { return this.order.items.some((item: any) => item.isChecked && this.isPOItemStatusPending(item)) diff --git a/src/store/modules/order/actions.ts b/src/store/modules/order/actions.ts index 513741fe..7a2b95f2 100644 --- a/src/store/modules/order/actions.ts +++ b/src/store/modules/order/actions.ts @@ -209,11 +209,20 @@ const actions: ActionTree = { } commit(types.ORDER_CURRENT_UPDATED, state.current) }, + updateCurrentOrder({ commit }, payload) { + commit(types.ORDER_CURRENT_UPDATED, payload) + }, clearPurchaseOrders({commit}){ commit(types.ORDER_PRCHS_ORDRS_UPDATED, { list: [], total: 0 }) + }, + updatePurchaseOrders({commit, state}, payload){ + commit(types.ORDER_PRCHS_ORDRS_UPDATED, { + list: payload.purchaseOrders, + total: payload.total ? payload.total : state.purchaseOrders.total + }) } }