@pisell/pisellos 0.0.499 → 0.0.501

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.
Files changed (58) hide show
  1. package/dist/model/strategy/adapter/itemRule/adapter.d.ts +8 -0
  2. package/dist/model/strategy/adapter/itemRule/adapter.js +52 -8
  3. package/dist/model/strategy/adapter/itemRule/examples.d.ts +15 -0
  4. package/dist/model/strategy/adapter/itemRule/examples.js +68 -1
  5. package/dist/model/strategy/adapter/itemRule/index.d.ts +1 -1
  6. package/dist/model/strategy/adapter/itemRule/index.js +1 -1
  7. package/dist/model/strategy/adapter/itemRule/type.d.ts +20 -1
  8. package/dist/model/strategy/adapter/promotion/index.js +9 -0
  9. package/dist/modules/Order/index.d.ts +6 -0
  10. package/dist/modules/Order/index.js +60 -40
  11. package/dist/modules/Order/types.d.ts +4 -0
  12. package/dist/modules/Order/utils.d.ts +31 -0
  13. package/dist/modules/Order/utils.js +118 -13
  14. package/dist/modules/ProductList/index.js +2 -2
  15. package/dist/modules/Quotation/index.js +6 -3
  16. package/dist/modules/SalesSummary/types.d.ts +2 -1
  17. package/dist/modules/SalesSummary/utils.js +10 -10
  18. package/dist/modules/Schedule/utils.d.ts +1 -1
  19. package/dist/solution/BookingByStep/index.d.ts +2 -2
  20. package/dist/solution/ScanOrder/index.d.ts +7 -0
  21. package/dist/solution/ScanOrder/index.js +284 -67
  22. package/dist/solution/ScanOrder/types.d.ts +22 -5
  23. package/dist/solution/ScanOrder/utils.d.ts +26 -0
  24. package/dist/solution/ScanOrder/utils.js +191 -44
  25. package/dist/solution/VenueBooking/index.d.ts +14 -0
  26. package/dist/solution/VenueBooking/index.js +318 -144
  27. package/dist/solution/VenueBooking/utils/dateSummary.d.ts +1 -0
  28. package/dist/solution/VenueBooking/utils/dateSummary.js +6 -4
  29. package/dist/solution/VenueBooking/utils/slotMerge.js +1 -2
  30. package/lib/model/strategy/adapter/itemRule/adapter.d.ts +8 -0
  31. package/lib/model/strategy/adapter/itemRule/adapter.js +41 -2
  32. package/lib/model/strategy/adapter/itemRule/examples.d.ts +15 -0
  33. package/lib/model/strategy/adapter/itemRule/examples.js +47 -0
  34. package/lib/model/strategy/adapter/itemRule/index.d.ts +1 -1
  35. package/lib/model/strategy/adapter/itemRule/index.js +2 -0
  36. package/lib/model/strategy/adapter/itemRule/type.d.ts +20 -1
  37. package/lib/modules/Order/index.d.ts +6 -0
  38. package/lib/modules/Order/index.js +35 -37
  39. package/lib/modules/Order/types.d.ts +4 -0
  40. package/lib/modules/Order/utils.d.ts +31 -0
  41. package/lib/modules/Order/utils.js +97 -9
  42. package/lib/modules/ProductList/index.js +3 -2
  43. package/lib/modules/Quotation/index.js +3 -0
  44. package/lib/modules/SalesSummary/types.d.ts +2 -1
  45. package/lib/modules/SalesSummary/utils.js +2 -2
  46. package/lib/modules/Schedule/utils.d.ts +1 -1
  47. package/lib/solution/BookingByStep/index.d.ts +2 -2
  48. package/lib/solution/ScanOrder/index.d.ts +7 -0
  49. package/lib/solution/ScanOrder/index.js +162 -18
  50. package/lib/solution/ScanOrder/types.d.ts +22 -5
  51. package/lib/solution/ScanOrder/utils.d.ts +26 -0
  52. package/lib/solution/ScanOrder/utils.js +128 -19
  53. package/lib/solution/VenueBooking/index.d.ts +14 -0
  54. package/lib/solution/VenueBooking/index.js +156 -30
  55. package/lib/solution/VenueBooking/utils/dateSummary.d.ts +1 -0
  56. package/lib/solution/VenueBooking/utils/dateSummary.js +13 -4
  57. package/lib/solution/VenueBooking/utils/slotMerge.js +1 -2
  58. package/package.json +1 -1
