@things-factory/operato-hub 4.3.315 → 4.3.317

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.
@@ -9,6 +9,7 @@ const fetch_sync_purchase_orders_1 = require("./fetch-sync-purchase-orders");
9
9
  const get_lmd_awb_1 = require("./get-lmd-awb");
10
10
  const powrup_get_airway_bill_1 = require("./powrup-get-airway-bill");
11
11
  const powrup_get_tracking_no_1 = require("./powrup-get-tracking-no");
12
+ const powrup_initiate_shipment_1 = require("./powrup-initiate-shipment");
12
13
  const powrup_pack_order_1 = require("./powrup-pack-order");
13
14
  const sellercraft_pack_marketplace_order_1 = require("./sellercraft-pack-marketplace-order");
14
15
  const sync_all_products_to_powrup_1 = require("./sync-all-products-to-powrup");
@@ -18,5 +19,5 @@ const sync_products_to_account_1 = require("./sync-products-to-account");
18
19
  const sync_products_to_powrup_1 = require("./sync-products-to-powrup");
19
20
  const sync_products_to_sellercraft_1 = require("./sync-products-to-sellercraft");
20
21
  exports.Query = Object.assign(Object.assign(Object.assign({}, fetch_sync_products_1.fetchSyncProductsResolver), fetch_sync_purchase_orders_1.fetchSyncPurchaseOrdersResolver), fetch_sync_invoices_1.fetchSyncInvoicesResolver);
