@things-factory/operato-hub 4.3.392 → 4.3.394

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.
@@ -37,6 +37,10 @@ exports.powrupInitiateShipmentResolver = {
37
37
  if ((orderPackagesWithoutRTS === null || orderPackagesWithoutRTS === void 0 ? void 0 : orderPackagesWithoutRTS.length) > 0) {
38
38
  for (let i = 0; i < orderPackagesWithoutRTS.length; i++) {
39
39
  const orderPackage = orderPackagesWithoutRTS[i];
40
+ const releaseGood = orderPackage.releaseGood;
41
+ if (releaseGood.lmdOption == true && (orderPackage === null || orderPackage === void 0 ? void 0 : orderPackage.trackingNo) == null) {
42
+ continue;
43
+ }
40
44
  let orderInformation = {
41
45
  refOrderId: orderPackage.releaseGood.refOrderId,
42
46
  packageId: orderPackage.packageId
@@ -1 +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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"}
1
+ {"version":3,"file":"powrup-initiate-shipment.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/synchronization/powrup-initiate-shipment.ts"],"names":[],"mappings":"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"}
@@ -46,13 +46,43 @@ api_1.restfulApiRouter.post('/v1/company/add-products', middlewares_1.businessMi
46
46
  product.updater = user;
47
47
  delete product.productDetails;
48
48
  let result = await tx.getRepository(product_base_1.Product).save(product);
49
+ const duplicates = findDuplicates(productDetails);
49
50
  // save product details
50
- let pds = await Promise.all(productDetails.map(async (pd) => {
51
+ let pds = await Promise.all(productDetails.map(async (pd, index) => {
51
52
  if (pd.packingSize < 0)
52
53
  throw new error_util_1.ApiError('E01', `${pd.gtin}: packing size cannot be negative`);
53
- const productDetail = pd;
54
+ const updatedProductDetails = checkProductDetails(productDetails);
55
+ const productDetail = updatedProductDetails.find(detail => detail.gtin === pd.gtin);
54
56
  const productBarcodes = productDetail.productBarcodes;
55
- let pdResult = await tx.getRepository(product_base_1.ProductDetail).save(Object.assign(Object.assign({}, productDetail), { name: productDetail.gtin, product: result, childProductDetail: null, childQty: 0, domain: domain, creator: user, updater: user }));
57
+ const duplicateIndexes = duplicates.get(`${pd.packingType}-${pd.packingSize}`);
58
+ let nameIndex = duplicateIndexes.length > 1 ? ` (${duplicateIndexes.indexOf(index) + 1})` : '';
59
+ let productDetailsName = `${product.name} (${pd.packingType}) (${pd.packingSize})${nameIndex}`;
60
+ let pdResult = await tx.getRepository(product_base_1.ProductDetail).save(Object.assign(Object.assign({}, productDetail), { name: productDetailsName, product: result, childProductDetail: null, childQty: 0, domain: domain, creator: user, updater: user }));
61
+ if (productDetail.isDefault) {
62
+ await tx.getRepository(product_base_1.Product).update({ id: result.id }, {
63
+ packingType: pdResult.packingType,
64
+ weightUnit: pdResult.weightUnit,
65
+ grossWeight: pdResult.grossWeight,
66
+ lengthUnit: pdResult.lengthUnit,
67
+ costPrice: pdResult.costPrice,
68
+ primaryUnit: pdResult.uom,
69
+ primaryValue: pdResult.uomValue,
70
+ gtin: pdResult.gtin,
71
+ width: pdResult.width,
72
+ depth: pdResult.depth,
73
+ height: pdResult.height,
74
+ volume: pdResult.volume,
75
+ bufferQty: pdResult.bufferQty,
76
+ minQty: pdResult.minQty,
77
+ maxQty: pdResult.maxQty,
78
+ auxUnit1: pdResult.auxUnit1,
79
+ auxValue1: pdResult.auxValue1,
80
+ auxUnit2: pdResult.auxUnit2,
81
+ auxValue2: pdResult.auxValue2,
82
+ auxUnit3: pdResult.auxUnit3,
83
+ auxValue3: pdResult.auxValue3
84
+ });
85
+ }
56
86
  delete pdResult.creator;
57
87
  delete pdResult.updater;
58
88
  delete pdResult.product;
@@ -96,4 +126,28 @@ api_1.restfulApiRouter.post('/v1/company/add-products', middlewares_1.businessMi
96
126
  (0, error_util_1.throwInternalServerError)(context, e);
97
127
  }
98
128
  });
129
+ function checkProductDetails(productDetails) {
130
+ const allIsDefaultFalse = productDetails.every(pd => !pd.isDefault);
131
+ if (allIsDefaultFalse) {
132
+ productDetails[0].isDefault = true;
133
+ }
134
+ else {
135
+ const moreIsDefaultTrue = productDetails.filter(pd => pd.isDefault).length;
136
+ if (moreIsDefaultTrue > 1) {
137
+ throw new error_util_1.ApiError('E01', 'One product only allows one product detail with isDefault: true');
138
+ }
139
+ }
140
+ return productDetails;
141
+ }
142
+ function findDuplicates(productDetails) {
143
+ let duplicates = new Map();
144
+ productDetails.forEach((pd, index) => {
145
+ let key = `${pd.packingType}-${pd.packingSize}`;
146
+ if (!duplicates.has(key)) {
147
+ duplicates.set(key, []);
148
+ }
149
+ duplicates.get(key).push(index);
150
+ });
151
+ return duplicates;
152
+ }
99
153
  //# sourceMappingURL=add-products.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"add-products.js","sourceRoot":"","sources":["../../../../../../server/routers/api/restful-apis/v1/company/add-products.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"add-products.js","sourceRoot":"","sources":["../../../../../../server/routers/api/restful-apis/v1/company/add-products.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.392",
3
+ "version": "4.3.394",
4
4
  "main": "dist-server/index.js",
5
5
  "browser": "client/index.js",
6
6
  "things-factory": true,
@@ -77,7 +77,7 @@
77
77
  "@things-factory/i18n-base": "^4.3.381",
78
78
  "@things-factory/import-ui": "^4.3.381",
79
79
  "@things-factory/import-ui-excel": "^4.3.381",
80
- "@things-factory/integration-accounting": "^4.3.383",
80
+ "@things-factory/integration-accounting": "^4.3.393",
81
81
  "@things-factory/integration-fulfillment": "^4.3.381",
82
82
  "@things-factory/integration-lmd": "^4.3.390",
83
83
  "@things-factory/integration-marketplace": "^4.3.390",
@@ -86,13 +86,13 @@
86
86
  "@things-factory/integration-sellercraft": "^4.3.390",
87
87
  "@things-factory/integration-sftp": "^4.3.381",
88
88
  "@things-factory/lite-menu": "^4.3.381",
89
- "@things-factory/marketplace-base": "^4.3.390",
89
+ "@things-factory/marketplace-base": "^4.3.393",
90
90
  "@things-factory/more-ui": "^4.3.381",
91
91
  "@things-factory/notification": "^4.3.381",
92
92
  "@things-factory/pdf": "^4.3.381",
93
- "@things-factory/product-ui": "^4.3.383",
93
+ "@things-factory/product-ui": "^4.3.393",
94
94
  "@things-factory/resource-ui": "^4.3.381",
95
- "@things-factory/sales-base": "^4.3.390",
95
+ "@things-factory/sales-base": "^4.3.393",
96
96
  "@things-factory/scene-data-transform": "^4.3.381",
97
97
  "@things-factory/scene-excel": "^4.3.381",
98
98
  "@things-factory/scene-firebase": "^4.3.381",
@@ -108,8 +108,8 @@
108
108
  "@things-factory/shell": "^4.3.381",
109
109
  "@things-factory/system-ui": "^4.3.381",
110
110
  "@things-factory/transport-base": "^4.3.381",
111
- "@things-factory/warehouse-base": "^4.3.390",
112
- "@things-factory/worksheet-base": "^4.3.392",
111
+ "@things-factory/warehouse-base": "^4.3.393",
112
+ "@things-factory/worksheet-base": "^4.3.394",
113
113
  "cron-parser": "^4.7.0",
114
114
  "koa2-swagger-ui": "^5.0.2",
115
115
  "swagger-jsdoc": "^5.0.0",
@@ -121,5 +121,5 @@
121
121
  "resolutions": {
122
122
  "core-js": "^3.16.0"
123
123
  },
124
- "gitHead": "d3677915adaeb51b133312a8098d9b837e4abcb0"
124
+ "gitHead": "867143a3659e9ea3ef237a649129f586543ee49c"
125
125
  }
@@ -38,11 +38,16 @@ export const powrupInitiateShipmentResolver = {
38
38
  if (orderPackagesWithoutRTS?.length > 0) {
39
39
  for (let i = 0; i < orderPackagesWithoutRTS.length; i++) {
40
40
  const orderPackage: OrderPackage = orderPackagesWithoutRTS[i]
41
+ const releaseGood = orderPackage.releaseGood
42
+
43
+ if(releaseGood.lmdOption == true && orderPackage?.trackingNo == null){
44
+ continue
45
+ }
41
46
 
42
47
  let orderInformation: any = {
43
48
  refOrderId: orderPackage.releaseGood.refOrderId,
44
49
  packageId: orderPackage.packageId
45
- }
50
+ }
46
51
  if (orderPackage?.releaseGood?.lmdOption) {
47
52
  orderInformation = {
48
53
  ...orderInformation,
@@ -64,15 +64,26 @@ router.post(
64
64
 
65
65
  let result = await tx.getRepository(Product).save(product)
66
66
 
67
+ const duplicates = findDuplicates(productDetails)
68
+
67
69
  // save product details
68
70
  let pds = await Promise.all(
69
- productDetails.map(async pd => {
71
+ productDetails.map(async (pd, index) => {
70
72
  if (pd.packingSize < 0) throw new ApiError('E01', `${pd.gtin}: packing size cannot be negative`)
71
- const productDetail = pd
73
+
74
+ const updatedProductDetails = checkProductDetails(productDetails)
75
+
76
+ const productDetail = updatedProductDetails.find(detail => detail.gtin === pd.gtin)
77
+
72
78
  const productBarcodes = productDetail.productBarcodes
79
+
80
+ const duplicateIndexes = duplicates.get(`${pd.packingType}-${pd.packingSize}`)
81
+ let nameIndex = duplicateIndexes.length > 1 ? ` (${duplicateIndexes.indexOf(index) + 1})` : ''
82
+ let productDetailsName = `${product.name} (${pd.packingType}) (${pd.packingSize})${nameIndex}`
83
+
73
84
  let pdResult = await tx.getRepository(ProductDetail).save({
74
85
  ...productDetail,
75
- name: productDetail.gtin,
86
+ name: productDetailsName,
76
87
  product: result,
77
88
  childProductDetail: null,
78
89
  childQty: 0,
@@ -80,6 +91,36 @@ router.post(
80
91
  creator: user,
81
92
  updater: user
82
93
  })
94
+
95
+ if (productDetail.isDefault) {
96
+ await tx.getRepository(Product).update(
97
+ { id: result.id },
98
+ {
99
+ packingType: pdResult.packingType,
100
+ weightUnit: pdResult.weightUnit,
101
+ grossWeight: pdResult.grossWeight,
102
+ lengthUnit: pdResult.lengthUnit,
103
+ costPrice: pdResult.costPrice,
104
+ primaryUnit: pdResult.uom,
105
+ primaryValue: pdResult.uomValue,
106
+ gtin: pdResult.gtin,
107
+ width: pdResult.width,
108
+ depth: pdResult.depth,
109
+ height: pdResult.height,
110
+ volume: pdResult.volume,
111
+ bufferQty: pdResult.bufferQty,
112
+ minQty: pdResult.minQty,
113
+ maxQty: pdResult.maxQty,
114
+ auxUnit1: pdResult.auxUnit1,
115
+ auxValue1: pdResult.auxValue1,
116
+ auxUnit2: pdResult.auxUnit2,
117
+ auxValue2: pdResult.auxValue2,
118
+ auxUnit3: pdResult.auxUnit3,
119
+ auxValue3: pdResult.auxValue3
120
+ }
121
+ )
122
+ }
123
+
83
124
  delete pdResult.creator
84
125
  delete pdResult.updater
85
126
  delete pdResult.product
@@ -134,3 +175,30 @@ router.post(
134
175
  }
135
176
  }
136
177
  )
178
+
179
+ function checkProductDetails(productDetails) {
180
+ const allIsDefaultFalse = productDetails.every(pd => !pd.isDefault)
181
+
182
+ if (allIsDefaultFalse) {
183
+ productDetails[0].isDefault = true
184
+ } else {
185
+ const moreIsDefaultTrue = productDetails.filter(pd => pd.isDefault).length
186
+ if (moreIsDefaultTrue > 1) {
187
+ throw new ApiError('E01', 'One product only allows one product detail with isDefault: true')
188
+ }
189
+ }
190
+ return productDetails
191
+ }
192
+
193
+ function findDuplicates(productDetails) {
194
+ let duplicates = new Map()
195
+ productDetails.forEach((pd, index) => {
196
+ let key = `${pd.packingType}-${pd.packingSize}`
197
+ if (!duplicates.has(key)) {
198
+ duplicates.set(key, [])
199
+ }
200
+ duplicates.get(key).push(index)
201
+ })
202
+
203
+ return duplicates
204
+ }