@things-factory/sales-base 6.0.0-alpha.6 → 6.0.0-alpha.8

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 (97) hide show
  1. package/dist-server/controllers/ecommerce/ecommerce-controller.js +2 -2
  2. package/dist-server/controllers/ecommerce/ecommerce-controller.js.map +1 -1
  3. package/dist-server/controllers/ecommerce/sellercraft-controller.js +3 -3
  4. package/dist-server/controllers/ecommerce/sellercraft-controller.js.map +1 -1
  5. package/dist-server/service/arrival-notice/arrival-notice-mutation.js +26 -13
  6. package/dist-server/service/arrival-notice/arrival-notice-mutation.js.map +1 -1
  7. package/dist-server/service/arrival-notice/arrival-notice-query.js +2 -2
  8. package/dist-server/service/arrival-notice/arrival-notice-query.js.map +1 -1
  9. package/dist-server/service/arrival-notice/arrival-notice-types.js +4 -0
  10. package/dist-server/service/arrival-notice/arrival-notice-types.js.map +1 -1
  11. package/dist-server/service/arrival-notice/arrival-notice.js +5 -0
  12. package/dist-server/service/arrival-notice/arrival-notice.js.map +1 -1
  13. package/dist-server/service/claim/claim-mutation.js +9 -9
  14. package/dist-server/service/claim/claim-mutation.js.map +1 -1
  15. package/dist-server/service/claim/claim-query.js +4 -4
  16. package/dist-server/service/claim/claim-query.js.map +1 -1
  17. package/dist-server/service/delivery-order/delivery-order-mutation.js +1 -1
  18. package/dist-server/service/delivery-order/delivery-order-mutation.js.map +1 -1
  19. package/dist-server/service/delivery-order/delivery-order-query.js.map +1 -1
  20. package/dist-server/service/draft-release-good/draft-release-good-mutation.js +7 -5
  21. package/dist-server/service/draft-release-good/draft-release-good-mutation.js.map +1 -1
  22. package/dist-server/service/draft-release-good/draft-release-good-query.js +4 -4
  23. package/dist-server/service/draft-release-good/draft-release-good-query.js.map +1 -1
  24. package/dist-server/service/draft-release-good/draft-release-good.js +5 -0
  25. package/dist-server/service/draft-release-good/draft-release-good.js.map +1 -1
  26. package/dist-server/service/goods-receival-note/goods-receival-note-query.js +3 -3
  27. package/dist-server/service/goods-receival-note/goods-receival-note-query.js.map +1 -1
  28. package/dist-server/service/job-sheet/job-sheet-mutation.js +1 -1
  29. package/dist-server/service/job-sheet/job-sheet-mutation.js.map +1 -1
  30. package/dist-server/service/job-sheet/job-sheet-query.js +1 -1
  31. package/dist-server/service/job-sheet/job-sheet-query.js.map +1 -1
  32. package/dist-server/service/order-inventory/order-inventory-query.js +2 -2
  33. package/dist-server/service/order-inventory/order-inventory-query.js.map +1 -1
  34. package/dist-server/service/order-tote/order-tote-query.js +2 -2
  35. package/dist-server/service/order-tote/order-tote-query.js.map +1 -1
  36. package/dist-server/service/others/other-query.js +19 -11
  37. package/dist-server/service/others/other-query.js.map +1 -1
  38. package/dist-server/service/purchase-order/purchase-order-mutation.js +2 -2
  39. package/dist-server/service/purchase-order/purchase-order-mutation.js.map +1 -1
  40. package/dist-server/service/purchase-order/purchase-order-query.js +1 -1
  41. package/dist-server/service/purchase-order/purchase-order-query.js.map +1 -1
  42. package/dist-server/service/release-good/release-good-mutation.js +90 -55
  43. package/dist-server/service/release-good/release-good-mutation.js.map +1 -1
  44. package/dist-server/service/release-good/release-good-query.js +3 -3
  45. package/dist-server/service/release-good/release-good-query.js.map +1 -1
  46. package/dist-server/service/release-good/release-good.js +5 -0
  47. package/dist-server/service/release-good/release-good.js.map +1 -1
  48. package/dist-server/service/retail-replenishment-order/retail-replenishment-order-mutation.js +3 -3
  49. package/dist-server/service/retail-replenishment-order/retail-replenishment-order-mutation.js.map +1 -1
  50. package/dist-server/service/reverse-kitting-order/reverse-kitting-order-mutation.js +3 -3
  51. package/dist-server/service/reverse-kitting-order/reverse-kitting-order-mutation.js.map +1 -1
  52. package/dist-server/service/reverse-kitting-order/reverse-kitting-order-query.js +3 -3
  53. package/dist-server/service/reverse-kitting-order/reverse-kitting-order-query.js.map +1 -1
  54. package/dist-server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory-mutation.js +1 -1
  55. package/dist-server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory-mutation.js.map +1 -1
  56. package/dist-server/service/shipping-order/shipping-order-mutation.js +1 -1
  57. package/dist-server/service/shipping-order/shipping-order-mutation.js.map +1 -1
  58. package/dist-server/service/shipping-order/shipping-order-query.js +1 -1
  59. package/dist-server/service/shipping-order/shipping-order-query.js.map +1 -1
  60. package/dist-server/service/transfer-order/transfer-order-mutation.js +3 -3
  61. package/dist-server/service/transfer-order/transfer-order-mutation.js.map +1 -1
  62. package/dist-server/service/vas-order/vas-order-query.js +1 -1
  63. package/dist-server/service/vas-order/vas-order-query.js.map +1 -1
  64. package/dist-server/tsconfig.tsbuildinfo +1 -1
  65. package/package.json +13 -13
  66. package/server/controllers/ecommerce/ecommerce-controller.ts +2 -2
  67. package/server/controllers/ecommerce/sellercraft-controller.ts +3 -3
  68. package/server/service/arrival-notice/arrival-notice-mutation.ts +21 -8
  69. package/server/service/arrival-notice/arrival-notice-query.ts +2 -2
  70. package/server/service/arrival-notice/arrival-notice-types.ts +3 -0
  71. package/server/service/arrival-notice/arrival-notice.ts +4 -0
  72. package/server/service/claim/claim-mutation.ts +9 -9
  73. package/server/service/claim/claim-query.ts +4 -4
  74. package/server/service/delivery-order/delivery-order-mutation.ts +17 -17
  75. package/server/service/delivery-order/delivery-order-query.ts +1 -1
  76. package/server/service/draft-release-good/draft-release-good-mutation.ts +7 -5
  77. package/server/service/draft-release-good/draft-release-good-query.ts +4 -4
  78. package/server/service/draft-release-good/draft-release-good.ts +4 -0
  79. package/server/service/goods-receival-note/goods-receival-note-query.ts +3 -3
  80. package/server/service/job-sheet/job-sheet-mutation.ts +1 -1
  81. package/server/service/job-sheet/job-sheet-query.ts +1 -1
  82. package/server/service/order-inventory/order-inventory-query.ts +2 -2
  83. package/server/service/order-tote/order-tote-query.ts +2 -2
  84. package/server/service/others/other-query.ts +17 -9
  85. package/server/service/purchase-order/purchase-order-mutation.ts +2 -2
  86. package/server/service/purchase-order/purchase-order-query.ts +1 -1
  87. package/server/service/release-good/release-good-mutation.ts +110 -59
  88. package/server/service/release-good/release-good-query.ts +3 -3
  89. package/server/service/release-good/release-good.ts +4 -0
  90. package/server/service/retail-replenishment-order/retail-replenishment-order-mutation.ts +3 -3
  91. package/server/service/reverse-kitting-order/reverse-kitting-order-mutation.ts +3 -3
  92. package/server/service/reverse-kitting-order/reverse-kitting-order-query.ts +3 -3
  93. package/server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory-mutation.ts +1 -1
  94. package/server/service/shipping-order/shipping-order-mutation.ts +1 -1
  95. package/server/service/shipping-order/shipping-order-query.ts +1 -1
  96. package/server/service/transfer-order/transfer-order-mutation.ts +3 -3
  97. package/server/service/vas-order/vas-order-query.ts +1 -1
