@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.
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":"delivery-order-mutation.js","sourceRoot":"","sources":["../../../server/service/delivery-order/delivery-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, Repository } from 'typeorm'\n\nimport { Attachment, createAttachment, deleteAttachment } from '@things-factory/attachment-base'\nimport { User } from '@things-factory/auth-base'\nimport { Bizplace, ContactPoint, getPermittedBizplaceIds } 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, ObjectRef } from '@things-factory/shell'\nimport { TransportDriver, TransportVehicle, TRUCK_STATUS } from '@things-factory/transport-base'\nimport { Inventory } from '@things-factory/warehouse-base'\n\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/order-no-generator'\nimport { OrderInventory } from '../order-inventory/order-inventory'\nimport { NewOrderInventory, OrderInventoryPatch } from '../order-inventory/order-inventory-types'\nimport { ReleaseGood } from '../release-good/release-good'\nimport { ExportInformationPatch, ShippingOrderInfoPatch } from '../release-good/release-good-types'\nimport { ShippingOrder } from '../shipping-order/shipping-order'\nimport { DeliveryOrder } from './delivery-order'\nimport { DeliveryOrderPatch, NewDeliveryOrder } from './delivery-order-types'\n\n@Resolver(DeliveryOrder)\nexport class DeliveryOrderMutation {\n @Directive('@transaction')\n @Mutation(returns => DeliveryOrder)\n async createDeliveryOrder(\n @Ctx() context: ResolverContext,\n @Arg('orderInfo', type => NewDeliveryOrder, { nullable: true }) orderInfo?: NewDeliveryOrder,\n @Arg('customerBizplace', type => ObjectRef, { nullable: true }) customerBizplace?: ObjectRef,\n @Arg('targetInventories', type => [NewOrderInventory], { nullable: true }) targetInventories?: NewOrderInventory[],\n @Arg('file', type => [GraphQLUpload], { nullable: true }) file?: FileUpload[]\n ): Promise<DeliveryOrder> {\n const { tx, domain, user } = context.state\n\n return await createDeliveryOrder(orderInfo, customerBizplace, targetInventories, file, domain, user, tx)\n }\n\n @Directive('@transaction')\n @Mutation(returns => DeliveryOrder)\n async updateDeliveryOrder(\n @Arg('name') name: string,\n @Arg('patch', type => DeliveryOrderPatch) patch: DeliveryOrderPatch,\n @Ctx() context: ResolverContext\n ): Promise<DeliveryOrder> {\n const { tx, domain, user } = context.state\n\n const deliveryOrder = await tx.getRepository(DeliveryOrder).findOne({\n where: {\n domain: { id: domain.id },\n name,\n bizplace: In(await getPermittedBizplaceIds(domain, user))\n }\n })\n\n return await tx.getRepository(DeliveryOrder).save({\n ...deliveryOrder,\n ...patch,\n updater: user\n })\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean)\n async deleteDeliveryOrder(@Arg('name') name: string, @Ctx() context: ResolverContext): Promise<boolean> {\n const { tx, domain } = context.state\n\n const foundDO = await tx.getRepository(DeliveryOrder).findOne({\n where: { domain: { id: domain.id }, name }\n })\n if (foundDO) {\n const previousAttachment: Attachment = await tx.getRepository(Attachment).findOne({\n where: { domain: { id: domain.id }, refBy: foundDO.id }\n })\n if (previousAttachment) await deleteAttachment(null, { id: previousAttachment.id }, context)\n await tx.getRepository(DeliveryOrder).delete({ domain, name })\n }\n return true\n }\n\n @Directive('@transaction')\n @Mutation(returns => DeliveryOrder)\n async generateDeliveryOrder(\n @Ctx() context: ResolverContext,\n @Arg('orderInfo', type => DeliveryOrderPatch, { nullable: true }) orderInfo?: DeliveryOrderPatch,\n @Arg('customerBizplace', type => ObjectRef, { nullable: true }) customerBizplace?: ObjectRef,\n @Arg('releaseGood', type => ObjectRef, { nullable: true }) releaseGood?: ObjectRef,\n @Arg('targetInventories', type => [ObjectRef], { nullable: true }) targetInventories?: ObjectRef[]\n ): Promise<DeliveryOrder> {\n const { tx, domain, user } = context.state\n\n return await generateDeliveryOrder(\n orderInfo,\n targetInventories as any,\n customerBizplace,\n releaseGood as any,\n domain,\n user,\n tx\n )\n }\n\n @Directive('@transaction')\n @Mutation(returns => DeliveryOrder)\n async confirmDeliveryOrder(@Arg('name') name: string, @Ctx() context: ResolverContext): Promise<DeliveryOrder> {\n const { tx, domain, user } = context.state\n\n const foundDeliveryOrder: DeliveryOrder = await tx.getRepository(DeliveryOrder).findOne({\n where: { domain: { id: domain.id }, name },\n relations: ['creator', 'updater']\n })\n\n let deliveryOrder: DeliveryOrder\n if (!foundDeliveryOrder) throw new Error(`Delivery Order doesn't exists.`)\n if (foundDeliveryOrder.status !== ORDER_STATUS.PENDING) throw new Error('Not confirmable status.')\n\n // delivery Order Status change (PENDING => PENDING_RECEIVE)\n deliveryOrder = await tx.getRepository(DeliveryOrder).save({\n ...foundDeliveryOrder,\n status: ORDER_STATUS.PENDING_RECEIVE,\n updater: user\n })\n\n return deliveryOrder\n }\n\n @Directive('@transaction')\n @Mutation(returns => DeliveryOrder)\n async receiveDeliveryOrder(@Arg('name') name: string, @Ctx() context: ResolverContext): Promise<DeliveryOrder> {\n try {\n const { tx, domain, user } = context.state\n\n const deliveryOrder: DeliveryOrder = await tx.getRepository(DeliveryOrder).findOne({\n where: { domain: { id: domain.id }, name }\n })\n\n if (!deliveryOrder) throw new Error(`Delivery order doesn't exists.`)\n if (deliveryOrder.status !== ORDER_STATUS.PENDING_RECEIVE) throw new Error(`Status is not receivable.`)\n\n await tx.getRepository(DeliveryOrder).save({\n ...deliveryOrder,\n status: ORDER_STATUS.READY_TO_DISPATCH,\n updater: user\n })\n\n return deliveryOrder\n } catch (e) {\n throw e\n }\n }\n\n @Directive('@transaction')\n @Mutation(returns => DeliveryOrder)\n async checkDeliveredOrder(\n @Ctx() context: ResolverContext,\n @Arg('name') name: string,\n @Arg('patch', type => DeliveryOrderPatch, { nullable: true }) patch?: DeliveryOrderPatch\n ): Promise<DeliveryOrder> {\n try {\n const { tx, domain, user } = context.state\n const deliveryOrder: DeliveryOrder = await tx.getRepository(DeliveryOrder).findOne({\n where: { domain: { id: domain.id }, name },\n relations: ['bizplace', 'transportDriver', 'transportVehicle']\n })\n\n if (!deliveryOrder) throw new Error(`Delivery order doesn't exists.`)\n if (deliveryOrder.status !== ORDER_STATUS.DELIVERING) throw new Error(`Status is not receivable.`)\n\n let orderInventories: OrderInventory[] = await tx.getRepository(OrderInventory).find({\n where: { domain: { id: domain.id }, deliveryOrder: { id: deliveryOrder.id } },\n relations: ['product']\n })\n\n // update order inventory status for manual DO only\n orderInventories = orderInventories.map((orderInventory: OrderInventory) => {\n if (\n orderInventory.type === ORDER_TYPES.DELIVERY &&\n orderInventory.status === ORDER_INVENTORY_STATUS.DELIVERING\n ) {\n return {\n ...orderInventory,\n status: ORDER_INVENTORY_STATUS.DONE\n }\n } else return orderInventory\n })\n await tx.getRepository(OrderInventory).save(orderInventories)\n\n await tx.getRepository(DeliveryOrder).save({\n ...deliveryOrder,\n ...patch,\n status: ORDER_STATUS.DONE,\n updater: user\n })\n\n if (!deliveryOrder?.ownCollection) {\n const foundTruck: TransportVehicle = deliveryOrder.transportVehicle\n await tx.getRepository(TransportVehicle).save({\n ...foundTruck,\n status: TRUCK_STATUS.IDLE,\n updater: user\n })\n }\n\n return deliveryOrder\n } catch (e) {\n throw e\n }\n }\n\n /**\n * comment start\n * detailed review needed 06 Aug 2022 by @ChrisLim-git\n * @param context\n * @param orderInfo\n * @param orderItems\n * @param shippingOrderInfo\n * @param exportInfo\n * @returns DeliveryOrder\n */\n @Directive('@transaction')\n @Mutation(returns => DeliveryOrder)\n async dispatchDeliveryOrder(\n @Ctx() context: ResolverContext,\n @Arg('orderInfo', type => DeliveryOrderPatch, { nullable: true }) orderInfo?: DeliveryOrderPatch,\n @Arg('orderItems', type => [OrderInventoryPatch], { nullable: true }) orderItems?: OrderInventoryPatch[],\n @Arg('shippingInfo', type => ShippingOrderInfoPatch, { nullable: true })\n shippingOrderInfo?: ShippingOrderInfoPatch,\n @Arg('exportInfo', type => ExportInformationPatch, { nullable: true }) exportInfo?: ExportInformationPatch\n ): Promise<DeliveryOrder> {\n try {\n const { tx, domain, user } = context.state\n const foundDeliveryOrder: DeliveryOrder = await tx.getRepository(DeliveryOrder).findOne({\n where: { domain: { id: domain.id }, name: orderInfo.name },\n relations: ['transportVehicle', 'bizplace']\n })\n\n const foundReleaseGood: ReleaseGood = await tx.getRepository(ReleaseGood).findOne({\n where: {\n name: orderInfo.releaseGoodNo,\n domain: { id: domain.id }\n },\n relations: ['shippingOrder']\n })\n\n if (!foundDeliveryOrder) throw new Error(`Delivery order doesn't exists.`)\n if (foundDeliveryOrder.status === ORDER_STATUS.PENDING_CANCEL)\n throw new Error('Release order is pending for cancel')\n\n foundDeliveryOrder.ownCollection = orderInfo.transportType == 'Own Transport' ? true : false\n\n let deliveryOrderStatus = foundDeliveryOrder.status\n let orderInventories: OrderInventory[]\n orderInventories = await tx.getRepository(OrderInventory).find({\n where: { domain: { id: domain.id }, deliveryOrder: { id: foundDeliveryOrder.id } },\n relations: ['inventory', 'inventory.product', 'inventory.reusablePallet']\n })\n\n orderInventories = orderInventories.map((orderInventory: OrderInventory) => {\n const inventory: Inventory = orderInventory.inventory\n const product: Product = inventory.product\n const foundItem = inventory.reusablePallet\n ? orderItems.filter(\n (item: any) =>\n item.productName === `${product.name} (${product.description})` &&\n item.batchId === orderInventory.batchId &&\n item.pallet === inventory.reusablePallet.name\n )\n : orderItems.filter(\n (item: any) =>\n item.productName === `${product.name} (${product.description})` &&\n item.batchId === orderInventory.batchId\n )\n\n if (foundItem[0].remark !== '') orderInventory.remark = foundItem[0].remark\n return orderInventory\n })\n await tx.getRepository(OrderInventory).save(orderInventories)\n\n // if there is other destination value, create a new contact point\n let foundCP: any = {}\n if (orderInfo?.otherDestination) {\n foundCP = {\n domain,\n name: orderInfo.contactName,\n bizplace: foundDeliveryOrder.bizplace,\n address: orderInfo.otherDestination,\n billingAddress: orderInfo.billingAddress,\n phone: orderInfo.contactPhone,\n email: orderInfo.contactEmail,\n companyName: orderInfo.contactCompany,\n type: orderInfo.contactType,\n creator: user\n }\n foundCP = await tx.getRepository(ContactPoint).save(foundCP)\n } else {\n foundCP = await tx.getRepository(ContactPoint).findOne({\n where: { domain: { id: domain.id }, id: orderInfo.contactPoint, bizplace: foundDeliveryOrder.bizplace }\n })\n }\n\n let transportDriver: TransportDriver = null\n let transportVehicle: TransportVehicle = null\n if (orderInfo?.ownDriver) {\n transportDriver = await tx.getRepository(TransportDriver).findOne({\n where: { domain: { id: domain.id }, name: orderInfo.ownDriver }\n })\n }\n\n if (orderInfo?.ownTruck) {\n transportVehicle = await tx.getRepository(TransportVehicle).findOne({\n where: { domain: { id: domain.id }, name: orderInfo.ownTruck }\n })\n\n await tx.getRepository(TransportVehicle).save({\n ...transportVehicle,\n status: TRUCK_STATUS.IN_USE,\n updater: user\n })\n }\n\n if (foundDeliveryOrder.status === ORDER_STATUS.READY_TO_DISPATCH) {\n // update status to DELIVERING if current status is READY_TO_DISPATCH\n deliveryOrderStatus = ORDER_STATUS.DELIVERING\n }\n\n // save export option information\n if (orderInfo?.exportOption) {\n let savedShippingOrder: any = ''\n /**\n * Could potentially override important data\n */\n if (foundReleaseGood.shippingOrder == null) {\n savedShippingOrder = await tx.getRepository(ShippingOrder).save({\n name: OrderNoGenerator.shippingOrder(),\n shipName: exportInfo.shipName,\n containerNo: exportInfo.containerNo,\n containerArrivalDate: exportInfo.containerArrivalDate,\n containerLeavingDate: exportInfo.containerLeavingDate,\n status: ORDER_STATUS.PENDING,\n domain,\n bizplace: foundDeliveryOrder.bizplace,\n creator: user,\n updater: user\n })\n }\n\n /**\n * @oscarchuaweiwen-fsd\n * I think the expectation here is to update instead of save\n * Should use .update instead of .save as it will override data that was not meant to be updated\n * example:\n *\n * savedShippingOrder = await tx.getRepository(ShippingOrder).update({\n * shipName: exportInfo.shipName,\n * containerNo: exportInfo.containerNo,\n * containerArrivalDate: exportInfo.containerArrivalDate,\n * containerLeavingDate: exportInfo.containerLeavingDate,\n * status: ORDER_STATUS.PENDING,\n * updater: user\n * })\n *\n * Unless the intention was not to update but to insert\n */\n savedShippingOrder = await tx.getRepository(ShippingOrder).save({\n ...foundReleaseGood.shippingOrder,\n name: OrderNoGenerator.shippingOrder(),\n shipName: exportInfo.shipName,\n containerNo: exportInfo.containerNo,\n containerArrivalDate: exportInfo.containerArrivalDate,\n containerLeavingDate: exportInfo.containerLeavingDate,\n status: ORDER_STATUS.PENDING,\n domain,\n bizplace: foundDeliveryOrder.bizplace,\n creator: user,\n updater: user\n })\n /** */\n\n exportInfo = savedShippingOrder\n foundReleaseGood.exportOption = true\n } else {\n foundReleaseGood.exportOption = false\n foundReleaseGood.collectionOrderNo = ''\n }\n\n await tx.getRepository(ReleaseGood).save({\n ...foundReleaseGood,\n shippingOrder: {\n ...exportInfo\n },\n collectionOrderNo: orderInfo.coNo\n })\n\n await tx.getRepository(DeliveryOrder).save({\n ...foundDeliveryOrder,\n transportDriver,\n palletQty: orderInfo?.totalPalletQty,\n transportVehicle,\n contactPointRefId: foundCP?.id || null,\n otherDriver: orderInfo?.otherDriver || null,\n truckNo: orderInfo?.otherTruck || orderInfo?.ownTruck,\n to: foundCP?.address,\n deliveryDate: orderInfo?.deliveryDate,\n deliveryDateTime: new Date(),\n remark: orderInfo?.remark,\n status: deliveryOrderStatus,\n reusablePallet: orderInfo?.reusablePallet,\n attentionTo: shippingOrderInfo?.attentionTo || null,\n attentionCompany: shippingOrderInfo?.attentionCompany || null,\n city: shippingOrderInfo?.city || null,\n state: shippingOrderInfo?.state || null,\n postalCode: shippingOrderInfo?.postalCode || null,\n country: shippingOrderInfo?.country || null,\n phone1: shippingOrderInfo?.phone1 || null,\n deliveryAddress1: shippingOrderInfo?.deliveryAddress1 || null,\n billingAddress: shippingOrderInfo?.billingAddress || null,\n billingCountry: shippingOrderInfo?.billingCountry || null,\n billingPostalCode: shippingOrderInfo?.billingPostalCode || null,\n billingState: shippingOrderInfo?.billingState || null,\n billingCity: shippingOrderInfo?.billingCity || null,\n updater: user\n })\n\n return foundDeliveryOrder\n } catch (e) {\n throw e\n }\n }\n /** */\n\n @Directive('@transaction')\n @Mutation(returns => DeliveryOrder)\n async dispatchManualDeliveryOrder(\n @Ctx() context: ResolverContext,\n @Arg('orderInfo', type => DeliveryOrderPatch, { nullable: true }) orderInfo?: DeliveryOrderPatch,\n @Arg('orderItems', type => [OrderInventoryPatch], { nullable: true }) orderItems?: OrderInventoryPatch[]\n ): Promise<DeliveryOrder> {\n try {\n const { tx, domain, user } = context.state\n const foundDeliveryOrder: DeliveryOrder = await tx.getRepository(DeliveryOrder).findOne({\n where: { domain: { id: domain.id }, name: orderInfo.name },\n relations: ['transportVehicle', 'bizplace']\n })\n\n if (!foundDeliveryOrder) throw new Error(`Delivery order doesn't exists.`)\n if (foundDeliveryOrder.status === ORDER_STATUS.PENDING_CANCEL)\n throw new Error('Release order is pending for cancel')\n\n let deliveryOrderStatus = foundDeliveryOrder.status\n let orderInventories: OrderInventory[]\n orderInventories = await tx.getRepository(OrderInventory).find({\n where: { domain: { id: domain.id }, deliveryOrder: { id: foundDeliveryOrder.id } },\n relations: ['product']\n })\n\n // if there is other destination value, create a new contact point\n let foundCP: any = {}\n if (orderInfo?.otherDestination) {\n foundCP = {\n domain,\n name: orderInfo.contactName,\n bizplace: foundDeliveryOrder.bizplace,\n address: orderInfo.otherDestination,\n billingAddress: orderInfo.billingAddress,\n phone: orderInfo.contactPhone,\n email: orderInfo.contactEmail,\n companyName: orderInfo.contactCompany,\n type: orderInfo.contactType,\n creator: user\n }\n foundCP = await tx.getRepository(ContactPoint).save(foundCP)\n } else {\n foundCP = await tx.getRepository(ContactPoint).findOne({\n where: { domain: { id: domain.id }, id: orderInfo.contactPoint }\n })\n }\n\n let transportDriver: TransportDriver = null\n let transportVehicle: TransportVehicle = null\n if (orderInfo?.ownDriver) {\n transportDriver = await tx.getRepository(TransportDriver).findOne({\n where: { domain: { id: domain.id }, name: orderInfo.ownDriver }\n })\n }\n\n if (orderInfo?.ownTruck) {\n transportVehicle = await tx.getRepository(TransportVehicle).findOne({\n where: { domain: { id: domain.id }, name: orderInfo.ownTruck }\n })\n\n await tx.getRepository(TransportVehicle).save({\n ...transportVehicle,\n status: TRUCK_STATUS.IN_USE,\n updater: user\n })\n }\n\n orderInventories = orderInventories.map((orderInventory: OrderInventory) => {\n const remark = orderItems.find(\n (item: any) => item.productId === orderInventory.product.id && item.batchId === orderInventory.batchId\n ).remark\n\n // add remark if found, else remain existing remark\n if (remark) {\n orderInventory.remark = remark\n }\n\n // update status of DO and order inventory to DELIVERING if current status is READY_TO_DISPATCH\n if (foundDeliveryOrder.status === ORDER_STATUS.READY_TO_DISPATCH) {\n deliveryOrderStatus = ORDER_STATUS.DELIVERING\n orderInventory.status = ORDER_STATUS.DELIVERING\n }\n\n return orderInventory\n })\n await tx.getRepository(OrderInventory).save(orderInventories)\n\n await tx.getRepository(DeliveryOrder).save({\n ...foundDeliveryOrder,\n transportDriver,\n transportVehicle,\n contactPointRefId: foundCP.id || null,\n otherDriver: orderInfo?.otherDriver || null,\n truckNo: orderInfo?.otherTruck || orderInfo?.ownTruck,\n to: foundCP.address,\n deliveryDate: orderInfo.deliveryDate,\n deliveryDateTime: new Date(),\n remark: orderInfo.remark,\n status: deliveryOrderStatus,\n reusablePallet: orderInfo.reusablePallet,\n updater: user\n })\n\n return foundDeliveryOrder\n } catch (e) {\n throw e\n }\n }\n\n @Directive('@transaction')\n @Mutation(returns => DeliveryOrder)\n async sendDeliveryOrder(\n @Ctx() context: ResolverContext,\n @Arg('orderInfo', type => DeliveryOrderPatch, { nullable: true }) orderInfo?: DeliveryOrderPatch,\n @Arg('orderItems', type => [OrderInventoryPatch], { nullable: true }) orderItems?: OrderInventoryPatch[]\n ): Promise<DeliveryOrder> {\n try {\n const { tx, domain, user } = context.state\n const foundDeliveryOrder: DeliveryOrder = await tx.getRepository(DeliveryOrder).findOne({\n where: { domain: { id: domain.id }, name: orderInfo.name },\n relations: ['transportVehicle', 'bizplace']\n })\n\n if (!foundDeliveryOrder) throw new Error(`Delivery order doesn't exists.`)\n if (foundDeliveryOrder.status === ORDER_STATUS.PENDING_CANCEL)\n throw new Error('Release order is pending for cancel')\n\n let deliveryOrderStatus = foundDeliveryOrder.status\n let orderInventories: OrderInventory[]\n orderInventories = await tx.getRepository(OrderInventory).find({\n where: { domain: { id: domain.id }, deliveryOrder: { id: foundDeliveryOrder.id } },\n relations: ['inventory', 'inventory.product', 'inventory.reusablePallet']\n })\n\n orderInventories = orderInventories.map((orderInventory: OrderInventory) => {\n const inventory: Inventory = orderInventory.inventory\n const product: Product = inventory.product\n const foundItem = inventory.reusablePallet\n ? orderItems.filter(\n (item: any) =>\n item.productName === `${product.name} (${product.description})` &&\n item.batchId === orderInventory.batchId &&\n item.pallet === inventory.reusablePallet.name\n )\n : orderItems.filter(\n (item: any) =>\n item.productName === `${product.name} (${product.description})` &&\n item.batchId === orderInventory.batchId\n )\n if (foundItem[0].remark !== '') orderInventory.remark = foundItem[0].remark\n return orderInventory\n })\n await tx.getRepository(OrderInventory).save(orderInventories)\n\n let transportDriver: TransportDriver = null\n let transportVehicle: TransportVehicle = null\n if (orderInfo?.ownDriver) {\n transportDriver = await tx.getRepository(TransportDriver).findOne({\n where: { domain: { id: domain.id }, name: orderInfo.ownDriver }\n })\n }\n\n if (orderInfo?.ownTruck) {\n transportVehicle = await tx.getRepository(TransportVehicle).findOne({\n where: { domain: { id: domain.id }, name: orderInfo.ownTruck }\n })\n\n await tx.getRepository(TransportVehicle).save({\n ...transportVehicle,\n status: TRUCK_STATUS.IN_USE,\n updater: user\n })\n }\n\n if (foundDeliveryOrder.status === ORDER_STATUS.READY_TO_DISPATCH) {\n // update status to DELIVERING if current status is READY_TO_DISPATCH\n deliveryOrderStatus = ORDER_STATUS.DELIVERING\n }\n\n await tx.getRepository(DeliveryOrder).save({\n ...foundDeliveryOrder,\n transportDriver,\n transportVehicle,\n otherDriver: orderInfo?.otherDriver || null,\n truckNo: orderInfo?.otherTruck || orderInfo?.ownTruck,\n to: foundDeliveryOrder.bizplace.address,\n deliveryDate: orderInfo.deliveryDate,\n remark: orderInfo.remark,\n status: deliveryOrderStatus,\n reusablePallet: orderInfo.reusablePallet,\n updater: user\n })\n\n return foundDeliveryOrder\n } catch (e) {\n throw e\n }\n return\n }\n\n @Directive('@transaction')\n @Mutation(returns => DeliveryOrder)\n async rejectDeliveryOrder(\n @Arg('name') name: string,\n @Arg('patch', type => DeliveryOrderPatch) patch: DeliveryOrderPatch,\n @Ctx() context: ResolverContext\n ): Promise<DeliveryOrder> {\n try {\n const { tx, domain, user } = context.state\n\n const deliveryOrder: DeliveryOrder = await tx.getRepository(DeliveryOrder).findOne({\n where: { domain: { id: domain.id }, name }\n })\n\n if (!deliveryOrder) throw new Error(`Delivery order doesn't exists.`)\n if (deliveryOrder.status !== ORDER_STATUS.PENDING_RECEIVE) throw new Error(`Status is not receivable.`)\n\n await tx.getRepository(DeliveryOrder).save({\n ...deliveryOrder,\n status: ORDER_STATUS.READY_TO_DISPATCH,\n updater: user\n })\n\n return deliveryOrder\n } catch (e) {\n throw e\n }\n }\n\n @Directive('@transaction')\n @Mutation(returns => DeliveryOrder)\n async submitGoodsDeliveryNote(\n @Ctx() context: ResolverContext,\n @Arg('name') name: string,\n @Arg('file', type => GraphQLUpload, { nullable: true }) file?: FileUpload\n ): Promise<DeliveryOrder> {\n const { tx, domain, user } = context.state\n\n const foundDO: DeliveryOrder = await tx.getRepository(DeliveryOrder).findOne({\n where: { domain: { id: domain.id }, name },\n relations: ['bizplace']\n })\n\n if (!foundDO) throw new Error(`DO doesn't exists.`)\n\n const foundAttachment: Attachment = await tx.getRepository(Attachment).findOne({\n where: { domain: { id: domain.id }, refBy: foundDO.id }\n })\n\n const attachment = {\n refType: 'DO',\n refBy: foundDO.id,\n file: file,\n category: 'DO' /* TODO use refType */\n }\n\n if (!foundAttachment) {\n await createAttachment(null, { attachment }, context)\n } else {\n const id = foundAttachment.id\n await deleteAttachment(null, { id }, context)\n await createAttachment(null, { attachment }, context)\n }\n\n return await tx.getRepository(DeliveryOrder).save({\n ...foundDO,\n status: ORDER_STATUS.DONE,\n updater: user\n })\n }\n}\n\nexport async function createDeliveryOrder(\n orderInfo: any,\n customerBizplace: Bizplace,\n targetInventories: (OrderInventory | NewOrderInventory)[],\n file: FileUpload[],\n domain: Domain,\n user: User,\n tx?: EntityManager\n): Promise<DeliveryOrder> {\n const bizplaceRepo: Repository<Bizplace> = tx?.getRepository(Bizplace) || getRepository(Bizplace)\n const deliveryOrderRepo: Repository<DeliveryOrder> = tx?.getRepository(DeliveryOrder) || getRepository(DeliveryOrder)\n const productRepo: Repository<Product> = tx?.getRepository(Product) || getRepository(Product)\n const transportVehicleRepo: Repository<TransportVehicle> =\n tx?.getRepository(TransportVehicle) || getRepository(TransportVehicle)\n const transportDriverRepo: Repository<TransportDriver> =\n tx?.getRepository(TransportDriver) || getRepository(TransportDriver)\n const orderInventoryRepo: Repository<OrderInventory> =\n tx?.getRepository(OrderInventory) || getRepository(OrderInventory)\n const settingRepo: Repository<Setting> = tx?.getRepository(Setting) || getRepository(Setting)\n\n const foundBizplace: Bizplace = await bizplaceRepo.findOne({\n where: {\n id: customerBizplace.id,\n name: customerBizplace.name\n }\n })\n\n if (!foundBizplace) throw new Error(`customer not found`)\n\n // #1 find order number setting and set as DO name\n const doNoSetting: Setting = await settingRepo.findOne({\n where: {\n domain: { id: domain.id },\n name: ORDER_NUMBER_SETTING_KEY.DO_NUMBER_RULE\n }\n })\n\n let orderNo: string = ''\n\n if (doNoSetting) {\n orderNo = await generateId({ domain, type: ORDER_NUMBER_RULE_TYPE.DO_NUMBER, seed: {} })\n } else {\n orderNo = OrderNoGenerator.deliveryOrder()\n }\n\n // #2 update truck vehicle status to IN_USE (only if using warehouse truck)\n let transportVehicle: TransportVehicle = null\n let transportDriver: TransportDriver = null\n\n if (!orderInfo.ownCollection) {\n transportVehicle = await transportVehicleRepo.findOne({\n where: {\n domain: { id: domain.id },\n id: orderInfo.transportVehicle\n }\n })\n\n transportDriver = await transportDriverRepo.findOne({\n where: {\n domain: { id: domain.id },\n id: orderInfo.transportDriver\n }\n })\n\n transportVehicle = {\n ...transportVehicle,\n status: TRUCK_STATUS.IN_USE,\n updater: user\n }\n\n await transportVehicleRepo.save(transportVehicle)\n }\n\n // #3 save other destination info in Contact Point if there's any\n let foundCP: ContactPoint = {}\n if (orderInfo?.otherDestination) {\n foundCP = {\n domain,\n name: orderInfo.contactName,\n bizplace: foundBizplace,\n address: orderInfo.otherDestination,\n billingAddress: orderInfo.otherBillingAddress ? orderInfo.otherBillingAddress : orderInfo.otherDestination,\n phone: orderInfo.contactPhone || '-',\n email: orderInfo.contactEmail || '-',\n companyName: orderInfo.contactCompany || '-',\n type: orderInfo.contactType,\n creator: user,\n updater: user\n }\n foundCP = await tx.getRepository(ContactPoint).save(foundCP)\n } else {\n foundCP = await tx.getRepository(ContactPoint).findOne({\n where: { domain: { id: domain.id }, id: orderInfo.contactPointRefId, bizplace: foundBizplace }\n })\n }\n\n // #4 save the delivery order info\n let totalPalletQty = 0\n targetInventories.forEach(oi => (totalPalletQty += oi.palletQty))\n\n let deliveryOrder: any = {\n domain,\n name: orderNo,\n refNo: orderInfo.refNo,\n bizplace: foundBizplace,\n deliveryDate: orderInfo.deliveryDate,\n ownCollection: orderInfo.ownCollection,\n truckNo: orderInfo.truckNo,\n palletQty: totalPalletQty,\n status: ORDER_STATUS.READY_TO_DISPATCH,\n contactPointRefId: foundCP.id,\n remark: orderInfo.remark,\n transportDriver,\n transportVehicle,\n otherDriver: orderInfo.otherDriver,\n creator: user,\n updater: user\n }\n deliveryOrder = <DeliveryOrder>await deliveryOrderRepo.save(deliveryOrder)\n\n // #5 save order inventories\n targetInventories = await Promise.all(\n targetInventories.map(async (orderInventory: OrderInventory) => {\n const product: Product = await productRepo.findOne({\n where: {\n id: orderInventory.product.id\n }\n })\n\n if (!product) throw new Error(`product not found`)\n return {\n ...orderInventory,\n domain,\n product,\n name: OrderNoGenerator.orderInventory(),\n bizplace: foundBizplace,\n status: ORDER_INVENTORY_STATUS.READY_TO_DISPATCH,\n type: ORDER_TYPES.DELIVERY,\n deliveryOrder,\n creator: user,\n updater: user\n }\n })\n )\n await orderInventoryRepo.save(targetInventories)\n\n // if (file?.length) {\n // const attachments: Attachment[] = file.map(attachment => {\n // return {\n // file: attachment,\n // refType: ATTACHMENT_TYPE.GAN,\n // refBy: deliveryOrder.id,\n // category: ATTACHMENT_TYPE.GAN /* TODO use refType */\n // }\n // })\n // await createAttachments(_, { attachments }, context)\n // }\n\n return deliveryOrder\n}\n\nexport async function generateDeliveryOrder(\n orderInfo: DeliveryOrder | DeliveryOrderPatch,\n targetInventories: OrderInventory[],\n customerBizplace: Bizplace,\n releaseGood: ReleaseGood,\n domain: Domain,\n user: User,\n tx?: EntityManager\n): Promise<DeliveryOrder> {\n /**\n * 1. Validation for creating DO - data existing\n */\n const deliveryOrderRepo: Repository<DeliveryOrder> = tx?.getRepository(DeliveryOrder) || getRepository(DeliveryOrder)\n const transportVehicleRepo: Repository<TransportVehicle> =\n tx?.getRepository(TransportVehicle) || getRepository(TransportVehicle)\n const transportDriverRepo: Repository<TransportDriver> =\n tx?.getRepository(TransportDriver) || getRepository(TransportDriver)\n const orderInventoryRepo: Repository<OrderInventory> =\n tx?.getRepository(OrderInventory) || getRepository(OrderInventory)\n const settingRepo: Repository<Setting> = tx?.getRepository(Setting) || getRepository(Setting)\n\n let transportVehicle: TransportVehicle = null\n if (orderInfo?.truckNo) {\n transportVehicle = await transportVehicleRepo.findOne({\n where: { domain: { id: domain.id }, name: orderInfo.truckNo }\n })\n }\n\n let transportDriver: TransportDriver = null\n if (orderInfo?.transportDriver) {\n transportDriver = await transportDriverRepo.findOne({\n where: { domain: { id: domain.id }, id: orderInfo.transportDriver.id }\n })\n }\n\n const doNoSetting: Setting = await settingRepo.findOne({\n where: {\n domain: { id: domain.id },\n name: ORDER_NUMBER_SETTING_KEY.DO_NUMBER_RULE\n }\n })\n\n let orderNo: string = ''\n\n if (doNoSetting) {\n orderNo = await generateId({ domain, type: ORDER_NUMBER_RULE_TYPE.DO_NUMBER, seed: {} })\n } else {\n orderNo = OrderNoGenerator.deliveryOrder()\n }\n\n // insert shipping information from r/o to d/o\n\n let deliveryOrder: any = {\n domain,\n name: orderNo,\n bizplace: customerBizplace,\n releaseGood,\n refNo: releaseGood.refNo,\n ownCollection: orderInfo.ownCollection,\n truckNo: orderInfo?.truckNo || null,\n palletQty: orderInfo?.palletQty || null,\n transportVehicle,\n transportDriver,\n status: ORDER_STATUS.READY_TO_DISPATCH,\n contactPointRefId: orderInfo?.contactPointRefId || null,\n attentionTo: releaseGood?.attentionTo || null,\n attentionCompany: releaseGood?.attentionCompany || null,\n city: releaseGood?.city || null,\n state: releaseGood?.state || null,\n postalCode: releaseGood?.postalCode || null,\n country: releaseGood?.country || null,\n phone1: releaseGood?.phone1 || null,\n deliveryAddress1: releaseGood?.deliveryAddress1 || null,\n billingAddress: releaseGood?.billingAddress || null,\n billingCountry: releaseGood?.billingCountry || null,\n billingPostalCode: releaseGood?.billingPostalCode || null,\n billingState: releaseGood?.billingState || null,\n billingCity: releaseGood?.billingCity || null,\n creator: user,\n updater: user\n }\n\n deliveryOrder = <DeliveryOrder>await deliveryOrderRepo.save(deliveryOrder)\n\n targetInventories = targetInventories.map((targetInventory: OrderInventory) => {\n return {\n ...targetInventory,\n deliveryOrder,\n updater: user\n }\n })\n await orderInventoryRepo.save(targetInventories)\n\n return deliveryOrder\n}\n"]}
1
+ {"version":3,"file":"delivery-order-mutation.js","sourceRoot":"","sources":["../../../server/service/delivery-order/delivery-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, Repository } from 'typeorm'\n\nimport { Attachment, createAttachment, deleteAttachment } from '@things-factory/attachment-base'\nimport { User } from '@things-factory/auth-base'\nimport { Bizplace, ContactPoint, getPermittedBizplaceIds } 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, ObjectRef } from '@things-factory/shell'\nimport { TransportDriver, TransportVehicle, TRUCK_STATUS } from '@things-factory/transport-base'\nimport { Inventory } from '@things-factory/warehouse-base'\n\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/order-no-generator'\nimport { OrderInventory } from '../order-inventory/order-inventory'\nimport { NewOrderInventory, OrderInventoryPatch } from '../order-inventory/order-inventory-types'\nimport { ReleaseGood } from '../release-good/release-good'\nimport { ExportInformationPatch, ShippingOrderInfoPatch } from '../release-good/release-good-types'\nimport { ShippingOrder } from '../shipping-order/shipping-order'\nimport { DeliveryOrder } from './delivery-order'\nimport { DeliveryOrderPatch, NewDeliveryOrder } from './delivery-order-types'\n\n@Resolver(DeliveryOrder)\nexport class DeliveryOrderMutation {\n @Directive('@transaction')\n @Mutation(returns => DeliveryOrder)\n async createDeliveryOrder(\n @Ctx() context: ResolverContext,\n @Arg('orderInfo', type => NewDeliveryOrder, { nullable: true }) orderInfo?: NewDeliveryOrder,\n @Arg('customerBizplace', type => ObjectRef, { nullable: true }) customerBizplace?: ObjectRef,\n @Arg('targetInventories', type => [NewOrderInventory], { nullable: true }) targetInventories?: NewOrderInventory[],\n @Arg('file', type => [GraphQLUpload], { nullable: true }) file?: FileUpload[]\n ): Promise<DeliveryOrder> {\n const { tx, domain, user } = context.state\n\n return await createDeliveryOrder(orderInfo, customerBizplace, targetInventories, file, domain, user, tx)\n }\n\n @Directive('@transaction')\n @Mutation(returns => DeliveryOrder)\n async updateDeliveryOrder(\n @Arg('name') name: string,\n @Arg('patch', type => DeliveryOrderPatch) patch: DeliveryOrderPatch,\n @Ctx() context: ResolverContext\n ): Promise<DeliveryOrder> {\n const { tx, domain, user } = context.state\n\n const deliveryOrder = await tx.getRepository(DeliveryOrder).findOne({\n where: {\n domain: { id: domain.id },\n name,\n bizplace: In(await getPermittedBizplaceIds(domain, user))\n }\n })\n\n return await tx.getRepository(DeliveryOrder).save({\n ...deliveryOrder,\n ...patch,\n updater: user\n })\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean)\n async deleteDeliveryOrder(@Arg('name') name: string, @Ctx() context: ResolverContext): Promise<boolean> {\n const { tx, domain } = context.state\n\n const foundDO = await tx.getRepository(DeliveryOrder).findOne({\n where: { domain: { id: domain.id }, name }\n })\n if (foundDO) {\n const previousAttachment: Attachment = await tx.getRepository(Attachment).findOne({\n where: { domain: { id: domain.id }, refBy: foundDO.id }\n })\n if (previousAttachment) await deleteAttachment(null, { id: previousAttachment.id }, context)\n await tx.getRepository(DeliveryOrder).delete({ domain: { id: domain.id }, name })\n }\n return true\n }\n\n @Directive('@transaction')\n @Mutation(returns => DeliveryOrder)\n async generateDeliveryOrder(\n @Ctx() context: ResolverContext,\n @Arg('orderInfo', type => DeliveryOrderPatch, { nullable: true }) orderInfo?: DeliveryOrderPatch,\n @Arg('customerBizplace', type => ObjectRef, { nullable: true }) customerBizplace?: ObjectRef,\n @Arg('releaseGood', type => ObjectRef, { nullable: true }) releaseGood?: ObjectRef,\n @Arg('targetInventories', type => [ObjectRef], { nullable: true }) targetInventories?: ObjectRef[]\n ): Promise<DeliveryOrder> {\n const { tx, domain, user } = context.state\n\n return await generateDeliveryOrder(\n orderInfo,\n targetInventories as any,\n customerBizplace,\n releaseGood as any,\n domain,\n user,\n tx\n )\n }\n\n @Directive('@transaction')\n @Mutation(returns => DeliveryOrder)\n async confirmDeliveryOrder(@Arg('name') name: string, @Ctx() context: ResolverContext): Promise<DeliveryOrder> {\n const { tx, domain, user } = context.state\n\n const foundDeliveryOrder: DeliveryOrder = await tx.getRepository(DeliveryOrder).findOne({\n where: { domain: { id: domain.id }, name },\n relations: ['creator', 'updater']\n })\n\n let deliveryOrder: DeliveryOrder\n if (!foundDeliveryOrder) throw new Error(`Delivery Order doesn't exists.`)\n if (foundDeliveryOrder.status !== ORDER_STATUS.PENDING) throw new Error('Not confirmable status.')\n\n // delivery Order Status change (PENDING => PENDING_RECEIVE)\n deliveryOrder = await tx.getRepository(DeliveryOrder).save({\n ...foundDeliveryOrder,\n status: ORDER_STATUS.PENDING_RECEIVE,\n updater: user\n })\n\n return deliveryOrder\n }\n\n @Directive('@transaction')\n @Mutation(returns => DeliveryOrder)\n async receiveDeliveryOrder(@Arg('name') name: string, @Ctx() context: ResolverContext): Promise<DeliveryOrder> {\n try {\n const { tx, domain, user } = context.state\n\n const deliveryOrder: DeliveryOrder = await tx.getRepository(DeliveryOrder).findOne({\n where: { domain: { id: domain.id }, name }\n })\n\n if (!deliveryOrder) throw new Error(`Delivery order doesn't exists.`)\n if (deliveryOrder.status !== ORDER_STATUS.PENDING_RECEIVE) throw new Error(`Status is not receivable.`)\n\n await tx.getRepository(DeliveryOrder).save({\n ...deliveryOrder,\n status: ORDER_STATUS.READY_TO_DISPATCH,\n updater: user\n })\n\n return deliveryOrder\n } catch (e) {\n throw e\n }\n }\n\n @Directive('@transaction')\n @Mutation(returns => DeliveryOrder)\n async checkDeliveredOrder(\n @Ctx() context: ResolverContext,\n @Arg('name') name: string,\n @Arg('patch', type => DeliveryOrderPatch, { nullable: true }) patch?: DeliveryOrderPatch\n ): Promise<DeliveryOrder> {\n try {\n const { tx, domain, user } = context.state\n const deliveryOrder: DeliveryOrder = await tx.getRepository(DeliveryOrder).findOne({\n where: { domain: { id: domain.id }, name },\n relations: ['bizplace', 'transportDriver', 'transportVehicle']\n })\n\n if (!deliveryOrder) throw new Error(`Delivery order doesn't exists.`)\n if (deliveryOrder.status !== ORDER_STATUS.DELIVERING) throw new Error(`Status is not receivable.`)\n\n let orderInventories: OrderInventory[] = await tx.getRepository(OrderInventory).find({\n where: { domain: { id: domain.id }, deliveryOrder: { id: deliveryOrder.id } },\n relations: ['product']\n })\n\n // update order inventory status for manual DO only\n orderInventories = orderInventories.map((orderInventory: OrderInventory) => {\n if (\n orderInventory.type === ORDER_TYPES.DELIVERY &&\n orderInventory.status === ORDER_INVENTORY_STATUS.DELIVERING\n ) {\n return {\n ...orderInventory,\n status: ORDER_INVENTORY_STATUS.DONE\n }\n } else return orderInventory\n })\n await tx.getRepository(OrderInventory).save(orderInventories)\n\n await tx.getRepository(DeliveryOrder).save({\n ...deliveryOrder,\n ...patch,\n status: ORDER_STATUS.DONE,\n updater: user\n })\n\n if (!deliveryOrder?.ownCollection) {\n const foundTruck: TransportVehicle = deliveryOrder.transportVehicle\n await tx.getRepository(TransportVehicle).save({\n ...foundTruck,\n status: TRUCK_STATUS.IDLE,\n updater: user\n })\n }\n\n return deliveryOrder\n } catch (e) {\n throw e\n }\n }\n\n /**\n * comment start\n * detailed review needed 06 Aug 2022 by @ChrisLim-git\n * @param context\n * @param orderInfo\n * @param orderItems\n * @param shippingOrderInfo\n * @param exportInfo\n * @returns DeliveryOrder\n */\n @Directive('@transaction')\n @Mutation(returns => DeliveryOrder)\n async dispatchDeliveryOrder(\n @Ctx() context: ResolverContext,\n @Arg('orderInfo', type => DeliveryOrderPatch, { nullable: true }) orderInfo?: DeliveryOrderPatch,\n @Arg('orderItems', type => [OrderInventoryPatch], { nullable: true }) orderItems?: OrderInventoryPatch[],\n @Arg('shippingInfo', type => ShippingOrderInfoPatch, { nullable: true })\n shippingOrderInfo?: ShippingOrderInfoPatch,\n @Arg('exportInfo', type => ExportInformationPatch, { nullable: true }) exportInfo?: ExportInformationPatch\n ): Promise<DeliveryOrder> {\n try {\n const { tx, domain, user } = context.state\n const foundDeliveryOrder: DeliveryOrder = await tx.getRepository(DeliveryOrder).findOne({\n where: { domain: { id: domain.id }, name: orderInfo.name },\n relations: ['transportVehicle', 'bizplace']\n })\n\n const foundReleaseGood: ReleaseGood = await tx.getRepository(ReleaseGood).findOne({\n where: {\n name: orderInfo.releaseGoodNo,\n domain: { id: domain.id }\n },\n relations: ['shippingOrder']\n })\n\n if (!foundDeliveryOrder) throw new Error(`Delivery order doesn't exists.`)\n if (foundDeliveryOrder.status === ORDER_STATUS.PENDING_CANCEL)\n throw new Error('Release order is pending for cancel')\n\n foundDeliveryOrder.ownCollection = orderInfo.transportType == 'Own Transport' ? true : false\n\n let deliveryOrderStatus = foundDeliveryOrder.status\n let orderInventories: OrderInventory[]\n orderInventories = await tx.getRepository(OrderInventory).find({\n where: { domain: { id: domain.id }, deliveryOrder: { id: foundDeliveryOrder.id } },\n relations: ['inventory', 'inventory.product', 'inventory.reusablePallet']\n })\n\n orderInventories = orderInventories.map((orderInventory: OrderInventory) => {\n const inventory: Inventory = orderInventory.inventory\n const product: Product = inventory.product\n const foundItem = inventory.reusablePallet\n ? orderItems.filter(\n (item: any) =>\n item.productName === `${product.name} (${product.description})` &&\n item.batchId === orderInventory.batchId &&\n item.pallet === inventory.reusablePallet.name\n )\n : orderItems.filter(\n (item: any) =>\n item.productName === `${product.name} (${product.description})` &&\n item.batchId === orderInventory.batchId\n )\n\n if (foundItem[0].remark !== '') orderInventory.remark = foundItem[0].remark\n return orderInventory\n })\n await tx.getRepository(OrderInventory).save(orderInventories)\n\n // if there is other destination value, create a new contact point\n let foundCP: any = {}\n if (orderInfo?.otherDestination) {\n foundCP = {\n domain,\n name: orderInfo.contactName,\n bizplace: foundDeliveryOrder.bizplace,\n address: orderInfo.otherDestination,\n billingAddress: orderInfo.billingAddress,\n phone: orderInfo.contactPhone,\n email: orderInfo.contactEmail,\n companyName: orderInfo.contactCompany,\n type: orderInfo.contactType,\n creator: user\n }\n foundCP = await tx.getRepository(ContactPoint).save(foundCP)\n } else {\n foundCP = await tx.getRepository(ContactPoint).findOne({\n where: { domain: { id: domain.id }, id: orderInfo.contactPoint, bizplace: foundDeliveryOrder.bizplace }\n })\n }\n\n let transportDriver: TransportDriver = null\n let transportVehicle: TransportVehicle = null\n if (orderInfo?.ownDriver) {\n transportDriver = await tx.getRepository(TransportDriver).findOne({\n where: { domain: { id: domain.id }, name: orderInfo.ownDriver }\n })\n }\n\n if (orderInfo?.ownTruck) {\n transportVehicle = await tx.getRepository(TransportVehicle).findOne({\n where: { domain: { id: domain.id }, name: orderInfo.ownTruck }\n })\n\n await tx.getRepository(TransportVehicle).save({\n ...transportVehicle,\n status: TRUCK_STATUS.IN_USE,\n updater: user\n })\n }\n\n if (foundDeliveryOrder.status === ORDER_STATUS.READY_TO_DISPATCH) {\n // update status to DELIVERING if current status is READY_TO_DISPATCH\n deliveryOrderStatus = ORDER_STATUS.DELIVERING\n }\n\n // save export option information\n if (orderInfo?.exportOption) {\n let savedShippingOrder: any = ''\n /**\n * Could potentially override important data\n */\n if (foundReleaseGood.shippingOrder == null) {\n savedShippingOrder = await tx.getRepository(ShippingOrder).save({\n name: OrderNoGenerator.shippingOrder(),\n shipName: exportInfo.shipName,\n containerNo: exportInfo.containerNo,\n containerArrivalDate: exportInfo.containerArrivalDate,\n containerLeavingDate: exportInfo.containerLeavingDate,\n status: ORDER_STATUS.PENDING,\n domain,\n bizplace: foundDeliveryOrder.bizplace,\n creator: user,\n updater: user\n })\n }\n\n /**\n * @oscarchuaweiwen-fsd\n * I think the expectation here is to update instead of save\n * Should use .update instead of .save as it will override data that was not meant to be updated\n * example:\n *\n * savedShippingOrder = await tx.getRepository(ShippingOrder).update({\n * shipName: exportInfo.shipName,\n * containerNo: exportInfo.containerNo,\n * containerArrivalDate: exportInfo.containerArrivalDate,\n * containerLeavingDate: exportInfo.containerLeavingDate,\n * status: ORDER_STATUS.PENDING,\n * updater: user\n * })\n *\n * Unless the intention was not to update but to insert\n */\n savedShippingOrder = await tx.getRepository(ShippingOrder).save({\n ...foundReleaseGood.shippingOrder,\n name: OrderNoGenerator.shippingOrder(),\n shipName: exportInfo.shipName,\n containerNo: exportInfo.containerNo,\n containerArrivalDate: exportInfo.containerArrivalDate,\n containerLeavingDate: exportInfo.containerLeavingDate,\n status: ORDER_STATUS.PENDING,\n domain,\n bizplace: foundDeliveryOrder.bizplace,\n creator: user,\n updater: user\n })\n /** */\n\n exportInfo = savedShippingOrder\n foundReleaseGood.exportOption = true\n } else {\n foundReleaseGood.exportOption = false\n foundReleaseGood.collectionOrderNo = ''\n }\n\n await tx.getRepository(ReleaseGood).save({\n ...foundReleaseGood,\n shippingOrder: {\n ...exportInfo\n },\n collectionOrderNo: orderInfo.coNo\n })\n\n await tx.getRepository(DeliveryOrder).save({\n ...foundDeliveryOrder,\n transportDriver,\n palletQty: orderInfo?.totalPalletQty,\n transportVehicle,\n contactPointRefId: foundCP?.id || null,\n otherDriver: orderInfo?.otherDriver || null,\n truckNo: orderInfo?.otherTruck || orderInfo?.ownTruck,\n to: foundCP?.address,\n deliveryDate: orderInfo?.deliveryDate,\n deliveryDateTime: new Date(),\n remark: orderInfo?.remark,\n status: deliveryOrderStatus,\n reusablePallet: orderInfo?.reusablePallet,\n attentionTo: shippingOrderInfo?.attentionTo || null,\n attentionCompany: shippingOrderInfo?.attentionCompany || null,\n city: shippingOrderInfo?.city || null,\n state: shippingOrderInfo?.state || null,\n postalCode: shippingOrderInfo?.postalCode || null,\n country: shippingOrderInfo?.country || null,\n phone1: shippingOrderInfo?.phone1 || null,\n deliveryAddress1: shippingOrderInfo?.deliveryAddress1 || null,\n billingAddress: shippingOrderInfo?.billingAddress || null,\n billingCountry: shippingOrderInfo?.billingCountry || null,\n billingPostalCode: shippingOrderInfo?.billingPostalCode || null,\n billingState: shippingOrderInfo?.billingState || null,\n billingCity: shippingOrderInfo?.billingCity || null,\n updater: user\n })\n\n return foundDeliveryOrder\n } catch (e) {\n throw e\n }\n }\n /** */\n\n @Directive('@transaction')\n @Mutation(returns => DeliveryOrder)\n async dispatchManualDeliveryOrder(\n @Ctx() context: ResolverContext,\n @Arg('orderInfo', type => DeliveryOrderPatch, { nullable: true }) orderInfo?: DeliveryOrderPatch,\n @Arg('orderItems', type => [OrderInventoryPatch], { nullable: true }) orderItems?: OrderInventoryPatch[]\n ): Promise<DeliveryOrder> {\n try {\n const { tx, domain, user } = context.state\n const foundDeliveryOrder: DeliveryOrder = await tx.getRepository(DeliveryOrder).findOne({\n where: { domain: { id: domain.id }, name: orderInfo.name },\n relations: ['transportVehicle', 'bizplace']\n })\n\n if (!foundDeliveryOrder) throw new Error(`Delivery order doesn't exists.`)\n if (foundDeliveryOrder.status === ORDER_STATUS.PENDING_CANCEL)\n throw new Error('Release order is pending for cancel')\n\n let deliveryOrderStatus = foundDeliveryOrder.status\n let orderInventories: OrderInventory[]\n orderInventories = await tx.getRepository(OrderInventory).find({\n where: { domain: { id: domain.id }, deliveryOrder: { id: foundDeliveryOrder.id } },\n relations: ['product']\n })\n\n // if there is other destination value, create a new contact point\n let foundCP: any = {}\n if (orderInfo?.otherDestination) {\n foundCP = {\n domain,\n name: orderInfo.contactName,\n bizplace: foundDeliveryOrder.bizplace,\n address: orderInfo.otherDestination,\n billingAddress: orderInfo.billingAddress,\n phone: orderInfo.contactPhone,\n email: orderInfo.contactEmail,\n companyName: orderInfo.contactCompany,\n type: orderInfo.contactType,\n creator: user\n }\n foundCP = await tx.getRepository(ContactPoint).save(foundCP)\n } else {\n foundCP = await tx.getRepository(ContactPoint).findOne({\n where: { domain: { id: domain.id }, id: orderInfo.contactPoint }\n })\n }\n\n let transportDriver: TransportDriver = null\n let transportVehicle: TransportVehicle = null\n if (orderInfo?.ownDriver) {\n transportDriver = await tx.getRepository(TransportDriver).findOne({\n where: { domain: { id: domain.id }, name: orderInfo.ownDriver }\n })\n }\n\n if (orderInfo?.ownTruck) {\n transportVehicle = await tx.getRepository(TransportVehicle).findOne({\n where: { domain: { id: domain.id }, name: orderInfo.ownTruck }\n })\n\n await tx.getRepository(TransportVehicle).save({\n ...transportVehicle,\n status: TRUCK_STATUS.IN_USE,\n updater: user\n })\n }\n\n orderInventories = orderInventories.map((orderInventory: OrderInventory) => {\n const remark = orderItems.find(\n (item: any) => item.productId === orderInventory.product.id && item.batchId === orderInventory.batchId\n ).remark\n\n // add remark if found, else remain existing remark\n if (remark) {\n orderInventory.remark = remark\n }\n\n // update status of DO and order inventory to DELIVERING if current status is READY_TO_DISPATCH\n if (foundDeliveryOrder.status === ORDER_STATUS.READY_TO_DISPATCH) {\n deliveryOrderStatus = ORDER_STATUS.DELIVERING\n orderInventory.status = ORDER_STATUS.DELIVERING\n }\n\n return orderInventory\n })\n await tx.getRepository(OrderInventory).save(orderInventories)\n\n await tx.getRepository(DeliveryOrder).save({\n ...foundDeliveryOrder,\n transportDriver,\n transportVehicle,\n contactPointRefId: foundCP.id || null,\n otherDriver: orderInfo?.otherDriver || null,\n truckNo: orderInfo?.otherTruck || orderInfo?.ownTruck,\n to: foundCP.address,\n deliveryDate: orderInfo.deliveryDate,\n deliveryDateTime: new Date(),\n remark: orderInfo.remark,\n status: deliveryOrderStatus,\n reusablePallet: orderInfo.reusablePallet,\n updater: user\n })\n\n return foundDeliveryOrder\n } catch (e) {\n throw e\n }\n }\n\n @Directive('@transaction')\n @Mutation(returns => DeliveryOrder)\n async sendDeliveryOrder(\n @Ctx() context: ResolverContext,\n @Arg('orderInfo', type => DeliveryOrderPatch, { nullable: true }) orderInfo?: DeliveryOrderPatch,\n @Arg('orderItems', type => [OrderInventoryPatch], { nullable: true }) orderItems?: OrderInventoryPatch[]\n ): Promise<DeliveryOrder> {\n try {\n const { tx, domain, user } = context.state\n const foundDeliveryOrder: DeliveryOrder = await tx.getRepository(DeliveryOrder).findOne({\n where: { domain: { id: domain.id }, name: orderInfo.name },\n relations: ['transportVehicle', 'bizplace']\n })\n\n if (!foundDeliveryOrder) throw new Error(`Delivery order doesn't exists.`)\n if (foundDeliveryOrder.status === ORDER_STATUS.PENDING_CANCEL)\n throw new Error('Release order is pending for cancel')\n\n let deliveryOrderStatus = foundDeliveryOrder.status\n let orderInventories: OrderInventory[]\n orderInventories = await tx.getRepository(OrderInventory).find({\n where: { domain: { id: domain.id }, deliveryOrder: { id: foundDeliveryOrder.id } },\n relations: ['inventory', 'inventory.product', 'inventory.reusablePallet']\n })\n\n orderInventories = orderInventories.map((orderInventory: OrderInventory) => {\n const inventory: Inventory = orderInventory.inventory\n const product: Product = inventory.product\n const foundItem = inventory.reusablePallet\n ? orderItems.filter(\n (item: any) =>\n item.productName === `${product.name} (${product.description})` &&\n item.batchId === orderInventory.batchId &&\n item.pallet === inventory.reusablePallet.name\n )\n : orderItems.filter(\n (item: any) =>\n item.productName === `${product.name} (${product.description})` &&\n item.batchId === orderInventory.batchId\n )\n if (foundItem[0].remark !== '') orderInventory.remark = foundItem[0].remark\n return orderInventory\n })\n await tx.getRepository(OrderInventory).save(orderInventories)\n\n let transportDriver: TransportDriver = null\n let transportVehicle: TransportVehicle = null\n if (orderInfo?.ownDriver) {\n transportDriver = await tx.getRepository(TransportDriver).findOne({\n where: { domain: { id: domain.id }, name: orderInfo.ownDriver }\n })\n }\n\n if (orderInfo?.ownTruck) {\n transportVehicle = await tx.getRepository(TransportVehicle).findOne({\n where: { domain: { id: domain.id }, name: orderInfo.ownTruck }\n })\n\n await tx.getRepository(TransportVehicle).save({\n ...transportVehicle,\n status: TRUCK_STATUS.IN_USE,\n updater: user\n })\n }\n\n if (foundDeliveryOrder.status === ORDER_STATUS.READY_TO_DISPATCH) {\n // update status to DELIVERING if current status is READY_TO_DISPATCH\n deliveryOrderStatus = ORDER_STATUS.DELIVERING\n }\n\n await tx.getRepository(DeliveryOrder).save({\n ...foundDeliveryOrder,\n transportDriver,\n transportVehicle,\n otherDriver: orderInfo?.otherDriver || null,\n truckNo: orderInfo?.otherTruck || orderInfo?.ownTruck,\n to: foundDeliveryOrder.bizplace.address,\n deliveryDate: orderInfo.deliveryDate,\n remark: orderInfo.remark,\n status: deliveryOrderStatus,\n reusablePallet: orderInfo.reusablePallet,\n updater: user\n })\n\n return foundDeliveryOrder\n } catch (e) {\n throw e\n }\n return\n }\n\n @Directive('@transaction')\n @Mutation(returns => DeliveryOrder)\n async rejectDeliveryOrder(\n @Arg('name') name: string,\n @Arg('patch', type => DeliveryOrderPatch) patch: DeliveryOrderPatch,\n @Ctx() context: ResolverContext\n ): Promise<DeliveryOrder> {\n try {\n const { tx, domain, user } = context.state\n\n const deliveryOrder: DeliveryOrder = await tx.getRepository(DeliveryOrder).findOne({\n where: { domain: { id: domain.id }, name }\n })\n\n if (!deliveryOrder) throw new Error(`Delivery order doesn't exists.`)\n if (deliveryOrder.status !== ORDER_STATUS.PENDING_RECEIVE) throw new Error(`Status is not receivable.`)\n\n await tx.getRepository(DeliveryOrder).save({\n ...deliveryOrder,\n status: ORDER_STATUS.READY_TO_DISPATCH,\n updater: user\n })\n\n return deliveryOrder\n } catch (e) {\n throw e\n }\n }\n\n @Directive('@transaction')\n @Mutation(returns => DeliveryOrder)\n async submitGoodsDeliveryNote(\n @Ctx() context: ResolverContext,\n @Arg('name') name: string,\n @Arg('file', type => GraphQLUpload, { nullable: true }) file?: FileUpload\n ): Promise<DeliveryOrder> {\n const { tx, domain, user } = context.state\n\n const foundDO: DeliveryOrder = await tx.getRepository(DeliveryOrder).findOne({\n where: { domain: { id: domain.id }, name },\n relations: ['bizplace']\n })\n\n if (!foundDO) throw new Error(`DO doesn't exists.`)\n\n const foundAttachment: Attachment = await tx.getRepository(Attachment).findOne({\n where: { domain: { id: domain.id }, refBy: foundDO.id }\n })\n\n const attachment = {\n refType: 'DO',\n refBy: foundDO.id,\n file: file,\n category: 'DO' /* TODO use refType */\n }\n\n if (!foundAttachment) {\n await createAttachment(null, { attachment }, context)\n } else {\n const id = foundAttachment.id\n await deleteAttachment(null, { id }, context)\n await createAttachment(null, { attachment }, context)\n }\n\n return await tx.getRepository(DeliveryOrder).save({\n ...foundDO,\n status: ORDER_STATUS.DONE,\n updater: user\n })\n }\n}\n\nexport async function createDeliveryOrder(\n orderInfo: any,\n customerBizplace: Bizplace,\n targetInventories: (OrderInventory | NewOrderInventory)[],\n file: FileUpload[],\n domain: Domain,\n user: User,\n tx?: EntityManager\n): Promise<DeliveryOrder> {\n const bizplaceRepo: Repository<Bizplace> = tx?.getRepository(Bizplace) || getRepository(Bizplace)\n const deliveryOrderRepo: Repository<DeliveryOrder> = tx?.getRepository(DeliveryOrder) || getRepository(DeliveryOrder)\n const productRepo: Repository<Product> = tx?.getRepository(Product) || getRepository(Product)\n const transportVehicleRepo: Repository<TransportVehicle> =\n tx?.getRepository(TransportVehicle) || getRepository(TransportVehicle)\n const transportDriverRepo: Repository<TransportDriver> =\n tx?.getRepository(TransportDriver) || getRepository(TransportDriver)\n const orderInventoryRepo: Repository<OrderInventory> =\n tx?.getRepository(OrderInventory) || getRepository(OrderInventory)\n const settingRepo: Repository<Setting> = tx?.getRepository(Setting) || getRepository(Setting)\n\n const foundBizplace: Bizplace = await bizplaceRepo.findOne({\n where: {\n id: customerBizplace.id,\n name: customerBizplace.name\n }\n })\n\n if (!foundBizplace) throw new Error(`customer not found`)\n\n // #1 find order number setting and set as DO name\n const doNoSetting: Setting = await settingRepo.findOne({\n where: {\n domain: { id: domain.id },\n name: ORDER_NUMBER_SETTING_KEY.DO_NUMBER_RULE\n }\n })\n\n let orderNo: string = ''\n\n if (doNoSetting) {\n orderNo = await generateId({ domain, type: ORDER_NUMBER_RULE_TYPE.DO_NUMBER, seed: {} })\n } else {\n orderNo = OrderNoGenerator.deliveryOrder()\n }\n\n // #2 update truck vehicle status to IN_USE (only if using warehouse truck)\n let transportVehicle: TransportVehicle = null\n let transportDriver: TransportDriver = null\n\n if (!orderInfo.ownCollection) {\n transportVehicle = await transportVehicleRepo.findOne({\n where: {\n domain: { id: domain.id },\n id: orderInfo.transportVehicle\n }\n })\n\n transportDriver = await transportDriverRepo.findOne({\n where: {\n domain: { id: domain.id },\n id: orderInfo.transportDriver\n }\n })\n\n transportVehicle = {\n ...transportVehicle,\n status: TRUCK_STATUS.IN_USE,\n updater: user\n }\n\n await transportVehicleRepo.save(transportVehicle)\n }\n\n // #3 save other destination info in Contact Point if there's any\n let foundCP: ContactPoint = {}\n if (orderInfo?.otherDestination) {\n foundCP = {\n domain,\n name: orderInfo.contactName,\n bizplace: foundBizplace,\n address: orderInfo.otherDestination,\n billingAddress: orderInfo.otherBillingAddress ? orderInfo.otherBillingAddress : orderInfo.otherDestination,\n phone: orderInfo.contactPhone || '-',\n email: orderInfo.contactEmail || '-',\n companyName: orderInfo.contactCompany || '-',\n type: orderInfo.contactType,\n creator: user,\n updater: user\n }\n foundCP = await tx.getRepository(ContactPoint).save(foundCP)\n } else {\n foundCP = await tx.getRepository(ContactPoint).findOne({\n where: { domain: { id: domain.id }, id: orderInfo.contactPointRefId, bizplace: foundBizplace }\n })\n }\n\n // #4 save the delivery order info\n let totalPalletQty = 0\n targetInventories.forEach(oi => (totalPalletQty += oi.palletQty))\n\n let deliveryOrder: any = {\n domain,\n name: orderNo,\n refNo: orderInfo.refNo,\n bizplace: foundBizplace,\n deliveryDate: orderInfo.deliveryDate,\n ownCollection: orderInfo.ownCollection,\n truckNo: orderInfo.truckNo,\n palletQty: totalPalletQty,\n status: ORDER_STATUS.READY_TO_DISPATCH,\n contactPointRefId: foundCP.id,\n remark: orderInfo.remark,\n transportDriver,\n transportVehicle,\n otherDriver: orderInfo.otherDriver,\n creator: user,\n updater: user\n }\n deliveryOrder = <DeliveryOrder>await deliveryOrderRepo.save(deliveryOrder)\n\n // #5 save order inventories\n targetInventories = await Promise.all(\n targetInventories.map(async (orderInventory: OrderInventory) => {\n const product: Product = await productRepo.findOne({\n where: {\n id: orderInventory.product.id\n }\n })\n\n if (!product) throw new Error(`product not found`)\n return {\n ...orderInventory,\n domain,\n product,\n name: OrderNoGenerator.orderInventory(),\n bizplace: foundBizplace,\n status: ORDER_INVENTORY_STATUS.READY_TO_DISPATCH,\n type: ORDER_TYPES.DELIVERY,\n deliveryOrder,\n creator: user,\n updater: user\n }\n })\n )\n await orderInventoryRepo.save(targetInventories)\n\n // if (file?.length) {\n // const attachments: Attachment[] = file.map(attachment => {\n // return {\n // file: attachment,\n // refType: ATTACHMENT_TYPE.GAN,\n // refBy: deliveryOrder.id,\n // category: ATTACHMENT_TYPE.GAN /* TODO use refType */\n // }\n // })\n // await createAttachments(_, { attachments }, context)\n // }\n\n return deliveryOrder\n}\n\nexport async function generateDeliveryOrder(\n orderInfo: DeliveryOrder | DeliveryOrderPatch,\n targetInventories: OrderInventory[],\n customerBizplace: Bizplace,\n releaseGood: ReleaseGood,\n domain: Domain,\n user: User,\n tx?: EntityManager\n): Promise<DeliveryOrder> {\n /**\n * 1. Validation for creating DO - data existing\n */\n const deliveryOrderRepo: Repository<DeliveryOrder> = tx?.getRepository(DeliveryOrder) || getRepository(DeliveryOrder)\n const transportVehicleRepo: Repository<TransportVehicle> =\n tx?.getRepository(TransportVehicle) || getRepository(TransportVehicle)\n const transportDriverRepo: Repository<TransportDriver> =\n tx?.getRepository(TransportDriver) || getRepository(TransportDriver)\n const orderInventoryRepo: Repository<OrderInventory> =\n tx?.getRepository(OrderInventory) || getRepository(OrderInventory)\n const settingRepo: Repository<Setting> = tx?.getRepository(Setting) || getRepository(Setting)\n\n let transportVehicle: TransportVehicle = null\n if (orderInfo?.truckNo) {\n transportVehicle = await transportVehicleRepo.findOne({\n where: { domain: { id: domain.id }, name: orderInfo.truckNo }\n })\n }\n\n let transportDriver: TransportDriver = null\n if (orderInfo?.transportDriver) {\n transportDriver = await transportDriverRepo.findOne({\n where: { domain: { id: domain.id }, id: orderInfo.transportDriver.id }\n })\n }\n\n const doNoSetting: Setting = await settingRepo.findOne({\n where: {\n domain: { id: domain.id },\n name: ORDER_NUMBER_SETTING_KEY.DO_NUMBER_RULE\n }\n })\n\n let orderNo: string = ''\n\n if (doNoSetting) {\n orderNo = await generateId({ domain, type: ORDER_NUMBER_RULE_TYPE.DO_NUMBER, seed: {} })\n } else {\n orderNo = OrderNoGenerator.deliveryOrder()\n }\n\n // insert shipping information from r/o to d/o\n\n let deliveryOrder: any = {\n domain,\n name: orderNo,\n bizplace: customerBizplace,\n releaseGood,\n refNo: releaseGood.refNo,\n ownCollection: orderInfo.ownCollection,\n truckNo: orderInfo?.truckNo || null,\n palletQty: orderInfo?.palletQty || null,\n transportVehicle,\n transportDriver,\n status: ORDER_STATUS.READY_TO_DISPATCH,\n contactPointRefId: orderInfo?.contactPointRefId || null,\n attentionTo: releaseGood?.attentionTo || null,\n attentionCompany: releaseGood?.attentionCompany || null,\n city: releaseGood?.city || null,\n state: releaseGood?.state || null,\n postalCode: releaseGood?.postalCode || null,\n country: releaseGood?.country || null,\n phone1: releaseGood?.phone1 || null,\n deliveryAddress1: releaseGood?.deliveryAddress1 || null,\n billingAddress: releaseGood?.billingAddress || null,\n billingCountry: releaseGood?.billingCountry || null,\n billingPostalCode: releaseGood?.billingPostalCode || null,\n billingState: releaseGood?.billingState || null,\n billingCity: releaseGood?.billingCity || null,\n creator: user,\n updater: user\n }\n\n deliveryOrder = <DeliveryOrder>await deliveryOrderRepo.save(deliveryOrder)\n\n targetInventories = targetInventories.map((targetInventory: OrderInventory) => {\n return {\n ...targetInventory,\n deliveryOrder,\n updater: user\n }\n })\n await orderInventoryRepo.save(targetInventories)\n\n return deliveryOrder\n}\n"]}
@@ -19,7 +19,7 @@ let GoodsReceivalNoteMutation = class GoodsReceivalNoteMutation {
19
19
  }
