@things-factory/worksheet-base 4.3.393 → 4.3.395

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 (28) hide show
  1. package/dist-server/controllers/outbound/index.js +3 -0
  2. package/dist-server/controllers/outbound/index.js.map +1 -1
  3. package/dist-server/controllers/outbound/picking-worksheet-controller.js +160 -14
  4. package/dist-server/controllers/outbound/picking-worksheet-controller.js.map +1 -1
  5. package/dist-server/graphql/resolvers/worksheet/picking/activate-batch-picking.js +71 -1
  6. package/dist-server/graphql/resolvers/worksheet/picking/activate-batch-picking.js.map +1 -1
  7. package/dist-server/graphql/resolvers/worksheet/picking/activate-picking.js +21 -28
  8. package/dist-server/graphql/resolvers/worksheet/picking/activate-picking.js.map +1 -1
  9. package/dist-server/graphql/resolvers/worksheet/picking/bulk-activate-picking.js +21 -4
  10. package/dist-server/graphql/resolvers/worksheet/picking/bulk-activate-picking.js.map +1 -1
  11. package/dist-server/graphql/resolvers/worksheet/picking/complete-batch-picking.js +96 -130
  12. package/dist-server/graphql/resolvers/worksheet/picking/complete-batch-picking.js.map +1 -1
  13. package/dist-server/graphql/resolvers/worksheet/picking/complete-picking.js +22 -56
  14. package/dist-server/graphql/resolvers/worksheet/picking/complete-picking.js.map +1 -1
  15. package/dist-server/index.js +3 -0
  16. package/dist-server/index.js.map +1 -1
  17. package/dist-server/utils/lmd-util.js +193 -162
  18. package/dist-server/utils/lmd-util.js.map +1 -1
  19. package/package.json +9 -9
  20. package/server/controllers/outbound/index.ts +2 -0
  21. package/server/controllers/outbound/picking-worksheet-controller.ts +172 -19
  22. package/server/graphql/resolvers/worksheet/picking/activate-batch-picking.ts +107 -6
  23. package/server/graphql/resolvers/worksheet/picking/activate-picking.ts +73 -65
  24. package/server/graphql/resolvers/worksheet/picking/bulk-activate-picking.ts +30 -5
  25. package/server/graphql/resolvers/worksheet/picking/complete-batch-picking.ts +34 -56
  26. package/server/graphql/resolvers/worksheet/picking/complete-picking.ts +4 -36
  27. package/server/index.ts +2 -0
  28. package/server/utils/lmd-util.ts +180 -144
@@ -14,9 +14,12 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.createOrderPackageAndItems = void 0;
17
18
  __exportStar(require("./loading-worksheet-controller"), exports);
18
19
  __exportStar(require("./packing-worksheet-controller"), exports);
19
20
  __exportStar(require("./picking-worksheet-controller"), exports);
20
21
  __exportStar(require("./returning-worksheet-controller"), exports);
21
22
  __exportStar(require("./sorting-worksheet-controller"), exports);
23
+ var picking_worksheet_controller_1 = require("./picking-worksheet-controller");
24
+ Object.defineProperty(exports, "createOrderPackageAndItems", { enumerable: true, get: function () { return picking_worksheet_controller_1.createOrderPackageAndItems; } });
22
25
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../server/controllers/outbound/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iEAA8C;AAC9C,iEAA8C;AAC9C,iEAA8C;AAC9C,mEAAgD;AAChD,iEAA8C"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../server/controllers/outbound/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,iEAA8C;AAC9C,iEAA8C;AAC9C,iEAA8C;AAC9C,mEAAgD;AAChD,iEAA8C;AAE9C,+EAAyE;AAAjE,0IAAA,0BAA0B,OAAA"}
@@ -11,7 +11,7 @@ var __rest = (this && this.__rest) || function (s, e) {
11
11
  return t;
12
12
  };
13
13
  Object.defineProperty(exports, "__esModule", { value: true });