@@ -39,14 +39,14 @@ class EcommerceController extends order_controller_1.OrderController {
39
39
  const marketplaceStore = marketplaceStores[i];
40
40
  // get marketplace setting based on marketplace connection
41
41
  const marketplaceSetting = await this.trxMgr.getRepository(integration_marketplace_1.MarketplaceSetting).findOne({
42
- where: { marketplaceStore, category: 'stock_allocation' }
42
+ where: { marketplaceStore: { id: marketplaceStore.id }, category: 'stock_allocation' }
43
43
  });
44
44
  for (var j = 0; j < inventoryProducts.length; j++) {
45
45
  const inventoryProduct = inventoryProducts[j];
46
46
  const marketplaceProductVariations = await this.trxMgr
47
47
  .getRepository(marketplace_base_1.MarketplaceProductVariation)
48
48
  .find({
49
- where: { domain: companyDomain, sku: inventoryProduct.sku },
49
+ where: { domain: { id: companyDomain.id }, sku: inventoryProduct.sku },
50
50
  relations: ['marketplaceProduct', 'marketplaceProduct.marketplaceStore']
51
51
  });
52
52
  let storeProductVariations = marketplaceProductVariations.filter(productVariation => productVariation.marketplaceProduct.marketplaceStore.id === marketplaceStore.id);
@@ -1 +1 @@
1
- {"version":3,"file":"ecommerce-controller.js","sourceRoot":"","sources":["../../../server/controllers/ecommerce/ecommerce-controller.ts"],"names":[],"mappings":"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","sourcesContent":["import { MarketplaceSetting, MarketplaceStore, StoreAPI } from '@things-factory/integration-marketplace'\nimport { MarketplaceProductVariation } from '@things-factory/marketplace-base'\nimport { Product } from '@things-factory/product-base'\nimport { Domain } from '@things-factory/shell'\nimport { Inventory, INVENTORY_STATUS, LOCATION_TYPE } from '@things-factory/warehouse-base'\n\nimport { OrderController } from '../order-controller'\n\nexport class EcommerceController extends OrderController {\n async updateProductVariationStock(\n marketplaceStores: MarketplaceStore[],\n productIds: string[],\n companyDomain: Domain\n ): Promise<void> {\n const inventoryProducts: any[] = await Promise.all(\n productIds.map(async productId => {\n const product: Product = await this.trxMgr.getRepository(Product).findOneBy({ id: productId })\n let qb = await this.trxMgr.getRepository(Inventory).createQueryBuilder('inv')\n qb.leftJoinAndSelect('inv.location', 'loc')\n .andWhere('\"inv\".\"domain_id\" = :domainId')\n .andWhere('\"inv\".\"product_id\" = :productId')\n .andWhere('\"inv\".\"status\" != :status')\n .andWhere('\"loc\".\"type\" NOT IN (:...locationTypes)')\n .setParameters({\n domainId: this.domain.id,\n productId: product.id,\n status: INVENTORY_STATUS.TERMINATED,\n locationTypes: [LOCATION_TYPE.QUARANTINE, LOCATION_TYPE.RESERVE]\n })\n\n let inventories: Inventory[] = await qb.getMany()\n\n inventories = inventories.filter(\n inventory =>\n inventory?.location.type !== LOCATION_TYPE.QUARANTINE || inventory?.location.type !== LOCATION_TYPE.RESERVE\n )\n\n const inventoryQty: number = inventories.reduce((total, currentValue) => {\n total += currentValue.qty\n return total\n }, 0)\n\n const inventoryLockedQty: number = inventories.reduce((total, currentValue) => {\n total += currentValue.lockedQty\n return total\n }, 0)\n\n return { sku: product.sku, name: product.name, qty: inventoryQty - inventoryLockedQty }\n })\n )\n\n for (var i = 0; i < marketplaceStores.length; i++) {\n const marketplaceStore = marketplaceStores[i]\n\n // get marketplace setting based on marketplace connection\n const marketplaceSetting: MarketplaceSetting = await this.trxMgr.getRepository(MarketplaceSetting).findOne({\n where: { marketplaceStore, category: 'stock_allocation' }\n })\n\n for (var j = 0; j < inventoryProducts.length; j++) {\n const inventoryProduct = inventoryProducts[j]\n const marketplaceProductVariations: MarketplaceProductVariation[] = await this.trxMgr\n .getRepository(MarketplaceProductVariation)\n .find({\n where: { domain: companyDomain, sku: inventoryProduct.sku },\n relations: ['marketplaceProduct', 'marketplaceProduct.marketplaceStore']\n })\n\n let storeProductVariations: MarketplaceProductVariation[] = marketplaceProductVariations.filter(\n productVariation => productVariation.marketplaceProduct.marketplaceStore.id === marketplaceStore.id\n )\n\n let percentageValue: number = 100\n if (storeProductVariations) {\n for (let k = 0; k < storeProductVariations.length; k++) {\n let storeProductVariation: MarketplaceProductVariation = storeProductVariations[k]\n if (marketplaceSetting) {\n percentageValue = parseInt(marketplaceSetting.value)\n }\n\n let remainQty: number = Math.floor(\n (inventoryProduct.qty - storeProductVariation.reserveQty) * (percentageValue / 100)\n )\n if (remainQty < 0) remainQty = 0\n\n let productVariationLocationId = storeProductVariation?.locationId\n let adjustQty: number = remainQty\n\n if (marketplaceStore.platform === 'shopify') {\n let locationIds: any[] = JSON.parse(productVariationLocationId)\n adjustQty = adjustQty - storeProductVariation.qty\n if (locationIds[0]?.location_id) productVariationLocationId = locationIds[0].location_id\n }\n\n let validMarketplaceDistributors: any[] = []\n if (marketplaceStore.marketplaceDistributors) {\n validMarketplaceDistributors = marketplaceStore.marketplaceDistributors.filter(\n distributor => distributor.status === 'ACTIVE'\n )\n }\n\n await StoreAPI.updateStoreProductVariationStock(marketplaceStore, [\n {\n itemId: storeProductVariation.marketplaceProduct.itemId,\n variationId: storeProductVariation.variationId,\n variationSku: storeProductVariation.variationSku,\n qty: adjustQty,\n locationId: productVariationLocationId,\n inventoryItemId: storeProductVariation.inventoryItemId,\n distributors: validMarketplaceDistributors\n }\n ])\n\n storeProductVariation.qty = remainQty\n storeProductVariation.updater = this.user\n await this.trxMgr.getRepository(MarketplaceProductVariation).save(storeProductVariation)\n }\n }\n }\n }\n }\n}\n"]}
1
+ {"version":3,"file":"ecommerce-controller.js","sourceRoot":"","sources":["../../../server/controllers/ecommerce/ecommerce-controller.ts"],"names":[],"mappings":"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","sourcesContent":["import { MarketplaceSetting, MarketplaceStore, StoreAPI } from '@things-factory/integration-marketplace'\nimport { MarketplaceProductVariation } from '@things-factory/marketplace-base'\nimport { Product } from '@things-factory/product-base'\nimport { Domain } from '@things-factory/shell'\nimport { Inventory, INVENTORY_STATUS, LOCATION_TYPE } from '@things-factory/warehouse-base'\n\nimport { OrderController } from '../order-controller'\n\nexport class EcommerceController extends OrderController {\n async updateProductVariationStock(\n marketplaceStores: MarketplaceStore[],\n productIds: string[],\n companyDomain: Domain\n ): Promise<void> {\n const inventoryProducts: any[] = await Promise.all(\n productIds.map(async productId => {\n const product: Product = await this.trxMgr.getRepository(Product).findOneBy({ id: productId })\n let qb = await this.trxMgr.getRepository(Inventory).createQueryBuilder('inv')\n qb.leftJoinAndSelect('inv.location', 'loc')\n .andWhere('\"inv\".\"domain_id\" = :domainId')\n .andWhere('\"inv\".\"product_id\" = :productId')\n .andWhere('\"inv\".\"status\" != :status')\n .andWhere('\"loc\".\"type\" NOT IN (:...locationTypes)')\n .setParameters({\n domainId: this.domain.id,\n productId: product.id,\n status: INVENTORY_STATUS.TERMINATED,\n locationTypes: [LOCATION_TYPE.QUARANTINE, LOCATION_TYPE.RESERVE]\n })\n\n let inventories: Inventory[] = await qb.getMany()\n\n inventories = inventories.filter(\n inventory =>\n inventory?.location.type !== LOCATION_TYPE.QUARANTINE || inventory?.location.type !== LOCATION_TYPE.RESERVE\n )\n\n const inventoryQty: number = inventories.reduce((total, currentValue) => {\n total += currentValue.qty\n return total\n }, 0)\n\n const inventoryLockedQty: number = inventories.reduce((total, currentValue) => {\n total += currentValue.lockedQty\n return total\n }, 0)\n\n return { sku: product.sku, name: product.name, qty: inventoryQty - inventoryLockedQty }\n })\n )\n\n for (var i = 0; i < marketplaceStores.length; i++) {\n const marketplaceStore = marketplaceStores[i]\n\n // get marketplace setting based on marketplace connection\n const marketplaceSetting: MarketplaceSetting = await this.trxMgr.getRepository(MarketplaceSetting).findOne({\n where: { marketplaceStore: { id: marketplaceStore.id }, category: 'stock_allocation' }\n })\n\n for (var j = 0; j < inventoryProducts.length; j++) {\n const inventoryProduct = inventoryProducts[j]\n const marketplaceProductVariations: MarketplaceProductVariation[] = await this.trxMgr\n .getRepository(MarketplaceProductVariation)\n .find({\n where: { domain: { id: companyDomain.id }, sku: inventoryProduct.sku },\n relations: ['marketplaceProduct', 'marketplaceProduct.marketplaceStore']\n })\n\n let storeProductVariations: MarketplaceProductVariation[] = marketplaceProductVariations.filter(\n productVariation => productVariation.marketplaceProduct.marketplaceStore.id === marketplaceStore.id\n )\n\n let percentageValue: number = 100\n if (storeProductVariations) {\n for (let k = 0; k < storeProductVariations.length; k++) {\n let storeProductVariation: MarketplaceProductVariation = storeProductVariations[k]\n if (marketplaceSetting) {\n percentageValue = parseInt(marketplaceSetting.value)\n }\n\n let remainQty: number = Math.floor(\n (inventoryProduct.qty - storeProductVariation.reserveQty) * (percentageValue / 100)\n )\n if (remainQty < 0) remainQty = 0\n\n let productVariationLocationId = storeProductVariation?.locationId\n let adjustQty: number = remainQty\n\n if (marketplaceStore.platform === 'shopify') {\n let locationIds: any[] = JSON.parse(productVariationLocationId)\n adjustQty = adjustQty - storeProductVariation.qty\n if (locationIds[0]?.location_id) productVariationLocationId = locationIds[0].location_id\n }\n\n let validMarketplaceDistributors: any[] = []\n if (marketplaceStore.marketplaceDistributors) {\n validMarketplaceDistributors = marketplaceStore.marketplaceDistributors.filter(\n distributor => distributor.status === 'ACTIVE'\n )\n }\n\n await StoreAPI.updateStoreProductVariationStock(marketplaceStore, [\n {\n itemId: storeProductVariation.marketplaceProduct.itemId,\n variationId: storeProductVariation.variationId,\n variationSku: storeProductVariation.variationSku,\n qty: adjustQty,\n locationId: productVariationLocationId,\n inventoryItemId: storeProductVariation.inventoryItemId,\n distributors: validMarketplaceDistributors\n }\n ])\n\n storeProductVariation.qty = remainQty\n storeProductVariation.updater = this.user\n await this.trxMgr.getRepository(MarketplaceProductVariation).save(storeProductVariation)\n }\n }\n }\n }\n }\n}\n"]}
@@ -44,7 +44,7 @@ class SellercraftController extends order_controller_1.OrderController {
44
44
  const product = orderProduct.product;
45
45
  const pendingAssignOPs = await this.trxMgr.getRepository(order_product_1.OrderProduct).find({
46
46
  where: {
47
- domain: this.domain,
47
+ domain: { id: this.domain.id },
48
48
  bizplace: orderProduct.bizplace,
49
49
  product,
50
50
  status: constants_1.ORDER_PRODUCT_STATUS.PENDING_ASSIGN
@@ -130,10 +130,10 @@ class SellercraftController extends order_controller_1.OrderController {
130
130
  where: { id: sellercraft.domainId }
131
131
  });
132
132
  const customerBizplace = await this.trxMgr.getRepository(biz_base_1.Bizplace).findOne({
133
- where: { domain: sellercraftDomain }
133
+ where: { domain: { id: sellercraftDomain.id } }
134
134
  });
135
135
  const foundReleaseGood = await this.trxMgr.getRepository(release_good_1.ReleaseGood).findOne({
136
- where: { bizplace: customerBizplace, refNo, refNo2 }
136
+ where: { bizplace: { id: customerBizplace.id }, refNo, refNo2 }
137
137
  });
138
138
  if (foundReleaseGood)
139
139
  throw new Error('Existing release order found, kindly use update release order API if you tend to update the order information');
@@ -1 +1 @@
1
- {"version":3,"file":"sellercraft-controller.js","sourceRoot":"","sources":["../../../server/controllers/ecommerce/sellercraft-controller.ts"],"names":[],"mappings":"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","sourcesContent":["import { Bizplace } from '@things-factory/biz-base'\nimport { Sellercraft, SellercraftAPI } from '@things-factory/integration-sellercraft'\nimport { Product, ProductDetail } from '@things-factory/product-base'\nimport { Domain } from '@things-factory/shell'\nimport { Inventory, INVENTORY_STATUS, LOCATION_TYPE } from '@things-factory/warehouse-base'\n\nimport { ORDER_PRODUCT_STATUS } from '../../constants'\nimport { OrderProduct } from '../../service/order-product/order-product'\nimport { ReleaseGood } from '../../service/release-good/release-good'\nimport { OrderController } from '../order-controller'\n\nexport class SellercraftController extends OrderController {\n async packOrder(sellercraft: Sellercraft, releaseGood: ReleaseGood): Promise<ReleaseGood> {\n let sellercraftSetting: any = sellercraft.sellercraftSetting\n let disablePackOrder: boolean =\n sellercraftSetting?.disablePackOrder && sellercraftSetting?.disablePackOrder == 1 ? true : false\n\n if (!disablePackOrder) {\n const orderProducts: OrderProduct[] = releaseGood.orderProducts\n let sellercraftOPs: any[] = []\n\n sellercraftOPs = orderProducts.map(orderProduct => {\n const product: Product = orderProduct.product\n\n return {\n sku: product.sku,\n releaseQty: orderProduct.releaseQty,\n uom: 'EA'\n }\n })\n\n const orderInformation: any = {\n accountId: sellercraft.accountId,\n orderId: releaseGood.refNo2,\n sellercraftOPs\n }\n const packageId: string = await SellercraftAPI.packMarketplaceOrder(sellercraft, {\n ...orderInformation,\n context: { state: { domain: this?.domain, user: this?.user } }\n })\n\n releaseGood.packageId = packageId\n releaseGood.updater = this.user\n }\n\n return releaseGood\n }\n\n async updateSellercraftStock(sellercraft: Sellercraft, orderProducts: OrderProduct[], type: string): Promise<void> {\n let sellercraftSetting: any = sellercraft.sellercraftSetting\n let disableUpdateStock: boolean =\n sellercraftSetting?.disableUpdateStock && sellercraftSetting?.disableUpdateStock == 1 ? true : false\n\n if (!disableUpdateStock) {\n for (var i = 0; i < orderProducts.length; i++) {\n const orderProduct: OrderProduct = orderProducts[i]\n\n const product: Product = orderProduct.product\n const pendingAssignOPs: OrderProduct[] = await this.trxMgr.getRepository(OrderProduct).find({\n where: {\n domain: this.domain,\n bizplace: orderProduct.bizplace,\n product,\n status: ORDER_PRODUCT_STATUS.PENDING_ASSIGN\n }\n })\n\n const productDetails: ProductDetail[] = product.productDetails\n\n let totalUnassignReleaseQty: number = 0\n if (pendingAssignOPs?.length) {\n totalUnassignReleaseQty = pendingAssignOPs.reduce((total, currentValue) => {\n total += currentValue.releaseQty\n return total\n }, 0)\n }\n\n let qb = await this.trxMgr.getRepository(Inventory).createQueryBuilder('inv')\n qb.leftJoinAndSelect('inv.location', 'loc')\n .andWhere('\"inv\".\"domain_id\" = :domainId')\n .andWhere('\"inv\".\"product_id\" = :productId')\n .andWhere('\"inv\".\"bizplace_id\" = :bizplaceId')\n .andWhere('\"inv\".\"status\" = :status')\n .andWhere('\"loc\".\"type\" NOT IN (:...locationTypes)')\n .setParameters({\n domainId: this.domain.id,\n productId: product.id,\n bizplaceId: orderProduct.bizplace.id,\n status: INVENTORY_STATUS.STORED,\n locationTypes: [LOCATION_TYPE.QUARANTINE, LOCATION_TYPE.RESERVE]\n })\n\n let inventories: Inventory[] = await qb.getMany()\n\n let defaultProductDetail: ProductDetail\n const sellercraftInvs: any[] = await Promise.all(\n inventories.map(async (inventory: Inventory) => {\n const inventoryPackingType: string = inventory.packingType\n defaultProductDetail = product.productDetails.find(productDetail => productDetail.isDefault)\n\n let packingSize: number = 1\n if (inventoryPackingType !== defaultProductDetail.packingType) {\n const unmatchingProductDetail: ProductDetail = product.productDetails.find(\n productDetail => productDetail.packingType === inventoryPackingType\n )\n\n packingSize = await this.getChildPackingSize(\n productDetails,\n defaultProductDetail,\n unmatchingProductDetail\n )\n if (packingSize == 0) packingSize = 1\n }\n\n return { totalQty: inventory.qty * packingSize, totalLockedQty: inventory.lockedQty * packingSize }\n })\n )\n\n let inventoryTotalQty: number = sellercraftInvs.reduce((total, currentValue) => {\n total += currentValue.totalQty\n return total\n }, 0)\n\n let inventoryTotalLockedQty: number = sellercraftInvs.reduce((total, currentValue) => {\n total += currentValue.totalLockedQty\n return total\n }, 0)\n\n switch (type) {\n case 'CONFIRM_ORDER':\n inventoryTotalQty -= totalUnassignReleaseQty\n break\n }\n\n const sellercraftInv: any[] = [\n {\n sku: product.sku,\n gtin: defaultProductDetail.gtin,\n stock: {\n quantity_total: inventoryTotalQty,\n quantity_reserved: inventoryTotalLockedQty,\n unit_of_measure: 'EA'\n },\n package_weight_gm: defaultProductDetail.nettWeight < 1 ? 1 : defaultProductDetail.nettWeight,\n package_dimensions: {\n length_mm: defaultProductDetail.depth < 1 ? 1 : defaultProductDetail.depth,\n width_mm: defaultProductDetail.width < 1 ? 1 : defaultProductDetail.width,\n height_mm: defaultProductDetail.height < 1 ? 1 : defaultProductDetail.height\n }\n }\n ]\n\n await SellercraftAPI.updateProduct(sellercraft, {\n context: { state: { domain: this?.domain, user: this?.user } },\n accountId: sellercraft.accountId,\n sellercraftInv\n })\n }\n }\n }\n\n async checkExistingReleaseGood(sellercraft: Sellercraft, releaseGood: ReleaseGood): Promise<void> {\n const { refNo, refNo2 } = releaseGood\n\n const sellercraftDomain: Domain = await this.trxMgr.getRepository(Domain).findOne({\n where: { id: sellercraft.domainId }\n })\n\n const customerBizplace: Bizplace = await this.trxMgr.getRepository(Bizplace).findOne({\n where: { domain: sellercraftDomain }\n })\n\n const foundReleaseGood: ReleaseGood = await this.trxMgr.getRepository(ReleaseGood).findOne({\n where: { bizplace: customerBizplace, refNo, refNo2 }\n })\n\n if (foundReleaseGood)\n throw new Error(\n 'Existing release order found, kindly use update release order API if you tend to update the order information'\n )\n }\n}\n"]}
1
+ {"version":3,"file":"sellercraft-controller.js","sourceRoot":"","sources":["../../../server/controllers/ecommerce/sellercraft-controller.ts"],"names":[],"mappings":"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","sourcesContent":["import { Bizplace } from '@things-factory/biz-base'\nimport { Sellercraft, SellercraftAPI } from '@things-factory/integration-sellercraft'\nimport { Product, ProductDetail } from '@things-factory/product-base'\nimport { Domain } from '@things-factory/shell'\nimport { Inventory, INVENTORY_STATUS, LOCATION_TYPE } from '@things-factory/warehouse-base'\n\nimport { ORDER_PRODUCT_STATUS } from '../../constants'\nimport { OrderProduct } from '../../service/order-product/order-product'\nimport { ReleaseGood } from '../../service/release-good/release-good'\nimport { OrderController } from '../order-controller'\n\nexport class SellercraftController extends OrderController {\n async packOrder(sellercraft: Sellercraft, releaseGood: ReleaseGood): Promise<ReleaseGood> {\n let sellercraftSetting: any = sellercraft.sellercraftSetting\n let disablePackOrder: boolean =\n sellercraftSetting?.disablePackOrder && sellercraftSetting?.disablePackOrder == 1 ? true : false\n\n if (!disablePackOrder) {\n const orderProducts: OrderProduct[] = releaseGood.orderProducts\n let sellercraftOPs: any[] = []\n\n sellercraftOPs = orderProducts.map(orderProduct => {\n const product: Product = orderProduct.product\n\n return {\n sku: product.sku,\n releaseQty: orderProduct.releaseQty,\n uom: 'EA'\n }\n })\n\n const orderInformation: any = {\n accountId: sellercraft.accountId,\n orderId: releaseGood.refNo2,\n sellercraftOPs\n }\n const packageId: string = await SellercraftAPI.packMarketplaceOrder(sellercraft, {\n ...orderInformation,\n context: { state: { domain: this?.domain, user: this?.user } }\n })\n\n releaseGood.packageId = packageId\n releaseGood.updater = this.user\n }\n\n return releaseGood\n }\n\n async updateSellercraftStock(sellercraft: Sellercraft, orderProducts: OrderProduct[], type: string): Promise<void> {\n let sellercraftSetting: any = sellercraft.sellercraftSetting\n let disableUpdateStock: boolean =\n sellercraftSetting?.disableUpdateStock && sellercraftSetting?.disableUpdateStock == 1 ? true : false\n\n if (!disableUpdateStock) {\n for (var i = 0; i < orderProducts.length; i++) {\n const orderProduct: OrderProduct = orderProducts[i]\n\n const product: Product = orderProduct.product\n const pendingAssignOPs: OrderProduct[] = await this.trxMgr.getRepository(OrderProduct).find({\n where: {\n domain: { id: this.domain.id },\n bizplace: orderProduct.bizplace,\n product,\n status: ORDER_PRODUCT_STATUS.PENDING_ASSIGN\n }\n })\n\n const productDetails: ProductDetail[] = product.productDetails\n\n let totalUnassignReleaseQty: number = 0\n if (pendingAssignOPs?.length) {\n totalUnassignReleaseQty = pendingAssignOPs.reduce((total, currentValue) => {\n total += currentValue.releaseQty\n return total\n }, 0)\n }\n\n let qb = await this.trxMgr.getRepository(Inventory).createQueryBuilder('inv')\n qb.leftJoinAndSelect('inv.location', 'loc')\n .andWhere('\"inv\".\"domain_id\" = :domainId')\n .andWhere('\"inv\".\"product_id\" = :productId')\n .andWhere('\"inv\".\"bizplace_id\" = :bizplaceId')\n .andWhere('\"inv\".\"status\" = :status')\n .andWhere('\"loc\".\"type\" NOT IN (:...locationTypes)')\n .setParameters({\n domainId: this.domain.id,\n productId: product.id,\n bizplaceId: orderProduct.bizplace.id,\n status: INVENTORY_STATUS.STORED,\n locationTypes: [LOCATION_TYPE.QUARANTINE, LOCATION_TYPE.RESERVE]\n })\n\n let inventories: Inventory[] = await qb.getMany()\n\n let defaultProductDetail: ProductDetail\n const sellercraftInvs: any[] = await Promise.all(\n inventories.map(async (inventory: Inventory) => {\n const inventoryPackingType: string = inventory.packingType\n defaultProductDetail = product.productDetails.find(productDetail => productDetail.isDefault)\n\n let packingSize: number = 1\n if (inventoryPackingType !== defaultProductDetail.packingType) {\n const unmatchingProductDetail: ProductDetail = product.productDetails.find(\n productDetail => productDetail.packingType === inventoryPackingType\n )\n\n packingSize = await this.getChildPackingSize(\n productDetails,\n defaultProductDetail,\n unmatchingProductDetail\n )\n if (packingSize == 0) packingSize = 1\n }\n\n return { totalQty: inventory.qty * packingSize, totalLockedQty: inventory.lockedQty * packingSize }\n })\n )\n\n let inventoryTotalQty: number = sellercraftInvs.reduce((total, currentValue) => {\n total += currentValue.totalQty\n return total\n }, 0)\n\n let inventoryTotalLockedQty: number = sellercraftInvs.reduce((total, currentValue) => {\n total += currentValue.totalLockedQty\n return total\n }, 0)\n\n switch (type) {\n case 'CONFIRM_ORDER':\n inventoryTotalQty -= totalUnassignReleaseQty\n break\n }\n\n const sellercraftInv: any[] = [\n {\n sku: product.sku,\n gtin: defaultProductDetail.gtin,\n stock: {\n quantity_total: inventoryTotalQty,\n quantity_reserved: inventoryTotalLockedQty,\n unit_of_measure: 'EA'\n },\n package_weight_gm: defaultProductDetail.nettWeight < 1 ? 1 : defaultProductDetail.nettWeight,\n package_dimensions: {\n length_mm: defaultProductDetail.depth < 1 ? 1 : defaultProductDetail.depth,\n width_mm: defaultProductDetail.width < 1 ? 1 : defaultProductDetail.width,\n height_mm: defaultProductDetail.height < 1 ? 1 : defaultProductDetail.height\n }\n }\n ]\n\n await SellercraftAPI.updateProduct(sellercraft, {\n context: { state: { domain: this?.domain, user: this?.user } },\n accountId: sellercraft.accountId,\n sellercraftInv\n })\n }\n }\n }\n\n async checkExistingReleaseGood(sellercraft: Sellercraft, releaseGood: ReleaseGood): Promise<void> {\n const { refNo, refNo2 } = releaseGood\n\n const sellercraftDomain: Domain = await this.trxMgr.getRepository(Domain).findOne({\n where: { id: sellercraft.domainId }\n })\n\n const customerBizplace: Bizplace = await this.trxMgr.getRepository(Bizplace).findOne({\n where: { domain: { id: sellercraftDomain.id } }\n })\n\n const foundReleaseGood: ReleaseGood = await this.trxMgr.getRepository(ReleaseGood).findOne({\n where: { bizplace: { id: customerBizplace.id }, refNo, refNo2 }\n })\n\n if (foundReleaseGood)\n throw new Error(\n 'Existing release order found, kindly use update release order API if you tend to update the order information'\n )\n }\n}\n"]}
@@ -126,7 +126,7 @@ let ArrivalNoticeMutation = class ArrivalNoticeMutation {
126
126
  const { domain, tx } = context.state;
127
127
  let existingArrivalNotice = await tx
128
128
  .getRepository(arrival_notice_1.ArrivalNotice)
129
- .findOne({ where: { name: arrivalNotice.name, domain } });
129
+ .findOne({ where: { name: arrivalNotice.name, domain: { id: domain.id } } });
130
130
  if (!existingArrivalNotice) {
131
131
  throw new Error('Existing Arrival Notice not found.');
132
132
  }
@@ -156,7 +156,11 @@ let ArrivalNoticeMutation = class ArrivalNoticeMutation {
156
156
  where: { domain: { id: domain.id }, category: 'id-rule', name: 'gan-order-processing' }
157
157
  });
158
158
  const partnerGanProcessingSetting = await tx.getRepository(setting_base_1.PartnerSetting).findOne({
159
- where: { setting: ganProcessingSetting, domain, partnerDomain: foundBizplace.domain.id }
159
+ where: {
160
+ setting: { id: ganProcessingSetting.id },
161
+ domain: { id: domain.id },
162
+ partnerDomain: { id: foundBizplace.domain.id }
163
+ }
160
164
  });
161
165
  // If status of GAN is PENDING_RECEIVE then directly to assign warehouse
162
166
  if (ganProcessingSetting) {
@@ -360,7 +364,7 @@ async function deleteArrivalNotice(tx, name, user, domain) {
360
364
  throw new Error(`Arrival notice doesn't exists.`);
361
365
  const foundJS = await tx.getRepository(job_sheet_1.JobSheet).findOne({
362
366
  where: {
363
- bizplace: foundArrivalNotice.bizplace,
367
+ bizplace: { id: foundArrivalNotice.bizplace.id },
364
368
  arrivalNoticeRefNo: foundArrivalNotice.name
365
369
  }
366
370
  });
@@ -422,9 +426,10 @@ async function generateArrivalNoticeFunction(_, arrivalNotice, fromPo, files, co
422
426
  else
423
427
  myBizplace = await (0, biz_base_1.getMyBizplace)(domain, user);
424
428
  if (arrivalNotice.supplier) {
425
- const supplier = await tx
426
- .getRepository(biz_base_1.ContactPoint)
427
- .findOne({ where: { bizplace: arrivalNotice.supplier, domain }, relations: ['bizplace'] });
429
+ const supplier = await tx.getRepository(biz_base_1.ContactPoint).findOne({
430
+ where: { bizplace: { id: arrivalNotice.supplier.id }, domain: { id: domain.id } },
431
+ relations: ['bizplace']
432
+ });
428
433
  if (!supplier)
429
434
  throw new Error('contact point does not exist');
430
435
  arrivalNotice.supplier = supplier;
@@ -474,7 +479,7 @@ async function generateArrivalNoticeFunction(_, arrivalNotice, fromPo, files, co
474
479
  }
475
480
  exports.generateArrivalNoticeFunction = generateArrivalNoticeFunction;
476
481
  async function confirmArrivalNoticeFunction(name, context, tx) {
477
- var _a, _b;
482
+ var _a, _b, _c;
478
483
  const { user, domain } = context.state;
479
484
  const foundArrivalNotice = await tx.getRepository(arrival_notice_1.ArrivalNotice).findOne({
480
485
  where: { domain: { id: domain.id }, name, status: constants_1.ORDER_STATUS.PENDING },
@@ -502,7 +507,11 @@ async function confirmArrivalNoticeFunction(name, context, tx) {
502
507
  where: { domain: { id: domain.id }, category: 'id-rule', name: 'gan-order-processing' }
503
508
  });
504
509
  const partnerGanProcessingSetting = await tx.getRepository(setting_base_1.PartnerSetting).findOne({
505
- where: { setting: ganProcessingSetting, domain, partnerDomain: customerBizplace === null || customerBizplace === void 0 ? void 0 : customerBizplace.domain }
510
+ where: {
511
+ setting: { id: ganProcessingSetting.id },
512
+ domain: { id: domain.id },
513
+ partnerDomain: { id: (_a = customerBizplace === null || customerBizplace === void 0 ? void 0 : customerBizplace.domain) === null || _a === void 0 ? void 0 : _a.id }
514
+ }
506
515
  });
507
516
  // If status of GAN is PENDING_RECEIVE then directly to assign warehouse
508
517
  if (ganProcessingSetting) {
@@ -535,7 +544,7 @@ async function confirmArrivalNoticeFunction(name, context, tx) {
535
544
  }
536
545
  // notification logics
537
546
  // get Office Admin Users
538
- if (((_a = context === null || context === void 0 ? void 0 : context.state) === null || _a === void 0 ? void 0 : _a.type) != 'api') {
547
+ if (((_b = context === null || context === void 0 ? void 0 : context.state) === null || _b === void 0 ? void 0 : _b.type) != 'api') {
539
548
  const users = await tx
540
549
  .getRepository('users_roles')
541
550
  .createQueryBuilder('ur')
@@ -552,7 +561,7 @@ async function confirmArrivalNoticeFunction(name, context, tx) {
552
561
  })
553
562
  .getRawMany();
554
563
  // send notification to Office Admin Users
555
- if ((users === null || users === void 0 ? void 0 : users.length) && ((_b = context.header) === null || _b === void 0 ? void 0 : _b.referer)) {
564
+ if ((users === null || users === void 0 ? void 0 : users.length) && ((_c = context.header) === null || _c === void 0 ? void 0 : _c.referer)) {
556
565
  const receivers = users.map(user => user.id);
557
566
  const msg = {
558
567
  title: `New Arrival Notice from ${customerBizplace.name}`,
@@ -573,7 +582,7 @@ async function confirmArrivalNoticeFunction(name, context, tx) {
573
582
  }
574
583
  exports.confirmArrivalNoticeFunction = confirmArrivalNoticeFunction;
575
584
  async function receiveArrivalNoticeFunction(_, name, context) {
576
- var _a;
585
+ var _a, _b;
577
586
  const { user, domain, tx } = context.state;
578
587
  try {
579
588
  const foundArrivalNotice = await tx.getRepository(arrival_notice_1.ArrivalNotice).findOne({
@@ -594,7 +603,11 @@ async function receiveArrivalNoticeFunction(_, name, context) {
594
603
  where: { domain: { id: domain.id }, category: 'id-rule', name: 'gan-order-processing' }
595
604
  });
596
605
  const partnerGanProcessingSetting = await tx.getRepository(setting_base_1.PartnerSetting).findOne({
597
- where: { setting: ganProcessingSetting, domain, partnerDomain: customerBizplace === null || customerBizplace === void 0 ? void 0 : customerBizplace.domain }
606
+ where: {
607
+ setting: { id: ganProcessingSetting.id },
608
+ domain: { id: domain.id },
609
+ partnerDomain: { id: (_a = customerBizplace === null || customerBizplace === void 0 ? void 0 : customerBizplace.domain) === null || _a === void 0 ? void 0 : _a.id }
610
+ }
598
611
  });
599
612
  // If status of GAN is INTRANSIT then directly to assign warehouse
600
613
  if (ganProcessingSetting) {
@@ -632,7 +645,7 @@ async function receiveArrivalNoticeFunction(_, name, context) {
632
645
  // notification logics
633
646
  const users = await (0, biz_base_1.getDomainUsers)(foundArrivalNotice === null || foundArrivalNotice === void 0 ? void 0 : foundArrivalNotice.bizplace, tx);
634
647
  // send notification to Customer Users
635
- if ((users === null || users === void 0 ? void 0 : users.length) && ((_a = context.header) === null || _a === void 0 ? void 0 : _a.referer)) {
648
+ if ((users === null || users === void 0 ? void 0 : users.length) && ((_b = context.header) === null || _b === void 0 ? void 0 : _b.referer)) {
636
649
  const receivers = users.map(user => user.id);
637
650
  const msg = {
638
651
  title: `Latest status for ${foundArrivalNotice.name}`,