20
20
  async deleteGoodsReceivalNote(name, context) {
21
21
  const { tx, domain } = context.state;
22
- await tx.getRepository(goods_receival_note_1.GoodsReceivalNote).delete({ domain, name });
22
+ await tx.getRepository(goods_receival_note_1.GoodsReceivalNote).delete({ domain: { id: domain.id }, name });
23
23
  return true;
24
24
  }
25
25
  async deleteGoodsReceivalNotes(names, context) {
@@ -1 +1 @@
1
- {"version":3,"file":"goods-receival-note-mutation.js","sourceRoot":"","sources":["../../../server/service/goods-receival-note/goods-receival-note-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 } from '@things-factory/biz-base'\nimport { generateId } from '@things-factory/id-rule-base'\nimport { Setting } from '@things-factory/setting-base'\nimport { Domain, getRepository } from '@things-factory/shell'\n\nimport { ArrivalNotice, NewGoodsReceivalNote } from '../'\nimport { GRN_STATUS, ORDER_NUMBER_RULE_TYPE, ORDER_NUMBER_SETTING_KEY } from '../../constants'\nimport { OrderNoGenerator } from '../../utils/order-no-generator'\nimport { GoodsReceivalNote } from './goods-receival-note'\n\n@Resolver(GoodsReceivalNote)\nexport class GoodsReceivalNoteMutation {\n @Mutation(returns => GoodsReceivalNote)\n @Directive('@privilege(category: \"order_warehouse\", privilege: \"mutation\")')\n @Directive('@transaction')\n async generateGoodsReceivalNote(\n @Ctx() context: ResolverContext,\n @Arg('grn', type => NewGoodsReceivalNote, { nullable: true }) grn?: NewGoodsReceivalNote\n ): Promise<GoodsReceivalNote> {\n const { tx, domain, user } = context.state\n return await generateGoodsReceivalNote(grn, domain, user, tx)\n }\n\n @Mutation(returns => Boolean)\n @Directive('@privilege(category: \"order_warehouse\", privilege: \"mutation\")')\n @Directive('@transaction')\n async deleteGoodsReceivalNote(@Arg('name') name: string, @Ctx() context: ResolverContext): Promise<boolean> {\n const { tx, domain } = context.state\n await tx.getRepository(GoodsReceivalNote).delete({ domain, name })\n return true\n }\n\n @Mutation(returns => Boolean)\n @Directive('@privilege(category: \"order_warehouse\", privilege: \"mutation\")')\n @Directive('@transaction')\n async deleteGoodsReceivalNotes(\n @Arg('names', type => [String]) names: string[],\n @Ctx() context: ResolverContext\n ): Promise<boolean> {\n const { tx, domain } = context.state\n await tx.getRepository(GoodsReceivalNote).delete({\n domain: { id: domain.id },\n name: In(names)\n })\n return true\n }\n\n @Mutation(returns => GoodsReceivalNote)\n @Directive('@transaction')\n async receivedGoodsReceivalNote(\n @Arg('name') name: string,\n @Ctx() context: ResolverContext\n ): Promise<GoodsReceivalNote> {\n const { tx, domain, user } = context.state\n\n const goodsReceivalNote = await tx.getRepository(GoodsReceivalNote).findOne({\n where: { domain: { id: domain.id }, name }\n })\n\n return await tx.getRepository(GoodsReceivalNote).save({\n ...goodsReceivalNote,\n status: GRN_STATUS.RECEIVED,\n customerStatus: GRN_STATUS.RECEIVED,\n updater: user\n })\n }\n\n @Mutation(returns => GoodsReceivalNote)\n @Directive('@transaction')\n async sendGoodsReceivalNote(@Arg('name') name: string, @Ctx() context: ResolverContext): Promise<GoodsReceivalNote> {\n const { tx, domain, user } = context.state\n\n const goodsReceivalNote = await tx.getRepository(GoodsReceivalNote).findOne({\n where: { domain: { id: domain.id }, name }\n })\n\n return await tx.getRepository(GoodsReceivalNote).save({\n ...goodsReceivalNote,\n status: GRN_STATUS.SENT,\n customerStatus: GRN_STATUS.PENDING_RECEIVE,\n updater: user\n })\n }\n}\n\nexport async function generateGoodsReceivalNote(\n grn: { refNo: string; customer: string },\n domain: Domain,\n user: User,\n tx?: EntityManager\n): Promise<GoodsReceivalNote> {\n // 1. Create grn\n const grnRepo: Repository<GoodsReceivalNote> =\n tx?.getRepository(GoodsReceivalNote) || getRepository(GoodsReceivalNote)\n const bizplaceRepo: Repository<Bizplace> = tx?.getRepository(Bizplace) || getRepository(Bizplace)\n const ganRepo: Repository<ArrivalNotice> = tx?.getRepository(ArrivalNotice) || getRepository(ArrivalNotice)\n const settingRepo: Repository<Setting> = tx?.getRepository(Setting) || getRepository(Setting)\n let orderNo: string = ''\n\n const bizplace: Bizplace = await bizplaceRepo.findOne({ where: { id: grn.customer } })\n const arrivalNotice: ArrivalNotice = await ganRepo.findOne({ where: { domain: { id: domain.id }, name: grn.refNo } })\n const grnNoSetting: Setting = await settingRepo.findOne({\n where: {\n domain: { id: domain.id },\n name: ORDER_NUMBER_SETTING_KEY.GRN_NUMBER_RULE\n }\n })\n\n if (grnNoSetting) {\n orderNo = await generateId({ domain, type: ORDER_NUMBER_RULE_TYPE.GRN_NUMBER, seed: {} })\n } else {\n orderNo = OrderNoGenerator.goodsReceiveNote()\n }\n\n return await grnRepo.save({\n ...grn,\n name: orderNo,\n domain,\n bizplace,\n arrivalNotice,\n status: GRN_STATUS.PENDING_RECEIVE,\n creator: user,\n updater: user\n })\n}\n"]}
1
+ {"version":3,"file":"goods-receival-note-mutation.js","sourceRoot":"","sources":["../../../server/service/goods-receival-note/goods-receival-note-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 } from '@things-factory/biz-base'\nimport { generateId } from '@things-factory/id-rule-base'\nimport { Setting } from '@things-factory/setting-base'\nimport { Domain, getRepository } from '@things-factory/shell'\n\nimport { ArrivalNotice, NewGoodsReceivalNote } from '../'\nimport { GRN_STATUS, ORDER_NUMBER_RULE_TYPE, ORDER_NUMBER_SETTING_KEY } from '../../constants'\nimport { OrderNoGenerator } from '../../utils/order-no-generator'\nimport { GoodsReceivalNote } from './goods-receival-note'\n\n@Resolver(GoodsReceivalNote)\nexport class GoodsReceivalNoteMutation {\n @Mutation(returns => GoodsReceivalNote)\n @Directive('@privilege(category: \"order_warehouse\", privilege: \"mutation\")')\n @Directive('@transaction')\n async generateGoodsReceivalNote(\n @Ctx() context: ResolverContext,\n @Arg('grn', type => NewGoodsReceivalNote, { nullable: true }) grn?: NewGoodsReceivalNote\n ): Promise<GoodsReceivalNote> {\n const { tx, domain, user } = context.state\n return await generateGoodsReceivalNote(grn, domain, user, tx)\n }\n\n @Mutation(returns => Boolean)\n @Directive('@privilege(category: \"order_warehouse\", privilege: \"mutation\")')\n @Directive('@transaction')\n async deleteGoodsReceivalNote(@Arg('name') name: string, @Ctx() context: ResolverContext): Promise<boolean> {\n const { tx, domain } = context.state\n await tx.getRepository(GoodsReceivalNote).delete({ domain: { id: domain.id }, name })\n return true\n }\n\n @Mutation(returns => Boolean)\n @Directive('@privilege(category: \"order_warehouse\", privilege: \"mutation\")')\n @Directive('@transaction')\n async deleteGoodsReceivalNotes(\n @Arg('names', type => [String]) names: string[],\n @Ctx() context: ResolverContext\n ): Promise<boolean> {\n const { tx, domain } = context.state\n await tx.getRepository(GoodsReceivalNote).delete({\n domain: { id: domain.id },\n name: In(names)\n })\n return true\n }\n\n @Mutation(returns => GoodsReceivalNote)\n @Directive('@transaction')\n async receivedGoodsReceivalNote(\n @Arg('name') name: string,\n @Ctx() context: ResolverContext\n ): Promise<GoodsReceivalNote> {\n const { tx, domain, user } = context.state\n\n const goodsReceivalNote = await tx.getRepository(GoodsReceivalNote).findOne({\n where: { domain: { id: domain.id }, name }\n })\n\n return await tx.getRepository(GoodsReceivalNote).save({\n ...goodsReceivalNote,\n status: GRN_STATUS.RECEIVED,\n customerStatus: GRN_STATUS.RECEIVED,\n updater: user\n })\n }\n\n @Mutation(returns => GoodsReceivalNote)\n @Directive('@transaction')\n async sendGoodsReceivalNote(@Arg('name') name: string, @Ctx() context: ResolverContext): Promise<GoodsReceivalNote> {\n const { tx, domain, user } = context.state\n\n const goodsReceivalNote = await tx.getRepository(GoodsReceivalNote).findOne({\n where: { domain: { id: domain.id }, name }\n })\n\n return await tx.getRepository(GoodsReceivalNote).save({\n ...goodsReceivalNote,\n status: GRN_STATUS.SENT,\n customerStatus: GRN_STATUS.PENDING_RECEIVE,\n updater: user\n })\n }\n}\n\nexport async function generateGoodsReceivalNote(\n grn: { refNo: string; customer: string },\n domain: Domain,\n user: User,\n tx?: EntityManager\n): Promise<GoodsReceivalNote> {\n // 1. Create grn\n const grnRepo: Repository<GoodsReceivalNote> =\n tx?.getRepository(GoodsReceivalNote) || getRepository(GoodsReceivalNote)\n const bizplaceRepo: Repository<Bizplace> = tx?.getRepository(Bizplace) || getRepository(Bizplace)\n const ganRepo: Repository<ArrivalNotice> = tx?.getRepository(ArrivalNotice) || getRepository(ArrivalNotice)\n const settingRepo: Repository<Setting> = tx?.getRepository(Setting) || getRepository(Setting)\n let orderNo: string = ''\n\n const bizplace: Bizplace = await bizplaceRepo.findOne({ where: { id: grn.customer } })\n const arrivalNotice: ArrivalNotice = await ganRepo.findOne({ where: { domain: { id: domain.id }, name: grn.refNo } })\n const grnNoSetting: Setting = await settingRepo.findOne({\n where: {\n domain: { id: domain.id },\n name: ORDER_NUMBER_SETTING_KEY.GRN_NUMBER_RULE\n }\n })\n\n if (grnNoSetting) {\n orderNo = await generateId({ domain, type: ORDER_NUMBER_RULE_TYPE.GRN_NUMBER, seed: {} })\n } else {\n orderNo = OrderNoGenerator.goodsReceiveNote()\n }\n\n return await grnRepo.save({\n ...grn,\n name: orderNo,\n domain,\n bizplace,\n arrivalNotice,\n status: GRN_STATUS.PENDING_RECEIVE,\n creator: user,\n updater: user\n })\n}\n"]}
@@ -131,7 +131,7 @@ let GoodsReceivalNoteQuery = class GoodsReceivalNoteQuery {
131
131
  const ownRefNo = foundGAN.refNo;
132
132
  const partnerBiz = foundGRN.bizplace;
133
133
  const partnerDomain = await (0, shell_1.getRepository)(auth_base_1.Partner).findOne({
134
- where: { partnerDomain: { id: partnerBiz.domain.id }, domain },
134
+ where: { partnerDomain: { id: partnerBiz.domain.id }, domain: { id: domain.id } },
135
135
  relations: ['domain']
136
136
  });
137
137
  const domainOwner = partnerDomain.domain;
@@ -1 +1 @@
1
- {"version":3,"file":"goods-receival-note-query.js","sourceRoot":"","sources":["../../../server/service/goods-receival-note/goods-receival-note-query.ts"],"names":[],"mappings":"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","sourcesContent":["import { Arg, Args, Ctx, FieldResolver, Query, Resolver, Root } from 'type-graphql'\nimport { IsNull, Not, OrderByCondition, SelectQueryBuilder } from 'typeorm'\n\nimport { Partner, User } from '@things-factory/auth-base'\nimport { Bizplace, ContactPoint, getPermittedBizplaceIds } from '@things-factory/biz-base'\nimport { buildQuery, Domain, getRepository, ListParam } from '@things-factory/shell'\nimport { ReducedInventoryHistory } from '@things-factory/warehouse-base'\n\nimport { GoodsReceivalNoteList } from '../'\nimport { DateTimeConverter } from '../../utils/datetime-util'\nimport { ArrivalNotice } from '../arrival-notice/arrival-notice'\nimport { OrderProduct } from '../order-product/order-product'\nimport { GoodsReceivalNote } from './goods-receival-note'\n\n@Resolver(GoodsReceivalNote)\nexport class GoodsReceivalNoteQuery {\n @Query(returns => GoodsReceivalNoteList)\n async goodsReceivalNotes(@Ctx() context: ResolverContext, @Args() params: ListParam): Promise<GoodsReceivalNoteList> {\n const { domain, user } = context.state\n\n const fromDateParamIdx = params.filters.findIndex(param => param.name === 'fromDate')\n if (fromDateParamIdx >= 0) {\n let fromDateVal = new Date(params.filters[fromDateParamIdx].value)\n params.filters.splice(fromDateParamIdx, 1)\n\n params.filters.push({\n name: 'createdAt',\n operator: 'gte',\n value: fromDateVal.toISOString(),\n relation: false\n })\n }\n\n const toDateParamIdx = params.filters.findIndex(param => param.name === 'toDate')\n if (toDateParamIdx >= 0) {\n let toDateVal = new Date(params.filters[toDateParamIdx].value)\n params.filters.splice(toDateParamIdx, 1)\n\n params.filters.push({\n name: 'createdAt',\n operator: 'lt',\n value: new Date(toDateVal.setDate(toDateVal.getDate() + 1)).toISOString(),\n relation: false\n })\n }\n\n let refNoFilter = params.filters.find(x => x.name == 'refNo')\n let refNo2Filter = params.filters.find(x => x.name == 'refNo2')\n let refNo3Filter = params.filters.find(x => x.name == 'refNo3')\n let ganNameFilter = params.filters.find(x => x.name == 'arrivalNoticeNo')\n let bizplaceFilter = params.filters.find(x => x.name == 'bizplaceName')\n let ganStatusFilter = params.filters.find(x => x.name == 'ganStatus')\n let grnStatusFilter = params.filters.find(x => x.name == 'grnStatus')\n let orderProductsApiFilter = params.filters.find(x => x.name == 'orderProductsApi')\n\n params.filters = params.filters.filter(\n x =>\n x.name != 'refNo' &&\n x.name != 'refNo2' &&\n x.name != 'refNo3' &&\n x.name != 'arrivalNoticeNo' &&\n x.name != 'bizplaceName' &&\n x.name != 'ganStatus' &&\n x.name != 'grnStatus'\n )\n\n const qb: SelectQueryBuilder<GoodsReceivalNote> = getRepository(GoodsReceivalNote).createQueryBuilder('grn')\n buildQuery(qb, params, context)\n qb.addSelect('COALESCE(\"cc\".rank, 9999)', 'rank')\n qb.leftJoinAndSelect('grn.domain', 'domain')\n qb.leftJoinAndSelect('grn.bizplace', 'bizplace')\n qb.leftJoinAndSelect('grn.creator', 'creator')\n qb.leftJoinAndSelect('grn.updater', 'updater')\n qb.innerJoinAndSelect('grn.arrivalNotice', 'arrivalNotice')\n if (orderProductsApiFilter?.value) {\n qb.innerJoinAndSelect('arrivalNotice.orderProducts', 'orderProducts')\n qb.innerJoinAndSelect('orderProducts.product', 'product')\n }\n qb.leftJoin(\n subQuery => {\n return subQuery\n .select(`ccd.rank`, 'rank')\n .addSelect(`ccd.name`, 'status')\n .from(`common_code_details`, 'ccd')\n .innerJoin(`ccd.commonCode`, 'cc')\n .where(`ccd.domain_id = :domainId`, { domainId: domain.id })\n .andWhere(`cc.name = 'GRN_STATUS'`)\n .andWhere(`cc.name = 'GAN_REQUESTS_STATUS'`)\n },\n 'cc',\n 'cc.status = arrivalNotice.status'\n )\n\n let permittedBizplaceIds = await getPermittedBizplaceIds(domain, user)\n qb.andWhere('grn.bizplace_id IN (:...bizplaceIds)', { bizplaceIds: permittedBizplaceIds })\n\n if (refNoFilter?.value) {\n qb.andWhere('arrivalNotice.ref_no ilike :refNo', { refNo: refNoFilter.value })\n }\n if (refNo2Filter?.value) {\n qb.andWhere('arrivalNotice.ref_no_2 ilike :refNo2', { refNo2: refNo2Filter.value })\n }\n if (refNo3Filter?.value) {\n qb.andWhere('arrivalNotice.ref_no_3 ilike :refNo3', { refNo3: refNo3Filter.value })\n }\n if (ganNameFilter?.value) {\n qb.andWhere('arrivalNotice.name ilike :ganName', { ganName: ganNameFilter.value })\n }\n if (bizplaceFilter?.value) {\n qb.andWhere('bizplace.name ilike :bizName', { bizName: bizplaceFilter.value })\n }\n\n if (ganStatusFilter?.value) {\n qb.andWhere('arrivalNotice.status ilike :ganStatus', { ganStatus: ganStatusFilter.value })\n }\n if (grnStatusFilter?.value) {\n qb.andWhere('grn.status ilike :grnStatus', { grnStatus: grnStatusFilter.value })\n }\n\n const arrChildSortData = ['refNo', 'refNo2', 'refNo3']\n const arrNameSortData = ['bizplace', 'arrivalNotice', 'updater']\n const arrGanStatusSortData = ['ganStatus']\n const arrGrnStatuSortData = ['status']\n const sort: OrderByCondition = (params.sortings || []).reduce(\n (acc, sort) => ({\n ...acc,\n [arrChildSortData.indexOf(sort.name) >= 0\n ? 'arrivalNotice.' + sort.name\n : arrNameSortData.indexOf(sort.name) >= 0\n ? sort.name + '.name'\n : arrGanStatusSortData.indexOf(sort.name) >= 0\n ? 'arrivalNotice.status'\n : arrGrnStatuSortData.indexOf(sort.name) >= 0\n ? 'grn.status'\n : 'grn.' + sort.name]: sort.desc ? 'DESC' : 'ASC'\n }),\n !params.sortings.some(e => e.name === 'status') ? { rank: 'ASC' } : {}\n )\n\n qb.orderBy(sort)\n\n const [items, total] = await qb.getManyAndCount()\n\n return { items, total }\n }\n\n @Query(returns => GoodsReceivalNote)\n async goodsReceivalNote(\n @Arg('name') name: string,\n @Arg('timezoneOffSet') timezoneOffSet: string,\n @Ctx() context: ResolverContext\n ): Promise<any> {\n const { domain } = context.state\n\n const foundGRN: GoodsReceivalNote = await getRepository(GoodsReceivalNote).findOne({\n where: { domain: { id: domain.id }, name },\n relations: [\n 'domain',\n 'bizplace',\n 'bizplace.domain',\n 'bizplace.company',\n 'arrivalNotice',\n 'arrivalNotice.purchaseOrder'\n ]\n })\n\n const foundGAN: ArrivalNotice = foundGRN.arrivalNotice\n const ownRefNo = foundGAN.refNo\n\n const partnerBiz: Bizplace = foundGRN.bizplace\n\n const partnerDomain: Partner = await getRepository(Partner).findOne({\n where: { partnerDomain: { id: partnerBiz.domain.id }, domain },\n relations: ['domain']\n })\n\n const domainOwner: Domain = partnerDomain.domain\n const domainBizplace: Bizplace = await getRepository(Bizplace).findOne({\n where: { domain: { id: domainOwner.id } },\n relations: ['company']\n })\n\n const qbReducedInventory = await getRepository(ReducedInventoryHistory)\n .createQueryBuilder('ivh')\n .select('product_id', 'productId')\n .addSelect('batch_id', 'batchId')\n .addSelect('reusable_pallet_id', 'reusablePalletId')\n .addSelect('packing_type', 'packingType')\n .addSelect('sum(qty)', 'qty')\n .addSelect('sum(uom_value)', 'uomValue')\n .addSelect('uom', 'uom')\n .addSelect('count(distinct pallet_id)', 'pallet')\n .addSelect(`string_agg(distinct expiration_date::varchar,', ' order by expiration_date::varchar)`, 'expiryDate')\n .addSelect(`string_agg(distinct pallet_id::varchar,', ' order by pallet_id::varchar)`, 'palletId')\n .where('ivh.domain_id = :domainId', { domainId: domain.id })\n .andWhere('ivh.ref_order_id = :refOrderId', { refOrderId: foundGAN.id })\n .andWhere(`ivh.transaction_type = 'UNLOADING'`)\n .groupBy('reusable_pallet_id')\n .addGroupBy('product_id')\n .addGroupBy('batch_id')\n .addGroupBy('packing_type')\n .addGroupBy('uom')\n .getRawMany()\n\n // 5. find domain contact point\n const foundCP: ContactPoint = await getRepository(ContactPoint).findOne({\n where: { domain: { id: domain.id }, bizplace: { id: domainBizplace.id } }\n })\n\n const inboundInventories: any[] = await qbReducedInventory\n\n const targetProducts: OrderProduct[] = await getRepository(OrderProduct).find({\n where: {\n domain: { id: domain.id },\n arrivalNotice: { id: foundGAN.id },\n actualPalletQty: Not(IsNull()),\n actualPackQty: Not(IsNull())\n },\n relations: ['product', 'arrivalNotice', 'arrivalNotice.purchaseOrder']\n })\n\n const data = {\n grnNo: foundGRN.name,\n ganNo: foundGAN.name,\n refGANNo: foundGAN.refNo || '',\n refGANNo2: foundGAN.refNo2 || '',\n refGANNo3: foundGAN.refNo3 || '',\n companyDomain: domainBizplace.company.name,\n supplier: foundCP.name || '',\n date: foundGAN.acceptedAt ? DateTimeConverter.datetime(foundGAN.acceptedAt, timezoneOffSet) : '',\n productLists: targetProducts.map((item, idx) => {\n let unloadInvHistory = inboundInventories.find(\n ih =>\n ih.productId == item.product.id &&\n ih.batchId == item.batchId &&\n ih.packingType == item.packingType &&\n ih.uom == item.uom\n )\n\n return {\n list_no: idx + 1,\n po: item?.arrivalNotice?.purchaseOrder?.name ? item?.arrivalNotice?.purchaseOrder.name : '',\n batchNo: item.batchId || '',\n productSKU: `${item.product.sku}`,\n productName: `${item.product.name}(${item.product.description})`,\n productType: item.packingType,\n productBatch: item.batchId,\n expectedQty: item.packQty,\n actualQty: unloadInvHistory.qty || item.actualPackQty,\n actualUomValue: item.uomValue * item.actualPackQty,\n productUom: `${unloadInvHistory.uom || item.uom}`,\n expiryDate: unloadInvHistory.expiryDate || '',\n unitPrice: item.unitPrice.toFixed(2) || 0.0,\n manufactureDate: item.manufactureDate || '',\n remark: (item.remark ? item.remark : '') + (item.issue ? ' [Issue]: ' + item.issue : '')\n }\n })\n }\n\n return data\n }\n\n @FieldResolver(type => Domain)\n async domain(@Root() goodsReceivalNote: GoodsReceivalNote): Promise<Domain> {\n return await getRepository(Domain).findOneBy({ id: goodsReceivalNote.domainId })\n }\n\n @FieldResolver(type => User)\n async creator(@Root() goodsReceivalNote: GoodsReceivalNote): Promise<User> {\n return await getRepository(User).findOneBy({ id: goodsReceivalNote.creatorId })\n }\n\n @FieldResolver(type => User)\n async updater(@Root() goodsReceivalNote: GoodsReceivalNote): Promise<User> {\n return await getRepository(User).findOneBy({ id: goodsReceivalNote.updaterId })\n }\n}\n"]}
1
+ {"version":3,"file":"goods-receival-note-query.js","sourceRoot":"","sources":["../../../server/service/goods-receival-note/goods-receival-note-query.ts"],"names":[],"mappings":"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","sourcesContent":["import { Arg, Args, Ctx, FieldResolver, Query, Resolver, Root } from 'type-graphql'\nimport { IsNull, Not, OrderByCondition, SelectQueryBuilder } from 'typeorm'\n\nimport { Partner, User } from '@things-factory/auth-base'\nimport { Bizplace, ContactPoint, getPermittedBizplaceIds } from '@things-factory/biz-base'\nimport { buildQuery, Domain, getRepository, ListParam } from '@things-factory/shell'\nimport { ReducedInventoryHistory } from '@things-factory/warehouse-base'\n\nimport { GoodsReceivalNoteList } from '../'\nimport { DateTimeConverter } from '../../utils/datetime-util'\nimport { ArrivalNotice } from '../arrival-notice/arrival-notice'\nimport { OrderProduct } from '../order-product/order-product'\nimport { GoodsReceivalNote } from './goods-receival-note'\n\n@Resolver(GoodsReceivalNote)\nexport class GoodsReceivalNoteQuery {\n @Query(returns => GoodsReceivalNoteList)\n async goodsReceivalNotes(@Ctx() context: ResolverContext, @Args() params: ListParam): Promise<GoodsReceivalNoteList> {\n const { domain, user } = context.state\n\n const fromDateParamIdx = params.filters.findIndex(param => param.name === 'fromDate')\n if (fromDateParamIdx >= 0) {\n let fromDateVal = new Date(params.filters[fromDateParamIdx].value)\n params.filters.splice(fromDateParamIdx, 1)\n\n params.filters.push({\n name: 'createdAt',\n operator: 'gte',\n value: fromDateVal.toISOString(),\n relation: false\n })\n }\n\n const toDateParamIdx = params.filters.findIndex(param => param.name === 'toDate')\n if (toDateParamIdx >= 0) {\n let toDateVal = new Date(params.filters[toDateParamIdx].value)\n params.filters.splice(toDateParamIdx, 1)\n\n params.filters.push({\n name: 'createdAt',\n operator: 'lt',\n value: new Date(toDateVal.setDate(toDateVal.getDate() + 1)).toISOString(),\n relation: false\n })\n }\n\n let refNoFilter = params.filters.find(x => x.name == 'refNo')\n let refNo2Filter = params.filters.find(x => x.name == 'refNo2')\n let refNo3Filter = params.filters.find(x => x.name == 'refNo3')\n let ganNameFilter = params.filters.find(x => x.name == 'arrivalNoticeNo')\n let bizplaceFilter = params.filters.find(x => x.name == 'bizplaceName')\n let ganStatusFilter = params.filters.find(x => x.name == 'ganStatus')\n let grnStatusFilter = params.filters.find(x => x.name == 'grnStatus')\n let orderProductsApiFilter = params.filters.find(x => x.name == 'orderProductsApi')\n\n params.filters = params.filters.filter(\n x =>\n x.name != 'refNo' &&\n x.name != 'refNo2' &&\n x.name != 'refNo3' &&\n x.name != 'arrivalNoticeNo' &&\n x.name != 'bizplaceName' &&\n x.name != 'ganStatus' &&\n x.name != 'grnStatus'\n )\n\n const qb: SelectQueryBuilder<GoodsReceivalNote> = getRepository(GoodsReceivalNote).createQueryBuilder('grn')\n buildQuery(qb, params, context)\n qb.addSelect('COALESCE(\"cc\".rank, 9999)', 'rank')\n qb.leftJoinAndSelect('grn.domain', 'domain')\n qb.leftJoinAndSelect('grn.bizplace', 'bizplace')\n qb.leftJoinAndSelect('grn.creator', 'creator')\n qb.leftJoinAndSelect('grn.updater', 'updater')\n qb.innerJoinAndSelect('grn.arrivalNotice', 'arrivalNotice')\n if (orderProductsApiFilter?.value) {\n qb.innerJoinAndSelect('arrivalNotice.orderProducts', 'orderProducts')\n qb.innerJoinAndSelect('orderProducts.product', 'product')\n }\n qb.leftJoin(\n subQuery => {\n return subQuery\n .select(`ccd.rank`, 'rank')\n .addSelect(`ccd.name`, 'status')\n .from(`common_code_details`, 'ccd')\n .innerJoin(`ccd.commonCode`, 'cc')\n .where(`ccd.domain_id = :domainId`, { domainId: domain.id })\n .andWhere(`cc.name = 'GRN_STATUS'`)\n .andWhere(`cc.name = 'GAN_REQUESTS_STATUS'`)\n },\n 'cc',\n 'cc.status = arrivalNotice.status'\n )\n\n let permittedBizplaceIds = await getPermittedBizplaceIds(domain, user)\n qb.andWhere('grn.bizplace_id IN (:...bizplaceIds)', { bizplaceIds: permittedBizplaceIds })\n\n if (refNoFilter?.value) {\n qb.andWhere('arrivalNotice.ref_no ilike :refNo', { refNo: refNoFilter.value })\n }\n if (refNo2Filter?.value) {\n qb.andWhere('arrivalNotice.ref_no_2 ilike :refNo2', { refNo2: refNo2Filter.value })\n }\n if (refNo3Filter?.value) {\n qb.andWhere('arrivalNotice.ref_no_3 ilike :refNo3', { refNo3: refNo3Filter.value })\n }\n if (ganNameFilter?.value) {\n qb.andWhere('arrivalNotice.name ilike :ganName', { ganName: ganNameFilter.value })\n }\n if (bizplaceFilter?.value) {\n qb.andWhere('bizplace.name ilike :bizName', { bizName: bizplaceFilter.value })\n }\n\n if (ganStatusFilter?.value) {\n qb.andWhere('arrivalNotice.status ilike :ganStatus', { ganStatus: ganStatusFilter.value })\n }\n if (grnStatusFilter?.value) {\n qb.andWhere('grn.status ilike :grnStatus', { grnStatus: grnStatusFilter.value })\n }\n\n const arrChildSortData = ['refNo', 'refNo2', 'refNo3']\n const arrNameSortData = ['bizplace', 'arrivalNotice', 'updater']\n const arrGanStatusSortData = ['ganStatus']\n const arrGrnStatuSortData = ['status']\n const sort: OrderByCondition = (params.sortings || []).reduce(\n (acc, sort) => ({\n ...acc,\n [arrChildSortData.indexOf(sort.name) >= 0\n ? 'arrivalNotice.' + sort.name\n : arrNameSortData.indexOf(sort.name) >= 0\n ? sort.name + '.name'\n : arrGanStatusSortData.indexOf(sort.name) >= 0\n ? 'arrivalNotice.status'\n : arrGrnStatuSortData.indexOf(sort.name) >= 0\n ? 'grn.status'\n : 'grn.' + sort.name]: sort.desc ? 'DESC' : 'ASC'\n }),\n !params.sortings.some(e => e.name === 'status') ? { rank: 'ASC' } : {}\n )\n\n qb.orderBy(sort)\n\n const [items, total] = await qb.getManyAndCount()\n\n return { items, total }\n }\n\n @Query(returns => GoodsReceivalNote)\n async goodsReceivalNote(\n @Arg('name') name: string,\n @Arg('timezoneOffSet') timezoneOffSet: string,\n @Ctx() context: ResolverContext\n ): Promise<any> {\n const { domain } = context.state\n\n const foundGRN: GoodsReceivalNote = await getRepository(GoodsReceivalNote).findOne({\n where: { domain: { id: domain.id }, name },\n relations: [\n 'domain',\n 'bizplace',\n 'bizplace.domain',\n 'bizplace.company',\n 'arrivalNotice',\n 'arrivalNotice.purchaseOrder'\n ]\n })\n\n const foundGAN: ArrivalNotice = foundGRN.arrivalNotice\n const ownRefNo = foundGAN.refNo\n\n const partnerBiz: Bizplace = foundGRN.bizplace\n\n const partnerDomain: Partner = await getRepository(Partner).findOne({\n where: { partnerDomain: { id: partnerBiz.domain.id }, domain: { id: domain.id } },\n relations: ['domain']\n })\n\n const domainOwner: Domain = partnerDomain.domain\n const domainBizplace: Bizplace = await getRepository(Bizplace).findOne({\n where: { domain: { id: domainOwner.id } },\n relations: ['company']\n })\n\n const qbReducedInventory = await getRepository(ReducedInventoryHistory)\n .createQueryBuilder('ivh')\n .select('product_id', 'productId')\n .addSelect('batch_id', 'batchId')\n .addSelect('reusable_pallet_id', 'reusablePalletId')\n .addSelect('packing_type', 'packingType')\n .addSelect('sum(qty)', 'qty')\n .addSelect('sum(uom_value)', 'uomValue')\n .addSelect('uom', 'uom')\n .addSelect('count(distinct pallet_id)', 'pallet')\n .addSelect(`string_agg(distinct expiration_date::varchar,', ' order by expiration_date::varchar)`, 'expiryDate')\n .addSelect(`string_agg(distinct pallet_id::varchar,', ' order by pallet_id::varchar)`, 'palletId')\n .where('ivh.domain_id = :domainId', { domainId: domain.id })\n .andWhere('ivh.ref_order_id = :refOrderId', { refOrderId: foundGAN.id })\n .andWhere(`ivh.transaction_type = 'UNLOADING'`)\n .groupBy('reusable_pallet_id')\n .addGroupBy('product_id')\n .addGroupBy('batch_id')\n .addGroupBy('packing_type')\n .addGroupBy('uom')\n .getRawMany()\n\n // 5. find domain contact point\n const foundCP: ContactPoint = await getRepository(ContactPoint).findOne({\n where: { domain: { id: domain.id }, bizplace: { id: domainBizplace.id } }\n })\n\n const inboundInventories: any[] = await qbReducedInventory\n\n const targetProducts: OrderProduct[] = await getRepository(OrderProduct).find({\n where: {\n domain: { id: domain.id },\n arrivalNotice: { id: foundGAN.id },\n actualPalletQty: Not(IsNull()),\n actualPackQty: Not(IsNull())\n },\n relations: ['product', 'arrivalNotice', 'arrivalNotice.purchaseOrder']\n })\n\n const data = {\n grnNo: foundGRN.name,\n ganNo: foundGAN.name,\n refGANNo: foundGAN.refNo || '',\n refGANNo2: foundGAN.refNo2 || '',\n refGANNo3: foundGAN.refNo3 || '',\n companyDomain: domainBizplace.company.name,\n supplier: foundCP.name || '',\n date: foundGAN.acceptedAt ? DateTimeConverter.datetime(foundGAN.acceptedAt, timezoneOffSet) : '',\n productLists: targetProducts.map((item, idx) => {\n let unloadInvHistory = inboundInventories.find(\n ih =>\n ih.productId == item.product.id &&\n ih.batchId == item.batchId &&\n ih.packingType == item.packingType &&\n ih.uom == item.uom\n )\n\n return {\n list_no: idx + 1,\n po: item?.arrivalNotice?.purchaseOrder?.name ? item?.arrivalNotice?.purchaseOrder.name : '',\n batchNo: item.batchId || '',\n productSKU: `${item.product.sku}`,\n productName: `${item.product.name}(${item.product.description})`,\n productType: item.packingType,\n productBatch: item.batchId,\n expectedQty: item.packQty,\n actualQty: unloadInvHistory.qty || item.actualPackQty,\n actualUomValue: item.uomValue * item.actualPackQty,\n productUom: `${unloadInvHistory.uom || item.uom}`,\n expiryDate: unloadInvHistory.expiryDate || '',\n unitPrice: item.unitPrice.toFixed(2) || 0.0,\n manufactureDate: item.manufactureDate || '',\n remark: (item.remark ? item.remark : '') + (item.issue ? ' [Issue]: ' + item.issue : '')\n }\n })\n }\n\n return data\n }\n\n @FieldResolver(type => Domain)\n async domain(@Root() goodsReceivalNote: GoodsReceivalNote): Promise<Domain> {\n return await getRepository(Domain).findOneBy({ id: goodsReceivalNote.domainId })\n }\n\n @FieldResolver(type => User)\n async creator(@Root() goodsReceivalNote: GoodsReceivalNote): Promise<User> {\n return await getRepository(User).findOneBy({ id: goodsReceivalNote.creatorId })\n }\n\n @FieldResolver(type => User)\n async updater(@Root() goodsReceivalNote: GoodsReceivalNote): Promise<User> {\n return await getRepository(User).findOneBy({ id: goodsReceivalNote.updaterId })\n }\n}\n"]}
@@ -32,7 +32,7 @@ let InvoiceMutation = class InvoiceMutation {
32
32
  }
33
33
  async deleteInvoice(name, context) {
34
34
  const { tx, domain } = context.state;
35
- await tx.getRepository(invoice_1.Invoice).delete({ domain, name });
35
+ await tx.getRepository(invoice_1.Invoice).delete({ domain: { id: domain.id }, name });
36
36
  return true;
37
37
  }
38
38
  };
@@ -1 +1 @@
1
- {"version":3,"file":"invoice-mutation.js","sourceRoot":"","sources":["../../../server/service/invoice/invoice-mutation.ts"],"names":[],"mappings":"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","sourcesContent":["import { Arg, Ctx, Directive, Mutation, Resolver } from 'type-graphql'\nimport { EntityManager, Repository } from 'typeorm'\n\nimport { User } from '@things-factory/auth-base'\nimport { Domain, getRepository } from '@things-factory/shell'\n\nimport { InvoicePatch, NewInvoice } from '../'\nimport { OrderNoGenerator } from '../../utils'\nimport { InvoiceProduct } from '../invoice-product/invoice-product'\nimport { Invoice } from './invoice'\n\n@Resolver(Invoice)\nexport class InvoiceMutation {\n @Mutation(returns => Invoice)\n @Directive('@transaction')\n async createInvoice(\n @Arg('invoice', type => NewInvoice) invoice: NewInvoice,\n @Ctx() context: ResolverContext\n ): Promise<Invoice> {\n const { tx, domain, user } = context.state\n let invoiceProducts: any[] = invoice.invoiceProducts\n\n let createdInvoice: Invoice = await tx.getRepository(Invoice).save({\n ...invoice,\n domain,\n name: OrderNoGenerator.invoice(),\n // releaseGood: await tx.getRepository(ReleaseGood).findOneBy({ id: invoice?.releaseGood.id }),\n creator: user\n })\n\n await addInvoiceProducts(domain, createdInvoice, invoiceProducts, user, tx)\n\n createdInvoice = await tx.getRepository(Invoice).findOne({\n where: { domain: { id: domain.id }, id: createdInvoice.id },\n relations: ['invoiceProducts']\n })\n\n return createdInvoice\n }\n\n @Mutation(returns => Invoice)\n @Directive('@transaction')\n async updateInvoice(\n @Arg('name') name: string,\n @Arg('patch', type => InvoicePatch) patch: InvoicePatch,\n @Ctx() context: ResolverContext\n ): Promise<Invoice> {\n const { tx, domain, user } = context.state\n\n const repository = tx.getRepository(Invoice)\n const invoice = await repository.findOne({\n where: { domain: { id: domain.id }, name }\n })\n\n return await repository.save({\n ...invoice,\n ...patch,\n updater: user\n })\n }\n\n @Mutation(returns => Boolean)\n @Directive('@transaction')\n async deleteInvoice(@Arg('name') name: string, @Ctx() context: ResolverContext): Promise<boolean> {\n const { tx, domain } = context.state\n\n await tx.getRepository(Invoice).delete({ domain, name })\n return true\n }\n}\n\nexport async function addInvoiceProducts(\n domain: Domain,\n invoice: Invoice,\n invoiceProducts: any[],\n user: User,\n tx?: EntityManager\n): Promise<void> {\n const invoiceProductRepo: Repository<InvoiceProduct> =\n tx?.getRepository(InvoiceProduct) || getRepository(InvoiceProduct)\n\n const createdInvoiceProducts: InvoiceProduct[] = await Promise.all(\n invoiceProducts.map(async (invoiceProduct: InvoiceProduct) => {\n return {\n name: OrderNoGenerator.invoiceProduct(),\n ...invoiceProduct,\n domain,\n invoice,\n creator: user\n }\n })\n )\n\n await invoiceProductRepo.save(createdInvoiceProducts)\n}\n"]}
1
+ {"version":3,"file":"invoice-mutation.js","sourceRoot":"","sources":["../../../server/service/invoice/invoice-mutation.ts"],"names":[],"mappings":"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","sourcesContent":["import { Arg, Ctx, Directive, Mutation, Resolver } from 'type-graphql'\nimport { EntityManager, Repository } from 'typeorm'\n\nimport { User } from '@things-factory/auth-base'\nimport { Domain, getRepository } from '@things-factory/shell'\n\nimport { InvoicePatch, NewInvoice } from '../'\nimport { OrderNoGenerator } from '../../utils'\nimport { InvoiceProduct } from '../invoice-product/invoice-product'\nimport { Invoice } from './invoice'\n\n@Resolver(Invoice)\nexport class InvoiceMutation {\n @Mutation(returns => Invoice)\n @Directive('@transaction')\n async createInvoice(\n @Arg('invoice', type => NewInvoice) invoice: NewInvoice,\n @Ctx() context: ResolverContext\n ): Promise<Invoice> {\n const { tx, domain, user } = context.state\n let invoiceProducts: any[] = invoice.invoiceProducts\n\n let createdInvoice: Invoice = await tx.getRepository(Invoice).save({\n ...invoice,\n domain,\n name: OrderNoGenerator.invoice(),\n // releaseGood: await tx.getRepository(ReleaseGood).findOneBy({ id: invoice?.releaseGood.id }),\n creator: user\n })\n\n await addInvoiceProducts(domain, createdInvoice, invoiceProducts, user, tx)\n\n createdInvoice = await tx.getRepository(Invoice).findOne({\n where: { domain: { id: domain.id }, id: createdInvoice.id },\n relations: ['invoiceProducts']\n })\n\n return createdInvoice\n }\n\n @Mutation(returns => Invoice)\n @Directive('@transaction')\n async updateInvoice(\n @Arg('name') name: string,\n @Arg('patch', type => InvoicePatch) patch: InvoicePatch,\n @Ctx() context: ResolverContext\n ): Promise<Invoice> {\n const { tx, domain, user } = context.state\n\n const repository = tx.getRepository(Invoice)\n const invoice = await repository.findOne({\n where: { domain: { id: domain.id }, name }\n })\n\n return await repository.save({\n ...invoice,\n ...patch,\n updater: user\n })\n }\n\n @Mutation(returns => Boolean)\n @Directive('@transaction')\n async deleteInvoice(@Arg('name') name: string, @Ctx() context: ResolverContext): Promise<boolean> {\n const { tx, domain } = context.state\n\n await tx.getRepository(Invoice).delete({ domain: { id: domain.id }, name })\n return true\n }\n}\n\nexport async function addInvoiceProducts(\n domain: Domain,\n invoice: Invoice,\n invoiceProducts: any[],\n user: User,\n tx?: EntityManager\n): Promise<void> {\n const invoiceProductRepo: Repository<InvoiceProduct> =\n tx?.getRepository(InvoiceProduct) || getRepository(InvoiceProduct)\n\n const createdInvoiceProducts: InvoiceProduct[] = await Promise.all(\n invoiceProducts.map(async (invoiceProduct: InvoiceProduct) => {\n return {\n name: OrderNoGenerator.invoiceProduct(),\n ...invoiceProduct,\n domain,\n invoice,\n creator: user\n }\n })\n )\n\n await invoiceProductRepo.save(createdInvoiceProducts)\n}\n"]}
@@ -20,7 +20,7 @@ let InvoiceProductMutation = class InvoiceProductMutation {
20
20
  }
21
21
  async deleteInvoiceProduct(name, context) {
22
22
  const { domain, tx } = context.state;
23
- await tx.getRepository(invoice_product_1.InvoiceProduct).delete({ domain, name });
23
+ await tx.getRepository(invoice_product_1.InvoiceProduct).delete({ domain: { id: domain.id }, name });
24
24
  return true;
25
25
  }
26
26
  };
