@pisell/pisellos 0.10.43 → 0.10.44

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 (87) hide show
  1. package/dist/model/strategy/adapter/itemRule/adapter.d.ts +4 -1
  2. package/dist/model/strategy/adapter/itemRule/adapter.js +135 -35
  3. package/dist/model/strategy/adapter/itemRule/evaluator.d.ts +8 -1
  4. package/dist/model/strategy/adapter/itemRule/evaluator.js +25 -1
  5. package/dist/model/strategy/adapter/itemRule/type.d.ts +44 -0
  6. package/dist/model/strategy/adapter/itemRule/type.js +19 -1
  7. package/dist/modules/Order/index.d.ts +41 -9
  8. package/dist/modules/Order/index.js +1438 -878
  9. package/dist/modules/Order/salesNotes.d.ts +31 -0
  10. package/dist/modules/Order/salesNotes.js +492 -0
  11. package/dist/modules/Order/types.d.ts +105 -8
  12. package/dist/modules/Order/types.js +6 -1
  13. package/dist/modules/Order/utils.d.ts +3 -1
  14. package/dist/modules/Order/utils.js +191 -71
  15. package/dist/modules/Payment/cashRecommendationAlgorithm.d.ts +4 -5
  16. package/dist/modules/Payment/cashRecommendationAlgorithm.js +17 -367
  17. package/dist/modules/ProductList/index.d.ts +2 -1
  18. package/dist/modules/ProductList/index.js +100 -20
  19. package/dist/modules/ProductList/types.d.ts +10 -0
  20. package/dist/server/index.d.ts +7 -0
  21. package/dist/server/index.js +45 -3
  22. package/dist/server/modules/order/index.js +6 -0
  23. package/dist/server/modules/order/types.d.ts +9 -0
  24. package/dist/server/utils/small-ticket.d.ts +1 -0
  25. package/dist/server/utils/small-ticket.js +142 -14
  26. package/dist/solution/BaseSales/index.d.ts +15 -1
  27. package/dist/solution/BaseSales/index.js +1240 -877
  28. package/dist/solution/BookingByStep/index.d.ts +1 -1
  29. package/dist/solution/BookingTicket/index.d.ts +1 -0
  30. package/dist/solution/BookingTicket/index.js +37 -16
  31. package/dist/solution/BookingTicket/utils/orderCustomer.js +3 -2
  32. package/dist/solution/RegisterAndLogin/config.d.ts +9 -3
  33. package/dist/solution/RegisterAndLogin/config.js +95 -40
  34. package/dist/solution/RegisterAndLogin/index.js +4 -1
  35. package/dist/solution/ScanOrder/index.d.ts +1 -0
  36. package/dist/solution/ScanOrder/index.js +31 -27
  37. package/dist/solution/ScanOrder/utils.d.ts +1 -0
  38. package/dist/solution/ScanOrder/utils.js +2 -0
  39. package/dist/solution/UnifiedBookingSales/index.d.ts +15 -2
  40. package/dist/solution/UnifiedBookingSales/index.js +777 -510
  41. package/dist/solution/UnifiedBookingSales/types.d.ts +14 -1
  42. package/dist/solution/VenueBooking/index.d.ts +1 -0
  43. package/dist/solution/VenueBooking/index.js +8 -4
  44. package/lib/model/strategy/adapter/itemRule/adapter.d.ts +4 -1
  45. package/lib/model/strategy/adapter/itemRule/adapter.js +73 -4
  46. package/lib/model/strategy/adapter/itemRule/evaluator.d.ts +8 -1
  47. package/lib/model/strategy/adapter/itemRule/evaluator.js +23 -1
  48. package/lib/model/strategy/adapter/itemRule/type.d.ts +44 -0
  49. package/lib/model/strategy/adapter/itemRule/type.js +19 -1
  50. package/lib/modules/Order/index.d.ts +41 -9
  51. package/lib/modules/Order/index.js +434 -61
  52. package/lib/modules/Order/salesNotes.d.ts +31 -0
  53. package/lib/modules/Order/salesNotes.js +382 -0
  54. package/lib/modules/Order/types.d.ts +105 -8
  55. package/lib/modules/Order/types.js +5 -1
  56. package/lib/modules/Order/utils.d.ts +3 -1
  57. package/lib/modules/Order/utils.js +114 -1
  58. package/lib/modules/Payment/cashRecommendationAlgorithm.d.ts +4 -5
  59. package/lib/modules/Payment/cashRecommendationAlgorithm.js +9 -354
  60. package/lib/modules/ProductList/index.d.ts +2 -1
  61. package/lib/modules/ProductList/index.js +47 -2
  62. package/lib/modules/ProductList/types.d.ts +10 -0
  63. package/lib/server/index.d.ts +7 -0
  64. package/lib/server/index.js +39 -3
  65. package/lib/server/modules/order/index.js +6 -0
  66. package/lib/server/modules/order/types.d.ts +9 -0
  67. package/lib/server/utils/small-ticket.d.ts +1 -0
  68. package/lib/server/utils/small-ticket.js +136 -12
  69. package/lib/solution/BaseSales/index.d.ts +15 -1
  70. package/lib/solution/BaseSales/index.js +192 -22
  71. package/lib/solution/BookingByStep/index.d.ts +1 -1
  72. package/lib/solution/BookingTicket/index.d.ts +1 -0
  73. package/lib/solution/BookingTicket/index.js +23 -5
  74. package/lib/solution/BookingTicket/utils/orderCustomer.js +2 -1
  75. package/lib/solution/RegisterAndLogin/config.d.ts +9 -3
  76. package/lib/solution/RegisterAndLogin/config.js +49 -8
  77. package/lib/solution/RegisterAndLogin/index.js +4 -1
  78. package/lib/solution/ScanOrder/index.d.ts +1 -0
  79. package/lib/solution/ScanOrder/index.js +5 -1
  80. package/lib/solution/ScanOrder/utils.d.ts +1 -0
  81. package/lib/solution/ScanOrder/utils.js +1 -0
  82. package/lib/solution/UnifiedBookingSales/index.d.ts +15 -2
  83. package/lib/solution/UnifiedBookingSales/index.js +125 -1
  84. package/lib/solution/UnifiedBookingSales/types.d.ts +14 -1
  85. package/lib/solution/VenueBooking/index.d.ts +1 -0
  86. package/lib/solution/VenueBooking/index.js +5 -1
  87. package/package.json +1 -1
@@ -1,7 +1,7 @@
1
1
  var _excluded = ["custom_product_bundle_map_id"],
2
2
  _excluded2 = ["unique_identification_number"],
3
3
  _excluded3 = ["num", "surcharge_fee", "discount_amount", "discount_type", "discountway", "product_discount_reason", "discount_per", "production_code"],