@@ -1,10 +1,6 @@
1
1
  var _excluded = ["_origin", "identity_key"],
2
2
  _excluded2 = ["created_at", "summary", "surcharges"];
3
- 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; }
4
- 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; }
5
- 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; }
6
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
7
- 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); }
3
+ 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; } } }; }
8
4
  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; }
9
5
  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; }
10
6
  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); }
@@ -14,8 +10,75 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
14
10
  function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
15
11
  function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
16
12
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
13
+ 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; }
14
+ 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; }
15
+ 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; }
16
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
17
+ 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); }
17
18
  import dayjs from "dayjs";
19
+ import Decimal from 'decimal.js';
18
20
  import { createEmptySummary } from "../../solution/ScanOrder/utils";
21
+ /**
22
+ * OrderModule 默认 Rules 钩子工厂。
23
+ *
24
+ * 价格语义约定(订单域):
25
+ * - `selling_price`:券后单品单价(实际成交单价)。初次加购 = `original_price`;券应用后由 Rules 引擎更新。
26
+ * - `original_price`:券前单品单价(店铺售价)。不承载后台划线价语义。
27
+ * - `payment_price`:已从内部字段移除;只在出站 payload 中由 `selling_price` 派生以兼容后端。
28
+ *
29
+ * Rules 钩子契约:
30
+ * - `getProduct.total` = `selling_price × num`(当前成交总价)
31
+ * - `getProduct.origin_total` = `original_price × num`(券前总价)
32
+ * - `setProduct` 写回 `selling_price` 的优先级:
33
+ * 1. `values.main_product_selling_price`(券应用分支,per-unit 券后主价)
34
+ * 2. `values.price`(还原分支 `restoredPrice`、good_pass 归零)
35
+ * 3. `values.total / num`(仅当 Rules 只给出总价时的兜底)
36
+ *
37
+ * 导出为纯函数方便单测直接驱动钩子,不依赖 OrderModule 实例。
38
+ */
39
+ export function createDefaultOrderRulesHooks() {
40
+ var toUnitPriceString = function toUnitPriceString(totalLike, num) {
41
+ var effectiveNum = Number(num) > 0 ? Number(num) : 1;
42
+ return new Decimal(Number(totalLike) || 0).dividedBy(effectiveNum).toDecimalPlaces(2).toString();
43
+ };
44
+ return {
45
+ getProduct: function getProduct(product) {
46
+ var _product$_origin, _product$_origin2, _product$_origin3, _product$_origin4;
47
+ return {
48
+ id: product.product_id,
49
+ _id: product.identity_key ? "".concat(product.product_id, "_").concat(product.product_variant_id, "_").concat(product.identity_key) : "".concat(product.product_id, "_").concat(product.product_variant_id),
50
+ price: product.selling_price,
51
+ total: new Decimal(product.selling_price || 0).times(product.num || 1).toNumber(),
52
+ origin_total: new Decimal(product.original_price || product.selling_price || 0).times(product.num || 1).toNumber(),
53
+ original_price: product.original_price,
54
+ quantity: product.num || 1,
55
+ num: product.num || 1,
56
+ discount_list: product.discount_list || [],
57
+ bundle: product.product_bundle || [],
58
+ booking_id: ((_product$_origin = product._origin) === null || _product$_origin === void 0 ? void 0 : _product$_origin.booking_id) || null,
59
+ isClient: false,
60
+ isManualDiscount: ((_product$_origin2 = product._origin) === null || _product$_origin2 === void 0 ? void 0 : _product$_origin2.isManualDiscount) || false,
61
+ holder_id: (_product$_origin3 = product._origin) === null || _product$_origin3 === void 0 ? void 0 : _product$_origin3.holder_id,
62
+ startDate: (_product$_origin4 = product._origin) === null || _product$_origin4 === void 0 ? void 0 : _product$_origin4.startDate
63
+ };
64
+ },
65
+ setProduct: function setProduct(product, values) {
66
+ var _ref, _values$quantity, _values$discount_list, _values$quantity2, _values$bundle;
67
+ var nextNum = Number((_ref = (_values$quantity = values.quantity) !== null && _values$quantity !== void 0 ? _values$quantity : product.num) !== null && _ref !== void 0 ? _ref : 1) || 1;
68
+ var nextSellingPrice = values.main_product_selling_price !== undefined ? String(values.main_product_selling_price) : values.price !== undefined ? String(values.price) : values.total !== undefined ? toUnitPriceString(values.total, nextNum) : product.selling_price;
69
+ return _objectSpread(_objectSpread({}, product), {}, {
70
+ selling_price: nextSellingPrice,
71
+ original_price: values.original_price !== undefined ? String(values.original_price) : product.original_price,
72
+ discount_list: (_values$discount_list = values.discount_list) !== null && _values$discount_list !== void 0 ? _values$discount_list : product.discount_list,
73
+ num: (_values$quantity2 = values.quantity) !== null && _values$quantity2 !== void 0 ? _values$quantity2 : product.num,
74
+ product_bundle: (_values$bundle = values.bundle) !== null && _values$bundle !== void 0 ? _values$bundle : product.product_bundle,
75
+ metadata: _objectSpread(_objectSpread({}, product.metadata || {}), values.main_product_selling_price !== undefined ? {
76
+ main_product_selling_price: String(values.main_product_selling_price)
77
+ } : {})
78
+ });
79
+ }
80
+ };
81
+ }
19
82
 
