@pisell/pisellos 0.0.569 → 0.10.2
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 +10 -6
- package/dist/index.d.ts +0 -1
- package/dist/index.js +0 -3
- package/dist/model/strategy/adapter/promotion/index.js +9 -0
- package/dist/model/strategy/adapter/walletPass/evaluator.js +7 -5
- package/dist/model/strategy/adapter/walletPass/example.js +26 -3
- package/dist/model/strategy/adapter/walletPass/index.js +5 -5
- package/dist/model/strategy/adapter/walletPass/type.d.ts +0 -3
- package/dist/model/strategy/adapter/walletPass/utils.d.ts +0 -26
- package/dist/model/strategy/adapter/walletPass/utils.js +17 -92
- package/dist/model/strategy/strategy-example.js +19 -5
- package/dist/modules/BaseModule.d.ts +1 -1
- package/dist/modules/BaseModule.js +8 -10
- package/dist/modules/Cart/index.js +3 -0
- package/dist/modules/Cart/utils/cartProduct.js +1 -0
- package/dist/modules/Cart/utils/cartResource.js +0 -2
- package/dist/modules/Cart/utils/changePrice.js +9 -16
- package/dist/modules/Date/index.js +5 -1
- package/dist/modules/Discount/index.d.ts +0 -1
- package/dist/modules/Discount/index.js +7 -22
- package/dist/modules/Discount/types.d.ts +0 -1
- package/dist/modules/OpenData/index.js +2 -0
- package/dist/modules/Order/index.js +70 -40
- package/dist/modules/Payment/index.js +162 -97
- package/dist/modules/Payment/types.d.ts +4 -8
- package/dist/modules/Payment/walletpass.d.ts +0 -2
- package/dist/modules/Payment/walletpass.js +5 -4
- package/dist/modules/ProductList/index.d.ts +1 -1
- package/dist/modules/ProductList/index.js +3 -12
- package/dist/modules/ProductList/types.d.ts +0 -1
- package/dist/modules/Rules/index.js +126 -427
- package/dist/modules/SalesSummary/utils.js +1 -2
- package/dist/modules/Schedule/getDateIsInSchedule.js +0 -5
- package/dist/modules/Schedule/index.js +1 -0
- package/dist/modules/Schedule/utils.js +1 -0
- package/dist/modules/Step/index.js +1 -0
- package/dist/modules/Summary/utils.js +22 -43
- package/dist/plugins/request.js +4 -1
- package/dist/plugins/window.js +6 -2
- package/dist/server/index.js +129 -97
- package/dist/server/modules/menu/index.js +41 -32
- package/dist/server/modules/order/index.js +4 -2
- package/dist/server/modules/products/index.js +42 -24
- package/dist/server/modules/quotation/index.js +38 -29
- package/dist/server/modules/resource/index.js +4 -3
- package/dist/server/modules/schedule/index.js +35 -27
- package/dist/server/utils/product.js +1 -0
- package/dist/solution/BaseSales/index.js +41 -38
- package/dist/solution/BookingByStep/index.d.ts +1 -1
- package/dist/solution/BookingByStep/index.js +60 -11
- package/dist/solution/BookingByStep/utils/capacity.js +11 -1
- package/dist/solution/BookingByStep/utils/resources.js +3 -1
- package/dist/solution/BookingByStep/utils/timeslots.js +43 -2
- package/dist/solution/BookingTicket/index.d.ts +1 -1
- package/dist/solution/BookingTicket/index.js +2 -0
- package/dist/solution/BookingTicket/utils/scan/cloudSearch.js +7 -6
- package/dist/solution/BookingTicket/utils/scan/handleScan.js +31 -25
- package/dist/solution/BookingTicket/utils/scan/index.js +10 -6
- package/dist/solution/BuyTickets/index.js +12 -9
- package/dist/solution/Checkout/index.js +252 -177
- package/dist/solution/Checkout/utils/index.js +16 -4
- package/dist/solution/RegisterAndLogin/index.js +76 -30
- package/dist/solution/ScanOrder/index.js +60 -50
- package/dist/solution/ShopDiscount/index.js +14 -15
- package/dist/solution/ShopDiscount/types.d.ts +4 -5
- package/dist/solution/ShopDiscount/utils.d.ts +0 -9
- package/dist/solution/ShopDiscount/utils.js +0 -9
- package/dist/solution/VenueBooking/index.d.ts +3 -31
- package/dist/solution/VenueBooking/index.js +496 -651
- package/dist/solution/VenueBooking/types.d.ts +1 -3
- package/dist/solution/VenueBooking/types.js +0 -1
- package/dist/solution/VenueBooking/utils/dateSummary.d.ts +2 -2
- package/dist/solution/VenueBooking/utils/dateSummary.js +25 -12
- package/dist/solution/VenueBooking/utils/timeSlot.d.ts +0 -2
- package/dist/solution/VenueBooking/utils/timeSlot.js +4 -9
- package/dist/types/index.d.ts +1 -1
- package/dist/utils/task.js +18 -15
- package/dist/utils/watch.js +1 -0
- package/lib/apis/picoding.js +0 -2
- package/lib/core/index.js +132 -130
- package/lib/effects/index.js +57 -46
- package/lib/index.d.ts +0 -1
- package/lib/index.js +50 -92
- package/lib/model/index.js +21 -14
- package/lib/model/strategy/adapter/dataVariant/adapter.js +50 -38
- package/lib/model/strategy/adapter/dataVariant/evaluator.js +236 -162
- package/lib/model/strategy/adapter/dataVariant/examples.js +237 -229
- package/lib/model/strategy/adapter/dataVariant/index.js +34 -39
- package/lib/model/strategy/adapter/dataVariant/type.js +28 -57
- package/lib/model/strategy/adapter/index.js +64 -100
- package/lib/model/strategy/adapter/itemRule/adapter.js +144 -156
- package/lib/model/strategy/adapter/itemRule/evaluator.js +48 -36
- package/lib/model/strategy/adapter/itemRule/examples.js +225 -295
- package/lib/model/strategy/adapter/itemRule/index.js +57 -83
- package/lib/model/strategy/adapter/itemRule/type.js +36 -97
- package/lib/model/strategy/adapter/promotion/adapter.js +63 -84
- package/lib/model/strategy/adapter/promotion/evaluator.js +231 -381
- package/lib/model/strategy/adapter/promotion/examples.js +159 -139
- package/lib/model/strategy/adapter/promotion/index.js +49 -1
- package/lib/model/strategy/adapter/promotion/type.js +35 -199
- package/lib/model/strategy/adapter/type.js +16 -4
- package/lib/model/strategy/adapter/walletPass/evaluator.js +152 -180
- package/lib/model/strategy/adapter/walletPass/example.js +190 -217
- package/lib/model/strategy/adapter/walletPass/index.js +51 -75
- package/lib/model/strategy/adapter/walletPass/locales.js +58 -36
- package/lib/model/strategy/adapter/walletPass/type.d.ts +0 -3
- package/lib/model/strategy/adapter/walletPass/type.js +16 -4
- package/lib/model/strategy/adapter/walletPass/utils.d.ts +0 -26
- package/lib/model/strategy/adapter/walletPass/utils.js +383 -678
- package/lib/model/strategy/engine.js +168 -270
- package/lib/model/strategy/index.js +34 -49
- package/lib/model/strategy/strategy-example.js +239 -243
- package/lib/model/strategy/type.js +40 -100
- package/lib/modules/Account/index.js +53 -39
- package/lib/modules/Account/types.js +33 -20
- package/lib/modules/AccountList/index.js +154 -116
- package/lib/modules/AccountList/types.js +31 -30
- package/lib/modules/AccountList/utils.js +30 -18
- package/lib/modules/BaseModule.d.ts +1 -1
- package/lib/modules/BaseModule.js +46 -25
- package/lib/modules/BookingContext/index.js +136 -158
- package/lib/modules/BookingContext/types.js +32 -46
- package/lib/modules/BookingContext/utils/buildCacheItemFromOrderLine.js +143 -131
- package/lib/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.js +82 -75
- package/lib/modules/BookingContext/utils/cacheItemToBookingInput.js +150 -170
- package/lib/modules/BookingContext/utils/flexible.js +55 -38
- package/lib/modules/BookingContext/utils/formatResourceList.js +34 -19
- package/lib/modules/BookingContext/utils/index.js +41 -124
- package/lib/modules/BookingContext/utils/noResource.js +70 -58
- package/lib/modules/BookingContext/utils/orderLineDisplay.js +41 -14
- package/lib/modules/BookingContext/utils/productExtend.js +155 -202
- package/lib/modules/BookingContext/utils/resourceErrors.js +53 -53
- package/lib/modules/BookingContext/utils/resourceSelection.js +41 -19
- package/lib/modules/BookingContext/utils/resources.js +167 -209
- package/lib/modules/BookingContext/utils/serviceTimes.js +116 -115
- package/lib/modules/BookingContext/utils/timeSlices.js +80 -70
- package/lib/modules/Cart/index.js +124 -170
- package/lib/modules/Cart/types.js +51 -46
- package/lib/modules/Cart/utils/cartAccount.js +39 -40
- package/lib/modules/Cart/utils/cartDate.js +61 -56
- package/lib/modules/Cart/utils/cartDiscount.js +33 -28
- package/lib/modules/Cart/utils/cartNote.js +32 -27
- package/lib/modules/Cart/utils/cartProduct.js +251 -321
- package/lib/modules/Cart/utils/cartRelationForms.js +35 -29
- package/lib/modules/Cart/utils/cartResource.js +78 -72
- package/lib/modules/Cart/utils/changePrice.js +50 -28
- package/lib/modules/Cart/utils/index.js +48 -106
- package/lib/modules/Customer/constants.js +34 -13
- package/lib/modules/Customer/index.js +169 -232
- package/lib/modules/Customer/types.js +35 -38
- package/lib/modules/Date/index.js +115 -116
- package/lib/modules/Date/types.js +28 -16
- package/lib/modules/Date/utils.js +123 -174
- package/lib/modules/Discount/index.d.ts +0 -1
- package/lib/modules/Discount/index.js +128 -130
- package/lib/modules/Discount/types.d.ts +0 -1
- package/lib/modules/Discount/types.js +31 -9
- package/lib/modules/Guests/index.js +56 -30
- package/lib/modules/Guests/types.js +33 -23
- package/lib/modules/Holder/index.js +189 -209
- package/lib/modules/Holder/types.js +16 -4
- package/lib/modules/Holder/utils.js +49 -20
- package/lib/modules/OpenData/index.js +76 -69
- package/lib/modules/OpenData/types.js +16 -4
- package/lib/modules/OpenData/utils.js +78 -44
- package/lib/modules/Order/index.js +1909 -1572
- package/lib/modules/Order/types.js +35 -78
- package/lib/modules/Order/utils/bundleDiscountHydration.js +74 -41
- package/lib/modules/Order/utils/manualProductDiscount.js +123 -124
- package/lib/modules/Order/utils/orderCollectionIdentity.js +210 -148
- package/lib/modules/Order/utils.js +634 -799
- package/lib/modules/Payment/cash.js +33 -20
- package/lib/modules/Payment/cashRecommendationAlgorithm.js +76 -145
- package/lib/modules/Payment/eftpos.js +30 -16
- package/lib/modules/Payment/index.js +378 -518
- package/lib/modules/Payment/mx51.js +0 -1
- package/lib/modules/Payment/types.d.ts +4 -8
- package/lib/modules/Payment/types.js +107 -216
- package/lib/modules/Payment/utils.js +48 -51
- package/lib/modules/Payment/walletpass.d.ts +0 -2
- package/lib/modules/Payment/walletpass.js +211 -226
- package/lib/modules/Product/index.js +46 -51
- package/lib/modules/Product/types.js +16 -4
- package/lib/modules/Product/utils.js +33 -32
- package/lib/modules/ProductList/index.d.ts +1 -1
- package/lib/modules/ProductList/index.js +117 -117
- package/lib/modules/ProductList/types.d.ts +0 -1
- package/lib/modules/ProductList/types.js +31 -9
- package/lib/modules/Quotation/index.js +100 -66
- package/lib/modules/Quotation/types.js +16 -4
- package/lib/modules/Resource/index.js +59 -27
- package/lib/modules/Resource/types.js +32 -22
- package/lib/modules/Resource/utils.js +38 -30
- package/lib/modules/ResourcePlanner/index.js +61 -60
- package/lib/modules/ResourcePlanner/planner.js +384 -346
- package/lib/modules/ResourcePlanner/types.js +16 -4
- package/lib/modules/Rules/index.js +903 -1475
- package/lib/modules/Rules/types.js +40 -17
- package/lib/modules/SalesSummary/index.js +90 -85
- package/lib/modules/SalesSummary/types.js +16 -4
- package/lib/modules/SalesSummary/utils.js +427 -351
- package/lib/modules/ScanOrderLogger/index.js +79 -59
- package/lib/modules/ScanOrderLogger/providers/feishu.js +78 -54
- package/lib/modules/ScanOrderLogger/providers/grafana.js +36 -13
- package/lib/modules/ScanOrderLogger/types.js +16 -4
- package/lib/modules/Schedule/getDateIsInSchedule.js +163 -339
- package/lib/modules/Schedule/index.js +114 -100
- package/lib/modules/Schedule/type.js +16 -4
- package/lib/modules/Schedule/types.js +16 -4
- package/lib/modules/Schedule/utils.js +291 -433
- package/lib/modules/Step/index.js +52 -40
- package/lib/modules/Step/tyeps.js +16 -4
- package/lib/modules/Summary/index.js +71 -66
- package/lib/modules/Summary/types.js +16 -4
- package/lib/modules/Summary/utils.js +418 -791
- package/lib/modules/SurchargeList/index.js +60 -46
- package/lib/modules/SurchargeList/types.js +16 -4
- package/lib/modules/index.js +63 -245
- package/lib/plugins/app.js +16 -4
- package/lib/plugins/index.js +25 -36
- package/lib/plugins/request.js +126 -137
- package/lib/plugins/shopStore.js +16 -4
- package/lib/plugins/user.js +16 -4
- package/lib/plugins/window.js +179 -171
- package/lib/server/index.js +2337 -2675
- package/lib/server/modules/floor-plan/index.js +123 -102
- package/lib/server/modules/floor-plan/types.js +30 -15
- package/lib/server/modules/index.js +68 -106
- package/lib/server/modules/menu/index.js +122 -146
- package/lib/server/modules/menu/types.js +31 -18
- package/lib/server/modules/order/index.js +642 -567
- package/lib/server/modules/order/types.js +32 -117
- package/lib/server/modules/order/utils/filterBookings.js +194 -219
- package/lib/server/modules/order/utils/filterOrders.js +92 -118
- package/lib/server/modules/payment/index.js +83 -59
- package/lib/server/modules/payment/types.js +16 -4
- package/lib/server/modules/products/index.js +459 -575
- package/lib/server/modules/products/types.js +34 -44
- package/lib/server/modules/quotation/index.js +172 -137
- package/lib/server/modules/quotation/types.js +31 -21
- package/lib/server/modules/resource/index.js +184 -213
- package/lib/server/modules/resource/types.js +33 -42
- package/lib/server/modules/schedule/index.js +123 -135
- package/lib/server/modules/schedule/types.js +21 -14
- package/lib/server/modules/schedule/utils.js +163 -334
- package/lib/server/types.js +16 -4
- package/lib/server/utils/index.js +23 -25
- package/lib/server/utils/product.js +139 -196
- package/lib/server/utils/schedule.js +41 -34
- package/lib/server/utils/small-ticket.js +456 -478
- package/lib/server/utils/time.js +49 -40
- package/lib/solution/BaseSales/index.js +1016 -850
- package/lib/solution/BaseSales/types.js +37 -41
- package/lib/solution/BaseSales/utils/cartPromotion.js +460 -611
- package/lib/solution/BaseSales/utils/parseSalesResponse.js +105 -85
- package/lib/solution/BaseSales/utils/quotationPrice.js +114 -56
- package/lib/solution/BaseSales/utils/transformBaseProductToOrderProduct.js +143 -102
- package/lib/solution/BaseSales/utils.js +140 -155
- package/lib/solution/BookingByStep/index.d.ts +1 -1
- package/lib/solution/BookingByStep/index.js +1340 -1530
- package/lib/solution/BookingByStep/types.js +99 -40
- package/lib/solution/BookingByStep/utils/capacity.js +160 -192
- package/lib/solution/BookingByStep/utils/products.js +52 -42
- package/lib/solution/BookingByStep/utils/resources.js +330 -527
- package/lib/solution/BookingByStep/utils/stock.js +44 -65
- package/lib/solution/BookingByStep/utils/timeslots.js +131 -129
- package/lib/solution/BookingTicket/index.d.ts +1 -1
- package/lib/solution/BookingTicket/index.js +459 -543
- package/lib/solution/BookingTicket/types.js +77 -99
- package/lib/solution/BookingTicket/utils/addProductDecision.js +184 -219
- package/lib/solution/BookingTicket/utils/addTimeAvailability.js +89 -58
- package/lib/solution/BookingTicket/utils/bookingStatus.js +78 -107
- package/lib/solution/BookingTicket/utils/cartView.js +94 -110
- package/lib/solution/BookingTicket/utils/exampleData.js +0 -185
- package/lib/solution/BookingTicket/utils/orderCustomer.js +41 -18
- package/lib/solution/BookingTicket/utils/resolveBestAddTimePlan.js +86 -219
- package/lib/solution/BookingTicket/utils/scan/applyGlobalScan.js +93 -144
- package/lib/solution/BookingTicket/utils/scan/cloudSearch.js +91 -79
- package/lib/solution/BookingTicket/utils/scan/formatGlobalScan.js +41 -54
- package/lib/solution/BookingTicket/utils/scan/handleScan.js +81 -84
- package/lib/solution/BookingTicket/utils/scan/index.js +104 -98
- package/lib/solution/BookingTicket/utils/scan/scanCache.js +43 -90
- package/lib/solution/BookingTicket/utils/scan/scanProductValues.js +64 -52
- package/lib/solution/BookingTicket/utils/sessionCatalogStale.js +58 -56
- package/lib/solution/BuyTickets/index.js +70 -67
- package/lib/solution/BuyTickets/types.js +38 -22
- package/lib/solution/Checkout/index.js +1158 -1451
- package/lib/solution/Checkout/types.js +61 -91
- package/lib/solution/Checkout/utils/index.js +156 -228
- package/lib/solution/PlaceOrder/index.js +0 -55
- package/lib/solution/RegisterAndLogin/config.js +460 -493
- package/lib/solution/RegisterAndLogin/index.js +630 -633
- package/lib/solution/RegisterAndLogin/types.js +76 -189
- package/lib/solution/RegisterAndLogin/utils.js +125 -183
- package/lib/solution/Sales/index.js +320 -317
- package/lib/solution/Sales/types.js +33 -27
- package/lib/solution/ScanOrder/index.js +862 -831
- package/lib/solution/ScanOrder/types.js +34 -33
- package/lib/solution/ScanOrder/utils.js +371 -406
- package/lib/solution/ShopDiscount/index.js +233 -235
- package/lib/solution/ShopDiscount/types.d.ts +4 -5
- package/lib/solution/ShopDiscount/types.js +37 -15
- package/lib/solution/ShopDiscount/utils.d.ts +0 -9
- package/lib/solution/ShopDiscount/utils.js +172 -309
- package/lib/solution/UnifiedBookingSales/index.js +405 -379
- package/lib/solution/UnifiedBookingSales/types.js +31 -12
- package/lib/solution/VenueBooking/index.d.ts +3 -31
- package/lib/solution/VenueBooking/index.js +916 -967
- package/lib/solution/VenueBooking/types.d.ts +1 -3
- package/lib/solution/VenueBooking/types.js +39 -20
- package/lib/solution/VenueBooking/utils/dateSummary.d.ts +2 -2
- package/lib/solution/VenueBooking/utils/dateSummary.js +62 -25
- package/lib/solution/VenueBooking/utils/resource.js +54 -31
- package/lib/solution/VenueBooking/utils/slotMerge.js +107 -94
- package/lib/solution/VenueBooking/utils/timeSlot.d.ts +0 -2
- package/lib/solution/VenueBooking/utils/timeSlot.js +133 -138
- package/lib/solution/VenueBooking/utils.js +67 -130
- package/lib/solution/index.js +41 -124
- package/lib/store/createStore.js +29 -32
- package/lib/types/index.d.ts +1 -1
- package/lib/types/index.js +16 -4
- package/lib/utils/task.js +36 -36
- package/lib/utils/watch.js +47 -81
- package/package.json +2 -4
- package/dist/solution/VenueBooking/utils/smartPricing.d.ts +0 -70
- package/dist/solution/VenueBooking/utils/smartPricing.js +0 -233
- package/lib/solution/VenueBooking/utils/smartPricing.d.ts +0 -70
- package/lib/solution/VenueBooking/utils/smartPricing.js +0 -192
|
@@ -1,120 +1,143 @@
|
|
|
1
|
-
|
|
1
|
+
var __create = Object.create;
|
|
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);
|
|
2
28
|
|
|
3
|
-
|
|
4
|
-
|
|
29
|
+
// src/modules/BookingContext/utils/buildCacheItemFromOrderLine.ts
|
|
30
|
+
var buildCacheItemFromOrderLine_exports = {};
|
|
31
|
+
__export(buildCacheItemFromOrderLine_exports, {
|
|
32
|
+
buildCacheItemFromOrderLine: () => buildCacheItemFromOrderLine
|
|
5
33
|
});
|
|
6
|
-
exports
|
|
7
|
-
var
|
|
8
|
-
var
|
|
9
|
-
var
|
|
10
|
-
var
|
|
11
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
34
|
+
module.exports = __toCommonJS(buildCacheItemFromOrderLine_exports);
|
|
35
|
+
var import_dayjs = __toESM(require("dayjs"));
|
|
36
|
+
var import_utils = require("../../Order/utils");
|
|
37
|
+
var import_manualProductDiscount = require("../../Order/utils/manualProductDiscount");
|
|
38
|
+
var import_orderLineDisplay = require("./orderLineDisplay");
|
|
12
39
|
function safeFormat(value, fmt) {
|
|
13
|
-
if (value ===
|
|
14
|
-
|
|
15
|
-
|
|
40
|
+
if (value === void 0 || value === null)
|
|
41
|
+
return void 0;
|
|
42
|
+
const d = (0, import_dayjs.default)(value);
|
|
43
|
+
if (!d.isValid())
|
|
44
|
+
return void 0;
|
|
16
45
|
return d.format(fmt);
|
|
17
46
|
}
|
|
18
47
|
function normalizeTimeString(value) {
|
|
19
|
-
if (value ===
|
|
20
|
-
|
|
48
|
+
if (value === void 0 || value === null)
|
|
49
|
+
return void 0;
|
|
50
|
+
if (typeof value === "string") {
|
|
21
51
|
const t = value.trim();
|
|
22
52
|
const hhmmFromHhmmss = t.match(/^(\d{1,2}:\d{2}):\d{2}$/);
|
|
23
|
-
if (hhmmFromHhmmss)
|
|
24
|
-
|
|
53
|
+
if (hhmmFromHhmmss)
|
|
54
|
+
return hhmmFromHhmmss[1];
|
|
55
|
+
if (/^\d{1,2}:\d{2}$/.test(t))
|
|
56
|
+
return t;
|
|
25
57
|
}
|
|
26
|
-
const d = (0,
|
|
27
|
-
if (d.isValid())
|
|
28
|
-
|
|
58
|
+
const d = (0, import_dayjs.default)(value);
|
|
59
|
+
if (d.isValid())
|
|
60
|
+
return d.format("HH:mm");
|
|
61
|
+
return void 0;
|
|
29
62
|
}
|
|
30
|
-
|
|
31
|
-
/**
|
|
32
|
-
* bookings[].resources[] → cacheItem._extend.resource(与 cacheItemToBookingInput.flattenResources 互逆)。
|
|
33
|
-
*/
|
|
34
63
|
function unflattenResourceMap(resources) {
|
|
35
64
|
const map = {};
|
|
36
|
-
if (!Array.isArray(resources))
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
65
|
+
if (!Array.isArray(resources))
|
|
66
|
+
return map;
|
|
67
|
+
resources.forEach((r) => {
|
|
68
|
+
const formId = r == null ? void 0 : r.form_id;
|
|
69
|
+
if (formId === void 0 || formId === null)
|
|
70
|
+
return;
|
|
40
71
|
const key = String(formId);
|
|
41
|
-
if (!map[key])
|
|
72
|
+
if (!map[key])
|
|
73
|
+
map[key] = [];
|
|
42
74
|
map[key].push({
|
|
43
75
|
form_id: formId,
|
|
44
76
|
relation_id: r.relation_id,
|
|
45
|
-
relation_type: r.relation_type ||
|
|
46
|
-
like_status: r.like_status ||
|
|
47
|
-
metadata: r.metadata ? {
|
|
48
|
-
...r.metadata
|
|
49
|
-
} : undefined,
|
|
77
|
+
relation_type: r.relation_type || "form",
|
|
78
|
+
like_status: r.like_status || "common",
|
|
79
|
+
metadata: r.metadata ? { ...r.metadata } : void 0,
|
|
50
80
|
children: r.children
|
|
51
81
|
});
|
|
52
82
|
});
|
|
53
83
|
return map;
|
|
54
84
|
}
|
|
55
|
-
|
|
56
|
-
/**
|
|
57
|
-
* 从 booking.metadata.capacity 还原 `_extend.capacity`(与 info2 ticketBooking getCapacity 对齐)。
|
|
58
|
-
* 勿用 resources[].relation_id 反推人数维度 id。
|
|
59
|
-
*/
|
|
60
85
|
function resolveCapacityFromBooking(booking) {
|
|
61
|
-
|
|
86
|
+
var _a;
|
|
87
|
+
const metaCap = (_a = booking.metadata) == null ? void 0 : _a.capacity;
|
|
62
88
|
if (Array.isArray(metaCap) && metaCap.length > 0) {
|
|
63
|
-
return metaCap.map(item => {
|
|
64
|
-
if (!item || typeof item !==
|
|
65
|
-
|
|
89
|
+
return metaCap.map((item) => {
|
|
90
|
+
if (!item || typeof item !== "object")
|
|
91
|
+
return null;
|
|
92
|
+
if (item.id === void 0 || item.id === null)
|
|
93
|
+
return null;
|
|
66
94
|
const row = {
|
|
67
95
|
id: item.id,
|
|
68
96
|
value: Number(item.value ?? 0)
|
|
69
97
|
};
|
|
70
|
-
if (item.name !==
|
|
98
|
+
if (item.name !== void 0)
|
|
99
|
+
row.name = item.name;
|
|
71
100
|
return row;
|
|
72
|
-
}).filter(item => item != null);
|
|
101
|
+
}).filter((item) => item != null);
|
|
73
102
|
}
|
|
74
|
-
if (typeof metaCap ===
|
|
75
|
-
return [{
|
|
76
|
-
id: 0,
|
|
77
|
-
value: metaCap,
|
|
78
|
-
name: ''
|
|
79
|
-
}];
|
|
103
|
+
if (typeof metaCap === "number" && Number.isFinite(metaCap)) {
|
|
104
|
+
return [{ id: 0, value: metaCap, name: "" }];
|
|
80
105
|
}
|
|
81
106
|
return [];
|
|
82
107
|
}
|
|
83
108
|
function resolveDurationForExtend(booking) {
|
|
84
109
|
const duration = booking.duration;
|
|
85
|
-
if (booking.sub_type ===
|
|
110
|
+
if (booking.sub_type === "days" || booking.is_all === 1) {
|
|
86
111
|
return duration;
|
|
87
112
|
}
|
|
88
|
-
if (typeof duration ===
|
|
113
|
+
if (typeof duration === "number" && Number.isFinite(duration)) {
|
|
89
114
|
return duration;
|
|
90
115
|
}
|
|
91
116
|
return duration;
|
|
92
117
|
}
|
|
93
|
-
|
|
94
|
-
/** booking.duration → catalog 顶层 duration 结构(供 isNormalProductByDurationSchedule 识别)。 */
|
|
95
118
|
function resolveTopLevelDuration(booking, sourceProduct) {
|
|
96
|
-
if (sourceProduct
|
|
119
|
+
if ((sourceProduct == null ? void 0 : sourceProduct.duration) !== void 0) {
|
|
97
120
|
return sourceProduct.duration;
|
|
98
121
|
}
|
|
99
122
|
const raw = booking.duration;
|
|
100
|
-
if (raw == null || raw ===
|
|
101
|
-
|
|
123
|
+
if (raw == null || raw === "")
|
|
124
|
+
return void 0;
|
|
125
|
+
if (typeof raw === "object" && raw.type) {
|
|
102
126
|
return raw;
|
|
103
127
|
}
|
|
104
|
-
const subType = booking.sub_type ===
|
|
128
|
+
const subType = booking.sub_type === "days" ? "days" : "minutes";
|
|
105
129
|
const value = Number(raw);
|
|
106
|
-
if (!Number.isFinite(value) || value <= 0)
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
value
|
|
110
|
-
};
|
|
130
|
+
if (!Number.isFinite(value) || value <= 0)
|
|
131
|
+
return void 0;
|
|
132
|
+
return { type: subType, value };
|
|
111
133
|
}
|
|
112
134
|
function resolveProductTitle(product, booking, sourceProduct) {
|
|
135
|
+
var _a, _b;
|
|
113
136
|
const metadata = product.metadata || {};
|
|
114
|
-
return sourceProduct
|
|
137
|
+
return (sourceProduct == null ? void 0 : sourceProduct.title) ?? (sourceProduct == null ? void 0 : sourceProduct.name) ?? metadata.product_title ?? metadata.product_name ?? ((_a = booking == null ? void 0 : booking.product) == null ? void 0 : _a.title) ?? ((_b = booking == null ? void 0 : booking.detail) == null ? void 0 : _b.product_title) ?? "";
|
|
115
138
|
}
|
|
116
139
|
function resolveProductCover(product, booking, sourceProduct) {
|
|
117
|
-
return sourceProduct
|
|
140
|
+
return (sourceProduct == null ? void 0 : sourceProduct.cover) ?? product.product_cover ?? "";
|
|
118
141
|
}
|
|
119
142
|
function resolveMainProductPrice(product, fallback) {
|
|
120
143
|
const metadata = product.metadata || {};
|
|
@@ -123,29 +146,22 @@ function resolveMainProductPrice(product, fallback) {
|
|
|
123
146
|
return Number.isFinite(parsed) ? parsed : fallback;
|
|
124
147
|
}
|
|
125
148
|
function mapOrderBundleToOtherBundle(bundle) {
|
|
126
|
-
return bundle.map(item => {
|
|
149
|
+
return bundle.map((item) => {
|
|
127
150
|
return {
|
|
128
151
|
...item,
|
|
129
152
|
original_price: item.original_price ?? item.bundle_selling_price ?? item.price
|
|
130
153
|
};
|
|
131
154
|
});
|
|
132
155
|
}
|
|
133
|
-
|
|
134
|
-
/**
|
|
135
|
-
* catalog 缺 product_resource 时,从 booking.resources 反推最小 product_resource 结构,
|
|
136
|
-
* 供 getResourceByIds / formatResources 渲染资源编辑 UI。
|
|
137
|
-
*
|
|
138
|
-
* @example
|
|
139
|
-
* synthesizeProductResourceFromBooking({ resources: [{ form_id: 35, relation_id: 41077 }] });
|
|
140
|
-
*/
|
|
141
156
|
function synthesizeProductResourceFromBooking(booking) {
|
|
142
|
-
const rows = booking
|
|
143
|
-
if (!Array.isArray(rows) || rows.length === 0)
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
const
|
|
148
|
-
|
|
157
|
+
const rows = booking == null ? void 0 : booking.resources;
|
|
158
|
+
if (!Array.isArray(rows) || rows.length === 0)
|
|
159
|
+
return void 0;
|
|
160
|
+
const relationIdsByForm = /* @__PURE__ */ new Map();
|
|
161
|
+
rows.forEach((row) => {
|
|
162
|
+
const formId = row == null ? void 0 : row.form_id;
|
|
163
|
+
const relationId = Number(row == null ? void 0 : row.relation_id);
|
|
164
|
+
if (formId == null || formId === "" || !Number.isFinite(relationId) || relationId <= 0) {
|
|
149
165
|
return;
|
|
150
166
|
}
|
|
151
167
|
const list = relationIdsByForm.get(formId) ?? [];
|
|
@@ -154,55 +170,48 @@ function synthesizeProductResourceFromBooking(booking) {
|
|
|
154
170
|
}
|
|
155
171
|
relationIdsByForm.set(formId, list);
|
|
156
172
|
});
|
|
157
|
-
if (relationIdsByForm.size === 0)
|
|
173
|
+
if (relationIdsByForm.size === 0)
|
|
174
|
+
return void 0;
|
|
158
175
|
return {
|
|
159
176
|
resources: Array.from(relationIdsByForm.entries()).map(([formId, relationIds]) => ({
|
|
160
177
|
id: formId,
|
|
161
178
|
status: 1,
|
|
162
|
-
type:
|
|
163
|
-
code:
|
|
179
|
+
type: "form",
|
|
180
|
+
code: "",
|
|
164
181
|
optional_resource: relationIds,
|
|
165
182
|
default_resource: []
|
|
166
183
|
}))
|
|
167
184
|
};
|
|
168
185
|
}
|
|
169
|
-
|
|
170
|
-
/**
|
|
171
|
-
* 从已加车的 order line + booking 反查 editService 所需的 cacheItem。
|
|
172
|
-
*
|
|
173
|
-
* 与 `buildCacheItemFromCartDetail` / `buildCacheItemFromDetail` 正向拼装互逆(在 getProductExtend 之前调用)。
|
|
174
|
-
* 调用方须传入与该行关联的 booking(通常 bookings[].product_uid === product.metadata.unique_identification_number)。
|
|
175
|
-
*/
|
|
176
186
|
function buildCacheItemFromOrderLine(input) {
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
sourceProduct
|
|
181
|
-
} = input;
|
|
182
|
-
const resolvedId = product.product_id ?? sourceProduct?.id;
|
|
187
|
+
var _a, _b, _c, _d, _e, _f;
|
|
188
|
+
const { product, booking, sourceProduct } = input;
|
|
189
|
+
const resolvedId = product.product_id ?? (sourceProduct == null ? void 0 : sourceProduct.id);
|
|
183
190
|
const selling = Number(product.selling_price ?? 0);
|
|
184
191
|
const original = Number(product.original_price ?? selling);
|
|
185
192
|
const mainProductPrice = resolveMainProductPrice(product, selling);
|
|
186
|
-
const startDate = safeFormat(booking.start_date,
|
|
187
|
-
const endDate = safeFormat(booking.end_date,
|
|
193
|
+
const startDate = safeFormat(booking.start_date, "YYYY-MM-DD");
|
|
194
|
+
const endDate = safeFormat(booking.end_date, "YYYY-MM-DD");
|
|
188
195
|
const startTime = normalizeTimeString(booking.start_time);
|
|
189
196
|
const endTime = normalizeTimeString(booking.end_time);
|
|
190
197
|
const resource = unflattenResourceMap(booking.resources);
|
|
191
198
|
const capacity = resolveCapacityFromBooking(booking);
|
|
192
|
-
const holderId = booking.metadata
|
|
199
|
+
const holderId = ((_a = booking.metadata) == null ? void 0 : _a.holder_id) ?? booking.holder_id;
|
|
193
200
|
const productTitle = resolveProductTitle(product, booking, sourceProduct);
|
|
194
201
|
const productCover = resolveProductCover(product, booking, sourceProduct);
|
|
195
|
-
const productOptionString = (0,
|
|
202
|
+
const productOptionString = (0, import_orderLineDisplay.buildProductOptionStringFromOrderLine)(product);
|
|
196
203
|
const other = {
|
|
197
204
|
product_variant_id: product.product_variant_id ?? 0,
|
|
198
|
-
option: (0,
|
|
199
|
-
bundle: mapOrderBundleToOtherBundle(
|
|
205
|
+
option: (0, import_utils.getProductSkuOptions)(product),
|
|
206
|
+
bundle: mapOrderBundleToOtherBundle(
|
|
207
|
+
Array.isArray(product.product_bundle) ? product.product_bundle : []
|
|
208
|
+
)
|
|
200
209
|
};
|
|
201
210
|
const extend = {
|
|
202
|
-
start_date: startDate ? (0,
|
|
203
|
-
end_date: endDate ? (0,
|
|
204
|
-
startDate: startDate ? (0,
|
|
205
|
-
endDate: endDate ? (0,
|
|
211
|
+
start_date: startDate ? (0, import_dayjs.default)(startDate) : void 0,
|
|
212
|
+
end_date: endDate ? (0, import_dayjs.default)(endDate) : void 0,
|
|
213
|
+
startDate: startDate ? (0, import_dayjs.default)(startDate) : void 0,
|
|
214
|
+
endDate: endDate ? (0, import_dayjs.default)(endDate) : void 0,
|
|
206
215
|
start_time: startTime,
|
|
207
216
|
end_time: endTime,
|
|
208
217
|
duration: resolveDurationForExtend(booking),
|
|
@@ -210,7 +219,7 @@ function buildCacheItemFromOrderLine(input) {
|
|
|
210
219
|
quantity: product.num ?? 1,
|
|
211
220
|
product_name: productTitle,
|
|
212
221
|
product_cover: productCover,
|
|
213
|
-
note: product.note ?? booking
|
|
222
|
+
note: product.note ?? ((_b = booking == null ? void 0 : booking.detail) == null ? void 0 : _b.note) ?? "",
|
|
214
223
|
price: mainProductPrice,
|
|
215
224
|
total: selling,
|
|
216
225
|
origin_total: original,
|
|
@@ -218,54 +227,53 @@ function buildCacheItemFromOrderLine(input) {
|
|
|
218
227
|
capacity,
|
|
219
228
|
holder_id: holderId,
|
|
220
229
|
other,
|
|
221
|
-
like_status: booking.like_status ||
|
|
222
|
-
discount_reason: (0,
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
230
|
+
like_status: booking.like_status || "common",
|
|
231
|
+
discount_reason: (0, import_manualProductDiscount.resolveManualDiscountMessage)(
|
|
232
|
+
product.discount_list,
|
|
233
|
+
(_c = product.metadata) == null ? void 0 : _c.product_discount_reason
|
|
234
|
+
) || void 0,
|
|
235
|
+
...productOptionString ? { product_option_string: productOptionString } : {}
|
|
226
236
|
};
|
|
227
|
-
const manualDiscount = (product.discount_list || []).find(d => d
|
|
237
|
+
const manualDiscount = (product.discount_list || []).find((d) => (d == null ? void 0 : d.type) === "product");
|
|
228
238
|
if (manualDiscount && extend.origin_total === selling) {
|
|
229
239
|
const manualAmount = Number(manualDiscount.amount ?? 0);
|
|
230
240
|
if (Number.isFinite(manualAmount) && manualAmount > 0) {
|
|
231
241
|
extend.origin_total = selling + manualAmount;
|
|
232
242
|
}
|
|
233
243
|
}
|
|
234
|
-
if (product.metadata
|
|
244
|
+
if (((_d = product.metadata) == null ? void 0 : _d.price_override) != null || manualDiscount) {
|
|
235
245
|
extend.priceOverride = selling;
|
|
236
246
|
}
|
|
237
|
-
if (booking.holder !==
|
|
247
|
+
if (booking.holder !== void 0) {
|
|
238
248
|
extend.holder = booking.holder;
|
|
239
249
|
}
|
|
240
250
|
if (Array.isArray(booking.relation_forms)) {
|
|
241
251
|
extend.relation_forms = booking.relation_forms;
|
|
242
252
|
}
|
|
243
253
|
const base = {
|
|
244
|
-
...
|
|
254
|
+
...sourceProduct || {},
|
|
245
255
|
id: resolvedId,
|
|
246
256
|
product_id: resolvedId,
|
|
247
|
-
extension_type: sourceProduct
|
|
248
|
-
title: productTitle || sourceProduct
|
|
249
|
-
price: sourceProduct
|
|
257
|
+
extension_type: (sourceProduct == null ? void 0 : sourceProduct.extension_type) ?? ((_e = booking == null ? void 0 : booking.product) == null ? void 0 : _e.extension_type) ?? (sourceProduct == null ? void 0 : sourceProduct.extension_type),
|
|
258
|
+
title: productTitle || (sourceProduct == null ? void 0 : sourceProduct.title) || ((_f = booking == null ? void 0 : booking.product) == null ? void 0 : _f.title),
|
|
259
|
+
price: (sourceProduct == null ? void 0 : sourceProduct.price) ?? selling,
|
|
250
260
|
selling_price: product.selling_price,
|
|
251
261
|
original_price: product.original_price,
|
|
252
|
-
...
|
|
253
|
-
product_option_string: productOptionString
|
|
254
|
-
} : {}),
|
|
262
|
+
...productOptionString ? { product_option_string: productOptionString } : {},
|
|
255
263
|
_extend: extend,
|
|
256
264
|
new: 0,
|
|
257
265
|
autoClose: false,
|
|
258
266
|
order_detail_id: product.order_detail_id ?? null,
|
|
259
267
|
booking_id: booking.id ?? booking.booking_id ?? 0
|
|
260
268
|
};
|
|
261
|
-
if (sourceProduct
|
|
269
|
+
if ((sourceProduct == null ? void 0 : sourceProduct.capacity) !== void 0) {
|
|
262
270
|
base.capacity = sourceProduct.capacity;
|
|
263
271
|
}
|
|
264
272
|
const topLevelDuration = resolveTopLevelDuration(booking, sourceProduct);
|
|
265
|
-
if (topLevelDuration !==
|
|
273
|
+
if (topLevelDuration !== void 0) {
|
|
266
274
|
base.duration = topLevelDuration;
|
|
267
275
|
}
|
|
268
|
-
if (sourceProduct
|
|
276
|
+
if ((sourceProduct == null ? void 0 : sourceProduct.product_resource) !== void 0) {
|
|
269
277
|
base.product_resource = sourceProduct.product_resource;
|
|
270
278
|
} else {
|
|
271
279
|
const synthesized = synthesizeProductResourceFromBooking(booking);
|
|
@@ -273,14 +281,18 @@ function buildCacheItemFromOrderLine(input) {
|
|
|
273
281
|
base.product_resource = synthesized;
|
|
274
282
|
}
|
|
275
283
|
}
|
|
276
|
-
if (Array.isArray(sourceProduct
|
|
284
|
+
if (Array.isArray(sourceProduct == null ? void 0 : sourceProduct.schedules) && sourceProduct.schedules.length) {
|
|
277
285
|
base.schedules = sourceProduct.schedules;
|
|
278
286
|
}
|
|
279
|
-
if (Array.isArray(sourceProduct
|
|
280
|
-
base[
|
|
287
|
+
if (Array.isArray(sourceProduct == null ? void 0 : sourceProduct["schedule.ids"]) && sourceProduct["schedule.ids"].length) {
|
|
288
|
+
base["schedule.ids"] = sourceProduct["schedule.ids"];
|
|
281
289
|
}
|
|
282
|
-
if (booking.schedule_event_id !==
|
|
290
|
+
if (booking.schedule_event_id !== void 0) {
|
|
283
291
|
base.schedule_event_id = booking.schedule_event_id;
|
|
284
292
|
}
|
|
285
293
|
return base;
|
|
286
|
-
}
|
|
294
|
+
}
|
|
295
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
296
|
+
0 && (module.exports = {
|
|
297
|
+
buildCacheItemFromOrderLine
|
|
298
|
+
});
|
|
@@ -1,93 +1,102 @@
|
|
|
1
|
-
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __export = (target, all) => {
|
|
6
|
+
for (var name in all)
|
|
7
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
+
};
|
|
9
|
+
var __copyProps = (to, from, except, desc) => {
|
|
10
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
+
for (let key of __getOwnPropNames(from))
|
|
12
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
+
}
|
|
15
|
+
return to;
|
|
16
|
+
};
|
|
17
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
2
18
|
|
|
3
|
-
|
|
4
|
-
|
|
19
|
+
// src/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.ts
|
|
20
|
+
var buildNormalProductCacheItemFromOrderLine_exports = {};
|
|
21
|
+
__export(buildNormalProductCacheItemFromOrderLine_exports, {
|
|
22
|
+
buildNormalProductCacheItemFromOrderLine: () => buildNormalProductCacheItemFromOrderLine
|
|
5
23
|
});
|
|
6
|
-
exports
|
|
7
|
-
var
|
|
8
|
-
var
|
|
9
|
-
/**
|
|
10
|
-
* 从已加车的普通商品 order line 反查 SkuDetailModal edit 所需的 cacheItem。
|
|
11
|
-
*
|
|
12
|
-
* 与 `buildCacheItemFromOrderLine`(预约行 + booking)并列;不含 resource / duration / holder 等预约字段。
|
|
13
|
-
*/
|
|
14
|
-
/**
|
|
15
|
-
* 解析 v2 主商品 source 价(不含 option、不含 bundle),供 SkuDetailModal / transform 使用。
|
|
16
|
-
*/
|
|
24
|
+
module.exports = __toCommonJS(buildNormalProductCacheItemFromOrderLine_exports);
|
|
25
|
+
var import_utils = require("../../Order/utils");
|
|
26
|
+
var import_orderLineDisplay = require("./orderLineDisplay");
|
|
17
27
|
function resolveSourceProductPrice(product, sourceProduct) {
|
|
28
|
+
var _a, _b, _c;
|
|
18
29
|
const metadata = product.metadata || {};
|
|
19
|
-
if (metadata.source_product_price !==
|
|
30
|
+
if (metadata.source_product_price !== void 0 && metadata.source_product_price !== null) {
|
|
20
31
|
const parsed = Number(metadata.source_product_price);
|
|
21
|
-
if (Number.isFinite(parsed))
|
|
32
|
+
if (Number.isFinite(parsed))
|
|
33
|
+
return parsed;
|
|
22
34
|
}
|
|
23
35
|
const variantId = Number(product.product_variant_id || 0);
|
|
24
36
|
if (variantId > 0) {
|
|
25
|
-
const variantList = metadata.origin
|
|
37
|
+
const variantList = ((_a = metadata.origin) == null ? void 0 : _a.variant) ?? (sourceProduct == null ? void 0 : sourceProduct.variant);
|
|
26
38
|
if (Array.isArray(variantList)) {
|
|
27
|
-
const matched = variantList.find(v => Number(v
|
|
28
|
-
const variantPrice = matched
|
|
29
|
-
if (variantPrice !==
|
|
39
|
+
const matched = variantList.find((v) => Number(v == null ? void 0 : v.id) === variantId);
|
|
40
|
+
const variantPrice = (matched == null ? void 0 : matched.price) ?? (matched == null ? void 0 : matched.base_price);
|
|
41
|
+
if (variantPrice !== void 0 && variantPrice !== null) {
|
|
30
42
|
const parsed = Number(variantPrice);
|
|
31
|
-
if (Number.isFinite(parsed))
|
|
43
|
+
if (Number.isFinite(parsed))
|
|
44
|
+
return parsed;
|
|
32
45
|
}
|
|
33
46
|
}
|
|
34
47
|
}
|
|
35
|
-
const catalogPrice = sourceProduct
|
|
36
|
-
if (catalogPrice !==
|
|
48
|
+
const catalogPrice = (sourceProduct == null ? void 0 : sourceProduct.price) ?? (sourceProduct == null ? void 0 : sourceProduct.base_price);
|
|
49
|
+
if (catalogPrice !== void 0 && catalogPrice !== null) {
|
|
37
50
|
const parsed = Number(catalogPrice);
|
|
38
|
-
if (Number.isFinite(parsed))
|
|
51
|
+
if (Number.isFinite(parsed))
|
|
52
|
+
return parsed;
|
|
39
53
|
}
|
|
40
|
-
const originPrice = metadata.origin
|
|
41
|
-
if (originPrice !==
|
|
54
|
+
const originPrice = ((_b = metadata.origin) == null ? void 0 : _b.price) ?? ((_c = metadata.origin) == null ? void 0 : _c.base_price);
|
|
55
|
+
if (originPrice !== void 0 && originPrice !== null) {
|
|
42
56
|
const parsed = Number(originPrice);
|
|
43
|
-
if (Number.isFinite(parsed))
|
|
57
|
+
if (Number.isFinite(parsed))
|
|
58
|
+
return parsed;
|
|
44
59
|
}
|
|
45
60
|
return Number(product.selling_price ?? 0);
|
|
46
61
|
}
|
|
47
|
-
|
|
48
|
-
/** 订单行 bundle → booking other.bundle(保留 original_price 供 setProductPrice 按比例分摊) */
|
|
49
62
|
function mapOrderBundleToOtherBundle(bundle) {
|
|
50
|
-
return bundle.map(item => {
|
|
63
|
+
return bundle.map((item) => {
|
|
51
64
|
const catalogOriginal = item.original_price ?? item.product_price ?? item.price ?? item.bundle_selling_price;
|
|
52
65
|
const selling = item.bundle_selling_price ?? item.price ?? catalogOriginal;
|
|
53
|
-
const {
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
const isMarkupOrMarkdown = (item.price_type === 'markdown' || item.price_type === 'markup') && (item.price_type_ext === '' || item.price_type_ext === undefined || item.price_type_ext === null);
|
|
58
|
-
if (isMarkupOrMarkdown) delete rest.original_total;
|
|
66
|
+
const { bundle_selling_price: _omitBundleSelling, ...rest } = item;
|
|
67
|
+
const isMarkupOrMarkdown = (item.price_type === "markdown" || item.price_type === "markup") && (item.price_type_ext === "" || item.price_type_ext === void 0 || item.price_type_ext === null);
|
|
68
|
+
if (isMarkupOrMarkdown)
|
|
69
|
+
delete rest.original_total;
|
|
59
70
|
return {
|
|
60
71
|
...rest,
|
|
61
72
|
price: selling,
|
|
62
73
|
original_price: catalogOriginal,
|
|
63
|
-
...
|
|
64
|
-
original_total: item.original_total ?? catalogOriginal
|
|
65
|
-
}),
|
|
74
|
+
...isMarkupOrMarkdown ? {} : { original_total: item.original_total ?? catalogOriginal },
|
|
66
75
|
num: item.num ?? item.quantity ?? 1,
|
|
67
76
|
quantity: item.quantity ?? item.num ?? 1
|
|
68
77
|
};
|
|
69
78
|
});
|
|
70
79
|
}
|
|
71
80
|
function buildNormalProductCacheItemFromOrderLine(input) {
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
} = input;
|
|
76
|
-
const resolvedId = product.product_id ?? sourceProduct?.id;
|
|
81
|
+
var _a, _b, _c, _d, _e;
|
|
82
|
+
const { product, sourceProduct } = input;
|
|
83
|
+
const resolvedId = product.product_id ?? (sourceProduct == null ? void 0 : sourceProduct.id);
|
|
77
84
|
const sourcePrice = resolveSourceProductPrice(product, sourceProduct);
|
|
78
85
|
const selling = Number(product.selling_price ?? 0);
|
|
79
86
|
const original = Number(product.original_price ?? selling);
|
|
80
|
-
const uid = product.metadata
|
|
81
|
-
const option = (0,
|
|
82
|
-
const bundle = mapOrderBundleToOtherBundle(
|
|
83
|
-
|
|
84
|
-
|
|
87
|
+
const uid = (_a = product.metadata) == null ? void 0 : _a.unique_identification_number;
|
|
88
|
+
const option = (0, import_utils.getProductSkuOptions)(product);
|
|
89
|
+
const bundle = mapOrderBundleToOtherBundle(
|
|
90
|
+
Array.isArray(product.product_bundle) ? product.product_bundle : []
|
|
91
|
+
);
|
|
92
|
+
const originExtend = (_c = (_b = product.metadata) == null ? void 0 : _b.origin) == null ? void 0 : _c._extend;
|
|
93
|
+
const productOptionString = (0, import_orderLineDisplay.buildProductOptionStringFromOrderLine)(product);
|
|
85
94
|
const discountList = product.discount_list || [];
|
|
86
95
|
const other = {
|
|
87
96
|
product_id: resolvedId,
|
|
88
97
|
product_variant_id: product.product_variant_id ?? 0,
|
|
89
98
|
option,
|
|
90
|
-
bundle: originExtend
|
|
99
|
+
bundle: ((_d = originExtend == null ? void 0 : originExtend.other) == null ? void 0 : _d.bundle) ? JSON.parse(JSON.stringify(originExtend.other.bundle)) : bundle,
|
|
91
100
|
quantity: product.num ?? 1
|
|
92
101
|
};
|
|
93
102
|
const skuValue = {
|
|
@@ -98,46 +107,40 @@ function buildNormalProductCacheItemFromOrderLine(input) {
|
|
|
98
107
|
};
|
|
99
108
|
const extend = {
|
|
100
109
|
quantity: product.num ?? 1,
|
|
101
|
-
product_name: sourceProduct
|
|
102
|
-
note: product.note ??
|
|
110
|
+
product_name: (sourceProduct == null ? void 0 : sourceProduct.title) ?? "",
|
|
111
|
+
note: product.note ?? "",
|
|
103
112
|
// v2:_extend.price 为主商品 source 价;行 composite 用 total / origin_total 展示
|
|
104
|
-
price: originExtend
|
|
105
|
-
total: originExtend
|
|
106
|
-
origin_total: originExtend
|
|
113
|
+
price: (originExtend == null ? void 0 : originExtend.price) ?? sourcePrice,
|
|
114
|
+
total: (originExtend == null ? void 0 : originExtend.total) ?? selling,
|
|
115
|
+
origin_total: (originExtend == null ? void 0 : originExtend.origin_total) ?? original,
|
|
107
116
|
other,
|
|
108
117
|
skuValue: JSON.parse(JSON.stringify(skuValue)),
|
|
109
118
|
_skuValue: JSON.parse(JSON.stringify(skuValue)),
|
|
110
119
|
isNormalProduct: true,
|
|
111
120
|
metadata: {
|
|
112
|
-
product_add_schedule_time: product.metadata
|
|
121
|
+
product_add_schedule_time: (_e = product.metadata) == null ? void 0 : _e.product_add_schedule_time
|
|
113
122
|
},
|
|
114
|
-
...
|
|
115
|
-
|
|
116
|
-
} : {}
|
|
117
|
-
...(originExtend?.priceOverride !== undefined ? {
|
|
118
|
-
priceOverride: originExtend.priceOverride
|
|
119
|
-
} : {}),
|
|
120
|
-
...(originExtend?.bundle_edit !== undefined ? {
|
|
121
|
-
bundle_edit: originExtend.bundle_edit
|
|
122
|
-
} : {})
|
|
123
|
+
...productOptionString ? { product_option_string: productOptionString } : {},
|
|
124
|
+
...(originExtend == null ? void 0 : originExtend.priceOverride) !== void 0 ? { priceOverride: originExtend.priceOverride } : {},
|
|
125
|
+
...(originExtend == null ? void 0 : originExtend.bundle_edit) !== void 0 ? { bundle_edit: originExtend.bundle_edit } : {}
|
|
123
126
|
};
|
|
124
|
-
if (originExtend
|
|
125
|
-
extend.skuValue = JSON.parse(
|
|
127
|
+
if ((originExtend == null ? void 0 : originExtend.skuValue) || (originExtend == null ? void 0 : originExtend._skuValue)) {
|
|
128
|
+
extend.skuValue = JSON.parse(
|
|
129
|
+
JSON.stringify(originExtend.skuValue || originExtend._skuValue)
|
|
130
|
+
);
|
|
126
131
|
extend._skuValue = JSON.parse(JSON.stringify(extend.skuValue));
|
|
127
132
|
}
|
|
128
133
|
return {
|
|
129
|
-
...
|
|
134
|
+
...sourceProduct || {},
|
|
130
135
|
id: resolvedId,
|
|
131
136
|
product_id: resolvedId,
|
|
132
137
|
_id: uid,
|
|
133
|
-
title: sourceProduct
|
|
134
|
-
cover: sourceProduct
|
|
135
|
-
price: sourceProduct
|
|
138
|
+
title: (sourceProduct == null ? void 0 : sourceProduct.title) ?? product.product_title ?? "",
|
|
139
|
+
cover: (sourceProduct == null ? void 0 : sourceProduct.cover) ?? product.product_cover ?? "",
|
|
140
|
+
price: (sourceProduct == null ? void 0 : sourceProduct.price) ?? sourcePrice,
|
|
136
141
|
selling_price: product.selling_price,
|
|
137
142
|
original_price: product.original_price,
|
|
138
|
-
...
|
|
139
|
-
product_option_string: productOptionString
|
|
140
|
-
} : {}),
|
|
143
|
+
...productOptionString ? { product_option_string: productOptionString } : {},
|
|
141
144
|
note: product.note,
|
|
142
145
|
order_detail_id: product.order_detail_id ?? null,
|
|
143
146
|
discount_list: discountList,
|
|
@@ -145,4 +148,8 @@ function buildNormalProductCacheItemFromOrderLine(input) {
|
|
|
145
148
|
autoClose: true,
|
|
146
149
|
_extend: extend
|
|
147
150
|
};
|
|
148
|
-
}
|
|
151
|
+
}
|
|
152
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
153
|
+
0 && (module.exports = {
|
|
154
|
+
buildNormalProductCacheItemFromOrderLine
|
|
155
|
+
});
|