@pisell/pisellos 0.0.500 → 0.0.502

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 (68) 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 +10 -0
  10. package/dist/modules/Order/index.js +64 -40
  11. package/dist/modules/Order/types.d.ts +13 -1
  12. package/dist/modules/Order/utils.d.ts +36 -1
  13. package/dist/modules/Order/utils.js +120 -24
  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/ScanOrder/index.d.ts +22 -0
  20. package/dist/solution/ScanOrder/index.js +863 -369
  21. package/dist/solution/ScanOrder/types.d.ts +31 -8
  22. package/dist/solution/ScanOrder/utils.d.ts +26 -0
  23. package/dist/solution/ScanOrder/utils.js +191 -44
  24. package/dist/solution/VenueBooking/index.d.ts +42 -5
  25. package/dist/solution/VenueBooking/index.js +692 -280
  26. package/dist/solution/VenueBooking/types.d.ts +23 -0
  27. package/dist/solution/VenueBooking/utils/dateSummary.d.ts +2 -1
  28. package/dist/solution/VenueBooking/utils/dateSummary.js +7 -5
  29. package/dist/solution/VenueBooking/utils/resource.d.ts +11 -1
  30. package/dist/solution/VenueBooking/utils/resource.js +57 -21
  31. package/dist/solution/VenueBooking/utils/slotMerge.d.ts +5 -0
  32. package/dist/solution/VenueBooking/utils/slotMerge.js +33 -12
  33. package/dist/solution/VenueBooking/utils/timeSlot.d.ts +1 -1
  34. package/dist/solution/VenueBooking/utils/timeSlot.js +259 -62
  35. package/lib/model/strategy/adapter/itemRule/adapter.d.ts +8 -0
  36. package/lib/model/strategy/adapter/itemRule/adapter.js +41 -2
  37. package/lib/model/strategy/adapter/itemRule/examples.d.ts +15 -0
  38. package/lib/model/strategy/adapter/itemRule/examples.js +47 -0
  39. package/lib/model/strategy/adapter/itemRule/index.d.ts +1 -1
  40. package/lib/model/strategy/adapter/itemRule/index.js +2 -0
  41. package/lib/model/strategy/adapter/itemRule/type.d.ts +20 -1
  42. package/lib/modules/Order/index.d.ts +10 -0
  43. package/lib/modules/Order/index.js +40 -43
  44. package/lib/modules/Order/types.d.ts +13 -1
  45. package/lib/modules/Order/utils.d.ts +36 -1
  46. package/lib/modules/Order/utils.js +100 -21
  47. package/lib/modules/ProductList/index.js +3 -2
  48. package/lib/modules/Quotation/index.js +3 -0
  49. package/lib/modules/SalesSummary/types.d.ts +2 -1
  50. package/lib/modules/SalesSummary/utils.js +2 -2
  51. package/lib/modules/Schedule/utils.d.ts +1 -1
  52. package/lib/solution/ScanOrder/index.d.ts +22 -0
  53. package/lib/solution/ScanOrder/index.js +376 -21
  54. package/lib/solution/ScanOrder/types.d.ts +31 -8
  55. package/lib/solution/ScanOrder/utils.d.ts +26 -0
  56. package/lib/solution/ScanOrder/utils.js +128 -19
  57. package/lib/solution/VenueBooking/index.d.ts +42 -5
  58. package/lib/solution/VenueBooking/index.js +356 -84
  59. package/lib/solution/VenueBooking/types.d.ts +23 -0
  60. package/lib/solution/VenueBooking/utils/dateSummary.d.ts +2 -1
  61. package/lib/solution/VenueBooking/utils/dateSummary.js +14 -5
  62. package/lib/solution/VenueBooking/utils/resource.d.ts +11 -1
  63. package/lib/solution/VenueBooking/utils/resource.js +15 -4
  64. package/lib/solution/VenueBooking/utils/slotMerge.d.ts +5 -0
  65. package/lib/solution/VenueBooking/utils/slotMerge.js +29 -12
  66. package/lib/solution/VenueBooking/utils/timeSlot.d.ts +1 -1
  67. package/lib/solution/VenueBooking/utils/timeSlot.js +182 -43
  68. package/package.json +1 -1
