@things-factory/sales-base 6.2.49 → 6.2.50

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.
Files changed (59) hide show
  1. package/dist-server/service/arrival-notice/arrival-notice-mutation.js +2 -2
  2. package/dist-server/service/arrival-notice/arrival-notice-mutation.js.map +1 -1
  3. package/dist-server/service/collection-order/collection-order-mutation.js +1 -1
  4. package/dist-server/service/collection-order/collection-order-mutation.js.map +1 -1
  5. package/dist-server/service/delivery-order/delivery-order-mutation.js +1 -1
  6. package/dist-server/service/delivery-order/delivery-order-mutation.js.map +1 -1
  7. package/dist-server/service/goods-receival-note/goods-receival-note-mutation.js +1 -1
  8. package/dist-server/service/goods-receival-note/goods-receival-note-mutation.js.map +1 -1
  9. package/dist-server/service/goods-receival-note/goods-receival-note-query.js +1 -1
  10. package/dist-server/service/goods-receival-note/goods-receival-note-query.js.map +1 -1
  11. package/dist-server/service/invoice/invoice-mutation.js +1 -1
  12. package/dist-server/service/invoice/invoice-mutation.js.map +1 -1
  13. package/dist-server/service/invoice-product/invoice-product-mutation.js +1 -1
  14. package/dist-server/service/invoice-product/invoice-product-mutation.js.map +1 -1
  15. package/dist-server/service/manifest/manifest-mutation.js +2 -2
  16. package/dist-server/service/manifest/manifest-mutation.js.map +1 -1
  17. package/dist-server/service/order-inventory/order-inventory-mutation.js +1 -1
  18. package/dist-server/service/order-inventory/order-inventory-mutation.js.map +1 -1
  19. package/dist-server/service/order-product/order-product-mutation.js +1 -1
  20. package/dist-server/service/order-product/order-product-mutation.js.map +1 -1
  21. package/dist-server/service/purchase-order/purchase-order-mutation.js +1 -1
  22. package/dist-server/service/purchase-order/purchase-order-mutation.js.map +1 -1
  23. package/dist-server/service/purchase-order-other-charge/purchase-order-other-charge-mutation.js +1 -1
  24. package/dist-server/service/purchase-order-other-charge/purchase-order-other-charge-mutation.js.map +1 -1
  25. package/dist-server/service/release-good/release-good-mutation.js +4 -4
  26. package/dist-server/service/release-good/release-good-mutation.js.map +1 -1
  27. package/dist-server/service/retail-replenishment-order/retail-replenishment-order-mutation.js +1 -1
  28. package/dist-server/service/retail-replenishment-order/retail-replenishment-order-mutation.js.map +1 -1
  29. package/dist-server/service/return-order/return-order-mutation.js +2 -2
  30. package/dist-server/service/return-order/return-order-mutation.js.map +1 -1
  31. package/dist-server/service/reverse-kitting-order/reverse-kitting-order-mutation.js +1 -1
  32. package/dist-server/service/reverse-kitting-order/reverse-kitting-order-mutation.js.map +1 -1
  33. package/dist-server/service/shipping-order/shipping-order-mutation.js +1 -1
  34. package/dist-server/service/shipping-order/shipping-order-mutation.js.map +1 -1
  35. package/dist-server/service/transfer-order/transfer-order-mutation.js +1 -1
  36. package/dist-server/service/transfer-order/transfer-order-mutation.js.map +1 -1
  37. package/dist-server/service/vas-order/vas-order-mutation.js +1 -1
  38. package/dist-server/service/vas-order/vas-order-mutation.js.map +1 -1
  39. package/dist-server/tsconfig.tsbuildinfo +1 -1
  40. package/package.json +13 -13
  41. package/server/service/arrival-notice/arrival-notice-mutation.ts +2 -2
  42. package/server/service/collection-order/collection-order-mutation.ts +1 -1
  43. package/server/service/delivery-order/delivery-order-mutation.ts +1 -1
  44. package/server/service/goods-receival-note/goods-receival-note-mutation.ts +1 -1
  45. package/server/service/goods-receival-note/goods-receival-note-query.ts +1 -1
  46. package/server/service/invoice/invoice-mutation.ts +1 -1
  47. package/server/service/invoice-product/invoice-product-mutation.ts +1 -1
  48. package/server/service/manifest/manifest-mutation.ts +5 -2
  49. package/server/service/order-inventory/order-inventory-mutation.ts +1 -1
  50. package/server/service/order-product/order-product-mutation.ts +1 -1
  51. package/server/service/purchase-order/purchase-order-mutation.ts +1 -1
  52. package/server/service/purchase-order-other-charge/purchase-order-other-charge-mutation.ts +1 -1
  53. package/server/service/release-good/release-good-mutation.ts +4 -4
  54. package/server/service/retail-replenishment-order/retail-replenishment-order-mutation.ts +1 -1
  55. package/server/service/return-order/return-order-mutation.ts +2 -2
  56. package/server/service/reverse-kitting-order/reverse-kitting-order-mutation.ts +1 -1
  57. package/server/service/shipping-order/shipping-order-mutation.ts +1 -1
  58. package/server/service/transfer-order/transfer-order-mutation.ts +1 -1
  59. package/server/service/vas-order/vas-order-mutation.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"transfer-order-mutation.js","sourceRoot":"","sources":["../../../server/service/transfer-order/transfer-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 { NewOrderInventory, NewTransferOrder, OrderInventory, RetailReplenishmentOrder, TransferOrderPatch } from '../'\nimport {\n ORDER_INVENTORY_STATUS,\n ORDER_NUMBER_RULE_TYPE,\n ORDER_NUMBER_SETTING_KEY,\n ORDER_STATUS,\n ORDER_TYPES\n} from '../../constants'\nimport { OrderNoGenerator } from '../../utils'\nimport { TransferOrder } from './transfer-order'\n\n@Resolver(TransferOrder)\nexport class TransferOrderMutation {\n @Directive('@transaction')\n @Mutation(returns => Boolean)\n async addTransferOrderInventories(\n @Arg('toNo') toNo: string,\n @Arg('orderInventories', type => [NewOrderInventory]) orderInventories: NewOrderInventory[],\n @Ctx() context: ResolverContext\n ): Promise<boolean> {\n const { tx, domain, user } = context.state\n\n const transferOrder: TransferOrder = await tx.getRepository(TransferOrder).findOne({\n where: { name: toNo },\n relations: ['bizplace', 'orderInventory']\n })\n\n await addTransferOrderInventories(domain, transferOrder, orderInventories, user, tx)\n return true\n }\n\n @Directive('@transaction')\n @Mutation(returns => TransferOrder)\n async cancelTransferOrder(\n @Arg('patch', type => TransferOrderPatch) patch: TransferOrderPatch,\n @Ctx() context: ResolverContext\n ): Promise<TransferOrder> {\n const { tx, domain, user } = context.state\n\n const bizplace: Bizplace = await getOutletBizplace(patch.warehouseId)\n\n const transferOrder: TransferOrder = await tx.getRepository(TransferOrder).findOne({\n where: { domain: { id: domain.id }, bizplace: { id: bizplace.id }, name: patch.name },\n relations: ['bizplace', 'orderInventories']\n })\n\n if (!transferOrder) throw new Error(`Transfer order does not exist.`)\n if (!patch.status) throw new Error('Status was not specified.')\n // if (patch.status && (patch.status !== ORDER_STATUS.PENDING_CANCEL || patch.status !== ORDER_STATUS.CANCELLED))\n // throw new Error(`Status provided was invalid.`)\n\n let foundOIs: OrderInventory[] = transferOrder.orderInventories\n\n // 1. Update status of order inventories based on status (to PENDING_CANCEL or CANCELLED)\n if (foundOIs && foundOIs.length) {\n foundOIs = foundOIs.map((oi: OrderInventory) => {\n ;(oi.status = patch.status), (oi.updater = user)\n return oi\n })\n }\n await tx.getRepository(OrderInventory).save(foundOIs)\n\n // 2. Update transfer order status\n return await tx.getRepository(TransferOrder).save({\n ...transferOrder,\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 => TransferOrder)\n async createTransferOrder(\n @Arg('transferOrder', type => NewTransferOrder) transferOrder: NewTransferOrder,\n @Ctx() context: ResolverContext\n ): Promise<TransferOrder> {\n const { tx, domain, user } = context.state\n\n let orderInventories: NewOrderInventory[] = transferOrder.orderInventories\n const myBizplace: Bizplace = await getOutletBizplace(transferOrder.warehouseId)\n\n // #1 Find the related retail replenishment order\n const retailReplenishmentOrder: RetailReplenishmentOrder = await tx\n .getRepository(RetailReplenishmentOrder)\n .findOne({\n where: { domain: { id: domain.id }, bizplace: { id: myBizplace.id }, refNo: transferOrder.refNo },\n relations: ['domain', 'bizplace']\n })\n\n // #2 Create Transfer Order\n const createdTransferOrder: TransferOrder = await tx.getRepository(TransferOrder).save({\n ...(transferOrder as any),\n name: OrderNoGenerator.transferOrder(),\n bizplace: myBizplace,\n retailReplenishmentOrder: retailReplenishmentOrder ? retailReplenishmentOrder.id : null,\n status: ORDER_STATUS.PENDING_RECEIVE,\n domain,\n creator: user,\n updater: user\n })\n\n // #3 Create Transfer Order inventories\n await addTransferOrderInventories(\n domain,\n createdTransferOrder,\n orderInventories.map((oi: NewOrderInventory) => {\n return { ...oi, status: ORDER_INVENTORY_STATUS.PENDING_RECEIVE }\n }),\n user,\n tx\n )\n\n return createdTransferOrder\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean)\n async generateTransferOrder(\n @Arg('transferOrder', type => NewTransferOrder) transferOrder: NewTransferOrder,\n @Ctx() context: ResolverContext\n ): Promise<boolean> {\n const { tx, domain, user } = context.state\n\n await generateTransferOrder(transferOrder, domain, user, tx)\n return true\n }\n\n @Directive('@transaction')\n @Mutation(returns => TransferOrder)\n async completeTransferOrder(\n @Arg('patch', type => TransferOrderPatch) patch: TransferOrderPatch,\n @Ctx() context: ResolverContext\n ): Promise<TransferOrder> {\n const { tx, domain, user } = context.state\n\n const myBizplace: Bizplace = await getOutletBizplace(patch.warehouseId)\n let targetOIs: NewOrderInventory[] = patch.orderInventories\n let partialReceived = false\n\n // #1 Find Transfer Order\n const foundTO: TransferOrder = await tx.getRepository(TransferOrder).findOne({\n where: { domain: { id: domain.id }, name: patch.name, bizplace: { id: myBizplace.id } },\n relations: ['bizplace', 'orderInventories']\n })\n\n if (!foundTO) throw new Error(`Transfer order does not exist.`)\n if (foundTO && foundTO.status && foundTO.status === ORDER_STATUS.RECEIVED)\n throw new Error(`Transfer order is already completed.`)\n\n // #2 Find related order inventories\n let foundOIs: OrderInventory[] = await tx.getRepository(OrderInventory).find({\n where: { domain: { id: domain.id }, transferOrder: { id: foundTO.id } }\n })\n\n if (!foundOIs) throw new Error(`Order inventories were not found.`)\n\n foundOIs = foundOIs.map((oi: OrderInventory) => {\n targetOIs.forEach((toi: NewOrderInventory) => {\n // #2.1 Update the status of order inventories accordingly\n if (oi.name === toi.name && oi.batchId === toi.batchId) {\n //need to add appropriate condition in future\n oi.status = toi.status\n if (toi.remark) oi.remark = toi.remark\n }\n // #2.2 Check the status of order inventories if there is unreceived item\n if (toi.status.includes(ORDER_INVENTORY_STATUS.NOT_RECEIVED)) partialReceived = true\n })\n oi.updater = user\n return oi\n })\n await tx.getRepository(OrderInventory).save(foundOIs)\n\n // #3 Update status of stock replenishment order (RECEIVED / PARTIALLY_RECEIVED)\n return await getRepository(TransferOrder).save({\n ...foundTO,\n status: partialReceived ? ORDER_STATUS.PARTIAL_RECEIVED : ORDER_STATUS.RECEIVED,\n updater: user\n })\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean)\n async deleteTransferOrder(@Arg('name') name: string, @Ctx() context: ResolverContext): Promise<boolean> {\n const { tx, domain } = context.state\n\n await tx.getRepository(TransferOrder).delete({ domain, name })\n return true\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean)\n async deleteTransferOrders(\n @Arg('names', type => [String]) names: string[],\n @Ctx() context: ResolverContext\n ): Promise<boolean> {\n const { tx, domain } = context.state\n await tx.getRepository(TransferOrder).delete({\n domain: { id: domain.id },\n name: In(names)\n })\n return true\n }\n}\n\nexport async function addTransferOrderInventories(\n domain: Domain,\n transferOrder: TransferOrder,\n orderInventories: (OrderInventory | NewOrderInventory)[],\n user: User,\n tx?: EntityManager\n): Promise<void> {\n const productRepo: Repository<Product> = tx?.getRepository(Product) || getRepository(Product)\n const orderInventoryRepo: Repository<OrderInventory> =\n tx?.getRepository(OrderInventory) || getRepository(OrderInventory)\n\n if (!transferOrder?.bizplace || !transferOrder?.orderInventories?.length) {\n transferOrder = await tx.getRepository(TransferOrder).findOne({\n where: { id: transferOrder.id } /* CONFIRMME regarding TYPEORM */,\n relations: ['bizplace', 'orderInventories']\n })\n }\n\n orderInventories = await Promise.all(\n orderInventories.map(async (oi: OrderInventory) => {\n const foundProduct: Product = await productRepo.findOneBy({\n domain: { id: domain.id },\n sku: oi.product.sku,\n name: oi.product.name\n })\n return {\n ...oi,\n domain,\n bizplace: transferOrder.bizplace,\n name: OrderNoGenerator.orderInventory(),\n product: foundProduct,\n productName: foundProduct.name,\n releaseWeight: foundProduct.weight * oi.releaseQty,\n packingType: foundProduct.packingType,\n type: ORDER_TYPES.TRANSFER_ORDER,\n transferOrder,\n creator: user,\n updater: user\n }\n })\n )\n\n //add lock qty\n\n await orderInventoryRepo.save(orderInventories)\n}\n\nexport async function generateTransferOrder(\n transferOrder: NewTransferOrder,\n domain: Domain,\n user: User,\n tx?: EntityManager\n): Promise<TransferOrder> {\n const settingRepo: Repository<Setting> = tx?.getRepository(Setting) || getRepository(Setting)\n let orderInventories: NewOrderInventory[] = transferOrder.orderInventories\n let orderNo: string = ''\n\n // find TO number rule setting\n const toNoSetting: Setting = await settingRepo.findOne({\n where: {\n domain: { id: domain.id },\n name: ORDER_NUMBER_SETTING_KEY.TO_NUMBER_RULE\n }\n })\n\n if (toNoSetting) {\n orderNo = await generateId({ domain, type: ORDER_NUMBER_RULE_TYPE.TO_NUMBER, seed: {} })\n } else {\n orderNo = OrderNoGenerator.transferOrder()\n }\n\n // #1 Create Transfer Order\n const createdTransferOrder: TransferOrder = await tx.getRepository(TransferOrder).save({\n ...transferOrder,\n name: orderNo,\n status: ORDER_STATUS.PENDING_RECEIVE,\n domain: domain,\n creator: user,\n updater: user\n })\n\n // #2 Create Transfer Order inventories\n await addTransferOrderInventories(\n domain,\n createdTransferOrder,\n orderInventories.map((oi: NewOrderInventory) => {\n return { ...oi, status: ORDER_INVENTORY_STATUS.PENDING_SPLIT }\n }),\n user,\n tx\n )\n\n return createdTransferOrder\n}\n"]}