14
- exports.PickingWorksheetController = void 0;
14
+ exports.createOrderPackageAndItems = exports.PickingWorksheetController = void 0;
15
15
  const typeorm_1 = require("typeorm");
16
16
  const auth_base_1 = require("@things-factory/auth-base");
17
17
  const env_1 = require("@things-factory/env");
@@ -156,11 +156,13 @@ class PickingWorksheetController extends vas_worksheet_controller_1.VasWorksheet
156
156
  'releaseGood.bizplace.domain',
157
157
  'releaseGood.orderProducts',
158
158
  'releaseGood.orderProducts.productDetail',
159
+ 'releaseGood.orderProducts.product',
159
160
  'releaseGood.orderProducts.productDetail.product',
160
161
  'releaseGood.orderPackages',
161
162
  'releaseGood.orderPackages.orderPackageItems',
162
163
  'releaseGood.orderPackages.orderPackageItems.orderProduct',
163
164
  'releaseGood.orderPackages.orderPackageItems.orderProduct.product',
165
+ 'releaseGood.orderPackages.orderPackageItems.orderProduct.productDetail',
164
166
  'domain',
165
167
  'bizplace',
166
168
  'bizplace.domain',
@@ -247,6 +249,21 @@ class PickingWorksheetController extends vas_worksheet_controller_1.VasWorksheet
247
249
  });
248
250
  break;
249
251
  default:
252
+ let orderPackage = {
253
+ name: sales_base_1.OrderNoGenerator.orderPackage(),
254
+ packageId: null,
255
+ trackingNo: null,
256
+ transporter: null,
257
+ airwayBill: releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.airwayBill,
258
+ invoice: releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.invoice,
259
+ status: sales_base_1.ORDER_STATUS.PROCESSING,
260
+ releaseGood,
261
+ domain: releaseGood.domain,
262
+ bizplace: releaseGood.bizplace,
263
+ creator: releaseGood.creator,
264
+ updater: releaseGood.updater
265
+ };
266
+ await createOrderPackageAndItems(this.trxMgr, releaseGood, orderPackage);
250
267
  break;
251
268
  }
252
269
  }
@@ -266,6 +283,12 @@ class PickingWorksheetController extends vas_worksheet_controller_1.VasWorksheet
266
283
  .leftJoinAndSelect('w.worksheetDetails', 'wd')
267
284
  .leftJoinAndSelect('w.releaseGood', 'rg')
268
285
  .leftJoinAndSelect('rg.domain', 'rgd')
286
+ .leftJoinAndSelect('rg.lastMileDelivery', 'lmd')
287
+ .leftJoinAndSelect('rg.orderPackages', 'rgop')
288
+ .leftJoinAndSelect('rgop.orderPackageItems', 'rgopi')
289
+ .leftJoinAndSelect('rgopi.orderProduct', 'op2')
290
+ .leftJoinAndSelect('op2.product', 'p')
291
+ .leftJoinAndSelect('op2.productDetail', 'pd')
269
292
  .leftJoinAndSelect('rg.bizplace', 'rgbz')
270
293
  .leftJoinAndSelect('rgbz.domain', 'bzd')
271
294
  .leftJoinAndSelect('b.domain', 'bd')
@@ -291,9 +314,10 @@ class PickingWorksheetController extends vas_worksheet_controller_1.VasWorksheet
291
314
  }
292
315
  }
293
316
  const groupedWsBiz = [...groupWs.entries()];
294
- await Promise.all(groupedWsBiz.map(async ([bizplaceId, worksheetIds]) => {
317
+ const updatedWs = await Promise.all(groupedWsBiz.map(async ([bizplaceId, worksheetIds]) => {
295
318
  return await this.activateBulkWorksheets(bizplaceId, worksheetIds);
296
319
  }));
320
+ worksheets = updatedWs.flat();
297
321
  }
298
322
  catch (error) {
299
323
  throw error;
@@ -349,7 +373,11 @@ class PickingWorksheetController extends vas_worksheet_controller_1.VasWorksheet
349
373
  'releaseGood.orderPackages',
350
374
  'releaseGood.orderPackages.orderPackageItems',
351
375
  'releaseGood.orderPackages.orderPackageItems.orderProduct',
352
- 'releaseGood.orderPackages.orderPackageItems.orderProduct.product'
376
+ 'releaseGood.orderPackages.orderPackageItems.orderProduct.product',
377
+ 'releaseGood.orderPackages.orderPackageItems.orderProduct.productDetail',
378
+ 'releaseGood.orderProducts',
379
+ 'releaseGood.orderProducts.productDetail',
380
+ 'releaseGood.orderProducts.product',
353
381
  ]
354
382
  });
