@pisell/pisellos 2.1.172 → 2.1.174

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 (238) hide show
  1. package/dist/apis/picoding.d.ts +0 -0
  2. package/dist/apis/picoding.js +1 -0
  3. package/dist/index.d.ts +0 -1
  4. package/dist/index.js +0 -1
  5. package/dist/model/strategy/adapter/promotion/evaluator.js +26 -99
  6. package/dist/model/strategy/adapter/promotion/index.js +9 -0
  7. package/dist/model/strategy/adapter/walletPass/evaluator.d.ts +2 -2
  8. package/dist/model/strategy/adapter/walletPass/evaluator.js +12 -63
  9. package/dist/model/strategy/adapter/walletPass/locales.js +3 -12
  10. package/dist/model/strategy/engine.d.ts +5 -18
  11. package/dist/model/strategy/engine.js +45 -145
  12. package/dist/model/strategy/type.d.ts +0 -17
  13. package/dist/model/strategy/type.js +0 -4
  14. package/dist/modules/Cart/types.d.ts +0 -2
  15. package/dist/modules/Cart/utils/cartProduct.js +25 -56
  16. package/dist/modules/Cart/utils/changePrice.js +16 -9
  17. package/dist/modules/Discount/availability.d.ts +7 -0
  18. package/dist/modules/Discount/availability.js +52 -0
  19. package/dist/modules/Discount/entitlementPass.d.ts +34 -0
  20. package/dist/modules/Discount/entitlementPass.js +147 -0
  21. package/dist/modules/Discount/entitlementState.d.ts +8 -0
  22. package/dist/modules/Discount/entitlementState.js +205 -0
  23. package/dist/modules/Discount/index.d.ts +12 -3
  24. package/dist/modules/Discount/index.js +211 -17
  25. package/dist/modules/Discount/types.d.ts +42 -22
  26. package/dist/modules/Holder/index.d.ts +48 -0
  27. package/dist/modules/Holder/index.js +640 -0
  28. package/dist/modules/Holder/types.d.ts +123 -0
  29. package/dist/modules/Holder/types.js +1 -0
  30. package/dist/modules/Holder/utils.d.ts +13 -0
  31. package/dist/modules/Holder/utils.js +34 -0
  32. package/dist/modules/OpenData/index.d.ts +24 -0
  33. package/dist/modules/OpenData/index.js +173 -0
  34. package/dist/modules/OpenData/types.d.ts +73 -0
  35. package/dist/modules/OpenData/types.js +1 -0
  36. package/dist/modules/OpenData/utils.d.ts +2 -0
  37. package/dist/modules/OpenData/utils.js +75 -0
  38. package/dist/modules/Order/index.d.ts +67 -1
  39. package/dist/modules/Order/index.js +923 -30
  40. package/dist/modules/Order/types.d.ts +176 -12
  41. package/dist/modules/Order/types.js +2 -0
  42. package/dist/modules/Order/utils.d.ts +128 -0
  43. package/dist/modules/Order/utils.js +621 -5
  44. package/dist/modules/Payment/index.d.ts +1 -2
  45. package/dist/modules/Payment/index.js +7 -10
  46. package/dist/modules/Payment/utils.js +0 -3
  47. package/dist/modules/Payment/walletpass.d.ts +0 -23
  48. package/dist/modules/Payment/walletpass.js +95 -191
  49. package/dist/modules/Product/types.d.ts +7 -0
  50. package/dist/modules/Product/utils.js +2 -2
  51. package/dist/modules/ProductList/index.d.ts +1 -1
  52. package/dist/modules/ProductList/index.js +4 -3
  53. package/dist/modules/Quotation/index.d.ts +48 -0
  54. package/dist/modules/Quotation/index.js +248 -0
  55. package/dist/modules/Quotation/types.d.ts +42 -0
  56. package/dist/modules/Quotation/types.js +1 -0
  57. package/dist/modules/Rules/entitlementLines.d.ts +8 -0
  58. package/dist/modules/Rules/entitlementLines.js +157 -0
  59. package/dist/modules/Rules/index.d.ts +17 -11
  60. package/dist/modules/Rules/index.js +495 -726
  61. package/dist/modules/Rules/types.d.ts +2 -4
  62. package/dist/modules/SalesSummary/index.d.ts +63 -0
  63. package/dist/modules/SalesSummary/index.js +174 -0
  64. package/dist/modules/SalesSummary/types.d.ts +60 -0
  65. package/dist/modules/SalesSummary/types.js +1 -0
  66. package/dist/modules/SalesSummary/utils.d.ts +30 -0
  67. package/dist/modules/SalesSummary/utils.js +480 -0
  68. package/dist/modules/ScanOrderLogger/index.d.ts +23 -0
  69. package/dist/modules/ScanOrderLogger/index.js +174 -0
  70. package/dist/modules/ScanOrderLogger/providers/feishu.d.ts +2 -0
  71. package/dist/modules/ScanOrderLogger/providers/feishu.js +221 -0
  72. package/dist/modules/ScanOrderLogger/providers/grafana.d.ts +2 -0
  73. package/dist/modules/ScanOrderLogger/providers/grafana.js +50 -0
  74. package/dist/modules/ScanOrderLogger/types.d.ts +53 -0
  75. package/dist/modules/ScanOrderLogger/types.js +1 -0
  76. package/dist/modules/Schedule/getDateIsInSchedule.js +11 -18
  77. package/dist/modules/Schedule/utils.d.ts +1 -1
  78. package/dist/modules/Summary/types.d.ts +0 -2
  79. package/dist/modules/Summary/utils.d.ts +3 -9
  80. package/dist/modules/Summary/utils.js +67 -57
  81. package/dist/modules/index.d.ts +5 -0
  82. package/dist/modules/index.js +6 -1
  83. package/dist/plugins/window.d.ts +3 -2
  84. package/dist/solution/BookingByStep/index.d.ts +17 -3
  85. package/dist/solution/BookingByStep/index.js +322 -247
  86. package/dist/solution/BookingByStep/types.d.ts +4 -1
  87. package/dist/solution/BookingByStep/types.js +7 -1
  88. package/dist/solution/BookingByStep/utils/timeslots.d.ts +3 -1
  89. package/dist/solution/BookingByStep/utils/timeslots.js +19 -12
  90. package/dist/solution/Checkout/index.js +0 -2
  91. package/dist/solution/ScanOrder/index.d.ts +158 -0
  92. package/dist/solution/ScanOrder/index.js +3474 -0
  93. package/dist/solution/ScanOrder/types.d.ts +307 -0
  94. package/dist/solution/ScanOrder/types.js +35 -0
  95. package/dist/solution/ScanOrder/utils.d.ts +172 -0
  96. package/dist/solution/ScanOrder/utils.js +796 -0
  97. package/dist/solution/ShopDiscount/index.d.ts +6 -2
  98. package/dist/solution/ShopDiscount/index.js +194 -110
  99. package/dist/solution/ShopDiscount/types.d.ts +1 -1
  100. package/dist/solution/ShopDiscount/types.js +1 -2
  101. package/dist/solution/ShopDiscount/utils.d.ts +1 -0
  102. package/dist/solution/ShopDiscount/utils.js +52 -27
  103. package/dist/solution/VenueBooking/index.d.ts +225 -0
  104. package/dist/solution/VenueBooking/index.js +3749 -0
  105. package/dist/solution/VenueBooking/sales-section-4-annotated.json +343 -0
  106. package/dist/solution/VenueBooking/types.d.ts +156 -0
  107. package/dist/solution/VenueBooking/types.js +21 -0
  108. package/dist/solution/VenueBooking/utils/dateSummary.d.ts +11 -0
  109. package/dist/solution/VenueBooking/utils/dateSummary.js +104 -0
  110. package/dist/solution/VenueBooking/utils/resource.d.ts +14 -0
  111. package/dist/solution/VenueBooking/utils/resource.js +131 -0
  112. package/dist/solution/VenueBooking/utils/slotMerge.d.ts +38 -0
  113. package/dist/solution/VenueBooking/utils/slotMerge.js +239 -0
  114. package/dist/solution/VenueBooking/utils/timeSlot.d.ts +32 -0
  115. package/dist/solution/VenueBooking/utils/timeSlot.js +453 -0
  116. package/dist/solution/VenueBooking/utils.d.ts +1 -0
  117. package/dist/solution/VenueBooking/utils.js +1 -0
  118. package/dist/solution/index.d.ts +2 -0
  119. package/dist/solution/index.js +3 -1
  120. package/dist/types/index.d.ts +1 -0
  121. package/lib/apis/picoding.d.ts +0 -0
  122. package/lib/apis/picoding.js +0 -0
  123. package/lib/index.d.ts +0 -1
  124. package/lib/index.js +1 -3
  125. package/lib/model/strategy/adapter/promotion/evaluator.js +8 -57
  126. package/lib/model/strategy/adapter/promotion/index.js +49 -0
  127. package/lib/model/strategy/adapter/walletPass/evaluator.d.ts +2 -2
  128. package/lib/model/strategy/adapter/walletPass/evaluator.js +7 -36
  129. package/lib/model/strategy/adapter/walletPass/locales.js +3 -12
  130. package/lib/model/strategy/engine.d.ts +5 -18
  131. package/lib/model/strategy/engine.js +21 -85
  132. package/lib/model/strategy/type.d.ts +0 -17
  133. package/lib/modules/Cart/types.d.ts +0 -2
  134. package/lib/modules/Cart/utils/cartProduct.js +12 -39
  135. package/lib/modules/Cart/utils/changePrice.js +13 -9
  136. package/lib/modules/Discount/availability.d.ts +7 -0
  137. package/lib/modules/Discount/availability.js +91 -0
  138. package/lib/modules/Discount/entitlementPass.d.ts +34 -0
  139. package/lib/modules/Discount/entitlementPass.js +184 -0
  140. package/lib/modules/Discount/entitlementState.d.ts +8 -0
  141. package/lib/modules/Discount/entitlementState.js +206 -0
  142. package/lib/modules/Discount/index.d.ts +12 -3
  143. package/lib/modules/Discount/index.js +123 -12
  144. package/lib/modules/Discount/types.d.ts +42 -22
  145. package/lib/modules/Holder/index.d.ts +48 -0
  146. package/lib/modules/Holder/index.js +402 -0
  147. package/lib/modules/Holder/types.d.ts +123 -0
  148. package/lib/modules/Holder/types.js +17 -0
  149. package/lib/modules/Holder/utils.d.ts +13 -0
  150. package/lib/modules/Holder/utils.js +71 -0
  151. package/lib/modules/OpenData/index.d.ts +24 -0
  152. package/lib/modules/OpenData/index.js +119 -0
  153. package/lib/modules/OpenData/types.d.ts +73 -0
  154. package/lib/modules/OpenData/types.js +17 -0
  155. package/lib/modules/OpenData/utils.d.ts +2 -0
  156. package/lib/modules/OpenData/utils.js +111 -0
  157. package/lib/modules/Order/index.d.ts +67 -1
  158. package/lib/modules/Order/index.js +529 -1
  159. package/lib/modules/Order/types.d.ts +176 -12
  160. package/lib/modules/Order/utils.d.ts +128 -0
  161. package/lib/modules/Order/utils.js +514 -2
  162. package/lib/modules/Payment/index.d.ts +1 -2
  163. package/lib/modules/Payment/index.js +0 -1
  164. package/lib/modules/Payment/utils.js +0 -3
  165. package/lib/modules/Payment/walletpass.d.ts +0 -23
  166. package/lib/modules/Payment/walletpass.js +17 -94
  167. package/lib/modules/Product/types.d.ts +7 -0
  168. package/lib/modules/Product/utils.js +2 -2
  169. package/lib/modules/ProductList/index.d.ts +1 -1
  170. package/lib/modules/ProductList/index.js +5 -4
  171. package/lib/modules/Quotation/index.d.ts +48 -0
  172. package/lib/modules/Quotation/index.js +152 -0
  173. package/lib/modules/Quotation/types.d.ts +42 -0
  174. package/lib/modules/Quotation/types.js +17 -0
  175. package/lib/modules/Rules/entitlementLines.d.ts +8 -0
  176. package/lib/modules/Rules/entitlementLines.js +158 -0
  177. package/lib/modules/Rules/index.d.ts +17 -11
  178. package/lib/modules/Rules/index.js +548 -798
  179. package/lib/modules/Rules/types.d.ts +2 -4
  180. package/lib/modules/SalesSummary/index.d.ts +63 -0
  181. package/lib/modules/SalesSummary/index.js +105 -0
  182. package/lib/modules/SalesSummary/types.d.ts +60 -0
  183. package/lib/modules/SalesSummary/types.js +17 -0
  184. package/lib/modules/SalesSummary/utils.d.ts +30 -0
  185. package/lib/modules/SalesSummary/utils.js +420 -0
  186. package/lib/modules/ScanOrderLogger/index.d.ts +23 -0
  187. package/lib/modules/ScanOrderLogger/index.js +147 -0
  188. package/lib/modules/ScanOrderLogger/providers/feishu.d.ts +2 -0
  189. package/lib/modules/ScanOrderLogger/providers/feishu.js +157 -0
  190. package/lib/modules/ScanOrderLogger/providers/grafana.d.ts +2 -0
  191. package/lib/modules/ScanOrderLogger/providers/grafana.js +52 -0
  192. package/lib/modules/ScanOrderLogger/types.d.ts +53 -0
  193. package/lib/modules/ScanOrderLogger/types.js +17 -0
  194. package/lib/modules/Schedule/getDateIsInSchedule.js +9 -11
  195. package/lib/modules/Schedule/utils.d.ts +1 -1
  196. package/lib/modules/Summary/types.d.ts +0 -2
  197. package/lib/modules/Summary/utils.d.ts +3 -9
  198. package/lib/modules/Summary/utils.js +45 -34
  199. package/lib/modules/index.d.ts +5 -0
  200. package/lib/modules/index.js +11 -1
  201. package/lib/plugins/window.d.ts +3 -2
  202. package/lib/solution/BookingByStep/index.d.ts +17 -3
  203. package/lib/solution/BookingByStep/index.js +45 -4
  204. package/lib/solution/BookingByStep/types.d.ts +4 -1
  205. package/lib/solution/BookingByStep/types.js +15 -0
  206. package/lib/solution/BookingByStep/utils/timeslots.d.ts +3 -1
  207. package/lib/solution/BookingByStep/utils/timeslots.js +19 -11
  208. package/lib/solution/Checkout/index.js +0 -2
  209. package/lib/solution/ScanOrder/index.d.ts +158 -0
  210. package/lib/solution/ScanOrder/index.js +2135 -0
  211. package/lib/solution/ScanOrder/types.d.ts +307 -0
  212. package/lib/solution/ScanOrder/types.js +36 -0
  213. package/lib/solution/ScanOrder/utils.d.ts +172 -0
  214. package/lib/solution/ScanOrder/utils.js +658 -0
  215. package/lib/solution/ShopDiscount/index.d.ts +6 -2
  216. package/lib/solution/ShopDiscount/index.js +94 -50
  217. package/lib/solution/ShopDiscount/types.d.ts +1 -1
  218. package/lib/solution/ShopDiscount/utils.d.ts +1 -0
  219. package/lib/solution/ShopDiscount/utils.js +48 -11
  220. package/lib/solution/VenueBooking/index.d.ts +225 -0
  221. package/lib/solution/VenueBooking/index.js +2073 -0
  222. package/lib/solution/VenueBooking/sales-section-4-annotated.json +343 -0
  223. package/lib/solution/VenueBooking/types.d.ts +156 -0
  224. package/lib/solution/VenueBooking/types.js +44 -0
  225. package/lib/solution/VenueBooking/utils/dateSummary.d.ts +11 -0
  226. package/lib/solution/VenueBooking/utils/dateSummary.js +110 -0
  227. package/lib/solution/VenueBooking/utils/resource.d.ts +14 -0
  228. package/lib/solution/VenueBooking/utils/resource.js +92 -0
  229. package/lib/solution/VenueBooking/utils/slotMerge.d.ts +38 -0
  230. package/lib/solution/VenueBooking/utils/slotMerge.js +237 -0
  231. package/lib/solution/VenueBooking/utils/timeSlot.d.ts +32 -0
  232. package/lib/solution/VenueBooking/utils/timeSlot.js +339 -0
  233. package/lib/solution/VenueBooking/utils.d.ts +1 -0
  234. package/lib/solution/VenueBooking/utils.js +69 -0
  235. package/lib/solution/index.d.ts +2 -0
  236. package/lib/solution/index.js +5 -1
  237. package/lib/types/index.d.ts +1 -0
  238. package/package.json +1 -1
