@things-factory/warehouse-base 5.0.7 → 5.0.14
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/constants/index.js +6 -19
- package/dist-server/constants/index.js.map +1 -1
- package/dist-server/constants/inventory.js.map +1 -1
- package/dist-server/constants/location.js.map +1 -1
- package/dist-server/constants/pallet.js.map +1 -1
- package/dist-server/constants/rule-type.js.map +1 -1
- package/dist-server/constants/tote.js.map +1 -1
- package/dist-server/controllers/ecommerce/ecommerce-controller.js.map +1 -1
- package/dist-server/controllers/ecommerce/index.js +3 -16
- package/dist-server/controllers/ecommerce/index.js.map +1 -1
- package/dist-server/controllers/ecommerce/sellercraft-controller.js.map +1 -1
- package/dist-server/controllers/index.js +3 -16
- package/dist-server/controllers/index.js.map +1 -1
- package/dist-server/controllers/warehouse-controller.js.map +1 -1
- package/dist-server/index.js +6 -19
- package/dist-server/index.js.map +1 -1
- package/dist-server/middlewares/index.js.map +1 -1
- package/dist-server/migrations/index.js.map +1 -1
- package/dist-server/service/index.js +28 -41
- package/dist-server/service/index.js.map +1 -1
- package/dist-server/service/inventory/index.js.map +1 -1
- package/dist-server/service/inventory/inventory-mutation.js +50 -61
- package/dist-server/service/inventory/inventory-mutation.js.map +1 -1
- package/dist-server/service/inventory/inventory-query.js +125 -136
- package/dist-server/service/inventory/inventory-query.js.map +1 -1
- package/dist-server/service/inventory/inventory-types.js +198 -206
- package/dist-server/service/inventory/inventory-types.js.map +1 -1
- package/dist-server/service/inventory/inventory.js +133 -141
- package/dist-server/service/inventory/inventory.js.map +1 -1
- package/dist-server/service/inventory-change/index.js.map +1 -1
- package/dist-server/service/inventory-change/inventory-change-mutation.js +51 -62
- package/dist-server/service/inventory-change/inventory-change-mutation.js.map +1 -1
- package/dist-server/service/inventory-change/inventory-change-query.js +29 -40
- package/dist-server/service/inventory-change/inventory-change-query.js.map +1 -1
- package/dist-server/service/inventory-change/inventory-change-types.js +20 -28
- package/dist-server/service/inventory-change/inventory-change-types.js.map +1 -1
- package/dist-server/service/inventory-change/inventory-change.js +68 -76
- package/dist-server/service/inventory-change/inventory-change.js.map +1 -1
- package/dist-server/service/inventory-history/index.js.map +1 -1
- package/dist-server/service/inventory-history/inventory-history-mutation.js +33 -44
- package/dist-server/service/inventory-history/inventory-history-mutation.js.map +1 -1
- package/dist-server/service/inventory-history/inventory-history-query.js +105 -116
- package/dist-server/service/inventory-history/inventory-history-query.js.map +1 -1
- package/dist-server/service/inventory-history/inventory-history-types.js +282 -290
- package/dist-server/service/inventory-history/inventory-history-types.js.map +1 -1
- package/dist-server/service/inventory-history/inventory-history.js +82 -90
- package/dist-server/service/inventory-history/inventory-history.js.map +1 -1
- package/dist-server/service/inventory-item/index.js.map +1 -1
- package/dist-server/service/inventory-item/inventory-item-mutation.js +47 -58
- package/dist-server/service/inventory-item/inventory-item-mutation.js.map +1 -1
- package/dist-server/service/inventory-item/inventory-item-query.js +41 -52
- package/dist-server/service/inventory-item/inventory-item-query.js.map +1 -1
- package/dist-server/service/inventory-item/inventory-item-type.js +44 -52
- package/dist-server/service/inventory-item/inventory-item-type.js.map +1 -1
- package/dist-server/service/inventory-item/inventory-item.js +44 -52
- package/dist-server/service/inventory-item/inventory-item.js.map +1 -1
- package/dist-server/service/inventory-item-change/index.js.map +1 -1
- package/dist-server/service/inventory-item-change/inventory-item-change-mutation.js +33 -44
- package/dist-server/service/inventory-item-change/inventory-item-change-mutation.js.map +1 -1
- package/dist-server/service/inventory-item-change/inventory-item-change-query.js +29 -40
- package/dist-server/service/inventory-item-change/inventory-item-change-query.js.map +1 -1
- package/dist-server/service/inventory-item-change/inventory-item-change-type.js +40 -48
- package/dist-server/service/inventory-item-change/inventory-item-change-type.js.map +1 -1
- package/dist-server/service/inventory-item-change/inventory-item-change.js +34 -42
- package/dist-server/service/inventory-item-change/inventory-item-change.js.map +1 -1
- package/dist-server/service/inventory-product/index.js.map +1 -1
- package/dist-server/service/inventory-product/inventory-product-mutation.js +33 -44
- package/dist-server/service/inventory-product/inventory-product-mutation.js.map +1 -1
- package/dist-server/service/inventory-product/inventory-product-query.js +29 -40
- package/dist-server/service/inventory-product/inventory-product-query.js.map +1 -1
- package/dist-server/service/inventory-product/inventory-product-type.js +34 -42
- package/dist-server/service/inventory-product/inventory-product-type.js.map +1 -1
- package/dist-server/service/inventory-product/inventory-product.js +34 -42
- package/dist-server/service/inventory-product/inventory-product.js.map +1 -1
- package/dist-server/service/location/index.js.map +1 -1
- package/dist-server/service/location/location-mutation.js +39 -50
- package/dist-server/service/location/location-mutation.js.map +1 -1
- package/dist-server/service/location/location-query.js +65 -76
- package/dist-server/service/location/location-query.js.map +1 -1
- package/dist-server/service/location/location-types.js +105 -113
- package/dist-server/service/location/location-types.js.map +1 -1
- package/dist-server/service/location/location.js +41 -49
- package/dist-server/service/location/location.js.map +1 -1
- package/dist-server/service/movement/index.js.map +1 -1
- package/dist-server/service/movement/movement-mutation.js +21 -32
- package/dist-server/service/movement/movement-mutation.js.map +1 -1
- package/dist-server/service/movement/movement-query.js +51 -65
- package/dist-server/service/movement/movement-query.js.map +1 -1
- package/dist-server/service/movement/movement-types.js +43 -51
- package/dist-server/service/movement/movement-types.js.map +1 -1
- package/dist-server/service/movement/movement.js +30 -38
- package/dist-server/service/movement/movement.js.map +1 -1
- package/dist-server/service/pallet/index.js.map +1 -1
- package/dist-server/service/pallet/pallet-mutation.js +39 -50
- package/dist-server/service/pallet/pallet-mutation.js.map +1 -1
- package/dist-server/service/pallet/pallet-query.js +48 -59
- package/dist-server/service/pallet/pallet-query.js.map +1 -1
- package/dist-server/service/pallet/pallet-types.js +39 -47
- package/dist-server/service/pallet/pallet-types.js.map +1 -1
- package/dist-server/service/pallet/pallet.js +34 -42
- package/dist-server/service/pallet/pallet.js.map +1 -1
- package/dist-server/service/pallet-count/index.js.map +1 -1
- package/dist-server/service/pallet-count/pallet-count-mutation.js +39 -50
- package/dist-server/service/pallet-count/pallet-count-mutation.js.map +1 -1
- package/dist-server/service/pallet-count/pallet-count-query.js +28 -39
- package/dist-server/service/pallet-count/pallet-count-query.js.map +1 -1
- package/dist-server/service/pallet-count/pallet-count-types.js +20 -28
- package/dist-server/service/pallet-count/pallet-count-types.js.map +1 -1
- package/dist-server/service/pallet-count/pallet-count.js +26 -34
- package/dist-server/service/pallet-count/pallet-count.js.map +1 -1
- package/dist-server/service/pallet-history/index.js.map +1 -1
- package/dist-server/service/pallet-history/pallet-history-mutation.js +33 -44
- package/dist-server/service/pallet-history/pallet-history-mutation.js.map +1 -1
- package/dist-server/service/pallet-history/pallet-history-query.js +29 -40
- package/dist-server/service/pallet-history/pallet-history-query.js.map +1 -1
- package/dist-server/service/pallet-history/pallet-history-types.js +20 -28
- package/dist-server/service/pallet-history/pallet-history-types.js.map +1 -1
- package/dist-server/service/pallet-history/pallet-history.js +34 -42
- package/dist-server/service/pallet-history/pallet-history.js.map +1 -1
- package/dist-server/service/reduced-inventory-history/index.js.map +1 -1
- package/dist-server/service/reduced-inventory-history/reduced-inventory-history.js +52 -60
- package/dist-server/service/reduced-inventory-history/reduced-inventory-history.js.map +1 -1
- package/dist-server/service/tote/index.js.map +1 -1
- package/dist-server/service/tote/tote-mutation.js +46 -57
- package/dist-server/service/tote/tote-mutation.js.map +1 -1
- package/dist-server/service/tote/tote-query.js +44 -55
- package/dist-server/service/tote/tote-query.js.map +1 -1
- package/dist-server/service/tote/tote-types.js +24 -32
- package/dist-server/service/tote/tote-types.js.map +1 -1
- package/dist-server/service/tote/tote.js +30 -38
- package/dist-server/service/tote/tote.js.map +1 -1
- package/dist-server/service/warehouse/index.js.map +1 -1
- package/dist-server/service/warehouse/warehouse-mutation.js +33 -44
- package/dist-server/service/warehouse/warehouse-mutation.js.map +1 -1
- package/dist-server/service/warehouse/warehouse-query.js +29 -40
- package/dist-server/service/warehouse/warehouse-query.js.map +1 -1
- package/dist-server/service/warehouse/warehouse-types.js +28 -36
- package/dist-server/service/warehouse/warehouse-types.js.map +1 -1
- package/dist-server/service/warehouse/warehouse.js +31 -39
- package/dist-server/service/warehouse/warehouse.js.map +1 -1
- package/dist-server/tsconfig.tsbuildinfo +1 -0
- package/dist-server/utils/datetime-util.js.map +1 -1
- package/dist-server/utils/index.js +4 -17
- package/dist-server/utils/index.js.map +1 -1
- package/dist-server/utils/inventory-no-generator.js.map +1 -1
- package/dist-server/utils/inventory-util.js.map +1 -1
- package/package.json +8 -8
- package/server/service/inventory/inventory-mutation.ts +2 -2
- package/server/service/inventory/inventory-query.ts +48 -16
- package/server/service/inventory/inventory.ts +6 -5
- package/server/service/inventory-change/inventory-change-mutation.ts +1 -1
- package/server/service/inventory-change/inventory-change-query.ts +2 -2
- package/server/service/inventory-history/inventory-history-query.ts +29 -28
- package/server/service/inventory-history/inventory-history.ts +39 -39
- package/server/service/inventory-item/inventory-item-mutation.ts +3 -3
- package/server/service/movement/movement-query.ts +3 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inventory-util.js","sourceRoot":"","sources":["../../server/utils/inventory-util.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"inventory-util.js","sourceRoot":"","sources":["../../server/utils/inventory-util.ts"],"names":[],"mappings":"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","sourcesContent":["import { EntityManager, getRepository, Repository } from 'typeorm'\n\nimport { User } from '@things-factory/auth-base'\nimport { Bizplace } from '@things-factory/biz-base'\nimport { Product } from '@things-factory/product-base'\nimport { Domain } from '@things-factory/shell'\n\nimport { INVENTORY_STATUS, INVENTORY_TRANSACTION_TYPE, LOCATION_STATUS, LOCATION_TYPE } from '../constants'\nimport { Inventory, InventoryHistory, Location } from '../service'\nimport { InventoryNoGenerator } from '../utils'\n\nexport class InventoryUtil {\n protected trxMgr: EntityManager\n protected domain: Domain\n protected user: User\n\n constructor(trxMgr: EntityManager, domain: Domain, user: User) {\n this.trxMgr = trxMgr\n this.domain = domain\n this.user = user\n }\n\n public readonly ERROR_MSG = {\n FIND: {\n NO_RESULT: (condition: any) => `There's no results matched with condition ${condition}`,\n NO_CHILD_RESULT: (condition: any) => `There's no child result matched with condition ${condition}`,\n NOT_MATCH: (source: any, target: any) => `Unable to find matching ${target} using ${source}`\n },\n ORDER_ITEM: {\n NO_MATCHING_RESULT: (condition: any, condition2: any) =>\n `Current item with ${condition} (${condition2}) not belong to this order`,\n EXCESS_QTY: (condition: any, condition2: any, condition3: any) =>\n `Excess qty is scanned for item ${condition}, ${condition2} (${condition3})`\n },\n PRODUCT: {\n NO_MATCHING_RESULT: (condition: any, condition2: any) =>\n `Order packing type and packing size not match with product master, ${condition} (${condition2})`,\n BARCODE_NOT_EXIST: (condition: any, condition2: any, condition3: any) =>\n `Product barcode - ${condition} with ${condition2} ${condition3}, not exist in master data.`\n },\n CREATE: {\n ID_EXISTS: 'Target has ID already',\n EMPTY_CREATOR: 'Cannot create without creator',\n EMPTY_UPDATER: 'Cannot create without updater'\n },\n UPDATE: {\n ID_NOT_EXISTS: `Target doesn't have ID`,\n EMPTY_UPDATER: 'Cannot update without updater'\n },\n VALIDITY: {\n UNEXPECTED_FIELD_VALUE: (field: string, expectedValue: any, actualValue: any) =>\n `Expected ${field} value is ${expectedValue} but got ${actualValue}`,\n DUPLICATED: (field: string, value: any) => `There is duplicated ${field} value (${value})`,\n CANT_PROCEED_STEP_BY: (step: string, reason: string) => `Can't proceed to ${step} because ${reason}`\n }\n }\n\n async createInventory(inventory: Partial<Inventory>): Promise<Inventory> {\n inventory = this.setStamp(inventory)\n return await this.trxMgr.getRepository(Inventory).save(inventory)\n }\n\n /**\n * @summary Update inventory record\n * @description It will update inventory after set a stamp (domain, updater)\n * The special point of this function is that this changes won't generate inventory history\n * If you want to generate inventory history automatically you would better to use transactionInventory function\n */\n async updateInventory(inventory: Partial<Inventory>): Promise<Inventory> {\n if (!inventory.id) throw new Error(this.ERROR_MSG.UPDATE.ID_NOT_EXISTS)\n inventory = this.setStamp(inventory)\n return await this.trxMgr.getRepository(Inventory).save(inventory)\n }\n\n /**\n * @summary Do transaction on inventory record\n * @description It will update inventory after set a temp (domain, updater)\n * and then generate inventory history based on current changes\n */\n async transactionInventory(\n inventory: Inventory,\n refOrder: any,\n changedQty: number,\n changedUom: number,\n transactionType: string\n ): Promise<Inventory> {\n if (inventory.id) {\n inventory = await this.updateInventory(inventory)\n } else {\n inventory = await this.createInventory(inventory)\n }\n\n await generateInventoryHistory(inventory, refOrder, transactionType, changedQty, changedUom, this.user, this.trxMgr)\n\n return inventory\n }\n\n /**\n * @summary set common stamp like domain, creator, updater\n * @description Set common stamp to passed record\n * If it doesn't have id it will handle it as creating one\n * If it has id it will handle it as updating one\n */\n setStamp(record: Record<string, any>): Record<string, any> {\n if (!record.domain) record.domain = this.domain\n if (!record.id && !record.creator) record.creator = this.user\n if (!record.updater) record.updater = this.user\n\n return record\n }\n}\n\n/**\n * @description It will insert new record into inventory histories table.\n * seq will be calculated based on number of records for one specific pallet id (provided by inventory object)\n */\nexport async function generateInventoryHistory(\n inventory: Inventory,\n refOrder: any,\n transactionType: string,\n qty: number,\n uomValue: number,\n user: User,\n trxMgr?: EntityManager\n): Promise<InventoryHistory> {\n const invHistoryRepo: Repository<InventoryHistory> =\n trxMgr?.getRepository(InventoryHistory) || getRepository(InventoryHistory)\n const invRepo: Repository<Inventory> = trxMgr?.getRepository(Inventory) || getRepository(Inventory)\n\n if (!inventory?.id) throw new Error(`Can't find out ID of inventory.`)\n\n inventory = await invRepo.findOne({\n where: { id: inventory.id },\n relations: ['domain', 'bizplace', 'product', 'warehouse', 'location']\n })\n\n const domain: Domain = inventory.domain\n const location: Location = inventory.location\n\n const lastInvHistory: InventoryHistory = await invHistoryRepo.findOne({\n where: {\n domain: inventory.domain,\n palletId: inventory.palletId\n },\n order: {\n seq: 'DESC'\n }\n })\n\n let seq: number = 0\n let openingQty: number = 0\n let openingUomValue: number = 0\n\n if (lastInvHistory) {\n openingQty = lastInvHistory.openingQty + lastInvHistory.qty\n openingUomValue = lastInvHistory.openingUomValue + lastInvHistory.uomValue\n seq = lastInvHistory.seq + 1\n }\n\n let remainQty = (openingQty || 0) + (qty || 0)\n\n let inventoryHistory: any = new InventoryHistory()\n\n inventoryHistory = {\n ...inventory,\n name: InventoryNoGenerator.inventoryHistoryName(),\n inventory,\n seq: seq,\n status: remainQty == 0 ? INVENTORY_STATUS.TERMINATED : inventory.status,\n transactionType,\n refOrderId: refOrder?.id || null,\n orderNo: refOrder?.name || null,\n orderRefNo: refOrder?.refNo || null,\n qty,\n openingQty,\n uomValue,\n openingUomValue: openingUomValue,\n creator: user,\n updater: user\n }\n\n delete inventoryHistory.updatedAt\n delete inventoryHistory.createdAt\n delete inventoryHistory.id\n\n let newInventoryHistory = await invHistoryRepo.save(inventoryHistory)\n\n if (remainQty == 0) {\n seq = seq + 1\n let terminatedHistory = {\n ...newInventoryHistory,\n name: InventoryNoGenerator.inventoryHistoryName(),\n seq: seq,\n status: INVENTORY_STATUS.TERMINATED,\n transactionType: INVENTORY_TRANSACTION_TYPE.TERMINATED,\n uom: inventory.uom,\n qty: 0,\n openingQty: 0,\n uomValue: 0,\n openingUomValue: 0\n }\n\n delete terminatedHistory.id\n\n newInventoryHistory = await invHistoryRepo.save(terminatedHistory)\n inventory.status = INVENTORY_STATUS.TERMINATED\n }\n\n if (inventory.lastSeq !== seq) {\n await invRepo.update(inventory.id, { lastSeq: newInventoryHistory.seq, updater: user })\n }\n\n await switchLocationStatus(domain, location, user, trxMgr)\n return newInventoryHistory\n}\n\n/**\n * @description: Check location emptiness and update status of location\n * @param domain\n * @param location\n * @param updater\n * @param trxMgr\n */\nexport async function switchLocationStatus(\n domain: Domain,\n location: Location,\n updater: User,\n trxMgr?: EntityManager\n): Promise<Location> {\n const invRepo: Repository<Inventory> = trxMgr?.getRepository(Inventory) || getRepository(Inventory)\n const locationRepo: Repository<Location> = trxMgr?.getRepository(Location) || getRepository(Location)\n const allocatedItemsCnt: number = await invRepo.count({\n domain,\n status: INVENTORY_STATUS.STORED,\n location\n })\n\n if (!allocatedItemsCnt && location.status !== LOCATION_STATUS.EMPTY) {\n location = await locationRepo.save({\n ...location,\n status: LOCATION_STATUS.EMPTY,\n updater\n })\n } else if (allocatedItemsCnt && location.status === LOCATION_STATUS.EMPTY) {\n location = await locationRepo.save({\n ...location,\n status: LOCATION_STATUS.OCCUPIED,\n updater\n })\n }\n\n return location\n}\n\nexport async function checkPalletDuplication(\n domain: Domain,\n bizplace: Bizplace,\n palletId: string,\n trxMgr?: EntityManager\n): Promise<boolean> {\n const invRepo: Repository<Inventory> = trxMgr?.getRepository(Inventory) || getRepository(Inventory)\n const duplicatedPalletCnt: number = await invRepo.count({\n domain,\n bizplace,\n palletId\n })\n\n return Boolean(duplicatedPalletCnt)\n}\n\n/**\n * @description Check whether inventory is same with passed conditions\n * @param {Domain} domain\n * @param {Bizplace} bizplace\n * @param {String} palletId\n * @param {String} batchId\n * @param {String | Product} product\n * @param {String} packingType\n * @param {EntityManager} trxMgr\n */\nexport async function checkPalletIdenticallity(\n domain: Domain,\n bizplace: Bizplace,\n palletId: string,\n batchId: string,\n product: string | Product,\n packingType: string,\n trxMgr?: EntityManager\n): Promise<{ identicallity: boolean; errorMessage?: string }> {\n const productRepo: Repository<Product> = trxMgr?.getRepository(Product) || getRepository(Product)\n const invRepo: Repository<Inventory> = trxMgr?.getRepository(Inventory) || getRepository(Inventory)\n\n if (typeof product === 'string') {\n const foundProduct: Product = await productRepo.findOne(product)\n if (!foundProduct) throw new Error(`Failed to find product with ${product}`)\n product = foundProduct\n }\n\n const inv: Inventory = await invRepo.findOne({\n where: { domain, bizplace, palletId },\n relations: ['product']\n })\n\n if (batchId !== inv.batchId) return { identicallity: false, errorMessage: `Batch ID is not matched with ${batchId}` }\n\n if (product?.id !== inv?.product?.id)\n return { identicallity: false, errorMessage: `Product is not matched with ${product.name}` }\n\n if (packingType !== inv.packingType)\n return { identicallity: false, errorMessage: `Packing Type is not matched with ${packingType}` }\n\n return { identicallity: true }\n}\n\n/**\n * @description Check whether inventory is same with passed conditions\n * @param {Domain} domain\n * @param {Domain} productOwnerDomain\n * @param {OrderProduct} bizplace *\n * @param {EntityManager} trxMgr\n */\nexport async function getProductBundleInventory(\n domain: Domain,\n productOwnerDomain: Domain,\n orderProducts: any[],\n trxMgr: EntityManager\n): Promise<any> {\n let orderProductsJson = JSON.stringify(\n orderProducts.map(itm => {\n return {\n ...itm,\n product_id: itm.product.id,\n packing_type: itm.packingType,\n packing_size: itm.packingSize,\n uom: itm.uom\n }\n }) || []\n )\n\n const result: any[] = await trxMgr.query(\n `\n select product_bundle_id, sku, name, min(available_qty) as qty from (\n select\n pb.sku, pb.name, pbs.product_bundle_id, pbs.bundle_qty, pd.product_id, pd.packing_type, pd.packing_size, pd.uom,\n floor(coalesce(sum(inv.qty - coalesce(inv.locked_qty,0)),0)/pbs.bundle_qty) as available_qty, \n floor(coalesce(sum(inv.uom_value - coalesce(inv.locked_uom_value,0)),0)/pbs.bundle_qty) as available_uom_value \n from (\n select pb.id, pb.sku, pb.name\n from json_populate_recordset(NULL::order_products,'${orderProductsJson}') src \n inner join product_details pd ON src.product_id = pd.product_id and src.packing_type = pd.packing_type and src.packing_size = pd.packing_size and src.uom = pd.uom\n inner join product_bundle_settings pbs on pbs.product_detail_id = pd.id\n inner join product_bundles pb on pb.id = pbs.product_bundle_id and pb.status = 'ACTIVATED'\n where pb.domain_id = $1\n group by pb.id, pb.sku, pb.name\n ) pb\n inner join product_bundle_settings pbs on pbs.product_bundle_id = pb.id\n inner join product_details pd on pd.id = pbs.product_detail_id \n left join inventories inv on ((inv.status <> 'TERMINATED' and (inv.qty - coalesce(inv.locked_qty,0)) > 0) or (inv.status = 'TERMINATED' and (inv.qty - coalesce(inv.locked_qty,0)) = 0)) and inv.product_id = pd.product_id and inv.packing_type = pd.packing_type and inv.packing_size = pd.packing_size and inv.uom = pd.uom\n where inv.domain_id = $2\n group by pb.sku, pb.name, pbs.product_bundle_id, pbs.bundle_qty, pd.product_id, pd.packing_type, pd.packing_size, pd.uom\n ) foo group by product_bundle_id, sku, name\n `,\n [productOwnerDomain.id, domain.id]\n )\n\n return result\n}\n\n/**\n * @description This function will return multiple products\n * and it is different with @inventoriesByStrategy that returns\n * inventories for one product only\n * @param {string} bizplaceId\n * @param {string} worksheetId\n * @param {any[]} orderProducts\n * @param {string} pickingStrategy\n * @param {[Object]} locationSortingRules\n * @param {EntityManager} trxMgr\n * @returns inventories for multiple products\n */\nexport async function getInventoriesByStrategy(\n domainId: string,\n bizplaceId: string,\n worksheetId: string,\n orderProducts: any[],\n locationSortingRules: any[],\n trxMgr: EntityManager\n): Promise<Inventory[]> {\n let orderProductsJSON: string = JSON.stringify(orderProducts)\n let locationSorting: string = (locationSortingRules || [])\n .map((rule: { name: string; descOrder: boolean }) => {\n return `l.${rule.name}${rule.descOrder ? 'DESC' : ''}`\n })\n .join(', ')\n\n if (locationSorting === '') locationSorting = 'l.name'\n\n await trxMgr.query(\n `\n CREATE TEMP TABLE temp_op2(\n \"productId\" VARCHAR(50),\n \"batchId\" VARCHAR(50),\n \"packingType\" VARCHAR(50),\n \"packingSize\" INT,\n \"uom\" VARCHAR(10),\n \"releaseQty\" INT,\n \"pickingStrategy\" VARCHAR(25),\n \"orderProductId\" VARCHAR(50)\n );\n `\n )\n\n await trxMgr.query(\n `\n INSERT INTO temp_op2\n SELECT \"productId\", \"batchId\", \"packingType\", \"packingSize\", \"uom\", \"releaseQty\", \"pickingStrategy\", \"orderProductId\"\n FROM JSON_POPULATE_RECORDSET(NULL::temp_op2, $1) js\n `,\n [orderProductsJSON]\n )\n\n await trxMgr.query(\n `\n CREATE TEMP TABLE acc_oi2 AS (\n SELECT oi.inventory_id, SUM(oi.release_qty) AS total_release_qty, SUM(oi.release_uom_value) AS total_release_uom_value\n FROM order_inventories oi\n WHERE oi.status IN ('PENDING','PENDING_RECEIVE','PENDING_WORKSHEET','PENDING_SPLIT')\n AND oi.bizplace_id = $1\n AND oi.inventory_id NOTNULL\n AND oi.ref_worksheet_id != $2\n GROUP BY oi.inventory_id\n )\n `,\n [bizplaceId, worksheetId]\n )\n\n // get inventories\n let inventories = await trxMgr.query(\n `\n SELECT\n i.id,\n op.\"productId\",\n op.\"batchId\",\n i.qty - COALESCE(i.locked_qty,0) - COALESCE(foo.total_release_qty,0) AS \"remainQty\",\n i.uom_value - COALESCE(i.locked_uom_value,0) - COALESCE(foo.total_release_uom_value,0) AS \"remainUomValue\",\n op.\"packingType\",\n op.\"packingSize\",\n op.\"uom\",\n op.\"orderProductId\",\n ROW_NUMBER() OVER (\n PARTITION BY op.\"productId\", op.\"batchId\", op.\"packingType\", op.\"packingSize\", op.\"uom\"\n ORDER BY \n CASE WHEN op.\"pickingStrategy\" = 'FIFO' THEN i.created_at END,\n CASE WHEN op.\"pickingStrategy\" = 'FEFO' THEN i.expiration_date END,\n CASE WHEN op.\"pickingStrategy\" = 'LIFO' THEN i.created_at END DESC,\n CASE WHEN op.\"pickingStrategy\" = 'FMFO' THEN i.manufacture_date END,\n ${locationSorting}\n ) AS rn\n FROM inventories i\n INNER JOIN locations l ON i.location_id = l.id\n AND l.TYPE NOT IN ($1, $2)\n INNER JOIN temp_op2 op ON i.product_id = op.\"productId\"::uuid\n AND i.batch_id = op.\"batchId\"\n AND i.packing_type = op.\"packingType\"\n AND i.packing_size = op.\"packingSize\"\n LEFT JOIN acc_oi2 foo ON i.id = foo.inventory_id\n WHERE i.domain_id = $3\n AND i.bizplace_id = $4\n AND i.status = $5\n ORDER BY op.\"productId\", rn\n `,\n [LOCATION_TYPE.QUARANTINE, LOCATION_TYPE.RESERVE, domainId, bizplaceId, INVENTORY_STATUS.STORED]\n )\n\n await trxMgr.query('DROP TABLE temp_op2, acc_oi2')\n\n return inventories\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@things-factory/warehouse-base",
|
|
3
|
-
"version": "5.0.
|
|
3
|
+
"version": "5.0.14",
|
|
4
4
|
"main": "dist-server/index.js",
|
|
5
5
|
"browser": "client/index.js",
|
|
6
6
|
"things-factory": true,
|
|
@@ -24,12 +24,12 @@
|
|
|
24
24
|
"migration:create": "node ../../node_modules/typeorm/cli.js migration:create -d ./server/migrations"
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"@things-factory/biz-base": "^5.0.
|
|
28
|
-
"@things-factory/id-rule-base": "^5.0.
|
|
29
|
-
"@things-factory/integration-sellercraft": "^5.0.
|
|
30
|
-
"@things-factory/marketplace-base": "^5.0.
|
|
31
|
-
"@things-factory/product-base": "^5.0.
|
|
32
|
-
"@things-factory/setting-base": "^5.0.
|
|
27
|
+
"@things-factory/biz-base": "^5.0.14",
|
|
28
|
+
"@things-factory/id-rule-base": "^5.0.14",
|
|
29
|
+
"@things-factory/integration-sellercraft": "^5.0.14",
|
|
30
|
+
"@things-factory/marketplace-base": "^5.0.14",
|
|
31
|
+
"@things-factory/product-base": "^5.0.14",
|
|
32
|
+
"@things-factory/setting-base": "^5.0.14"
|
|
33
33
|
},
|
|
34
|
-
"gitHead": "
|
|
34
|
+
"gitHead": "9ceaa39746fcf42953e429fab2001353cd821ded"
|
|
35
35
|
}
|
|
@@ -153,7 +153,7 @@ export class InventoryMutation {
|
|
|
153
153
|
updater: user,
|
|
154
154
|
lastSeq: 0,
|
|
155
155
|
...newRecord
|
|
156
|
-
})
|
|
156
|
+
} as any)
|
|
157
157
|
|
|
158
158
|
await tx.getRepository(InventoryHistory).save({
|
|
159
159
|
...newRecord,
|
|
@@ -277,7 +277,7 @@ export class InventoryMutation {
|
|
|
277
277
|
}
|
|
278
278
|
|
|
279
279
|
delete inventoryHistory.id
|
|
280
|
-
await tx.getRepository(InventoryHistory).save(inventoryHistory)
|
|
280
|
+
await tx.getRepository(InventoryHistory).save(inventoryHistory as any)
|
|
281
281
|
|
|
282
282
|
newHistoryRecord.qty = newRecord.qty || inventory.qty
|
|
283
283
|
newHistoryRecord.uomValue = newRecord.uomValue || inventory.uomValue || 0
|
|
@@ -1,16 +1,48 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
import {
|
|
12
|
-
|
|
13
|
-
|
|
1
|
+
import {
|
|
2
|
+
Arg,
|
|
3
|
+
Args,
|
|
4
|
+
Ctx,
|
|
5
|
+
Directive,
|
|
6
|
+
FieldResolver,
|
|
7
|
+
Query,
|
|
8
|
+
Resolver,
|
|
9
|
+
Root,
|
|
10
|
+
} from 'type-graphql';
|
|
11
|
+
import {
|
|
12
|
+
Brackets,
|
|
13
|
+
EntityManager,
|
|
14
|
+
Equal,
|
|
15
|
+
getRepository,
|
|
16
|
+
Not,
|
|
17
|
+
Repository,
|
|
18
|
+
SelectQueryBuilder,
|
|
19
|
+
} from 'typeorm';
|
|
20
|
+
|
|
21
|
+
import { User } from '@things-factory/auth-base';
|
|
22
|
+
import {
|
|
23
|
+
Bizplace,
|
|
24
|
+
getPartnersCompanyBizplaces,
|
|
25
|
+
getPermittedBizplaceIds,
|
|
26
|
+
} from '@things-factory/biz-base';
|
|
27
|
+
import {
|
|
28
|
+
Product,
|
|
29
|
+
ProductBundleSetting,
|
|
30
|
+
ProductDetail,
|
|
31
|
+
} from '@things-factory/product-base';
|
|
32
|
+
import { Setting } from '@things-factory/setting-base';
|
|
33
|
+
import {
|
|
34
|
+
buildQuery,
|
|
35
|
+
Domain,
|
|
36
|
+
Filter,
|
|
37
|
+
ListParam,
|
|
38
|
+
Pagination,
|
|
39
|
+
Sorting,
|
|
40
|
+
} from '@things-factory/shell';
|
|
41
|
+
|
|
42
|
+
import { INVENTORY_STATUS, LOCATION_TYPE } from '../../constants';
|
|
43
|
+
import { InventoryChange } from '../inventory-change/inventory-change';
|
|
44
|
+
import { Inventory } from './inventory';
|
|
45
|
+
import { InventoryBundleGroupDetail, InventoryList } from './inventory-types';
|
|
14
46
|
|
|
15
47
|
@Resolver(Inventory)
|
|
16
48
|
export class InventoryQuery {
|
|
@@ -66,7 +98,7 @@ export class InventoryQuery {
|
|
|
66
98
|
|
|
67
99
|
const qb: SelectQueryBuilder<Inventory> = getRepository(Inventory).createQueryBuilder('iv')
|
|
68
100
|
buildQuery(qb, params, context, {
|
|
69
|
-
searchables: ['warehouse', 'product', 'batchId']
|
|
101
|
+
searchables: ['warehouse', 'product', 'batchId', 'location', 'palletId']
|
|
70
102
|
})
|
|
71
103
|
|
|
72
104
|
qb.leftJoinAndSelect('iv.bizplace', 'bizplace')
|
|
@@ -664,8 +696,8 @@ export class InventoryQuery {
|
|
|
664
696
|
@Arg('sortings', type => [Sorting], { nullable: true }) sortings?: Sorting[],
|
|
665
697
|
@Arg('locationSortingRules', type => [Sorting], { nullable: true }) locationSortingRules?: Sorting[]
|
|
666
698
|
): Promise<InventoryList> {
|
|
667
|
-
const { domain, user }
|
|
668
|
-
const { page, limit }
|
|
699
|
+
const { domain, user } = context.state
|
|
700
|
+
const { page, limit } = pagination
|
|
669
701
|
|
|
670
702
|
try {
|
|
671
703
|
const productFilters = filters.find(x => x.name == 'product_info')
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Field, Float, ID, Int, ObjectType } from 'type-graphql'
|
|
1
2
|
import {
|
|
2
3
|
Column,
|
|
3
4
|
CreateDateColumn,
|
|
@@ -9,16 +10,16 @@ import {
|
|
|
9
10
|
RelationId,
|
|
10
11
|
UpdateDateColumn
|
|
11
12
|
} from 'typeorm'
|
|
12
|
-
import { Domain, ScalarDate } from '@things-factory/shell'
|
|
13
|
-
import { Field, Float, ID, Int, ObjectType } from 'type-graphql'
|
|
14
|
-
import { Product, ProductDetail } from '@things-factory/product-base'
|
|
15
13
|
|
|
14
|
+
import { User } from '@things-factory/auth-base'
|
|
16
15
|
import { Bizplace } from '@things-factory/biz-base'
|
|
16
|
+
import { Product, ProductDetail } from '@things-factory/product-base'
|
|
17
|
+
import { Domain, ScalarDate } from '@things-factory/shell'
|
|
18
|
+
|
|
17
19
|
import { InventoryChange } from '../inventory-change/inventory-change'
|
|
18
20
|
import { InventoryItem } from '../inventory-item/inventory-item'
|
|
19
21
|
import { Location } from '../location/location'
|
|
20
22
|
import { Pallet } from '../pallet/pallet'
|
|
21
|
-
import { User } from '@things-factory/auth-base'
|
|
22
23
|
import { Warehouse } from '../warehouse/warehouse'
|
|
23
24
|
|
|
24
25
|
@Entity()
|
|
@@ -284,7 +285,7 @@ export class Inventory {
|
|
|
284
285
|
id: obj.Bizplace_id,
|
|
285
286
|
name: obj.Bizplace_name,
|
|
286
287
|
description: obj.Bizplace_description
|
|
287
|
-
}
|
|
288
|
+
} as any
|
|
288
289
|
this.product = new Product(obj)
|
|
289
290
|
this.location = new Location(obj)
|
|
290
291
|
this.warehouse = new Warehouse(obj)
|
|
@@ -702,7 +702,7 @@ export async function approveInventoryChanges(patches: any, context: any) {
|
|
|
702
702
|
delete inventoryHistory.id
|
|
703
703
|
delete inventoryHistory.createdAt
|
|
704
704
|
delete inventoryHistory.updatedAt
|
|
705
|
-
await tx.getRepository(InventoryHistory).save(inventoryHistory)
|
|
705
|
+
await tx.getRepository(InventoryHistory).save(inventoryHistory as any)
|
|
706
706
|
newHistoryRecord.qty = newRecord.qty != null ? newRecord.qty : inventory.qty || 0
|
|
707
707
|
newHistoryRecord.uomValue = newRecord.uomValue != null ? newRecord.uomValue : inventory.uomValue || 0
|
|
708
708
|
newHistoryRecord.openingQty = 0
|
|
@@ -2,7 +2,7 @@ import { Arg, Args, Ctx, FieldResolver, Query, Resolver, Root } from 'type-graph
|
|
|
2
2
|
import { Brackets, getRepository, SelectQueryBuilder } from 'typeorm'
|
|
3
3
|
|
|
4
4
|
import { User } from '@things-factory/auth-base'
|
|
5
|
-
import {
|
|
5
|
+
import { getPermittedBizplaceIds } from '@things-factory/biz-base'
|
|
6
6
|
import { buildQuery, Domain, ListParam } from '@things-factory/shell'
|
|
7
7
|
|
|
8
8
|
import { InventoryChange } from './inventory-change'
|
|
@@ -24,7 +24,7 @@ export class InventoryChangeQuery {
|
|
|
24
24
|
async inventoryChanges(@Args() params: ListParam, @Ctx() context: any): Promise<InventoryChangeList> {
|
|
25
25
|
const { domain, user }: { domain: Domain; user: User } = context.state
|
|
26
26
|
|
|
27
|
-
let bizplaces:
|
|
27
|
+
let bizplaces: any[]
|
|
28
28
|
if (!params.filters.find(filter => filter.name === 'bizplace')) {
|
|
29
29
|
bizplaces = await getPermittedBizplaceIds(domain, user)
|
|
30
30
|
} else {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Arg, Args, Ctx, Directive, FieldResolver, Query, Resolver, Root } from 'type-graphql'
|
|
2
|
-
import { Between, Brackets, EntityManager, getRepository, In, Raw, SelectQueryBuilder
|
|
2
|
+
import { Between, Brackets, EntityManager, getRepository, In, IsNull, Raw, SelectQueryBuilder } from 'typeorm'
|
|
3
3
|
|
|
4
4
|
import { User } from '@things-factory/auth-base'
|
|
5
|
-
import { Bizplace, getMyBizplace, getPermittedBizplaceIds
|
|
5
|
+
import { Bizplace, getMyBizplace, getPermittedBizplaceIds } from '@things-factory/biz-base'
|
|
6
6
|
import { Product, ProductDetail } from '@things-factory/product-base'
|
|
7
7
|
import { buildQuery, convertListParams, Domain, Filter, ListParam, Pagination, Sorting } from '@things-factory/shell'
|
|
8
8
|
|
|
@@ -152,7 +152,7 @@ export class InventoryHistoryQuery {
|
|
|
152
152
|
...convertedParams.where,
|
|
153
153
|
...where,
|
|
154
154
|
bizplace: customerBizplace
|
|
155
|
-
}
|
|
155
|
+
} as any
|
|
156
156
|
|
|
157
157
|
const [items, total] = await tx.getRepository(InventoryHistory).findAndCount({
|
|
158
158
|
...convertedParams,
|
|
@@ -183,10 +183,10 @@ export class InventoryHistoryQuery {
|
|
|
183
183
|
let tzoffset = params.filters.find(data => data.name === 'tzoffset').value + ' seconds'
|
|
184
184
|
|
|
185
185
|
if (userFilter) {
|
|
186
|
-
const user: User = await tx.getRepository(User).findOne({
|
|
186
|
+
const user: User & { bizplaces: Bizplace[] } = (await tx.getRepository(User).findOne({
|
|
187
187
|
where: { id: userFilter.value },
|
|
188
188
|
relations: ['bizplaces']
|
|
189
|
-
})
|
|
189
|
+
})) as any
|
|
190
190
|
|
|
191
191
|
const bizplace: Bizplace = user.bizplaces[0]
|
|
192
192
|
|
|
@@ -428,10 +428,10 @@ export class InventoryHistoryQuery {
|
|
|
428
428
|
let bizplaceFilter = { name: '', operator: '', value: '' }
|
|
429
429
|
|
|
430
430
|
if (userFilter) {
|
|
431
|
-
const user: User = await tx.getRepository(User).findOne({
|
|
431
|
+
const user: User & { bizplaces: Bizplace[] } = (await tx.getRepository(User).findOne({
|
|
432
432
|
where: { id: userFilter.value },
|
|
433
433
|
relations: ['bizplaces']
|
|
434
|
-
})
|
|
434
|
+
})) as any
|
|
435
435
|
|
|
436
436
|
const bizplace: Bizplace = user.bizplaces[0]
|
|
437
437
|
|
|
@@ -591,10 +591,10 @@ export class InventoryHistoryQuery {
|
|
|
591
591
|
let bizplaceFilter = { name: '', operator: '', value: '' }
|
|
592
592
|
|
|
593
593
|
if (userFilter) {
|
|
594
|
-
const user: User = await tx.getRepository(User).findOne({
|
|
594
|
+
const user: User & { bizplaces: Bizplace[] } = (await tx.getRepository(User).findOne({
|
|
595
595
|
where: { id: userFilter.value },
|
|
596
596
|
relations: ['bizplaces']
|
|
597
|
-
})
|
|
597
|
+
})) as any
|
|
598
598
|
|
|
599
599
|
const bizplace: Bizplace = user.bizplaces[0]
|
|
600
600
|
|
|
@@ -755,10 +755,10 @@ export class InventoryHistoryQuery {
|
|
|
755
755
|
let bizplaceFilter = { name: '', operator: '', value: '' }
|
|
756
756
|
|
|
757
757
|
if (userFilter) {
|
|
758
|
-
const user: User = await tx.getRepository(User).findOne({
|
|
758
|
+
const user: User & { bizplaces: Bizplace[] } = (await tx.getRepository(User).findOne({
|
|
759
759
|
where: { id: userFilter.value },
|
|
760
760
|
relations: ['bizplaces']
|
|
761
|
-
})
|
|
761
|
+
})) as any
|
|
762
762
|
|
|
763
763
|
const bizplace: Bizplace = user.bizplaces[0]
|
|
764
764
|
|
|
@@ -903,10 +903,10 @@ export class InventoryHistoryQuery {
|
|
|
903
903
|
let byPallet = params.filters.find(data => data.name === 'byPallet')
|
|
904
904
|
|
|
905
905
|
if (userFilter) {
|
|
906
|
-
const user: User = await tx.getRepository(User).findOne({
|
|
906
|
+
const user: User & { bizplaces: Bizplace[] } = (await tx.getRepository(User).findOne({
|
|
907
907
|
where: { id: userFilter.value },
|
|
908
908
|
relations: ['bizplaces']
|
|
909
|
-
})
|
|
909
|
+
})) as any
|
|
910
910
|
|
|
911
911
|
const bizplace: Bizplace = user.bizplaces[0]
|
|
912
912
|
|
|
@@ -992,10 +992,10 @@ export class InventoryHistoryQuery {
|
|
|
992
992
|
|
|
993
993
|
// prepare query filters
|
|
994
994
|
if (userFilter) {
|
|
995
|
-
const user: User = await tx.getRepository(User).findOne({
|
|
995
|
+
const user: User & { bizplaces: Bizplace[] } = (await tx.getRepository(User).findOne({
|
|
996
996
|
where: { id: userFilter.value },
|
|
997
997
|
relations: ['bizplaces']
|
|
998
|
-
})
|
|
998
|
+
})) as any
|
|
999
999
|
|
|
1000
1000
|
const bizplace: Bizplace = user.bizplaces[0]
|
|
1001
1001
|
|
|
@@ -1005,15 +1005,15 @@ export class InventoryHistoryQuery {
|
|
|
1005
1005
|
} else {
|
|
1006
1006
|
bizplaceFilter = !filters.find((filter: any) => filter.name === 'bizplace')
|
|
1007
1007
|
? {
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
|
|
1008
|
+
name: 'bizplace',
|
|
1009
|
+
operator: 'in',
|
|
1010
|
+
value: await getPermittedBizplaceIds(domain, user),
|
|
1011
|
+
relation: true
|
|
1012
|
+
}
|
|
1013
1013
|
: {
|
|
1014
|
-
|
|
1015
|
-
|
|
1016
|
-
|
|
1014
|
+
...filters.find(data => data.name === 'bizplace'),
|
|
1015
|
+
value: [filters.find(data => data.name === 'bizplace').value]
|
|
1016
|
+
}
|
|
1017
1017
|
}
|
|
1018
1018
|
|
|
1019
1019
|
let queryFilter = ``
|
|
@@ -1080,8 +1080,9 @@ export class InventoryHistoryQuery {
|
|
|
1080
1080
|
sortings.forEach((sorting, idx) => {
|
|
1081
1081
|
let itmIndex = arrObjectMap.findIndex(x => x.name === sorting.name)
|
|
1082
1082
|
|
|
1083
|
-
queryOrder = `${idx === 0 ? 'order by' : queryOrder + ','} ${
|
|
1084
|
-
|
|
1083
|
+
queryOrder = `${idx === 0 ? 'order by' : queryOrder + ','} ${
|
|
1084
|
+
itmIndex >= 0 ? arrObjectMap[itmIndex].value : sorting.name
|
|
1085
|
+
} ${sorting.desc ? 'DESC' : 'ASC'}`
|
|
1085
1086
|
})
|
|
1086
1087
|
}
|
|
1087
1088
|
|
|
@@ -1116,7 +1117,7 @@ export class InventoryHistoryQuery {
|
|
|
1116
1117
|
`,
|
|
1117
1118
|
[domain.id, createdAt.value, timezoneOffset]
|
|
1118
1119
|
)
|
|
1119
|
-
|
|
1120
|
+
|
|
1120
1121
|
//comment start
|
|
1121
1122
|
//detailed review needed 19 May 2022 by @ChrisLim-git
|
|
1122
1123
|
await tx.query(
|
|
@@ -1375,10 +1376,10 @@ export class InventoryHistoryQuery {
|
|
|
1375
1376
|
let toDate = params.filters.find(data => data.name === 'toDate')
|
|
1376
1377
|
|
|
1377
1378
|
if (userFilter) {
|
|
1378
|
-
const user: User = await tx.getRepository(User).findOne({
|
|
1379
|
+
const user: User & { bizplaces: Bizplace[] } = (await tx.getRepository(User).findOne({
|
|
1379
1380
|
where: { id: userFilter.value },
|
|
1380
1381
|
relations: ['bizplaces']
|
|
1381
|
-
})
|
|
1382
|
+
})) as any
|
|
1382
1383
|
|
|
1383
1384
|
const bizplace: Bizplace = user.bizplaces[0]
|
|
1384
1385
|
|
|
@@ -43,157 +43,157 @@ export class InventoryHistory {
|
|
|
43
43
|
|
|
44
44
|
@Column({ default: 0 })
|
|
45
45
|
@Field()
|
|
46
|
-
seq
|
|
46
|
+
seq?: number
|
|
47
47
|
|
|
48
48
|
@ManyToOne(type => Domain)
|
|
49
49
|
@Field()
|
|
50
|
-
domain
|
|
50
|
+
domain?: Domain
|
|
51
51
|
|
|
52
52
|
@RelationId((inventoryHistory: InventoryHistory) => inventoryHistory.domain)
|
|
53
|
-
domainId
|
|
53
|
+
domainId?: string
|
|
54
54
|
|
|
55
55
|
@ManyToOne(type => Bizplace)
|
|
56
56
|
@Field()
|
|
57
|
-
bizplace
|
|
57
|
+
bizplace?: Bizplace
|
|
58
58
|
|
|
59
59
|
@Column({ nullable: true })
|
|
60
60
|
@Field({ nullable: true })
|
|
61
|
-
refOrderId
|
|
61
|
+
refOrderId?: string
|
|
62
62
|
|
|
63
63
|
@Column({ nullable: true })
|
|
64
64
|
@Field({ nullable: true })
|
|
65
|
-
orderNo
|
|
65
|
+
orderNo?: string
|
|
66
66
|
|
|
67
67
|
@Column()
|
|
68
68
|
@Field()
|
|
69
|
-
name
|
|
69
|
+
name?: string
|
|
70
70
|
|
|
71
71
|
@Column()
|
|
72
72
|
@Field()
|
|
73
|
-
palletId
|
|
73
|
+
palletId?: string
|
|
74
74
|
|
|
75
75
|
@Column({ nullable: true })
|
|
76
76
|
@Field({ nullable: true })
|
|
77
|
-
cartonId
|
|
77
|
+
cartonId?: string
|
|
78
78
|
|
|
79
79
|
@Column({ nullable: true })
|
|
80
80
|
@Field({ nullable: true })
|
|
81
|
-
batchId
|
|
81
|
+
batchId?: string
|
|
82
82
|
|
|
83
83
|
@Column({ nullable: true })
|
|
84
84
|
@Field({ nullable: true })
|
|
85
|
-
batchIdRef
|
|
85
|
+
batchIdRef?: string
|
|
86
86
|
|
|
87
87
|
@ManyToOne(type => Pallet, { nullable: true })
|
|
88
88
|
@Field({ nullable: true })
|
|
89
|
-
reusablePallet
|
|
89
|
+
reusablePallet?: Pallet
|
|
90
90
|
|
|
91
91
|
@ManyToOne(type => Product, { nullable: true })
|
|
92
92
|
@Field(type => Product, { nullable: true })
|
|
93
|
-
product
|
|
93
|
+
product?: Product
|
|
94
94
|
|
|
95
95
|
/**
|
|
96
96
|
* To be updated to remove nullable. once all process that links to inventory has been updated to use product detail instead of product
|
|
97
97
|
*/
|
|
98
98
|
@ManyToOne(type => ProductDetail, { nullable: true })
|
|
99
99
|
@Field(type => ProductDetail, { nullable: true })
|
|
100
|
-
productDetail
|
|
100
|
+
productDetail?: ProductDetail
|
|
101
101
|
|
|
102
102
|
@ManyToOne(type => Warehouse, { nullable: true })
|
|
103
103
|
@Field({ nullable: true })
|
|
104
|
-
warehouse
|
|
104
|
+
warehouse?: Warehouse
|
|
105
105
|
|
|
106
106
|
@ManyToOne(type => Location, { nullable: true })
|
|
107
107
|
@Field({ nullable: true })
|
|
108
|
-
location
|
|
108
|
+
location?: Location
|
|
109
109
|
|
|
110
110
|
@Column({ nullable: true })
|
|
111
111
|
@Field({ nullable: true })
|
|
112
|
-
zone
|
|
112
|
+
zone?: string
|
|
113
113
|
|
|
114
114
|
@Column({ nullable: true })
|
|
115
115
|
@Field({ nullable: true })
|
|
116
|
-
orderRefNo
|
|
116
|
+
orderRefNo?: string
|
|
117
117
|
|
|
118
118
|
@Column()
|
|
119
119
|
@Field()
|
|
120
|
-
packingType
|
|
120
|
+
packingType?: string
|
|
121
121
|
|
|
122
122
|
@Column('float', { nullable: true, default: 1 })
|
|
123
123
|
@Field({ nullable: true })
|
|
124
|
-
packingSize
|
|
124
|
+
packingSize?: number
|
|
125
125
|
|
|
126
126
|
@Column('float')
|
|
127
127
|
@Field({ nullable: true })
|
|
128
|
-
qty
|
|
128
|
+
qty?: number
|
|
129
129
|
|
|
130
130
|
@Column('float', { default: 0, nullable: true })
|
|
131
131
|
@Field({ nullable: true })
|
|
132
|
-
openingQty
|
|
132
|
+
openingQty?: number
|
|
133
133
|
|
|
134
134
|
@Column({ nullable: true })
|
|
135
135
|
@Field({ nullable: true })
|
|
136
|
-
uom
|
|
136
|
+
uom?: string
|
|
137
137
|
|
|
138
138
|
@Column('float', { nullable: true })
|
|
139
139
|
@Field({ nullable: true })
|
|
140
|
-
uomValue
|
|
140
|
+
uomValue?: number
|
|
141
141
|
|
|
142
142
|
@Column('float', { default: 0, nullable: true })
|
|
143
143
|
@Field({ nullable: true })
|
|
144
|
-
openingUomValue
|
|
144
|
+
openingUomValue?: number
|
|
145
145
|
|
|
146
146
|
@Column('float', { nullable: true })
|
|
147
147
|
@Field({ nullable: true })
|
|
148
|
-
unitCost
|
|
148
|
+
unitCost?: number
|
|
149
149
|
|
|
150
150
|
@Column({ nullable: true })
|
|
151
151
|
@Field({ nullable: true })
|
|
152
|
-
description
|
|
152
|
+
description?: string
|
|
153
153
|
|
|
154
154
|
@Column()
|
|
155
155
|
@Field()
|
|
156
|
-
status
|
|
156
|
+
status?: string
|
|
157
157
|
|
|
158
158
|
@Column()
|
|
159
159
|
@Field()
|
|
160
|
-
transactionType
|
|
160
|
+
transactionType?: string
|
|
161
161
|
|
|
162
162
|
@ManyToOne(type => Inventory, { nullable: true })
|
|
163
163
|
@Field(type => Inventory, { nullable: true })
|
|
164
|
-
inventory
|
|
164
|
+
inventory?: Inventory
|
|
165
165
|
|
|
166
166
|
@Column('date', { nullable: true })
|
|
167
167
|
@Field(type => ScalarDate, { nullable: true })
|
|
168
|
-
expirationDate
|
|
168
|
+
expirationDate?: Date
|
|
169
169
|
|
|
170
170
|
@Column('int', { nullable: true })
|
|
171
171
|
@Field({ nullable: true })
|
|
172
|
-
manufactureYear
|
|
172
|
+
manufactureYear?: number
|
|
173
173
|
|
|
174
174
|
@Column('date', { nullable: true })
|
|
175
175
|
@Field(type => ScalarDate, { nullable: true })
|
|
176
|
-
manufactureDate
|
|
176
|
+
manufactureDate?: Date
|
|
177
177
|
|
|
178
178
|
@ManyToOne(type => User, { nullable: true })
|
|
179
179
|
@Field({ nullable: true })
|
|
180
|
-
creator
|
|
180
|
+
creator?: User
|
|
181
181
|
|
|
182
182
|
@RelationId((inventoryHistory: InventoryHistory) => inventoryHistory.creator)
|
|
183
|
-
creatorId
|
|
183
|
+
creatorId?: string
|
|
184
184
|
|
|
185
185
|
@ManyToOne(type => User, { nullable: true })
|
|
186
186
|
@Field({ nullable: true })
|
|
187
|
-
updater
|
|
187
|
+
updater?: User
|
|
188
188
|
|
|
189
189
|
@RelationId((inventoryHistory: InventoryHistory) => inventoryHistory.updater)
|
|
190
|
-
updaterId
|
|
190
|
+
updaterId?: string
|
|
191
191
|
|
|
192
192
|
@CreateDateColumn()
|
|
193
193
|
@Field({ nullable: true })
|
|
194
|
-
createdAt
|
|
194
|
+
createdAt?: Date
|
|
195
195
|
|
|
196
196
|
@UpdateDateColumn()
|
|
197
197
|
@Field({ nullable: true })
|
|
198
|
-
updatedAt
|
|
198
|
+
updatedAt?: Date
|
|
199
199
|
}
|
|
@@ -3,7 +3,7 @@ import { In } from 'typeorm'
|
|
|
3
3
|
|
|
4
4
|
import { Product } from '@things-factory/product-base'
|
|
5
5
|
|
|
6
|
-
import {
|
|
6
|
+
import { INVENTORY_ITEM_SOURCE, INVENTORY_STATUS } from '../../constants'
|
|
7
7
|
import { InventoryNoGenerator } from '../../utils'
|
|
8
8
|
import { InventoryItem } from './inventory-item'
|
|
9
9
|
import { InventoryItemPatch, NewInventoryItem } from './inventory-item-type'
|
|
@@ -204,8 +204,8 @@ export class InventoryItemMutation {
|
|
|
204
204
|
inventoryItem.serialNumber = newSerialNumber
|
|
205
205
|
inventoryItem.status = INVENTORY_STATUS.PICKED
|
|
206
206
|
inventoryItem.outboundOrderId = selectedSerialNumber.outboundOrderId
|
|
207
|
-
inventoryItem.product = selectedSerialNumber.product
|
|
208
|
-
inventoryItem.inventory = selectedSerialNumber.inventory
|
|
207
|
+
inventoryItem.product = selectedSerialNumber.product as any
|
|
208
|
+
inventoryItem.inventory = selectedSerialNumber.inventory as any
|
|
209
209
|
inventoryItem.domain = domain
|
|
210
210
|
|
|
211
211
|
return await repository.save(inventoryItem)
|