355
383
  let releaseGoods = pickingOrderInventory.reduce((data, oi) => {
@@ -401,6 +429,21 @@ class PickingWorksheetController extends vas_worksheet_controller_1.VasWorksheet
401
429
  });
402
430
  break;
403
431
  default:
432
+ let orderPackage = {
433
+ name: sales_base_1.OrderNoGenerator.orderPackage(),
434
+ packageId: null,
435
+ trackingNo: null,
436
+ transporter: null,
437
+ airwayBill: releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.airwayBill,
438
+ invoice: releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.invoice,
439
+ status: sales_base_1.ORDER_STATUS.PROCESSING,
440
+ releaseGood,
441
+ domain: releaseGood.domain,
442
+ bizplace: releaseGood.bizplace,
443
+ creator: releaseGood.creator,
444
+ updater: releaseGood.updater
445
+ };
446
+ await createOrderPackageAndItems(this.trxMgr, releaseGood, orderPackage);
404
447
  break;
405
448
  }
406
449
  }
@@ -519,6 +562,47 @@ class PickingWorksheetController extends vas_worksheet_controller_1.VasWorksheet
519
562
  `, worksheetDetailFilters.map((data, idx) => {
520
563
  return data.value;
521
564
  }));
565
+ // find directly without going through the materialized view
566
+ if ((worksheetDetailRaw.length < 1)) {
567
+ worksheetDetailRaw = await this.trxMgr.query(`
568
+ select
569
+ wd.id AS "worksheetDetailId",
570
+ wd.name as "worksheetDetailName",
571
+ w.id as "worksheetId",
572
+ w.domain_id as "domainId",
573
+ op.id as "targetProductId",
574
+ oi.product_id as "productId",
575
+ oi.product_detail_id as "productDetailId",
576
+ op.uom_value as "uomValue",
577
+ pb.id as "productBarcodeId",
578
+ pb.gtin,
579
+ p.is_require_serial_number_scanning_outbound as "productIsRequireSerialNumberScanningOutbound",
580
+ oi.release_good_id as "releaseGoodId",
581
+ oi.id as "orderInventoryId",
582
+ oi.status as "orderInventoryStatus",
583
+ oi.bizplace_id as "bizplaceId",
584
+ i.id as "inventoryId",
585
+ i.carton_id as "inventoryCartonId",
586
+ i.status as "inventoryStatus",
587
+ ici.status as "inventoryCheckItemStatus",
588
+ rg.name as "releaseGoodName",
589
+ rg.ref_no as "refNo"
590
+ FROM worksheet_details wd
591
+ INNER JOIN worksheets w ON wd.worksheet_id = w.id
592
+ inner JOIN order_inventories oi ON oi.id = wd.target_inventory_id
593
+ inner JOIN order_products op ON op.id = oi.order_product_id
594
+ inner join inventories i on i.id = oi.inventory_id
595
+ inner join release_goods rg on rg.id = oi.release_good_id
596
+ left join inventory_check_items ici on ici.inventory_id = oi.inventory_id
597
+ inner join products p on p.id = oi.product_id
598
+ left join product_bundles pb2 on pb2.id = op.product_bundle_id
599
+ LEFT JOIN product_barcodes pb ON pb.product_detail_id = oi.product_detail_id
600
+ left join product_bundle_settings pbs on pbs.product_bundle_id = pb2.id and pbs.product_id = oi.product_id and pbs.product_detail_id = oi.product_detail_id
601
+ WHERE w.type::text = 'PICKING'::text AND w.status::text = 'EXECUTING'::text
602
+ and wd.name = $1 and w.domain_id = $2 and i.carton_id = $3
603
+ ORDER BY w.domain_id, w.bizplace_id, wd.id
604
+ `, [worksheetDetailName, this.domain.id, cartonId]);
605
+ }
522
606
  //validation to check matching worksheet detail based on name
523
607
  if ((worksheetDetailRaw.length < 1))
524
608
  throw new Error(this.ERROR_MSG.FIND.NO_RESULT(worksheetDetailName));
@@ -1756,29 +1840,36 @@ class PickingWorksheetController extends vas_worksheet_controller_1.VasWorksheet
1756
1840
  return newWorksheetDetails;
1757
1841
  }
1758
1842
  async activateBulkWorksheets(bizplaceId, worksheetIds) {
1843
+ const updatedWs = [];
1759
1844
  try {
1760
1845
  for (const worksheetId of worksheetIds) {
1761
1846
  try {
1762
1847
  let releaseGood;
1763
1848
  let domain;
1764
- (0, typeorm_1.getManager)().transaction(async (tx) => {
1849
+ await (0, typeorm_1.getManager)().transaction(async (tx) => {
1765
1850
  var _a;
1766
1851
  const worksheetRepo = tx.getRepository(entities_1.Worksheet);
1767
1852
  let worksheet = await worksheetRepo
1768
1853
  .createQueryBuilder('w')
1854
+ .leftJoinAndSelect('w.releaseGood', 'rg')
1855
+ .leftJoinAndSelect('rg.bizplace', 'rg_b')
1856
+ .leftJoinAndSelect('rg.domain', 'rg_d')
1857
+ .leftJoinAndSelect('rg.lastMileDelivery', 'rg_lmd')
1858
+ .leftJoinAndSelect('rg_b.domain', 'b_d')
1859
+ .leftJoinAndSelect('rg.orderProducts', 'rg_op')
1860
+ .leftJoinAndSelect('rg_op.product', 'op_p')
1861
+ .leftJoinAndSelect('rg_op.productDetail', 'op_pd')
1862
+ .leftJoinAndSelect('op_pd.product', 'pd_p')
1863
+ .leftJoinAndSelect('rg.orderPackages', 'rg_opc')
1864
+ .leftJoinAndSelect('rg_opc.orderPackageItems', 'opc_opi')
1865
+ .leftJoinAndSelect('opc_opi.orderProduct', 'opi_op')
1866
+ .leftJoinAndSelect('opi_op.product', 'op_p2')
1867
+ .leftJoinAndSelect('opi_op.productDetail', 'op_pd2')
1769
1868
  .leftJoinAndSelect('w.domain', 'd')
1770
1869
  .leftJoinAndSelect('w.bizplace', 'b')
1771
- .leftJoinAndSelect('w.worksheetDetails', 'wd')
1772
- .leftJoinAndSelect('w.releaseGood', 'rg')
1773
- .leftJoinAndSelect('rg.domain', 'rgd')
1774
- .leftJoinAndSelect('rg.bizplace', 'rgbz')
1775
- .leftJoinAndSelect('rgbz.domain', 'bzd')
1776
- .leftJoinAndSelect('rg.orderProducts', 'op')
1777
- .leftJoinAndSelect('op.productDetail', 'pd')
1778
- .leftJoinAndSelect('pd.product', 'p')
1779
- .leftJoinAndSelect('b.domain', 'bd')
1780
1870
  .leftJoinAndSelect('b.company', 'c')
1781
- .leftJoinAndSelect('c.domain', 'cd')
1871
+ .leftJoinAndSelect('c.domain', 'c_d')
1872
+ .leftJoinAndSelect('w.worksheetDetails', 'wd')
1782
1873
  .leftJoinAndSelect('wd.targetInventory', 'ti')
1783
1874
  .leftJoinAndSelect('ti.product', 'tp')
1784
1875
  .where('w.id = :worksheetId', { worksheetId: worksheetId })
@@ -1806,6 +1897,7 @@ class PickingWorksheetController extends vas_worksheet_controller_1.VasWorksheet
1806
1897
  worksheet = await this.activateWorksheet(worksheet, worksheetDetails, [], tx);
1807
1898
  releaseGood = worksheet.releaseGood;
1808
1899
  domain = worksheet.domain;
1900
+ updatedWs.push(worksheet);
1809
1901
  });
1810
1902
  const orderSource = releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.source;
1811
1903
  switch (orderSource) {
@@ -1846,6 +1938,21 @@ class PickingWorksheetController extends vas_worksheet_controller_1.VasWorksheet
1846
1938
  });
1847
1939
  break;
1848
1940
  default:
1941
+ let orderPackage = {
1942
+ name: sales_base_1.OrderNoGenerator.orderPackage(),
1943
+ packageId: null,
1944
+ trackingNo: null,
1945
+ transporter: null,
1946
+ airwayBill: releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.airwayBill,
1947
+ invoice: releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.invoice,
1948
+ status: sales_base_1.ORDER_STATUS.PROCESSING,
1949
+ releaseGood,
1950
+ domain: releaseGood.domain,
1951
+ bizplace: releaseGood.bizplace,
1952
+ creator: releaseGood.creator,
1953
+ updater: releaseGood.updater
1954
+ };
1955
+ await createOrderPackageAndItems(this.trxMgr, releaseGood, orderPackage);
1849
1956
  break;
1850
1957
  }
1851
1958
  }
@@ -1857,7 +1964,46 @@ class PickingWorksheetController extends vas_worksheet_controller_1.VasWorksheet
1857
1964
  catch (e) {
1858
1965
  console.log(e);
1859
1966
  }
1967
+ return updatedWs;
1860
1968
  }
1861
1969
  }
1862
1970
  exports.PickingWorksheetController = PickingWorksheetController;
1971
+ async function createOrderPackageAndItems(tx, releaseGood, orderPackage) {
1972
+ let savedOrderPackage = await tx.getRepository(sales_base_1.OrderPackage).save(orderPackage);
1973
+ const orderPackageItems = releaseGood.orderProducts.map(op => {
1974
+ if (op.product) {
1975
+ return {
1976
+ name: sales_base_1.OrderNoGenerator.orderPackageItem(),
1977
+ orderProduct: op,
1978
+ status: sales_base_1.ORDER_STATUS.PROCESSING,
1979
+ releaseQty: op.releaseQty,
1980
+ orderPackage: savedOrderPackage,
1981
+ domain: releaseGood.domain,
1982
+ bizplace: releaseGood.bizplace,
1983
+ creator: releaseGood.creator,
1984
+ updater: releaseGood.updater,
1985
+ productDetail: op.productDetail
1986
+ };
1987
+ }
1988
+ else {
1989
+ let productBundle = op.productBundle;
1990
+ return productBundle.productBundleSettings.map(pbs => ({
1991
+ name: sales_base_1.OrderNoGenerator.orderPackageItem(),
1992
+ orderProduct: op,
1993
+ status: sales_base_1.ORDER_STATUS.PROCESSING,
1994
+ releaseQty: op.releaseQty * pbs.bundleQty,
1995
+ orderPackage: savedOrderPackage,
1996
+ domain: releaseGood.domain,
1997
+ bizplace: releaseGood.bizplace,
1998
+ creator: releaseGood.creator,
1999
+ updater: releaseGood.updater,
2000
+ productDetail: pbs.productDetail
2001
+ }));
2002
+ }
2003
+ }).flat();
2004
+ await tx.getRepository(sales_base_1.OrderPackageItem).save(orderPackageItems);
2005
+ orderPackage.orderPackageItems = orderPackageItems;
2006
+ releaseGood.orderPackages = [orderPackage];
2007
+ }
2008
+ exports.createOrderPackageAndItems = createOrderPackageAndItems;
1863
2009
  //# sourceMappingURL=picking-worksheet-controller.js.map