@pisell/pisellos 0.0.499 → 0.0.501
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/model/strategy/adapter/itemRule/adapter.d.ts +8 -0
- package/dist/model/strategy/adapter/itemRule/adapter.js +52 -8
- package/dist/model/strategy/adapter/itemRule/examples.d.ts +15 -0
- package/dist/model/strategy/adapter/itemRule/examples.js +68 -1
- package/dist/model/strategy/adapter/itemRule/index.d.ts +1 -1
- package/dist/model/strategy/adapter/itemRule/index.js +1 -1
- package/dist/model/strategy/adapter/itemRule/type.d.ts +20 -1
- package/dist/model/strategy/adapter/promotion/index.js +9 -0
- package/dist/modules/Order/index.d.ts +6 -0
- package/dist/modules/Order/index.js +60 -40
- package/dist/modules/Order/types.d.ts +4 -0
- package/dist/modules/Order/utils.d.ts +31 -0
- package/dist/modules/Order/utils.js +118 -13
- package/dist/modules/ProductList/index.js +2 -2
- package/dist/modules/Quotation/index.js +6 -3
- package/dist/modules/SalesSummary/types.d.ts +2 -1
- package/dist/modules/SalesSummary/utils.js +10 -10
- package/dist/modules/Schedule/utils.d.ts +1 -1
- package/dist/solution/BookingByStep/index.d.ts +2 -2
- package/dist/solution/ScanOrder/index.d.ts +7 -0
- package/dist/solution/ScanOrder/index.js +284 -67
- package/dist/solution/ScanOrder/types.d.ts +22 -5
- package/dist/solution/ScanOrder/utils.d.ts +26 -0
- package/dist/solution/ScanOrder/utils.js +191 -44
- package/dist/solution/VenueBooking/index.d.ts +14 -0
- package/dist/solution/VenueBooking/index.js +318 -144
- package/dist/solution/VenueBooking/utils/dateSummary.d.ts +1 -0
- package/dist/solution/VenueBooking/utils/dateSummary.js +6 -4
- package/dist/solution/VenueBooking/utils/slotMerge.js +1 -2
- package/lib/model/strategy/adapter/itemRule/adapter.d.ts +8 -0
- package/lib/model/strategy/adapter/itemRule/adapter.js +41 -2
- package/lib/model/strategy/adapter/itemRule/examples.d.ts +15 -0
- package/lib/model/strategy/adapter/itemRule/examples.js +47 -0
- package/lib/model/strategy/adapter/itemRule/index.d.ts +1 -1
- package/lib/model/strategy/adapter/itemRule/index.js +2 -0
- package/lib/model/strategy/adapter/itemRule/type.d.ts +20 -1
- package/lib/modules/Order/index.d.ts +6 -0
- package/lib/modules/Order/index.js +35 -37
- package/lib/modules/Order/types.d.ts +4 -0
- package/lib/modules/Order/utils.d.ts +31 -0
- package/lib/modules/Order/utils.js +97 -9
- package/lib/modules/ProductList/index.js +3 -2
- package/lib/modules/Quotation/index.js +3 -0
- package/lib/modules/SalesSummary/types.d.ts +2 -1
- package/lib/modules/SalesSummary/utils.js +2 -2
- package/lib/modules/Schedule/utils.d.ts +1 -1
- package/lib/solution/BookingByStep/index.d.ts +2 -2
- package/lib/solution/ScanOrder/index.d.ts +7 -0
- package/lib/solution/ScanOrder/index.js +162 -18
- package/lib/solution/ScanOrder/types.d.ts +22 -5
- package/lib/solution/ScanOrder/utils.d.ts +26 -0
- package/lib/solution/ScanOrder/utils.js +128 -19
- package/lib/solution/VenueBooking/index.d.ts +14 -0
- package/lib/solution/VenueBooking/index.js +156 -30
- package/lib/solution/VenueBooking/utils/dateSummary.d.ts +1 -0
- package/lib/solution/VenueBooking/utils/dateSummary.js +13 -4
- package/lib/solution/VenueBooking/utils/slotMerge.js +1 -2
- package/package.json +1 -1
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
var _excluded = ["_origin", "identity_key"],
|
|
2
2
|
_excluded2 = ["created_at", "summary", "surcharges"];
|
|
3
|
-
function
|
|
4
|
-
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; }
|
|
5
|
-
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; }
|
|
6
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
|
7
|
-
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); }
|
|
3
|
+
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; } } }; }
|
|
8
4
|
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; }
|
|
9
5
|
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; }
|
|
10
6
|
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); }
|
|
@@ -14,8 +10,75 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
|
|
|
14
10
|
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
15
11
|
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
16
12
|
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
13
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
14
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
15
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
16
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
|
17
|
+
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
17
18
|
import dayjs from "dayjs";
|
|
19
|
+
import Decimal from 'decimal.js';
|
|
18
20
|
import { createEmptySummary } from "../../solution/ScanOrder/utils";
|
|
21
|
+
/**
|
|
22
|
+
* OrderModule 默认 Rules 钩子工厂。
|
|
23
|
+
*
|
|
24
|
+
* 价格语义约定(订单域):
|
|
25
|
+
* - `selling_price`:券后单品单价(实际成交单价)。初次加购 = `original_price`;券应用后由 Rules 引擎更新。
|
|
26
|
+
* - `original_price`:券前单品单价(店铺售价)。不承载后台划线价语义。
|
|
27
|
+
* - `payment_price`:已从内部字段移除;只在出站 payload 中由 `selling_price` 派生以兼容后端。
|
|
28
|
+
*
|
|
29
|
+
* Rules 钩子契约:
|
|
30
|
+
* - `getProduct.total` = `selling_price × num`(当前成交总价)
|
|
31
|
+
* - `getProduct.origin_total` = `original_price × num`(券前总价)
|
|
32
|
+
* - `setProduct` 写回 `selling_price` 的优先级:
|
|
33
|
+
* 1. `values.main_product_selling_price`(券应用分支,per-unit 券后主价)
|
|
34
|
+
* 2. `values.price`(还原分支 `restoredPrice`、good_pass 归零)
|
|
35
|
+
* 3. `values.total / num`(仅当 Rules 只给出总价时的兜底)
|
|
36
|
+
*
|
|
37
|
+
* 导出为纯函数方便单测直接驱动钩子,不依赖 OrderModule 实例。
|
|
38
|
+
*/
|
|
39
|
+
export function createDefaultOrderRulesHooks() {
|
|
40
|
+
var toUnitPriceString = function toUnitPriceString(totalLike, num) {
|
|
41
|
+
var effectiveNum = Number(num) > 0 ? Number(num) : 1;
|
|
42
|
+
return new Decimal(Number(totalLike) || 0).dividedBy(effectiveNum).toDecimalPlaces(2).toString();
|
|
43
|
+
};
|
|
44
|
+
return {
|
|
45
|
+
getProduct: function getProduct(product) {
|
|
46
|
+
var _product$_origin, _product$_origin2, _product$_origin3, _product$_origin4;
|
|
47
|
+
return {
|
|
48
|
+
id: product.product_id,
|
|
49
|
+
_id: product.identity_key ? "".concat(product.product_id, "_").concat(product.product_variant_id, "_").concat(product.identity_key) : "".concat(product.product_id, "_").concat(product.product_variant_id),
|
|
50
|
+
price: product.selling_price,
|
|
51
|
+
total: new Decimal(product.selling_price || 0).times(product.num || 1).toNumber(),
|
|
52
|
+
origin_total: new Decimal(product.original_price || product.selling_price || 0).times(product.num || 1).toNumber(),
|
|
53
|
+
original_price: product.original_price,
|
|
54
|
+
quantity: product.num || 1,
|
|
55
|
+
num: product.num || 1,
|
|
56
|
+
discount_list: product.discount_list || [],
|
|
57
|
+
bundle: product.product_bundle || [],
|
|
58
|
+
booking_id: ((_product$_origin = product._origin) === null || _product$_origin === void 0 ? void 0 : _product$_origin.booking_id) || null,
|
|
59
|
+
isClient: false,
|
|
60
|
+
isManualDiscount: ((_product$_origin2 = product._origin) === null || _product$_origin2 === void 0 ? void 0 : _product$_origin2.isManualDiscount) || false,
|
|
61
|
+
holder_id: (_product$_origin3 = product._origin) === null || _product$_origin3 === void 0 ? void 0 : _product$_origin3.holder_id,
|
|
62
|
+
startDate: (_product$_origin4 = product._origin) === null || _product$_origin4 === void 0 ? void 0 : _product$_origin4.startDate
|
|
63
|
+
};
|
|
64
|
+
},
|
|
65
|
+
setProduct: function setProduct(product, values) {
|
|
66
|
+
var _ref, _values$quantity, _values$discount_list, _values$quantity2, _values$bundle;
|
|
67
|
+
var nextNum = Number((_ref = (_values$quantity = values.quantity) !== null && _values$quantity !== void 0 ? _values$quantity : product.num) !== null && _ref !== void 0 ? _ref : 1) || 1;
|
|
68
|
+
var nextSellingPrice = values.main_product_selling_price !== undefined ? String(values.main_product_selling_price) : values.price !== undefined ? String(values.price) : values.total !== undefined ? toUnitPriceString(values.total, nextNum) : product.selling_price;
|
|
69
|
+
return _objectSpread(_objectSpread({}, product), {}, {
|
|
70
|
+
selling_price: nextSellingPrice,
|
|
71
|
+
original_price: values.original_price !== undefined ? String(values.original_price) : product.original_price,
|
|
72
|
+
discount_list: (_values$discount_list = values.discount_list) !== null && _values$discount_list !== void 0 ? _values$discount_list : product.discount_list,
|
|
73
|
+
num: (_values$quantity2 = values.quantity) !== null && _values$quantity2 !== void 0 ? _values$quantity2 : product.num,
|
|
74
|
+
product_bundle: (_values$bundle = values.bundle) !== null && _values$bundle !== void 0 ? _values$bundle : product.product_bundle,
|
|
75
|
+
metadata: _objectSpread(_objectSpread({}, product.metadata || {}), values.main_product_selling_price !== undefined ? {
|
|
76
|
+
main_product_selling_price: String(values.main_product_selling_price)
|
|
77
|
+
} : {})
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
}
|
|
19
82
|
|
|
20
83
|
/**
|
|
21
84
|
* 通过 session 类商品的开始时间结束时间生成商品的时长
|
|
@@ -130,6 +193,30 @@ function normalizeSubmitProduct(product) {
|
|
|
130
193
|
product_option_item: submitProduct.product_option_item || [],
|
|
131
194
|
discount_list: submitProduct.discount_list || [],
|
|
132
195
|
product_bundle: submitProduct.product_bundle || [],
|
|
196
|
+
metadata: cleanMetadata,
|
|
197
|
+
// 出站兼容:后端仍消费 payment_price 字段,从 selling_price(券后单价)派生。
|
|
198
|
+
payment_price: submitProduct.selling_price
|
|
199
|
+
});
|
|
200
|
+
}
|
|
201
|
+
var SUBMIT_BOOKING_METADATA_WHITELIST = ['unique_identification_number', 'collect_pax'];
|
|
202
|
+
export function normalizeSubmitBooking(booking) {
|
|
203
|
+
var rawMetadata = booking.metadata || {};
|
|
204
|
+
var cleanMetadata = {};
|
|
205
|
+
var _iterator = _createForOfIteratorHelper(SUBMIT_BOOKING_METADATA_WHITELIST),
|
|
206
|
+
_step;
|
|
207
|
+
try {
|
|
208
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
209
|
+
var key = _step.value;
|
|
210
|
+
if (rawMetadata[key] !== undefined) {
|
|
211
|
+
cleanMetadata[key] = rawMetadata[key];
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
} catch (err) {
|
|
215
|
+
_iterator.e(err);
|
|
216
|
+
} finally {
|
|
217
|
+
_iterator.f();
|
|
218
|
+
}
|
|
219
|
+
return _objectSpread(_objectSpread({}, booking), {}, {
|
|
133
220
|
metadata: cleanMetadata
|
|
134
221
|
});
|
|
135
222
|
}
|
|
@@ -147,6 +234,18 @@ function resolveTableOccupancyDuration(tempOrder) {
|
|
|
147
234
|
}
|
|
148
235
|
return DEFAULT_TABLE_OCCUPANCY_DURATION;
|
|
149
236
|
}
|
|
237
|
+
|
|
238
|
+
/** 提交用人数:有限且为正则向下取整,否则为 1 */
|
|
239
|
+
export function normalizeSubmitCollectPaxValue(value) {
|
|
240
|
+
var n = Number(value);
|
|
241
|
+
return Number.isFinite(n) && n > 0 ? Math.floor(n) : 1;
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
/** 从临时订单 metadata 解析合成 booking 的 collect_pax */
|
|
245
|
+
export function resolveSubmitCollectPax(tempOrder) {
|
|
246
|
+
var _tempOrder$metadata;
|
|
247
|
+
return normalizeSubmitCollectPaxValue((_tempOrder$metadata = tempOrder.metadata) === null || _tempOrder$metadata === void 0 ? void 0 : _tempOrder$metadata.collect_pax);
|
|
248
|
+
}
|
|
150
249
|
export function createDefaultTempOrder(params) {
|
|
151
250
|
var summary = params.summary || createEmptySummary();
|
|
152
251
|
return {
|
|
@@ -196,11 +295,15 @@ export function createDefaultTempOrder(params) {
|
|
|
196
295
|
};
|
|
197
296
|
}
|
|
198
297
|
export function buildSubmitPayload(params) {
|
|
199
|
-
var _tempOrder$is_price_i, _tempOrder$is_deposit;
|
|
298
|
+
var _ref2, _ref3, _ref4, _tempOrder$is_price_i, _tempOrder$is_deposit;
|
|
200
299
|
var tempOrder = params.tempOrder,
|
|
201
300
|
cacheId = params.cacheId,
|
|
202
301
|
_params$now = params.now,
|
|
203
|
-
now = _params$now === void 0 ? new Date() : _params$now
|
|
302
|
+
now = _params$now === void 0 ? new Date() : _params$now,
|
|
303
|
+
platform = params.platform,
|
|
304
|
+
businessCode = params.businessCode,
|
|
305
|
+
channel = params.channel,
|
|
306
|
+
type = params.type;
|
|
204
307
|
var scheduleDate = tempOrder.schedule_date || tempOrder.created_at || formatDateTime(now);
|
|
205
308
|
var summary = tempOrder.summary || createEmptySummary();
|
|
206
309
|
var relationId = tempOrder.relation_id;
|
|
@@ -219,7 +322,7 @@ export function buildSubmitPayload(params) {
|
|
|
219
322
|
duration: bookingDuration,
|
|
220
323
|
metadata: {
|
|
221
324
|
unique_identification_number: bookingUuid,
|
|
222
|
-
collect_pax:
|
|
325
|
+
collect_pax: resolveSubmitCollectPax(tempOrder)
|
|
223
326
|
},
|
|
224
327
|
select_date: bookingStart.format('YYYY-MM-DD'),
|
|
225
328
|
is_all: false,
|
|
@@ -237,12 +340,12 @@ export function buildSubmitPayload(params) {
|
|
|
237
340
|
_surcharges = tempOrder.surcharges,
|
|
238
341
|
tempOrderRest = _objectWithoutProperties(tempOrder, _excluded2);
|
|
239
342
|
return _objectSpread(_objectSpread({}, tempOrderRest), {}, {
|
|
240
|
-
platform: normalizeSubmitPlatform(tempOrder.platform),
|
|
343
|
+
platform: normalizeSubmitPlatform(platform !== null && platform !== void 0 ? platform : tempOrder.platform),
|
|
241
344
|
request_unique_idempotency_token: cacheId,
|
|
242
|
-
type: tempOrder.type
|
|
243
|
-
business_code: tempOrder.business_code
|
|
345
|
+
type: (_ref2 = type !== null && type !== void 0 ? type : tempOrder.type) !== null && _ref2 !== void 0 ? _ref2 : 'table-order',
|
|
346
|
+
business_code: (_ref3 = businessCode !== null && businessCode !== void 0 ? businessCode : tempOrder.business_code) !== null && _ref3 !== void 0 ? _ref3 : 'table-order',
|
|
244
347
|
sales_channel: tempOrder.sales_channel || 'my_pisel',
|
|
245
|
-
order_sales_channel: tempOrder.order_sales_channel
|
|
348
|
+
order_sales_channel: (_ref4 = channel !== null && channel !== void 0 ? channel : tempOrder.order_sales_channel) !== null && _ref4 !== void 0 ? _ref4 : 'online_store',
|
|
246
349
|
status: tempOrder.status || 'normal',
|
|
247
350
|
payment_status: tempOrder.payment_status || 'payment_processing',
|
|
248
351
|
// shipping_status: tempOrder.shipping_status || 'unfulfilled',
|
|
@@ -254,7 +357,9 @@ export function buildSubmitPayload(params) {
|
|
|
254
357
|
surcharge_fee: summary.surcharge_fee || tempOrder.surcharge_fee || '0.00',
|
|
255
358
|
note: tempOrder.note || '',
|
|
256
359
|
schedule_date: scheduleDate,
|
|
257
|
-
bookings: bookings
|
|
360
|
+
bookings: bookings.map(function (booking) {
|
|
361
|
+
return normalizeSubmitBooking(booking);
|
|
362
|
+
}),
|
|
258
363
|
payments: tempOrder.payments || [],
|
|
259
364
|
// discount_list: tempOrder.discount_list || [],
|
|
260
365
|
relation_forms: tempOrder.relation_forms || [],
|
|
@@ -85,7 +85,6 @@ export var ProductList = /*#__PURE__*/function (_BaseModule) {
|
|
|
85
85
|
key: "loadProducts",
|
|
86
86
|
value: function () {
|
|
87
87
|
var _loadProducts = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(_ref, options) {
|
|
88
|
-
var _this$otherParams;
|
|
89
88
|
var _ref$category_ids, category_ids, _ref$product_ids, product_ids, _ref$collection, collection, _ref$menu_list_ids, menu_list_ids, paramsCustomerId, _ref$with_count, with_count, schedule_datetime, schedule_date, cacheId, with_schedule, userPlugin, customer_id, _userPlugin$get, productsData, sortedList;
|
|
90
89
|
return _regeneratorRuntime().wrap(function _callee3$(_context3) {
|
|
91
90
|
while (1) switch (_context3.prev = _context3.next) {
|
|
@@ -131,7 +130,8 @@ export var ProductList = /*#__PURE__*/function (_BaseModule) {
|
|
|
131
130
|
schedule_date: schedule_date,
|
|
132
131
|
with_schedule: with_schedule,
|
|
133
132
|
schedule_datetime: schedule_datetime,
|
|
134
|
-
application_code:
|
|
133
|
+
// application_code: this.otherParams?.channel,
|
|
134
|
+
application_code: 'online-store',
|
|
135
135
|
is_eject: 1
|
|
136
136
|
}, {
|
|
137
137
|
osServer: true,
|
|
@@ -78,18 +78,21 @@ export var QuotationModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
78
78
|
case 0:
|
|
79
79
|
query = {};
|
|
80
80
|
if (params !== null && params !== void 0 && params.channel) query.channel = params.channel;
|
|
81
|
-
|
|
81
|
+
if ((params === null || params === void 0 ? void 0 : params.channel) === 'online_store') {
|
|
82
|
+
query.channel = 'online-store';
|
|
83
|
+
}
|
|
84
|
+
_context2.next = 5;
|
|
82
85
|
return this.request.get('/quotation/available', query, {
|
|
83
86
|
useCache: false
|
|
84
87
|
});
|
|
85
|
-
case
|
|
88
|
+
case 5:
|
|
86
89
|
res = _context2.sent;
|
|
87
90
|
list = (res === null || res === void 0 || (_data = res.data) === null || _data === void 0 ? void 0 : _data.list) || (res === null || res === void 0 ? void 0 : res.list) || [];
|
|
88
91
|
list.sort(function (a, b) {
|
|
89
92
|
return a.sort - b.sort;
|
|
90
93
|
});
|
|
91
94
|
this.store.list = list;
|
|
92
|
-
case
|
|
95
|
+
case 9:
|
|
93
96
|
case "end":
|
|
94
97
|
return _context2.stop();
|
|
95
98
|
}
|
|
@@ -2,9 +2,10 @@ export interface SalesSummaryProduct {
|
|
|
2
2
|
product_id: number | null;
|
|
3
3
|
product_variant_id: number;
|
|
4
4
|
num: number;
|
|
5
|
+
/** 券后单品单价(订单域成交单价),由 OrderModule 维护。 */
|
|
5
6
|
selling_price: string;
|
|
7
|
+
/** 券前单品单价(店铺售价)。 */
|
|
6
8
|
original_price: string;
|
|
7
|
-
payment_price: string;
|
|
8
9
|
tax_fee: string;
|
|
9
10
|
is_charge_tax?: number;
|
|
10
11
|
product_option_item?: any[];
|
|
@@ -68,7 +68,7 @@ function getBundleUnitPrice(product) {
|
|
|
68
68
|
// 单商品总价口径:主商品单价 + option + bundle(随后再乘商品数量)
|
|
69
69
|
function getUnitPaymentTotal(product) {
|
|
70
70
|
var variantPrice = getVariantPrice(product);
|
|
71
|
-
var basePrice = variantPrice || toDecimal(product.selling_price
|
|
71
|
+
var basePrice = variantPrice || toDecimal(product.selling_price);
|
|
72
72
|
return basePrice.plus(getOptionUnitPrice(product)).plus(getBundleUnitPrice(product));
|
|
73
73
|
}
|
|
74
74
|
function getUnitOriginalTotal(product) {
|
|
@@ -254,9 +254,9 @@ function calculateSingleItemTax(params) {
|
|
|
254
254
|
* 与 Summary/utils.ts 的 getMainProductTotal 逻辑对齐,适配 SalesSummaryProduct 结构。
|
|
255
255
|
*/
|
|
256
256
|
function getMainProductPaymentTotal(product) {
|
|
257
|
-
var
|
|
257
|
+
var _product$metadata$mai, _product$metadata4, _product$_origin3, _product$_origin4;
|
|
258
258
|
var variantPrice = getVariantPrice(product);
|
|
259
|
-
var total = variantPrice || toDecimal((
|
|
259
|
+
var total = variantPrice || toDecimal((_product$metadata$mai = (_product$metadata4 = product.metadata) === null || _product$metadata4 === void 0 ? void 0 : _product$metadata4.main_product_selling_price) !== null && _product$metadata$mai !== void 0 ? _product$metadata$mai : product.selling_price);
|
|
260
260
|
var mainDiscountList = ((_product$_origin3 = product._origin) === null || _product$_origin3 === void 0 || (_product$_origin3 = _product$_origin3.product) === null || _product$_origin3 === void 0 ? void 0 : _product$_origin3.discount_list) || ((_product$_origin4 = product._origin) === null || _product$_origin4 === void 0 ? void 0 : _product$_origin4.discount_list) || [];
|
|
261
261
|
var mainDiscountAmount = getDiscountListAmount(mainDiscountList.filter(function (d) {
|
|
262
262
|
var _d$metadata;
|
|
@@ -271,8 +271,8 @@ function getMainProductPaymentTotal(product) {
|
|
|
271
271
|
for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
|
|
272
272
|
var bundleItem = _step5.value;
|
|
273
273
|
if (isBundleMarkupOrDiscount(bundleItem)) {
|
|
274
|
-
var
|
|
275
|
-
total = total.plus(toDecimal((
|
|
274
|
+
var _ref2, _bundleItem$bundle_se;
|
|
275
|
+
total = total.plus(toDecimal((_ref2 = (_bundleItem$bundle_se = bundleItem.bundle_selling_price) !== null && _bundleItem$bundle_se !== void 0 ? _bundleItem$bundle_se : bundleItem.price) !== null && _ref2 !== void 0 ? _ref2 : 0));
|
|
276
276
|
}
|
|
277
277
|
}
|
|
278
278
|
} catch (err) {
|
|
@@ -340,24 +340,24 @@ function calculateProductsTax(products, taxRate, isPriceIncludeTax) {
|
|
|
340
340
|
_step7;
|
|
341
341
|
try {
|
|
342
342
|
for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {
|
|
343
|
-
var _bundleItem$num,
|
|
343
|
+
var _bundleItem$num, _ref3, _bundleItem$bundle_se2, _ref4, _ref5, _bundleItem$original_, _ref6, _bundleItem$is_charge, _ref7, _bundleItem$is_charge2;
|
|
344
344
|
var bundleItem = _step7.value;
|
|
345
345
|
if (!isBundleOriginalPrice(bundleItem)) continue;
|
|
346
346
|
var bundleQuantity = new Decimal(getSafeNum((_bundleItem$num = bundleItem.num) !== null && _bundleItem$num !== void 0 ? _bundleItem$num : bundleItem.quantity));
|
|
347
|
-
var bundlePrice = toDecimal((
|
|
348
|
-
var bundleOriginalPrice = toDecimal((
|
|
347
|
+
var bundlePrice = toDecimal((_ref3 = (_bundleItem$bundle_se2 = bundleItem.bundle_selling_price) !== null && _bundleItem$bundle_se2 !== void 0 ? _bundleItem$bundle_se2 : bundleItem.price) !== null && _ref3 !== void 0 ? _ref3 : 0);
|
|
348
|
+
var bundleOriginalPrice = toDecimal((_ref4 = (_ref5 = (_bundleItem$original_ = bundleItem.original_price) !== null && _bundleItem$original_ !== void 0 ? _bundleItem$original_ : bundleItem.product_price) !== null && _ref5 !== void 0 ? _ref5 : bundleItem.price) !== null && _ref4 !== void 0 ? _ref4 : 0);
|
|
349
349
|
var bundleTaxPrecise = calculateSingleItemTax({
|
|
350
350
|
price: bundlePrice,
|
|
351
351
|
taxRate: rate,
|
|
352
352
|
isPriceIncludeTax: isPriceIncludeTax,
|
|
353
|
-
isChargeTax: (
|
|
353
|
+
isChargeTax: (_ref6 = (_bundleItem$is_charge = bundleItem.is_charge_tax) !== null && _bundleItem$is_charge !== void 0 ? _bundleItem$is_charge : product.is_charge_tax) !== null && _ref6 !== void 0 ? _ref6 : 0
|
|
354
354
|
});
|
|
355
355
|
var bundleTaxRounded = bundleTaxPrecise.toDecimalPlaces(2, Decimal.ROUND_HALF_UP);
|
|
356
356
|
var bundleOrigTaxPrecise = calculateSingleItemTax({
|
|
357
357
|
price: bundleOriginalPrice,
|
|
358
358
|
taxRate: rate,
|
|
359
359
|
isPriceIncludeTax: isPriceIncludeTax,
|
|
360
|
-
isChargeTax: (
|
|
360
|
+
isChargeTax: (_ref7 = (_bundleItem$is_charge2 = bundleItem.is_charge_tax) !== null && _bundleItem$is_charge2 !== void 0 ? _bundleItem$is_charge2 : product.is_charge_tax) !== null && _ref7 !== void 0 ? _ref7 : 0
|
|
361
361
|
});
|
|
362
362
|
var bundleOrigTaxRounded = bundleOrigTaxPrecise.toDecimalPlaces(2, Decimal.ROUND_HALF_UP);
|
|
363
363
|
bundleItem.tax_fee = bundleTaxRounded.toNumber();
|
|
@@ -46,7 +46,7 @@ export declare const formatScheduleResult: (schedule: ScheduleItem) => {
|
|
|
46
46
|
};
|
|
47
47
|
export declare const calcScheduleDateRange: (schedule: ScheduleItem) => any[];
|
|
48
48
|
export declare const calcCalendarDataBySchedules: (schedules: ScheduleItem[]) => unknown[];
|
|
49
|
-
export declare const calcMinTimeMaxTimeBySchedules: (schedules: ScheduleItem[], scheduleAllMap?: ScheduleAllMap, selectDate?: string) =>
|
|
49
|
+
export declare const calcMinTimeMaxTimeBySchedules: (schedules: ScheduleItem[], scheduleAllMap?: ScheduleAllMap, selectDate?: string) => ScheduleAllMap;
|
|
50
50
|
/**
|
|
51
51
|
* @title: 格式化日程数据
|
|
52
52
|
* @description:
|
|
@@ -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 | 5 | 1 | 4 | 2 | 3 | 6;
|
|
315
315
|
}[]>;
|
|
316
316
|
submitTimeSlot(timeSlots: TimeSliceItem): void;
|
|
317
317
|
private getScheduleDataByIds;
|
|
@@ -330,7 +330,7 @@ export declare class BookingByStepImpl extends BaseModule implements Module {
|
|
|
330
330
|
count: number;
|
|
331
331
|
left: number;
|
|
332
332
|
summaryCount: number;
|
|
333
|
-
status: "
|
|
333
|
+
status: "sold_out" | "lots_of_space" | "filling_up_fast";
|
|
334
334
|
}[];
|
|
335
335
|
/**
|
|
336
336
|
* 找到多个资源的公共可用时间段
|
|
@@ -27,6 +27,8 @@ export declare class ScanOrderImpl extends BaseModule implements Module {
|
|
|
27
27
|
private itemRuleConfigsPromise;
|
|
28
28
|
private itemRulePrefillApplied;
|
|
29
29
|
private itemRuleRuntimeConfig;
|
|
30
|
+
/** 最近一次 checkResourceAvailable 从预约规则 link 拉取的商品快照 */
|
|
31
|
+
private enabledReservationRuleProducts;
|
|
30
32
|
private getScanOrderLoggerContext;
|
|
31
33
|
private serializeError;
|
|
32
34
|
private addScanOrderLog;
|
|
@@ -87,4 +89,9 @@ export declare class ScanOrderImpl extends BaseModule implements Module {
|
|
|
87
89
|
}>;
|
|
88
90
|
getProductList(): Promise<any>;
|
|
89
91
|
getOtherParams(): Record<string, any>;
|
|
92
|
+
setOtherParams(params: Record<string, any>, { cover }?: {
|
|
93
|
+
cover?: boolean;
|
|
94
|
+
}): Promise<void>;
|
|
95
|
+
setEntryPaxNumber(number: number): Promise<void>;
|
|
96
|
+
getEntryPaxNumber(): number | null;
|
|
90
97
|
}
|