@pisell/pisellos 2.3.38 → 2.3.39
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.d.ts +0 -2
- package/dist/core/index.js +0 -7
- package/dist/model/strategy/adapter/promotion/adapter.d.ts +0 -4
- package/dist/model/strategy/adapter/promotion/adapter.js +0 -23
- package/dist/model/strategy/adapter/promotion/evaluator.d.ts +0 -17
- package/dist/model/strategy/adapter/promotion/evaluator.js +6 -279
- package/dist/model/strategy/adapter/promotion/examples.d.ts +0 -86
- package/dist/model/strategy/adapter/promotion/examples.js +0 -99
- package/dist/model/strategy/adapter/promotion/index.d.ts +1 -1
- package/dist/model/strategy/adapter/promotion/type.d.ts +2 -90
- package/dist/model/strategy/adapter/promotion/type.js +0 -45
- package/dist/modules/BookingContext/utils/buildCacheItemFromOrderLine.js +3 -5
- package/dist/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.js +3 -6
- package/dist/modules/Discount/index.d.ts +1 -0
- package/dist/modules/Discount/index.js +40 -11
- package/dist/modules/Discount/types.d.ts +1 -0
- package/dist/modules/Holder/index.d.ts +48 -0
- package/dist/modules/Holder/index.js +640 -0
- package/dist/modules/Holder/types.d.ts +123 -0
- package/dist/modules/Holder/types.js +1 -0
- package/dist/modules/Holder/utils.d.ts +13 -0
- package/dist/modules/Holder/utils.js +34 -0
- package/dist/modules/OpenData/index.d.ts +0 -2
- package/dist/modules/OpenData/index.js +2 -10
- package/dist/modules/Order/index.d.ts +11 -28
- package/dist/modules/Order/index.js +509 -750
- package/dist/modules/Order/types.d.ts +10 -33
- package/dist/modules/Order/utils/orderCollectionIdentity.js +2 -7
- package/dist/modules/Order/utils.d.ts +10 -0
- package/dist/modules/Order/utils.js +41 -13
- package/dist/modules/Payment/index.d.ts +0 -2
- package/dist/modules/Payment/index.js +50 -79
- package/dist/modules/Payment/types.d.ts +28 -99
- package/dist/modules/Payment/types.js +3 -20
- package/dist/modules/Payment/walletpass.d.ts +1 -25
- package/dist/modules/Payment/walletpass.js +157 -707
- package/dist/modules/Product/types.d.ts +1 -0
- package/dist/modules/ProductList/index.js +33 -14
- package/dist/modules/Quotation/index.d.ts +1 -1
- package/dist/modules/Quotation/index.js +2 -2
- package/dist/modules/ResourcePlanner/index.d.ts +24 -0
- package/dist/modules/ResourcePlanner/index.js +181 -0
- package/dist/modules/ResourcePlanner/planner.d.ts +14 -0
- package/dist/modules/ResourcePlanner/planner.js +1069 -0
- package/dist/modules/ResourcePlanner/types.d.ts +227 -0
- package/dist/modules/ResourcePlanner/types.js +1 -0
- package/dist/modules/Rules/index.d.ts +0 -1
- package/dist/modules/Rules/index.js +96 -89
- package/dist/modules/SalesSummary/index.js +12 -13
- package/dist/modules/ScanOrderLogger/index.d.ts +2 -0
- package/dist/modules/ScanOrderLogger/index.js +15 -2
- package/dist/modules/ScanOrderLogger/providers/feishu.js +45 -27
- package/dist/modules/ScanOrderLogger/types.d.ts +1 -0
- package/dist/modules/Schedule/index.d.ts +3 -1
- package/dist/modules/Schedule/index.js +21 -16
- package/dist/modules/Summary/utils.js +38 -13
- package/dist/modules/index.d.ts +2 -0
- package/dist/modules/index.js +3 -1
- package/dist/plugins/window.d.ts +1 -0
- package/dist/server/index.d.ts +14 -16
- package/dist/server/index.js +1148 -1930
- package/dist/server/modules/order/index.d.ts +4 -54
- package/dist/server/modules/order/index.js +695 -1595
- package/dist/server/modules/order/types.d.ts +3 -11
- package/dist/server/modules/order/types.js +1 -1
- package/dist/solution/BaseSales/index.d.ts +20 -109
- package/dist/solution/BaseSales/index.js +481 -1797
- package/dist/solution/BaseSales/types.d.ts +0 -52
- package/dist/solution/BaseSales/types.js +1 -2
- package/dist/solution/BaseSales/utils/cartPromotion.d.ts +1 -3
- package/dist/solution/BaseSales/utils/cartPromotion.js +31 -90
- package/dist/solution/BaseSales/utils/parseSalesResponse.d.ts +1 -6
- package/dist/solution/BookingByStep/index.d.ts +17 -2
- package/dist/solution/BookingByStep/index.js +294 -215
- package/dist/solution/BookingByStep/types.d.ts +2 -1
- package/dist/solution/BookingByStep/types.js +3 -1
- package/dist/solution/BookingByStep/utils/capacity.js +17 -1
- package/dist/solution/BookingByStep/utils/timeslots.d.ts +3 -1
- package/dist/solution/BookingByStep/utils/timeslots.js +19 -12
- package/dist/solution/BookingTicket/index.d.ts +3 -7
- package/dist/solution/BookingTicket/index.js +49 -132
- package/dist/solution/BookingTicket/utils/addProductDecision.js +0 -6
- package/dist/solution/BookingTicket/utils/scan/applyGlobalScan.d.ts +0 -8
- package/dist/solution/BookingTicket/utils/scan/applyGlobalScan.js +82 -172
- package/dist/solution/Sales/index.d.ts +0 -1
- package/dist/solution/Sales/index.js +2 -10
- package/dist/solution/ScanOrder/index.d.ts +26 -14
- package/dist/solution/ScanOrder/index.js +1148 -756
- package/dist/solution/ScanOrder/types.d.ts +21 -1
- package/dist/solution/ScanOrder/utils.d.ts +8 -0
- package/dist/solution/ScanOrder/utils.js +66 -25
- package/dist/solution/ShopDiscount/index.d.ts +1 -0
- package/dist/solution/ShopDiscount/index.js +125 -87
- package/dist/solution/UnifiedBookingSales/index.d.ts +183 -0
- package/dist/solution/UnifiedBookingSales/index.js +1871 -0
- package/dist/solution/UnifiedBookingSales/types.d.ts +143 -0
- package/dist/solution/UnifiedBookingSales/types.js +11 -0
- package/dist/solution/VenueBooking/index.d.ts +39 -11
- package/dist/solution/VenueBooking/index.js +1176 -860
- package/dist/solution/VenueBooking/types.d.ts +3 -0
- package/dist/solution/VenueBooking/utils/resource.js +1 -0
- package/dist/solution/VenueBooking/utils/slotMerge.d.ts +4 -4
- package/dist/solution/VenueBooking/utils/slotMerge.js +10 -5
- package/dist/solution/index.d.ts +1 -0
- package/dist/solution/index.js +2 -1
- package/dist/types/index.d.ts +1 -1
- package/lib/core/index.d.ts +0 -2
- package/lib/core/index.js +0 -4
- package/lib/model/strategy/adapter/promotion/adapter.d.ts +0 -4
- package/lib/model/strategy/adapter/promotion/adapter.js +0 -20
- package/lib/model/strategy/adapter/promotion/evaluator.d.ts +0 -17
- package/lib/model/strategy/adapter/promotion/evaluator.js +0 -235
- package/lib/model/strategy/adapter/promotion/examples.d.ts +0 -86
- package/lib/model/strategy/adapter/promotion/examples.js +0 -91
- package/lib/model/strategy/adapter/promotion/index.d.ts +1 -1
- package/lib/model/strategy/adapter/promotion/index.js +0 -51
- package/lib/model/strategy/adapter/promotion/type.d.ts +2 -90
- package/lib/model/strategy/adapter/promotion/type.js +0 -2
- package/lib/modules/BookingContext/utils/buildCacheItemFromOrderLine.js +1 -2
- package/lib/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.js +1 -2
- package/lib/modules/Discount/index.d.ts +1 -0
- package/lib/modules/Discount/index.js +9 -0
- package/lib/modules/Discount/types.d.ts +1 -0
- package/lib/modules/Holder/index.d.ts +48 -0
- package/lib/modules/Holder/index.js +402 -0
- package/lib/modules/Holder/types.d.ts +123 -0
- package/lib/modules/Holder/types.js +17 -0
- package/lib/modules/Holder/utils.d.ts +13 -0
- package/lib/modules/Holder/utils.js +71 -0
- package/lib/modules/OpenData/index.d.ts +0 -2
- package/lib/modules/OpenData/index.js +1 -6
- package/lib/modules/Order/index.d.ts +11 -28
- package/lib/modules/Order/index.js +86 -196
- package/lib/modules/Order/types.d.ts +10 -33
- package/lib/modules/Order/utils/orderCollectionIdentity.js +0 -3
- package/lib/modules/Order/utils.d.ts +10 -0
- package/lib/modules/Order/utils.js +40 -16
- package/lib/modules/Payment/index.d.ts +0 -2
- package/lib/modules/Payment/index.js +13 -34
- package/lib/modules/Payment/types.d.ts +28 -99
- package/lib/modules/Payment/types.js +3 -4
- package/lib/modules/Payment/walletpass.d.ts +1 -25
- package/lib/modules/Payment/walletpass.js +21 -470
- package/lib/modules/Product/types.d.ts +1 -0
- package/lib/modules/ProductList/index.js +40 -31
- package/lib/modules/Quotation/index.d.ts +1 -1
- package/lib/modules/Quotation/index.js +2 -2
- package/lib/modules/ResourcePlanner/index.d.ts +24 -0
- package/lib/modules/ResourcePlanner/index.js +148 -0
- package/lib/modules/ResourcePlanner/planner.d.ts +14 -0
- package/lib/modules/ResourcePlanner/planner.js +933 -0
- package/lib/modules/ResourcePlanner/types.d.ts +227 -0
- package/lib/modules/ResourcePlanner/types.js +17 -0
- package/lib/modules/Rules/index.d.ts +0 -1
- package/lib/modules/Rules/index.js +40 -47
- package/lib/modules/SalesSummary/index.js +6 -7
- package/lib/modules/ScanOrderLogger/index.d.ts +2 -0
- package/lib/modules/ScanOrderLogger/index.js +13 -1
- package/lib/modules/ScanOrderLogger/providers/feishu.js +15 -6
- package/lib/modules/ScanOrderLogger/types.d.ts +1 -0
- package/lib/modules/Schedule/index.d.ts +3 -1
- package/lib/modules/Schedule/index.js +10 -8
- package/lib/modules/Summary/utils.js +21 -1
- package/lib/modules/index.d.ts +2 -0
- package/lib/modules/index.js +5 -1
- package/lib/plugins/window.d.ts +1 -0
- package/lib/server/index.d.ts +14 -16
- package/lib/server/index.js +83 -675
- package/lib/server/modules/order/index.d.ts +4 -54
- package/lib/server/modules/order/index.js +66 -679
- package/lib/server/modules/order/types.d.ts +3 -11
- package/lib/solution/BaseSales/index.d.ts +20 -109
- package/lib/solution/BaseSales/index.js +70 -881
- package/lib/solution/BaseSales/types.d.ts +0 -52
- package/lib/solution/BaseSales/types.js +1 -2
- package/lib/solution/BaseSales/utils/cartPromotion.d.ts +1 -3
- package/lib/solution/BaseSales/utils/cartPromotion.js +12 -63
- package/lib/solution/BaseSales/utils/parseSalesResponse.d.ts +1 -6
- package/lib/solution/BookingByStep/index.d.ts +17 -2
- package/lib/solution/BookingByStep/index.js +60 -18
- package/lib/solution/BookingByStep/types.d.ts +2 -1
- package/lib/solution/BookingByStep/types.js +5 -0
- package/lib/solution/BookingByStep/utils/capacity.js +20 -1
- package/lib/solution/BookingByStep/utils/timeslots.d.ts +3 -1
- package/lib/solution/BookingByStep/utils/timeslots.js +19 -11
- package/lib/solution/BookingTicket/index.d.ts +3 -7
- package/lib/solution/BookingTicket/index.js +9 -62
- package/lib/solution/BookingTicket/utils/addProductDecision.js +0 -4
- package/lib/solution/BookingTicket/utils/scan/applyGlobalScan.d.ts +0 -8
- package/lib/solution/BookingTicket/utils/scan/applyGlobalScan.js +4 -36
- package/lib/solution/Sales/index.d.ts +0 -1
- package/lib/solution/Sales/index.js +3 -5
- package/lib/solution/ScanOrder/index.d.ts +26 -14
- package/lib/solution/ScanOrder/index.js +449 -190
- package/lib/solution/ScanOrder/types.d.ts +21 -1
- package/lib/solution/ScanOrder/utils.d.ts +8 -0
- package/lib/solution/ScanOrder/utils.js +31 -0
- package/lib/solution/ShopDiscount/index.d.ts +1 -0
- package/lib/solution/ShopDiscount/index.js +14 -0
- package/lib/solution/UnifiedBookingSales/index.d.ts +183 -0
- package/lib/solution/UnifiedBookingSales/index.js +1076 -0
- package/lib/solution/UnifiedBookingSales/types.d.ts +143 -0
- package/lib/solution/UnifiedBookingSales/types.js +33 -0
- package/lib/solution/VenueBooking/index.d.ts +39 -11
- package/lib/solution/VenueBooking/index.js +328 -123
- package/lib/solution/VenueBooking/types.d.ts +3 -0
- package/lib/solution/VenueBooking/utils/resource.js +1 -0
- package/lib/solution/VenueBooking/utils/slotMerge.d.ts +4 -4
- package/lib/solution/VenueBooking/utils/slotMerge.js +6 -4
- package/lib/solution/index.d.ts +1 -0
- package/lib/solution/index.js +3 -1
- package/lib/types/index.d.ts +1 -1
- package/package.json +1 -1
- package/dist/modules/Order/payment-utils.d.ts +0 -26
- package/dist/modules/Order/payment-utils.js +0 -225
- package/dist/solution/BookingTicket/utils/weighingProductSku.d.ts +0 -5
- package/dist/solution/BookingTicket/utils/weighingProductSku.js +0 -45
- package/dist/utils/payment-number.d.ts +0 -9
- package/dist/utils/payment-number.js +0 -69
- package/lib/modules/Order/payment-utils.d.ts +0 -26
- package/lib/modules/Order/payment-utils.js +0 -224
- package/lib/solution/BookingTicket/utils/weighingProductSku.d.ts +0 -5
- package/lib/solution/BookingTicket/utils/weighingProductSku.js +0 -63
- package/lib/utils/payment-number.d.ts +0 -9
- package/lib/utils/payment-number.js +0 -64
|
@@ -3,7 +3,6 @@ import { OrderModule, ProductList, QuotationModule, SalesSummaryModule, ScanOrde
|
|
|
3
3
|
import type { ScanOrderLogInput as BaseSalesLogInput, ScanOrderLoggerProviderConfig as BaseSalesLoggerProviderConfig, ScanOrderLoggerProviderType as BaseSalesLoggerProviderType } from '../../modules/ScanOrderLogger/types';
|
|
4
4
|
import type { QuantityCheckResult, QuantityLimitResult } from '../../model/strategy/adapter/itemRule';
|
|
5
5
|
import type { QuotationCustomerScopeInfo } from '../../modules/Quotation/types';
|
|
6
|
-
import type { PaymentMethod } from '../../modules/Payment/types';
|
|
7
6
|
/**
|
|
8
7
|
* BaseSales 流程 hook 后缀。
|
|
9
8
|
* 完整事件名应由当前模块名动态拼接,避免多个实例共享固定事件 key。
|
|
@@ -17,62 +16,11 @@ export declare const BaseSalesHookNames: {
|
|
|
17
16
|
readonly onPaymentSyncStart: "onPaymentSyncStart";
|
|
18
17
|
readonly onPaymentSyncEnd: "onPaymentSyncEnd";
|
|
19
18
|
readonly onDepositPaymentSyncEnd: "onDepositPaymentSyncEnd";
|
|
20
|
-
readonly onWalletAssetsStateChanged: "onWalletAssetsStateChanged";
|
|
21
19
|
};
|
|
22
20
|
export type BaseSalesHookName = typeof BaseSalesHookNames[keyof typeof BaseSalesHookNames];
|
|
23
21
|
export declare function createBaseSalesHook(moduleName: string, hookName: BaseSalesHookName): string;
|
|
24
22
|
export type BaseSalesStatus = 'idle' | 'initializing' | 'ready' | 'error';
|
|
25
23
|
export type BaseSalesPaymentStatus = 'paid' | 'partially_paid' | 'unpaid' | 'payment_processing' | string;
|
|
26
|
-
export interface BaseSalesCashPaymentConfig {
|
|
27
|
-
available: boolean;
|
|
28
|
-
paymentMethod?: PaymentMethod;
|
|
29
|
-
amountDue: number;
|
|
30
|
-
recommendedAmounts: number[];
|
|
31
|
-
}
|
|
32
|
-
export interface BaseSalesPayCashParams {
|
|
33
|
-
/** 实际计入订单的现金支付金额(部分支付时小于待付金额)。 */
|
|
34
|
-
amount: number;
|
|
35
|
-
/** 顾客实际交付现金;可大于 amount。 */
|
|
36
|
-
actualPaidAmount?: number;
|
|
37
|
-
changeAmount?: number;
|
|
38
|
-
roundingAmount?: number;
|
|
39
|
-
}
|
|
40
|
-
export interface BaseSalesPayCashResult {
|
|
41
|
-
payment: Record<string, any>;
|
|
42
|
-
payments: Record<string, any>[];
|
|
43
|
-
syncResult: Record<string, any>;
|
|
44
|
-
isOrderFullyPaid: boolean;
|
|
45
|
-
}
|
|
46
|
-
export interface BaseSalesCommitPaymentMethodParams {
|
|
47
|
-
/** 支付方式 id;与 paymentMethodCode 至少传一个。 */
|
|
48
|
-
paymentMethodId?: number | string;
|
|
49
|
-
/** 支付方式 code,大小写不敏感。 */
|
|
50
|
-
paymentMethodCode?: string;
|
|
51
|
-
/** 本次计入订单的支付金额。 */
|
|
52
|
-
amount: number;
|
|
53
|
-
/** 支付设备返回的原始金额;缺省时与 amount 相同。 */
|
|
54
|
-
originAmount?: number;
|
|
55
|
-
/** 支付设备返回的实际手续费配置。 */
|
|
56
|
-
serviceCharge?: {
|
|
57
|
-
amount?: string | number;
|
|
58
|
-
percentage?: string | number;
|
|
59
|
-
} | null;
|
|
60
|
-
/** 支付设备返回的唯一流水号等扩展信息。 */
|
|
61
|
-
metadata?: Record<string, any>;
|
|
62
|
-
/** 少数支付方式需要透传的额外 payment 字段。 */
|
|
63
|
-
paymentData?: Record<string, any>;
|
|
64
|
-
}
|
|
65
|
-
export interface BaseSalesCommitPaymentMethodResult {
|
|
66
|
-
payment: Record<string, any>;
|
|
67
|
-
payments: Record<string, any>[];
|
|
68
|
-
syncResult: Record<string, any>;
|
|
69
|
-
isOrderFullyPaid: boolean;
|
|
70
|
-
}
|
|
71
|
-
export interface BaseSalesConfirmWalletPaymentResult<T = Record<string, any>> {
|
|
72
|
-
submitResult: T;
|
|
73
|
-
payments: Record<string, any>[];
|
|
74
|
-
isOrderFullyPaid: boolean;
|
|
75
|
-
}
|
|
76
24
|
export interface BaseSalesEntryContext {
|
|
77
25
|
biz: string;
|
|
78
26
|
mode: 'scan' | 'append';
|
|
@@ -10,8 +10,7 @@ export var BaseSalesHookNames = {
|
|
|
10
10
|
onCartValidationChanged: 'onCartValidationChanged',
|
|
11
11
|
onPaymentSyncStart: 'onPaymentSyncStart',
|
|
12
12
|
onPaymentSyncEnd: 'onPaymentSyncEnd',
|
|
13
|
-
onDepositPaymentSyncEnd: 'onDepositPaymentSyncEnd'
|
|
14
|
-
onWalletAssetsStateChanged: 'onWalletAssetsStateChanged'
|
|
13
|
+
onDepositPaymentSyncEnd: 'onDepositPaymentSyncEnd'
|
|
15
14
|
};
|
|
16
15
|
export function createBaseSalesHook(moduleName, hookName) {
|
|
17
16
|
return "".concat(moduleName, ":").concat(hookName);
|
|
@@ -78,7 +78,6 @@ export interface CartPromotionEvaluator {
|
|
|
78
78
|
}>;
|
|
79
79
|
hasApplicableStrategy: boolean;
|
|
80
80
|
}>;
|
|
81
|
-
getStrategyConfigs?: () => unknown[];
|
|
82
81
|
}
|
|
83
82
|
/** 单个赠品减量项 */
|
|
84
83
|
export interface GiftReduceItem {
|
|
@@ -268,8 +267,7 @@ export declare function appendPromotionTags<T extends Record<string, any>>(produ
|
|
|
268
267
|
* 处理购物车的促销计算与赠品差异化。
|
|
269
268
|
*
|
|
270
269
|
* 流程:
|
|
271
|
-
* 1. 分离 main / gift / edit-product
|
|
272
|
-
* 配置 ITEM_REWARD 时,编辑态商品也参与商品奖励重算)
|
|
270
|
+
* 1. 分离 main / gift / edit-product 三类(带 `booking_id` 的编辑态商品不参与促销)
|
|
273
271
|
* 2. 转 PromotionProduct 喂评估器 → 拿到 `evaluateCartWithPricing` 与 `getProductsApplicableStrategies`
|
|
274
272
|
* 3. 把 PricedProduct 映射回 OrderProduct 形态:
|
|
275
273
|
* - 参与促销的,写 `metadata._promotion` + 调整 `selling_price` / `main_product_selling_price`
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
var _excluded = ["_promotionTags"];
|
|
2
2
|
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
3
3
|
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
4
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
5
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
6
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
7
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
|
8
|
+
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
4
9
|
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
5
10
|
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
6
11
|
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
7
12
|
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
8
13
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
9
14
|
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
|
|
10
|
-
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
11
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
12
|
-
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
13
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
|
14
|
-
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
15
15
|
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
16
16
|
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
17
17
|
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
@@ -116,50 +116,24 @@ export function getOrderProductOriginalPriceForPromotion(product) {
|
|
|
116
116
|
}
|
|
117
117
|
return getOrderProductBasePrice(product);
|
|
118
118
|
}
|
|
119
|
-
var X_ITEMS_FOR_Y_PRICE = 'X_ITEMS_FOR_Y_PRICE';
|
|
120
|
-
var BUY_X_GET_Y_FREE = 'BUY_X_GET_Y_FREE';
|
|
121
|
-
var ITEM_REWARD = 'ITEM_REWARD';
|
|
122
|
-
function isItemRewardPromotionDiscountItem(item) {
|
|
123
|
-
var _item$metadata, _item$metadata2;
|
|
124
|
-
return (item === null || item === void 0 ? void 0 : item.type) === 'product' && (item === null || item === void 0 || (_item$metadata = item.metadata) === null || _item$metadata === void 0 ? void 0 : _item$metadata.source) === 'promotion' && (item === null || item === void 0 || (_item$metadata2 = item.metadata) === null || _item$metadata2 === void 0 ? void 0 : _item$metadata2.actionType) === ITEM_REWARD;
|
|
125
|
-
}
|
|
126
|
-
function isManagedPromotionDiscountItem(item) {
|
|
127
|
-
if ((item === null || item === void 0 ? void 0 : item.type) === 'promotion') return true;
|
|
128
|
-
return isItemRewardPromotionDiscountItem(item);
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
/**
|
|
132
|
-
* 判断商品行在本轮评估前是否已享受促销。
|
|
133
|
-
*
|
|
134
|
-
* `_promotion` 仅存在于当前运行时;订单保存后会被裁剪,因此编辑态需通过
|
|
135
|
-
* ITEM_REWARD 写入的受管商品折扣恢复上一轮状态。
|
|
136
|
-
*/
|
|
137
|
-
function wasInPromotionBeforeEvaluation(item) {
|
|
138
|
-
var _item$metadata3;
|
|
139
|
-
if ((item === null || item === void 0 || (_item$metadata3 = item.metadata) === null || _item$metadata3 === void 0 || (_item$metadata3 = _item$metadata3._promotion) === null || _item$metadata3 === void 0 ? void 0 : _item$metadata3.inPromotion) === true) return true;
|
|
140
|
-
return Array.isArray(item === null || item === void 0 ? void 0 : item.discount_list) && item.discount_list.some(isItemRewardPromotionDiscountItem);
|
|
141
|
-
}
|
|
142
119
|
|
|
143
120
|
/**
|
|
144
|
-
* 写入/清除促销 discount_list
|
|
121
|
+
* 写入/清除促销 discount_list(type=promotion)。
|
|
145
122
|
*
|
|
146
123
|
* applyDiscount → applyProductDiscountPrices 会从 source_product_price 减去 discount_list 合计
|
|
147
124
|
* 重算 main_product_selling_price;保留券前 source 时必须同步写入促销差额,否则会还原成原价。
|
|
148
125
|
*
|
|
149
|
-
* ITEM_REWARD 使用 type=product,复用商品级折扣排他规则,避免客户折扣继续叠加到奖励商品行。
|
|
150
|
-
*
|
|
151
126
|
* @example
|
|
152
127
|
* updatePromotionDiscountList(line, { title: '2 items for $10', amount: '17.00', original_amount: '22.00', fixed_amount: '17.00' });
|
|
153
128
|
*/
|
|
154
|
-
function updatePromotionDiscountList(item, promotionDiscount
|
|
129
|
+
function updatePromotionDiscountList(item, promotionDiscount) {
|
|
155
130
|
var discountList = Array.isArray(item.discount_list) ? _toConsumableArray(item.discount_list) : [];
|
|
156
131
|
discountList = discountList.filter(function (d) {
|
|
157
|
-
return
|
|
132
|
+
return (d === null || d === void 0 ? void 0 : d.type) !== 'promotion';
|
|
158
133
|
});
|
|
159
134
|
if (promotionDiscount) {
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
type: discountType,
|
|
135
|
+
discountList.push({
|
|
136
|
+
type: 'promotion',
|
|
163
137
|
amount: promotionDiscount.amount,
|
|
164
138
|
discount: {
|
|
165
139
|
original_amount: promotionDiscount.original_amount,
|
|
@@ -167,12 +141,7 @@ function updatePromotionDiscountList(item, promotionDiscount, options) {
|
|
|
167
141
|
title: promotionDiscount.title,
|
|
168
142
|
resource_id: ''
|
|
169
143
|
}
|
|
170
|
-
}
|
|
171
|
-
metadata: {
|
|
172
|
-
source: 'promotion',
|
|
173
|
-
actionType: (options === null || options === void 0 ? void 0 : options.actionType) || ITEM_REWARD
|
|
174
|
-
}
|
|
175
|
-
} : {}));
|
|
144
|
+
});
|
|
176
145
|
}
|
|
177
146
|
if (discountList.length > 0) {
|
|
178
147
|
item.discount_list = discountList;
|
|
@@ -180,19 +149,11 @@ function updatePromotionDiscountList(item, promotionDiscount, options) {
|
|
|
180
149
|
delete item.discount_list;
|
|
181
150
|
}
|
|
182
151
|
}
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
var configs = evaluator === null || evaluator === void 0 || (_evaluator$getStrateg = evaluator.getStrategyConfigs) === null || _evaluator$getStrateg === void 0 ? void 0 : _evaluator$getStrateg.call(evaluator);
|
|
186
|
-
if (!Array.isArray(configs)) return false;
|
|
187
|
-
return configs.some(function (config) {
|
|
188
|
-
return ((config === null || config === void 0 ? void 0 : config.actions) || []).some(function (action) {
|
|
189
|
-
return (action === null || action === void 0 ? void 0 : action.type) === actionType;
|
|
190
|
-
});
|
|
191
|
-
});
|
|
192
|
-
}
|
|
152
|
+
var X_ITEMS_FOR_Y_PRICE = 'X_ITEMS_FOR_Y_PRICE';
|
|
153
|
+
var BUY_X_GET_Y_FREE = 'BUY_X_GET_Y_FREE';
|
|
193
154
|
|
|
194
155
|
/**
|
|
195
|
-
* 将促销单价写入 OrderProduct(含 metadata 三字段 +
|
|
156
|
+
* 将促销单价写入 OrderProduct(含 metadata 三字段 + promotion discount_list)。
|
|
196
157
|
*
|
|
197
158
|
* @example
|
|
198
159
|
* applyPromoUnitPriceToLine(newItem, { promoUnitPrice: '5.00', originalBasePrice: 1, strategyTitle: '2 for 10' });
|
|
@@ -223,9 +184,6 @@ function applyPromoUnitPriceToLine(item, input) {
|
|
|
223
184
|
amount: discountAmount,
|
|
224
185
|
original_amount: catalogSource,
|
|
225
186
|
fixed_amount: discountAmount
|
|
226
|
-
}, {
|
|
227
|
-
actionType: input.actionType,
|
|
228
|
-
discountType: input.actionType === ITEM_REWARD ? 'product' : 'promotion'
|
|
229
187
|
});
|
|
230
188
|
} else {
|
|
231
189
|
updatePromotionDiscountList(item, null);
|
|
@@ -513,11 +471,11 @@ function getProductBundleForEvaluator(product) {
|
|
|
513
471
|
* // => 单行 num=4,清除 _promotion 后重新评估
|
|
514
472
|
*/
|
|
515
473
|
export function buildConsolidateKeyForPromotion(item) {
|
|
516
|
-
var _item$booking_uid, _item$
|
|
474
|
+
var _item$booking_uid, _item$metadata, _item$order_detail_id, _item$product_variant3;
|
|
517
475
|
var fingerprint = buildProductLineFingerprint(getProductSkuOptions(item), item.product_bundle);
|
|
518
476
|
var noteSignature = getProductLineNoteSignature(item);
|
|
519
477
|
var lineMergeBoundary = getPromotionLineMergeBoundary(item);
|
|
520
|
-
var bookingUid = (_item$booking_uid = item === null || item === void 0 ? void 0 : item.booking_uid) !== null && _item$booking_uid !== void 0 ? _item$booking_uid : item === null || item === void 0 || (_item$
|
|
478
|
+
var bookingUid = (_item$booking_uid = item === null || item === void 0 ? void 0 : item.booking_uid) !== null && _item$booking_uid !== void 0 ? _item$booking_uid : item === null || item === void 0 || (_item$metadata = item.metadata) === null || _item$metadata === void 0 ? void 0 : _item$metadata.booking_uid;
|
|
521
479
|
var orderDetailId = (_item$order_detail_id = item === null || item === void 0 ? void 0 : item.order_detail_id) !== null && _item$order_detail_id !== void 0 ? _item$order_detail_id : item === null || item === void 0 ? void 0 : item.orderDetailId;
|
|
522
480
|
if (orderDetailId !== undefined && orderDetailId !== null && orderDetailId !== '') {
|
|
523
481
|
var _item$product_variant;
|
|
@@ -538,11 +496,12 @@ function consolidateMainProductsForPromotion(entries) {
|
|
|
538
496
|
_step5;
|
|
539
497
|
try {
|
|
540
498
|
for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
|
|
499
|
+
var _item$metadata2;
|
|
541
500
|
var _step5$value = _step5.value,
|
|
542
501
|
item = _step5$value.item,
|
|
543
502
|
originalListIndex = _step5$value.originalListIndex;
|
|
544
503
|
var key = buildConsolidateKeyForPromotion(item);
|
|
545
|
-
var wasInPromotion =
|
|
504
|
+
var wasInPromotion = (item === null || item === void 0 || (_item$metadata2 = item.metadata) === null || _item$metadata2 === void 0 || (_item$metadata2 = _item$metadata2._promotion) === null || _item$metadata2 === void 0 ? void 0 : _item$metadata2.inPromotion) === true;
|
|
546
505
|
var existing = groups.get(key);
|
|
547
506
|
if (!existing) {
|
|
548
507
|
var mergedItem = cloneDeep(item);
|
|
@@ -639,9 +598,6 @@ function splitXItemsPromoLinesByGroup(lines, strategyActionMap) {
|
|
|
639
598
|
function generateNumericId() {
|
|
640
599
|
return Math.floor(Math.random() * 1000000000) + Date.now();
|
|
641
600
|
}
|
|
642
|
-
function isBookingEditProductLine(product) {
|
|
643
|
-
return (product === null || product === void 0 ? void 0 : product.booking_id) !== undefined && (product === null || product === void 0 ? void 0 : product.booking_id) !== null && product.booking_id !== 0 && product.booking_id !== '0';
|
|
644
|
-
}
|
|
645
601
|
|
|
646
602
|
/**
|
|
647
603
|
* 把 OrderProduct 转成 evaluator 的 PromotionProduct(仅评估期使用)。
|
|
@@ -662,7 +618,6 @@ function convertToPromotionProduct(product, index) {
|
|
|
662
618
|
price: getOrderProductOriginalPriceForPromotion(product),
|
|
663
619
|
quantity: Number((_product$num = product === null || product === void 0 ? void 0 : product.num) !== null && _product$num !== void 0 ? _product$num : 1) || 1,
|
|
664
620
|
bundle: getProductBundleForEvaluator(product),
|
|
665
|
-
_promotionOnlyForItemReward: isBookingEditProductLine(product),
|
|
666
621
|
_originalItem: originalItem,
|
|
667
622
|
_originalId: getOrderProductUid(product),
|
|
668
623
|
_originalIndex: index
|
|
@@ -870,9 +825,6 @@ export function resolveStrategyRequiredQuantity(matched) {
|
|
|
870
825
|
if (matched.actionType === 'BUY_X_GET_Y_FREE') {
|
|
871
826
|
return Number(detail.buyQuantity) || 1;
|
|
872
827
|
}
|
|
873
|
-
if (matched.actionType === 'ITEM_REWARD') {
|
|
874
|
-
return Number(detail.triggerQuantity) || 1;
|
|
875
|
-
}
|
|
876
828
|
return 1;
|
|
877
829
|
}
|
|
878
830
|
|
|
@@ -1032,8 +984,7 @@ export function appendPromotionTags(products, evaluator) {
|
|
|
1032
984
|
* 处理购物车的促销计算与赠品差异化。
|
|
1033
985
|
*
|
|
1034
986
|
* 流程:
|
|
1035
|
-
* 1. 分离 main / gift / edit-product
|
|
1036
|
-
* 配置 ITEM_REWARD 时,编辑态商品也参与商品奖励重算)
|
|
987
|
+
* 1. 分离 main / gift / edit-product 三类(带 `booking_id` 的编辑态商品不参与促销)
|
|
1037
988
|
* 2. 转 PromotionProduct 喂评估器 → 拿到 `evaluateCartWithPricing` 与 `getProductsApplicableStrategies`
|
|
1038
989
|
* 3. 把 PricedProduct 映射回 OrderProduct 形态:
|
|
1039
990
|
* - 参与促销的,写 `metadata._promotion` + 调整 `selling_price` / `main_product_selling_price`
|
|
@@ -1063,7 +1014,6 @@ export function processCartPromotion(list, evaluator, options) {
|
|
|
1063
1014
|
if (!list || list.length === 0 || !evaluator) return empty;
|
|
1064
1015
|
|
|
1065
1016
|
// 0. 分类
|
|
1066
|
-
var shouldIncludeEditProductsForItemReward = evaluatorHasActionType(evaluator, ITEM_REWARD);
|
|
1067
1017
|
var mainProductsWithIndex = [];
|
|
1068
1018
|
var existingGiftsWithIndex = [];
|
|
1069
1019
|
var editProductsWithIndex = [];
|
|
@@ -1080,18 +1030,11 @@ export function processCartPromotion(list, evaluator, options) {
|
|
|
1080
1030
|
item: item,
|
|
1081
1031
|
originalListIndex: i
|
|
1082
1032
|
});
|
|
1083
|
-
} else if (
|
|
1084
|
-
|
|
1085
|
-
|
|
1086
|
-
|
|
1087
|
-
|
|
1088
|
-
});
|
|
1089
|
-
} else {
|
|
1090
|
-
editProductsWithIndex.push({
|
|
1091
|
-
item: item,
|
|
1092
|
-
originalListIndex: i
|
|
1093
|
-
});
|
|
1094
|
-
}
|
|
1033
|
+
} else if ((item === null || item === void 0 ? void 0 : item.booking_id) !== undefined && (item === null || item === void 0 ? void 0 : item.booking_id) !== null && item.booking_id !== 0 && item.booking_id !== '0') {
|
|
1034
|
+
editProductsWithIndex.push({
|
|
1035
|
+
item: item,
|
|
1036
|
+
originalListIndex: i
|
|
1037
|
+
});
|
|
1095
1038
|
} else {
|
|
1096
1039
|
mainProductsWithIndex.push({
|
|
1097
1040
|
item: item,
|
|
@@ -1146,17 +1089,16 @@ export function processCartPromotion(list, evaluator, options) {
|
|
|
1146
1089
|
var promotionProducts = [];
|
|
1147
1090
|
var originalItemMap = new Map();
|
|
1148
1091
|
var productsForStrategies = consolidatedMainProductsWithIndex.map(function (_ref16, i) {
|
|
1149
|
-
var _item$product_id, _item$product_variant5, _item$
|
|
1092
|
+
var _item$product_id, _item$product_variant5, _item$metadata3, _item$num;
|
|
1150
1093
|
var item = _ref16.item;
|
|
1151
1094
|
return {
|
|
1152
1095
|
id: i,
|
|
1153
1096
|
product_id: Number((_item$product_id = item === null || item === void 0 ? void 0 : item.product_id) !== null && _item$product_id !== void 0 ? _item$product_id : 0) || 0,
|
|
1154
1097
|
product_variant_id: Number((_item$product_variant5 = item === null || item === void 0 ? void 0 : item.product_variant_id) !== null && _item$product_variant5 !== void 0 ? _item$product_variant5 : 0) || 0,
|
|
1155
|
-
name: (item === null || item === void 0 || (_item$
|
|
1098
|
+
name: (item === null || item === void 0 || (_item$metadata3 = item.metadata) === null || _item$metadata3 === void 0 ? void 0 : _item$metadata3.product_name) || (item === null || item === void 0 ? void 0 : item.title) || '',
|
|
1156
1099
|
price: getOrderProductBasePrice(item),
|
|
1157
1100
|
quantity: Number((_item$num = item === null || item === void 0 ? void 0 : item.num) !== null && _item$num !== void 0 ? _item$num : 1) || 1,
|
|
1158
|
-
bundle: getProductBundleForEvaluator(item)
|
|
1159
|
-
_promotionOnlyForItemReward: isBookingEditProductLine(item)
|
|
1101
|
+
bundle: getProductBundleForEvaluator(item)
|
|
1160
1102
|
};
|
|
1161
1103
|
});
|
|
1162
1104
|
for (var _i = 0; _i < consolidatedMainProductsWithIndex.length; _i++) {
|
|
@@ -1264,7 +1206,7 @@ export function processCartPromotion(list, evaluator, options) {
|
|
|
1264
1206
|
_step20;
|
|
1265
1207
|
try {
|
|
1266
1208
|
for (_iterator20.s(); !(_step20 = _iterator20.n()).done;) {
|
|
1267
|
-
var _priced$originalId2, _priced$product_id, _originalItem$product;
|
|
1209
|
+
var _priced$originalId2, _priced$product_id, _originalItem$product, _metadata$_promotion2;
|
|
1268
1210
|
var _priced = _step20.value;
|
|
1269
1211
|
var rawSourceId = (_priced$originalId2 = _priced.originalId) !== null && _priced$originalId2 !== void 0 ? _priced$originalId2 : _priced.id;
|
|
1270
1212
|
var _sourceId = Number(rawSourceId);
|
|
@@ -1283,7 +1225,7 @@ export function processCartPromotion(list, evaluator, options) {
|
|
|
1283
1225
|
newItem._sourceCartNum = sourceCartNum;
|
|
1284
1226
|
|
|
1285
1227
|
// 清掉历史促销字段
|
|
1286
|
-
var wasInPromotion =
|
|
1228
|
+
var wasInPromotion = ((_metadata$_promotion2 = metadata._promotion) === null || _metadata$_promotion2 === void 0 ? void 0 : _metadata$_promotion2.inPromotion) === true || originalItem._wasInPromotionBeforeConsolidate === true;
|
|
1287
1229
|
delete metadata._promotion;
|
|
1288
1230
|
if (Array.isArray(newItem.product_bundle)) {
|
|
1289
1231
|
var _iterator23 = _createForOfIteratorHelper(newItem.product_bundle),
|
|
@@ -1304,13 +1246,12 @@ export function processCartPromotion(list, evaluator, options) {
|
|
|
1304
1246
|
var priceUnchangedPromo = _priced.inPromotion && Number(_priced.finalPrice) === Number(originalBasePrice);
|
|
1305
1247
|
if (shouldModifyPrice) {
|
|
1306
1248
|
if (_priced.inPromotion && !priceUnchangedPromo) {
|
|
1307
|
-
var _priced$strategyMetad
|
|
1249
|
+
var _priced$strategyMetad;
|
|
1308
1250
|
var promoUnitPrice = new Decimal(_priced.finalPrice).toDecimalPlaces(2).toFixed(2);
|
|
1309
1251
|
applyPromoUnitPriceToLine(newItem, {
|
|
1310
1252
|
promoUnitPrice: promoUnitPrice,
|
|
1311
1253
|
originalBasePrice: originalBasePrice,
|
|
1312
|
-
strategyTitle: (_priced$strategyMetad = _priced.strategyMetadata) === null || _priced$strategyMetad === void 0 ? void 0 : _priced$strategyMetad.name
|
|
1313
|
-
actionType: _priced.strategyId ? (_strategyActionMap$ge = strategyActionMap.get(_priced.strategyId)) === null || _strategyActionMap$ge === void 0 ? void 0 : _strategyActionMap$ge.actionType : undefined
|
|
1254
|
+
strategyTitle: (_priced$strategyMetad = _priced.strategyMetadata) === null || _priced$strategyMetad === void 0 ? void 0 : _priced$strategyMetad.name
|
|
1314
1255
|
});
|
|
1315
1256
|
} else {
|
|
1316
1257
|
// 撤销上一轮促销:还原 selling_price 到 main_product_original_price 派生值
|
|
@@ -82,13 +82,8 @@ export interface ISalesBooking {
|
|
|
82
82
|
metadata?: Record<string, any> | null;
|
|
83
83
|
[key: string]: any;
|
|
84
84
|
}
|
|
85
|
-
export interface ISalesPaymentMetadata extends Record<string, any> {
|
|
86
|
-
/** 刷卡机设备快照;OS 不解析内部字段 */
|
|
87
|
-
card_reader_snapshot?: Record<string, unknown>;
|
|
88
|
-
}
|
|
89
85
|
export interface ISalesPayment {
|
|
90
86
|
order_payment_id?: number | null;
|
|
91
|
-
payment_number?: string;
|
|
92
87
|
custom_payment_id?: number;
|
|
93
88
|
code?: string;
|
|
94
89
|
name?: string;
|
|
@@ -100,7 +95,7 @@ export interface ISalesPayment {
|
|
|
100
95
|
status?: string;
|
|
101
96
|
payment_time?: string | null;
|
|
102
97
|
service_charge?: Record<string, any> | null;
|
|
103
|
-
metadata?:
|
|
98
|
+
metadata?: Record<string, any> | null;
|
|
104
99
|
[key: string]: any;
|
|
105
100
|
}
|
|
106
101
|
export interface ISalesSurcharge {
|
|
@@ -10,6 +10,7 @@ import { ITime } from '../../modules/Date/types';
|
|
|
10
10
|
import dayjs from 'dayjs';
|
|
11
11
|
import { LoadScheduleAvailableDateParams } from '../../modules/Schedule/types';
|
|
12
12
|
import { IHolder, IFetchHolderAccountsParams } from '../../modules/AccountList/types';
|
|
13
|
+
import { IAppendFormRecordParams } from '../../modules/Holder/types';
|
|
13
14
|
export declare class BookingByStepImpl extends BaseModule implements Module {
|
|
14
15
|
protected defaultName: string;
|
|
15
16
|
protected defaultVersion: string;
|
|
@@ -126,6 +127,20 @@ export declare class BookingByStepImpl extends BaseModule implements Module {
|
|
|
126
127
|
* @param params
|
|
127
128
|
*/
|
|
128
129
|
fetchHolderAccountsAsync(params: IFetchHolderAccountsParams): Promise<void>;
|
|
130
|
+
/**
|
|
131
|
+
* 获取 holder 表单 map
|
|
132
|
+
*/
|
|
133
|
+
getHolderFormMap(): import("../../modules").HolderFormMap;
|
|
134
|
+
/**
|
|
135
|
+
* 登录后或外部触发时,按当前 holderMap 批量刷新所有表单的 records
|
|
136
|
+
*/
|
|
137
|
+
refreshAllHolderFormRecords(params?: {
|
|
138
|
+
customer_id?: number;
|
|
139
|
+
}): Promise<import("../../modules").HolderFormMap>;
|
|
140
|
+
/**
|
|
141
|
+
* 添加表单记录
|
|
142
|
+
*/
|
|
143
|
+
appendFormRecord(params: IAppendFormRecordParams): import("../../modules").IFormRecord;
|
|
129
144
|
setDateRange(dateRange: ITime[]): Promise<void>;
|
|
130
145
|
clearDateRange(): void;
|
|
131
146
|
getDateRange(): Promise<ITime[]>;
|
|
@@ -302,7 +317,7 @@ export declare class BookingByStepImpl extends BaseModule implements Module {
|
|
|
302
317
|
autoSelectAllProductResources(resources_code: string, timeSlots?: TimeSliceItem): {
|
|
303
318
|
errorList: any[];
|
|
304
319
|
};
|
|
305
|
-
getTimeSlotByAllResources(resources_code: string): any[];
|
|
320
|
+
getTimeSlotByAllResources(resources_code: string, split?: number): any[];
|
|
306
321
|
getTimeSlotByAllResourcesForDate({ resources_code, startDate, endDate }: {
|
|
307
322
|
resources_code: string;
|
|
308
323
|
startDate: string;
|
|
@@ -311,7 +326,7 @@ export declare class BookingByStepImpl extends BaseModule implements Module {
|
|
|
311
326
|
date: string;
|
|
312
327
|
status: string;
|
|
313
328
|
week: string;
|
|
314
|
-
weekNum: 0 | 1 |
|
|
329
|
+
weekNum: 0 | 1 | 5 | 2 | 4 | 3 | 6;
|
|
315
330
|
}[]>;
|
|
316
331
|
submitTimeSlot(timeSlots: TimeSliceItem): void;
|
|
317
332
|
private getScheduleDataByIds;
|