@pisell/pisellos 2.3.44 → 2.3.45
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/promotion/index.js +0 -9
- package/dist/modules/Discount/index.d.ts +0 -1
- package/dist/modules/Discount/index.js +11 -40
- package/dist/modules/Discount/types.d.ts +0 -1
- package/dist/modules/OpenData/index.js +2 -2
- package/dist/modules/Order/index.d.ts +2 -4
- package/dist/modules/Order/index.js +25 -54
- package/dist/modules/Order/types.d.ts +0 -9
- package/dist/modules/Order/utils.d.ts +0 -10
- package/dist/modules/Order/utils.js +3 -35
- package/dist/modules/Product/types.d.ts +0 -1
- package/dist/modules/ProductList/index.js +14 -33
- package/dist/modules/Quotation/index.d.ts +1 -1
- package/dist/modules/Quotation/index.js +2 -2
- package/dist/modules/Rules/index.js +13 -47
- package/dist/modules/SalesSummary/index.js +13 -12
- package/dist/modules/ScanOrderLogger/index.d.ts +0 -2
- package/dist/modules/ScanOrderLogger/index.js +2 -15
- package/dist/modules/ScanOrderLogger/providers/feishu.js +27 -45
- package/dist/modules/ScanOrderLogger/types.d.ts +0 -1
- package/dist/modules/Schedule/index.d.ts +1 -3
- package/dist/modules/Schedule/index.js +16 -21
- package/dist/modules/Summary/utils.js +13 -38
- package/dist/modules/index.d.ts +0 -2
- package/dist/modules/index.js +1 -3
- package/dist/plugins/window.d.ts +0 -1
- package/dist/server/index.d.ts +0 -14
- package/dist/server/index.js +657 -772
- package/dist/solution/BaseSales/index.d.ts +0 -7
- package/dist/solution/BaseSales/index.js +42 -64
- package/dist/solution/BookingByStep/index.d.ts +1 -16
- package/dist/solution/BookingByStep/index.js +215 -294
- package/dist/solution/BookingByStep/types.d.ts +1 -2
- package/dist/solution/BookingByStep/types.js +1 -3
- package/dist/solution/BookingByStep/utils/capacity.js +1 -17
- package/dist/solution/BookingByStep/utils/timeslots.d.ts +1 -3
- package/dist/solution/BookingByStep/utils/timeslots.js +12 -19
- package/dist/solution/BookingTicket/index.d.ts +2 -14
- package/dist/solution/BookingTicket/index.js +2 -2
- package/dist/solution/BookingTicket/utils/scan/handleScan.d.ts +1 -3
- package/dist/solution/BookingTicket/utils/scan/handleScan.js +2 -10
- package/dist/solution/ScanOrder/index.d.ts +14 -26
- package/dist/solution/ScanOrder/index.js +739 -1142
- package/dist/solution/ScanOrder/types.d.ts +1 -21
- package/dist/solution/ScanOrder/utils.d.ts +0 -8
- package/dist/solution/ScanOrder/utils.js +25 -66
- package/dist/solution/ShopDiscount/index.d.ts +0 -1
- package/dist/solution/ShopDiscount/index.js +87 -125
- package/dist/solution/VenueBooking/index.d.ts +11 -39
- package/dist/solution/VenueBooking/index.js +841 -1167
- package/dist/solution/VenueBooking/types.d.ts +0 -3
- package/dist/solution/VenueBooking/utils/resource.js +0 -1
- package/dist/solution/VenueBooking/utils/slotMerge.d.ts +4 -4
- package/dist/solution/VenueBooking/utils/slotMerge.js +5 -10
- package/dist/solution/index.d.ts +0 -1
- package/dist/solution/index.js +1 -2
- package/dist/types/index.d.ts +0 -1
- package/lib/modules/Discount/index.d.ts +0 -1
- package/lib/modules/Discount/index.js +0 -9
- package/lib/modules/Discount/types.d.ts +0 -1
- package/lib/modules/OpenData/index.js +1 -1
- package/lib/modules/Order/index.d.ts +2 -4
- package/lib/modules/Order/index.js +10 -26
- package/lib/modules/Order/types.d.ts +0 -9
- package/lib/modules/Order/utils.d.ts +0 -10
- package/lib/modules/Order/utils.js +5 -36
- package/lib/modules/Product/types.d.ts +0 -1
- package/lib/modules/ProductList/index.js +31 -40
- package/lib/modules/Quotation/index.d.ts +1 -1
- package/lib/modules/Quotation/index.js +2 -2
- package/lib/modules/Rules/index.js +16 -33
- package/lib/modules/SalesSummary/index.js +7 -6
- package/lib/modules/ScanOrderLogger/index.d.ts +0 -2
- package/lib/modules/ScanOrderLogger/index.js +1 -13
- package/lib/modules/ScanOrderLogger/providers/feishu.js +6 -15
- package/lib/modules/ScanOrderLogger/types.d.ts +0 -1
- package/lib/modules/Schedule/index.d.ts +1 -3
- package/lib/modules/Schedule/index.js +8 -10
- package/lib/modules/Summary/utils.js +1 -21
- package/lib/modules/index.d.ts +0 -2
- package/lib/modules/index.js +1 -5
- package/lib/plugins/window.d.ts +0 -1
- package/lib/server/index.d.ts +0 -14
- package/lib/server/index.js +5 -65
- package/lib/solution/BaseSales/index.d.ts +0 -7
- package/lib/solution/BaseSales/index.js +8 -24
- package/lib/solution/BookingByStep/index.d.ts +1 -16
- package/lib/solution/BookingByStep/index.js +18 -60
- package/lib/solution/BookingByStep/types.d.ts +1 -2
- package/lib/solution/BookingByStep/types.js +0 -5
- package/lib/solution/BookingByStep/utils/capacity.js +1 -20
- package/lib/solution/BookingByStep/utils/timeslots.d.ts +1 -3
- package/lib/solution/BookingByStep/utils/timeslots.js +11 -19
- package/lib/solution/BookingTicket/index.d.ts +2 -14
- package/lib/solution/BookingTicket/index.js +2 -10
- package/lib/solution/BookingTicket/utils/scan/handleScan.d.ts +1 -3
- package/lib/solution/BookingTicket/utils/scan/handleScan.js +2 -2
- package/lib/solution/ScanOrder/index.d.ts +14 -26
- package/lib/solution/ScanOrder/index.js +182 -449
- package/lib/solution/ScanOrder/types.d.ts +1 -21
- package/lib/solution/ScanOrder/utils.d.ts +0 -8
- package/lib/solution/ScanOrder/utils.js +0 -31
- package/lib/solution/ShopDiscount/index.d.ts +0 -1
- package/lib/solution/ShopDiscount/index.js +0 -14
- package/lib/solution/VenueBooking/index.d.ts +11 -39
- package/lib/solution/VenueBooking/index.js +110 -322
- package/lib/solution/VenueBooking/types.d.ts +0 -3
- package/lib/solution/VenueBooking/utils/resource.js +0 -1
- package/lib/solution/VenueBooking/utils/slotMerge.d.ts +4 -4
- package/lib/solution/VenueBooking/utils/slotMerge.js +4 -6
- package/lib/solution/index.d.ts +0 -1
- package/lib/solution/index.js +1 -3
- package/lib/types/index.d.ts +0 -1
- package/package.json +1 -1
- package/dist/modules/Holder/index.d.ts +0 -48
- package/dist/modules/Holder/index.js +0 -640
- package/dist/modules/Holder/types.d.ts +0 -123
- package/dist/modules/Holder/types.js +0 -1
- package/dist/modules/Holder/utils.d.ts +0 -13
- package/dist/modules/Holder/utils.js +0 -34
- package/dist/modules/ResourcePlanner/index.d.ts +0 -24
- package/dist/modules/ResourcePlanner/index.js +0 -181
- package/dist/modules/ResourcePlanner/planner.d.ts +0 -14
- package/dist/modules/ResourcePlanner/planner.js +0 -1069
- package/dist/modules/ResourcePlanner/types.d.ts +0 -227
- package/dist/modules/ResourcePlanner/types.js +0 -1
- package/dist/solution/UnifiedBookingSales/index.d.ts +0 -183
- package/dist/solution/UnifiedBookingSales/index.js +0 -1891
- package/dist/solution/UnifiedBookingSales/types.d.ts +0 -143
- package/dist/solution/UnifiedBookingSales/types.js +0 -11
- package/lib/modules/Holder/index.d.ts +0 -48
- package/lib/modules/Holder/index.js +0 -402
- package/lib/modules/Holder/types.d.ts +0 -123
- package/lib/modules/Holder/types.js +0 -17
- package/lib/modules/Holder/utils.d.ts +0 -13
- package/lib/modules/Holder/utils.js +0 -71
- package/lib/modules/ResourcePlanner/index.d.ts +0 -24
- package/lib/modules/ResourcePlanner/index.js +0 -148
- package/lib/modules/ResourcePlanner/planner.d.ts +0 -14
- package/lib/modules/ResourcePlanner/planner.js +0 -933
- package/lib/modules/ResourcePlanner/types.d.ts +0 -227
- package/lib/modules/ResourcePlanner/types.js +0 -17
- package/lib/solution/UnifiedBookingSales/index.d.ts +0 -183
- package/lib/solution/UnifiedBookingSales/index.js +0 -1084
- package/lib/solution/UnifiedBookingSales/types.d.ts +0 -143
- package/lib/solution/UnifiedBookingSales/types.js +0 -33
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
// 导出评估器
|
|
2
|
-
export { PromotionEvaluator } from "./evaluator";
|
|
3
|
-
|
|
4
|
-
// 导出适配器
|
|
5
|
-
export { PromotionAdapter } from "./adapter";
|
|
6
|
-
export { default } from "./adapter";
|
|
7
|
-
|
|
8
|
-
// 导出策略配置示例常量
|
|
9
|
-
export { X_ITEMS_FOR_Y_PRICE_STRATEGY, BUY_X_GET_Y_FREE_STRATEGY, ITEM_REWARD_STRATEGY } from "./examples";
|
|
@@ -32,7 +32,6 @@ export declare class DiscountModule extends BaseModule implements Module, Discou
|
|
|
32
32
|
customerId?: number;
|
|
33
33
|
orderId?: number;
|
|
34
34
|
}): Promise<DiscountWithReason>;
|
|
35
|
-
batchSearchByProductIds(productIds: number[]): Promise<any>;
|
|
36
35
|
filterEnabledDiscountList(discountList: Discount[]): Discount[];
|
|
37
36
|
private checkUsageCreditsLimit;
|
|
38
37
|
filterEnabledDiscountListWithReason(discountList: Discount[]): DiscountWithReason;
|
|
@@ -244,35 +244,6 @@ export var DiscountModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
244
244
|
}
|
|
245
245
|
return batchSearch;
|
|
246
246
|
}()
|
|
247
|
-
}, {
|
|
248
|
-
key: "batchSearchByProductIds",
|
|
249
|
-
value: function () {
|
|
250
|
-
var _batchSearchByProductIds = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee6(productIds) {
|
|
251
|
-
var result;
|
|
252
|
-
return _regeneratorRuntime().wrap(function _callee6$(_context6) {
|
|
253
|
-
while (1) switch (_context6.prev = _context6.next) {
|
|
254
|
-
case 0:
|
|
255
|
-
_context6.next = 2;
|
|
256
|
-
return this.request.get("/machinecode/batch-search", {
|
|
257
|
-
ids: productIds,
|
|
258
|
-
translate_flag: 1,
|
|
259
|
-
tags: ['good_pass', 'product_discount_card'],
|
|
260
|
-
relation_product: 1
|
|
261
|
-
});
|
|
262
|
-
case 2:
|
|
263
|
-
result = _context6.sent;
|
|
264
|
-
return _context6.abrupt("return", (result === null || result === void 0 ? void 0 : result.data) || []);
|
|
265
|
-
case 4:
|
|
266
|
-
case "end":
|
|
267
|
-
return _context6.stop();
|
|
268
|
-
}
|
|
269
|
-
}, _callee6, this);
|
|
270
|
-
}));
|
|
271
|
-
function batchSearchByProductIds(_x8) {
|
|
272
|
-
return _batchSearchByProductIds.apply(this, arguments);
|
|
273
|
-
}
|
|
274
|
-
return batchSearchByProductIds;
|
|
275
|
-
}()
|
|
276
247
|
}, {
|
|
277
248
|
key: "filterEnabledDiscountList",
|
|
278
249
|
value: function filterEnabledDiscountList(discountList) {
|
|
@@ -459,22 +430,22 @@ export var DiscountModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
459
430
|
}, {
|
|
460
431
|
key: "destroy",
|
|
461
432
|
value: function () {
|
|
462
|
-
var _destroy = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function
|
|
463
|
-
return _regeneratorRuntime().wrap(function
|
|
464
|
-
while (1) switch (
|
|
433
|
+
var _destroy = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee6() {
|
|
434
|
+
return _regeneratorRuntime().wrap(function _callee6$(_context6) {
|
|
435
|
+
while (1) switch (_context6.prev = _context6.next) {
|
|
465
436
|
case 0:
|
|
466
437
|
this.store.discountList = [];
|
|
467
438
|
this.core.effects.offByModuleDestroy(this.name);
|
|
468
|
-
|
|
439
|
+
_context6.next = 4;
|
|
469
440
|
return this.core.effects.emit("".concat(this.name, ":onDestroy"), {});
|
|
470
441
|
case 4:
|
|
471
442
|
console.log('[Discount] 已销毁');
|
|
472
443
|
_get(_getPrototypeOf(DiscountModule.prototype), "destroy", this).call(this);
|
|
473
444
|
case 6:
|
|
474
445
|
case "end":
|
|
475
|
-
return
|
|
446
|
+
return _context6.stop();
|
|
476
447
|
}
|
|
477
|
-
},
|
|
448
|
+
}, _callee6, this);
|
|
478
449
|
}));
|
|
479
450
|
function destroy() {
|
|
480
451
|
return _destroy.apply(this, arguments);
|
|
@@ -484,18 +455,18 @@ export var DiscountModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
484
455
|
}, {
|
|
485
456
|
key: "clear",
|
|
486
457
|
value: function () {
|
|
487
|
-
var _clear = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function
|
|
488
|
-
return _regeneratorRuntime().wrap(function
|
|
489
|
-
while (1) switch (
|
|
458
|
+
var _clear = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee7() {
|
|
459
|
+
return _regeneratorRuntime().wrap(function _callee7$(_context7) {
|
|
460
|
+
while (1) switch (_context7.prev = _context7.next) {
|
|
490
461
|
case 0:
|
|
491
462
|
this.store.discountList = [];
|
|
492
463
|
this.store.originalDiscountList = [];
|
|
493
464
|
console.log('[Discount] clear');
|
|
494
465
|
case 3:
|
|
495
466
|
case "end":
|
|
496
|
-
return
|
|
467
|
+
return _context7.stop();
|
|
497
468
|
}
|
|
498
|
-
},
|
|
469
|
+
}, _callee7, this);
|
|
499
470
|
}));
|
|
500
471
|
function clear() {
|
|
501
472
|
return _clear.apply(this, arguments);
|
|
@@ -105,12 +105,12 @@ export var OpenDataModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
105
105
|
key: "fetchOpenData",
|
|
106
106
|
value: function () {
|
|
107
107
|
var _fetchOpenData = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(params) {
|
|
108
|
-
var _this$appPlugin, _this$appPlugin
|
|
108
|
+
var _this$appPlugin$getDa, _this$appPlugin;
|
|
109
109
|
var getData, shopId, tenantId, headers, response, data;
|
|
110
110
|
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
111
111
|
while (1) switch (_context2.prev = _context2.next) {
|
|
112
112
|
case 0:
|
|
113
|
-
getData = (_this$appPlugin =
|
|
113
|
+
getData = (_this$appPlugin$getDa = (_this$appPlugin = this.appPlugin).getData) === null || _this$appPlugin$getDa === void 0 ? void 0 : _this$appPlugin$getDa.call(_this$appPlugin);
|
|
114
114
|
shopId = getData === null || getData === void 0 ? void 0 : getData('shop_id');
|
|
115
115
|
if (shopId) {
|
|
116
116
|
_context2.next = 4;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Module, PisellCore, ModuleOptions } from '../../types';
|
|
2
2
|
import { BaseModule } from '../BaseModule';
|
|
3
|
-
import { OrderModuleAPI, CommitOrderParams, UpdateOrderBookingParams, UpdateOrderProductParams, UpdateOrderProductQuantityParams, CancelOrderParams, ChangeBookingStatusParams
|
|
3
|
+
import { OrderModuleAPI, CommitOrderParams, UpdateOrderBookingParams, UpdateOrderProductParams, UpdateOrderProductQuantityParams, CheckoutOrderParams, CancelOrderParams, ChangeBookingStatusParams } from './types';
|
|
4
4
|
import { CartItem } from '../Cart/types';
|
|
5
5
|
import { type SubmitPayloadEnhancer } from './utils';
|
|
6
6
|
import type { OrderAmountSnapshot, AddProductBookingInput, OrderIdentitySnapshot, OrderPaymentSource, OrderSnapshot, OrderSyncState, SyncPaymentsToOrderParams, SyncPaymentsToOrderResult, SubmitSalesOrderParams, OrderProduct, OrderProductIdentity, OrderSummary, OrderTempOrder, OrderPaymentData, OrderPaymentUpdateOptions, OrderPaymentUpdateResult, SendCustomerPayLinkParams, UpdateTempOrderCustomerInput, OrderCustomerPatch, OrderCustomerView, ReplaceTempOrderOptions, OrderPromotionEvaluator, OrderGiftSelectResolver, OrderUnfulfilledPromotion, OrderLastGiftActions } from './types';
|
|
@@ -147,7 +147,6 @@ export declare class OrderModule extends BaseModule implements Module, OrderModu
|
|
|
147
147
|
isTempOrderPersistEnabled(): boolean;
|
|
148
148
|
/** @deprecated OrderModule 不再负责 tempOrder localStorage 持久化;草稿保存请使用 IndexedDB saveDraft。 */
|
|
149
149
|
persistTempOrder(): void;
|
|
150
|
-
notifyTempOrderChanged(): void;
|
|
151
150
|
private createDefaultTempOrderInstance;
|
|
152
151
|
private createExternalSaleNumber;
|
|
153
152
|
private ensureExternalSaleNumber;
|
|
@@ -487,7 +486,7 @@ export declare class OrderModule extends BaseModule implements Module, OrderModu
|
|
|
487
486
|
generateIdempotencyToken(): string;
|
|
488
487
|
syncPaymentsToOrder<T = any>(params: SyncPaymentsToOrderParams): Promise<SyncPaymentsToOrderResult<T>>;
|
|
489
488
|
createOrder(params: CommitOrderParams['query']): {
|
|
490
|
-
type: "
|
|
489
|
+
type: "appointment_booking" | "virtual";
|
|
491
490
|
platform: string;
|
|
492
491
|
sales_channel: string;
|
|
493
492
|
order_sales_channel: string;
|
|
@@ -497,7 +496,6 @@ export declare class OrderModule extends BaseModule implements Module, OrderModu
|
|
|
497
496
|
is_deposit: number;
|
|
498
497
|
relation_products: any[];
|
|
499
498
|
relation_forms: any[];
|
|
500
|
-
business_code: string | undefined;
|
|
501
499
|
};
|
|
502
500
|
checkBeforeSubmitOrder(params: {
|
|
503
501
|
cartItems: CartItem[];
|
|
@@ -32,7 +32,7 @@ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol"
|
|
|
32
32
|
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); }
|
|
33
33
|
import { BaseModule } from "../BaseModule";
|
|
34
34
|
import { OrderHooks } from "./types";
|
|
35
|
-
import { composeLinePrice, generateDuration, getAllDiscountList, mergeRelationForms,
|
|
35
|
+
import { composeLinePrice, generateDuration, getAllDiscountList, mergeRelationForms, buildSubmitPayload, createDefaultTempOrder, createDefaultOrderRulesHooks, createEmptySummary, createUuidV4, formatDateTime, isTempOrder, normalizeBookingIsAll, normalizeBookingSubType, mapPaymentItemsToOrderPayments, normalizeOrderProductDiscountList, resolveEffectivePerUnitDiscount, ensureProductSku, getProductSkuOptions, normalizeProductSkuOptions, sumOptionUnitPrice, clearTempOrderHolderAssignments, getOrderProductLineUid, indexOrderProductsByUid, calculateOrderProductsDeposit, mergeOrderProductDisplayFields, resolveIsFormSubject } from "./utils";
|
|
36
36
|
import { isNormalProduct } from "../Product/utils";
|
|
37
37
|
import dayjs from 'dayjs';
|
|
38
38
|
import { ensureOrderPaymentNumber, mergeOrderPaymentRecord, resolveOrderPaymentIdentity } from "./payment-utils";
|
|
@@ -309,8 +309,8 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
309
309
|
key: "initialize",
|
|
310
310
|
value: function () {
|
|
311
311
|
var _initialize = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(core, options) {
|
|
312
|
-
var
|
|
313
|
-
var
|
|
312
|
+
var _otherParams$rules, _otherParams$order, _otherParams$hooks;
|
|
313
|
+
var app, otherParams;
|
|
314
314
|
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
315
315
|
while (1) switch (_context.prev = _context.next) {
|
|
316
316
|
case 0:
|
|
@@ -326,12 +326,15 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
326
326
|
this.store.availableWalletIds = [];
|
|
327
327
|
}
|
|
328
328
|
this.request = this.core.getPlugin('request');
|
|
329
|
-
appPlugin = this.core.getPlugin('app');
|
|
330
|
-
if (
|
|
331
|
-
|
|
329
|
+
this.appPlugin = this.core.getPlugin('app');
|
|
330
|
+
if (this.appPlugin) {
|
|
331
|
+
_context.next = 9;
|
|
332
|
+
break;
|
|
332
333
|
}
|
|
333
|
-
|
|
334
|
-
|
|
334
|
+
throw new Error('Order 模块需要 app 插件支持');
|
|
335
|
+
case 9:
|
|
336
|
+
app = this.appPlugin.getApp();
|
|
337
|
+
this.logger = app.logger;
|
|
335
338
|
this.window = this.core.getPlugin('window');
|
|
336
339
|
otherParams = options.otherParams || {};
|
|
337
340
|
this.cacheId = otherParams.cacheId;
|
|
@@ -342,7 +345,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
342
345
|
this.otherParams = otherParams;
|
|
343
346
|
this.registerDiscountModules(options);
|
|
344
347
|
this.logInfo('OrderModule initialized successfully');
|
|
345
|
-
case
|
|
348
|
+
case 21:
|
|
346
349
|
case "end":
|
|
347
350
|
return _context.stop();
|
|
348
351
|
}
|
|
@@ -1273,16 +1276,6 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
1273
1276
|
value: function persistTempOrder() {
|
|
1274
1277
|
// no-op: OrderModule 的刷新恢复不再依赖 localStorage。
|
|
1275
1278
|
}
|
|
1276
|
-
}, {
|
|
1277
|
-
key: "notifyTempOrderChanged",
|
|
1278
|
-
value: function notifyTempOrderChanged() {
|
|
1279
|
-
if (!this.store.tempOrder) return;
|
|
1280
|
-
this.store.tempOrder = _objectSpread(_objectSpread({}, this.store.tempOrder), {}, {
|
|
1281
|
-
products: _toConsumableArray(this.store.tempOrder.products),
|
|
1282
|
-
bookings: this.store.tempOrder.bookings ? _toConsumableArray(this.store.tempOrder.bookings) : []
|
|
1283
|
-
});
|
|
1284
|
-
this.persistTempOrder();
|
|
1285
|
-
}
|
|
1286
1279
|
|
|
1287
1280
|
// ─── TempOrder: 创建 & 获取 ───
|
|
1288
1281
|
}, {
|
|
@@ -5287,7 +5280,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
5287
5280
|
var _syncPaymentsToOrder = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee36(params) {
|
|
5288
5281
|
var _this31 = this,
|
|
5289
5282
|
_params$confirmPendin;
|
|
5290
|
-
var tempOrder, needsPaymentNumber, devicePrefix, mappedPayments, shouldConfirmPendingVoucherPayments, effectivePayments, completion, orderPaidPaymentTotal, paymentStatus, paymentSyncIdempotencyToken,
|
|
5283
|
+
var tempOrder, needsPaymentNumber, devicePrefix, mappedPayments, shouldConfirmPendingVoucherPayments, effectivePayments, completion, orderPaidPaymentTotal, paymentStatus, paymentSyncIdempotencyToken, submitResult;
|
|
5291
5284
|
return _regeneratorRuntime().wrap(function _callee36$(_context39) {
|
|
5292
5285
|
while (1) switch (_context39.prev = _context39.next) {
|
|
5293
5286
|
case 0:
|
|
@@ -5340,7 +5333,8 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
5340
5333
|
case 25:
|
|
5341
5334
|
this.store.syncState = 'submitting';
|
|
5342
5335
|
paymentSyncIdempotencyToken = this.buildPaymentSyncIdempotencyToken(tempOrder, effectivePayments);
|
|
5343
|
-
|
|
5336
|
+
_context39.next = 29;
|
|
5337
|
+
return this.submitTempOrder({
|
|
5344
5338
|
payments: effectivePayments,
|
|
5345
5339
|
paymentStatus: paymentStatus,
|
|
5346
5340
|
smallTicketDataFlag: params.smallTicketDataFlag,
|
|
@@ -5353,28 +5347,13 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
5353
5347
|
});
|
|
5354
5348
|
return nextPayload;
|
|
5355
5349
|
}
|
|
5356
|
-
};
|
|
5357
|
-
|
|
5358
|
-
|
|
5359
|
-
break;
|
|
5360
|
-
}
|
|
5361
|
-
_context39.next = 31;
|
|
5362
|
-
return this.submitTempOrderAsync(submitParams);
|
|
5363
|
-
case 31:
|
|
5364
|
-
_context39.t1 = _context39.sent;
|
|
5365
|
-
_context39.next = 37;
|
|
5366
|
-
break;
|
|
5367
|
-
case 34:
|
|
5368
|
-
_context39.next = 36;
|
|
5369
|
-
return this.submitTempOrder(submitParams);
|
|
5370
|
-
case 36:
|
|
5371
|
-
_context39.t1 = _context39.sent;
|
|
5372
|
-
case 37:
|
|
5373
|
-
submitResult = _context39.t1;
|
|
5350
|
+
});
|
|
5351
|
+
case 29:
|
|
5352
|
+
submitResult = _context39.sent;
|
|
5374
5353
|
return _context39.abrupt("return", _objectSpread(_objectSpread({}, completion), {}, {
|
|
5375
5354
|
submitResult: submitResult
|
|
5376
5355
|
}));
|
|
5377
|
-
case
|
|
5356
|
+
case 31:
|
|
5378
5357
|
case "end":
|
|
5379
5358
|
return _context39.stop();
|
|
5380
5359
|
}
|
|
@@ -5388,7 +5367,6 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
5388
5367
|
}, {
|
|
5389
5368
|
key: "createOrder",
|
|
5390
5369
|
value: function createOrder(params) {
|
|
5391
|
-
var _this32 = this;
|
|
5392
5370
|
var order = _objectSpread({
|
|
5393
5371
|
type: (params === null || params === void 0 ? void 0 : params.type) || 'appointment_booking',
|
|
5394
5372
|
// 要从外面拿,virtual
|
|
@@ -5400,13 +5378,11 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
5400
5378
|
schedule_date: '',
|
|
5401
5379
|
is_deposit: 0,
|
|
5402
5380
|
relation_products: [],
|
|
5403
|
-
relation_forms: []
|
|
5404
|
-
business_code: params === null || params === void 0 ? void 0 : params.business_code
|
|
5381
|
+
relation_forms: []
|
|
5405
5382
|
}, (params === null || params === void 0 ? void 0 : params.extraData) || {});
|
|
5406
5383
|
var is_deposit = 0; // 是否存在定金,0 不存在,1 存在
|
|
5407
5384
|
if (params.cartItems.length > 0) {
|
|
5408
5385
|
params.cartItems.forEach(function (item) {
|
|
5409
|
-
var _params$extraData;
|
|
5410
5386
|
if (!item._origin.duration) {
|
|
5411
5387
|
var _generateDuration = generateDuration(item),
|
|
5412
5388
|
duration = _generateDuration.duration,
|
|
@@ -5418,11 +5394,6 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
5418
5394
|
var discountList = getAllDiscountList(item);
|
|
5419
5395
|
item._origin.product.discount_list = discountList;
|
|
5420
5396
|
|
|
5421
|
-
// 为预约补齐 holder 信息
|
|
5422
|
-
if (params !== null && params !== void 0 && (_params$extraData = params.extraData) !== null && _params$extraData !== void 0 && _params$extraData.is_add_holder_info) {
|
|
5423
|
-
ensureCartItemOriginHolder(item, _this32.window);
|
|
5424
|
-
}
|
|
5425
|
-
|
|
5426
5397
|
// 购物车是否为普通商品
|
|
5427
5398
|
if (isNormalProduct(item._origin)) {
|
|
5428
5399
|
var _order$relation_forms;
|
|
@@ -6080,7 +6051,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
6080
6051
|
}, {
|
|
6081
6052
|
key: "normalizeTempOrderForRuntime",
|
|
6082
6053
|
value: function normalizeTempOrderForRuntime(raw, options) {
|
|
6083
|
-
var
|
|
6054
|
+
var _this32 = this;
|
|
6084
6055
|
var runtimeRaw = this.withoutSyntheticDraftOrderIdForRuntime(raw);
|
|
6085
6056
|
var nextTempOrder = _objectSpread(_objectSpread({}, this.createDefaultTempOrderInstance()), runtimeRaw || {});
|
|
6086
6057
|
// ES 列表详情使用 id 表示订单主键;OS 详情态统一依赖 order_id 驱动操作按钮。
|
|
@@ -6104,12 +6075,12 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
6104
6075
|
nextTempOrder.holder = raw.holder && _typeof(raw.holder) === 'object' ? _objectSpread({}, raw.holder) : null;
|
|
6105
6076
|
var rawProducts = Array.isArray(raw.products) ? raw.products : [];
|
|
6106
6077
|
nextTempOrder.products = rawProducts.length > 0 ? rawProducts.map(function (p) {
|
|
6107
|
-
return
|
|
6078
|
+
return _this32.normalizeHydratedOrderProduct(p, {
|
|
6108
6079
|
makeEditMark: options === null || options === void 0 ? void 0 : options.makeEditMark
|
|
6109
6080
|
});
|
|
6110
6081
|
}) : [];
|
|
6111
6082
|
nextTempOrder.bookings = Array.isArray(raw.bookings) ? raw.bookings.map(function (b) {
|
|
6112
|
-
var booking =
|
|
6083
|
+
var booking = _this32.normalizeHydratedBookingHolder(b || {});
|
|
6113
6084
|
return _objectSpread(_objectSpread({}, booking), {}, {
|
|
6114
6085
|
is_all: normalizeBookingIsAll(booking),
|
|
6115
6086
|
sub_type: normalizeBookingSubType(booking)
|
|
@@ -6296,7 +6267,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
6296
6267
|
}, {
|
|
6297
6268
|
key: "normalizeHydratedOrderProduct",
|
|
6298
6269
|
value: function normalizeHydratedOrderProduct(product, options) {
|
|
6299
|
-
var
|
|
6270
|
+
var _this33 = this;
|
|
6300
6271
|
var row = _objectSpread({}, product || {});
|
|
6301
6272
|
if (row.num === undefined && row.product_quantity !== undefined) {
|
|
6302
6273
|
row.num = row.product_quantity;
|
|
@@ -6304,7 +6275,7 @@ export var OrderModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
6304
6275
|
var productSku = ensureProductSku(row);
|
|
6305
6276
|
row.product_sku = _objectSpread(_objectSpread({}, productSku), {}, {
|
|
6306
6277
|
option: normalizeProductSkuOptions(productSku.option.map(function (optionItem) {
|
|
6307
|
-
return
|
|
6278
|
+
return _this33.normalizeHydratedProductOptionItem(optionItem || {});
|
|
6308
6279
|
}))
|
|
6309
6280
|
});
|
|
6310
6281
|
delete row["product_".concat('option', "_item")];
|
|
@@ -396,7 +396,6 @@ export interface CommitOrderParams {
|
|
|
396
396
|
type: 'virtual' | 'appointment_booking';
|
|
397
397
|
platform?: string;
|
|
398
398
|
extraData?: Record<string, any>;
|
|
399
|
-
business_code?: string;
|
|
400
399
|
};
|
|
401
400
|
}
|
|
402
401
|
export interface OrderSubmitBooking {
|
|
@@ -572,12 +571,6 @@ export interface SyncPaymentsToOrderParams {
|
|
|
572
571
|
payments: OrderPaymentSource[];
|
|
573
572
|
paymentStatus?: SubmitSalesOrderParams['query']['payment_status'];
|
|
574
573
|
submitWhenPaid?: boolean;
|
|
575
|
-
/**
|
|
576
|
-
* Whether the checkout should be queued as the local `sync_sales` task.
|
|
577
|
-
* Defaults to true to preserve the WebPOS retry path. Set to false when
|
|
578
|
-
* the caller must wait for the cloud checkout response before proceeding.
|
|
579
|
-
*/
|
|
580
|
-
checkoutSyncTaskEnabled?: boolean;
|
|
581
574
|
smallTicketDataFlag?: number;
|
|
582
575
|
businessCode?: string;
|
|
583
576
|
channel?: string;
|
|
@@ -740,8 +733,6 @@ export interface OrderModuleAPI {
|
|
|
740
733
|
setEnableTempOrderPersist: (enabled: boolean) => void;
|
|
741
734
|
/** 是否允许 saveDraft 写入 IndexedDB 草稿。 */
|
|
742
735
|
isTempOrderPersistEnabled: () => boolean;
|
|
743
|
-
/** 提交 tempOrder 变更并触发 `{moduleName}:changed` 事件 */
|
|
744
|
-
notifyTempOrderChanged: () => void;
|
|
745
736
|
submitTempOrder: <T = any>(params?: {
|
|
746
737
|
cacheId?: string;
|
|
747
738
|
platform?: string;
|
|
@@ -15,7 +15,6 @@ export interface OrderProductsDepositSummary {
|
|
|
15
15
|
deposit_policy_ids: number[];
|
|
16
16
|
hasDeposit: boolean;
|
|
17
17
|
}
|
|
18
|
-
import type { WindowPlugin } from '../../plugins';
|
|
19
18
|
/**
|
|
20
19
|
* 把"含 option 的主商品单价"与 bundle 合成"单行 composite 单价"。
|
|
21
20
|
*
|
|
@@ -178,15 +177,6 @@ export declare const mergeRelationForms: (relationForms: {
|
|
|
178
177
|
form_id: number;
|
|
179
178
|
form_record_ids: number[];
|
|
180
179
|
}[];
|
|
181
|
-
export interface CartOrderHolder {
|
|
182
|
-
customer_id?: number;
|
|
183
|
-
form_id: number | string;
|
|
184
|
-
form_record: (number | string)[] | null;
|
|
185
|
-
}
|
|
186
|
-
/**
|
|
187
|
-
* 为购物车行补齐订单所需的 holder 信息(与 cartAccount 结构保持一致)
|
|
188
|
-
*/
|
|
189
|
-
export declare function ensureCartItemOriginHolder(cartItem: CartItem, window?: WindowPlugin): void;
|
|
190
180
|
export declare const getAllDiscountList: (cartItem: CartItem) => any;
|
|
191
181
|
export { createUuidV4 };
|
|
192
182
|
export declare function isTempOrder(data: any): data is OrderTempOrder;
|
|
@@ -20,7 +20,6 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
|
|
|
20
20
|
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; }
|
|
21
21
|
import dayjs from "dayjs";
|
|
22
22
|
import Decimal from 'decimal.js';
|
|
23
|
-
import { getProductHolderConfig } from "../Holder/utils";
|
|
24
23
|
import { buildProductLineFingerprint, createEmptySummary } from "../../solution/ScanOrder/utils";
|
|
25
24
|
import { createUuidV4 } from "./utils/orderCollectionIdentity";
|
|
26
25
|
/**
|
|
@@ -745,41 +744,10 @@ export var mergeRelationForms = function mergeRelationForms(relationForms) {
|
|
|
745
744
|
return item.form_record_ids.length > 0;
|
|
746
745
|
}); // 过滤掉没有有效记录的表单
|
|
747
746
|
};
|
|
748
|
-
function getCustomerIdFromStorage(window) {
|
|
749
|
-
try {
|
|
750
|
-
var _window$getLocalStora;
|
|
751
|
-
var customer = JSON.parse((window === null || window === void 0 || (_window$getLocalStora = window.getLocalStorage) === null || _window$getLocalStora === void 0 ? void 0 : _window$getLocalStora.call(window, 'customer')) || '{}');
|
|
752
|
-
var customerId = Number(customer === null || customer === void 0 ? void 0 : customer.id);
|
|
753
|
-
return Number.isFinite(customerId) && customerId > 0 ? customerId : undefined;
|
|
754
|
-
} catch (_unused) {
|
|
755
|
-
return undefined;
|
|
756
|
-
}
|
|
757
|
-
}
|
|
758
|
-
|
|
759
|
-
/**
|
|
760
|
-
* 为购物车行补齐订单所需的 holder 信息(与 cartAccount 结构保持一致)
|
|
761
|
-
*/
|
|
762
|
-
export function ensureCartItemOriginHolder(cartItem, window) {
|
|
763
|
-
var _cartItem$_origin, _cartItem$_productIni;
|
|
764
|
-
if (cartItem !== null && cartItem !== void 0 && (_cartItem$_origin = cartItem._origin) !== null && _cartItem$_origin !== void 0 && _cartItem$_origin.holder) {
|
|
765
|
-
return;
|
|
766
|
-
}
|
|
767
|
-
var holderConfig = getProductHolderConfig((_cartItem$_productIni = cartItem === null || cartItem === void 0 ? void 0 : cartItem._productInit) !== null && _cartItem$_productIni !== void 0 ? _cartItem$_productIni : cartItem === null || cartItem === void 0 ? void 0 : cartItem._productOrigin);
|
|
768
|
-
var formRecordId = cartItem === null || cartItem === void 0 ? void 0 : cartItem.holder_id;
|
|
769
|
-
if (!(holderConfig !== null && holderConfig !== void 0 && holderConfig.resource_id) || formRecordId == null) {
|
|
770
|
-
return;
|
|
771
|
-
}
|
|
772
|
-
cartItem._origin.holder = {
|
|
773
|
-
customer_id: getCustomerIdFromStorage(window),
|
|
774
|
-
form_id: holderConfig.resource_id,
|
|
775
|
-
form_record: [formRecordId]
|
|
776
|
-
};
|
|
777
|
-
}
|
|
778
|
-
;
|
|
779
747
|
export var getAllDiscountList = function getAllDiscountList(cartItem) {
|
|
780
|
-
var _cartItem$
|
|
781
|
-
var discountList = (cartItem === null || cartItem === void 0 || (_cartItem$
|
|
782
|
-
((cartItem === null || cartItem === void 0 || (_cartItem$
|
|
748
|
+
var _cartItem$_origin, _cartItem$_origin2;
|
|
749
|
+
var discountList = (cartItem === null || cartItem === void 0 || (_cartItem$_origin = cartItem._origin) === null || _cartItem$_origin === void 0 || (_cartItem$_origin = _cartItem$_origin.product) === null || _cartItem$_origin === void 0 ? void 0 : _cartItem$_origin.discount_list) || [];
|
|
750
|
+
((cartItem === null || cartItem === void 0 || (_cartItem$_origin2 = cartItem._origin) === null || _cartItem$_origin2 === void 0 || (_cartItem$_origin2 = _cartItem$_origin2.product) === null || _cartItem$_origin2 === void 0 ? void 0 : _cartItem$_origin2.product_bundle) || []).forEach(function (item) {
|
|
783
751
|
discountList = [].concat(_toConsumableArray(discountList), _toConsumableArray((item === null || item === void 0 ? void 0 : item.discount_list) || []));
|
|
784
752
|
item.discount_list = undefined;
|
|
785
753
|
});
|
|
@@ -157,10 +157,6 @@ export var ProductList = /*#__PURE__*/function (_BaseModule) {
|
|
|
157
157
|
userPlugin,
|
|
158
158
|
customer_id,
|
|
159
159
|
_userPlugin$get,
|
|
160
|
-
channelMap,
|
|
161
|
-
rawApplicationCode,
|
|
162
|
-
mappedApplicationCode,
|
|
163
|
-
queryPayload,
|
|
164
160
|
productsData,
|
|
165
161
|
sortedList,
|
|
166
162
|
_args4 = arguments;
|
|
@@ -189,16 +185,8 @@ export var ProductList = /*#__PURE__*/function (_BaseModule) {
|
|
|
189
185
|
console.error(error);
|
|
190
186
|
}
|
|
191
187
|
// 如果没传schedule_date,则从
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
scan_to_order: 'online-store',
|
|
195
|
-
'scan-to-order': 'online-store',
|
|
196
|
-
scan_to_order_2: 'mobile_order',
|
|
197
|
-
scan_to_order_3: 'scantoorder3'
|
|
198
|
-
};
|
|
199
|
-
rawApplicationCode = (_this$otherParams = this.otherParams) === null || _this$otherParams === void 0 ? void 0 : _this$otherParams.channel;
|
|
200
|
-
mappedApplicationCode = typeof rawApplicationCode === 'string' ? channelMap[rawApplicationCode] || rawApplicationCode : rawApplicationCode;
|
|
201
|
-
queryPayload = _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({
|
|
188
|
+
_context4.next = 7;
|
|
189
|
+
return this.request.post("/product/query", {
|
|
202
190
|
open_quotation: 1,
|
|
203
191
|
open_bundle: 0,
|
|
204
192
|
exclude_extension_type: ['product_party', 'product_event', 'product_series_event', 'product_package_ticket', 'ticket', 'event_item'],
|
|
@@ -206,35 +194,28 @@ export var ProductList = /*#__PURE__*/function (_BaseModule) {
|
|
|
206
194
|
status: status,
|
|
207
195
|
num: 500,
|
|
208
196
|
skip: 1,
|
|
209
|
-
customer_id: customer_id
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
collection: collection
|
|
216
|
-
} : {}), {}, {
|
|
217
|
-
front_end_cache_id: cacheId
|
|
218
|
-
}, Array.isArray(menu_list_ids) && menu_list_ids.length ? {
|
|
219
|
-
menu_list_ids: menu_list_ids
|
|
220
|
-
} : {}), {}, {
|
|
197
|
+
customer_id: customer_id,
|
|
198
|
+
category_ids: category_ids,
|
|
199
|
+
ids: product_ids,
|
|
200
|
+
collection: collection,
|
|
201
|
+
front_end_cache_id: cacheId,
|
|
202
|
+
menu_list_ids: menu_list_ids,
|
|
221
203
|
with_count: with_count,
|
|
222
204
|
// client_schedule_ids: schedule_ids,
|
|
223
205
|
schedule_date: schedule_date,
|
|
224
|
-
application_code:
|
|
206
|
+
application_code: (_this$otherParams = this.otherParams) === null || _this$otherParams === void 0 ? void 0 : _this$otherParams.channel,
|
|
225
207
|
is_eject: 1,
|
|
226
208
|
with_schedule: with_schedule,
|
|
227
209
|
schedule_datetime: schedule_datetime,
|
|
228
|
-
extension_type: extension_type
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
return this.request.post("/product/query", queryPayload, {
|
|
210
|
+
extension_type: extension_type,
|
|
211
|
+
strategy_context: strategy_context
|
|
212
|
+
}, {
|
|
232
213
|
osServer: true,
|
|
233
214
|
callback: options === null || options === void 0 ? void 0 : options.callback,
|
|
234
215
|
subscriberId: options === null || options === void 0 ? void 0 : options.subscriberId,
|
|
235
216
|
customToast: function customToast() {}
|
|
236
217
|
});
|
|
237
|
-
case
|
|
218
|
+
case 7:
|
|
238
219
|
productsData = _context4.sent;
|
|
239
220
|
sortedList = (productsData.data.list || []).slice().sort(function (a, b) {
|
|
240
221
|
return Number(b.sort) - Number(a.sort);
|
|
@@ -247,7 +228,7 @@ export var ProductList = /*#__PURE__*/function (_BaseModule) {
|
|
|
247
228
|
// }
|
|
248
229
|
this.addProduct(sortedList);
|
|
249
230
|
return _context4.abrupt("return", sortedList);
|
|
250
|
-
case
|
|
231
|
+
case 11:
|
|
251
232
|
case "end":
|
|
252
233
|
return _context4.stop();
|
|
253
234
|
}
|
|
@@ -21,7 +21,7 @@ export declare class QuotationModule extends BaseModule implements Module {
|
|
|
21
21
|
* Look up the quotation price for a specific product (+ optional variant) at a given datetime.
|
|
22
22
|
* Returns the price as a string (e.g. "300.00"), or null if no quotation applies.
|
|
23
23
|
*
|
|
24
|
-
* Priority: iterates quotations already sorted by `sort`
|
|
24
|
+
* Priority: iterates quotations already sorted by `sort` ascending (lowest = highest priority).
|
|
25
25
|
* First matching quotation whose schedule covers `datetime` and whose product_data contains
|
|
26
26
|
* the requested productId wins.
|
|
27
27
|
*/
|
|
@@ -90,7 +90,7 @@ export var QuotationModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
90
90
|
res = _context2.sent;
|
|
91
91
|
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) || [];
|
|
92
92
|
list.sort(function (a, b) {
|
|
93
|
-
return
|
|
93
|
+
return a.sort - b.sort;
|
|
94
94
|
});
|
|
95
95
|
this.store.list = list;
|
|
96
96
|
case 9:
|
|
@@ -151,7 +151,7 @@ export var QuotationModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
151
151
|
* Look up the quotation price for a specific product (+ optional variant) at a given datetime.
|
|
152
152
|
* Returns the price as a string (e.g. "300.00"), or null if no quotation applies.
|
|
153
153
|
*
|
|
154
|
-
* Priority: iterates quotations already sorted by `sort`
|
|
154
|
+
* Priority: iterates quotations already sorted by `sort` ascending (lowest = highest priority).
|
|
155
155
|
* First matching quotation whose schedule covers `datetime` and whose product_data contains
|
|
156
156
|
* the requested productId wins.
|
|
157
157
|
*/
|