@@ -31,6 +31,9 @@ import { filterDiscountListByBookingTime as _filterDiscountListByBookingTime, is
31
31
  import { UnavailableReason } from "../../modules/Rules/types";
32
32
  import Decimal from 'decimal.js';
33
33
  import { isBoolean } from 'lodash-es';
34
+ import { isEntitlementPass } from "../../modules/Discount/entitlementPass";
35
+ import { getDiscountLifecycleReason } from "../../modules/Discount/availability";
36
+ import { mergeEntitlementDiscountLists, retainScannedEntitlements, withCommittedEntitlementDetails } from "../../modules/Discount/entitlementState";
34
37
  export var ShopDiscountImpl = /*#__PURE__*/function (_BaseModule) {
35
38
  _inherits(ShopDiscountImpl, _BaseModule);
36
39
  var _super = _createSuper(ShopDiscountImpl);
@@ -47,6 +50,7 @@ export var ShopDiscountImpl = /*#__PURE__*/function (_BaseModule) {
47
50
  _defineProperty(_assertThisInitialized(_this), "store", void 0);
48
51
  _defineProperty(_assertThisInitialized(_this), "options", {});
49
52
  _defineProperty(_assertThisInitialized(_this), "hooks", void 0);
53
+ _defineProperty(_assertThisInitialized(_this), "entitlementPassEnabled", false);
50
54
  _this.store = {
51
55
  customer: null,
52
56
  productList: [],
@@ -57,13 +61,28 @@ export var ShopDiscountImpl = /*#__PURE__*/function (_BaseModule) {
57
61
  currentBookingTime: "",
58
62
  filteredDiscountList: [],
59
63
  bookingSubject: undefined,
60
- orderTotalAmount: 0
64
+ orderId: undefined
61
65
  };
62
66
  return _this;
63
67
  }
64
68
 
65
69
  // =========== 生命周期方法 ===========
66
70
  _createClass(ShopDiscountImpl, [{
71
+ key: "setEntitlementPassEnabled",
72
+ value:
73
+ // 由使用多次卡的预约组件显式开启,其他入口沿用原券流程。
74
+ function setEntitlementPassEnabled(enabled) {
75
+ var _this$store$rules;
76
+ this.entitlementPassEnabled = enabled;
77
+ (_this$store$rules = this.store.rules) === null || _this$store$rules === void 0 || _this$store$rules.setEntitlementPassEnabled(enabled);
78
+ if (!enabled) {
79
+ var _this$store$discount;
80
+ (_this$store$discount = this.store.discount) === null || _this$store$discount === void 0 || _this$store$discount.setDiscountList(this.getDiscountList().filter(function (item) {
81
+ return !isEntitlementPass(item);
82
+ }));
83
+ }
84
+ }
85
+ }, {
67
86
  key: "initialize",
68
87
  value: function () {
69
88
  var _initialize = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(core, options) {
@@ -100,14 +119,14 @@ export var ShopDiscountImpl = /*#__PURE__*/function (_BaseModule) {
100
119
  key: "destroy",
101
120
  value: function () {
102
121
  var _destroy = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
103
- var _this$store$discount, _this$store$rules;
122
+ var _this$store$discount2, _this$store$rules2;
104
123
  return _regeneratorRuntime().wrap(function _callee2$(_context2) {
105
124
  while (1) switch (_context2.prev = _context2.next) {
106
125
  case 0:
107
126
  this.store.productList = [];
108
127
  this.store.customer = null;
109
- (_this$store$discount = this.store.discount) === null || _this$store$discount === void 0 || _this$store$discount.destroy();
110
- (_this$store$rules = this.store.rules) === null || _this$store$rules === void 0 || _this$store$rules.destroy();
128
+ (_this$store$discount2 = this.store.discount) === null || _this$store$discount2 === void 0 || _this$store$discount2.destroy();
129
+ (_this$store$rules2 = this.store.rules) === null || _this$store$rules2 === void 0 || _this$store$rules2.destroy();
111
130
  this.core.effects.offByModuleDestroy(this.name);
112
131
  _context2.next = 7;
113
132
  return this.core.effects.emit("".concat(this.name, ":onDestroy"), {});
@@ -128,14 +147,14 @@ export var ShopDiscountImpl = /*#__PURE__*/function (_BaseModule) {
128
147
  key: "clear",
129
148
  value: function () {
130
149
  var _clear = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {
131
- var _this$store$discount2, _this$store$rules2;
150
+ var _this$store$discount3, _this$store$rules3;
132
151
  return _regeneratorRuntime().wrap(function _callee3$(_context3) {
133
152
  while (1) switch (_context3.prev = _context3.next) {
134
153
  case 0:
135
154
  this.store.productList = [];
136
155
  this.store.customer = null;
137
- (_this$store$discount2 = this.store.discount) === null || _this$store$discount2 === void 0 || _this$store$discount2.clear();
138
- (_this$store$rules2 = this.store.rules) === null || _this$store$rules2 === void 0 || _this$store$rules2.clear();
156
+ (_this$store$discount3 = this.store.discount) === null || _this$store$discount3 === void 0 || _this$store$discount3.clear();
157
+ (_this$store$rules3 = this.store.rules) === null || _this$store$rules3 === void 0 || _this$store$rules3.clear();
139
158
  console.log('[ShopDiscount] clear');
140
159
  case 5:
141
160
  case "end":
@@ -200,9 +219,7 @@ export var ShopDiscountImpl = /*#__PURE__*/function (_BaseModule) {
200
219
  var _this2 = this;
201
220
  this.core.effects.only("".concat(this.name, ":onCustomerChange"), function (customer) {
202
221
  var _this2$options$otherP;
203
- if ((_this2$options$otherP = _this2.options.otherParams) !== null && _this2$options$otherP !== void 0 && _this2$options$otherP.cacheId && _this2.getDiscountList().length) {
204
- return;
205
- }
222
+ if (!_this2.entitlementPassEnabled && (_this2$options$otherP = _this2.options.otherParams) !== null && _this2$options$otherP !== void 0 && _this2$options$otherP.cacheId && _this2.getDiscountList().length) return;
206
223
  _this2.loadPrepareConfig({
207
224
  customerId: customer.id,
208
225
  action: 'create',
@@ -269,17 +286,28 @@ export var ShopDiscountImpl = /*#__PURE__*/function (_BaseModule) {
269
286
  value: function () {
270
287
  var _setCustomer = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(customer) {
271
288
  var _this$store$customer;
289
+ var _this$store$discount4, retained;
272
290
  return _regeneratorRuntime().wrap(function _callee4$(_context4) {
273
291
  while (1) switch (_context4.prev = _context4.next) {
274
292
  case 0:
275
293
  if (!(((_this$store$customer = this.store.customer) === null || _this$store$customer === void 0 ? void 0 : _this$store$customer.id) !== customer.id)) {
276
- _context4.next = 4;
294
+ _context4.next = 8;
277
295
  break;
278
296
  }
279
297
  this.store.customer = customer;
280
- _context4.next = 4;
298
+ if (!this.entitlementPassEnabled) {
299
+ _context4.next = 6;
300
+ break;
301
+ }
302
+ retained = this.getDiscountList().filter(function (item) {
303
+ return !isEntitlementPass(item) || item.isEditMode || item.isScan && String(item.customer_id) === String(customer.id);
304
+ });
305
+ _context4.next = 6;
306
+ return (_this$store$discount4 = this.store.discount) === null || _this$store$discount4 === void 0 ? void 0 : _this$store$discount4.setDiscountList(retained);
307
+ case 6:
308
+ _context4.next = 8;
281
309
  return this.core.effects.emit("".concat(this.name, ":onCustomerChange"), customer);
282
- case 4:
310
+ case 8:
283
311
  case "end":
284
312
  return _context4.stop();
285
313
  }
@@ -289,14 +317,7 @@ export var ShopDiscountImpl = /*#__PURE__*/function (_BaseModule) {
289
317
  return _setCustomer.apply(this, arguments);
290
318
  }
291
319
  return setCustomer;
292
- }()
293
- }, {
294
- key: "setOriginTotalAmount",
295
- value: function setOriginTotalAmount(amount) {
296
- this.store.orderTotalAmount = amount;
297
- }
298
-
299
- // 设置holders
320
+ }() // 设置holders
300
321
  }, {
301
322
  key: "setHolders",
302
323
  value: function setHolders(holders) {
@@ -307,6 +328,11 @@ export var ShopDiscountImpl = /*#__PURE__*/function (_BaseModule) {
307
328
  value: function setBookingSubject(bookingSubject) {
308
329
  this.store.bookingSubject = bookingSubject;
309
330
  }
331
+ }, {
332
+ key: "setOrderId",
333
+ value: function setOrderId(id) {
334
+ this.store.orderId = id;
335
+ }
310
336
 
311
337
  // 计算优惠券
312
338
  }, {
@@ -324,7 +350,6 @@ export var ShopDiscountImpl = /*#__PURE__*/function (_BaseModule) {
324
350
  var _ref = rulesModule.calcDiscount({
325
351
  productList: productList,
326
352
  discountList: this.getDiscountList(),
327
- orderTotalAmount: this.store.orderTotalAmount || 0,
328
353
  holders: this.store.holders || [],
329
354
  isFormSubject: ((_this$store$bookingSu = this.store.bookingSubject) === null || _this$store$bookingSu === void 0 ? void 0 : _this$store$bookingSu.type) === 'form'
330
355
  }, options) || {
@@ -333,6 +358,7 @@ export var ShopDiscountImpl = /*#__PURE__*/function (_BaseModule) {
333
358
  },
334
359
  newProductList = _ref.productList,
335
360
  newDiscountList = _ref.discountList;
361
+ if (this.entitlementPassEnabled) this.store.productList = newProductList || productList;
336
362
  if (newDiscountList) {
337
363
  newDiscountList = this.setDiscountList(newDiscountList);
338
364
  }
@@ -397,13 +423,13 @@ export var ShopDiscountImpl = /*#__PURE__*/function (_BaseModule) {
397
423
  key: "batchSearchByProductIds",
398
424
  value: function () {
399
425
  var _batchSearchByProductIds = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5(productIds) {
400
- var _this$store$discount3;
426
+ var _this$store$discount5;
401
427
  var resultDiscountList, currentDiscountList, newDiscountList;
402
428
  return _regeneratorRuntime().wrap(function _callee5$(_context5) {
403
429
  while (1) switch (_context5.prev = _context5.next) {
404
430
  case 0:
405
431
  _context5.next = 2;
406
- return (_this$store$discount3 = this.store.discount) === null || _this$store$discount3 === void 0 ? void 0 : _this$store$discount3.batchSearchByProductIds(productIds);
432
+ return (_this$store$discount5 = this.store.discount) === null || _this$store$discount5 === void 0 ? void 0 : _this$store$discount5.batchSearchByProductIds(productIds);
407
433
  case 2:
408
434
  _context5.t0 = _context5.sent;
409
435
  if (_context5.t0) {
@@ -437,25 +463,33 @@ export var ShopDiscountImpl = /*#__PURE__*/function (_BaseModule) {
437
463
  key: "scanCode",
438
464
  value: function () {
439
465
  var _scanCode = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee6(code, customerId) {
440
- var _this$store$discount4, _this$store$bookingSu2, resultDiscountList, rulesModule, withScanList, currentSelectedDiscountList, _ref2, newProductList, newDiscountList, isAvailable, unavailableReason, _this$options$otherPa6;
466
+ var _this$store$discount6, _this$store$bookingSu2, _find, resultDiscountWithReason, resultDiscountList, unavailableReasonKey, rulesModule, withScanList, currentSelectedDiscountList, _ref2, newProductList, newDiscountList, evaluatedDiscountList, isAvailable, unavailableReason, isAccepted, _this$options$otherPa6, ids, retainable, _this$store$discount7;
441
467
  return _regeneratorRuntime().wrap(function _callee6$(_context6) {
442
468
  while (1) switch (_context6.prev = _context6.next) {
443
469
  case 0:
444
470
  _context6.prev = 0;
445
471
  _context6.next = 3;
446
- return (_this$store$discount4 = this.store.discount) === null || _this$store$discount4 === void 0 ? void 0 : _this$store$discount4.batchSearch(code, customerId);
472
+ return (_this$store$discount6 = this.store.discount) === null || _this$store$discount6 === void 0 ? void 0 : _this$store$discount6.batchSearch(code, {
473
+ customerId: customerId,
474
+ orderId: this.store.orderId,
475
+ withEntitlementPass: this.entitlementPassEnabled
476
+ });
447
477
  case 3:
448
478
  _context6.t0 = _context6.sent;
449
479
  if (_context6.t0) {
450
480
  _context6.next = 6;
451
481
  break;
452
482
  }
453
- _context6.t0 = [];
483
+ _context6.t0 = {
484
+ discountList: [],
485
+ unavailableReasonKey: null
486
+ };
454
487
  case 6:
455
- resultDiscountList = _context6.t0;
488
+ resultDiscountWithReason = _context6.t0;
489
+ resultDiscountList = resultDiscountWithReason.discountList, unavailableReasonKey = resultDiscountWithReason.unavailableReasonKey;
456
490
  rulesModule = this.store.rules;
457
491
  if (rulesModule) {
458
- _context6.next = 10;
492
+ _context6.next = 11;
459
493
  break;
460
494
  }
461
495
  return _context6.abrupt("return", {
@@ -465,18 +499,19 @@ export var ShopDiscountImpl = /*#__PURE__*/function (_BaseModule) {
465
499
  discountList: this.getDiscountList(),
466
500
  unavailableReason: UnavailableReason.Unknown
467
501
  });
468
- case 10:
502
+ case 11:
469
503
  if (resultDiscountList.length) {
470
- _context6.next = 12;
504
+ _context6.next = 13;
471
505
  break;
472
506
  }
473
507
  return _context6.abrupt("return", {
474
508
  type: "server",
475
509
  isAvailable: false,
476
510
  productList: this.store.productList || [],
477
- discountList: this.getDiscountList()
511
+ discountList: this.getDiscountList(),
512
+ unavailableReasonKey: unavailableReasonKey
478
513
  });
479
- case 12:
514
+ case 13:
480
515
  withScanList = resultDiscountList.map(function (item) {
481
516
  return _objectSpread(_objectSpread({}, item), {}, {
482
517
  isScan: true
@@ -485,12 +520,12 @@ export var ShopDiscountImpl = /*#__PURE__*/function (_BaseModule) {
485
520
  currentSelectedDiscountList = this.getDiscountList().filter(function (n) {
486
521
  return n.isSelected;
487
522
  });
488
- if (!(currentSelectedDiscountList.length && currentSelectedDiscountList.some(function (n) {
523
+ if (!(!withScanList.some(isEntitlementPass) && currentSelectedDiscountList.length && currentSelectedDiscountList.some(function (n) {
489
524
  return withScanList.some(function (m) {
490
525
  return m.id === n.id;
491
526
  });
492
527
  }))) {
493
- _context6.next = 16;
528
+ _context6.next = 17;
494
529
  break;
495
530
  }
496
531
  return _context6.abrupt("return", {
@@ -499,42 +534,69 @@ export var ShopDiscountImpl = /*#__PURE__*/function (_BaseModule) {
499
534
  productList: this.store.productList || [],
500
535
  discountList: this.getDiscountList()
501
536
  });
502
- case 16:
537
+ case 17:
503
538
  _ref2 = rulesModule.isDiscountListAvailable({
504
539
  productList: this.store.productList || [],
505
540
  oldDiscountList: this.getDiscountList(),
506
541
  newDiscountList: withScanList,
507
- orderTotalAmount: this.store.orderTotalAmount || 0,
508
542
  holders: this.store.holders || [],
509
543
  isFormSubject: ((_this$store$bookingSu2 = this.store.bookingSubject) === null || _this$store$bookingSu2 === void 0 ? void 0 : _this$store$bookingSu2.type) === 'form'
510
544
  }) || {
511
545
  isAvailable: false,
512
546
  productList: this.store.productList || [],
513
547
  discountList: this.getDiscountList()
514
- }, newProductList = _ref2.productList, newDiscountList = _ref2.discountList, isAvailable = _ref2.isAvailable, unavailableReason = _ref2.unavailableReason;
548
+ }, newProductList = _ref2.productList, newDiscountList = _ref2.discountList, evaluatedDiscountList = _ref2.evaluatedDiscountList, isAvailable = _ref2.isAvailable, unavailableReason = _ref2.unavailableReason;
549
+ isAccepted = isAvailable;
515
550
  if (!isAvailable) {
516
- _context6.next = 24;
551
+ _context6.next = 27;
517
552
  break;
518
553
  }
554
+ if (this.entitlementPassEnabled) this.setProductList(newProductList || []);
519
555
  this.setDiscountList(newDiscountList || []);
520
556
  this.store.originalDiscountList = newDiscountList || [];
521
- this.setProductList(newProductList || []);
557
+ if (!this.entitlementPassEnabled) this.setProductList(newProductList || []);
522
558
  if (!(this.isWalkIn() && resultDiscountList.length && ((_this$options$otherPa6 = this.options.otherParams) === null || _this$options$otherPa6 === void 0 ? void 0 : _this$options$otherPa6.platform) === 'shop')) {
523
- _context6.next = 24;
559
+ _context6.next = 27;
524
560
  break;
525
561
  }
526
- _context6.next = 24;
562
+ _context6.next = 27;
527
563
  return this.getCustomerWallet(resultDiscountList[0].customer_id);
528
- case 24:
564
+ case 27:
565
+ if (!isAvailable) {
566
+ ids = new Set(withScanList.map(function (item) {
567
+ return String(item.id);
568
+ }));
569
+ retainable = (evaluatedDiscountList || []).filter(function (item) {
570
+ return ids.has(String(item.id)) && isEntitlementPass(item) && !getDiscountLifecycleReason(item);
571
+ });
572
+ if (retainable.length) {
573
+ this.setDiscountList(retainScannedEntitlements(this.getDiscountList(), retainable));
574
+ isAccepted = true;
575
+ }
576
+ }
577
+ if (!this.entitlementPassEnabled) {
578
+ _context6.next = 32;
579
+ break;
580
+ }
581
+ this.store.originalDiscountList = this.getDiscountList();
582
+ _context6.next = 32;
583
+ return (_this$store$discount7 = this.store.discount) === null || _this$store$discount7 === void 0 ? void 0 : _this$store$discount7.setOriginalDiscountList(this.getDiscountList());
584
+ case 32:
529
585
  return _context6.abrupt("return", {
530
586
  type: "clientCalc",
531
587
  isAvailable: isAvailable || false,
532
- productList: newProductList || this.store.productList || [],
533
- discountList: newDiscountList || this.getDiscountList(),
534
- unavailableReason: unavailableReason
588
+ isAccepted: isAccepted,
589
+ productList: isAvailable ? newProductList : this.store.productList || [],
590
+ discountList: this.getDiscountList(),
591
+ unavailableReason: unavailableReason,
592
+ unavailableReasonKey: ((_find = (evaluatedDiscountList || []).find(function (item) {
593
+ return withScanList.some(function (scanned) {
594
+ return String(scanned.id) === String(item.id);
595
+ }) && item.reasonCode;
596
+ })) === null || _find === void 0 ? void 0 : _find.reasonCode) || unavailableReasonKey
535
597
  });
536
- case 27:
537
- _context6.prev = 27;
598
+ case 35:
599
+ _context6.prev = 35;
538
600
  _context6.t1 = _context6["catch"](0);
539
601
  console.error('[ShopDiscount] 扫码出错:', _context6.t1);
540
602
  return _context6.abrupt("return", {
@@ -544,11 +606,11 @@ export var ShopDiscountImpl = /*#__PURE__*/function (_BaseModule) {
544
606
  discountList: this.getDiscountList(),
545
607
  unavailableReason: UnavailableReason.Unknown
546
608
  });
547
- case 31:
609
+ case 39:
548
610
  case "end":
549
611
  return _context6.stop();
550
612
  }
551
- }, _callee6, this, [[0, 27]]);
613
+ }, _callee6, this, [[0, 35]]);
552
614
  }));
553
615
  function scanCode(_x5, _x6) {
554
616
  return _scanCode.apply(this, arguments);
@@ -558,8 +620,8 @@ export var ShopDiscountImpl = /*#__PURE__*/function (_BaseModule) {
558
620
  }, {
559
621
  key: "calcDiscountApplicableProductTotalPrice",
560
622
  value: function calcDiscountApplicableProductTotalPrice(discount) {
561
- var _this$store$discount5;
562
- return (_this$store$discount5 = this.store.discount) === null || _this$store$discount5 === void 0 ? void 0 : _this$store$discount5.calcDiscountApplicableProductTotalPrice(discount);
623
+ var _this$store$discount8;
624
+ return (_this$store$discount8 = this.store.discount) === null || _this$store$discount8 === void 0 ? void 0 : _this$store$discount8.calcDiscountApplicableProductTotalPrice(discount);
563
625
  }
564
626
 
565
627
  // =========== 私有辅助方法 ===========
@@ -604,7 +666,8 @@ export var ShopDiscountImpl = /*#__PURE__*/function (_BaseModule) {
604
666
  key: "setDiscountList",
605
667
  value: function setDiscountList(discountList) {
606
668
  var _this3 = this,
607
- _this$store$discount6;
669
+ _this$hooks,
670
+ _this$store$discount9;
608
671
  var productList = this.store.productList || [];
609
672
  var editModeDiscountList = [];
610
673
  productList.forEach(function (item) {
@@ -618,27 +681,21 @@ export var ShopDiscountImpl = /*#__PURE__*/function (_BaseModule) {
618
681
  return n.id === (((_discount$discount = discount.discount) === null || _discount$discount === void 0 ? void 0 : _discount$discount.resource_id) || discount.id);
619
682
  });
620
683
  if (index !== -1) {
621
- var _editModeDiscountList, _discount$metadata, _discount$metadata2;
684
+ var _discount$metadata;
622
685
  editModeDiscountList[index] = _objectSpread(_objectSpread({}, editModeDiscountList[index]), {}, {
623
- metadata: _objectSpread(_objectSpread({}, discount.metadata || {}), {}, {
624
- num: ((editModeDiscountList === null || editModeDiscountList === void 0 || (_editModeDiscountList = editModeDiscountList[index]) === null || _editModeDiscountList === void 0 || (_editModeDiscountList = _editModeDiscountList.metadata) === null || _editModeDiscountList === void 0 ? void 0 : _editModeDiscountList.num) || 1) + (((_discount$metadata = discount.metadata) === null || _discount$metadata === void 0 ? void 0 : _discount$metadata.num) || 1)
625
- }),
626
686
  amount: new Decimal(discount.amount || 0).plus(new Decimal(editModeDiscountList[index].amount || 0)).toNumber(),
627
- savedAmount: new Decimal(discount.amount || 0).times((product === null || product === void 0 ? void 0 : product.quantity) || (product === null || product === void 0 ? void 0 : product.num) || 1).plus((discount === null || discount === void 0 || (_discount$metadata2 = discount.metadata) === null || _discount$metadata2 === void 0 ? void 0 : _discount$metadata2.product_discount_difference) || 0).plus(new Decimal(editModeDiscountList[index].savedAmount || 0)).toNumber()
687
+ savedAmount: new Decimal(discount.amount || 0).times((product === null || product === void 0 ? void 0 : product.quantity) || (product === null || product === void 0 ? void 0 : product.num) || 1).plus((discount === null || discount === void 0 || (_discount$metadata = discount.metadata) === null || _discount$metadata === void 0 ? void 0 : _discount$metadata.product_discount_difference) || 0).plus(new Decimal(editModeDiscountList[index].savedAmount || 0)).toNumber()
628
688
  });
629
689
  } else {
630
- var _discount$metadata3, _discount$metadata4, _discount$discount2, _discount$discount3, _discount$discount4;
690
+ var _discount$metadata2, _discount$discount2, _discount$discount3, _discount$discount4;
631
691
  if (discount.type && !discount.tag) {
632
692
  discount.tag = discount.type;
633
693
  }
634
694
  editModeDiscountList.push(_objectSpread(_objectSpread({}, discount), {}, {
635
- metadata: _objectSpread(_objectSpread({}, discount.metadata || {}), {}, {
636
- num: ((_discount$metadata3 = discount.metadata) === null || _discount$metadata3 === void 0 ? void 0 : _discount$metadata3.num) || 1
637
- }),
638
695
  name: discount.name || discount.discount.title.auto,
639
696
  isEditMode: true,
640
697
  limited_relation_product_data: {},
641
- savedAmount: new Decimal(discount.amount || 0).times((product === null || product === void 0 ? void 0 : product.quantity) || (product === null || product === void 0 ? void 0 : product.num) || 1).plus((discount === null || discount === void 0 || (_discount$metadata4 = discount.metadata) === null || _discount$metadata4 === void 0 ? void 0 : _discount$metadata4.product_discount_difference) || 0).toNumber(),
698
+ savedAmount: new Decimal(discount.amount || 0).times((product === null || product === void 0 ? void 0 : product.quantity) || (product === null || product === void 0 ? void 0 : product.num) || 1).plus((discount === null || discount === void 0 || (_discount$metadata2 = discount.metadata) === null || _discount$metadata2 === void 0 ? void 0 : _discount$metadata2.product_discount_difference) || 0).toNumber(),
642
699
  isAvailable: true,
643
700
  id: ((_discount$discount2 = discount.discount) === null || _discount$discount2 === void 0 ? void 0 : _discount$discount2.resource_id) || discount.id,
644
701
  format_title: ((_discount$discount3 = discount.discount) === null || _discount$discount3 === void 0 ? void 0 : _discount$discount3.title) || discount.format_title,
@@ -651,8 +708,14 @@ export var ShopDiscountImpl = /*#__PURE__*/function (_BaseModule) {
651
708
  });
652
709
  }
653
710
  });
654
- var newDiscountList = [].concat(editModeDiscountList, _toConsumableArray(discountList.filter(function (item) {
655
- return !item.isDisabled;
711
+ var newDiscountList = this.entitlementPassEnabled ? withCommittedEntitlementDetails([].concat(_toConsumableArray(editModeDiscountList.filter(function (item) {
712
+ return !isEntitlementPass(item);
713
+ })), _toConsumableArray(discountList.filter(function (item) {
714
+ return isEntitlementPass(item) || !item.isDisabled;
715
+ }))), productList, ((_this$hooks = this.hooks) === null || _this$hooks === void 0 ? void 0 : _this$hooks.getProduct) || function (item) {
716
+ return item;
717
+ }) : [].concat(editModeDiscountList, _toConsumableArray(discountList.filter(function (item) {
718
+ return !item.isDisabled && !isEntitlementPass(item);
656
719
  })));
657
720
  var isProductFree = function isProductFree(id) {
658
721
  var _this3$hooks2;
@@ -693,7 +756,7 @@ export var ShopDiscountImpl = /*#__PURE__*/function (_BaseModule) {
693
756
  item.isDisabledForProductUsed = false;
694
757
  }
695
758
  });
696
- (_this$store$discount6 = this.store.discount) === null || _this$store$discount6 === void 0 || _this$store$discount6.setDiscountList(newDiscountList);
759
+ (_this$store$discount9 = this.store.discount) === null || _this$store$discount9 === void 0 || _this$store$discount9.setDiscountList(newDiscountList);
697
760
  this.emitDiscountListChange(newDiscountList);
698
761
  return newDiscountList;
699
762
  }
@@ -702,8 +765,8 @@ export var ShopDiscountImpl = /*#__PURE__*/function (_BaseModule) {
702
765
  }, {
703
766
  key: "getDiscountList",
704
767
  value: function getDiscountList() {
705
- var _this$store$discount7;
706
- return ((_this$store$discount7 = this.store.discount) === null || _this$store$discount7 === void 0 ? void 0 : _this$store$discount7.getDiscountList()) || [];
768
+ var _this$store$discount10;
769
+ return ((_this$store$discount10 = this.store.discount) === null || _this$store$discount10 === void 0 ? void 0 : _this$store$discount10.getDiscountList()) || [];
707
770
  }
708
771
 
709
772
  // 获取客户钱包信息
@@ -711,7 +774,7 @@ export var ShopDiscountImpl = /*#__PURE__*/function (_BaseModule) {
711
774
  key: "getCustomerWallet",
712
775
  value: function () {
713
776
  var _getCustomerWallet = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee8(id) {
714
- var _result, customer;
777
+ var _result, customer, customerUpdate;
715
778
  return _regeneratorRuntime().wrap(function _callee8$(_context8) {
716
779
  while (1) switch (_context8.prev = _context8.next) {
717
780
  case 0:
@@ -723,25 +786,32 @@ export var ShopDiscountImpl = /*#__PURE__*/function (_BaseModule) {
723
786
  case 3:
724
787
  _result = _context8.sent;
725
788
  if (!(_result !== null && _result !== void 0 && _result.data)) {
726
- _context8.next = 9;
789
+ _context8.next = 12;
727
790
  break;
728
791
  }
729
792
  customer = Object.assign({}, (_objectDestructuringEmpty(_result.data), _result.data));
730
- this.setCustomer(customer);
731
- _context8.next = 9;
793
+ customerUpdate = this.setCustomer(customer);
794
+ if (!this.entitlementPassEnabled) {
795
+ _context8.next = 10;
796
+ break;
797
+ }
798
+ _context8.next = 10;
799
+ return customerUpdate;
800
+ case 10:
801
+ _context8.next = 12;
732
802
  return this.core.effects.emit("".concat(this.name, ":onScanCustomerChange"), customer);
733
- case 9:
734
- _context8.next = 14;
803
+ case 12:
804
+ _context8.next = 17;
735
805
  break;
736
- case 11:
737
- _context8.prev = 11;
806
+ case 14:
807
+ _context8.prev = 14;
738
808
  _context8.t0 = _context8["catch"](0);
739
809
  console.error('[ShopDiscount] 获取客户钱包信息出错:', _context8.t0);
740
- case 14:
810
+ case 17:
741
811
  case "end":
742
812
  return _context8.stop();
743
813
  }
744
- }, _callee8, this, [[0, 11]]);
814
+ }, _callee8, this, [[0, 14]]);
745
815
  }));
746
816
  function getCustomerWallet(_x8) {
747
817
  return _getCustomerWallet.apply(this, arguments);
@@ -785,65 +855,79 @@ export var ShopDiscountImpl = /*#__PURE__*/function (_BaseModule) {
785
855
  key: "loadPrepareConfig",
786
856
  value: function () {
787
857
  var _loadPrepareConfig = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee10(params) {
788
- var _this$getCustomer2, _this$store$discount8, _this$getDiscountList, _this$store$discount9, _this$store$productLi2, customerId, goodPassList, scanDiscount, scanDiscountIds, newGoodPassList, newDiscountList, filteredDiscountList, _result3;
858
+ var _this4 = this;
859
+ var _this$getCustomer2, _this$store$discount11, _this$getCustomer3, _this$store$discount12, _this$store$discount13, _this$store$productLi2, entitlementPassEnabled, orderId, customerId, goodPassList, newDiscountList, filteredDiscountList, _result3;
789
860
  return _regeneratorRuntime().wrap(function _callee10$(_context10) {
790
861
  while (1) switch (_context10.prev = _context10.next) {
791
862
  case 0:
792
863
  _context10.prev = 0;
864
+ entitlementPassEnabled = this.entitlementPassEnabled;
865
+ orderId = this.store.orderId;
793
866
  customerId = params.customerId || ((_this$getCustomer2 = this.getCustomer()) === null || _this$getCustomer2 === void 0 ? void 0 : _this$getCustomer2.id); // if (customerId === 1 || !customerId) {
794
867
  // return
795
868
  // }
796
- _context10.next = 4;
797
- return (_this$store$discount8 = this.store.discount) === null || _this$store$discount8 === void 0 ? void 0 : _this$store$discount8.loadPrepareConfig({
869
+ _context10.next = 6;
870
+ return (_this$store$discount11 = this.store.discount) === null || _this$store$discount11 === void 0 ? void 0 : _this$store$discount11.loadPrepareConfig(_objectSpread(_objectSpread({
798
871
  customer_id: customerId,
799
- action: 'create',
872
+ action: orderId ? 'edit' : 'create',
800
873
  with_good_pass: 1,
801
874
  with_discount_card: 1,
802
- with_wallet_pass_holder: 1,
875
+ with_wallet_pass_holder: 1
876
+ }, this.entitlementPassEnabled ? {
877
+ with_entitlement_pass: 1,
878
+ filter_order_wallet_pass_usage: 0
879
+ } : {}), {}, {
803
880
  request_timezone: Intl.DateTimeFormat().resolvedOptions().timeZone
804
- });
805
- case 4:
881
+ }, orderId ? {
882
+ order_id: orderId
883
+ } : {}));
884
+ case 6:
806
885
  goodPassList = _context10.sent;
807
- scanDiscount = (_this$getDiscountList = this.getDiscountList()) === null || _this$getDiscountList === void 0 ? void 0 : _this$getDiscountList.filter(function (item) {
808
- return item.isScan;
809
- }); // goodPassList 里可能有 scanDiscount 重合的部分,goodPassList 需要剔除
810
- scanDiscountIds = scanDiscount.map(function (n) {
811
- return n.id;
812
- });
813
- newGoodPassList = goodPassList === null || goodPassList === void 0 ? void 0 : goodPassList.filter(function (n) {
814
- return !scanDiscountIds.includes(n.id);
815
- });
816
- newDiscountList = [].concat(_toConsumableArray(scanDiscount), _toConsumableArray(newGoodPassList || [])); // 存储原始优惠券列表
886
+ if (!(entitlementPassEnabled !== this.entitlementPassEnabled)) {
887
+ _context10.next = 9;
888
+ break;
889
+ }
890
+ return _context10.abrupt("return");
891
+ case 9:
892
+ if (!(entitlementPassEnabled && (String(customerId) !== String((_this$getCustomer3 = this.getCustomer()) === null || _this$getCustomer3 === void 0 ? void 0 : _this$getCustomer3.id) || String(orderId) !== String(this.store.orderId)))) {
893
+ _context10.next = 11;
894
+ break;
895
+ }
896
+ return _context10.abrupt("return");
897
+ case 11:
898
+ newDiscountList = mergeEntitlementDiscountLists(this.getDiscountList(), goodPassList || [], (_this$store$discount12 = this.store.discount) === null || _this$store$discount12 === void 0 ? void 0 : _this$store$discount12.getOriginalDiscountList()); // 存储原始优惠券列表
817
899
  this.store.originalDiscountList = newDiscountList;
818
- _context10.next = 12;
819
- return (_this$store$discount9 = this.store.discount) === null || _this$store$discount9 === void 0 ? void 0 : _this$store$discount9.setOriginalDiscountList(newDiscountList);
820
- case 12:
900
+ _context10.next = 15;
901
+ return (_this$store$discount13 = this.store.discount) === null || _this$store$discount13 === void 0 ? void 0 : _this$store$discount13.setOriginalDiscountList(newDiscountList);
902
+ case 15:
821
903
  // 根据当前预约时间过滤优惠券列表
822
- filteredDiscountList = this.filterDiscountListByBookingTime(newDiscountList, this.store.currentBookingTime);
904
+ filteredDiscountList = newDiscountList.filter(function (item) {
905
+ return isEntitlementPass(item) || _this4.filterDiscountListByBookingTime([item], _this4.store.currentBookingTime).length > 0;
906
+ });
823
907
  this.store.filteredDiscountList = filteredDiscountList;
824
908
  this.setDiscountList(filteredDiscountList || []);
825
909
  if (!((_this$store$productLi2 = this.store.productList) !== null && _this$store$productLi2 !== void 0 && _this$store$productLi2.length)) {
826
- _context10.next = 19;
910
+ _context10.next = 22;
827
911
  break;
828
912
  }
829
913
  _result3 = this.calcDiscount(this.store.productList);
830
- _context10.next = 19;
914
+ _context10.next = 22;
831
915
  return this.core.effects.emit("".concat(this.name, ":onLoadPrepareCalcResult"), _result3);
832
- case 19:
833
- _context10.next = 21;
834
- return this.core.effects.emit("".concat(this.name, ":onLoadDiscountList"), newDiscountList);
835
- case 21:
836
- _context10.next = 26;
916
+ case 22:
917
+ _context10.next = 24;
918
+ return this.core.effects.emit("".concat(this.name, ":onLoadDiscountList"), filteredDiscountList);
919
+ case 24:
920
+ _context10.next = 29;
837
921
  break;
838
- case 23:
839
- _context10.prev = 23;
922
+ case 26:
923
+ _context10.prev = 26;
840
924
  _context10.t0 = _context10["catch"](0);
841
925
  console.error('[ShopDiscount] 加载准备配置出错:', _context10.t0);
842
- case 26:
926
+ case 29:
843
927
  case "end":
844
928
  return _context10.stop();
845
929
  }
846
- }, _callee10, this, [[0, 23]]);
930
+ }, _callee10, this, [[0, 26]]);
847
931
  }));
848
932
  function loadPrepareConfig(_x10) {
849
933
  return _loadPrepareConfig.apply(this, arguments);
@@ -23,7 +23,6 @@ export interface ShopDiscountState {
23
23
  discount: DiscountModule | null;
24
24
  rules: RulesModule | null;
25
25
  productList: Record<string, any>[];
26
- orderTotalAmount?: number;
27
26
  holders?: {
28
27
  form_record_id: number;
29
28
  form_id?: number;
@@ -36,6 +35,7 @@ export interface ShopDiscountState {
36
35
  type?: 'form' | 'customer';
37
36
  [key: string]: any;
38
37
  };
38
+ orderId?: number;
39
39
  }
40
40
  export interface SetDiscountSelectedParams {
41
41
  discountId: number;
@@ -8,5 +8,4 @@ export var ShopDiscountHooks = /*#__PURE__*/function (ShopDiscountHooks) {
8
8
  ShopDiscountHooks["onRulesListChange"] = "shopDiscount:onRulesListChange";
9
9
  ShopDiscountHooks["onLoadPrepareCalcResult"] = "shopDiscount:onLoadPrepareCalcResult";
10
10
  return ShopDiscountHooks;
11
- }({});
12
- ;
11
+ }({});
@@ -89,3 +89,4 @@ export declare const calculateOrderLevelDiscountAllocation: (discount: Discount,
89
89
  discountAmount: number;
90
90
  difference: number;
91
91
  }>;
92
+ export declare const getDiscountTimeUnavailableReason: (discount: Discount, useTime: string) => 'not_started' | 'time_limit' | 'outside_schedule' | undefined;