@pisell/pisellos 2.1.127 → 2.1.128
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/modules/Order/index.js +5 -2
- package/dist/modules/Order/utils.d.ts +1 -1
- package/dist/modules/Order/utils.js +1 -1
- package/dist/solution/ScanOrder/index.js +11 -9
- package/dist/solution/VenueBooking/index.js +9 -7
- package/lib/model/strategy/adapter/promotion/index.js +0 -49
- package/lib/modules/Order/index.js +6 -6
- package/lib/modules/Order/utils.d.ts +1 -1
- package/lib/modules/Order/utils.js +1 -1
- package/lib/solution/ScanOrder/index.js +2 -0
- package/lib/solution/VenueBooking/index.js +1 -0
- package/package.json +1 -1
|
@@ -325,9 +325,12 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
325
325
|
}, {
|
|
326
326
|
key: "applyDiscount",
|
|
327
327
|
value: function applyDiscount() {
|
|
328
|
-
var
|
|
328
|
+
var _this$store$discount6, _tempOrder$holder3, _tempOrder$holder4;
|
|
329
329
|
var tempOrder = this.store.tempOrder;
|
|
330
|
-
|
|
330
|
+
// 任意 products CRUD 后都应当重算 discount 状态;即使 products 为空,
|
|
331
|
+
// 也需要让 Rules.calcDiscount 把 DiscountModule 的 isSelected / isAvailable /
|
|
332
|
+
// appliedProductDetails / savedAmount 以及 tempOrder.discount_list 复位。
|
|
333
|
+
if (!tempOrder) return;
|
|
331
334
|
var rulesModule = this.store.rules;
|
|
332
335
|
if (!rulesModule) return;
|
|
333
336
|
var discountList = ((_this$store$discount6 = this.store.discount) === null || _this$store$discount6 === void 0 ? void 0 : _this$store$discount6.getDiscountList()) || [];
|
|
@@ -382,7 +382,7 @@ export function formatV1Product(products) {
|
|
|
382
382
|
option: product.product_option_item,
|
|
383
383
|
product_id: product.product_id,
|
|
384
384
|
product_variant_id: product.product_variant_id,
|
|
385
|
-
|
|
385
|
+
num: product.num,
|
|
386
386
|
rowKey: product.product_id,
|
|
387
387
|
session: null,
|
|
388
388
|
unique: createUuidV4()
|
|
@@ -1248,7 +1248,7 @@ export var ScanOrderImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
1248
1248
|
break;
|
|
1249
1249
|
}
|
|
1250
1250
|
sellingPrice = toPriceString((_sourceItem$price = sourceItem === null || sourceItem === void 0 ? void 0 : sourceItem.price) !== null && _sourceItem$price !== void 0 ? _sourceItem$price : sourceItem === null || sourceItem === void 0 ? void 0 : sourceItem.selling_price, '0.00');
|
|
1251
|
-
tempOrder.products.push(normalizeOrderProduct({
|
|
1251
|
+
tempOrder.products.push(normalizeOrderProduct(_objectSpread(_objectSpread({}, sourceItem), {}, {
|
|
1252
1252
|
product_id: productId,
|
|
1253
1253
|
product_variant_id: productVariantId,
|
|
1254
1254
|
num: targetQuantity,
|
|
@@ -1262,7 +1262,7 @@ export var ScanOrderImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
1262
1262
|
item_rule_prefill: true,
|
|
1263
1263
|
item_rule_id: prefillItem.ruleId
|
|
1264
1264
|
})
|
|
1265
|
-
}));
|
|
1265
|
+
})));
|
|
1266
1266
|
hasChanges = true;
|
|
1267
1267
|
return _context20.abrupt("continue", 45);
|
|
1268
1268
|
case 38:
|
|
@@ -1300,25 +1300,27 @@ export var ScanOrderImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
1300
1300
|
return _context20.finish(52);
|
|
1301
1301
|
case 55:
|
|
1302
1302
|
if (!hasChanges) {
|
|
1303
|
-
_context20.next =
|
|
1303
|
+
_context20.next = 60;
|
|
1304
1304
|
break;
|
|
1305
1305
|
}
|
|
1306
|
-
|
|
1306
|
+
// Prefill 属于 products CRUD 的一种形式:新增后让 Rules 重算,以支持自动应用可用优惠券。
|
|
1307
|
+
this.store.order.applyDiscount();
|
|
1308
|
+
_context20.next = 59;
|
|
1307
1309
|
return this.store.order.recalculateSummary({
|
|
1308
1310
|
createIfMissing: true
|
|
1309
1311
|
});
|
|
1310
|
-
case 58:
|
|
1311
|
-
this.store.order.persistTempOrder();
|
|
1312
1312
|
case 59:
|
|
1313
|
-
|
|
1313
|
+
this.store.order.persistTempOrder();
|
|
1314
|
+
case 60:
|
|
1315
|
+
_context20.next = 62;
|
|
1314
1316
|
return this.refreshItemRuleQuantityLimits();
|
|
1315
|
-
case
|
|
1317
|
+
case 62:
|
|
1316
1318
|
this.itemRulePrefillApplied = true;
|
|
1317
1319
|
this.logMethodSuccess('applyPrefillByItemRule', {
|
|
1318
1320
|
prefillCount: prefillItems.length,
|
|
1319
1321
|
hasChanges: hasChanges
|
|
1320
1322
|
});
|
|
1321
|
-
case
|
|
1323
|
+
case 64:
|
|
1322
1324
|
case "end":
|
|
1323
1325
|
return _context20.stop();
|
|
1324
1326
|
}
|
|
@@ -2747,25 +2747,27 @@ export var VenueBookingImpl = /*#__PURE__*/function (_BaseModule) {
|
|
|
2747
2747
|
return _context36.finish(50);
|
|
2748
2748
|
case 53:
|
|
2749
2749
|
if (!hasChanges) {
|
|
2750
|
-
_context36.next =
|
|
2750
|
+
_context36.next = 58;
|
|
2751
2751
|
break;
|
|
2752
2752
|
}
|
|
2753
|
-
|
|
2753
|
+
// Prefill 属于 products CRUD 的一种形式:新增后让 Rules 重算,以支持自动应用可用优惠券。
|
|
2754
|
+
this.store.order.applyDiscount();
|
|
2755
|
+
_context36.next = 57;
|
|
2754
2756
|
return this.store.order.recalculateSummary({
|
|
2755
2757
|
createIfMissing: true
|
|
2756
2758
|
});
|
|
2757
|
-
case 56:
|
|
2758
|
-
this.store.order.persistTempOrder();
|
|
2759
2759
|
case 57:
|
|
2760
|
-
|
|
2760
|
+
this.store.order.persistTempOrder();
|
|
2761
|
+
case 58:
|
|
2762
|
+
_context36.next = 60;
|
|
2761
2763
|
return this.refreshItemRuleQuantityLimits();
|
|
2762
|
-
case
|
|
2764
|
+
case 60:
|
|
2763
2765
|
this.itemRulePrefillApplied = true;
|
|
2764
2766
|
this.logMethodSuccess('applyPrefillByItemRule', {
|
|
2765
2767
|
prefillCount: prefillItems.length,
|
|
2766
2768
|
hasChanges: hasChanges
|
|
2767
2769
|
});
|
|
2768
|
-
case
|
|
2770
|
+
case 62:
|
|
2769
2771
|
case "end":
|
|
2770
2772
|
return _context36.stop();
|
|
2771
2773
|
}
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
var __create = Object.create;
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
6
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
-
var __export = (target, all) => {
|
|
8
|
-
for (var name in all)
|
|
9
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
-
};
|
|
11
|
-
var __copyProps = (to, from, except, desc) => {
|
|
12
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
-
for (let key of __getOwnPropNames(from))
|
|
14
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
-
}
|
|
17
|
-
return to;
|
|
18
|
-
};
|
|
19
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
20
|
-
// If the importer is in node compatibility mode or this is not an ESM
|
|
21
|
-
// file that has been converted to a CommonJS file using a Babel-
|
|
22
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
23
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
24
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
25
|
-
mod
|
|
26
|
-
));
|
|
27
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
28
|
-
|
|
29
|
-
// src/model/strategy/adapter/promotion/index.ts
|
|
30
|
-
var promotion_exports = {};
|
|
31
|
-
__export(promotion_exports, {
|
|
32
|
-
BUY_X_GET_Y_FREE_STRATEGY: () => import_examples.BUY_X_GET_Y_FREE_STRATEGY,
|
|
33
|
-
PromotionAdapter: () => import_adapter.PromotionAdapter,
|
|
34
|
-
PromotionEvaluator: () => import_evaluator.PromotionEvaluator,
|
|
35
|
-
X_ITEMS_FOR_Y_PRICE_STRATEGY: () => import_examples.X_ITEMS_FOR_Y_PRICE_STRATEGY,
|
|
36
|
-
default: () => import_adapter2.default
|
|
37
|
-
});
|
|
38
|
-
module.exports = __toCommonJS(promotion_exports);
|
|
39
|
-
var import_evaluator = require("./evaluator");
|
|
40
|
-
var import_adapter = require("./adapter");
|
|
41
|
-
var import_adapter2 = __toESM(require("./adapter"));
|
|
42
|
-
var import_examples = require("./examples");
|
|
43
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
44
|
-
0 && (module.exports = {
|
|
45
|
-
BUY_X_GET_Y_FREE_STRATEGY,
|
|
46
|
-
PromotionAdapter,
|
|
47
|
-
PromotionEvaluator,
|
|
48
|
-
X_ITEMS_FOR_Y_PRICE_STRATEGY
|
|
49
|
-
});
|
|
@@ -231,27 +231,27 @@ var OrderModule = class extends import_BaseModule.BaseModule {
|
|
|
231
231
|
};
|
|
232
232
|
}
|
|
233
233
|
applyDiscount() {
|
|
234
|
-
var _a, _b, _c, _d
|
|
234
|
+
var _a, _b, _c, _d;
|
|
235
235
|
const tempOrder = this.store.tempOrder;
|
|
236
|
-
if (!
|
|
236
|
+
if (!tempOrder)
|
|
237
237
|
return;
|
|
238
238
|
const rulesModule = this.store.rules;
|
|
239
239
|
if (!rulesModule)
|
|
240
240
|
return;
|
|
241
|
-
const discountList = ((
|
|
242
|
-
const holders = ((
|
|
241
|
+
const discountList = ((_a = this.store.discount) == null ? void 0 : _a.getDiscountList()) || [];
|
|
242
|
+
const holders = ((_b = tempOrder.holder) == null ? void 0 : _b.form_record_id) ? [{ form_record_id: tempOrder.holder.form_record_id }] : [];
|
|
243
243
|
const result = rulesModule.calcDiscount({
|
|
244
244
|
productList: tempOrder.products,
|
|
245
245
|
discountList,
|
|
246
246
|
holders,
|
|
247
|
-
isFormSubject: !!((
|
|
247
|
+
isFormSubject: !!((_c = tempOrder.holder) == null ? void 0 : _c.type) && tempOrder.holder.type === "form"
|
|
248
248
|
});
|
|
249
249
|
if (result == null ? void 0 : result.productList) {
|
|
250
250
|
tempOrder.products = result.productList;
|
|
251
251
|
}
|
|
252
252
|
if (result == null ? void 0 : result.discountList) {
|
|
253
253
|
OrderModule.populateSavedAmounts(result.productList || tempOrder.products, result.discountList);
|
|
254
|
-
(
|
|
254
|
+
(_d = this.store.discount) == null ? void 0 : _d.setDiscountList(result.discountList);
|
|
255
255
|
tempOrder.discount_list = result.discountList.filter((d) => d.isSelected);
|
|
256
256
|
}
|
|
257
257
|
}
|
|
@@ -364,7 +364,7 @@ function formatV1Product(products) {
|
|
|
364
364
|
option: product.product_option_item,
|
|
365
365
|
product_id: product.product_id,
|
|
366
366
|
product_variant_id: product.product_variant_id,
|
|
367
|
-
|
|
367
|
+
num: product.num,
|
|
368
368
|
rowKey: product.product_id,
|
|
369
369
|
session: null,
|
|
370
370
|
unique: createUuidV4()
|
|
@@ -707,6 +707,7 @@ var ScanOrderImpl = class extends import_BaseModule.BaseModule {
|
|
|
707
707
|
);
|
|
708
708
|
tempOrder.products.push(
|
|
709
709
|
(0, import_utils.normalizeOrderProduct)({
|
|
710
|
+
...sourceItem,
|
|
710
711
|
product_id: productId,
|
|
711
712
|
product_variant_id: productVariantId,
|
|
712
713
|
num: targetQuantity,
|
|
@@ -752,6 +753,7 @@ var ScanOrderImpl = class extends import_BaseModule.BaseModule {
|
|
|
752
753
|
}
|
|
753
754
|
}
|
|
754
755
|
if (hasChanges) {
|
|
756
|
+
this.store.order.applyDiscount();
|
|
755
757
|
await this.store.order.recalculateSummary({ createIfMissing: true });
|
|
756
758
|
this.store.order.persistTempOrder();
|
|
757
759
|
}
|
|
@@ -1541,6 +1541,7 @@ var _VenueBookingImpl = class extends import_BaseModule.BaseModule {
|
|
|
1541
1541
|
}
|
|
1542
1542
|
}
|
|
1543
1543
|
if (hasChanges) {
|
|
1544
|
+
this.store.order.applyDiscount();
|
|
1544
1545
|
await this.store.order.recalculateSummary({ createIfMissing: true });
|
|
1545
1546
|
this.store.order.persistTempOrder();
|
|
1546
1547
|
}
|