21
- exports.Mutation = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, sync_products_to_sellercraft_1.syncProductsToSellercraftResolver), sync_products_to_powrup_1.syncProductsToPowrupResolver), sync_products_from_account_1.syncProductsFromAccountResolver), sync_products_to_account_1.syncProductsToAccountResolver), sync_all_products_to_sellercraft_1.syncAllProductsToSellercraftResolver), sync_all_products_to_powrup_1.syncAllProductsToPowrupResolver), sellercraft_pack_marketplace_order_1.sellercraftPackMarketplaceOrderResolver), create_dat_shipments_1.createDatShipments), auto_update_all_marketplace_product_variation_quantity_1.autoUpdateAllMarketplaceProductVariationQuantityResolver), get_lmd_awb_1.getLmdAwbResolver), powrup_pack_order_1.powrupPackOrderResolver), powrup_get_tracking_no_1.powrupGetTrackingNoResolver), powrup_get_airway_bill_1.powrupGetAirwayBillResolver);
22
+ exports.Mutation = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, sync_products_to_sellercraft_1.syncProductsToSellercraftResolver), sync_products_to_powrup_1.syncProductsToPowrupResolver), sync_products_from_account_1.syncProductsFromAccountResolver), sync_products_to_account_1.syncProductsToAccountResolver), sync_all_products_to_sellercraft_1.syncAllProductsToSellercraftResolver), sync_all_products_to_powrup_1.syncAllProductsToPowrupResolver), sellercraft_pack_marketplace_order_1.sellercraftPackMarketplaceOrderResolver), create_dat_shipments_1.createDatShipments), auto_update_all_marketplace_product_variation_quantity_1.autoUpdateAllMarketplaceProductVariationQuantityResolver), get_lmd_awb_1.getLmdAwbResolver), powrup_pack_order_1.powrupPackOrderResolver), powrup_get_tracking_no_1.powrupGetTrackingNoResolver), powrup_get_airway_bill_1.powrupGetAirwayBillResolver), powrup_initiate_shipment_1.powrupInitiateShipmentResolver);
22
23
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/synchronization/index.ts"],"names":[],"mappings":";;;AAAA,qIAAmI;AACnI,iEAA2D;AAC3D,+DAAiE;AACjE,+DAAiE;AACjE,6EAA8E;AAC9E,+CAAiD;AACjD,qEAAsE;AACtE,qEAAsE;AACtE,2DAA6D;AAC7D,6FAA8F;AAC9F,+EAA+E;AAC/E,yFAAyF;AACzF,6EAA8E;AAC9E,yEAA0E;AAC1E,uEAAwE;AACxE,iFAAkF;AAErE,QAAA,KAAK,iDACb,+CAAyB,GACzB,4DAA+B,GAC/B,+CAAyB,EAC7B;AAEY,QAAA,QAAQ,6LAChB,gEAAiC,GACjC,sDAA4B,GAC5B,4DAA+B,GAC/B,wDAA6B,GAC7B,uEAAoC,GACpC,6DAA+B,GAC/B,4EAAuC,GACvC,yCAAkB,GAClB,iHAAwD,GACxD,+BAAiB,GACjB,2CAAuB,GACvB,oDAA2B,GAC3B,oDAA2B,EAC/B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/synchronization/index.ts"],"names":[],"mappings":";;;AAAA,qIAAmI;AACnI,iEAA2D;AAC3D,+DAAiE;AACjE,+DAAiE;AACjE,6EAA8E;AAC9E,+CAAiD;AACjD,qEAAsE;AACtE,qEAAsE;AACtE,yEAA2E;AAC3E,2DAA6D;AAC7D,6FAA8F;AAC9F,+EAA+E;AAC/E,yFAAyF;AACzF,6EAA8E;AAC9E,yEAA0E;AAC1E,uEAAwE;AACxE,iFAAkF;AAErE,QAAA,KAAK,iDACb,+CAAyB,GACzB,4DAA+B,GAC/B,+CAAyB,EAC7B;AAEY,QAAA,QAAQ,2MAChB,gEAAiC,GACjC,sDAA4B,GAC5B,4DAA+B,GAC/B,wDAA6B,GAC7B,uEAAoC,GACpC,6DAA+B,GAC/B,4EAAuC,GACvC,yCAAkB,GAClB,iHAAwD,GACxD,+BAAiB,GACjB,2CAAuB,GACvB,oDAA2B,GAC3B,oDAA2B,GAC3B,yDAA8B,EAClC"}
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.powrupInitiateShipmentResolver = void 0;
4
+ const typeorm_1 = require("typeorm");
5
+ const auth_base_1 = require("@things-factory/auth-base");
6
+ const env_1 = require("@things-factory/env");
7
+ const integration_powrup_1 = require("@things-factory/integration-powrup");
8
+ const sales_base_1 = require("@things-factory/sales-base");
9
+ exports.powrupInitiateShipmentResolver = {
10
+ async powrupInitiateShipment(_, {}, context) {
11
+ const maxRTSRetry = 10;
12
+ try {
13
+ await (0, typeorm_1.getConnection)().transaction(async (tx) => {
14
+ var _a, _b, _c, _d;
15
+ try {
16
+ const powrup = await tx
17
+ .getRepository(integration_powrup_1.Powrup)
18
+ .findOne({ where: { platform: integration_powrup_1.Platform.POWRUP, active: true } });
19
+ let orderPackageQb = tx
20
+ .getRepository(sales_base_1.OrderPackage)
21
+ .createQueryBuilder('opk')
22
+ .innerJoinAndSelect('opk.releaseGood', 'rg')
23
+ .innerJoinAndSelect('opk.domain', 'domain')
24
+ .innerJoinAndSelect('opk.bizplace', 'bizplace')
25
+ .innerJoinAndSelect('opk.creator', 'creator')
26
+ .leftJoinAndSelect('rg.lastMileDelivery', 'lmd')
27
+ .where(`rg.source = :source`, { source: auth_base_1.ApplicationType.POWRUP })
28
+ .andWhere(`rg.type = :rgType`, { rgType: 'b2c' })
29
+ .andWhere(`rg.ref_order_id NOTNULL`)
30
+ .andWhere(`rg.status = :status`, {
31
+ status: sales_base_1.ORDER_STATUS.DONE
32
+ })
33
+ .andWhere(`opk.market_rts_call_success ISNULL`)
34
+ .andWhere(`COALESCE(opk.market_rts_call_retry, 0) <= :maxRTSRetry`, { maxRTSRetry: maxRTSRetry })
35
+ .orderBy(`opk.created_at`);
36
+ let orderPackagesWithoutRTS = await orderPackageQb.getMany();
37
+ if ((orderPackagesWithoutRTS === null || orderPackagesWithoutRTS === void 0 ? void 0 : orderPackagesWithoutRTS.length) > 0) {
38
+ for (let i = 0; i < orderPackagesWithoutRTS.length; i++) {
39
+ const orderPackage = orderPackagesWithoutRTS[i];
40
+ let orderInformation = {
41
+ refOrderId: orderPackage.releaseGood.refOrderId,
42
+ packageId: orderPackage.packageId
43
+ };
44
+ if ((_a = orderPackage === null || orderPackage === void 0 ? void 0 : orderPackage.releaseGood) === null || _a === void 0 ? void 0 : _a.lmdOption) {
45
+ orderInformation = Object.assign(Object.assign({}, orderInformation), { awb: orderPackage.airwayBill, trackingNo: orderPackage.trackingNo, lmdOption: (_b = orderPackage === null || orderPackage === void 0 ? void 0 : orderPackage.releaseGood) === null || _b === void 0 ? void 0 : _b.lmdOption, shipperName: (_d = (_c = orderPackage === null || orderPackage === void 0 ? void 0 : orderPackage.releaseGood) === null || _c === void 0 ? void 0 : _c.lastMileDelivery) === null || _d === void 0 ? void 0 : _d.platform });
46
+ }
47
+ performance.mark(`start:${orderPackage.releaseGood.refOrderId} - ${orderPackage.packageId}`);
48
+ try {
49
+ await integration_powrup_1.PowrupAPI.initiateShipment(powrup, Object.assign(Object.assign({}, orderInformation), { context: { state: { domain: null, user: null } } }));
50
+ await tx
51
+ .getRepository(sales_base_1.OrderPackage)
52
+ .update({ id: orderPackage.id }, { marketRtsCallSuccess: new Date() });
53
+ performance.mark(`end:${orderPackage.releaseGood.refOrderId} - ${orderPackage.packageId}`);
54
+ }
55
+ catch (error) {
56
+ performance.mark(`end:${orderPackage.releaseGood.refOrderId} - ${orderPackage.packageId}`);
57
+ env_1.logger.error(`powrupInitiateShipment[InitiateShipment][Order Package ID: ${orderPackage.id}]: ${error}`);
58
+ await (0, typeorm_1.getRepository)(sales_base_1.OrderPackage)
59
+ .createQueryBuilder()
60
+ .update(sales_base_1.OrderPackage)
61
+ .set({ marketRtsCallRetry: () => `coalesce("market_rts_call_retry", 0) + 1` })
62
+ .where('id = :id', { id: orderPackage.id })
63
+ .execute();
64
+ continue;
65
+ }
66
+ finally {
67
+ let perf = performance.measure(`powrupInitiateShipment: ${orderPackage.releaseGood.refOrderId} - ${orderPackage.packageId}`, `start:${orderPackage.releaseGood.refOrderId} - ${orderPackage.packageId}`, `end:${orderPackage.releaseGood.refOrderId} - ${orderPackage.packageId}`);
68
+ console.info(perf.toJSON());
69
+ }
70
+ }
71
+ }
72
+ }
73
+ catch (e) {
74
+ env_1.logger.error(`powrupInitiateShipment[InitiateShipment]: ${e}`);
75
+ }
76
+ });
77
+ }
78
+ catch (e) {
79
+ env_1.logger.error(`powrupInitiateShipment[MainError]: ${e}`);
80
+ }
81
+ }
82
+ };
83
+ //# sourceMappingURL=powrup-initiate-shipment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"powrup-initiate-shipment.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/synchronization/powrup-initiate-shipment.ts"],"names":[],"mappings":"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"}
@@ -23,6 +23,7 @@ exports.Mutation = `
23
23
  powrupPackOrder: Boolean @transaction
24
24
  powrupGetTrackingNo: Boolean @transaction
25
25
  powrupGetAirwayBill: Boolean @transaction
26
+ powrupInitiateShipment: Boolean @transaction
26
27
  getLmdAwb: Boolean @transaction
27
28
  createDatShipments: Boolean @transaction
28
29
  autoUpdateAllMarketplaceProductVariationQuantity(companyDomainId: String, warehouseId: String): Boolean @transaction
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../server/graphql/types/synchronization/index.ts"],"names":[],"mappings":";;;AAAA,2DAAqD;AACrD,yDAAoE;AACpE,2DAAqD;AACrD,yDAAmD;AACnD,yEAAkE;AAClE,uEAAiF;AAEpE,QAAA,KAAK,GAAiB;;;;CAIlC,CAAA;AAEY,QAAA,QAAQ,GAAiB;;;;;;;;;;;;;;;CAerC,CAAA;AAEY,QAAA,KAAK,GAAG;IACnB,iCAAc;IACd,mCAAe;IACf,8CAAoB;IACpB,gDAAqB;IACrB,GAAG,+BAAM;IACT,iCAAc;IACd,mCAAe;IACf,GAAG,wBAAM;CACV,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../server/graphql/types/synchronization/index.ts"],"names":[],"mappings":";;;AAAA,2DAAqD;AACrD,yDAAoE;AACpE,2DAAqD;AACrD,yDAAmD;AACnD,yEAAkE;AAClE,uEAAiF;AAEpE,QAAA,KAAK,GAAiB;;;;CAIlC,CAAA;AAEY,QAAA,QAAQ,GAAiB;;;;;;;;;;;;;;;;CAgBrC,CAAA;AAEY,QAAA,KAAK,GAAG;IACnB,iCAAc;IACd,mCAAe;IACf,8CAAoB;IACpB,gDAAqB;IACrB,GAAG,+BAAM;IACT,iCAAc;IACd,mCAAe;IACf,GAAG,wBAAM;CACV,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@things-factory/operato-hub",
3
- "version": "4.3.315",
3
+ "version": "4.3.317",
4
4
  "main": "dist-server/index.js",
5
5
  "browser": "client/index.js",
6
6
  "things-factory": true,
@@ -92,7 +92,7 @@
92
92
  "@things-factory/pdf": "^4.3.281",
93
93
  "@things-factory/product-ui": "^4.3.301",
94
94
  "@things-factory/resource-ui": "^4.3.281",
95
- "@things-factory/sales-base": "^4.3.313",
95
+ "@things-factory/sales-base": "^4.3.316",
96
96
  "@things-factory/scene-data-transform": "^4.3.281",
97
97
  "@things-factory/scene-excel": "^4.3.281",
98
98
  "@things-factory/scene-firebase": "^4.3.281",
@@ -108,7 +108,7 @@
108
108
  "@things-factory/shell": "^4.3.281",
109
109
  "@things-factory/system-ui": "^4.3.281",
110
110
  "@things-factory/warehouse-base": "^4.3.310",
111
- "@things-factory/worksheet-base": "^4.3.315",
111
+ "@things-factory/worksheet-base": "^4.3.316",
112
112
  "cron-parser": "^4.7.0",
113
113
  "koa2-swagger-ui": "^5.0.2",
114
114
  "swagger-jsdoc": "^5.0.0",
@@ -120,5 +120,5 @@
120
120
  "resolutions": {
121
121
  "core-js": "^3.16.0"
122
122
  },
123
- "gitHead": "ea6e50379096ea6ae3f8c76aff50a65b49ea5dd2"
123
+ "gitHead": "580f0cc9dcf0506839f2fd755c5b814ca220917c"
124
124
  }
@@ -6,6 +6,7 @@ import { fetchSyncPurchaseOrdersResolver } from './fetch-sync-purchase-orders'
6
6
  import { getLmdAwbResolver } from './get-lmd-awb'
7
7
  import { powrupGetAirwayBillResolver } from './powrup-get-airway-bill'
8
8
  import { powrupGetTrackingNoResolver } from './powrup-get-tracking-no'
9
+ import { powrupInitiateShipmentResolver } from './powrup-initiate-shipment'
9
10
  import { powrupPackOrderResolver } from './powrup-pack-order'
10
11
  import { sellercraftPackMarketplaceOrderResolver } from './sellercraft-pack-marketplace-order'
11
12
  import { syncAllProductsToPowrupResolver } from './sync-all-products-to-powrup'
@@ -34,5 +35,6 @@ export const Mutation = {
34
35
  ...getLmdAwbResolver,
35
36
  ...powrupPackOrderResolver,
36
37
  ...powrupGetTrackingNoResolver,
37
- ...powrupGetAirwayBillResolver
38
+ ...powrupGetAirwayBillResolver,
39
+ ...powrupInitiateShipmentResolver
38
40
  }
@@ -0,0 +1,94 @@
1
+ import { getConnection, getRepository } from 'typeorm'
2
+
3
+ import { ApplicationType } from '@things-factory/auth-base'
4
+ import { logger } from '@things-factory/env'
5
+ import { Platform, Powrup, PowrupAPI } from '@things-factory/integration-powrup'
6
+ import { ORDER_STATUS, OrderPackage } from '@things-factory/sales-base'
7
+
8
+ export const powrupInitiateShipmentResolver = {
9
+ async powrupInitiateShipment(_: void, {}, context: any): Promise<void> {
10
+ const maxRTSRetry: number = 10
11
+ try {
12
+ await getConnection().transaction(async tx => {
13
+ try {
14
+ const powrup: Powrup = await tx
15
+ .getRepository(Powrup)
16
+ .findOne({ where: { platform: Platform.POWRUP, active: true } })
17
+
18
+ let orderPackageQb = tx
19
+ .getRepository(OrderPackage)
20
+ .createQueryBuilder('opk')
21
+ .innerJoinAndSelect('opk.releaseGood', 'rg')
22
+ .innerJoinAndSelect('opk.domain', 'domain')
23
+ .innerJoinAndSelect('opk.bizplace', 'bizplace')
24
+ .innerJoinAndSelect('opk.creator', 'creator')
25
+ .leftJoinAndSelect('rg.lastMileDelivery', 'lmd')
26
+ .where(`rg.source = :source`, { source: ApplicationType.POWRUP })
27
+ .andWhere(`rg.type = :rgType`, { rgType: 'b2c' })
28
+ .andWhere(`rg.ref_order_id NOTNULL`)
29
+ .andWhere(`rg.status = :status`, {
30
+ status: ORDER_STATUS.DONE
31
+ })
32
+ .andWhere(`opk.market_rts_call_success ISNULL`)
33
+ .andWhere(`COALESCE(opk.market_rts_call_retry, 0) <= :maxRTSRetry`, { maxRTSRetry: maxRTSRetry })
34
+ .orderBy(`opk.created_at`)
35
+
36
+ let orderPackagesWithoutRTS: OrderPackage[] = await orderPackageQb.getMany()
37
+
38
+ if (orderPackagesWithoutRTS?.length > 0) {
39
+ for (let i = 0; i < orderPackagesWithoutRTS.length; i++) {
40
+ const orderPackage: OrderPackage = orderPackagesWithoutRTS[i]
41
+
42
+ let orderInformation: any = {
43
+ refOrderId: orderPackage.releaseGood.refOrderId,
44
+ packageId: orderPackage.packageId
45
+ }
46
+ if (orderPackage?.releaseGood?.lmdOption) {
47
+ orderInformation = {
48
+ ...orderInformation,
49
+ awb: orderPackage.airwayBill,
50
+ trackingNo: orderPackage.trackingNo,
51
+ lmdOption: orderPackage?.releaseGood?.lmdOption,
52
+ shipperName: orderPackage?.releaseGood?.lastMileDelivery?.platform
53
+ }
54
+ }
55
+
56
+ performance.mark(`start:${orderPackage.releaseGood.refOrderId} - ${orderPackage.packageId}`)
57
+ try {
58
+ await PowrupAPI.initiateShipment(powrup, {
59
+ ...orderInformation,
60
+ context: { state: { domain: null, user: null } }
61
+ })
62
+ await tx
63
+ .getRepository(OrderPackage)
64
+ .update({ id: orderPackage.id }, { marketRtsCallSuccess: new Date() })
65
+ performance.mark(`end:${orderPackage.releaseGood.refOrderId} - ${orderPackage.packageId}`)
66
+ } catch (error) {
67
+ performance.mark(`end:${orderPackage.releaseGood.refOrderId} - ${orderPackage.packageId}`)
68
+ logger.error(`powrupInitiateShipment[InitiateShipment][Order Package ID: ${orderPackage.id}]: ${error}`)
69
+ await getRepository(OrderPackage)
70
+ .createQueryBuilder()
71
+ .update(OrderPackage)
72
+ .set({ marketRtsCallRetry: () => `coalesce("market_rts_call_retry", 0) + 1` })
73
+ .where('id = :id', { id: orderPackage.id })
74
+ .execute()
75
+ continue
76
+ } finally {
77
+ let perf = performance.measure(
78
+ `powrupInitiateShipment: ${orderPackage.releaseGood.refOrderId} - ${orderPackage.packageId}`,
79
+ `start:${orderPackage.releaseGood.refOrderId} - ${orderPackage.packageId}`,
80
+ `end:${orderPackage.releaseGood.refOrderId} - ${orderPackage.packageId}`
81
+ )
82
+ console.info(perf.toJSON())
83
+ }
84
+ }
85
+ }
86
+ } catch (e) {
87
+ logger.error(`powrupInitiateShipment[InitiateShipment]: ${e}`)
88
+ }
89
+ })
90
+ } catch (e) {
91
+ logger.error(`powrupInitiateShipment[MainError]: ${e}`)
92
+ }
93
+ }
94
+ }
@@ -22,6 +22,7 @@ export const Mutation = /* GraphQL */ `
22
22
  powrupPackOrder: Boolean @transaction
23
23
  powrupGetTrackingNo: Boolean @transaction
24
24
  powrupGetAirwayBill: Boolean @transaction
25
+ powrupInitiateShipment: Boolean @transaction
25
26
  getLmdAwb: Boolean @transaction
26
27
  createDatShipments: Boolean @transaction
27
28
  autoUpdateAllMarketplaceProductVariationQuantity(companyDomainId: String, warehouseId: String): Boolean @transaction