@pisell/pisellos 0.0.567 → 0.0.569
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/core/index.js +6 -9
- package/dist/model/strategy/adapter/promotion/evaluator.js +3 -2
- package/dist/model/strategy/adapter/walletPass/evaluator.js +0 -2
- package/dist/model/strategy/adapter/walletPass/example.js +3 -26
- package/dist/model/strategy/adapter/walletPass/utils.js +7 -7
- package/dist/model/strategy/strategy-example.js +5 -19
- package/dist/modules/BaseModule.d.ts +2 -2
- package/dist/modules/BaseModule.js +4 -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 +302 -0
- package/dist/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.d.ts +8 -0
- package/dist/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.js +149 -0
- package/dist/modules/BookingContext/utils/cacheItemToBookingInput.d.ts +76 -0
- package/dist/modules/BookingContext/utils/cacheItemToBookingInput.js +249 -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/index.js +0 -3
- package/dist/modules/Cart/utils/cartProduct.js +26 -6
- package/dist/modules/Cart/utils/changePrice.js +27 -20
- 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/Date/index.js +1 -5
- package/dist/modules/Discount/index.d.ts +2 -1
- package/dist/modules/Discount/index.js +37 -12
- package/dist/modules/Discount/types.d.ts +1 -0
- package/dist/modules/OpenData/index.d.ts +8 -0
- package/dist/modules/OpenData/index.js +35 -17
- package/dist/modules/Order/index.d.ts +449 -24
- package/dist/modules/Order/index.js +5437 -608
- package/dist/modules/Order/types.d.ts +693 -88
- package/dist/modules/Order/types.js +68 -1
- package/dist/modules/Order/utils/bundleDiscountHydration.d.ts +5 -0
- package/dist/modules/Order/utils/bundleDiscountHydration.js +144 -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/orderCollectionIdentity.d.ts +53 -0
- package/dist/modules/Order/utils/orderCollectionIdentity.js +405 -0
- package/dist/modules/Order/utils.d.ts +167 -18
- package/dist/modules/Order/utils.js +960 -165
- package/dist/modules/Payment/index.d.ts +10 -9
- package/dist/modules/Payment/index.js +508 -874
- package/dist/modules/Payment/types.d.ts +40 -16
- package/dist/modules/Payment/utils.d.ts +1 -1
- package/dist/modules/Payment/utils.js +4 -3
- package/dist/modules/Payment/walletpass.js +48 -34
- package/dist/modules/Product/types.d.ts +29 -7
- package/dist/modules/ProductList/index.d.ts +17 -13
- package/dist/modules/ProductList/index.js +184 -74
- package/dist/modules/ProductList/types.d.ts +17 -0
- package/dist/modules/Quotation/index.d.ts +22 -2
- package/dist/modules/Quotation/index.js +108 -42
- package/dist/modules/Quotation/types.d.ts +19 -0
- package/dist/modules/ResourcePlanner/index.d.ts +24 -0
- package/dist/modules/ResourcePlanner/index.js +181 -0
- package/dist/modules/ResourcePlanner/planner.d.ts +14 -0
- package/dist/modules/ResourcePlanner/planner.js +1069 -0
- package/dist/modules/ResourcePlanner/types.d.ts +227 -0
- package/dist/modules/ResourcePlanner/types.js +1 -0
- package/dist/modules/Rules/index.d.ts +8 -10
- package/dist/modules/Rules/index.js +219 -114
- package/dist/modules/Rules/types.d.ts +14 -3
- package/dist/modules/SalesSummary/index.d.ts +23 -26
- package/dist/modules/SalesSummary/index.js +152 -46
- package/dist/modules/SalesSummary/types.d.ts +9 -1
- package/dist/modules/SalesSummary/utils.d.ts +3 -22
- package/dist/modules/SalesSummary/utils.js +803 -163
- package/dist/modules/Schedule/getDateIsInSchedule.js +14 -7
- package/dist/modules/Schedule/index.d.ts +18 -5
- package/dist/modules/Schedule/index.js +78 -24
- package/dist/modules/Schedule/types.d.ts +2 -0
- package/dist/modules/Schedule/utils.js +0 -1
- package/dist/modules/Step/index.js +0 -1
- package/dist/modules/Summary/index.js +4 -3
- package/dist/modules/SurchargeList/index.d.ts +18 -0
- package/dist/modules/SurchargeList/index.js +185 -0
- package/dist/modules/SurchargeList/types.d.ts +15 -0
- package/dist/modules/SurchargeList/types.js +1 -0
- package/dist/modules/index.d.ts +3 -0
- package/dist/modules/index.js +4 -1
- package/dist/plugins/app.d.ts +2 -0
- package/dist/plugins/request.d.ts +1 -0
- package/dist/plugins/request.js +1 -4
- package/dist/plugins/window.js +2 -6
- package/dist/server/index.d.ts +462 -8
- package/dist/server/index.js +6137 -714
- package/dist/server/modules/floor-plan/index.d.ts +39 -0
- package/dist/server/modules/floor-plan/index.js +595 -0
- package/dist/server/modules/floor-plan/types.d.ts +43 -0
- package/dist/server/modules/floor-plan/types.js +13 -0
- package/dist/server/modules/index.d.ts +7 -2
- package/dist/server/modules/index.js +6 -0
- package/dist/server/modules/menu/index.js +32 -41
- package/dist/server/modules/order/index.d.ts +207 -14
- package/dist/server/modules/order/index.js +2326 -379
- package/dist/server/modules/order/types.d.ts +76 -5
- package/dist/server/modules/order/types.js +14 -1
- package/dist/server/modules/order/utils/filterBookings.d.ts +7 -1
- package/dist/server/modules/order/utils/filterBookings.js +118 -11
- package/dist/server/modules/order/utils/filterOrders.js +242 -14
- 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 +105 -14
- package/dist/server/modules/products/index.js +1397 -540
- package/dist/server/modules/products/types.d.ts +34 -1
- package/dist/server/modules/products/types.js +4 -0
- package/dist/server/modules/quotation/index.d.ts +39 -0
- package/dist/server/modules/quotation/index.js +289 -86
- package/dist/server/modules/resource/index.d.ts +2 -3
- package/dist/server/modules/resource/index.js +105 -84
- package/dist/server/modules/schedule/index.d.ts +6 -4
- package/dist/server/modules/schedule/index.js +137 -114
- package/dist/server/test.json +713 -0
- package/dist/server/types.d.ts +2 -0
- package/dist/server/utils/product.js +2 -3
- package/dist/server/utils/small-ticket.d.ts +71 -0
- package/dist/server/utils/small-ticket.js +963 -0
- package/dist/solution/BaseSales/index.d.ts +378 -0
- package/dist/solution/BaseSales/index.js +4006 -0
- package/dist/solution/BaseSales/types.d.ts +394 -0
- package/dist/solution/BaseSales/types.js +40 -0
- package/dist/solution/BaseSales/utils/cartPromotion.d.ts +287 -0
- package/dist/solution/BaseSales/utils/cartPromotion.js +1450 -0
- package/dist/solution/BaseSales/utils/parseSalesResponse.d.ts +144 -0
- package/dist/solution/BaseSales/utils/parseSalesResponse.js +157 -0
- package/dist/solution/BaseSales/utils/quotationPrice.d.ts +18 -0
- package/dist/solution/BaseSales/utils/quotationPrice.js +250 -0
- package/dist/solution/BaseSales/utils/transformBaseProductToOrderProduct.d.ts +63 -0
- package/dist/solution/BaseSales/utils/transformBaseProductToOrderProduct.js +218 -0
- package/dist/solution/BaseSales/utils.d.ts +40 -0
- package/dist/solution/BaseSales/utils.js +263 -0
- package/dist/solution/BookingByStep/index.js +7 -59
- package/dist/solution/BookingByStep/utils/capacity.js +1 -11
- package/dist/solution/BookingByStep/utils/resources.js +1 -3
- package/dist/solution/BookingByStep/utils/timeslots.js +2 -43
- package/dist/solution/BookingTicket/index.d.ts +393 -24
- package/dist/solution/BookingTicket/index.js +2506 -445
- package/dist/solution/BookingTicket/types.d.ts +191 -6
- package/dist/solution/BookingTicket/types.js +83 -10
- 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 +77 -0
- package/dist/solution/BookingTicket/utils/bookingStatus.js +136 -0
- package/dist/solution/BookingTicket/utils/cartView.d.ts +29 -0
- package/dist/solution/BookingTicket/utils/cartView.js +209 -0
- package/dist/solution/BookingTicket/utils/exampleData.d.ts +123 -0
- package/dist/solution/BookingTicket/utils/exampleData.js +183 -0
- package/dist/solution/BookingTicket/utils/orderCustomer.d.ts +4 -0
- package/dist/solution/BookingTicket/utils/orderCustomer.js +31 -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/cloudSearch.d.ts +4 -0
- package/dist/solution/BookingTicket/utils/scan/cloudSearch.js +41 -1
- 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/handleScan.d.ts +3 -1
- package/dist/solution/BookingTicket/utils/scan/handleScan.js +36 -34
- package/dist/solution/BookingTicket/utils/scan/index.d.ts +5 -0
- package/dist/solution/BookingTicket/utils/scan/index.js +26 -18
- 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/BuyTickets/index.js +9 -12
- package/dist/solution/Checkout/index.d.ts +1 -0
- package/dist/solution/Checkout/index.js +199 -277
- package/dist/solution/Checkout/utils/index.js +8 -20
- package/dist/solution/RegisterAndLogin/config.js +2 -10
- package/dist/solution/RegisterAndLogin/index.js +30 -76
- package/dist/solution/Sales/index.d.ts +50 -5
- package/dist/solution/Sales/index.js +484 -92
- package/dist/solution/Sales/types.d.ts +26 -2
- package/dist/solution/ScanOrder/index.d.ts +27 -21
- package/dist/solution/ScanOrder/index.js +509 -454
- package/dist/solution/ScanOrder/types.d.ts +33 -11
- package/dist/solution/ScanOrder/types.js +4 -5
- package/dist/solution/ScanOrder/utils.d.ts +4 -1
- package/dist/solution/ScanOrder/utils.js +109 -34
- package/dist/solution/ShopDiscount/index.js +6 -11
- package/dist/solution/UnifiedBookingSales/index.d.ts +183 -0
- package/dist/solution/UnifiedBookingSales/index.js +1871 -0
- package/dist/solution/UnifiedBookingSales/types.d.ts +143 -0
- package/dist/solution/UnifiedBookingSales/types.js +11 -0
- package/dist/solution/VenueBooking/index.d.ts +34 -20
- package/dist/solution/VenueBooking/index.js +630 -505
- package/dist/solution/VenueBooking/sales-section-4-annotated.json +0 -2
- package/dist/solution/VenueBooking/utils/slotMerge.d.ts +6 -0
- package/dist/solution/VenueBooking/utils/slotMerge.js +9 -3
- package/dist/solution/index.d.ts +2 -0
- package/dist/solution/index.js +3 -1
- package/dist/types/index.d.ts +11 -1
- package/dist/utils/task.js +15 -18
- package/dist/utils/watch.js +0 -1
- package/lib/apis/picoding.js +2 -0
- package/lib/core/index.js +130 -131
- package/lib/effects/index.js +46 -57
- package/lib/index.js +92 -53
- package/lib/model/index.js +14 -21
- package/lib/model/strategy/adapter/dataVariant/adapter.js +38 -50
- package/lib/model/strategy/adapter/dataVariant/evaluator.js +162 -236
- package/lib/model/strategy/adapter/dataVariant/examples.js +229 -237
- package/lib/model/strategy/adapter/dataVariant/index.js +39 -34
- package/lib/model/strategy/adapter/dataVariant/type.js +57 -28
- package/lib/model/strategy/adapter/index.js +100 -64
- package/lib/model/strategy/adapter/itemRule/adapter.js +156 -144
- package/lib/model/strategy/adapter/itemRule/evaluator.js +36 -48
- package/lib/model/strategy/adapter/itemRule/examples.js +295 -225
- package/lib/model/strategy/adapter/itemRule/index.js +83 -57
- package/lib/model/strategy/adapter/itemRule/type.js +97 -36
- package/lib/model/strategy/adapter/promotion/adapter.js +84 -63
- package/lib/model/strategy/adapter/promotion/evaluator.js +383 -232
- package/lib/model/strategy/adapter/promotion/examples.js +139 -159
- package/lib/model/strategy/adapter/promotion/index.js +1 -49
- package/lib/model/strategy/adapter/promotion/type.js +199 -35
- package/lib/model/strategy/adapter/type.js +4 -16
- package/lib/model/strategy/adapter/walletPass/evaluator.js +180 -152
- package/lib/model/strategy/adapter/walletPass/example.js +217 -190
- package/lib/model/strategy/adapter/walletPass/index.js +75 -51
- package/lib/model/strategy/adapter/walletPass/locales.js +36 -58
- package/lib/model/strategy/adapter/walletPass/type.js +4 -16
- package/lib/model/strategy/adapter/walletPass/utils.js +654 -402
- package/lib/model/strategy/engine.js +270 -168
- package/lib/model/strategy/index.js +49 -34
- package/lib/model/strategy/strategy-example.js +243 -239
- package/lib/model/strategy/type.js +100 -40
- package/lib/modules/Account/index.js +39 -53
- package/lib/modules/Account/types.js +20 -33
- package/lib/modules/AccountList/index.js +116 -154
- package/lib/modules/AccountList/types.js +30 -31
- package/lib/modules/AccountList/utils.js +18 -30
- package/lib/modules/BaseModule.d.ts +2 -2
- package/lib/modules/BaseModule.js +26 -49
- package/lib/modules/BookingContext/index.d.ts +48 -0
- package/lib/modules/BookingContext/index.js +390 -0
- package/lib/modules/BookingContext/types.d.ts +102 -0
- package/lib/modules/BookingContext/types.js +48 -0
- package/lib/modules/BookingContext/utils/buildCacheItemFromOrderLine.d.ts +16 -0
- package/lib/modules/BookingContext/utils/buildCacheItemFromOrderLine.js +286 -0
- package/lib/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.d.ts +8 -0
- package/lib/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.js +148 -0
- package/lib/modules/BookingContext/utils/cacheItemToBookingInput.d.ts +76 -0
- package/lib/modules/BookingContext/utils/cacheItemToBookingInput.js +242 -0
- package/lib/modules/BookingContext/utils/flexible.d.ts +28 -0
- package/lib/modules/BookingContext/utils/flexible.js +63 -0
- package/lib/modules/BookingContext/utils/formatResourceList.d.ts +8 -0
- package/lib/modules/BookingContext/utils/formatResourceList.js +35 -0
- package/lib/modules/BookingContext/utils/index.d.ts +11 -0
- package/lib/modules/BookingContext/utils/index.js +126 -0
- package/lib/modules/BookingContext/utils/noResource.d.ts +13 -0
- package/lib/modules/BookingContext/utils/noResource.js +78 -0
- package/lib/modules/BookingContext/utils/orderLineDisplay.d.ts +1 -0
- package/lib/modules/BookingContext/utils/orderLineDisplay.js +29 -0
- package/lib/modules/BookingContext/utils/productExtend.d.ts +72 -0
- package/lib/modules/BookingContext/utils/productExtend.js +330 -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 +24 -0
- package/lib/modules/BookingContext/utils/resources.d.ts +80 -0
- package/lib/modules/BookingContext/utils/resources.js +419 -0
- package/lib/modules/BookingContext/utils/serviceTimes.d.ts +55 -0
- package/lib/modules/BookingContext/utils/serviceTimes.js +161 -0
- package/lib/modules/BookingContext/utils/timeSlices.d.ts +42 -0
- package/lib/modules/BookingContext/utils/timeSlices.js +114 -0
- package/lib/modules/Cart/index.js +170 -124
- package/lib/modules/Cart/types.js +46 -51
- package/lib/modules/Cart/utils/cartAccount.js +40 -39
- package/lib/modules/Cart/utils/cartDate.js +56 -61
- package/lib/modules/Cart/utils/cartDiscount.js +28 -33
- package/lib/modules/Cart/utils/cartNote.js +27 -32
- package/lib/modules/Cart/utils/cartProduct.js +331 -244
- package/lib/modules/Cart/utils/cartRelationForms.js +29 -35
- package/lib/modules/Cart/utils/cartResource.js +72 -78
- package/lib/modules/Cart/utils/changePrice.js +37 -67
- package/lib/modules/Cart/utils/index.js +106 -48
- package/lib/modules/Customer/constants.js +13 -34
- package/lib/modules/Customer/index.d.ts +20 -0
- package/lib/modules/Customer/index.js +270 -154
- package/lib/modules/Customer/types.d.ts +2 -0
- package/lib/modules/Customer/types.js +38 -35
- package/lib/modules/Date/index.js +116 -115
- package/lib/modules/Date/types.js +16 -28
- package/lib/modules/Date/utils.js +174 -123
- package/lib/modules/Discount/index.d.ts +2 -1
- package/lib/modules/Discount/index.js +133 -113
- package/lib/modules/Discount/types.d.ts +1 -0
- package/lib/modules/Discount/types.js +9 -31
- package/lib/modules/Guests/index.js +30 -56
- package/lib/modules/Guests/types.js +23 -33
- package/lib/modules/Holder/index.js +209 -189
- package/lib/modules/Holder/types.js +4 -16
- package/lib/modules/Holder/utils.js +20 -49
- package/lib/modules/OpenData/index.d.ts +8 -0
- package/lib/modules/OpenData/index.js +81 -74
- package/lib/modules/OpenData/types.js +4 -16
- package/lib/modules/OpenData/utils.js +44 -78
- package/lib/modules/Order/index.d.ts +449 -24
- package/lib/modules/Order/index.js +3834 -489
- package/lib/modules/Order/types.d.ts +693 -88
- package/lib/modules/Order/types.js +78 -33
- package/lib/modules/Order/utils/bundleDiscountHydration.d.ts +5 -0
- package/lib/modules/Order/utils/bundleDiscountHydration.js +106 -0
- package/lib/modules/Order/utils/manualProductDiscount.d.ts +106 -0
- package/lib/modules/Order/utils/manualProductDiscount.js +207 -0
- package/lib/modules/Order/utils/orderCollectionIdentity.d.ts +53 -0
- package/lib/modules/Order/utils/orderCollectionIdentity.js +353 -0
- package/lib/modules/Order/utils.d.ts +167 -18
- package/lib/modules/Order/utils.js +1247 -345
- package/lib/modules/Payment/cash.js +20 -33
- package/lib/modules/Payment/cashRecommendationAlgorithm.js +145 -76
- package/lib/modules/Payment/eftpos.js +16 -30
- package/lib/modules/Payment/index.d.ts +10 -9
- package/lib/modules/Payment/index.js +542 -502
- package/lib/modules/Payment/mx51.js +1 -0
- package/lib/modules/Payment/types.d.ts +40 -16
- package/lib/modules/Payment/types.js +216 -107
- package/lib/modules/Payment/utils.d.ts +1 -1
- package/lib/modules/Payment/utils.js +53 -49
- package/lib/modules/Payment/walletpass.js +231 -203
- package/lib/modules/Product/index.js +51 -46
- package/lib/modules/Product/types.d.ts +29 -7
- package/lib/modules/Product/types.js +4 -16
- package/lib/modules/Product/utils.js +32 -33
- package/lib/modules/ProductList/index.d.ts +17 -13
- package/lib/modules/ProductList/index.js +160 -118
- package/lib/modules/ProductList/types.d.ts +17 -0
- package/lib/modules/ProductList/types.js +9 -31
- package/lib/modules/Quotation/index.d.ts +22 -2
- package/lib/modules/Quotation/index.js +123 -89
- package/lib/modules/Quotation/types.d.ts +19 -0
- package/lib/modules/Quotation/types.js +4 -16
- package/lib/modules/Resource/index.js +27 -59
- package/lib/modules/Resource/types.js +22 -32
- package/lib/modules/Resource/utils.js +30 -38
- package/lib/modules/ResourcePlanner/index.d.ts +24 -0
- package/lib/modules/ResourcePlanner/index.js +147 -0
- package/lib/modules/ResourcePlanner/planner.d.ts +14 -0
- package/lib/modules/ResourcePlanner/planner.js +895 -0
- package/lib/modules/ResourcePlanner/types.d.ts +227 -0
- package/lib/modules/ResourcePlanner/types.js +5 -0
- package/lib/modules/Rules/index.d.ts +8 -10
- package/lib/modules/Rules/index.js +1286 -894
- package/lib/modules/Rules/types.d.ts +14 -3
- package/lib/modules/Rules/types.js +17 -40
- package/lib/modules/SalesSummary/index.d.ts +23 -26
- package/lib/modules/SalesSummary/index.js +130 -71
- package/lib/modules/SalesSummary/types.d.ts +9 -1
- package/lib/modules/SalesSummary/types.js +4 -16
- package/lib/modules/SalesSummary/utils.d.ts +3 -22
- package/lib/modules/SalesSummary/utils.js +738 -250
- package/lib/modules/ScanOrderLogger/index.js +59 -79
- package/lib/modules/ScanOrderLogger/providers/feishu.js +54 -78
- package/lib/modules/ScanOrderLogger/providers/grafana.js +13 -36
- package/lib/modules/ScanOrderLogger/types.js +4 -16
- package/lib/modules/Schedule/getDateIsInSchedule.js +345 -171
- package/lib/modules/Schedule/index.d.ts +18 -5
- package/lib/modules/Schedule/index.js +139 -114
- package/lib/modules/Schedule/type.js +4 -16
- package/lib/modules/Schedule/types.d.ts +2 -0
- package/lib/modules/Schedule/types.js +4 -16
- package/lib/modules/Schedule/utils.js +433 -291
- package/lib/modules/Step/index.js +40 -52
- package/lib/modules/Step/tyeps.js +4 -16
- package/lib/modules/Summary/index.js +66 -70
- package/lib/modules/Summary/types.js +4 -16
- package/lib/modules/Summary/utils.js +782 -429
- package/lib/modules/SurchargeList/index.d.ts +18 -0
- package/lib/modules/SurchargeList/index.js +95 -0
- package/lib/modules/SurchargeList/types.d.ts +15 -0
- package/lib/modules/SurchargeList/types.js +5 -0
- package/lib/modules/index.d.ts +3 -0
- package/lib/modules/index.js +245 -57
- package/lib/plugins/app.d.ts +2 -0
- package/lib/plugins/app.js +4 -16
- package/lib/plugins/index.js +36 -25
- package/lib/plugins/request.d.ts +1 -0
- package/lib/plugins/request.js +137 -126
- package/lib/plugins/shopStore.js +4 -16
- package/lib/plugins/user.js +4 -16
- package/lib/plugins/window.js +171 -179
- package/lib/server/index.d.ts +462 -8
- package/lib/server/index.js +4668 -713
- package/lib/server/modules/floor-plan/index.d.ts +39 -0
- package/lib/server/modules/floor-plan/index.js +306 -0
- package/lib/server/modules/floor-plan/types.d.ts +43 -0
- package/lib/server/modules/floor-plan/types.js +19 -0
- package/lib/server/modules/index.d.ts +7 -2
- package/lib/server/modules/index.js +106 -59
- package/lib/server/modules/menu/index.js +146 -122
- package/lib/server/modules/menu/types.js +18 -31
- package/lib/server/modules/order/index.d.ts +207 -14
- package/lib/server/modules/order/index.js +1463 -316
- package/lib/server/modules/order/types.d.ts +76 -5
- package/lib/server/modules/order/types.js +117 -32
- package/lib/server/modules/order/utils/filterBookings.d.ts +7 -1
- package/lib/server/modules/order/utils/filterBookings.js +288 -146
- package/lib/server/modules/order/utils/filterOrders.js +318 -64
- package/lib/server/modules/payment/index.d.ts +28 -0
- package/lib/server/modules/payment/index.js +168 -0
- package/lib/server/modules/payment/types.d.ts +9 -0
- package/lib/server/modules/payment/types.js +5 -0
- package/lib/server/modules/products/index.d.ts +105 -14
- package/lib/server/modules/products/index.js +969 -383
- package/lib/server/modules/products/types.d.ts +34 -1
- package/lib/server/modules/products/types.js +44 -34
- package/lib/server/modules/quotation/index.d.ts +39 -0
- package/lib/server/modules/quotation/index.js +220 -77
- package/lib/server/modules/quotation/types.js +21 -31
- package/lib/server/modules/resource/index.d.ts +2 -3
- package/lib/server/modules/resource/index.js +269 -214
- package/lib/server/modules/resource/types.js +42 -33
- package/lib/server/modules/schedule/index.d.ts +6 -4
- package/lib/server/modules/schedule/index.js +158 -132
- package/lib/server/modules/schedule/types.js +14 -21
- package/lib/server/modules/schedule/utils.js +334 -163
- package/lib/server/test.json +713 -0
- package/lib/server/types.d.ts +2 -0
- package/lib/server/types.js +4 -16
- package/lib/server/utils/index.js +25 -23
- package/lib/server/utils/product.js +197 -140
- package/lib/server/utils/schedule.js +34 -41
- package/lib/server/utils/small-ticket.d.ts +71 -0
- package/lib/server/utils/small-ticket.js +926 -0
- package/lib/server/utils/time.js +40 -49
- package/lib/solution/BaseSales/index.d.ts +378 -0
- package/lib/solution/BaseSales/index.js +2367 -0
- package/lib/solution/BaseSales/types.d.ts +394 -0
- package/lib/solution/BaseSales/types.js +47 -0
- package/lib/solution/BaseSales/utils/cartPromotion.d.ts +287 -0
- package/lib/solution/BaseSales/utils/cartPromotion.js +1155 -0
- package/lib/solution/BaseSales/utils/parseSalesResponse.d.ts +144 -0
- package/lib/solution/BaseSales/utils/parseSalesResponse.js +140 -0
- package/lib/solution/BaseSales/utils/quotationPrice.d.ts +18 -0
- package/lib/solution/BaseSales/utils/quotationPrice.js +231 -0
- package/lib/solution/BaseSales/utils/transformBaseProductToOrderProduct.d.ts +63 -0
- package/lib/solution/BaseSales/utils/transformBaseProductToOrderProduct.js +215 -0
- package/lib/solution/BaseSales/utils.d.ts +40 -0
- package/lib/solution/BaseSales/utils.js +259 -0
- package/lib/solution/BookingByStep/index.js +1530 -1343
- package/lib/solution/BookingByStep/types.js +40 -99
- package/lib/solution/BookingByStep/utils/capacity.js +192 -160
- package/lib/solution/BookingByStep/utils/products.js +42 -52
- package/lib/solution/BookingByStep/utils/resources.js +527 -330
- package/lib/solution/BookingByStep/utils/stock.js +65 -44
- package/lib/solution/BookingByStep/utils/timeslots.js +129 -131
- package/lib/solution/BookingTicket/index.d.ts +393 -24
- package/lib/solution/BookingTicket/index.js +1459 -160
- package/lib/solution/BookingTicket/types.d.ts +191 -6
- package/lib/solution/BookingTicket/types.js +101 -66
- package/lib/solution/BookingTicket/utils/addProductDecision.d.ts +117 -0
- package/lib/solution/BookingTicket/utils/addProductDecision.js +353 -0
- package/lib/solution/BookingTicket/utils/addTimeAvailability.d.ts +35 -0
- package/lib/solution/BookingTicket/utils/addTimeAvailability.js +94 -0
- package/lib/solution/BookingTicket/utils/bookingStatus.d.ts +77 -0
- package/lib/solution/BookingTicket/utils/bookingStatus.js +136 -0
- package/lib/solution/BookingTicket/utils/cartView.d.ts +29 -0
- package/lib/solution/BookingTicket/utils/cartView.js +200 -0
- package/lib/solution/BookingTicket/utils/exampleData.d.ts +123 -0
- package/lib/solution/BookingTicket/utils/exampleData.js +185 -0
- package/lib/solution/BookingTicket/utils/orderCustomer.d.ts +4 -0
- package/lib/solution/BookingTicket/utils/orderCustomer.js +35 -0
- package/lib/solution/BookingTicket/utils/resolveBestAddTimePlan.d.ts +185 -0
- package/lib/solution/BookingTicket/utils/resolveBestAddTimePlan.js +387 -0
- package/lib/solution/BookingTicket/utils/scan/applyGlobalScan.d.ts +36 -0
- package/lib/solution/BookingTicket/utils/scan/applyGlobalScan.js +220 -0
- package/lib/solution/BookingTicket/utils/scan/cloudSearch.d.ts +4 -0
- package/lib/solution/BookingTicket/utils/scan/cloudSearch.js +85 -80
- package/lib/solution/BookingTicket/utils/scan/formatGlobalScan.d.ts +32 -0
- package/lib/solution/BookingTicket/utils/scan/formatGlobalScan.js +64 -0
- package/lib/solution/BookingTicket/utils/scan/handleScan.d.ts +3 -1
- package/lib/solution/BookingTicket/utils/scan/handleScan.js +84 -80
- package/lib/solution/BookingTicket/utils/scan/index.d.ts +5 -0
- package/lib/solution/BookingTicket/utils/scan/index.js +103 -95
- package/lib/solution/BookingTicket/utils/scan/scanCache.js +90 -43
- package/lib/solution/BookingTicket/utils/scan/scanProductValues.d.ts +21 -0
- package/lib/solution/BookingTicket/utils/scan/scanProductValues.js +115 -0
- package/lib/solution/BookingTicket/utils/sessionCatalogStale.d.ts +23 -0
- package/lib/solution/BookingTicket/utils/sessionCatalogStale.js +83 -0
- package/lib/solution/BuyTickets/index.js +67 -70
- package/lib/solution/BuyTickets/types.js +22 -38
- package/lib/solution/Checkout/index.d.ts +1 -0
- package/lib/solution/Checkout/index.js +1461 -1169
- package/lib/solution/Checkout/types.js +91 -61
- package/lib/solution/Checkout/utils/index.js +228 -159
- package/lib/solution/PlaceOrder/index.js +55 -0
- package/lib/solution/RegisterAndLogin/config.js +495 -470
- package/lib/solution/RegisterAndLogin/index.js +633 -630
- package/lib/solution/RegisterAndLogin/types.js +189 -76
- package/lib/solution/RegisterAndLogin/utils.js +183 -125
- package/lib/solution/Sales/index.d.ts +50 -5
- package/lib/solution/Sales/index.js +495 -220
- package/lib/solution/Sales/types.d.ts +26 -2
- package/lib/solution/Sales/types.js +27 -33
- package/lib/solution/ScanOrder/index.d.ts +27 -21
- package/lib/solution/ScanOrder/index.js +908 -904
- package/lib/solution/ScanOrder/types.d.ts +33 -11
- package/lib/solution/ScanOrder/types.js +33 -34
- package/lib/solution/ScanOrder/utils.d.ts +4 -1
- package/lib/solution/ScanOrder/utils.js +457 -344
- package/lib/solution/ShopDiscount/index.js +230 -236
- package/lib/solution/ShopDiscount/types.js +15 -37
- package/lib/solution/ShopDiscount/utils.js +309 -172
- package/lib/solution/UnifiedBookingSales/index.d.ts +183 -0
- package/lib/solution/UnifiedBookingSales/index.js +1050 -0
- package/lib/solution/UnifiedBookingSales/types.d.ts +143 -0
- package/lib/solution/UnifiedBookingSales/types.js +14 -0
- package/lib/solution/VenueBooking/index.d.ts +34 -20
- package/lib/solution/VenueBooking/index.js +982 -950
- package/lib/solution/VenueBooking/sales-section-4-annotated.json +0 -2
- package/lib/solution/VenueBooking/types.js +20 -40
- package/lib/solution/VenueBooking/utils/dateSummary.js +22 -54
- package/lib/solution/VenueBooking/utils/resource.js +31 -54
- package/lib/solution/VenueBooking/utils/slotMerge.d.ts +6 -0
- package/lib/solution/VenueBooking/utils/slotMerge.js +96 -108
- package/lib/solution/VenueBooking/utils/smartPricing.js +112 -100
- package/lib/solution/VenueBooking/utils/timeSlot.js +133 -132
- package/lib/solution/VenueBooking/utils.js +130 -67
- package/lib/solution/index.d.ts +2 -0
- package/lib/solution/index.js +124 -37
- package/lib/store/createStore.js +32 -29
- package/lib/types/index.d.ts +11 -1
- package/lib/types/index.js +4 -16
- package/lib/utils/task.js +36 -36
- package/lib/utils/watch.js +81 -47
- package/package.json +2 -1
- package/dist/solution/Checkout/appointmentDemo.json +0 -1
- package/lib/solution/Checkout/appointmentDemo.json +0 -1
|
@@ -18,6 +18,8 @@ function _asyncToGenerator(fn) { return function () { var self = this, args = ar
|
|
|
18
18
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
19
19
|
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
|
|
20
20
|
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
21
|
+
function _get() { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get.bind(); } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(arguments.length < 3 ? target : receiver); } return desc.value; }; } return _get.apply(this, arguments); }
|
|
22
|
+
function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }
|
|
21
23
|
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
|
|
22
24
|
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
|
23
25
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
|
|
@@ -116,7 +118,8 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
116
118
|
// 非表单类型 holder 视为匹配
|
|
117
119
|
if (((_discount$holder = discount.holder) === null || _discount$holder === void 0 ? void 0 : _discount$holder.holder_type) !== 'form') return true;
|
|
118
120
|
// 主预约holder, 目前(20251124)默认只考虑单个holder的情况
|
|
119
|
-
|
|
121
|
+
// 旧版 holders[0].form_record_id 新版 holders[0]
|
|
122
|
+
var orderHolderId = Array.isArray(holders) && holders.length > 0 ? holders[0].form_record_id || holders[0] : undefined;
|
|
120
123
|
var productHolderId = Array.isArray(product.holder_id) ? product.holder_id[0] : product.holder_id;
|
|
121
124
|
// 商品不需要选holder,则不对比holder,直接返回true,
|
|
122
125
|
if (!product.isNeedHolder) return true;
|
|
@@ -169,8 +172,8 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
169
172
|
var result = this.calcDiscount({
|
|
170
173
|
discountList: mergedDiscountList,
|
|
171
174
|
productList: _toConsumableArray(productList),
|
|
172
|
-
holders: holders,
|
|
173
175
|
orderTotalAmount: orderTotalAmount,
|
|
176
|
+
holders: holders,
|
|
174
177
|
isFormSubject: isFormSubject
|
|
175
178
|
}, {
|
|
176
179
|
scan: true
|
|
@@ -223,6 +226,21 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
223
226
|
});
|
|
224
227
|
}
|
|
225
228
|
|
|
229
|
+
/** 剔除指定 type/tag 的折扣项,保留手动改价(type=product) / 券等 */
|
|
230
|
+
}, {
|
|
231
|
+
key: "excludeDiscountListByType",
|
|
232
|
+
value: function excludeDiscountListByType(discountList, type) {
|
|
233
|
+
return (discountList || []).filter(function (item) {
|
|
234
|
+
return item.type !== type && item.tag !== type;
|
|
235
|
+
});
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
/** 手动改价场景:去掉 promotion,保留 type=product 等行内折扣 */
|
|
239
|
+
}, {
|
|
240
|
+
key: "resolveDiscountListForManualOverride",
|
|
241
|
+
value: function resolveDiscountListForManualOverride(discountList) {
|
|
242
|
+
return this.excludeDiscountListByType(discountList, 'promotion');
|
|
243
|
+
}
|
|
226
244
|
// 获取券不可用的原因
|
|
227
245
|
}, {
|
|
228
246
|
key: "getUnavailableReason",
|
|
@@ -299,12 +317,50 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
299
317
|
}, {
|
|
300
318
|
key: "calcDiscount",
|
|
301
319
|
value: function calcDiscount(_ref2, options) {
|
|
302
|
-
var
|
|
320
|
+
var _options$selectedList,
|
|
321
|
+
_this3 = this;
|
|
303
322
|
var discountList = _ref2.discountList,
|
|
304
323
|
productList = _ref2.productList,
|
|
305
324
|
holders = _ref2.holders,
|
|
306
325
|
isFormSubject = _ref2.isFormSubject,
|
|
307
326
|
orderTotalAmount = _ref2.orderTotalAmount;
|
|
327
|
+
var resolveIsFormSubject = function resolveIsFormSubject(product) {
|
|
328
|
+
return typeof isFormSubject === 'function' ? Boolean(isFormSubject(product)) : Boolean(isFormSubject);
|
|
329
|
+
};
|
|
330
|
+
|
|
331
|
+
// 识别出来是不是在编辑的界面里又新增了商品
|
|
332
|
+
// 这种情况下,如果有可用的优惠券,也会自动勾选上
|
|
333
|
+
var isEditModeAddNewProduct = productList.find(function (n) {
|
|
334
|
+
return n.booking_id;
|
|
335
|
+
}) && productList.find(function (n) {
|
|
336
|
+
return !n.booking_id;
|
|
337
|
+
});
|
|
338
|
+
var reapplyBookingDiscountProductUids = new Set(((options === null || options === void 0 ? void 0 : options.reapplyBookingDiscountProductUids) || []).filter(function (uid) {
|
|
339
|
+
return uid !== undefined && uid !== null && uid !== '';
|
|
340
|
+
}).map(String));
|
|
341
|
+
var getOriginProductUid = function getOriginProductUid(originProduct) {
|
|
342
|
+
var _originProduct$metada, _originProduct$metada2;
|
|
343
|
+
var uid = (_originProduct$metada = originProduct === null || originProduct === void 0 || (_originProduct$metada2 = originProduct.metadata) === null || _originProduct$metada2 === void 0 ? void 0 : _originProduct$metada2.unique_identification_number) !== null && _originProduct$metada !== void 0 ? _originProduct$metada : originProduct === null || originProduct === void 0 ? void 0 : originProduct.unique_identification_number;
|
|
344
|
+
if (uid === undefined || uid === null || uid === '') return undefined;
|
|
345
|
+
return String(uid);
|
|
346
|
+
};
|
|
347
|
+
var shouldReapplyBookingDiscount = function shouldReapplyBookingDiscount(originProduct, selectedDiscount) {
|
|
348
|
+
if (!selectedDiscount) return false;
|
|
349
|
+
var uid = getOriginProductUid(originProduct);
|
|
350
|
+
if (!uid || !reapplyBookingDiscountProductUids.has(uid)) return false;
|
|
351
|
+
var discountType = selectedDiscount.tag || selectedDiscount.type;
|
|
352
|
+
return selectedDiscount.isEditMode === true && selectedDiscount.isSelected === true && ['good_pass', 'discount_card', 'product_discount_card'].includes(discountType);
|
|
353
|
+
};
|
|
354
|
+
var resolveReapplyEditModeDiscountPercent = function resolveReapplyEditModeDiscountPercent(originProduct, selectedDiscount) {
|
|
355
|
+
var _discount2;
|
|
356
|
+
if (!shouldReapplyBookingDiscount(originProduct, selectedDiscount)) return undefined;
|
|
357
|
+
var discountType = (selectedDiscount === null || selectedDiscount === void 0 ? void 0 : selectedDiscount.tag) || (selectedDiscount === null || selectedDiscount === void 0 ? void 0 : selectedDiscount.type);
|
|
358
|
+
if (discountType !== 'discount_card' && discountType !== 'product_discount_card') {
|
|
359
|
+
return undefined;
|
|
360
|
+
}
|
|
361
|
+
var percent = Number((_discount2 = selectedDiscount.discount) === null || _discount2 === void 0 ? void 0 : _discount2.percent);
|
|
362
|
+
return Number.isFinite(percent) ? percent : undefined;
|
|
363
|
+
};
|
|
308
364
|
var editModeDiscount = [];
|
|
309
365
|
var addModeDiscount = [];
|
|
310
366
|
discountList.forEach(function (discount) {
|
|
@@ -333,11 +389,23 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
333
389
|
}
|
|
334
390
|
});
|
|
335
391
|
}
|
|
392
|
+
var hasDiscountInput = editModeDiscount.length > 0 || addModeDiscount.length > 0 || Boolean(options === null || options === void 0 ? void 0 : options.discountId) || Boolean(options === null || options === void 0 || (_options$selectedList = options.selectedList) === null || _options$selectedList === void 0 ? void 0 : _options$selectedList.length) || Boolean(options === null || options === void 0 ? void 0 : options.scan);
|
|
393
|
+
if (!hasDiscountInput) {
|
|
394
|
+
return {
|
|
395
|
+
discountList: discountList,
|
|
396
|
+
productList: productList
|
|
397
|
+
};
|
|
398
|
+
}
|
|
399
|
+
var canUseEditModeDiscountForReapply = function canUseEditModeDiscountForReapply(discount) {
|
|
400
|
+
var discountType = discount.tag || discount.type;
|
|
401
|
+
return reapplyBookingDiscountProductUids.size > 0 && discount.isEditMode === true && discount.isSelected === true && ['good_pass', 'discount_card', 'product_discount_card'].includes(discountType);
|
|
402
|
+
};
|
|
336
403
|
|
|
337
|
-
// 过滤掉手动取消false
|
|
338
|
-
|
|
404
|
+
// 过滤掉手动取消false的优惠券,但仅用于应用优惠逻辑。
|
|
405
|
+
// Change time 重报价需要把已选编辑态折扣卡重新放入候选,再由目标 uid 限定作用范围。
|
|
406
|
+
var filteredDiscountList = [].concat(_toConsumableArray(addModeDiscount.filter(function (discount) {
|
|
339
407
|
return !discount.isManualSelect;
|
|
340
|
-
});
|
|
408
|
+
})), _toConsumableArray(editModeDiscount.filter(canUseEditModeDiscountForReapply)));
|
|
341
409
|
|
|
342
410
|
// 🔥 扁平化商品列表:将 bundle 子商品展开为虚拟商品
|
|
343
411
|
var flattenProductsWithBundle = function flattenProductsWithBundle(productList) {
|
|
@@ -518,14 +586,6 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
518
586
|
// 🔥 扁平化商品列表(包含主商品和bundle子商品)
|
|
519
587
|
var flattenedList = flattenProductsWithBundle(productList);
|
|
520
588
|
|
|
521
|
-
// 识别出来是不是在编辑的界面里又新增了商品
|
|
522
|
-
// 这种情况下,如果有可用的优惠券,也会自动勾选上
|
|
523
|
-
var isEditModeAddNewProduct = flattenedList.find(function (n) {
|
|
524
|
-
return n.booking_id;
|
|
525
|
-
}) && flattenedList.find(function (n) {
|
|
526
|
-
return !n.booking_id;
|
|
527
|
-
});
|
|
528
|
-
|
|
529
589
|
// 对扁平化后的列表按价格降序排序(用于应用优惠券时优先选择高价商品)
|
|
530
590
|
var sortedFlattenedList = flattenedList.sort(function (a, b) {
|
|
531
591
|
var _ref3, _a$original_price, _ref4, _b$original_price;
|
|
@@ -784,7 +844,6 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
784
844
|
}
|
|
785
845
|
}
|
|
786
846
|
});
|
|
787
|
-
console.log('occupiedItems', occupiedItems, 'orderLevelDiscountApplicableItems', orderLevelDiscountApplicableItems);
|
|
788
847
|
|
|
789
848
|
// 🔥 第三步:识别 order_level 折扣卡并预计算分摊(排除被其他专属折扣卡占用的商品)
|
|
790
849
|
sortedDiscountList.forEach(function (discount) {
|
|
@@ -884,7 +943,7 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
884
943
|
// 拿到discount配置的holder信息 product信息 product.holder 加在 isLimitedProduct
|
|
885
944
|
var _tempVar = (flatItem === null || flatItem === void 0 ? void 0 : flatItem.type) === 'bundle' ? flatItem === null || flatItem === void 0 ? void 0 : flatItem.parentProduct : flatItem === null || flatItem === void 0 ? void 0 : flatItem.product;
|
|
886
945
|
var isHolderMatch = _this3.checkHolderMatch(discount, {
|
|
887
|
-
isNeedHolder:
|
|
946
|
+
isNeedHolder: resolveIsFormSubject(_tempVar) && !(_tempVar !== null && _tempVar !== void 0 && _tempVar.isNormalProduct),
|
|
888
947
|
holder_id: (_tempVar === null || _tempVar === void 0 ? void 0 : _tempVar.holder_id) || product.holder_id
|
|
889
948
|
}, holders);
|
|
890
949
|
var timeLimit = true;
|
|
@@ -927,7 +986,7 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
927
986
|
title: discount.format_title,
|
|
928
987
|
original_amount: product.price || product.origin_total,
|
|
929
988
|
pre_value: discount.par_value,
|
|
930
|
-
product_id: originProduct.id,
|
|
989
|
+
product_id: originProduct.id || originProduct.product_id,
|
|
931
990
|
discount_product_id: discount.product_id
|
|
932
991
|
},
|
|
933
992
|
metadata: {
|
|
@@ -1002,7 +1061,7 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
1002
1061
|
// 然后再处理应用哪些优惠券,此时只考虑filteredDiscountList中的优惠券
|
|
1003
1062
|
// 🔥 使用扁平化后的列表进行处理
|
|
1004
1063
|
sortedFlattenedList.forEach(function (flatItem, index) {
|
|
1005
|
-
var _product10, _product$discount_lis2, _product11, _selectedDiscount$con;
|
|
1064
|
+
var _product10, _originProduct, _originProduct2, _originProduct3, _product$discount_lis2, _product11, _selectedDiscount$con;
|
|
1006
1065
|
// 获取商品数据
|
|
1007
1066
|
var product, originProduct;
|
|
1008
1067
|
if (flatItem.type === 'main') {
|
|
@@ -1026,11 +1085,16 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
1026
1085
|
};
|
|
1027
1086
|
originProduct = flatItem.originProduct;
|
|
1028
1087
|
}
|
|
1088
|
+
var isPersistedProduct = ((_product10 = product) === null || _product10 === void 0 ? void 0 : _product10.booking_id) || ((_originProduct = originProduct) === null || _originProduct === void 0 ? void 0 : _originProduct.order_detail_id) || ((_originProduct2 = originProduct) === null || _originProduct2 === void 0 ? void 0 : _originProduct2.orderDetailId) || ((_originProduct3 = originProduct) === null || _originProduct3 === void 0 ? void 0 : _originProduct3.booking_id);
|
|
1089
|
+
var hasExistingWalletDiscount = ((_product$discount_lis2 = product.discount_list) === null || _product$discount_lis2 === void 0 ? void 0 : _product$discount_lis2.length) && ((_product11 = product) === null || _product11 === void 0 || (_product11 = _product11.discount_list) === null || _product11 === void 0 ? void 0 : _product11.every(function (discount) {
|
|
1090
|
+
var _discount$id, _discount$discount4;
|
|
1091
|
+
var discountIdentity = (_discount$id = discount.id) !== null && _discount$id !== void 0 ? _discount$id : (_discount$discount4 = discount.discount) === null || _discount$discount4 === void 0 ? void 0 : _discount$discount4.resource_id;
|
|
1092
|
+
var discountType = discount.tag || discount.type;
|
|
1093
|
+
return Boolean(discountIdentity && ['good_pass', 'discount_card', 'product_discount_card'].includes(discountType));
|
|
1094
|
+
}));
|
|
1029
1095
|
|
|
1030
|
-
//
|
|
1031
|
-
if (
|
|
1032
|
-
return discount.id && ['good_pass', 'discount_card', 'product_discount_card'].includes(discount.tag || discount.type);
|
|
1033
|
-
})) {
|
|
1096
|
+
// 已持久化且已有钱包券/折扣卡的商品行跳过,保留后端历史折扣结果。
|
|
1097
|
+
if (isPersistedProduct && hasExistingWalletDiscount) {
|
|
1034
1098
|
if (flatItem.type === 'main') {
|
|
1035
1099
|
processedProductsMap.set(product._id, [originProduct]);
|
|
1036
1100
|
} else {
|
|
@@ -1046,7 +1110,14 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
1046
1110
|
var _product$discount_lis3, _product$discount_lis4;
|
|
1047
1111
|
// 🔥 检查策略可用性(针对 good_pass 和折扣卡)
|
|
1048
1112
|
var discountType = discount.tag || discount.type;
|
|
1049
|
-
|
|
1113
|
+
var currentOriginUid = getOriginProductUid(originProduct);
|
|
1114
|
+
var isReapplyEditModeDiscountForProduct = discount.isEditMode && reapplyBookingDiscountProductUids.size > 0 && currentOriginUid && reapplyBookingDiscountProductUids.has(String(currentOriginUid)) && discount.isSelected === true;
|
|
1115
|
+
if (discount.isEditMode && reapplyBookingDiscountProductUids.size > 0) {
|
|
1116
|
+
var uid = currentOriginUid;
|
|
1117
|
+
if (!uid || !reapplyBookingDiscountProductUids.has(uid)) return false;
|
|
1118
|
+
if (!discount.isSelected) return false;
|
|
1119
|
+
}
|
|
1120
|
+
if (['good_pass', 'discount_card', 'product_discount_card'].includes(discountType) && !isReapplyEditModeDiscountForProduct) {
|
|
1050
1121
|
var _discount$config2;
|
|
1051
1122
|
// 如果策略检查后没有config,说明不可用
|
|
1052
1123
|
if (discount.config === undefined || !(discount !== null && discount !== void 0 && (_discount$config2 = discount.config) !== null && _discount$config2 !== void 0 && _discount$config2.isAvailable)) {
|
|
@@ -1096,7 +1167,7 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
1096
1167
|
// 拿到discount配置的holder信息 product信息 product.holder 不可用return false
|
|
1097
1168
|
var _tempVar = (flatItem === null || flatItem === void 0 ? void 0 : flatItem.type) === 'bundle' ? flatItem === null || flatItem === void 0 ? void 0 : flatItem.parentProduct : flatItem === null || flatItem === void 0 ? void 0 : flatItem.product;
|
|
1098
1169
|
var isHolderMatch = _this3.checkHolderMatch(discount, {
|
|
1099
|
-
isNeedHolder:
|
|
1170
|
+
isNeedHolder: resolveIsFormSubject(_tempVar) && !(_tempVar !== null && _tempVar !== void 0 && _tempVar.isNormalProduct),
|
|
1100
1171
|
holder_id: (_tempVar === null || _tempVar === void 0 ? void 0 : _tempVar.holder_id) || product.holder_id
|
|
1101
1172
|
}, holders);
|
|
1102
1173
|
// 如果 holder 不匹配,则不适用
|
|
@@ -1139,12 +1210,14 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
1139
1210
|
// 如果是手动折扣,则不适用优惠券
|
|
1140
1211
|
var isManualDiscount = false;
|
|
1141
1212
|
if (flatItem.type === 'main') {
|
|
1142
|
-
var _product$discount_lis5, _product12, _product12$every;
|
|
1213
|
+
var _product$discount_lis5, _product$discount_lis6, _product12, _product12$every;
|
|
1143
1214
|
// 主商品:判断自身是否手动折扣
|
|
1144
|
-
isManualDiscount = typeof product.isManualDiscount === 'boolean' ? product.isManualDiscount :
|
|
1215
|
+
isManualDiscount = typeof product.isManualDiscount === 'boolean' ? product.isManualDiscount : ((_product$discount_lis5 = product.discount_list) === null || _product$discount_lis5 === void 0 ? void 0 : _product$discount_lis5.some(function (item) {
|
|
1216
|
+
return item.type === 'product';
|
|
1217
|
+
})) || product.total != product.origin_total && (product.bundle || []).every(function (item) {
|
|
1145
1218
|
var _ref11;
|
|
1146
1219
|
return !((_ref11 = item.discount_list || []) !== null && _ref11 !== void 0 && _ref11.length);
|
|
1147
|
-
}) && (!((_product$
|
|
1220
|
+
}) && (!((_product$discount_lis6 = product.discount_list) !== null && _product$discount_lis6 !== void 0 && _product$discount_lis6.length) || ((_product12 = product) === null || _product12 === void 0 || (_product12 = _product12.discount_list) === null || _product12 === void 0 || (_product12$every = _product12.every) === null || _product12$every === void 0 ? void 0 : _product12$every.call(_product12, function (item) {
|
|
1148
1221
|
return item.type === 'product';
|
|
1149
1222
|
})));
|
|
1150
1223
|
if (product.inPromotion) {
|
|
@@ -1154,11 +1227,13 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
1154
1227
|
// bundle子商品:判断父主商品是否手动折扣
|
|
1155
1228
|
var parentProduct = flatItem.parentProduct;
|
|
1156
1229
|
if (parentProduct) {
|
|
1157
|
-
var _parentProduct$discou, _parentProduct$discou2, _parentProduct$discou3;
|
|
1158
|
-
isManualDiscount = typeof parentProduct.isManualDiscount === 'boolean' ? parentProduct.isManualDiscount :
|
|
1230
|
+
var _parentProduct$discou, _parentProduct$discou2, _parentProduct$discou3, _parentProduct$discou4;
|
|
1231
|
+
isManualDiscount = typeof parentProduct.isManualDiscount === 'boolean' ? parentProduct.isManualDiscount : ((_parentProduct$discou = parentProduct.discount_list) === null || _parentProduct$discou === void 0 ? void 0 : _parentProduct$discou.some(function (item) {
|
|
1232
|
+
return item.type === 'product';
|
|
1233
|
+
})) || parentProduct.total != parentProduct.origin_total && (parentProduct.bundle || []).every(function (item) {
|
|
1159
1234
|
var _ref12;
|
|
1160
1235
|
return !((_ref12 = item.discount_list || []) !== null && _ref12 !== void 0 && _ref12.length);
|
|
1161
|
-
}) && (!((_parentProduct$
|
|
1236
|
+
}) && (!((_parentProduct$discou2 = parentProduct.discount_list) !== null && _parentProduct$discou2 !== void 0 && _parentProduct$discou2.length) || (parentProduct === null || parentProduct === void 0 || (_parentProduct$discou3 = parentProduct.discount_list) === null || _parentProduct$discou3 === void 0 || (_parentProduct$discou4 = _parentProduct$discou3.every) === null || _parentProduct$discou4 === void 0 ? void 0 : _parentProduct$discou4.call(_parentProduct$discou3, function (item) {
|
|
1162
1237
|
return item.type === 'product';
|
|
1163
1238
|
})));
|
|
1164
1239
|
}
|
|
@@ -1166,9 +1241,9 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
1166
1241
|
|
|
1167
1242
|
// 勾选时覆盖手动折扣
|
|
1168
1243
|
if (options !== null && options !== void 0 && options.discountId) {
|
|
1169
|
-
var _product$
|
|
1244
|
+
var _product$discount_lis7;
|
|
1170
1245
|
// 主商品:检查自己的 discount_list
|
|
1171
|
-
if (flatItem.type === 'main' && (_product$
|
|
1246
|
+
if (flatItem.type === 'main' && (_product$discount_lis7 = product.discount_list) !== null && _product$discount_lis7 !== void 0 && _product$discount_lis7.some(function (item) {
|
|
1172
1247
|
var _item$discount;
|
|
1173
1248
|
return ((_item$discount = item.discount) === null || _item$discount === void 0 ? void 0 : _item$discount.resource_id) === options.discountId;
|
|
1174
1249
|
})) {
|
|
@@ -1176,8 +1251,8 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
1176
1251
|
}
|
|
1177
1252
|
// bundle子商品:检查自己的 discount_list 或父主商品的 discount_list
|
|
1178
1253
|
if (flatItem.type === 'bundle') {
|
|
1179
|
-
var _product$
|
|
1180
|
-
if ((_product$
|
|
1254
|
+
var _product$discount_lis8, _flatItem$parentProdu7;
|
|
1255
|
+
if ((_product$discount_lis8 = product.discount_list) !== null && _product$discount_lis8 !== void 0 && _product$discount_lis8.some(function (item) {
|
|
1181
1256
|
var _item$discount2;
|
|
1182
1257
|
return ((_item$discount2 = item.discount) === null || _item$discount2 === void 0 ? void 0 : _item$discount2.resource_id) === options.discountId;
|
|
1183
1258
|
}) || (_flatItem$parentProdu7 = flatItem.parentProduct) !== null && _flatItem$parentProdu7 !== void 0 && (_flatItem$parentProdu7 = _flatItem$parentProdu7.discount_list) !== null && _flatItem$parentProdu7 !== void 0 && _flatItem$parentProdu7.some(function (item) {
|
|
@@ -1189,11 +1264,11 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
1189
1264
|
}
|
|
1190
1265
|
}
|
|
1191
1266
|
if (options !== null && options !== void 0 && options.selectedList) {
|
|
1192
|
-
var _product$
|
|
1267
|
+
var _product$discount_lis9;
|
|
1193
1268
|
// 主商品:检查自己的 discount_list
|
|
1194
|
-
if (flatItem.type === 'main' && (_product$
|
|
1195
|
-
var _options$
|
|
1196
|
-
return options === null || options === void 0 || (_options$
|
|
1269
|
+
if (flatItem.type === 'main' && (_product$discount_lis9 = product.discount_list) !== null && _product$discount_lis9 !== void 0 && _product$discount_lis9.some(function (item) {
|
|
1270
|
+
var _options$selectedList2;
|
|
1271
|
+
return options === null || options === void 0 || (_options$selectedList2 = options.selectedList) === null || _options$selectedList2 === void 0 ? void 0 : _options$selectedList2.some(function (n) {
|
|
1197
1272
|
var _item$discount4;
|
|
1198
1273
|
return n.discountId === ((_item$discount4 = item.discount) === null || _item$discount4 === void 0 ? void 0 : _item$discount4.resource_id);
|
|
1199
1274
|
});
|
|
@@ -1202,16 +1277,16 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
1202
1277
|
}
|
|
1203
1278
|
// bundle子商品:检查自己的 discount_list 或父主商品的 discount_list
|
|
1204
1279
|
if (flatItem.type === 'bundle') {
|
|
1205
|
-
var _product$
|
|
1206
|
-
if ((_product$
|
|
1207
|
-
var _options$
|
|
1208
|
-
return options === null || options === void 0 || (_options$
|
|
1280
|
+
var _product$discount_lis10, _flatItem$parentProdu8;
|
|
1281
|
+
if ((_product$discount_lis10 = product.discount_list) !== null && _product$discount_lis10 !== void 0 && _product$discount_lis10.some(function (item) {
|
|
1282
|
+
var _options$selectedList3;
|
|
1283
|
+
return options === null || options === void 0 || (_options$selectedList3 = options.selectedList) === null || _options$selectedList3 === void 0 ? void 0 : _options$selectedList3.some(function (n) {
|
|
1209
1284
|
var _item$discount5;
|
|
1210
1285
|
return n.discountId === ((_item$discount5 = item.discount) === null || _item$discount5 === void 0 ? void 0 : _item$discount5.resource_id);
|
|
1211
1286
|
});
|
|
1212
1287
|
}) || (_flatItem$parentProdu8 = flatItem.parentProduct) !== null && _flatItem$parentProdu8 !== void 0 && (_flatItem$parentProdu8 = _flatItem$parentProdu8.discount_list) !== null && _flatItem$parentProdu8 !== void 0 && _flatItem$parentProdu8.some(function (item) {
|
|
1213
|
-
var _options$
|
|
1214
|
-
return options === null || options === void 0 || (_options$
|
|
1288
|
+
var _options$selectedList4;
|
|
1289
|
+
return options === null || options === void 0 || (_options$selectedList4 = options.selectedList) === null || _options$selectedList4 === void 0 ? void 0 : _options$selectedList4.some(function (n) {
|
|
1215
1290
|
var _item$discount6;
|
|
1216
1291
|
return n.discountId === ((_item$discount6 = item.discount) === null || _item$discount6 === void 0 ? void 0 : _item$discount6.resource_id);
|
|
1217
1292
|
});
|
|
@@ -1247,7 +1322,7 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
1247
1322
|
price: product.price,
|
|
1248
1323
|
options: restoredOptions
|
|
1249
1324
|
}), {}, {
|
|
1250
|
-
discount_list: _this3.filterDiscountListByType(product.discount_list, 'promotion')
|
|
1325
|
+
discount_list: isManualDiscount ? _this3.resolveDiscountListForManualOverride(product.discount_list) : _this3.filterDiscountListByType(product.discount_list, 'promotion')
|
|
1251
1326
|
}))]);
|
|
1252
1327
|
} else {
|
|
1253
1328
|
var _ref13, _product$_promotion$f, _product13, _product$origin_total, _product$price2;
|
|
@@ -1265,26 +1340,26 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
1265
1340
|
} : {
|
|
1266
1341
|
_id: product._id.split('___')[0] + '___' + index,
|
|
1267
1342
|
total: total,
|
|
1268
|
-
original_price: product.original_price,
|
|
1269
1343
|
price: product.price,
|
|
1270
1344
|
main_product_selling_price: main_product_selling_price,
|
|
1271
1345
|
options: restoredOptions
|
|
1272
1346
|
}), {}, {
|
|
1273
|
-
discount_list: _this3.filterDiscountListByType(product.discount_list, 'promotion')
|
|
1347
|
+
discount_list: isManualDiscount ? _this3.resolveDiscountListForManualOverride(product.discount_list) : _this3.filterDiscountListByType(product.discount_list, 'promotion')
|
|
1274
1348
|
}))]);
|
|
1275
1349
|
}
|
|
1276
1350
|
} else {
|
|
1277
|
-
var _flatItem$bundleItem8;
|
|
1351
|
+
var _flatItem$bundleItem8, _flatItem$bundleItem9;
|
|
1278
1352
|
// bundle子商品:保存到扁平化Map
|
|
1279
1353
|
processedFlatItemsMap.set(flatItem._id, [_objectSpread(_objectSpread({}, flatItem), {}, {
|
|
1280
|
-
discount_list: _this3.
|
|
1354
|
+
discount_list: isManualDiscount ? _this3.resolveDiscountListForManualOverride(((_flatItem$bundleItem8 = flatItem.bundleItem) === null || _flatItem$bundleItem8 === void 0 ? void 0 : _flatItem$bundleItem8.discount_list) || []) : _this3.filterDiscountListByType(((_flatItem$bundleItem9 = flatItem.bundleItem) === null || _flatItem$bundleItem9 === void 0 ? void 0 : _flatItem$bundleItem9.discount_list) || [], 'promotion'),
|
|
1281
1355
|
price: isManualDiscount ? flatItem.bundleItem.price : flatItem.bundleItem.original_price,
|
|
1282
1356
|
processed: true
|
|
1283
1357
|
})]);
|
|
1284
1358
|
}
|
|
1285
1359
|
return;
|
|
1286
1360
|
}
|
|
1287
|
-
|
|
1361
|
+
var shouldReapplyBookingDiscountForProduct = shouldReapplyBookingDiscount(originProduct, selectedDiscount);
|
|
1362
|
+
if (applicableDiscounts.length && product.booking_id && typeof selectedDiscount.isManualSelect === 'undefined' && !(options !== null && options !== void 0 && options.scan) && !isEditModeAddNewProduct && !shouldReapplyBookingDiscountForProduct) {
|
|
1288
1363
|
return;
|
|
1289
1364
|
}
|
|
1290
1365
|
|
|
@@ -1343,7 +1418,7 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
1343
1418
|
}));
|
|
1344
1419
|
}
|
|
1345
1420
|
for (var i = 0; i < splitCount; i++) {
|
|
1346
|
-
var
|
|
1421
|
+
var _originProduct4, _selectedDiscount$con2, _product$options, _product$options2, _selectedDiscount$met, _selectedDiscount$met2, _reapplyDiscountPerce;
|
|
1347
1422
|
// 商品券:每个拆分商品使用不同的商品券(从 applicableDiscounts 按索引取)
|
|
1348
1423
|
// 折扣卡:所有拆分商品使用同一张折扣卡(selectedDiscountCard 或 applicableDiscounts[0])
|
|
1349
1424
|
var currentSelectedDiscount = isGoodPass ? selectedDiscountCard || applicableDiscounts[i] : selectedDiscountCard || applicableDiscounts[0];
|
|
@@ -1371,7 +1446,7 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
1371
1446
|
productOriginTotal = product.origin_total;
|
|
1372
1447
|
}
|
|
1373
1448
|
// 如果originProduct?._productInit?.original_price为 0,product.origin_total可能为空,此时取 product.total
|
|
1374
|
-
if (Number(((
|
|
1449
|
+
if (Number(((_originProduct4 = originProduct) === null || _originProduct4 === void 0 || (_originProduct4 = _originProduct4._productInit) === null || _originProduct4 === void 0 ? void 0 : _originProduct4.original_price) || 0) > 0 && product.origin_total && product.total && product.origin_total !== product.total) {
|
|
1375
1450
|
productOriginTotal = product.total;
|
|
1376
1451
|
}
|
|
1377
1452
|
|
|
@@ -1388,18 +1463,25 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
1388
1463
|
var productDiscountDifference = void 0;
|
|
1389
1464
|
var discountedOptions = product.options;
|
|
1390
1465
|
var optionDiscountAmount = 0;
|
|
1466
|
+
var reapplyDiscountPercent = void 0;
|
|
1391
1467
|
if (isOrderLevel && productAllocation) {
|
|
1392
1468
|
// order_level:使用预计算的分摊金额
|
|
1393
1469
|
amount = productAllocation.discountAmount;
|
|
1394
1470
|
productDiscountDifference = productAllocation.difference;
|
|
1395
1471
|
mainProductSellingPrice = Math.max(new Decimal(product.price).minus(amount).toNumber(), 0);
|
|
1472
|
+
} else if (resolveReapplyEditModeDiscountPercent(originProduct, selectedDiscount) !== undefined) {
|
|
1473
|
+
// Change time 重套编辑态折扣卡时,历史 par_value 不是运行时折扣口径,优先使用后端快照里的 percent。
|
|
1474
|
+
var percent = resolveReapplyEditModeDiscountPercent(originProduct, selectedDiscount);
|
|
1475
|
+
reapplyDiscountPercent = new Decimal(percent).toFixed(2);
|
|
1476
|
+
mainProductSellingPrice = new Decimal(product.price || 0).mul(new Decimal(100).minus(percent)).div(100).toDecimalPlaces(2).toNumber();
|
|
1477
|
+
amount = new Decimal(product.price).minus(mainProductSellingPrice).toNumber();
|
|
1396
1478
|
} else {
|
|
1397
1479
|
// item_level 或其他类型:使用原有逻辑
|
|
1398
|
-
mainProductSellingPrice = getDiscountAmount(
|
|
1480
|
+
mainProductSellingPrice = getDiscountAmount(selectedDiscount, product.price, product.price);
|
|
1399
1481
|
amount = new Decimal(product.price).minus(new Decimal(mainProductSellingPrice)).toNumber();
|
|
1400
1482
|
}
|
|
1401
1483
|
if (isDeductOptionPrice && (_product$options = product.options) !== null && _product$options !== void 0 && _product$options.length) {
|
|
1402
|
-
var optionResult = applyDiscountToOptions(product.options,
|
|
1484
|
+
var optionResult = applyDiscountToOptions(product.options, selectedDiscount);
|
|
1403
1485
|
discountedOptions = optionResult.discountedOptions;
|
|
1404
1486
|
optionDiscountAmount = optionResult.optionDiscountAmount;
|
|
1405
1487
|
}
|
|
@@ -1412,9 +1494,8 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
1412
1494
|
// discount_list.amount / fixed_amount:行级总优惠 = 主商品优惠 + option 优惠(与 total 变化一致)
|
|
1413
1495
|
var mainProductDiscountAmount = amount;
|
|
1414
1496
|
var lineDiscountAmount = new Decimal(mainProductDiscountAmount).plus(optionDiscountAmount).toNumber();
|
|
1415
|
-
var currentDiscountType = currentSelectedDiscount.tag === 'product_discount_card' ? 'discount_card' : currentSelectedDiscount.tag;
|
|
1416
1497
|
var _discountType = selectedDiscount.tag || selectedDiscount.type;
|
|
1417
|
-
var currentIsGoodPass =
|
|
1498
|
+
var currentIsGoodPass = _discountType === 'good_pass';
|
|
1418
1499
|
var discountDetail = {
|
|
1419
1500
|
amount: lineDiscountAmount,
|
|
1420
1501
|
type: selectedDiscount.tag === 'product_discount_card' ? 'discount_card' : _discountType,
|
|
@@ -1425,9 +1506,9 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
1425
1506
|
resource_id: selectedDiscount.id,
|
|
1426
1507
|
title: selectedDiscount.format_title,
|
|
1427
1508
|
original_amount: product.price,
|
|
1428
|
-
product_id: originProduct.id,
|
|
1429
|
-
percent:
|
|
1430
|
-
discount_product_id:
|
|
1509
|
+
product_id: originProduct.id || originProduct.product_id,
|
|
1510
|
+
percent: (_reapplyDiscountPerce = reapplyDiscountPercent) !== null && _reapplyDiscountPerce !== void 0 ? _reapplyDiscountPerce : selectedDiscount.par_value,
|
|
1511
|
+
discount_product_id: selectedDiscount.product_id
|
|
1431
1512
|
},
|
|
1432
1513
|
// 前端使用的num数量,为了计算优惠金额(拆分时为1)
|
|
1433
1514
|
_num: isNeedSplit ? 1 : product.num,
|
|
@@ -1444,7 +1525,7 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
1444
1525
|
})
|
|
1445
1526
|
};
|
|
1446
1527
|
appliedProducts.push(discountDetail);
|
|
1447
|
-
appliedDiscountProducts.set(
|
|
1528
|
+
appliedDiscountProducts.set(selectedDiscount.id, appliedProducts);
|
|
1448
1529
|
|
|
1449
1530
|
// 记录应用了优惠券的商品
|
|
1450
1531
|
// 后续更新价格改为 getProductTotalPrice getProductOriginTotalPrice逻辑
|
|
@@ -1452,7 +1533,7 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
1452
1533
|
arr.push(_this3.hooks.setProduct(originProduct, {
|
|
1453
1534
|
discount_list: [discountDetail],
|
|
1454
1535
|
// good_pass:主商品价以折后价为准;勿用 product.price - amount(amount 含 option 优惠时会算错)
|
|
1455
|
-
price:
|
|
1536
|
+
price: isGoodPass ? mainProductSellingPrice : product.price,
|
|
1456
1537
|
quantity: isNeedSplit ? 1 : product.quantity,
|
|
1457
1538
|
origin_total: getProductOriginTotalPrice({
|
|
1458
1539
|
product: {
|
|
@@ -1513,6 +1594,7 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
1513
1594
|
// 计算折扣后的价格(使用 getDiscountAmount,内部已处理 maxDeductionAmount)
|
|
1514
1595
|
var discountedPrice = getDiscountAmount(currentBundleDiscount, product.origin_total, product.origin_total);
|
|
1515
1596
|
var bundleDiscountAmount = new Decimal(product.origin_total || 0).minus(discountedPrice).toNumber();
|
|
1597
|
+
debugger;
|
|
1516
1598
|
|
|
1517
1599
|
// 确定折扣类型
|
|
1518
1600
|
var bundleDiscountType = currentBundleDiscount.tag === 'product_discount_card' ? 'discount_card' : currentBundleDiscount.tag;
|
|
@@ -1526,9 +1608,8 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
1526
1608
|
resource_id: currentBundleDiscount.id,
|
|
1527
1609
|
title: currentBundleDiscount.format_title,
|
|
1528
1610
|
original_amount: product.origin_total,
|
|
1529
|
-
product_id: product.id,
|
|
1530
|
-
|
|
1531
|
-
discount_product_id: currentBundleDiscount.product_id
|
|
1611
|
+
product_id: product.id || product.product_id,
|
|
1612
|
+
discount_product_id: selectedDiscount.product_id
|
|
1532
1613
|
},
|
|
1533
1614
|
metadata: {
|
|
1534
1615
|
// 🔥 使用拆分后的唯一 _id
|
|
@@ -1565,7 +1646,7 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
1565
1646
|
var _nextSelectedDiscount;
|
|
1566
1647
|
// 重新查找适用于剩余商品的可用折扣(已使用的会被自动过滤掉)
|
|
1567
1648
|
var nextApplicableDiscounts = sortedDiscountList.filter(function (nextDiscount) {
|
|
1568
|
-
var _product$
|
|
1649
|
+
var _product$discount_lis11;
|
|
1569
1650
|
var nextDiscountType = nextDiscount.tag || nextDiscount.type;
|
|
1570
1651
|
// 检查策略可用性
|
|
1571
1652
|
if (['good_pass', 'discount_card', 'product_discount_card'].includes(nextDiscountType)) {
|
|
@@ -1575,7 +1656,7 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
1575
1656
|
}
|
|
1576
1657
|
}
|
|
1577
1658
|
// 折扣卡时总价为0时不可用
|
|
1578
|
-
if ((Number(product.total) <= 0 || !product.total) && !((_product$
|
|
1659
|
+
if ((Number(product.total) <= 0 || !product.total) && !((_product$discount_lis11 = product.discount_list) !== null && _product$discount_lis11 !== void 0 && _product$discount_lis11.find(function (n) {
|
|
1579
1660
|
var _n$discount2;
|
|
1580
1661
|
return ((_n$discount2 = n.discount) === null || _n$discount2 === void 0 ? void 0 : _n$discount2.resource_id) === nextDiscount.id;
|
|
1581
1662
|
})) && nextDiscountType !== 'good_pass') return false;
|
|
@@ -1831,6 +1912,7 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
1831
1912
|
|
|
1832
1913
|
// 🔥 使用当前的 _id 作为唯一标识
|
|
1833
1914
|
var _uniqueId = flatItem._id;
|
|
1915
|
+
debugger;
|
|
1834
1916
|
var _discountDetail2 = {
|
|
1835
1917
|
amount: bundleActualDiscountAmount * (product.num || 1),
|
|
1836
1918
|
type: _currentBundleDiscount.tag === 'product_discount_card' ? 'discount_card' : _currentBundleDiscount.tag,
|
|
@@ -1841,9 +1923,9 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
1841
1923
|
resource_id: _currentBundleDiscount.id,
|
|
1842
1924
|
title: _currentBundleDiscount.format_title,
|
|
1843
1925
|
original_amount: product.original_price,
|
|
1844
|
-
product_id: product.id,
|
|
1845
|
-
percent:
|
|
1846
|
-
discount_product_id:
|
|
1926
|
+
product_id: product.id || product.product_id,
|
|
1927
|
+
percent: selectedDiscount.par_value,
|
|
1928
|
+
discount_product_id: selectedDiscount.product_id
|
|
1847
1929
|
},
|
|
1848
1930
|
metadata: _objectSpread({
|
|
1849
1931
|
// 🔥 使用唯一的 _id
|
|
@@ -2160,7 +2242,7 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
2160
2242
|
} else {
|
|
2161
2243
|
// 🔥 没有子商品被拆分,使用原有逻辑
|
|
2162
2244
|
mainProductArr.forEach(function (mainProduct) {
|
|
2163
|
-
var _mainProductData$disc, _mainProductData$disc2, _mainProductData$disc3;
|
|
2245
|
+
var _ref15, _mainProductData$main, _mainProductData$disc, _mainProductData$disc2, _mainProductData$disc3;
|
|
2164
2246
|
var mainProductData = _this3.hooks.getProduct(mainProduct);
|
|
2165
2247
|
|
|
2166
2248
|
// 重组bundle
|
|
@@ -2175,6 +2257,9 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
2175
2257
|
} else {
|
|
2176
2258
|
// 🔥 关键:拆分后的bundle item
|
|
2177
2259
|
processedBundleItems.forEach(function (item) {
|
|
2260
|
+
var _item$price, _ref14, _item$bundle_selling_;
|
|
2261
|
+
var nextBundlePrice = (_item$price = item.price) !== null && _item$price !== void 0 ? _item$price : bundleItem.price;
|
|
2262
|
+
var nextBundleSellingPrice = (_ref14 = (_item$bundle_selling_ = item.bundle_selling_price) !== null && _item$bundle_selling_ !== void 0 ? _item$bundle_selling_ : item.price) !== null && _ref14 !== void 0 ? _ref14 : bundleItem.bundle_selling_price;
|
|
2178
2263
|
// 🔥 更新 discount_list 中的 num,使其与拆分后的 item.num 一致
|
|
2179
2264
|
var updatedDiscountList = (item.discount_list || []).map(function (discount) {
|
|
2180
2265
|
var _discount$metadata11;
|
|
@@ -2189,18 +2274,20 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
2189
2274
|
newBundle.push(_objectSpread(_objectSpread({}, bundleItem), {}, {
|
|
2190
2275
|
_id: item._id,
|
|
2191
2276
|
product_id: bundleItem.product_id,
|
|
2192
|
-
price:
|
|
2277
|
+
price: nextBundlePrice,
|
|
2193
2278
|
num: item.num,
|
|
2194
2279
|
discount_list: updatedDiscountList,
|
|
2195
|
-
bundle_selling_price: bundleItem.bundle_selling_price !== undefined ?
|
|
2280
|
+
bundle_selling_price: bundleItem.bundle_selling_price !== undefined ? nextBundleSellingPrice : undefined
|
|
2196
2281
|
}));
|
|
2197
2282
|
});
|
|
2198
2283
|
}
|
|
2199
2284
|
});
|
|
2200
2285
|
}
|
|
2201
2286
|
|
|
2202
|
-
//
|
|
2203
|
-
|
|
2287
|
+
// 主商品已经在前面的 setProduct 中应用过折扣;这里只替换 bundle,
|
|
2288
|
+
// 避免把主商品 discount_list 再扣一次。
|
|
2289
|
+
var mainSellingPrice = (_ref15 = (_mainProductData$main = mainProductData.main_product_selling_price) !== null && _mainProductData$main !== void 0 ? _mainProductData$main : mainProductData.price) !== null && _ref15 !== void 0 ? _ref15 : 0;
|
|
2290
|
+
var newTotal = Number(mainSellingPrice || 0);
|
|
2204
2291
|
var newOriginTotal = Number(mainProductData.original_price || mainProductData.price || 0);
|
|
2205
2292
|
|
|
2206
2293
|
// 判断是否是手动折扣
|
|
@@ -2214,21 +2301,7 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
2214
2301
|
newTotal = (_mainProductData$tota = mainProductData.total) !== null && _mainProductData$tota !== void 0 ? _mainProductData$tota : newTotal;
|
|
2215
2302
|
newOriginTotal = (_mainProductData$orig3 = mainProductData.origin_total) !== null && _mainProductData$orig3 !== void 0 ? _mainProductData$orig3 : newOriginTotal;
|
|
2216
2303
|
} else {
|
|
2217
|
-
//
|
|
2218
|
-
var _mainDiscountList = mainProductData.discount_list.filter(function (item) {
|
|
2219
|
-
var _item$metadata5;
|
|
2220
|
-
return !(item !== null && item !== void 0 && (_item$metadata5 = item.metadata) !== null && _item$metadata5 !== void 0 && _item$metadata5.custom_product_bundle_map_id);
|
|
2221
|
-
});
|
|
2222
|
-
|
|
2223
|
-
// 如果主商品本身有折扣,需要重新计算主商品价格
|
|
2224
|
-
if (_mainDiscountList && _mainDiscountList.length > 0) {
|
|
2225
|
-
var _Decimal$minus$toNumb3, _mainProductData$orig4;
|
|
2226
|
-
var _allDiscountAmount2 = getDiscountListAmount(_mainDiscountList);
|
|
2227
|
-
newTotal = (_Decimal$minus$toNumb3 = new Decimal(mainProductData.price || 0).minus(_allDiscountAmount2).toNumber()) !== null && _Decimal$minus$toNumb3 !== void 0 ? _Decimal$minus$toNumb3 : newTotal;
|
|
2228
|
-
newOriginTotal = (_mainProductData$orig4 = mainProductData.origin_total) !== null && _mainProductData$orig4 !== void 0 ? _mainProductData$orig4 : newOriginTotal;
|
|
2229
|
-
}
|
|
2230
|
-
|
|
2231
|
-
// 累加bundle的价格(只累加一次)
|
|
2304
|
+
// 累加bundle的折后价格(只累加一次)
|
|
2232
2305
|
if (newBundle.length > 0) {
|
|
2233
2306
|
newBundle.forEach(function (item) {
|
|
2234
2307
|
var _item$discount_list3;
|
|
@@ -2236,6 +2309,12 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
2236
2309
|
var originalPrice = ((_item$discount_list3 = item.discount_list) === null || _item$discount_list3 === void 0 || (_item$discount_list3 = _item$discount_list3[0]) === null || _item$discount_list3 === void 0 || (_item$discount_list3 = _item$discount_list3.discount) === null || _item$discount_list3 === void 0 ? void 0 : _item$discount_list3.original_amount) || item.price;
|
|
2237
2310
|
newOriginTotal += Number(originalPrice) * Number(item.num);
|
|
2238
2311
|
});
|
|
2312
|
+
// 计算原始总价(不考虑折扣)
|
|
2313
|
+
newBundle.forEach(function (item) {
|
|
2314
|
+
var _item$discount_list4;
|
|
2315
|
+
var originalPrice = ((_item$discount_list4 = item.discount_list) === null || _item$discount_list4 === void 0 || (_item$discount_list4 = _item$discount_list4[0]) === null || _item$discount_list4 === void 0 || (_item$discount_list4 = _item$discount_list4.discount) === null || _item$discount_list4 === void 0 ? void 0 : _item$discount_list4.original_amount) || item.price;
|
|
2316
|
+
newOriginTotal += Number(originalPrice) * Number(item.num);
|
|
2317
|
+
});
|
|
2239
2318
|
}
|
|
2240
2319
|
}
|
|
2241
2320
|
|
|
@@ -2329,7 +2408,6 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
2329
2408
|
appliedProductDetails: []
|
|
2330
2409
|
});
|
|
2331
2410
|
});
|
|
2332
|
-
console.log(processedProductList, 'processedProductList');
|
|
2333
2411
|
return {
|
|
2334
2412
|
productList: processedProductList,
|
|
2335
2413
|
discountList: [].concat(editModeDiscount, _toConsumableArray(updatedDiscountList))
|
|
@@ -2345,6 +2423,7 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
2345
2423
|
}, {
|
|
2346
2424
|
key: "checkPackageSubItemUsageRules",
|
|
2347
2425
|
value: function checkPackageSubItemUsageRules(discount, flatItem) {
|
|
2426
|
+
var _flatItem$product;
|
|
2348
2427
|
var limitedData = discount.limited_relation_product_data;
|
|
2349
2428
|
var usageRules = limitedData === null || limitedData === void 0 ? void 0 : limitedData.package_sub_item_usage_rules;
|
|
2350
2429
|
var rules = ['original_price'].concat(_toConsumableArray((usageRules === null || usageRules === void 0 ? void 0 : usageRules.rules) || []));
|
|
@@ -2356,16 +2435,17 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
2356
2435
|
var ruleType = usageRules.type;
|
|
2357
2436
|
// 套餐适用范围配置
|
|
2358
2437
|
var packageScope = usageRules === null || usageRules === void 0 ? void 0 : usageRules.package_scope;
|
|
2359
|
-
var
|
|
2360
|
-
scopeType =
|
|
2361
|
-
|
|
2362
|
-
exclude_bundle_product_ids =
|
|
2363
|
-
|
|
2364
|
-
include_bundle_product_ids =
|
|
2365
|
-
|
|
2366
|
-
filter =
|
|
2438
|
+
var _ref16 = packageScope || {},
|
|
2439
|
+
scopeType = _ref16.type,
|
|
2440
|
+
_ref16$exclude_bundle = _ref16.exclude_bundle_product_ids,
|
|
2441
|
+
exclude_bundle_product_ids = _ref16$exclude_bundle === void 0 ? [] : _ref16$exclude_bundle,
|
|
2442
|
+
_ref16$include_bundle = _ref16.include_bundle_product_ids,
|
|
2443
|
+
include_bundle_product_ids = _ref16$include_bundle === void 0 ? [] : _ref16$include_bundle,
|
|
2444
|
+
_ref16$filter = _ref16.filter,
|
|
2445
|
+
filter = _ref16$filter === void 0 ? 0 : _ref16$filter;
|
|
2367
2446
|
var isMainProduct = flatItem.type === 'main'; // 单独购买
|
|
2368
2447
|
var isBundleItem = flatItem.type === 'bundle'; // 套餐中购买
|
|
2448
|
+
var bundleMainProductId = (_flatItem$product = flatItem.product) === null || _flatItem$product === void 0 ? void 0 : _flatItem$product.product_id;
|
|
2369
2449
|
|
|
2370
2450
|
// 主商品直接可用
|
|
2371
2451
|
if (isMainProduct) {
|
|
@@ -2378,10 +2458,10 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
2378
2458
|
return true; // 单独购买时可用
|
|
2379
2459
|
}
|
|
2380
2460
|
if (isBundleItem) {
|
|
2381
|
-
var _flatItem$
|
|
2461
|
+
var _flatItem$bundleItem10, _flatItem$bundleItem11, _flatItem$originProdu, _flatItem$parentProdu11;
|
|
2382
2462
|
// 套餐中购买时,判断是否为原价
|
|
2383
|
-
var priceType = (_flatItem$
|
|
2384
|
-
var priceTypeExt = (_flatItem$
|
|
2463
|
+
var priceType = (_flatItem$bundleItem10 = flatItem.bundleItem) === null || _flatItem$bundleItem10 === void 0 ? void 0 : _flatItem$bundleItem10.price_type;
|
|
2464
|
+
var priceTypeExt = (_flatItem$bundleItem11 = flatItem.bundleItem) === null || _flatItem$bundleItem11 === void 0 ? void 0 : _flatItem$bundleItem11.price_type_ext;
|
|
2385
2465
|
// 主商品id
|
|
2386
2466
|
var mainProductId = (flatItem === null || flatItem === void 0 || (_flatItem$originProdu = flatItem.originProduct) === null || _flatItem$originProdu === void 0 || (_flatItem$originProdu = _flatItem$originProdu._productOrigin) === null || _flatItem$originProdu === void 0 ? void 0 : _flatItem$originProdu.id) || (flatItem === null || flatItem === void 0 || (_flatItem$parentProdu11 = flatItem.parentProduct) === null || _flatItem$parentProdu11 === void 0 ? void 0 : _flatItem$parentProdu11.id) || 0;
|
|
2387
2467
|
// original_price 对应:
|
|
@@ -2408,13 +2488,13 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
2408
2488
|
if (!filter) {
|
|
2409
2489
|
isScopeValid = true;
|
|
2410
2490
|
} else {
|
|
2411
|
-
isScopeValid = !exclude_bundle_product_ids.includes(Number(
|
|
2491
|
+
isScopeValid = !exclude_bundle_product_ids.includes(Number(bundleMainProductId));
|
|
2412
2492
|
}
|
|
2413
2493
|
}
|
|
2414
2494
|
|
|
2415
2495
|
// 包含套餐判断, products值兼容旧数据
|
|
2416
2496
|
if (scopeType === 'specific_packages' || scopeType === 'products') {
|
|
2417
|
-
isScopeValid = include_bundle_product_ids.includes(Number(
|
|
2497
|
+
isScopeValid = include_bundle_product_ids.includes(Number(bundleMainProductId));
|
|
2418
2498
|
}
|
|
2419
2499
|
|
|
2420
2500
|
// 价格和套餐适用范围都符合,则可用
|
|
@@ -2448,10 +2528,10 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
2448
2528
|
return false; // 单独购买时不可用
|
|
2449
2529
|
}
|
|
2450
2530
|
if (isBundleItem) {
|
|
2451
|
-
var _flatItem$
|
|
2531
|
+
var _flatItem$bundleItem12, _flatItem$bundleItem13;
|
|
2452
2532
|
// 套餐中购买时,判断是否为原价
|
|
2453
|
-
var _priceType = (_flatItem$
|
|
2454
|
-
var _priceTypeExt = (_flatItem$
|
|
2533
|
+
var _priceType = (_flatItem$bundleItem12 = flatItem.bundleItem) === null || _flatItem$bundleItem12 === void 0 ? void 0 : _flatItem$bundleItem12.price_type;
|
|
2534
|
+
var _priceTypeExt = (_flatItem$bundleItem13 = flatItem.bundleItem) === null || _flatItem$bundleItem13 === void 0 ? void 0 : _flatItem$bundleItem13.price_type_ext;
|
|
2455
2535
|
|
|
2456
2536
|
// original_price 对应:
|
|
2457
2537
|
// 1. price_type: "markup" && price_type_ext: "product_price"
|
|
@@ -2464,16 +2544,43 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
2464
2544
|
|
|
2465
2545
|
// 检查 rules
|
|
2466
2546
|
if (rules.length > 0) {
|
|
2467
|
-
|
|
2468
|
-
|
|
2469
|
-
|
|
2547
|
+
var _isOriginalPrice3 = _isOriginalPrice2 && rules.includes('original_price');
|
|
2548
|
+
var _isMarkupPrice3 = _isMarkupPrice2 && rules.includes('markup_price');
|
|
2549
|
+
// 价格是否符合规则:原价或加价
|
|
2550
|
+
var _isPriceValid = _isOriginalPrice3 || _isMarkupPrice3;
|
|
2551
|
+
// 套餐适用范围校验
|
|
2552
|
+
var _isScopeValid = false;
|
|
2553
|
+
|
|
2554
|
+
// 排除套餐判断, product_all值兼容旧数据
|
|
2555
|
+
if (scopeType === 'all_packages' || scopeType === 'product_all') {
|
|
2556
|
+
// 所有套餐可用
|
|
2557
|
+
if (!filter) {
|
|
2558
|
+
_isScopeValid = true;
|
|
2559
|
+
} else {
|
|
2560
|
+
_isScopeValid = !exclude_bundle_product_ids.includes(Number(bundleMainProductId));
|
|
2561
|
+
}
|
|
2470
2562
|
}
|
|
2471
2563
|
|
|
2472
|
-
//
|
|
2473
|
-
if (
|
|
2564
|
+
// 包含套餐判断, products值兼容旧数据
|
|
2565
|
+
if (scopeType === 'specific_packages' || scopeType === 'products') {
|
|
2566
|
+
_isScopeValid = include_bundle_product_ids.includes(Number(bundleMainProductId));
|
|
2567
|
+
}
|
|
2568
|
+
|
|
2569
|
+
// 价格和套餐适用范围都符合,则可用
|
|
2570
|
+
if (_isPriceValid && _isScopeValid) {
|
|
2474
2571
|
return true;
|
|
2475
2572
|
}
|
|
2476
2573
|
|
|
2574
|
+
// 检查原价
|
|
2575
|
+
// if (isOriginalPrice && rules.includes('original_price')) {
|
|
2576
|
+
// return true;
|
|
2577
|
+
// }
|
|
2578
|
+
|
|
2579
|
+
// 检查加价
|
|
2580
|
+
// if (isMarkupPrice && rules.includes('markup_price')) {
|
|
2581
|
+
// return true;
|
|
2582
|
+
// }
|
|
2583
|
+
|
|
2477
2584
|
// 如果都不匹配,则不可用
|
|
2478
2585
|
return false;
|
|
2479
2586
|
}
|
|
@@ -2550,7 +2657,7 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
2550
2657
|
_context3.next = 3;
|
|
2551
2658
|
return this.core.effects.emit("".concat(this.name, ":onDestroy"), {});
|
|
2552
2659
|
case 3:
|
|
2553
|
-
|
|
2660
|
+
_get(_getPrototypeOf(RulesModule.prototype), "destroy", this).call(this);
|
|
2554
2661
|
case 4:
|
|
2555
2662
|
case "end":
|
|
2556
2663
|
return _context3.stop();
|
|
@@ -2569,8 +2676,6 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
2569
2676
|
return _regeneratorRuntime().wrap(function _callee4$(_context4) {
|
|
2570
2677
|
while (1) switch (_context4.prev = _context4.next) {
|
|
2571
2678
|
case 0:
|
|
2572
|
-
console.log('[Rules] clear');
|
|
2573
|
-
case 1:
|
|
2574
2679
|
case "end":
|
|
2575
2680
|
return _context4.stop();
|
|
2576
2681
|
}
|