@things-factory/sales-base 4.3.667 → 4.3.669
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.
|
@@ -6,6 +6,7 @@ const uuid_1 = require("uuid");
|
|
|
6
6
|
const biz_base_1 = require("@things-factory/biz-base");
|
|
7
7
|
const env_1 = require("@things-factory/env");
|
|
8
8
|
const integration_powrup_1 = require("@things-factory/integration-powrup");
|
|
9
|
+
const integration_lmd_1 = require("@things-factory/integration-lmd");
|
|
9
10
|
const warehouse_base_1 = require("@things-factory/warehouse-base");
|
|
10
11
|
const constants_1 = require("../../constants");
|
|
11
12
|
const order_package_item_1 = require("../../service/order-package-item/order-package-item");
|
|
@@ -17,7 +18,7 @@ const order_consignment_1 = require("../../service/order-consignment/order-consi
|
|
|
17
18
|
const { PerformanceObserver, performance } = require('node:perf_hooks');
|
|
18
19
|
class PowrupController {
|
|
19
20
|
async packOrder(powrup, releaseGood, domain, user, trxMgr) {
|
|
20
|
-
var _a;
|
|
21
|
+
var _a, _b, _c, _d;
|
|
21
22
|
let roUpdateFields = null;
|
|
22
23
|
const updateRO = async (releaseGoodId, roUpdateFields, trxMgr) => {
|
|
23
24
|
try {
|
|
@@ -37,6 +38,11 @@ class PowrupController {
|
|
|
37
38
|
datetime_util_1.DateTimeDifference.timeDifferenceInSeconds(releaseGood.lastMarketPackCall, new Date()) <= 5) {
|
|
38
39
|
return;
|
|
39
40
|
}
|
|
41
|
+
if (releaseGood.type == 'b2b' &&
|
|
42
|
+
!(releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.lastMileDelivery) &&
|
|
43
|
+
((releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.deliveryOrders) == undefined || ((_a = releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.deliveryOrders) === null || _a === void 0 ? void 0 : _a.length) <= 0)) {
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
40
46
|
// capture update fields
|
|
41
47
|
roUpdateFields = {
|
|
42
48
|
lastMarketPackCall: new Date()
|
|
@@ -74,28 +80,60 @@ class PowrupController {
|
|
|
74
80
|
//sof orders will create consignment - order package - trigger packOrder
|
|
75
81
|
let newReleaseGood;
|
|
76
82
|
let orderPackages = [];
|
|
77
|
-
const isMps = (
|
|
83
|
+
const isMps = (_b = releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.lastMileDelivery) === null || _b === void 0 ? void 0 : _b.mps;
|
|
78
84
|
const orderInformation = { refOrderId: releaseGood.refOrderId, isSof: true };
|
|
79
|
-
if (
|
|
80
|
-
|
|
81
|
-
orderPackages = newReleaseGood.orderPackages;
|
|
82
|
-
releaseGood.orderPackages = orderPackages;
|
|
83
|
-
}
|
|
84
|
-
else {
|
|
85
|
-
//create package like normal non sof orders
|
|
85
|
+
if (((_c = releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.lastMileDelivery) === null || _c === void 0 ? void 0 : _c.platform) == integration_lmd_1.LmdPlatform.VERSA_FLEET ||
|
|
86
|
+
((releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.lastMileDelivery) == null && ((_d = releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.deliveryOrders) === null || _d === void 0 ? void 0 : _d.length) > 0)) {
|
|
86
87
|
let orderConsignment = await createOrderConsignment(trxMgr, releaseGood, user);
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
88
|
+
for (const deliveryOrder of releaseGood.deliveryOrders) {
|
|
89
|
+
const savedOrderPackage = await this.createOrderPackage(trxMgr, releaseGood, orderConsignment, user, deliveryOrder);
|
|
90
|
+
const orderInventoriesGroupByProduct = Object.values(deliveryOrder.orderInventories.reduce((acc, oi) => {
|
|
91
|
+
const key = oi.productDetail.id;
|
|
92
|
+
if (!acc[key]) {
|
|
93
|
+
acc[key] = {
|
|
94
|
+
id: (0, uuid_1.v4)(),
|
|
95
|
+
name: utils_1.OrderNoGenerator.orderPackageItem(),
|
|
96
|
+
orderProduct: null,
|
|
97
|
+
productDetail: {
|
|
98
|
+
id: oi.productDetail.id,
|
|
99
|
+
refCode: oi.productDetail.refCode,
|
|
100
|
+
product: { sku: oi.product.sku }
|
|
101
|
+
},
|
|
102
|
+
releaseQty: 0
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
acc[key].releaseQty += oi.releaseQty || 0;
|
|
106
|
+
return acc;
|
|
107
|
+
}, {}));
|
|
108
|
+
const orderPackageItems = await createSofOrderPackageItem(trxMgr, orderInventoriesGroupByProduct, savedOrderPackage, releaseGood);
|
|
109
|
+
savedOrderPackage.orderPackageItems = orderPackageItems;
|
|
110
|
+
orderPackages.push(savedOrderPackage);
|
|
111
|
+
}
|
|
92
112
|
newReleaseGood = releaseGood;
|
|
93
113
|
}
|
|
114
|
+
else {
|
|
115
|
+
if (isMps) {
|
|
116
|
+
newReleaseGood = await splitOrderConsignment(trxMgr, releaseGood, user);
|
|
117
|
+
orderPackages = newReleaseGood.orderPackages;
|
|
118
|
+
releaseGood.orderPackages = orderPackages;
|
|
119
|
+
}
|
|
120
|
+
else {
|
|
121
|
+
//create package like normal non sof orders
|
|
122
|
+
let orderConsignment = await createOrderConsignment(trxMgr, releaseGood, user);
|
|
123
|
+
let savedOrderPackage = await this.createOrderPackage(trxMgr, releaseGood, orderConsignment, user);
|
|
124
|
+
let orderPackageItems = await createSofOrderPackageItem(trxMgr, [], savedOrderPackage, releaseGood);
|
|
125
|
+
savedOrderPackage.orderPackageItems = orderPackageItems;
|
|
126
|
+
orderPackages.push(savedOrderPackage);
|
|
127
|
+
releaseGood.orderPackages = orderPackages;
|
|
128
|
+
newReleaseGood = releaseGood;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
94
131
|
const packages = orderPackages.map(op => {
|
|
95
132
|
const items = op.orderPackageItems.map(opi => {
|
|
133
|
+
var _a, _b, _c, _d;
|
|
96
134
|
return {
|
|
97
135
|
universalIdentifier: opi.productDetail.refCode,
|
|
98
|
-
sku: opi.orderProduct.product.sku,
|
|
136
|
+
sku: ((_b = (_a = opi === null || opi === void 0 ? void 0 : opi.orderProduct) === null || _a === void 0 ? void 0 : _a.product) === null || _b === void 0 ? void 0 : _b.sku) || ((_d = (_c = opi === null || opi === void 0 ? void 0 : opi.productDetail) === null || _c === void 0 ? void 0 : _c.product) === null || _d === void 0 ? void 0 : _d.sku),
|
|
99
137
|
quantity: opi.releaseQty
|
|
100
138
|
};
|
|
101
139
|
});
|
|
@@ -153,18 +191,34 @@ class PowrupController {
|
|
|
153
191
|
await Promise.all(orderPackages
|
|
154
192
|
.filter(op => (op === null || op === void 0 ? void 0 : op.marketRtsCallSuccess) == undefined)
|
|
155
193
|
.map(async (op) => {
|
|
156
|
-
var _a, _b;
|
|
157
|
-
if (!(op === null || op === void 0 ? void 0 : op.packageId))
|
|
194
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
195
|
+
if (!((_a = op === null || op === void 0 ? void 0 : op.releaseGood) === null || _a === void 0 ? void 0 : _a.lmdOption) && !(op === null || op === void 0 ? void 0 : op.packageId)) {
|
|
158
196
|
throw new Error('Order package id is not found');
|
|
159
|
-
|
|
160
|
-
|
|
197
|
+
}
|
|
198
|
+
if ((_b = op === null || op === void 0 ? void 0 : op.releaseGood) === null || _b === void 0 ? void 0 : _b.lmdOption) {
|
|
199
|
+
if ((_c = op.releaseGood) === null || _c === void 0 ? void 0 : _c.lastMileDelivery) {
|
|
200
|
+
if (op.releaseGood.lastMileDelivery.isTms && !((_d = op === null || op === void 0 ? void 0 : op.releaseGood) === null || _d === void 0 ? void 0 : _d.taskId)) {
|
|
201
|
+
return;
|
|
202
|
+
}
|
|
203
|
+
else {
|
|
204
|
+
if (!(op === null || op === void 0 ? void 0 : op.parcelId)) {
|
|
205
|
+
return;
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
else {
|
|
210
|
+
if (!(op === null || op === void 0 ? void 0 : op.trackingNo)) {
|
|
211
|
+
return;
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
}
|
|
161
215
|
let orderInformation = {
|
|
162
216
|
refOrderId: releaseGood.refOrderId,
|
|
163
217
|
packageId: op.packageId,
|
|
164
218
|
platform: releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.platformCode
|
|
165
219
|
};
|
|
166
|
-
if ((
|
|
167
|
-
orderInformation = Object.assign(Object.assign({}, orderInformation), { awb: op.airwayBill, trackingNo: op.trackingNo, lmdOption: (
|
|
220
|
+
if ((_e = op === null || op === void 0 ? void 0 : op.releaseGood) === null || _e === void 0 ? void 0 : _e.lmdOption) {
|
|
221
|
+
orderInformation = Object.assign(Object.assign({}, orderInformation), { awb: op === null || op === void 0 ? void 0 : op.airwayBill, trackingNo: op.trackingNo, lmdOption: (_f = op === null || op === void 0 ? void 0 : op.releaseGood) === null || _f === void 0 ? void 0 : _f.lmdOption, shipperName: ((_h = (_g = op.releaseGood) === null || _g === void 0 ? void 0 : _g.lastMileDelivery) === null || _h === void 0 ? void 0 : _h.platform) || 'OTHERS' });
|
|
168
222
|
}
|
|
169
223
|
performance.mark(`start:${releaseGood.refOrderId} - ${op.packageId}`);
|
|
170
224
|
try {
|
|
@@ -189,7 +243,7 @@ class PowrupController {
|
|
|
189
243
|
}
|
|
190
244
|
async fetchDocument(powrup, releaseGood, domain, user, trxMgr) {
|
|
191
245
|
if (releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.lmdOption) {
|
|
192
|
-
|
|
246
|
+
throw new Error(`Release good ${releaseGood.name} is not a non-sof order`);
|
|
193
247
|
}
|
|
194
248
|
try {
|
|
195
249
|
let orderPackages = await ((trxMgr === null || trxMgr === void 0 ? void 0 : trxMgr.getRepository(order_package_1.OrderPackage)) || (0, typeorm_1.getRepository)(order_package_1.OrderPackage)).find({ where: { releaseGood } });
|
|
@@ -299,10 +353,12 @@ class PowrupController {
|
|
|
299
353
|
//create orderPackage for non-sof / sof- non mps orders
|
|
300
354
|
async createOrderPackage(tx, releaseGood, orderConsignment, user, pkg) {
|
|
301
355
|
try {
|
|
356
|
+
const packageId = (0, uuid_1.v4)();
|
|
302
357
|
const orderPackage = {
|
|
303
|
-
id:
|
|
358
|
+
id: packageId,
|
|
304
359
|
name: utils_1.OrderNoGenerator.orderPackage(),
|
|
305
|
-
packageId: pkg ? pkg.packageId : null,
|
|
360
|
+
packageId: pkg ? ((pkg === null || pkg === void 0 ? void 0 : pkg.packageId) ? packageId : null) : null,
|
|
361
|
+
trackingNo: pkg ? ((pkg === null || pkg === void 0 ? void 0 : pkg.trackingNo) ? pkg.trackingNo : pkg.name) : null,
|
|
306
362
|
status: constants_1.ORDER_STATUS.PROCESSING,
|
|
307
363
|
releaseGood,
|
|
308
364
|
orderConsignment,
|
|
@@ -379,12 +435,16 @@ class PowrupController {
|
|
|
379
435
|
}
|
|
380
436
|
exports.PowrupController = PowrupController;
|
|
381
437
|
async function createOrderConsignment(tx, releaseGood, user, orderCons) {
|
|
382
|
-
var _a;
|
|
438
|
+
var _a, _b;
|
|
383
439
|
try {
|
|
384
440
|
const orderConsignment = {
|
|
385
441
|
id: (0, uuid_1.v4)(),
|
|
386
442
|
name: utils_1.OrderNoGenerator.orderConsignment(),
|
|
387
|
-
noOfPackages: ((_a = orderCons === null || orderCons === void 0 ? void 0 : orderCons.orderPackages) === null || _a === void 0 ? void 0 : _a.length)
|
|
443
|
+
noOfPackages: ((_a = orderCons === null || orderCons === void 0 ? void 0 : orderCons.orderPackages) === null || _a === void 0 ? void 0 : _a.length)
|
|
444
|
+
? orderCons.orderPackages.length
|
|
445
|
+
: ((_b = releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.deliveryOrders) === null || _b === void 0 ? void 0 : _b.length)
|
|
446
|
+
? releaseGood.deliveryOrders.length
|
|
447
|
+
: 1,
|
|
388
448
|
domain: releaseGood.domain,
|
|
389
449
|
bizplace: releaseGood.bizplace,
|
|
390
450
|
releaseGood: releaseGood,
|
|
@@ -599,13 +659,13 @@ async function createConsignmentWithMultipackage(tx, orderConsList, releaseGood,
|
|
|
599
659
|
}
|
|
600
660
|
}
|
|
601
661
|
exports.createConsignmentWithMultipackage = createConsignmentWithMultipackage;
|
|
602
|
-
async function createSofOrderPackage(tx, orderPackageData, releaseGood, user, orderConsignment) {
|
|
662
|
+
async function createSofOrderPackage(tx, orderPackageData, releaseGood, user, orderConsignment, trackingNo) {
|
|
603
663
|
try {
|
|
604
664
|
const orderPackage = {
|
|
605
665
|
id: (0, uuid_1.v4)(),
|
|
606
666
|
name: utils_1.OrderNoGenerator.orderPackage(),
|
|
607
667
|
packageId: null,
|
|
608
|
-
trackingNo: null,
|
|
668
|
+
trackingNo: trackingNo || null,
|
|
609
669
|
transporter: null,
|
|
610
670
|
airwayBill: (releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.airwayBill) || null,
|
|
611
671
|
invoice: releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.invoice,
|
|
@@ -654,33 +714,30 @@ async function createSofOrderPackageItem(tx, orderPackageItemsData, savedOrderPa
|
|
|
654
714
|
}
|
|
655
715
|
}
|
|
656
716
|
exports.createSofOrderPackageItem = createSofOrderPackageItem;
|
|
657
|
-
async function updatePackageId(packages, releaseGood,
|
|
717
|
+
async function updatePackageId(packages, releaseGood, tx2) {
|
|
658
718
|
try {
|
|
659
719
|
//open new transactiion - same transaction will cause blocking
|
|
660
|
-
await
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
720
|
+
// await getConnection().transaction(async tx2 => {
|
|
721
|
+
const orderPackages = await tx2.getRepository(order_package_1.OrderPackage).find({
|
|
722
|
+
where: { releaseGood: { id: releaseGood.id } },
|
|
723
|
+
relations: ['releaseGood']
|
|
724
|
+
});
|
|
725
|
+
for (let orderPackage of orderPackages) {
|
|
726
|
+
let matchedPackage = packages.find(p => {
|
|
727
|
+
return p.orderPackageId == orderPackage.id;
|
|
664
728
|
});
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
});
|
|
669
|
-
if (matchedPackage) {
|
|
670
|
-
await tx2.getRepository(order_package_1.OrderPackage).update({ id: orderPackage.id }, {
|
|
671
|
-
packageId: matchedPackage.packageId
|
|
672
|
-
});
|
|
673
|
-
}
|
|
674
|
-
}
|
|
675
|
-
let rg = await tx2.getRepository(release_good_1.ReleaseGood).findOne({ id: releaseGood.id });
|
|
676
|
-
if (rg) {
|
|
677
|
-
await tx2.getRepository(release_good_1.ReleaseGood).update({ id: releaseGood.id }, {
|
|
678
|
-
marketPackCallSuccess: new Date(),
|
|
679
|
-
lastMarketPackCall: new Date(),
|
|
680
|
-
updatedAt: new Date()
|
|
729
|
+
if (matchedPackage) {
|
|
730
|
+
await tx2.getRepository(order_package_1.OrderPackage).update({ id: orderPackage.id }, {
|
|
731
|
+
packageId: matchedPackage.packageId
|
|
681
732
|
});
|
|
682
733
|
}
|
|
734
|
+
}
|
|
735
|
+
await tx2.getRepository(release_good_1.ReleaseGood).update({ id: releaseGood.id }, {
|
|
736
|
+
marketPackCallSuccess: new Date(),
|
|
737
|
+
lastMarketPackCall: new Date(),
|
|
738
|
+
updatedAt: new Date()
|
|
683
739
|
});
|
|
740
|
+
// })
|
|
684
741
|
}
|
|
685
742
|
catch (e) {
|
|
686
743
|
env_1.logger.error('unable-to-update-package-id-mps');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"powrup-controller.js","sourceRoot":"","sources":["../../../server/controllers/ecommerce/powrup-controller.ts"],"names":[],"mappings":";;;AAAA,qCAAkF;AAClF,+BAAmC;AACnC,uDAAmD;AACnD,6CAA4C;AAC5C,2EAAgF;AAGhF,mEAA+G;AAE/G,+CAA8C;AAC9C,4FAAsF;AACtF,6EAAwE;AAExE,0EAAqE;AACrE,uCAA8C;AAC9C,6DAA8D;AAC9D,yFAAoF;AAEpF,MAAM,EAAE,mBAAmB,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAA;AAEvE,MAAa,gBAAgB;IAC3B,KAAK,CAAC,SAAS,CACb,MAAc,EACd,WAAwB,EACxB,MAAe,EACf,IAAW,EACX,MAAsB;;QAEtB,IAAI,cAAc,GAAyB,IAAI,CAAA;QAE/C,MAAM,QAAQ,GAAG,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE;YAC/D,IAAI;gBACF,IAAI,cAAc,EAAE;oBAClB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,0BAAW,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,cAAc,CAAC,CAAA;iBACnG;aACF;YAAC,OAAO,CAAC,EAAE;gBACV,YAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;aAChB;QACH,CAAC,CAAA;QAED,IAAI;YACF,MAAM,aAAa,GAAmB,WAAW,CAAC,aAAa,CAAA;YAC/D,MAAM,gBAAgB,GAAQ,EAAE,UAAU,EAAE,WAAW,CAAC,UAAU,EAAE,CAAA;YACpE,MAAM,SAAS,GAAG,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,SAAS,CAAA;YAExC,IACE,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,kBAAkB;gBAC/B,kCAAkB,CAAC,uBAAuB,CAAC,WAAW,CAAC,kBAAkB,EAAE,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,EAC3F;gBACA,OAAM;aACP;YAED,wBAAwB;YACxB,cAAc,GAAG;gBACf,kBAAkB,EAAE,IAAI,IAAI,EAAE;aAC/B,CAAA;YAED,6EAA6E;YAC7E,IAAI,CAAC,SAAS,EAAE;gBACd,WAAW,CAAC,IAAI,CAAC,SAAS,WAAW,CAAC,UAAU,EAAE,CAAC,CAAA;gBACnD,MAAM,SAAS,GAAQ,MAAM,8BAAS,CAAC,SAAS,CAAC,MAAM,kCAClD,gBAAgB,KACnB,OAAO,EAAE,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,IAAI,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE,IAClE,CAAA;gBACF,WAAW,CAAC,IAAI,CAAC,OAAO,WAAW,CAAC,UAAU,EAAE,CAAC,CAAA;gBAEjD,IAAI,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,QAAQ,EAAE;oBACvB,MAAM,QAAQ,GAAU,SAAS,CAAC,QAAQ,CAAA;oBAE1C,MAAM,OAAO,CAAC,GAAG,CACf,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAC,GAAG,EAAC,EAAE;wBACvB,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAA;wBAEvB,IAAI,gBAAgB,GAAG,MAAM,sBAAsB,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,CAAC,CAAA;wBAC9E,IAAI,iBAAiB,GAAiB,MAAM,IAAI,CAAC,kBAAkB,CACjE,MAAM,EACN,WAAW,EACX,gBAAgB,EAChB,IAAI,EACJ,GAAG,CACJ,CAAA;wBACD,MAAM,iBAAiB,GAAuB,MAAM,IAAI,CAAC,uBAAuB,CAC9E,aAAa,EACb,iBAAiB,EACjB,KAAK,EACL,IAAI,EACJ,KAAK,EACL,WAAW,CACZ,CAAA;wBACD,MAAM,MAAM,CAAC,aAAa,CAAC,qCAAgB,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;oBACtE,CAAC,CAAC,CACH,CAAA;oBAED,MAAM,uBAAuB,GAAmB,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE;wBACxE,OAAO,CACL,EAAE,CAAC,UAAU,GAAG,CAAC;4BACjB,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,KAAK,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CACvF,CAAA;oBACH,CAAC,CAAC,CAAA;oBAEF,IAAI,CAAA,uBAAuB,aAAvB,uBAAuB,uBAAvB,uBAAuB,CAAE,MAAM,IAAG,CAAC;wBACrC,MAAM,IAAI,CAAC,uBAAuB,CAAC,uBAAuB,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;oBAExF,cAAc,GAAG;wBACf,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS;wBAChC,qBAAqB,EAAE,IAAI,IAAI,EAAE;wBACjC,kBAAkB,EAAE,IAAI,IAAI,EAAE;wBAC9B,SAAS,EAAE,IAAI,IAAI,EAAE;qBACtB,CAAA;iBACF;gBACD,MAAM,QAAQ,CAAC,WAAW,CAAC,EAAE,EAAE,cAAc,EAAE,MAAM,CAAC,CAAA;aACvD;iBAAM;gBACL,wEAAwE;gBAExE,IAAI,cAAc,CAAA;gBAClB,IAAI,aAAa,GAAmB,EAAE,CAAA;gBAEtC,MAAM,KAAK,GAAG,MAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,gBAAgB,0CAAE,GAAG,CAAA;gBAChD,MAAM,gBAAgB,GAAQ,EAAE,UAAU,EAAE,WAAW,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,CAAA;gBAEjF,IAAI,KAAK,EAAE;oBACT,cAAc,GAAG,MAAM,qBAAqB,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,CAAC,CAAA;oBACvE,aAAa,GAAG,cAAc,CAAC,aAAa,CAAA;oBAC5C,WAAW,CAAC,aAAa,GAAG,aAAa,CAAA;iBAC1C;qBAAM;oBACL,2CAA2C;oBAC3C,IAAI,gBAAgB,GAAG,MAAM,sBAAsB,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,CAAC,CAAA;oBAC9E,IAAI,iBAAiB,GAAiB,MAAM,IAAI,CAAC,kBAAkB,CACjE,MAAM,EACN,WAAW,EACX,gBAAgB,EAChB,IAAI,CACL,CAAA;oBACD,IAAI,iBAAiB,GAAuB,MAAM,yBAAyB,CACzE,MAAM,EACN,EAAE,EACF,iBAAiB,EACjB,WAAW,CACZ,CAAA;oBACD,iBAAiB,CAAC,iBAAiB,GAAG,iBAAiB,CAAA;oBACvD,aAAa,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;oBACrC,WAAW,CAAC,aAAa,GAAG,aAAa,CAAA;oBAEzC,cAAc,GAAG,WAAW,CAAA;iBAC7B;gBAED,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;oBACtC,MAAM,KAAK,GAAG,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;wBAC3C,OAAO;4BACL,mBAAmB,EAAE,GAAG,CAAC,aAAa,CAAC,OAAO;4BAC9C,GAAG,EAAE,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG;4BACjC,QAAQ,EAAE,GAAG,CAAC,UAAU;yBACzB,CAAA;oBACH,CAAC,CAAC,CAAA;oBACF,OAAO;wBACL,SAAS,EAAE,EAAE,CAAC,EAAE;wBAChB,KAAK,EAAE,KAAK;qBACb,CAAA;gBACH,CAAC,CAAC,CAAA;gBAEF,WAAW,CAAC,IAAI,CAAC,SAAS,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,UAAU,EAAE,CAAC,CAAA;gBACvD,MAAM,SAAS,GAAQ,MAAM,8BAAS,CAAC,SAAS,CAAC,MAAM,kCAClD,gBAAgB,KACnB,QAAQ,EACR,OAAO,EAAE,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,IAAI,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE,IAClE,CAAA;gBACF,WAAW,CAAC,IAAI,CAAC,OAAO,cAAc,CAAC,UAAU,EAAE,CAAC,CAAA;gBAEpD,IAAI,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,QAAQ,EAAE;oBACvB,cAAc,GAAG;wBACf,qBAAqB,EAAE,IAAI,IAAI,EAAE;wBACjC,kBAAkB,EAAE,IAAI,IAAI,EAAE;wBAC9B,SAAS,EAAE,IAAI,IAAI,EAAE;qBACtB,CAAA;oBAED,IAAI,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAA;oBACjC,MAAM,eAAe,CAAC,QAAQ,EAAE,WAAW,EAAE,MAAM,CAAC,CAAA;iBACrD;aACF;SACF;QAAC,OAAO,KAAK,EAAE;YACd,WAAW,CAAC,IAAI,CAAC,OAAO,WAAW,CAAC,UAAU,EAAE,CAAC,CAAA;YACjD,cAAc,GAAG;gBACf,aAAa,EAAE,IAAI;aACpB,CAAA;YAED,YAAM,CAAC,KAAK,CAAC,iCAAiC,KAAK,EAAE,CAAC,CAAA;SACvD;gBAAS;YACR,IAAI,IAAI,GAAG,WAAW,CAAC,OAAO,CAC5B,oBAAoB,WAAW,CAAC,UAAU,EAAE,EAC5C,SAAS,WAAW,CAAC,UAAU,EAAE,EACjC,OAAO,WAAW,CAAC,UAAU,EAAE,CAChC,CAAA;YACD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAA;SAC5B;QAED,OAAO,WAAW,CAAA;IACpB,CAAC;IAED,KAAK,CAAC,WAAW,CACf,WAAwB,EACxB,cAAsB,EACtB,IAAW,EACX,MAAsB;QAEtB,IAAI,MAAM,EAAE;YACV,MAAM,IAAI,CAAC,mBAAmB,CAAC,WAAW,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;SAC1E;aAAM;YACL,MAAM,IAAA,uBAAa,GAAE,CAAC,WAAW,CAAC,KAAK,EAAE,EAAiB,EAAE,EAAE;gBAC5D,MAAM,IAAI,CAAC,mBAAmB,CAAC,WAAW,EAAE,cAAc,EAAE,IAAI,EAAE,EAAE,CAAC,CAAA;YACvE,CAAC,CAAC,CAAA;SACH;IACH,CAAC;IAED,KAAK,CAAC,gBAAgB,CACpB,MAAc,EACd,WAAwB,EACxB,MAAe,EACf,IAAW,EACX,MAAsB;QAEtB,IAAI;YACF,IAAI,gBAAgB,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,4BAAY,CAAC,CAAC,CAAC,CAAC,IAAA,uBAAa,EAAC,4BAAY,CAAC,CAAA;YAChG,IAAI,eAAe,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,0BAAW,CAAC,CAAC,CAAC,CAAC,IAAA,uBAAa,EAAC,0BAAW,CAAC,CAAA;YAE7F,IAAI,aAAa,GAAmB,MAAM,gBAAgB,CAAC,IAAI,CAAC;gBAC9D,KAAK,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,IAAA,aAAG,EAAC,IAAA,gBAAM,GAAE,CAAC,EAAE;gBAChD,SAAS,EAAE,CAAC,aAAa,EAAE,8BAA8B,CAAC;aAC3D,CAAC,CAAA;YAEF,IAAI,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,MAAM,EAAE;gBACzB,MAAM,OAAO,CAAC,GAAG,CACf,aAAa;qBACV,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,oBAAoB,KAAI,SAAS,CAAC;qBACnD,GAAG,CAAC,KAAK,EAAC,EAAE,EAAC,EAAE;;oBACd,IAAI,CAAC,CAAA,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,SAAS,CAAA;wBAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAA;oBACpE,IAAI,EAAE,CAAC,SAAS,IAAI,CAAC,CAAA,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,QAAQ,CAAA;wBAAE,OAAM;oBAEzC,IAAI,gBAAgB,GAAQ;wBAC1B,UAAU,EAAE,WAAW,CAAC,UAAU;wBAClC,SAAS,EAAE,EAAE,CAAC,SAAS;wBACvB,QAAQ,EAAE,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,YAAY;qBACpC,CAAA;oBACD,IAAI,MAAA,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,WAAW,0CAAE,SAAS,EAAE;wBAC9B,gBAAgB,mCACX,gBAAgB,KACnB,GAAG,EAAE,EAAE,CAAC,UAAU,EAClB,UAAU,EAAE,EAAE,CAAC,UAAU,EACzB,SAAS,EAAE,MAAA,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,WAAW,0CAAE,SAAS,EACrC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,gBAAgB,CAAC,QAAQ,GACtD,CAAA;qBACF;oBAED,WAAW,CAAC,IAAI,CAAC,SAAS,WAAW,CAAC,UAAU,MAAM,EAAE,CAAC,SAAS,EAAE,CAAC,CAAA;oBACrE,IAAI;wBACF,MAAM,8BAAS,CAAC,gBAAgB,CAAC,MAAM,kCAClC,gBAAgB,KACnB,OAAO,EAAE,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,IACpC,CAAA;wBACF,MAAM,gBAAgB,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,oBAAoB,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC,CAAA;wBAClF,WAAW,CAAC,IAAI,CAAC,OAAO,WAAW,CAAC,UAAU,MAAM,EAAE,CAAC,SAAS,EAAE,CAAC,CAAA;qBACpE;oBAAC,OAAO,KAAK,EAAE;wBACd,WAAW,CAAC,IAAI,CAAC,OAAO,WAAW,CAAC,UAAU,MAAM,EAAE,CAAC,SAAS,EAAE,CAAC,CAAA;wBACnE,YAAM,CAAC,KAAK,CACV,wCAAwC,IAAI,CAAC,SAAS,iCACjD,gBAAgB,KACnB,OAAO,EAAE,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,IAAI,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE,EAClE,KAAK,EAAE,KAAK,IACZ,EAAE,CACL,CAAA;qBACF;4BAAS;wBACR,IAAI,IAAI,GAAG,WAAW,CAAC,OAAO,CAC5B,2BAA2B,WAAW,CAAC,UAAU,MAAM,EAAE,CAAC,SAAS,EAAE,EACrE,SAAS,WAAW,CAAC,UAAU,MAAM,EAAE,CAAC,SAAS,EAAE,EACnD,OAAO,WAAW,CAAC,UAAU,MAAM,EAAE,CAAC,SAAS,EAAE,CAClD,CAAA;wBACD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAA;qBAC5B;gBACH,CAAC,CAAC,CACL,CAAA;aACF;SACF;QAAC,OAAO,KAAK,EAAE;YACd,MAAM,KAAK,CAAA;SACZ;IACH,CAAC;IAED,KAAK,CAAC,aAAa,CACjB,MAAc,EACd,WAAwB,EACxB,MAAe,EACf,IAAW,EACX,MAAsB;QAEtB,IAAI,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,SAAS,EAAE;YAC1B,OAAM;SACP;QAED,IAAI;YACF,IAAI,aAAa,GAAmB,MAAM,CACxC,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,aAAa,CAAC,4BAAY,CAAC,KAAI,IAAA,uBAAa,EAAC,4BAAY,CAAC,CACnE,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,EAAE,CAAC,CAAA;YAElC,IAAI,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,MAAM,EAAE;gBACzB,MAAM,OAAO,CAAC,GAAG,CACf,aAAa,CAAC,GAAG,CAAC,KAAK,EAAC,EAAE,EAAC,EAAE;oBAC3B,IAAI,CAAC,CAAA,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,SAAS,CAAA;wBAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAA;oBAEpE,MAAM,gBAAgB,GAAQ;wBAC5B,UAAU,EAAE,WAAW,CAAC,UAAU;wBAClC,SAAS,EAAE,EAAE,CAAC,SAAS;qBACxB,CAAA;oBAED,WAAW,CAAC,IAAI,CAAC,SAAS,WAAW,CAAC,UAAU,MAAM,EAAE,CAAC,SAAS,EAAE,CAAC,CAAA;oBACrE,IAAI;wBACF,MAAM,EACJ,UAAU,EACV,WAAW,EACX,WAAW,EACZ,GAAoE,MAAM,8BAAS,CAAC,aAAa,CAChG,MAAM,kCAED,gBAAgB,KACnB,OAAO,EAAE,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,IAAI,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE,IAErE,CAAA;wBACD,WAAW,CAAC,IAAI,CAAC,OAAO,WAAW,CAAC,UAAU,MAAM,EAAE,CAAC,SAAS,EAAE,CAAC,CAAA;wBACnE,IAAI,UAAe,CAAA;wBACnB,IAAI,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,MAAM,EAAE;4BACvB,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;gCACnB,UAAU,mCAAQ,UAAU,KAAE,UAAU,EAAE,EAAE,CAAC,MAAM,GAAE,CAAA;4BACvD,CAAC,CAAC,CAAA;4BAEF,UAAU,mCACL,UAAU,KACb,UAAU,EAAE,UAAU,EACtB,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,IAAI,GACd,CAAA;4BAED,MAAM,CAAC,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,aAAa,CAAC,4BAAY,CAAC,KAAI,IAAA,uBAAa,EAAC,4BAAY,CAAC,CAAC,CAAC,MAAM,CAC/E,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,oBACR,UAAU,EAChB,CAAA;yBACF;qBACF;oBAAC,OAAO,KAAK,EAAE;wBACd,WAAW,CAAC,IAAI,CAAC,OAAO,WAAW,CAAC,UAAU,MAAM,EAAE,CAAC,SAAS,EAAE,CAAC,CAAA;qBACpE;4BAAS;wBACR,IAAI,IAAI,GAAG,WAAW,CAAC,OAAO,CAC5B,wBAAwB,WAAW,CAAC,UAAU,MAAM,EAAE,CAAC,SAAS,EAAE,EAClE,SAAS,WAAW,CAAC,UAAU,MAAM,EAAE,CAAC,SAAS,EAAE,EACnD,OAAO,WAAW,CAAC,UAAU,MAAM,EAAE,CAAC,SAAS,EAAE,CAClD,CAAA;wBACD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAA;qBAC5B;gBACH,CAAC,CAAC,CACH,CAAA;gBAED,WAAW,GAAG,MAAM,CAAC,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,aAAa,CAAC,0BAAW,CAAC,KAAI,IAAA,uBAAa,EAAC,0BAAW,CAAC,CAAC,CAAC,OAAO,CAAC;oBAC7F,EAAE,EAAE,WAAW,CAAC,EAAE;iBACnB,CAAC,CAAA;aACH;YAED,OAAO,WAAW,CAAA;SACnB;QAAC,OAAO,KAAK,EAAE;YACd,MAAM,KAAK,CAAA;SACZ;IACH,CAAC;IAED,KAAK,CAAC,mBAAmB,CACvB,WAAwB,EACxB,cAAsB,EACtB,IAAW,EACX,MAAsB;QAEtB,MAAM,QAAQ,GAAa,MAAM,MAAM,CAAC,aAAa,CAAC,mBAAQ,CAAC,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,CAAA;QACnG,MAAM,MAAM,GAAW,MAAM,MAAM;aAChC,aAAa,CAAC,2BAAM,CAAC;aACrB,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,6BAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,CAAA;QAElE,IAAI,MAAM,EAAE;YACV,KAAK,IAAI,SAAS,IAAI,WAAW,EAAE;gBACjC,IAAI;oBACF,IAAI,OAAO,GAAY,SAAS,CAAC,OAAO,CAAA;oBACxC,MAAM,aAAa,GAAkB,SAAS,CAAC,aAAa,CAAA;oBAC5D,MAAM,iBAAiB,GAAW,SAAS,CAAC,QAAQ,CAAA;oBACpD,IAAI,EAAE,GAAG,MAAM,CAAC,aAAa,CAAC,0BAAS,CAAC,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAA;oBAClE,EAAE,CAAC,iBAAiB,CAAC,cAAc,EAAE,KAAK,CAAC;yBACxC,QAAQ,CAAC,+BAA+B,CAAC;yBACzC,QAAQ,CAAC,mCAAmC,CAAC;yBAC7C,QAAQ,CAAC,iCAAiC,CAAC;yBAC3C,QAAQ,CAAC,8CAA8C,CAAC;yBACxD,QAAQ,CAAC,0BAA0B,CAAC;yBACpC,QAAQ,CAAC,yCAAyC,CAAC;yBACnD,aAAa,CAAC;wBACb,QAAQ,EAAE,iBAAiB;wBAC3B,UAAU,EAAE,QAAQ,CAAC,EAAE;wBACvB,SAAS,EAAE,OAAO,CAAC,EAAE;wBACrB,eAAe,EAAE,aAAa,CAAC,EAAE;wBACjC,MAAM,EAAE,iCAAgB,CAAC,MAAM;wBAC/B,aAAa,EAAE,CAAC,8BAAa,CAAC,UAAU,CAAC;qBAC1C,CAAC,CAAA;oBAEJ,IAAI,gBAAgB,GAAgB,MAAM,EAAE,CAAC,OAAO,EAAE,CAAA;oBACtD,IAAI,iBAAiB,GAAW,CAAC,CAAA;oBACjC,IAAI,uBAAuB,GAAW,CAAC,CAAA;oBACvC,IAAI,kBAAkB,GAAW,CAAC,CAAA;oBAElC,gBAAgB,CAAC,OAAO,CAAC,CAAC,SAAoB,EAAE,EAAE;wBAChD,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,SAAS,CAAA;wBACpC,iBAAiB,IAAI,GAAG,CAAA;wBACxB,uBAAuB,IAAI,SAAS,CAAA;wBACpC,IAAI,SAAS,CAAC,QAAQ,CAAC,IAAI,KAAK,8BAAa,CAAC,OAAO,EAAE;4BACrD,kBAAkB,IAAI,GAAG,CAAA;yBAC1B;oBACH,CAAC,CAAC,CAAA;oBAEF,MAAM,kBAAkB,GAAuB,MAAM,MAAM;yBACxD,aAAa,CAAC,mCAAkB,CAAC;yBACjC,OAAO,CAAC,EAAE,aAAa,EAAE,CAAC,CAAA;oBAE7B,MAAM,UAAU,GAAU;wBACxB;4BACE,OAAO,EAAE,aAAa,CAAC,OAAO;4BAC9B,KAAK,EAAE;gCACL,aAAa,EAAE,iBAAiB,IAAI,CAAC;gCACrC,gBAAgB,EAAE,uBAAuB,GAAG,CAAC,kBAAkB,CAAC,aAAa,IAAI,CAAC,CAAC,IAAI,CAAC;gCACxF,cAAc,EAAE,CAAC;6BAClB;yBACF;qBACF,CAAA;oBAED,MAAM,8BAAS,CAAC,WAAW,CAAC,MAAM,EAAE;wBAClC,OAAO,EAAE,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,cAAc,IAAI,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE;wBAC1E,iBAAiB;wBACjB,UAAU;qBACX,CAAC,CAAA;iBACH;gBAAC,OAAO,CAAC,EAAE;oBACV,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;iBACf;aACF;SACF;IACH,CAAC;IAED,uDAAuD;IACvD,KAAK,CAAC,kBAAkB,CACtB,EAAiB,EACjB,WAAwB,EACxB,gBAAmC,EACnC,IAAW,EACX,GAAS;QAET,IAAI;YACF,MAAM,YAAY,GAAQ;gBACxB,EAAE,EAAE,IAAA,SAAM,GAAE;gBACZ,IAAI,EAAE,wBAAgB,CAAC,YAAY,EAAE;gBACrC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI;gBACrC,MAAM,EAAE,wBAAY,CAAC,UAAU;gBAC/B,WAAW;gBACX,gBAAgB;gBAChB,MAAM,EAAE,WAAW,CAAC,MAAM;gBAC1B,QAAQ,EAAE,WAAW,CAAC,QAAQ;gBAC9B,OAAO,EAAE,IAAI,CAAC,EAAE;gBAChB,OAAO,EAAE,IAAI,CAAC,EAAE;gBAChB,oBAAoB,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI;aACvD,CAAA;YACD,IAAI,iBAAiB,GAAiB,MAAM,EAAE,CAAC,aAAa,CAAC,4BAAY,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;YAC7F,OAAO,iBAAiB,CAAA;SACzB;QAAC,OAAO,CAAC,EAAE;YACV,YAAM,CAAC,KAAK,CAAC,mCAAmC,CAAC,GAAG,CAAC,CAAA;SACtD;IACH,CAAC;IAED,KAAK,CAAC,uBAAuB,CAC3B,aAA6B,EAC7B,YAA0B,EAC1B,KAAY,EACZ,IAAU,EACV,eAAyB,EACzB,WAAiB;QAEjB,IAAI;YACF,MAAM,cAAc,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;;gBACrC,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,aAAa,EAAE,UAAU,EAAE,GAAG,GAAG,CAAA;gBAEvD,IAAI,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE;oBAChC,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAA;iBAC/C;gBAED,MAAM,GAAG,GAAG,aAAa,CAAC,SAAS,CACjC,EAAE,CAAC,EAAE,eAAC,OAAA,CAAA,MAAA,EAAE,CAAC,aAAa,0CAAE,OAAO,MAAK,OAAO,IAAI,CAAA,MAAA,EAAE,CAAC,aAAa,0CAAE,OAAO,OAAK,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,OAAO,CAAA,CAAA,EAAA,CACpG,CAAA;gBAED,MAAM,mBAAmB,GAAiB,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,mBAAM,aAAa,CAAC,GAAG,CAAC,EAAG,CAAC,CAAC,SAAS,CAAA;gBAE5F,IAAI,CAAC,mBAAmB,IAAI,mBAAmB,CAAC,UAAU,IAAI,CAAC,EAAE;oBAC/D,OAAO,IAAI,CAAA,CAAC,yDAAyD;iBACtE;gBAED,MAAM,uBAAuB,GAAqB,MAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,iBAAiB,0CAAE,IAAI,CACrF,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,cAAc,KAAK,mBAAmB,CAAC,EAAE,CACrD,CAAA;gBAED,MAAM,gBAAgB,GAAG;oBACvB,YAAY,EAAE,mBAAmB;oBACjC,MAAM,EAAE,wBAAY,CAAC,UAAU;oBAC/B,YAAY,EAAE,YAAY;oBAC1B,MAAM,EAAE,WAAW,CAAC,MAAM;oBAC1B,QAAQ,EAAE,WAAW,CAAC,QAAQ;oBAC9B,OAAO,EAAE,IAAI,CAAC,EAAE;oBAChB,OAAO,EAAE,IAAI,CAAC,EAAE;oBAChB,aAAa,EAAE,mBAAmB,CAAC,aAAa;iBACjD,CAAA;gBAED,IAAI,MAAM,GAAG,EAAE,CAAA;gBAEf,IAAI,uBAAuB,EAAE;oBAC3B,MAAM,mCACD,gBAAgB,KACnB,EAAE,EAAE,uBAAuB,CAAC,EAAE,EAC9B,IAAI,EAAE,uBAAuB,CAAC,IAAI,EAClC,UAAU,EAAE,CAAC,uBAAuB,CAAC,UAAU,IAAI,CAAC,CAAC,GAAG,CAAC,UAAU,IAAI,CAAC,CAAC,GAC1E,CAAA;iBACF;qBAAM;oBACL,aAAa,CAAC,GAAG,CAAC,CAAC,UAAU,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAA;oBACjF,MAAM,mCACD,gBAAgB,KACnB,IAAI,EAAE,wBAAgB,CAAC,gBAAgB,EAAE,EACzC,UAAU,EAAE,UAAU;4BACpB,CAAC,CAAC,UAAU;4BACZ,CAAC,CAAC,GAAG,GAAG,mBAAmB,CAAC,UAAU;gCACpC,CAAC,CAAC,mBAAmB,CAAC,UAAU;gCAChC,CAAC,CAAC,GAAG,GACV,CAAA;iBACF;gBAED,OAAO,MAAM,CAAA;YACf,CAAC,CAAC,CAAA;YAEF,OAAO,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI,IAAI,CAAC,CAAA;SACnD;QAAC,OAAO,CAAC,EAAE;YACV,YAAM,CAAC,KAAK,CAAC,gCAAgC,CAAC,EAAE,CAAC,CAAA;SAClD;IACH,CAAC;IAED,KAAK,CAAC,uBAAuB,CAC3B,uBAAuC,EACvC,WAAwB,EACxB,IAAU,EACV,MAAqB;QAErB,MAAM,aAAa,GAAmB,MAAM,MAAM,CAAC,aAAa,CAAC,4BAAY,CAAC,CAAC,IAAI,CAAC;YAClF,KAAK,EAAE,EAAE,WAAW,EAAE,WAAW,CAAC,EAAE,EAAE;YACtC,SAAS,EAAE,CAAC,mBAAmB,CAAC;SACjC,CAAC,CAAA;QAEF,IAAI,oBAAoB,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,eAAe,EAAE,mBAAmB,EAAE,EAAE;YACvF,OAAO,CAAA,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,CAAE,iBAAiB,CAAC,MAAM,KAAG,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,iBAAiB,CAAC,MAAM,CAAA;gBAC9F,CAAC,CAAC,mBAAmB;gBACrB,CAAC,CAAC,eAAe,CAAA;QACrB,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,CAAA;QAEpB,MAAM,sBAAsB,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAC/D,uBAAuB,EACvB,oBAAoB,EACpB,uBAAuB,EACvB,IAAI,EACJ,IAAI,EACJ,WAAW,CACZ,CAAA;QACD,MAAM,MAAM,CAAC,aAAa,CAAC,qCAAgB,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAA;IAC3E,CAAC;CACF;AAtiBD,4CAsiBC;AAEM,KAAK,UAAU,sBAAsB,CAC1C,EAAiB,EACjB,WAAwB,EACxB,IAAW,EACX,SAA4B;;IAE5B,IAAI;QACF,MAAM,gBAAgB,GAAqB;YACzC,EAAE,EAAE,IAAA,SAAM,GAAE;YACZ,IAAI,EAAE,wBAAgB,CAAC,gBAAgB,EAAE;YACzC,YAAY,EAAE,CAAA,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,aAAa,0CAAE,MAAM,EAAC,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACnF,MAAM,EAAE,WAAW,CAAC,MAAM;YAC1B,QAAQ,EAAE,WAAW,CAAC,QAAQ;YAC9B,WAAW,EAAE,WAAW;YACxB,aAAa,EAAE,EAAE;YACjB,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,IAAI;SACd,CAAA;QAED,OAAO,EAAE,CAAC,aAAa,CAAC,oCAAgB,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;KACjE;IAAC,OAAO,CAAC,EAAE;QACV,YAAM,CAAC,KAAK,CAAC,mCAAmC,CAAC,GAAG,CAAC,CAAA;KACtD;AACH,CAAC;AAvBD,wDAuBC;AAEM,KAAK,UAAU,cAAc,CAAC,aAAa;IAChD,IAAI;QACF,MAAM,0BAA0B,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YAC7D,IAAI,CAAC,CAAC,OAAO,CAAC,WAAW,KAAK,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE;gBACnD,OAAO,CAAC,CAAC,OAAO,CAAC,WAAW,GAAG,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;aAC9D;YACD,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE;gBACnC,OAAO,CAAC,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;aAC9C;YACD,OAAO,CAAC,CAAA;QACV,CAAC,CAAC,CAAA;QACF,OAAO,0BAA0B,CAAA;KAClC;IAAC,OAAO,CAAC,EAAE;QACV,YAAM,CAAC,KAAK,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAA;KAC1C;AACH,CAAC;AAfD,wCAeC;AAEM,KAAK,UAAU,qBAAqB,CAAC,EAAiB,EAAE,WAAwB,EAAE,IAAU;IACjG,IAAI;QACF,IAAI,kBAAkB,GAAG,EAAE,EAAE,EAAE,IAAA,SAAM,GAAE,EAAE,WAAW,EAAE,CAAC,EAAE,aAAa,EAAE,EAAE,EAAE,CAAA;QAC5E,IAAI,iBAAiB,GAAG,EAAE,CAAA;QAC1B,IAAI,iBAAiB,GAAG,EAAE,CAAA;QAC1B,IAAI,sBAAsB,GAAG,CAAC,CAAA;QAE9B,IAAI,aAAa,GAAG,WAAW,CAAC,aAAa,CAAA;QAC7C,IAAI,oBAAoB,GAAG,WAAW,CAAC,gBAAgB,CAAC,iBAAiB,CAAA;QAEzE,4CAA4C;QAC5C,IAAI,SAAS,GAAG,MAAM,cAAc,CAAC,aAAa,CAAC,CAAA;QAEnD,yCAAyC;QACzC,MAAM,qBAAqB,GAAG,GAAG,EAAE,CAAC,CAAC;YACnC,EAAE,EAAE,IAAA,SAAM,GAAE;YACZ,WAAW,EAAE,CAAC;YACd,aAAa,EAAE,EAAE;SAClB,CAAC,CAAA;QAEF,kDAAkD;QAClD,MAAM,wBAAwB,GAAG,CAAC,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE;YAC3G,WAAW,CAAC,WAAW,IAAI,aAAa,CAAA;YAExC,kBAAkB,CAAC,aAAa,CAAC,IAAI,CAAC;gBACpC,EAAE,EAAE,IAAA,SAAM,GAAE;gBACZ,IAAI,EAAE,wBAAgB,CAAC,YAAY,EAAE;gBACrC,SAAS,EAAE,IAAI;gBACf,UAAU,EAAE,IAAI;gBAChB,WAAW,EAAE,IAAI;gBACjB,UAAU,EAAE,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,UAAU,KAAI,IAAI;gBAC3C,OAAO,EAAE,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,OAAO;gBAC7B,MAAM,EAAE,wBAAY,CAAC,UAAU;gBAC/B,WAAW;gBACX,MAAM,EAAE,WAAW,CAAC,MAAM;gBAC1B,QAAQ,EAAE,WAAW,CAAC,QAAQ;gBAC9B,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,IAAI;gBACb,iBAAiB,EAAE;oBACjB;wBACE,EAAE,EAAE,IAAA,SAAM,GAAE;wBACZ,IAAI,EAAE,wBAAgB,CAAC,gBAAgB,EAAE;wBACzC,UAAU,EAAE,UAAU;wBACtB,YAAY,EAAE,YAAY;wBAC1B,MAAM,EAAE,WAAW,CAAC,MAAM;wBAC1B,QAAQ,EAAE,WAAW,CAAC,QAAQ;wBAC9B,OAAO,EAAE,WAAW,CAAC,OAAO;wBAC5B,OAAO,EAAE,WAAW,CAAC,OAAO;wBAC5B,aAAa,EAAE,YAAY,CAAC,aAAa;qBAC1C;iBACF;aACF,CAAC,CAAA;QACJ,CAAC,CAAA;QAED,MAAM,aAAa,GAAG,EAAE,CAAC,EAAE;YACzB,IAAI,UAAU,GAAG,EAAE,CAAC,aAAa,CAAC,WAAW,CAAC,WAAW,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAA;YAC5F,IAAI,aAAa,GACf,EAAE,CAAC,aAAa,CAAC,WAAW,CAAC,WAAW,EAAE,KAAK,QAAQ;gBACrD,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,WAAW;gBAC9B,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,WAAW,GAAG,UAAU,CAAA;YAE/C,MAAM,QAAQ,GAAG,EAAE,CAAC,aAAa,CAAC,WAAW,CAAC,WAAW,EAAE,KAAK,QAAQ,CAAA;YACxE,sBAAsB,IAAI,aAAa,CAAA;YACvC,MAAM,sBAAsB,GAAG,sBAAsB,IAAI,oBAAoB,CAAA;YAE7E,IAAI,QAAQ,IAAI,EAAE,CAAC,UAAU,GAAG,CAAC,EAAE;gBACjC,IAAI,sBAAsB,EAAE;oBAC1B,wDAAwD;oBACxD,iBAAiB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAA;oBAE1C,wDAAwD;oBACxD,sBAAsB,GAAG,aAAa,GAAG,CAAC,CAAA;oBAC1C,kBAAkB,GAAG,qBAAqB,EAAE,CAAA;iBAC7C;gBACD,wBAAwB,CAAC,kBAAkB,EAAE,aAAa,EAAE,WAAW,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,CAAA;aAC/F;iBAAM;gBACL,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;aAC3B;QACH,CAAC,CAAA;QAED,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACvB,IAAI,aAAa,GAAkB,IAAI,CAAC,aAAa,CAAA;YACrD,IAAI,aAAa,CAAC,WAAW,CAAC,WAAW,EAAE,KAAK,QAAQ,EAAE;gBACxD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE;oBACxC,aAAa,CAAC,IAAI,CAAC,CAAA;iBACpB;aACF;iBAAM;gBACL,aAAa,CAAC,IAAI,CAAC,CAAA;aACpB;QACH,CAAC,CAAC,CAAA;QAEF,mDAAmD;QACnD,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE;YAChC,IAAI,oBAAoB,CAAA;YAExB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,iBAAiB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACjD,IAAI,EAAE,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAA;gBAC7B,IAAI,UAAU,GAAG,EAAE,CAAC,UAAU,CAAA;gBAC9B,IAAI,iBAAiB,GAAG,EAAE,CAAC,aAAa,CAAC,WAAW,GAAG,EAAE,CAAC,UAAU,CAAA;gBACpE,IAAI,gBAAgB,GAAG,kBAAkB,CAAC,aAAa,CAAC,kBAAkB,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;gBAEpG,6DAA6D;gBAC7D,IAAI,kBAAkB,CAAC,WAAW,GAAG,iBAAiB,GAAG,oBAAoB,EAAE;oBAC7E,IAAI,gBAAgB,EAAE;wBACpB,gBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC;4BACtC,EAAE,EAAE,IAAA,SAAM,GAAE;4BACZ,IAAI,EAAE,wBAAgB,CAAC,gBAAgB,EAAE;4BACzC,UAAU,EAAE,EAAE,CAAC,UAAU;4BACzB,YAAY,EAAE,EAAE;4BAChB,MAAM,EAAE,WAAW,CAAC,MAAM;4BAC1B,QAAQ,EAAE,WAAW,CAAC,QAAQ;4BAC9B,OAAO,EAAE,WAAW,CAAC,OAAO;4BAC5B,OAAO,EAAE,WAAW,CAAC,OAAO;4BAC5B,aAAa,EAAE,EAAE,CAAC,aAAa;yBAChC,CAAC,CAAA;qBACH;yBAAM;wBACL,MAAM,wBAAwB,CAAC,kBAAkB,EAAE,iBAAiB,EAAE,WAAW,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,CAAA;qBACzG;iBACF;qBAAM;oBACL,+DAA+D;oBAC/D,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,kBAAkB,CAAC,EAAE,CAAC,EAAE;wBAClE,iBAAiB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAA;qBAC3C;oBAED,oDAAoD;oBACpD,oBAAoB,GAAG,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;wBACjD,EAAE,CAAC,WAAW,IAAI,iBAAiB,GAAG,oBAAoB,CAAA;oBAC5D,CAAC,CAAC,CAAA;oBAEF,IAAI,oBAAoB,EAAE;wBACxB,IAAI,gBAAgB,GAAG,oBAAoB,CAAC,aAAa,CAAC,kBAAkB,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;wBACtG,gBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC;4BACtC,EAAE,EAAE,IAAA,SAAM,GAAE;4BACZ,IAAI,EAAE,wBAAgB,CAAC,gBAAgB,EAAE;4BACzC,UAAU,EAAE,EAAE,CAAC,UAAU;4BACzB,YAAY,EAAE,EAAE;4BAChB,MAAM,EAAE,WAAW,CAAC,MAAM;4BAC1B,QAAQ,EAAE,WAAW,CAAC,QAAQ;4BAC9B,OAAO,EAAE,WAAW,CAAC,OAAO;4BAC5B,OAAO,EAAE,WAAW,CAAC,OAAO;4BAC5B,aAAa,EAAE,EAAE,CAAC,aAAa;yBAChC,CAAC,CAAA;wBAEF,kCAAkC;wBAClC,iBAAiB,GAAG,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;4BAC7C,EAAE,CAAC,EAAE,KAAK,oBAAoB,CAAC,EAAE,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAA;wBAC/D,CAAC,CAAC,CAAA;qBACH;yBAAM;wBACL,oDAAoD;wBACpD,kBAAkB,GAAG,qBAAqB,EAAE,CAAA;wBAC5C,wBAAwB,CAAC,kBAAkB,EAAE,iBAAiB,EAAE,WAAW,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,CAAA;wBAElG,iBAAiB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAA;qBAC3C;iBACF;aACF;SACF;QAED,MAAM,mBAAmB,GAAG,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,kBAAkB,CAAC,EAAE,CAAC,CAAA;QAEzF,IAAI,CAAC,mBAAmB,EAAE;YACxB,iBAAiB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAA;SAC3C;QAED,IAAI,gBAAgB,GAAG,iBAAiB,CAAA;QACxC,IAAI,cAAc,GAAG,MAAM,iCAAiC,CAAC,EAAE,EAAE,gBAAgB,EAAE,WAAW,EAAE,IAAI,CAAC,CAAA;QAErG,OAAO,cAAc,CAAA;KACtB;IAAC,OAAO,CAAC,EAAE;QACV,YAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;KAChB;AACH,CAAC;AA3KD,sDA2KC;AAEM,KAAK,UAAU,iCAAiC,CACrD,EAAiB,EACjB,aAAiC,EACjC,WAAwB,EACxB,IAAU;IAEV,IAAI;QACF,IAAI,gBAAgB,GAAG,EAAE,CAAA;QACzB,IAAI,oBAAoB,GAAuB,EAAE,CAAA;QAEjD,KAAK,MAAM,SAAS,IAAI,aAAa,EAAE;YACrC,MAAM,qBAAqB,GAAG,MAAM,sBAAsB,CAAC,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,CAAC,CAAA;YAE5F,KAAK,MAAM,cAAc,IAAI,SAAS,CAAC,aAAa,EAAE;gBACpD,MAAM,iBAAiB,GAAG,MAAM,qBAAqB,CACnD,EAAE,EACF,cAAc,EACd,WAAW,EACX,IAAI,EACJ,qBAAqB,CACtB,CAAA;gBACD,MAAM,iBAAiB,GAAG,MAAM,yBAAyB,CACvD,EAAE,EACF,cAAc,CAAC,iBAAiB,EAChC,iBAAiB,EACjB,WAAW,CACZ,CAAA;gBAED,iBAAiB,CAAC,iBAAiB,GAAG,iBAAiB,CAAA;gBACvD,qBAAqB,CAAC,aAAa,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;gBAC3D,gBAAgB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;aACzC;YACD,oBAAoB,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAA;SACjD;QAED,WAAW,CAAC,iBAAiB,GAAG,oBAAoB,CAAA;QACpD,WAAW,CAAC,aAAa,GAAG,gBAAgB,CAAA;QAE5C,OAAO,WAAW,CAAA;KACnB;IAAC,OAAO,KAAK,EAAE;QACd,OAAO,CAAC,KAAK,CAAC,oDAAoD,EAAE,KAAK,CAAC,CAAA;QAC1E,MAAM,KAAK,CAAA;KACZ;AACH,CAAC;AA3CD,8EA2CC;AAEM,KAAK,UAAU,qBAAqB,CACzC,EAAiB,EACjB,gBAAqB,EACrB,WAAwB,EACxB,IAAU,EACV,gBAAkC;IAElC,IAAI;QACF,MAAM,YAAY,GAAQ;YACxB,EAAE,EAAE,IAAA,SAAM,GAAE;YACZ,IAAI,EAAE,wBAAgB,CAAC,YAAY,EAAE;YACrC,SAAS,EAAE,IAAI;YACf,UAAU,EAAE,IAAI;YAChB,WAAW,EAAE,IAAI;YACjB,UAAU,EAAE,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,UAAU,KAAI,IAAI;YAC3C,OAAO,EAAE,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,OAAO;YAC7B,MAAM,EAAE,wBAAY,CAAC,UAAU;YAC/B,WAAW;YACX,MAAM,EAAE,WAAW,CAAC,MAAM;YAC1B,QAAQ,EAAE,WAAW,CAAC,QAAQ;YAC9B,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,IAAI;YACb,gBAAgB;SACjB,CAAA;QACD,OAAO,EAAE,CAAC,aAAa,CAAC,4BAAY,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;KACzD;IAAC,OAAO,CAAC,EAAE;QACV,YAAM,CAAC,KAAK,CAAC,+BAA+B,CAAC,GAAG,CAAC,CAAA;KAClD;AACH,CAAC;AA5BD,sDA4BC;AAEM,KAAK,UAAU,yBAAyB,CAC7C,EAAiB,EACjB,qBAA4B,EAC5B,iBAA+B,EAC/B,WAAwB;IAExB,IAAI;QACF,MAAM,iBAAiB,GAAG,CACxB,qBAAqB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,WAAW,CAAC,aAAa,CACrF,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YACX,MAAM,sBAAsB,GAAG,qBAAqB,CAAC,MAAM,GAAG,CAAC,CAAA;YAC/D,MAAM,EAAE,GAAG,sBAAsB,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAA,SAAM,GAAE,CAAA;YACtD,MAAM,IAAI,GAAG,sBAAsB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,wBAAgB,CAAC,gBAAgB,EAAE,CAAA;YACrF,MAAM,YAAY,GAAG,sBAAsB,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAA;YACtE,MAAM,UAAU,GAAG,sBAAsB,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAA;YAE7E,OAAO;gBACL,EAAE;gBACF,IAAI;gBACJ,YAAY;gBACZ,MAAM,EAAE,wBAAY,CAAC,UAAU;gBAC/B,UAAU;gBACV,YAAY,EAAE,iBAAiB;gBAC/B,MAAM,EAAE,WAAW,CAAC,MAAM;gBAC1B,QAAQ,EAAE,WAAW,CAAC,QAAQ;gBAC9B,OAAO,EAAE,WAAW,CAAC,OAAO;gBAC5B,OAAO,EAAE,WAAW,CAAC,OAAO;gBAC5B,aAAa,EAAE,sBAAsB,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa;aAChF,CAAA;QACH,CAAC,CAAC,CAAA;QAEF,IAAI,sBAAsB,GAAuB,MAAM,EAAE,CAAC,aAAa,CAAC,qCAAgB,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;QAEjH,OAAO,sBAAsB,CAAA;KAC9B;IAAC,OAAO,CAAC,EAAE;QACV,YAAM,CAAC,KAAK,CAAC,+BAA+B,CAAC,GAAG,CAAC,CAAA;KAClD;AACH,CAAC;AArCD,8DAqCC;AAEM,KAAK,UAAU,eAAe,CAAC,QAAQ,EAAE,WAAW,EAAE,MAAM;IACjE,IAAI;QACF,8DAA8D;QAC9D,MAAM,IAAA,uBAAa,GAAE,CAAC,WAAW,CAAC,KAAK,EAAC,GAAG,EAAC,EAAE;YAC5C,MAAM,aAAa,GAAmB,MAAM,GAAG,CAAC,aAAa,CAAC,4BAAY,CAAC,CAAC,IAAI,CAAC;gBAC/E,KAAK,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,EAAE,WAAW,CAAC,EAAE,EAAE,EAAE;gBAC9C,SAAS,EAAE,CAAC,aAAa,CAAC;aAC3B,CAAC,CAAA;YAEF,KAAK,IAAI,YAAY,IAAI,aAAa,EAAE;gBACtC,IAAI,cAAc,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;oBACrC,OAAO,CAAC,CAAC,cAAc,IAAI,YAAY,CAAC,EAAE,CAAA;gBAC5C,CAAC,CAAC,CAAA;gBAEF,IAAI,cAAc,EAAE;oBAClB,MAAM,GAAG,CAAC,aAAa,CAAC,4BAAY,CAAC,CAAC,MAAM,CAC1C,EAAE,EAAE,EAAE,YAAY,CAAC,EAAE,EAAE,EACvB;wBACE,SAAS,EAAE,cAAc,CAAC,SAAS;qBACpC,CACF,CAAA;iBACF;aACF;YAED,IAAI,EAAE,GAAG,MAAM,GAAG,CAAC,aAAa,CAAC,0BAAW,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,WAAW,CAAC,EAAE,EAAE,CAAC,CAAA;YAE7E,IAAI,EAAE,EAAE;gBACN,MAAM,GAAG,CAAC,aAAa,CAAC,0BAAW,CAAC,CAAC,MAAM,CACzC,EAAE,EAAE,EAAE,WAAW,CAAC,EAAE,EAAE,EACtB;oBACE,qBAAqB,EAAE,IAAI,IAAI,EAAE;oBACjC,kBAAkB,EAAE,IAAI,IAAI,EAAE;oBAC9B,SAAS,EAAE,IAAI,IAAI,EAAE;iBACtB,CACF,CAAA;aACF;QACH,CAAC,CAAC,CAAA;KACH;IAAC,OAAO,CAAC,EAAE;QACV,YAAM,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAA;KAChD;AACH,CAAC;AAxCD,0CAwCC"}
|
|
1
|
+
{"version":3,"file":"powrup-controller.js","sourceRoot":"","sources":["../../../server/controllers/ecommerce/powrup-controller.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@things-factory/sales-base",
|
|
3
|
-
"version": "4.3.
|
|
3
|
+
"version": "4.3.669",
|
|
4
4
|
"main": "dist-server/index.js",
|
|
5
5
|
"browser": "client/index.js",
|
|
6
6
|
"things-factory": true,
|
|
@@ -29,16 +29,16 @@
|
|
|
29
29
|
"@things-factory/code-base": "^4.3.591",
|
|
30
30
|
"@things-factory/integration-accounting": "^4.3.660",
|
|
31
31
|
"@things-factory/integration-base": "^4.3.653",
|
|
32
|
-
"@things-factory/integration-lmd": "^4.3.
|
|
33
|
-
"@things-factory/integration-powrup": "^4.3.
|
|
34
|
-
"@things-factory/integration-sftp": "^4.3.
|
|
32
|
+
"@things-factory/integration-lmd": "^4.3.669",
|
|
33
|
+
"@things-factory/integration-powrup": "^4.3.669",
|
|
34
|
+
"@things-factory/integration-sftp": "^4.3.668",
|
|
35
35
|
"@things-factory/notification": "^4.3.609",
|
|
36
36
|
"@things-factory/product-base": "^4.3.660",
|
|
37
37
|
"@things-factory/setting-base": "^4.3.609",
|
|
38
38
|
"@things-factory/shell": "^4.3.591",
|
|
39
39
|
"@things-factory/transport-base": "^4.3.631",
|
|
40
|
-
"@things-factory/warehouse-base": "^4.3.
|
|
40
|
+
"@things-factory/warehouse-base": "^4.3.669",
|
|
41
41
|
"axios": "1.7.7"
|
|
42
42
|
},
|
|
43
|
-
"gitHead": "
|
|
43
|
+
"gitHead": "c13a564c8b4cbf6b8e92b31fd933590f013cbccb"
|
|
44
44
|
}
|
|
@@ -3,11 +3,12 @@ import { v4 as uuidv4 } from 'uuid'
|
|
|
3
3
|
import { Bizplace } from '@things-factory/biz-base'
|
|
4
4
|
import { logger } from '@things-factory/env'
|
|
5
5
|
import { Platform, Powrup, PowrupAPI } from '@things-factory/integration-powrup'
|
|
6
|
+
import { LmdPlatform } from '@things-factory/integration-lmd'
|
|
6
7
|
import { Product, ProductDetail } from '@things-factory/product-base'
|
|
7
8
|
import { Domain, User } from '@things-factory/shell'
|
|
8
9
|
import { Inventory, INVENTORY_STATUS, LOCATION_TYPE, ProductDetailStock } from '@things-factory/warehouse-base'
|
|
9
10
|
|
|
10
|
-
import { ORDER_STATUS } from '../../constants'
|
|
11
|
+
import { ORDER_STATUS, ReleaseOrderType } from '../../constants'
|
|
11
12
|
import { OrderPackageItem } from '../../service/order-package-item/order-package-item'
|
|
12
13
|
import { OrderPackage } from '../../service/order-package/order-package'
|
|
13
14
|
import { OrderProduct } from '../../service/order-product/order-product'
|
|
@@ -50,6 +51,14 @@ export class PowrupController {
|
|
|
50
51
|
return
|
|
51
52
|
}
|
|
52
53
|
|
|
54
|
+
if (
|
|
55
|
+
releaseGood.type == 'b2b' &&
|
|
56
|
+
!releaseGood?.lastMileDelivery &&
|
|
57
|
+
(releaseGood?.deliveryOrders == undefined || releaseGood?.deliveryOrders?.length <= 0)
|
|
58
|
+
) {
|
|
59
|
+
return
|
|
60
|
+
}
|
|
61
|
+
|
|
53
62
|
// capture update fields
|
|
54
63
|
roUpdateFields = {
|
|
55
64
|
lastMarketPackCall: new Date()
|
|
@@ -118,37 +127,85 @@ export class PowrupController {
|
|
|
118
127
|
const isMps = releaseGood?.lastMileDelivery?.mps
|
|
119
128
|
const orderInformation: any = { refOrderId: releaseGood.refOrderId, isSof: true }
|
|
120
129
|
|
|
121
|
-
if (
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
} else {
|
|
126
|
-
//create package like normal non sof orders
|
|
130
|
+
if (
|
|
131
|
+
releaseGood?.lastMileDelivery?.platform == LmdPlatform.VERSA_FLEET ||
|
|
132
|
+
(releaseGood?.lastMileDelivery == null && releaseGood?.deliveryOrders?.length > 0)
|
|
133
|
+
) {
|
|
127
134
|
let orderConsignment = await createOrderConsignment(trxMgr, releaseGood, user)
|
|
128
|
-
let savedOrderPackage: OrderPackage = await this.createOrderPackage(
|
|
129
|
-
trxMgr,
|
|
130
|
-
releaseGood,
|
|
131
|
-
orderConsignment,
|
|
132
|
-
user
|
|
133
|
-
)
|
|
134
|
-
let orderPackageItems: OrderPackageItem[] = await createSofOrderPackageItem(
|
|
135
|
-
trxMgr,
|
|
136
|
-
[],
|
|
137
|
-
savedOrderPackage,
|
|
138
|
-
releaseGood
|
|
139
|
-
)
|
|
140
|
-
savedOrderPackage.orderPackageItems = orderPackageItems
|
|
141
|
-
orderPackages.push(savedOrderPackage)
|
|
142
|
-
releaseGood.orderPackages = orderPackages
|
|
143
135
|
|
|
136
|
+
for (const deliveryOrder of releaseGood.deliveryOrders) {
|
|
137
|
+
const savedOrderPackage: OrderPackage = await this.createOrderPackage(
|
|
138
|
+
trxMgr,
|
|
139
|
+
releaseGood,
|
|
140
|
+
orderConsignment,
|
|
141
|
+
user,
|
|
142
|
+
deliveryOrder
|
|
143
|
+
)
|
|
144
|
+
|
|
145
|
+
const orderInventoriesGroupByProduct: any[] = Object.values(
|
|
146
|
+
deliveryOrder.orderInventories.reduce((acc, oi) => {
|
|
147
|
+
const key = oi.productDetail.id
|
|
148
|
+
if (!acc[key]) {
|
|
149
|
+
acc[key] = {
|
|
150
|
+
id: uuidv4(),
|
|
151
|
+
name: OrderNoGenerator.orderPackageItem(),
|
|
152
|
+
orderProduct: null,
|
|
153
|
+
productDetail: {
|
|
154
|
+
id: oi.productDetail.id,
|
|
155
|
+
refCode: oi.productDetail.refCode,
|
|
156
|
+
product: { sku: oi.product.sku }
|
|
157
|
+
},
|
|
158
|
+
releaseQty: 0
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
acc[key].releaseQty += oi.releaseQty || 0
|
|
162
|
+
return acc
|
|
163
|
+
}, {})
|
|
164
|
+
)
|
|
165
|
+
|
|
166
|
+
const orderPackageItems: OrderPackageItem[] = await createSofOrderPackageItem(
|
|
167
|
+
trxMgr,
|
|
168
|
+
orderInventoriesGroupByProduct,
|
|
169
|
+
savedOrderPackage,
|
|
170
|
+
releaseGood
|
|
171
|
+
)
|
|
172
|
+
savedOrderPackage.orderPackageItems = orderPackageItems
|
|
173
|
+
orderPackages.push(savedOrderPackage)
|
|
174
|
+
}
|
|
144
175
|
newReleaseGood = releaseGood
|
|
176
|
+
} else {
|
|
177
|
+
if (isMps) {
|
|
178
|
+
newReleaseGood = await splitOrderConsignment(trxMgr, releaseGood, user)
|
|
179
|
+
orderPackages = newReleaseGood.orderPackages
|
|
180
|
+
releaseGood.orderPackages = orderPackages
|
|
181
|
+
} else {
|
|
182
|
+
//create package like normal non sof orders
|
|
183
|
+
let orderConsignment = await createOrderConsignment(trxMgr, releaseGood, user)
|
|
184
|
+
let savedOrderPackage: OrderPackage = await this.createOrderPackage(
|
|
185
|
+
trxMgr,
|
|
186
|
+
releaseGood,
|
|
187
|
+
orderConsignment,
|
|
188
|
+
user
|
|
189
|
+
)
|
|
190
|
+
let orderPackageItems: OrderPackageItem[] = await createSofOrderPackageItem(
|
|
191
|
+
trxMgr,
|
|
192
|
+
[],
|
|
193
|
+
savedOrderPackage,
|
|
194
|
+
releaseGood
|
|
195
|
+
)
|
|
196
|
+
savedOrderPackage.orderPackageItems = orderPackageItems
|
|
197
|
+
orderPackages.push(savedOrderPackage)
|
|
198
|
+
releaseGood.orderPackages = orderPackages
|
|
199
|
+
|
|
200
|
+
newReleaseGood = releaseGood
|
|
201
|
+
}
|
|
145
202
|
}
|
|
146
203
|
|
|
147
204
|
const packages = orderPackages.map(op => {
|
|
148
205
|
const items = op.orderPackageItems.map(opi => {
|
|
149
206
|
return {
|
|
150
207
|
universalIdentifier: opi.productDetail.refCode,
|
|
151
|
-
sku: opi
|
|
208
|
+
sku: opi?.orderProduct?.product?.sku || opi?.productDetail?.product?.sku,
|
|
152
209
|
quantity: opi.releaseQty
|
|
153
210
|
}
|
|
154
211
|
})
|
|
@@ -232,8 +289,25 @@ export class PowrupController {
|
|
|
232
289
|
orderPackages
|
|
233
290
|
.filter(op => op?.marketRtsCallSuccess == undefined)
|
|
234
291
|
.map(async op => {
|
|
235
|
-
if (!op?.packageId)
|
|
236
|
-
|
|
292
|
+
if (!op?.releaseGood?.lmdOption && !op?.packageId) {
|
|
293
|
+
throw new Error('Order package id is not found')
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
if (op?.releaseGood?.lmdOption) {
|
|
297
|
+
if (op.releaseGood?.lastMileDelivery) {
|
|
298
|
+
if (op.releaseGood.lastMileDelivery.isTms && !op?.releaseGood?.taskId) {
|
|
299
|
+
return
|
|
300
|
+
} else {
|
|
301
|
+
if (!op?.parcelId) {
|
|
302
|
+
return
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
} else {
|
|
306
|
+
if (!op?.trackingNo) {
|
|
307
|
+
return
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
}
|
|
237
311
|
|
|
238
312
|
let orderInformation: any = {
|
|
239
313
|
refOrderId: releaseGood.refOrderId,
|
|
@@ -243,10 +317,10 @@ export class PowrupController {
|
|
|
243
317
|
if (op?.releaseGood?.lmdOption) {
|
|
244
318
|
orderInformation = {
|
|
245
319
|
...orderInformation,
|
|
246
|
-
awb: op
|
|
320
|
+
awb: op?.airwayBill,
|
|
247
321
|
trackingNo: op.trackingNo,
|
|
248
322
|
lmdOption: op?.releaseGood?.lmdOption,
|
|
249
|
-
shipperName: op.releaseGood
|
|
323
|
+
shipperName: op.releaseGood?.lastMileDelivery?.platform || 'OTHERS'
|
|
250
324
|
}
|
|
251
325
|
}
|
|
252
326
|
|
|
@@ -291,7 +365,7 @@ export class PowrupController {
|
|
|
291
365
|
trxMgr?: EntityManager
|
|
292
366
|
): Promise<ReleaseGood> {
|
|
293
367
|
if (releaseGood?.lmdOption) {
|
|
294
|
-
|
|
368
|
+
throw new Error(`Release good ${releaseGood.name} is not a non-sof order`)
|
|
295
369
|
}
|
|
296
370
|
|
|
297
371
|
try {
|
|
@@ -449,10 +523,12 @@ export class PowrupController {
|
|
|
449
523
|
pkg?: any
|
|
450
524
|
) {
|
|
451
525
|
try {
|
|
526
|
+
const packageId = uuidv4()
|
|
452
527
|
const orderPackage: any = {
|
|
453
|
-
id:
|
|
528
|
+
id: packageId,
|
|
454
529
|
name: OrderNoGenerator.orderPackage(),
|
|
455
|
-
packageId: pkg ? pkg
|
|
530
|
+
packageId: pkg ? (pkg?.packageId ? packageId : null) : null,
|
|
531
|
+
trackingNo: pkg ? (pkg?.trackingNo ? pkg.trackingNo : pkg.name) : null,
|
|
456
532
|
status: ORDER_STATUS.PROCESSING,
|
|
457
533
|
releaseGood,
|
|
458
534
|
orderConsignment,
|
|
@@ -527,8 +603,8 @@ export class PowrupController {
|
|
|
527
603
|
releaseQty: releaseQty
|
|
528
604
|
? releaseQty
|
|
529
605
|
: qty > matchedOrderProduct.releaseQty
|
|
530
|
-
|
|
531
|
-
|
|
606
|
+
? matchedOrderProduct.releaseQty
|
|
607
|
+
: qty
|
|
532
608
|
}
|
|
533
609
|
}
|
|
534
610
|
|
|
@@ -580,7 +656,11 @@ export async function createOrderConsignment(
|
|
|
580
656
|
const orderConsignment: OrderConsignment = {
|
|
581
657
|
id: uuidv4(),
|
|
582
658
|
name: OrderNoGenerator.orderConsignment(),
|
|
583
|
-
noOfPackages: orderCons?.orderPackages?.length
|
|
659
|
+
noOfPackages: orderCons?.orderPackages?.length
|
|
660
|
+
? orderCons.orderPackages.length
|
|
661
|
+
: releaseGood?.deliveryOrders?.length
|
|
662
|
+
? releaseGood.deliveryOrders.length
|
|
663
|
+
: 1,
|
|
584
664
|
domain: releaseGood.domain,
|
|
585
665
|
bizplace: releaseGood.bizplace,
|
|
586
666
|
releaseGood: releaseGood,
|
|
@@ -835,14 +915,15 @@ export async function createSofOrderPackage(
|
|
|
835
915
|
orderPackageData: any,
|
|
836
916
|
releaseGood: ReleaseGood,
|
|
837
917
|
user: User,
|
|
838
|
-
orderConsignment: OrderConsignment
|
|
918
|
+
orderConsignment: OrderConsignment,
|
|
919
|
+
trackingNo?: string
|
|
839
920
|
): Promise<OrderPackage> {
|
|
840
921
|
try {
|
|
841
922
|
const orderPackage: any = {
|
|
842
923
|
id: uuidv4(),
|
|
843
924
|
name: OrderNoGenerator.orderPackage(),
|
|
844
925
|
packageId: null,
|
|
845
|
-
trackingNo: null,
|
|
926
|
+
trackingNo: trackingNo || null,
|
|
846
927
|
transporter: null,
|
|
847
928
|
airwayBill: releaseGood?.airwayBill || null,
|
|
848
929
|
invoice: releaseGood?.invoice,
|
|
@@ -899,43 +980,39 @@ export async function createSofOrderPackageItem(
|
|
|
899
980
|
}
|
|
900
981
|
}
|
|
901
982
|
|
|
902
|
-
export async function updatePackageId(packages, releaseGood,
|
|
983
|
+
export async function updatePackageId(packages, releaseGood, tx2) {
|
|
903
984
|
try {
|
|
904
985
|
//open new transactiion - same transaction will cause blocking
|
|
905
|
-
await getConnection().transaction(async tx2 => {
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
for (let orderPackage of orderPackages) {
|
|
912
|
-
let matchedPackage = packages.find(p => {
|
|
913
|
-
return p.orderPackageId == orderPackage.id
|
|
914
|
-
})
|
|
915
|
-
|
|
916
|
-
if (matchedPackage) {
|
|
917
|
-
await tx2.getRepository(OrderPackage).update(
|
|
918
|
-
{ id: orderPackage.id },
|
|
919
|
-
{
|
|
920
|
-
packageId: matchedPackage.packageId
|
|
921
|
-
}
|
|
922
|
-
)
|
|
923
|
-
}
|
|
924
|
-
}
|
|
986
|
+
// await getConnection().transaction(async tx2 => {
|
|
987
|
+
const orderPackages: OrderPackage[] = await tx2.getRepository(OrderPackage).find({
|
|
988
|
+
where: { releaseGood: { id: releaseGood.id } },
|
|
989
|
+
relations: ['releaseGood']
|
|
990
|
+
})
|
|
925
991
|
|
|
926
|
-
|
|
992
|
+
for (let orderPackage of orderPackages) {
|
|
993
|
+
let matchedPackage = packages.find(p => {
|
|
994
|
+
return p.orderPackageId == orderPackage.id
|
|
995
|
+
})
|
|
927
996
|
|
|
928
|
-
if (
|
|
929
|
-
await tx2.getRepository(
|
|
930
|
-
{ id:
|
|
997
|
+
if (matchedPackage) {
|
|
998
|
+
await tx2.getRepository(OrderPackage).update(
|
|
999
|
+
{ id: orderPackage.id },
|
|
931
1000
|
{
|
|
932
|
-
|
|
933
|
-
lastMarketPackCall: new Date(),
|
|
934
|
-
updatedAt: new Date()
|
|
1001
|
+
packageId: matchedPackage.packageId
|
|
935
1002
|
}
|
|
936
1003
|
)
|
|
937
1004
|
}
|
|
938
|
-
}
|
|
1005
|
+
}
|
|
1006
|
+
|
|
1007
|
+
await tx2.getRepository(ReleaseGood).update(
|
|
1008
|
+
{ id: releaseGood.id },
|
|
1009
|
+
{
|
|
1010
|
+
marketPackCallSuccess: new Date(),
|
|
1011
|
+
lastMarketPackCall: new Date(),
|
|
1012
|
+
updatedAt: new Date()
|
|
1013
|
+
}
|
|
1014
|
+
)
|
|
1015
|
+
// })
|
|
939
1016
|
} catch (e) {
|
|
940
1017
|
logger.error('unable-to-update-package-id-mps')
|
|
941
1018
|
}
|