@pisell/pisellos 0.10.49 → 0.10.51
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/modules/Discount/types.d.ts +2 -0
- package/dist/modules/FulfillmentTiming/index.d.ts +11 -0
- package/dist/modules/FulfillmentTiming/index.js +407 -0
- package/dist/modules/FulfillmentTiming/types.d.ts +67 -0
- package/dist/modules/FulfillmentTiming/types.js +1 -0
- package/dist/modules/OpenData/types.d.ts +6 -0
- package/dist/modules/Order/index.d.ts +19 -1
- package/dist/modules/Order/index.js +362 -217
- package/dist/modules/Order/pickupTiming.d.ts +46 -0
- package/dist/modules/Order/pickupTiming.js +53 -0
- package/dist/modules/Order/types.d.ts +11 -1
- package/dist/modules/Order/utils.d.ts +10 -0
- package/dist/modules/Order/utils.js +145 -85
- package/dist/modules/Rules/index.js +45 -26
- package/dist/modules/Rules/types.d.ts +4 -0
- package/dist/modules/index.d.ts +1 -0
- package/dist/modules/index.js +1 -0
- package/dist/server/modules/order/index.d.ts +8 -0
- package/dist/server/modules/order/index.js +506 -453
- package/dist/server/modules/order/types.d.ts +1 -0
- package/dist/server/utils/small-ticket.js +173 -95
- package/dist/solution/BaseSales/index.d.ts +23 -0
- package/dist/solution/BaseSales/index.js +1216 -1031
- package/dist/solution/BaseSales/pickupTiming.d.ts +37 -0
- package/dist/solution/BaseSales/pickupTiming.js +482 -0
- package/dist/solution/BaseSales/utils/parseSalesResponse.js +3 -0
- package/dist/solution/BookingByStep/index.d.ts +1 -1
- package/dist/solution/BookingTicket/utils/cartView.js +3 -1
- package/dist/solution/UnifiedBookingSales/index.d.ts +2 -0
- package/dist/solution/UnifiedBookingSales/index.js +583 -531
- package/lib/model/strategy/adapter/promotion/index.js +46 -1
- package/lib/modules/Discount/types.d.ts +2 -0
- package/lib/modules/FulfillmentTiming/index.d.ts +11 -0
- package/lib/modules/FulfillmentTiming/index.js +359 -0
- package/lib/modules/FulfillmentTiming/types.d.ts +67 -0
- package/lib/modules/FulfillmentTiming/types.js +5 -0
- package/lib/modules/OpenData/types.d.ts +6 -0
- package/lib/modules/Order/index.d.ts +19 -1
- package/lib/modules/Order/index.js +120 -7
- package/lib/modules/Order/pickupTiming.d.ts +46 -0
- package/lib/modules/Order/pickupTiming.js +61 -0
- package/lib/modules/Order/types.d.ts +11 -1
- package/lib/modules/Order/utils.d.ts +10 -0
- package/lib/modules/Order/utils.js +58 -4
- package/lib/modules/Rules/index.js +24 -13
- package/lib/modules/Rules/types.d.ts +4 -0
- package/lib/modules/index.d.ts +1 -0
- package/lib/modules/index.js +11 -0
- package/lib/server/modules/order/index.d.ts +8 -0
- package/lib/server/modules/order/index.js +19 -0
- package/lib/server/modules/order/types.d.ts +1 -0
- package/lib/server/utils/small-ticket.js +93 -22
- package/lib/solution/BaseSales/index.d.ts +23 -0
- package/lib/solution/BaseSales/index.js +104 -1
- package/lib/solution/BaseSales/pickupTiming.d.ts +37 -0
- package/lib/solution/BaseSales/pickupTiming.js +222 -0
- package/lib/solution/BaseSales/utils/parseSalesResponse.js +3 -0
- package/lib/solution/BookingByStep/index.d.ts +1 -1
- package/lib/solution/BookingTicket/utils/cartView.js +3 -1
- package/lib/solution/UnifiedBookingSales/index.d.ts +2 -0
- package/lib/solution/UnifiedBookingSales/index.js +20 -0
- package/package.json +1 -1
|
@@ -191,11 +191,17 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
191
191
|
unavailableReason: UnavailableReason.AlreadyUsed
|
|
192
192
|
};
|
|
193
193
|
}
|
|
194
|
+
var scannedEntitlementPassIds = newDiscountList.filter(function (discount) {
|
|
195
|
+
return isEntitlementPass(discount);
|
|
196
|
+
}).map(function (discount) {
|
|
197
|
+
return discount.id;
|
|
198
|
+
});
|
|
199
|
+
var scannedEntitlementPassIdSet = new Set(scannedEntitlementPassIds.map(String));
|
|
194
200
|
|
|
195
|
-
//
|
|
196
|
-
//
|
|
201
|
+
// 客户次卡必须保留在完整列表中;同一实例以本次扫码数据更新。
|
|
202
|
+
// 历史折扣不参与试算,商品券继续沿用仅保留扫码来源的规则。
|
|
197
203
|
var filteredOldDiscountList = oldDiscountList.filter(function (discount) {
|
|
198
|
-
return !discount.isEditMode && (!isFullCoveragePass(discount) || discount.isScan);
|
|
204
|
+
return !discount.isEditMode && (!isFullCoveragePass(discount) || isEntitlementPass(discount) || discount.isScan) && !scannedEntitlementPassIdSet.has(String(discount.id));
|
|
199
205
|
});
|
|
200
206
|
var mergedDiscountList = uniqueById([].concat(_toConsumableArray(filteredOldDiscountList), _toConsumableArray(newDiscountList)));
|
|
201
207
|
var result = this.calcDiscount({
|
|
@@ -205,7 +211,8 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
205
211
|
holders: holders,
|
|
206
212
|
isFormSubject: isFormSubject
|
|
207
213
|
}, {
|
|
208
|
-
scan: true
|
|
214
|
+
scan: true,
|
|
215
|
+
preferredEntitlementPassIds: scannedEntitlementPassIds
|
|
209
216
|
});
|
|
210
217
|
|
|
211
218
|
// 检查是否有产品使用了新折扣
|
|
@@ -368,6 +375,7 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
368
375
|
holders = _ref8.holders,
|
|
369
376
|
isFormSubject = _ref8.isFormSubject,
|
|
370
377
|
orderTotalAmount = _ref8.orderTotalAmount;
|
|
378
|
+
var preferredEntitlementPassIds = new Set(((options === null || options === void 0 ? void 0 : options.preferredEntitlementPassIds) || []).map(String));
|
|
371
379
|
var resolveIsFormSubject = function resolveIsFormSubject(product) {
|
|
372
380
|
return typeof isFormSubject === 'function' ? Boolean(isFormSubject(product)) : Boolean(isFormSubject);
|
|
373
381
|
};
|
|
@@ -1179,7 +1187,7 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
1179
1187
|
|
|
1180
1188
|
// 判断优惠券是否适用于该商品
|
|
1181
1189
|
if (isAvailableProduct && !isItemRewardProductDiscount && isLimitedProduct && timeLimit && isBundleAvailable && (_discount$config3 = discount.config) !== null && _discount$config3 !== void 0 && _discount$config3.isAvailable && (!isEntitlementPass(discount) || getRemainingEntitlementUses(discount, 0, 1) > 0)) {
|
|
1182
|
-
var _discountApplicabilit, _discount$metadata4, _discount$metadata5;
|
|
1190
|
+
var _discountApplicabilit, _discount$metadata4, _discount$metadata5, _discount$metadata6;
|
|
1183
1191
|
// 记录此优惠券适用的商品
|
|
1184
1192
|
(_discountApplicabilit = discountApplicability.get(discount.id)) === null || _discountApplicabilit === void 0 || _discountApplicabilit.push(product.id);
|
|
1185
1193
|
|
|
@@ -1206,6 +1214,7 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
1206
1214
|
discount_product_id: discount.product_id
|
|
1207
1215
|
},
|
|
1208
1216
|
metadata: {
|
|
1217
|
+
encoded: ((_discount$metadata6 = discount.metadata) === null || _discount$metadata6 === void 0 ? void 0 : _discount$metadata6.encoded) || discount.encoded,
|
|
1209
1218
|
num: num,
|
|
1210
1219
|
discount_rule_uncheck_flag: discount === null || discount === void 0 ? void 0 : discount.discount_rule_uncheck_flag
|
|
1211
1220
|
}
|
|
@@ -1406,7 +1415,7 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
1406
1415
|
return false;
|
|
1407
1416
|
});
|
|
1408
1417
|
|
|
1409
|
-
//
|
|
1418
|
+
// 识别用户本次显式选择的卡券,供次卡和折扣卡各自的优先级使用。
|
|
1410
1419
|
// 目标仍必须在当前商品的 applicableDiscounts 中,因此不会绕过 Holder、时间或商品范围校验。
|
|
1411
1420
|
var explicitlySelectedDiscount = (options === null || options === void 0 ? void 0 : options.isSelected) === true && options.discountId !== undefined ? applicableDiscounts.find(function (discount) {
|
|
1412
1421
|
var discountType = discount.tag || discount.type || '';
|
|
@@ -1415,10 +1424,10 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
1415
1424
|
// 折扣卡会复用于整条商品行;商品券必须继续按单张拆分,不能复用该分支。
|
|
1416
1425
|
var explicitlySelectedDiscountCard = explicitlySelectedDiscount && !isFullCoveragePass(explicitlySelectedDiscount) ? explicitlySelectedDiscount : undefined;
|
|
1417
1426
|
|
|
1418
|
-
// 商品数量等变化会触发无 discountId
|
|
1427
|
+
// 商品数量等变化会触发无 discountId 的重算。只要当前行已应用的卡仍在
|
|
1419
1428
|
// applicableDiscounts 中,就应保留该行选择,避免被自动排序中力度更大的卡替换。
|
|
1420
|
-
var
|
|
1421
|
-
return ['discount_card', 'product_discount_card'].includes((item === null || item === void 0 ? void 0 : item.tag) || (item === null || item === void 0 ? void 0 : item.type));
|
|
1429
|
+
var appliedWalletDiscountIds = new Set((product.discount_list || []).filter(function (item) {
|
|
1430
|
+
return ['entitlement_pass', 'discount_card', 'product_discount_card'].includes((item === null || item === void 0 ? void 0 : item.tag) || (item === null || item === void 0 ? void 0 : item.type));
|
|
1422
1431
|
}).map(function (item) {
|
|
1423
1432
|
var _ref24, _item$discount$resour, _item$discount;
|
|
1424
1433
|
return (_ref24 = (_item$discount$resour = item === null || item === void 0 || (_item$discount = item.discount) === null || _item$discount === void 0 ? void 0 : _item$discount.resource_id) !== null && _item$discount$resour !== void 0 ? _item$discount$resour : item === null || item === void 0 ? void 0 : item.resource_id) !== null && _ref24 !== void 0 ? _ref24 : item === null || item === void 0 ? void 0 : item.id;
|
|
@@ -1427,20 +1436,27 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
1427
1436
|
}).map(String));
|
|
1428
1437
|
var appliedDiscountCard = options !== null && options !== void 0 && options.scan ? undefined : applicableDiscounts.find(function (discount) {
|
|
1429
1438
|
var discountType = discount.tag || discount.type || '';
|
|
1430
|
-
return discount.isSelected === true && ['discount_card', 'product_discount_card'].includes(discountType) &&
|
|
1439
|
+
return discount.isSelected === true && ['discount_card', 'product_discount_card'].includes(discountType) && appliedWalletDiscountIds.has(String(discount.id));
|
|
1440
|
+
});
|
|
1441
|
+
var appliedEntitlementPass = options !== null && options !== void 0 && options.scan || (options === null || options === void 0 ? void 0 : options.preserveEntitlementSelection) === false ? undefined : applicableDiscounts.find(function (discount) {
|
|
1442
|
+
return isEntitlementPass(discount) && discount.isSelected === true && appliedWalletDiscountIds.has(String(discount.id));
|
|
1431
1443
|
});
|
|
1432
1444
|
|
|
1433
|
-
//
|
|
1445
|
+
// 次卡内部按本次手选/扫码、当前行已应用、默认排序选择。
|
|
1434
1446
|
var scannedSelectedDiscountCard = applicableDiscounts.find(function (n) {
|
|
1435
1447
|
return n.isScan && n.isSelected && !isFullCoveragePass(n);
|
|
1436
1448
|
});
|
|
1437
1449
|
var selectedDiscountCard = explicitlySelectedDiscountCard || appliedDiscountCard || scannedSelectedDiscountCard;
|
|
1438
|
-
var
|
|
1450
|
+
var selectedEntitlementPass = (explicitlySelectedDiscount && isEntitlementPass(explicitlySelectedDiscount) ? explicitlySelectedDiscount : undefined) || applicableDiscounts.find(function (discount) {
|
|
1451
|
+
return isEntitlementPass(discount) && preferredEntitlementPassIds.has(String(discount.id));
|
|
1452
|
+
}) || appliedEntitlementPass || applicableDiscounts.find(function (discount) {
|
|
1439
1453
|
return isEntitlementPass(discount);
|
|
1440
1454
|
});
|
|
1441
|
-
|
|
1442
|
-
var
|
|
1443
|
-
|
|
1455
|
+
// 手选优先;普通重算保留当前折扣卡,扫码和最优选择仍使用原有优先级。
|
|
1456
|
+
var selectedDiscount = explicitlySelectedDiscount || ((options === null || options === void 0 ? void 0 : options.preserveEntitlementSelection) !== false && preferredEntitlementPassIds.size === 0 ? appliedDiscountCard : undefined) || selectedEntitlementPass || selectedDiscountCard || applicableDiscounts[0];
|
|
1457
|
+
// 实际次数分配必须使用同一顺序,避免选中状态切换后仍将次数分配给默认卡。
|
|
1458
|
+
var prioritizedApplicableDiscounts = selectedDiscount && isFullCoveragePass(selectedDiscount) ? [selectedDiscount].concat(_toConsumableArray(applicableDiscounts.filter(function (discount) {
|
|
1459
|
+
return isFullCoveragePass(discount) && String(discount.id) !== String(selectedDiscount.id);
|
|
1444
1460
|
})), _toConsumableArray(applicableDiscounts.filter(function (discount) {
|
|
1445
1461
|
return !isFullCoveragePass(discount);
|
|
1446
1462
|
}))) : applicableDiscounts;
|
|
@@ -1683,7 +1699,7 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
1683
1699
|
count: 1
|
|
1684
1700
|
}];
|
|
1685
1701
|
for (var i = 0; i < discountUsageGroups.length; i++) {
|
|
1686
|
-
var _originProduct4, _selectedDiscount$con, _product$options, _product$options2, _selectedDiscount$met, _selectedDiscount$met2, _reapplyDiscountPerce;
|
|
1702
|
+
var _originProduct4, _selectedDiscount$con, _product$options, _product$options2, _selectedDiscount$met, _selectedDiscount$met2, _reapplyDiscountPerce, _selectedDiscount$met3;
|
|
1687
1703
|
var _discountUsageGroups$ = discountUsageGroups[i],
|
|
1688
1704
|
_selectedDiscount = _discountUsageGroups$.discount,
|
|
1689
1705
|
appliedUseCount = _discountUsageGroups$.count;
|
|
@@ -1773,6 +1789,7 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
1773
1789
|
_num: isFullCoverage ? appliedUseCount : product.num,
|
|
1774
1790
|
config: _selectedDiscount === null || _selectedDiscount === void 0 ? void 0 : _selectedDiscount.config,
|
|
1775
1791
|
metadata: _objectSpread(_objectSpread({
|
|
1792
|
+
encoded: ((_selectedDiscount$met3 = _selectedDiscount.metadata) === null || _selectedDiscount$met3 === void 0 ? void 0 : _selectedDiscount$met3.encoded) || _selectedDiscount.encoded,
|
|
1776
1793
|
num: isFullCoverage ? appliedUseCount : 1,
|
|
1777
1794
|
discount_rule_uncheck_flag: _selectedDiscount === null || _selectedDiscount === void 0 ? void 0 : _selectedDiscount.discount_rule_uncheck_flag
|
|
1778
1795
|
}, productDiscountDifference !== undefined && {
|
|
@@ -1830,7 +1847,7 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
1830
1847
|
|
|
1831
1848
|
// 同一卡实例的本次新增使用合并为一条,metadata.num 记录实际次数。
|
|
1832
1849
|
for (var _i = 0; _i < fullCoveragePassUsageGroups.length; _i++) {
|
|
1833
|
-
var _selectedDiscount2$me;
|
|
1850
|
+
var _selectedDiscount2$me, _selectedDiscount2$me2;
|
|
1834
1851
|
var _fullCoveragePassUsag = fullCoveragePassUsageGroups[_i],
|
|
1835
1852
|
_selectedDiscount2 = _fullCoveragePassUsag.discount,
|
|
1836
1853
|
_appliedUseCount = _fullCoveragePassUsag.count;
|
|
@@ -1862,6 +1879,7 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
1862
1879
|
discount_product_id: _selectedDiscount2.product_id
|
|
1863
1880
|
},
|
|
1864
1881
|
metadata: {
|
|
1882
|
+
encoded: ((_selectedDiscount2$me2 = _selectedDiscount2.metadata) === null || _selectedDiscount2$me2 === void 0 ? void 0 : _selectedDiscount2$me2.encoded) || _selectedDiscount2.encoded,
|
|
1865
1883
|
// 🔥 使用拆分后的唯一 _id
|
|
1866
1884
|
custom_product_bundle_map_id: uniqueId,
|
|
1867
1885
|
discount_rule_uncheck_flag: _selectedDiscount2 === null || _selectedDiscount2 === void 0 ? void 0 : _selectedDiscount2.discount_rule_uncheck_flag,
|
|
@@ -1901,7 +1919,7 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
1901
1919
|
}));
|
|
1902
1920
|
}
|
|
1903
1921
|
} else {
|
|
1904
|
-
var _selectedDiscount3$me, _selectedDiscount3$me2, _reapplyDiscountPerce2, _flatItem$parentProdu9;
|
|
1922
|
+
var _selectedDiscount3$me, _selectedDiscount3$me2, _reapplyDiscountPerce2, _selectedDiscount3$me3, _flatItem$parentProdu9;
|
|
1905
1923
|
// 折扣卡:不拆分数量,直接应用
|
|
1906
1924
|
var _selectedDiscount3 = selectedDiscountCard || applicableDiscounts[0];
|
|
1907
1925
|
markDiscountUsed(_selectedDiscount3);
|
|
@@ -1956,6 +1974,7 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
1956
1974
|
discount_product_id: _selectedDiscount3.product_id
|
|
1957
1975
|
},
|
|
1958
1976
|
metadata: _objectSpread({
|
|
1977
|
+
encoded: ((_selectedDiscount3$me3 = _selectedDiscount3.metadata) === null || _selectedDiscount3$me3 === void 0 ? void 0 : _selectedDiscount3$me3.encoded) || _selectedDiscount3.encoded,
|
|
1959
1978
|
// 🔥 使用唯一的 _id
|
|
1960
1979
|
custom_product_bundle_map_id: _uniqueId,
|
|
1961
1980
|
discount_rule_uncheck_flag: _selectedDiscount3 === null || _selectedDiscount3 === void 0 ? void 0 : _selectedDiscount3.discount_rule_uncheck_flag,
|
|
@@ -2133,8 +2152,8 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
2133
2152
|
|
|
2134
2153
|
// 🔥 更新主商品自己的 discount_list 中的 num(quantity=1)
|
|
2135
2154
|
var updatedMainDiscountList = mainProductData.discount_list.map(function (discount) {
|
|
2136
|
-
var _discount$
|
|
2137
|
-
if (discount !== null && discount !== void 0 && (_discount$
|
|
2155
|
+
var _discount$metadata7, _discount$metadata8;
|
|
2156
|
+
if (discount !== null && discount !== void 0 && (_discount$metadata7 = discount.metadata) !== null && _discount$metadata7 !== void 0 && _discount$metadata7.custom_product_bundle_map_id) {
|
|
2138
2157
|
// bundle的discount_list保持不变
|
|
2139
2158
|
return discount;
|
|
2140
2159
|
}
|
|
@@ -2142,7 +2161,7 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
2142
2161
|
return _objectSpread(_objectSpread({}, discount), {}, {
|
|
2143
2162
|
// num: 1,
|
|
2144
2163
|
metadata: _objectSpread(_objectSpread({}, discount.metadata), {}, {
|
|
2145
|
-
custom_product_bundle_map_id: discount === null || discount === void 0 || (_discount$
|
|
2164
|
+
custom_product_bundle_map_id: discount === null || discount === void 0 || (_discount$metadata8 = discount.metadata) === null || _discount$metadata8 === void 0 ? void 0 : _discount$metadata8.custom_product_bundle_map_id,
|
|
2146
2165
|
num: 1
|
|
2147
2166
|
})
|
|
2148
2167
|
});
|
|
@@ -2207,8 +2226,8 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
2207
2226
|
|
|
2208
2227
|
// 🔥 更新主商品自己的 discount_list 中的 num(quantity=原quantity-1)
|
|
2209
2228
|
var updatedMainDiscountListOriginal = mainProductData.discount_list.map(function (discount) {
|
|
2210
|
-
var _discount$
|
|
2211
|
-
if (discount !== null && discount !== void 0 && (_discount$
|
|
2229
|
+
var _discount$metadata9, _discount$metadata10;
|
|
2230
|
+
if (discount !== null && discount !== void 0 && (_discount$metadata9 = discount.metadata) !== null && _discount$metadata9 !== void 0 && _discount$metadata9.custom_product_bundle_map_id) {
|
|
2212
2231
|
// bundle的discount_list保持不变
|
|
2213
2232
|
return discount;
|
|
2214
2233
|
}
|
|
@@ -2216,7 +2235,7 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
2216
2235
|
return _objectSpread(_objectSpread({}, discount), {}, {
|
|
2217
2236
|
metadata: _objectSpread(_objectSpread({}, discount.metadata), {}, {
|
|
2218
2237
|
num: mainProductQuantity - 1,
|
|
2219
|
-
custom_product_bundle_map_id: discount === null || discount === void 0 || (_discount$
|
|
2238
|
+
custom_product_bundle_map_id: discount === null || discount === void 0 || (_discount$metadata10 = discount.metadata) === null || _discount$metadata10 === void 0 ? void 0 : _discount$metadata10.custom_product_bundle_map_id
|
|
2220
2239
|
})
|
|
2221
2240
|
// num: mainProductQuantity - 1,
|
|
2222
2241
|
});
|
|
@@ -2286,11 +2305,11 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
2286
2305
|
var nextBundleSellingPrice = (_ref28 = (_item$bundle_selling_ = item.bundle_selling_price) !== null && _item$bundle_selling_ !== void 0 ? _item$bundle_selling_ : item.price) !== null && _ref28 !== void 0 ? _ref28 : bundleItem.bundle_selling_price;
|
|
2287
2306
|
// 🔥 更新 discount_list 中的 num,使其与拆分后的 item.num 一致
|
|
2288
2307
|
var updatedDiscountList = (item.discount_list || []).map(function (discount) {
|
|
2289
|
-
var _discount$
|
|
2308
|
+
var _discount$metadata11;
|
|
2290
2309
|
return _objectSpread(_objectSpread({}, discount), {}, {
|
|
2291
2310
|
metadata: _objectSpread(_objectSpread({}, discount.metadata), {}, {
|
|
2292
2311
|
num: item.num,
|
|
2293
|
-
custom_product_bundle_map_id: discount === null || discount === void 0 || (_discount$
|
|
2312
|
+
custom_product_bundle_map_id: discount === null || discount === void 0 || (_discount$metadata11 = discount.metadata) === null || _discount$metadata11 === void 0 ? void 0 : _discount$metadata11.custom_product_bundle_map_id
|
|
2294
2313
|
})
|
|
2295
2314
|
// num: item.num, // 使用拆分后的 num
|
|
2296
2315
|
});
|
|
@@ -29,6 +29,10 @@ export interface RulesCalcDiscountOptions {
|
|
|
29
29
|
discountId?: number;
|
|
30
30
|
selectedList?: SetDiscountSelectedParams[];
|
|
31
31
|
scan?: boolean;
|
|
32
|
+
/** 本次扫码优先使用的次卡实例;普通重算不传,继续保留商品行当前选择。 */
|
|
33
|
+
preferredEntitlementPassIds?: number[];
|
|
34
|
+
/** 普通重算保留商品行已应用的次卡;最优选择传 false 恢复自动排序。 */
|
|
35
|
+
preserveEntitlementSelection?: boolean;
|
|
32
36
|
/** Change time 重报价目标行:允许已选编辑态折扣卡重新应用到这些 booking 商品。 */
|
|
33
37
|
reapplyBookingDiscountProductUids?: string[];
|
|
34
38
|
}
|
package/dist/modules/index.d.ts
CHANGED
|
@@ -17,6 +17,7 @@ export * from './Schedule';
|
|
|
17
17
|
export * from './Quotation';
|
|
18
18
|
export * from './ScanOrderLogger';
|
|
19
19
|
export * from './OpenData';
|
|
20
|
+
export * from './FulfillmentTiming';
|
|
20
21
|
export * from './BookingContext';
|
|
21
22
|
export * from './Holder';
|
|
22
23
|
export * from './ResourcePlanner';
|
package/dist/modules/index.js
CHANGED
|
@@ -17,6 +17,7 @@ export * from "./Schedule";
|
|
|
17
17
|
export * from "./Quotation";
|
|
18
18
|
export * from "./ScanOrderLogger";
|
|
19
19
|
export * from "./OpenData";
|
|
20
|
+
export * from "./FulfillmentTiming";
|
|
20
21
|
export * from "./BookingContext";
|
|
21
22
|
export * from "./Holder";
|
|
22
23
|
export * from "./ResourcePlanner";
|
|
@@ -24,6 +24,7 @@ export declare class OrderModule extends BaseModule implements Module {
|
|
|
24
24
|
private lastRecentSqliteWriteCleanupAtMs;
|
|
25
25
|
/** 最近一次 SSE 全量拉取完成时间 */
|
|
26
26
|
private lastServerFullFetchAtMs;
|
|
27
|
+
private businessDayRefreshPromise;
|
|
27
28
|
constructor(name?: string, version?: string);
|
|
28
29
|
/**
|
|
29
30
|
* 广播订单变更事件,兼容全量列表订阅并额外携带本次变更订单。
|
|
@@ -130,6 +131,13 @@ export declare class OrderModule extends BaseModule implements Module {
|
|
|
130
131
|
loadOrdersByServer(options?: {
|
|
131
132
|
trigger?: string;
|
|
132
133
|
}): Promise<OrderData[]>;
|
|
134
|
+
/**
|
|
135
|
+
* 供展示屏按需补齐当前营业日的订单快照;成功标记复用全量拉取落库逻辑。
|
|
136
|
+
* 拉取或落库失败时不记录已刷新,下一次调用仍可重试。
|
|
137
|
+
*/
|
|
138
|
+
refreshOrdersForCurrentBusinessDay(options?: {
|
|
139
|
+
trigger?: string;
|
|
140
|
+
}): Promise<void>;
|
|
133
141
|
/**
|
|
134
142
|
* 静默全量刷新:后台重新拉取全量 SSE 订单数据并更新本地
|
|
135
143
|
* 拿到完整数据后一次性替换 store,触发订单变更与同步完成事件
|