@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.
Files changed (24) hide show
  1. package/dist-server/controllers/outbound/index.js +1 -7
  2. package/dist-server/controllers/outbound/index.js.map +1 -1
  3. package/dist-server/controllers/outbound/packing-worksheet-controller.js +2 -2
  4. package/dist-server/controllers/outbound/packing-worksheet-controller.js.map +1 -1
  5. package/dist-server/controllers/outbound/picking-worksheet-controller.js +96 -441
  6. package/dist-server/controllers/outbound/picking-worksheet-controller.js.map +1 -1
  7. package/dist-server/graphql/resolvers/worksheet/packing/complete-packing.js +4 -4
  8. package/dist-server/graphql/resolvers/worksheet/packing/complete-packing.js.map +1 -1
  9. package/dist-server/graphql/resolvers/worksheet/picking/activate-picking.js.map +1 -1
  10. package/dist-server/graphql/types/worksheet/index.js +2 -0
  11. package/dist-server/graphql/types/worksheet/index.js.map +1 -1
  12. package/dist-server/graphql/types/worksheet/worksheet-detail-info.js +1 -0
  13. package/dist-server/graphql/types/worksheet/worksheet-detail-info.js.map +1 -1
  14. package/dist-server/utils/lmd-util.js +123 -214
  15. package/dist-server/utils/lmd-util.js.map +1 -1
  16. package/package.json +20 -20
  17. package/server/controllers/outbound/index.ts +1 -9
  18. package/server/controllers/outbound/packing-worksheet-controller.ts +2 -2
  19. package/server/controllers/outbound/picking-worksheet-controller.ts +89 -507
  20. package/server/graphql/resolvers/worksheet/packing/complete-packing.ts +5 -4
  21. package/server/graphql/resolvers/worksheet/picking/activate-picking.ts +1 -1
  22. package/server/graphql/types/worksheet/index.ts +2 -0
  23. package/server/graphql/types/worksheet/worksheet-detail-info.ts +1 -0
  24. 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.sortingProduct = exports.createConsignmentWithMultipackage = exports.createConsignmentPackageItem = exports.createConsignmentPackage = exports.createOrderConsignment = exports.splitOrderConsignment = exports.createOrderPackageAndItems = exports.PickingWorksheetController = void 0;
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, _b;
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 mps = (_b = releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.lastMileDelivery) === null || _b === void 0 ? void 0 : _b.mps;
291
- switch (mps) {
292
- case true:
293
- newReleaseGood = await splitOrderConsignment(this.trxMgr, releaseGood, this.user, this.domain);
294
- break;
295
- case false:
296
- case undefined:
297
- let orderConsignment = await createOrderConsignment(this.trxMgr, {}, releaseGood, this.user);
298
- let orderPackage = {
299
- name: sales_base_1.OrderNoGenerator.orderPackage(),
300
- packageId: null,
301
- trackingNo: null,
302
- transporter: null,
303
- airwayBill: releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.airwayBill,
304
- invoice: releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.invoice,
305
- status: sales_base_1.ORDER_STATUS.PROCESSING,
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', 'op')
341
- .leftJoinAndSelect('op.orderPackageItems', 'opi')
342
- .leftJoinAndSelect('opi.orderProduct', 'op2')
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.orderConsignments', 'oc')
346
- .leftJoinAndSelect('oc.orderPackages', 'ocop')
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 = sales_base_1.ORDER_INVENTORY_STATUS.PICKING;
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, _b;
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 mps = (_b = releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.lastMileDelivery) === null || _b === void 0 ? void 0 : _b.mps;
504
- switch (mps) {
505
- case true:
506
- await splitOrderConsignment(this.trxMgr, releaseGood, this.user, this.domain);
507
- break;
508
- case false:
509
- case undefined:
510
- let orderConsignment = await createOrderConsignment(this.trxMgr, {}, releaseGood, this.user);
511
- let orderPackage = {
512
- name: sales_base_1.OrderNoGenerator.orderPackage(),
513
- packageId: null,
514
- trackingNo: null,
515
- transporter: null,
516
- airwayBill: releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.airwayBill,
517
- invoice: releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.invoice,
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, _b;
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.MMS:
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 mps = (_b = releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.lastMileDelivery) === null || _b === void 0 ? void 0 : _b.mps;
2057
- switch (mps) {
2058
- case true:
2059
- await splitOrderConsignment(this.trxMgr, releaseGood, this.user, this.domain);
2060
- break;
2061
- case false:
2062
- case undefined:
2063
- let orderConsignment = await createOrderConsignment(this.trxMgr, {}, releaseGood, this.user);
2064
- let orderPackage = {
2065
- name: sales_base_1.OrderNoGenerator.orderPackage(),
2066
- packageId: null,
2067
- trackingNo: null,
2068
- transporter: null,
2069
- airwayBill: releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.airwayBill,
2070
- invoice: releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.invoice,
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
- try {
2100
- let savedOrderPackage = await tx.getRepository(sales_base_1.OrderPackage).save(orderPackage);
2101
- const orderPackageItems = releaseGood.orderProducts
2102
- .map(op => {
2103
- if (op.product) {
2104
- return {
2105
- id: (0, uuid_1.v4)(),
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
- releaseGood,
2037
+ releaseQty: op.releaseQty,
2038
+ orderPackage: savedOrderPackage,
2174
2039
  domain: releaseGood.domain,
2175
2040
  bizplace: releaseGood.bizplace,
2176
- creator: user,
2177
- updater: user,
2178
- orderPackageItems: [
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
- let orderConsignment = totalConsignments;
2294
- let newReleaseGood = await createConsignmentWithMultipackage(tx, orderConsignment, releaseGood, user, domain);
2295
- return newReleaseGood;
2296
- }
2297
- catch (e) {
2298
- env_1.logger.error(`[lmd-create-consignment-notes]: ${e} `);
2299
- }
2300
- }
2301
- exports.splitOrderConsignment = splitOrderConsignment;
2302
- async function createOrderConsignment(tx, orderCons, releaseGood, user) {
2303
- var _a;
2304
- try {
2305
- const orderConsignment = {
2306
- id: (0, uuid_1.v4)(),
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
- releaseGood.orderConsignments = newOrderConsignments;
2387
- releaseGood.orderPackages = newOrderPackages;
2388
- return releaseGood;
2389
- }
2390
- catch (error) {
2391
- console.error('Error creating consignment with multiple packages:', error);
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.createConsignmentWithMultipackage = createConsignmentWithMultipackage;
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