@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,40 +1,72 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Object.
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
var
|
|
8
|
-
var
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
var
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
tag: discountItem.type,
|
|
17
|
-
par_value: discountItem.discount?.percent,
|
|
18
|
-
config: discountItem.config,
|
|
19
|
-
metadata: {
|
|
20
|
-
discount_card_type: discountItem?.discount?.discount_card_type
|
|
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 });
|
|
21
16
|
}
|
|
22
|
-
|
|
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);
|
|
23
28
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
29
|
+
// src/modules/Cart/utils/cartProduct.ts
|
|
30
|
+
var cartProduct_exports = {};
|
|
31
|
+
__export(cartProduct_exports, {
|
|
32
|
+
formatBundle: () => formatBundle,
|
|
33
|
+
formatBundleToOrigin: () => formatBundleToOrigin,
|
|
34
|
+
formatOptions: () => formatOptions,
|
|
35
|
+
formatOptionsToOrigin: () => formatOptionsToOrigin,
|
|
36
|
+
formatProductToCartItem: () => formatProductToCartItem,
|
|
37
|
+
formatProductToCartItemOrigin: () => formatProductToCartItemOrigin,
|
|
38
|
+
getProductDeposit: () => getProductDeposit,
|
|
39
|
+
getProductOriginTotalPrice: () => getProductOriginTotalPrice,
|
|
40
|
+
getProductTotalPrice: () => getProductTotalPrice,
|
|
41
|
+
handleProductDeposit: () => handleProductDeposit,
|
|
42
|
+
handleVariantProduct: () => handleVariantProduct
|
|
43
|
+
});
|
|
44
|
+
module.exports = __toCommonJS(cartProduct_exports);
|
|
45
|
+
var import_decimal = __toESM(require("decimal.js"));
|
|
46
|
+
var import_utils = require("../../Product/utils");
|
|
47
|
+
var import_utils2 = require("../../../solution/ShopDiscount/utils");
|
|
48
|
+
var import_utils3 = require("../../Summary/utils");
|
|
49
|
+
var import_utils4 = require("../../Order/utils");
|
|
50
|
+
var toDiscountPayload = (discountItem) => {
|
|
51
|
+
var _a, _b;
|
|
52
|
+
return {
|
|
53
|
+
amount: discountItem.amount,
|
|
54
|
+
tag: discountItem.type,
|
|
55
|
+
par_value: (_a = discountItem.discount) == null ? void 0 : _a.percent,
|
|
56
|
+
config: discountItem.config,
|
|
57
|
+
metadata: {
|
|
58
|
+
discount_card_type: (_b = discountItem == null ? void 0 : discountItem.discount) == null ? void 0 : _b.discount_card_type
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
};
|
|
62
|
+
var handleVariantProduct = (product) => {
|
|
63
|
+
var _a;
|
|
64
|
+
if (product == null ? void 0 : product.product_variant_id) {
|
|
65
|
+
const targetVariant = (_a = product == null ? void 0 : product.variant) == null ? void 0 : _a.find(
|
|
66
|
+
(n) => n.id === product.product_variant_id
|
|
67
|
+
);
|
|
35
68
|
if (targetVariant) {
|
|
36
69
|
product.price = targetVariant.price;
|
|
37
|
-
// 如果 original_price 为 0,就不改了
|
|
38
70
|
if (Number(targetVariant.original_price) > 0) {
|
|
39
71
|
product.original_price = targetVariant.original_price;
|
|
40
72
|
}
|
|
@@ -43,14 +75,9 @@ const handleVariantProduct = product => {
|
|
|
43
75
|
}
|
|
44
76
|
return product;
|
|
45
77
|
};
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
* @param product 商品
|
|
50
|
-
* @returns 格式化后的商品
|
|
51
|
-
*/
|
|
52
|
-
exports.handleVariantProduct = handleVariantProduct;
|
|
53
|
-
const formatProductToCartItem = params => {
|
|
78
|
+
var formatProductToCartItem = (params) => {
|
|
79
|
+
var _a, _b, _c;
|
|
80
|
+
console.log("formatProductToCartItem>>>>>>", params);
|
|
54
81
|
const {
|
|
55
82
|
cartItem,
|
|
56
83
|
product,
|
|
@@ -60,25 +87,14 @@ const formatProductToCartItem = params => {
|
|
|
60
87
|
quantity = 1,
|
|
61
88
|
discounts
|
|
62
89
|
} = params;
|
|
63
|
-
const num = quantity;
|
|
64
|
-
|
|
90
|
+
const num = quantity;
|
|
65
91
|
if (product) {
|
|
66
|
-
cartItem.id = product
|
|
67
|
-
cartItem.name = product
|
|
68
|
-
cartItem.price = product
|
|
92
|
+
cartItem.id = product == null ? void 0 : product.id;
|
|
93
|
+
cartItem.name = product == null ? void 0 : product.title;
|
|
94
|
+
cartItem.price = product == null ? void 0 : product.price;
|
|
69
95
|
cartItem.num = num;
|
|
70
|
-
cartItem.total = getProductTotalPrice({
|
|
71
|
-
|
|
72
|
-
bundle,
|
|
73
|
-
options,
|
|
74
|
-
num,
|
|
75
|
-
discounts
|
|
76
|
-
});
|
|
77
|
-
cartItem.totalDifference = getTotalDifference({
|
|
78
|
-
product,
|
|
79
|
-
bundle,
|
|
80
|
-
discounts
|
|
81
|
-
});
|
|
96
|
+
cartItem.total = getProductTotalPrice({ product, bundle, options, num, discounts });
|
|
97
|
+
cartItem.totalDifference = getTotalDifference({ product, bundle, discounts });
|
|
82
98
|
cartItem.summaryTotal = cartItem.total * (num || 1);
|
|
83
99
|
cartItem.origin_total = getProductOriginTotalPrice({
|
|
84
100
|
product,
|
|
@@ -87,7 +103,6 @@ const formatProductToCartItem = params => {
|
|
|
87
103
|
num,
|
|
88
104
|
discounts
|
|
89
105
|
});
|
|
90
|
-
// 不包含折扣卡商品券的总价
|
|
91
106
|
const origin_total = getProductTotalPrice({
|
|
92
107
|
product: cartItem._productInit || cartItem._productOrigin,
|
|
93
108
|
bundle,
|
|
@@ -96,38 +111,44 @@ const formatProductToCartItem = params => {
|
|
|
96
111
|
discounts: []
|
|
97
112
|
});
|
|
98
113
|
cartItem.summaryOriginTotal = (origin_total || 0) * (num || 1);
|
|
99
|
-
cartItem.image = product
|
|
100
|
-
cartItem.like_status =
|
|
101
|
-
cartItem.duration = product
|
|
102
|
-
cartItem.isNormalProduct = (0,
|
|
103
|
-
cartItem.is_charge_tax = product
|
|
114
|
+
cartItem.image = product == null ? void 0 : product.cover;
|
|
115
|
+
cartItem.like_status = "common";
|
|
116
|
+
cartItem.duration = product == null ? void 0 : product.duration;
|
|
117
|
+
cartItem.isNormalProduct = (0, import_utils.isNormalProduct)(product);
|
|
118
|
+
cartItem.is_charge_tax = product == null ? void 0 : product.is_charge_tax;
|
|
104
119
|
}
|
|
105
|
-
if (bundle
|
|
120
|
+
if (bundle == null ? void 0 : bundle.length) {
|
|
106
121
|
cartItem.bundle = formatBundle(bundle);
|
|
107
122
|
}
|
|
108
|
-
if (options
|
|
123
|
+
if (options == null ? void 0 : options.length) {
|
|
109
124
|
cartItem.options = formatOptions(options);
|
|
110
125
|
}
|
|
111
|
-
// 拼装出 product_option_string
|
|
112
126
|
if (product_variant_id) {
|
|
113
|
-
const sku_key =
|
|
127
|
+
const sku_key = (_b = (_a = product == null ? void 0 : product.variant) == null ? void 0 : _a.find(
|
|
128
|
+
(n) => n.id === product_variant_id
|
|
129
|
+
)) == null ? void 0 : _b.sku_key;
|
|
114
130
|
if (sku_key) {
|
|
115
|
-
const sku_key_arr = sku_key.split(
|
|
131
|
+
const sku_key_arr = sku_key.split("_");
|
|
116
132
|
const product_option_string = [];
|
|
117
|
-
sku_key_arr.forEach(item => {
|
|
118
|
-
|
|
119
|
-
const
|
|
120
|
-
const
|
|
133
|
+
sku_key_arr.forEach((item) => {
|
|
134
|
+
var _a2, _b2;
|
|
135
|
+
const keyMap = item.split(":");
|
|
136
|
+
const targetVariantGroup = (_a2 = product == null ? void 0 : product.variant_group) == null ? void 0 : _a2.find(
|
|
137
|
+
(n) => String(n.position_id) === keyMap[0]
|
|
138
|
+
);
|
|
139
|
+
const targetVariantItem = (_b2 = targetVariantGroup == null ? void 0 : targetVariantGroup.variant_item) == null ? void 0 : _b2.find(
|
|
140
|
+
(n) => String(n.position_id) === keyMap[1]
|
|
141
|
+
);
|
|
121
142
|
if (targetVariantGroup && targetVariantItem) {
|
|
122
|
-
product_option_string.push(
|
|
143
|
+
product_option_string.push(
|
|
144
|
+
`${targetVariantGroup.name}:${targetVariantItem.name}`
|
|
145
|
+
);
|
|
123
146
|
}
|
|
124
147
|
});
|
|
125
|
-
cartItem.product_option_string = product_option_string.join(
|
|
148
|
+
cartItem.product_option_string = product_option_string.join(", ");
|
|
126
149
|
}
|
|
127
150
|
}
|
|
128
|
-
|
|
129
|
-
// 如果商品有定金规则,则计算定金
|
|
130
|
-
if (product?.custom_deposit_data?.has_deposit == 1) {
|
|
151
|
+
if (((_c = product == null ? void 0 : product.custom_deposit_data) == null ? void 0 : _c.has_deposit) == 1) {
|
|
131
152
|
cartItem.deposit = getProductDeposit({
|
|
132
153
|
cartItem,
|
|
133
154
|
product,
|
|
@@ -140,8 +161,8 @@ const formatProductToCartItem = params => {
|
|
|
140
161
|
cartItem._origin = oringin;
|
|
141
162
|
return cartItem;
|
|
142
163
|
};
|
|
143
|
-
|
|
144
|
-
|
|
164
|
+
var formatProductToCartItemOrigin = (params) => {
|
|
165
|
+
var _a, _b, _c, _d, _e;
|
|
145
166
|
const {
|
|
146
167
|
cartItem,
|
|
147
168
|
product,
|
|
@@ -151,38 +172,35 @@ const formatProductToCartItemOrigin = params => {
|
|
|
151
172
|
quantity = 1
|
|
152
173
|
} = params;
|
|
153
174
|
let origin = cartItem._origin;
|
|
154
|
-
const product_discount_difference = (origin.product
|
|
155
|
-
|
|
175
|
+
const product_discount_difference = (((_a = origin.product) == null ? void 0 : _a.discount_list) || []).filter((item) => {
|
|
176
|
+
var _a2;
|
|
177
|
+
return !((_a2 = item == null ? void 0 : item.metadata) == null ? void 0 : _a2.custom_product_bundle_map_id);
|
|
178
|
+
}).reduce((pre, cur) => {
|
|
179
|
+
var _a2;
|
|
180
|
+
return pre + (((_a2 = cur == null ? void 0 : cur.metadata) == null ? void 0 : _a2.product_discount_difference) || 0);
|
|
156
181
|
}, 0);
|
|
157
182
|
if (product) {
|
|
158
183
|
origin.product = {
|
|
159
|
-
...
|
|
184
|
+
...origin.product || {},
|
|
160
185
|
num: quantity,
|
|
161
186
|
product_id: product.id,
|
|
162
187
|
product_variant_id: product_variant_id || 0,
|
|
163
|
-
product_bundle: origin.product
|
|
164
|
-
product_sku: origin.product
|
|
165
|
-
option: []
|
|
166
|
-
},
|
|
188
|
+
product_bundle: ((_b = origin.product) == null ? void 0 : _b.product_bundle) || [],
|
|
189
|
+
product_sku: ((_c = origin.product) == null ? void 0 : _c.product_sku) || { option: [] },
|
|
167
190
|
metadata: {
|
|
168
191
|
product_discount_difference
|
|
169
192
|
}
|
|
170
193
|
};
|
|
171
|
-
|
|
172
|
-
origin.
|
|
173
|
-
|
|
174
|
-
origin.duration = product?.duration?.value;
|
|
175
|
-
if (bundle?.length) {
|
|
194
|
+
origin.sub_type = (_d = product == null ? void 0 : product.duration) == null ? void 0 : _d.type;
|
|
195
|
+
origin.duration = (_e = product == null ? void 0 : product.duration) == null ? void 0 : _e.value;
|
|
196
|
+
if (bundle == null ? void 0 : bundle.length) {
|
|
176
197
|
origin.product.product_bundle = formatBundleToOrigin(bundle);
|
|
177
198
|
}
|
|
178
|
-
if (options
|
|
199
|
+
if (options == null ? void 0 : options.length) {
|
|
179
200
|
origin.product.product_sku = {
|
|
180
|
-
...
|
|
181
|
-
option: formatOptionsToOrigin(options).map(option => {
|
|
182
|
-
const next = {
|
|
183
|
-
...option,
|
|
184
|
-
add_price: option.add_price ?? option.price
|
|
185
|
-
};
|
|
201
|
+
...origin.product.product_sku || {},
|
|
202
|
+
option: formatOptionsToOrigin(options).map((option) => {
|
|
203
|
+
const next = { ...option, add_price: option.add_price ?? option.price };
|
|
186
204
|
delete next.price;
|
|
187
205
|
return next;
|
|
188
206
|
})
|
|
@@ -191,133 +209,92 @@ const formatProductToCartItemOrigin = params => {
|
|
|
191
209
|
}
|
|
192
210
|
return origin;
|
|
193
211
|
};
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
* 获取商品总价
|
|
197
|
-
* @description 当前总价计算基于商品数量为1
|
|
198
|
-
* @param item 商品
|
|
199
|
-
* @returns 商品总价
|
|
200
|
-
*/
|
|
201
|
-
exports.formatProductToCartItemOrigin = formatProductToCartItemOrigin;
|
|
202
|
-
const getProductTotalPrice = params => {
|
|
203
|
-
const {
|
|
204
|
-
product,
|
|
205
|
-
bundle,
|
|
206
|
-
options,
|
|
207
|
-
discounts
|
|
208
|
-
} = params;
|
|
209
|
-
// const num = params.num || 1;
|
|
212
|
+
var getProductTotalPrice = (params) => {
|
|
213
|
+
const { product, bundle, options, discounts } = params;
|
|
210
214
|
let price = Number(product.price);
|
|
211
|
-
|
|
212
|
-
// option 行:unit 折后价在循环中与主商品使用同一套 getDiscountAmount(含 deductOptionPrice)
|
|
213
|
-
const optionRows = options?.map(currentValue => ({
|
|
215
|
+
const optionRows = (options == null ? void 0 : options.map((currentValue) => ({
|
|
214
216
|
unit: Number(currentValue.price ?? currentValue.add_price ?? 0),
|
|
215
217
|
num: Number(currentValue.num ?? currentValue.quantity ?? 1)
|
|
216
|
-
})) ?? [];
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
discounts.forEach(currentValue => {
|
|
218
|
+
}))) ?? [];
|
|
219
|
+
if (discounts == null ? void 0 : discounts.length) {
|
|
220
|
+
discounts.forEach((currentValue) => {
|
|
221
|
+
var _a;
|
|
221
222
|
const payload = toDiscountPayload(currentValue);
|
|
222
|
-
price = (0,
|
|
223
|
-
if (currentValue
|
|
223
|
+
price = (0, import_utils2.getDiscountAmount)(payload, price, price);
|
|
224
|
+
if (((_a = currentValue == null ? void 0 : currentValue.config) == null ? void 0 : _a.deductOptionPrice) && optionRows.length) {
|
|
224
225
|
for (let i = 0; i < optionRows.length; i++) {
|
|
225
226
|
const row = optionRows[i];
|
|
226
227
|
optionRows[i] = {
|
|
227
228
|
...row,
|
|
228
|
-
unit: (0,
|
|
229
|
+
unit: (0, import_utils2.getDiscountAmount)(payload, row.unit, row.unit)
|
|
229
230
|
};
|
|
230
231
|
}
|
|
231
232
|
}
|
|
232
233
|
});
|
|
233
234
|
}
|
|
234
|
-
if (bundle
|
|
235
|
+
if (bundle == null ? void 0 : bundle.length) {
|
|
235
236
|
price = bundle.reduce((accumulator, currentValue) => {
|
|
236
237
|
return accumulator + Number(currentValue.price) * Number(currentValue.num);
|
|
237
238
|
}, price);
|
|
238
239
|
}
|
|
239
|
-
|
|
240
|
-
// 单规格 / 加购 option
|
|
241
240
|
if (optionRows.length) {
|
|
242
|
-
price = optionRows.reduce(
|
|
241
|
+
price = optionRows.reduce(
|
|
242
|
+
(accumulator, row) => accumulator + row.unit * row.num,
|
|
243
|
+
price
|
|
244
|
+
);
|
|
243
245
|
}
|
|
244
246
|
return Math.max(0, price);
|
|
245
247
|
};
|
|
246
|
-
|
|
247
|
-
const
|
|
248
|
-
const {
|
|
249
|
-
bundle,
|
|
250
|
-
discounts
|
|
251
|
-
} = params;
|
|
248
|
+
var getTotalDifference = (params) => {
|
|
249
|
+
const { bundle, discounts } = params;
|
|
252
250
|
const bundleDiscountList = [];
|
|
253
|
-
if (bundle
|
|
254
|
-
bundle.forEach(currentValue => {
|
|
255
|
-
bundleDiscountList.push(...(currentValue
|
|
251
|
+
if (bundle == null ? void 0 : bundle.length) {
|
|
252
|
+
bundle.forEach((currentValue) => {
|
|
253
|
+
bundleDiscountList.push(...(currentValue == null ? void 0 : currentValue.discount_list) || []);
|
|
256
254
|
});
|
|
257
255
|
}
|
|
258
|
-
const allDiscounts = [...
|
|
259
|
-
const productDiscountProductDiscountDifference = (0,
|
|
256
|
+
const allDiscounts = [...discounts || [], ...bundleDiscountList];
|
|
257
|
+
const productDiscountProductDiscountDifference = (0, import_utils3.calcDiscountListDifference)(allDiscounts);
|
|
260
258
|
return productDiscountProductDiscountDifference || 0;
|
|
261
259
|
};
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
* @description 当前总价计算基于商品数量为1
|
|
266
|
-
* @param item 商品
|
|
267
|
-
* @returns 商品原始总价
|
|
268
|
-
*/
|
|
269
|
-
const getProductOriginTotalPrice = params => {
|
|
270
|
-
const {
|
|
271
|
-
product,
|
|
272
|
-
bundle,
|
|
273
|
-
options,
|
|
274
|
-
discounts
|
|
275
|
-
} = params;
|
|
276
|
-
const num = params?.num || 1;
|
|
260
|
+
var getProductOriginTotalPrice = (params) => {
|
|
261
|
+
const { product, bundle, options, discounts } = params;
|
|
262
|
+
const num = (params == null ? void 0 : params.num) || 1;
|
|
277
263
|
let price = Number(product.original_price);
|
|
278
|
-
if ((isNaN(price) || price === 0) && !discounts
|
|
279
|
-
return
|
|
264
|
+
if ((isNaN(price) || price === 0) && !(discounts == null ? void 0 : discounts.length)) {
|
|
265
|
+
return void 0;
|
|
280
266
|
}
|
|
281
|
-
if (bundle
|
|
267
|
+
if (bundle == null ? void 0 : bundle.length) {
|
|
282
268
|
price = bundle.reduce((accumulator, currentValue) => {
|
|
283
269
|
return accumulator + Number(currentValue.price) * Number(currentValue.num);
|
|
284
270
|
}, price);
|
|
285
271
|
}
|
|
286
|
-
|
|
287
|
-
// 单规格
|
|
288
|
-
if (options?.length) {
|
|
272
|
+
if (options == null ? void 0 : options.length) {
|
|
289
273
|
price = options.reduce((accumulator, currentValue) => {
|
|
290
274
|
return accumulator + Number(currentValue.price) * Number(currentValue.num);
|
|
291
275
|
}, price);
|
|
292
276
|
}
|
|
293
277
|
return price;
|
|
294
278
|
};
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
* @returns 格式化后的套餐规格信息
|
|
300
|
-
*/
|
|
301
|
-
exports.getProductOriginTotalPrice = getProductOriginTotalPrice;
|
|
302
|
-
const formatOptions = options => {
|
|
303
|
-
if (!options?.length) return [];
|
|
304
|
-
return options.map(item => {
|
|
279
|
+
var formatOptions = (options) => {
|
|
280
|
+
if (!(options == null ? void 0 : options.length))
|
|
281
|
+
return [];
|
|
282
|
+
return options.map((item) => {
|
|
305
283
|
return {
|
|
306
|
-
id: item
|
|
307
|
-
name: item
|
|
308
|
-
num: item
|
|
309
|
-
price: item
|
|
310
|
-
total: item
|
|
311
|
-
origin_total: item
|
|
284
|
+
id: item == null ? void 0 : item.id,
|
|
285
|
+
name: item == null ? void 0 : item.name,
|
|
286
|
+
num: item == null ? void 0 : item.num,
|
|
287
|
+
price: item == null ? void 0 : item.price,
|
|
288
|
+
total: item == null ? void 0 : item.price,
|
|
289
|
+
origin_total: item == null ? void 0 : item.original_price
|
|
312
290
|
};
|
|
313
291
|
});
|
|
314
292
|
};
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
if (!options?.length) {
|
|
293
|
+
var formatOptionsToOrigin = (options) => {
|
|
294
|
+
if (!(options == null ? void 0 : options.length)) {
|
|
318
295
|
return [];
|
|
319
296
|
}
|
|
320
|
-
return options.map(d => {
|
|
297
|
+
return options.map((d) => {
|
|
321
298
|
return {
|
|
322
299
|
num: d.num,
|
|
323
300
|
option_group_item_id: d.option_group_item_id,
|
|
@@ -325,67 +302,63 @@ const formatOptionsToOrigin = options => {
|
|
|
325
302
|
};
|
|
326
303
|
});
|
|
327
304
|
};
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
* @returns 格式化后的商品套餐信息
|
|
333
|
-
*/
|
|
334
|
-
exports.formatOptionsToOrigin = formatOptionsToOrigin;
|
|
335
|
-
const formatBundle = bundle => {
|
|
336
|
-
if (!bundle?.length) return [];
|
|
337
|
-
return bundle.map(item => {
|
|
305
|
+
var formatBundle = (bundle) => {
|
|
306
|
+
if (!(bundle == null ? void 0 : bundle.length))
|
|
307
|
+
return [];
|
|
308
|
+
return bundle.map((item) => {
|
|
338
309
|
return {
|
|
339
|
-
id: item
|
|
340
|
-
title: item
|
|
341
|
-
num: item
|
|
342
|
-
price: item
|
|
343
|
-
total: item
|
|
344
|
-
price_type: item
|
|
345
|
-
original_price: item
|
|
346
|
-
original_total: item
|
|
347
|
-
price_type_ext: item
|
|
348
|
-
bundle_sum_price: item
|
|
349
|
-
bundle_sum_type: item
|
|
350
|
-
options: formatOptions(item
|
|
310
|
+
id: item == null ? void 0 : item.id,
|
|
311
|
+
title: item == null ? void 0 : item.title,
|
|
312
|
+
num: item == null ? void 0 : item.num,
|
|
313
|
+
price: item == null ? void 0 : item.price,
|
|
314
|
+
total: item == null ? void 0 : item.price,
|
|
315
|
+
price_type: item == null ? void 0 : item.price_type,
|
|
316
|
+
original_price: item == null ? void 0 : item.original_price,
|
|
317
|
+
original_total: item == null ? void 0 : item.original_total,
|
|
318
|
+
price_type_ext: item == null ? void 0 : item.price_type_ext,
|
|
319
|
+
bundle_sum_price: item == null ? void 0 : item.bundle_sum_price,
|
|
320
|
+
bundle_sum_type: item == null ? void 0 : item.bundle_sum_type,
|
|
321
|
+
options: formatOptions(item == null ? void 0 : item.option),
|
|
351
322
|
_bundle_product_id: item._bundle_product_id,
|
|
352
323
|
discount_list: item.discount_list,
|
|
353
324
|
originBundleItem: item.originBundleItem || item,
|
|
354
|
-
is_charge_tax: item
|
|
325
|
+
is_charge_tax: item == null ? void 0 : item.is_charge_tax
|
|
355
326
|
};
|
|
356
327
|
});
|
|
357
328
|
};
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
return bundle.map(d => {
|
|
362
|
-
const getBundleValueByKey = key => {
|
|
363
|
-
|
|
329
|
+
var formatBundleToOrigin = (bundle) => {
|
|
330
|
+
if (!(bundle == null ? void 0 : bundle.length))
|
|
331
|
+
return [];
|
|
332
|
+
return bundle.map((d) => {
|
|
333
|
+
const getBundleValueByKey = (key) => {
|
|
334
|
+
var _a;
|
|
335
|
+
return (d == null ? void 0 : d[key]) || ((_a = d == null ? void 0 : d.originBundleItem) == null ? void 0 : _a[key]);
|
|
364
336
|
};
|
|
365
|
-
const product_discount_difference = (d
|
|
366
|
-
|
|
337
|
+
const product_discount_difference = ((d == null ? void 0 : d.discount_list) || []).reduce((pre, cur) => {
|
|
338
|
+
var _a;
|
|
339
|
+
return pre + (((_a = cur == null ? void 0 : cur.metadata) == null ? void 0 : _a.product_discount_difference) || 0);
|
|
367
340
|
}, 0);
|
|
368
341
|
const normalizedBundle = {
|
|
369
342
|
...d,
|
|
370
343
|
// 计算 markdown 净额时只传真实毛价;若仅有 bundle_selling_price,则由 helper 当历史净额兜底。
|
|
371
|
-
price: d
|
|
372
|
-
bundle_selling_price: d
|
|
373
|
-
price_type: d
|
|
374
|
-
price_type_ext: d
|
|
375
|
-
option: getBundleValueByKey(
|
|
344
|
+
price: (d == null ? void 0 : d.price) ?? (d == null ? void 0 : d.custom_price),
|
|
345
|
+
bundle_selling_price: d == null ? void 0 : d.bundle_selling_price,
|
|
346
|
+
price_type: (d == null ? void 0 : d.price_type) ?? (d == null ? void 0 : d.custom_price_type),
|
|
347
|
+
price_type_ext: (d == null ? void 0 : d.price_type_ext) ?? (d == null ? void 0 : d.custom_price_type_ext),
|
|
348
|
+
option: getBundleValueByKey("option")
|
|
376
349
|
};
|
|
377
350
|
return {
|
|
378
|
-
bundle_group_id: getBundleValueByKey(
|
|
351
|
+
bundle_group_id: getBundleValueByKey("group_id"),
|
|
379
352
|
bundle_id: d.id,
|
|
380
|
-
bundle_product_id: getBundleValueByKey(
|
|
381
|
-
bundle_variant_id: getBundleValueByKey(
|
|
353
|
+
bundle_product_id: getBundleValueByKey("_bundle_product_id") || getBundleValueByKey("product_id"),
|
|
354
|
+
bundle_variant_id: getBundleValueByKey("bundle_variant_id"),
|
|
382
355
|
num: d.num,
|
|
383
|
-
extension_id: getBundleValueByKey(
|
|
384
|
-
extension_type: getBundleValueByKey(
|
|
385
|
-
option: formatOptionsToOrigin(getBundleValueByKey(
|
|
356
|
+
extension_id: getBundleValueByKey("extension_id"),
|
|
357
|
+
extension_type: getBundleValueByKey("extension_type"),
|
|
358
|
+
option: formatOptionsToOrigin(getBundleValueByKey("option")),
|
|
386
359
|
discount_list: d.discount_list,
|
|
387
|
-
"bundle_selling_price": (0,
|
|
388
|
-
"custom_price": d
|
|
360
|
+
"bundle_selling_price": (0, import_utils4.getBundleSellingMagnitude)(normalizedBundle).toFixed(2),
|
|
361
|
+
"custom_price": d == null ? void 0 : d.price,
|
|
389
362
|
metadata: {
|
|
390
363
|
custom_product_bundle_map_id: d._id,
|
|
391
364
|
product_discount_difference
|
|
@@ -393,146 +366,103 @@ const formatBundleToOrigin = bundle => {
|
|
|
393
366
|
};
|
|
394
367
|
});
|
|
395
368
|
};
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
* 3、普通商品/单规格商品/组合规则商品,定金规则:(商品总售价 * 定金百分比 + 定金固定金额)* 商品数量
|
|
403
|
-
* @param params 参数
|
|
404
|
-
* @returns 商品定金
|
|
405
|
-
*/
|
|
406
|
-
exports.formatBundleToOrigin = formatBundleToOrigin;
|
|
407
|
-
const getProductDeposit = params => {
|
|
408
|
-
const {
|
|
409
|
-
cartItem,
|
|
410
|
-
product,
|
|
411
|
-
bundle,
|
|
412
|
-
options
|
|
413
|
-
} = params;
|
|
414
|
-
const num = params?.num || 1;
|
|
415
|
-
|
|
416
|
-
// 判定商品是否有定金规则
|
|
417
|
-
if (product?.custom_deposit_data?.has_deposit == 1) {
|
|
418
|
-
let total = new _decimal.default(0);
|
|
369
|
+
var getProductDeposit = (params) => {
|
|
370
|
+
var _a, _b;
|
|
371
|
+
const { cartItem, product, bundle, options } = params;
|
|
372
|
+
const num = (params == null ? void 0 : params.num) || 1;
|
|
373
|
+
if (((_a = product == null ? void 0 : product.custom_deposit_data) == null ? void 0 : _a.has_deposit) == 1) {
|
|
374
|
+
let total = new import_decimal.default(0);
|
|
419
375
|
const {
|
|
420
376
|
deposit_fixed,
|
|
421
377
|
deposit_percentage,
|
|
422
378
|
deposit_policy_data,
|
|
423
379
|
self_deposit_policy_ids
|
|
424
|
-
} = product
|
|
425
|
-
// 所有协议数据
|
|
380
|
+
} = (product == null ? void 0 : product.custom_deposit_data) || {};
|
|
426
381
|
const allProtocols = deposit_policy_data || [];
|
|
427
|
-
// 是否存在定金,主商品has_deposit为1,但是自身没有定金设置,需要判定子商品是否存在定金,如果不存在最终判定也是不存在定金
|
|
428
382
|
let productHasDeposit = false;
|
|
429
|
-
// 关联的定金协议id
|
|
430
383
|
const protocolIds = [];
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
const {
|
|
435
|
-
depositTotal,
|
|
436
|
-
result
|
|
437
|
-
} = handleProductDeposit({
|
|
438
|
-
depositData: product?.custom_deposit_data,
|
|
384
|
+
if (typeof deposit_fixed === "string" && typeof deposit_percentage === "string") {
|
|
385
|
+
const { depositTotal, result } = handleProductDeposit({
|
|
386
|
+
depositData: product == null ? void 0 : product.custom_deposit_data,
|
|
439
387
|
total: cartItem.total || 0,
|
|
440
388
|
num
|
|
441
389
|
});
|
|
442
390
|
if (result) {
|
|
443
391
|
total = depositTotal;
|
|
444
|
-
protocolIds.push(...
|
|
392
|
+
protocolIds.push(...self_deposit_policy_ids || []);
|
|
445
393
|
productHasDeposit = true;
|
|
446
394
|
}
|
|
447
395
|
} else {
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
396
|
+
if (product == null ? void 0 : product.product_variant_id) {
|
|
397
|
+
const variantProduct = (_b = product == null ? void 0 : product.variant) == null ? void 0 : _b.find(
|
|
398
|
+
(item) => (item == null ? void 0 : item.id) === (product == null ? void 0 : product.product_variant_id)
|
|
399
|
+
);
|
|
451
400
|
if (variantProduct) {
|
|
452
|
-
const depositData = variantProduct
|
|
453
|
-
const {
|
|
454
|
-
depositTotal,
|
|
455
|
-
result
|
|
456
|
-
} = handleProductDeposit({
|
|
401
|
+
const depositData = variantProduct == null ? void 0 : variantProduct.custom_deposit_data;
|
|
402
|
+
const { depositTotal, result } = handleProductDeposit({
|
|
457
403
|
depositData,
|
|
458
|
-
total: cartItem
|
|
404
|
+
total: (cartItem == null ? void 0 : cartItem.total) || 0,
|
|
459
405
|
num
|
|
460
406
|
});
|
|
461
407
|
if (result) {
|
|
462
408
|
total = depositTotal;
|
|
463
|
-
protocolIds.push(...(depositData
|
|
409
|
+
protocolIds.push(...(depositData == null ? void 0 : depositData.self_deposit_policy_ids) || []);
|
|
464
410
|
productHasDeposit = true;
|
|
465
411
|
}
|
|
466
412
|
}
|
|
467
413
|
}
|
|
468
|
-
if (bundle
|
|
414
|
+
if (bundle == null ? void 0 : bundle.length) {
|
|
469
415
|
total = bundle.reduce((accumulator, currBundleProduct) => {
|
|
470
|
-
const depositData = currBundleProduct
|
|
471
|
-
const {
|
|
472
|
-
depositTotal,
|
|
473
|
-
result
|
|
474
|
-
} = handleProductDeposit({
|
|
416
|
+
const depositData = currBundleProduct == null ? void 0 : currBundleProduct.custom_deposit_data;
|
|
417
|
+
const { depositTotal, result } = handleProductDeposit({
|
|
475
418
|
depositData,
|
|
476
|
-
total: currBundleProduct
|
|
477
|
-
num: currBundleProduct
|
|
419
|
+
total: currBundleProduct == null ? void 0 : currBundleProduct.price,
|
|
420
|
+
num: (currBundleProduct == null ? void 0 : currBundleProduct.num) || 1
|
|
478
421
|
});
|
|
479
422
|
if (result) {
|
|
480
|
-
protocolIds.push(...(depositData
|
|
423
|
+
protocolIds.push(...(depositData == null ? void 0 : depositData.self_deposit_policy_ids) || []);
|
|
481
424
|
productHasDeposit = true;
|
|
482
425
|
return accumulator.plus(depositTotal);
|
|
483
426
|
}
|
|
484
427
|
return accumulator;
|
|
485
|
-
}, new
|
|
428
|
+
}, new import_decimal.default(0));
|
|
486
429
|
}
|
|
487
430
|
}
|
|
488
431
|
if (productHasDeposit) {
|
|
489
432
|
const ids = new Set(protocolIds);
|
|
490
|
-
const protocols = allProtocols.filter(item => ids.has(item.id));
|
|
491
|
-
return {
|
|
492
|
-
total: total.toNumber(),
|
|
493
|
-
protocols
|
|
494
|
-
};
|
|
433
|
+
const protocols = allProtocols.filter((item) => ids.has(item.id));
|
|
434
|
+
return { total: total.toNumber(), protocols };
|
|
495
435
|
}
|
|
496
436
|
return null;
|
|
497
437
|
}
|
|
498
438
|
return null;
|
|
499
439
|
};
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
* 计算商品定金
|
|
503
|
-
* @param params 参数
|
|
504
|
-
* @returns 商品定金
|
|
505
|
-
*/
|
|
506
|
-
exports.getProductDeposit = getProductDeposit;
|
|
507
|
-
const handleProductDeposit = params => {
|
|
508
|
-
const {
|
|
509
|
-
depositData,
|
|
510
|
-
total,
|
|
511
|
-
num
|
|
512
|
-
} = params;
|
|
440
|
+
var handleProductDeposit = (params) => {
|
|
441
|
+
const { depositData, total, num } = params;
|
|
513
442
|
if (!depositData) {
|
|
514
|
-
return {
|
|
515
|
-
result: false,
|
|
516
|
-
depositTotal: new _decimal.default(0)
|
|
517
|
-
};
|
|
443
|
+
return { result: false, depositTotal: new import_decimal.default(0) };
|
|
518
444
|
}
|
|
519
|
-
const {
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
const depositFixed = (0, _decimal.default)(deposit_fixed || 0);
|
|
525
|
-
const depositPercent = (0, _decimal.default)(deposit_percentage || 0);
|
|
526
|
-
const productTotalPrice = (0, _decimal.default)(total || 0);
|
|
445
|
+
const { deposit_fixed, deposit_percentage } = depositData || {};
|
|
446
|
+
if (typeof deposit_fixed === "string" && typeof deposit_percentage === "string") {
|
|
447
|
+
const depositFixed = (0, import_decimal.default)(deposit_fixed || 0);
|
|
448
|
+
const depositPercent = (0, import_decimal.default)(deposit_percentage || 0);
|
|
449
|
+
const productTotalPrice = (0, import_decimal.default)(total || 0);
|
|
527
450
|
const deposit = depositFixed.plus(depositPercent.times(productTotalPrice));
|
|
528
|
-
return {
|
|
529
|
-
depositTotal: deposit.times(num),
|
|
530
|
-
result: true
|
|
531
|
-
};
|
|
451
|
+
return { depositTotal: deposit.times(num), result: true };
|
|
532
452
|
}
|
|
533
|
-
return {
|
|
534
|
-
result: false,
|
|
535
|
-
depositTotal: new _decimal.default(0)
|
|
536
|
-
};
|
|
453
|
+
return { result: false, depositTotal: new import_decimal.default(0) };
|
|
537
454
|
};
|
|
538
|
-
|
|
455
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
456
|
+
0 && (module.exports = {
|
|
457
|
+
formatBundle,
|
|
458
|
+
formatBundleToOrigin,
|
|
459
|
+
formatOptions,
|
|
460
|
+
formatOptionsToOrigin,
|
|
461
|
+
formatProductToCartItem,
|
|
462
|
+
formatProductToCartItemOrigin,
|
|
463
|
+
getProductDeposit,
|
|
464
|
+
getProductOriginTotalPrice,
|
|
465
|
+
getProductTotalPrice,
|
|
466
|
+
handleProductDeposit,
|
|
467
|
+
handleVariantProduct
|
|
468
|
+
});
|