@things-factory/worksheet-base 6.0.49 → 6.0.52
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist-server/controllers/inbound/putaway-returning-worksheet-controller.js +1 -3
- package/dist-server/controllers/inbound/putaway-returning-worksheet-controller.js.map +1 -1
- package/dist-server/controllers/inbound/unloading-returning-worksheet-controller.js +5 -1
- package/dist-server/controllers/inbound/unloading-returning-worksheet-controller.js.map +1 -1
- package/dist-server/controllers/inspect/cycle-count-worksheet-controller.js +1 -1
- package/dist-server/controllers/inspect/cycle-count-worksheet-controller.js.map +1 -1
- package/dist-server/controllers/outbound/loading-worksheet-controller.js +3 -3
- package/dist-server/controllers/outbound/loading-worksheet-controller.js.map +1 -1
- package/dist-server/controllers/outbound/returning-worksheet-controller.js +1 -1
- package/dist-server/controllers/outbound/returning-worksheet-controller.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/packing-worksheet.js +1 -1
- package/dist-server/graphql/resolvers/worksheet/packing-worksheet.js.map +1 -1
- package/dist-server/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -2
- package/server/controllers/inbound/putaway-returning-worksheet-controller.ts +5 -3
- package/server/controllers/inbound/unloading-returning-worksheet-controller.ts +5 -1
- package/server/controllers/inspect/cycle-count-worksheet-controller.ts +1 -1
- package/server/controllers/outbound/loading-worksheet-controller.ts +3 -3
- package/server/controllers/outbound/returning-worksheet-controller.ts +1 -1
- package/server/graphql/resolvers/worksheet/packing-worksheet.ts +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loading-worksheet-controller.js","sourceRoot":"","sources":["../../../server/controllers/outbound/loading-worksheet-controller.ts"],"names":[],"mappings":"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","sourcesContent":["import { Equal, Not, In } from 'typeorm'\n\nimport { Bizplace } from '@things-factory/biz-base'\nimport {\n DeliveryOrder,\n ORDER_INVENTORY_STATUS,\n ORDER_STATUS,\n ORDER_TYPES,\n OrderInventory,\n OrderNoGenerator,\n ReleaseGood,\n OrderToteItem,\n OrderTote\n} from '@things-factory/sales-base'\nimport { Inventory, INVENTORY_TRANSACTION_TYPE, Tote, TOTE_STATUS } from '@things-factory/warehouse-base'\n\nimport { WORKSHEET_STATUS, WORKSHEET_TYPE } from '../../constants'\nimport { Worksheet, WorksheetDetail } from '../../entities'\nimport { generateInventoryHistory } from '../../utils'\nimport { VasWorksheetController } from '../vas/vas-worksheet-controller'\n\nexport class LoadingWorksheetController extends VasWorksheetController {\n async generateLoadingWorksheet(\n releaseGoodNo: string,\n targetInventories: Partial<OrderInventory>[]\n ): Promise<Worksheet> {\n const releaseGood: ReleaseGood = await this.findRefOrder(\n ReleaseGood,\n { domain: this.domain, name: releaseGoodNo },\n ['bizplace']\n )\n return await this.generateWorksheet(\n WORKSHEET_TYPE.LOADING,\n releaseGood,\n targetInventories,\n ORDER_STATUS.LOADING,\n ORDER_INVENTORY_STATUS.LOADING\n )\n }\n\n async updateLoadingWorksheet(\n releaseGoodNo: string,\n targetInventories: Partial<OrderInventory>[],\n worksheet: Worksheet\n ): Promise<Worksheet> {\n const releaseGood: ReleaseGood = await this.findRefOrder(\n ReleaseGood,\n { domain: this.domain, name: releaseGoodNo },\n ['bizplace']\n )\n return await this.updateWorksheet(\n WORKSHEET_TYPE.LOADING,\n releaseGood,\n worksheet,\n targetInventories,\n ORDER_STATUS.LOADING,\n ORDER_INVENTORY_STATUS.LOADING\n )\n }\n\n async activateLoading(worksheetNo: string, loadingWorksheetDetails: Partial<WorksheetDetail>[]): Promise<Worksheet> {\n const worksheet: Worksheet = await this.findActivatableWorksheet(worksheetNo, WORKSHEET_TYPE.LOADING, [\n 'releaseGood',\n 'worksheetDetails',\n 'worksheetDetails.targetInventory'\n ])\n\n let releaseGood: ReleaseGood = worksheet.releaseGood\n const nonFinishedVasCnt: number = await this.trxMgr.getRepository(Worksheet).count({\n where: {\n domain: { id: this.domain.id },\n releaseGood: { id: releaseGood.id },\n type: WORKSHEET_TYPE.VAS,\n status: Not(Equal(WORKSHEET_STATUS.DONE))\n }\n })\n if (nonFinishedVasCnt) return\n\n const worksheetDetails: WorksheetDetail[] = worksheet.worksheetDetails\n let targetInventories: OrderInventory[] = worksheetDetails.map((wsd: WorksheetDetail) => wsd.targetInventory)\n\n targetInventories = targetInventories\n .filter(targetInventory => targetInventory.status == ORDER_INVENTORY_STATUS.PICKED)\n .map((targetInventory: OrderInventory) => {\n targetInventory.status = ORDER_INVENTORY_STATUS.LOADING\n targetInventory.updater = this.user\n return targetInventory\n })\n\n releaseGood.status = ORDER_STATUS.LOADING\n releaseGood.updater = this.user\n await this.updateRefOrder(releaseGood)\n\n if (targetInventories.length > 0) await this.updateOrderTargets(targetInventories)\n return await this.activateWorksheet(worksheet, worksheetDetails, loadingWorksheetDetails)\n }\n\n async loading(\n releaseGoodNo: string,\n worksheetDetails: Partial<WorksheetDetail & { loadedQty: number } & { toteName: string }>[]\n ): Promise<any> {\n const releaseGood: ReleaseGood = await this.findRefOrder(\n ReleaseGood,\n { domain: this.domain, name: releaseGoodNo },\n ['bizplace']\n )\n const bizplace: Bizplace = releaseGood.bizplace\n\n for (let i = 0; i < worksheetDetails.length; i++) {\n const loadedQty: number = worksheetDetails[i].loadedQty\n const toteName: string = worksheetDetails[i].toteName\n let worksheetDetail = await this.findExecutableWorksheetDetailByName(\n worksheetDetails[i].name,\n WORKSHEET_TYPE.LOADING,\n ['worksheet', 'targetInventory', 'targetInventory.inventory', 'targetInventory.product']\n )\n\n const worksheet: Worksheet = worksheetDetail.worksheet\n let targetInventory: OrderInventory = worksheetDetail.targetInventory\n const pickedQty: number = targetInventory.releaseQty\n let inventory: Inventory = targetInventory.inventory\n\n targetInventory.loadedAt = new Date()\n targetInventory.loadedByUser = this.user\n\n let loadedBy: string[] = targetInventory.loadedBy ? targetInventory.loadedBy.split(',') : []\n if (!loadedBy.find(x => x == this.user.name)) {\n loadedBy.push(this.user.name)\n targetInventory.loadedBy = loadedBy.join(',')\n }\n\n if (loadedQty > pickedQty) {\n throw new Error(this.ERROR_MSG.VALIDITY.CANT_PROCEED_STEP_BY('load', `loaded quantity can't exceed picked qty`))\n } else if (loadedQty == pickedQty) {\n // Change status of current worksheet detail\n worksheetDetail.status = WORKSHEET_STATUS.DONE\n worksheetDetail.updater = this.user\n await this.trxMgr.getRepository(WorksheetDetail).save(worksheetDetail)\n\n // Change status of order inventory\n targetInventory.status = ORDER_INVENTORY_STATUS.LOADED\n targetInventory.updater = this.user\n await this.updateOrderTargets([targetInventory])\n } else if (loadedQty < pickedQty) {\n const remainQty: number = pickedQty - loadedQty\n const loadedUomValue: number = parseFloat(\n ((targetInventory.releaseUomValue / pickedQty) * loadedQty).toFixed(2)\n )\n const remainUomValue: number = parseFloat((targetInventory.releaseUomValue - loadedUomValue).toFixed(2))\n\n targetInventory.status = ORDER_INVENTORY_STATUS.LOADED\n targetInventory.releaseQty = loadedQty\n targetInventory.releaseUomValue = loadedUomValue\n targetInventory.updater = this.user\n await this.updateOrderTargets([targetInventory])\n\n worksheetDetail.status = WORKSHEET_STATUS.DONE\n worksheetDetail.updater = this.user\n worksheetDetail = await this.trxMgr.getRepository(WorksheetDetail).save(worksheetDetail)\n\n // Create order inventory for remaining item\n let newTargetInventory: OrderInventory = new OrderInventory()\n newTargetInventory.domain = this.domain\n newTargetInventory.bizplace = bizplace\n newTargetInventory.name = OrderNoGenerator.orderInventory()\n newTargetInventory.releaseGood = releaseGood\n newTargetInventory.inventory = inventory\n newTargetInventory.type = ORDER_TYPES.RELEASE_OF_GOODS\n newTargetInventory.status = ORDER_INVENTORY_STATUS.LOADING\n newTargetInventory.releaseQty = remainQty\n newTargetInventory.releaseUomValue = remainUomValue\n newTargetInventory.product = targetInventory.product\n newTargetInventory.packingType = targetInventory.packingType\n newTargetInventory.batchId = targetInventory.batchId\n newTargetInventory.creator = this.user\n newTargetInventory.updater = this.user\n newTargetInventory = await this.trxMgr.getRepository(OrderInventory).save(newTargetInventory)\n\n if (toteName) {\n let foundOrderTote = await this.trxMgr\n .getRepository(OrderTote)\n .findOne({ where: { name: toteName, releaseGood: { id: releaseGood.id } } })\n\n let foundOrderToteItems = await this.trxMgr\n .getRepository(OrderToteItem)\n .find({ where: { orderInventory: { id: targetInventory.id } } })\n\n let foundOrderToteItemIds = foundOrderToteItems.map((itm: OrderToteItem) => itm.id)\n\n await this.trxMgr\n .getRepository(OrderToteItem)\n .update({ id: In(foundOrderToteItemIds) }, { orderInventory: newTargetInventory })\n\n let foundOrderToteItem: OrderToteItem = await this.trxMgr.getRepository(OrderToteItem).findOne({\n where: { orderInventory: newTargetInventory.id, orderTote: { id: foundOrderTote.id }, qty: loadedQty }\n })\n\n await this.trxMgr\n .getRepository(OrderToteItem)\n .update({ id: foundOrderToteItem.id }, { orderInventory: targetInventory.id })\n }\n\n let newWorksheetDetail: any = await this.createWorksheetDetails(\n worksheet,\n WORKSHEET_TYPE.LOADING,\n [newTargetInventory],\n {\n status: WORKSHEET_STATUS.EXECUTING\n }\n )\n\n let worksheetDetailName = worksheetDetails[i].name\n worksheetDetails = worksheetDetails.map(record => {\n if (record.name == worksheetDetailName && !record?.targetInventory) {\n return {\n ...record,\n name: newWorksheetDetail[0].name\n }\n } else {\n return record\n }\n })\n\n worksheetDetails[i].name = worksheetDetailName\n }\n\n worksheetDetails[i].targetInventory = targetInventory\n\n await generateInventoryHistory(\n inventory,\n releaseGood,\n INVENTORY_TRANSACTION_TYPE.LOADING,\n 0,\n 0,\n this.user,\n this.trxMgr\n )\n }\n\n return worksheetDetails\n }\n\n async undoLoading(deliveryOrder: Partial<DeliveryOrder>, palletIds: string[]): Promise<void> {\n deliveryOrder = await this.findRefOrder(DeliveryOrder, { id: deliveryOrder.id, domain: this.domain }, [\n 'releaseGood'\n ])\n\n const releaseGood: ReleaseGood = deliveryOrder.releaseGood\n\n const targetInventories: OrderInventory[] = await this.trxMgr.getRepository(OrderInventory).find({\n where: {\n domain: { id: this.domain.id },\n deliveryOrder: { id: deliveryOrder.id },\n status: ORDER_INVENTORY_STATUS.LOADED\n },\n relations: ['inventory']\n })\n // Filter out inventories which is included palletIds list.\n let undoTargetOrderInventories: OrderInventory[] = targetInventories.filter(\n (targetInventory: OrderInventory) =>\n targetInventory.status === ORDER_INVENTORY_STATUS.LOADED &&\n palletIds.includes(targetInventory.inventory.palletId)\n )\n\n // If there was remained items => Merge into previous order inventories\n for (let undoTargetOrderInventory of undoTargetOrderInventories) {\n undoTargetOrderInventory.deliveryOrder = null\n undoTargetOrderInventory.updater = this.user\n\n undoTargetOrderInventory.loadedAt = null\n undoTargetOrderInventory.loadedByUser = null\n undoTargetOrderInventory.loadedBy = null\n\n let prevTargetInventory: OrderInventory = await this.trxMgr.getRepository(OrderInventory).findOne({\n where: {\n domain: { id: this.domain.id },\n id: Not(Equal(undoTargetOrderInventory.id)),\n releaseGood: { id: releaseGood.id },\n status: ORDER_INVENTORY_STATUS.LOADING,\n inventory: { id: undoTargetOrderInventory.inventory.id }\n }\n })\n\n let undoOrderToteItem: OrderToteItem = await this.trxMgr\n .getRepository(OrderToteItem)\n .findOne({ where: { orderInventory: { id: undoTargetOrderInventory.id } } })\n\n if (prevTargetInventory) {\n // If there's prev target inventory\n // Merge qty and uomValue into prev target inventory\n prevTargetInventory.releaseQty += undoTargetOrderInventory.releaseQty\n prevTargetInventory.releaseUomValue += undoTargetOrderInventory.releaseUomValue\n prevTargetInventory.updater = this.user\n await this.updateOrderTargets([prevTargetInventory])\n\n //Update order tote item if any\n if (undoOrderToteItem) {\n undoOrderToteItem.orderInventoryId = prevTargetInventory.id\n undoOrderToteItem.orderInventory = prevTargetInventory\n await this.trxMgr.getRepository(OrderToteItem).save(undoOrderToteItem)\n }\n\n // Terminate undo target order inventory\n undoTargetOrderInventory.status = ORDER_INVENTORY_STATUS.TERMINATED\n await this.updateOrderTargets([undoTargetOrderInventory])\n\n // Delete worksheet detail\n await this.trxMgr.getRepository(WorksheetDetail).delete({\n targetInventory: undoTargetOrderInventory,\n type: WORKSHEET_TYPE.LOADING,\n status: WORKSHEET_STATUS.DONE\n })\n } else {\n // Update undo target inventory\n undoTargetOrderInventory.status = ORDER_INVENTORY_STATUS.LOADING\n await this.updateOrderTargets([undoTargetOrderInventory])\n\n // Update worksheet detail to be able to load\n let undoTargetWorksheetDetail: WorksheetDetail = await this.findWorksheetDetail({\n targetInventory: undoTargetOrderInventory,\n type: WORKSHEET_TYPE.LOADING,\n status: WORKSHEET_STATUS.DONE\n })\n undoTargetWorksheetDetail.status = WORKSHEET_STATUS.EXECUTING\n undoTargetWorksheetDetail.updater = this.user\n await this.trxMgr.getRepository(WorksheetDetail).save(undoTargetWorksheetDetail)\n }\n\n // Create inventory history\n let inventory: Inventory = undoTargetOrderInventory.inventory\n await generateInventoryHistory(inventory, releaseGood, INVENTORY_TRANSACTION_TYPE.UNDO_LOADING, 0, 0, this.user)\n }\n\n // Compare total inventories length and undo target inventories length\n // to check whether there's more order inventories\n // If thres' no more remove delivery order\n if (targetInventories.length === undoTargetOrderInventories.length) {\n await this.trxMgr.getRepository(DeliveryOrder).delete(deliveryOrder.id)\n }\n }\n\n async completeLoading(releaseGoodNo: string): Promise<Worksheet> {\n const releaseGood: ReleaseGood = await this.findRefOrder(ReleaseGood, {\n domain: this.domain,\n name: releaseGoodNo,\n status: ORDER_STATUS.LOADING\n })\n\n const orderToteIds = await (\n await this.trxMgr\n .getRepository(OrderTote)\n .find({ where: { releaseGood: { id: releaseGood.id } }, relations: ['tote'] })\n ).map((record: OrderTote) => record?.toteId)\n\n await this.trxMgr.getRepository(Tote).update({ id: In(orderToteIds) }, { status: TOTE_STATUS.DISPATCHED })\n\n const worksheet: Worksheet = await this.findWorksheetByRefOrder(releaseGood, WORKSHEET_TYPE.LOADING, [\n 'worksheetDetails',\n 'worksheetDetails.targetInventory'\n ])\n this.checkRecordValidity(worksheet, { status: WORKSHEET_STATUS.EXECUTING })\n\n return await this.completeWorksheet(worksheet, ORDER_STATUS.DONE)\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"loading-worksheet-controller.js","sourceRoot":"","sources":["../../../server/controllers/outbound/loading-worksheet-controller.ts"],"names":[],"mappings":"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","sourcesContent":["import { Equal, Not, In } from 'typeorm'\n\nimport { Bizplace } from '@things-factory/biz-base'\nimport {\n DeliveryOrder,\n ORDER_INVENTORY_STATUS,\n ORDER_STATUS,\n ORDER_TYPES,\n OrderInventory,\n OrderNoGenerator,\n ReleaseGood,\n OrderToteItem,\n OrderTote\n} from '@things-factory/sales-base'\nimport { Inventory, INVENTORY_TRANSACTION_TYPE, Tote, TOTE_STATUS } from '@things-factory/warehouse-base'\n\nimport { WORKSHEET_STATUS, WORKSHEET_TYPE } from '../../constants'\nimport { Worksheet, WorksheetDetail } from '../../entities'\nimport { generateInventoryHistory } from '../../utils'\nimport { VasWorksheetController } from '../vas/vas-worksheet-controller'\n\nexport class LoadingWorksheetController extends VasWorksheetController {\n async generateLoadingWorksheet(\n releaseGoodNo: string,\n targetInventories: Partial<OrderInventory>[]\n ): Promise<Worksheet> {\n const releaseGood: ReleaseGood = await this.findRefOrder(\n ReleaseGood,\n { domain: { id: this.domain.id }, name: releaseGoodNo },\n ['bizplace']\n )\n return await this.generateWorksheet(\n WORKSHEET_TYPE.LOADING,\n releaseGood,\n targetInventories,\n ORDER_STATUS.LOADING,\n ORDER_INVENTORY_STATUS.LOADING\n )\n }\n\n async updateLoadingWorksheet(\n releaseGoodNo: string,\n targetInventories: Partial<OrderInventory>[],\n worksheet: Worksheet\n ): Promise<Worksheet> {\n const releaseGood: ReleaseGood = await this.findRefOrder(\n ReleaseGood,\n { domain: { id: this.domain.id }, name: releaseGoodNo },\n ['bizplace']\n )\n return await this.updateWorksheet(\n WORKSHEET_TYPE.LOADING,\n releaseGood,\n worksheet,\n targetInventories,\n ORDER_STATUS.LOADING,\n ORDER_INVENTORY_STATUS.LOADING\n )\n }\n\n async activateLoading(worksheetNo: string, loadingWorksheetDetails: Partial<WorksheetDetail>[]): Promise<Worksheet> {\n const worksheet: Worksheet = await this.findActivatableWorksheet(worksheetNo, WORKSHEET_TYPE.LOADING, [\n 'releaseGood',\n 'worksheetDetails',\n 'worksheetDetails.targetInventory'\n ])\n\n let releaseGood: ReleaseGood = worksheet.releaseGood\n const nonFinishedVasCnt: number = await this.trxMgr.getRepository(Worksheet).count({\n where: {\n domain: { id: this.domain.id },\n releaseGood: { id: releaseGood.id },\n type: WORKSHEET_TYPE.VAS,\n status: Not(Equal(WORKSHEET_STATUS.DONE))\n }\n })\n if (nonFinishedVasCnt) return\n\n const worksheetDetails: WorksheetDetail[] = worksheet.worksheetDetails\n let targetInventories: OrderInventory[] = worksheetDetails.map((wsd: WorksheetDetail) => wsd.targetInventory)\n\n targetInventories = targetInventories\n .filter(targetInventory => targetInventory.status == ORDER_INVENTORY_STATUS.PICKED)\n .map((targetInventory: OrderInventory) => {\n targetInventory.status = ORDER_INVENTORY_STATUS.LOADING\n targetInventory.updater = this.user\n return targetInventory\n })\n\n releaseGood.status = ORDER_STATUS.LOADING\n releaseGood.updater = this.user\n await this.updateRefOrder(releaseGood)\n\n if (targetInventories.length > 0) await this.updateOrderTargets(targetInventories)\n return await this.activateWorksheet(worksheet, worksheetDetails, loadingWorksheetDetails)\n }\n\n async loading(\n releaseGoodNo: string,\n worksheetDetails: Partial<WorksheetDetail & { loadedQty: number } & { toteName: string }>[]\n ): Promise<any> {\n const releaseGood: ReleaseGood = await this.findRefOrder(\n ReleaseGood,\n { domain: { id: this.domain.id }, name: releaseGoodNo },\n ['bizplace']\n )\n const bizplace: Bizplace = releaseGood.bizplace\n\n for (let i = 0; i < worksheetDetails.length; i++) {\n const loadedQty: number = worksheetDetails[i].loadedQty\n const toteName: string = worksheetDetails[i].toteName\n let worksheetDetail = await this.findExecutableWorksheetDetailByName(\n worksheetDetails[i].name,\n WORKSHEET_TYPE.LOADING,\n ['worksheet', 'targetInventory', 'targetInventory.inventory', 'targetInventory.product']\n )\n\n const worksheet: Worksheet = worksheetDetail.worksheet\n let targetInventory: OrderInventory = worksheetDetail.targetInventory\n const pickedQty: number = targetInventory.releaseQty\n let inventory: Inventory = targetInventory.inventory\n\n targetInventory.loadedAt = new Date()\n targetInventory.loadedByUser = this.user\n\n let loadedBy: string[] = targetInventory.loadedBy ? targetInventory.loadedBy.split(',') : []\n if (!loadedBy.find(x => x == this.user.name)) {\n loadedBy.push(this.user.name)\n targetInventory.loadedBy = loadedBy.join(',')\n }\n\n if (loadedQty > pickedQty) {\n throw new Error(this.ERROR_MSG.VALIDITY.CANT_PROCEED_STEP_BY('load', `loaded quantity can't exceed picked qty`))\n } else if (loadedQty == pickedQty) {\n // Change status of current worksheet detail\n worksheetDetail.status = WORKSHEET_STATUS.DONE\n worksheetDetail.updater = this.user\n await this.trxMgr.getRepository(WorksheetDetail).save(worksheetDetail)\n\n // Change status of order inventory\n targetInventory.status = ORDER_INVENTORY_STATUS.LOADED\n targetInventory.updater = this.user\n await this.updateOrderTargets([targetInventory])\n } else if (loadedQty < pickedQty) {\n const remainQty: number = pickedQty - loadedQty\n const loadedUomValue: number = parseFloat(\n ((targetInventory.releaseUomValue / pickedQty) * loadedQty).toFixed(2)\n )\n const remainUomValue: number = parseFloat((targetInventory.releaseUomValue - loadedUomValue).toFixed(2))\n\n targetInventory.status = ORDER_INVENTORY_STATUS.LOADED\n targetInventory.releaseQty = loadedQty\n targetInventory.releaseUomValue = loadedUomValue\n targetInventory.updater = this.user\n await this.updateOrderTargets([targetInventory])\n\n worksheetDetail.status = WORKSHEET_STATUS.DONE\n worksheetDetail.updater = this.user\n worksheetDetail = await this.trxMgr.getRepository(WorksheetDetail).save(worksheetDetail)\n\n // Create order inventory for remaining item\n let newTargetInventory: OrderInventory = new OrderInventory()\n newTargetInventory.domain = this.domain\n newTargetInventory.bizplace = bizplace\n newTargetInventory.name = OrderNoGenerator.orderInventory()\n newTargetInventory.releaseGood = releaseGood\n newTargetInventory.inventory = inventory\n newTargetInventory.type = ORDER_TYPES.RELEASE_OF_GOODS\n newTargetInventory.status = ORDER_INVENTORY_STATUS.LOADING\n newTargetInventory.releaseQty = remainQty\n newTargetInventory.releaseUomValue = remainUomValue\n newTargetInventory.product = targetInventory.product\n newTargetInventory.packingType = targetInventory.packingType\n newTargetInventory.batchId = targetInventory.batchId\n newTargetInventory.creator = this.user\n newTargetInventory.updater = this.user\n newTargetInventory = await this.trxMgr.getRepository(OrderInventory).save(newTargetInventory)\n\n if (toteName) {\n let foundOrderTote = await this.trxMgr\n .getRepository(OrderTote)\n .findOne({ where: { name: toteName, releaseGood: { id: releaseGood.id } } })\n\n let foundOrderToteItems = await this.trxMgr\n .getRepository(OrderToteItem)\n .find({ where: { orderInventory: { id: targetInventory.id } } })\n\n let foundOrderToteItemIds = foundOrderToteItems.map((itm: OrderToteItem) => itm.id)\n\n await this.trxMgr\n .getRepository(OrderToteItem)\n .update({ id: In(foundOrderToteItemIds) }, { orderInventory: newTargetInventory })\n\n let foundOrderToteItem: OrderToteItem = await this.trxMgr.getRepository(OrderToteItem).findOne({\n where: { orderInventory: newTargetInventory.id, orderTote: { id: foundOrderTote.id }, qty: loadedQty }\n })\n\n await this.trxMgr\n .getRepository(OrderToteItem)\n .update({ id: foundOrderToteItem.id }, { orderInventory: targetInventory.id })\n }\n\n let newWorksheetDetail: any = await this.createWorksheetDetails(\n worksheet,\n WORKSHEET_TYPE.LOADING,\n [newTargetInventory],\n {\n status: WORKSHEET_STATUS.EXECUTING\n }\n )\n\n let worksheetDetailName = worksheetDetails[i].name\n worksheetDetails = worksheetDetails.map(record => {\n if (record.name == worksheetDetailName && !record?.targetInventory) {\n return {\n ...record,\n name: newWorksheetDetail[0].name\n }\n } else {\n return record\n }\n })\n\n worksheetDetails[i].name = worksheetDetailName\n }\n\n worksheetDetails[i].targetInventory = targetInventory\n\n await generateInventoryHistory(\n inventory,\n releaseGood,\n INVENTORY_TRANSACTION_TYPE.LOADING,\n 0,\n 0,\n this.user,\n this.trxMgr\n )\n }\n\n return worksheetDetails\n }\n\n async undoLoading(deliveryOrder: Partial<DeliveryOrder>, palletIds: string[]): Promise<void> {\n deliveryOrder = await this.findRefOrder(DeliveryOrder, { id: deliveryOrder.id, domain: this.domain }, [\n 'releaseGood'\n ])\n\n const releaseGood: ReleaseGood = deliveryOrder.releaseGood\n\n const targetInventories: OrderInventory[] = await this.trxMgr.getRepository(OrderInventory).find({\n where: {\n domain: { id: this.domain.id },\n deliveryOrder: { id: deliveryOrder.id },\n status: ORDER_INVENTORY_STATUS.LOADED\n },\n relations: ['inventory']\n })\n // Filter out inventories which is included palletIds list.\n let undoTargetOrderInventories: OrderInventory[] = targetInventories.filter(\n (targetInventory: OrderInventory) =>\n targetInventory.status === ORDER_INVENTORY_STATUS.LOADED &&\n palletIds.includes(targetInventory.inventory.palletId)\n )\n\n // If there was remained items => Merge into previous order inventories\n for (let undoTargetOrderInventory of undoTargetOrderInventories) {\n undoTargetOrderInventory.deliveryOrder = null\n undoTargetOrderInventory.updater = this.user\n\n undoTargetOrderInventory.loadedAt = null\n undoTargetOrderInventory.loadedByUser = null\n undoTargetOrderInventory.loadedBy = null\n\n let prevTargetInventory: OrderInventory = await this.trxMgr.getRepository(OrderInventory).findOne({\n where: {\n domain: { id: this.domain.id },\n id: Not(Equal(undoTargetOrderInventory.id)),\n releaseGood: { id: releaseGood.id },\n status: ORDER_INVENTORY_STATUS.LOADING,\n inventory: { id: undoTargetOrderInventory.inventory.id }\n }\n })\n\n let undoOrderToteItem: OrderToteItem = await this.trxMgr\n .getRepository(OrderToteItem)\n .findOne({ where: { orderInventory: { id: undoTargetOrderInventory.id } } })\n\n if (prevTargetInventory) {\n // If there's prev target inventory\n // Merge qty and uomValue into prev target inventory\n prevTargetInventory.releaseQty += undoTargetOrderInventory.releaseQty\n prevTargetInventory.releaseUomValue += undoTargetOrderInventory.releaseUomValue\n prevTargetInventory.updater = this.user\n await this.updateOrderTargets([prevTargetInventory])\n\n //Update order tote item if any\n if (undoOrderToteItem) {\n undoOrderToteItem.orderInventoryId = prevTargetInventory.id\n undoOrderToteItem.orderInventory = prevTargetInventory\n await this.trxMgr.getRepository(OrderToteItem).save(undoOrderToteItem)\n }\n\n // Terminate undo target order inventory\n undoTargetOrderInventory.status = ORDER_INVENTORY_STATUS.TERMINATED\n await this.updateOrderTargets([undoTargetOrderInventory])\n\n // Delete worksheet detail\n await this.trxMgr.getRepository(WorksheetDetail).delete({\n targetInventory: undoTargetOrderInventory,\n type: WORKSHEET_TYPE.LOADING,\n status: WORKSHEET_STATUS.DONE\n })\n } else {\n // Update undo target inventory\n undoTargetOrderInventory.status = ORDER_INVENTORY_STATUS.LOADING\n await this.updateOrderTargets([undoTargetOrderInventory])\n\n // Update worksheet detail to be able to load\n let undoTargetWorksheetDetail: WorksheetDetail = await this.findWorksheetDetail({\n targetInventory: undoTargetOrderInventory,\n type: WORKSHEET_TYPE.LOADING,\n status: WORKSHEET_STATUS.DONE\n })\n undoTargetWorksheetDetail.status = WORKSHEET_STATUS.EXECUTING\n undoTargetWorksheetDetail.updater = this.user\n await this.trxMgr.getRepository(WorksheetDetail).save(undoTargetWorksheetDetail)\n }\n\n // Create inventory history\n let inventory: Inventory = undoTargetOrderInventory.inventory\n await generateInventoryHistory(inventory, releaseGood, INVENTORY_TRANSACTION_TYPE.UNDO_LOADING, 0, 0, this.user)\n }\n\n // Compare total inventories length and undo target inventories length\n // to check whether there's more order inventories\n // If thres' no more remove delivery order\n if (targetInventories.length === undoTargetOrderInventories.length) {\n await this.trxMgr.getRepository(DeliveryOrder).delete(deliveryOrder.id)\n }\n }\n\n async completeLoading(releaseGoodNo: string): Promise<Worksheet> {\n const releaseGood: ReleaseGood = await this.findRefOrder(ReleaseGood, {\n domain: this.domain,\n name: releaseGoodNo,\n status: ORDER_STATUS.LOADING\n })\n\n const orderToteIds = await (\n await this.trxMgr\n .getRepository(OrderTote)\n .find({ where: { releaseGood: { id: releaseGood.id } }, relations: ['tote'] })\n ).map((record: OrderTote) => record?.toteId)\n\n await this.trxMgr.getRepository(Tote).update({ id: In(orderToteIds) }, { status: TOTE_STATUS.DISPATCHED })\n\n const worksheet: Worksheet = await this.findWorksheetByRefOrder(releaseGood, WORKSHEET_TYPE.LOADING, [\n 'worksheetDetails',\n 'worksheetDetails.targetInventory'\n ])\n this.checkRecordValidity(worksheet, { status: WORKSHEET_STATUS.EXECUTING })\n\n return await this.completeWorksheet(worksheet, ORDER_STATUS.DONE)\n }\n}\n"]}
|
|
@@ -9,7 +9,7 @@ const entities_1 = require("../../entities");
|
|
|
9
9
|
const vas_worksheet_controller_1 = require("../vas/vas-worksheet-controller");
|
|
10
10
|
class ReturningWorksheetController extends vas_worksheet_controller_1.VasWorksheetController {
|
|
11
11
|
async generateReturningWorksheet(releaseGoodNo, targetInventories) {
|
|
12
|
-
const releaseGood = await this.findRefOrder(sales_base_1.ReleaseGood, { domain: this.domain, name: releaseGoodNo }, ['bizplace']);
|
|
12
|
+
const releaseGood = await this.findRefOrder(sales_base_1.ReleaseGood, { domain: { id: this.domain.id }, name: releaseGoodNo }, ['bizplace']);
|
|
13
13
|
return await this.generateWorksheet(constants_1.WORKSHEET_TYPE.WAREHOUSE_RETURN, releaseGood, targetInventories, sales_base_1.ORDER_STATUS.PARTIAL_RETURN, sales_base_1.ORDER_INVENTORY_STATUS.RETURNING);
|
|
14
14
|
}
|
|
15
15
|
async activateReturning(worksheetNo, returningWorksheetDetails) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"returning-worksheet-controller.js","sourceRoot":"","sources":["../../../server/controllers/outbound/returning-worksheet-controller.ts"],"names":[],"mappings":"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","sourcesContent":["import { OrderInventory, ORDER_INVENTORY_STATUS, ORDER_STATUS, ReleaseGood } from '@things-factory/sales-base'\nimport {\n Inventory,\n Warehouse,\n INVENTORY_STATUS,\n INVENTORY_TRANSACTION_TYPE,\n LOCATION_TYPE,\n Location\n} from '@things-factory/warehouse-base'\nimport { In } from 'typeorm'\nimport { WORKSHEET_STATUS, WORKSHEET_TYPE } from '../../constants'\nimport { Worksheet, WorksheetDetail } from '../../entities'\nimport { VasWorksheetController } from '../vas/vas-worksheet-controller'\n\nexport class ReturningWorksheetController extends VasWorksheetController {\n async generateReturningWorksheet(\n releaseGoodNo: string,\n targetInventories: Partial<OrderInventory>[]\n ): Promise<Worksheet> {\n const releaseGood: ReleaseGood = await this.findRefOrder(\n ReleaseGood,\n { domain: this.domain, name: releaseGoodNo },\n ['bizplace']\n )\n return await this.generateWorksheet(\n WORKSHEET_TYPE.WAREHOUSE_RETURN,\n releaseGood,\n targetInventories,\n ORDER_STATUS.PARTIAL_RETURN,\n ORDER_INVENTORY_STATUS.RETURNING\n )\n }\n\n async activateReturning(\n worksheetNo: string,\n returningWorksheetDetails: Partial<WorksheetDetail>[]\n ): Promise<Worksheet> {\n const worksheet: Worksheet = await this.findActivatableWorksheet(worksheetNo, WORKSHEET_TYPE.WAREHOUSE_RETURN, [\n 'bizplace',\n 'releaseGood',\n 'worksheetDetails',\n 'worksheetDetails.targetInventory'\n ])\n\n const worksheetDetails: WorksheetDetail[] = worksheet.worksheetDetails\n const targetInventories: OrderInventory[] = worksheetDetails.map((wsd: WorksheetDetail) => {\n let targetInventory: OrderInventory = wsd.targetInventory\n targetInventory.status = ORDER_INVENTORY_STATUS.RETURNING\n targetInventory.updater = this.user\n return targetInventory\n })\n await this.updateOrderTargets(targetInventories)\n return await this.activateWorksheet(worksheet, worksheetDetails, returningWorksheetDetails)\n }\n\n async returning(\n worksheetDetailName: [string],\n palletId: string,\n cartonId: string,\n toLocation: string\n ): Promise<void> {\n if (cartonId) {\n await this.warehouseReturnPutawayCarton(worksheetDetailName, cartonId, toLocation)\n } else {\n await this.warehouseReturnPutawayPallet(worksheetDetailName[0], palletId, toLocation)\n }\n }\n\n async warehouseReturnPutawayPallet(\n worksheetDetailName: string,\n palletId: string,\n toLocationName: string\n ): Promise<void> {\n let worksheetDetail: WorksheetDetail = await this.findExecutableWorksheetDetailByName(\n worksheetDetailName,\n WORKSHEET_TYPE.WAREHOUSE_RETURN,\n [\n 'worksheet',\n 'worksheet.releaseGood',\n 'targetInventory',\n 'targetInventory.inventory',\n 'targetInventory.inventory.location'\n ]\n )\n\n const worksheet: Worksheet = worksheetDetail.worksheet\n const releaseGood: ReleaseGood = worksheet.releaseGood\n let targetInventory: OrderInventory = worksheetDetail.targetInventory\n let inventory: Inventory = targetInventory.inventory\n let location: Location = inventory.location\n\n const originLocation: Location = inventory.location\n const originPalletId: string = inventory.palletId\n\n const toLocation: Location = await this.trxMgr.getRepository(Location).findOne({\n where: { domain: { id: this.domain.id }, name: toLocationName },\n relations: ['warehouse']\n })\n\n if (worksheet.type === 'WAREHOUSE_RETURN' && releaseGood.recall) {\n if (\n ![LOCATION_TYPE.QUARANTINE, LOCATION_TYPE.RESERVE].some(l => {\n return l === toLocation.type\n })\n ) {\n throw new Error('Location should be assigned only to Quarantine or Reserve Zone')\n }\n }\n\n if (!toLocation) throw new Error(this.ERROR_MSG.FIND.NO_RESULT(toLocationName))\n\n const isPalletDiff: boolean = originPalletId !== palletId\n if (isPalletDiff) {\n throw new Error(this.ERROR_MSG.VALIDITY.CANT_PROCEED_STEP_BY('return', 'pallet ID is not matched'))\n }\n\n inventory.qty += targetInventory.releaseQty\n inventory.uomValue += targetInventory.releaseUomValue\n inventory.status = INVENTORY_STATUS.STORED\n\n const isLocationChanged: boolean = originLocation.id !== toLocation.id\n if (isLocationChanged) {\n inventory.location = toLocation\n inventory.warehouse = toLocation.warehouse\n inventory.zone = toLocation.zone\n }\n\n await this.transactionInventory(\n inventory,\n releaseGood,\n targetInventory.releaseQty,\n targetInventory.releaseUomValue,\n INVENTORY_TRANSACTION_TYPE.RETURN\n )\n\n // update status of order inventory\n targetInventory.status = ORDER_INVENTORY_STATUS.TERMINATED\n targetInventory.updater = this.user\n targetInventory.returnToLocationQty = targetInventory.releaseQty\n targetInventory.returnToLocationUomValue = targetInventory.releaseUomValue\n\n await this.updateOrderTargets([targetInventory])\n\n // update status of worksheet detail (EXECUTING => DONE)\n worksheetDetail.status = WORKSHEET_STATUS.DONE\n worksheetDetail.updater = this.user\n await this.trxMgr.getRepository(WorksheetDetail).save(worksheetDetail)\n }\n\n async warehouseReturnPutawayCarton(\n worksheetDetailName: [string],\n cartonId: string,\n toLocationName: string\n ): Promise<void> {\n const worksheetDetails: WorksheetDetail[] = await this.findExecutableWorksheetDetailByNames(\n worksheetDetailName,\n WORKSHEET_TYPE.WAREHOUSE_RETURN,\n [\n 'worksheet',\n 'worksheet.releaseGood',\n 'targetInventory',\n 'targetInventory.inventory',\n 'targetInventory.inventory.location'\n ]\n )\n\n for (var i = 0; i < worksheetDetails.length; i++) {\n const worksheetDetail = worksheetDetails[i]\n const worksheet: Worksheet = worksheetDetail.worksheet\n const releaseGood: ReleaseGood = worksheet.releaseGood\n let targetInventory: OrderInventory = worksheetDetail.targetInventory\n let inventory: Inventory = targetInventory.inventory\n let invLocation: Location = inventory.location\n\n if (inventory.cartonId !== cartonId) {\n throw new Error(this.ERROR_MSG.VALIDITY.UNEXPECTED_FIELD_VALUE('cartonId', cartonId, inventory.cartonId))\n }\n\n const location: Location = await this.trxMgr.getRepository(Location).findOne({\n where: {\n domain: { id: this.domain.id },\n name: toLocationName,\n type: In([\n LOCATION_TYPE.SHELF,\n LOCATION_TYPE.BUFFER,\n LOCATION_TYPE.FLOOR,\n LOCATION_TYPE.BIN,\n LOCATION_TYPE.QUARANTINE\n ])\n },\n relations: ['warehouse']\n })\n\n if (worksheet.type === 'WAREHOUSE_RETURN' && releaseGood.recall) {\n if (\n ![LOCATION_TYPE.QUARANTINE, LOCATION_TYPE.RESERVE].some(l => {\n return l === location.type\n })\n ) {\n throw new Error('Location should be assigned only to Quarantine or Reserve Zone')\n }\n }\n\n if (!location) throw new Error(this.ERROR_MSG.FIND.NO_RESULT(toLocationName))\n const warehouse: Warehouse = location.warehouse\n const zone: string = warehouse.zone\n\n inventory.qty += targetInventory.releaseQty\n inventory.uomValue += targetInventory.releaseUomValue\n inventory.location = location\n inventory.status = INVENTORY_STATUS.STORED\n inventory.warehouse = warehouse\n inventory.zone = zone\n await this.transactionInventory(\n inventory,\n releaseGood,\n targetInventory.releaseQty,\n targetInventory.releaseUomValue,\n INVENTORY_TRANSACTION_TYPE.RETURN\n )\n\n targetInventory.status = ORDER_INVENTORY_STATUS.TERMINATED\n targetInventory.updater = this.user\n targetInventory.returnToLocationQty = targetInventory.releaseQty\n targetInventory.returnToLocationUomValue = targetInventory.releaseUomValue\n await this.updateOrderTargets([targetInventory])\n\n worksheetDetail.status = WORKSHEET_STATUS.DONE\n worksheetDetail.updater = this.user\n await this.trxMgr.getRepository(WorksheetDetail).save(worksheetDetail)\n }\n }\n\n async completeReturning(releaseGoodNo: string): Promise<Worksheet> {\n const releaseGood: ReleaseGood = await this.findRefOrder(ReleaseGood, {\n domain: this.domain,\n name: releaseGoodNo,\n status: ORDER_STATUS.PARTIAL_RETURN\n })\n\n const worksheet: Worksheet = await this.findWorksheetByRefOrder(releaseGood, WORKSHEET_TYPE.WAREHOUSE_RETURN, [\n 'worksheetDetails',\n 'worksheetDetails.targetInventory'\n ])\n this.checkRecordValidity(worksheet, { status: WORKSHEET_STATUS.EXECUTING })\n\n return await this.completeWorksheet(worksheet, ORDER_STATUS.DONE)\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"returning-worksheet-controller.js","sourceRoot":"","sources":["../../../server/controllers/outbound/returning-worksheet-controller.ts"],"names":[],"mappings":"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","sourcesContent":["import { OrderInventory, ORDER_INVENTORY_STATUS, ORDER_STATUS, ReleaseGood } from '@things-factory/sales-base'\nimport {\n Inventory,\n Warehouse,\n INVENTORY_STATUS,\n INVENTORY_TRANSACTION_TYPE,\n LOCATION_TYPE,\n Location\n} from '@things-factory/warehouse-base'\nimport { In } from 'typeorm'\nimport { WORKSHEET_STATUS, WORKSHEET_TYPE } from '../../constants'\nimport { Worksheet, WorksheetDetail } from '../../entities'\nimport { VasWorksheetController } from '../vas/vas-worksheet-controller'\n\nexport class ReturningWorksheetController extends VasWorksheetController {\n async generateReturningWorksheet(\n releaseGoodNo: string,\n targetInventories: Partial<OrderInventory>[]\n ): Promise<Worksheet> {\n const releaseGood: ReleaseGood = await this.findRefOrder(\n ReleaseGood,\n { domain: { id: this.domain.id }, name: releaseGoodNo },\n ['bizplace']\n )\n return await this.generateWorksheet(\n WORKSHEET_TYPE.WAREHOUSE_RETURN,\n releaseGood,\n targetInventories,\n ORDER_STATUS.PARTIAL_RETURN,\n ORDER_INVENTORY_STATUS.RETURNING\n )\n }\n\n async activateReturning(\n worksheetNo: string,\n returningWorksheetDetails: Partial<WorksheetDetail>[]\n ): Promise<Worksheet> {\n const worksheet: Worksheet = await this.findActivatableWorksheet(worksheetNo, WORKSHEET_TYPE.WAREHOUSE_RETURN, [\n 'bizplace',\n 'releaseGood',\n 'worksheetDetails',\n 'worksheetDetails.targetInventory'\n ])\n\n const worksheetDetails: WorksheetDetail[] = worksheet.worksheetDetails\n const targetInventories: OrderInventory[] = worksheetDetails.map((wsd: WorksheetDetail) => {\n let targetInventory: OrderInventory = wsd.targetInventory\n targetInventory.status = ORDER_INVENTORY_STATUS.RETURNING\n targetInventory.updater = this.user\n return targetInventory\n })\n await this.updateOrderTargets(targetInventories)\n return await this.activateWorksheet(worksheet, worksheetDetails, returningWorksheetDetails)\n }\n\n async returning(\n worksheetDetailName: [string],\n palletId: string,\n cartonId: string,\n toLocation: string\n ): Promise<void> {\n if (cartonId) {\n await this.warehouseReturnPutawayCarton(worksheetDetailName, cartonId, toLocation)\n } else {\n await this.warehouseReturnPutawayPallet(worksheetDetailName[0], palletId, toLocation)\n }\n }\n\n async warehouseReturnPutawayPallet(\n worksheetDetailName: string,\n palletId: string,\n toLocationName: string\n ): Promise<void> {\n let worksheetDetail: WorksheetDetail = await this.findExecutableWorksheetDetailByName(\n worksheetDetailName,\n WORKSHEET_TYPE.WAREHOUSE_RETURN,\n [\n 'worksheet',\n 'worksheet.releaseGood',\n 'targetInventory',\n 'targetInventory.inventory',\n 'targetInventory.inventory.location'\n ]\n )\n\n const worksheet: Worksheet = worksheetDetail.worksheet\n const releaseGood: ReleaseGood = worksheet.releaseGood\n let targetInventory: OrderInventory = worksheetDetail.targetInventory\n let inventory: Inventory = targetInventory.inventory\n let location: Location = inventory.location\n\n const originLocation: Location = inventory.location\n const originPalletId: string = inventory.palletId\n\n const toLocation: Location = await this.trxMgr.getRepository(Location).findOne({\n where: { domain: { id: this.domain.id }, name: toLocationName },\n relations: ['warehouse']\n })\n\n if (worksheet.type === 'WAREHOUSE_RETURN' && releaseGood.recall) {\n if (\n ![LOCATION_TYPE.QUARANTINE, LOCATION_TYPE.RESERVE].some(l => {\n return l === toLocation.type\n })\n ) {\n throw new Error('Location should be assigned only to Quarantine or Reserve Zone')\n }\n }\n\n if (!toLocation) throw new Error(this.ERROR_MSG.FIND.NO_RESULT(toLocationName))\n\n const isPalletDiff: boolean = originPalletId !== palletId\n if (isPalletDiff) {\n throw new Error(this.ERROR_MSG.VALIDITY.CANT_PROCEED_STEP_BY('return', 'pallet ID is not matched'))\n }\n\n inventory.qty += targetInventory.releaseQty\n inventory.uomValue += targetInventory.releaseUomValue\n inventory.status = INVENTORY_STATUS.STORED\n\n const isLocationChanged: boolean = originLocation.id !== toLocation.id\n if (isLocationChanged) {\n inventory.location = toLocation\n inventory.warehouse = toLocation.warehouse\n inventory.zone = toLocation.zone\n }\n\n await this.transactionInventory(\n inventory,\n releaseGood,\n targetInventory.releaseQty,\n targetInventory.releaseUomValue,\n INVENTORY_TRANSACTION_TYPE.RETURN\n )\n\n // update status of order inventory\n targetInventory.status = ORDER_INVENTORY_STATUS.TERMINATED\n targetInventory.updater = this.user\n targetInventory.returnToLocationQty = targetInventory.releaseQty\n targetInventory.returnToLocationUomValue = targetInventory.releaseUomValue\n\n await this.updateOrderTargets([targetInventory])\n\n // update status of worksheet detail (EXECUTING => DONE)\n worksheetDetail.status = WORKSHEET_STATUS.DONE\n worksheetDetail.updater = this.user\n await this.trxMgr.getRepository(WorksheetDetail).save(worksheetDetail)\n }\n\n async warehouseReturnPutawayCarton(\n worksheetDetailName: [string],\n cartonId: string,\n toLocationName: string\n ): Promise<void> {\n const worksheetDetails: WorksheetDetail[] = await this.findExecutableWorksheetDetailByNames(\n worksheetDetailName,\n WORKSHEET_TYPE.WAREHOUSE_RETURN,\n [\n 'worksheet',\n 'worksheet.releaseGood',\n 'targetInventory',\n 'targetInventory.inventory',\n 'targetInventory.inventory.location'\n ]\n )\n\n for (var i = 0; i < worksheetDetails.length; i++) {\n const worksheetDetail = worksheetDetails[i]\n const worksheet: Worksheet = worksheetDetail.worksheet\n const releaseGood: ReleaseGood = worksheet.releaseGood\n let targetInventory: OrderInventory = worksheetDetail.targetInventory\n let inventory: Inventory = targetInventory.inventory\n let invLocation: Location = inventory.location\n\n if (inventory.cartonId !== cartonId) {\n throw new Error(this.ERROR_MSG.VALIDITY.UNEXPECTED_FIELD_VALUE('cartonId', cartonId, inventory.cartonId))\n }\n\n const location: Location = await this.trxMgr.getRepository(Location).findOne({\n where: {\n domain: { id: this.domain.id },\n name: toLocationName,\n type: In([\n LOCATION_TYPE.SHELF,\n LOCATION_TYPE.BUFFER,\n LOCATION_TYPE.FLOOR,\n LOCATION_TYPE.BIN,\n LOCATION_TYPE.QUARANTINE\n ])\n },\n relations: ['warehouse']\n })\n\n if (worksheet.type === 'WAREHOUSE_RETURN' && releaseGood.recall) {\n if (\n ![LOCATION_TYPE.QUARANTINE, LOCATION_TYPE.RESERVE].some(l => {\n return l === location.type\n })\n ) {\n throw new Error('Location should be assigned only to Quarantine or Reserve Zone')\n }\n }\n\n if (!location) throw new Error(this.ERROR_MSG.FIND.NO_RESULT(toLocationName))\n const warehouse: Warehouse = location.warehouse\n const zone: string = warehouse.zone\n\n inventory.qty += targetInventory.releaseQty\n inventory.uomValue += targetInventory.releaseUomValue\n inventory.location = location\n inventory.status = INVENTORY_STATUS.STORED\n inventory.warehouse = warehouse\n inventory.zone = zone\n await this.transactionInventory(\n inventory,\n releaseGood,\n targetInventory.releaseQty,\n targetInventory.releaseUomValue,\n INVENTORY_TRANSACTION_TYPE.RETURN\n )\n\n targetInventory.status = ORDER_INVENTORY_STATUS.TERMINATED\n targetInventory.updater = this.user\n targetInventory.returnToLocationQty = targetInventory.releaseQty\n targetInventory.returnToLocationUomValue = targetInventory.releaseUomValue\n await this.updateOrderTargets([targetInventory])\n\n worksheetDetail.status = WORKSHEET_STATUS.DONE\n worksheetDetail.updater = this.user\n await this.trxMgr.getRepository(WorksheetDetail).save(worksheetDetail)\n }\n }\n\n async completeReturning(releaseGoodNo: string): Promise<Worksheet> {\n const releaseGood: ReleaseGood = await this.findRefOrder(ReleaseGood, {\n domain: this.domain,\n name: releaseGoodNo,\n status: ORDER_STATUS.PARTIAL_RETURN\n })\n\n const worksheet: Worksheet = await this.findWorksheetByRefOrder(releaseGood, WORKSHEET_TYPE.WAREHOUSE_RETURN, [\n 'worksheetDetails',\n 'worksheetDetails.targetInventory'\n ])\n this.checkRecordValidity(worksheet, { status: WORKSHEET_STATUS.EXECUTING })\n\n return await this.completeWorksheet(worksheet, ORDER_STATUS.DONE)\n }\n}\n"]}
|
|
@@ -87,7 +87,7 @@ exports.packingWorksheetResolver = {
|
|
|
87
87
|
if (worksheet.status === 'DEACTIVATED') {
|
|
88
88
|
const packingWSCtrl = new controllers_1.PackingWorksheetController(tx, domain, user);
|
|
89
89
|
const directActivatePackingWorksheet = await tx.getRepository(setting_base_1.Setting).findOne({
|
|
90
|
-
where: { domain: domain, category: 'id-rule', name: 'enable-direct-activate-packing-worksheet' }
|
|
90
|
+
where: { domain: { id: domain.id }, category: 'id-rule', name: 'enable-direct-activate-packing-worksheet' }
|
|
91
91
|
});
|
|
92
92
|
const partnerDirectActivatePackingWorksheetSetting = await tx
|
|
93
93
|
.getRepository(setting_base_1.PartnerSetting)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"packing-worksheet.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/worksheet/packing-worksheet.ts"],"names":[],"mappings":"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","sourcesContent":["import { EntityManager, getManager, SelectQueryBuilder } from 'typeorm'\n\nimport { ApplicationType, User } from '@things-factory/auth-base'\nimport { logger } from '@things-factory/env'\nimport { Sellercraft, SellercraftStatus } from '@things-factory/integration-sellercraft'\nimport {\n MarketplaceOrder,\n MarketplaceOrderItem,\n MarketplaceOrderShipping,\n MarketplaceOrderShippingItem\n} from '@things-factory/marketplace-base'\nimport { ORDER_INVENTORY_STATUS, ORDER_STATUS, OrderInventory, ReleaseGood } from '@things-factory/sales-base'\nimport { PartnerSetting, Setting } from '@things-factory/setting-base'\nimport { Domain } from '@things-factory/shell'\nimport { Inventory, Location } from '@things-factory/warehouse-base'\n\nimport { WORKSHEET_TYPE } from '../../../constants'\nimport { PackingWorksheetController, SellercraftController } from '../../../controllers'\nimport { Worksheet, WorksheetDetail } from '../../../entities'\nimport { fetchExecutingWorksheet } from '../../../utils'\n\nexport const packingWorksheetResolver = {\n async packingWorksheet(_: any, { releaseGoodNo }, context: ResolverContext) {\n try {\n const { tx, domain, user } = context.state\n let releaseGood: ReleaseGood = await tx.getRepository(ReleaseGood).findOne({\n where: {\n domain: { id: domain.id },\n name: releaseGoodNo\n },\n relations: ['bizplace', 'bizplace.domain']\n })\n\n // Find Release Order based on Bin\n if (!releaseGood) {\n const binLocation: Location = await tx.getRepository(Location).findOne({\n where: { domain: { id: domain.id }, name: releaseGoodNo }\n })\n\n if (binLocation) {\n const qb: SelectQueryBuilder<OrderInventory> = tx\n .getRepository(OrderInventory)\n .createQueryBuilder('orderInventory')\n\n qb.innerJoinAndSelect('orderInventory.releaseGood', 'releaseGood')\n .innerJoinAndSelect('releaseGood.bizplace', 'bizplace')\n .innerJoinAndSelect('bizplace.domain', 'domain')\n .innerJoinAndSelect(\n 'worksheets',\n 'ws',\n `orderInventory.release_good_id = ws.release_good_id AND ws.type = 'PACKING' AND (ws.status = 'EXECUTING' OR ws.status = 'DEACTIVATED')`\n )\n .where('orderInventory.domain_id = :domainId', { domainId: domain.id })\n .andWhere('orderInventory.status IN (:...orderInventoryStatus)', {\n orderInventoryStatus: [\n ORDER_INVENTORY_STATUS.READY_TO_PACK,\n ORDER_INVENTORY_STATUS.PACKING,\n ORDER_INVENTORY_STATUS.PACKED\n ]\n })\n .andWhere('orderInventory.bin_location_id = :locationId', { locationId: binLocation.id })\n .andWhere('releaseGood.status IN (:...status)', {\n status: [ORDER_STATUS.READY_TO_PACK, ORDER_STATUS.PACKING]\n })\n .orderBy(`case when orderInventory.status = '${ORDER_INVENTORY_STATUS.PACKED}' then 1 end`)\n .addOrderBy('ws.created_at', 'ASC')\n\n const [orderInventoriesByBin, totalInventoriesByBin] = await qb.getManyAndCount()\n // @oscarchuaweiwen-fsd @chrislim I suggest using getMany() instead since the total is redundant here\n\n // remove duplicated count of release good\n const filteredRO = orderInventoriesByBin.map(oiBin => {\n return oiBin.releaseGood.name\n })\n\n if (orderInventoriesByBin.length > 0) {\n releaseGoodNo = orderInventoriesByBin[0].releaseGood.name\n releaseGood = orderInventoriesByBin[0].releaseGood\n releaseGood.totalInventoriesByBin = [...new Set(filteredRO)].length\n releaseGood.isOrderInventoryBin = true\n } else {\n throw new Error(`Bin do not have any existing order.`)\n }\n }\n }\n\n if (!releaseGood) throw new Error(`Release good do not exist.`)\n\n const worksheet: Worksheet = await fetchExecutingWorksheet(\n domain,\n releaseGood.bizplace,\n [\n 'bizplace',\n 'bizplace.domain',\n 'releaseGood',\n 'releaseGood.domain',\n 'worksheetDetails',\n 'worksheetDetails.targetInventory',\n 'worksheetDetails.targetInventory.binLocation',\n 'worksheetDetails.targetInventory.inventory',\n 'worksheetDetails.targetInventory.inventory.location',\n 'worksheetDetails.targetInventory.inventory.product',\n 'worksheetDetails.targetInventory.inventory.product.productDetails',\n 'worksheetDetails.toLocation'\n ],\n WORKSHEET_TYPE.PACKING,\n releaseGood\n )\n\n if (worksheet.status === 'DEACTIVATED') {\n const packingWSCtrl: PackingWorksheetController = new PackingWorksheetController(tx, domain, user)\n\n const directActivatePackingWorksheet: Setting = await tx.getRepository(Setting).findOne({\n where: { domain: domain, category: 'id-rule', name: 'enable-direct-activate-packing-worksheet' }\n })\n\n const partnerDirectActivatePackingWorksheetSetting: PartnerSetting = await tx\n .getRepository(PartnerSetting)\n .findOne({\n where: {\n setting: { id: directActivatePackingWorksheet.id },\n domain: { id: domain.id },\n partnerDomain: { id: releaseGood.bizplace?.domain.id }\n }\n })\n\n if (\n directActivatePackingWorksheet != undefined &&\n directActivatePackingWorksheet.value.toLowerCase() == 'true'\n ) {\n if (partnerDirectActivatePackingWorksheetSetting != undefined) {\n if (partnerDirectActivatePackingWorksheetSetting.value.toLowerCase() == 'true')\n await packingWSCtrl.activatePacking(worksheet.name)\n } else {\n await packingWSCtrl.activatePacking(worksheet.name)\n }\n } else {\n throw new Error('Kindly go to packing worksheet page to activate the packing worksheet')\n }\n }\n\n let marketplaceOrder: MarketplaceOrder = {}\n let marketplaceOrderItems: MarketplaceOrderItem[] = []\n let marketplaceStore\n let trackingNo: string\n let shippingProvider: string\n let marketplaceStatus: string\n\n const orderSource: string = releaseGood.source\n switch (orderSource) {\n case ApplicationType.SELLERCRAFT:\n const sellercraft: Sellercraft = await tx.getRepository(Sellercraft).findOneBy({\n domain: {id: worksheet.bizplace.domain.id},\n status: SellercraftStatus.ACTIVE\n })\n\n if (sellercraft) {\n // asynchronously get document from sellercraft\n getSellercraftDocument(sellercraft, releaseGood, domain, user)\n }\n break\n\n case ApplicationType.MMS:\n marketplaceOrder = await tx.getRepository(MarketplaceOrder).findOne({\n where: { orderNo: releaseGood.refNo },\n relations: [\n 'domain',\n 'marketplaceStore',\n 'marketplaceOrderItems',\n 'marketplaceOrderItems.marketplaceOrderShippingItems',\n 'marketplaceOrderItems.marketplaceOrderShippingItems.marketplaceOrderShipping'\n ]\n })\n\n if (!marketplaceOrder) {\n throw new Error('Failed to retrieve ecommerce information, kindly contact our support team for this issue.')\n }\n\n let marketplaceOrderShipping: MarketplaceOrderShipping\n if (marketplaceOrder.isSplitted) {\n marketplaceOrderShipping = await tx.getRepository(MarketplaceOrderShipping).findOne({\n where: { subOrderNoRef: worksheet.releaseGood.refNo2 }\n })\n } else {\n marketplaceOrderShipping = await tx.getRepository(MarketplaceOrderShipping).findOne({\n where: { orderNoRef: worksheet.releaseGood.refNo }\n })\n }\n\n trackingNo = marketplaceOrderShipping.ownTrackingNo\n ? marketplaceOrderShipping.ownTrackingNo\n : marketplaceOrderShipping.trackingNo\n shippingProvider = marketplaceOrderShipping.ownTransporter\n ? marketplaceOrderShipping.ownTransporter\n : marketplaceOrderShipping.transporter\n\n marketplaceStore = marketplaceOrder?.marketplaceStore\n marketplaceStatus = marketplaceOrder?.status\n break\n\n default:\n break\n }\n\n // if (releaseGood.type === 'b2c') {\n // const sellercraft: Sellercraft = await tx.getRepository(Sellercraft).findOne({\n // domain: worksheet.bizplace.domain,\n // status: SellercraftStatus.ACTIVE\n // })\n\n // if (sellercraft) {\n // // asynchronously get document from sellercraft\n // getSellercraftDocument(sellercraft, releaseGood, domain, user)\n // } else {\n // marketplaceOrder = await tx.getRepository(MarketplaceOrder).findOne({\n // where: { orderNo: releaseGood.refNo },\n // relations: [\n // 'domain',\n // 'marketplaceStore',\n // 'marketplaceOrderItems',\n // 'marketplaceOrderItems.marketplaceOrderShippingItems',\n // 'marketplaceOrderItems.marketplaceOrderShippingItems.marketplaceOrderShipping'\n // ]\n // })\n\n // if (!marketplaceOrder) {\n // throw new Error('Failed to retrieve ecommerce information, kindly contact our support team for this issue.')\n // }\n\n // let marketplaceOrderShipping: MarketplaceOrderShipping\n // if (marketplaceOrder.isSplitted) {\n // marketplaceOrderShipping = await tx.getRepository(MarketplaceOrderShipping).findOne({\n // where: { subOrderNoRef: worksheet.releaseGood.refNo2 }\n // })\n // } else {\n // marketplaceOrderShipping = await tx.getRepository(MarketplaceOrderShipping).findOne({\n // where: { orderNoRef: worksheet.releaseGood.refNo }\n // })\n // }\n\n // trackingNo = marketplaceOrderShipping.ownTrackingNo\n // ? marketplaceOrderShipping.ownTrackingNo\n // : marketplaceOrderShipping.trackingNo\n // shippingProvider = marketplaceOrderShipping.ownTransporter\n // ? marketplaceOrderShipping.ownTransporter\n // : marketplaceOrderShipping.transporter\n\n // marketplaceStore = marketplaceOrder?.marketplaceStore\n // marketplaceStatus = marketplaceOrder?.status\n // }\n // }\n\n return {\n worksheetInfo: {\n releaseGood,\n bizplaceName: releaseGood.bizplace.name,\n refNo: releaseGood.refNo,\n refNo2: releaseGood.refNo2,\n refNo3: releaseGood.refNo3,\n partnerDomainId: releaseGood.bizplace?.domain.id,\n startedAt: worksheet.startedAt,\n shippingProvider: shippingProvider ? shippingProvider : '',\n trackingNo: trackingNo ? trackingNo : '',\n airwayBill: releaseGood?.airwayBill,\n checkedRemarkBy: releaseGood?.checkedRemarkBy,\n invoice: releaseGood?.invoice,\n platform: Object.keys(marketplaceOrder).length > 0 ? marketplaceOrder.marketplaceStore?.platform : 'operato',\n marketplaceStoreId: Object.keys(marketplaceOrder).length > 0 ? marketplaceOrder.marketplaceStore?.id : '',\n marketplaceStatus: marketplaceStatus ? marketplaceStatus : '',\n marketplaceOrder: marketplaceOrder ? marketplaceOrder : ''\n },\n worksheetDetailInfos: worksheet.worksheetDetails.map((packingWSD: WorksheetDetail) => {\n const targetInventory: OrderInventory = packingWSD.targetInventory\n const inventory: Inventory = targetInventory.inventory\n return {\n name: packingWSD.name,\n palletId: inventory.palletId,\n cartonId: inventory.cartonId,\n batchId: inventory.batchId,\n batchIdRef: inventory.batchIdRef,\n product: inventory.product,\n sku: inventory.product.sku,\n releaseQty: targetInventory.releaseQty,\n packedQty: targetInventory.packedQty,\n status: packingWSD.status,\n description: packingWSD.description,\n targetName: targetInventory.name,\n packingType: inventory.packingType,\n packingSize: inventory.packingSize,\n binLocation: targetInventory?.binLocation,\n location: inventory.location,\n relatedOrderInv: targetInventory\n }\n })\n }\n } catch (error) {\n console.error(error)\n throw error\n }\n }\n}\n\nexport async function getTrackingNo(marketplaceStore, marketplaceOrderItems): Promise<string> {\n let trackingNo = ''\n let marketplaceOrderShippings = []\n\n marketplaceOrderItems.map(item => {\n const marketplaceOrderShippingItems: MarketplaceOrderShippingItem[] = item.marketplaceOrderShippingItems\n marketplaceOrderShippingItems.map(marketplaceOrderShippingItem => {\n const marketplaceOrderShipping = marketplaceOrderShippingItem.marketplaceOrderShipping\n\n if (marketplaceOrderShipping) {\n marketplaceOrderShippings.push(marketplaceOrderShipping)\n }\n })\n })\n\n const uniqueMarketplaceOrderShippings = Array.from(new Set(marketplaceOrderShippings.map(a => a.id))).map(id => {\n return marketplaceOrderShippings.find(a => a.id === id)\n })\n\n if (uniqueMarketplaceOrderShippings) {\n uniqueMarketplaceOrderShippings.map(marketplaceOrderShipping => {\n if (marketplaceStore.platform === 'lazada') {\n var newTrackingNo = []\n if (marketplaceOrderShipping?.trackingNo) {\n const trackingNos = JSON.parse(marketplaceOrderShipping.trackingNo)\n newTrackingNo = trackingNos.map(item => item.tracking_code)\n }\n let uniqueTrackingNos = [...new Set(newTrackingNo)]\n trackingNo = uniqueTrackingNos.join(', ')\n } else {\n trackingNo = marketplaceOrderShipping.trackingNo\n }\n })\n }\n\n return trackingNo\n}\n\n//trigger RTS, init document, and fetch sellercraft document in separated transaction\nasync function getSellercraftDocument(sellercraft: Sellercraft, releaseGood: ReleaseGood, domain: Domain, user: User) {\n await getManager().transaction(async txMgr => {\n const sellercraftCtrl: SellercraftController = new SellercraftController(txMgr, domain, user)\n try {\n if (!releaseGood?.airwayBill) {\n try {\n // try fetch order document / AWB\n releaseGood = await sellercraftCtrl.fetchOrderDocument(sellercraft, releaseGood)\n } catch (error) {\n try {\n // retry initiate order document\n await sellercraftCtrl.initiateOrderDocument(sellercraft, releaseGood)\n } catch (error) {\n try {\n // retry initiate order shipment / RTS\n await sellercraftCtrl.initiateOrderShipment(sellercraft, releaseGood)\n } catch (error) {\n throw new Error(`initiateOrderShipment: ${error}`)\n }\n throw new Error(`initiateOrderDocument: ${error}`)\n }\n throw new Error(`fetchOrderDocument: ${error}`)\n }\n }\n } catch (error) {\n logger.error(\n `packing-worksheet[getSellercraftDocument]:(data:${JSON.stringify({\n sellercraft,\n releaseGood,\n domain,\n user\n })}) ${error} `\n )\n }\n })\n}\n"]}
|
|
1
|
+
{"version":3,"file":"packing-worksheet.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/worksheet/packing-worksheet.ts"],"names":[],"mappings":"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","sourcesContent":["import { EntityManager, getManager, SelectQueryBuilder } from 'typeorm'\n\nimport { ApplicationType, User } from '@things-factory/auth-base'\nimport { logger } from '@things-factory/env'\nimport { Sellercraft, SellercraftStatus } from '@things-factory/integration-sellercraft'\nimport {\n MarketplaceOrder,\n MarketplaceOrderItem,\n MarketplaceOrderShipping,\n MarketplaceOrderShippingItem\n} from '@things-factory/marketplace-base'\nimport { ORDER_INVENTORY_STATUS, ORDER_STATUS, OrderInventory, ReleaseGood } from '@things-factory/sales-base'\nimport { PartnerSetting, Setting } from '@things-factory/setting-base'\nimport { Domain } from '@things-factory/shell'\nimport { Inventory, Location } from '@things-factory/warehouse-base'\n\nimport { WORKSHEET_TYPE } from '../../../constants'\nimport { PackingWorksheetController, SellercraftController } from '../../../controllers'\nimport { Worksheet, WorksheetDetail } from '../../../entities'\nimport { fetchExecutingWorksheet } from '../../../utils'\n\nexport const packingWorksheetResolver = {\n async packingWorksheet(_: any, { releaseGoodNo }, context: ResolverContext) {\n try {\n const { tx, domain, user } = context.state\n let releaseGood: ReleaseGood = await tx.getRepository(ReleaseGood).findOne({\n where: {\n domain: { id: domain.id },\n name: releaseGoodNo\n },\n relations: ['bizplace', 'bizplace.domain']\n })\n\n // Find Release Order based on Bin\n if (!releaseGood) {\n const binLocation: Location = await tx.getRepository(Location).findOne({\n where: { domain: { id: domain.id }, name: releaseGoodNo }\n })\n\n if (binLocation) {\n const qb: SelectQueryBuilder<OrderInventory> = tx\n .getRepository(OrderInventory)\n .createQueryBuilder('orderInventory')\n\n qb.innerJoinAndSelect('orderInventory.releaseGood', 'releaseGood')\n .innerJoinAndSelect('releaseGood.bizplace', 'bizplace')\n .innerJoinAndSelect('bizplace.domain', 'domain')\n .innerJoinAndSelect(\n 'worksheets',\n 'ws',\n `orderInventory.release_good_id = ws.release_good_id AND ws.type = 'PACKING' AND (ws.status = 'EXECUTING' OR ws.status = 'DEACTIVATED')`\n )\n .where('orderInventory.domain_id = :domainId', { domainId: domain.id })\n .andWhere('orderInventory.status IN (:...orderInventoryStatus)', {\n orderInventoryStatus: [\n ORDER_INVENTORY_STATUS.READY_TO_PACK,\n ORDER_INVENTORY_STATUS.PACKING,\n ORDER_INVENTORY_STATUS.PACKED\n ]\n })\n .andWhere('orderInventory.bin_location_id = :locationId', { locationId: binLocation.id })\n .andWhere('releaseGood.status IN (:...status)', {\n status: [ORDER_STATUS.READY_TO_PACK, ORDER_STATUS.PACKING]\n })\n .orderBy(`case when orderInventory.status = '${ORDER_INVENTORY_STATUS.PACKED}' then 1 end`)\n .addOrderBy('ws.created_at', 'ASC')\n\n const [orderInventoriesByBin, totalInventoriesByBin] = await qb.getManyAndCount()\n // @oscarchuaweiwen-fsd @chrislim I suggest using getMany() instead since the total is redundant here\n\n // remove duplicated count of release good\n const filteredRO = orderInventoriesByBin.map(oiBin => {\n return oiBin.releaseGood.name\n })\n\n if (orderInventoriesByBin.length > 0) {\n releaseGoodNo = orderInventoriesByBin[0].releaseGood.name\n releaseGood = orderInventoriesByBin[0].releaseGood\n releaseGood.totalInventoriesByBin = [...new Set(filteredRO)].length\n releaseGood.isOrderInventoryBin = true\n } else {\n throw new Error(`Bin do not have any existing order.`)\n }\n }\n }\n\n if (!releaseGood) throw new Error(`Release good do not exist.`)\n\n const worksheet: Worksheet = await fetchExecutingWorksheet(\n domain,\n releaseGood.bizplace,\n [\n 'bizplace',\n 'bizplace.domain',\n 'releaseGood',\n 'releaseGood.domain',\n 'worksheetDetails',\n 'worksheetDetails.targetInventory',\n 'worksheetDetails.targetInventory.binLocation',\n 'worksheetDetails.targetInventory.inventory',\n 'worksheetDetails.targetInventory.inventory.location',\n 'worksheetDetails.targetInventory.inventory.product',\n 'worksheetDetails.targetInventory.inventory.product.productDetails',\n 'worksheetDetails.toLocation'\n ],\n WORKSHEET_TYPE.PACKING,\n releaseGood\n )\n\n if (worksheet.status === 'DEACTIVATED') {\n const packingWSCtrl: PackingWorksheetController = new PackingWorksheetController(tx, domain, user)\n\n const directActivatePackingWorksheet: Setting = await tx.getRepository(Setting).findOne({\n where: { domain: { id: domain.id }, category: 'id-rule', name: 'enable-direct-activate-packing-worksheet' }\n })\n\n const partnerDirectActivatePackingWorksheetSetting: PartnerSetting = await tx\n .getRepository(PartnerSetting)\n .findOne({\n where: {\n setting: { id: directActivatePackingWorksheet.id },\n domain: { id: domain.id },\n partnerDomain: { id: releaseGood.bizplace?.domain.id }\n }\n })\n\n if (\n directActivatePackingWorksheet != undefined &&\n directActivatePackingWorksheet.value.toLowerCase() == 'true'\n ) {\n if (partnerDirectActivatePackingWorksheetSetting != undefined) {\n if (partnerDirectActivatePackingWorksheetSetting.value.toLowerCase() == 'true')\n await packingWSCtrl.activatePacking(worksheet.name)\n } else {\n await packingWSCtrl.activatePacking(worksheet.name)\n }\n } else {\n throw new Error('Kindly go to packing worksheet page to activate the packing worksheet')\n }\n }\n\n let marketplaceOrder: MarketplaceOrder = {}\n let marketplaceOrderItems: MarketplaceOrderItem[] = []\n let marketplaceStore\n let trackingNo: string\n let shippingProvider: string\n let marketplaceStatus: string\n\n const orderSource: string = releaseGood.source\n switch (orderSource) {\n case ApplicationType.SELLERCRAFT:\n const sellercraft: Sellercraft = await tx.getRepository(Sellercraft).findOneBy({\n domain: { id: worksheet.bizplace.domain.id },\n status: SellercraftStatus.ACTIVE\n })\n\n if (sellercraft) {\n // asynchronously get document from sellercraft\n getSellercraftDocument(sellercraft, releaseGood, domain, user)\n }\n break\n\n case ApplicationType.MMS:\n marketplaceOrder = await tx.getRepository(MarketplaceOrder).findOne({\n where: { orderNo: releaseGood.refNo },\n relations: [\n 'domain',\n 'marketplaceStore',\n 'marketplaceOrderItems',\n 'marketplaceOrderItems.marketplaceOrderShippingItems',\n 'marketplaceOrderItems.marketplaceOrderShippingItems.marketplaceOrderShipping'\n ]\n })\n\n if (!marketplaceOrder) {\n throw new Error('Failed to retrieve ecommerce information, kindly contact our support team for this issue.')\n }\n\n let marketplaceOrderShipping: MarketplaceOrderShipping\n if (marketplaceOrder.isSplitted) {\n marketplaceOrderShipping = await tx.getRepository(MarketplaceOrderShipping).findOne({\n where: { subOrderNoRef: worksheet.releaseGood.refNo2 }\n })\n } else {\n marketplaceOrderShipping = await tx.getRepository(MarketplaceOrderShipping).findOne({\n where: { orderNoRef: worksheet.releaseGood.refNo }\n })\n }\n\n trackingNo = marketplaceOrderShipping.ownTrackingNo\n ? marketplaceOrderShipping.ownTrackingNo\n : marketplaceOrderShipping.trackingNo\n shippingProvider = marketplaceOrderShipping.ownTransporter\n ? marketplaceOrderShipping.ownTransporter\n : marketplaceOrderShipping.transporter\n\n marketplaceStore = marketplaceOrder?.marketplaceStore\n marketplaceStatus = marketplaceOrder?.status\n break\n\n default:\n break\n }\n\n // if (releaseGood.type === 'b2c') {\n // const sellercraft: Sellercraft = await tx.getRepository(Sellercraft).findOne({\n // domain: worksheet.bizplace.domain,\n // status: SellercraftStatus.ACTIVE\n // })\n\n // if (sellercraft) {\n // // asynchronously get document from sellercraft\n // getSellercraftDocument(sellercraft, releaseGood, domain, user)\n // } else {\n // marketplaceOrder = await tx.getRepository(MarketplaceOrder).findOne({\n // where: { orderNo: releaseGood.refNo },\n // relations: [\n // 'domain',\n // 'marketplaceStore',\n // 'marketplaceOrderItems',\n // 'marketplaceOrderItems.marketplaceOrderShippingItems',\n // 'marketplaceOrderItems.marketplaceOrderShippingItems.marketplaceOrderShipping'\n // ]\n // })\n\n // if (!marketplaceOrder) {\n // throw new Error('Failed to retrieve ecommerce information, kindly contact our support team for this issue.')\n // }\n\n // let marketplaceOrderShipping: MarketplaceOrderShipping\n // if (marketplaceOrder.isSplitted) {\n // marketplaceOrderShipping = await tx.getRepository(MarketplaceOrderShipping).findOne({\n // where: { subOrderNoRef: worksheet.releaseGood.refNo2 }\n // })\n // } else {\n // marketplaceOrderShipping = await tx.getRepository(MarketplaceOrderShipping).findOne({\n // where: { orderNoRef: worksheet.releaseGood.refNo }\n // })\n // }\n\n // trackingNo = marketplaceOrderShipping.ownTrackingNo\n // ? marketplaceOrderShipping.ownTrackingNo\n // : marketplaceOrderShipping.trackingNo\n // shippingProvider = marketplaceOrderShipping.ownTransporter\n // ? marketplaceOrderShipping.ownTransporter\n // : marketplaceOrderShipping.transporter\n\n // marketplaceStore = marketplaceOrder?.marketplaceStore\n // marketplaceStatus = marketplaceOrder?.status\n // }\n // }\n\n return {\n worksheetInfo: {\n releaseGood,\n bizplaceName: releaseGood.bizplace.name,\n refNo: releaseGood.refNo,\n refNo2: releaseGood.refNo2,\n refNo3: releaseGood.refNo3,\n partnerDomainId: releaseGood.bizplace?.domain.id,\n startedAt: worksheet.startedAt,\n shippingProvider: shippingProvider ? shippingProvider : '',\n trackingNo: trackingNo ? trackingNo : '',\n airwayBill: releaseGood?.airwayBill,\n checkedRemarkBy: releaseGood?.checkedRemarkBy,\n invoice: releaseGood?.invoice,\n platform: Object.keys(marketplaceOrder).length > 0 ? marketplaceOrder.marketplaceStore?.platform : 'operato',\n marketplaceStoreId: Object.keys(marketplaceOrder).length > 0 ? marketplaceOrder.marketplaceStore?.id : '',\n marketplaceStatus: marketplaceStatus ? marketplaceStatus : '',\n marketplaceOrder: marketplaceOrder ? marketplaceOrder : ''\n },\n worksheetDetailInfos: worksheet.worksheetDetails.map((packingWSD: WorksheetDetail) => {\n const targetInventory: OrderInventory = packingWSD.targetInventory\n const inventory: Inventory = targetInventory.inventory\n return {\n name: packingWSD.name,\n palletId: inventory.palletId,\n cartonId: inventory.cartonId,\n batchId: inventory.batchId,\n batchIdRef: inventory.batchIdRef,\n product: inventory.product,\n sku: inventory.product.sku,\n releaseQty: targetInventory.releaseQty,\n packedQty: targetInventory.packedQty,\n status: packingWSD.status,\n description: packingWSD.description,\n targetName: targetInventory.name,\n packingType: inventory.packingType,\n packingSize: inventory.packingSize,\n binLocation: targetInventory?.binLocation,\n location: inventory.location,\n relatedOrderInv: targetInventory\n }\n })\n }\n } catch (error) {\n console.error(error)\n throw error\n }\n }\n}\n\nexport async function getTrackingNo(marketplaceStore, marketplaceOrderItems): Promise<string> {\n let trackingNo = ''\n let marketplaceOrderShippings = []\n\n marketplaceOrderItems.map(item => {\n const marketplaceOrderShippingItems: MarketplaceOrderShippingItem[] = item.marketplaceOrderShippingItems\n marketplaceOrderShippingItems.map(marketplaceOrderShippingItem => {\n const marketplaceOrderShipping = marketplaceOrderShippingItem.marketplaceOrderShipping\n\n if (marketplaceOrderShipping) {\n marketplaceOrderShippings.push(marketplaceOrderShipping)\n }\n })\n })\n\n const uniqueMarketplaceOrderShippings = Array.from(new Set(marketplaceOrderShippings.map(a => a.id))).map(id => {\n return marketplaceOrderShippings.find(a => a.id === id)\n })\n\n if (uniqueMarketplaceOrderShippings) {\n uniqueMarketplaceOrderShippings.map(marketplaceOrderShipping => {\n if (marketplaceStore.platform === 'lazada') {\n var newTrackingNo = []\n if (marketplaceOrderShipping?.trackingNo) {\n const trackingNos = JSON.parse(marketplaceOrderShipping.trackingNo)\n newTrackingNo = trackingNos.map(item => item.tracking_code)\n }\n let uniqueTrackingNos = [...new Set(newTrackingNo)]\n trackingNo = uniqueTrackingNos.join(', ')\n } else {\n trackingNo = marketplaceOrderShipping.trackingNo\n }\n })\n }\n\n return trackingNo\n}\n\n//trigger RTS, init document, and fetch sellercraft document in separated transaction\nasync function getSellercraftDocument(sellercraft: Sellercraft, releaseGood: ReleaseGood, domain: Domain, user: User) {\n await getManager().transaction(async txMgr => {\n const sellercraftCtrl: SellercraftController = new SellercraftController(txMgr, domain, user)\n try {\n if (!releaseGood?.airwayBill) {\n try {\n // try fetch order document / AWB\n releaseGood = await sellercraftCtrl.fetchOrderDocument(sellercraft, releaseGood)\n } catch (error) {\n try {\n // retry initiate order document\n await sellercraftCtrl.initiateOrderDocument(sellercraft, releaseGood)\n } catch (error) {\n try {\n // retry initiate order shipment / RTS\n await sellercraftCtrl.initiateOrderShipment(sellercraft, releaseGood)\n } catch (error) {\n throw new Error(`initiateOrderShipment: ${error}`)\n }\n throw new Error(`initiateOrderDocument: ${error}`)\n }\n throw new Error(`fetchOrderDocument: ${error}`)\n }\n }\n } catch (error) {\n logger.error(\n `packing-worksheet[getSellercraftDocument]:(data:${JSON.stringify({\n sellercraft,\n releaseGood,\n domain,\n user\n })}) ${error} `\n )\n }\n })\n}\n"]}
|