@things-factory/sales-base 6.2.49 → 6.2.51
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/service/arrival-notice/arrival-notice-mutation.js +2 -2
- package/dist-server/service/arrival-notice/arrival-notice-mutation.js.map +1 -1
- package/dist-server/service/collection-order/collection-order-mutation.js +1 -1
- package/dist-server/service/collection-order/collection-order-mutation.js.map +1 -1
- package/dist-server/service/delivery-order/delivery-order-mutation.js +1 -1
- package/dist-server/service/delivery-order/delivery-order-mutation.js.map +1 -1
- package/dist-server/service/goods-receival-note/goods-receival-note-mutation.js +1 -1
- package/dist-server/service/goods-receival-note/goods-receival-note-mutation.js.map +1 -1
- package/dist-server/service/goods-receival-note/goods-receival-note-query.js +1 -1
- package/dist-server/service/goods-receival-note/goods-receival-note-query.js.map +1 -1
- package/dist-server/service/invoice/invoice-mutation.js +1 -1
- package/dist-server/service/invoice/invoice-mutation.js.map +1 -1
- package/dist-server/service/invoice-product/invoice-product-mutation.js +1 -1
- package/dist-server/service/invoice-product/invoice-product-mutation.js.map +1 -1
- package/dist-server/service/manifest/manifest-mutation.js +2 -2
- package/dist-server/service/manifest/manifest-mutation.js.map +1 -1
- package/dist-server/service/order-inventory/order-inventory-mutation.js +1 -1
- package/dist-server/service/order-inventory/order-inventory-mutation.js.map +1 -1
- package/dist-server/service/order-product/order-product-mutation.js +1 -1
- package/dist-server/service/order-product/order-product-mutation.js.map +1 -1
- package/dist-server/service/purchase-order/purchase-order-mutation.js +1 -1
- package/dist-server/service/purchase-order/purchase-order-mutation.js.map +1 -1
- package/dist-server/service/purchase-order-other-charge/purchase-order-other-charge-mutation.js +1 -1
- package/dist-server/service/purchase-order-other-charge/purchase-order-other-charge-mutation.js.map +1 -1
- package/dist-server/service/release-good/release-good-mutation.js +4 -4
- package/dist-server/service/release-good/release-good-mutation.js.map +1 -1
- package/dist-server/service/retail-replenishment-order/retail-replenishment-order-mutation.js +1 -1
- package/dist-server/service/retail-replenishment-order/retail-replenishment-order-mutation.js.map +1 -1
- package/dist-server/service/return-order/return-order-mutation.js +2 -2
- package/dist-server/service/return-order/return-order-mutation.js.map +1 -1
- package/dist-server/service/reverse-kitting-order/reverse-kitting-order-mutation.js +1 -1
- package/dist-server/service/reverse-kitting-order/reverse-kitting-order-mutation.js.map +1 -1
- package/dist-server/service/shipping-order/shipping-order-mutation.js +1 -1
- package/dist-server/service/shipping-order/shipping-order-mutation.js.map +1 -1
- package/dist-server/service/transfer-order/transfer-order-mutation.js +1 -1
- package/dist-server/service/transfer-order/transfer-order-mutation.js.map +1 -1
- package/dist-server/service/vas-order/vas-order-mutation.js +1 -1
- package/dist-server/service/vas-order/vas-order-mutation.js.map +1 -1
- package/dist-server/tsconfig.tsbuildinfo +1 -1
- package/package.json +13 -13
- package/server/service/arrival-notice/arrival-notice-mutation.ts +2 -2
- package/server/service/collection-order/collection-order-mutation.ts +1 -1
- package/server/service/delivery-order/delivery-order-mutation.ts +1 -1
- package/server/service/goods-receival-note/goods-receival-note-mutation.ts +1 -1
- package/server/service/goods-receival-note/goods-receival-note-query.ts +1 -1
- package/server/service/invoice/invoice-mutation.ts +1 -1
- package/server/service/invoice-product/invoice-product-mutation.ts +1 -1
- package/server/service/manifest/manifest-mutation.ts +5 -2
- package/server/service/order-inventory/order-inventory-mutation.ts +1 -1
- package/server/service/order-product/order-product-mutation.ts +1 -1
- package/server/service/purchase-order/purchase-order-mutation.ts +1 -1
- package/server/service/purchase-order-other-charge/purchase-order-other-charge-mutation.ts +1 -1
- package/server/service/release-good/release-good-mutation.ts +4 -4
- package/server/service/retail-replenishment-order/retail-replenishment-order-mutation.ts +1 -1
- package/server/service/return-order/return-order-mutation.ts +2 -2
- package/server/service/reverse-kitting-order/reverse-kitting-order-mutation.ts +1 -1
- package/server/service/shipping-order/shipping-order-mutation.ts +1 -1
- package/server/service/transfer-order/transfer-order-mutation.ts +1 -1
- package/server/service/vas-order/vas-order-mutation.ts +1 -1
package/dist-server/service/retail-replenishment-order/retail-replenishment-order-mutation.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"retail-replenishment-order-mutation.js","sourceRoot":"","sources":["../../../server/service/retail-replenishment-order/retail-replenishment-order-mutation.ts"],"names":[],"mappings":"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","sourcesContent":["import { Arg, Ctx, Directive, Mutation, Resolver } from 'type-graphql'\nimport { EntityManager, In, Repository } from 'typeorm'\n\nimport { User } from '@things-factory/auth-base'\nimport { Bizplace, getOutletBizplace } from '@things-factory/biz-base'\nimport { generateId } from '@things-factory/id-rule-base'\nimport { Product } from '@things-factory/product-base'\nimport { Setting } from '@things-factory/setting-base'\nimport { Domain, getRepository } from '@things-factory/shell'\n\nimport {\n NewOrderProduct,\n NewRetailReplenishmentOrder,\n OrderProduct,\n OrderVas,\n RetailReplenishmentOrderPatch\n} from '../'\nimport {\n ORDER_NUMBER_RULE_TYPE,\n ORDER_NUMBER_SETTING_KEY,\n ORDER_PRODUCT_STATUS,\n ORDER_STATUS,\n TRANSFER_ORDER_TYPE\n} from '../../constants'\nimport { OrderNoGenerator } from '../../utils'\nimport { generateTransferOrder } from '../transfer-order/transfer-order-mutation'\nimport { RetailReplenishmentOrder } from './retail-replenishment-order'\n\n@Resolver(RetailReplenishmentOrder)\nexport class RetailReplenishmentOrderMutation {\n @Directive('@transaction')\n @Mutation(returns => Boolean)\n async addRetailReplenishmentOrderProducts(\n @Arg('sroNo') sroNo: string,\n @Arg('orderProducts', type => [NewOrderProduct]) orderProducts: NewOrderProduct[],\n @Ctx() context: ResolverContext\n ): Promise<boolean> {\n const { tx, user, domain } = context.state\n const retailReplenishmentOrder: RetailReplenishmentOrder = await tx\n .getRepository(RetailReplenishmentOrder)\n .findOne({\n where: { name: sroNo },\n relations: ['bizplace', 'orderProducts']\n })\n\n await addRetailReplenishmentOrderProducts(domain, retailReplenishmentOrder, orderProducts, user, tx)\n return true\n }\n\n @Directive('@transaction')\n @Mutation(returns => RetailReplenishmentOrder)\n async cancelRetailReplenishmentOrder(\n @Arg('patch', type => RetailReplenishmentOrderPatch) patch: RetailReplenishmentOrderPatch,\n @Ctx() context: ResolverContext\n ): Promise<RetailReplenishmentOrder> {\n const { tx, domain, user } = context.state\n const bizplace: Bizplace = await getOutletBizplace(patch.warehouseId)\n\n const retailReplenishmentOrder: RetailReplenishmentOrder = await tx\n .getRepository(RetailReplenishmentOrder)\n .findOne({\n where: { domain: { id: domain.id }, bizplace: { id: bizplace.id }, name: patch.name },\n relations: ['orderProducts']\n })\n\n if (!retailReplenishmentOrder) throw new Error(`Retail replenishment order does not exist.`)\n if (!patch.status) throw new Error('Status was not specified.')\n // if (status && (status !== ORDER_STATUS.PENDING_CANCEL || status !== ORDER_STATUS.CANCELLED))\n // throw new Error(`Status provided was invalid.`)\n\n let foundOPs: OrderProduct[] = retailReplenishmentOrder.orderProducts\n\n // 1. Update status of order products based on status (to PENDING_CANCEL or CANCELLED)\n if (foundOPs && foundOPs.length) {\n foundOPs = foundOPs.map((orderProduct: OrderProduct) => {\n orderProduct.status = patch.status\n orderProduct.updater = user\n return orderProduct\n })\n }\n await tx.getRepository(OrderProduct).save(foundOPs)\n\n // 2. Update retail replenishment order status\n return await tx.getRepository(RetailReplenishmentOrder).save({\n ...retailReplenishmentOrder,\n remark: patch.remark, //think another way if warehouse confirm cancellation > no need to overwrite remark\n status: patch.status,\n updater: user\n })\n }\n\n @Directive('@transaction')\n @Mutation(returns => RetailReplenishmentOrder)\n async createRetailReplenishmentOrder(\n @Arg('retailReplenishmentOrder', type => NewRetailReplenishmentOrder)\n retailReplenishmentOrder: NewRetailReplenishmentOrder,\n @Ctx() context: ResolverContext\n ): Promise<RetailReplenishmentOrder> {\n const { tx, domain, user } = context.state\n const settingRepo: Repository<Setting> = tx?.getRepository(Setting) || getRepository(Setting)\n\n let orderVass: OrderVas[] = retailReplenishmentOrder.orderVass as any\n const myBizplace: Bizplace = await getOutletBizplace(retailReplenishmentOrder.warehouseId)\n\n // #1 check for allocated qty to identify the status: APPROVED or PENDING\n const allocatedQty: number = null\n let status = allocatedQty ? ORDER_STATUS.PENDING : ORDER_STATUS.APPROVED\n let remark = allocatedQty ? 'INSUFFICIENT QTY' : ''\n\n let orderProducts: NewOrderProduct[] = retailReplenishmentOrder.orderProducts\n orderProducts = orderProducts.map((op: NewOrderProduct) => {\n return {\n ...op,\n status: allocatedQty ? ORDER_PRODUCT_STATUS.PENDING : ORDER_PRODUCT_STATUS.APPROVED,\n remark\n }\n })\n\n const rrNoSetting: Setting = await settingRepo.findOne({\n where: {\n domain: { id: domain.id },\n name: ORDER_NUMBER_SETTING_KEY.RR_NUMBER_RULE\n }\n })\n\n let orderNo: string = ''\n\n if (rrNoSetting) {\n orderNo = await generateId({ domain, type: ORDER_NUMBER_RULE_TYPE.RR_NUMBER, seed: {} })\n } else {\n orderNo = OrderNoGenerator.retailReplenishmentOrder()\n }\n\n // #2 Create Retail Replenishment Order\n const createdRetailReplenishmentOrder: RetailReplenishmentOrder = await tx\n .getRepository(RetailReplenishmentOrder)\n .save({\n ...retailReplenishmentOrder,\n name: orderNo,\n bizplace: myBizplace,\n status,\n domain,\n creator: user,\n updater: user\n })\n\n // #3 Create retail replenishment order products\n await addRetailReplenishmentOrderProducts(domain, createdRetailReplenishmentOrder, orderProducts, user, tx)\n\n // #4 generate transfer order if status is APPROVED\n if (createdRetailReplenishmentOrder.status === ORDER_STATUS.APPROVED) {\n const issuedDate: string = retailReplenishmentOrder.issuedDate\n const remark: string = retailReplenishmentOrder.remark\n const refNo: string = retailReplenishmentOrder.refNo\n const ownTransport: boolean = retailReplenishmentOrder.ownTransport\n const orderInventories: any[] = orderProducts.map((op: NewOrderProduct) => {\n return {\n batchId: op.batchId,\n releaseQty: op.packQty,\n product: op.product,\n packingType: op.packingType\n }\n })\n\n await generateTransferOrder(\n {\n issuedDate,\n remark,\n refNo,\n type: TRANSFER_ORDER_TYPE.NORMAL,\n ownTransport,\n orderInventories,\n orderVass,\n bizplace: myBizplace,\n retailReplenishmentOrder: createdRetailReplenishmentOrder\n } as any,\n domain,\n user,\n tx\n )\n }\n\n return createdRetailReplenishmentOrder\n }\n\n @Directive('@transaction')\n @Mutation(returns => RetailReplenishmentOrder)\n async completeRetailReplenishmentOrder(\n @Arg('patch', type => RetailReplenishmentOrderPatch) patch: RetailReplenishmentOrderPatch,\n @Ctx() context: ResolverContext\n ): Promise<RetailReplenishmentOrder> {\n const { tx, domain, user } = context.state\n\n const myBizplace: Bizplace = await getOutletBizplace(patch.warehouseId)\n let targetOPs: NewOrderProduct[] = patch.orderProducts\n let partialReceived: Boolean = false\n\n // #1 Find Retail Replenishment Order\n const foundRRO: RetailReplenishmentOrder = await tx.getRepository(RetailReplenishmentOrder).findOne({\n where: { domain: { id: domain.id }, name: patch.name, bizplace: { id: myBizplace.id } },\n relations: ['orderProducts']\n })\n\n if (!foundRRO) throw new Error(`Retail replenishment order does not exist.`)\n\n if (foundRRO?.status && foundRRO.status === ORDER_STATUS.RECEIVED)\n throw new Error(`Retail replenishment order is already completed.`)\n\n // #2 Find related order inventories\n let foundOPs: OrderProduct[] = await tx.getRepository(OrderProduct).find({\n where: { domain: { id: domain.id } /* CONFIRMME regarding TYPEORM , transferOrder: foundRRO */ }\n })\n if (!foundOPs) throw new Error(`Order products were not found.`)\n\n foundOPs = foundOPs.map((orderProduct: OrderProduct) => {\n const foundTargetOP = targetOPs.filter(\n (targetOP: NewOrderProduct) => targetOP.name === orderProduct.name && targetOP.batchId === orderProduct.batchId\n )[0]\n\n orderProduct.status = foundTargetOP.status\n orderProduct.remark = foundTargetOP?.remark ? foundTargetOP.remark : null\n if (orderProduct.status.includes(ORDER_PRODUCT_STATUS.NOT_RECEIVED)) partialReceived = true\n orderProduct.updater = user\n\n return orderProduct\n })\n await tx.getRepository(OrderProduct).save(foundOPs)\n\n // #3 Update status of retail replenishment order (RECEIVED / PARTIALLY_RECEIVED)\n return await tx.getRepository(RetailReplenishmentOrder).save({\n ...foundRRO,\n status: partialReceived ? ORDER_STATUS.PARTIAL_RECEIVED : ORDER_STATUS.RECEIVED,\n updater: user\n })\n }\n\n @Directive('@transaction')\n @Mutation(returns => RetailReplenishmentOrder)\n async updateRetailReplenishmentOrder(\n @Arg('name') name: string,\n @Arg('patch', type => RetailReplenishmentOrderPatch) patch: RetailReplenishmentOrderPatch,\n @Ctx() context: ResolverContext\n ): Promise<RetailReplenishmentOrder> {\n const { tx, domain, user } = context.state\n\n const bizplace: Bizplace = await getOutletBizplace(patch.warehouseId)\n const repository = tx.getRepository(RetailReplenishmentOrder)\n\n delete patch.warehouseId //exclude warehouse Id from patch\n\n const retailReplenishmentOrder = await repository.findOne({\n where: { domain: { id: domain.id }, name, bizplace: { id: bizplace.id } },\n relations: ['orderProducts', 'orderProducts.product']\n })\n\n if (!retailReplenishmentOrder) throw new Error(`Retail replenishment order is not found.`)\n if (retailReplenishmentOrder && retailReplenishmentOrder.status !== ORDER_STATUS.REJECTED)\n throw new Error(`You are not allowed to update this order with status: ${retailReplenishmentOrder.status}`)\n\n return await repository.save({\n ...retailReplenishmentOrder,\n ...patch,\n status: ORDER_STATUS.PENDING_RECEIVE,\n updater: user\n })\n }\n\n @Directive('@transaction')\n @Mutation(returns => [RetailReplenishmentOrder])\n async updateMultipleRetailReplenishmentOrder(\n @Arg('patches', type => [RetailReplenishmentOrderPatch]) patches: RetailReplenishmentOrderPatch[],\n @Ctx() context: ResolverContext\n ): Promise<RetailReplenishmentOrder[]> {\n const { tx, domain, user } = context.state\n\n let results: RetailReplenishmentOrder[] = []\n const _createRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === '+')\n const _updateRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === 'M')\n const retailReplenishmentOrderRepo = tx.getRepository(RetailReplenishmentOrder)\n\n if (_createRecords.length > 0) {\n for (let i = 0; i < _createRecords.length; i++) {\n const newRecord = _createRecords[i]\n\n const result = await retailReplenishmentOrderRepo.save({\n ...newRecord,\n domain,\n creator: user,\n updater: user\n })\n\n results.push({ ...result, cuFlag: '+' })\n }\n }\n\n if (_updateRecords.length > 0) {\n for (let i = 0; i < _updateRecords.length; i++) {\n const newRecord = _updateRecords[i]\n const retailReplenishmentOrder = await retailReplenishmentOrderRepo.findOneBy({ id: newRecord.id })\n\n const result = await retailReplenishmentOrderRepo.save({\n ...retailReplenishmentOrder,\n ...newRecord,\n updater: user\n })\n\n results.push({ ...result, cuFlag: 'M' })\n }\n }\n\n return results\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean)\n async deleteRetailReplenishmentOrder(@Arg('name') name: string, @Ctx() context: ResolverContext): Promise<boolean> {\n const { tx, domain } = context.state\n await tx.getRepository(RetailReplenishmentOrder).delete({ domain, name })\n return true\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean)\n async deleteRetailReplenishmentOrders(\n @Arg('names', type => [String]) names: string[],\n @Ctx() context: ResolverContext\n ): Promise<boolean> {\n const { tx, domain } = context.state\n await tx.getRepository(RetailReplenishmentOrder).delete({\n domain: { id: domain.id },\n name: In(names)\n })\n return true\n }\n}\nexport async function addRetailReplenishmentOrderProducts(\n domain: Domain,\n retailReplenishmentOrder: RetailReplenishmentOrder,\n orderProducts: (OrderProduct | NewOrderProduct)[],\n user: User,\n tx?: EntityManager\n): Promise<void> {\n const productRepo: Repository<Product> = tx?.getRepository(Product) || getRepository(Product)\n const orderProductRepo: Repository<OrderProduct> = tx?.getRepository(OrderProduct) || getRepository(OrderProduct)\n\n if (!retailReplenishmentOrder?.bizplace || !retailReplenishmentOrder?.orderProducts?.length) {\n retailReplenishmentOrder = await tx.getRepository(RetailReplenishmentOrder).findOne({\n where: { id: retailReplenishmentOrder.id },\n relations: ['bizplace', 'orderProducts']\n })\n }\n\n orderProducts = await Promise.all(\n orderProducts.map(async (op: OrderProduct) => {\n const foundProduct = await productRepo.findOneBy({\n domain: { id: domain.id },\n sku: op.product.sku,\n name: op.product.name\n })\n if (!foundProduct) throw new Error(`Product ${op.product.name} (${op.product.sku}) is not exist.`)\n\n return {\n ...op,\n domain,\n bizplace: retailReplenishmentOrder.bizplace,\n name: OrderNoGenerator.orderProduct(),\n product: foundProduct,\n retailReplenishmentOrder,\n //========= need to revise ===========\n packingType: foundProduct.packingType,\n uom: foundProduct.weightUnit,\n uomValue: foundProduct.weight,\n totalUomValue: `${(foundProduct.weight * op.packQty).toFixed(2)} ${foundProduct.weightUnit}`,\n //====================================\n creator: user,\n updater: user\n }\n })\n )\n\n await orderProductRepo.save(orderProducts)\n}\n"]}
|
|
1
|
+
{"version":3,"file":"retail-replenishment-order-mutation.js","sourceRoot":"","sources":["../../../server/service/retail-replenishment-order/retail-replenishment-order-mutation.ts"],"names":[],"mappings":"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","sourcesContent":["import { Arg, Ctx, Directive, Mutation, Resolver } from 'type-graphql'\nimport { EntityManager, In, Repository } from 'typeorm'\n\nimport { User } from '@things-factory/auth-base'\nimport { Bizplace, getOutletBizplace } from '@things-factory/biz-base'\nimport { generateId } from '@things-factory/id-rule-base'\nimport { Product } from '@things-factory/product-base'\nimport { Setting } from '@things-factory/setting-base'\nimport { Domain, getRepository } from '@things-factory/shell'\n\nimport {\n NewOrderProduct,\n NewRetailReplenishmentOrder,\n OrderProduct,\n OrderVas,\n RetailReplenishmentOrderPatch\n} from '../'\nimport {\n ORDER_NUMBER_RULE_TYPE,\n ORDER_NUMBER_SETTING_KEY,\n ORDER_PRODUCT_STATUS,\n ORDER_STATUS,\n TRANSFER_ORDER_TYPE\n} from '../../constants'\nimport { OrderNoGenerator } from '../../utils'\nimport { generateTransferOrder } from '../transfer-order/transfer-order-mutation'\nimport { RetailReplenishmentOrder } from './retail-replenishment-order'\n\n@Resolver(RetailReplenishmentOrder)\nexport class RetailReplenishmentOrderMutation {\n @Directive('@transaction')\n @Mutation(returns => Boolean)\n async addRetailReplenishmentOrderProducts(\n @Arg('sroNo') sroNo: string,\n @Arg('orderProducts', type => [NewOrderProduct]) orderProducts: NewOrderProduct[],\n @Ctx() context: ResolverContext\n ): Promise<boolean> {\n const { tx, user, domain } = context.state\n const retailReplenishmentOrder: RetailReplenishmentOrder = await tx\n .getRepository(RetailReplenishmentOrder)\n .findOne({\n where: { name: sroNo },\n relations: ['bizplace', 'orderProducts']\n })\n\n await addRetailReplenishmentOrderProducts(domain, retailReplenishmentOrder, orderProducts, user, tx)\n return true\n }\n\n @Directive('@transaction')\n @Mutation(returns => RetailReplenishmentOrder)\n async cancelRetailReplenishmentOrder(\n @Arg('patch', type => RetailReplenishmentOrderPatch) patch: RetailReplenishmentOrderPatch,\n @Ctx() context: ResolverContext\n ): Promise<RetailReplenishmentOrder> {\n const { tx, domain, user } = context.state\n const bizplace: Bizplace = await getOutletBizplace(patch.warehouseId)\n\n const retailReplenishmentOrder: RetailReplenishmentOrder = await tx\n .getRepository(RetailReplenishmentOrder)\n .findOne({\n where: { domain: { id: domain.id }, bizplace: { id: bizplace.id }, name: patch.name },\n relations: ['orderProducts']\n })\n\n if (!retailReplenishmentOrder) throw new Error(`Retail replenishment order does not exist.`)\n if (!patch.status) throw new Error('Status was not specified.')\n // if (status && (status !== ORDER_STATUS.PENDING_CANCEL || status !== ORDER_STATUS.CANCELLED))\n // throw new Error(`Status provided was invalid.`)\n\n let foundOPs: OrderProduct[] = retailReplenishmentOrder.orderProducts\n\n // 1. Update status of order products based on status (to PENDING_CANCEL or CANCELLED)\n if (foundOPs && foundOPs.length) {\n foundOPs = foundOPs.map((orderProduct: OrderProduct) => {\n orderProduct.status = patch.status\n orderProduct.updater = user\n return orderProduct\n })\n }\n await tx.getRepository(OrderProduct).save(foundOPs)\n\n // 2. Update retail replenishment order status\n return await tx.getRepository(RetailReplenishmentOrder).save({\n ...retailReplenishmentOrder,\n remark: patch.remark, //think another way if warehouse confirm cancellation > no need to overwrite remark\n status: patch.status,\n updater: user\n })\n }\n\n @Directive('@transaction')\n @Mutation(returns => RetailReplenishmentOrder)\n async createRetailReplenishmentOrder(\n @Arg('retailReplenishmentOrder', type => NewRetailReplenishmentOrder)\n retailReplenishmentOrder: NewRetailReplenishmentOrder,\n @Ctx() context: ResolverContext\n ): Promise<RetailReplenishmentOrder> {\n const { tx, domain, user } = context.state\n const settingRepo: Repository<Setting> = tx?.getRepository(Setting) || getRepository(Setting)\n\n let orderVass: OrderVas[] = retailReplenishmentOrder.orderVass as any\n const myBizplace: Bizplace = await getOutletBizplace(retailReplenishmentOrder.warehouseId)\n\n // #1 check for allocated qty to identify the status: APPROVED or PENDING\n const allocatedQty: number = null\n let status = allocatedQty ? ORDER_STATUS.PENDING : ORDER_STATUS.APPROVED\n let remark = allocatedQty ? 'INSUFFICIENT QTY' : ''\n\n let orderProducts: NewOrderProduct[] = retailReplenishmentOrder.orderProducts\n orderProducts = orderProducts.map((op: NewOrderProduct) => {\n return {\n ...op,\n status: allocatedQty ? ORDER_PRODUCT_STATUS.PENDING : ORDER_PRODUCT_STATUS.APPROVED,\n remark\n }\n })\n\n const rrNoSetting: Setting = await settingRepo.findOne({\n where: {\n domain: { id: domain.id },\n name: ORDER_NUMBER_SETTING_KEY.RR_NUMBER_RULE\n }\n })\n\n let orderNo: string = ''\n\n if (rrNoSetting) {\n orderNo = await generateId({ domain, type: ORDER_NUMBER_RULE_TYPE.RR_NUMBER, seed: {} })\n } else {\n orderNo = OrderNoGenerator.retailReplenishmentOrder()\n }\n\n // #2 Create Retail Replenishment Order\n const createdRetailReplenishmentOrder: RetailReplenishmentOrder = await tx\n .getRepository(RetailReplenishmentOrder)\n .save({\n ...retailReplenishmentOrder,\n name: orderNo,\n bizplace: myBizplace,\n status,\n domain,\n creator: user,\n updater: user\n })\n\n // #3 Create retail replenishment order products\n await addRetailReplenishmentOrderProducts(domain, createdRetailReplenishmentOrder, orderProducts, user, tx)\n\n // #4 generate transfer order if status is APPROVED\n if (createdRetailReplenishmentOrder.status === ORDER_STATUS.APPROVED) {\n const issuedDate: string = retailReplenishmentOrder.issuedDate\n const remark: string = retailReplenishmentOrder.remark\n const refNo: string = retailReplenishmentOrder.refNo\n const ownTransport: boolean = retailReplenishmentOrder.ownTransport\n const orderInventories: any[] = orderProducts.map((op: NewOrderProduct) => {\n return {\n batchId: op.batchId,\n releaseQty: op.packQty,\n product: op.product,\n packingType: op.packingType\n }\n })\n\n await generateTransferOrder(\n {\n issuedDate,\n remark,\n refNo,\n type: TRANSFER_ORDER_TYPE.NORMAL,\n ownTransport,\n orderInventories,\n orderVass,\n bizplace: myBizplace,\n retailReplenishmentOrder: createdRetailReplenishmentOrder\n } as any,\n domain,\n user,\n tx\n )\n }\n\n return createdRetailReplenishmentOrder\n }\n\n @Directive('@transaction')\n @Mutation(returns => RetailReplenishmentOrder)\n async completeRetailReplenishmentOrder(\n @Arg('patch', type => RetailReplenishmentOrderPatch) patch: RetailReplenishmentOrderPatch,\n @Ctx() context: ResolverContext\n ): Promise<RetailReplenishmentOrder> {\n const { tx, domain, user } = context.state\n\n const myBizplace: Bizplace = await getOutletBizplace(patch.warehouseId)\n let targetOPs: NewOrderProduct[] = patch.orderProducts\n let partialReceived: Boolean = false\n\n // #1 Find Retail Replenishment Order\n const foundRRO: RetailReplenishmentOrder = await tx.getRepository(RetailReplenishmentOrder).findOne({\n where: { domain: { id: domain.id }, name: patch.name, bizplace: { id: myBizplace.id } },\n relations: ['orderProducts']\n })\n\n if (!foundRRO) throw new Error(`Retail replenishment order does not exist.`)\n\n if (foundRRO?.status && foundRRO.status === ORDER_STATUS.RECEIVED)\n throw new Error(`Retail replenishment order is already completed.`)\n\n // #2 Find related order inventories\n let foundOPs: OrderProduct[] = await tx.getRepository(OrderProduct).find({\n where: { domain: { id: domain.id } /* CONFIRMME regarding TYPEORM , transferOrder: foundRRO */ }\n })\n if (!foundOPs) throw new Error(`Order products were not found.`)\n\n foundOPs = foundOPs.map((orderProduct: OrderProduct) => {\n const foundTargetOP = targetOPs.filter(\n (targetOP: NewOrderProduct) => targetOP.name === orderProduct.name && targetOP.batchId === orderProduct.batchId\n )[0]\n\n orderProduct.status = foundTargetOP.status\n orderProduct.remark = foundTargetOP?.remark ? foundTargetOP.remark : null\n if (orderProduct.status.includes(ORDER_PRODUCT_STATUS.NOT_RECEIVED)) partialReceived = true\n orderProduct.updater = user\n\n return orderProduct\n })\n await tx.getRepository(OrderProduct).save(foundOPs)\n\n // #3 Update status of retail replenishment order (RECEIVED / PARTIALLY_RECEIVED)\n return await tx.getRepository(RetailReplenishmentOrder).save({\n ...foundRRO,\n status: partialReceived ? ORDER_STATUS.PARTIAL_RECEIVED : ORDER_STATUS.RECEIVED,\n updater: user\n })\n }\n\n @Directive('@transaction')\n @Mutation(returns => RetailReplenishmentOrder)\n async updateRetailReplenishmentOrder(\n @Arg('name') name: string,\n @Arg('patch', type => RetailReplenishmentOrderPatch) patch: RetailReplenishmentOrderPatch,\n @Ctx() context: ResolverContext\n ): Promise<RetailReplenishmentOrder> {\n const { tx, domain, user } = context.state\n\n const bizplace: Bizplace = await getOutletBizplace(patch.warehouseId)\n const repository = tx.getRepository(RetailReplenishmentOrder)\n\n delete patch.warehouseId //exclude warehouse Id from patch\n\n const retailReplenishmentOrder = await repository.findOne({\n where: { domain: { id: domain.id }, name, bizplace: { id: bizplace.id } },\n relations: ['orderProducts', 'orderProducts.product']\n })\n\n if (!retailReplenishmentOrder) throw new Error(`Retail replenishment order is not found.`)\n if (retailReplenishmentOrder && retailReplenishmentOrder.status !== ORDER_STATUS.REJECTED)\n throw new Error(`You are not allowed to update this order with status: ${retailReplenishmentOrder.status}`)\n\n return await repository.save({\n ...retailReplenishmentOrder,\n ...patch,\n status: ORDER_STATUS.PENDING_RECEIVE,\n updater: user\n })\n }\n\n @Directive('@transaction')\n @Mutation(returns => [RetailReplenishmentOrder])\n async updateMultipleRetailReplenishmentOrder(\n @Arg('patches', type => [RetailReplenishmentOrderPatch]) patches: RetailReplenishmentOrderPatch[],\n @Ctx() context: ResolverContext\n ): Promise<RetailReplenishmentOrder[]> {\n const { tx, domain, user } = context.state\n\n let results: RetailReplenishmentOrder[] = []\n const _createRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === '+')\n const _updateRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === 'M')\n const retailReplenishmentOrderRepo = tx.getRepository(RetailReplenishmentOrder)\n\n if (_createRecords.length > 0) {\n for (let i = 0; i < _createRecords.length; i++) {\n const newRecord = _createRecords[i]\n\n const result = await retailReplenishmentOrderRepo.save({\n ...newRecord,\n domain,\n creator: user,\n updater: user\n })\n\n results.push({ ...result, cuFlag: '+' })\n }\n }\n\n if (_updateRecords.length > 0) {\n for (let i = 0; i < _updateRecords.length; i++) {\n const newRecord = _updateRecords[i]\n const retailReplenishmentOrder = await retailReplenishmentOrderRepo.findOneBy({ id: newRecord.id })\n\n const result = await retailReplenishmentOrderRepo.save({\n ...retailReplenishmentOrder,\n ...newRecord,\n updater: user\n })\n\n results.push({ ...result, cuFlag: 'M' })\n }\n }\n\n return results\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean)\n async deleteRetailReplenishmentOrder(@Arg('name') name: string, @Ctx() context: ResolverContext): Promise<boolean> {\n const { tx, domain } = context.state\n await tx.getRepository(RetailReplenishmentOrder).delete({ domain: { id: domain.id }, name })\n return true\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean)\n async deleteRetailReplenishmentOrders(\n @Arg('names', type => [String]) names: string[],\n @Ctx() context: ResolverContext\n ): Promise<boolean> {\n const { tx, domain } = context.state\n await tx.getRepository(RetailReplenishmentOrder).delete({\n domain: { id: domain.id },\n name: In(names)\n })\n return true\n }\n}\nexport async function addRetailReplenishmentOrderProducts(\n domain: Domain,\n retailReplenishmentOrder: RetailReplenishmentOrder,\n orderProducts: (OrderProduct | NewOrderProduct)[],\n user: User,\n tx?: EntityManager\n): Promise<void> {\n const productRepo: Repository<Product> = tx?.getRepository(Product) || getRepository(Product)\n const orderProductRepo: Repository<OrderProduct> = tx?.getRepository(OrderProduct) || getRepository(OrderProduct)\n\n if (!retailReplenishmentOrder?.bizplace || !retailReplenishmentOrder?.orderProducts?.length) {\n retailReplenishmentOrder = await tx.getRepository(RetailReplenishmentOrder).findOne({\n where: { id: retailReplenishmentOrder.id },\n relations: ['bizplace', 'orderProducts']\n })\n }\n\n orderProducts = await Promise.all(\n orderProducts.map(async (op: OrderProduct) => {\n const foundProduct = await productRepo.findOneBy({\n domain: { id: domain.id },\n sku: op.product.sku,\n name: op.product.name\n })\n if (!foundProduct) throw new Error(`Product ${op.product.name} (${op.product.sku}) is not exist.`)\n\n return {\n ...op,\n domain,\n bizplace: retailReplenishmentOrder.bizplace,\n name: OrderNoGenerator.orderProduct(),\n product: foundProduct,\n retailReplenishmentOrder,\n //========= need to revise ===========\n packingType: foundProduct.packingType,\n uom: foundProduct.weightUnit,\n uomValue: foundProduct.weight,\n totalUomValue: `${(foundProduct.weight * op.packQty).toFixed(2)} ${foundProduct.weightUnit}`,\n //====================================\n creator: user,\n updater: user\n }\n })\n )\n\n await orderProductRepo.save(orderProducts)\n}\n"]}
|
|
@@ -212,9 +212,9 @@ async function deleteReturnOrder(tx, name, context) {
|
|
|
212
212
|
await tx.getRepository(__1.OrderVas).delete({ id: (0, typeorm_1.In)(vasIds) });
|
|
213
213
|
}
|
|
214
214
|
if (foundAttachment) {
|
|
215
|
-
await tx.getRepository(attachment_base_1.Attachment).delete({ domain, id: foundAttachment.id });
|
|
215
|
+
await tx.getRepository(attachment_base_1.Attachment).delete({ domain: { id: domain.id }, id: foundAttachment.id });
|
|
216
216
|
}
|
|
217
|
-
await tx.getRepository(return_order_1.ReturnOrder).delete({ domain, name });
|
|
217
|
+
await tx.getRepository(return_order_1.ReturnOrder).delete({ domain: { id: domain.id }, name });
|
|
218
218
|
return true;
|
|
219
219
|
}
|
|
220
220
|
exports.deleteReturnOrder = deleteReturnOrder;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"return-order-mutation.js","sourceRoot":"","sources":["../../../server/service/return-order/return-order-mutation.ts"],"names":[],"mappings":"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","sourcesContent":["import type { FileUpload } from 'graphql-upload/GraphQLUpload.js'\nimport GraphQLUpload from 'graphql-upload/GraphQLUpload.js'\nimport { Arg, Ctx, Directive, Mutation, Resolver } from 'type-graphql'\nimport { EntityManager, In } from 'typeorm'\n\nimport { Attachment, createAttachments } from '@things-factory/attachment-base'\nimport { Role } from '@things-factory/auth-base'\nimport { Bizplace, getDomainUsers } from '@things-factory/biz-base'\nimport { Product } from '@things-factory/product-base'\nimport { Inventory } from '@things-factory/warehouse-base'\n\nimport { NewOrderInventory, NewReturnOrder, OrderInventory, OrderVas, ReturnOrderPatch } from '../'\nimport { ATTACHMENT_TYPE, ORDER_INVENTORY_STATUS, ORDER_STATUS, ORDER_VAS_STATUS } from '../../constants'\nimport { OrderNoGenerator } from '../../utils'\nimport { ReturnOrder } from './return-order'\n\n@Resolver(ReturnOrder)\nexport class ReturnOrderMutation {\n @Directive('@privilege(category: \"order_customer\", privilege: \"mutation\")')\n @Directive('@transaction')\n @Mutation(returns => Boolean)\n async deleteReturnOrder(@Arg('name') name: string, @Ctx() context: ResolverContext): Promise<boolean> {\n const { tx } = context.state\n\n return await deleteReturnOrder(tx, name, context)\n }\n\n @Directive('@privilege(category: \"order_customer\", privilege: \"mutation\")')\n @Directive('@transaction')\n @Mutation(returns => Boolean)\n async deleteReturnOrders(\n @Arg('names', type => [String]) names: string[],\n @Ctx() context: ResolverContext\n ): Promise<boolean> {\n const { tx, domain } = context.state\n\n await tx.getRepository(ReturnOrder).delete({\n domain: { id: domain.id },\n name: In(names)\n })\n return true\n }\n\n @Directive('@privilege(category: \"order_customer\", privilege: \"mutation\")')\n @Directive('@transaction')\n @Mutation(returns => ReturnOrder)\n async generateReturnOrder(\n @Ctx() context: ResolverContext,\n @Arg('file', type => [GraphQLUpload], { nullable: true }) file: FileUpload[],\n @Arg('returnOrder', type => NewReturnOrder, { nullable: true }) returnOrder: NewReturnOrder\n ): Promise<ReturnOrder> {\n const { tx, domain, user } = context.state\n\n const bizplace: Bizplace = await tx.getRepository(Bizplace).findOneBy({ id: returnOrder.customerBizplaceId })\n\n let orderInventories: NewOrderInventory[] = returnOrder.orderInventories\n let foundInv = Inventory\n\n const mergedOrderInventories = orderInventories.reduce((acc, curr) => {\n let existingItem = acc.find(\n itm =>\n itm.product.id === curr.product.id &&\n itm.packingType === curr.packingType &&\n itm.batchId === curr.batchId &&\n itm.packingSize === curr.packingSize\n )\n\n if (!existingItem) {\n acc.push(curr)\n } else {\n existingItem.returnQty = existingItem.returnQty + curr.returnQty\n existingItem.returnUomValue = existingItem.returnUomValue + curr.returnUomValue\n }\n\n return acc\n }, [])\n\n returnOrder.orderInventories = mergedOrderInventories\n\n let newReturnOrder: NewReturnOrder = {\n ...returnOrder,\n name: OrderNoGenerator.returnOrder(),\n domain,\n bizplace,\n status: ORDER_STATUS.PENDING,\n creator: user,\n updater: user\n }\n\n if (newReturnOrder.orderInventories[0].returnQty < 0) {\n throw new Error('invalid return quantity')\n }\n\n let createdReturnOrder: ReturnOrder = await tx.getRepository(ReturnOrder).save(newReturnOrder as any)\n\n for (let moi of mergedOrderInventories) {\n let newOrderInv: OrderInventory = Object.assign({}, moi) as any\n newOrderInv.domain = domain\n newOrderInv.bizplace = bizplace\n newOrderInv.status = ORDER_INVENTORY_STATUS.PENDING\n newOrderInv.name = OrderNoGenerator.orderInventory()\n newOrderInv.returnOrder = createdReturnOrder\n newOrderInv.product = await tx.getRepository(Product).findOneBy({ id: moi.product.id })\n newOrderInv.creator = user\n newOrderInv.updater = user\n\n if (newOrderInv.inventory?.id) {\n foundInv = await tx.getRepository(Inventory).findOneBy({ id: newOrderInv.inventory.id })\n newOrderInv.inventory = foundInv\n }\n\n await tx.getRepository(OrderInventory).save(newOrderInv)\n }\n\n if (file?.length > 0) {\n const attachments: Attachment[] = file.map(attachment => {\n return {\n file: attachment,\n refType: ATTACHMENT_TYPE.RETURN_ORDER,\n refBy: createdReturnOrder.id,\n category: ATTACHMENT_TYPE.RETURN_ORDER /* TODO use refType */\n }\n })\n await createAttachments(null, { attachments }, context)\n }\n\n return createdReturnOrder\n }\n\n @Directive('@privilege(category: \"order_customer\", privilege: \"mutation\")')\n @Directive('@transaction')\n @Mutation(returns => ReturnOrder)\n async confirmReturnOrder(@Arg('name') name: string, @Ctx() context: ResolverContext): Promise<ReturnOrder> {\n const { tx } = context.state\n\n const returnOrder: ReturnOrder = await confirmReturnOrder(tx, name, context)\n\n return returnOrder\n }\n\n @Directive('@privilege(category: \"order_customer\", privilege: \"mutation\")')\n @Directive('@transaction')\n @Mutation(returns => ReturnOrder)\n async receiveReturnOrder(@Arg('name') name: string, @Ctx() context: ResolverContext): Promise<ReturnOrder> {\n const { tx } = context.state\n const returnOrder: ReturnOrder = await receiveReturnOrder(tx, name, context)\n\n return returnOrder\n }\n\n @Directive('@privilege(category: \"order_customer\", privilege: \"mutation\")')\n @Directive('@transaction')\n @Mutation(returns => ReturnOrder)\n async rejectReturnOrder(\n @Arg('name') name: string,\n @Arg('patch', type => ReturnOrderPatch) patch: ReturnOrderPatch,\n @Ctx() context: ResolverContext\n ): Promise<ReturnOrder> {\n const { tx } = context.state\n const returnOrder: ReturnOrder = await rejectReturnOrder(tx, name, patch.remark, context)\n\n return returnOrder\n }\n\n @Directive('@privilege(category: \"order_customer\", privilege: \"mutation\")')\n @Directive('@transaction')\n @Mutation(returns => ReturnOrder)\n async checkReturnOrder(@Arg('name') name: string, @Ctx() context: ResolverContext): Promise<ReturnOrder> {\n const { tx } = context.state\n const returnOrder: ReturnOrder = await checkReturnOrder(tx, name, context)\n\n return returnOrder\n }\n}\n\nexport async function deleteReturnOrder(tx: EntityManager, name: string, context: ResolverContext): Promise<boolean> {\n const { domain } = context.state\n\n let foundReturnOrder: ReturnOrder = await tx.getRepository(ReturnOrder).findOne({\n where: { domain: { id: domain.id }, name },\n relations: ['orderInventories', 'orderInventories.inventory', 'orderVass', 'creator', 'updater']\n })\n\n if (!foundReturnOrder) throw new Error(`Return Order doesn't exists.`)\n const foundOIs: OrderInventory[] = foundReturnOrder.orderInventories\n const foundOVs: OrderVas[] = foundReturnOrder.orderVass\n\n let foundAttachment: Attachment\n if (foundReturnOrder?.ownTransport) {\n foundAttachment = await tx.getRepository(Attachment).findOne({\n where: {\n domain: { id: domain.id },\n refBy: foundReturnOrder.id,\n category: ATTACHMENT_TYPE.RETURN_ORDER\n }\n })\n }\n\n // Update locked qty and locked weight of inventories and return id list of order inventories\n const inventoryIds: string[] = foundOIs.map((oi: OrderInventory) => oi.id)\n\n // Delete order inventories by ids\n if (inventoryIds.length) {\n await tx.getRepository(OrderInventory).delete({ id: In(inventoryIds) })\n }\n\n // 2. delete order vass\n const vasIds = foundOVs.map((vas: OrderVas) => vas.id)\n if (vasIds.length) {\n await tx.getRepository(OrderVas).delete({ id: In(vasIds) })\n }\n\n if (foundAttachment) {\n await tx.getRepository(Attachment).delete({ domain, id: foundAttachment.id })\n }\n\n await tx.getRepository(ReturnOrder).delete({ domain, name })\n return true\n}\n\nexport async function confirmReturnOrder(\n tx: EntityManager,\n name: string,\n context: ResolverContext\n): Promise<ReturnOrder> {\n const { domain, user } = context.state\n\n const foundReturnOrder: ReturnOrder = await tx.getRepository(ReturnOrder).findOne({\n where: { domain: { id: domain.id }, name, status: ORDER_STATUS.PENDING },\n relations: ['bizplace', 'orderInventories', 'orderVass']\n })\n\n if (!foundReturnOrder) throw new Error(`Return order doesn't exists.`)\n let foundOIs: OrderInventory[] = foundReturnOrder.orderInventories\n let foundOVs: OrderVas[] = foundReturnOrder.orderVass\n let customerBizplace: Bizplace = foundReturnOrder.bizplace\n\n // 1. RO Status change (PENDING => PENDING_RECEIVE)\n const returnOrder: ReturnOrder = await tx.getRepository(ReturnOrder).save({\n ...foundReturnOrder,\n status: ORDER_STATUS.PENDING_RECEIVE,\n updater: user\n })\n\n // 1. Update status of order inventories\n foundOIs = foundOIs.map((orderInventory: OrderInventory) => {\n return {\n ...orderInventory,\n status: ORDER_INVENTORY_STATUS.PENDING_RECEIVE,\n updater: user\n }\n })\n await tx.getRepository(OrderInventory).save(foundOIs)\n\n // 2. Update status of order vass\n if (foundOVs && foundOVs.length) {\n foundOVs = foundOVs.map((orderVas: OrderVas) => {\n return {\n ...orderVas,\n status: ORDER_VAS_STATUS.PENDING_RECEIVE,\n updater: user\n }\n })\n await tx.getRepository(OrderVas).save(foundOVs)\n }\n\n // notification logics\n // get Office Admin Users\n const users: any[] = await tx\n .getRepository('users_roles')\n .createQueryBuilder('ur')\n .select('ur.users_id', 'id')\n .where(qb => {\n const subQuery = qb\n .subQuery()\n .select('role.id')\n .from(Role, 'role')\n .where(\"role.name = 'Office Admin'\")\n .andWhere('role.domain_id = :domain', { domain: domain.id })\n .getQuery()\n return 'ur.roles_id IN ' + subQuery\n })\n .getRawMany()\n\n // send notification to Office Admin Users\n if (users?.length && context.header?.referer) {\n const receivers: any[] = users.map(user => user.id)\n const msg = {\n title: `New Return Order from ${customerBizplace.name}`,\n body: `New incoming order, ${foundReturnOrder.name} is pending for receiving`,\n url: context.header.referer,\n data: { url: context.header.referer }\n }\n /**\n * @notes Temporary off sendNotification due to suspect of causing wms down\n */\n\n // await sendNotification({\n // receivers,\n // message: { ...msg }\n // })\n }\n\n return returnOrder\n}\n\nexport async function receiveReturnOrder(\n tx: EntityManager,\n name: string,\n context: ResolverContext\n): Promise<ReturnOrder> {\n const { domain, user } = context.state\n\n const foundReturnOrder: ReturnOrder = await tx.getRepository(ReturnOrder).findOne({\n where: { domain: { id: domain.id }, name, status: ORDER_STATUS.PENDING_RECEIVE },\n relations: ['bizplace', 'orderInventories', 'orderVass']\n })\n\n if (!foundReturnOrder) throw new Error(`Return order doesn't exists.`)\n let foundOIs: OrderInventory[] = foundReturnOrder.orderInventories\n let foundOVs: OrderVas[] = foundReturnOrder.orderVass\n\n // 1. RO Status change (PENDING_RECEIVE => INTRANSIT)\n const returnOrder: ReturnOrder = await tx.getRepository(ReturnOrder).save({\n ...foundReturnOrder,\n status: ORDER_STATUS.INTRANSIT,\n updater: user,\n acceptedBy: user,\n acceptedAt: new Date()\n })\n\n // 1. Update status of order inventories\n foundOIs = foundOIs.map((orderInventory: OrderInventory) => {\n return {\n ...orderInventory,\n status: ORDER_INVENTORY_STATUS.INTRANSIT,\n updater: user\n }\n })\n await tx.getRepository(OrderInventory).save(foundOIs)\n\n // 2. Update status of order vass\n if (foundOVs && foundOVs.length) {\n foundOVs = foundOVs.map((orderVas: OrderVas) => {\n return {\n ...orderVas,\n status: ORDER_VAS_STATUS.INTRANSIT,\n updater: user\n }\n })\n await tx.getRepository(OrderVas).save(foundOVs)\n }\n\n // notification logics\n const users: any[] = await getDomainUsers(foundReturnOrder?.bizplace, tx)\n\n if (users?.length && context.header?.referer) {\n const receivers: any[] = users.map(user => user.id)\n const msg = {\n title: `Latest status for ${foundReturnOrder.name}`,\n body: `Your Return Order has been received and processed by ${domain.name}`,\n url: context.header.referer,\n data: { url: context.header.referer }\n }\n\n /**\n * @notes Temporary off sendNotification due to suspect of causing wms down\n */\n\n // await sendNotification({\n // receivers,\n // message: { ...msg }\n // })\n }\n\n return returnOrder\n}\n\nexport async function rejectReturnOrder(\n tx: EntityManager,\n name: string,\n remark: string,\n context: any\n): Promise<ReturnOrder> {\n const { domain, user } = context.state\n\n const foundReturnOrder: ReturnOrder = await tx.getRepository(ReturnOrder).findOne({\n where: { domain: { id: domain.id }, name, status: ORDER_STATUS.PENDING_RECEIVE },\n relations: ['bizplace', 'orderInventories', 'orderVass']\n })\n\n if (!foundReturnOrder) throw new Error(`Return order doesn't exists.`)\n if (!remark) throw new Error('Remark is not exist.')\n\n let foundOIs: OrderInventory[] = foundReturnOrder.orderInventories\n let foundOVs: OrderVas[] = foundReturnOrder.orderVass\n\n foundReturnOrder.remark = remark\n foundReturnOrder.status = ORDER_STATUS.REJECTED\n foundReturnOrder.updater = user\n await tx.getRepository(ReturnOrder).save(foundReturnOrder)\n\n // 1. Update status of order inventories\n foundOIs = foundOIs.map((orderInventory: OrderInventory) => {\n return {\n ...orderInventory,\n status: ORDER_INVENTORY_STATUS.REJECTED,\n updater: user\n }\n })\n await tx.getRepository(OrderInventory).save(foundOIs)\n\n // 2. Update status of order vass\n if (foundOVs && foundOVs.length) {\n foundOVs = foundOVs.map((orderVas: OrderVas) => {\n return {\n ...orderVas,\n status: ORDER_VAS_STATUS.REJECTED,\n updater: user\n }\n })\n await tx.getRepository(OrderVas).save(foundOVs)\n }\n\n // notification logics\n const users: any[] = await getDomainUsers(foundReturnOrder?.bizplace, tx)\n\n if (users?.length && context.header?.referer) {\n const receivers: any[] = users.map(user => user.id)\n const msg = {\n title: `Latest status for ${foundReturnOrder.name}`,\n body: `Your Return Order has been rejected.`,\n url: context.header.referer,\n data: { url: context.header.referer }\n }\n\n /**\n * @notes Temporary off sendNotification due to suspect of causing wms down\n */\n\n // await sendNotification({\n // receivers,\n // message: { ...msg }\n // })\n }\n\n return foundReturnOrder\n}\n\nexport async function checkReturnOrder(\n tx: EntityManager,\n name: string,\n context: ResolverContext\n): Promise<ReturnOrder> {\n const { domain, user } = context.state\n\n const foundReturnOrder: ReturnOrder = await tx.getRepository(ReturnOrder).findOne({\n where: { domain: { id: domain.id }, name, status: ORDER_STATUS.INTRANSIT },\n relations: ['bizplace', 'orderInventories', 'orderVass']\n })\n\n if (!foundReturnOrder) throw new Error(`Return order doesn't exists.`)\n\n let foundOIs: OrderInventory[] = foundReturnOrder.orderInventories\n let foundOVs: OrderVas[] = foundReturnOrder.orderVass\n\n foundReturnOrder.status = ORDER_STATUS.ARRIVED\n foundReturnOrder.updater = user\n await tx.getRepository(ReturnOrder).save(foundReturnOrder)\n\n // 1. Update status of order inventories\n foundOIs = foundOIs.map((orderInventory: OrderInventory) => {\n return {\n ...orderInventory,\n status: ORDER_INVENTORY_STATUS.ARRIVED,\n updater: user\n }\n })\n await tx.getRepository(OrderInventory).save(foundOIs)\n\n // 2. Update status of order vass\n if (foundOVs && foundOVs.length) {\n foundOVs = foundOVs.map((orderVas: OrderVas) => {\n return {\n ...orderVas,\n status: ORDER_VAS_STATUS.ARRIVED,\n updater: user\n }\n })\n await tx.getRepository(OrderVas).save(foundOVs)\n }\n\n // notification logics\n const users: any[] = await getDomainUsers(foundReturnOrder?.bizplace, tx)\n\n if (users?.length && context.header?.referer) {\n const receivers: any[] = users.map(user => user.id)\n const msg = {\n title: `Latest status for ${foundReturnOrder.name}`,\n body: `Your goods has safely arrived at ${domain.name}.`,\n url: context.header.referer,\n data: { url: context.header.referer }\n }\n\n /**\n * @notes Temporary off sendNotification due to suspect of causing wms down\n */\n\n // await sendNotification({\n // receivers,\n // message: { ...msg }\n // })\n }\n\n return foundReturnOrder\n}\n"]}
|
|
1
|
+
{"version":3,"file":"return-order-mutation.js","sourceRoot":"","sources":["../../../server/service/return-order/return-order-mutation.ts"],"names":[],"mappings":"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","sourcesContent":["import type { FileUpload } from 'graphql-upload/GraphQLUpload.js'\nimport GraphQLUpload from 'graphql-upload/GraphQLUpload.js'\nimport { Arg, Ctx, Directive, Mutation, Resolver } from 'type-graphql'\nimport { EntityManager, In } from 'typeorm'\n\nimport { Attachment, createAttachments } from '@things-factory/attachment-base'\nimport { Role } from '@things-factory/auth-base'\nimport { Bizplace, getDomainUsers } from '@things-factory/biz-base'\nimport { Product } from '@things-factory/product-base'\nimport { Inventory } from '@things-factory/warehouse-base'\n\nimport { NewOrderInventory, NewReturnOrder, OrderInventory, OrderVas, ReturnOrderPatch } from '../'\nimport { ATTACHMENT_TYPE, ORDER_INVENTORY_STATUS, ORDER_STATUS, ORDER_VAS_STATUS } from '../../constants'\nimport { OrderNoGenerator } from '../../utils'\nimport { ReturnOrder } from './return-order'\n\n@Resolver(ReturnOrder)\nexport class ReturnOrderMutation {\n @Directive('@privilege(category: \"order_customer\", privilege: \"mutation\")')\n @Directive('@transaction')\n @Mutation(returns => Boolean)\n async deleteReturnOrder(@Arg('name') name: string, @Ctx() context: ResolverContext): Promise<boolean> {\n const { tx } = context.state\n\n return await deleteReturnOrder(tx, name, context)\n }\n\n @Directive('@privilege(category: \"order_customer\", privilege: \"mutation\")')\n @Directive('@transaction')\n @Mutation(returns => Boolean)\n async deleteReturnOrders(\n @Arg('names', type => [String]) names: string[],\n @Ctx() context: ResolverContext\n ): Promise<boolean> {\n const { tx, domain } = context.state\n\n await tx.getRepository(ReturnOrder).delete({\n domain: { id: domain.id },\n name: In(names)\n })\n return true\n }\n\n @Directive('@privilege(category: \"order_customer\", privilege: \"mutation\")')\n @Directive('@transaction')\n @Mutation(returns => ReturnOrder)\n async generateReturnOrder(\n @Ctx() context: ResolverContext,\n @Arg('file', type => [GraphQLUpload], { nullable: true }) file: FileUpload[],\n @Arg('returnOrder', type => NewReturnOrder, { nullable: true }) returnOrder: NewReturnOrder\n ): Promise<ReturnOrder> {\n const { tx, domain, user } = context.state\n\n const bizplace: Bizplace = await tx.getRepository(Bizplace).findOneBy({ id: returnOrder.customerBizplaceId })\n\n let orderInventories: NewOrderInventory[] = returnOrder.orderInventories\n let foundInv = Inventory\n\n const mergedOrderInventories = orderInventories.reduce((acc, curr) => {\n let existingItem = acc.find(\n itm =>\n itm.product.id === curr.product.id &&\n itm.packingType === curr.packingType &&\n itm.batchId === curr.batchId &&\n itm.packingSize === curr.packingSize\n )\n\n if (!existingItem) {\n acc.push(curr)\n } else {\n existingItem.returnQty = existingItem.returnQty + curr.returnQty\n existingItem.returnUomValue = existingItem.returnUomValue + curr.returnUomValue\n }\n\n return acc\n }, [])\n\n returnOrder.orderInventories = mergedOrderInventories\n\n let newReturnOrder: NewReturnOrder = {\n ...returnOrder,\n name: OrderNoGenerator.returnOrder(),\n domain,\n bizplace,\n status: ORDER_STATUS.PENDING,\n creator: user,\n updater: user\n }\n\n if (newReturnOrder.orderInventories[0].returnQty < 0) {\n throw new Error('invalid return quantity')\n }\n\n let createdReturnOrder: ReturnOrder = await tx.getRepository(ReturnOrder).save(newReturnOrder as any)\n\n for (let moi of mergedOrderInventories) {\n let newOrderInv: OrderInventory = Object.assign({}, moi) as any\n newOrderInv.domain = domain\n newOrderInv.bizplace = bizplace\n newOrderInv.status = ORDER_INVENTORY_STATUS.PENDING\n newOrderInv.name = OrderNoGenerator.orderInventory()\n newOrderInv.returnOrder = createdReturnOrder\n newOrderInv.product = await tx.getRepository(Product).findOneBy({ id: moi.product.id })\n newOrderInv.creator = user\n newOrderInv.updater = user\n\n if (newOrderInv.inventory?.id) {\n foundInv = await tx.getRepository(Inventory).findOneBy({ id: newOrderInv.inventory.id })\n newOrderInv.inventory = foundInv\n }\n\n await tx.getRepository(OrderInventory).save(newOrderInv)\n }\n\n if (file?.length > 0) {\n const attachments: Attachment[] = file.map(attachment => {\n return {\n file: attachment,\n refType: ATTACHMENT_TYPE.RETURN_ORDER,\n refBy: createdReturnOrder.id,\n category: ATTACHMENT_TYPE.RETURN_ORDER /* TODO use refType */\n }\n })\n await createAttachments(null, { attachments }, context)\n }\n\n return createdReturnOrder\n }\n\n @Directive('@privilege(category: \"order_customer\", privilege: \"mutation\")')\n @Directive('@transaction')\n @Mutation(returns => ReturnOrder)\n async confirmReturnOrder(@Arg('name') name: string, @Ctx() context: ResolverContext): Promise<ReturnOrder> {\n const { tx } = context.state\n\n const returnOrder: ReturnOrder = await confirmReturnOrder(tx, name, context)\n\n return returnOrder\n }\n\n @Directive('@privilege(category: \"order_customer\", privilege: \"mutation\")')\n @Directive('@transaction')\n @Mutation(returns => ReturnOrder)\n async receiveReturnOrder(@Arg('name') name: string, @Ctx() context: ResolverContext): Promise<ReturnOrder> {\n const { tx } = context.state\n const returnOrder: ReturnOrder = await receiveReturnOrder(tx, name, context)\n\n return returnOrder\n }\n\n @Directive('@privilege(category: \"order_customer\", privilege: \"mutation\")')\n @Directive('@transaction')\n @Mutation(returns => ReturnOrder)\n async rejectReturnOrder(\n @Arg('name') name: string,\n @Arg('patch', type => ReturnOrderPatch) patch: ReturnOrderPatch,\n @Ctx() context: ResolverContext\n ): Promise<ReturnOrder> {\n const { tx } = context.state\n const returnOrder: ReturnOrder = await rejectReturnOrder(tx, name, patch.remark, context)\n\n return returnOrder\n }\n\n @Directive('@privilege(category: \"order_customer\", privilege: \"mutation\")')\n @Directive('@transaction')\n @Mutation(returns => ReturnOrder)\n async checkReturnOrder(@Arg('name') name: string, @Ctx() context: ResolverContext): Promise<ReturnOrder> {\n const { tx } = context.state\n const returnOrder: ReturnOrder = await checkReturnOrder(tx, name, context)\n\n return returnOrder\n }\n}\n\nexport async function deleteReturnOrder(tx: EntityManager, name: string, context: ResolverContext): Promise<boolean> {\n const { domain } = context.state\n\n let foundReturnOrder: ReturnOrder = await tx.getRepository(ReturnOrder).findOne({\n where: { domain: { id: domain.id }, name },\n relations: ['orderInventories', 'orderInventories.inventory', 'orderVass', 'creator', 'updater']\n })\n\n if (!foundReturnOrder) throw new Error(`Return Order doesn't exists.`)\n const foundOIs: OrderInventory[] = foundReturnOrder.orderInventories\n const foundOVs: OrderVas[] = foundReturnOrder.orderVass\n\n let foundAttachment: Attachment\n if (foundReturnOrder?.ownTransport) {\n foundAttachment = await tx.getRepository(Attachment).findOne({\n where: {\n domain: { id: domain.id },\n refBy: foundReturnOrder.id,\n category: ATTACHMENT_TYPE.RETURN_ORDER\n }\n })\n }\n\n // Update locked qty and locked weight of inventories and return id list of order inventories\n const inventoryIds: string[] = foundOIs.map((oi: OrderInventory) => oi.id)\n\n // Delete order inventories by ids\n if (inventoryIds.length) {\n await tx.getRepository(OrderInventory).delete({ id: In(inventoryIds) })\n }\n\n // 2. delete order vass\n const vasIds = foundOVs.map((vas: OrderVas) => vas.id)\n if (vasIds.length) {\n await tx.getRepository(OrderVas).delete({ id: In(vasIds) })\n }\n\n if (foundAttachment) {\n await tx.getRepository(Attachment).delete({ domain: { id: domain.id }, id: foundAttachment.id })\n }\n\n await tx.getRepository(ReturnOrder).delete({ domain: { id: domain.id }, name })\n return true\n}\n\nexport async function confirmReturnOrder(\n tx: EntityManager,\n name: string,\n context: ResolverContext\n): Promise<ReturnOrder> {\n const { domain, user } = context.state\n\n const foundReturnOrder: ReturnOrder = await tx.getRepository(ReturnOrder).findOne({\n where: { domain: { id: domain.id }, name, status: ORDER_STATUS.PENDING },\n relations: ['bizplace', 'orderInventories', 'orderVass']\n })\n\n if (!foundReturnOrder) throw new Error(`Return order doesn't exists.`)\n let foundOIs: OrderInventory[] = foundReturnOrder.orderInventories\n let foundOVs: OrderVas[] = foundReturnOrder.orderVass\n let customerBizplace: Bizplace = foundReturnOrder.bizplace\n\n // 1. RO Status change (PENDING => PENDING_RECEIVE)\n const returnOrder: ReturnOrder = await tx.getRepository(ReturnOrder).save({\n ...foundReturnOrder,\n status: ORDER_STATUS.PENDING_RECEIVE,\n updater: user\n })\n\n // 1. Update status of order inventories\n foundOIs = foundOIs.map((orderInventory: OrderInventory) => {\n return {\n ...orderInventory,\n status: ORDER_INVENTORY_STATUS.PENDING_RECEIVE,\n updater: user\n }\n })\n await tx.getRepository(OrderInventory).save(foundOIs)\n\n // 2. Update status of order vass\n if (foundOVs && foundOVs.length) {\n foundOVs = foundOVs.map((orderVas: OrderVas) => {\n return {\n ...orderVas,\n status: ORDER_VAS_STATUS.PENDING_RECEIVE,\n updater: user\n }\n })\n await tx.getRepository(OrderVas).save(foundOVs)\n }\n\n // notification logics\n // get Office Admin Users\n const users: any[] = await tx\n .getRepository('users_roles')\n .createQueryBuilder('ur')\n .select('ur.users_id', 'id')\n .where(qb => {\n const subQuery = qb\n .subQuery()\n .select('role.id')\n .from(Role, 'role')\n .where(\"role.name = 'Office Admin'\")\n .andWhere('role.domain_id = :domain', { domain: domain.id })\n .getQuery()\n return 'ur.roles_id IN ' + subQuery\n })\n .getRawMany()\n\n // send notification to Office Admin Users\n if (users?.length && context.header?.referer) {\n const receivers: any[] = users.map(user => user.id)\n const msg = {\n title: `New Return Order from ${customerBizplace.name}`,\n body: `New incoming order, ${foundReturnOrder.name} is pending for receiving`,\n url: context.header.referer,\n data: { url: context.header.referer }\n }\n /**\n * @notes Temporary off sendNotification due to suspect of causing wms down\n */\n\n // await sendNotification({\n // receivers,\n // message: { ...msg }\n // })\n }\n\n return returnOrder\n}\n\nexport async function receiveReturnOrder(\n tx: EntityManager,\n name: string,\n context: ResolverContext\n): Promise<ReturnOrder> {\n const { domain, user } = context.state\n\n const foundReturnOrder: ReturnOrder = await tx.getRepository(ReturnOrder).findOne({\n where: { domain: { id: domain.id }, name, status: ORDER_STATUS.PENDING_RECEIVE },\n relations: ['bizplace', 'orderInventories', 'orderVass']\n })\n\n if (!foundReturnOrder) throw new Error(`Return order doesn't exists.`)\n let foundOIs: OrderInventory[] = foundReturnOrder.orderInventories\n let foundOVs: OrderVas[] = foundReturnOrder.orderVass\n\n // 1. RO Status change (PENDING_RECEIVE => INTRANSIT)\n const returnOrder: ReturnOrder = await tx.getRepository(ReturnOrder).save({\n ...foundReturnOrder,\n status: ORDER_STATUS.INTRANSIT,\n updater: user,\n acceptedBy: user,\n acceptedAt: new Date()\n })\n\n // 1. Update status of order inventories\n foundOIs = foundOIs.map((orderInventory: OrderInventory) => {\n return {\n ...orderInventory,\n status: ORDER_INVENTORY_STATUS.INTRANSIT,\n updater: user\n }\n })\n await tx.getRepository(OrderInventory).save(foundOIs)\n\n // 2. Update status of order vass\n if (foundOVs && foundOVs.length) {\n foundOVs = foundOVs.map((orderVas: OrderVas) => {\n return {\n ...orderVas,\n status: ORDER_VAS_STATUS.INTRANSIT,\n updater: user\n }\n })\n await tx.getRepository(OrderVas).save(foundOVs)\n }\n\n // notification logics\n const users: any[] = await getDomainUsers(foundReturnOrder?.bizplace, tx)\n\n if (users?.length && context.header?.referer) {\n const receivers: any[] = users.map(user => user.id)\n const msg = {\n title: `Latest status for ${foundReturnOrder.name}`,\n body: `Your Return Order has been received and processed by ${domain.name}`,\n url: context.header.referer,\n data: { url: context.header.referer }\n }\n\n /**\n * @notes Temporary off sendNotification due to suspect of causing wms down\n */\n\n // await sendNotification({\n // receivers,\n // message: { ...msg }\n // })\n }\n\n return returnOrder\n}\n\nexport async function rejectReturnOrder(\n tx: EntityManager,\n name: string,\n remark: string,\n context: any\n): Promise<ReturnOrder> {\n const { domain, user } = context.state\n\n const foundReturnOrder: ReturnOrder = await tx.getRepository(ReturnOrder).findOne({\n where: { domain: { id: domain.id }, name, status: ORDER_STATUS.PENDING_RECEIVE },\n relations: ['bizplace', 'orderInventories', 'orderVass']\n })\n\n if (!foundReturnOrder) throw new Error(`Return order doesn't exists.`)\n if (!remark) throw new Error('Remark is not exist.')\n\n let foundOIs: OrderInventory[] = foundReturnOrder.orderInventories\n let foundOVs: OrderVas[] = foundReturnOrder.orderVass\n\n foundReturnOrder.remark = remark\n foundReturnOrder.status = ORDER_STATUS.REJECTED\n foundReturnOrder.updater = user\n await tx.getRepository(ReturnOrder).save(foundReturnOrder)\n\n // 1. Update status of order inventories\n foundOIs = foundOIs.map((orderInventory: OrderInventory) => {\n return {\n ...orderInventory,\n status: ORDER_INVENTORY_STATUS.REJECTED,\n updater: user\n }\n })\n await tx.getRepository(OrderInventory).save(foundOIs)\n\n // 2. Update status of order vass\n if (foundOVs && foundOVs.length) {\n foundOVs = foundOVs.map((orderVas: OrderVas) => {\n return {\n ...orderVas,\n status: ORDER_VAS_STATUS.REJECTED,\n updater: user\n }\n })\n await tx.getRepository(OrderVas).save(foundOVs)\n }\n\n // notification logics\n const users: any[] = await getDomainUsers(foundReturnOrder?.bizplace, tx)\n\n if (users?.length && context.header?.referer) {\n const receivers: any[] = users.map(user => user.id)\n const msg = {\n title: `Latest status for ${foundReturnOrder.name}`,\n body: `Your Return Order has been rejected.`,\n url: context.header.referer,\n data: { url: context.header.referer }\n }\n\n /**\n * @notes Temporary off sendNotification due to suspect of causing wms down\n */\n\n // await sendNotification({\n // receivers,\n // message: { ...msg }\n // })\n }\n\n return foundReturnOrder\n}\n\nexport async function checkReturnOrder(\n tx: EntityManager,\n name: string,\n context: ResolverContext\n): Promise<ReturnOrder> {\n const { domain, user } = context.state\n\n const foundReturnOrder: ReturnOrder = await tx.getRepository(ReturnOrder).findOne({\n where: { domain: { id: domain.id }, name, status: ORDER_STATUS.INTRANSIT },\n relations: ['bizplace', 'orderInventories', 'orderVass']\n })\n\n if (!foundReturnOrder) throw new Error(`Return order doesn't exists.`)\n\n let foundOIs: OrderInventory[] = foundReturnOrder.orderInventories\n let foundOVs: OrderVas[] = foundReturnOrder.orderVass\n\n foundReturnOrder.status = ORDER_STATUS.ARRIVED\n foundReturnOrder.updater = user\n await tx.getRepository(ReturnOrder).save(foundReturnOrder)\n\n // 1. Update status of order inventories\n foundOIs = foundOIs.map((orderInventory: OrderInventory) => {\n return {\n ...orderInventory,\n status: ORDER_INVENTORY_STATUS.ARRIVED,\n updater: user\n }\n })\n await tx.getRepository(OrderInventory).save(foundOIs)\n\n // 2. Update status of order vass\n if (foundOVs && foundOVs.length) {\n foundOVs = foundOVs.map((orderVas: OrderVas) => {\n return {\n ...orderVas,\n status: ORDER_VAS_STATUS.ARRIVED,\n updater: user\n }\n })\n await tx.getRepository(OrderVas).save(foundOVs)\n }\n\n // notification logics\n const users: any[] = await getDomainUsers(foundReturnOrder?.bizplace, tx)\n\n if (users?.length && context.header?.referer) {\n const receivers: any[] = users.map(user => user.id)\n const msg = {\n title: `Latest status for ${foundReturnOrder.name}`,\n body: `Your goods has safely arrived at ${domain.name}.`,\n url: context.header.referer,\n data: { url: context.header.referer }\n }\n\n /**\n * @notes Temporary off sendNotification due to suspect of causing wms down\n */\n\n // await sendNotification({\n // receivers,\n // message: { ...msg }\n // })\n }\n\n return foundReturnOrder\n}\n"]}
|
|
@@ -306,7 +306,7 @@ let ReverseKittingOrderMutation = class ReverseKittingOrderMutation {
|
|
|
306
306
|
await tx.getRepository(reverse_kitting_order_inventory_1.ReverseKittingOrderInventory).delete({ id: (0, typeorm_1.In)(productIds) });
|
|
307
307
|
}
|
|
308
308
|
// 2. delete Reverse Kitting Order
|
|
309
|
-
await tx.getRepository(reverse_kitting_order_1.ReverseKittingOrder).delete({ domain, name });
|
|
309
|
+
await tx.getRepository(reverse_kitting_order_1.ReverseKittingOrder).delete({ domain: { id: domain.id }, name });
|
|
310
310
|
return true;
|
|
311
311
|
}
|
|
312
312
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reverse-kitting-order-mutation.js","sourceRoot":"","sources":["../../../server/service/reverse-kitting-order/reverse-kitting-order-mutation.ts"],"names":[],"mappings":"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","sourcesContent":["import { Arg, Ctx, Directive, Mutation, Resolver } from 'type-graphql'\nimport { Equal, In, Not } from 'typeorm'\n\nimport { Bizplace, getPermittedBizplaceIds } from '@things-factory/biz-base'\nimport { Product, ProductDetail } from '@things-factory/product-base'\nimport {\n Inventory,\n INVENTORY_STATUS,\n INVENTORY_TRANSACTION_TYPE,\n InventoryHistory,\n InventoryNoGenerator,\n InventoryPatch,\n Location,\n LOCATION_TYPE,\n Warehouse\n} from '@things-factory/warehouse-base'\n\nimport { ORDER_STATUS, ORDER_TYPES, ORDER_VAS_STATUS } from '../../constants'\nimport { InventoryUtil } from '../../utils'\nimport { OrderNoGenerator } from '../../utils/order-no-generator'\nimport { ReverseKittingOrderInventory } from '../reverse-kitting-order-inventory/reverse-kitting-order-inventory'\nimport { ReverseKittingOrder } from './reverse-kitting-order'\nimport { NewReverseKittingOrder } from './reverse-kitting-order-type'\n\n@Resolver(ReverseKittingOrder)\nexport class ReverseKittingOrderMutation {\n @Directive('@transaction')\n @Mutation(returns => ReverseKittingOrder, { description: 'To create new ReverseKittingOrder' })\n async generateReverseKittingOrder(\n @Arg('reverseKittingOrder', type => NewReverseKittingOrder) reverseKittingOrder: NewReverseKittingOrder,\n @Ctx() context: ResolverContext\n ): Promise<ReverseKittingOrder> {\n const { tx, domain, user } = context.state\n\n const customerBizplace: Bizplace = await tx.getRepository(Bizplace).findOne({\n where: { id: reverseKittingOrder.customerBizplaceId }\n })\n\n if (!customerBizplace) throw new Error('company is not found')\n\n let reverseKittingOrderOIs = reverseKittingOrder.reverseKittingOrderInventories\n\n // 1. Create reverse kitting order\n const createdReverseKittingOrder: ReverseKittingOrder = await tx.getRepository(ReverseKittingOrder).save({\n ...reverseKittingOrder,\n name: OrderNoGenerator.vasOrder(),\n domain,\n bizplace: customerBizplace,\n status: ORDER_STATUS.PENDING,\n creator: user\n })\n\n // 2. Create Reverse Kitting Order Items\n reverseKittingOrderOIs = await Promise.all(\n reverseKittingOrderOIs.map(async (reverseKittingOI: any) => {\n if (reverseKittingOI?.inventory?.id) {\n const foundInv: Inventory = await tx.getRepository(Inventory).findOneBy({ id: reverseKittingOI.inventory.id })\n reverseKittingOI.inventory = foundInv\n\n foundInv.lockedQty = Number(foundInv.lockedQty) + reverseKittingOI.qty\n foundInv.lockedUomValue = Number(foundInv.lockedUomValue) + reverseKittingOI.uomValue\n foundInv.updater = user\n\n await tx.getRepository(Inventory).save(foundInv)\n }\n return {\n ...reverseKittingOI,\n domain,\n name: OrderNoGenerator.orderVas(),\n reverseKittingOrder: createdReverseKittingOrder,\n bizplace: customerBizplace,\n type: ORDER_TYPES.VAS_ORDER,\n status: ORDER_VAS_STATUS.PENDING,\n creator: user\n }\n })\n )\n await tx.getRepository(ReverseKittingOrderInventory).save(reverseKittingOrderOIs)\n\n return createdReverseKittingOrder\n }\n\n @Directive('@transaction')\n @Mutation(returns => ReverseKittingOrder, { description: 'To execute reverse kitting order' })\n async executingReverseKittingOrder(\n @Arg('name') name: string,\n @Ctx() context: ResolverContext\n ): Promise<ReverseKittingOrder> {\n const { domain, user, tx } = context.state\n\n const reverseKittingOrder: ReverseKittingOrder = await tx.getRepository(ReverseKittingOrder).findOne({\n where: {\n domain: { id: domain.id },\n name,\n status: ORDER_STATUS.EXECUTING,\n bizplace: { id: In(await getPermittedBizplaceIds(domain, user)) }\n },\n relations: [\n 'domain',\n 'bizplace',\n 'reverseKittingOrderInventories',\n 'reverseKittingOrderInventories.inventory',\n 'reverseKittingOrderInventories.inventory.product',\n 'reverseKittingOrderInventories.inventory.location',\n 'reverseKittingOrderInventories.inventory.warehouse',\n 'creator',\n 'updater'\n ]\n })\n\n if (!reverseKittingOrder) throw new Error(`Reverse Kitting Order not exists`)\n\n return reverseKittingOrder\n }\n\n @Directive('@transaction')\n @Mutation(returns => ReverseKittingOrder, { description: 'To confirm reverse kitting order' })\n async confirmReverseKittingOrder(\n @Arg('name') name: string,\n @Ctx() context: ResolverContext\n ): Promise<ReverseKittingOrder> {\n const { user, domain, tx } = context.state\n\n const foundReverseKittingOrder: ReverseKittingOrder = await tx.getRepository(ReverseKittingOrder).findOne({\n where: { domain: { id: domain.id }, name, status: ORDER_STATUS.PENDING },\n relations: ['bizplace', 'reverseKittingOrderInventories', 'creator', 'updater']\n })\n\n let reverseKittingOIs: ReverseKittingOrderInventory[] = foundReverseKittingOrder.reverseKittingOrderInventories\n\n if (!foundReverseKittingOrder) throw new Error(`Reverse kitting order doesn't exists.`)\n\n // 1. Reverse Kitting Order Status change (PENDING => READY_TO_EXECUTE)\n const reverseKitting: ReverseKittingOrder = await tx.getRepository(ReverseKittingOrder).save({\n ...foundReverseKittingOrder,\n status: ORDER_STATUS.READY_TO_EXECUTE,\n updater: user\n })\n\n reverseKittingOIs = reverseKittingOIs.map((reverseKittingOI: ReverseKittingOrderInventory) => {\n return { ...reverseKittingOI, status: ORDER_VAS_STATUS.READY_TO_PROCESS }\n })\n await tx.getRepository(ReverseKittingOrderInventory).save(reverseKittingOIs)\n\n return reverseKitting\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean, { description: 'To confirm reverse kitting order' })\n async completeReverseKittingOrder(@Arg('name') name: string, @Ctx() context: ResolverContext): Promise<boolean> {\n const { tx, domain, user } = context.state\n\n let foundReverseKittingOrder: ReverseKittingOrder = await tx.getRepository(ReverseKittingOrder).findOne({\n where: { domain: { id: domain.id }, name, status: ORDER_STATUS.EXECUTING },\n relations: [\n 'bizplace',\n 'reverseKittingOrderInventories',\n 'reverseKittingOrderInventories.inventory',\n 'creator',\n 'updater'\n ]\n })\n\n if (!foundReverseKittingOrder) throw new Error(foundReverseKittingOrder.name + ` not found`)\n\n let reverseKittingOIs: ReverseKittingOrderInventory[] = foundReverseKittingOrder.reverseKittingOrderInventories\n\n await Promise.all(\n reverseKittingOIs.map(async reverseKittingOI => {\n let inventory: Inventory = reverseKittingOI.inventory\n inventory.qty = inventory.qty - reverseKittingOI.qty\n inventory.lockedQty = inventory.lockedQty - reverseKittingOI.qty\n inventory.uomValue = inventory.uomValue - reverseKittingOI.uomValue\n inventory.lockedUomValue = inventory.lockedUomValue - reverseKittingOI.uomValue\n\n await InventoryUtil.transactionInventory(\n inventory,\n foundReverseKittingOrder,\n -reverseKittingOI.qty,\n -reverseKittingOI.uomValue,\n INVENTORY_TRANSACTION_TYPE.REVERSE_KITTING,\n user,\n tx\n )\n })\n )\n\n reverseKittingOIs = reverseKittingOIs.map(reverseKittingOI => {\n return {\n ...reverseKittingOI,\n status: ORDER_VAS_STATUS.TERMINATED,\n updater: user\n }\n })\n\n await tx.getRepository(ReverseKittingOrderInventory).save(reverseKittingOIs)\n\n foundReverseKittingOrder.status = ORDER_STATUS.DONE\n foundReverseKittingOrder.updater = user\n\n await tx.getRepository(ReverseKittingOrder).save(foundReverseKittingOrder)\n\n return true\n }\n\n @Directive('@transaction')\n @Mutation(returns => ReverseKittingOrder, { description: 'To cancel reverse kitting order' })\n async cancelReverseKittingOrder(\n @Arg('name') name: string,\n @Ctx() context: ResolverContext\n ): Promise<ReverseKittingOrder> {\n const { user, domain, tx } = context.state\n\n const foundReverseKittingOrder: ReverseKittingOrder = await tx.getRepository(ReverseKittingOrder).findOne({\n where: { domain: { id: domain.id }, name, status: ORDER_STATUS.READY_TO_EXECUTE },\n relations: [\n 'bizplace',\n 'reverseKittingOrderInventories',\n 'reverseKittingOrderInventories.inventory',\n 'creator',\n 'updater'\n ]\n })\n\n let reverseKittingOIs: ReverseKittingOrderInventory[] = foundReverseKittingOrder.reverseKittingOrderInventories\n\n if (!foundReverseKittingOrder) throw new Error(`Reverse kitting order doesn't exists.`)\n\n // 1. Reverse Kitting Order Status change (PENDING => PENDING_RECEIVE)\n const reverseKitting: ReverseKittingOrder = await tx.getRepository(ReverseKittingOrder).save({\n ...foundReverseKittingOrder,\n status: ORDER_STATUS.CANCELLED,\n updater: user\n })\n\n reverseKittingOIs = await Promise.all(\n reverseKittingOIs.map(async (reverseKittingOI: ReverseKittingOrderInventory) => {\n if (reverseKittingOI?.inventory?.id) {\n reverseKittingOI.inventory = await tx\n .getRepository(Inventory)\n .findOneBy({ id: reverseKittingOI.inventory.id })\n\n await tx.getRepository(Inventory).save({\n ...reverseKittingOI.inventory,\n lockedQty: reverseKittingOI.inventory.lockedQty - reverseKittingOI.qty,\n lockedUomValue: reverseKittingOI.inventory.lockedUomValue - reverseKittingOI.uomValue,\n updater: user\n })\n }\n\n return { ...reverseKittingOI, status: ORDER_VAS_STATUS.CANCELLED }\n })\n )\n await tx.getRepository(ReverseKittingOrderInventory).save(reverseKittingOIs)\n\n return reverseKitting\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean, { description: 'To undo the execution of reverse kitting order' })\n async undoReverseKittingInventory(\n @Arg('reverseKittingOIName') reverseKittingOIName: string,\n @Arg('palletId') palletId: string,\n @Ctx() context: ResolverContext\n ): Promise<boolean> {\n const { tx, domain, user } = context.state\n\n //@sumjoekin please add stricter validation. It is dangerous without strict validation. Unexpected behaviour will cause accidental deletion of inventory.\n\n const reverseKittingOI: ReverseKittingOrderInventory = await tx\n .getRepository(ReverseKittingOrderInventory)\n .findOne({\n where: { domain: { id: domain.id }, name: reverseKittingOIName },\n relations: ['bizplace', 'reverseKittingOrder']\n })\n\n const bizplace: Bizplace = reverseKittingOI.bizplace\n const reverseKittingOrder: ReverseKittingOrder = reverseKittingOI.reverseKittingOrder\n let foundInventory: Inventory = await tx.getRepository(Inventory).findOne({\n where: { domain: { id: domain.id }, bizplace: { id: bizplace.id }, orderVasId: reverseKittingOI.id, palletId },\n relations: ['bizplace', 'product']\n })\n if (!foundInventory) throw new Error(`There's no results matched with condition ${foundInventory.palletId}`)\n\n let operationGuide: any = JSON.parse(reverseKittingOI.operationGuide)\n let productCombinationSets: any[] = operationGuide.data.productCombinationSets\n productCombinationSets = productCombinationSets.map(item => {\n if (foundInventory.product.id == item.productId) {\n item.actualQty -= foundInventory.qty\n }\n return item\n })\n operationGuide.data.productCombinationSets = productCombinationSets\n\n await tx\n .getRepository(ReverseKittingOrderInventory)\n .update({ id: reverseKittingOI.id }, { operationGuide: operationGuide })\n\n foundInventory.lastSeq++\n foundInventory.status = INVENTORY_STATUS.DELETED\n foundInventory = await InventoryUtil.transactionInventory(\n foundInventory,\n reverseKittingOrder,\n -foundInventory.qty,\n -foundInventory.uomValue,\n INVENTORY_TRANSACTION_TYPE.UNDO_REVERSE_KITTING,\n user,\n tx\n )\n foundInventory.qty = 0\n foundInventory.uomValue = 0\n foundInventory.updater = user\n\n await tx.getRepository(InventoryHistory).update({ inventory: foundInventory }, { inventory: null })\n\n await tx.getRepository(Inventory).delete({ id: foundInventory.id })\n\n return true\n }\n\n @Directive('@transaction')\n @Mutation(returns => ReverseKittingOrder, { description: 'To activate reverse kitting order' })\n async activateReverseKittingOrder(\n @Arg('name') name: string,\n @Ctx() context: ResolverContext\n ): Promise<ReverseKittingOrder> {\n const { user, domain, tx } = context.state\n\n const foundReverseKittingOrder: ReverseKittingOrder = await tx.getRepository(ReverseKittingOrder).findOne({\n where: { domain: { id: domain.id }, name, status: ORDER_STATUS.READY_TO_EXECUTE },\n relations: ['bizplace', 'reverseKittingOrderInventories', 'creator', 'updater']\n })\n\n let reverseKittingOIs: ReverseKittingOrderInventory[] = foundReverseKittingOrder.reverseKittingOrderInventories\n\n if (!foundReverseKittingOrder) throw new Error(`Reverse kitting order doesn't exists.`)\n\n // 1. Reverse Kitting Order Status change (PENDING => PENDING_RECEIVE)\n const reverseKitting: ReverseKittingOrder = await tx.getRepository(ReverseKittingOrder).save({\n ...foundReverseKittingOrder,\n status: ORDER_STATUS.EXECUTING,\n updater: user\n })\n\n reverseKittingOIs = reverseKittingOIs.map((reverseKittingOI: ReverseKittingOrderInventory) => {\n return { ...reverseKittingOI, status: ORDER_VAS_STATUS.PROCESSING }\n })\n await tx.getRepository(ReverseKittingOrderInventory).save(reverseKittingOIs)\n\n return reverseKitting\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean, { description: 'To execute reverse kitting order' })\n async executeReverseKitting(\n @Arg('name') name: string,\n @Arg('inventory', type => InventoryPatch) inventory: Partial<Inventory>,\n @Ctx() context: ResolverContext\n ): Promise<boolean> {\n const { user, domain, tx } = context.state\n\n let reverseKittingOI: ReverseKittingOrderInventory = await tx.getRepository(ReverseKittingOrderInventory).findOne({\n where: {\n name,\n domain: { id: domain.id },\n status: Not(Equal(ORDER_VAS_STATUS.READY_TO_PROCESS))\n },\n relations: ['bizplace', 'reverseKittingOrder', 'reverseKittingOrder.bizplace', 'inventory']\n })\n\n const foundReverseKittingOrder: ReverseKittingOrder = reverseKittingOI.reverseKittingOrder\n if (!foundReverseKittingOrder) throw new Error(`Reverse kitting order doesn't exists.`)\n\n const customerBizplace: Bizplace = foundReverseKittingOrder.bizplace\n\n const productDetail: ProductDetail = await tx.getRepository(ProductDetail).findOne({\n where: { id: inventory.productDetailId },\n relations: ['product']\n })\n\n const location: Location = await tx.getRepository(Location).findOne({\n where: {\n domain: { id: domain.id },\n name: inventory.locationName,\n type: In([LOCATION_TYPE.SHELF, LOCATION_TYPE.BUFFER, LOCATION_TYPE.FLOOR])\n },\n relations: ['warehouse']\n })\n if (!location) throw new Error(inventory.locationName + ' not exists')\n\n const palletId: string = inventory.palletId\n await InventoryUtil.checkPalletDuplication(inventory.palletId, domain, tx)\n\n const product: Product = productDetail.product\n const packingType: string = productDetail.packingType\n const packingSize: number = productDetail.packingSize\n const uom: string = productDetail.uom\n const qty: number = inventory.qty\n const uomValue: number = Math.round(qty * productDetail.uomValue * 100) / 100\n const batchId: string = reverseKittingOI.inventory.batchId\n const orderId: string = foundReverseKittingOrder.id\n const warehouse: Warehouse = location.warehouse\n const zone: string = location.zone\n\n let newInventory: Partial<Inventory> = new Inventory()\n newInventory.bizplace = customerBizplace\n newInventory.name = InventoryNoGenerator.inventoryName()\n newInventory.orderVasId = reverseKittingOI.id\n newInventory.palletId = palletId\n newInventory.batchId = batchId\n newInventory.product = product\n newInventory.packingType = packingType\n newInventory.packingSize = packingSize\n newInventory.uom = uom\n newInventory.qty = qty\n newInventory.uomValue = uomValue\n newInventory.refOrderId = orderId\n newInventory.warehouse = warehouse\n newInventory.location = location\n newInventory.zone = zone\n newInventory.refInventory = reverseKittingOI.inventory\n newInventory.status = INVENTORY_STATUS.STORED\n newInventory.domain = domain\n newInventory.creator = user\n newInventory.updater = user\n\n newInventory = await InventoryUtil.transactionInventory(\n newInventory,\n foundReverseKittingOrder,\n newInventory.qty,\n newInventory.uomValue,\n INVENTORY_TRANSACTION_TYPE.REVERSE_KITTING,\n user,\n tx\n )\n\n let operationGuide: any = JSON.parse(reverseKittingOI.operationGuide)\n let productCombinationSets: any[] = operationGuide.data.productCombinationSets\n operationGuide.data.productCombinationSets = productCombinationSets.map(item => {\n if (item.productDetailId == inventory.productDetailId) {\n item.actualQty += qty\n }\n return item\n })\n reverseKittingOI.operationGuide = JSON.stringify(operationGuide)\n\n await tx.getRepository(ReverseKittingOrderInventory).save(reverseKittingOI)\n return true\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean, { description: 'To delete ReverseKittingOrder' })\n async deleteReverseKittingOrder(@Arg('name') name: string, @Ctx() context: ResolverContext): Promise<boolean> {\n const { domain, tx, user } = context.state\n let foundReverseKittingOrder: ReverseKittingOrder = await tx.getRepository(ReverseKittingOrder).findOne({\n where: { domain: { id: domain.id }, name },\n relations: [\n 'bizplace',\n 'reverseKittingOrderInventories',\n 'reverseKittingOrderInventories.inventory',\n 'creator',\n 'updater'\n ]\n })\n\n if (!foundReverseKittingOrder) throw new Error(`Reverse kitting order doesn't exists.`)\n\n const reverseKittingOIs: ReverseKittingOrderInventory[] = foundReverseKittingOrder.reverseKittingOrderInventories\n\n // Delete order reverse kittings by ids\n await Promise.all(\n reverseKittingOIs.map(async (reverseKittingOI: ReverseKittingOrderInventory) => {\n if (reverseKittingOI?.inventory?.id) {\n reverseKittingOI.inventory = await tx\n .getRepository(Inventory)\n .findOneBy({ id: reverseKittingOI.inventory.id })\n\n await tx.getRepository(Inventory).save({\n ...reverseKittingOI.inventory,\n lockedQty: reverseKittingOI.inventory.lockedQty - reverseKittingOI.qty,\n lockedUomValue: reverseKittingOI.inventory.lockedUomValue - reverseKittingOI.uomValue,\n updater: user\n })\n }\n return reverseKittingOI\n })\n )\n\n // 1. delete order reverse kittings\n const productIds = reverseKittingOIs.map((ork: ReverseKittingOrderInventory) => ork.id)\n if (productIds.length) {\n await tx.getRepository(ReverseKittingOrderInventory).delete({ id: In(productIds) })\n }\n\n // 2. delete Reverse Kitting Order\n await tx.getRepository(ReverseKittingOrder).delete({ domain, name })\n\n return true\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"reverse-kitting-order-mutation.js","sourceRoot":"","sources":["../../../server/service/reverse-kitting-order/reverse-kitting-order-mutation.ts"],"names":[],"mappings":"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","sourcesContent":["import { Arg, Ctx, Directive, Mutation, Resolver } from 'type-graphql'\nimport { Equal, In, Not } from 'typeorm'\n\nimport { Bizplace, getPermittedBizplaceIds } from '@things-factory/biz-base'\nimport { Product, ProductDetail } from '@things-factory/product-base'\nimport {\n Inventory,\n INVENTORY_STATUS,\n INVENTORY_TRANSACTION_TYPE,\n InventoryHistory,\n InventoryNoGenerator,\n InventoryPatch,\n Location,\n LOCATION_TYPE,\n Warehouse\n} from '@things-factory/warehouse-base'\n\nimport { ORDER_STATUS, ORDER_TYPES, ORDER_VAS_STATUS } from '../../constants'\nimport { InventoryUtil } from '../../utils'\nimport { OrderNoGenerator } from '../../utils/order-no-generator'\nimport { ReverseKittingOrderInventory } from '../reverse-kitting-order-inventory/reverse-kitting-order-inventory'\nimport { ReverseKittingOrder } from './reverse-kitting-order'\nimport { NewReverseKittingOrder } from './reverse-kitting-order-type'\n\n@Resolver(ReverseKittingOrder)\nexport class ReverseKittingOrderMutation {\n @Directive('@transaction')\n @Mutation(returns => ReverseKittingOrder, { description: 'To create new ReverseKittingOrder' })\n async generateReverseKittingOrder(\n @Arg('reverseKittingOrder', type => NewReverseKittingOrder) reverseKittingOrder: NewReverseKittingOrder,\n @Ctx() context: ResolverContext\n ): Promise<ReverseKittingOrder> {\n const { tx, domain, user } = context.state\n\n const customerBizplace: Bizplace = await tx.getRepository(Bizplace).findOne({\n where: { id: reverseKittingOrder.customerBizplaceId }\n })\n\n if (!customerBizplace) throw new Error('company is not found')\n\n let reverseKittingOrderOIs = reverseKittingOrder.reverseKittingOrderInventories\n\n // 1. Create reverse kitting order\n const createdReverseKittingOrder: ReverseKittingOrder = await tx.getRepository(ReverseKittingOrder).save({\n ...reverseKittingOrder,\n name: OrderNoGenerator.vasOrder(),\n domain,\n bizplace: customerBizplace,\n status: ORDER_STATUS.PENDING,\n creator: user\n })\n\n // 2. Create Reverse Kitting Order Items\n reverseKittingOrderOIs = await Promise.all(\n reverseKittingOrderOIs.map(async (reverseKittingOI: any) => {\n if (reverseKittingOI?.inventory?.id) {\n const foundInv: Inventory = await tx.getRepository(Inventory).findOneBy({ id: reverseKittingOI.inventory.id })\n reverseKittingOI.inventory = foundInv\n\n foundInv.lockedQty = Number(foundInv.lockedQty) + reverseKittingOI.qty\n foundInv.lockedUomValue = Number(foundInv.lockedUomValue) + reverseKittingOI.uomValue\n foundInv.updater = user\n\n await tx.getRepository(Inventory).save(foundInv)\n }\n return {\n ...reverseKittingOI,\n domain,\n name: OrderNoGenerator.orderVas(),\n reverseKittingOrder: createdReverseKittingOrder,\n bizplace: customerBizplace,\n type: ORDER_TYPES.VAS_ORDER,\n status: ORDER_VAS_STATUS.PENDING,\n creator: user\n }\n })\n )\n await tx.getRepository(ReverseKittingOrderInventory).save(reverseKittingOrderOIs)\n\n return createdReverseKittingOrder\n }\n\n @Directive('@transaction')\n @Mutation(returns => ReverseKittingOrder, { description: 'To execute reverse kitting order' })\n async executingReverseKittingOrder(\n @Arg('name') name: string,\n @Ctx() context: ResolverContext\n ): Promise<ReverseKittingOrder> {\n const { domain, user, tx } = context.state\n\n const reverseKittingOrder: ReverseKittingOrder = await tx.getRepository(ReverseKittingOrder).findOne({\n where: {\n domain: { id: domain.id },\n name,\n status: ORDER_STATUS.EXECUTING,\n bizplace: { id: In(await getPermittedBizplaceIds(domain, user)) }\n },\n relations: [\n 'domain',\n 'bizplace',\n 'reverseKittingOrderInventories',\n 'reverseKittingOrderInventories.inventory',\n 'reverseKittingOrderInventories.inventory.product',\n 'reverseKittingOrderInventories.inventory.location',\n 'reverseKittingOrderInventories.inventory.warehouse',\n 'creator',\n 'updater'\n ]\n })\n\n if (!reverseKittingOrder) throw new Error(`Reverse Kitting Order not exists`)\n\n return reverseKittingOrder\n }\n\n @Directive('@transaction')\n @Mutation(returns => ReverseKittingOrder, { description: 'To confirm reverse kitting order' })\n async confirmReverseKittingOrder(\n @Arg('name') name: string,\n @Ctx() context: ResolverContext\n ): Promise<ReverseKittingOrder> {\n const { user, domain, tx } = context.state\n\n const foundReverseKittingOrder: ReverseKittingOrder = await tx.getRepository(ReverseKittingOrder).findOne({\n where: { domain: { id: domain.id }, name, status: ORDER_STATUS.PENDING },\n relations: ['bizplace', 'reverseKittingOrderInventories', 'creator', 'updater']\n })\n\n let reverseKittingOIs: ReverseKittingOrderInventory[] = foundReverseKittingOrder.reverseKittingOrderInventories\n\n if (!foundReverseKittingOrder) throw new Error(`Reverse kitting order doesn't exists.`)\n\n // 1. Reverse Kitting Order Status change (PENDING => READY_TO_EXECUTE)\n const reverseKitting: ReverseKittingOrder = await tx.getRepository(ReverseKittingOrder).save({\n ...foundReverseKittingOrder,\n status: ORDER_STATUS.READY_TO_EXECUTE,\n updater: user\n })\n\n reverseKittingOIs = reverseKittingOIs.map((reverseKittingOI: ReverseKittingOrderInventory) => {\n return { ...reverseKittingOI, status: ORDER_VAS_STATUS.READY_TO_PROCESS }\n })\n await tx.getRepository(ReverseKittingOrderInventory).save(reverseKittingOIs)\n\n return reverseKitting\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean, { description: 'To confirm reverse kitting order' })\n async completeReverseKittingOrder(@Arg('name') name: string, @Ctx() context: ResolverContext): Promise<boolean> {\n const { tx, domain, user } = context.state\n\n let foundReverseKittingOrder: ReverseKittingOrder = await tx.getRepository(ReverseKittingOrder).findOne({\n where: { domain: { id: domain.id }, name, status: ORDER_STATUS.EXECUTING },\n relations: [\n 'bizplace',\n 'reverseKittingOrderInventories',\n 'reverseKittingOrderInventories.inventory',\n 'creator',\n 'updater'\n ]\n })\n\n if (!foundReverseKittingOrder) throw new Error(foundReverseKittingOrder.name + ` not found`)\n\n let reverseKittingOIs: ReverseKittingOrderInventory[] = foundReverseKittingOrder.reverseKittingOrderInventories\n\n await Promise.all(\n reverseKittingOIs.map(async reverseKittingOI => {\n let inventory: Inventory = reverseKittingOI.inventory\n inventory.qty = inventory.qty - reverseKittingOI.qty\n inventory.lockedQty = inventory.lockedQty - reverseKittingOI.qty\n inventory.uomValue = inventory.uomValue - reverseKittingOI.uomValue\n inventory.lockedUomValue = inventory.lockedUomValue - reverseKittingOI.uomValue\n\n await InventoryUtil.transactionInventory(\n inventory,\n foundReverseKittingOrder,\n -reverseKittingOI.qty,\n -reverseKittingOI.uomValue,\n INVENTORY_TRANSACTION_TYPE.REVERSE_KITTING,\n user,\n tx\n )\n })\n )\n\n reverseKittingOIs = reverseKittingOIs.map(reverseKittingOI => {\n return {\n ...reverseKittingOI,\n status: ORDER_VAS_STATUS.TERMINATED,\n updater: user\n }\n })\n\n await tx.getRepository(ReverseKittingOrderInventory).save(reverseKittingOIs)\n\n foundReverseKittingOrder.status = ORDER_STATUS.DONE\n foundReverseKittingOrder.updater = user\n\n await tx.getRepository(ReverseKittingOrder).save(foundReverseKittingOrder)\n\n return true\n }\n\n @Directive('@transaction')\n @Mutation(returns => ReverseKittingOrder, { description: 'To cancel reverse kitting order' })\n async cancelReverseKittingOrder(\n @Arg('name') name: string,\n @Ctx() context: ResolverContext\n ): Promise<ReverseKittingOrder> {\n const { user, domain, tx } = context.state\n\n const foundReverseKittingOrder: ReverseKittingOrder = await tx.getRepository(ReverseKittingOrder).findOne({\n where: { domain: { id: domain.id }, name, status: ORDER_STATUS.READY_TO_EXECUTE },\n relations: [\n 'bizplace',\n 'reverseKittingOrderInventories',\n 'reverseKittingOrderInventories.inventory',\n 'creator',\n 'updater'\n ]\n })\n\n let reverseKittingOIs: ReverseKittingOrderInventory[] = foundReverseKittingOrder.reverseKittingOrderInventories\n\n if (!foundReverseKittingOrder) throw new Error(`Reverse kitting order doesn't exists.`)\n\n // 1. Reverse Kitting Order Status change (PENDING => PENDING_RECEIVE)\n const reverseKitting: ReverseKittingOrder = await tx.getRepository(ReverseKittingOrder).save({\n ...foundReverseKittingOrder,\n status: ORDER_STATUS.CANCELLED,\n updater: user\n })\n\n reverseKittingOIs = await Promise.all(\n reverseKittingOIs.map(async (reverseKittingOI: ReverseKittingOrderInventory) => {\n if (reverseKittingOI?.inventory?.id) {\n reverseKittingOI.inventory = await tx\n .getRepository(Inventory)\n .findOneBy({ id: reverseKittingOI.inventory.id })\n\n await tx.getRepository(Inventory).save({\n ...reverseKittingOI.inventory,\n lockedQty: reverseKittingOI.inventory.lockedQty - reverseKittingOI.qty,\n lockedUomValue: reverseKittingOI.inventory.lockedUomValue - reverseKittingOI.uomValue,\n updater: user\n })\n }\n\n return { ...reverseKittingOI, status: ORDER_VAS_STATUS.CANCELLED }\n })\n )\n await tx.getRepository(ReverseKittingOrderInventory).save(reverseKittingOIs)\n\n return reverseKitting\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean, { description: 'To undo the execution of reverse kitting order' })\n async undoReverseKittingInventory(\n @Arg('reverseKittingOIName') reverseKittingOIName: string,\n @Arg('palletId') palletId: string,\n @Ctx() context: ResolverContext\n ): Promise<boolean> {\n const { tx, domain, user } = context.state\n\n //@sumjoekin please add stricter validation. It is dangerous without strict validation. Unexpected behaviour will cause accidental deletion of inventory.\n\n const reverseKittingOI: ReverseKittingOrderInventory = await tx\n .getRepository(ReverseKittingOrderInventory)\n .findOne({\n where: { domain: { id: domain.id }, name: reverseKittingOIName },\n relations: ['bizplace', 'reverseKittingOrder']\n })\n\n const bizplace: Bizplace = reverseKittingOI.bizplace\n const reverseKittingOrder: ReverseKittingOrder = reverseKittingOI.reverseKittingOrder\n let foundInventory: Inventory = await tx.getRepository(Inventory).findOne({\n where: { domain: { id: domain.id }, bizplace: { id: bizplace.id }, orderVasId: reverseKittingOI.id, palletId },\n relations: ['bizplace', 'product']\n })\n if (!foundInventory) throw new Error(`There's no results matched with condition ${foundInventory.palletId}`)\n\n let operationGuide: any = JSON.parse(reverseKittingOI.operationGuide)\n let productCombinationSets: any[] = operationGuide.data.productCombinationSets\n productCombinationSets = productCombinationSets.map(item => {\n if (foundInventory.product.id == item.productId) {\n item.actualQty -= foundInventory.qty\n }\n return item\n })\n operationGuide.data.productCombinationSets = productCombinationSets\n\n await tx\n .getRepository(ReverseKittingOrderInventory)\n .update({ id: reverseKittingOI.id }, { operationGuide: operationGuide })\n\n foundInventory.lastSeq++\n foundInventory.status = INVENTORY_STATUS.DELETED\n foundInventory = await InventoryUtil.transactionInventory(\n foundInventory,\n reverseKittingOrder,\n -foundInventory.qty,\n -foundInventory.uomValue,\n INVENTORY_TRANSACTION_TYPE.UNDO_REVERSE_KITTING,\n user,\n tx\n )\n foundInventory.qty = 0\n foundInventory.uomValue = 0\n foundInventory.updater = user\n\n await tx.getRepository(InventoryHistory).update({ inventory: foundInventory }, { inventory: null })\n\n await tx.getRepository(Inventory).delete({ id: foundInventory.id })\n\n return true\n }\n\n @Directive('@transaction')\n @Mutation(returns => ReverseKittingOrder, { description: 'To activate reverse kitting order' })\n async activateReverseKittingOrder(\n @Arg('name') name: string,\n @Ctx() context: ResolverContext\n ): Promise<ReverseKittingOrder> {\n const { user, domain, tx } = context.state\n\n const foundReverseKittingOrder: ReverseKittingOrder = await tx.getRepository(ReverseKittingOrder).findOne({\n where: { domain: { id: domain.id }, name, status: ORDER_STATUS.READY_TO_EXECUTE },\n relations: ['bizplace', 'reverseKittingOrderInventories', 'creator', 'updater']\n })\n\n let reverseKittingOIs: ReverseKittingOrderInventory[] = foundReverseKittingOrder.reverseKittingOrderInventories\n\n if (!foundReverseKittingOrder) throw new Error(`Reverse kitting order doesn't exists.`)\n\n // 1. Reverse Kitting Order Status change (PENDING => PENDING_RECEIVE)\n const reverseKitting: ReverseKittingOrder = await tx.getRepository(ReverseKittingOrder).save({\n ...foundReverseKittingOrder,\n status: ORDER_STATUS.EXECUTING,\n updater: user\n })\n\n reverseKittingOIs = reverseKittingOIs.map((reverseKittingOI: ReverseKittingOrderInventory) => {\n return { ...reverseKittingOI, status: ORDER_VAS_STATUS.PROCESSING }\n })\n await tx.getRepository(ReverseKittingOrderInventory).save(reverseKittingOIs)\n\n return reverseKitting\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean, { description: 'To execute reverse kitting order' })\n async executeReverseKitting(\n @Arg('name') name: string,\n @Arg('inventory', type => InventoryPatch) inventory: Partial<Inventory>,\n @Ctx() context: ResolverContext\n ): Promise<boolean> {\n const { user, domain, tx } = context.state\n\n let reverseKittingOI: ReverseKittingOrderInventory = await tx.getRepository(ReverseKittingOrderInventory).findOne({\n where: {\n name,\n domain: { id: domain.id },\n status: Not(Equal(ORDER_VAS_STATUS.READY_TO_PROCESS))\n },\n relations: ['bizplace', 'reverseKittingOrder', 'reverseKittingOrder.bizplace', 'inventory']\n })\n\n const foundReverseKittingOrder: ReverseKittingOrder = reverseKittingOI.reverseKittingOrder\n if (!foundReverseKittingOrder) throw new Error(`Reverse kitting order doesn't exists.`)\n\n const customerBizplace: Bizplace = foundReverseKittingOrder.bizplace\n\n const productDetail: ProductDetail = await tx.getRepository(ProductDetail).findOne({\n where: { id: inventory.productDetailId },\n relations: ['product']\n })\n\n const location: Location = await tx.getRepository(Location).findOne({\n where: {\n domain: { id: domain.id },\n name: inventory.locationName,\n type: In([LOCATION_TYPE.SHELF, LOCATION_TYPE.BUFFER, LOCATION_TYPE.FLOOR])\n },\n relations: ['warehouse']\n })\n if (!location) throw new Error(inventory.locationName + ' not exists')\n\n const palletId: string = inventory.palletId\n await InventoryUtil.checkPalletDuplication(inventory.palletId, domain, tx)\n\n const product: Product = productDetail.product\n const packingType: string = productDetail.packingType\n const packingSize: number = productDetail.packingSize\n const uom: string = productDetail.uom\n const qty: number = inventory.qty\n const uomValue: number = Math.round(qty * productDetail.uomValue * 100) / 100\n const batchId: string = reverseKittingOI.inventory.batchId\n const orderId: string = foundReverseKittingOrder.id\n const warehouse: Warehouse = location.warehouse\n const zone: string = location.zone\n\n let newInventory: Partial<Inventory> = new Inventory()\n newInventory.bizplace = customerBizplace\n newInventory.name = InventoryNoGenerator.inventoryName()\n newInventory.orderVasId = reverseKittingOI.id\n newInventory.palletId = palletId\n newInventory.batchId = batchId\n newInventory.product = product\n newInventory.packingType = packingType\n newInventory.packingSize = packingSize\n newInventory.uom = uom\n newInventory.qty = qty\n newInventory.uomValue = uomValue\n newInventory.refOrderId = orderId\n newInventory.warehouse = warehouse\n newInventory.location = location\n newInventory.zone = zone\n newInventory.refInventory = reverseKittingOI.inventory\n newInventory.status = INVENTORY_STATUS.STORED\n newInventory.domain = domain\n newInventory.creator = user\n newInventory.updater = user\n\n newInventory = await InventoryUtil.transactionInventory(\n newInventory,\n foundReverseKittingOrder,\n newInventory.qty,\n newInventory.uomValue,\n INVENTORY_TRANSACTION_TYPE.REVERSE_KITTING,\n user,\n tx\n )\n\n let operationGuide: any = JSON.parse(reverseKittingOI.operationGuide)\n let productCombinationSets: any[] = operationGuide.data.productCombinationSets\n operationGuide.data.productCombinationSets = productCombinationSets.map(item => {\n if (item.productDetailId == inventory.productDetailId) {\n item.actualQty += qty\n }\n return item\n })\n reverseKittingOI.operationGuide = JSON.stringify(operationGuide)\n\n await tx.getRepository(ReverseKittingOrderInventory).save(reverseKittingOI)\n return true\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean, { description: 'To delete ReverseKittingOrder' })\n async deleteReverseKittingOrder(@Arg('name') name: string, @Ctx() context: ResolverContext): Promise<boolean> {\n const { domain, tx, user } = context.state\n let foundReverseKittingOrder: ReverseKittingOrder = await tx.getRepository(ReverseKittingOrder).findOne({\n where: { domain: { id: domain.id }, name },\n relations: [\n 'bizplace',\n 'reverseKittingOrderInventories',\n 'reverseKittingOrderInventories.inventory',\n 'creator',\n 'updater'\n ]\n })\n\n if (!foundReverseKittingOrder) throw new Error(`Reverse kitting order doesn't exists.`)\n\n const reverseKittingOIs: ReverseKittingOrderInventory[] = foundReverseKittingOrder.reverseKittingOrderInventories\n\n // Delete order reverse kittings by ids\n await Promise.all(\n reverseKittingOIs.map(async (reverseKittingOI: ReverseKittingOrderInventory) => {\n if (reverseKittingOI?.inventory?.id) {\n reverseKittingOI.inventory = await tx\n .getRepository(Inventory)\n .findOneBy({ id: reverseKittingOI.inventory.id })\n\n await tx.getRepository(Inventory).save({\n ...reverseKittingOI.inventory,\n lockedQty: reverseKittingOI.inventory.lockedQty - reverseKittingOI.qty,\n lockedUomValue: reverseKittingOI.inventory.lockedUomValue - reverseKittingOI.uomValue,\n updater: user\n })\n }\n return reverseKittingOI\n })\n )\n\n // 1. delete order reverse kittings\n const productIds = reverseKittingOIs.map((ork: ReverseKittingOrderInventory) => ork.id)\n if (productIds.length) {\n await tx.getRepository(ReverseKittingOrderInventory).delete({ id: In(productIds) })\n }\n\n // 2. delete Reverse Kitting Order\n await tx.getRepository(ReverseKittingOrder).delete({ domain: { id: domain.id }, name })\n\n return true\n }\n}\n"]}
|
|
@@ -28,7 +28,7 @@ let ShippingOrderMutation = class ShippingOrderMutation {
|
|
|
28
28
|
}
|
|
29
29
|
async deleteShippingOrder(name, context) {
|
|
30
30
|
const { tx, domain } = context.state;
|
|
31
|
-
await tx.getRepository(shipping_order_1.ShippingOrder).delete({ domain, name });
|
|
31
|
+
await tx.getRepository(shipping_order_1.ShippingOrder).delete({ domain: { id: domain.id }, name });
|
|
32
32
|
return true;
|
|
33
33
|
}
|
|
34
34
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shipping-order-mutation.js","sourceRoot":"","sources":["../../../server/service/shipping-order/shipping-order-mutation.ts"],"names":[],"mappings":";;;;AAAA,+CAAsE;AACtE,qCAA4B;AAC5B,+BAAmC;AAEnC,uDAAkE;AAElE,2BAA0D;AAC1D,qDAAgD;AAGzC,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;IAG1B,AAAN,KAAK,CAAC,mBAAmB,CACyB,aAA+B,EACxE,OAAwB;QAE/B,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAE5B,MAAM,UAAU,GAAG,EAAE,CAAC,aAAa,CAAC,8BAAa,CAAC,CAAA;QAClD,MAAM,gBAAgB,mBACpB,EAAE,EAAE,IAAA,SAAM,GAAE,IACT,aAAa,CACjB,CAAA;QAED,OAAO,MAAM,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;IAChD,CAAC;IAIK,AAAN,KAAK,CAAC,mBAAmB,CACV,IAAY,EACiB,KAAyB,EAC5D,OAAwB;QAE/B,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAE1C,MAAM,aAAa,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,8BAAa,CAAC,CAAC,OAAO,CAAC;YAClE,KAAK,EAAE;gBACL,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE;gBACzB,IAAI;gBACJ,QAAQ,EAAE,EAAE,EAAE,EAAE,IAAA,YAAE,EAAC,MAAM,IAAA,kCAAuB,EAAC,MAAM,EAAE,IAAI,CAAC,CAAC,EAAE;aAClE;SACF,CAAC,CAAA;QAEF,OAAO,MAAM,EAAE,CAAC,aAAa,CAAC,8BAAa,CAAC,CAAC,IAAI,+CAC5C,aAAa,GACb,KAAK,KACR,OAAO,EAAE,IAAI,IACb,CAAA;IACJ,CAAC;IAIK,AAAN,KAAK,CAAC,mBAAmB,CAAc,IAAY,EAAS,OAAwB;QAClF,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEpC,MAAM,EAAE,CAAC,aAAa,CAAC,8BAAa,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"shipping-order-mutation.js","sourceRoot":"","sources":["../../../server/service/shipping-order/shipping-order-mutation.ts"],"names":[],"mappings":";;;;AAAA,+CAAsE;AACtE,qCAA4B;AAC5B,+BAAmC;AAEnC,uDAAkE;AAElE,2BAA0D;AAC1D,qDAAgD;AAGzC,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;IAG1B,AAAN,KAAK,CAAC,mBAAmB,CACyB,aAA+B,EACxE,OAAwB;QAE/B,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAE5B,MAAM,UAAU,GAAG,EAAE,CAAC,aAAa,CAAC,8BAAa,CAAC,CAAA;QAClD,MAAM,gBAAgB,mBACpB,EAAE,EAAE,IAAA,SAAM,GAAE,IACT,aAAa,CACjB,CAAA;QAED,OAAO,MAAM,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;IAChD,CAAC;IAIK,AAAN,KAAK,CAAC,mBAAmB,CACV,IAAY,EACiB,KAAyB,EAC5D,OAAwB;QAE/B,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAE1C,MAAM,aAAa,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,8BAAa,CAAC,CAAC,OAAO,CAAC;YAClE,KAAK,EAAE;gBACL,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE;gBACzB,IAAI;gBACJ,QAAQ,EAAE,EAAE,EAAE,EAAE,IAAA,YAAE,EAAC,MAAM,IAAA,kCAAuB,EAAC,MAAM,EAAE,IAAI,CAAC,CAAC,EAAE;aAClE;SACF,CAAC,CAAA;QAEF,OAAO,MAAM,EAAE,CAAC,aAAa,CAAC,8BAAa,CAAC,CAAC,IAAI,+CAC5C,aAAa,GACb,KAAK,KACR,OAAO,EAAE,IAAI,IACb,CAAA;IACJ,CAAC;IAIK,AAAN,KAAK,CAAC,mBAAmB,CAAc,IAAY,EAAS,OAAwB;QAClF,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEpC,MAAM,EAAE,CAAC,aAAa,CAAC,8BAAa,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAA;QACjF,OAAO,IAAI,CAAA;IACb,CAAC;CACF,CAAA;AA/CO;IAFL,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,8BAAa,CAAC;IAEhC,mBAAA,IAAA,kBAAG,EAAC,eAAe,EAAE,IAAI,CAAC,EAAE,CAAC,oBAAgB,CAAC,CAAA;IAC9C,mBAAA,IAAA,kBAAG,GAAE,CAAA;;6CADyD,oBAAgB;;gEAYhF;AAIK;IAFL,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,8BAAa,CAAC;IAEhC,mBAAA,IAAA,kBAAG,EAAC,MAAM,CAAC,CAAA;IACX,mBAAA,IAAA,kBAAG,EAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,sBAAkB,CAAC,CAAA;IACxC,mBAAA,IAAA,kBAAG,GAAE,CAAA;;qDAD2C,sBAAkB;;gEAkBpE;AAIK;IAFL,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC;IACF,mBAAA,IAAA,kBAAG,EAAC,MAAM,CAAC,CAAA;IAAgB,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;gEAK1D;AAjDU,qBAAqB;IADjC,IAAA,uBAAQ,EAAC,8BAAa,CAAC;GACX,qBAAqB,CAkDjC;AAlDY,sDAAqB","sourcesContent":["import { Arg, Ctx, Directive, Mutation, Resolver } from 'type-graphql'\nimport { In } from 'typeorm'\nimport { v4 as uuidv4 } from 'uuid'\n\nimport { getPermittedBizplaceIds } from '@things-factory/biz-base'\n\nimport { NewShippingOrder, ShippingOrderPatch } from '../'\nimport { ShippingOrder } from './shipping-order'\n\n@Resolver(ShippingOrder)\nexport class ShippingOrderMutation {\n @Directive('@transaction')\n @Mutation(returns => ShippingOrder)\n async createShippingOrder(\n @Arg('shippingOrder', type => NewShippingOrder) shippingOrder: NewShippingOrder,\n @Ctx() context: ResolverContext\n ): Promise<ShippingOrder> {\n const { tx } = context.state\n\n const repository = tx.getRepository(ShippingOrder)\n const newShippingOrder = {\n id: uuidv4(),\n ...shippingOrder\n }\n\n return await repository.save(newShippingOrder)\n }\n\n @Directive('@transaction')\n @Mutation(returns => ShippingOrder)\n async updateShippingOrder(\n @Arg('name') name: string,\n @Arg('patch', type => ShippingOrderPatch) patch: ShippingOrderPatch,\n @Ctx() context: ResolverContext\n ): Promise<ShippingOrder> {\n const { tx, domain, user } = context.state\n\n const shippingOrder = await tx.getRepository(ShippingOrder).findOne({\n where: {\n domain: { id: domain.id },\n name,\n bizplace: { id: In(await getPermittedBizplaceIds(domain, user)) }\n }\n })\n\n return await tx.getRepository(ShippingOrder).save({\n ...shippingOrder,\n ...patch,\n updater: user\n })\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean)\n async deleteShippingOrder(@Arg('name') name: string, @Ctx() context: ResolverContext): Promise<boolean> {\n const { tx, domain } = context.state\n\n await tx.getRepository(ShippingOrder).delete({ domain: { id: domain.id }, name })\n return true\n }\n}\n"]}
|
|
@@ -115,7 +115,7 @@ let TransferOrderMutation = class TransferOrderMutation {
|
|
|
115
115
|
}
|
|
116
116
|
async deleteTransferOrder(name, context) {
|
|
117
117
|
const { tx, domain } = context.state;
|
|
118
|
-
await tx.getRepository(transfer_order_1.TransferOrder).delete({ domain, name });
|
|
118
|
+
await tx.getRepository(transfer_order_1.TransferOrder).delete({ domain: { id: domain.id }, name });
|
|
119
119
|
return true;
|
|
120
120
|
}
|
|
121
121
|
async deleteTransferOrders(names, context) {
|