@pisell/pisellos 2.2.244 → 2.2.245
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/model/strategy/adapter/promotion/evaluator.js +3 -2
- package/dist/model/strategy/adapter/promotion/index.js +0 -9
- package/dist/model/strategy/adapter/walletPass/utils.js +7 -4
- package/dist/modules/BookingContext/index.d.ts +48 -0
- package/dist/modules/BookingContext/index.js +566 -0
- package/dist/modules/BookingContext/types.d.ts +102 -0
- package/dist/modules/BookingContext/types.js +51 -0
- package/dist/modules/BookingContext/utils/buildCacheItemFromOrderLine.d.ts +16 -0
- package/dist/modules/BookingContext/utils/buildCacheItemFromOrderLine.js +284 -0
- package/dist/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.d.ts +8 -0
- package/dist/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.js +145 -0
- package/dist/modules/BookingContext/utils/cacheItemToBookingInput.d.ts +76 -0
- package/dist/modules/BookingContext/utils/cacheItemToBookingInput.js +218 -0
- package/dist/modules/BookingContext/utils/flexible.d.ts +28 -0
- package/dist/modules/BookingContext/utils/flexible.js +56 -0
- package/dist/modules/BookingContext/utils/formatResourceList.d.ts +8 -0
- package/dist/modules/BookingContext/utils/formatResourceList.js +38 -0
- package/dist/modules/BookingContext/utils/index.d.ts +11 -0
- package/dist/modules/BookingContext/utils/index.js +11 -0
- package/dist/modules/BookingContext/utils/noResource.d.ts +13 -0
- package/dist/modules/BookingContext/utils/noResource.js +77 -0
- package/dist/modules/BookingContext/utils/orderLineDisplay.d.ts +1 -0
- package/dist/modules/BookingContext/utils/orderLineDisplay.js +36 -0
- package/dist/modules/BookingContext/utils/productExtend.d.ts +72 -0
- package/dist/modules/BookingContext/utils/productExtend.js +339 -0
- package/dist/modules/BookingContext/utils/resourceErrors.d.ts +41 -0
- package/dist/modules/BookingContext/utils/resourceErrors.js +74 -0
- package/dist/modules/BookingContext/utils/resourceSelection.d.ts +7 -0
- package/dist/modules/BookingContext/utils/resourceSelection.js +24 -0
- package/dist/modules/BookingContext/utils/resources.d.ts +80 -0
- package/dist/modules/BookingContext/utils/resources.js +486 -0
- package/dist/modules/BookingContext/utils/serviceTimes.d.ts +55 -0
- package/dist/modules/BookingContext/utils/serviceTimes.js +151 -0
- package/dist/modules/BookingContext/utils/timeSlices.d.ts +42 -0
- package/dist/modules/BookingContext/utils/timeSlices.js +100 -0
- package/dist/modules/Cart/utils/cartProduct.js +24 -3
- package/dist/modules/Cart/utils/changePrice.js +11 -11
- package/dist/modules/Customer/index.d.ts +20 -0
- package/dist/modules/Customer/index.js +172 -83
- package/dist/modules/Customer/types.d.ts +2 -0
- package/dist/modules/Discount/index.d.ts +1 -1
- package/dist/modules/Discount/index.js +13 -6
- package/dist/modules/Discount/types.d.ts +1 -0
- package/dist/modules/OpenData/index.d.ts +8 -0
- package/dist/modules/OpenData/index.js +37 -17
- package/dist/modules/Order/index.d.ts +275 -19
- package/dist/modules/Order/index.js +3493 -809
- package/dist/modules/Order/types.d.ts +286 -31
- package/dist/modules/Order/types.js +38 -0
- package/dist/modules/Order/utils/manualProductDiscount.d.ts +106 -0
- package/dist/modules/Order/utils/manualProductDiscount.js +210 -0
- package/dist/modules/Order/utils.d.ts +147 -5
- package/dist/modules/Order/utils.js +750 -104
- package/dist/modules/Payment/index.d.ts +10 -13
- package/dist/modules/Payment/index.js +467 -837
- package/dist/modules/Payment/types.d.ts +2 -0
- package/dist/modules/Payment/utils.js +2 -1
- package/dist/modules/Payment/walletpass.js +41 -25
- package/dist/modules/ProductList/index.d.ts +16 -12
- package/dist/modules/ProductList/index.js +133 -59
- package/dist/modules/ProductList/types.d.ts +14 -0
- package/dist/modules/Quotation/index.d.ts +0 -1
- package/dist/modules/Quotation/index.js +25 -22
- package/dist/modules/Rules/index.d.ts +4 -0
- package/dist/modules/Rules/index.js +97 -70
- package/dist/modules/Rules/types.d.ts +1 -0
- package/dist/modules/SalesSummary/index.d.ts +8 -25
- package/dist/modules/SalesSummary/index.js +86 -35
- package/dist/modules/SalesSummary/types.d.ts +4 -1
- package/dist/modules/SalesSummary/utils.d.ts +2 -25
- package/dist/modules/SalesSummary/utils.js +794 -162
- package/dist/modules/Schedule/index.d.ts +7 -0
- package/dist/modules/Schedule/index.js +24 -2
- package/dist/modules/Summary/index.js +4 -3
- package/dist/modules/SurchargeList/index.d.ts +16 -0
- package/dist/modules/SurchargeList/index.js +162 -0
- package/dist/modules/SurchargeList/types.d.ts +11 -0
- package/dist/modules/SurchargeList/types.js +1 -0
- package/dist/modules/index.d.ts +2 -0
- package/dist/modules/index.js +3 -1
- package/dist/plugins/request.d.ts +1 -0
- package/dist/server/index.d.ts +204 -1
- package/dist/server/index.js +3654 -922
- package/dist/server/modules/index.d.ts +2 -0
- package/dist/server/modules/index.js +2 -0
- package/dist/server/modules/order/index.d.ts +120 -3
- package/dist/server/modules/order/index.js +1758 -448
- package/dist/server/modules/order/types.d.ts +32 -3
- package/dist/server/modules/order/types.js +8 -0
- package/dist/server/modules/order/utils/filterBookings.js +26 -3
- package/dist/server/modules/order/utils/filterOrders.js +23 -8
- package/dist/server/modules/payment/index.d.ts +28 -0
- package/dist/server/modules/payment/index.js +305 -0
- package/dist/server/modules/payment/types.d.ts +9 -0
- package/dist/server/modules/payment/types.js +1 -0
- package/dist/server/modules/products/index.d.ts +34 -7
- package/dist/server/modules/products/index.js +631 -317
- package/dist/server/modules/resource/index.d.ts +2 -0
- package/dist/server/modules/resource/index.js +29 -3
- package/dist/server/modules/schedule/index.d.ts +4 -4
- package/dist/server/modules/schedule/index.js +111 -88
- package/dist/server/test.json +713 -0
- package/dist/server/utils/small-ticket.d.ts +71 -0
- package/dist/server/utils/small-ticket.js +840 -0
- package/dist/solution/BaseSales/index.d.ts +133 -10
- package/dist/solution/BaseSales/index.js +1950 -447
- package/dist/solution/BaseSales/types.d.ts +82 -6
- package/dist/solution/BaseSales/types.js +5 -4
- package/dist/solution/BaseSales/utils/cartPromotion.d.ts +287 -0
- package/dist/solution/BaseSales/utils/cartPromotion.js +1438 -0
- package/dist/solution/BaseSales/utils/quotationPrice.d.ts +7 -0
- package/dist/solution/BaseSales/utils/quotationPrice.js +237 -0
- package/dist/solution/BaseSales/utils/transformBaseProductToOrderProduct.d.ts +1 -0
- package/dist/solution/BaseSales/utils/transformBaseProductToOrderProduct.js +105 -24
- package/dist/solution/BaseSales/utils.d.ts +1 -1
- package/dist/solution/BaseSales/utils.js +62 -21
- package/dist/solution/BookingByStep/index.d.ts +1 -1
- package/dist/solution/BookingTicket/index.d.ts +271 -11
- package/dist/solution/BookingTicket/index.js +1777 -242
- package/dist/solution/BookingTicket/types.d.ts +118 -1
- package/dist/solution/BookingTicket/types.js +41 -2
- package/dist/solution/BookingTicket/utils/addProductDecision.d.ts +117 -0
- package/dist/solution/BookingTicket/utils/addProductDecision.js +346 -0
- package/dist/solution/BookingTicket/utils/addTimeAvailability.d.ts +35 -0
- package/dist/solution/BookingTicket/utils/addTimeAvailability.js +95 -0
- package/dist/solution/BookingTicket/utils/bookingStatus.d.ts +40 -0
- package/dist/solution/BookingTicket/utils/bookingStatus.js +70 -0
- package/dist/solution/BookingTicket/utils/cartView.d.ts +9 -1
- package/dist/solution/BookingTicket/utils/cartView.js +94 -7
- package/dist/solution/BookingTicket/utils/exampleData.d.ts +123 -0
- package/dist/solution/BookingTicket/utils/exampleData.js +183 -0
- package/dist/solution/BookingTicket/utils/resolveBestAddTimePlan.d.ts +185 -0
- package/dist/solution/BookingTicket/utils/resolveBestAddTimePlan.js +438 -0
- package/dist/solution/BookingTicket/utils/scan/applyGlobalScan.d.ts +36 -0
- package/dist/solution/BookingTicket/utils/scan/applyGlobalScan.js +400 -0
- package/dist/solution/BookingTicket/utils/scan/formatGlobalScan.d.ts +32 -0
- package/dist/solution/BookingTicket/utils/scan/formatGlobalScan.js +56 -0
- package/dist/solution/BookingTicket/utils/scan/index.d.ts +5 -0
- package/dist/solution/BookingTicket/utils/scan/index.js +20 -8
- package/dist/solution/BookingTicket/utils/scan/scanProductValues.d.ts +21 -0
- package/dist/solution/BookingTicket/utils/scan/scanProductValues.js +150 -0
- package/dist/solution/BookingTicket/utils/sessionCatalogStale.d.ts +23 -0
- package/dist/solution/BookingTicket/utils/sessionCatalogStale.js +78 -0
- package/dist/solution/Checkout/index.d.ts +1 -0
- package/dist/solution/Checkout/index.js +10 -9
- package/dist/solution/RegisterAndLogin/config.js +2 -10
- package/dist/solution/ScanOrder/index.d.ts +9 -3
- package/dist/solution/ScanOrder/index.js +241 -134
- package/dist/solution/ScanOrder/types.d.ts +9 -5
- package/dist/solution/ScanOrder/types.js +2 -3
- package/dist/solution/ScanOrder/utils.d.ts +1 -1
- package/dist/solution/ScanOrder/utils.js +84 -22
- package/dist/solution/VenueBooking/index.d.ts +5 -2
- package/dist/solution/VenueBooking/index.js +110 -59
- package/dist/solution/VenueBooking/sales-section-4-annotated.json +0 -2
- package/dist/solution/VenueBooking/utils/slotMerge.d.ts +4 -0
- package/dist/solution/VenueBooking/utils/slotMerge.js +10 -0
- package/dist/types/index.d.ts +10 -0
- package/lib/model/strategy/adapter/promotion/evaluator.js +2 -1
- package/lib/model/strategy/adapter/promotion/index.js +49 -0
- package/lib/model/strategy/adapter/walletPass/utils.js +3 -2
- package/lib/modules/BookingContext/index.d.ts +48 -0
- package/lib/modules/BookingContext/index.js +368 -0
- package/lib/modules/BookingContext/types.d.ts +102 -0
- package/lib/modules/BookingContext/types.js +34 -0
- package/lib/modules/BookingContext/utils/buildCacheItemFromOrderLine.d.ts +16 -0
- package/lib/modules/BookingContext/utils/buildCacheItemFromOrderLine.js +276 -0
- package/lib/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.d.ts +8 -0
- package/lib/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.js +151 -0
- package/lib/modules/BookingContext/utils/cacheItemToBookingInput.d.ts +76 -0
- package/lib/modules/BookingContext/utils/cacheItemToBookingInput.js +201 -0
- package/lib/modules/BookingContext/utils/flexible.d.ts +28 -0
- package/lib/modules/BookingContext/utils/flexible.js +80 -0
- package/lib/modules/BookingContext/utils/formatResourceList.d.ts +8 -0
- package/lib/modules/BookingContext/utils/formatResourceList.js +50 -0
- package/lib/modules/BookingContext/utils/index.d.ts +11 -0
- package/lib/modules/BookingContext/utils/index.js +43 -0
- package/lib/modules/BookingContext/utils/noResource.d.ts +13 -0
- package/lib/modules/BookingContext/utils/noResource.js +90 -0
- package/lib/modules/BookingContext/utils/orderLineDisplay.d.ts +1 -0
- package/lib/modules/BookingContext/utils/orderLineDisplay.js +56 -0
- package/lib/modules/BookingContext/utils/productExtend.d.ts +72 -0
- package/lib/modules/BookingContext/utils/productExtend.js +283 -0
- package/lib/modules/BookingContext/utils/resourceErrors.d.ts +41 -0
- package/lib/modules/BookingContext/utils/resourceErrors.js +80 -0
- package/lib/modules/BookingContext/utils/resourceSelection.d.ts +7 -0
- package/lib/modules/BookingContext/utils/resourceSelection.js +46 -0
- package/lib/modules/BookingContext/utils/resources.d.ts +80 -0
- package/lib/modules/BookingContext/utils/resources.js +377 -0
- package/lib/modules/BookingContext/utils/serviceTimes.d.ts +55 -0
- package/lib/modules/BookingContext/utils/serviceTimes.js +162 -0
- package/lib/modules/BookingContext/utils/timeSlices.d.ts +42 -0
- package/lib/modules/BookingContext/utils/timeSlices.js +124 -0
- package/lib/modules/Cart/utils/cartProduct.js +20 -3
- package/lib/modules/Cart/utils/changePrice.js +12 -20
- package/lib/modules/Customer/index.d.ts +20 -0
- package/lib/modules/Customer/index.js +64 -11
- package/lib/modules/Customer/types.d.ts +2 -0
- package/lib/modules/Discount/index.d.ts +1 -1
- package/lib/modules/Discount/index.js +9 -1
- package/lib/modules/Discount/types.d.ts +1 -0
- package/lib/modules/OpenData/index.d.ts +8 -0
- package/lib/modules/OpenData/index.js +19 -5
- package/lib/modules/Order/index.d.ts +275 -19
- package/lib/modules/Order/index.js +2245 -336
- package/lib/modules/Order/types.d.ts +286 -31
- package/lib/modules/Order/types.js +1 -0
- package/lib/modules/Order/utils/manualProductDiscount.d.ts +106 -0
- package/lib/modules/Order/utils/manualProductDiscount.js +206 -0
- package/lib/modules/Order/utils.d.ts +147 -5
- package/lib/modules/Order/utils.js +615 -46
- package/lib/modules/Payment/index.d.ts +10 -13
- package/lib/modules/Payment/index.js +18 -150
- package/lib/modules/Payment/types.d.ts +2 -0
- package/lib/modules/Payment/utils.js +2 -1
- package/lib/modules/Payment/walletpass.js +16 -3
- package/lib/modules/ProductList/index.d.ts +16 -12
- package/lib/modules/ProductList/index.js +41 -4
- package/lib/modules/ProductList/types.d.ts +14 -0
- package/lib/modules/Quotation/index.d.ts +0 -1
- package/lib/modules/Quotation/index.js +19 -16
- package/lib/modules/Rules/index.d.ts +4 -0
- package/lib/modules/Rules/index.js +137 -120
- package/lib/modules/Rules/types.d.ts +1 -0
- package/lib/modules/SalesSummary/index.d.ts +8 -25
- package/lib/modules/SalesSummary/index.js +30 -4
- package/lib/modules/SalesSummary/types.d.ts +4 -1
- package/lib/modules/SalesSummary/utils.d.ts +2 -25
- package/lib/modules/SalesSummary/utils.js +645 -91
- package/lib/modules/Schedule/index.d.ts +7 -0
- package/lib/modules/Schedule/index.js +17 -1
- package/lib/modules/Summary/index.js +5 -4
- package/lib/modules/SurchargeList/index.d.ts +16 -0
- package/lib/modules/SurchargeList/index.js +89 -0
- package/lib/modules/SurchargeList/types.d.ts +11 -0
- package/lib/modules/SurchargeList/types.js +17 -0
- package/lib/modules/index.d.ts +2 -0
- package/lib/modules/index.js +5 -1
- package/lib/plugins/request.d.ts +1 -0
- package/lib/server/index.d.ts +204 -1
- package/lib/server/index.js +1891 -59
- package/lib/server/modules/index.d.ts +2 -0
- package/lib/server/modules/index.js +3 -0
- package/lib/server/modules/order/index.d.ts +120 -3
- package/lib/server/modules/order/index.js +883 -94
- package/lib/server/modules/order/types.d.ts +32 -3
- package/lib/server/modules/order/utils/filterBookings.js +24 -5
- package/lib/server/modules/order/utils/filterOrders.js +15 -6
- package/lib/server/modules/payment/index.d.ts +28 -0
- package/lib/server/modules/payment/index.js +192 -0
- package/lib/server/modules/payment/types.d.ts +9 -0
- package/lib/server/modules/payment/types.js +17 -0
- package/lib/server/modules/products/index.d.ts +34 -7
- package/lib/server/modules/products/index.js +189 -54
- package/lib/server/modules/resource/index.d.ts +2 -0
- package/lib/server/modules/resource/index.js +27 -3
- package/lib/server/modules/schedule/index.d.ts +4 -4
- package/lib/server/modules/schedule/index.js +47 -40
- package/lib/server/test.json +713 -0
- package/lib/server/utils/small-ticket.d.ts +71 -0
- package/lib/server/utils/small-ticket.js +800 -0
- package/lib/solution/BaseSales/index.d.ts +133 -10
- package/lib/solution/BaseSales/index.js +1111 -63
- package/lib/solution/BaseSales/types.d.ts +82 -6
- package/lib/solution/BaseSales/types.js +3 -1
- package/lib/solution/BaseSales/utils/cartPromotion.d.ts +287 -0
- package/lib/solution/BaseSales/utils/cartPromotion.js +992 -0
- package/lib/solution/BaseSales/utils/quotationPrice.d.ts +7 -0
- package/lib/solution/BaseSales/utils/quotationPrice.js +277 -0
- package/lib/solution/BaseSales/utils/transformBaseProductToOrderProduct.d.ts +1 -0
- package/lib/solution/BaseSales/utils/transformBaseProductToOrderProduct.js +106 -18
- package/lib/solution/BaseSales/utils.d.ts +1 -1
- package/lib/solution/BaseSales/utils.js +54 -10
- package/lib/solution/BookingByStep/index.d.ts +1 -1
- package/lib/solution/BookingTicket/index.d.ts +271 -11
- package/lib/solution/BookingTicket/index.js +922 -29
- package/lib/solution/BookingTicket/types.d.ts +118 -1
- package/lib/solution/BookingTicket/types.js +11 -0
- package/lib/solution/BookingTicket/utils/addProductDecision.d.ts +117 -0
- package/lib/solution/BookingTicket/utils/addProductDecision.js +318 -0
- package/lib/solution/BookingTicket/utils/addTimeAvailability.d.ts +35 -0
- package/lib/solution/BookingTicket/utils/addTimeAvailability.js +125 -0
- package/lib/solution/BookingTicket/utils/bookingStatus.d.ts +40 -0
- package/lib/solution/BookingTicket/utils/bookingStatus.js +44 -2
- package/lib/solution/BookingTicket/utils/cartView.d.ts +9 -1
- package/lib/solution/BookingTicket/utils/cartView.js +61 -6
- package/lib/solution/BookingTicket/utils/exampleData.d.ts +123 -0
- package/lib/solution/BookingTicket/utils/exampleData.js +0 -0
- package/lib/solution/BookingTicket/utils/resolveBestAddTimePlan.d.ts +185 -0
- package/lib/solution/BookingTicket/utils/resolveBestAddTimePlan.js +254 -0
- package/lib/solution/BookingTicket/utils/scan/applyGlobalScan.d.ts +36 -0
- package/lib/solution/BookingTicket/utils/scan/applyGlobalScan.js +169 -0
- package/lib/solution/BookingTicket/utils/scan/formatGlobalScan.d.ts +32 -0
- package/lib/solution/BookingTicket/utils/scan/formatGlobalScan.js +51 -0
- package/lib/solution/BookingTicket/utils/scan/index.d.ts +5 -0
- package/lib/solution/BookingTicket/utils/scan/index.js +17 -3
- package/lib/solution/BookingTicket/utils/scan/scanProductValues.d.ts +21 -0
- package/lib/solution/BookingTicket/utils/scan/scanProductValues.js +127 -0
- package/lib/solution/BookingTicket/utils/sessionCatalogStale.d.ts +23 -0
- package/lib/solution/BookingTicket/utils/sessionCatalogStale.js +85 -0
- package/lib/solution/Checkout/index.d.ts +1 -0
- package/lib/solution/Checkout/index.js +1 -2
- package/lib/solution/RegisterAndLogin/config.js +2 -10
- package/lib/solution/ScanOrder/index.d.ts +9 -3
- package/lib/solution/ScanOrder/index.js +153 -70
- package/lib/solution/ScanOrder/types.d.ts +9 -5
- package/lib/solution/ScanOrder/utils.d.ts +1 -1
- package/lib/solution/ScanOrder/utils.js +83 -17
- package/lib/solution/VenueBooking/index.d.ts +5 -2
- package/lib/solution/VenueBooking/index.js +54 -17
- package/lib/solution/VenueBooking/sales-section-4-annotated.json +0 -2
- package/lib/solution/VenueBooking/utils/slotMerge.d.ts +4 -0
- package/lib/solution/VenueBooking/utils/slotMerge.js +10 -0
- package/lib/types/index.d.ts +10 -0
- package/package.json +1 -1
- package/dist/solution/Checkout/appointmentDemo.json +0 -1
- package/lib/solution/Checkout/appointmentDemo.json +0 -1
|
@@ -159,6 +159,14 @@ var RulesModule = class extends import_BaseModule.BaseModule {
|
|
|
159
159
|
filterDiscountListByType(discountList, type) {
|
|
160
160
|
return (discountList || []).filter((item) => item.type === type || item.tag === type);
|
|
161
161
|
}
|
|
162
|
+
/** 剔除指定 type/tag 的折扣项,保留手动改价(type=product) / 券等 */
|
|
163
|
+
excludeDiscountListByType(discountList, type) {
|
|
164
|
+
return (discountList || []).filter((item) => item.type !== type && item.tag !== type);
|
|
165
|
+
}
|
|
166
|
+
/** 手动改价场景:去掉 promotion,保留 type=product 等行内折扣 */
|
|
167
|
+
resolveDiscountListForManualOverride(discountList) {
|
|
168
|
+
return this.excludeDiscountListByType(discountList, "promotion");
|
|
169
|
+
}
|
|
162
170
|
// 获取券不可用的原因
|
|
163
171
|
getUnavailableReason(discountList, productList) {
|
|
164
172
|
var _a;
|
|
@@ -198,6 +206,7 @@ var RulesModule = class extends import_BaseModule.BaseModule {
|
|
|
198
206
|
isFormSubject,
|
|
199
207
|
orderTotalAmount
|
|
200
208
|
}, options) {
|
|
209
|
+
var _a;
|
|
201
210
|
const isEditModeAddNewProduct = productList.find((n) => n.booking_id) && productList.find((n) => !n.booking_id);
|
|
202
211
|
const editModeDiscount = [];
|
|
203
212
|
const addModeDiscount = [];
|
|
@@ -210,8 +219,8 @@ var RulesModule = class extends import_BaseModule.BaseModule {
|
|
|
210
219
|
});
|
|
211
220
|
const editModeOrderLevelProductIds = /* @__PURE__ */ new Set();
|
|
212
221
|
editModeDiscount.forEach((discount) => {
|
|
213
|
-
var
|
|
214
|
-
if (((
|
|
222
|
+
var _a2, _b;
|
|
223
|
+
if (((_a2 = discount.discount) == null ? void 0 : _a2.discount_calculation_mode) === "order_level") {
|
|
215
224
|
editModeOrderLevelProductIds.add((_b = discount == null ? void 0 : discount.discount) == null ? void 0 : _b.discount_product_id);
|
|
216
225
|
}
|
|
217
226
|
});
|
|
@@ -225,6 +234,13 @@ var RulesModule = class extends import_BaseModule.BaseModule {
|
|
|
225
234
|
const filteredDiscountList = addModeDiscount.filter((discount) => {
|
|
226
235
|
return !discount.isManualSelect;
|
|
227
236
|
});
|
|
237
|
+
const hasDiscountInput = editModeDiscount.length > 0 || addModeDiscount.length > 0 || Boolean(options == null ? void 0 : options.discountId) || Boolean((_a = options == null ? void 0 : options.selectedList) == null ? void 0 : _a.length) || Boolean(options == null ? void 0 : options.scan);
|
|
238
|
+
if (!hasDiscountInput) {
|
|
239
|
+
return {
|
|
240
|
+
discountList,
|
|
241
|
+
productList
|
|
242
|
+
};
|
|
243
|
+
}
|
|
228
244
|
const flattenProductsWithBundle = (productList2) => {
|
|
229
245
|
const flattened = [];
|
|
230
246
|
productList2.forEach((originProduct) => {
|
|
@@ -270,17 +286,17 @@ var RulesModule = class extends import_BaseModule.BaseModule {
|
|
|
270
286
|
};
|
|
271
287
|
const sortedDiscountList = [...filteredDiscountList].sort((a, b) => {
|
|
272
288
|
const isHolderDiscount = (discount) => {
|
|
273
|
-
var
|
|
274
|
-
return ((_b = (
|
|
289
|
+
var _a2, _b;
|
|
290
|
+
return ((_b = (_a2 = discount.metadata) == null ? void 0 : _a2.holder) == null ? void 0 : _b.type) === "custom";
|
|
275
291
|
};
|
|
276
292
|
const isGoodPass = (discount) => discount.tag === "good_pass";
|
|
277
293
|
const isOrderLevelDiscount = (discount) => {
|
|
278
|
-
var
|
|
279
|
-
return discount.tag === "product_discount_card" && ((
|
|
294
|
+
var _a2;
|
|
295
|
+
return discount.tag === "product_discount_card" && ((_a2 = discount.metadata) == null ? void 0 : _a2.discount_calculation_mode) === "order_level";
|
|
280
296
|
};
|
|
281
297
|
const isItemLevelDiscount = (discount) => {
|
|
282
|
-
var
|
|
283
|
-
return discount.tag === "product_discount_card" && ((
|
|
298
|
+
var _a2;
|
|
299
|
+
return discount.tag === "product_discount_card" && ((_a2 = discount.metadata) == null ? void 0 : _a2.discount_calculation_mode) !== "order_level";
|
|
284
300
|
};
|
|
285
301
|
const getPriority = (discount) => {
|
|
286
302
|
const isHolder = isHolderDiscount(discount);
|
|
@@ -310,8 +326,8 @@ var RulesModule = class extends import_BaseModule.BaseModule {
|
|
|
310
326
|
return itemA.expire_time ? -1 : itemB.expire_time ? 1 : 0;
|
|
311
327
|
}
|
|
312
328
|
function compareDiscountCardValue(itemA, itemB) {
|
|
313
|
-
var
|
|
314
|
-
const typeA = ((
|
|
329
|
+
var _a2, _b;
|
|
330
|
+
const typeA = ((_a2 = itemA.metadata) == null ? void 0 : _a2.discount_card_type) || "percent";
|
|
315
331
|
const typeB = ((_b = itemB.metadata) == null ? void 0 : _b.discount_card_type) || "percent";
|
|
316
332
|
if (typeA === "fixed_amount" && typeB === "percent")
|
|
317
333
|
return -1;
|
|
@@ -351,7 +367,7 @@ var RulesModule = class extends import_BaseModule.BaseModule {
|
|
|
351
367
|
});
|
|
352
368
|
const flattenedList = flattenProductsWithBundle(productList);
|
|
353
369
|
const sortedFlattenedList = flattenedList.sort((a, b) => {
|
|
354
|
-
var
|
|
370
|
+
var _a2, _b;
|
|
355
371
|
const priceA = new import_decimal.default(
|
|
356
372
|
a.type === "bundle" ? a.original_price ?? a.price ?? "0" : a.price || "0"
|
|
357
373
|
);
|
|
@@ -364,7 +380,7 @@ var RulesModule = class extends import_BaseModule.BaseModule {
|
|
|
364
380
|
}
|
|
365
381
|
if (a.type === "main" && b.type === "main") {
|
|
366
382
|
if (a.product.quantity === b.product.quantity) {
|
|
367
|
-
return (((
|
|
383
|
+
return (((_a2 = b.product.discount_list) == null ? void 0 : _a2.length) || 0) - (((_b = a.product.discount_list) == null ? void 0 : _b.length) || 0);
|
|
368
384
|
}
|
|
369
385
|
return a.product.quantity - b.product.quantity;
|
|
370
386
|
}
|
|
@@ -377,7 +393,7 @@ var RulesModule = class extends import_BaseModule.BaseModule {
|
|
|
377
393
|
const evaluator = this.getWalletPassEvaluator();
|
|
378
394
|
if (evaluator) {
|
|
379
395
|
addModeDiscount.forEach((discount) => {
|
|
380
|
-
var
|
|
396
|
+
var _a2, _b;
|
|
381
397
|
const discountType = discount.tag || discount.type;
|
|
382
398
|
if (["good_pass", "discount_card", "product_discount_card"].includes(
|
|
383
399
|
discountType
|
|
@@ -389,17 +405,17 @@ var RulesModule = class extends import_BaseModule.BaseModule {
|
|
|
389
405
|
type: discountType,
|
|
390
406
|
product_id: discount.product_id,
|
|
391
407
|
unified_available_status: 1,
|
|
392
|
-
available_product_type: (
|
|
408
|
+
available_product_type: (_a2 = discount.limited_relation_product_data) == null ? void 0 : _a2.type,
|
|
393
409
|
available_product_ids: (_b = discount.limited_relation_product_data) == null ? void 0 : _b.product_ids
|
|
394
410
|
};
|
|
395
411
|
const productsForEvaluate = sortedFlattenedList.map((item) => {
|
|
396
|
-
var
|
|
412
|
+
var _a3;
|
|
397
413
|
return {
|
|
398
414
|
product_id: item.id,
|
|
399
415
|
price: item.price || 0,
|
|
400
416
|
quantity: item.quantity || item.num || 1,
|
|
401
417
|
selling_price: item.price || 0,
|
|
402
|
-
product_options: item.type === "main" ? (
|
|
418
|
+
product_options: item.type === "main" ? (_a3 = item.product) == null ? void 0 : _a3.options : void 0
|
|
403
419
|
};
|
|
404
420
|
});
|
|
405
421
|
const result = evaluator.checkVoucherAvailability({
|
|
@@ -432,7 +448,7 @@ var RulesModule = class extends import_BaseModule.BaseModule {
|
|
|
432
448
|
const orderLevelDiscountApplicableItems = /* @__PURE__ */ new Map();
|
|
433
449
|
const itemApplicableDiscounts = /* @__PURE__ */ new Map();
|
|
434
450
|
const checkItemApplicableForDiscount = (flatItem, discount) => {
|
|
435
|
-
var
|
|
451
|
+
var _a2, _b, _c, _d, _e, _f, _g, _h;
|
|
436
452
|
let product;
|
|
437
453
|
if (flatItem.type === "main") {
|
|
438
454
|
product = flatItem.product;
|
|
@@ -445,7 +461,7 @@ var RulesModule = class extends import_BaseModule.BaseModule {
|
|
|
445
461
|
num: flatItem.num,
|
|
446
462
|
booking_id: flatItem.booking_id,
|
|
447
463
|
discount_list: flatItem.discount_list || [],
|
|
448
|
-
startDate: (
|
|
464
|
+
startDate: (_a2 = flatItem.parentProduct) == null ? void 0 : _a2.startDate
|
|
449
465
|
};
|
|
450
466
|
}
|
|
451
467
|
const isAvailableProduct = flatItem.type === "main" ? !((product == null ? void 0 : product.booking_id) && ((_b = product == null ? void 0 : product.discount_list) == null ? void 0 : _b.length) && ((_c = product == null ? void 0 : product.discount_list) == null ? void 0 : _c.every((d) => d.id && ["good_pass", "discount_card", "product_discount_card"].includes(d.tag || d.type)))) : !((flatItem == null ? void 0 : flatItem.booking_id) && !!((_e = (_d = flatItem == null ? void 0 : flatItem.bundleItem) == null ? void 0 : _d.discount_list) == null ? void 0 : _e.length) && ((_g = (_f = flatItem == null ? void 0 : flatItem.bundleItem) == null ? void 0 : _f.discount_list) == null ? void 0 : _g.every((d) => d.id)));
|
|
@@ -507,14 +523,13 @@ var RulesModule = class extends import_BaseModule.BaseModule {
|
|
|
507
523
|
}
|
|
508
524
|
}
|
|
509
525
|
});
|
|
510
|
-
console.log("occupiedItems", occupiedItems, "orderLevelDiscountApplicableItems", orderLevelDiscountApplicableItems);
|
|
511
526
|
sortedDiscountList.forEach((discount) => {
|
|
512
527
|
if (!(0, import_utils3.isOrderLevelFixedAmountDiscount)(discount)) {
|
|
513
528
|
return;
|
|
514
529
|
}
|
|
515
530
|
const applicableProducts = [];
|
|
516
531
|
sortedFlattenedList.forEach((flatItem) => {
|
|
517
|
-
var
|
|
532
|
+
var _a2, _b, _c;
|
|
518
533
|
const occupyingDiscountId = occupiedItems.get(flatItem._id);
|
|
519
534
|
if (occupyingDiscountId !== void 0 && occupyingDiscountId !== discount.id) {
|
|
520
535
|
return;
|
|
@@ -534,7 +549,7 @@ var RulesModule = class extends import_BaseModule.BaseModule {
|
|
|
534
549
|
num: flatItem.num
|
|
535
550
|
};
|
|
536
551
|
}
|
|
537
|
-
const quantity = flatItem.type === "main" ? product.num || product.quantity || 1 : (product.num || product.quantity || 1) * (((
|
|
552
|
+
const quantity = flatItem.type === "main" ? product.num || product.quantity || 1 : (product.num || product.quantity || 1) * (((_a2 = flatItem.parentProduct) == null ? void 0 : _a2.num) || ((_b = flatItem.parentProduct) == null ? void 0 : _b.quantity) || 1);
|
|
538
553
|
const originalAmount = flatItem.type === "main" ? Number(product.price ?? 0) : Number(flatItem.original_price ?? flatItem.price ?? 0);
|
|
539
554
|
const productData = {
|
|
540
555
|
productId: flatItem._id,
|
|
@@ -554,7 +569,7 @@ var RulesModule = class extends import_BaseModule.BaseModule {
|
|
|
554
569
|
const processedProductsMap = /* @__PURE__ */ new Map();
|
|
555
570
|
const appliedDiscountProducts = /* @__PURE__ */ new Map();
|
|
556
571
|
sortedFlattenedList.forEach((flatItem) => {
|
|
557
|
-
var
|
|
572
|
+
var _a2;
|
|
558
573
|
let product, originProduct;
|
|
559
574
|
if (flatItem.type === "main") {
|
|
560
575
|
product = flatItem.product;
|
|
@@ -570,12 +585,12 @@ var RulesModule = class extends import_BaseModule.BaseModule {
|
|
|
570
585
|
origin_total: flatItem.origin_total,
|
|
571
586
|
booking_id: flatItem.booking_id,
|
|
572
587
|
discount_list: flatItem.discount_list || [],
|
|
573
|
-
startDate: (
|
|
588
|
+
startDate: (_a2 = flatItem.parentProduct) == null ? void 0 : _a2.startDate
|
|
574
589
|
};
|
|
575
590
|
originProduct = flatItem.originProduct;
|
|
576
591
|
}
|
|
577
592
|
addModeDiscount.forEach((discount) => {
|
|
578
|
-
var
|
|
593
|
+
var _a3, _b, _c, _d, _e, _f, _g, _h, _i, _j;
|
|
579
594
|
const limitedData = discount == null ? void 0 : discount.limited_relation_product_data;
|
|
580
595
|
const _tempVar = (flatItem == null ? void 0 : flatItem.type) === "bundle" ? flatItem == null ? void 0 : flatItem.parentProduct : flatItem == null ? void 0 : flatItem.product;
|
|
581
596
|
const isHolderMatch = this.checkHolderMatch(
|
|
@@ -589,7 +604,7 @@ var RulesModule = class extends import_BaseModule.BaseModule {
|
|
|
589
604
|
let timeLimit = true;
|
|
590
605
|
timeLimit = !!(0, import_utils.filterDiscountListByBookingTime)([discount], ((product == null ? void 0 : product.startDate) || (0, import_dayjs.default)()).format("YYYY-MM-DD HH:mm:ss")).length;
|
|
591
606
|
const isLimitedProduct = (limitedData.type === "product_all" && limitedData.filter !== 1 || limitedData.type === "product_all" && limitedData.filter === 1 && !limitedData.exclude_product_ids.includes(product.id) || limitedData.product_ids && limitedData.product_ids.includes(product.id)) && isHolderMatch;
|
|
592
|
-
const isAvailableProduct = flatItem.type === "main" ? !((product == null ? void 0 : product.booking_id) && ((
|
|
607
|
+
const isAvailableProduct = flatItem.type === "main" ? !((product == null ? void 0 : product.booking_id) && ((_a3 = product == null ? void 0 : product.discount_list) == null ? void 0 : _a3.length) && ((_b = product == null ? void 0 : product.discount_list) == null ? void 0 : _b.every(
|
|
593
608
|
(discount2) => discount2.id && [
|
|
594
609
|
"good_pass",
|
|
595
610
|
"discount_card",
|
|
@@ -673,7 +688,7 @@ var RulesModule = class extends import_BaseModule.BaseModule {
|
|
|
673
688
|
}, 0);
|
|
674
689
|
};
|
|
675
690
|
sortedFlattenedList.forEach((flatItem, index) => {
|
|
676
|
-
var
|
|
691
|
+
var _a2, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _A, _B, _C, _D, _E, _F, _G, _H, _I;
|
|
677
692
|
let product, originProduct;
|
|
678
693
|
if (flatItem.type === "main") {
|
|
679
694
|
product = flatItem.product;
|
|
@@ -686,7 +701,7 @@ var RulesModule = class extends import_BaseModule.BaseModule {
|
|
|
686
701
|
quantity: flatItem.quantity,
|
|
687
702
|
num: flatItem.num,
|
|
688
703
|
total: flatItem.total,
|
|
689
|
-
original_price: (
|
|
704
|
+
original_price: (_a2 = flatItem == null ? void 0 : flatItem.bundleItem) == null ? void 0 : _a2.original_price,
|
|
690
705
|
origin_total: (_b = flatItem == null ? void 0 : flatItem.bundleItem) == null ? void 0 : _b.original_price,
|
|
691
706
|
booking_id: flatItem.booking_id,
|
|
692
707
|
discount_list: ((_c = flatItem == null ? void 0 : flatItem.bundleItem) == null ? void 0 : _c.discount_list) || [],
|
|
@@ -694,11 +709,18 @@ var RulesModule = class extends import_BaseModule.BaseModule {
|
|
|
694
709
|
};
|
|
695
710
|
originProduct = flatItem.originProduct;
|
|
696
711
|
}
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
)
|
|
701
|
-
|
|
712
|
+
const isPersistedProduct = (product == null ? void 0 : product.booking_id) || (originProduct == null ? void 0 : originProduct.order_detail_id) || (originProduct == null ? void 0 : originProduct.orderDetailId) || (originProduct == null ? void 0 : originProduct.booking_id);
|
|
713
|
+
const hasExistingWalletDiscount = ((_e = product.discount_list) == null ? void 0 : _e.length) && ((_f = product == null ? void 0 : product.discount_list) == null ? void 0 : _f.every((discount) => {
|
|
714
|
+
var _a3;
|
|
715
|
+
const discountIdentity = discount.id ?? ((_a3 = discount.discount) == null ? void 0 : _a3.resource_id);
|
|
716
|
+
const discountType = discount.tag || discount.type;
|
|
717
|
+
return Boolean(
|
|
718
|
+
discountIdentity && ["good_pass", "discount_card", "product_discount_card"].includes(
|
|
719
|
+
discountType
|
|
720
|
+
)
|
|
721
|
+
);
|
|
722
|
+
}));
|
|
723
|
+
if (isPersistedProduct && hasExistingWalletDiscount) {
|
|
702
724
|
if (flatItem.type === "main") {
|
|
703
725
|
processedProductsMap.set(product._id, [originProduct]);
|
|
704
726
|
} else {
|
|
@@ -712,20 +734,20 @@ var RulesModule = class extends import_BaseModule.BaseModule {
|
|
|
712
734
|
return;
|
|
713
735
|
}
|
|
714
736
|
const applicableDiscounts = sortedDiscountList.filter((discount) => {
|
|
715
|
-
var
|
|
737
|
+
var _a3, _b2, _c2, _d2;
|
|
716
738
|
const discountType = discount.tag || discount.type;
|
|
717
739
|
if (["good_pass", "discount_card", "product_discount_card"].includes(
|
|
718
740
|
discountType
|
|
719
741
|
)) {
|
|
720
|
-
if (discount.config === void 0 || !((
|
|
742
|
+
if (discount.config === void 0 || !((_a3 = discount == null ? void 0 : discount.config) == null ? void 0 : _a3.isAvailable)) {
|
|
721
743
|
return false;
|
|
722
744
|
}
|
|
723
745
|
}
|
|
724
746
|
if ((Number(product.price) <= 0 || !product.price) && !((_b2 = product.discount_list) == null ? void 0 : _b2.length) && (discount.tag || discount.type) === "good_pass")
|
|
725
747
|
return false;
|
|
726
748
|
if ((Number(product.price) <= 0 || !product.price) && !((_c2 = product.discount_list) == null ? void 0 : _c2.find((n) => {
|
|
727
|
-
var
|
|
728
|
-
return ((
|
|
749
|
+
var _a4;
|
|
750
|
+
return ((_a4 = n.discount) == null ? void 0 : _a4.resource_id) === discount.id;
|
|
729
751
|
})) && (discount.tag || discount.type) !== "good_pass")
|
|
730
752
|
return false;
|
|
731
753
|
const targetUsedDiscounts = usedDiscounts.get(discount.id);
|
|
@@ -779,13 +801,13 @@ var RulesModule = class extends import_BaseModule.BaseModule {
|
|
|
779
801
|
const selectedDiscount = selectedDiscountCard || applicableDiscounts[0];
|
|
780
802
|
let isManualDiscount = false;
|
|
781
803
|
if (flatItem.type === "main") {
|
|
782
|
-
isManualDiscount = typeof product.isManualDiscount === "boolean" ? product.isManualDiscount : product.total != product.origin_total && (product.bundle || []).every(
|
|
804
|
+
isManualDiscount = typeof product.isManualDiscount === "boolean" ? product.isManualDiscount : ((_g = product.discount_list) == null ? void 0 : _g.some((item) => item.type === "product")) || product.total != product.origin_total && (product.bundle || []).every(
|
|
783
805
|
(item) => {
|
|
784
|
-
var
|
|
785
|
-
return !((
|
|
806
|
+
var _a3;
|
|
807
|
+
return !((_a3 = item.discount_list || []) == null ? void 0 : _a3.length);
|
|
786
808
|
}
|
|
787
|
-
) && (!((
|
|
788
|
-
|
|
809
|
+
) && (!((_h = product.discount_list) == null ? void 0 : _h.length) || ((_j = (_i = product == null ? void 0 : product.discount_list) == null ? void 0 : _i.every) == null ? void 0 : _j.call(
|
|
810
|
+
_i,
|
|
789
811
|
(item) => item.type === "product"
|
|
790
812
|
)));
|
|
791
813
|
if (product.inPromotion) {
|
|
@@ -794,36 +816,36 @@ var RulesModule = class extends import_BaseModule.BaseModule {
|
|
|
794
816
|
} else {
|
|
795
817
|
const parentProduct = flatItem.parentProduct;
|
|
796
818
|
if (parentProduct) {
|
|
797
|
-
isManualDiscount = typeof parentProduct.isManualDiscount === "boolean" ? parentProduct.isManualDiscount : parentProduct.total != parentProduct.origin_total && (parentProduct.bundle || []).every(
|
|
819
|
+
isManualDiscount = typeof parentProduct.isManualDiscount === "boolean" ? parentProduct.isManualDiscount : ((_k = parentProduct.discount_list) == null ? void 0 : _k.some((item) => item.type === "product")) || parentProduct.total != parentProduct.origin_total && (parentProduct.bundle || []).every(
|
|
798
820
|
(item) => {
|
|
799
|
-
var
|
|
800
|
-
return !((
|
|
821
|
+
var _a3;
|
|
822
|
+
return !((_a3 = item.discount_list || []) == null ? void 0 : _a3.length);
|
|
801
823
|
}
|
|
802
|
-
) && (!((
|
|
803
|
-
|
|
824
|
+
) && (!((_l = parentProduct.discount_list) == null ? void 0 : _l.length) || ((_n = (_m = parentProduct == null ? void 0 : parentProduct.discount_list) == null ? void 0 : _m.every) == null ? void 0 : _n.call(
|
|
825
|
+
_m,
|
|
804
826
|
(item) => item.type === "product"
|
|
805
827
|
)));
|
|
806
828
|
}
|
|
807
829
|
}
|
|
808
830
|
if (options == null ? void 0 : options.discountId) {
|
|
809
|
-
if (flatItem.type === "main" && ((
|
|
831
|
+
if (flatItem.type === "main" && ((_o = product.discount_list) == null ? void 0 : _o.some(
|
|
810
832
|
(item) => {
|
|
811
|
-
var
|
|
812
|
-
return ((
|
|
833
|
+
var _a3;
|
|
834
|
+
return ((_a3 = item.discount) == null ? void 0 : _a3.resource_id) === options.discountId;
|
|
813
835
|
}
|
|
814
836
|
))) {
|
|
815
837
|
isManualDiscount = false;
|
|
816
838
|
}
|
|
817
839
|
if (flatItem.type === "bundle") {
|
|
818
|
-
if (((
|
|
840
|
+
if (((_p = product.discount_list) == null ? void 0 : _p.some(
|
|
819
841
|
(item) => {
|
|
820
|
-
var
|
|
821
|
-
return ((
|
|
842
|
+
var _a3;
|
|
843
|
+
return ((_a3 = item.discount) == null ? void 0 : _a3.resource_id) === options.discountId;
|
|
822
844
|
}
|
|
823
|
-
)) || ((
|
|
845
|
+
)) || ((_r = (_q = flatItem.parentProduct) == null ? void 0 : _q.discount_list) == null ? void 0 : _r.some(
|
|
824
846
|
(item) => {
|
|
825
|
-
var
|
|
826
|
-
return ((
|
|
847
|
+
var _a3;
|
|
848
|
+
return ((_a3 = item.discount) == null ? void 0 : _a3.resource_id) === options.discountId;
|
|
827
849
|
}
|
|
828
850
|
))) {
|
|
829
851
|
isManualDiscount = false;
|
|
@@ -831,13 +853,13 @@ var RulesModule = class extends import_BaseModule.BaseModule {
|
|
|
831
853
|
}
|
|
832
854
|
}
|
|
833
855
|
if (options == null ? void 0 : options.selectedList) {
|
|
834
|
-
if (flatItem.type === "main" && ((
|
|
856
|
+
if (flatItem.type === "main" && ((_s = product.discount_list) == null ? void 0 : _s.some(
|
|
835
857
|
(item) => {
|
|
836
|
-
var
|
|
837
|
-
return (
|
|
858
|
+
var _a3;
|
|
859
|
+
return (_a3 = options == null ? void 0 : options.selectedList) == null ? void 0 : _a3.some(
|
|
838
860
|
(n) => {
|
|
839
|
-
var
|
|
840
|
-
return n.discountId === ((
|
|
861
|
+
var _a4;
|
|
862
|
+
return n.discountId === ((_a4 = item.discount) == null ? void 0 : _a4.resource_id);
|
|
841
863
|
}
|
|
842
864
|
);
|
|
843
865
|
}
|
|
@@ -845,23 +867,23 @@ var RulesModule = class extends import_BaseModule.BaseModule {
|
|
|
845
867
|
isManualDiscount = false;
|
|
846
868
|
}
|
|
847
869
|
if (flatItem.type === "bundle") {
|
|
848
|
-
if (((
|
|
870
|
+
if (((_t = product.discount_list) == null ? void 0 : _t.some(
|
|
849
871
|
(item) => {
|
|
850
|
-
var
|
|
851
|
-
return (
|
|
872
|
+
var _a3;
|
|
873
|
+
return (_a3 = options == null ? void 0 : options.selectedList) == null ? void 0 : _a3.some(
|
|
852
874
|
(n) => {
|
|
853
|
-
var
|
|
854
|
-
return n.discountId === ((
|
|
875
|
+
var _a4;
|
|
876
|
+
return n.discountId === ((_a4 = item.discount) == null ? void 0 : _a4.resource_id);
|
|
855
877
|
}
|
|
856
878
|
);
|
|
857
879
|
}
|
|
858
|
-
)) || ((
|
|
880
|
+
)) || ((_v = (_u = flatItem.parentProduct) == null ? void 0 : _u.discount_list) == null ? void 0 : _v.some(
|
|
859
881
|
(item) => {
|
|
860
|
-
var
|
|
861
|
-
return (
|
|
882
|
+
var _a3;
|
|
883
|
+
return (_a3 = options == null ? void 0 : options.selectedList) == null ? void 0 : _a3.some(
|
|
862
884
|
(n) => {
|
|
863
|
-
var
|
|
864
|
-
return n.discountId === ((
|
|
885
|
+
var _a4;
|
|
886
|
+
return n.discountId === ((_a4 = item.discount) == null ? void 0 : _a4.resource_id);
|
|
865
887
|
}
|
|
866
888
|
);
|
|
867
889
|
}
|
|
@@ -896,11 +918,11 @@ var RulesModule = class extends import_BaseModule.BaseModule {
|
|
|
896
918
|
price: product.price,
|
|
897
919
|
options: restoredOptions
|
|
898
920
|
},
|
|
899
|
-
discount_list: this.filterDiscountListByType(product.discount_list, "promotion")
|
|
921
|
+
discount_list: isManualDiscount ? this.resolveDiscountListForManualOverride(product.discount_list) : this.filterDiscountListByType(product.discount_list, "promotion")
|
|
900
922
|
})
|
|
901
923
|
]);
|
|
902
924
|
} else {
|
|
903
|
-
let total = product.inPromotion ? ((
|
|
925
|
+
let total = product.inPromotion ? ((_w = product == null ? void 0 : product._promotion) == null ? void 0 : _w.finalPrice) ?? product.origin_total ?? product.total : product.origin_total ?? product.total;
|
|
904
926
|
let main_product_selling_price = product.price;
|
|
905
927
|
if ((product.discount_list || []).some((item) => item.type === "promotion") || (0, import_lodash_es.isBoolean)(product.vouchersApplicable) && !product.vouchersApplicable) {
|
|
906
928
|
total = product.total ?? product.origin_total;
|
|
@@ -918,14 +940,14 @@ var RulesModule = class extends import_BaseModule.BaseModule {
|
|
|
918
940
|
main_product_selling_price,
|
|
919
941
|
options: restoredOptions
|
|
920
942
|
},
|
|
921
|
-
discount_list: this.filterDiscountListByType(product.discount_list, "promotion")
|
|
943
|
+
discount_list: isManualDiscount ? this.resolveDiscountListForManualOverride(product.discount_list) : this.filterDiscountListByType(product.discount_list, "promotion")
|
|
922
944
|
})
|
|
923
945
|
]);
|
|
924
946
|
}
|
|
925
947
|
} else {
|
|
926
948
|
processedFlatItemsMap.set(flatItem._id, [{
|
|
927
949
|
...flatItem,
|
|
928
|
-
discount_list: this.filterDiscountListByType(((
|
|
950
|
+
discount_list: isManualDiscount ? this.resolveDiscountListForManualOverride(((_x = flatItem.bundleItem) == null ? void 0 : _x.discount_list) || []) : this.filterDiscountListByType(((_y = flatItem.bundleItem) == null ? void 0 : _y.discount_list) || [], "promotion"),
|
|
929
951
|
price: isManualDiscount ? flatItem.bundleItem.price : flatItem.bundleItem.original_price,
|
|
930
952
|
processed: true
|
|
931
953
|
}]);
|
|
@@ -976,13 +998,13 @@ var RulesModule = class extends import_BaseModule.BaseModule {
|
|
|
976
998
|
if (this.filterDiscountListByType(product.discount_list, "promotion").length && product.origin_total) {
|
|
977
999
|
productOriginTotal = product.origin_total;
|
|
978
1000
|
}
|
|
979
|
-
if (Number(((
|
|
1001
|
+
if (Number(((_z = originProduct == null ? void 0 : originProduct._productInit) == null ? void 0 : _z.original_price) || 0) > 0 && product.origin_total && product.total && product.origin_total !== product.total) {
|
|
980
1002
|
productOriginTotal = product.total;
|
|
981
1003
|
}
|
|
982
1004
|
const isOrderLevel = (0, import_utils3.isOrderLevelFixedAmountDiscount)(selectedDiscount2);
|
|
983
1005
|
const orderLevelAllocation = isOrderLevel ? orderLevelDiscountAllocations.get(selectedDiscount2.id) : null;
|
|
984
1006
|
const productAllocation = orderLevelAllocation == null ? void 0 : orderLevelAllocation.get(flatItem._id);
|
|
985
|
-
const isDeductOptionPrice = !!((
|
|
1007
|
+
const isDeductOptionPrice = !!((_A = selectedDiscount2.config) == null ? void 0 : _A.deductOptionPrice);
|
|
986
1008
|
let mainProductSellingPrice;
|
|
987
1009
|
let amount;
|
|
988
1010
|
let productDiscountDifference;
|
|
@@ -1000,7 +1022,7 @@ var RulesModule = class extends import_BaseModule.BaseModule {
|
|
|
1000
1022
|
);
|
|
1001
1023
|
amount = new import_decimal.default(product.price).minus(new import_decimal.default(mainProductSellingPrice)).toNumber();
|
|
1002
1024
|
}
|
|
1003
|
-
if (isDeductOptionPrice && ((
|
|
1025
|
+
if (isDeductOptionPrice && ((_B = product.options) == null ? void 0 : _B.length)) {
|
|
1004
1026
|
const optionResult = applyDiscountToOptions(
|
|
1005
1027
|
product.options,
|
|
1006
1028
|
selectedDiscount2
|
|
@@ -1008,7 +1030,7 @@ var RulesModule = class extends import_BaseModule.BaseModule {
|
|
|
1008
1030
|
discountedOptions = optionResult.discountedOptions;
|
|
1009
1031
|
optionDiscountAmount = optionResult.optionDiscountAmount;
|
|
1010
1032
|
}
|
|
1011
|
-
const optionsForLineTotal = isDeductOptionPrice && ((
|
|
1033
|
+
const optionsForLineTotal = isDeductOptionPrice && ((_C = product.options) == null ? void 0 : _C.length) ? discountedOptions : product.options;
|
|
1012
1034
|
const optionsLineTotal = getOptionTotal(optionsForLineTotal || []);
|
|
1013
1035
|
const total = new import_decimal.default(mainProductSellingPrice).plus(optionsLineTotal).toNumber();
|
|
1014
1036
|
const mainProductDiscountAmount = amount;
|
|
@@ -1019,9 +1041,9 @@ var RulesModule = class extends import_BaseModule.BaseModule {
|
|
|
1019
1041
|
amount: lineDiscountAmount,
|
|
1020
1042
|
type: selectedDiscount2.tag === "product_discount_card" ? "discount_card" : discountType,
|
|
1021
1043
|
discount: {
|
|
1022
|
-
discount_card_type: (
|
|
1044
|
+
discount_card_type: (_D = selectedDiscount2 == null ? void 0 : selectedDiscount2.metadata) == null ? void 0 : _D.discount_card_type,
|
|
1023
1045
|
fixed_amount: lineDiscountAmount,
|
|
1024
|
-
discount_calculation_mode: (
|
|
1046
|
+
discount_calculation_mode: (_E = selectedDiscount2 == null ? void 0 : selectedDiscount2.metadata) == null ? void 0 : _E.discount_calculation_mode,
|
|
1025
1047
|
resource_id: selectedDiscount2.id,
|
|
1026
1048
|
title: selectedDiscount2.format_title,
|
|
1027
1049
|
original_amount: product.price,
|
|
@@ -1103,7 +1125,7 @@ var RulesModule = class extends import_BaseModule.BaseModule {
|
|
|
1103
1125
|
type: "good_pass",
|
|
1104
1126
|
discount: {
|
|
1105
1127
|
fixed_amount: product.origin_total,
|
|
1106
|
-
discount_calculation_mode: (
|
|
1128
|
+
discount_calculation_mode: (_F = selectedDiscount2 == null ? void 0 : selectedDiscount2.metadata) == null ? void 0 : _F.discount_calculation_mode,
|
|
1107
1129
|
resource_id: selectedDiscount2.id,
|
|
1108
1130
|
title: selectedDiscount2.format_title,
|
|
1109
1131
|
original_amount: product.origin_total,
|
|
@@ -1177,9 +1199,9 @@ var RulesModule = class extends import_BaseModule.BaseModule {
|
|
|
1177
1199
|
amount: fixedAmountPerItem * (product.num || 1),
|
|
1178
1200
|
type: selectedDiscount2.tag === "product_discount_card" ? "discount_card" : selectedDiscount2.tag,
|
|
1179
1201
|
discount: {
|
|
1180
|
-
discount_card_type: (
|
|
1202
|
+
discount_card_type: (_G = selectedDiscount2 == null ? void 0 : selectedDiscount2.metadata) == null ? void 0 : _G.discount_card_type,
|
|
1181
1203
|
fixed_amount: fixedAmountPerItem,
|
|
1182
|
-
discount_calculation_mode: (
|
|
1204
|
+
discount_calculation_mode: (_H = selectedDiscount2 == null ? void 0 : selectedDiscount2.metadata) == null ? void 0 : _H.discount_calculation_mode,
|
|
1183
1205
|
resource_id: selectedDiscount2.id,
|
|
1184
1206
|
title: selectedDiscount2.format_title,
|
|
1185
1207
|
original_amount: product.original_price,
|
|
@@ -1195,7 +1217,7 @@ var RulesModule = class extends import_BaseModule.BaseModule {
|
|
|
1195
1217
|
...productDiscountDifference !== void 0 && { product_discount_difference: productDiscountDifference }
|
|
1196
1218
|
},
|
|
1197
1219
|
config: selectedDiscount2 == null ? void 0 : selectedDiscount2.config,
|
|
1198
|
-
_num: (product.num || 1) * (((
|
|
1220
|
+
_num: (product.num || 1) * (((_I = flatItem == null ? void 0 : flatItem.parentProduct) == null ? void 0 : _I.num) || 1)
|
|
1199
1221
|
};
|
|
1200
1222
|
const appliedProducts = appliedDiscountProducts.get(selectedDiscount2.id) || [];
|
|
1201
1223
|
appliedProducts.push(discountDetail);
|
|
@@ -1270,8 +1292,8 @@ var RulesModule = class extends import_BaseModule.BaseModule {
|
|
|
1270
1292
|
bundleProcessingInfo.set(bundleIndex, processedBundleItems);
|
|
1271
1293
|
const hasGoodPass = processedBundleItems.some(
|
|
1272
1294
|
(item) => {
|
|
1273
|
-
var
|
|
1274
|
-
return (
|
|
1295
|
+
var _a2;
|
|
1296
|
+
return (_a2 = item.discount_list) == null ? void 0 : _a2.some(
|
|
1275
1297
|
(discount) => discount.type === "good_pass" || discount.tag === "good_pass"
|
|
1276
1298
|
);
|
|
1277
1299
|
}
|
|
@@ -1295,13 +1317,13 @@ var RulesModule = class extends import_BaseModule.BaseModule {
|
|
|
1295
1317
|
if (processedItems.length > 1) {
|
|
1296
1318
|
processedItems.forEach((item) => {
|
|
1297
1319
|
const updatedDiscountList2 = (item.discount_list || []).map((discount) => {
|
|
1298
|
-
var
|
|
1320
|
+
var _a2;
|
|
1299
1321
|
return {
|
|
1300
1322
|
...discount,
|
|
1301
1323
|
metadata: {
|
|
1302
1324
|
...discount.metadata,
|
|
1303
1325
|
num: item.num,
|
|
1304
|
-
custom_product_bundle_map_id: (
|
|
1326
|
+
custom_product_bundle_map_id: (_a2 = item.metadata) == null ? void 0 : _a2.custom_product_bundle_map_id
|
|
1305
1327
|
}
|
|
1306
1328
|
// num: item.num, // 使用拆分后的 num
|
|
1307
1329
|
};
|
|
@@ -1319,13 +1341,13 @@ var RulesModule = class extends import_BaseModule.BaseModule {
|
|
|
1319
1341
|
const item = processedItems[0];
|
|
1320
1342
|
if (item.processed) {
|
|
1321
1343
|
const updatedDiscountList2 = (item.discount_list || []).map((discount) => {
|
|
1322
|
-
var
|
|
1344
|
+
var _a2;
|
|
1323
1345
|
return {
|
|
1324
1346
|
...discount,
|
|
1325
1347
|
metadata: {
|
|
1326
1348
|
...discount.metadata,
|
|
1327
1349
|
num: item.num,
|
|
1328
|
-
custom_product_bundle_map_id: (
|
|
1350
|
+
custom_product_bundle_map_id: (_a2 = item.metadata) == null ? void 0 : _a2.custom_product_bundle_map_id
|
|
1329
1351
|
}
|
|
1330
1352
|
// num: item.num, // 使用当前的 num
|
|
1331
1353
|
};
|
|
@@ -1349,8 +1371,8 @@ var RulesModule = class extends import_BaseModule.BaseModule {
|
|
|
1349
1371
|
mainProductData.original_price || mainProductData.price || 0
|
|
1350
1372
|
);
|
|
1351
1373
|
const updatedMainDiscountList = mainProductData.discount_list.map((discount) => {
|
|
1352
|
-
var
|
|
1353
|
-
if ((
|
|
1374
|
+
var _a2, _b;
|
|
1375
|
+
if ((_a2 = discount == null ? void 0 : discount.metadata) == null ? void 0 : _a2.custom_product_bundle_map_id) {
|
|
1354
1376
|
return discount;
|
|
1355
1377
|
}
|
|
1356
1378
|
return {
|
|
@@ -1365,8 +1387,8 @@ var RulesModule = class extends import_BaseModule.BaseModule {
|
|
|
1365
1387
|
});
|
|
1366
1388
|
const mainDiscountList = updatedMainDiscountList.filter(
|
|
1367
1389
|
(item) => {
|
|
1368
|
-
var
|
|
1369
|
-
return !((
|
|
1390
|
+
var _a2;
|
|
1391
|
+
return !((_a2 = item == null ? void 0 : item.metadata) == null ? void 0 : _a2.custom_product_bundle_map_id);
|
|
1370
1392
|
}
|
|
1371
1393
|
);
|
|
1372
1394
|
if (mainDiscountList && mainDiscountList.length > 0) {
|
|
@@ -1379,8 +1401,8 @@ var RulesModule = class extends import_BaseModule.BaseModule {
|
|
|
1379
1401
|
newTotalWithDiscount += Number(item.price) * Number(item.num);
|
|
1380
1402
|
});
|
|
1381
1403
|
newBundleWithDiscount.forEach((item) => {
|
|
1382
|
-
var
|
|
1383
|
-
const originalPrice = ((_c = (_b = (
|
|
1404
|
+
var _a2, _b, _c;
|
|
1405
|
+
const originalPrice = ((_c = (_b = (_a2 = item.discount_list) == null ? void 0 : _a2[0]) == null ? void 0 : _b.discount) == null ? void 0 : _c.original_amount) || item.price;
|
|
1384
1406
|
newOriginTotalWithDiscount += Number(originalPrice) * Number(item.num);
|
|
1385
1407
|
});
|
|
1386
1408
|
}
|
|
@@ -1417,8 +1439,8 @@ var RulesModule = class extends import_BaseModule.BaseModule {
|
|
|
1417
1439
|
mainProductData.original_price || mainProductData.price || 0
|
|
1418
1440
|
);
|
|
1419
1441
|
const updatedMainDiscountListOriginal = mainProductData.discount_list.map((discount) => {
|
|
1420
|
-
var
|
|
1421
|
-
if ((
|
|
1442
|
+
var _a2, _b;
|
|
1443
|
+
if ((_a2 = discount == null ? void 0 : discount.metadata) == null ? void 0 : _a2.custom_product_bundle_map_id) {
|
|
1422
1444
|
return discount;
|
|
1423
1445
|
}
|
|
1424
1446
|
return {
|
|
@@ -1433,8 +1455,8 @@ var RulesModule = class extends import_BaseModule.BaseModule {
|
|
|
1433
1455
|
});
|
|
1434
1456
|
const mainDiscountListOriginal = updatedMainDiscountListOriginal.filter(
|
|
1435
1457
|
(item) => {
|
|
1436
|
-
var
|
|
1437
|
-
return !((
|
|
1458
|
+
var _a2;
|
|
1459
|
+
return !((_a2 = item == null ? void 0 : item.metadata) == null ? void 0 : _a2.custom_product_bundle_map_id);
|
|
1438
1460
|
}
|
|
1439
1461
|
);
|
|
1440
1462
|
if (mainDiscountListOriginal && mainDiscountListOriginal.length > 0) {
|
|
@@ -1473,7 +1495,7 @@ var RulesModule = class extends import_BaseModule.BaseModule {
|
|
|
1473
1495
|
}
|
|
1474
1496
|
} else {
|
|
1475
1497
|
mainProductArr.forEach((mainProduct) => {
|
|
1476
|
-
var
|
|
1498
|
+
var _a2, _b, _c;
|
|
1477
1499
|
const mainProductData = this.hooks.getProduct(mainProduct);
|
|
1478
1500
|
const newBundle = [];
|
|
1479
1501
|
if (product.bundle && Array.isArray(product.bundle)) {
|
|
@@ -1484,14 +1506,16 @@ var RulesModule = class extends import_BaseModule.BaseModule {
|
|
|
1484
1506
|
newBundle.push(bundleItem);
|
|
1485
1507
|
} else {
|
|
1486
1508
|
processedBundleItems.forEach((item) => {
|
|
1509
|
+
const nextBundlePrice = item.price ?? bundleItem.price;
|
|
1510
|
+
const nextBundleSellingPrice = item.bundle_selling_price ?? item.price ?? bundleItem.bundle_selling_price;
|
|
1487
1511
|
const updatedDiscountList2 = (item.discount_list || []).map((discount) => {
|
|
1488
|
-
var
|
|
1512
|
+
var _a3;
|
|
1489
1513
|
return {
|
|
1490
1514
|
...discount,
|
|
1491
1515
|
metadata: {
|
|
1492
1516
|
...discount.metadata,
|
|
1493
1517
|
num: item.num,
|
|
1494
|
-
custom_product_bundle_map_id: (
|
|
1518
|
+
custom_product_bundle_map_id: (_a3 = discount == null ? void 0 : discount.metadata) == null ? void 0 : _a3.custom_product_bundle_map_id
|
|
1495
1519
|
}
|
|
1496
1520
|
// num: item.num, // 使用拆分后的 num
|
|
1497
1521
|
};
|
|
@@ -1500,38 +1524,31 @@ var RulesModule = class extends import_BaseModule.BaseModule {
|
|
|
1500
1524
|
...bundleItem,
|
|
1501
1525
|
_id: item._id,
|
|
1502
1526
|
product_id: bundleItem.product_id,
|
|
1503
|
-
price:
|
|
1527
|
+
price: nextBundlePrice,
|
|
1504
1528
|
num: item.num,
|
|
1505
1529
|
discount_list: updatedDiscountList2,
|
|
1506
|
-
bundle_selling_price: bundleItem.bundle_selling_price !== void 0 ?
|
|
1530
|
+
bundle_selling_price: bundleItem.bundle_selling_price !== void 0 ? nextBundleSellingPrice : void 0
|
|
1507
1531
|
});
|
|
1508
1532
|
});
|
|
1509
1533
|
}
|
|
1510
1534
|
});
|
|
1511
1535
|
}
|
|
1512
|
-
|
|
1536
|
+
const mainSellingPrice = mainProductData.main_product_selling_price ?? mainProductData.price ?? 0;
|
|
1537
|
+
let newTotal = Number(mainSellingPrice || 0);
|
|
1513
1538
|
let newOriginTotal = Number(mainProductData.original_price || mainProductData.price || 0);
|
|
1514
|
-
const isManualDiscount = typeof mainProductData.isManualDiscount === "boolean" ? mainProductData.isManualDiscount : mainProductData.total != mainProductData.origin_total && (!((
|
|
1539
|
+
const isManualDiscount = typeof mainProductData.isManualDiscount === "boolean" ? mainProductData.isManualDiscount : mainProductData.total != mainProductData.origin_total && (!((_a2 = mainProductData.discount_list) == null ? void 0 : _a2.length) || ((_c = (_b = mainProductData == null ? void 0 : mainProductData.discount_list) == null ? void 0 : _b.every) == null ? void 0 : _c.call(_b, (item) => item.type === "product")));
|
|
1515
1540
|
if (isManualDiscount) {
|
|
1516
1541
|
newTotal = mainProductData.total ?? newTotal;
|
|
1517
1542
|
newOriginTotal = mainProductData.origin_total ?? newOriginTotal;
|
|
1518
1543
|
} else {
|
|
1519
|
-
const mainDiscountList = mainProductData.discount_list.filter((item) => {
|
|
1520
|
-
var _a2;
|
|
1521
|
-
return !((_a2 = item == null ? void 0 : item.metadata) == null ? void 0 : _a2.custom_product_bundle_map_id);
|
|
1522
|
-
});
|
|
1523
|
-
if (mainDiscountList && mainDiscountList.length > 0) {
|
|
1524
|
-
const allDiscountAmount = (0, import_utils.getDiscountListAmount)(mainDiscountList);
|
|
1525
|
-
newTotal = new import_decimal.default(mainProductData.price || 0).minus(allDiscountAmount).toNumber() ?? newTotal;
|
|
1526
|
-
newOriginTotal = mainProductData.origin_total ?? newOriginTotal;
|
|
1527
|
-
}
|
|
1528
1544
|
if (newBundle.length > 0) {
|
|
1529
1545
|
newBundle.forEach((item) => {
|
|
1530
|
-
|
|
1546
|
+
const bundleSellingPrice = item.bundle_selling_price ?? item.price;
|
|
1547
|
+
newTotal += Number(bundleSellingPrice) * Number(item.num);
|
|
1531
1548
|
});
|
|
1532
1549
|
newBundle.forEach((item) => {
|
|
1533
|
-
var
|
|
1534
|
-
const originalPrice = ((_c2 = (_b2 = (
|
|
1550
|
+
var _a3, _b2, _c2;
|
|
1551
|
+
const originalPrice = ((_c2 = (_b2 = (_a3 = item.discount_list) == null ? void 0 : _a3[0]) == null ? void 0 : _b2.discount) == null ? void 0 : _c2.original_amount) || item.price;
|
|
1535
1552
|
newOriginTotal += Number(originalPrice) * Number(item.num);
|
|
1536
1553
|
});
|
|
1537
1554
|
}
|
|
@@ -1618,7 +1635,6 @@ var RulesModule = class extends import_BaseModule.BaseModule {
|
|
|
1618
1635
|
appliedProductDetails: []
|
|
1619
1636
|
};
|
|
1620
1637
|
});
|
|
1621
|
-
console.log(processedProductList, "processedProductList");
|
|
1622
1638
|
return {
|
|
1623
1639
|
productList: processedProductList,
|
|
1624
1640
|
discountList: [...editModeDiscount, ...updatedDiscountList]
|
|
@@ -1711,6 +1727,7 @@ var RulesModule = class extends import_BaseModule.BaseModule {
|
|
|
1711
1727
|
this.core.effects.offByModuleDestroy(this.name);
|
|
1712
1728
|
await this.core.effects.emit(`${this.name}:onDestroy`, {});
|
|
1713
1729
|
console.log("[Rules] 已销毁");
|
|
1730
|
+
super.destroy();
|
|
1714
1731
|
}
|
|
1715
1732
|
async clear() {
|
|
1716
1733
|
console.log("[Rules] clear");
|