1
+ {"version":3,"file":"transfer-order-mutation.js","sourceRoot":"","sources":["../../../server/service/transfer-order/transfer-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 { NewOrderInventory, NewTransferOrder, OrderInventory, RetailReplenishmentOrder, TransferOrderPatch } from '../'\nimport {\n ORDER_INVENTORY_STATUS,\n ORDER_NUMBER_RULE_TYPE,\n ORDER_NUMBER_SETTING_KEY,\n ORDER_STATUS,\n ORDER_TYPES\n} from '../../constants'\nimport { OrderNoGenerator } from '../../utils'\nimport { TransferOrder } from './transfer-order'\n\n@Resolver(TransferOrder)\nexport class TransferOrderMutation {\n @Directive('@transaction')\n @Mutation(returns => Boolean)\n async addTransferOrderInventories(\n @Arg('toNo') toNo: string,\n @Arg('orderInventories', type => [NewOrderInventory]) orderInventories: NewOrderInventory[],\n @Ctx() context: ResolverContext\n ): Promise<boolean> {\n const { tx, domain, user } = context.state\n\n const transferOrder: TransferOrder = await tx.getRepository(TransferOrder).findOne({\n where: { name: toNo },\n relations: ['bizplace', 'orderInventory']\n })\n\n await addTransferOrderInventories(domain, transferOrder, orderInventories, user, tx)\n return true\n }\n\n @Directive('@transaction')\n @Mutation(returns => TransferOrder)\n async cancelTransferOrder(\n @Arg('patch', type => TransferOrderPatch) patch: TransferOrderPatch,\n @Ctx() context: ResolverContext\n ): Promise<TransferOrder> {\n const { tx, domain, user } = context.state\n\n const bizplace: Bizplace = await getOutletBizplace(patch.warehouseId)\n\n const transferOrder: TransferOrder = await tx.getRepository(TransferOrder).findOne({\n where: { domain: { id: domain.id }, bizplace: { id: bizplace.id }, name: patch.name },\n relations: ['bizplace', 'orderInventories']\n })\n\n if (!transferOrder) throw new Error(`Transfer order does not exist.`)\n if (!patch.status) throw new Error('Status was not specified.')\n // if (patch.status && (patch.status !== ORDER_STATUS.PENDING_CANCEL || patch.status !== ORDER_STATUS.CANCELLED))\n // throw new Error(`Status provided was invalid.`)\n\n let foundOIs: OrderInventory[] = transferOrder.orderInventories\n\n // 1. Update status of order inventories based on status (to PENDING_CANCEL or CANCELLED)\n if (foundOIs && foundOIs.length) {\n foundOIs = foundOIs.map((oi: OrderInventory) => {\n ;(oi.status = patch.status), (oi.updater = user)\n return oi\n })\n }\n await tx.getRepository(OrderInventory).save(foundOIs)\n\n // 2. Update transfer order status\n return await tx.getRepository(TransferOrder).save({\n ...transferOrder,\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 => TransferOrder)\n async createTransferOrder(\n @Arg('transferOrder', type => NewTransferOrder) transferOrder: NewTransferOrder,\n @Ctx() context: ResolverContext\n ): Promise<TransferOrder> {\n const { tx, domain, user } = context.state\n\n let orderInventories: NewOrderInventory[] = transferOrder.orderInventories\n const myBizplace: Bizplace = await getOutletBizplace(transferOrder.warehouseId)\n\n // #1 Find the related retail replenishment order\n const retailReplenishmentOrder: RetailReplenishmentOrder = await tx\n .getRepository(RetailReplenishmentOrder)\n .findOne({\n where: { domain: { id: domain.id }, bizplace: { id: myBizplace.id }, refNo: transferOrder.refNo },\n relations: ['domain', 'bizplace']\n })\n\n // #2 Create Transfer Order\n const createdTransferOrder: TransferOrder = await tx.getRepository(TransferOrder).save({\n ...(transferOrder as any),\n name: OrderNoGenerator.transferOrder(),\n bizplace: myBizplace,\n retailReplenishmentOrder: retailReplenishmentOrder ? retailReplenishmentOrder.id : null,\n status: ORDER_STATUS.PENDING_RECEIVE,\n domain,\n creator: user,\n updater: user\n })\n\n // #3 Create Transfer Order inventories\n await addTransferOrderInventories(\n domain,\n createdTransferOrder,\n orderInventories.map((oi: NewOrderInventory) => {\n return { ...oi, status: ORDER_INVENTORY_STATUS.PENDING_RECEIVE }\n }),\n user,\n tx\n )\n\n return createdTransferOrder\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean)\n async generateTransferOrder(\n @Arg('transferOrder', type => NewTransferOrder) transferOrder: NewTransferOrder,\n @Ctx() context: ResolverContext\n ): Promise<boolean> {\n const { tx, domain, user } = context.state\n\n await generateTransferOrder(transferOrder, domain, user, tx)\n return true\n }\n\n @Directive('@transaction')\n @Mutation(returns => TransferOrder)\n async completeTransferOrder(\n @Arg('patch', type => TransferOrderPatch) patch: TransferOrderPatch,\n @Ctx() context: ResolverContext\n ): Promise<TransferOrder> {\n const { tx, domain, user } = context.state\n\n const myBizplace: Bizplace = await getOutletBizplace(patch.warehouseId)\n let targetOIs: NewOrderInventory[] = patch.orderInventories\n let partialReceived = false\n\n // #1 Find Transfer Order\n const foundTO: TransferOrder = await tx.getRepository(TransferOrder).findOne({\n where: { domain: { id: domain.id }, name: patch.name, bizplace: { id: myBizplace.id } },\n relations: ['bizplace', 'orderInventories']\n })\n\n if (!foundTO) throw new Error(`Transfer order does not exist.`)\n if (foundTO && foundTO.status && foundTO.status === ORDER_STATUS.RECEIVED)\n throw new Error(`Transfer order is already completed.`)\n\n // #2 Find related order inventories\n let foundOIs: OrderInventory[] = await tx.getRepository(OrderInventory).find({\n where: { domain: { id: domain.id }, transferOrder: { id: foundTO.id } }\n })\n\n if (!foundOIs) throw new Error(`Order inventories were not found.`)\n\n foundOIs = foundOIs.map((oi: OrderInventory) => {\n targetOIs.forEach((toi: NewOrderInventory) => {\n // #2.1 Update the status of order inventories accordingly\n if (oi.name === toi.name && oi.batchId === toi.batchId) {\n //need to add appropriate condition in future\n oi.status = toi.status\n if (toi.remark) oi.remark = toi.remark\n }\n // #2.2 Check the status of order inventories if there is unreceived item\n if (toi.status.includes(ORDER_INVENTORY_STATUS.NOT_RECEIVED)) partialReceived = true\n })\n oi.updater = user\n return oi\n })\n await tx.getRepository(OrderInventory).save(foundOIs)\n\n // #3 Update status of stock replenishment order (RECEIVED / PARTIALLY_RECEIVED)\n return await getRepository(TransferOrder).save({\n ...foundTO,\n status: partialReceived ? ORDER_STATUS.PARTIAL_RECEIVED : ORDER_STATUS.RECEIVED,\n updater: user\n })\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean)\n async deleteTransferOrder(@Arg('name') name: string, @Ctx() context: ResolverContext): Promise<boolean> {\n const { tx, domain } = context.state\n\n await tx.getRepository(TransferOrder).delete({ domain: { id: domain.id }, name })\n return true\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean)\n async deleteTransferOrders(\n @Arg('names', type => [String]) names: string[],\n @Ctx() context: ResolverContext\n ): Promise<boolean> {\n const { tx, domain } = context.state\n await tx.getRepository(TransferOrder).delete({\n domain: { id: domain.id },\n name: In(names)\n })\n return true\n }\n}\n\nexport async function addTransferOrderInventories(\n domain: Domain,\n transferOrder: TransferOrder,\n orderInventories: (OrderInventory | NewOrderInventory)[],\n user: User,\n tx?: EntityManager\n): Promise<void> {\n const productRepo: Repository<Product> = tx?.getRepository(Product) || getRepository(Product)\n const orderInventoryRepo: Repository<OrderInventory> =\n tx?.getRepository(OrderInventory) || getRepository(OrderInventory)\n\n if (!transferOrder?.bizplace || !transferOrder?.orderInventories?.length) {\n transferOrder = await tx.getRepository(TransferOrder).findOne({\n where: { id: transferOrder.id } /* CONFIRMME regarding TYPEORM */,\n relations: ['bizplace', 'orderInventories']\n })\n }\n\n orderInventories = await Promise.all(\n orderInventories.map(async (oi: OrderInventory) => {\n const foundProduct: Product = await productRepo.findOneBy({\n domain: { id: domain.id },\n sku: oi.product.sku,\n name: oi.product.name\n })\n return {\n ...oi,\n domain,\n bizplace: transferOrder.bizplace,\n name: OrderNoGenerator.orderInventory(),\n product: foundProduct,\n productName: foundProduct.name,\n releaseWeight: foundProduct.weight * oi.releaseQty,\n packingType: foundProduct.packingType,\n type: ORDER_TYPES.TRANSFER_ORDER,\n transferOrder,\n creator: user,\n updater: user\n }\n })\n )\n\n //add lock qty\n\n await orderInventoryRepo.save(orderInventories)\n}\n\nexport async function generateTransferOrder(\n transferOrder: NewTransferOrder,\n domain: Domain,\n user: User,\n tx?: EntityManager\n): Promise<TransferOrder> {\n const settingRepo: Repository<Setting> = tx?.getRepository(Setting) || getRepository(Setting)\n let orderInventories: NewOrderInventory[] = transferOrder.orderInventories\n let orderNo: string = ''\n\n // find TO number rule setting\n const toNoSetting: Setting = await settingRepo.findOne({\n where: {\n domain: { id: domain.id },\n name: ORDER_NUMBER_SETTING_KEY.TO_NUMBER_RULE\n }\n })\n\n if (toNoSetting) {\n orderNo = await generateId({ domain, type: ORDER_NUMBER_RULE_TYPE.TO_NUMBER, seed: {} })\n } else {\n orderNo = OrderNoGenerator.transferOrder()\n }\n\n // #1 Create Transfer Order\n const createdTransferOrder: TransferOrder = await tx.getRepository(TransferOrder).save({\n ...transferOrder,\n name: orderNo,\n status: ORDER_STATUS.PENDING_RECEIVE,\n domain: domain,\n creator: user,\n updater: user\n })\n\n // #2 Create Transfer Order inventories\n await addTransferOrderInventories(\n domain,\n createdTransferOrder,\n orderInventories.map((oi: NewOrderInventory) => {\n return { ...oi, status: ORDER_INVENTORY_STATUS.PENDING_SPLIT }\n }),\n user,\n tx\n )\n\n return createdTransferOrder\n}\n"]}
@@ -26,7 +26,7 @@ let VasOrderMutation = class VasOrderMutation {
26
26
  if (vasIds.length) {
27
27
  await tx.getRepository(__1.OrderVas).delete({ id: (0, typeorm_1.In)(vasIds) });
28
28
  }
29
- await tx.getRepository(vas_order_1.VasOrder).delete({ domain, name });
29
+ await tx.getRepository(vas_order_1.VasOrder).delete({ domain: { id: domain.id }, name });
30
30
  return true;
31
31
  }
