@pisell/pisellos 2.3.74 → 2.3.76
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 -10
- package/dist/model/strategy/adapter/promotion/index.js +9 -0
- package/dist/model/strategy/adapter/walletPass/example.js +3 -26
- package/dist/model/strategy/strategy-example.js +5 -19
- package/dist/modules/Cart/index.js +0 -3
- package/dist/modules/Cart/utils/cartProduct.js +0 -1
- package/dist/modules/Date/index.js +1 -5
- package/dist/modules/Discount/index.js +2 -4
- package/dist/modules/OpenData/index.js +0 -2
- package/dist/modules/Order/index.d.ts +1 -1
- package/dist/modules/Order/index.js +75 -91
- package/dist/modules/Order/types.d.ts +3 -1
- package/dist/modules/Payment/index.js +97 -162
- package/dist/modules/Rules/index.js +1 -4
- package/dist/modules/Schedule/index.js +0 -1
- package/dist/modules/Schedule/utils.js +0 -1
- package/dist/modules/Step/index.js +0 -1
- package/dist/plugins/request.js +1 -4
- package/dist/plugins/window.js +2 -6
- package/dist/server/index.js +97 -129
- package/dist/server/modules/menu/index.js +32 -41
- package/dist/server/modules/order/index.js +2 -4
- package/dist/server/modules/products/index.js +24 -42
- package/dist/server/modules/quotation/index.js +29 -38
- package/dist/server/modules/resource/index.js +3 -4
- package/dist/server/modules/schedule/index.js +27 -35
- package/dist/server/utils/product.js +0 -1
- package/dist/solution/BaseSales/index.js +100 -72
- package/dist/solution/BaseSales/utils/cartPromotion.d.ts +5 -0
- package/dist/solution/BaseSales/utils/cartPromotion.js +15 -6
- 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.js +0 -2
- package/dist/solution/BookingTicket/utils/scan/cloudSearch.js +6 -7
- package/dist/solution/BookingTicket/utils/scan/handleScan.js +25 -31
- package/dist/solution/BookingTicket/utils/scan/index.js +6 -10
- package/dist/solution/BuyTickets/index.js +9 -12
- package/dist/solution/Checkout/index.js +177 -252
- package/dist/solution/Checkout/utils/index.js +4 -16
- package/dist/solution/RegisterAndLogin/index.js +30 -76
- package/dist/solution/ScanOrder/index.js +50 -60
- package/dist/solution/ShopDiscount/index.js +2 -7
- package/dist/solution/VenueBooking/index.js +45 -55
- 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 +134 -134
- package/lib/effects/index.js +46 -57
- package/lib/index.js +82 -49
- 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 +91 -69
- package/lib/model/strategy/adapter/promotion/evaluator.js +444 -310
- package/lib/model/strategy/adapter/promotion/examples.js +222 -234
- package/lib/model/strategy/adapter/promotion/index.js +1 -0
- package/lib/model/strategy/adapter/promotion/type.js +243 -36
- package/lib/model/strategy/adapter/type.js +4 -16
- package/lib/model/strategy/adapter/walletPass/evaluator.js +180 -150
- 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 +588 -378
- 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.js +23 -42
- package/lib/modules/BookingContext/index.js +158 -136
- package/lib/modules/BookingContext/types.js +46 -32
- package/lib/modules/BookingContext/utils/buildCacheItemFromOrderLine.js +138 -146
- package/lib/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.js +78 -83
- package/lib/modules/BookingContext/utils/cacheItemToBookingInput.js +170 -150
- package/lib/modules/BookingContext/utils/flexible.js +38 -55
- package/lib/modules/BookingContext/utils/formatResourceList.js +19 -34
- package/lib/modules/BookingContext/utils/index.js +124 -41
- package/lib/modules/BookingContext/utils/noResource.js +58 -70
- package/lib/modules/BookingContext/utils/orderLineDisplay.js +14 -41
- package/lib/modules/BookingContext/utils/productExtend.js +202 -155
- package/lib/modules/BookingContext/utils/resourceErrors.js +53 -53
- package/lib/modules/BookingContext/utils/resourceSelection.js +19 -41
- package/lib/modules/BookingContext/utils/resources.js +209 -167
- package/lib/modules/BookingContext/utils/serviceTimes.js +115 -116
- package/lib/modules/BookingContext/utils/timeSlices.js +76 -86
- 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 +321 -251
- package/lib/modules/Cart/utils/cartRelationForms.js +29 -35
- package/lib/modules/Cart/utils/cartResource.js +70 -78
- package/lib/modules/Cart/utils/changePrice.js +22 -50
- package/lib/modules/Cart/utils/index.js +106 -48
- package/lib/modules/Customer/constants.js +13 -34
- package/lib/modules/Customer/index.js +235 -172
- 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.js +122 -127
- 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.js +70 -76
- package/lib/modules/OpenData/types.js +4 -16
- package/lib/modules/OpenData/utils.js +44 -78
- package/lib/modules/Order/index.d.ts +1 -1
- package/lib/modules/Order/index.js +1733 -2121
- package/lib/modules/Order/payment-utils.js +77 -120
- package/lib/modules/Order/types.d.ts +3 -1
- package/lib/modules/Order/types.js +88 -35
- package/lib/modules/Order/utils/bundleDiscountHydration.js +41 -74
- package/lib/modules/Order/utils/discountProductLineIdentity.js +142 -100
- package/lib/modules/Order/utils/manualProductDiscount.js +124 -123
- package/lib/modules/Order/utils/orderCollectionIdentity.js +184 -244
- package/lib/modules/Order/utils.js +814 -647
- 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.js +532 -399
- package/lib/modules/Payment/mx51.js +1 -0
- package/lib/modules/Payment/types.js +230 -108
- package/lib/modules/Payment/utils.js +52 -51
- package/lib/modules/Payment/walletpass.js +485 -660
- package/lib/modules/Product/index.js +51 -46
- package/lib/modules/Product/types.js +4 -16
- package/lib/modules/Product/utils.js +32 -33
- package/lib/modules/ProductList/index.js +113 -123
- package/lib/modules/ProductList/types.js +9 -31
- package/lib/modules/Quotation/index.js +81 -118
- 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.js +25 -23
- package/lib/modules/ResourcePlanner/localClock.js +54 -119
- package/lib/modules/ResourcePlanner/planner.js +589 -770
- package/lib/modules/ResourcePlanner/types.js +10 -29
- package/lib/modules/Rules/index.js +1218 -959
- package/lib/modules/Rules/types.js +17 -40
- package/lib/modules/SalesSummary/index.js +85 -90
- package/lib/modules/SalesSummary/types.js +4 -16
- package/lib/modules/SalesSummary/utils.js +355 -430
- 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 +334 -163
- package/lib/modules/Schedule/index.js +100 -114
- package/lib/modules/Schedule/type.js +4 -16
- 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 -71
- package/lib/modules/Summary/types.js +4 -16
- package/lib/modules/Summary/utils.js +773 -418
- package/lib/modules/SurchargeList/index.js +46 -60
- package/lib/modules/SurchargeList/types.js +4 -16
- package/lib/modules/index.js +245 -63
- package/lib/plugins/app.js +4 -16
- package/lib/plugins/index.js +36 -25
- 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.js +3050 -2665
- package/lib/server/modules/floor-plan/index.js +118 -134
- package/lib/server/modules/floor-plan/types.js +15 -30
- package/lib/server/modules/index.js +106 -68
- package/lib/server/modules/menu/index.js +142 -122
- package/lib/server/modules/menu/types.js +18 -31
- package/lib/server/modules/order/index.js +784 -1002
- package/lib/server/modules/order/types.js +122 -33
- package/lib/server/modules/order/utils/filterBookings.js +219 -194
- package/lib/server/modules/order/utils/filterOrders.js +118 -92
- package/lib/server/modules/payment/index.js +59 -83
- package/lib/server/modules/payment/types.js +4 -16
- package/lib/server/modules/products/index.js +583 -471
- package/lib/server/modules/products/types.js +44 -34
- package/lib/server/modules/quotation/index.js +137 -172
- package/lib/server/modules/quotation/types.js +21 -31
- package/lib/server/modules/resource/index.js +220 -186
- package/lib/server/modules/resource/types.js +42 -33
- package/lib/server/modules/schedule/index.js +135 -123
- package/lib/server/modules/schedule/types.js +14 -21
- package/lib/server/modules/schedule/utils.js +334 -163
- package/lib/server/types.js +4 -16
- package/lib/server/utils/index.js +25 -23
- package/lib/server/utils/product.js +196 -139
- package/lib/server/utils/schedule.js +34 -41
- package/lib/server/utils/small-ticket.js +479 -456
- package/lib/server/utils/time.js +40 -49
- package/lib/solution/BaseSales/index.js +1220 -1412
- package/lib/solution/BaseSales/types.js +42 -38
- package/lib/solution/BaseSales/utils/cartPromotion.d.ts +5 -0
- package/lib/solution/BaseSales/utils/cartPromotion.js +652 -498
- package/lib/solution/BaseSales/utils/parseSalesResponse.js +85 -105
- package/lib/solution/BaseSales/utils/quotationPrice.js +56 -114
- package/lib/solution/BaseSales/utils/transformBaseProductToOrderProduct.js +108 -145
- package/lib/solution/BaseSales/utils.js +158 -143
- package/lib/solution/BookingByStep/index.js +1527 -1340
- 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.js +607 -522
- package/lib/solution/BookingTicket/types.js +99 -77
- package/lib/solution/BookingTicket/utils/addProductDecision.js +226 -189
- package/lib/solution/BookingTicket/utils/addTimeAvailability.js +58 -89
- package/lib/solution/BookingTicket/utils/bookingStatus.js +107 -78
- package/lib/solution/BookingTicket/utils/cartView.js +114 -99
- package/lib/solution/BookingTicket/utils/exampleData.js +185 -0
- package/lib/solution/BookingTicket/utils/orderCustomer.js +18 -41
- package/lib/solution/BookingTicket/utils/resolveBestAddTimePlan.js +219 -86
- package/lib/solution/BookingTicket/utils/scan/applyGlobalScan.js +168 -116
- package/lib/solution/BookingTicket/utils/scan/cloudSearch.js +79 -91
- package/lib/solution/BookingTicket/utils/scan/formatGlobalScan.js +54 -41
- package/lib/solution/BookingTicket/utils/scan/handleScan.js +84 -81
- package/lib/solution/BookingTicket/utils/scan/index.js +98 -104
- package/lib/solution/BookingTicket/utils/scan/scanCache.js +90 -43
- package/lib/solution/BookingTicket/utils/scan/scanProductValues.js +52 -64
- package/lib/solution/BookingTicket/utils/sessionCatalogStale.js +56 -58
- package/lib/solution/BookingTicket/utils/weighingProductSku.js +34 -48
- package/lib/solution/BuyTickets/index.js +67 -70
- package/lib/solution/BuyTickets/types.js +22 -38
- package/lib/solution/Checkout/index.js +1451 -1158
- package/lib/solution/Checkout/types.js +91 -61
- package/lib/solution/Checkout/utils/index.js +228 -156
- package/lib/solution/PlaceOrder/index.js +55 -0
- package/lib/solution/RegisterAndLogin/config.js +493 -460
- 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.js +328 -324
- package/lib/solution/Sales/types.js +27 -33
- package/lib/solution/ScanOrder/index.js +832 -864
- package/lib/solution/ScanOrder/types.js +33 -34
- package/lib/solution/ScanOrder/utils.js +409 -374
- package/lib/solution/ShopDiscount/index.js +226 -232
- package/lib/solution/ShopDiscount/types.js +15 -37
- package/lib/solution/ShopDiscount/utils.js +300 -172
- package/lib/solution/UnifiedBookingSales/index.js +1035 -1201
- package/lib/solution/UnifiedBookingSales/remoteOccupancyCache.js +99 -159
- package/lib/solution/UnifiedBookingSales/types.js +10 -32
- package/lib/solution/VenueBooking/index.js +811 -879
- package/lib/solution/VenueBooking/types.js +19 -39
- package/lib/solution/VenueBooking/utils/dateSummary.js +27 -56
- package/lib/solution/VenueBooking/utils/resource.js +31 -54
- package/lib/solution/VenueBooking/utils/slotMerge.js +94 -107
- package/lib/solution/VenueBooking/utils/timeSlot.js +132 -132
- package/lib/solution/VenueBooking/utils.js +130 -67
- package/lib/solution/index.js +124 -41
- package/lib/store/createStore.js +32 -29
- package/lib/types/index.js +4 -16
- package/lib/utils/payment-number.js +26 -46
- package/lib/utils/task.js +36 -36
- package/lib/utils/watch.js +81 -47
- package/package.json +2 -1
|
@@ -1,154 +1,155 @@
|
|
|
1
|
-
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
6
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
-
var __export = (target, all) => {
|
|
8
|
-
for (var name in all)
|
|
9
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
-
};
|
|
11
|
-
var __copyProps = (to, from, except, desc) => {
|
|
12
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
-
for (let key of __getOwnPropNames(from))
|
|
14
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
-
}
|
|
17
|
-
return to;
|
|
18
|
-
};
|
|
19
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
20
|
-
// If the importer is in node compatibility mode or this is not an ESM
|
|
21
|
-
// file that has been converted to a CommonJS file using a Babel-
|
|
22
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
23
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
24
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
25
|
-
mod
|
|
26
|
-
));
|
|
27
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
1
|
+
"use strict";
|
|
28
2
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
__export(addProductDecision_exports, {
|
|
32
|
-
buildCacheItemFromCartDetail: () => buildCacheItemFromCartDetail,
|
|
33
|
-
buildCacheItemFromDetail: () => buildCacheItemFromDetail,
|
|
34
|
-
buildRequiresDetailPayload: () => buildRequiresDetailPayload,
|
|
35
|
-
decideAddProduct: () => decideAddProduct,
|
|
36
|
-
decideAfterDetail: () => decideAfterDetail,
|
|
37
|
-
decideAutoClose: () => decideAutoClose,
|
|
38
|
-
getIsEject: () => getIsEject,
|
|
39
|
-
getIsOnlySession: () => getIsOnlySession,
|
|
40
|
-
prepareBookingCacheItem: () => prepareBookingCacheItem,
|
|
41
|
-
transformDetailToProductAndBooking: () => transformDetailToProductAndBooking
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
42
5
|
});
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
6
|
+
exports.buildCacheItemFromCartDetail = buildCacheItemFromCartDetail;
|
|
7
|
+
exports.buildCacheItemFromDetail = buildCacheItemFromDetail;
|
|
8
|
+
exports.buildRequiresDetailPayload = buildRequiresDetailPayload;
|
|
9
|
+
exports.decideAddProduct = decideAddProduct;
|
|
10
|
+
exports.decideAfterDetail = decideAfterDetail;
|
|
11
|
+
exports.decideAutoClose = decideAutoClose;
|
|
12
|
+
exports.getIsEject = getIsEject;
|
|
13
|
+
exports.getIsOnlySession = getIsOnlySession;
|
|
14
|
+
exports.prepareBookingCacheItem = prepareBookingCacheItem;
|
|
15
|
+
exports.transformDetailToProductAndBooking = transformDetailToProductAndBooking;
|
|
16
|
+
var _dayjs = _interopRequireDefault(require("dayjs"));
|
|
17
|
+
var _BookingContext = require("../../../modules/BookingContext");
|
|
18
|
+
var _transformBaseProductToOrderProduct = require("../../BaseSales/utils/transformBaseProductToOrderProduct");
|
|
19
|
+
var _weighingProductSku = require("./weighingProductSku");
|
|
20
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
21
|
+
/**
|
|
22
|
+
* cart.addProduct 两阶段决策(与 ticketBooking `handleSelectProduct` 对齐):
|
|
23
|
+
*
|
|
24
|
+
* 1. `requiresDetail`:规格 / SKU / 套餐 / Session / 称重弹窗(门禁:`isOpenDetailModal` / `cartDetailValue` / `open_sold_weight`)
|
|
25
|
+
* 2. `requiresBookingEdit`:资源 / 时间编辑抽屉(kiosk 强制进入;其他渠道由 `getIsAutoClose` 决定)
|
|
26
|
+
* 3. `add`:两关均通过,直接 transform + 加车
|
|
27
|
+
*/
|
|
28
|
+
|
|
29
|
+
/** 资源 / 时间编辑抽屉所需的最小 payload。 */
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* 第一段:是否需要打开规格 / SKU 详情弹窗(与 addService `handleSelectProduct` 一致,不用 `getIsEject` 做门禁)。
|
|
33
|
+
*/
|
|
48
34
|
function needsSpecDetailModal(item) {
|
|
49
|
-
if (item
|
|
50
|
-
|
|
51
|
-
if (item
|
|
52
|
-
return true;
|
|
53
|
-
if (!(item == null ? void 0 : item.cartDetailValue))
|
|
54
|
-
return true;
|
|
35
|
+
if (item?.open_sold_weight) return true;
|
|
36
|
+
if (item?.isOpenDetailModal) return true;
|
|
37
|
+
if (!item?.cartDetailValue) return true;
|
|
55
38
|
return false;
|
|
56
39
|
}
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* 第二段:预约商品是否仍需打开资源 / 时间编辑(kiosk 强制打开,其他渠道与 info2 `cacheItem.autoClose` 等价)。
|
|
43
|
+
*/
|
|
57
44
|
function needsBookingEdit(cacheItem, ctx) {
|
|
58
|
-
if (isNormalBookingProduct(cacheItem))
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
const isAutoAllocationOn = (ctx == null ? void 0 : ctx.isAutoAllocationOn) || (() => true);
|
|
63
|
-
return !(0, import_BookingContext.getIsAutoClose)(cacheItem, isAutoAllocationOn);
|
|
45
|
+
if (isNormalBookingProduct(cacheItem)) return false;
|
|
46
|
+
if (ctx?.channel === 'kiosk') return true;
|
|
47
|
+
const isAutoAllocationOn = ctx?.isAutoAllocationOn || (() => true);
|
|
48
|
+
return !(0, _BookingContext.getIsAutoClose)(cacheItem, isAutoAllocationOn);
|
|
64
49
|
}
|
|
65
50
|
function buildRequiresBookingEditPayload(cacheItem, ctx) {
|
|
66
51
|
return {
|
|
67
52
|
cacheItem,
|
|
68
|
-
customerId: ctx
|
|
69
|
-
date: typeof
|
|
53
|
+
customerId: ctx?.customerId,
|
|
54
|
+
date: typeof ctx?.date === 'string' ? ctx.date : null
|
|
70
55
|
};
|
|
71
56
|
}
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* 加车主决策:对齐 `handleSelectProduct` 两段分支。
|
|
60
|
+
*/
|
|
72
61
|
function decideAddProduct(item, ctx) {
|
|
73
62
|
const derivedCtx = withDerivedBookingCtx(ctx);
|
|
74
63
|
if (needsSpecDetailModal(item)) {
|
|
75
64
|
return {
|
|
76
|
-
action:
|
|
65
|
+
action: 'requiresDetail',
|
|
77
66
|
payload: buildRequiresDetailPayload(item, derivedCtx)
|
|
78
67
|
};
|
|
79
68
|
}
|
|
80
|
-
const cacheItem = prepareBookingCacheItem(
|
|
81
|
-
buildCacheItemFromCartDetail(item, derivedCtx),
|
|
82
|
-
derivedCtx
|
|
83
|
-
);
|
|
69
|
+
const cacheItem = prepareBookingCacheItem(buildCacheItemFromCartDetail(item, derivedCtx), derivedCtx);
|
|
84
70
|
if (needsBookingEdit(cacheItem, derivedCtx)) {
|
|
85
71
|
return {
|
|
86
|
-
action:
|
|
72
|
+
action: 'requiresBookingEdit',
|
|
87
73
|
cacheItem,
|
|
88
74
|
payload: buildRequiresBookingEditPayload(cacheItem, derivedCtx)
|
|
89
75
|
};
|
|
90
76
|
}
|
|
91
|
-
return {
|
|
77
|
+
return {
|
|
78
|
+
action: 'add',
|
|
79
|
+
cacheItem
|
|
80
|
+
};
|
|
92
81
|
}
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* 规格弹窗 callback 后的第二段决策(对齐 `handleBooking4Service` 内 `cacheItem.autoClose` 分支)。
|
|
85
|
+
*/
|
|
93
86
|
function decideAfterDetail(cacheItem, ctx) {
|
|
94
87
|
const derivedCtx = withDerivedBookingCtx(ctx);
|
|
95
88
|
const extended = prepareBookingCacheItem(cacheItem, derivedCtx);
|
|
96
89
|
if (needsBookingEdit(extended, derivedCtx)) {
|
|
97
90
|
return {
|
|
98
|
-
action:
|
|
91
|
+
action: 'requiresBookingEdit',
|
|
99
92
|
cacheItem: extended,
|
|
100
93
|
payload: buildRequiresBookingEditPayload(extended, derivedCtx)
|
|
101
94
|
};
|
|
102
95
|
}
|
|
103
|
-
return {
|
|
96
|
+
return {
|
|
97
|
+
action: 'add',
|
|
98
|
+
cacheItem: extended
|
|
99
|
+
};
|
|
104
100
|
}
|
|
101
|
+
|
|
102
|
+
/**
|
|
103
|
+
* @deprecated 请用 `decideAddProduct`;保留兼容:autoClose=true 仅表示可直接加车(action=add)。
|
|
104
|
+
*/
|
|
105
|
+
|
|
105
106
|
function isNormalBookingProduct(item) {
|
|
106
|
-
return !(0,
|
|
107
|
+
return !(0, _BookingContext.isBookingProduct)(item);
|
|
107
108
|
}
|
|
108
109
|
function hasPreparedBookingExtend(cacheItem) {
|
|
109
|
-
|
|
110
|
-
if ((0,
|
|
110
|
+
// 场次/时间已写入但资源仍未选中时,须继续走 getProductExtend(对齐 info2 必定调用 getProductExtend)。
|
|
111
|
+
if ((0, _BookingContext.productNeedsResourceExtend)(cacheItem) && !(0, _BookingContext.hasActualResourceSelection)(cacheItem)) {
|
|
111
112
|
return false;
|
|
112
113
|
}
|
|
113
|
-
const ext =
|
|
114
|
-
const hasResourceState = Boolean(
|
|
115
|
-
|
|
116
|
-
);
|
|
117
|
-
const hasSessionState = Boolean(
|
|
118
|
-
(0, import_BookingContext.isSessionProduct)(cacheItem) && ((_a = ext.other) == null ? void 0 : _a.session) && ext.start_time && (ext.end_time || ext.endDate)
|
|
119
|
-
);
|
|
114
|
+
const ext = cacheItem?._extend || {};
|
|
115
|
+
const hasResourceState = Boolean((0, _BookingContext.hasActualResourceSelection)(cacheItem) && ext.capacity && (ext.endDate || ext.end_date));
|
|
116
|
+
const hasSessionState = Boolean((0, _BookingContext.isSessionProduct)(cacheItem) && ext.other?.session && ext.start_time && (ext.end_time || ext.endDate));
|
|
120
117
|
const hasMultiDayState = Boolean(isNormalBookingProduct(cacheItem) === false && isMultiDayLike(cacheItem));
|
|
121
|
-
const hasExplicitTimeState = Boolean(
|
|
122
|
-
ext.duration && (ext.start_date || ext.startDate) && ext.start_time && (ext.end_date && ext.end_time || ext.endDate)
|
|
123
|
-
);
|
|
118
|
+
const hasExplicitTimeState = Boolean(ext.duration && (ext.start_date || ext.startDate) && ext.start_time && (ext.end_date && ext.end_time || ext.endDate));
|
|
124
119
|
return hasResourceState || hasSessionState || hasMultiDayState || hasExplicitTimeState;
|
|
125
120
|
}
|
|
121
|
+
|
|
122
|
+
/** 弹窗 / Host 使用的日历日,与 ticketBooking `state.date.format('YYYY-MM-DD')` 对齐。 */
|
|
126
123
|
function formatBookingDateForUI(date) {
|
|
127
|
-
if (date == null || date ===
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
return parsed.isValid() ? parsed.format("YYYY-MM-DD") : null;
|
|
124
|
+
if (date == null || date === '') return null;
|
|
125
|
+
const parsed = (0, _dayjs.default)(date);
|
|
126
|
+
return parsed.isValid() ? parsed.format('YYYY-MM-DD') : null;
|
|
131
127
|
}
|
|
128
|
+
|
|
129
|
+
/** 补齐 presetStartTime(decideAutoClose / transform 与 BookingTicket.buildAddProductCtx 共用)。 */
|
|
132
130
|
function withDerivedBookingCtx(ctx) {
|
|
133
|
-
if (!ctx)
|
|
134
|
-
return {};
|
|
131
|
+
if (!ctx) return {};
|
|
135
132
|
return {
|
|
136
133
|
...ctx,
|
|
137
|
-
presetStartTime: ctx.presetStartTime ?? (0,
|
|
134
|
+
presetStartTime: ctx.presetStartTime ?? (0, _BookingContext.derivePresetStartTimeFromDate)(ctx.date)
|
|
138
135
|
};
|
|
139
136
|
}
|
|
140
137
|
function isMultiDayLike(cacheItem) {
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
return Boolean(
|
|
144
|
-
((_a = cacheItem == null ? void 0 : cacheItem.duration) == null ? void 0 : _a.type) === "days" && ext.duration && ext.start_date && ext.end_date
|
|
145
|
-
);
|
|
138
|
+
const ext = cacheItem?._extend || {};
|
|
139
|
+
return Boolean(cacheItem?.duration?.type === 'days' && ext.duration && ext.start_date && ext.end_date);
|
|
146
140
|
}
|
|
141
|
+
|
|
142
|
+
/**
|
|
143
|
+
* 统一补齐预约商品的运行态字段。
|
|
144
|
+
*
|
|
145
|
+
* 新链路不再让决策和提交各自重建 cacheItem;这里作为唯一入口补齐
|
|
146
|
+
* `_extend.resource / capacity / startDate / endDate` 等后续 booking mapper 需要的字段。
|
|
147
|
+
*/
|
|
147
148
|
function prepareBookingCacheItem(cacheItem, ctx) {
|
|
148
149
|
if (isNormalBookingProduct(cacheItem) || hasPreparedBookingExtend(cacheItem)) {
|
|
149
150
|
return cacheItem;
|
|
150
151
|
}
|
|
151
|
-
return (0,
|
|
152
|
+
return (0, _BookingContext.getProductExtend)({
|
|
152
153
|
cacheItem,
|
|
153
154
|
ctx: withDerivedBookingCtx(ctx),
|
|
154
155
|
isDisabledTime: true
|
|
@@ -156,62 +157,83 @@ function prepareBookingCacheItem(cacheItem, ctx) {
|
|
|
156
157
|
}
|
|
157
158
|
function decideAutoClose(item, ctx) {
|
|
158
159
|
const decision = decideAddProduct(item, ctx);
|
|
159
|
-
if (decision.action ===
|
|
160
|
-
return {
|
|
160
|
+
if (decision.action === 'add') {
|
|
161
|
+
return {
|
|
162
|
+
autoClose: true,
|
|
163
|
+
cacheItem: decision.cacheItem
|
|
164
|
+
};
|
|
161
165
|
}
|
|
162
|
-
if (decision.action ===
|
|
163
|
-
return {
|
|
166
|
+
if (decision.action === 'requiresBookingEdit') {
|
|
167
|
+
return {
|
|
168
|
+
autoClose: false,
|
|
169
|
+
cacheItem: decision.cacheItem
|
|
170
|
+
};
|
|
164
171
|
}
|
|
165
|
-
return {
|
|
172
|
+
return {
|
|
173
|
+
autoClose: false
|
|
174
|
+
};
|
|
166
175
|
}
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
176
|
+
|
|
177
|
+
/**
|
|
178
|
+
* 替代 info2 `getIsEject`:商品是否需要弹窗(含 type='detail' / option_group / bundle_group / variant / session / sold_by_weight)。
|
|
179
|
+
*/
|
|
180
|
+
function getIsEject(item, type = 'select') {
|
|
181
|
+
const isSession = (0, _BookingContext.isSessionProduct)(item);
|
|
182
|
+
const isSoldByWeight = Boolean(item?.open_sold_weight);
|
|
183
|
+
const need = type === 'detail' || (item?.bundle_group_count || 0) > 0 || (item?.option_group_count || 0) > 0 || (item?.is_variant || 0) > 0 || isSession || isSoldByWeight;
|
|
171
184
|
return need ? 1 : 0;
|
|
172
185
|
}
|
|
186
|
+
|
|
187
|
+
/** 仅 session 商品(且没有 variant/option/package)。 */
|
|
173
188
|
function getIsOnlySession(item) {
|
|
174
|
-
const isSession = (0,
|
|
175
|
-
return !((
|
|
189
|
+
const isSession = (0, _BookingContext.isSessionProduct)(item);
|
|
190
|
+
return !((item?.bundle_group_count || 0) > 0 || (item?.option_group_count || 0) > 0 || (item?.is_variant || 0) > 0) && isSession;
|
|
176
191
|
}
|
|
192
|
+
|
|
193
|
+
/**
|
|
194
|
+
* 拼装 requiresDetail payload;showConfig 与 info2 弹窗内部判断一致。
|
|
195
|
+
*/
|
|
177
196
|
function buildRequiresDetailPayload(item, ctx) {
|
|
178
197
|
const isOnlySession = getIsOnlySession(item);
|
|
179
|
-
const isEject = getIsEject(item,
|
|
198
|
+
const isEject = getIsEject(item, ctx?.type || 'select');
|
|
180
199
|
return {
|
|
181
200
|
item,
|
|
182
201
|
showConfig: {
|
|
183
|
-
option: (
|
|
184
|
-
session: (0,
|
|
185
|
-
variant: (
|
|
186
|
-
package: (
|
|
187
|
-
number: Boolean(item
|
|
202
|
+
option: (item?.option_group_count || 0) > 0,
|
|
203
|
+
session: (0, _BookingContext.isSessionProduct)(item),
|
|
204
|
+
variant: (item?.is_variant || 0) > 0,
|
|
205
|
+
package: (item?.bundle_group_count || 0) > 0,
|
|
206
|
+
number: Boolean(item?.open_sold_weight)
|
|
188
207
|
},
|
|
189
208
|
isOnlySession,
|
|
190
209
|
isEject: isEject ? 1 : 0,
|
|
191
|
-
customerId: ctx
|
|
192
|
-
date: formatBookingDateForUI(ctx
|
|
210
|
+
customerId: ctx?.customerId,
|
|
211
|
+
date: formatBookingDateForUI(ctx?.date),
|
|
193
212
|
productData: item
|
|
194
213
|
};
|
|
195
214
|
}
|
|
215
|
+
|
|
216
|
+
/**
|
|
217
|
+
* 用 item.cartDetailValue 拼装一个 cacheItem 雏形(与 info2 `handleDirectAddService` 等价路径)。
|
|
218
|
+
* 这里只补 `_extend.start_date / quantity / other` 等运行态字段;后续走 getProductExtend 才会补齐资源 / 时间。
|
|
219
|
+
*/
|
|
196
220
|
function buildCacheItemFromCartDetail(item, ctx) {
|
|
197
|
-
var _a;
|
|
198
221
|
const cartDetailValue = item.cartDetailValue || {};
|
|
199
222
|
const other = JSON.parse(JSON.stringify(cartDetailValue || {}));
|
|
200
223
|
other.session = cartDetailValue.session;
|
|
224
|
+
/** 列表/接口可能只带 product_id 不带 id,勿用 item.id 覆盖掉已有 product_id */
|
|
201
225
|
const resolvedId = item.id ?? item.product_id;
|
|
202
|
-
let extend = (0,
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
{ date: ctx == null ? void 0 : ctx.date }
|
|
214
|
-
);
|
|
226
|
+
let extend = (0, _BookingContext.applySessionTimesToExtend)(item, {
|
|
227
|
+
start_date: ctx?.date || undefined,
|
|
228
|
+
/** 列表连点 / 防抖合并时以 ctx.quantity 为准,避免 cartDetailValue 默认 1 盖掉合并数量 */
|
|
229
|
+
quantity: ctx?.quantity ?? cartDetailValue?.quantity ?? 1,
|
|
230
|
+
product_name: item.title,
|
|
231
|
+
other,
|
|
232
|
+
isNormalProduct: !(0, _BookingContext.isBookingProduct)(item),
|
|
233
|
+
price: item?._extend?.price ?? item?.price
|
|
234
|
+
}, {
|
|
235
|
+
date: ctx?.date
|
|
236
|
+
});
|
|
215
237
|
return {
|
|
216
238
|
...item,
|
|
217
239
|
id: resolvedId,
|
|
@@ -221,104 +243,119 @@ function buildCacheItemFromCartDetail(item, ctx) {
|
|
|
221
243
|
new: 1
|
|
222
244
|
};
|
|
223
245
|
}
|
|
246
|
+
|
|
247
|
+
/**
|
|
248
|
+
* 用 Info2 callback 的 (e, extension_type, detail) 拼装 cacheItem。
|
|
249
|
+
*
|
|
250
|
+
* 保留 detail._extend 中的 pricing / note(规格弹窗改价、备注等),
|
|
251
|
+
* 再叠加 session 时间、ctx.quantity 等运行态字段;other 以 callback `e` 为准。
|
|
252
|
+
*/
|
|
224
253
|
function buildCacheItemFromDetail(item, detailResult, ctx) {
|
|
225
|
-
var _a, _b, _c;
|
|
226
254
|
const _currentItem = detailResult.detail || item;
|
|
227
255
|
const _detail = _currentItem;
|
|
228
|
-
const detailExtend =
|
|
256
|
+
const detailExtend = _detail?._extend || {};
|
|
229
257
|
const other = JSON.parse(JSON.stringify(detailResult.e || {}));
|
|
230
|
-
other.session =
|
|
258
|
+
other.session = detailResult.e?.session;
|
|
231
259
|
const resolvedId = _currentItem.id ?? _currentItem.product_id;
|
|
232
|
-
const mergedItem = {
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
260
|
+
const mergedItem = {
|
|
261
|
+
...item,
|
|
262
|
+
..._detail,
|
|
263
|
+
extension_type: _detail.extension_type ?? item.extension_type
|
|
264
|
+
};
|
|
265
|
+
const runtimeExtend = (0, _BookingContext.applySessionTimesToExtend)(mergedItem, {
|
|
266
|
+
start_date: ctx?.date || detailExtend.start_date || undefined,
|
|
267
|
+
quantity: ctx?.quantity ?? detailResult.e?.quantity ?? detailExtend.quantity ?? 1,
|
|
268
|
+
price: detailExtend.price ?? _detail?.price ?? item?.price,
|
|
269
|
+
product_name: _currentItem.title ?? detailExtend.product_name,
|
|
270
|
+
other,
|
|
271
|
+
isNormalProduct: !(0, _BookingContext.isBookingProduct)(mergedItem)
|
|
272
|
+
}, {
|
|
273
|
+
date: ctx?.date
|
|
274
|
+
});
|
|
245
275
|
const extend = {
|
|
246
276
|
...detailExtend,
|
|
247
277
|
...runtimeExtend,
|
|
248
278
|
other
|
|
249
279
|
};
|
|
250
|
-
const note = detailExtend.note ??
|
|
280
|
+
const note = detailExtend.note ?? _detail?.note;
|
|
251
281
|
return {
|
|
252
282
|
..._detail,
|
|
253
283
|
id: resolvedId,
|
|
254
284
|
product_id: resolvedId,
|
|
255
285
|
extension_type: mergedItem.extension_type,
|
|
256
|
-
_key:
|
|
257
|
-
...note != null && note !==
|
|
286
|
+
_key: detailResult.e?.key,
|
|
287
|
+
...(note != null && note !== '' ? {
|
|
288
|
+
note: String(note)
|
|
289
|
+
} : {}),
|
|
258
290
|
_extend: extend,
|
|
259
291
|
new: 1
|
|
260
292
|
};
|
|
261
293
|
}
|
|
294
|
+
|
|
295
|
+
/**
|
|
296
|
+
* `transformDetailToProductAndBooking`:把 cacheItem 拆成 OS `addProductToOrder` 所需的 `(product, booking)`。
|
|
297
|
+
*
|
|
298
|
+
* - `product` 走 `transformBaseProductToOrderProduct`(沿用 BaseSales 现有 mapper)。
|
|
299
|
+
* - `booking` 走 `cacheItemToBookingInput`(严格按 TEMP_ORDER_FIELDS_SUMMARY.md 协议)。
|
|
300
|
+
* - 普通商品(无 duration / 无 schedules)不产 booking,与 info2 一致。
|
|
301
|
+
*/
|
|
262
302
|
function transformDetailToProductAndBooking(cacheItem, ctx) {
|
|
263
303
|
const preparedCacheItem = prepareBookingCacheItem(cacheItem, withDerivedBookingCtx(ctx));
|
|
264
304
|
const payload = buildBasePayloadFromCacheItem(preparedCacheItem, ctx);
|
|
265
|
-
const productInput = (0,
|
|
305
|
+
const productInput = (0, _transformBaseProductToOrderProduct.transformBaseProductToOrderProduct)({
|
|
266
306
|
payload,
|
|
267
307
|
sourceProduct: preparedCacheItem
|
|
268
308
|
});
|
|
269
309
|
if (!productInput) {
|
|
270
|
-
throw new Error(
|
|
271
|
-
"[BookingTicket] transformDetailToProductAndBooking: product transform failed (missing numeric item.id / item.product_id)"
|
|
272
|
-
);
|
|
310
|
+
throw new Error('[BookingTicket] transformDetailToProductAndBooking: product transform failed (missing numeric item.id / item.product_id)');
|
|
273
311
|
}
|
|
274
312
|
const isNormalProduct = isNormalBookingProduct(preparedCacheItem);
|
|
275
313
|
let booking;
|
|
276
314
|
if (!isNormalProduct) {
|
|
277
|
-
booking = (0,
|
|
315
|
+
booking = (0, _BookingContext.cacheItemToBookingInput)(preparedCacheItem, {
|
|
316
|
+
bookingConfig: ctx?.bookingConfig
|
|
317
|
+
});
|
|
278
318
|
}
|
|
279
|
-
return {
|
|
319
|
+
return {
|
|
320
|
+
product: productInput,
|
|
321
|
+
booking,
|
|
322
|
+
cacheItem: preparedCacheItem
|
|
323
|
+
};
|
|
280
324
|
}
|
|
325
|
+
|
|
326
|
+
/**
|
|
327
|
+
* 把 cacheItem._extend.other 中的字段 + 顶层运行态拼成 `BaseProductDetailPayload`。
|
|
328
|
+
*/
|
|
281
329
|
function buildBasePayloadFromCacheItem(cacheItem, ctx) {
|
|
282
|
-
|
|
283
|
-
const
|
|
284
|
-
const
|
|
285
|
-
const
|
|
286
|
-
const
|
|
287
|
-
const productSku = (0, import_weighingProductSku.buildProductSkuFromCacheItem)(cacheItem);
|
|
330
|
+
const other = cacheItem?._extend?.other || {};
|
|
331
|
+
const quantity = ctx?.quantity != null && ctx.quantity > 0 ? ctx.quantity : cacheItem?._extend?.quantity ?? 1;
|
|
332
|
+
const resolvedPid = cacheItem?.product_id ?? cacheItem?.id;
|
|
333
|
+
const extend = cacheItem?._extend || {};
|
|
334
|
+
const productSku = (0, _weighingProductSku.buildProductSkuFromCacheItem)(cacheItem);
|
|
288
335
|
return {
|
|
289
|
-
id:
|
|
336
|
+
id: cacheItem?.id ?? cacheItem?.product_id,
|
|
290
337
|
product_id: resolvedPid,
|
|
291
|
-
variant_id:
|
|
338
|
+
variant_id: other?.product_variant_id ?? other?.variant_id ?? 0,
|
|
292
339
|
quantity,
|
|
293
340
|
// 规格弹窗本次选择是 option 权威源,避免目录/旧订单里的空 option 覆盖它。
|
|
294
|
-
product_sku: productSku ? {
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
341
|
+
product_sku: productSku ? {
|
|
342
|
+
...productSku,
|
|
343
|
+
option: other?.option || []
|
|
344
|
+
} : undefined,
|
|
345
|
+
option: other?.option || [],
|
|
346
|
+
bundle: other?.bundle || extend?.skuValue?.bundle || extend?._skuValue?.bundle || [],
|
|
347
|
+
unique: other?.unique,
|
|
348
|
+
session: other?.session,
|
|
349
|
+
note: extend?.note,
|
|
350
|
+
price: extend?.price ?? cacheItem?.price,
|
|
351
|
+
selling_price: extend?.price ?? cacheItem?.price,
|
|
352
|
+
line_total: extend?.total,
|
|
353
|
+
total: extend?.total,
|
|
354
|
+
origin_total: extend?.origin_total,
|
|
355
|
+
price_override: extend?.priceOverride,
|
|
356
|
+
bundle_edit: extend?.bundle_edit,
|
|
357
|
+
discount_reason: extend?.discount_reason,
|
|
358
|
+
discount_list: cacheItem?.discount_list,
|
|
309
359
|
_extend: extend
|
|
310
360
|
};
|
|
311
|
-
}
|
|
312
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
313
|
-
0 && (module.exports = {
|
|
314
|
-
buildCacheItemFromCartDetail,
|
|
315
|
-
buildCacheItemFromDetail,
|
|
316
|
-
buildRequiresDetailPayload,
|
|
317
|
-
decideAddProduct,
|
|
318
|
-
decideAfterDetail,
|
|
319
|
-
decideAutoClose,
|
|
320
|
-
getIsEject,
|
|
321
|
-
getIsOnlySession,
|
|
322
|
-
prepareBookingCacheItem,
|
|
323
|
-
transformDetailToProductAndBooking
|
|
324
|
-
});
|
|
361
|
+
}
|