@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.
- package/dist-server/controllers/outbound/index.js +3 -0
- package/dist-server/controllers/outbound/index.js.map +1 -1
- package/dist-server/controllers/outbound/picking-worksheet-controller.js +160 -14
- package/dist-server/controllers/outbound/picking-worksheet-controller.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/picking/activate-batch-picking.js +71 -1
- package/dist-server/graphql/resolvers/worksheet/picking/activate-batch-picking.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/picking/activate-picking.js +21 -28
- package/dist-server/graphql/resolvers/worksheet/picking/activate-picking.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/picking/bulk-activate-picking.js +21 -4
- package/dist-server/graphql/resolvers/worksheet/picking/bulk-activate-picking.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/picking/complete-batch-picking.js +96 -130
- package/dist-server/graphql/resolvers/worksheet/picking/complete-batch-picking.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/picking/complete-picking.js +22 -56
- package/dist-server/graphql/resolvers/worksheet/picking/complete-picking.js.map +1 -1
- package/dist-server/index.js +3 -0
- package/dist-server/index.js.map +1 -1
- package/dist-server/utils/lmd-util.js +193 -162
- package/dist-server/utils/lmd-util.js.map +1 -1
- package/package.json +9 -9
- package/server/controllers/outbound/index.ts +2 -0
- package/server/controllers/outbound/picking-worksheet-controller.ts +172 -19
- package/server/graphql/resolvers/worksheet/picking/activate-batch-picking.ts +107 -6
- package/server/graphql/resolvers/worksheet/picking/activate-picking.ts +73 -65
- package/server/graphql/resolvers/worksheet/picking/bulk-activate-picking.ts +30 -5
- package/server/graphql/resolvers/worksheet/picking/complete-batch-picking.ts +34 -56
- package/server/graphql/resolvers/worksheet/picking/complete-picking.ts +4 -36
- package/server/index.ts +2 -0
- 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":"
|
|
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', '
|
|
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
|