4
- _excluded4 = ["_extend", "relation_id", "table_form_id", "resource_id", "summary", "lastOrderInfo", "paid_amount", "shop_id", "shop_note", "shop_service_type", "start_time", "customer", "discount_list", "order_meta_list", "tax_fee", "total_amount", "total_refund_amount", "create_date", "holder_id", "payment_status"],
4
+ _excluded4 = ["_extend", "relation_id", "table_form_id", "resource_id", "summary", "lastOrderInfo", "paid_amount", "shop_id", "shop_note", "shop_service_type", "start_time", "customer", "discount_list", "order_meta_list", "tax_fee", "total_amount", "total_refund_amount", "create_date", "holder_id", "payment_status", "notes"],
5
5
  _excluded5 = ["collect_pax", "table_occupancy_duration", "cart_settlement_key", "cart_settlement_snapshot", "legal_currency_snapshot"];
6
6
  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; }
7
7
  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; }
@@ -9,21 +9,27 @@ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableTo
9
9
  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."); }
10
10
  function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
11
11
  function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
12
+ 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; } } }; }
12
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; }
13
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; }
14
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; }
15
16
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
16
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
- 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; } } }; }
18
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
19
+ 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."); }
18
20
  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); }
19
21
  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; }
22
+ 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; } }
23
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
20
24
  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); }
21
25
  import dayjs from 'dayjs';
22
26
  import Decimal from 'decimal.js';
23
27
  import { getProductHolderConfig } from "../Holder/utils";
24
28
  import { buildProductLineFingerprint, createEmptySummary } from "../../solution/ScanOrder/utils";
25
29
  import { createUuidV4 } from "./utils/orderCollectionIdentity";
30
+ import { encodeSalesNotes } from "./salesNotes";
26
31
  var POINT_CARD_SNAPSHOT_TAG = 'point_card';
32
+ var VIRTUAL_CURRENCY_SNAPSHOT_TAG = 'virtual_currency';
27
33
  function isPlainObject(value) {
28
34
  return Boolean(value) && _typeof(value) === 'object' && !Array.isArray(value);
29
35
  }
@@ -62,6 +68,106 @@ export function buildPointCardSnapshotFromWalletPassList(value) {
62
68
  return result;
63
69
  }, []);
64
70
  }
