@things-factory/worksheet-base 6.0.45 → 6.0.49
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-worksheet-controller.js +1 -1
- package/dist-server/controllers/inbound/putaway-worksheet-controller.js.map +1 -1
- package/dist-server/controllers/inbound/unloading-worksheet-controller.js +7 -3
- package/dist-server/controllers/inbound/unloading-worksheet-controller.js.map +1 -1
- package/dist-server/tsconfig.tsbuildinfo +1 -1
- package/package.json +17 -17
- package/server/controllers/inbound/putaway-worksheet-controller.ts +1 -1
- package/server/controllers/inbound/unloading-worksheet-controller.ts +7 -3
|
@@ -10,7 +10,7 @@ const utils_1 = require("../../utils");
|
|
|
10
10
|
const vas_worksheet_controller_1 = require("../vas/vas-worksheet-controller");
|
|
11
11
|
class PutawayWorksheetController extends vas_worksheet_controller_1.VasWorksheetController {
|
|
12
12
|
async generatePutawayWorksheet(arrivalNoticeNo, inventories) {
|
|
13
|
-
let arrivalNotice = await this.findRefOrder(sales_base_1.ArrivalNotice, { domain: this.domain, name: arrivalNoticeNo }, ['bizplace']);
|
|
13
|
+
let arrivalNotice = await this.findRefOrder(sales_base_1.ArrivalNotice, { domain: { id: this.domain.id }, name: arrivalNoticeNo }, ['bizplace']);
|
|
14
14
|
const bizplace = arrivalNotice.bizplace;
|
|
15
15
|
const unloadingWorksheet = await this.findWorksheetByRefOrder(arrivalNotice, constants_1.WORKSHEET_TYPE.UNLOADING, [
|
|
16
16
|
'bufferLocation'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"putaway-worksheet-controller.js","sourceRoot":"","sources":["../../../server/controllers/inbound/putaway-worksheet-controller.ts"],"names":[],"mappings":"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","sourcesContent":["import { Equal, In, Not } from 'typeorm'\n\nimport { Bizplace } from '@things-factory/biz-base'\nimport {\n ArrivalNotice,\n ORDER_INVENTORY_STATUS,\n ORDER_PRODUCT_STATUS,\n ORDER_STATUS,\n ORDER_TYPES,\n OrderInventory,\n OrderNoGenerator\n} from '@things-factory/sales-base'\nimport {\n Inventory,\n INVENTORY_STATUS,\n INVENTORY_TRANSACTION_TYPE,\n Location,\n LOCATION_TYPE,\n Pallet,\n Warehouse\n} from '@things-factory/warehouse-base'\n\nimport { WORKSHEET_STATUS, WORKSHEET_TYPE } from '../../constants'\nimport { Worksheet, WorksheetDetail } from '../../entities'\nimport { switchLocationStatus } from '../../utils'\nimport { VasWorksheetController } from '../vas/vas-worksheet-controller'\n\nexport class PutawayWorksheetController extends VasWorksheetController {\n async generatePutawayWorksheet(arrivalNoticeNo: string, inventories: Inventory[]): Promise<Worksheet> {\n let arrivalNotice: ArrivalNotice = await this.findRefOrder(\n ArrivalNotice,\n { domain: this.domain, name: arrivalNoticeNo },\n ['bizplace']\n )\n\n const bizplace: Bizplace = arrivalNotice.bizplace\n const unloadingWorksheet: Worksheet = await this.findWorksheetByRefOrder(arrivalNotice, WORKSHEET_TYPE.UNLOADING, [\n 'bufferLocation'\n ])\n const bufferLocation: Location = unloadingWorksheet.bufferLocation\n\n // Check whether putaway worksheet is exists or not\n let worksheet: Worksheet\n try {\n worksheet = await this.findWorksheetByRefOrder(arrivalNotice, WORKSHEET_TYPE.PUTAWAY)\n } catch (e) {}\n\n let oiStatus: string = ORDER_PRODUCT_STATUS.UNLOADED // Default status of order inventories is UNLOADED\n let wsdStatus: string = WORKSHEET_STATUS.DEACTIVATED // Default status of worksheet is DEACTIVATED\n if (!worksheet) {\n // If it's not exists create new putaway worksheet\n worksheet = await this.createWorksheet(arrivalNotice, WORKSHEET_TYPE.PUTAWAY, { bufferLocation })\n } else {\n // If there is putaway worksheet. It means unloading is completed partially.\n // So status of newly created worksheet details and order inventories should be changed to\n // Executing situation.\n oiStatus = ORDER_PRODUCT_STATUS.PUTTING_AWAY // Default status = PUTTING_AWAY\n wsdStatus = WORKSHEET_STATUS.EXECUTING // Default status = EXECUTING\n }\n\n if (inventories.some((inv: Inventory) => !(inv instanceof Inventory))) {\n inventories = await this.trxMgr.getRepository(Inventory).findByIds(inventories.map((inv: Inventory) => inv.id))\n }\n\n let worksheetDetails: WorksheetDetail[] = []\n for (let inventory of inventories) {\n inventory.status = INVENTORY_STATUS.PUTTING_AWAY\n inventory.updater = this.user\n inventory = await this.trxMgr.getRepository(Inventory).save(inventory)\n\n // check if there's existing orderInventory\n let targetInventory: OrderInventory = await this.trxMgr.getRepository(OrderInventory).findOne({\n where: { inventory: { id: inventory.id } }\n })\n\n // if no existing orderInventory, create new one\n if (!targetInventory) {\n targetInventory = new OrderInventory()\n targetInventory.domain = this.domain\n targetInventory.bizplace = bizplace\n targetInventory.name = OrderNoGenerator.orderInventory()\n targetInventory.status = oiStatus\n targetInventory.type = ORDER_TYPES.ARRIVAL_NOTICE\n targetInventory.arrivalNotice = arrivalNotice\n targetInventory.inventory = inventory\n targetInventory.creator = this.user\n targetInventory.updater = this.user\n targetInventory = await this.trxMgr.getRepository(OrderInventory).save(targetInventory)\n }\n\n const newWorksheetDetails: WorksheetDetail[] = await this.createWorksheetDetails(\n worksheet,\n WORKSHEET_TYPE.PUTAWAY,\n [targetInventory],\n { status: wsdStatus, fromLocation: bufferLocation }\n )\n\n worksheetDetails.push(...newWorksheetDetails)\n }\n\n return {\n ...worksheet,\n worksheetDetails\n }\n }\n\n async activatePutaway(worksheetNo: string, putawayWorksheetDetails: Partial<WorksheetDetail>[]): Promise<Worksheet> {\n let worksheet: Worksheet = await this.findActivatableWorksheet(worksheetNo, WORKSHEET_TYPE.PUTAWAY, [\n 'arrivalNotice',\n 'worksheetDetails',\n 'worksheetDetails.targetInventory'\n ])\n\n let arrivalNotice: ArrivalNotice = worksheet.arrivalNotice\n const nonFinishedVasCnt: number = await this.trxMgr.getRepository(Worksheet).count({\n where: {\n domain: { id: this.domain.id },\n arrivalNotice: { id: arrivalNotice.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 const targetInventories: OrderInventory[] = worksheetDetails.map((wsd: WorksheetDetail) => {\n let targetInventory: OrderInventory = wsd.targetInventory\n targetInventory.status = ORDER_PRODUCT_STATUS.PUTTING_AWAY\n targetInventory.updater = this.user\n return targetInventory\n })\n await this.updateOrderTargets(targetInventories)\n\n arrivalNotice.status = ORDER_STATUS.PUTTING_AWAY\n arrivalNotice.updater = this.user\n await this.updateRefOrder(arrivalNotice)\n return this.activateWorksheet(worksheet, worksheetDetails, putawayWorksheetDetails)\n }\n\n async completePutaway(arrivalNoticeNo: string): Promise<Worksheet> {\n // Because of partial unloading current status of arrivalNotice can be PUTTING_AWAY or PROCESSING\n // PUTTING_AWAY means unloading is completely finished.\n // PROCESSING means some products are still being unloaded.\n let arrivalNotice: ArrivalNotice = await this.findRefOrder(ArrivalNotice, {\n name: arrivalNoticeNo,\n status: In([ORDER_STATUS.PUTTING_AWAY, ORDER_STATUS.PROCESSING])\n })\n\n // Check whether unloading is done or not.\n const unloadingWorksheetCnt: number = await this.trxMgr.getRepository(Worksheet).count({\n where: {\n domain: { id: this.domain.id },\n arrivalNotice: { id: arrivalNotice.id },\n type: WORKSHEET_TYPE.UNLOADING,\n status: WORKSHEET_STATUS.EXECUTING\n }\n })\n if (unloadingWorksheetCnt) throw new Error(`Unloading is not completed yet`)\n\n const putawayWorksheet: Worksheet = await this.findWorksheetByRefOrder(arrivalNotice, WORKSHEET_TYPE.PUTAWAY, [\n 'bufferLocation'\n ])\n await switchLocationStatus(this.domain, putawayWorksheet.bufferLocation, this.user, this.trxMgr)\n return await this.completeWorksheet(putawayWorksheet, ORDER_STATUS.DONE)\n }\n\n async putaway(\n worksheetDetailName: [string],\n palletId: string,\n cartonId: string,\n locationName: string\n ): Promise<void> {\n const reusablePallet: Pallet = await this.trxMgr.getRepository(Pallet).findOne({\n where: { domain: { id: this.domain.id }, name: palletId }\n })\n\n if (reusablePallet) {\n await this.putawayPallets(worksheetDetailName[0], reusablePallet, locationName)\n } else if (cartonId) {\n await this.putawayCarton(worksheetDetailName, cartonId, locationName)\n } else {\n await this.putawayPallet(worksheetDetailName[0], palletId, locationName)\n }\n }\n\n async putawayPallets(worksheetDetailName: string, reusablePallet: Pallet, locationName: string): Promise<void> {\n const worksheetDetail: WorksheetDetail = await this.findExecutableWorksheetDetailByName(\n worksheetDetailName,\n WORKSHEET_TYPE.PUTAWAY,\n [\n 'worksheet',\n 'worksheet.arrivalNotice',\n 'worksheet.worksheetDetails',\n 'worksheet.worksheetDetails.targetInventory',\n 'worksheet.worksheetDetails.targetInventory.inventory'\n ]\n )\n\n const worksheet: Worksheet = worksheetDetail.worksheet\n const arrivalNotice: ArrivalNotice = worksheet.arrivalNotice\n const worksheetDetails: WorksheetDetail[] = worksheet.worksheetDetails\n const inventories: Inventory[] = await this.trxMgr.getRepository(Inventory).find({\n where: {\n domain: { id: this.domain.id },\n reusablePallet: { id: reusablePallet.id },\n refOrderId: arrivalNotice.id,\n status: In([INVENTORY_STATUS.PUTTING_AWAY, INVENTORY_STATUS.UNLOADED])\n }\n })\n\n for (let inventory of inventories) {\n const worksheetDetail: WorksheetDetail = worksheetDetails.find(\n (wsd: WorksheetDetail) => wsd.targetInventory.inventory.name === inventory.name\n )\n\n let targetInventory: OrderInventory = worksheetDetail.targetInventory\n inventory = targetInventory.inventory\n\n let location: Location = await this.trxMgr.getRepository(Location).findOne({\n where: {\n domain: { id: this.domain.id },\n name: locationName,\n type: In([\n LOCATION_TYPE.SHELF,\n LOCATION_TYPE.BUFFER,\n LOCATION_TYPE.FLOOR,\n LOCATION_TYPE.QUARANTINE,\n LOCATION_TYPE.RESERVE\n ])\n },\n relations: ['warehouse']\n })\n if (!location) throw new Error(this.ERROR_MSG.FIND.NO_RESULT(locationName))\n const warehouse: Warehouse = location.warehouse\n const zone: string = location.zone\n\n inventory.location = location\n inventory.status = INVENTORY_STATUS.STORED\n inventory.warehouse = warehouse\n inventory.zone = zone\n await this.transactionInventory(inventory, arrivalNotice, 0, 0, INVENTORY_TRANSACTION_TYPE.PUTAWAY)\n\n targetInventory.status = ORDER_INVENTORY_STATUS.TERMINATED\n targetInventory.updater = this.user\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 putawayCarton(worksheetDetailName: [string], cartonId: string, locationName: string): Promise<void> {\n const worksheetDetails: WorksheetDetail[] = await this.findExecutableWorksheetDetailByNames(\n worksheetDetailName,\n WORKSHEET_TYPE.PUTAWAY,\n ['worksheet', 'worksheet.arrivalNotice', 'targetInventory', 'targetInventory.inventory']\n )\n\n for (var i = 0; i < worksheetDetails.length; i++) {\n const worksheetDetail = worksheetDetails[i]\n const worksheet: Worksheet = worksheetDetail.worksheet\n const arrivalNotice: ArrivalNotice = worksheet.arrivalNotice\n let targetInventory: OrderInventory = worksheetDetail.targetInventory\n let inventory: Inventory = targetInventory.inventory\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: locationName,\n type: In([\n LOCATION_TYPE.SHELF,\n LOCATION_TYPE.BUFFER,\n LOCATION_TYPE.FLOOR,\n LOCATION_TYPE.BIN,\n LOCATION_TYPE.QUARANTINE,\n LOCATION_TYPE.RESERVE\n ])\n },\n relations: ['warehouse']\n })\n\n if (!location) throw new Error(this.ERROR_MSG.FIND.NO_RESULT(locationName))\n const warehouse: Warehouse = location.warehouse\n const zone: string = warehouse.zone\n\n inventory.location = location\n inventory.status = INVENTORY_STATUS.STORED\n inventory.warehouse = warehouse\n inventory.zone = zone\n await this.transactionInventory(inventory, arrivalNotice, 0, 0, INVENTORY_TRANSACTION_TYPE.PUTAWAY)\n\n targetInventory.status = ORDER_INVENTORY_STATUS.TERMINATED\n targetInventory.updater = this.user\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 putawayPallet(worksheetDetailName: string, palletId: string, locationName: string): Promise<void> {\n const worksheetDetail: WorksheetDetail = await this.findExecutableWorksheetDetailByName(\n worksheetDetailName,\n WORKSHEET_TYPE.PUTAWAY,\n ['worksheet', 'worksheet.arrivalNotice', 'targetInventory', 'targetInventory.inventory']\n )\n\n const worksheet: Worksheet = worksheetDetail.worksheet\n const arrivalNotice: ArrivalNotice = worksheet.arrivalNotice\n let targetInventory: OrderInventory = worksheetDetail.targetInventory\n let inventory: Inventory = targetInventory.inventory\n\n if (inventory.palletId !== palletId) {\n throw new Error(this.ERROR_MSG.VALIDITY.UNEXPECTED_FIELD_VALUE('lot ID', palletId, inventory.palletId))\n }\n\n const location: Location = await this.trxMgr.getRepository(Location).findOne({\n where: {\n domain: { id: this.domain.id },\n name: locationName,\n type: In([\n LOCATION_TYPE.SHELF,\n LOCATION_TYPE.BUFFER,\n LOCATION_TYPE.FLOOR,\n LOCATION_TYPE.QUARANTINE,\n LOCATION_TYPE.RESERVE\n ])\n },\n relations: ['warehouse']\n })\n if (!location) throw new Error(this.ERROR_MSG.FIND.NO_RESULT(locationName))\n const warehouse: Warehouse = location.warehouse\n const zone: string = warehouse.zone\n\n inventory.location = location\n inventory.status = INVENTORY_STATUS.STORED\n inventory.warehouse = warehouse\n inventory.zone = zone\n await this.transactionInventory(inventory, arrivalNotice, 0, 0, INVENTORY_TRANSACTION_TYPE.PUTAWAY)\n\n targetInventory.status = ORDER_INVENTORY_STATUS.TERMINATED\n targetInventory.updater = this.user\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 async undoPutaway(worksheetDetailName: [string], palletId: string, cartonId: string): Promise<void> {\n if (cartonId) {\n await this.undoCarton(worksheetDetailName, cartonId)\n } else {\n await this.undoPallet(worksheetDetailName[0], palletId)\n }\n }\n\n async undoPallet(worksheetDetailName: string, palletId: string): Promise<void> {\n let worksheetDetail: WorksheetDetail = await this.findWorksheetDetailByName(worksheetDetailName, [\n 'worksheet',\n 'worksheet.arrivalNotice',\n 'targetInventory',\n 'targetInventory.inventory',\n 'fromLocation'\n ])\n this.checkRecordValidity(worksheetDetail, { status: WORKSHEET_STATUS.DONE })\n\n const worksheet: Worksheet = worksheetDetail.worksheet\n const arrivalNotice: ArrivalNotice = worksheet.arrivalNotice\n const targetInventory: OrderInventory = worksheetDetail.targetInventory\n let inventory: Inventory = await this.trxMgr.getRepository(Inventory).findOne({\n where: { domain: { id: this.domain.id }, palletId }\n })\n await this.checkReleaseTarget(inventory)\n\n const bufferLocation: Location = await this.trxMgr.getRepository(Location).findOne({\n where: { domain: { id: this.domain.id }, name: worksheetDetail.fromLocation.name }\n })\n inventory.location = bufferLocation\n inventory.status = INVENTORY_STATUS.UNLOADED\n await this.transactionInventory(inventory, arrivalNotice, 0, 0, INVENTORY_TRANSACTION_TYPE.UNDO_PUTAWAY)\n\n targetInventory.status = ORDER_PRODUCT_STATUS.PUTTING_AWAY\n targetInventory.updater = this.user\n await this.updateOrderTargets([targetInventory])\n\n worksheetDetail.status = WORKSHEET_STATUS.EXECUTING\n worksheetDetail.updater = this.user\n await this.trxMgr.getRepository(WorksheetDetail).save(worksheetDetail)\n }\n\n async undoCarton(worksheetDetailName: [string], cartonId: string): Promise<void> {\n let worksheetDetails: WorksheetDetail[] = await this.findWorksheetDetailByNames(worksheetDetailName, [\n 'worksheet',\n 'worksheet.arrivalNotice',\n 'targetInventory',\n 'targetInventory.inventory',\n 'fromLocation'\n ])\n\n for (var i = 0; i < worksheetDetails?.length; i++) {\n const worksheetDetail = worksheetDetails[i]\n this.checkRecordValidity(worksheetDetail, { status: WORKSHEET_STATUS.DONE })\n const worksheet: Worksheet = worksheetDetail.worksheet\n const arrivalNotice: ArrivalNotice = worksheet.arrivalNotice\n const targetInventory: OrderInventory = worksheetDetail.targetInventory\n let inventory: Inventory = await this.trxMgr.getRepository(Inventory).findOne({\n where: { domain: { id: this.domain.id }, cartonId, palletId: targetInventory.inventory.palletId }\n })\n await this.checkReleaseTarget(inventory)\n\n const bufferLocation: Location = await this.trxMgr.getRepository(Location).findOne({\n where: { domain: { id: this.domain.id }, name: worksheetDetail.fromLocation.name }\n })\n inventory.location = bufferLocation\n inventory.status = INVENTORY_STATUS.UNLOADED\n await this.transactionInventory(inventory, arrivalNotice, 0, 0, INVENTORY_TRANSACTION_TYPE.UNDO_PUTAWAY)\n\n targetInventory.status = ORDER_PRODUCT_STATUS.PUTTING_AWAY\n targetInventory.updater = this.user\n await this.updateOrderTargets([targetInventory])\n\n worksheetDetail.status = WORKSHEET_STATUS.EXECUTING\n worksheetDetail.updater = this.user\n await this.trxMgr.getRepository(WorksheetDetail).save(worksheetDetail)\n }\n }\n\n private async checkReleaseTarget(inventory: Inventory): Promise<void> {\n const releaseTargetInventory: OrderInventory = await this.trxMgr.getRepository(OrderInventory).findOne({\n where: {\n domain: { id: this.domain.id },\n type: ORDER_TYPES.RELEASE_OF_GOODS,\n inventory\n }\n })\n\n if (releaseTargetInventory)\n throw new Error(\n this.ERROR_MSG.VALIDITY.CANT_PROCEED_STEP_BY('undo putaway', 'this pallet ID has been selected for releasing')\n )\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"putaway-worksheet-controller.js","sourceRoot":"","sources":["../../../server/controllers/inbound/putaway-worksheet-controller.ts"],"names":[],"mappings":"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","sourcesContent":["import { Equal, In, Not } from 'typeorm'\n\nimport { Bizplace } from '@things-factory/biz-base'\nimport {\n ArrivalNotice,\n ORDER_INVENTORY_STATUS,\n ORDER_PRODUCT_STATUS,\n ORDER_STATUS,\n ORDER_TYPES,\n OrderInventory,\n OrderNoGenerator\n} from '@things-factory/sales-base'\nimport {\n Inventory,\n INVENTORY_STATUS,\n INVENTORY_TRANSACTION_TYPE,\n Location,\n LOCATION_TYPE,\n Pallet,\n Warehouse\n} from '@things-factory/warehouse-base'\n\nimport { WORKSHEET_STATUS, WORKSHEET_TYPE } from '../../constants'\nimport { Worksheet, WorksheetDetail } from '../../entities'\nimport { switchLocationStatus } from '../../utils'\nimport { VasWorksheetController } from '../vas/vas-worksheet-controller'\n\nexport class PutawayWorksheetController extends VasWorksheetController {\n async generatePutawayWorksheet(arrivalNoticeNo: string, inventories: Inventory[]): Promise<Worksheet> {\n let arrivalNotice: ArrivalNotice = await this.findRefOrder(\n ArrivalNotice,\n { domain: { id: this.domain.id }, name: arrivalNoticeNo },\n ['bizplace']\n )\n\n const bizplace: Bizplace = arrivalNotice.bizplace\n const unloadingWorksheet: Worksheet = await this.findWorksheetByRefOrder(arrivalNotice, WORKSHEET_TYPE.UNLOADING, [\n 'bufferLocation'\n ])\n const bufferLocation: Location = unloadingWorksheet.bufferLocation\n\n // Check whether putaway worksheet is exists or not\n let worksheet: Worksheet\n try {\n worksheet = await this.findWorksheetByRefOrder(arrivalNotice, WORKSHEET_TYPE.PUTAWAY)\n } catch (e) {}\n\n let oiStatus: string = ORDER_PRODUCT_STATUS.UNLOADED // Default status of order inventories is UNLOADED\n let wsdStatus: string = WORKSHEET_STATUS.DEACTIVATED // Default status of worksheet is DEACTIVATED\n if (!worksheet) {\n // If it's not exists create new putaway worksheet\n worksheet = await this.createWorksheet(arrivalNotice, WORKSHEET_TYPE.PUTAWAY, { bufferLocation })\n } else {\n // If there is putaway worksheet. It means unloading is completed partially.\n // So status of newly created worksheet details and order inventories should be changed to\n // Executing situation.\n oiStatus = ORDER_PRODUCT_STATUS.PUTTING_AWAY // Default status = PUTTING_AWAY\n wsdStatus = WORKSHEET_STATUS.EXECUTING // Default status = EXECUTING\n }\n\n if (inventories.some((inv: Inventory) => !(inv instanceof Inventory))) {\n inventories = await this.trxMgr.getRepository(Inventory).findByIds(inventories.map((inv: Inventory) => inv.id))\n }\n\n let worksheetDetails: WorksheetDetail[] = []\n for (let inventory of inventories) {\n inventory.status = INVENTORY_STATUS.PUTTING_AWAY\n inventory.updater = this.user\n inventory = await this.trxMgr.getRepository(Inventory).save(inventory)\n\n // check if there's existing orderInventory\n let targetInventory: OrderInventory = await this.trxMgr.getRepository(OrderInventory).findOne({\n where: { inventory: { id: inventory.id } }\n })\n\n // if no existing orderInventory, create new one\n if (!targetInventory) {\n targetInventory = new OrderInventory()\n targetInventory.domain = this.domain\n targetInventory.bizplace = bizplace\n targetInventory.name = OrderNoGenerator.orderInventory()\n targetInventory.status = oiStatus\n targetInventory.type = ORDER_TYPES.ARRIVAL_NOTICE\n targetInventory.arrivalNotice = arrivalNotice\n targetInventory.inventory = inventory\n targetInventory.creator = this.user\n targetInventory.updater = this.user\n targetInventory = await this.trxMgr.getRepository(OrderInventory).save(targetInventory)\n }\n\n const newWorksheetDetails: WorksheetDetail[] = await this.createWorksheetDetails(\n worksheet,\n WORKSHEET_TYPE.PUTAWAY,\n [targetInventory],\n { status: wsdStatus, fromLocation: bufferLocation }\n )\n\n worksheetDetails.push(...newWorksheetDetails)\n }\n\n return {\n ...worksheet,\n worksheetDetails\n }\n }\n\n async activatePutaway(worksheetNo: string, putawayWorksheetDetails: Partial<WorksheetDetail>[]): Promise<Worksheet> {\n let worksheet: Worksheet = await this.findActivatableWorksheet(worksheetNo, WORKSHEET_TYPE.PUTAWAY, [\n 'arrivalNotice',\n 'worksheetDetails',\n 'worksheetDetails.targetInventory'\n ])\n\n let arrivalNotice: ArrivalNotice = worksheet.arrivalNotice\n const nonFinishedVasCnt: number = await this.trxMgr.getRepository(Worksheet).count({\n where: {\n domain: { id: this.domain.id },\n arrivalNotice: { id: arrivalNotice.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 const targetInventories: OrderInventory[] = worksheetDetails.map((wsd: WorksheetDetail) => {\n let targetInventory: OrderInventory = wsd.targetInventory\n targetInventory.status = ORDER_PRODUCT_STATUS.PUTTING_AWAY\n targetInventory.updater = this.user\n return targetInventory\n })\n await this.updateOrderTargets(targetInventories)\n\n arrivalNotice.status = ORDER_STATUS.PUTTING_AWAY\n arrivalNotice.updater = this.user\n await this.updateRefOrder(arrivalNotice)\n return this.activateWorksheet(worksheet, worksheetDetails, putawayWorksheetDetails)\n }\n\n async completePutaway(arrivalNoticeNo: string): Promise<Worksheet> {\n // Because of partial unloading current status of arrivalNotice can be PUTTING_AWAY or PROCESSING\n // PUTTING_AWAY means unloading is completely finished.\n // PROCESSING means some products are still being unloaded.\n let arrivalNotice: ArrivalNotice = await this.findRefOrder(ArrivalNotice, {\n name: arrivalNoticeNo,\n status: In([ORDER_STATUS.PUTTING_AWAY, ORDER_STATUS.PROCESSING])\n })\n\n // Check whether unloading is done or not.\n const unloadingWorksheetCnt: number = await this.trxMgr.getRepository(Worksheet).count({\n where: {\n domain: { id: this.domain.id },\n arrivalNotice: { id: arrivalNotice.id },\n type: WORKSHEET_TYPE.UNLOADING,\n status: WORKSHEET_STATUS.EXECUTING\n }\n })\n if (unloadingWorksheetCnt) throw new Error(`Unloading is not completed yet`)\n\n const putawayWorksheet: Worksheet = await this.findWorksheetByRefOrder(arrivalNotice, WORKSHEET_TYPE.PUTAWAY, [\n 'bufferLocation'\n ])\n await switchLocationStatus(this.domain, putawayWorksheet.bufferLocation, this.user, this.trxMgr)\n return await this.completeWorksheet(putawayWorksheet, ORDER_STATUS.DONE)\n }\n\n async putaway(\n worksheetDetailName: [string],\n palletId: string,\n cartonId: string,\n locationName: string\n ): Promise<void> {\n const reusablePallet: Pallet = await this.trxMgr.getRepository(Pallet).findOne({\n where: { domain: { id: this.domain.id }, name: palletId }\n })\n\n if (reusablePallet) {\n await this.putawayPallets(worksheetDetailName[0], reusablePallet, locationName)\n } else if (cartonId) {\n await this.putawayCarton(worksheetDetailName, cartonId, locationName)\n } else {\n await this.putawayPallet(worksheetDetailName[0], palletId, locationName)\n }\n }\n\n async putawayPallets(worksheetDetailName: string, reusablePallet: Pallet, locationName: string): Promise<void> {\n const worksheetDetail: WorksheetDetail = await this.findExecutableWorksheetDetailByName(\n worksheetDetailName,\n WORKSHEET_TYPE.PUTAWAY,\n [\n 'worksheet',\n 'worksheet.arrivalNotice',\n 'worksheet.worksheetDetails',\n 'worksheet.worksheetDetails.targetInventory',\n 'worksheet.worksheetDetails.targetInventory.inventory'\n ]\n )\n\n const worksheet: Worksheet = worksheetDetail.worksheet\n const arrivalNotice: ArrivalNotice = worksheet.arrivalNotice\n const worksheetDetails: WorksheetDetail[] = worksheet.worksheetDetails\n const inventories: Inventory[] = await this.trxMgr.getRepository(Inventory).find({\n where: {\n domain: { id: this.domain.id },\n reusablePallet: { id: reusablePallet.id },\n refOrderId: arrivalNotice.id,\n status: In([INVENTORY_STATUS.PUTTING_AWAY, INVENTORY_STATUS.UNLOADED])\n }\n })\n\n for (let inventory of inventories) {\n const worksheetDetail: WorksheetDetail = worksheetDetails.find(\n (wsd: WorksheetDetail) => wsd.targetInventory.inventory.name === inventory.name\n )\n\n let targetInventory: OrderInventory = worksheetDetail.targetInventory\n inventory = targetInventory.inventory\n\n let location: Location = await this.trxMgr.getRepository(Location).findOne({\n where: {\n domain: { id: this.domain.id },\n name: locationName,\n type: In([\n LOCATION_TYPE.SHELF,\n LOCATION_TYPE.BUFFER,\n LOCATION_TYPE.FLOOR,\n LOCATION_TYPE.QUARANTINE,\n LOCATION_TYPE.RESERVE\n ])\n },\n relations: ['warehouse']\n })\n if (!location) throw new Error(this.ERROR_MSG.FIND.NO_RESULT(locationName))\n const warehouse: Warehouse = location.warehouse\n const zone: string = location.zone\n\n inventory.location = location\n inventory.status = INVENTORY_STATUS.STORED\n inventory.warehouse = warehouse\n inventory.zone = zone\n await this.transactionInventory(inventory, arrivalNotice, 0, 0, INVENTORY_TRANSACTION_TYPE.PUTAWAY)\n\n targetInventory.status = ORDER_INVENTORY_STATUS.TERMINATED\n targetInventory.updater = this.user\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 putawayCarton(worksheetDetailName: [string], cartonId: string, locationName: string): Promise<void> {\n const worksheetDetails: WorksheetDetail[] = await this.findExecutableWorksheetDetailByNames(\n worksheetDetailName,\n WORKSHEET_TYPE.PUTAWAY,\n ['worksheet', 'worksheet.arrivalNotice', 'targetInventory', 'targetInventory.inventory']\n )\n\n for (var i = 0; i < worksheetDetails.length; i++) {\n const worksheetDetail = worksheetDetails[i]\n const worksheet: Worksheet = worksheetDetail.worksheet\n const arrivalNotice: ArrivalNotice = worksheet.arrivalNotice\n let targetInventory: OrderInventory = worksheetDetail.targetInventory\n let inventory: Inventory = targetInventory.inventory\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: locationName,\n type: In([\n LOCATION_TYPE.SHELF,\n LOCATION_TYPE.BUFFER,\n LOCATION_TYPE.FLOOR,\n LOCATION_TYPE.BIN,\n LOCATION_TYPE.QUARANTINE,\n LOCATION_TYPE.RESERVE\n ])\n },\n relations: ['warehouse']\n })\n\n if (!location) throw new Error(this.ERROR_MSG.FIND.NO_RESULT(locationName))\n const warehouse: Warehouse = location.warehouse\n const zone: string = warehouse.zone\n\n inventory.location = location\n inventory.status = INVENTORY_STATUS.STORED\n inventory.warehouse = warehouse\n inventory.zone = zone\n await this.transactionInventory(inventory, arrivalNotice, 0, 0, INVENTORY_TRANSACTION_TYPE.PUTAWAY)\n\n targetInventory.status = ORDER_INVENTORY_STATUS.TERMINATED\n targetInventory.updater = this.user\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 putawayPallet(worksheetDetailName: string, palletId: string, locationName: string): Promise<void> {\n const worksheetDetail: WorksheetDetail = await this.findExecutableWorksheetDetailByName(\n worksheetDetailName,\n WORKSHEET_TYPE.PUTAWAY,\n ['worksheet', 'worksheet.arrivalNotice', 'targetInventory', 'targetInventory.inventory']\n )\n\n const worksheet: Worksheet = worksheetDetail.worksheet\n const arrivalNotice: ArrivalNotice = worksheet.arrivalNotice\n let targetInventory: OrderInventory = worksheetDetail.targetInventory\n let inventory: Inventory = targetInventory.inventory\n\n if (inventory.palletId !== palletId) {\n throw new Error(this.ERROR_MSG.VALIDITY.UNEXPECTED_FIELD_VALUE('lot ID', palletId, inventory.palletId))\n }\n\n const location: Location = await this.trxMgr.getRepository(Location).findOne({\n where: {\n domain: { id: this.domain.id },\n name: locationName,\n type: In([\n LOCATION_TYPE.SHELF,\n LOCATION_TYPE.BUFFER,\n LOCATION_TYPE.FLOOR,\n LOCATION_TYPE.QUARANTINE,\n LOCATION_TYPE.RESERVE\n ])\n },\n relations: ['warehouse']\n })\n if (!location) throw new Error(this.ERROR_MSG.FIND.NO_RESULT(locationName))\n const warehouse: Warehouse = location.warehouse\n const zone: string = warehouse.zone\n\n inventory.location = location\n inventory.status = INVENTORY_STATUS.STORED\n inventory.warehouse = warehouse\n inventory.zone = zone\n await this.transactionInventory(inventory, arrivalNotice, 0, 0, INVENTORY_TRANSACTION_TYPE.PUTAWAY)\n\n targetInventory.status = ORDER_INVENTORY_STATUS.TERMINATED\n targetInventory.updater = this.user\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 async undoPutaway(worksheetDetailName: [string], palletId: string, cartonId: string): Promise<void> {\n if (cartonId) {\n await this.undoCarton(worksheetDetailName, cartonId)\n } else {\n await this.undoPallet(worksheetDetailName[0], palletId)\n }\n }\n\n async undoPallet(worksheetDetailName: string, palletId: string): Promise<void> {\n let worksheetDetail: WorksheetDetail = await this.findWorksheetDetailByName(worksheetDetailName, [\n 'worksheet',\n 'worksheet.arrivalNotice',\n 'targetInventory',\n 'targetInventory.inventory',\n 'fromLocation'\n ])\n this.checkRecordValidity(worksheetDetail, { status: WORKSHEET_STATUS.DONE })\n\n const worksheet: Worksheet = worksheetDetail.worksheet\n const arrivalNotice: ArrivalNotice = worksheet.arrivalNotice\n const targetInventory: OrderInventory = worksheetDetail.targetInventory\n let inventory: Inventory = await this.trxMgr.getRepository(Inventory).findOne({\n where: { domain: { id: this.domain.id }, palletId }\n })\n await this.checkReleaseTarget(inventory)\n\n const bufferLocation: Location = await this.trxMgr.getRepository(Location).findOne({\n where: { domain: { id: this.domain.id }, name: worksheetDetail.fromLocation.name }\n })\n inventory.location = bufferLocation\n inventory.status = INVENTORY_STATUS.UNLOADED\n await this.transactionInventory(inventory, arrivalNotice, 0, 0, INVENTORY_TRANSACTION_TYPE.UNDO_PUTAWAY)\n\n targetInventory.status = ORDER_PRODUCT_STATUS.PUTTING_AWAY\n targetInventory.updater = this.user\n await this.updateOrderTargets([targetInventory])\n\n worksheetDetail.status = WORKSHEET_STATUS.EXECUTING\n worksheetDetail.updater = this.user\n await this.trxMgr.getRepository(WorksheetDetail).save(worksheetDetail)\n }\n\n async undoCarton(worksheetDetailName: [string], cartonId: string): Promise<void> {\n let worksheetDetails: WorksheetDetail[] = await this.findWorksheetDetailByNames(worksheetDetailName, [\n 'worksheet',\n 'worksheet.arrivalNotice',\n 'targetInventory',\n 'targetInventory.inventory',\n 'fromLocation'\n ])\n\n for (var i = 0; i < worksheetDetails?.length; i++) {\n const worksheetDetail = worksheetDetails[i]\n this.checkRecordValidity(worksheetDetail, { status: WORKSHEET_STATUS.DONE })\n const worksheet: Worksheet = worksheetDetail.worksheet\n const arrivalNotice: ArrivalNotice = worksheet.arrivalNotice\n const targetInventory: OrderInventory = worksheetDetail.targetInventory\n let inventory: Inventory = await this.trxMgr.getRepository(Inventory).findOne({\n where: { domain: { id: this.domain.id }, cartonId, palletId: targetInventory.inventory.palletId }\n })\n await this.checkReleaseTarget(inventory)\n\n const bufferLocation: Location = await this.trxMgr.getRepository(Location).findOne({\n where: { domain: { id: this.domain.id }, name: worksheetDetail.fromLocation.name }\n })\n inventory.location = bufferLocation\n inventory.status = INVENTORY_STATUS.UNLOADED\n await this.transactionInventory(inventory, arrivalNotice, 0, 0, INVENTORY_TRANSACTION_TYPE.UNDO_PUTAWAY)\n\n targetInventory.status = ORDER_PRODUCT_STATUS.PUTTING_AWAY\n targetInventory.updater = this.user\n await this.updateOrderTargets([targetInventory])\n\n worksheetDetail.status = WORKSHEET_STATUS.EXECUTING\n worksheetDetail.updater = this.user\n await this.trxMgr.getRepository(WorksheetDetail).save(worksheetDetail)\n }\n }\n\n private async checkReleaseTarget(inventory: Inventory): Promise<void> {\n const releaseTargetInventory: OrderInventory = await this.trxMgr.getRepository(OrderInventory).findOne({\n where: {\n domain: { id: this.domain.id },\n type: ORDER_TYPES.RELEASE_OF_GOODS,\n inventory\n }\n })\n\n if (releaseTargetInventory)\n throw new Error(\n this.ERROR_MSG.VALIDITY.CANT_PROCEED_STEP_BY('undo putaway', 'this pallet ID has been selected for releasing')\n )\n }\n}\n"]}
|
|
@@ -828,7 +828,7 @@ class UnloadingWorksheetController extends vas_worksheet_controller_1.VasWorkshe
|
|
|
828
828
|
var _a;
|
|
829
829
|
let inputQty = 'false';
|
|
830
830
|
const enableInputQty = await this.trxMgr.getRepository(setting_base_1.Setting).findOne({
|
|
831
|
-
where: { domain: this.domain, category: 'id-rule', name: 'enable-input-qty' }
|
|
831
|
+
where: { domain: { id: this.domain.id }, category: 'id-rule', name: 'enable-input-qty' }
|
|
832
832
|
});
|
|
833
833
|
if (enableInputQty)
|
|
834
834
|
inputQty = enableInputQty.value;
|
|
@@ -851,7 +851,7 @@ class UnloadingWorksheetController extends vas_worksheet_controller_1.VasWorkshe
|
|
|
851
851
|
if (inventories === undefined) {
|
|
852
852
|
const inventoryList = await this.trxMgr.getRepository(warehouse_base_1.Inventory).findAndCount({
|
|
853
853
|
where: {
|
|
854
|
-
domain: this.domain,
|
|
854
|
+
domain: { id: this.domain },
|
|
855
855
|
refOrderId: arrivalNotice.id
|
|
856
856
|
}
|
|
857
857
|
});
|
|
@@ -866,7 +866,11 @@ class UnloadingWorksheetController extends vas_worksheet_controller_1.VasWorkshe
|
|
|
866
866
|
}
|
|
867
867
|
}
|
|
868
868
|
async completeUnloading(arrivalNoticeNo, unloadingWorksheetDetails) {
|
|
869
|
-
let arrivalNotice = await this.findRefOrder(sales_base_1.ArrivalNotice, {
|
|
869
|
+
let arrivalNotice = await this.findRefOrder(sales_base_1.ArrivalNotice, {
|
|
870
|
+
domain: { id: this.domain.id },
|
|
871
|
+
name: arrivalNoticeNo,
|
|
872
|
+
status: (0, typeorm_1.In)([sales_base_1.ORDER_STATUS.PROCESSING, sales_base_1.ORDER_STATUS.PUTTING_AWAY])
|
|
873
|
+
}, ['orderProducts', 'releaseGood', 'bizplace', 'bizplace.domain']);
|
|
870
874
|
if (arrivalNotice.crossDocking) {
|
|
871
875
|
// Picking worksheet for cross docking should be completed before complete it
|
|
872
876
|
// Find picking worksheet
|