@pisell/pisellos 2.2.265 → 2.2.270
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/core/index.d.ts +2 -0
- package/dist/core/index.js +7 -0
- package/dist/model/strategy/adapter/promotion/adapter.d.ts +4 -0
- package/dist/model/strategy/adapter/promotion/adapter.js +23 -0
- package/dist/model/strategy/adapter/promotion/evaluator.d.ts +17 -0
- package/dist/model/strategy/adapter/promotion/evaluator.js +279 -6
- package/dist/model/strategy/adapter/promotion/examples.d.ts +86 -0
- package/dist/model/strategy/adapter/promotion/examples.js +99 -0
- package/dist/model/strategy/adapter/promotion/index.d.ts +1 -1
- package/dist/model/strategy/adapter/promotion/index.js +1 -1
- package/dist/model/strategy/adapter/promotion/type.d.ts +90 -2
- package/dist/model/strategy/adapter/promotion/type.js +45 -0
- package/dist/modules/OpenData/index.d.ts +2 -0
- package/dist/modules/OpenData/index.js +8 -0
- package/dist/modules/Order/index.d.ts +1 -1
- package/dist/modules/Order/index.js +10 -3
- package/dist/modules/Order/utils.js +2 -1
- package/dist/modules/Rules/index.d.ts +1 -0
- package/dist/modules/Rules/index.js +34 -14
- package/dist/solution/BaseSales/index.d.ts +14 -1
- package/dist/solution/BaseSales/index.js +36 -12
- package/dist/solution/BaseSales/utils/cartPromotion.d.ts +3 -1
- package/dist/solution/BaseSales/utils/cartPromotion.js +90 -31
- package/dist/solution/BookingByStep/index.d.ts +1 -1
- package/dist/solution/BookingTicket/index.d.ts +3 -1
- package/dist/solution/BookingTicket/index.js +43 -31
- package/dist/solution/ScanOrder/index.js +31 -20
- package/dist/solution/VenueBooking/index.js +30 -19
- package/dist/types/index.d.ts +1 -0
- package/lib/core/index.d.ts +2 -0
- package/lib/core/index.js +4 -0
- package/lib/model/strategy/adapter/promotion/adapter.d.ts +4 -0
- package/lib/model/strategy/adapter/promotion/adapter.js +20 -0
- package/lib/model/strategy/adapter/promotion/evaluator.d.ts +17 -0
- package/lib/model/strategy/adapter/promotion/evaluator.js +235 -0
- package/lib/model/strategy/adapter/promotion/examples.d.ts +86 -0
- package/lib/model/strategy/adapter/promotion/examples.js +91 -0
- package/lib/model/strategy/adapter/promotion/index.d.ts +1 -1
- package/lib/model/strategy/adapter/promotion/index.js +0 -49
- package/lib/model/strategy/adapter/promotion/type.d.ts +90 -2
- package/lib/model/strategy/adapter/promotion/type.js +2 -0
- package/lib/modules/OpenData/index.d.ts +2 -0
- package/lib/modules/OpenData/index.js +5 -0
- package/lib/modules/Order/index.d.ts +1 -1
- package/lib/modules/Order/index.js +9 -3
- package/lib/modules/Order/utils.js +6 -1
- package/lib/modules/Rules/index.d.ts +1 -0
- package/lib/modules/Rules/index.js +23 -4
- package/lib/solution/BaseSales/index.d.ts +14 -1
- package/lib/solution/BaseSales/index.js +22 -1
- package/lib/solution/BaseSales/utils/cartPromotion.d.ts +3 -1
- package/lib/solution/BaseSales/utils/cartPromotion.js +63 -12
- package/lib/solution/BookingByStep/index.d.ts +1 -1
- package/lib/solution/BookingTicket/index.d.ts +3 -1
- package/lib/solution/BookingTicket/index.js +11 -3
- package/lib/solution/ScanOrder/index.js +8 -0
- package/lib/solution/VenueBooking/index.js +8 -0
- package/lib/types/index.d.ts +1 -0
- package/package.json +2 -2
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
var _excluded = ["_promotionTags"];
|
|
2
2
|
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
3
3
|
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
4
|
-
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
5
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
6
|
-
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
7
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
|
8
|
-
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
9
4
|
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); }
|
|
10
5
|
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
11
6
|
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."); }
|
|
12
7
|
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; } }
|
|
13
8
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
14
9
|
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
|
|
10
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
11
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
12
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
13
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
|
14
|
+
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
15
15
|
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
16
16
|
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
17
17
|
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
@@ -116,24 +116,50 @@ export function getOrderProductOriginalPriceForPromotion(product) {
|
|
|
116
116
|
}
|
|
117
117
|
return getOrderProductBasePrice(product);
|
|
118
118
|
}
|
|
119
|
+
var X_ITEMS_FOR_Y_PRICE = 'X_ITEMS_FOR_Y_PRICE';
|
|
120
|
+
var BUY_X_GET_Y_FREE = 'BUY_X_GET_Y_FREE';
|
|
121
|
+
var ITEM_REWARD = 'ITEM_REWARD';
|
|
122
|
+
function isItemRewardPromotionDiscountItem(item) {
|
|
123
|
+
var _item$metadata, _item$metadata2;
|
|
124
|
+
return (item === null || item === void 0 ? void 0 : item.type) === 'product' && (item === null || item === void 0 || (_item$metadata = item.metadata) === null || _item$metadata === void 0 ? void 0 : _item$metadata.source) === 'promotion' && (item === null || item === void 0 || (_item$metadata2 = item.metadata) === null || _item$metadata2 === void 0 ? void 0 : _item$metadata2.actionType) === ITEM_REWARD;
|
|
125
|
+
}
|
|
126
|
+
function isManagedPromotionDiscountItem(item) {
|
|
127
|
+
if ((item === null || item === void 0 ? void 0 : item.type) === 'promotion') return true;
|
|
128
|
+
return isItemRewardPromotionDiscountItem(item);
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
/**
|
|
132
|
+
* 判断商品行在本轮评估前是否已享受促销。
|
|
133
|
+
*
|
|
134
|
+
* `_promotion` 仅存在于当前运行时;订单保存后会被裁剪,因此编辑态需通过
|
|
135
|
+
* ITEM_REWARD 写入的受管商品折扣恢复上一轮状态。
|
|
136
|
+
*/
|
|
137
|
+
function wasInPromotionBeforeEvaluation(item) {
|
|
138
|
+
var _item$metadata3;
|
|
139
|
+
if ((item === null || item === void 0 || (_item$metadata3 = item.metadata) === null || _item$metadata3 === void 0 || (_item$metadata3 = _item$metadata3._promotion) === null || _item$metadata3 === void 0 ? void 0 : _item$metadata3.inPromotion) === true) return true;
|
|
140
|
+
return Array.isArray(item === null || item === void 0 ? void 0 : item.discount_list) && item.discount_list.some(isItemRewardPromotionDiscountItem);
|
|
141
|
+
}
|
|
119
142
|
|
|
120
143
|
/**
|
|
121
|
-
* 写入/清除促销 discount_list
|
|
144
|
+
* 写入/清除促销 discount_list。
|
|
122
145
|
*
|
|
123
146
|
* applyDiscount → applyProductDiscountPrices 会从 source_product_price 减去 discount_list 合计
|
|
124
147
|
* 重算 main_product_selling_price;保留券前 source 时必须同步写入促销差额,否则会还原成原价。
|
|
125
148
|
*
|
|
149
|
+
* ITEM_REWARD 使用 type=product,复用商品级折扣排他规则,避免客户折扣继续叠加到奖励商品行。
|
|
150
|
+
*
|
|
126
151
|
* @example
|
|
127
152
|
* updatePromotionDiscountList(line, { title: '2 items for $10', amount: '17.00', original_amount: '22.00', fixed_amount: '17.00' });
|
|
128
153
|
*/
|
|
129
|
-
function updatePromotionDiscountList(item, promotionDiscount) {
|
|
154
|
+
function updatePromotionDiscountList(item, promotionDiscount, options) {
|
|
130
155
|
var discountList = Array.isArray(item.discount_list) ? _toConsumableArray(item.discount_list) : [];
|
|
131
156
|
discountList = discountList.filter(function (d) {
|
|
132
|
-
return (d
|
|
157
|
+
return !isManagedPromotionDiscountItem(d);
|
|
133
158
|
});
|
|
134
159
|
if (promotionDiscount) {
|
|
135
|
-
|
|
136
|
-
|
|
160
|
+
var discountType = (options === null || options === void 0 ? void 0 : options.discountType) || 'promotion';
|
|
161
|
+
discountList.push(_objectSpread({
|
|
162
|
+
type: discountType,
|
|
137
163
|
amount: promotionDiscount.amount,
|
|
138
164
|
discount: {
|
|
139
165
|
original_amount: promotionDiscount.original_amount,
|
|
@@ -141,7 +167,12 @@ function updatePromotionDiscountList(item, promotionDiscount) {
|
|
|
141
167
|
title: promotionDiscount.title,
|
|
142
168
|
resource_id: ''
|
|
143
169
|
}
|
|
144
|
-
}
|
|
170
|
+
}, discountType === 'product' ? {
|
|
171
|
+
metadata: {
|
|
172
|
+
source: 'promotion',
|
|
173
|
+
actionType: (options === null || options === void 0 ? void 0 : options.actionType) || ITEM_REWARD
|
|
174
|
+
}
|
|
175
|
+
} : {}));
|
|
145
176
|
}
|
|
146
177
|
if (discountList.length > 0) {
|
|
147
178
|
item.discount_list = discountList;
|
|
@@ -149,11 +180,19 @@ function updatePromotionDiscountList(item, promotionDiscount) {
|
|
|
149
180
|
delete item.discount_list;
|
|
150
181
|
}
|
|
151
182
|
}
|
|
152
|
-
|
|
153
|
-
var
|
|
183
|
+
function evaluatorHasActionType(evaluator, actionType) {
|
|
184
|
+
var _evaluator$getStrateg;
|
|
185
|
+
var configs = evaluator === null || evaluator === void 0 || (_evaluator$getStrateg = evaluator.getStrategyConfigs) === null || _evaluator$getStrateg === void 0 ? void 0 : _evaluator$getStrateg.call(evaluator);
|
|
186
|
+
if (!Array.isArray(configs)) return false;
|
|
187
|
+
return configs.some(function (config) {
|
|
188
|
+
return ((config === null || config === void 0 ? void 0 : config.actions) || []).some(function (action) {
|
|
189
|
+
return (action === null || action === void 0 ? void 0 : action.type) === actionType;
|
|
190
|
+
});
|
|
191
|
+
});
|
|
192
|
+
}
|
|
154
193
|
|
|
155
194
|
/**
|
|
156
|
-
* 将促销单价写入 OrderProduct(含 metadata 三字段 +
|
|
195
|
+
* 将促销单价写入 OrderProduct(含 metadata 三字段 + 行内折扣)。
|
|
157
196
|
*
|
|
158
197
|
* @example
|
|
159
198
|
* applyPromoUnitPriceToLine(newItem, { promoUnitPrice: '5.00', originalBasePrice: 1, strategyTitle: '2 for 10' });
|
|
@@ -184,6 +223,9 @@ function applyPromoUnitPriceToLine(item, input) {
|
|
|
184
223
|
amount: discountAmount,
|
|
185
224
|
original_amount: catalogSource,
|
|
186
225
|
fixed_amount: discountAmount
|
|
226
|
+
}, {
|
|
227
|
+
actionType: input.actionType,
|
|
228
|
+
discountType: input.actionType === ITEM_REWARD ? 'product' : 'promotion'
|
|
187
229
|
});
|
|
188
230
|
} else {
|
|
189
231
|
updatePromotionDiscountList(item, null);
|
|
@@ -471,11 +513,11 @@ function getProductBundleForEvaluator(product) {
|
|
|
471
513
|
* // => 单行 num=4,清除 _promotion 后重新评估
|
|
472
514
|
*/
|
|
473
515
|
export function buildConsolidateKeyForPromotion(item) {
|
|
474
|
-
var _item$booking_uid, _item$
|
|
516
|
+
var _item$booking_uid, _item$metadata4, _item$order_detail_id, _item$product_variant3;
|
|
475
517
|
var fingerprint = buildProductLineFingerprint(getProductSkuOptions(item), item.product_bundle);
|
|
476
518
|
var noteSignature = getProductLineNoteSignature(item);
|
|
477
519
|
var lineMergeBoundary = getPromotionLineMergeBoundary(item);
|
|
478
|
-
var bookingUid = (_item$booking_uid = item === null || item === void 0 ? void 0 : item.booking_uid) !== null && _item$booking_uid !== void 0 ? _item$booking_uid : item === null || item === void 0 || (_item$
|
|
520
|
+
var bookingUid = (_item$booking_uid = item === null || item === void 0 ? void 0 : item.booking_uid) !== null && _item$booking_uid !== void 0 ? _item$booking_uid : item === null || item === void 0 || (_item$metadata4 = item.metadata) === null || _item$metadata4 === void 0 ? void 0 : _item$metadata4.booking_uid;
|
|
479
521
|
var orderDetailId = (_item$order_detail_id = item === null || item === void 0 ? void 0 : item.order_detail_id) !== null && _item$order_detail_id !== void 0 ? _item$order_detail_id : item === null || item === void 0 ? void 0 : item.orderDetailId;
|
|
480
522
|
if (orderDetailId !== undefined && orderDetailId !== null && orderDetailId !== '') {
|
|
481
523
|
var _item$product_variant;
|
|
@@ -496,12 +538,11 @@ function consolidateMainProductsForPromotion(entries) {
|
|
|
496
538
|
_step5;
|
|
497
539
|
try {
|
|
498
540
|
for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
|
|
499
|
-
var _item$metadata2;
|
|
500
541
|
var _step5$value = _step5.value,
|
|
501
542
|
item = _step5$value.item,
|
|
502
543
|
originalListIndex = _step5$value.originalListIndex;
|
|
503
544
|
var key = buildConsolidateKeyForPromotion(item);
|
|
504
|
-
var wasInPromotion = (item
|
|
545
|
+
var wasInPromotion = wasInPromotionBeforeEvaluation(item);
|
|
505
546
|
var existing = groups.get(key);
|
|
506
547
|
if (!existing) {
|
|
507
548
|
var mergedItem = cloneDeep(item);
|
|
@@ -598,6 +639,9 @@ function splitXItemsPromoLinesByGroup(lines, strategyActionMap) {
|
|
|
598
639
|
function generateNumericId() {
|
|
599
640
|
return Math.floor(Math.random() * 1000000000) + Date.now();
|
|
600
641
|
}
|
|
642
|
+
function isBookingEditProductLine(product) {
|
|
643
|
+
return (product === null || product === void 0 ? void 0 : product.booking_id) !== undefined && (product === null || product === void 0 ? void 0 : product.booking_id) !== null && product.booking_id !== 0 && product.booking_id !== '0';
|
|
644
|
+
}
|
|
601
645
|
|
|
602
646
|
/**
|
|
603
647
|
* 把 OrderProduct 转成 evaluator 的 PromotionProduct(仅评估期使用)。
|
|
@@ -618,6 +662,7 @@ function convertToPromotionProduct(product, index) {
|
|
|
618
662
|
price: getOrderProductOriginalPriceForPromotion(product),
|
|
619
663
|
quantity: Number((_product$num = product === null || product === void 0 ? void 0 : product.num) !== null && _product$num !== void 0 ? _product$num : 1) || 1,
|
|
620
664
|
bundle: getProductBundleForEvaluator(product),
|
|
665
|
+
_promotionOnlyForItemReward: isBookingEditProductLine(product),
|
|
621
666
|
_originalItem: originalItem,
|
|
622
667
|
_originalId: getOrderProductUid(product),
|
|
623
668
|
_originalIndex: index
|
|
@@ -825,6 +870,9 @@ export function resolveStrategyRequiredQuantity(matched) {
|
|
|
825
870
|
if (matched.actionType === 'BUY_X_GET_Y_FREE') {
|
|
826
871
|
return Number(detail.buyQuantity) || 1;
|
|
827
872
|
}
|
|
873
|
+
if (matched.actionType === 'ITEM_REWARD') {
|
|
874
|
+
return Number(detail.triggerQuantity) || 1;
|
|
875
|
+
}
|
|
828
876
|
return 1;
|
|
829
877
|
}
|
|
830
878
|
|
|
@@ -984,7 +1032,8 @@ export function appendPromotionTags(products, evaluator) {
|
|
|
984
1032
|
* 处理购物车的促销计算与赠品差异化。
|
|
985
1033
|
*
|
|
986
1034
|
* 流程:
|
|
987
|
-
* 1. 分离 main / gift / edit-product
|
|
1035
|
+
* 1. 分离 main / gift / edit-product 三类(普通促销下带 `booking_id` 的编辑态商品不参与;
|
|
1036
|
+
* 配置 ITEM_REWARD 时,编辑态商品也参与商品奖励重算)
|
|
988
1037
|
* 2. 转 PromotionProduct 喂评估器 → 拿到 `evaluateCartWithPricing` 与 `getProductsApplicableStrategies`
|
|
989
1038
|
* 3. 把 PricedProduct 映射回 OrderProduct 形态:
|
|
990
1039
|
* - 参与促销的,写 `metadata._promotion` + 调整 `selling_price` / `main_product_selling_price`
|
|
@@ -1014,6 +1063,7 @@ export function processCartPromotion(list, evaluator, options) {
|
|
|
1014
1063
|
if (!list || list.length === 0 || !evaluator) return empty;
|
|
1015
1064
|
|
|
1016
1065
|
// 0. 分类
|
|
1066
|
+
var shouldIncludeEditProductsForItemReward = evaluatorHasActionType(evaluator, ITEM_REWARD);
|
|
1017
1067
|
var mainProductsWithIndex = [];
|
|
1018
1068
|
var existingGiftsWithIndex = [];
|
|
1019
1069
|
var editProductsWithIndex = [];
|
|
@@ -1030,11 +1080,18 @@ export function processCartPromotion(list, evaluator, options) {
|
|
|
1030
1080
|
item: item,
|
|
1031
1081
|
originalListIndex: i
|
|
1032
1082
|
});
|
|
1033
|
-
} else if ((item
|
|
1034
|
-
|
|
1035
|
-
|
|
1036
|
-
|
|
1037
|
-
|
|
1083
|
+
} else if (isBookingEditProductLine(item)) {
|
|
1084
|
+
if (shouldIncludeEditProductsForItemReward) {
|
|
1085
|
+
mainProductsWithIndex.push({
|
|
1086
|
+
item: item,
|
|
1087
|
+
originalListIndex: i
|
|
1088
|
+
});
|
|
1089
|
+
} else {
|
|
1090
|
+
editProductsWithIndex.push({
|
|
1091
|
+
item: item,
|
|
1092
|
+
originalListIndex: i
|
|
1093
|
+
});
|
|
1094
|
+
}
|
|
1038
1095
|
} else {
|
|
1039
1096
|
mainProductsWithIndex.push({
|
|
1040
1097
|
item: item,
|
|
@@ -1089,16 +1146,17 @@ export function processCartPromotion(list, evaluator, options) {
|
|
|
1089
1146
|
var promotionProducts = [];
|
|
1090
1147
|
var originalItemMap = new Map();
|
|
1091
1148
|
var productsForStrategies = consolidatedMainProductsWithIndex.map(function (_ref16, i) {
|
|
1092
|
-
var _item$product_id, _item$product_variant5, _item$
|
|
1149
|
+
var _item$product_id, _item$product_variant5, _item$metadata5, _item$num;
|
|
1093
1150
|
var item = _ref16.item;
|
|
1094
1151
|
return {
|
|
1095
1152
|
id: i,
|
|
1096
1153
|
product_id: Number((_item$product_id = item === null || item === void 0 ? void 0 : item.product_id) !== null && _item$product_id !== void 0 ? _item$product_id : 0) || 0,
|
|
1097
1154
|
product_variant_id: Number((_item$product_variant5 = item === null || item === void 0 ? void 0 : item.product_variant_id) !== null && _item$product_variant5 !== void 0 ? _item$product_variant5 : 0) || 0,
|
|
1098
|
-
name: (item === null || item === void 0 || (_item$
|
|
1155
|
+
name: (item === null || item === void 0 || (_item$metadata5 = item.metadata) === null || _item$metadata5 === void 0 ? void 0 : _item$metadata5.product_name) || (item === null || item === void 0 ? void 0 : item.title) || '',
|
|
1099
1156
|
price: getOrderProductBasePrice(item),
|
|
1100
1157
|
quantity: Number((_item$num = item === null || item === void 0 ? void 0 : item.num) !== null && _item$num !== void 0 ? _item$num : 1) || 1,
|
|
1101
|
-
bundle: getProductBundleForEvaluator(item)
|
|
1158
|
+
bundle: getProductBundleForEvaluator(item),
|
|
1159
|
+
_promotionOnlyForItemReward: isBookingEditProductLine(item)
|
|
1102
1160
|
};
|
|
1103
1161
|
});
|
|
1104
1162
|
for (var _i = 0; _i < consolidatedMainProductsWithIndex.length; _i++) {
|
|
@@ -1206,7 +1264,7 @@ export function processCartPromotion(list, evaluator, options) {
|
|
|
1206
1264
|
_step20;
|
|
1207
1265
|
try {
|
|
1208
1266
|
for (_iterator20.s(); !(_step20 = _iterator20.n()).done;) {
|
|
1209
|
-
var _priced$originalId2, _priced$product_id, _originalItem$product
|
|
1267
|
+
var _priced$originalId2, _priced$product_id, _originalItem$product;
|
|
1210
1268
|
var _priced = _step20.value;
|
|
1211
1269
|
var rawSourceId = (_priced$originalId2 = _priced.originalId) !== null && _priced$originalId2 !== void 0 ? _priced$originalId2 : _priced.id;
|
|
1212
1270
|
var _sourceId = Number(rawSourceId);
|
|
@@ -1225,7 +1283,7 @@ export function processCartPromotion(list, evaluator, options) {
|
|
|
1225
1283
|
newItem._sourceCartNum = sourceCartNum;
|
|
1226
1284
|
|
|
1227
1285
|
// 清掉历史促销字段
|
|
1228
|
-
var wasInPromotion = (
|
|
1286
|
+
var wasInPromotion = wasInPromotionBeforeEvaluation(originalItem) || originalItem._wasInPromotionBeforeConsolidate === true;
|
|
1229
1287
|
delete metadata._promotion;
|
|
1230
1288
|
if (Array.isArray(newItem.product_bundle)) {
|
|
1231
1289
|
var _iterator23 = _createForOfIteratorHelper(newItem.product_bundle),
|
|
@@ -1246,12 +1304,13 @@ export function processCartPromotion(list, evaluator, options) {
|
|
|
1246
1304
|
var priceUnchangedPromo = _priced.inPromotion && Number(_priced.finalPrice) === Number(originalBasePrice);
|
|
1247
1305
|
if (shouldModifyPrice) {
|
|
1248
1306
|
if (_priced.inPromotion && !priceUnchangedPromo) {
|
|
1249
|
-
var _priced$strategyMetad;
|
|
1307
|
+
var _priced$strategyMetad, _strategyActionMap$ge;
|
|
1250
1308
|
var promoUnitPrice = new Decimal(_priced.finalPrice).toDecimalPlaces(2).toFixed(2);
|
|
1251
1309
|
applyPromoUnitPriceToLine(newItem, {
|
|
1252
1310
|
promoUnitPrice: promoUnitPrice,
|
|
1253
1311
|
originalBasePrice: originalBasePrice,
|
|
1254
|
-
strategyTitle: (_priced$strategyMetad = _priced.strategyMetadata) === null || _priced$strategyMetad === void 0 ? void 0 : _priced$strategyMetad.name
|
|
1312
|
+
strategyTitle: (_priced$strategyMetad = _priced.strategyMetadata) === null || _priced$strategyMetad === void 0 ? void 0 : _priced$strategyMetad.name,
|
|
1313
|
+
actionType: _priced.strategyId ? (_strategyActionMap$ge = strategyActionMap.get(_priced.strategyId)) === null || _strategyActionMap$ge === void 0 ? void 0 : _strategyActionMap$ge.actionType : undefined
|
|
1255
1314
|
});
|
|
1256
1315
|
} else {
|
|
1257
1316
|
// 撤销上一轮促销:还原 selling_price 到 main_product_original_price 派生值
|
|
@@ -311,7 +311,7 @@ export declare class BookingByStepImpl extends BaseModule implements Module {
|
|
|
311
311
|
date: string;
|
|
312
312
|
status: string;
|
|
313
313
|
week: string;
|
|
314
|
-
weekNum: 0 |
|
|
314
|
+
weekNum: 0 | 2 | 1 | 5 | 4 | 3 | 6;
|
|
315
315
|
}[]>;
|
|
316
316
|
submitTimeSlot(timeSlots: TimeSliceItem): void;
|
|
317
317
|
private getScheduleDataByIds;
|
|
@@ -46,6 +46,8 @@ export declare class BookingTicketImpl extends BaseSalesImpl implements Module {
|
|
|
46
46
|
private getIdGeneratorPlugin;
|
|
47
47
|
private loadOpenDataConfig;
|
|
48
48
|
getOpenData(): Promise<OpenDataConfig | null>;
|
|
49
|
+
/** 清除店铺级 OpenData;下一次 getOpenData 时会重新拉取。 */
|
|
50
|
+
clearOpenDataCache(): void;
|
|
49
51
|
private getShortNumberOrDeviceId;
|
|
50
52
|
private configureIdGeneratorFromOpenData;
|
|
51
53
|
private normalizePositiveInteger;
|
|
@@ -322,7 +324,7 @@ export declare class BookingTicketImpl extends BaseSalesImpl implements Module {
|
|
|
322
324
|
* 获取当前的客户搜索条件
|
|
323
325
|
* @returns 当前搜索条件
|
|
324
326
|
*/
|
|
325
|
-
getCurrentCustomerSearchParams(): Omit<import("../../modules").ShopGetCustomerListParams, "
|
|
327
|
+
getCurrentCustomerSearchParams(): Omit<import("../../modules").ShopGetCustomerListParams, "skip" | "num">;
|
|
326
328
|
/**
|
|
327
329
|
* 获取客户列表状态(包含滚动加载相关状态)
|
|
328
330
|
* @returns 客户状态
|
|
@@ -337,11 +337,10 @@ export var BookingTicketImpl = /*#__PURE__*/function (_BaseSalesImpl) {
|
|
|
337
337
|
key: "getOpenData",
|
|
338
338
|
value: function () {
|
|
339
339
|
var _getOpenData = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {
|
|
340
|
-
var _this$store$openData;
|
|
341
340
|
return _regeneratorRuntime().wrap(function _callee3$(_context3) {
|
|
342
341
|
while (1) switch (_context3.prev = _context3.next) {
|
|
343
342
|
case 0:
|
|
344
|
-
return _context3.abrupt("return",
|
|
343
|
+
return _context3.abrupt("return", this.loadOpenDataConfig());
|
|
345
344
|
case 1:
|
|
346
345
|
case "end":
|
|
347
346
|
return _context3.stop();
|
|
@@ -352,7 +351,15 @@ export var BookingTicketImpl = /*#__PURE__*/function (_BaseSalesImpl) {
|
|
|
352
351
|
return _getOpenData.apply(this, arguments);
|
|
353
352
|
}
|
|
354
353
|
return getOpenData;
|
|
355
|
-
}()
|
|
354
|
+
}() /** 清除店铺级 OpenData;下一次 getOpenData 时会重新拉取。 */
|
|
355
|
+
}, {
|
|
356
|
+
key: "clearOpenDataCache",
|
|
357
|
+
value: function clearOpenDataCache() {
|
|
358
|
+
var _this$store$openData;
|
|
359
|
+
this.loadOpenDataConfigInFlight = null;
|
|
360
|
+
this.otherParams.openData = null;
|
|
361
|
+
(_this$store$openData = this.store.openData) === null || _this$store$openData === void 0 || _this$store$openData.clearCache();
|
|
362
|
+
}
|
|
356
363
|
}, {
|
|
357
364
|
key: "getShortNumberOrDeviceId",
|
|
358
365
|
value: function () {
|
|
@@ -397,49 +404,52 @@ export var BookingTicketImpl = /*#__PURE__*/function (_BaseSalesImpl) {
|
|
|
397
404
|
return _regeneratorRuntime().wrap(function _callee5$(_context5) {
|
|
398
405
|
while (1) switch (_context5.prev = _context5.next) {
|
|
399
406
|
case 0:
|
|
407
|
+
// 业务码切换或配置失败时不能复用上一次初始化的短号。
|
|
408
|
+
this.setPaymentNumberDevicePrefix(null);
|
|
400
409
|
openDataConfig = null;
|
|
401
|
-
_context5.prev =
|
|
402
|
-
_context5.next =
|
|
410
|
+
_context5.prev = 2;
|
|
411
|
+
_context5.next = 5;
|
|
403
412
|
return this.loadOpenDataConfig();
|
|
404
|
-
case
|
|
413
|
+
case 5:
|
|
405
414
|
openDataConfig = _context5.sent;
|
|
406
|
-
_context5.next =
|
|
415
|
+
_context5.next = 12;
|
|
407
416
|
break;
|
|
408
|
-
case
|
|
409
|
-
_context5.prev =
|
|
410
|
-
_context5.t0 = _context5["catch"](
|
|
417
|
+
case 8:
|
|
418
|
+
_context5.prev = 8;
|
|
419
|
+
_context5.t0 = _context5["catch"](2);
|
|
411
420
|
console.warn('[BookingTicket] OpenData 配置加载失败,跳过 idGenerator 配置', _context5.t0);
|
|
412
421
|
return _context5.abrupt("return");
|
|
413
|
-
case
|
|
422
|
+
case 12:
|
|
414
423
|
// if (!openDataConfig) return;
|
|
415
424
|
idGenerator = this.getIdGeneratorPlugin();
|
|
416
425
|
if (idGenerator !== null && idGenerator !== void 0 && idGenerator.configure) {
|
|
417
|
-
_context5.next =
|
|
426
|
+
_context5.next = 16;
|
|
418
427
|
break;
|
|
419
428
|
}
|
|
420
429
|
console.warn('[BookingTicket] idGenerator 插件不可用,跳过配置');
|
|
421
430
|
return _context5.abrupt("return");
|
|
422
|
-
case
|
|
431
|
+
case 16:
|
|
423
432
|
receiptSequenceLength = this.normalizePositiveInteger((_openDataConfig = openDataConfig) === null || _openDataConfig === void 0 ? void 0 : _openDataConfig['sale.short_number_digits'], 5);
|
|
424
433
|
receiptSequenceStart = this.normalizePositiveInteger((_openDataConfig2 = openDataConfig) === null || _openDataConfig2 === void 0 ? void 0 : _openDataConfig2['sale.short_number_start_number'], 1);
|
|
425
434
|
prefix = this.normalizeIdPrefix((_openDataConfig3 = openDataConfig) === null || _openDataConfig3 === void 0 ? void 0 : _openDataConfig3['sale.short_number_prefix'], '');
|
|
426
435
|
shopOrderPrefix = this.normalizeIdPrefix((_openDataConfig4 = openDataConfig) === null || _openDataConfig4 === void 0 ? void 0 : _openDataConfig4['sale.sale_number_prefix'], '');
|
|
427
436
|
resetReceiptSequenceDaily = typeof ((_openDataConfig5 = openDataConfig) === null || _openDataConfig5 === void 0 ? void 0 : _openDataConfig5['sale.short_number_daily_reset']) === 'boolean' ? (_openDataConfig6 = openDataConfig) === null || _openDataConfig6 === void 0 ? void 0 : _openDataConfig6['sale.short_number_daily_reset'] : false;
|
|
428
437
|
operatingDayBoundary = this.getAppData('operating_day_boundary');
|
|
429
|
-
_context5.next =
|
|
438
|
+
_context5.next = 24;
|
|
430
439
|
return this.getShortNumberOrDeviceId();
|
|
431
|
-
case
|
|
440
|
+
case 24:
|
|
432
441
|
deviceId = _context5.sent;
|
|
442
|
+
this.setPaymentNumberDevicePrefix(deviceId);
|
|
433
443
|
businessCode = this.getBookingTicketBusinessCode();
|
|
434
444
|
if (businessCode) {
|
|
435
|
-
_context5.next =
|
|
445
|
+
_context5.next = 30;
|
|
436
446
|
break;
|
|
437
447
|
}
|
|
438
448
|
console.warn('[BookingTicket] businessCode 缺失,跳过 idGenerator 配置');
|
|
439
449
|
return _context5.abrupt("return");
|
|
440
|
-
case
|
|
441
|
-
_context5.prev =
|
|
442
|
-
_context5.next =
|
|
450
|
+
case 30:
|
|
451
|
+
_context5.prev = 30;
|
|
452
|
+
_context5.next = 33;
|
|
443
453
|
return idGenerator.configure({
|
|
444
454
|
biz: businessCode,
|
|
445
455
|
config: {
|
|
@@ -454,18 +464,18 @@ export var BookingTicketImpl = /*#__PURE__*/function (_BaseSalesImpl) {
|
|
|
454
464
|
shopOrderPrefix: shopOrderPrefix
|
|
455
465
|
}
|
|
456
466
|
});
|
|
457
|
-
case 31:
|
|
458
|
-
_context5.next = 36;
|
|
459
|
-
break;
|
|
460
467
|
case 33:
|
|
461
|
-
_context5.
|
|
462
|
-
|
|
468
|
+
_context5.next = 38;
|
|
469
|
+
break;
|
|
470
|
+
case 35:
|
|
471
|
+
_context5.prev = 35;
|
|
472
|
+
_context5.t1 = _context5["catch"](30);
|
|
463
473
|
console.warn('[BookingTicket] idGenerator 配置失败', _context5.t1);
|
|
464
|
-
case
|
|
474
|
+
case 38:
|
|
465
475
|
case "end":
|
|
466
476
|
return _context5.stop();
|
|
467
477
|
}
|
|
468
|
-
}, _callee5, this, [[
|
|
478
|
+
}, _callee5, this, [[2, 8], [30, 35]]);
|
|
469
479
|
}));
|
|
470
480
|
function configureIdGeneratorFromOpenData() {
|
|
471
481
|
return _configureIdGeneratorFromOpenData.apply(this, arguments);
|
|
@@ -2602,16 +2612,18 @@ export var BookingTicketImpl = /*#__PURE__*/function (_BaseSalesImpl) {
|
|
|
2602
2612
|
while (1) switch (_context31.prev = _context31.next) {
|
|
2603
2613
|
case 0:
|
|
2604
2614
|
_ref19 = _args31.length > 1 && _args31[1] !== undefined ? _args31[1] : {}, _ref19$cover = _ref19.cover, cover = _ref19$cover === void 0 ? false : _ref19$cover;
|
|
2605
|
-
|
|
2615
|
+
_context31.next = 3;
|
|
2616
|
+
return _get(_getPrototypeOf(BookingTicketImpl.prototype), "setOtherParams", this).call(this, params, {
|
|
2606
2617
|
cover: cover
|
|
2607
2618
|
});
|
|
2608
|
-
|
|
2609
|
-
|
|
2619
|
+
case 3:
|
|
2620
|
+
if (!((params === null || params === void 0 ? void 0 : params.businessCode) !== undefined || (params === null || params === void 0 ? void 0 : params.business_code) !== undefined)) {
|
|
2621
|
+
_context31.next = 6;
|
|
2610
2622
|
break;
|
|
2611
2623
|
}
|
|
2612
|
-
_context31.next =
|
|
2624
|
+
_context31.next = 6;
|
|
2613
2625
|
return this.configureIdGeneratorFromOpenData();
|
|
2614
|
-
case
|
|
2626
|
+
case 6:
|
|
2615
2627
|
case "end":
|
|
2616
2628
|
return _context31.stop();
|
|
2617
2629
|
}
|
|
@@ -41,6 +41,10 @@ import { composeLinePrice, createUuidV4, getProductSkuOptions, normalizeSubmitCo
|
|
|
41
41
|
import dayjs from 'dayjs';
|
|
42
42
|
import { ItemRuleEvaluator } from "../../model/strategy/adapter/itemRule";
|
|
43
43
|
export * from "./types";
|
|
44
|
+
function isItemRewardProductDiscount(discount) {
|
|
45
|
+
var _discount$metadata, _discount$metadata2;
|
|
46
|
+
return (discount === null || discount === void 0 ? void 0 : discount.type) === 'product' && (discount === null || discount === void 0 || (_discount$metadata = discount.metadata) === null || _discount$metadata === void 0 ? void 0 : _discount$metadata.source) === 'promotion' && (discount === null || discount === void 0 || (_discount$metadata2 = discount.metadata) === null || _discount$metadata2 === void 0 ? void 0 : _discount$metadata2.actionType) === 'ITEM_REWARD';
|
|
47
|
+
}
|
|
44
48
|
export var ScanOrderImpl = /*#__PURE__*/function (_BaseModule) {
|
|
45
49
|
_inherits(ScanOrderImpl, _BaseModule);
|
|
46
50
|
var _super = _createSuper(ScanOrderImpl);
|
|
@@ -1177,7 +1181,7 @@ export var ScanOrderImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
1177
1181
|
_iterator3.s();
|
|
1178
1182
|
case 19:
|
|
1179
1183
|
if ((_step3 = _iterator3.n()).done) {
|
|
1180
|
-
_context15.next =
|
|
1184
|
+
_context15.next = 36;
|
|
1181
1185
|
break;
|
|
1182
1186
|
}
|
|
1183
1187
|
product = _step3.value;
|
|
@@ -1185,8 +1189,15 @@ export var ScanOrderImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
1185
1189
|
_context15.next = 23;
|
|
1186
1190
|
break;
|
|
1187
1191
|
}
|
|
1188
|
-
return _context15.abrupt("continue",
|
|
1192
|
+
return _context15.abrupt("continue", 34);
|
|
1189
1193
|
case 23:
|
|
1194
|
+
if (!(product.discount_list || []).some(isItemRewardProductDiscount)) {
|
|
1195
|
+
_context15.next = 26;
|
|
1196
|
+
break;
|
|
1197
|
+
}
|
|
1198
|
+
product.discount_list = (product.discount_list || []).filter(isItemRewardProductDiscount);
|
|
1199
|
+
return _context15.abrupt("continue", 34);
|
|
1200
|
+
case 26:
|
|
1190
1201
|
product.discount_list = (product.discount_list || []).filter(function (pd) {
|
|
1191
1202
|
var _pd$discount$resource, _pd$discount;
|
|
1192
1203
|
var rid = (_pd$discount$resource = (_pd$discount = pd.discount) === null || _pd$discount === void 0 ? void 0 : _pd$discount.resource_id) !== null && _pd$discount$resource !== void 0 ? _pd$discount$resource : pd.id;
|
|
@@ -1210,47 +1221,47 @@ export var ScanOrderImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
1210
1221
|
mainPrice: newMainSellingPrice,
|
|
1211
1222
|
bundle: product.product_bundle
|
|
1212
1223
|
});
|
|
1213
|
-
case
|
|
1224
|
+
case 34:
|
|
1214
1225
|
_context15.next = 19;
|
|
1215
1226
|
break;
|
|
1216
|
-
case
|
|
1217
|
-
_context15.next =
|
|
1227
|
+
case 36:
|
|
1228
|
+
_context15.next = 41;
|
|
1218
1229
|
break;
|
|
1219
|
-
case 35:
|
|
1220
|
-
_context15.prev = 35;
|
|
1221
|
-
_context15.t0 = _context15["catch"](17);
|
|
1222
|
-
_iterator3.e(_context15.t0);
|
|
1223
1230
|
case 38:
|
|
1224
1231
|
_context15.prev = 38;
|
|
1225
|
-
|
|
1226
|
-
|
|
1232
|
+
_context15.t0 = _context15["catch"](17);
|
|
1233
|
+
_iterator3.e(_context15.t0);
|
|
1227
1234
|
case 41:
|
|
1235
|
+
_context15.prev = 41;
|
|
1236
|
+
_iterator3.f();
|
|
1237
|
+
return _context15.finish(41);
|
|
1238
|
+
case 44:
|
|
1228
1239
|
OrderModule.populateSavedAmounts(tempOrder.products, nextDiscountList);
|
|
1229
|
-
_context15.next =
|
|
1240
|
+
_context15.next = 47;
|
|
1230
1241
|
return discountModule === null || discountModule === void 0 ? void 0 : discountModule.setDiscountList(nextDiscountList);
|
|
1231
|
-
case
|
|
1242
|
+
case 47:
|
|
1232
1243
|
tempOrder.discount_list = (nextDiscountList || []).filter(function (d) {
|
|
1233
1244
|
return d.isSelected;
|
|
1234
1245
|
});
|
|
1235
|
-
_context15.next =
|
|
1246
|
+
_context15.next = 50;
|
|
1236
1247
|
return this.store.order.recalculateSummary({
|
|
1237
1248
|
createIfMissing: true
|
|
1238
1249
|
});
|
|
1239
|
-
case
|
|
1250
|
+
case 50:
|
|
1240
1251
|
this.store.order.persistTempOrder();
|
|
1241
1252
|
this.logMethodSuccess('setDiscountSelected', params);
|
|
1242
|
-
_context15.next =
|
|
1253
|
+
_context15.next = 58;
|
|
1243
1254
|
break;
|
|
1244
|
-
case
|
|
1245
|
-
_context15.prev =
|
|
1255
|
+
case 54:
|
|
1256
|
+
_context15.prev = 54;
|
|
1246
1257
|
_context15.t1 = _context15["catch"](1);
|
|
1247
1258
|
this.logMethodError('setDiscountSelected', _context15.t1);
|
|
1248
1259
|
throw _context15.t1;
|
|
1249
|
-
case
|
|
1260
|
+
case 58:
|
|
1250
1261
|
case "end":
|
|
1251
1262
|
return _context15.stop();
|
|
1252
1263
|
}
|
|
1253
|
-
}, _callee15, this, [[1,
|
|
1264
|
+
}, _callee15, this, [[1, 54], [17, 38, 41, 44]]);
|
|
1254
1265
|
}));
|
|
1255
1266
|
function setDiscountSelected(_x8) {
|
|
1256
1267
|
return _setDiscountSelected.apply(this, arguments);
|