@@ -1,11 +1,7 @@
1
1
  var _excluded = ["_origin", "identity_key"],
2
- _excluded2 = ["created_at", "summary", "surcharges"];
2
+ _excluded2 = ["created_at", "summary", "surcharges"],
3
+ _excluded3 = ["collect_pax", "table_occupancy_duration"];
3
4
  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; } } }; }
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); }
9
5
  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; }
10
6
  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; }
11
7
  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); }
@@ -15,8 +11,75 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
15
11
  function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
16
12
  function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
17
13
  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; }
14
+ 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; }
15
+ 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; }
16
+ 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; }
17
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
18
+ 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); }
18
19
  import dayjs from "dayjs";
20
+ import Decimal from 'decimal.js';
19
21
  import { createEmptySummary } from "../../solution/ScanOrder/utils";
22
+ /**
23
+ * OrderModule 默认 Rules 钩子工厂。
24
+ *
25
+ * 价格语义约定(订单域):
26
+ * - `selling_price`:券后单品单价(实际成交单价)。初次加购 = `original_price`;券应用后由 Rules 引擎更新。
27
+ * - `original_price`:券前单品单价(店铺售价)。不承载后台划线价语义。
28
+ * - `payment_price`:已从内部字段移除;只在出站 payload 中由 `selling_price` 派生以兼容后端。
29
+ *
30
+ * Rules 钩子契约:
31
+ * - `getProduct.total` = `selling_price × num`(当前成交总价)
32
+ * - `getProduct.origin_total` = `original_price × num`(券前总价)
33
+ * - `setProduct` 写回 `selling_price` 的优先级:
34
+ * 1. `values.main_product_selling_price`(券应用分支,per-unit 券后主价)
35
+ * 2. `values.price`(还原分支 `restoredPrice`、good_pass 归零)
36
+ * 3. `values.total / num`(仅当 Rules 只给出总价时的兜底)
37
+ *
38
+ * 导出为纯函数方便单测直接驱动钩子,不依赖 OrderModule 实例。
39
+ */
40
+ export function createDefaultOrderRulesHooks() {
41
+ var toUnitPriceString = function toUnitPriceString(totalLike, num) {
42
+ var effectiveNum = Number(num) > 0 ? Number(num) : 1;
43
+ return new Decimal(Number(totalLike) || 0).dividedBy(effectiveNum).toDecimalPlaces(2).toString();
44
+ };
45
+ return {
46
+ getProduct: function getProduct(product) {
47
+ var _product$_origin, _product$_origin2, _product$_origin3, _product$_origin4;
48
+ return {
49
+ id: product.product_id,
50
+ _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),
51
+ price: product.selling_price,
52
+ total: new Decimal(product.selling_price || 0).times(product.num || 1).toNumber(),
53
+ origin_total: new Decimal(product.original_price || product.selling_price || 0).times(product.num || 1).toNumber(),
54
+ original_price: product.original_price,
55
+ quantity: product.num || 1,
56
+ num: product.num || 1,
57
+ discount_list: product.discount_list || [],
58
+ bundle: product.product_bundle || [],
59
+ booking_id: ((_product$_origin = product._origin) === null || _product$_origin === void 0 ? void 0 : _product$_origin.booking_id) || null,
60
+ isClient: false,
61
+ isManualDiscount: ((_product$_origin2 = product._origin) === null || _product$_origin2 === void 0 ? void 0 : _product$_origin2.isManualDiscount) || false,
62
+ holder_id: (_product$_origin3 = product._origin) === null || _product$_origin3 === void 0 ? void 0 : _product$_origin3.holder_id,
63
+ startDate: (_product$_origin4 = product._origin) === null || _product$_origin4 === void 0 ? void 0 : _product$_origin4.startDate
64
+ };
65
+ },
66
+ setProduct: function setProduct(product, values) {
67
+ var _ref, _values$quantity, _values$discount_list, _values$quantity2, _values$bundle;
68
+ var nextNum = Number((_ref = (_values$quantity = values.quantity) !== null && _values$quantity !== void 0 ? _values$quantity : product.num) !== null && _ref !== void 0 ? _ref : 1) || 1;
69
+ 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;
70
+ return _objectSpread(_objectSpread({}, product), {}, {
71
+ selling_price: nextSellingPrice,
72
+ original_price: values.original_price !== undefined ? String(values.original_price) : product.original_price,
73
+ discount_list: (_values$discount_list = values.discount_list) !== null && _values$discount_list !== void 0 ? _values$discount_list : product.discount_list,
74
+ num: (_values$quantity2 = values.quantity) !== null && _values$quantity2 !== void 0 ? _values$quantity2 : product.num,
75
+ product_bundle: (_values$bundle = values.bundle) !== null && _values$bundle !== void 0 ? _values$bundle : product.product_bundle,
76
+ metadata: _objectSpread(_objectSpread({}, product.metadata || {}), values.main_product_selling_price !== undefined ? {
77
+ main_product_selling_price: String(values.main_product_selling_price)
78
+ } : {})
79
+ });
80
+ }
81
+ };
82
+ }
20
83
 