32
32
  async deleteVasOrders(names, context) {
@@ -1 +1 @@
1
- {"version":3,"file":"vas-order-mutation.js","sourceRoot":"","sources":["../../../server/service/vas-order/vas-order-mutation.ts"],"names":[],"mappings":";;;;AAAA,+CAAsE;AACtE,qCAA4B;AAE5B,yDAAgD;AAChD,uDAAmD;AACnD,+DAAsD;AAEtD,2BAA4E;AAC5E,+CAA6E;AAC7E,uCAA8C;AAC9C,2CAAsC;AAG/B,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;IAGrB,AAAN,KAAK,CAAC,cAAc,CAAc,IAAY,EAAS,OAAwB;QAC7E,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEpC,IAAI,aAAa,GAAa,MAAM,EAAE,CAAC,aAAa,CAAC,oBAAQ,CAAC,CAAC,OAAO,CAAC;YACrE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE;YAC1C,SAAS,EAAE,CAAC,WAAW,EAAE,SAAS,EAAE,SAAS,CAAC;SAC/C,CAAC,CAAA;QAEF,IAAI,CAAC,aAAa;YAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAA;QAChE,MAAM,QAAQ,GAAe,aAAa,CAAC,SAAS,CAAA;QAEpD,uBAAuB;QACvB,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAa,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACtD,IAAI,MAAM,CAAC,MAAM,EAAE;YACjB,MAAM,EAAE,CAAC,aAAa,CAAC,YAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,IAAA,YAAE,EAAC,MAAM,CAAC,EAAE,CAAC,CAAA;SAC5D;QAED,MAAM,EAAE,CAAC,aAAa,CAAC,oBAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;QACzD,OAAO,IAAI,CAAA;IACb,CAAC;IAIK,AAAN,KAAK,CAAC,eAAe,CACa,KAAe,EACxC,OAAwB;QAE/B,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEpC,MAAM,EAAE,CAAC,aAAa,CAAC,oBAAQ,CAAC,CAAC,MAAM,CAAC;YACtC,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE;YACzB,IAAI,EAAE,IAAA,YAAE,EAAC,KAAK,CAAC;SAChB,CAAC,CAAA;QACF,OAAO,IAAI,CAAA;IACb,CAAC;IAIK,AAAN,KAAK,CAAC,gBAAgB,CACkB,QAAqB,EACpD,OAAwB;QAE/B,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAE1C,MAAM,gBAAgB,GAAa,MAAM,EAAE,CAAC,aAAa,CAAC,mBAAQ,CAAC,CAAC,OAAO,CAAC;YAC1E,KAAK,EAAE;gBACL,EAAE,EAAE,QAAQ,CAAC,kBAAkB;aAChC;SACF,CAAC,CAAA;QAEF,IAAI,CAAC,gBAAgB;YAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAA;QAE9D,IAAI,SAAS,GAAkB,QAAQ,CAAC,SAAS,CAAA;QAEjD,sBAAsB;QACtB,MAAM,eAAe,GAAa,MAAM,EAAE,CAAC,aAAa,CAAC,oBAAQ,CAAC,CAAC,IAAI,iCAClE,QAAQ,KACX,IAAI,EAAE,wBAAgB,CAAC,QAAQ,EAAE,EACjC,MAAM,EACN,QAAQ,EAAE,gBAAgB,EAC1B,MAAM,EAAE,wBAAY,CAAC,OAAO,EAC5B,OAAO,EAAE,IAAI,EACb,OAAO,EAAE,IAAI,IACb,CAAA;QAEF,yBAAyB;QACzB,SAAS,GAAG,MAAM,OAAO,CAAC,GAAG,CAC3B,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,EAAY,EAAE,EAAE;;YACnC,IAAI,MAAA,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,aAAa,0CAAE,EAAE,EAAE;gBACzB,EAAE,CAAC,aAAa,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,sBAAO,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,aAAa,CAAC,EAAE,EAAE,CAAC,CAAA;aAC1F;YACD,uCACK,EAAE,KACL,MAAM,EACN,IAAI,EAAE,wBAAgB,CAAC,QAAQ,EAAE,EACjC,GAAG,EAAE,MAAM,EAAE,CAAC,aAAa,CAAC,OAAG,CAAC,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EACxF,QAAQ,EAAE,eAAe,EACzB,QAAQ,EAAE,gBAAgB,EAC1B,IAAI,EAAE,uBAAW,CAAC,SAAS,EAC3B,MAAM,EAAE,4BAAgB,CAAC,OAAO,EAChC,OAAO,EAAE,IAAI,EACb,OAAO,EAAE,IAAI,IACd;QACH,CAAC,CAAC,CACH,CAAA;QACD,MAAM,EAAE,CAAC,aAAa,CAAC,YAAQ,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QAEhD,OAAO,eAAe,CAAA;IACxB,CAAC;IAIK,AAAN,KAAK,CAAC,eAAe,CAAc,IAAY,EAAS,OAAwB;;QAC9E,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAE1C,MAAM,aAAa,GAAa,MAAM,EAAE,CAAC,aAAa,CAAC,oBAAQ,CAAC,CAAC,OAAO,CAAC;YACvE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE;YAC1C,SAAS,EAAE,CAAC,UAAU,EAAE,WAAW,EAAE,eAAe,EAAE,SAAS,EAAE,SAAS,CAAC;SAC5E,CAAC,CAAA;QAEF,IAAI,QAAkB,CAAA;QACtB,IAAI,gBAAgB,GAAa,aAAa,CAAC,QAAQ,CAAA;QACvD,MAAM,cAAc,GAAe,aAAa,CAAC,SAAS,CAAA;QAE1D,IAAI,CAAC,aAAa;YAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAA;QAChE,IAAI,aAAa,CAAC,MAAM,KAAK,wBAAY,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;QAC7F,IAAI,CAAC,cAAc;YAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;QAE/D,6DAA6D;QAC7D,cAAc,CAAC,OAAO,CAAC,KAAK,EAAC,QAAQ,EAAC,EAAE;YACtC,MAAM,EAAE,CAAC,aAAa,CAAC,YAAQ,CAAC,CAAC,IAAI,iCAChC,QAAQ,KACX,MAAM,EAAE,4BAAgB,CAAC,eAAe,EACxC,OAAO,EAAE,IAAI,IACb,CAAA;QACJ,CAAC,CAAC,CAAA;QAEF,0DAA0D;QAC1D,QAAQ,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,oBAAQ,CAAC,CAAC,IAAI,iCAC3C,aAAa,KAChB,MAAM,EAAE,wBAAY,CAAC,eAAe,EACpC,OAAO,EAAE,IAAI,IACb,CAAA;QAEF,sBAAsB;QACtB,yBAAyB;QACzB,MAAM,KAAK,GAAU,MAAM,EAAE;aAC1B,aAAa,CAAC,aAAa,CAAC;aAC5B,kBAAkB,CAAC,IAAI,CAAC;aACxB,MAAM,CAAC,aAAa,EAAE,IAAI,CAAC;aAC3B,KAAK,CAAC,EAAE,CAAC,EAAE;YACV,MAAM,QAAQ,GAAG,EAAE;iBAChB,QAAQ,EAAE;iBACV,MAAM,CAAC,SAAS,CAAC;iBACjB,IAAI,CAAC,gBAAI,EAAE,MAAM,CAAC;iBAClB,KAAK,CAAC,4BAA4B,CAAC;iBACnC,QAAQ,CAAC,0BAA0B,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;iBACzE,QAAQ,EAAE,CAAA;YACb,OAAO,iBAAiB,GAAG,QAAQ,CAAA;QACrC,CAAC,CAAC;aACD,UAAU,EAAE,CAAA;QAEf,0CAA0C;QAC1C,IAAI,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,MAAM,MAAI,MAAA,OAAO,CAAC,MAAM,0CAAE,OAAO,CAAA,EAAE;YAC5C,MAAM,SAAS,GAAU,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;YACnD,MAAM,GAAG,GAAG;gBACV,KAAK,EAAE,sBAAsB,gBAAgB,CAAC,IAAI,EAAE;gBACpD,IAAI,EAAE,uBAAuB,aAAa,CAAC,IAAI,2BAA2B;gBAC1E,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO;gBAC3B,IAAI,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE;aACtC,CAAA;YAED;;eAEG;YAEH,2BAA2B;YAC3B,eAAe;YACf,wBAAwB;YACxB,KAAK;SACN;QAED,OAAO,QAAQ,CAAA;IACjB,CAAC;IAIK,AAAN,KAAK,CAAC,cAAc,CACL,IAAY,EACY,KAAoB,EAClD,OAAwB;;QAE/B,IAAI;YACF,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;YAC1C,IAAI,CAAC,KAAK,CAAC,MAAM;gBAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAA;YAE1D,MAAM,QAAQ,GAAa,MAAM,EAAE,CAAC,aAAa,CAAC,oBAAQ,CAAC,CAAC,OAAO,CAAC;gBAClE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,wBAAY,CAAC,eAAe,EAAE;gBAChF,SAAS,EAAE,CAAC,UAAU,EAAE,WAAW,CAAC;aACrC,CAAC,CAAA;YACF,IAAI,CAAC,QAAQ;gBAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAA;YAE3D,+DAA+D;YAC/D,MAAM,SAAS,GAAe,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAkB,EAAE,EAAE;gBAC1E,uCACK,QAAQ,KACX,MAAM,EAAE,4BAAgB,CAAC,QAAQ,EACjC,OAAO,EAAE,IAAI,IACd;YACH,CAAC,CAAC,CAAA;YACF,MAAM,EAAE,CAAC,aAAa,CAAC,YAAQ,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;YAEhD,MAAM,EAAE,CAAC,aAAa,CAAC,oBAAQ,CAAC,CAAC,IAAI,+CAChC,QAAQ,GACR,KAAK,KACR,MAAM,EAAE,wBAAY,CAAC,QAAQ,EAC7B,OAAO,EAAE,IAAI,IACb,CAAA;YAEF,sBAAsB;YACtB,yBAAyB;YACzB,MAAM,KAAK,GAAU,MAAM,EAAE;iBAC1B,aAAa,CAAC,aAAa,CAAC;iBAC5B,kBAAkB,CAAC,IAAI,CAAC;iBACxB,MAAM,CAAC,aAAa,EAAE,IAAI,CAAC;iBAC3B,KAAK,CAAC,EAAE,CAAC,EAAE;gBACV,MAAM,QAAQ,GAAG,EAAE;qBAChB,QAAQ,EAAE;qBACV,MAAM,CAAC,SAAS,CAAC;qBACjB,IAAI,CAAC,gBAAI,EAAE,MAAM,CAAC;qBAClB,KAAK,CAAC,4BAA4B,CAAC;qBACnC,QAAQ,CAAC,0BAA0B,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC;qBAC3D,QAAQ,EAAE,CAAA;gBACb,OAAO,iBAAiB,GAAG,QAAQ,CAAA;YACrC,CAAC,CAAC;iBACD,UAAU,EAAE,CAAA;YAEf,sCAAsC;YACtC,IAAI,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,MAAM,MAAI,MAAA,OAAO,CAAC,MAAM,0CAAE,OAAO,CAAA,EAAE;gBAC5C,MAAM,SAAS,GAAU,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;gBACnD,MAAM,GAAG,GAAG;oBACV,KAAK,EAAE,qBAAqB,QAAQ,CAAC,IAAI,EAAE;oBAC3C,IAAI,EAAE,mCAAmC;oBACzC,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO;oBAC3B,IAAI,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE;iBACtC,CAAA;gBAED;;mBAEG;gBAEH,2BAA2B;gBAC3B,eAAe;gBACf,wBAAwB;gBACxB,KAAK;aACN;YAED,OAAO,QAAQ,CAAA;SAChB;QAAC,OAAO,CAAC,EAAE;YACV,MAAM,CAAC,CAAA;SACR;IACH,CAAC;CACF,CAAA;AAlPO;IAFL,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC;IACP,mBAAA,IAAA,kBAAG,EAAC,MAAM,CAAC,CAAA;IAAgB,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;sDAmBrD;AAIK;IAFL,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC;IAE1B,mBAAA,IAAA,kBAAG,EAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA;IAC9B,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;uDASP;AAIK;IAFL,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,oBAAQ,CAAC;IAE3B,mBAAA,IAAA,kBAAG,EAAC,UAAU,EAAE,IAAI,CAAC,EAAE,CAAC,eAAW,CAAC,CAAA;IACpC,mBAAA,IAAA,kBAAG,GAAE,CAAA;;6CAD0C,eAAW;;wDAiD5D;AAIK;IAFL,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,oBAAQ,CAAC;IACP,mBAAA,IAAA,kBAAG,EAAC,MAAM,CAAC,CAAA;IAAgB,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;uDAuEtD;AAIK;IAFL,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,oBAAQ,CAAC;IAE3B,mBAAA,IAAA,kBAAG,EAAC,MAAM,CAAC,CAAA;IACX,mBAAA,IAAA,kBAAG,EAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,iBAAa,CAAC,CAAA;IACnC,mBAAA,IAAA,kBAAG,GAAE,CAAA;;qDADsC,iBAAa;;sDAwE1D;AApPU,gBAAgB;IAD5B,IAAA,uBAAQ,EAAC,oBAAQ,CAAC;GACN,gBAAgB,CAqP5B;AArPY,4CAAgB","sourcesContent":["import { Arg, Ctx, Directive, Mutation, Resolver } from 'type-graphql'\nimport { In } from 'typeorm'\n\nimport { Role } from '@things-factory/auth-base'\nimport { Bizplace } from '@things-factory/biz-base'\nimport { Product } from '@things-factory/product-base'\n\nimport { NewOrderVas, NewVasOrder, OrderVas, Vas, VasOrderPatch } from '../'\nimport { ORDER_STATUS, ORDER_TYPES, ORDER_VAS_STATUS } from '../../constants'\nimport { OrderNoGenerator } from '../../utils'\nimport { VasOrder } from './vas-order'\n\n@Resolver(VasOrder)\nexport class VasOrderMutation {\n @Directive('@transaction')\n @Mutation(returns => Boolean)\n async deleteVasOrder(@Arg('name') name: string, @Ctx() context: ResolverContext): Promise<boolean> {\n const { tx, domain } = context.state\n\n let foundVasOrder: VasOrder = await tx.getRepository(VasOrder).findOne({\n where: { domain: { id: domain.id }, name },\n relations: ['orderVass', 'creator', 'updater']\n })\n\n if (!foundVasOrder) throw new Error(`Vas order doesn't exists.`)\n const foundOVs: OrderVas[] = foundVasOrder.orderVass\n\n // 1. 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 await tx.getRepository(VasOrder).delete({ domain, name })\n return true\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean)\n async deleteVasOrders(\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(VasOrder).delete({\n domain: { id: domain.id },\n name: In(names)\n })\n return true\n }\n\n @Directive('@transaction')\n @Mutation(returns => VasOrder)\n async generateVasOrder(\n @Arg('vasOrder', type => NewVasOrder) vasOrder: NewVasOrder,\n @Ctx() context: ResolverContext\n ): Promise<VasOrder> {\n const { tx, domain, user } = context.state\n\n const customerBizplace: Bizplace = await tx.getRepository(Bizplace).findOne({\n where: {\n id: vasOrder.customerBizplaceId\n }\n })\n\n if (!customerBizplace) throw new Error('company is not found')\n\n let orderVass: NewOrderVas[] = vasOrder.orderVass\n\n // 1. Create vas order\n const createdVasOrder: VasOrder = await tx.getRepository(VasOrder).save({\n ...vasOrder,\n name: OrderNoGenerator.vasOrder(),\n domain,\n bizplace: customerBizplace,\n status: ORDER_STATUS.PENDING,\n creator: user,\n updater: user\n })\n\n // 2. Create VasOrder vas\n orderVass = await Promise.all(\n orderVass.map(async (ov: OrderVas) => {\n if (ov?.targetProduct?.id) {\n ov.targetProduct = await tx.getRepository(Product).findOneBy({ id: ov.targetProduct.id })\n }\n return {\n ...ov,\n domain,\n name: OrderNoGenerator.orderVas(),\n vas: await tx.getRepository(Vas).findOneBy({ domain: { id: domain.id }, id: ov.vas.id }),\n vasOrder: createdVasOrder,\n bizplace: customerBizplace,\n type: ORDER_TYPES.VAS_ORDER,\n status: ORDER_VAS_STATUS.PENDING,\n creator: user,\n updater: user\n }\n })\n )\n await tx.getRepository(OrderVas).save(orderVass)\n\n return createdVasOrder\n }\n\n @Directive('@transaction')\n @Mutation(returns => VasOrder)\n async confirmVasOrder(@Arg('name') name: string, @Ctx() context: ResolverContext): Promise<VasOrder> {\n const { tx, domain, user } = context.state\n\n const foundVasOrder: VasOrder = await tx.getRepository(VasOrder).findOne({\n where: { domain: { id: domain.id }, name },\n relations: ['bizplace', 'orderVass', 'orderVass.vas', 'creator', 'updater']\n })\n\n let vasOrder: VasOrder\n let customerBizplace: Bizplace = foundVasOrder.bizplace\n const foundOrderVass: OrderVas[] = foundVasOrder.orderVass\n\n if (!foundVasOrder) throw new Error(`Vas order doesn't exists.`)\n if (foundVasOrder.status !== ORDER_STATUS.PENDING) throw new Error('Not confirmable status.')\n if (!foundOrderVass) throw new Error(`Order Vas doesn't exist`)\n\n // 1. Update status of Order Vas (PENDING => PENDING_RECEIVE)\n foundOrderVass.forEach(async orderVas => {\n await tx.getRepository(OrderVas).save({\n ...orderVas,\n status: ORDER_VAS_STATUS.PENDING_RECEIVE,\n updater: user\n })\n })\n\n // 2. Vas Order Status change (PENDING => PENDING_RECEIVE)\n vasOrder = await tx.getRepository(VasOrder).save({\n ...foundVasOrder,\n status: ORDER_STATUS.PENDING_RECEIVE,\n updater: user\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: context.state.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 VAS Order from ${customerBizplace.name}`,\n body: `New incoming order, ${foundVasOrder.name} is pending for receiving`,\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 vasOrder\n }\n\n @Directive('@transaction')\n @Mutation(returns => VasOrder)\n async rejectVasOrder(\n @Arg('name') name: string,\n @Arg('patch', type => VasOrderPatch) patch: VasOrderPatch,\n @Ctx() context: ResolverContext\n ): Promise<VasOrder> {\n try {\n const { tx, domain, user } = context.state\n if (!patch.remark) throw new Error('Remark is not exist.')\n\n const vasOrder: VasOrder = await tx.getRepository(VasOrder).findOne({\n where: { domain: { id: domain.id }, name, status: ORDER_STATUS.PENDING_RECEIVE },\n relations: ['bizplace', 'orderVass']\n })\n if (!vasOrder) throw new Error(`Vas order doesn't exists.`)\n\n // 1. Update status of order vass (PENDING_RECEIVE => REJECTED)\n const orderVass: OrderVas[] = vasOrder.orderVass.map((orderVas: OrderVas) => {\n return {\n ...orderVas,\n status: ORDER_VAS_STATUS.REJECTED,\n updater: user\n }\n })\n await tx.getRepository(OrderVas).save(orderVass)\n\n await tx.getRepository(VasOrder).save({\n ...vasOrder,\n ...patch,\n status: ORDER_STATUS.REJECTED,\n updater: user\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 Customer Users\n if (users?.length && context.header?.referer) {\n const receivers: any[] = users.map(user => user.id)\n const msg = {\n title: `Latest status for ${vasOrder.name}`,\n body: `Your VAS 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 vasOrder\n } catch (e) {\n throw e\n }\n }\n}\n"]}
1
+ {"version":3,"file":"vas-order-mutation.js","sourceRoot":"","sources":["../../../server/service/vas-order/vas-order-mutation.ts"],"names":[],"mappings":"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","sourcesContent":["import { Arg, Ctx, Directive, Mutation, Resolver } from 'type-graphql'\nimport { In } from 'typeorm'\n\nimport { Role } from '@things-factory/auth-base'\nimport { Bizplace } from '@things-factory/biz-base'\nimport { Product } from '@things-factory/product-base'\n\nimport { NewOrderVas, NewVasOrder, OrderVas, Vas, VasOrderPatch } from '../'\nimport { ORDER_STATUS, ORDER_TYPES, ORDER_VAS_STATUS } from '../../constants'\nimport { OrderNoGenerator } from '../../utils'\nimport { VasOrder } from './vas-order'\n\n@Resolver(VasOrder)\nexport class VasOrderMutation {\n @Directive('@transaction')\n @Mutation(returns => Boolean)\n async deleteVasOrder(@Arg('name') name: string, @Ctx() context: ResolverContext): Promise<boolean> {\n const { tx, domain } = context.state\n\n let foundVasOrder: VasOrder = await tx.getRepository(VasOrder).findOne({\n where: { domain: { id: domain.id }, name },\n relations: ['orderVass', 'creator', 'updater']\n })\n\n if (!foundVasOrder) throw new Error(`Vas order doesn't exists.`)\n const foundOVs: OrderVas[] = foundVasOrder.orderVass\n\n // 1. 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 await tx.getRepository(VasOrder).delete({ domain: { id: domain.id }, name })\n return true\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean)\n async deleteVasOrders(\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(VasOrder).delete({\n domain: { id: domain.id },\n name: In(names)\n })\n return true\n }\n\n @Directive('@transaction')\n @Mutation(returns => VasOrder)\n async generateVasOrder(\n @Arg('vasOrder', type => NewVasOrder) vasOrder: NewVasOrder,\n @Ctx() context: ResolverContext\n ): Promise<VasOrder> {\n const { tx, domain, user } = context.state\n\n const customerBizplace: Bizplace = await tx.getRepository(Bizplace).findOne({\n where: {\n id: vasOrder.customerBizplaceId\n }\n })\n\n if (!customerBizplace) throw new Error('company is not found')\n\n let orderVass: NewOrderVas[] = vasOrder.orderVass\n\n // 1. Create vas order\n const createdVasOrder: VasOrder = await tx.getRepository(VasOrder).save({\n ...vasOrder,\n name: OrderNoGenerator.vasOrder(),\n domain,\n bizplace: customerBizplace,\n status: ORDER_STATUS.PENDING,\n creator: user,\n updater: user\n })\n\n // 2. Create VasOrder vas\n orderVass = await Promise.all(\n orderVass.map(async (ov: OrderVas) => {\n if (ov?.targetProduct?.id) {\n ov.targetProduct = await tx.getRepository(Product).findOneBy({ id: ov.targetProduct.id })\n }\n return {\n ...ov,\n domain,\n name: OrderNoGenerator.orderVas(),\n vas: await tx.getRepository(Vas).findOneBy({ domain: { id: domain.id }, id: ov.vas.id }),\n vasOrder: createdVasOrder,\n bizplace: customerBizplace,\n type: ORDER_TYPES.VAS_ORDER,\n status: ORDER_VAS_STATUS.PENDING,\n creator: user,\n updater: user\n }\n })\n )\n await tx.getRepository(OrderVas).save(orderVass)\n\n return createdVasOrder\n }\n\n @Directive('@transaction')\n @Mutation(returns => VasOrder)\n async confirmVasOrder(@Arg('name') name: string, @Ctx() context: ResolverContext): Promise<VasOrder> {\n const { tx, domain, user } = context.state\n\n const foundVasOrder: VasOrder = await tx.getRepository(VasOrder).findOne({\n where: { domain: { id: domain.id }, name },\n relations: ['bizplace', 'orderVass', 'orderVass.vas', 'creator', 'updater']\n })\n\n let vasOrder: VasOrder\n let customerBizplace: Bizplace = foundVasOrder.bizplace\n const foundOrderVass: OrderVas[] = foundVasOrder.orderVass\n\n if (!foundVasOrder) throw new Error(`Vas order doesn't exists.`)\n if (foundVasOrder.status !== ORDER_STATUS.PENDING) throw new Error('Not confirmable status.')\n if (!foundOrderVass) throw new Error(`Order Vas doesn't exist`)\n\n // 1. Update status of Order Vas (PENDING => PENDING_RECEIVE)\n foundOrderVass.forEach(async orderVas => {\n await tx.getRepository(OrderVas).save({\n ...orderVas,\n status: ORDER_VAS_STATUS.PENDING_RECEIVE,\n updater: user\n })\n })\n\n // 2. Vas Order Status change (PENDING => PENDING_RECEIVE)\n vasOrder = await tx.getRepository(VasOrder).save({\n ...foundVasOrder,\n status: ORDER_STATUS.PENDING_RECEIVE,\n updater: user\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: context.state.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 VAS Order from ${customerBizplace.name}`,\n body: `New incoming order, ${foundVasOrder.name} is pending for receiving`,\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 vasOrder\n }\n\n @Directive('@transaction')\n @Mutation(returns => VasOrder)\n async rejectVasOrder(\n @Arg('name') name: string,\n @Arg('patch', type => VasOrderPatch) patch: VasOrderPatch,\n @Ctx() context: ResolverContext\n ): Promise<VasOrder> {\n try {\n const { tx, domain, user } = context.state\n if (!patch.remark) throw new Error('Remark is not exist.')\n\n const vasOrder: VasOrder = await tx.getRepository(VasOrder).findOne({\n where: { domain: { id: domain.id }, name, status: ORDER_STATUS.PENDING_RECEIVE },\n relations: ['bizplace', 'orderVass']\n })\n if (!vasOrder) throw new Error(`Vas order doesn't exists.`)\n\n // 1. Update status of order vass (PENDING_RECEIVE => REJECTED)\n const orderVass: OrderVas[] = vasOrder.orderVass.map((orderVas: OrderVas) => {\n return {\n ...orderVas,\n status: ORDER_VAS_STATUS.REJECTED,\n updater: user\n }\n })\n await tx.getRepository(OrderVas).save(orderVass)\n\n await tx.getRepository(VasOrder).save({\n ...vasOrder,\n ...patch,\n status: ORDER_STATUS.REJECTED,\n updater: user\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 Customer Users\n if (users?.length && context.header?.referer) {\n const receivers: any[] = users.map(user => user.id)\n const msg = {\n title: `Latest status for ${vasOrder.name}`,\n body: `Your VAS 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 vasOrder\n } catch (e) {\n throw e\n }\n }\n}\n"]}