@things-factory/worksheet-base 4.3.524 → 4.3.526
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.
- package/dist-server/controllers/outbound/index.js +1 -7
- package/dist-server/controllers/outbound/index.js.map +1 -1
- package/dist-server/controllers/outbound/packing-worksheet-controller.js +2 -2
- package/dist-server/controllers/outbound/packing-worksheet-controller.js.map +1 -1
- package/dist-server/controllers/outbound/picking-worksheet-controller.js +96 -441
- package/dist-server/controllers/outbound/picking-worksheet-controller.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/packing/complete-packing.js +4 -4
- package/dist-server/graphql/resolvers/worksheet/packing/complete-packing.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/picking/activate-picking.js.map +1 -1
- package/dist-server/graphql/types/worksheet/index.js +2 -0
- package/dist-server/graphql/types/worksheet/index.js.map +1 -1
- package/dist-server/graphql/types/worksheet/worksheet-detail-info.js +1 -0
- package/dist-server/graphql/types/worksheet/worksheet-detail-info.js.map +1 -1
- package/dist-server/utils/lmd-util.js +123 -214
- package/dist-server/utils/lmd-util.js.map +1 -1
- package/package.json +20 -20
- package/server/controllers/outbound/index.ts +1 -9
- package/server/controllers/outbound/packing-worksheet-controller.ts +2 -2
- package/server/controllers/outbound/picking-worksheet-controller.ts +89 -507
- package/server/graphql/resolvers/worksheet/packing/complete-packing.ts +5 -4
- package/server/graphql/resolvers/worksheet/picking/activate-picking.ts +1 -1
- package/server/graphql/types/worksheet/index.ts +2 -0
- package/server/graphql/types/worksheet/worksheet-detail-info.ts +1 -0
- package/server/utils/lmd-util.ts +139 -272
|
@@ -11,9 +11,8 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
11
11
|
return t;
|
|
12
12
|
};
|
|
13
13
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
-
exports.
|
|
14
|
+
exports.createOrderPackageAndItems = exports.PickingWorksheetController = void 0;
|
|
15
15
|
const typeorm_1 = require("typeorm");
|
|
16
|
-
const uuid_1 = require("uuid");
|
|
17
16
|
const auth_base_1 = require("@things-factory/auth-base");
|
|
18
17
|
const env_1 = require("@things-factory/env");
|
|
19
18
|
const id_rule_base_1 = require("@things-factory/id-rule-base");
|
|
@@ -149,31 +148,13 @@ class PickingWorksheetController extends vas_worksheet_controller_1.VasWorksheet
|
|
|
149
148
|
return await this.createWorksheetDetails(worksheet, constants_1.WORKSHEET_TYPE.PICKING, [targetInventory]);
|
|
150
149
|
}
|
|
151
150
|
async activatePicking(worksheetNo) {
|
|
152
|
-
var _a
|
|
151
|
+
var _a;
|
|
153
152
|
let worksheet = await this.findActivatableWorksheet(worksheetNo, constants_1.WORKSHEET_TYPE.PICKING, [
|
|
154
153
|
'releaseGood',
|
|
155
154
|
'releaseGood.bizplace',
|
|
156
155
|
'releaseGood.domain',
|
|
157
156
|
'releaseGood.lastMileDelivery',
|
|
158
157
|
'releaseGood.bizplace.domain',
|
|
159
|
-
'releaseGood.orderProducts',
|
|
160
|
-
'releaseGood.orderProducts.productDetail',
|
|
161
|
-
'releaseGood.orderProducts.product',
|
|
162
|
-
'releaseGood.orderProducts.productDetail.product',
|
|
163
|
-
'releaseGood.orderProducts.productBundle',
|
|
164
|
-
'releaseGood.orderProducts.productBundle.productBundleSettings',
|
|
165
|
-
'releaseGood.orderProducts.productBundle.productBundleSettings.productDetail',
|
|
166
|
-
'releaseGood.orderPackages',
|
|
167
|
-
'releaseGood.orderPackages.orderPackageItems',
|
|
168
|
-
'releaseGood.orderPackages.orderPackageItems.orderProduct',
|
|
169
|
-
'releaseGood.orderPackages.orderPackageItems.orderProduct.product',
|
|
170
|
-
'releaseGood.orderPackages.orderPackageItems.orderProduct.productDetail',
|
|
171
|
-
'releaseGood.orderConsignments',
|
|
172
|
-
'releaseGood.orderConsignments.orderPackages',
|
|
173
|
-
'releaseGood.orderConsignments.orderPackages.orderPackageItems',
|
|
174
|
-
'releaseGood.orderConsignments.orderPackages.orderPackageItems.orderProduct',
|
|
175
|
-
'releaseGood.orderConsignments.orderPackages.orderPackageItems.orderProduct.product',
|
|
176
|
-
'releaseGood.orderConsignments.orderPackages.orderPackageItems.orderProduct.productDetail',
|
|
177
158
|
'domain',
|
|
178
159
|
'bizplace',
|
|
179
160
|
'bizplace.domain',
|
|
@@ -206,7 +187,6 @@ class PickingWorksheetController extends vas_worksheet_controller_1.VasWorksheet
|
|
|
206
187
|
});
|
|
207
188
|
worksheet.releaseGood = Object.assign(Object.assign({}, worksheet.releaseGood), { orderProducts, orderPackages });
|
|
208
189
|
let releaseGood = Object.assign(new sales_base_1.ReleaseGood(), worksheet.releaseGood);
|
|
209
|
-
let newReleaseGood;
|
|
210
190
|
// assign inventory if unassigned
|
|
211
191
|
if (!releaseGood.assignedInventory) {
|
|
212
192
|
worksheetDetails = await this.assignInventoriesForUnassignedOrder(worksheet);
|
|
@@ -287,32 +267,22 @@ class PickingWorksheetController extends vas_worksheet_controller_1.VasWorksheet
|
|
|
287
267
|
break;
|
|
288
268
|
default:
|
|
289
269
|
if (!((_a = releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.orderPackages) === null || _a === void 0 ? void 0 : _a.length)) {
|
|
290
|
-
let
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
releaseGood,
|
|
307
|
-
domain: releaseGood.domain,
|
|
308
|
-
bizplace: releaseGood.bizplace,
|
|
309
|
-
creator: this.user,
|
|
310
|
-
updater: this.user,
|
|
311
|
-
orderConsignment: orderConsignment
|
|
312
|
-
};
|
|
313
|
-
newReleaseGood = await createOrderPackageAndItems(this.trxMgr, releaseGood, orderPackage);
|
|
314
|
-
break;
|
|
315
|
-
}
|
|
270
|
+
let orderPackage = {
|
|
271
|
+
name: sales_base_1.OrderNoGenerator.orderPackage(),
|
|
272
|
+
packageId: null,
|
|
273
|
+
trackingNo: null,
|
|
274
|
+
transporter: null,
|
|
275
|
+
airwayBill: releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.airwayBill,
|
|
276
|
+
invoice: releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.invoice,
|
|
277
|
+
status: sales_base_1.ORDER_STATUS.PROCESSING,
|
|
278
|
+
releaseGood,
|
|
279
|
+
domain: releaseGood.domain,
|
|
280
|
+
bizplace: releaseGood.bizplace,
|
|
281
|
+
creator: this.user,
|
|
282
|
+
updater: this.user
|
|
283
|
+
};
|
|
284
|
+
worksheet.releaseGood = await createOrderPackageAndItems(this.trxMgr, releaseGood, orderPackage);
|
|
285
|
+
//worksheet.releaseGood = releaseGood
|
|
316
286
|
}
|
|
317
287
|
break;
|
|
318
288
|
}
|
|
@@ -320,9 +290,6 @@ class PickingWorksheetController extends vas_worksheet_controller_1.VasWorksheet
|
|
|
320
290
|
catch (error) {
|
|
321
291
|
env_1.logger.error(`picking-worksheet-controller[activatePicking]: ${error}`);
|
|
322
292
|
}
|
|
323
|
-
if (newReleaseGood) {
|
|
324
|
-
worksheet.releaseGood = newReleaseGood;
|
|
325
|
-
}
|
|
326
293
|
return worksheet;
|
|
327
294
|
}
|
|
328
295
|
async activateBulkPicking(worksheetNo) {
|
|
@@ -337,19 +304,13 @@ class PickingWorksheetController extends vas_worksheet_controller_1.VasWorksheet
|
|
|
337
304
|
.leftJoinAndSelect('w.releaseGood', 'rg')
|
|
338
305
|
.leftJoinAndSelect('rg.domain', 'rgd')
|
|
339
306
|
.leftJoinAndSelect('rg.lastMileDelivery', 'lmd')
|
|
340
|
-
.leftJoinAndSelect('rg.orderPackages', '
|
|
341
|
-
.leftJoinAndSelect('
|
|
342
|
-
.leftJoinAndSelect('
|
|
307
|
+
.leftJoinAndSelect('rg.orderPackages', 'rgop')
|
|
308
|
+
.leftJoinAndSelect('rgop.orderPackageItems', 'rgopi')
|
|
309
|
+
.leftJoinAndSelect('rgopi.orderProduct', 'op2')
|
|
343
310
|
.leftJoinAndSelect('op2.product', 'p')
|
|
344
311
|
.leftJoinAndSelect('op2.productDetail', 'pd')
|
|
345
|
-
.leftJoinAndSelect('rg.
|
|
346
|
-
.leftJoinAndSelect('
|
|
347
|
-
.leftJoinAndSelect('ocop.orderPackageItems', 'ocpi')
|
|
348
|
-
.leftJoinAndSelect('ocpi.orderProduct', 'ocp2')
|
|
349
|
-
.leftJoinAndSelect('ocp2.product', 'ocp')
|
|
350
|
-
.leftJoinAndSelect('ocp2.productDetail', 'ocpd')
|
|
351
|
-
.leftJoinAndSelect('rg.bizplace', 'rgb')
|
|
352
|
-
.leftJoinAndSelect('rgb.domain', 'rgbd')
|
|
312
|
+
.leftJoinAndSelect('rg.bizplace', 'rgbz')
|
|
313
|
+
.leftJoinAndSelect('rgbz.domain', 'bzd')
|
|
353
314
|
.leftJoinAndSelect('b.domain', 'bd')
|
|
354
315
|
.leftJoinAndSelect('b.company', 'c')
|
|
355
316
|
.leftJoinAndSelect('c.domain', 'cd')
|
|
@@ -413,7 +374,8 @@ class PickingWorksheetController extends vas_worksheet_controller_1.VasWorksheet
|
|
|
413
374
|
else {
|
|
414
375
|
const targetInventories = worksheetDetails.map((wsd) => {
|
|
415
376
|
let targetInventory = wsd.targetInventory;
|
|
416
|
-
targetInventory.status =
|
|
377
|
+
targetInventory.status =
|
|
378
|
+
targetInventory.status != 'PENDING_CANCEL' ? sales_base_1.ORDER_INVENTORY_STATUS.PICKING : targetInventory.status;
|
|
417
379
|
targetInventory.updater = this.user;
|
|
418
380
|
return targetInventory;
|
|
419
381
|
});
|
|
@@ -436,13 +398,7 @@ class PickingWorksheetController extends vas_worksheet_controller_1.VasWorksheet
|
|
|
436
398
|
'releaseGood.orderPackages.orderPackageItems.orderProduct.productDetail',
|
|
437
399
|
'releaseGood.orderProducts',
|
|
438
400
|
'releaseGood.orderProducts.productDetail',
|
|
439
|
-
'releaseGood.orderProducts.product'
|
|
440
|
-
'releaseGood.orderConsignments',
|
|
441
|
-
'releaseGood.orderConsignments.orderPackages',
|
|
442
|
-
'releaseGood.orderConsignments.orderPackages.orderPackageItems',
|
|
443
|
-
'releaseGood.orderConsignments.orderPackages.orderPackageItems.orderProduct',
|
|
444
|
-
'releaseGood.orderConsignments.orderPackages.orderPackageItems.orderProduct.product',
|
|
445
|
-
'releaseGood.orderConsignments.orderPackages.orderPackageItems.orderProduct.productDetail'
|
|
401
|
+
'releaseGood.orderProducts.product'
|
|
446
402
|
]
|
|
447
403
|
});
|
|
448
404
|
let releaseGoods = pickingOrderInventory.reduce((data, oi) => {
|
|
@@ -454,7 +410,7 @@ class PickingWorksheetController extends vas_worksheet_controller_1.VasWorksheet
|
|
|
454
410
|
// massage data and trigger SC pack order asynchronously
|
|
455
411
|
if (releaseGoods === null || releaseGoods === void 0 ? void 0 : releaseGoods.length) {
|
|
456
412
|
releaseGoods = await Promise.all(releaseGoods.map(async (releaseGood) => {
|
|
457
|
-
var _a
|
|
413
|
+
var _a;
|
|
458
414
|
try {
|
|
459
415
|
const orderSource = releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.source;
|
|
460
416
|
switch (orderSource) {
|
|
@@ -500,32 +456,21 @@ class PickingWorksheetController extends vas_worksheet_controller_1.VasWorksheet
|
|
|
500
456
|
break;
|
|
501
457
|
default:
|
|
502
458
|
if (!((_a = releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.orderPackages) === null || _a === void 0 ? void 0 : _a.length)) {
|
|
503
|
-
let
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
status: sales_base_1.ORDER_STATUS.PROCESSING,
|
|
519
|
-
releaseGood,
|
|
520
|
-
domain: releaseGood.domain,
|
|
521
|
-
bizplace: releaseGood.bizplace,
|
|
522
|
-
creator: this.user,
|
|
523
|
-
updater: this.user,
|
|
524
|
-
orderConsignment: orderConsignment
|
|
525
|
-
};
|
|
526
|
-
await createOrderPackageAndItems(this.trxMgr, releaseGood, orderPackage);
|
|
527
|
-
break;
|
|
528
|
-
}
|
|
459
|
+
let orderPackage = {
|
|
460
|
+
name: sales_base_1.OrderNoGenerator.orderPackage(),
|
|
461
|
+
packageId: null,
|
|
462
|
+
trackingNo: null,
|
|
463
|
+
transporter: null,
|
|
464
|
+
airwayBill: releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.airwayBill,
|
|
465
|
+
invoice: releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.invoice,
|
|
466
|
+
status: sales_base_1.ORDER_STATUS.PROCESSING,
|
|
467
|
+
releaseGood,
|
|
468
|
+
domain: releaseGood.domain,
|
|
469
|
+
bizplace: releaseGood.bizplace,
|
|
470
|
+
creator: this.user,
|
|
471
|
+
updater: this.user
|
|
472
|
+
};
|
|
473
|
+
releaseGood = await createOrderPackageAndItems(this.trxMgr, releaseGood, orderPackage);
|
|
529
474
|
}
|
|
530
475
|
break;
|
|
531
476
|
}
|
|
@@ -533,7 +478,7 @@ class PickingWorksheetController extends vas_worksheet_controller_1.VasWorksheet
|
|
|
533
478
|
catch (error) {
|
|
534
479
|
env_1.logger.error(`picking-worksheet-controller[activateBatchPicking]: ${error}`);
|
|
535
480
|
}
|
|
536
|
-
return Object.assign(Object.assign({}, releaseGood), { status: sales_base_1.ORDER_STATUS.PICKING, updater: this.user, assignedInventory: true });
|
|
481
|
+
return Object.assign(Object.assign({}, releaseGood), { status: releaseGood.status != 'PENDING_CANCEL' ? sales_base_1.ORDER_STATUS.PICKING : releaseGood.status, updater: this.user, assignedInventory: true });
|
|
537
482
|
}));
|
|
538
483
|
await this.trxMgr.getRepository(sales_base_1.ReleaseGood).save(releaseGoods);
|
|
539
484
|
}
|
|
@@ -1942,7 +1887,7 @@ class PickingWorksheetController extends vas_worksheet_controller_1.VasWorksheet
|
|
|
1942
1887
|
return newWorksheetDetails;
|
|
1943
1888
|
}
|
|
1944
1889
|
async activateBulkWorksheets(bizplaceId, worksheetIds) {
|
|
1945
|
-
var _a
|
|
1890
|
+
var _a;
|
|
1946
1891
|
const updatedWs = [];
|
|
1947
1892
|
try {
|
|
1948
1893
|
for (const worksheetId of worksheetIds) {
|
|
@@ -1971,12 +1916,6 @@ class PickingWorksheetController extends vas_worksheet_controller_1.VasWorksheet
|
|
|
1971
1916
|
.leftJoinAndSelect('opc_opi.orderProduct', 'opi_op')
|
|
1972
1917
|
.leftJoinAndSelect('opi_op.product', 'op_p2')
|
|
1973
1918
|
.leftJoinAndSelect('opi_op.productDetail', 'op_pd2')
|
|
1974
|
-
.leftJoinAndSelect('rg.orderConsignments', 'rg_oc')
|
|
1975
|
-
.leftJoinAndSelect('rg_oc.orderPackages', 'oc_op')
|
|
1976
|
-
.leftJoinAndSelect('oc_op.orderPackageItems', 'oc_opi')
|
|
1977
|
-
.leftJoinAndSelect('oc_opi.orderProduct', 'opi_op2')
|
|
1978
|
-
.leftJoinAndSelect('opi_op2.product', 'op_p3')
|
|
1979
|
-
.leftJoinAndSelect('opi_op2.productDetail', 'op_pd3')
|
|
1980
1919
|
.leftJoinAndSelect('w.domain', 'd')
|
|
1981
1920
|
.leftJoinAndSelect('w.bizplace', 'b')
|
|
1982
1921
|
.leftJoinAndSelect('b.company', 'c')
|
|
@@ -2049,36 +1988,27 @@ class PickingWorksheetController extends vas_worksheet_controller_1.VasWorksheet
|
|
|
2049
1988
|
}
|
|
2050
1989
|
});
|
|
2051
1990
|
break;
|
|
2052
|
-
case auth_base_1.ApplicationType.
|
|
1991
|
+
case auth_base_1.ApplicationType.WEBSPERT:
|
|
1992
|
+
// Trigger Whole Order Process
|
|
1993
|
+
sales_base_1.WebspertController.triggerOrderProcesses(releaseGood, this.domain, this.user);
|
|
2053
1994
|
break;
|
|
2054
1995
|
default:
|
|
2055
1996
|
if (!((_a = releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.orderPackages) === null || _a === void 0 ? void 0 : _a.length)) {
|
|
2056
|
-
let
|
|
2057
|
-
|
|
2058
|
-
|
|
2059
|
-
|
|
2060
|
-
|
|
2061
|
-
|
|
2062
|
-
|
|
2063
|
-
|
|
2064
|
-
|
|
2065
|
-
|
|
2066
|
-
|
|
2067
|
-
|
|
2068
|
-
|
|
2069
|
-
|
|
2070
|
-
|
|
2071
|
-
status: sales_base_1.ORDER_STATUS.PROCESSING,
|
|
2072
|
-
releaseGood,
|
|
2073
|
-
domain: releaseGood.domain,
|
|
2074
|
-
bizplace: releaseGood.bizplace,
|
|
2075
|
-
creator: this.user,
|
|
2076
|
-
updater: this.user,
|
|
2077
|
-
orderConsignment: orderConsignment
|
|
2078
|
-
};
|
|
2079
|
-
await createOrderPackageAndItems(this.trxMgr, releaseGood, orderPackage);
|
|
2080
|
-
break;
|
|
2081
|
-
}
|
|
1997
|
+
let orderPackage = {
|
|
1998
|
+
name: sales_base_1.OrderNoGenerator.orderPackage(),
|
|
1999
|
+
packageId: null,
|
|
2000
|
+
trackingNo: null,
|
|
2001
|
+
transporter: null,
|
|
2002
|
+
airwayBill: releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.airwayBill,
|
|
2003
|
+
invoice: releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.invoice,
|
|
2004
|
+
status: sales_base_1.ORDER_STATUS.PROCESSING,
|
|
2005
|
+
releaseGood,
|
|
2006
|
+
domain: releaseGood.domain,
|
|
2007
|
+
bizplace: releaseGood.bizplace,
|
|
2008
|
+
creator: this.user,
|
|
2009
|
+
updater: this.user
|
|
2010
|
+
};
|
|
2011
|
+
await createOrderPackageAndItems(this.trxMgr, releaseGood, orderPackage);
|
|
2082
2012
|
}
|
|
2083
2013
|
break;
|
|
2084
2014
|
}
|
|
@@ -2096,319 +2026,44 @@ class PickingWorksheetController extends vas_worksheet_controller_1.VasWorksheet
|
|
|
2096
2026
|
}
|
|
2097
2027
|
exports.PickingWorksheetController = PickingWorksheetController;
|
|
2098
2028
|
async function createOrderPackageAndItems(tx, releaseGood, orderPackage) {
|
|
2099
|
-
|
|
2100
|
-
|
|
2101
|
-
|
|
2102
|
-
|
|
2103
|
-
|
|
2104
|
-
|
|
2105
|
-
|
|
2106
|
-
name: sales_base_1.OrderNoGenerator.orderPackageItem(),
|
|
2107
|
-
orderProduct: op,
|
|
2108
|
-
status: sales_base_1.ORDER_STATUS.PROCESSING,
|
|
2109
|
-
releaseQty: op.releaseQty,
|
|
2110
|
-
orderPackage: savedOrderPackage,
|
|
2111
|
-
domain: releaseGood.domain,
|
|
2112
|
-
bizplace: releaseGood.bizplace,
|
|
2113
|
-
creator: releaseGood.creator,
|
|
2114
|
-
updater: releaseGood.updater,
|
|
2115
|
-
productDetail: op.productDetail
|
|
2116
|
-
};
|
|
2117
|
-
}
|
|
2118
|
-
else {
|
|
2119
|
-
let productBundle = op.productBundle;
|
|
2120
|
-
return productBundle.productBundleSettings.map(pbs => ({
|
|
2121
|
-
name: sales_base_1.OrderNoGenerator.orderPackageItem(),
|
|
2122
|
-
orderProduct: op,
|
|
2123
|
-
status: sales_base_1.ORDER_STATUS.PROCESSING,
|
|
2124
|
-
releaseQty: op.releaseQty * pbs.bundleQty,
|
|
2125
|
-
orderPackage: savedOrderPackage,
|
|
2126
|
-
domain: releaseGood.domain,
|
|
2127
|
-
bizplace: releaseGood.bizplace,
|
|
2128
|
-
creator: releaseGood.creator,
|
|
2129
|
-
updater: releaseGood.updater,
|
|
2130
|
-
productDetail: pbs.productDetail
|
|
2131
|
-
}));
|
|
2132
|
-
}
|
|
2133
|
-
})
|
|
2134
|
-
.flat();
|
|
2135
|
-
await tx.getRepository(sales_base_1.OrderPackageItem).save(orderPackageItems);
|
|
2136
|
-
orderPackage.orderPackageItems = orderPackageItems;
|
|
2137
|
-
releaseGood.orderPackages = [orderPackage];
|
|
2138
|
-
return releaseGood;
|
|
2139
|
-
}
|
|
2140
|
-
catch (e) {
|
|
2141
|
-
env_1.logger.error(`error:${e}`);
|
|
2142
|
-
}
|
|
2143
|
-
}
|
|
2144
|
-
exports.createOrderPackageAndItems = createOrderPackageAndItems;
|
|
2145
|
-
async function splitOrderConsignment(tx, releaseGood, user, domain) {
|
|
2146
|
-
try {
|
|
2147
|
-
let currentConsignment = { id: (0, uuid_1.v4)(), totalWeight: 0, orderPackages: [] };
|
|
2148
|
-
let totalConsignments = [];
|
|
2149
|
-
let currOrderProducts = [];
|
|
2150
|
-
let totalConsignmentWeight = 0;
|
|
2151
|
-
let orderProducts = releaseGood.orderProducts;
|
|
2152
|
-
let maxConsignmentWeight = releaseGood.lastMileDelivery.consignmentWeight;
|
|
2153
|
-
//sort product according to packingType
|
|
2154
|
-
let sortOrderProducts = await sortingProduct(orderProducts);
|
|
2155
|
-
//initialise new orderConsignment created
|
|
2156
|
-
const createdNewConsignment = () => ({
|
|
2157
|
-
id: (0, uuid_1.v4)(),
|
|
2158
|
-
totalWeight: 0,
|
|
2159
|
-
orderPackages: []
|
|
2160
|
-
});
|
|
2161
|
-
//push orderPackage & packageItems into consigment
|
|
2162
|
-
const createPackageConsignment = (consignment, packageWeight, releaseGood, orderProduct, releaseQty, user) => {
|
|
2163
|
-
consignment.totalWeight += packageWeight;
|
|
2164
|
-
currentConsignment.orderPackages.push({
|
|
2165
|
-
id: (0, uuid_1.v4)(),
|
|
2166
|
-
name: sales_base_1.OrderNoGenerator.orderPackage(),
|
|
2167
|
-
packageId: null,
|
|
2168
|
-
trackingNo: null,
|
|
2169
|
-
transporter: null,
|
|
2170
|
-
airwayBill: releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.airwayBill,
|
|
2171
|
-
invoice: releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.invoice,
|
|
2029
|
+
let savedOrderPackage = await tx.getRepository(sales_base_1.OrderPackage).save(orderPackage);
|
|
2030
|
+
const orderPackageItems = releaseGood.orderProducts
|
|
2031
|
+
.map(op => {
|
|
2032
|
+
if (op.product) {
|
|
2033
|
+
return {
|
|
2034
|
+
name: sales_base_1.OrderNoGenerator.orderPackageItem(),
|
|
2035
|
+
orderProduct: op,
|
|
2172
2036
|
status: sales_base_1.ORDER_STATUS.PROCESSING,
|
|
2173
|
-
|
|
2037
|
+
releaseQty: op.releaseQty,
|
|
2038
|
+
orderPackage: savedOrderPackage,
|
|
2174
2039
|
domain: releaseGood.domain,
|
|
2175
2040
|
bizplace: releaseGood.bizplace,
|
|
2176
|
-
creator:
|
|
2177
|
-
updater:
|
|
2178
|
-
|
|
2179
|
-
|
|
2180
|
-
id: (0, uuid_1.v4)(),
|
|
2181
|
-
name: sales_base_1.OrderNoGenerator.orderPackageItem(),
|
|
2182
|
-
releaseQty: releaseQty,
|
|
2183
|
-
orderProduct: orderProduct,
|
|
2184
|
-
domain: releaseGood.domain,
|
|
2185
|
-
bizplace: releaseGood.bizplace,
|
|
2186
|
-
creator: releaseGood.creator,
|
|
2187
|
-
updater: releaseGood.updater,
|
|
2188
|
-
productDetail: orderProduct.productDetail
|
|
2189
|
-
}
|
|
2190
|
-
]
|
|
2191
|
-
});
|
|
2192
|
-
};
|
|
2193
|
-
const createPackage = op => {
|
|
2194
|
-
let releaseQty = op.productDetail.packingType.toLowerCase() === 'carton' ? 1 : op.releaseQty;
|
|
2195
|
-
let packageWeight = op.productDetail.packingType.toLowerCase() === 'carton'
|
|
2196
|
-
? op.productDetail.grossWeight
|
|
2197
|
-
: op.productDetail.grossWeight * releaseQty;
|
|
2198
|
-
const isCarton = op.productDetail.packingType.toLowerCase() === 'carton';
|
|
2199
|
-
totalConsignmentWeight += packageWeight;
|
|
2200
|
-
const requiresNewConsignment = totalConsignmentWeight >= maxConsignmentWeight;
|
|
2201
|
-
if (isCarton || op.releaseQty > 1) {
|
|
2202
|
-
if (requiresNewConsignment) {
|
|
2203
|
-
//push the current consignment to create new consignment
|
|
2204
|
-
totalConsignments.push(currentConsignment);
|
|
2205
|
-
//Initialise the totalConsignment weight to the new data
|
|
2206
|
-
totalConsignmentWeight = packageWeight + 0;
|
|
2207
|
-
currentConsignment = createdNewConsignment();
|
|
2208
|
-
}
|
|
2209
|
-
createPackageConsignment(currentConsignment, packageWeight, releaseGood, op, releaseQty, user);
|
|
2210
|
-
}
|
|
2211
|
-
else {
|
|
2212
|
-
currOrderProducts.push(op);
|
|
2213
|
-
}
|
|
2214
|
-
};
|
|
2215
|
-
sortOrderProducts.forEach(item => {
|
|
2216
|
-
if (item.packingType.toLowerCase() === 'carton') {
|
|
2217
|
-
for (let i = 0; i < item.releaseQty; i++) {
|
|
2218
|
-
createPackage(item);
|
|
2219
|
-
}
|
|
2220
|
-
}
|
|
2221
|
-
else {
|
|
2222
|
-
createPackage(item);
|
|
2223
|
-
}
|
|
2224
|
-
});
|
|
2225
|
-
// Add any remaining items to the last orderPackage
|
|
2226
|
-
if (currOrderProducts.length > 0) {
|
|
2227
|
-
let availableConsignment;
|
|
2228
|
-
for (let i = 0; i < currOrderProducts.length; i++) {
|
|
2229
|
-
let op = currOrderProducts[i];
|
|
2230
|
-
let releaseQty = op.releaseQty;
|
|
2231
|
-
let currProductWeight = op.productDetail.grossWeight * op.releaseQty;
|
|
2232
|
-
let lastOrderPackage = currentConsignment.orderPackages[currentConsignment.orderPackages.length - 1];
|
|
2233
|
-
//push the product into last current consignment orderPackage
|
|
2234
|
-
if (currentConsignment.totalWeight + currProductWeight < maxConsignmentWeight) {
|
|
2235
|
-
if (lastOrderPackage) {
|
|
2236
|
-
lastOrderPackage.orderPackageItems.push({
|
|
2237
|
-
id: (0, uuid_1.v4)(),
|
|
2238
|
-
name: sales_base_1.OrderNoGenerator.orderPackageItem(),
|
|
2239
|
-
releaseQty: op.releaseQty,
|
|
2240
|
-
orderProduct: op,
|
|
2241
|
-
domain: releaseGood.domain,
|
|
2242
|
-
bizplace: releaseGood.bizplace,
|
|
2243
|
-
creator: releaseGood.creator,
|
|
2244
|
-
updater: releaseGood.updater,
|
|
2245
|
-
productDetail: op.productDetail
|
|
2246
|
-
});
|
|
2247
|
-
}
|
|
2248
|
-
else {
|
|
2249
|
-
await createPackageConsignment(currentConsignment, currProductWeight, releaseGood, op, releaseQty, user);
|
|
2250
|
-
}
|
|
2251
|
-
}
|
|
2252
|
-
else {
|
|
2253
|
-
//push the currentConsignment into list of all the consignments
|
|
2254
|
-
if (!totalConsignments.some(tc => tc.id === currentConsignment.id)) {
|
|
2255
|
-
totalConsignments.push(currentConsignment);
|
|
2256
|
-
}
|
|
2257
|
-
//find one order consignment to include the product
|
|
2258
|
-
availableConsignment = totalConsignments.find(tc => {
|
|
2259
|
-
tc.totalWeight += currProductWeight < maxConsignmentWeight;
|
|
2260
|
-
});
|
|
2261
|
-
if (availableConsignment) {
|
|
2262
|
-
let lastOrderPackage = availableConsignment.orderPackages[currentConsignment.orderPackages.length - 1];
|
|
2263
|
-
lastOrderPackage.orderPackageItems.push({
|
|
2264
|
-
id: (0, uuid_1.v4)(),
|
|
2265
|
-
name: sales_base_1.OrderNoGenerator.orderPackageItem(),
|
|
2266
|
-
releaseQty: op.releaseQty,
|
|
2267
|
-
orderProducts: op,
|
|
2268
|
-
domain: releaseGood.domain,
|
|
2269
|
-
bizplace: releaseGood.bizplace,
|
|
2270
|
-
creator: releaseGood.creator,
|
|
2271
|
-
updater: releaseGood.updater,
|
|
2272
|
-
productDetail: op.productDetail
|
|
2273
|
-
});
|
|
2274
|
-
//update the totalConsignment data
|
|
2275
|
-
totalConsignments = totalConsignments.map(tc => {
|
|
2276
|
-
tc.id === availableConsignment.id ? availableConsignment : tc;
|
|
2277
|
-
});
|
|
2278
|
-
}
|
|
2279
|
-
else {
|
|
2280
|
-
//create new consignment if no consignment available
|
|
2281
|
-
currentConsignment = createdNewConsignment();
|
|
2282
|
-
createPackageConsignment(currentConsignment, currProductWeight, releaseGood, op, releaseQty, user);
|
|
2283
|
-
totalConsignments.push(currentConsignment);
|
|
2284
|
-
}
|
|
2285
|
-
}
|
|
2286
|
-
}
|
|
2287
|
-
}
|
|
2288
|
-
//totalConsignments.length < 1 ? totalConsignments.push(currentConsignment) : totalConsignments
|
|
2289
|
-
const existingConsignment = totalConsignments.find(tc => tc.id === currentConsignment.id);
|
|
2290
|
-
if (!existingConsignment) {
|
|
2291
|
-
totalConsignments.push(currentConsignment);
|
|
2041
|
+
creator: releaseGood.creator,
|
|
2042
|
+
updater: releaseGood.updater,
|
|
2043
|
+
productDetail: op.productDetail
|
|
2044
|
+
};
|
|
2292
2045
|
}
|
|
2293
|
-
|
|
2294
|
-
|
|
2295
|
-
|
|
2296
|
-
|
|
2297
|
-
|
|
2298
|
-
|
|
2299
|
-
|
|
2300
|
-
|
|
2301
|
-
|
|
2302
|
-
|
|
2303
|
-
|
|
2304
|
-
|
|
2305
|
-
|
|
2306
|
-
|
|
2307
|
-
name: sales_base_1.OrderNoGenerator.orderConsignment(),
|
|
2308
|
-
noOfPackages: ((_a = orderCons === null || orderCons === void 0 ? void 0 : orderCons.orderPackages) === null || _a === void 0 ? void 0 : _a.length) ? orderCons.orderPackages.length : 1,
|
|
2309
|
-
domain: releaseGood.domain,
|
|
2310
|
-
bizplace: releaseGood.bizplace,
|
|
2311
|
-
releaseGood: releaseGood,
|
|
2312
|
-
orderPackages: [],
|
|
2313
|
-
creator: user,
|
|
2314
|
-
updater: user
|
|
2315
|
-
};
|
|
2316
|
-
return tx.getRepository(sales_base_1.OrderConsignment).save(orderConsignment);
|
|
2317
|
-
}
|
|
2318
|
-
catch (e) {
|
|
2319
|
-
env_1.logger.error(`[lmd-create-order-consignment]: ${e} `);
|
|
2320
|
-
}
|
|
2321
|
-
}
|
|
2322
|
-
exports.createOrderConsignment = createOrderConsignment;
|
|
2323
|
-
async function createConsignmentPackage(tx, orderPackageData, releaseGood, user, orderConsignment) {
|
|
2324
|
-
try {
|
|
2325
|
-
const orderPackage = {
|
|
2326
|
-
id: (0, uuid_1.v4)(),
|
|
2327
|
-
name: sales_base_1.OrderNoGenerator.orderPackage(),
|
|
2328
|
-
packageId: null,
|
|
2329
|
-
trackingNo: null,
|
|
2330
|
-
transporter: null,
|
|
2331
|
-
airwayBill: releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.airwayBill,
|
|
2332
|
-
invoice: releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.invoice,
|
|
2333
|
-
status: sales_base_1.ORDER_STATUS.PROCESSING,
|
|
2334
|
-
releaseGood,
|
|
2335
|
-
domain: releaseGood.domain,
|
|
2336
|
-
bizplace: releaseGood.bizplace,
|
|
2337
|
-
creator: user,
|
|
2338
|
-
updater: user,
|
|
2339
|
-
orderConsignment
|
|
2340
|
-
};
|
|
2341
|
-
return tx.getRepository(sales_base_1.OrderPackage).save(orderPackage);
|
|
2342
|
-
}
|
|
2343
|
-
catch (e) {
|
|
2344
|
-
env_1.logger.error(`[lmd-create-order-package]: ${e} `);
|
|
2345
|
-
}
|
|
2346
|
-
}
|
|
2347
|
-
exports.createConsignmentPackage = createConsignmentPackage;
|
|
2348
|
-
async function createConsignmentPackageItem(tx, orderPackageItemsData, savedOrderPackage, releaseGood) {
|
|
2349
|
-
try {
|
|
2350
|
-
const orderPackageItems = orderPackageItemsData.map(opi => ({
|
|
2351
|
-
id: opi.id,
|
|
2352
|
-
name: opi.name,
|
|
2353
|
-
orderProduct: opi.orderProduct,
|
|
2354
|
-
status: sales_base_1.ORDER_STATUS.PROCESSING,
|
|
2355
|
-
releaseQty: opi.releaseQty,
|
|
2356
|
-
orderPackage: savedOrderPackage,
|
|
2357
|
-
domain: releaseGood.domain,
|
|
2358
|
-
bizplace: releaseGood.bizplace,
|
|
2359
|
-
creator: releaseGood.creator,
|
|
2360
|
-
updater: releaseGood.updater,
|
|
2361
|
-
productDetail: opi.productDetail
|
|
2362
|
-
}));
|
|
2363
|
-
await tx.getRepository(sales_base_1.OrderPackageItem).save(orderPackageItems);
|
|
2364
|
-
return orderPackageItems;
|
|
2365
|
-
}
|
|
2366
|
-
catch (e) {
|
|
2367
|
-
env_1.logger.error(`[lmd-create-order-package]: ${e} `);
|
|
2368
|
-
}
|
|
2369
|
-
}
|
|
2370
|
-
exports.createConsignmentPackageItem = createConsignmentPackageItem;
|
|
2371
|
-
async function createConsignmentWithMultipackage(tx, orderConsList, releaseGood, user, domain) {
|
|
2372
|
-
try {
|
|
2373
|
-
let newOrderPackages = [];
|
|
2374
|
-
let newOrderConsignments = [];
|
|
2375
|
-
for (const orderCons of orderConsList) {
|
|
2376
|
-
const savedOrderConsignment = await createOrderConsignment(tx, orderCons, releaseGood, user);
|
|
2377
|
-
for (const currentPackage of orderCons.orderPackages) {
|
|
2378
|
-
const savedOrderPackage = await createConsignmentPackage(tx, currentPackage, releaseGood, user, savedOrderConsignment);
|
|
2379
|
-
const orderPackageItems = await createConsignmentPackageItem(tx, currentPackage.orderPackageItems, savedOrderPackage, releaseGood);
|
|
2380
|
-
savedOrderPackage.orderPackageItems = orderPackageItems;
|
|
2381
|
-
savedOrderConsignment.orderPackages.push(savedOrderPackage);
|
|
2382
|
-
newOrderPackages.push(savedOrderPackage);
|
|
2383
|
-
}
|
|
2384
|
-
newOrderConsignments.push(savedOrderConsignment);
|
|
2046
|
+
else {
|
|
2047
|
+
let productBundle = op.productBundle;
|
|
2048
|
+
return productBundle.productBundleSettings.map(pbs => ({
|
|
2049
|
+
name: sales_base_1.OrderNoGenerator.orderPackageItem(),
|
|
2050
|
+
orderProduct: op,
|
|
2051
|
+
status: sales_base_1.ORDER_STATUS.PROCESSING,
|
|
2052
|
+
releaseQty: op.releaseQty * pbs.bundleQty,
|
|
2053
|
+
orderPackage: savedOrderPackage,
|
|
2054
|
+
domain: releaseGood.domain,
|
|
2055
|
+
bizplace: releaseGood.bizplace,
|
|
2056
|
+
creator: releaseGood.creator,
|
|
2057
|
+
updater: releaseGood.updater,
|
|
2058
|
+
productDetail: pbs.productDetail
|
|
2059
|
+
}));
|
|
2385
2060
|
}
|
|
2386
|
-
|
|
2387
|
-
|
|
2388
|
-
|
|
2389
|
-
|
|
2390
|
-
|
|
2391
|
-
|
|
2392
|
-
throw error;
|
|
2393
|
-
}
|
|
2061
|
+
})
|
|
2062
|
+
.flat();
|
|
2063
|
+
await tx.getRepository(sales_base_1.OrderPackageItem).save(orderPackageItems);
|
|
2064
|
+
orderPackage.orderPackageItems = orderPackageItems;
|
|
2065
|
+
releaseGood.orderPackages = [orderPackage];
|
|
2066
|
+
return releaseGood;
|
|
2394
2067
|
}
|
|
2395
|
-
exports.
|
|
2396
|
-
async function sortingProduct(orderProducts) {
|
|
2397
|
-
try {
|
|
2398
|
-
orderProducts.sort((a, b) => {
|
|
2399
|
-
if (a.product.packingType !== b.product.packingType) {
|
|
2400
|
-
return a.product.packingType < b.product.packingType ? -1 : 1;
|
|
2401
|
-
}
|
|
2402
|
-
if (a.product.sku !== b.product.sku) {
|
|
2403
|
-
return a.product.sku < b.product.sku ? -1 : 1;
|
|
2404
|
-
}
|
|
2405
|
-
return 0;
|
|
2406
|
-
});
|
|
2407
|
-
return orderProducts;
|
|
2408
|
-
}
|
|
2409
|
-
catch (e) {
|
|
2410
|
-
env_1.logger.error(`[lmd-sort-product]: ${e} `);
|
|
2411
|
-
}
|
|
2412
|
-
}
|
|
2413
|
-
exports.sortingProduct = sortingProduct;
|
|
2068
|
+
exports.createOrderPackageAndItems = createOrderPackageAndItems;
|
|
2414
2069
|
//# sourceMappingURL=picking-worksheet-controller.js.map
|