21
84
  /**
22
85
  * 通过 session 类商品的开始时间结束时间生成商品的时长
@@ -125,13 +188,18 @@ function normalizeSubmitProduct(product) {
125
188
  if (rawMetadata.price_breakdown) {
126
189
  cleanMetadata.price_breakdown = rawMetadata.price_breakdown;
127
190
  }
191
+ if (rawMetadata.is_rule !== undefined) {
192
+ cleanMetadata.is_rule = rawMetadata.is_rule;
193
+ }
128
194
  return _objectSpread(_objectSpread(_objectSpread({}, submitProduct), bookingUid ? {
129
195
  booking_uid: bookingUid
130
196
  } : {}), {}, {
131
197
  product_option_item: submitProduct.product_option_item || [],
132
198
  discount_list: submitProduct.discount_list || [],
133
199
  product_bundle: submitProduct.product_bundle || [],
134
- metadata: cleanMetadata
200
+ metadata: cleanMetadata,
201
+ // 出站兼容:后端仍消费 payment_price 字段,从 selling_price(券后单价)派生。
202
+ payment_price: submitProduct.selling_price
135
203
  });
136
204
  }
137
205
  var SUBMIT_BOOKING_METADATA_WHITELIST = ['unique_identification_number', 'collect_pax'];
@@ -170,6 +238,18 @@ function resolveTableOccupancyDuration(tempOrder) {
170
238
  }
171
239
  return DEFAULT_TABLE_OCCUPANCY_DURATION;
172
240
  }
241
+
242
+ /** 提交用人数:有限且为正则向下取整,否则为 1 */
243
+ export function normalizeSubmitCollectPaxValue(value) {
244
+ var n = Number(value);
245
+ return Number.isFinite(n) && n > 0 ? Math.floor(n) : 1;
246
+ }
247
+
248
+ /** 从临时订单 metadata 解析合成 booking 的 collect_pax */
249
+ export function resolveSubmitCollectPax(tempOrder) {
250
+ var _tempOrder$metadata;
251
+ return normalizeSubmitCollectPaxValue((_tempOrder$metadata = tempOrder.metadata) === null || _tempOrder$metadata === void 0 ? void 0 : _tempOrder$metadata.collect_pax);
252
+ }
173
253
  export function createDefaultTempOrder(params) {
174
254
  var summary = params.summary || createEmptySummary();
175
255
  return {
@@ -219,11 +299,16 @@ export function createDefaultTempOrder(params) {
219
299
  };
220
300
  }
221
301
  export function buildSubmitPayload(params) {
222
- var _tempOrder$is_price_i, _tempOrder$is_deposit;
302
+ var _ref2, _ref3, _ref4, _tempOrder$is_price_i, _tempOrder$is_deposit;
223
303
  var tempOrder = params.tempOrder,
224
304
  cacheId = params.cacheId,
225
305
  _params$now = params.now,
226
- now = _params$now === void 0 ? new Date() : _params$now;
306
+ now = _params$now === void 0 ? new Date() : _params$now,
307
+ platform = params.platform,
308
+ businessCode = params.businessCode,
309
+ channel = params.channel,
310
+ type = params.type,
311
+ enhance = params.enhance;
227
312
  var scheduleDate = tempOrder.schedule_date || tempOrder.created_at || formatDateTime(now);
228
313
  var summary = tempOrder.summary || createEmptySummary();
229
314
  var relationId = tempOrder.relation_id;
@@ -233,8 +318,8 @@ export function buildSubmitPayload(params) {
233
318
  var bookingDuration = resolveTableOccupancyDuration(tempOrder);
234
319
  var bookingEnd = bookingStart.add(bookingDuration, 'minute');
235
320
  var bookings = relationId && tableFormId ? [{
236
- relation_id: relationId,
237
- form_id: tableFormId,
321
+ relation_id: 0,
322
+ form_id: 0,
238
323
  start_time: bookingStart.format('HH:mm'),
239
324
  start_date: bookingStart.format('YYYY-MM-DD'),
240
325
  end_time: bookingEnd.format('HH:mm'),
@@ -242,30 +327,30 @@ export function buildSubmitPayload(params) {
242
327
  duration: bookingDuration,
243
328
  metadata: {
244
329
  unique_identification_number: bookingUuid,
245
- collect_pax: 1
330
+ collect_pax: resolveSubmitCollectPax(tempOrder)
246
331
  },
247
332
  select_date: bookingStart.format('YYYY-MM-DD'),
248
333
  is_all: false,
249
- "like_status": "common",
250
- "schedule_id": 0,
251
- "relation_type": "form",
252
- "number": 1
334
+ like_status: 'common',
335
+ schedule_id: 0,
336
+ relation_type: '',
337
+ number: 1
253
338
  }] : tempOrder.bookings || [];
254
339
  var formRecordIds = relationId && tableFormId ? [{
255
340
  form_id: tableFormId,
256
- form_record_ids: [relationId]
341
+ form_record_id: relationId
257
342
  }] : undefined;
258
343
  var _createdAt = tempOrder.created_at,
259
344
  _summary = tempOrder.summary,
260
345
  _surcharges = tempOrder.surcharges,
261
346
  tempOrderRest = _objectWithoutProperties(tempOrder, _excluded2);
262
- return _objectSpread(_objectSpread({}, tempOrderRest), {}, {
263
- platform: normalizeSubmitPlatform(tempOrder.platform),
347
+ var payload = _objectSpread(_objectSpread({}, tempOrderRest), {}, {
348
+ platform: normalizeSubmitPlatform(platform !== null && platform !== void 0 ? platform : tempOrder.platform),
264
349
  request_unique_idempotency_token: cacheId,
265
- type: tempOrder.type || 'table-order',
266
- business_code: tempOrder.business_code || 'table-order',
350
+ type: (_ref2 = type !== null && type !== void 0 ? type : tempOrder.type) !== null && _ref2 !== void 0 ? _ref2 : 'table-order',
351
+ business_code: (_ref3 = businessCode !== null && businessCode !== void 0 ? businessCode : tempOrder.business_code) !== null && _ref3 !== void 0 ? _ref3 : 'table-order',
267
352
  sales_channel: tempOrder.sales_channel || 'my_pisel',
268
- order_sales_channel: tempOrder.order_sales_channel || 'online_store',
353
+ order_sales_channel: (_ref4 = channel !== null && channel !== void 0 ? channel : tempOrder.order_sales_channel) !== null && _ref4 !== void 0 ? _ref4 : 'online_store',
269
354
  status: tempOrder.status || 'normal',
270
355
  payment_status: tempOrder.payment_status || 'payment_processing',
271
356
  // shipping_status: tempOrder.shipping_status || 'unfulfilled',
@@ -288,11 +373,22 @@ export function buildSubmitPayload(params) {
288
373
  contacts_info: tempOrder.contacts_info || [],
289
374
  // holder: tempOrder.holder || null,
290
375
  // summary,
291
- metadata: _objectSpread({}, tempOrder.metadata),
376
+ metadata: function () {
377
+ var _ref5 = tempOrder.metadata || {},
378
+ _collectPax = _ref5.collect_pax,
379
+ _tableOccupancyDuration = _ref5.table_occupancy_duration,
380
+ rest = _objectWithoutProperties(_ref5, _excluded3);
381
+ return _objectSpread({}, rest);
382
+ }(),
292
383
  products: (tempOrder.products || []).map(function (product) {
293
384
  return normalizeSubmitProduct(product);
294
385
  })
295
386
  });
387
+ return enhance ? enhance(payload, {
388
+ tempOrder: tempOrder,
389
+ bookingUuid: bookingUuid,
390
+ now: now
391
+ }) : payload;
296
392
  }
297
393
  export function formatV1Product(products) {
298
394
  return products.map(function (product) {
@@ -302,7 +398,7 @@ export function formatV1Product(products) {
302
398
  option: product.product_option_item,
303
399
  product_id: product.product_id,
304
400
  product_variant_id: product.product_variant_id,
305
- quantity: product.num,
401
+ num: product.num,
306
402
  rowKey: product.product_id,
307
403
  session: null,
308
404
  unique: createUuidV4()
@@ -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:
@@ -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;
@@ -50,10 +52,17 @@ export declare class ScanOrderImpl extends BaseModule implements Module {
50
52
  };
51
53
  getTempOrder(): import("./types").ScanOrderTempOrder | null;
52
54
  updateTempOrderNote(note: string): string;
55
+ setPickupReferenceMode(mode: 'counter_pickup' | 'table_service'): {
56
+ service_type: 'dine_in';
57
+ pickup_reference_mode: 'counter_pickup' | 'table_service';
58
+ };
59
+ setPickupRef(buzzer: string): string;
53
60
  private ensureTempOrder;
54
61
  addNewOrder(): Promise<import("./types").ScanOrderTempOrder>;
62
+ restoreOrder(): Promise<import("./types").ScanOrderTempOrder>;
55
63
  getOrderProducts(): ScanOrderOrderProduct[];
56
64
  getSummary(): Promise<import("./types").ScanOrderSummary>;
65
+ private buildReservationRuleEnhancer;
57
66
  submitScanOrder<T = any>(): Promise<T>;
58
67
  addProductToOrder(product: Partial<ScanOrderOrderProduct> & ScanOrderOrderProductIdentity): Promise<ScanOrderOrderProduct[]>;
59
68
  updateProductInOrder(params: {
@@ -87,4 +96,17 @@ export declare class ScanOrderImpl extends BaseModule implements Module {
87
96
  }>;
88
97
  getProductList(): Promise<any>;
89
98
  getOtherParams(): Record<string, any>;
99
+ setOtherParams(params: Record<string, any>, { cover }?: {
100
+ cover?: boolean;
101
+ }): Promise<void>;
102
+ setEntryPaxNumber(number: number): Promise<void>;
103
+ getEntryPaxNumber(): number | null;
104
+ getFulfillmentModes(): {
105
+ enablePickup: boolean;
106
+ enableTableService: boolean;
107
+ };
108
+ checkManualPickupRef(): {
109
+ enabled: boolean;
110
+ manualInputType?: string;
111
+ };
90
112
  }