@@ -1 +1 @@
1
- {"version":3,"file":"invoice-product-mutation.js","sourceRoot":"","sources":["../../../server/service/invoice-product/invoice-product-mutation.ts"],"names":[],"mappings":";;;;AAAA,+CAAsE;AAEtE,wEAAmE;AACnE,mEAAgF;AAGzE,IAAM,sBAAsB,GAA5B,MAAM,sBAAsB;IAG3B,AAAN,KAAK,CAAC,oBAAoB,CAC0B,cAAiC,EAC5E,OAAwB;QAE/B,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAE1C,OAAO,MAAM,EAAE,CAAC,aAAa,CAAC,gCAAc,CAAC,CAAC,IAAI,iCAC7C,cAAc,KACjB,MAAM,EACN,OAAO,EAAE,IAAI,EACb,OAAO,EAAE,IAAI,IACb,CAAA;IACJ,CAAC;IAIK,AAAN,KAAK,CAAC,oBAAoB,CACX,IAAY,EACkB,KAA0B,EAC9D,OAAwB;QAE/B,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAE1C,MAAM,UAAU,GAAG,EAAE,CAAC,aAAa,CAAC,gCAAc,CAAC,CAAA;QACnD,MAAM,cAAc,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC;YAC9C,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE;SAC3C,CAAC,CAAA;QAEF,OAAO,MAAM,UAAU,CAAC,IAAI,+CACvB,cAAc,GACd,KAAK,KACR,OAAO,EAAE,IAAI,IACb,CAAA;IACJ,CAAC;IAIK,AAAN,KAAK,CAAC,oBAAoB,CAAc,IAAY,EAAS,OAAwB;QACnF,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEpC,MAAM,EAAE,CAAC,aAAa,CAAC,gCAAc,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;QAE/D,OAAO,IAAI,CAAA;IACb,CAAC;CACF,CAAA;AA5CO;IAFL,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,gCAAc,CAAC;IACnC,IAAA,wBAAS,EAAC,cAAc,CAAC;IAEvB,mBAAA,IAAA,kBAAG,EAAC,gBAAgB,EAAE,IAAI,CAAC,EAAE,CAAC,yCAAiB,CAAC,CAAA;IAChD,mBAAA,IAAA,kBAAG,GAAE,CAAA;;6CAD4D,yCAAiB;;kEAWpF;AAIK;IAFL,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,gCAAc,CAAC;IACnC,IAAA,wBAAS,EAAC,cAAc,CAAC;IAEvB,mBAAA,IAAA,kBAAG,EAAC,MAAM,CAAC,CAAA;IACX,mBAAA,IAAA,kBAAG,EAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,2CAAmB,CAAC,CAAA;IACzC,mBAAA,IAAA,kBAAG,GAAE,CAAA;;qDAD4C,2CAAmB;;kEAetE;AAIK;IAFL,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC;IAC5B,IAAA,wBAAS,EAAC,cAAc,CAAC;IACE,mBAAA,IAAA,kBAAG,EAAC,MAAM,CAAC,CAAA;IAAgB,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;kEAM3D;AA9CU,sBAAsB;IADlC,IAAA,uBAAQ,EAAC,gCAAc,CAAC;GACZ,sBAAsB,CA+ClC;AA/CY,wDAAsB","sourcesContent":["import { Arg, Ctx, Directive, Mutation, Resolver } from 'type-graphql'\n\nimport { InvoiceProduct } from '../invoice-product/invoice-product'\nimport { InvoiceProductPatch, NewInvoiceProduct } from './invoice-product-types'\n\n@Resolver(InvoiceProduct)\nexport class InvoiceProductMutation {\n @Mutation(returns => InvoiceProduct)\n @Directive('@transaction')\n async createInvoiceProduct(\n @Arg('invoiceProduct', type => NewInvoiceProduct) invoiceProduct: NewInvoiceProduct,\n @Ctx() context: ResolverContext\n ): Promise<InvoiceProduct> {\n const { domain, user, tx } = context.state\n\n return await tx.getRepository(InvoiceProduct).save({\n ...invoiceProduct,\n domain,\n creator: user,\n updater: user\n })\n }\n\n @Mutation(returns => InvoiceProduct)\n @Directive('@transaction')\n async updateInvoiceProduct(\n @Arg('name') name: string,\n @Arg('patch', type => InvoiceProductPatch) patch: InvoiceProductPatch,\n @Ctx() context: ResolverContext\n ): Promise<InvoiceProduct> {\n const { domain, user, tx } = context.state\n\n const repository = tx.getRepository(InvoiceProduct)\n const invoiceProduct = await repository.findOne({\n where: { domain: { id: domain.id }, name }\n })\n\n return await repository.save({\n ...invoiceProduct,\n ...patch,\n updater: user\n })\n }\n\n @Mutation(returns => Boolean)\n @Directive('@transaction')\n async deleteInvoiceProduct(@Arg('name') name: string, @Ctx() context: ResolverContext): Promise<boolean> {\n const { domain, tx } = context.state\n\n await tx.getRepository(InvoiceProduct).delete({ domain, name })\n\n return true\n }\n}\n"]}
1
+ {"version":3,"file":"invoice-product-mutation.js","sourceRoot":"","sources":["../../../server/service/invoice-product/invoice-product-mutation.ts"],"names":[],"mappings":";;;;AAAA,+CAAsE;AAEtE,wEAAmE;AACnE,mEAAgF;AAGzE,IAAM,sBAAsB,GAA5B,MAAM,sBAAsB;IAG3B,AAAN,KAAK,CAAC,oBAAoB,CAC0B,cAAiC,EAC5E,OAAwB;QAE/B,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAE1C,OAAO,MAAM,EAAE,CAAC,aAAa,CAAC,gCAAc,CAAC,CAAC,IAAI,iCAC7C,cAAc,KACjB,MAAM,EACN,OAAO,EAAE,IAAI,EACb,OAAO,EAAE,IAAI,IACb,CAAA;IACJ,CAAC;IAIK,AAAN,KAAK,CAAC,oBAAoB,CACX,IAAY,EACkB,KAA0B,EAC9D,OAAwB;QAE/B,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAE1C,MAAM,UAAU,GAAG,EAAE,CAAC,aAAa,CAAC,gCAAc,CAAC,CAAA;QACnD,MAAM,cAAc,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC;YAC9C,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE;SAC3C,CAAC,CAAA;QAEF,OAAO,MAAM,UAAU,CAAC,IAAI,+CACvB,cAAc,GACd,KAAK,KACR,OAAO,EAAE,IAAI,IACb,CAAA;IACJ,CAAC;IAIK,AAAN,KAAK,CAAC,oBAAoB,CAAc,IAAY,EAAS,OAAwB;QACnF,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEpC,MAAM,EAAE,CAAC,aAAa,CAAC,gCAAc,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAA;QAElF,OAAO,IAAI,CAAA;IACb,CAAC;CACF,CAAA;AA5CO;IAFL,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,gCAAc,CAAC;IACnC,IAAA,wBAAS,EAAC,cAAc,CAAC;IAEvB,mBAAA,IAAA,kBAAG,EAAC,gBAAgB,EAAE,IAAI,CAAC,EAAE,CAAC,yCAAiB,CAAC,CAAA;IAChD,mBAAA,IAAA,kBAAG,GAAE,CAAA;;6CAD4D,yCAAiB;;kEAWpF;AAIK;IAFL,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,gCAAc,CAAC;IACnC,IAAA,wBAAS,EAAC,cAAc,CAAC;IAEvB,mBAAA,IAAA,kBAAG,EAAC,MAAM,CAAC,CAAA;IACX,mBAAA,IAAA,kBAAG,EAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,2CAAmB,CAAC,CAAA;IACzC,mBAAA,IAAA,kBAAG,GAAE,CAAA;;qDAD4C,2CAAmB;;kEAetE;AAIK;IAFL,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC;IAC5B,IAAA,wBAAS,EAAC,cAAc,CAAC;IACE,mBAAA,IAAA,kBAAG,EAAC,MAAM,CAAC,CAAA;IAAgB,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;kEAM3D;AA9CU,sBAAsB;IADlC,IAAA,uBAAQ,EAAC,gCAAc,CAAC;GACZ,sBAAsB,CA+ClC;AA/CY,wDAAsB","sourcesContent":["import { Arg, Ctx, Directive, Mutation, Resolver } from 'type-graphql'\n\nimport { InvoiceProduct } from '../invoice-product/invoice-product'\nimport { InvoiceProductPatch, NewInvoiceProduct } from './invoice-product-types'\n\n@Resolver(InvoiceProduct)\nexport class InvoiceProductMutation {\n @Mutation(returns => InvoiceProduct)\n @Directive('@transaction')\n async createInvoiceProduct(\n @Arg('invoiceProduct', type => NewInvoiceProduct) invoiceProduct: NewInvoiceProduct,\n @Ctx() context: ResolverContext\n ): Promise<InvoiceProduct> {\n const { domain, user, tx } = context.state\n\n return await tx.getRepository(InvoiceProduct).save({\n ...invoiceProduct,\n domain,\n creator: user,\n updater: user\n })\n }\n\n @Mutation(returns => InvoiceProduct)\n @Directive('@transaction')\n async updateInvoiceProduct(\n @Arg('name') name: string,\n @Arg('patch', type => InvoiceProductPatch) patch: InvoiceProductPatch,\n @Ctx() context: ResolverContext\n ): Promise<InvoiceProduct> {\n const { domain, user, tx } = context.state\n\n const repository = tx.getRepository(InvoiceProduct)\n const invoiceProduct = await repository.findOne({\n where: { domain: { id: domain.id }, name }\n })\n\n return await repository.save({\n ...invoiceProduct,\n ...patch,\n updater: user\n })\n }\n\n @Mutation(returns => Boolean)\n @Directive('@transaction')\n async deleteInvoiceProduct(@Arg('name') name: string, @Ctx() context: ResolverContext): Promise<boolean> {\n const { domain, tx } = context.state\n\n await tx.getRepository(InvoiceProduct).delete({ domain: { id: domain.id }, name })\n\n return true\n }\n}\n"]}