71
+ function normalizeSnapshotNameMap(value) {
72
+ if (typeof value === 'string' || typeof value === 'number') {
73
+ var normalizedText = String(value).trim();
74
+ return normalizedText ? {
75
+ original: normalizedText
76
+ } : {};
77
+ }
78
+ if (!isPlainObject(value)) return {};
79
+ return Object.entries(value).reduce(function (result, _ref) {
80
+ var _ref2 = _slicedToArray(_ref, 2),
81
+ locale = _ref2[0],
82
+ text = _ref2[1];
83
+ if (!locale.trim()) return result;
84
+ if (typeof text !== 'string' && typeof text !== 'number') return result;
85
+ var normalizedText = String(text).trim();
86
+ if (normalizedText) result[locale] = normalizedText;
87
+ return result;
88
+ }, {});
89
+ }
90
+ function buildVirtualCurrencySnapshotName(value) {
91
+ var _value$amount_format;
92
+ if (!isPlainObject(value)) return {};
93
+ var amountFormat = String((_value$amount_format = value.amount_format) !== null && _value$amount_format !== void 0 ? _value$amount_format : '').trim();
94
+ var configuredName;
95
+ if (amountFormat === '{{amount}} {{unit}}') {
96
+ configuredName = value.unit_label;
97
+ } else if (amountFormat === '{{amount}} {{sym}}') {
98
+ configuredName = value.symbol;
99
+ } else {
100
+ return {};
101
+ }
102
+ var configuredNameMap = normalizeSnapshotNameMap(configuredName);
103
+ var shortNameMap = normalizeSnapshotNameMap(value.short_name);
104
+
105
+ // The configured unit/symbol is resolved before short_name. If it already
106
+ // carries a global fallback, keep it authoritative so (for example)
107
+ // short_name.en cannot mask unit_label.original. When it only has explicit
108
+ // locale entries, merge short_name so other receipt locales can still fall
109
+ // back after the configured value has no match.
110
+ var hasConfiguredGlobalFallback = ['original', 'auto', 'default', 'en'].some(function (locale) {
111
+ return Boolean(configuredNameMap[locale]);
112
+ });
113
+ if (hasConfiguredGlobalFallback) return configuredNameMap;
114
+ return _objectSpread(_objectSpread({}, shortNameMap), configuredNameMap);
115
+ }
116
+ export function normalizeVirtualCurrencySnapshotItem(value) {
117
+ var _value$product_name2, _value$par_value2, _value$used_par_value2;
118
+ if (!isPlainObject(value)) return null;
119
+ var id = normalizeSnapshotScalar(value.id);
120
+ if (id === undefined) return null;
121
+ if (String(value.tag || '').trim().toLowerCase() !== VIRTUAL_CURRENCY_SNAPSHOT_TAG) {
122
+ return null;
123
+ }
124
+ var snapshot = {
125
+ id: id,
126
+ tag: 'virtual_currency',
127
+ product_name: String((_value$product_name2 = value.product_name) !== null && _value$product_name2 !== void 0 ? _value$product_name2 : ''),
128
+ par_value: String((_value$par_value2 = value.par_value) !== null && _value$par_value2 !== void 0 ? _value$par_value2 : ''),
129
+ used_par_value: String((_value$used_par_value2 = value.used_par_value) !== null && _value$used_par_value2 !== void 0 ? _value$used_par_value2 : ''),
130
+ name: normalizeSnapshotNameMap(value.name)
131
+ };
132
+ var productId = normalizeSnapshotScalar(value.product_id);
133
+ if (productId !== undefined) {
134
+ snapshot.product_id = productId;
135
+ }
136
+ return snapshot;
137
+ }
138
+ function normalizeVirtualCurrencySnapshotList(value) {
139
+ if (!Array.isArray(value)) return [];
140
+ return value.reduce(function (result, item) {
141
+ var normalized = normalizeVirtualCurrencySnapshotItem(item);
142
+ if (normalized) result.push(normalized);
143
+ return result;
144
+ }, []);
145
+ }
146
+ export function buildVirtualCurrencySnapshotFromList(value) {
147
+ if (!Array.isArray(value)) return [];
148
+ return value.reduce(function (result, item) {
149
+ var _item$tag, _item$product_name, _item$par_value, _item$used_par_value;
150
+ if (!isPlainObject(item)) return result;
151
+ var id = normalizeSnapshotScalar(item.id);
152
+ if (id === undefined) return result;
153
+ var sourceTag = String((_item$tag = item.tag) !== null && _item$tag !== void 0 ? _item$tag : '').trim().toLowerCase();
154
+ if (sourceTag !== VIRTUAL_CURRENCY_SNAPSHOT_TAG) return result;
155
+ var snapshot = {
156
+ id: id,
157
+ tag: 'virtual_currency',
158
+ product_name: String((_item$product_name = item.product_name) !== null && _item$product_name !== void 0 ? _item$product_name : ''),
159
+ par_value: String((_item$par_value = item.par_value) !== null && _item$par_value !== void 0 ? _item$par_value : ''),
160
+ used_par_value: String((_item$used_par_value = item.used_par_value) !== null && _item$used_par_value !== void 0 ? _item$used_par_value : ''),
161
+ name: buildVirtualCurrencySnapshotName(item.virtual_currency_display)
162
+ };
163
+ var productId = normalizeSnapshotScalar(item.product_id);
164
+ if (productId !== undefined) {
165
+ snapshot.product_id = productId;
166
+ }
167
+ result.push(snapshot);
168
+ return result;
169
+ }, []);
170
+ }
65
171
  export function normalizeOrderMetaList(value) {
66
172
  if (value === undefined) return undefined;
67
173
  if (!isPlainObject(value)) return undefined;
@@ -69,6 +175,9 @@ export function normalizeOrderMetaList(value) {
69
175
  if (Object.prototype.hasOwnProperty.call(value, 'point_cards_snapshot')) {
70
176
  normalized.point_cards_snapshot = buildPointCardSnapshotFromWalletPassList(value.point_cards_snapshot);
71
177
  }
178
+ if (Object.prototype.hasOwnProperty.call(value, 'virtual_currency_snapshot')) {
179
+ normalized.virtual_currency_snapshot = normalizeVirtualCurrencySnapshotList(value.virtual_currency_snapshot);
180
+ }
72
181
  if (Object.keys(normalized).length > 0) return normalized;
73
182
  return {};
74
183
  }
@@ -96,13 +205,13 @@ export function composeLinePrice(params) {
96
205
  _step;
97
206
  try {
98
207
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
99
- var _ref, _item$num;
208
+ var _ref3, _item$num;
100
209
  var item = _step.value;
101
210
  // markdown(减价)按带符号净额取减;markup/原价维持相加。
102
211
  var signedUnit = getBundleSignedUnit(item, {
103
212
  useOriginal: useOriginalBundle
104
213
  });
105
- var rawNum = (_ref = (_item$num = item === null || item === void 0 ? void 0 : item.num) !== null && _item$num !== void 0 ? _item$num : item === null || item === void 0 ? void 0 : item.quantity) !== null && _ref !== void 0 ? _ref : 1;
214
+ var rawNum = (_ref3 = (_item$num = item === null || item === void 0 ? void 0 : item.num) !== null && _item$num !== void 0 ? _item$num : item === null || item === void 0 ? void 0 : item.quantity) !== null && _ref3 !== void 0 ? _ref3 : 1;
106
215
  var num = new Decimal(Number(rawNum) || 0);
107
216
  total = total.plus(signedUnit.times(num));
108
217
  }
@@ -166,12 +275,12 @@ function getSafeOrderProductNum(num) {
166
275
  return Math.floor(parsedNum);
167
276
  }
168
277
  function getOrderProductDepositUnitTotal(product) {
169
- var _ref2;
278
+ var _ref4;
170
279
  var metadata = product.metadata || {};
171
280
  var paymentPrice = metadata.main_product_attached_bundle_payment_price;
172
281
  var mainSellingPrice = metadata.main_product_selling_price;
173
282
  var fallbackPrice = product.selling_price;
174
- return new Decimal(Number((_ref2 = paymentPrice !== null && paymentPrice !== void 0 ? paymentPrice : mainSellingPrice) !== null && _ref2 !== void 0 ? _ref2 : fallbackPrice) || 0);
283
+ return new Decimal(Number((_ref4 = paymentPrice !== null && paymentPrice !== void 0 ? paymentPrice : mainSellingPrice) !== null && _ref4 !== void 0 ? _ref4 : fallbackPrice) || 0);
175
284
  }
176
285
  function normalizeDepositProtocols(protocols) {
177
286
  if (!Array.isArray(protocols)) return [];
@@ -220,13 +329,13 @@ function handleOrderProductDeposit(params) {
220
329
  };
221
330
  }
222
331
  function resolveOrderProductDepositSource(product, runtimeOrigin) {
223
- var _ref3, _record$custom_deposi, _ref4, _record$variant;
332
+ var _ref5, _record$custom_deposi, _ref6, _record$variant;
224
333
  var record = product;
225
334
  var origin = record._origin || runtimeOrigin || {};
226
335
  var originProduct = origin.product || {};
227
336
  return _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, originProduct), origin), record), {}, {
228
- custom_deposit_data: (_ref3 = (_record$custom_deposi = record.custom_deposit_data) !== null && _record$custom_deposi !== void 0 ? _record$custom_deposi : origin.custom_deposit_data) !== null && _ref3 !== void 0 ? _ref3 : originProduct.custom_deposit_data,
229
- variant: (_ref4 = (_record$variant = record.variant) !== null && _record$variant !== void 0 ? _record$variant : origin.variant) !== null && _ref4 !== void 0 ? _ref4 : originProduct.variant
337
+ custom_deposit_data: (_ref5 = (_record$custom_deposi = record.custom_deposit_data) !== null && _record$custom_deposi !== void 0 ? _record$custom_deposi : origin.custom_deposit_data) !== null && _ref5 !== void 0 ? _ref5 : originProduct.custom_deposit_data,
338
+ variant: (_ref6 = (_record$variant = record.variant) !== null && _record$variant !== void 0 ? _record$variant : origin.variant) !== null && _ref6 !== void 0 ? _ref6 : originProduct.variant
230
339
  });
231
340
  }