20
83
  /**
21
84
  * 通过 session 类商品的开始时间结束时间生成商品的时长
@@ -130,6 +193,30 @@ function normalizeSubmitProduct(product) {
130
193
  product_option_item: submitProduct.product_option_item || [],
131
194
  discount_list: submitProduct.discount_list || [],
132
195
  product_bundle: submitProduct.product_bundle || [],
196
+ metadata: cleanMetadata,
197
+ // 出站兼容:后端仍消费 payment_price 字段,从 selling_price(券后单价)派生。
198
+ payment_price: submitProduct.selling_price
199
+ });
200
+ }
201
+ var SUBMIT_BOOKING_METADATA_WHITELIST = ['unique_identification_number', 'collect_pax'];
202
+ export function normalizeSubmitBooking(booking) {
203
+ var rawMetadata = booking.metadata || {};
204
+ var cleanMetadata = {};
205
+ var _iterator = _createForOfIteratorHelper(SUBMIT_BOOKING_METADATA_WHITELIST),
206
+ _step;
207
+ try {
208
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
209
+ var key = _step.value;
210
+ if (rawMetadata[key] !== undefined) {
211
+ cleanMetadata[key] = rawMetadata[key];
212
+ }
213
+ }
214
+ } catch (err) {
215
+ _iterator.e(err);
216
+ } finally {
217
+ _iterator.f();
218
+ }
219
+ return _objectSpread(_objectSpread({}, booking), {}, {
133
220
  metadata: cleanMetadata
134
221
  });
135
222
  }
@@ -147,6 +234,18 @@ function resolveTableOccupancyDuration(tempOrder) {
147
234
  }
148
235
  return DEFAULT_TABLE_OCCUPANCY_DURATION;
149
236
  }
237
+
238
+ /** 提交用人数:有限且为正则向下取整,否则为 1 */
239
+ export function normalizeSubmitCollectPaxValue(value) {
240
+ var n = Number(value);
241
+ return Number.isFinite(n) && n > 0 ? Math.floor(n) : 1;
242
+ }
243
+
244
+ /** 从临时订单 metadata 解析合成 booking 的 collect_pax */
245
+ export function resolveSubmitCollectPax(tempOrder) {
246
+ var _tempOrder$metadata;
247
+ return normalizeSubmitCollectPaxValue((_tempOrder$metadata = tempOrder.metadata) === null || _tempOrder$metadata === void 0 ? void 0 : _tempOrder$metadata.collect_pax);
248
+ }
150
249
  export function createDefaultTempOrder(params) {
151
250
  var summary = params.summary || createEmptySummary();
152
251
  return {
@@ -196,11 +295,15 @@ export function createDefaultTempOrder(params) {
196
295
  };
197
296
  }
198
297
  export function buildSubmitPayload(params) {
199
- var _tempOrder$is_price_i, _tempOrder$is_deposit;
298
+ var _ref2, _ref3, _ref4, _tempOrder$is_price_i, _tempOrder$is_deposit;
200
299
  var tempOrder = params.tempOrder,
201
300
  cacheId = params.cacheId,
202
301
  _params$now = params.now,
203
- now = _params$now === void 0 ? new Date() : _params$now;
302
+ now = _params$now === void 0 ? new Date() : _params$now,
303
+ platform = params.platform,
304
+ businessCode = params.businessCode,
305
+ channel = params.channel,
306
+ type = params.type;
204
307
  var scheduleDate = tempOrder.schedule_date || tempOrder.created_at || formatDateTime(now);
205
308
  var summary = tempOrder.summary || createEmptySummary();
206
309
  var relationId = tempOrder.relation_id;
@@ -219,7 +322,7 @@ export function buildSubmitPayload(params) {
219
322
  duration: bookingDuration,
220
323
  metadata: {
221
324
  unique_identification_number: bookingUuid,
222
- collect_pax: 1
325
+ collect_pax: resolveSubmitCollectPax(tempOrder)
223
326
  },
224
327
  select_date: bookingStart.format('YYYY-MM-DD'),
225
328
  is_all: false,
@@ -237,12 +340,12 @@ export function buildSubmitPayload(params) {
237
340
  _surcharges = tempOrder.surcharges,
238
341
  tempOrderRest = _objectWithoutProperties(tempOrder, _excluded2);
239
342
  return _objectSpread(_objectSpread({}, tempOrderRest), {}, {
240
- platform: normalizeSubmitPlatform(tempOrder.platform),
343
+ platform: normalizeSubmitPlatform(platform !== null && platform !== void 0 ? platform : tempOrder.platform),
241
344
  request_unique_idempotency_token: cacheId,
242
- type: tempOrder.type || 'table-order',
243
- business_code: tempOrder.business_code || 'table-order',
345
+ type: (_ref2 = type !== null && type !== void 0 ? type : tempOrder.type) !== null && _ref2 !== void 0 ? _ref2 : 'table-order',
346
+ business_code: (_ref3 = businessCode !== null && businessCode !== void 0 ? businessCode : tempOrder.business_code) !== null && _ref3 !== void 0 ? _ref3 : 'table-order',
244
347
  sales_channel: tempOrder.sales_channel || 'my_pisel',
245
- order_sales_channel: tempOrder.order_sales_channel || 'online_store',
348
+ order_sales_channel: (_ref4 = channel !== null && channel !== void 0 ? channel : tempOrder.order_sales_channel) !== null && _ref4 !== void 0 ? _ref4 : 'online_store',
246
349
  status: tempOrder.status || 'normal',
247
350
  payment_status: tempOrder.payment_status || 'payment_processing',
248
351
  // shipping_status: tempOrder.shipping_status || 'unfulfilled',
@@ -254,7 +357,9 @@ export function buildSubmitPayload(params) {
254
357
  surcharge_fee: summary.surcharge_fee || tempOrder.surcharge_fee || '0.00',
255
358
  note: tempOrder.note || '',
256
359
  schedule_date: scheduleDate,
257
- bookings: bookings,
360
+ bookings: bookings.map(function (booking) {
361
+ return normalizeSubmitBooking(booking);
362
+ }),
258
363
  payments: tempOrder.payments || [],
259
364
  // discount_list: tempOrder.discount_list || [],
260
365
  relation_forms: tempOrder.relation_forms || [],
@@ -85,7 +85,6 @@ export var ProductList = /*#__PURE__*/function (_BaseModule) {
85
85
  key: "loadProducts",
86
86
  value: function () {
87
87
  var _loadProducts = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(_ref, options) {
88
- var _this$otherParams;
89
88
  var _ref$category_ids, category_ids, _ref$product_ids, product_ids, _ref$collection, collection, _ref$menu_list_ids, menu_list_ids, paramsCustomerId, _ref$with_count, with_count, schedule_datetime, schedule_date, cacheId, with_schedule, userPlugin, customer_id, _userPlugin$get, productsData, sortedList;
90
89
  return _regeneratorRuntime().wrap(function _callee3$(_context3) {
91
90
  while (1) switch (_context3.prev = _context3.next) {
@@ -131,7 +130,8 @@ export var ProductList = /*#__PURE__*/function (_BaseModule) {
131
130
  schedule_date: schedule_date,
132
131
  with_schedule: with_schedule,
133
132
  schedule_datetime: schedule_datetime,
134
- application_code: (_this$otherParams = this.otherParams) === null || _this$otherParams === void 0 ? void 0 : _this$otherParams.channel,
133
+ // application_code: this.otherParams?.channel,
134
+ application_code: 'online-store',
135
135
  is_eject: 1
136
136
  }, {
137
137
  osServer: true,
@@ -78,18 +78,21 @@ export var QuotationModule = /*#__PURE__*/function (_BaseModule) {
78
78
  case 0:
79
79
  query = {};
80
80
  if (params !== null && params !== void 0 && params.channel) query.channel = params.channel;
81
- _context2.next = 4;
81
+ if ((params === null || params === void 0 ? void 0 : params.channel) === 'online_store') {
82
+ query.channel = 'online-store';
83
+ }
84
+ _context2.next = 5;
82
85
  return this.request.get('/quotation/available', query, {
83
86
  useCache: false
84
87
  });
85
- case 4:
88
+ case 5:
86
89
  res = _context2.sent;
87
90
  list = (res === null || res === void 0 || (_data = res.data) === null || _data === void 0 ? void 0 : _data.list) || (res === null || res === void 0 ? void 0 : res.list) || [];
88
91
  list.sort(function (a, b) {
89
92
  return a.sort - b.sort;
90
93
  });
91
94
  this.store.list = list;
92
- case 8:
95
+ case 9:
93
96
  case "end":
94
97
  return _context2.stop();
95
98
  }
@@ -2,9 +2,10 @@ export interface SalesSummaryProduct {
2
2
  product_id: number | null;
3
3
  product_variant_id: number;
4
4
  num: number;
5
+ /** 券后单品单价(订单域成交单价),由 OrderModule 维护。 */
5
6
  selling_price: string;
7
+ /** 券前单品单价(店铺售价)。 */
6
8
  original_price: string;
7
- payment_price: string;
8
9
  tax_fee: string;
9
10
  is_charge_tax?: number;
10
11
  product_option_item?: any[];
@@ -68,7 +68,7 @@ function getBundleUnitPrice(product) {
68
68
  // 单商品总价口径:主商品单价 + option + bundle(随后再乘商品数量)
69
69
  function getUnitPaymentTotal(product) {
70
70
  var variantPrice = getVariantPrice(product);
71
- var basePrice = variantPrice || toDecimal(product.selling_price || product.payment_price);
71
+ var basePrice = variantPrice || toDecimal(product.selling_price);
72
72
  return basePrice.plus(getOptionUnitPrice(product)).plus(getBundleUnitPrice(product));
73
73
  }
74
74
  function getUnitOriginalTotal(product) {
@@ -254,9 +254,9 @@ function calculateSingleItemTax(params) {
254
254
  * 与 Summary/utils.ts 的 getMainProductTotal 逻辑对齐,适配 SalesSummaryProduct 结构。
255
255
  */
256
256
  function getMainProductPaymentTotal(product) {
257
- var _ref2, _product$metadata$mai, _product$metadata4, _product$_origin3, _product$_origin4;
257
+ var _product$metadata$mai, _product$metadata4, _product$_origin3, _product$_origin4;
258
258
  var variantPrice = getVariantPrice(product);
259
- var total = variantPrice || toDecimal((_ref2 = (_product$metadata$mai = (_product$metadata4 = product.metadata) === null || _product$metadata4 === void 0 ? void 0 : _product$metadata4.main_product_selling_price) !== null && _product$metadata$mai !== void 0 ? _product$metadata$mai : product.selling_price) !== null && _ref2 !== void 0 ? _ref2 : product.payment_price);
259
+ var total = variantPrice || toDecimal((_product$metadata$mai = (_product$metadata4 = product.metadata) === null || _product$metadata4 === void 0 ? void 0 : _product$metadata4.main_product_selling_price) !== null && _product$metadata$mai !== void 0 ? _product$metadata$mai : product.selling_price);
260
260
  var mainDiscountList = ((_product$_origin3 = product._origin) === null || _product$_origin3 === void 0 || (_product$_origin3 = _product$_origin3.product) === null || _product$_origin3 === void 0 ? void 0 : _product$_origin3.discount_list) || ((_product$_origin4 = product._origin) === null || _product$_origin4 === void 0 ? void 0 : _product$_origin4.discount_list) || [];
261
261
  var mainDiscountAmount = getDiscountListAmount(mainDiscountList.filter(function (d) {
262
262
  var _d$metadata;
@@ -271,8 +271,8 @@ function getMainProductPaymentTotal(product) {
271
271
  for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
272
272
  var bundleItem = _step5.value;
273
273
  if (isBundleMarkupOrDiscount(bundleItem)) {
274
- var _ref3, _bundleItem$bundle_se;
275
- total = total.plus(toDecimal((_ref3 = (_bundleItem$bundle_se = bundleItem.bundle_selling_price) !== null && _bundleItem$bundle_se !== void 0 ? _bundleItem$bundle_se : bundleItem.price) !== null && _ref3 !== void 0 ? _ref3 : 0));
274
+ var _ref2, _bundleItem$bundle_se;
275
+ total = total.plus(toDecimal((_ref2 = (_bundleItem$bundle_se = bundleItem.bundle_selling_price) !== null && _bundleItem$bundle_se !== void 0 ? _bundleItem$bundle_se : bundleItem.price) !== null && _ref2 !== void 0 ? _ref2 : 0));
276
276
  }
277
277
  }
278
278
  } catch (err) {
@@ -340,24 +340,24 @@ function calculateProductsTax(products, taxRate, isPriceIncludeTax) {
340
340
  _step7;
341
341
  try {
342
342
  for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {
343
- var _bundleItem$num, _ref4, _bundleItem$bundle_se2, _ref5, _ref6, _bundleItem$original_, _ref7, _bundleItem$is_charge, _ref8, _bundleItem$is_charge2;
343
+ var _bundleItem$num, _ref3, _bundleItem$bundle_se2, _ref4, _ref5, _bundleItem$original_, _ref6, _bundleItem$is_charge, _ref7, _bundleItem$is_charge2;
344
344
  var bundleItem = _step7.value;
345
345
  if (!isBundleOriginalPrice(bundleItem)) continue;
346
346
  var bundleQuantity = new Decimal(getSafeNum((_bundleItem$num = bundleItem.num) !== null && _bundleItem$num !== void 0 ? _bundleItem$num : bundleItem.quantity));
347
- var bundlePrice = toDecimal((_ref4 = (_bundleItem$bundle_se2 = bundleItem.bundle_selling_price) !== null && _bundleItem$bundle_se2 !== void 0 ? _bundleItem$bundle_se2 : bundleItem.price) !== null && _ref4 !== void 0 ? _ref4 : 0);
348
- var bundleOriginalPrice = toDecimal((_ref5 = (_ref6 = (_bundleItem$original_ = bundleItem.original_price) !== null && _bundleItem$original_ !== void 0 ? _bundleItem$original_ : bundleItem.product_price) !== null && _ref6 !== void 0 ? _ref6 : bundleItem.price) !== null && _ref5 !== void 0 ? _ref5 : 0);
347
+ var bundlePrice = toDecimal((_ref3 = (_bundleItem$bundle_se2 = bundleItem.bundle_selling_price) !== null && _bundleItem$bundle_se2 !== void 0 ? _bundleItem$bundle_se2 : bundleItem.price) !== null && _ref3 !== void 0 ? _ref3 : 0);
348
+ var bundleOriginalPrice = toDecimal((_ref4 = (_ref5 = (_bundleItem$original_ = bundleItem.original_price) !== null && _bundleItem$original_ !== void 0 ? _bundleItem$original_ : bundleItem.product_price) !== null && _ref5 !== void 0 ? _ref5 : bundleItem.price) !== null && _ref4 !== void 0 ? _ref4 : 0);
349
349
  var bundleTaxPrecise = calculateSingleItemTax({
350
350
  price: bundlePrice,
351
351
  taxRate: rate,
352
352
  isPriceIncludeTax: isPriceIncludeTax,
353
- isChargeTax: (_ref7 = (_bundleItem$is_charge = bundleItem.is_charge_tax) !== null && _bundleItem$is_charge !== void 0 ? _bundleItem$is_charge : product.is_charge_tax) !== null && _ref7 !== void 0 ? _ref7 : 0
353
+ isChargeTax: (_ref6 = (_bundleItem$is_charge = bundleItem.is_charge_tax) !== null && _bundleItem$is_charge !== void 0 ? _bundleItem$is_charge : product.is_charge_tax) !== null && _ref6 !== void 0 ? _ref6 : 0
354
354
  });
355
355
  var bundleTaxRounded = bundleTaxPrecise.toDecimalPlaces(2, Decimal.ROUND_HALF_UP);
356
356
  var bundleOrigTaxPrecise = calculateSingleItemTax({
357
357
  price: bundleOriginalPrice,
358
358
  taxRate: rate,
359
359
  isPriceIncludeTax: isPriceIncludeTax,
360
- isChargeTax: (_ref8 = (_bundleItem$is_charge2 = bundleItem.is_charge_tax) !== null && _bundleItem$is_charge2 !== void 0 ? _bundleItem$is_charge2 : product.is_charge_tax) !== null && _ref8 !== void 0 ? _ref8 : 0
360
+ isChargeTax: (_ref7 = (_bundleItem$is_charge2 = bundleItem.is_charge_tax) !== null && _bundleItem$is_charge2 !== void 0 ? _bundleItem$is_charge2 : product.is_charge_tax) !== null && _ref7 !== void 0 ? _ref7 : 0
361
361
  });
362
362
  var bundleOrigTaxRounded = bundleOrigTaxPrecise.toDecimalPlaces(2, Decimal.ROUND_HALF_UP);
363
363
  bundleItem.tax_fee = bundleTaxRounded.toNumber();
@@ -46,7 +46,7 @@ export declare const formatScheduleResult: (schedule: ScheduleItem) => {
46
46
  };
47
47
  export declare const calcScheduleDateRange: (schedule: ScheduleItem) => any[];
48
48
  export declare const calcCalendarDataBySchedules: (schedules: ScheduleItem[]) => unknown[];
49
- export declare const calcMinTimeMaxTimeBySchedules: (schedules: ScheduleItem[], scheduleAllMap?: ScheduleAllMap, selectDate?: string) => {};
49
+ export declare const calcMinTimeMaxTimeBySchedules: (schedules: ScheduleItem[], scheduleAllMap?: ScheduleAllMap, selectDate?: string) => ScheduleAllMap;
50
50
  /**
51
51
  * @title: 格式化日程数据
52
52
  * @description:
@@ -311,7 +311,7 @@ export declare class BookingByStepImpl extends BaseModule implements Module {
311
311
  date: string;
312
312
  status: string;
313
313
  week: string;
314
- weekNum: 0 | 1 | 2 | 3 | 4 | 5 | 6;
314
+ weekNum: 0 | 5 | 1 | 4 | 2 | 3 | 6;
315
315
  }[]>;
316
316
  submitTimeSlot(timeSlots: TimeSliceItem): void;
317
317
  private getScheduleDataByIds;
@@ -330,7 +330,7 @@ export declare class BookingByStepImpl extends BaseModule implements Module {
330
330
  count: number;
331
331
  left: number;
332
332
  summaryCount: number;
333
- status: "lots_of_space" | "filling_up_fast" | "sold_out";
333
+ status: "sold_out" | "lots_of_space" | "filling_up_fast";
334
334
  }[];
335
335
  /**
336
336
  * 找到多个资源的公共可用时间段
@@ -27,6 +27,8 @@ export declare class ScanOrderImpl extends BaseModule implements Module {
27
27
  private itemRuleConfigsPromise;
28
28
  private itemRulePrefillApplied;
29
29
  private itemRuleRuntimeConfig;
30
+ /** 最近一次 checkResourceAvailable 从预约规则 link 拉取的商品快照 */
31
+ private enabledReservationRuleProducts;
30
32
  private getScanOrderLoggerContext;
31
33
  private serializeError;
32
34
  private addScanOrderLog;
@@ -87,4 +89,9 @@ export declare class ScanOrderImpl extends BaseModule implements Module {
87
89
  }>;
88
90
  getProductList(): Promise<any>;
89
91
  getOtherParams(): Record<string, any>;
92
+ setOtherParams(params: Record<string, any>, { cover }?: {
93
+ cover?: boolean;
94
+ }): Promise<void>;
95
+ setEntryPaxNumber(number: number): Promise<void>;
96
+ getEntryPaxNumber(): number | null;
90
97
  }