@things-factory/sales-base 4.3.518 → 4.3.523
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.
|
@@ -3,12 +3,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.WebspertController = void 0;
|
|
4
4
|
const typeorm_1 = require("typeorm");
|
|
5
5
|
const env_1 = require("@things-factory/env");
|
|
6
|
+
const utils_1 = require("@things-factory/utils");
|
|
6
7
|
const warehouse_base_1 = require("@things-factory/warehouse-base");
|
|
7
8
|
const constants_1 = require("../../constants");
|
|
8
9
|
const service_1 = require("../../service");
|
|
9
|
-
const utils_1 = require("@things-factory/utils");
|
|
10
10
|
const utils_2 = require("../../utils");
|
|
11
|
-
// const { PerformanceObserver, performance } = require('node:perf_hooks')
|
|
12
11
|
class WebspertController {
|
|
13
12
|
static async packOrder(releaseGood, domain, user) {
|
|
14
13
|
await (0, typeorm_1.getConnection)().transaction(async (trx) => {
|
|
@@ -16,7 +15,7 @@ class WebspertController {
|
|
|
16
15
|
releaseGood = await trx.getRepository(service_1.ReleaseGood).findOne({ where: { id: releaseGood.id, domain } });
|
|
17
16
|
// let releaseOrder = await trx.getRepository(ReleaseGood).findOne({ refNo: releaseGood.refNo, refNo2: releaseGood.refNo2, refNo3: releaseGood.refNo3, domain })
|
|
18
17
|
// // only recall if releaseGood exists and pack Order fail
|
|
19
|
-
if (!releaseGood && (releaseGood
|
|
18
|
+
if (!releaseGood && !(releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.marketPackCallSuccess))
|
|
20
19
|
return false;
|
|
21
20
|
try {
|
|
22
21
|
let results = await warehouse_base_1.WebspertController.sendRequestToAPI('order/set_order_status_to_packed', {
|
|
@@ -42,9 +41,15 @@ class WebspertController {
|
|
|
42
41
|
let roUpdateFields = null;
|
|
43
42
|
let releaseOrder = await trx.getRepository(service_1.ReleaseGood).findOne({
|
|
44
43
|
where: { id: releaseGood.id, domain },
|
|
45
|
-
relations: [
|
|
44
|
+
relations: [
|
|
45
|
+
'bizplace',
|
|
46
|
+
'domain',
|
|
47
|
+
'orderProducts',
|
|
48
|
+
'orderProducts.productDetail',
|
|
49
|
+
'orderProducts.productDetail.product'
|
|
50
|
+
]
|
|
46
51
|
});
|
|
47
|
-
if (releaseOrder) {
|
|
52
|
+
if (releaseOrder && releaseOrder.marketPackCallSuccess) {
|
|
48
53
|
try {
|
|
49
54
|
// capture update fields
|
|
50
55
|
roUpdateFields = {
|
|
@@ -107,7 +112,7 @@ class WebspertController {
|
|
|
107
112
|
const waitTime = 200;
|
|
108
113
|
releaseGood = await (0, typeorm_1.getRepository)(service_1.ReleaseGood).findOne({ where: { id: releaseGood.id, domain } });
|
|
109
114
|
// // only recall if fail
|
|
110
|
-
if (releaseGood
|
|
115
|
+
if (!(releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.marketPackCallSuccess)) {
|
|
111
116
|
await this.packOrder(releaseGood, domain, user);
|
|
112
117
|
await (0, utils_1.sleep)(waitTime);
|
|
113
118
|
}
|
|
@@ -132,7 +137,13 @@ async function updateRO(releaseGoodId, roUpdateFields, trxMgr) {
|
|
|
132
137
|
async function generatePackage(releaseGood, packages, user, trxMgr) {
|
|
133
138
|
if (packages.length > 0) {
|
|
134
139
|
packages = await Promise.all(packages.map(async (pkg) => {
|
|
135
|
-
const [items, awbUrl, packageId, trackingNo, transporter] = [
|
|
140
|
+
const [items, awbUrl, packageId, trackingNo, transporter] = [
|
|
141
|
+
pkg.products,
|
|
142
|
+
pkg.awb_link,
|
|
143
|
+
pkg.package_id,
|
|
144
|
+
pkg.tracking_number,
|
|
145
|
+
pkg.transporter
|
|
146
|
+
];
|
|
136
147
|
if (items.length < 1) {
|
|
137
148
|
throw new Error('No items found in package');
|
|
138
149
|
}
|
|
@@ -161,19 +172,19 @@ async function generatePackage(releaseGood, packages, user, trxMgr) {
|
|
|
161
172
|
}
|
|
162
173
|
let orderPackageItems = await trxMgr.getRepository(service_1.OrderPackageItem).find({
|
|
163
174
|
where: { orderPackage },
|
|
164
|
-
relations: ['productDetail']
|
|
175
|
+
relations: ['productDetail', 'productDetail.product']
|
|
165
176
|
});
|
|
166
177
|
orderPackageItems = items.map(itm => {
|
|
167
178
|
const { sku, qty } = itm;
|
|
168
179
|
if (!sku) {
|
|
169
180
|
throw new Error(`universalIdentifier missing`);
|
|
170
181
|
}
|
|
171
|
-
const matchedOrderPackageItem = orderPackageItems.find(op => op.productDetail.
|
|
182
|
+
const matchedOrderPackageItem = orderPackageItems.find(op => op.productDetail.product.sku == sku && op.releaseQty == qty);
|
|
172
183
|
if (matchedOrderPackageItem) {
|
|
173
184
|
return matchedOrderPackageItem;
|
|
174
185
|
}
|
|
175
186
|
else {
|
|
176
|
-
const matchedOrderProduct = releaseGood.orderProducts.find(op => op.productDetail.
|
|
187
|
+
const matchedOrderProduct = releaseGood.orderProducts.find(op => op.productDetail.product.sku == sku);
|
|
177
188
|
return {
|
|
178
189
|
name: utils_2.OrderNoGenerator.orderPackageItem(),
|
|
179
190
|
orderProduct: matchedOrderProduct,
|
|
@@ -212,7 +223,9 @@ async function generatePackage(releaseGood, packages, user, trxMgr) {
|
|
|
212
223
|
}
|
|
213
224
|
}
|
|
214
225
|
async function updatePackOrderStatus(trx, releaseOrder, status = false) {
|
|
215
|
-
await trx
|
|
226
|
+
await trx
|
|
227
|
+
.getRepository(service_1.ReleaseGood)
|
|
228
|
+
.update({ id: releaseOrder.id }, { lastMarketPackCall: new Date(), packOrderFail: status });
|
|
216
229
|
return true;
|
|
217
230
|
}
|
|
218
231
|
//# sourceMappingURL=webspert-controller.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webspert-controller.js","sourceRoot":"","sources":["../../../server/controllers/ecommerce/webspert-controller.ts"],"names":[],"mappings":";;;AAAA,qCAAqE;AAErE,6CAA4C;
|
|
1
|
+
{"version":3,"file":"webspert-controller.js","sourceRoot":"","sources":["../../../server/controllers/ecommerce/webspert-controller.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@things-factory/sales-base",
|
|
3
|
-
"version": "4.3.
|
|
3
|
+
"version": "4.3.523",
|
|
4
4
|
"main": "dist-server/index.js",
|
|
5
5
|
"browser": "client/index.js",
|
|
6
6
|
"things-factory": true,
|
|
@@ -36,8 +36,8 @@
|
|
|
36
36
|
"@things-factory/setting-base": "^4.3.518",
|
|
37
37
|
"@things-factory/shell": "^4.3.434",
|
|
38
38
|
"@things-factory/transport-base": "^4.3.518",
|
|
39
|
-
"@things-factory/warehouse-base": "^4.3.
|
|
39
|
+
"@things-factory/warehouse-base": "^4.3.520",
|
|
40
40
|
"axios": "1.7.7"
|
|
41
41
|
},
|
|
42
|
-
"gitHead": "
|
|
42
|
+
"gitHead": "131e5fb338b48f4b82270b38e5b23bd666f71e12"
|
|
43
43
|
}
|
|
@@ -2,31 +2,22 @@ import { EntityManager, getConnection, getRepository } from 'typeorm'
|
|
|
2
2
|
|
|
3
3
|
import { logger } from '@things-factory/env'
|
|
4
4
|
import { Domain, User } from '@things-factory/shell'
|
|
5
|
-
import {
|
|
6
|
-
|
|
5
|
+
import { sleep } from '@things-factory/utils'
|
|
7
6
|
import { WebspertController as BaseWebspertController } from '@things-factory/warehouse-base'
|
|
8
7
|
|
|
9
8
|
import { ORDER_STATUS } from '../../constants'
|
|
10
|
-
import {
|
|
11
|
-
|
|
12
|
-
import { sleep } from '@things-factory/utils'
|
|
9
|
+
import { OrderPackage, OrderPackageItem, OrderProduct, ReleaseGood } from '../../service'
|
|
13
10
|
import { OrderNoGenerator } from '../../utils'
|
|
14
11
|
|
|
15
|
-
// const { PerformanceObserver, performance } = require('node:perf_hooks')
|
|
16
|
-
|
|
17
12
|
export class WebspertController {
|
|
18
|
-
public static async packOrder(
|
|
19
|
-
releaseGood: ReleaseGood,
|
|
20
|
-
domain: Domain,
|
|
21
|
-
user: User
|
|
22
|
-
) {
|
|
13
|
+
public static async packOrder(releaseGood: ReleaseGood, domain: Domain, user: User) {
|
|
23
14
|
await getConnection().transaction(async trx => {
|
|
24
15
|
releaseGood = await trx.getRepository(ReleaseGood).findOne({ where: { id: releaseGood.id, domain } })
|
|
25
16
|
|
|
26
17
|
// let releaseOrder = await trx.getRepository(ReleaseGood).findOne({ refNo: releaseGood.refNo, refNo2: releaseGood.refNo2, refNo3: releaseGood.refNo3, domain })
|
|
27
18
|
|
|
28
19
|
// // only recall if releaseGood exists and pack Order fail
|
|
29
|
-
if (!releaseGood &&
|
|
20
|
+
if (!releaseGood && !releaseGood?.marketPackCallSuccess) return false
|
|
30
21
|
|
|
31
22
|
try {
|
|
32
23
|
let results = await BaseWebspertController.sendRequestToAPI(
|
|
@@ -53,20 +44,22 @@ export class WebspertController {
|
|
|
53
44
|
})
|
|
54
45
|
}
|
|
55
46
|
|
|
56
|
-
public static async fetchPackageAndDocument(
|
|
57
|
-
releaseGood: ReleaseGood,
|
|
58
|
-
domain: Domain,
|
|
59
|
-
user: User
|
|
60
|
-
) {
|
|
47
|
+
public static async fetchPackageAndDocument(releaseGood: ReleaseGood, domain: Domain, user: User) {
|
|
61
48
|
await getConnection().transaction(async trx => {
|
|
62
49
|
let roUpdateFields: Partial<ReleaseGood> = null
|
|
63
50
|
|
|
64
51
|
let releaseOrder = await trx.getRepository(ReleaseGood).findOne({
|
|
65
52
|
where: { id: releaseGood.id, domain },
|
|
66
|
-
relations: [
|
|
53
|
+
relations: [
|
|
54
|
+
'bizplace',
|
|
55
|
+
'domain',
|
|
56
|
+
'orderProducts',
|
|
57
|
+
'orderProducts.productDetail',
|
|
58
|
+
'orderProducts.productDetail.product'
|
|
59
|
+
]
|
|
67
60
|
})
|
|
68
61
|
|
|
69
|
-
if (releaseOrder) {
|
|
62
|
+
if (releaseOrder && releaseOrder.marketPackCallSuccess) {
|
|
70
63
|
try {
|
|
71
64
|
// capture update fields
|
|
72
65
|
roUpdateFields = {
|
|
@@ -105,13 +98,12 @@ export class WebspertController {
|
|
|
105
98
|
releaseGood: ReleaseGood,
|
|
106
99
|
orderPackages: OrderPackage[],
|
|
107
100
|
domain: Domain,
|
|
108
|
-
user: User
|
|
101
|
+
user: User
|
|
109
102
|
) {
|
|
110
103
|
if (orderPackages == null || orderPackages.length == 0) {
|
|
111
104
|
if (releaseGood) {
|
|
112
105
|
orderPackages = await getRepository(OrderPackage).find({ where: { releaseGood } })
|
|
113
|
-
}
|
|
114
|
-
else {
|
|
106
|
+
} else {
|
|
115
107
|
console.error('webspert-controller[initiateShipment]: releaseGood is not found')
|
|
116
108
|
return false
|
|
117
109
|
}
|
|
@@ -145,18 +137,13 @@ export class WebspertController {
|
|
|
145
137
|
})
|
|
146
138
|
}
|
|
147
139
|
|
|
148
|
-
public static async triggerOrderProcesses(
|
|
149
|
-
releaseGood: ReleaseGood,
|
|
150
|
-
domain: Domain,
|
|
151
|
-
user: User,
|
|
152
|
-
triggerRTS: false
|
|
153
|
-
) {
|
|
140
|
+
public static async triggerOrderProcesses(releaseGood: ReleaseGood, domain: Domain, user: User, triggerRTS: false) {
|
|
154
141
|
try {
|
|
155
142
|
const waitTime = 200
|
|
156
143
|
|
|
157
144
|
releaseGood = await getRepository(ReleaseGood).findOne({ where: { id: releaseGood.id, domain } })
|
|
158
145
|
// // only recall if fail
|
|
159
|
-
if (releaseGood
|
|
146
|
+
if (!releaseGood?.marketPackCallSuccess) {
|
|
160
147
|
await this.packOrder(releaseGood, domain, user)
|
|
161
148
|
await sleep(waitTime)
|
|
162
149
|
}
|
|
@@ -169,7 +156,6 @@ export class WebspertController {
|
|
|
169
156
|
}
|
|
170
157
|
|
|
171
158
|
return true
|
|
172
|
-
|
|
173
159
|
} catch (error) {
|
|
174
160
|
logger.error(error)
|
|
175
161
|
}
|
|
@@ -182,16 +168,17 @@ async function updateRO(releaseGoodId, roUpdateFields, trxMgr) {
|
|
|
182
168
|
}
|
|
183
169
|
}
|
|
184
170
|
|
|
185
|
-
async function generatePackage(
|
|
186
|
-
releaseGood: ReleaseGood,
|
|
187
|
-
packages: any[],
|
|
188
|
-
user: User,
|
|
189
|
-
trxMgr: EntityManager
|
|
190
|
-
) {
|
|
171
|
+
async function generatePackage(releaseGood: ReleaseGood, packages: any[], user: User, trxMgr: EntityManager) {
|
|
191
172
|
if (packages.length > 0) {
|
|
192
173
|
packages = await Promise.all(
|
|
193
174
|
packages.map(async pkg => {
|
|
194
|
-
const [items, awbUrl, packageId, trackingNo, transporter] = [
|
|
175
|
+
const [items, awbUrl, packageId, trackingNo, transporter] = [
|
|
176
|
+
pkg.products,
|
|
177
|
+
pkg.awb_link,
|
|
178
|
+
pkg.package_id,
|
|
179
|
+
pkg.tracking_number,
|
|
180
|
+
pkg.transporter
|
|
181
|
+
]
|
|
195
182
|
|
|
196
183
|
if (items.length < 1) {
|
|
197
184
|
throw new Error('No items found in package')
|
|
@@ -229,7 +216,7 @@ async function generatePackage(
|
|
|
229
216
|
|
|
230
217
|
let orderPackageItems: OrderPackageItem[] = await trxMgr.getRepository(OrderPackageItem).find({
|
|
231
218
|
where: { orderPackage },
|
|
232
|
-
relations: ['productDetail']
|
|
219
|
+
relations: ['productDetail', 'productDetail.product']
|
|
233
220
|
})
|
|
234
221
|
|
|
235
222
|
orderPackageItems = items.map(itm => {
|
|
@@ -237,12 +224,16 @@ async function generatePackage(
|
|
|
237
224
|
if (!sku) {
|
|
238
225
|
throw new Error(`universalIdentifier missing`)
|
|
239
226
|
}
|
|
240
|
-
const matchedOrderPackageItem: OrderPackageItem = orderPackageItems.find(
|
|
227
|
+
const matchedOrderPackageItem: OrderPackageItem = orderPackageItems.find(
|
|
228
|
+
op => op.productDetail.product.sku == sku && op.releaseQty == qty
|
|
229
|
+
)
|
|
241
230
|
|
|
242
231
|
if (matchedOrderPackageItem) {
|
|
243
232
|
return matchedOrderPackageItem
|
|
244
233
|
} else {
|
|
245
|
-
const matchedOrderProduct: OrderProduct = releaseGood.orderProducts.find(
|
|
234
|
+
const matchedOrderProduct: OrderProduct = releaseGood.orderProducts.find(
|
|
235
|
+
op => op.productDetail.product.sku == sku
|
|
236
|
+
)
|
|
246
237
|
return {
|
|
247
238
|
name: OrderNoGenerator.orderPackageItem(),
|
|
248
239
|
orderProduct: matchedOrderProduct,
|
|
@@ -284,6 +275,8 @@ async function generatePackage(
|
|
|
284
275
|
}
|
|
285
276
|
|
|
286
277
|
async function updatePackOrderStatus(trx, releaseOrder, status: Boolean = false) {
|
|
287
|
-
await trx
|
|
278
|
+
await trx
|
|
279
|
+
.getRepository(ReleaseGood)
|
|
280
|
+
.update({ id: releaseOrder.id }, { lastMarketPackCall: new Date(), packOrderFail: status })
|
|
288
281
|
return true
|
|
289
|
-
}
|
|
282
|
+
}
|