@things-factory/operato-hub 4.3.3 → 4.3.6

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.
@@ -5,57 +5,63 @@ const biz_base_1 = require("@things-factory/biz-base");
5
5
  const integration_fulfillment_1 = require("@things-factory/integration-fulfillment");
6
6
  const integration_sellercraft_1 = require("@things-factory/integration-sellercraft");
7
7
  const product_base_1 = require("@things-factory/product-base");
8
+ const env_1 = require("@things-factory/env");
8
9
  exports.syncProductsToSellercraftResolver = {
9
10
  async syncProductsToSellercraft(_, { sellercraftId, fulfillmentCenterId }, context) {
10
- const { domain, tx } = context.state;
11
- let page = 1;
12
- let hasMorePage = true;
13
- const limit = 50;
14
- const sellercraft = await tx
15
- .getRepository(integration_sellercraft_1.Sellercraft)
16
- .findOne({ where: { id: sellercraftId }, relations: ['domain'] });
17
- const customerDomain = sellercraft.domain;
18
- const fulfilmentCenter = await integration_fulfillment_1.FulfillmentAPI.getFulfillmentCenter(fulfillmentCenterId);
19
- const customerBizplace = await tx.getRepository(biz_base_1.Bizplace).findOne({ where: { domain: customerDomain } });
20
- while (hasMorePage) {
21
- const { items, total } = await integration_fulfillment_1.FulfillmentAPI.getInventoryProductGroupOpenAPI(fulfilmentCenter, {
22
- warehouseId: customerBizplace.id,
23
- paginationEntriesPerPage: limit,
24
- paginationOffset: page
25
- });
26
- let sellercraftInv = [];
27
- await Promise.all(items.map(async (item) => {
28
- const product = await tx.getRepository(product_base_1.Product).findOne({
29
- where: { domain, sku: item.productSKU },
30
- relations: ['productDetails', 'productDetails.childProductDetail']
11
+ try {
12
+ const { domain, tx } = context.state;
13
+ let page = 1;
14
+ let hasMorePage = true;
15
+ const limit = 50;
16
+ const sellercraft = await tx
17
+ .getRepository(integration_sellercraft_1.Sellercraft)
18
+ .findOne({ where: { id: sellercraftId }, relations: ['domain'] });
19
+ const customerDomain = sellercraft.domain;
20
+ const fulfilmentCenter = await integration_fulfillment_1.FulfillmentAPI.getFulfillmentCenter(fulfillmentCenterId);
21
+ const customerBizplace = await tx.getRepository(biz_base_1.Bizplace).findOne({ where: { domain: customerDomain } });
22
+ while (hasMorePage) {
23
+ const { items, total } = await integration_fulfillment_1.FulfillmentAPI.getInventoryProductGroupOpenAPI(fulfilmentCenter, {
24
+ warehouseId: customerBizplace.id,
25
+ paginationEntriesPerPage: limit,
26
+ paginationOffset: page
31
27
  });
32
- const productDetails = product.productDetails;
33
- const defaultProductDetail = productDetails.find(productDetail => productDetail.isDefault);
34
- let packingSize = 1;
35
- sellercraftInv.push({
36
- sku: item.productSKU,
37
- gtin: (defaultProductDetail === null || defaultProductDetail === void 0 ? void 0 : defaultProductDetail.gtin) ? defaultProductDetail.gtin : '',
38
- stock: {
39
- quantity_total: item.totalQty * packingSize,
40
- quantity_reserved: item.totalLockedQty * packingSize,
41
- unit_of_measure: 'EA'
42
- },
43
- package_weight_gm: defaultProductDetail.nettWeight < 1 ? 1 : defaultProductDetail.nettWeight,
44
- package_dimensions: {
45
- length_mm: defaultProductDetail.depth < 1 ? 1 : defaultProductDetail.depth,
46
- width_mm: defaultProductDetail.width < 1 ? 1 : defaultProductDetail.width,
47
- height_mm: defaultProductDetail.height < 1 ? 1 : defaultProductDetail.height
48
- }
49
- });
50
- }));
51
- const delay = (ms) => {
52
- return new Promise(resolve => setTimeout(resolve, ms));
53
- };
54
- await delay(5000);
55
- await integration_sellercraft_1.SellercraftAPI.updateProduct(sellercraft, { accountId: sellercraft.accountId, sellercraftInv });
56
- if ((sellercraftInv === null || sellercraftInv === void 0 ? void 0 : sellercraftInv.length) != 0 && (sellercraftInv === null || sellercraftInv === void 0 ? void 0 : sellercraftInv.length) < total)
57
- page++;
58
- hasMorePage = Boolean((sellercraftInv === null || sellercraftInv === void 0 ? void 0 : sellercraftInv.length) != 0 && (sellercraftInv === null || sellercraftInv === void 0 ? void 0 : sellercraftInv.length) < total);
28
+ let sellercraftInv = [];
29
+ await Promise.all(items.map(async (item) => {
30
+ const product = await tx.getRepository(product_base_1.Product).findOne({
31
+ where: { domain, sku: item.productSKU },
32
+ relations: ['productDetails', 'productDetails.childProductDetail']
33
+ });
34
+ const productDetails = product.productDetails;
35
+ const defaultProductDetail = productDetails.find(productDetail => productDetail.isDefault);
36
+ let packingSize = 1;
37
+ sellercraftInv.push({
38
+ sku: item.productSKU,
39
+ gtin: (defaultProductDetail === null || defaultProductDetail === void 0 ? void 0 : defaultProductDetail.gtin) ? defaultProductDetail.gtin : '',
40
+ stock: {
41
+ quantity_total: item.totalQty * packingSize,
42
+ quantity_reserved: item.totalLockedQty * packingSize,
43
+ unit_of_measure: 'EA'
44
+ },
45
+ package_weight_gm: defaultProductDetail.nettWeight < 1 ? 1 : defaultProductDetail.nettWeight,
46
+ package_dimensions: {
47
+ length_mm: defaultProductDetail.depth < 1 ? 1 : defaultProductDetail.depth,
48
+ width_mm: defaultProductDetail.width < 1 ? 1 : defaultProductDetail.width,
49
+ height_mm: defaultProductDetail.height < 1 ? 1 : defaultProductDetail.height
50
+ }
51
+ });
52
+ }));
53
+ const delay = (ms) => {
54
+ return new Promise(resolve => setTimeout(resolve, ms));
55
+ };
56
+ await delay(5000);
57
+ await integration_sellercraft_1.SellercraftAPI.updateProduct(sellercraft, { accountId: sellercraft.accountId, sellercraftInv });
58
+ if ((sellercraftInv === null || sellercraftInv === void 0 ? void 0 : sellercraftInv.length) != 0 && (sellercraftInv === null || sellercraftInv === void 0 ? void 0 : sellercraftInv.length) < total)
59
+ page++;
60
+ hasMorePage = Boolean((sellercraftInv === null || sellercraftInv === void 0 ? void 0 : sellercraftInv.length) != 0 && (sellercraftInv === null || sellercraftInv === void 0 ? void 0 : sellercraftInv.length) < total);
61
+ }
62
+ }
63
+ catch (e) {
64
+ env_1.logger.error(`syncProductsToSellercraftResolver: ${e}`);
59
65
  }
60
66
  }
61
67
  };
@@ -1 +1 @@
1
- {"version":3,"file":"sync-products-to-sellercraft.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/synchronization/sync-products-to-sellercraft.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sync-products-to-sellercraft.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/synchronization/sync-products-to-sellercraft.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@things-factory/operato-hub",
3
- "version": "4.3.3",
3
+ "version": "4.3.6",
4
4
  "main": "dist-server/index.js",
5
5
  "browser": "client/index.js",
6
6
  "things-factory": true,
@@ -80,17 +80,17 @@
80
80
  "@things-factory/integration-accounting": "^4.3.2",
81
81
  "@things-factory/integration-fulfillment": "^4.3.2",
82
82
  "@things-factory/integration-lmd": "^4.3.2",
83
- "@things-factory/integration-marketplace": "^4.3.2",
83
+ "@things-factory/integration-marketplace": "^4.3.6",
84
84
  "@things-factory/integration-pos": "^4.3.2",
85
- "@things-factory/integration-sellercraft": "^4.3.2",
86
- "@things-factory/integration-sftp": "^4.3.2",
85
+ "@things-factory/integration-sellercraft": "^4.3.6",
86
+ "@things-factory/integration-sftp": "^4.3.5",
87
87
  "@things-factory/lite-menu": "^4.3.2",
88
88
  "@things-factory/more-ui": "^4.3.2",
89
89
  "@things-factory/notification": "^4.3.2",
90
90
  "@things-factory/pdf": "^4.3.2",
91
91
  "@things-factory/product-ui": "^4.3.2",
92
92
  "@things-factory/resource-ui": "^4.3.2",
93
- "@things-factory/sales-base": "^4.3.3",
93
+ "@things-factory/sales-base": "^4.3.6",
94
94
  "@things-factory/scene-data-transform": "^4.3.2",
95
95
  "@things-factory/scene-excel": "^4.3.2",
96
96
  "@things-factory/scene-firebase": "^4.3.2",
@@ -105,8 +105,8 @@
105
105
  "@things-factory/setting-ui": "^4.3.2",
106
106
  "@things-factory/shell": "^4.3.2",
107
107
  "@things-factory/system-ui": "^4.3.2",
108
- "@things-factory/warehouse-base": "^4.3.2",
109
- "@things-factory/worksheet-base": "^4.3.3",
108
+ "@things-factory/warehouse-base": "^4.3.6",
109
+ "@things-factory/worksheet-base": "^4.3.6",
110
110
  "koa2-swagger-ui": "^5.0.2",
111
111
  "swagger-jsdoc": "^5.0.0",
112
112
  "yamljs": "^0.3.0"
@@ -117,5 +117,5 @@
117
117
  "resolutions": {
118
118
  "core-js": "^3.16.0"
119
119
  },
120
- "gitHead": "c25fcc3b8d075c2f585772a32a1c2440ea6e76de"
120
+ "gitHead": "4bac4b99239169cd2daa6e92a69bde75af7494df"
121
121
  }
@@ -5,6 +5,7 @@ import { FulfillmentAPI, FulfillmentCenter } from '@things-factory/integration-f
5
5
  import { Sellercraft, SellercraftAPI } from '@things-factory/integration-sellercraft'
6
6
  import { Product, ProductDetail } from '@things-factory/product-base'
7
7
  import { Domain } from '@things-factory/shell'
8
+ import { logger } from '@things-factory/env'
8
9
 
9
10
  export const syncProductsToSellercraftResolver = {
10
11
  async syncProductsToSellercraft(
@@ -15,67 +16,71 @@ export const syncProductsToSellercraftResolver = {
15
16
  }: { sellercraftId: string; fulfillmentCenterId: string; toCreateSku: boolean },
16
17
  context: any
17
18
  ): Promise<void> {
18
- const { domain, tx }: { domain: Domain; tx: EntityManager } = context.state
19
-
20
- let page: number = 1
21
- let hasMorePage: boolean = true
22
- const limit: number = 50
23
-
24
- const sellercraft: Sellercraft = await tx
25
- .getRepository(Sellercraft)
26
- .findOne({ where: { id: sellercraftId }, relations: ['domain'] })
27
- const customerDomain: Domain = sellercraft.domain
28
- const fulfilmentCenter: FulfillmentCenter = await FulfillmentAPI.getFulfillmentCenter(fulfillmentCenterId)
29
- const customerBizplace: Bizplace = await tx.getRepository(Bizplace).findOne({ where: { domain: customerDomain } })
30
-
31
- while (hasMorePage) {
32
- const { items, total } = await FulfillmentAPI.getInventoryProductGroupOpenAPI(fulfilmentCenter, {
33
- warehouseId: customerBizplace.id,
34
- paginationEntriesPerPage: limit,
35
- paginationOffset: page
36
- })
37
-
38
- let sellercraftInv: any[] = []
39
-
40
- await Promise.all(
41
- items.map(async item => {
42
- const product: Product = await tx.getRepository(Product).findOne({
43
- where: { domain, sku: item.productSKU },
44
- relations: ['productDetails', 'productDetails.childProductDetail']
45
- })
19
+ try {
20
+ const { domain, tx }: { domain: Domain; tx: EntityManager } = context.state
21
+
22
+ let page: number = 1
23
+ let hasMorePage: boolean = true
24
+ const limit: number = 50
25
+
26
+ const sellercraft: Sellercraft = await tx
27
+ .getRepository(Sellercraft)
28
+ .findOne({ where: { id: sellercraftId }, relations: ['domain'] })
29
+ const customerDomain: Domain = sellercraft.domain
30
+ const fulfilmentCenter: FulfillmentCenter = await FulfillmentAPI.getFulfillmentCenter(fulfillmentCenterId)
31
+ const customerBizplace: Bizplace = await tx.getRepository(Bizplace).findOne({ where: { domain: customerDomain } })
32
+
33
+ while (hasMorePage) {
34
+ const { items, total } = await FulfillmentAPI.getInventoryProductGroupOpenAPI(fulfilmentCenter, {
35
+ warehouseId: customerBizplace.id,
36
+ paginationEntriesPerPage: limit,
37
+ paginationOffset: page
38
+ })
46
39
 
47
- const productDetails: ProductDetail[] = product.productDetails
48
- const defaultProductDetail: ProductDetail = productDetails.find(productDetail => productDetail.isDefault)
49
-
50
- let packingSize: number = 1
51
-
52
- sellercraftInv.push({
53
- sku: item.productSKU,
54
- gtin: defaultProductDetail?.gtin ? defaultProductDetail.gtin : '',
55
- stock: {
56
- quantity_total: item.totalQty * packingSize,
57
- quantity_reserved: item.totalLockedQty * packingSize,
58
- unit_of_measure: 'EA'
59
- },
60
- package_weight_gm: defaultProductDetail.nettWeight < 1 ? 1 : defaultProductDetail.nettWeight,
61
- package_dimensions: {
62
- length_mm: defaultProductDetail.depth < 1 ? 1 : defaultProductDetail.depth,
63
- width_mm: defaultProductDetail.width < 1 ? 1 : defaultProductDetail.width,
64
- height_mm: defaultProductDetail.height < 1 ? 1 : defaultProductDetail.height
65
- }
40
+ let sellercraftInv: any[] = []
41
+
42
+ await Promise.all(
43
+ items.map(async item => {
44
+ const product: Product = await tx.getRepository(Product).findOne({
45
+ where: { domain, sku: item.productSKU },
46
+ relations: ['productDetails', 'productDetails.childProductDetail']
47
+ })
48
+
49
+ const productDetails: ProductDetail[] = product.productDetails
50
+ const defaultProductDetail: ProductDetail = productDetails.find(productDetail => productDetail.isDefault)
51
+
52
+ let packingSize: number = 1
53
+
54
+ sellercraftInv.push({
55
+ sku: item.productSKU,
56
+ gtin: defaultProductDetail?.gtin ? defaultProductDetail.gtin : '',
57
+ stock: {
58
+ quantity_total: item.totalQty * packingSize,
59
+ quantity_reserved: item.totalLockedQty * packingSize,
60
+ unit_of_measure: 'EA'
61
+ },
62
+ package_weight_gm: defaultProductDetail.nettWeight < 1 ? 1 : defaultProductDetail.nettWeight,
63
+ package_dimensions: {
64
+ length_mm: defaultProductDetail.depth < 1 ? 1 : defaultProductDetail.depth,
65
+ width_mm: defaultProductDetail.width < 1 ? 1 : defaultProductDetail.width,
66
+ height_mm: defaultProductDetail.height < 1 ? 1 : defaultProductDetail.height
67
+ }
68
+ })
66
69
  })
67
- })
68
- )
70
+ )
69
71
 
70
- const delay = (ms: number) => {
71
- return new Promise(resolve => setTimeout(resolve, ms))
72
- }
72
+ const delay = (ms: number) => {
73
+ return new Promise(resolve => setTimeout(resolve, ms))
74
+ }
73
75
 
74
- await delay(5000)
75
- await SellercraftAPI.updateProduct(sellercraft, { accountId: sellercraft.accountId, sellercraftInv })
76
+ await delay(5000)
77
+ await SellercraftAPI.updateProduct(sellercraft, { accountId: sellercraft.accountId, sellercraftInv })
76
78
 
77
- if (sellercraftInv?.length != 0 && sellercraftInv?.length < total) page++
78
- hasMorePage = Boolean(sellercraftInv?.length != 0 && sellercraftInv?.length < total)
79
+ if (sellercraftInv?.length != 0 && sellercraftInv?.length < total) page++
80
+ hasMorePage = Boolean(sellercraftInv?.length != 0 && sellercraftInv?.length < total)
81
+ }
82
+ } catch (e) {
83
+ logger.error(`syncProductsToSellercraftResolver: ${e}`)
79
84
  }
80
85
  }
81
86
  }