232
341
  function getOrderProductDeposit(product, runtimeOrigin) {
@@ -378,12 +487,12 @@ export function isMarkdownBundle(bundle) {
378
487
  * - markup(加价)/原价子商品:维持 `+(bundle_selling_price ?? price)`,行为不变。
379
488
  */
380
489
  export function getBundleSignedUnit(bundle, options) {
381
- var _options$useOriginal, _ref11, _bundle$original_pric2, _bundle$bundle_sellin;
490
+ var _options$useOriginal, _ref13, _bundle$original_pric2, _bundle$bundle_sellin;
382
491
  if (!bundle || _typeof(bundle) !== 'object') return new Decimal(0);
383
492
  var useOriginal = (_options$useOriginal = options === null || options === void 0 ? void 0 : options.useOriginal) !== null && _options$useOriginal !== void 0 ? _options$useOriginal : false;
384
493
  if (isMarkdownBundle(bundle)) {
385
- var _ref5, _ref6, _ref7, _bundle$original_pric, _ref8, _ref9, _ref10, _bundle$custom_price;
386
- var catalog = useOriginal ? (_ref5 = (_ref6 = (_ref7 = (_bundle$original_pric = bundle.original_price) !== null && _bundle$original_pric !== void 0 ? _bundle$original_pric : bundle.product_price) !== null && _ref7 !== void 0 ? _ref7 : bundle.custom_price) !== null && _ref6 !== void 0 ? _ref6 : bundle.base_price) !== null && _ref5 !== void 0 ? _ref5 : bundle.price : (_ref8 = (_ref9 = (_ref10 = (_bundle$custom_price = bundle.custom_price) !== null && _bundle$custom_price !== void 0 ? _bundle$custom_price : bundle.product_price) !== null && _ref10 !== void 0 ? _ref10 : bundle.original_price) !== null && _ref9 !== void 0 ? _ref9 : bundle.base_price) !== null && _ref8 !== void 0 ? _ref8 : bundle.price;
494
+ var _ref7, _ref8, _ref9, _bundle$original_pric, _ref10, _ref11, _ref12, _bundle$custom_price;
495
+ var catalog = useOriginal ? (_ref7 = (_ref8 = (_ref9 = (_bundle$original_pric = bundle.original_price) !== null && _bundle$original_pric !== void 0 ? _bundle$original_pric : bundle.product_price) !== null && _ref9 !== void 0 ? _ref9 : bundle.custom_price) !== null && _ref8 !== void 0 ? _ref8 : bundle.base_price) !== null && _ref7 !== void 0 ? _ref7 : bundle.price : (_ref10 = (_ref11 = (_ref12 = (_bundle$custom_price = bundle.custom_price) !== null && _bundle$custom_price !== void 0 ? _bundle$custom_price : bundle.product_price) !== null && _ref12 !== void 0 ? _ref12 : bundle.original_price) !== null && _ref11 !== void 0 ? _ref11 : bundle.base_price) !== null && _ref10 !== void 0 ? _ref10 : bundle.price;
387
496
  if (catalog !== undefined && catalog !== null && catalog !== '') {
388
497
  var raw = new Decimal(Number(catalog) || 0);
389
498
  // 负值表示价格已是「带符号净额」(如 cart/changePrice 产出的 -3.7),直接取用不再扣 option,
@@ -394,7 +503,7 @@ export function getBundleSignedUnit(bundle, options) {
394
503
  // 仅剩净额(无毛价)兜底:直接取负,不再扣 option
395
504
  return new Decimal(Number(bundle.bundle_selling_price) || 0).abs().negated();
396
505
  }
397
- var rawPrice = useOriginal ? (_ref11 = (_bundle$original_pric2 = bundle.original_price) !== null && _bundle$original_pric2 !== void 0 ? _bundle$original_pric2 : bundle.product_price) !== null && _ref11 !== void 0 ? _ref11 : bundle.price : (_bundle$bundle_sellin = bundle.bundle_selling_price) !== null && _bundle$bundle_sellin !== void 0 ? _bundle$bundle_sellin : bundle.price;
506
+ var rawPrice = useOriginal ? (_ref13 = (_bundle$original_pric2 = bundle.original_price) !== null && _bundle$original_pric2 !== void 0 ? _bundle$original_pric2 : bundle.product_price) !== null && _ref13 !== void 0 ? _ref13 : bundle.price : (_bundle$bundle_sellin = bundle.bundle_selling_price) !== null && _bundle$bundle_sellin !== void 0 ? _bundle$bundle_sellin : bundle.price;
398
507
  return new Decimal(Number(rawPrice) || 0);
399
508
  }
400
509
 
@@ -628,8 +737,8 @@ export function createDefaultOrderRulesHooks() {
628
737
  return new Decimal(Number(totalLike) || 0).dividedBy(effectiveNum).toDecimalPlaces(2).toString();
629
738
  };
630
739
  var getBundleIdentity = function getBundleIdentity(bundle) {
631
- var _ref12, _bundle$bundle_id, _ref13, _ref14, _bundle$bundle_produc, _ref15, _ref16, _bundle$bundle_varian, _ref17, _bundle$bundle_group_;
632
- return [(_ref12 = (_bundle$bundle_id = bundle.bundle_id) !== null && _bundle$bundle_id !== void 0 ? _bundle$bundle_id : bundle.id) !== null && _ref12 !== void 0 ? _ref12 : '', (_ref13 = (_ref14 = (_bundle$bundle_produc = bundle.bundle_product_id) !== null && _bundle$bundle_produc !== void 0 ? _bundle$bundle_produc : bundle._bundle_product_id) !== null && _ref14 !== void 0 ? _ref14 : bundle.product_id) !== null && _ref13 !== void 0 ? _ref13 : '', (_ref15 = (_ref16 = (_bundle$bundle_varian = bundle.bundle_variant_id) !== null && _bundle$bundle_varian !== void 0 ? _bundle$bundle_varian : bundle.variant_id) !== null && _ref16 !== void 0 ? _ref16 : bundle.product_variant_id) !== null && _ref15 !== void 0 ? _ref15 : 0, (_ref17 = (_bundle$bundle_group_ = bundle.bundle_group_id) !== null && _bundle$bundle_group_ !== void 0 ? _bundle$bundle_group_ : bundle.group_id) !== null && _ref17 !== void 0 ? _ref17 : ''].join('|');
740
+ var _ref14, _bundle$bundle_id, _ref15, _ref16, _bundle$bundle_produc, _ref17, _ref18, _bundle$bundle_varian, _ref19, _bundle$bundle_group_;
741
+ return [(_ref14 = (_bundle$bundle_id = bundle.bundle_id) !== null && _bundle$bundle_id !== void 0 ? _bundle$bundle_id : bundle.id) !== null && _ref14 !== void 0 ? _ref14 : '', (_ref15 = (_ref16 = (_bundle$bundle_produc = bundle.bundle_product_id) !== null && _bundle$bundle_produc !== void 0 ? _bundle$bundle_produc : bundle._bundle_product_id) !== null && _ref16 !== void 0 ? _ref16 : bundle.product_id) !== null && _ref15 !== void 0 ? _ref15 : '', (_ref17 = (_ref18 = (_bundle$bundle_varian = bundle.bundle_variant_id) !== null && _bundle$bundle_varian !== void 0 ? _bundle$bundle_varian : bundle.variant_id) !== null && _ref18 !== void 0 ? _ref18 : bundle.product_variant_id) !== null && _ref17 !== void 0 ? _ref17 : 0, (_ref19 = (_bundle$bundle_group_ = bundle.bundle_group_id) !== null && _bundle$bundle_group_ !== void 0 ? _bundle$bundle_group_ : bundle.group_id) !== null && _ref19 !== void 0 ? _ref19 : ''].join('|');
633
742
  };
634
743
  var mergeRulesBundlePrices = function mergeRulesBundlePrices(currentBundle, rulesBundle) {
635
744
  if (!Array.isArray(rulesBundle)) return rulesBundle;
@@ -639,7 +748,7 @@ export function createDefaultOrderRulesHooks() {
639
748
  currentByIdentity.set(getBundleIdentity(bundle), bundle);
640
749
  });
641
750
  return rulesBundle.map(function (bundle) {
642
- var _bundle$price_type_ex2, _ref18, _ref19, _current$price, _ref20, _ref21, _ref22, _current$original_pri;
751
+ var _bundle$price_type_ex2, _ref20, _ref21, _current$price, _ref22, _ref23, _ref24, _current$original_pri;
643
752
  if (!bundle || _typeof(bundle) !== 'object') return bundle;
644
753
  var current = currentByIdentity.get(getBundleIdentity(bundle));
645
754
  if (!current) return bundle;
@@ -648,8 +757,8 @@ export function createDefaultOrderRulesHooks() {
648
757
  } : {});
649
758
  var isProductPriceBundle = ((_bundle$price_type_ex2 = bundle.price_type_ext) !== null && _bundle$price_type_ex2 !== void 0 ? _bundle$price_type_ex2 : current.price_type_ext) === 'product_price';
650
759
  if (!isProductPriceBundle) return bundleWithDisplayFields;
651
- var sourcePrice = (_ref18 = (_ref19 = (_current$price = current.price) !== null && _current$price !== void 0 ? _current$price : current.custom_price) !== null && _ref19 !== void 0 ? _ref19 : current.original_price) !== null && _ref18 !== void 0 ? _ref18 : current.bundle_selling_price;
652
- var originalPrice = (_ref20 = (_ref21 = (_ref22 = (_current$original_pri = current.original_price) !== null && _current$original_pri !== void 0 ? _current$original_pri : current.product_price) !== null && _ref22 !== void 0 ? _ref22 : current.price) !== null && _ref21 !== void 0 ? _ref21 : current.custom_price) !== null && _ref20 !== void 0 ? _ref20 : sourcePrice;
760
+ var sourcePrice = (_ref20 = (_ref21 = (_current$price = current.price) !== null && _current$price !== void 0 ? _current$price : current.custom_price) !== null && _ref21 !== void 0 ? _ref21 : current.original_price) !== null && _ref20 !== void 0 ? _ref20 : current.bundle_selling_price;
761
+ var originalPrice = (_ref22 = (_ref23 = (_ref24 = (_current$original_pri = current.original_price) !== null && _current$original_pri !== void 0 ? _current$original_pri : current.product_price) !== null && _ref24 !== void 0 ? _ref24 : current.price) !== null && _ref23 !== void 0 ? _ref23 : current.custom_price) !== null && _ref22 !== void 0 ? _ref22 : sourcePrice;
653
762
  return _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, bundleWithDisplayFields), sourcePrice !== undefined ? {
654
763
  price: sourcePrice
655
764
  } : {}), originalPrice !== undefined ? {
@@ -713,10 +822,10 @@ export function createDefaultOrderRulesHooks() {
713
822
  };
714
823
  },
715
824
  setProduct: function setProduct(product, values) {
716
- var _ref23, _values$quantity, _ref24, _metadataAny$source_p, _values$discount_list, _values$quantity2;
717
- var nextNum = Number((_ref23 = (_values$quantity = values.quantity) !== null && _values$quantity !== void 0 ? _values$quantity : product.num) !== null && _ref23 !== void 0 ? _ref23 : 1) || 1;
825
+ var _ref25, _values$quantity, _ref26, _metadataAny$source_p, _values$discount_list, _values$quantity2;
826
+ var nextNum = Number((_ref25 = (_values$quantity = values.quantity) !== null && _values$quantity !== void 0 ? _values$quantity : product.num) !== null && _ref25 !== void 0 ? _ref25 : 1) || 1;
718
827
  var metadataAny = product.metadata || {};
719
- var existedSource = (_ref24 = (_metadataAny$source_p = metadataAny.source_product_price) !== null && _metadataAny$source_p !== void 0 ? _metadataAny$source_p : product.selling_price) !== null && _ref24 !== void 0 ? _ref24 : '0';
828
+ var existedSource = (_ref26 = (_metadataAny$source_p = metadataAny.source_product_price) !== null && _metadataAny$source_p !== void 0 ? _metadataAny$source_p : product.selling_price) !== null && _ref26 !== void 0 ? _ref26 : '0';
720
829
  var nextOptions = getProductSkuOptions(product);
721
830
  var optionSum = sumOptionUnitPrice(nextOptions);
722
831
 
@@ -926,7 +1035,7 @@ function formatSubmitBundleItems(bundle) {
926
1035
  var formatOptions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
927
1036
  if (!Array.isArray(bundle)) return [];
928
1037
  return bundle.map(function (b) {
929
- var _ref25, _rawBundle$price, _rawBundle$surcharge_, _rawBundle$num, _rawBundle$is_charge_, _rawBundle$bundle_var, _rawBundle$quantity, _rawBundle$extension_, _rawBundle$extension_2, _ref26, _rawBundle$price_type, _ref27, _rawBundle$price_type2, _rawBundle$bundle_gro, _rawBundle$bundle_id, _rawBundle$bundle_pro;
1038
+ var _ref27, _rawBundle$price, _rawBundle$surcharge_, _rawBundle$num, _rawBundle$is_charge_, _rawBundle$bundle_var, _rawBundle$quantity, _rawBundle$extension_, _rawBundle$extension_2, _ref28, _rawBundle$price_type, _ref29, _rawBundle$price_type2, _rawBundle$bundle_gro, _rawBundle$bundle_id, _rawBundle$bundle_pro;
930
1039
  var rawBundle = b && _typeof(b) === 'object' ? b : {};
931
1040
  var existedMetadata = rawBundle.metadata && _typeof(rawBundle.metadata) === 'object' ? rawBundle.metadata : {};
932
1041
  var _customProductBundleMapId = existedMetadata.custom_product_bundle_map_id,
@@ -937,7 +1046,7 @@ function formatSubmitBundleItems(bundle) {
937
1046
  var sellingPrice = formatOptions.virtualSettlementMode ? '0.00' : getBundleSellingMagnitude(rawBundle).toFixed(2);
938
1047
  // payment 价由整单折扣均摊层产出;缺省(无折扣)时与 selling 净额同义。
939
1048
  var paymentPrice = formatOptions.virtualSettlementMode ? '0.00' : rawBundle.bundle_payment_price !== undefined && rawBundle.bundle_payment_price !== null && rawBundle.bundle_payment_price !== '' ? toMoneyString(rawBundle.bundle_payment_price) : sellingPrice;
940
- var priceValue = formatOptions.virtualSettlementMode ? 0 : (_ref25 = (_rawBundle$price = rawBundle.price) !== null && _rawBundle$price !== void 0 ? _rawBundle$price : rawBundle.custom_price) !== null && _ref25 !== void 0 ? _ref25 : rawBundle.bundle_selling_price;
1049
+ var priceValue = formatOptions.virtualSettlementMode ? 0 : (_ref27 = (_rawBundle$price = rawBundle.price) !== null && _rawBundle$price !== void 0 ? _rawBundle$price : rawBundle.custom_price) !== null && _ref27 !== void 0 ? _ref27 : rawBundle.bundle_selling_price;
941
1050
  var relationSurchargeIds = Array.isArray(rawBundle.relation_surcharge_ids) ? rawBundle.relation_surcharge_ids : Array.isArray(existedMetadata.relation_surcharge_ids) ? existedMetadata.relation_surcharge_ids : [];
942
1051
  var surchargeFee = toMoneyString((_rawBundle$surcharge_ = rawBundle.surcharge_fee) !== null && _rawBundle$surcharge_ !== void 0 ? _rawBundle$surcharge_ : existedMetadata.surcharge_fee);
943
1052
  var productDiscountDifference = toBundleNumber(existedMetadata.product_discount_difference, 0);
@@ -956,8 +1065,8 @@ function formatSubmitBundleItems(bundle) {
956
1065
  extension_id: (_rawBundle$extension_ = rawBundle.extension_id) !== null && _rawBundle$extension_ !== void 0 ? _rawBundle$extension_ : 0,
957
1066
  extension_type: (_rawBundle$extension_2 = rawBundle.extension_type) !== null && _rawBundle$extension_2 !== void 0 ? _rawBundle$extension_2 : 'normal',
958
1067
  price: priceValue,
959
- price_type: (_ref26 = (_rawBundle$price_type = rawBundle.price_type) !== null && _rawBundle$price_type !== void 0 ? _rawBundle$price_type : rawBundle.custom_price_type) !== null && _ref26 !== void 0 ? _ref26 : '',
960
- price_type_ext: (_ref27 = (_rawBundle$price_type2 = rawBundle.price_type_ext) !== null && _rawBundle$price_type2 !== void 0 ? _rawBundle$price_type2 : rawBundle.custom_price_type_ext) !== null && _ref27 !== void 0 ? _ref27 : '',
1068
+ price_type: (_ref28 = (_rawBundle$price_type = rawBundle.price_type) !== null && _rawBundle$price_type !== void 0 ? _rawBundle$price_type : rawBundle.custom_price_type) !== null && _ref28 !== void 0 ? _ref28 : '',
1069
+ price_type_ext: (_ref29 = (_rawBundle$price_type2 = rawBundle.price_type_ext) !== null && _rawBundle$price_type2 !== void 0 ? _rawBundle$price_type2 : rawBundle.custom_price_type_ext) !== null && _ref29 !== void 0 ? _ref29 : '',
961
1070
  bundle_selling_price: sellingPrice,
962
1071
  bundle_payment_price: paymentPrice,
963
1072
  option: formatSubmitOptionItems(rawBundle.option, formatOptions),
@@ -993,11 +1102,11 @@ function formatSubmitBundleItems(bundle) {
993
1102
  * 法币仅做字段/metadata 裁剪;虚拟币在出站前再次执行零加价与固定单价断言。
994
1103
  */
995
1104
  function normalizeSubmitProduct(product) {
996
- var _ref29, _submitProduct$bundle, _rawMetadata$product_, _rawMetadata$selected, _rawMetadata$selected2, _submitProduct$produc, _submitProduct$paymen;
1105
+ var _ref31, _submitProduct$bundle, _rawMetadata$product_, _rawMetadata$selected, _rawMetadata$selected2, _submitProduct$produc, _submitProduct$paymen;
997
1106
  var formatOptions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
998
- var _ref28 = product,
999
- _runtimeUid = _ref28.unique_identification_number,
1000
- submitProduct = _objectWithoutProperties(_ref28, _excluded2);
1107
+ var _ref30 = product,
1108
+ _runtimeUid = _ref30.unique_identification_number,
1109
+ submitProduct = _objectWithoutProperties(_ref30, _excluded2);
1001
1110
  var num = submitProduct.num,
1002
1111
  _productSurchargeFee = submitProduct.surcharge_fee,
1003
1112
  _deprecatedDiscountAmount = submitProduct.discount_amount,
@@ -1014,7 +1123,7 @@ function normalizeSubmitProduct(product) {
1014
1123
  // 兼容历史 BigSale 编辑链路:bundle_edit 曾被写入 metadata,
1015
1124
  // 出站时需提升到商品顶层;套餐未编辑时也必须显式提交 0。
1016
1125
  var hasProductBundle = Array.isArray(submitProduct.product_bundle) && submitProduct.product_bundle.length > 0;
1017
- var bundleEdit = (_ref29 = (_submitProduct$bundle = submitProduct.bundle_edit) !== null && _submitProduct$bundle !== void 0 ? _submitProduct$bundle : rawMetadata.bundle_edit) !== null && _ref29 !== void 0 ? _ref29 : hasProductBundle ? 0 : undefined;
1126
+ var bundleEdit = (_ref31 = (_submitProduct$bundle = submitProduct.bundle_edit) !== null && _submitProduct$bundle !== void 0 ? _submitProduct$bundle : rawMetadata.bundle_edit) !== null && _ref31 !== void 0 ? _ref31 : hasProductBundle ? 0 : undefined;
1018
1127
  var cleanMetadata = {};
1019
1128
  if (rawMetadata.unique_identification_number) {
1020
1129
  cleanMetadata.unique_identification_number = rawMetadata.unique_identification_number;
@@ -1183,6 +1292,7 @@ export function createDefaultTempOrder(params) {
1183
1292
  request_unique_idempotency_token: '',
1184
1293
  vouchers: [],
1185
1294
  products: [],
1295
+ notes: [],
1186
1296
  bookings: [],
1187
1297
  payments: [],
1188
1298
  surcharges: [],
@@ -1192,7 +1302,11 @@ export function createDefaultTempOrder(params) {
1192
1302
  holder: null,
1193
1303
  metadata: {},
1194
1304
  _extend: {
1195
- productsByUid: {}
1305
+ productsByUid: {},
1306
+ salesNotesState: {
1307
+ loaded: true,
1308
+ dirty: false
1309
+ }
1196
1310
  }
1197
1311
  };
1198
1312
  }
@@ -1240,7 +1354,7 @@ export function resolveSubmitOrderType(params) {
1240
1354
  return 'virtual';
1241
1355
  }
1242
1356
  export function buildSubmitPayload(params) {
1243
- var _tempOrder$metadata2, _tempOrder$customer_i, _tempOrder$country_ca, _tempOrder$phone, _tempOrder$email, _tempOrder$order_numb, _tempOrder$shop_order, _tempOrder$shop_full_, _ref31, _tempOrder$is_price_i, _tempOrder$is_deposit, _enhancedPayload$summ;
1357
+ var _tempOrder$metadata2, _tempOrder$customer_i, _tempOrder$country_ca, _tempOrder$phone, _tempOrder$email, _tempOrder$order_numb, _tempOrder$shop_order, _tempOrder$shop_full_, _ref33, _tempOrder$is_price_i, _tempOrder$is_deposit, _tempOrder$_extend, _enhancedPayload$summ;
1244
1358
  var tempOrder = params.tempOrder,
1245
1359
  cacheId = params.cacheId,
1246
1360
  _params$now = params.now,
@@ -1254,28 +1368,29 @@ export function buildSubmitPayload(params) {
1254
1368
  var scheduleDate = tempOrder.schedule_date || tempOrder.created_at || formatDateTime(now);
1255
1369
  var bookingUuid = createUuidV4();
1256
1370
  var virtualSettlementMode = ((_tempOrder$metadata2 = tempOrder.metadata) === null || _tempOrder$metadata2 === void 0 || (_tempOrder$metadata2 = _tempOrder$metadata2.currency_settlement_config) === null || _tempOrder$metadata2 === void 0 ? void 0 : _tempOrder$metadata2.settlement_type) === 'virtual_currency';
1257
- var _ref30 = tempOrder,
1258
- _extend = _ref30._extend,
1259
- _relationId = _ref30.relation_id,
1260
- _tableFormId = _ref30.table_form_id,
1261
- _resourceId = _ref30.resource_id,
1262
- _summary = _ref30.summary,
1263
- _lastOrderInfo = _ref30.lastOrderInfo,
1264
- _paidAmount = _ref30.paid_amount,
1265
- _shopId = _ref30.shop_id,
1266
- _shopNote = _ref30.shop_note,
1267
- _shopServiceType = _ref30.shop_service_type,
1268
- _startTime = _ref30.start_time,
1269
- _customer = _ref30.customer,
1270
- _discountList = _ref30.discount_list,
1271
- _orderMetaList = _ref30.order_meta_list,
1272
- _rootTaxFee = _ref30.tax_fee,
1273
- _totalAmount = _ref30.total_amount,
1274
- _totalRefundAmount = _ref30.total_refund_amount,
1275
- _createDate = _ref30.create_date,
1276
- _holderId = _ref30.holder_id,
1277
- _paymentStatus = _ref30.payment_status,
1278
- tempOrderRest = _objectWithoutProperties(_ref30, _excluded4);
1371
+ var _ref32 = tempOrder,
1372
+ _extend = _ref32._extend,
1373
+ _relationId = _ref32.relation_id,
1374
+ _tableFormId = _ref32.table_form_id,
1375
+ _resourceId = _ref32.resource_id,
1376
+ _summary = _ref32.summary,
1377
+ _lastOrderInfo = _ref32.lastOrderInfo,
1378
+ _paidAmount = _ref32.paid_amount,
1379
+ _shopId = _ref32.shop_id,
1380
+ _shopNote = _ref32.shop_note,
1381
+ _shopServiceType = _ref32.shop_service_type,
1382
+ _startTime = _ref32.start_time,
1383
+ _customer = _ref32.customer,
1384
+ _discountList = _ref32.discount_list,
1385
+ _orderMetaList = _ref32.order_meta_list,
1386
+ _rootTaxFee = _ref32.tax_fee,
1387
+ _totalAmount = _ref32.total_amount,
1388
+ _totalRefundAmount = _ref32.total_refund_amount,
1389
+ _createDate = _ref32.create_date,
1390
+ _holderId = _ref32.holder_id,
1391
+ _paymentStatus = _ref32.payment_status,
1392
+ _notes = _ref32.notes,
1393
+ tempOrderRest = _objectWithoutProperties(_ref32, _excluded4);
1279
1394
  var resolvedBusinessCode = businessCode !== null && businessCode !== void 0 ? businessCode : tempOrder.business_code;
1280
1395
  var normalizedOrderMetaList = normalizeOrderMetaList(tempOrder.order_meta_list);
1281
1396
  var submitType = resolveSubmitOrderType({
@@ -1286,7 +1401,7 @@ export function buildSubmitPayload(params) {
1286
1401
  tempOrderBusinessCode: tempOrder.business_code,
1287
1402
  bookings: tempOrder.bookings
1288
1403
  });
1289
- var payload = _objectSpread(_objectSpread(_objectSpread({}, tempOrderRest), {}, {
1404
+ var payload = _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, tempOrderRest), {}, {
1290
1405
  customer_id: (_tempOrder$customer_i = tempOrder.customer_id) !== null && _tempOrder$customer_i !== void 0 ? _tempOrder$customer_i : 1,
1291
1406
  customer_name: tempOrder.customer_name || 'Walk-In',
1292
1407
  country_calling_code: String((_tempOrder$country_ca = tempOrder.country_calling_code) !== null && _tempOrder$country_ca !== void 0 ? _tempOrder$country_ca : ''),
@@ -1300,7 +1415,7 @@ export function buildSubmitPayload(params) {
1300
1415
  type: submitType,
1301
1416
  business_code: resolvedBusinessCode,
1302
1417
  sales_channel: tempOrder.sales_channel || 'my_pisel',
1303
- order_sales_channel: (_ref31 = channel !== null && channel !== void 0 ? channel : tempOrder.order_sales_channel) !== null && _ref31 !== void 0 ? _ref31 : 'online_store',
1418
+ order_sales_channel: (_ref33 = channel !== null && channel !== void 0 ? channel : tempOrder.order_sales_channel) !== null && _ref33 !== void 0 ? _ref33 : 'online_store',
1304
1419
  status: tempOrder.status || 'normal'
1305
1420
  }, params.includePaymentStatus !== false ? {
1306
1421
  payment_status: tempOrder.payment_status || 'payment_processing'
@@ -1328,15 +1443,20 @@ export function buildSubmitPayload(params) {
1328
1443
  // holder: tempOrder.holder || null,
1329
1444
  summary: summary || tempOrder.summary || createEmptySummary(),
1330
1445
  metadata: function () {
1331
- var _ref32 = tempOrder.metadata || {},
1332
- _collectPax = _ref32.collect_pax,
1333
- _tableOccupancyDuration = _ref32.table_occupancy_duration,
1334
- _cartSettlementKey = _ref32.cart_settlement_key,
1335
- _cartSettlementSnapshot = _ref32.cart_settlement_snapshot,
1336
- _legalCurrencySnapshot = _ref32.legal_currency_snapshot,
1337
- rest = _objectWithoutProperties(_ref32, _excluded5);
1446
+ var _ref34 = tempOrder.metadata || {},
1447
+ _collectPax = _ref34.collect_pax,
1448
+ _tableOccupancyDuration = _ref34.table_occupancy_duration,
1449
+ _cartSettlementKey = _ref34.cart_settlement_key,
1450
+ _cartSettlementSnapshot = _ref34.cart_settlement_snapshot,
1451
+ _legalCurrencySnapshot = _ref34.legal_currency_snapshot,
1452
+ rest = _objectWithoutProperties(_ref34, _excluded5);
1338
1453
  return _objectSpread({}, rest);
1339
- }(),
1454
+ }()
1455
+ }, (_tempOrder$_extend = tempOrder._extend) !== null && _tempOrder$_extend !== void 0 && (_tempOrder$_extend = _tempOrder$_extend.salesNotesState) !== null && _tempOrder$_extend !== void 0 && _tempOrder$_extend.dirty ? {
1456
+ notes: encodeSalesNotes(tempOrder.notes || [], {
1457
+ allowUnresolvedOrderTarget: true
1458
+ })
1459
+ } : {}), {}, {
1340
1460
  products: (tempOrder.products || []).map(function (product) {
1341
1461
  return normalizeSubmitProduct(product, {
1342
1462
  virtualSettlementMode: virtualSettlementMode
@@ -1468,7 +1588,7 @@ export function hasAssignedHolderId(value) {
1468
1588
  * clearTempOrderHolderAssignments(tempOrder);
1469
1589
  */
1470
1590
  export function clearTempOrderHolderAssignments(tempOrder) {
1471
- var _tempOrder$_extend;
1591
+ var _tempOrder$_extend2;
1472
1592
  var changed = false;
1473
1593
  var resetHolderField = function resetHolderField(target) {
1474
1594
  var key = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'holder_id';
@@ -1509,7 +1629,7 @@ export function clearTempOrderHolderAssignments(tempOrder) {
1509
1629
  } finally {
1510
1630
  _iterator9.f();
1511
1631
  }
1512
- var productsByUid = (_tempOrder$_extend = tempOrder._extend) === null || _tempOrder$_extend === void 0 ? void 0 : _tempOrder$_extend.productsByUid;
1632
+ var productsByUid = (_tempOrder$_extend2 = tempOrder._extend) === null || _tempOrder$_extend2 === void 0 ? void 0 : _tempOrder$_extend2.productsByUid;
1513
1633
  if (productsByUid && _typeof(productsByUid) === 'object') {
1514
1634
  for (var _i4 = 0, _Object$values = Object.values(productsByUid); _i4 < _Object$values.length; _i4++) {
1515
1635
  var entry = _Object$values[_i4];
@@ -1540,17 +1660,17 @@ export function getOrderProductLineUid(product) {
1540
1660
  return String(uid);
1541
1661
  }
1542
1662
  export function getRuntimeProductOrigin(tempOrder, product) {
1543
- var _tempOrder$_extend2, _tempOrder$_extend3;
1663
+ var _tempOrder$_extend3, _tempOrder$_extend4;
1544
1664
  var uid = getOrderProductLineUid(product);
1545
- if (uid && tempOrder !== null && tempOrder !== void 0 && (_tempOrder$_extend2 = tempOrder._extend) !== null && _tempOrder$_extend2 !== void 0 && (_tempOrder$_extend2 = _tempOrder$_extend2.productsByUid) !== null && _tempOrder$_extend2 !== void 0 && (_tempOrder$_extend2 = _tempOrder$_extend2[uid]) !== null && _tempOrder$_extend2 !== void 0 && _tempOrder$_extend2.origin) {
1665
+ if (uid && tempOrder !== null && tempOrder !== void 0 && (_tempOrder$_extend3 = tempOrder._extend) !== null && _tempOrder$_extend3 !== void 0 && (_tempOrder$_extend3 = _tempOrder$_extend3.productsByUid) !== null && _tempOrder$_extend3 !== void 0 && (_tempOrder$_extend3 = _tempOrder$_extend3[uid]) !== null && _tempOrder$_extend3 !== void 0 && _tempOrder$_extend3.origin) {
1546
1666
  return tempOrder._extend.productsByUid[uid].origin;
1547
1667
  }
1548
1668
  var matchedProduct = ((tempOrder === null || tempOrder === void 0 ? void 0 : tempOrder.products) || []).find(function (item) {
1549
- var _ref33, _item$product_id, _ref34, _product$product_id;
1550
- return item === product || getOrderProductLineUid(item) === uid || String((_ref33 = (_item$product_id = item === null || item === void 0 ? void 0 : item.product_id) !== null && _item$product_id !== void 0 ? _item$product_id : item === null || item === void 0 ? void 0 : item.id) !== null && _ref33 !== void 0 ? _ref33 : '') === String((_ref34 = (_product$product_id = product === null || product === void 0 ? void 0 : product.product_id) !== null && _product$product_id !== void 0 ? _product$product_id : product === null || product === void 0 ? void 0 : product.id) !== null && _ref34 !== void 0 ? _ref34 : '');
1669
+ var _ref35, _item$product_id, _ref36, _product$product_id;
1670
+ return item === product || getOrderProductLineUid(item) === uid || String((_ref35 = (_item$product_id = item === null || item === void 0 ? void 0 : item.product_id) !== null && _item$product_id !== void 0 ? _item$product_id : item === null || item === void 0 ? void 0 : item.id) !== null && _ref35 !== void 0 ? _ref35 : '') === String((_ref36 = (_product$product_id = product === null || product === void 0 ? void 0 : product.product_id) !== null && _product$product_id !== void 0 ? _product$product_id : product === null || product === void 0 ? void 0 : product.id) !== null && _ref36 !== void 0 ? _ref36 : '');
1551
1671
  });
1552
1672
  var matchedUid = matchedProduct ? getOrderProductLineUid(matchedProduct) : '';
1553
- return matchedUid ? (tempOrder === null || tempOrder === void 0 || (_tempOrder$_extend3 = tempOrder._extend) === null || _tempOrder$_extend3 === void 0 || (_tempOrder$_extend3 = _tempOrder$_extend3.productsByUid) === null || _tempOrder$_extend3 === void 0 || (_tempOrder$_extend3 = _tempOrder$_extend3[matchedUid]) === null || _tempOrder$_extend3 === void 0 ? void 0 : _tempOrder$_extend3.origin) || null : null;
1673
+ return matchedUid ? (tempOrder === null || tempOrder === void 0 || (_tempOrder$_extend4 = tempOrder._extend) === null || _tempOrder$_extend4 === void 0 || (_tempOrder$_extend4 = _tempOrder$_extend4.productsByUid) === null || _tempOrder$_extend4 === void 0 || (_tempOrder$_extend4 = _tempOrder$_extend4[matchedUid]) === null || _tempOrder$_extend4 === void 0 ? void 0 : _tempOrder$_extend4.origin) || null : null;
1554
1674
  }
1555
1675
  export function isHolderConfigRequired(holderConfig) {
1556
1676
  if (!holderConfig || _typeof(holderConfig) !== 'object') return false;
@@ -2,10 +2,9 @@
2
2
  * 现金支付推荐算法
3
3
  *
4
4
  * 核心原理:
5
- * 1. 每个推荐金额都应该是独立的最优组合
6
- * 2. 不推荐在已有最优解基础上添加额外面额的组合
7
- * 3. 优先推荐使用不同数量币种的组合
8
- * 4. 根据组合判断去重,避免扩展组合
5
+ * 1. 第一项始终是精确应付金额
6
+ * 2. 其余推荐只能是严格大于应付金额的真实币种面额
7
+ * 3. 最多推荐三个更高面额
9
8
  */
10
9
  /**
11
10
  * 常见国家货币面额配置
@@ -13,7 +12,7 @@
13
12
  export declare const CURRENCY_DENOMINATIONS: Record<string, number[]>;
14
13
  /**
15
14
  * 最优支付金额推荐算法
16
- * 推荐通过不同数量面额组合刚好足够支付的最小金额
15
+ * 返回精确应付金额,以及最多三个更高的真实币种面额
17
16
  *
18
17
  * @param targetAmount 目标金额
19
18
  * @param denominations 币种面值数组