@pisell/pisellos 2.2.162 → 2.2.164

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (116) hide show
  1. package/dist/modules/BookingContext/index.d.ts +37 -0
  2. package/dist/modules/BookingContext/index.js +436 -0
  3. package/dist/modules/BookingContext/types.d.ts +102 -0
  4. package/dist/modules/BookingContext/types.js +51 -0
  5. package/dist/modules/BookingContext/utils/buildCacheItemFromOrderLine.d.ts +16 -0
  6. package/dist/modules/BookingContext/utils/buildCacheItemFromOrderLine.js +157 -0
  7. package/dist/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.d.ts +8 -0
  8. package/dist/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.js +107 -0
  9. package/dist/modules/BookingContext/utils/cacheItemToBookingInput.d.ts +65 -0
  10. package/dist/modules/BookingContext/utils/cacheItemToBookingInput.js +191 -0
  11. package/dist/modules/BookingContext/utils/flexible.d.ts +28 -0
  12. package/dist/modules/BookingContext/utils/flexible.js +56 -0
  13. package/dist/modules/BookingContext/utils/formatResourceList.d.ts +8 -0
  14. package/dist/modules/BookingContext/utils/formatResourceList.js +38 -0
  15. package/dist/modules/BookingContext/utils/index.d.ts +11 -0
  16. package/dist/modules/BookingContext/utils/index.js +11 -0
  17. package/dist/modules/BookingContext/utils/noResource.d.ts +13 -0
  18. package/dist/modules/BookingContext/utils/noResource.js +77 -0
  19. package/dist/modules/BookingContext/utils/productExtend.d.ts +72 -0
  20. package/dist/modules/BookingContext/utils/productExtend.js +339 -0
  21. package/dist/modules/BookingContext/utils/resourceErrors.d.ts +41 -0
  22. package/dist/modules/BookingContext/utils/resourceErrors.js +74 -0
  23. package/dist/modules/BookingContext/utils/resourceSelection.d.ts +7 -0
  24. package/dist/modules/BookingContext/utils/resourceSelection.js +24 -0
  25. package/dist/modules/BookingContext/utils/resources.d.ts +80 -0
  26. package/dist/modules/BookingContext/utils/resources.js +486 -0
  27. package/dist/modules/BookingContext/utils/serviceTimes.d.ts +55 -0
  28. package/dist/modules/BookingContext/utils/serviceTimes.js +151 -0
  29. package/dist/modules/BookingContext/utils/timeSlices.d.ts +42 -0
  30. package/dist/modules/BookingContext/utils/timeSlices.js +100 -0
  31. package/dist/modules/Customer/index.js +23 -22
  32. package/dist/modules/Discount/index.js +4 -3
  33. package/dist/modules/Order/index.d.ts +17 -6
  34. package/dist/modules/Order/index.js +474 -287
  35. package/dist/modules/Order/types.d.ts +32 -12
  36. package/dist/modules/Order/utils.js +9 -8
  37. package/dist/modules/SalesSummary/index.js +4 -2
  38. package/dist/modules/index.d.ts +1 -0
  39. package/dist/modules/index.js +2 -1
  40. package/dist/solution/BaseSales/index.d.ts +38 -7
  41. package/dist/solution/BaseSales/index.js +797 -310
  42. package/dist/solution/BaseSales/types.d.ts +48 -1
  43. package/dist/solution/BaseSales/utils/quotationPrice.d.ts +7 -0
  44. package/dist/solution/BaseSales/utils/quotationPrice.js +159 -0
  45. package/dist/solution/BookingByStep/index.d.ts +2 -2
  46. package/dist/solution/BookingTicket/index.d.ts +121 -1
  47. package/dist/solution/BookingTicket/index.js +401 -72
  48. package/dist/solution/BookingTicket/types.d.ts +2 -0
  49. package/dist/solution/BookingTicket/types.js +3 -0
  50. package/dist/solution/BookingTicket/utils/addProductDecision.d.ts +111 -0
  51. package/dist/solution/BookingTicket/utils/addProductDecision.js +326 -0
  52. package/dist/solution/ScanOrder/index.d.ts +9 -3
  53. package/dist/solution/ScanOrder/index.js +231 -128
  54. package/dist/solution/VenueBooking/index.d.ts +4 -2
  55. package/dist/solution/VenueBooking/index.js +103 -55
  56. package/dist/solution/VenueBooking/utils/slotMerge.d.ts +4 -0
  57. package/dist/solution/VenueBooking/utils/slotMerge.js +10 -0
  58. package/lib/model/strategy/adapter/promotion/index.js +0 -49
  59. package/lib/modules/BookingContext/index.d.ts +37 -0
  60. package/lib/modules/BookingContext/index.js +297 -0
  61. package/lib/modules/BookingContext/types.d.ts +102 -0
  62. package/lib/modules/BookingContext/types.js +34 -0
  63. package/lib/modules/BookingContext/utils/buildCacheItemFromOrderLine.d.ts +16 -0
  64. package/lib/modules/BookingContext/utils/buildCacheItemFromOrderLine.js +174 -0
  65. package/lib/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.d.ts +8 -0
  66. package/lib/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.js +115 -0
  67. package/lib/modules/BookingContext/utils/cacheItemToBookingInput.d.ts +65 -0
  68. package/lib/modules/BookingContext/utils/cacheItemToBookingInput.js +177 -0
  69. package/lib/modules/BookingContext/utils/flexible.d.ts +28 -0
  70. package/lib/modules/BookingContext/utils/flexible.js +80 -0
  71. package/lib/modules/BookingContext/utils/formatResourceList.d.ts +8 -0
  72. package/lib/modules/BookingContext/utils/formatResourceList.js +50 -0
  73. package/lib/modules/BookingContext/utils/index.d.ts +11 -0
  74. package/lib/modules/BookingContext/utils/index.js +43 -0
  75. package/lib/modules/BookingContext/utils/noResource.d.ts +13 -0
  76. package/lib/modules/BookingContext/utils/noResource.js +90 -0
  77. package/lib/modules/BookingContext/utils/productExtend.d.ts +72 -0
  78. package/lib/modules/BookingContext/utils/productExtend.js +283 -0
  79. package/lib/modules/BookingContext/utils/resourceErrors.d.ts +41 -0
  80. package/lib/modules/BookingContext/utils/resourceErrors.js +80 -0
  81. package/lib/modules/BookingContext/utils/resourceSelection.d.ts +7 -0
  82. package/lib/modules/BookingContext/utils/resourceSelection.js +46 -0
  83. package/lib/modules/BookingContext/utils/resources.d.ts +80 -0
  84. package/lib/modules/BookingContext/utils/resources.js +377 -0
  85. package/lib/modules/BookingContext/utils/serviceTimes.d.ts +55 -0
  86. package/lib/modules/BookingContext/utils/serviceTimes.js +162 -0
  87. package/lib/modules/BookingContext/utils/timeSlices.d.ts +42 -0
  88. package/lib/modules/BookingContext/utils/timeSlices.js +124 -0
  89. package/lib/modules/Customer/index.js +8 -8
  90. package/lib/modules/Discount/index.js +5 -1
  91. package/lib/modules/Order/index.d.ts +17 -6
  92. package/lib/modules/Order/index.js +164 -68
  93. package/lib/modules/Order/types.d.ts +32 -12
  94. package/lib/modules/Order/utils.js +8 -6
  95. package/lib/modules/SalesSummary/index.js +4 -2
  96. package/lib/modules/index.d.ts +1 -0
  97. package/lib/modules/index.js +3 -1
  98. package/lib/solution/BaseSales/index.d.ts +38 -7
  99. package/lib/solution/BaseSales/index.js +304 -14
  100. package/lib/solution/BaseSales/types.d.ts +48 -1
  101. package/lib/solution/BaseSales/utils/quotationPrice.d.ts +7 -0
  102. package/lib/solution/BaseSales/utils/quotationPrice.js +201 -0
  103. package/lib/solution/BookingByStep/index.d.ts +2 -2
  104. package/lib/solution/BookingTicket/index.d.ts +121 -1
  105. package/lib/solution/BookingTicket/index.js +207 -2
  106. package/lib/solution/BookingTicket/types.d.ts +2 -0
  107. package/lib/solution/BookingTicket/types.js +6 -0
  108. package/lib/solution/BookingTicket/utils/addProductDecision.d.ts +111 -0
  109. package/lib/solution/BookingTicket/utils/addProductDecision.js +300 -0
  110. package/lib/solution/ScanOrder/index.d.ts +9 -3
  111. package/lib/solution/ScanOrder/index.js +147 -66
  112. package/lib/solution/VenueBooking/index.d.ts +4 -2
  113. package/lib/solution/VenueBooking/index.js +50 -14
  114. package/lib/solution/VenueBooking/utils/slotMerge.d.ts +4 -0
  115. package/lib/solution/VenueBooking/utils/slotMerge.js +10 -0
  116. package/package.json +1 -1
@@ -103,9 +103,9 @@ export interface OrderSummary {
103
103
  export interface OrderTempOrder {
104
104
  order_id: number | null;
105
105
  external_sale_number: string;
106
- order_number: string;
107
- shop_order_number: string;
108
- shop_full_order_number: string;
106
+ order_number: string | null;
107
+ shop_order_number: string | null;
108
+ shop_full_order_number: string | null;
109
109
  type: string;
110
110
  business_code: string;
111
111
  platform: string;
@@ -157,7 +157,7 @@ export interface OrderSubmitProduct extends Omit<OrderProduct, 'unique_identific
157
157
  payment_price: string;
158
158
  product_sku: Record<string, any>;
159
159
  }
160
- export interface OrderSubmitPayload extends Omit<OrderTempOrder, 'platform' | 'products' | '_extend' | 'customer' | 'shop_full_order_number'> {
160
+ export interface OrderSubmitPayload extends Omit<OrderTempOrder, 'platform' | 'products' | '_extend' | 'customer'> {
161
161
  platform: string;
162
162
  request_unique_idempotency_token?: string;
163
163
  form_record_ids?: Array<{
@@ -176,16 +176,27 @@ export interface OrderState {
176
176
  discount: DiscountModule | null;
177
177
  rules: RulesModule | null;
178
178
  }
179
+ export interface ReplaceTempOrderOptions {
180
+ recalculateSummary?: boolean;
181
+ persist?: boolean;
182
+ saveDraft?: boolean;
183
+ }
184
+ export type AddProductBookingInput = Record<string, any>;
179
185
  /** 更新购物车行:仅传 SKU 时命中同 SKU 第一行;多行同 SKU 须传 unique_identification_number / 选项指纹等 */
180
- export interface UpdateProductInOrderParams {
186
+ export interface UpdateOrderProductParams {
181
187
  product_id: number | null;
182
188
  product_variant_id: number;
183
189
  updates: Partial<OrderProduct>;
184
190
  unique_identification_number?: string;
191
+ identity_key?: string;
185
192
  product_option_item?: any[];
186
193
  product_bundle?: any[];
194
+ booking?: AddProductBookingInput;
195
+ }
196
+ export interface UpdateOrderBookingParams {
197
+ unique_identification_number: string;
198
+ updates: AddProductBookingInput;
187
199
  }
188
- export type AddProductBookingInput = Record<string, any>;
189
200
  export interface OrderProductMergeDecisionContext {
190
201
  incomingProduct: Partial<OrderProduct> & OrderProductIdentity;
191
202
  normalizedIncoming: OrderProduct;
@@ -236,8 +247,9 @@ export interface SubmitSalesOrderParams {
236
247
  query: {
237
248
  order_id: number | null;
238
249
  external_sale_number: string;
239
- order_number: string;
240
- shop_order_number: string;
250
+ order_number: string | null;
251
+ shop_order_number: string | null;
252
+ shop_full_order_number: string | null;
241
253
  type: string;
242
254
  business_code: string;
243
255
  platform: string;
@@ -446,6 +458,7 @@ export interface OrderModuleAPI {
446
458
  }) => void;
447
459
  getTempOrder: () => OrderTempOrder | null;
448
460
  ensureTempOrder: () => OrderTempOrder;
461
+ replaceTempOrder: (tempOrder: OrderTempOrder, options?: ReplaceTempOrderOptions) => Promise<OrderTempOrder>;
449
462
  addNewOrder: () => Promise<OrderTempOrder>;
450
463
  restoreOrder: () => OrderTempOrder;
451
464
  getOrderProducts: () => OrderProduct[];
@@ -458,13 +471,18 @@ export interface OrderModuleAPI {
458
471
  getOrderSyncState: () => OrderSyncState;
459
472
  getOrderAmountSnapshot: () => OrderAmountSnapshot | null;
460
473
  getTempOrderNote: () => string;
461
- updateTempOrderNote: (note: string) => string;
474
+ updateTempOrderNote: {
475
+ (note: string): string;
476
+ (note: string, sync: true): Promise<string>;
477
+ (note: string, sync: boolean): string | Promise<string>;
478
+ };
462
479
  updateTempOrderShopDiscount: (amount: string | number) => string;
463
480
  updateTempOrderCustomer: (customer: UpdateTempOrderCustomerInput) => OrderSnapshot['customer'];
464
481
  updateTempOrderBuzzer: (buzzer: string) => string;
465
482
  updateTempOrderContactsInfo: (contactsInfo: Record<string, any> | null) => Record<string, any> | null;
466
483
  addProductToOrder: (product: Partial<OrderProduct> & OrderProductIdentity, booking?: AddProductBookingInput) => Promise<OrderProduct[]>;
467
- updateProductInOrder: (params: UpdateProductInOrderParams) => Promise<OrderProduct[]>;
484
+ updateOrderProduct: (params: UpdateOrderProductParams) => Promise<OrderProduct[]>;
485
+ updateOrderBooking: (params: UpdateOrderBookingParams) => any[];
468
486
  removeProductFromOrder: (identity: OrderProductIdentity) => Promise<OrderProduct[]>;
469
487
  persistTempOrder: () => void;
470
488
  submitTempOrder: <T = any>(params?: {
@@ -516,8 +534,10 @@ export interface OrderModuleAPI {
516
534
  clearOrderCustomer: () => void;
517
535
  loadDiscountConfig: (params: {
518
536
  customerId: number;
519
- action?: 'create';
520
- }) => Promise<void>;
537
+ action?: 'create' | 'edit';
538
+ orderId?: number;
539
+ apply?: boolean;
540
+ }) => Promise<Discount[]>;
521
541
  getDiscountList: () => Discount[];
522
542
  applyDiscount: () => void;
523
543
  /**
@@ -425,9 +425,9 @@ function createDefaultTempOrder(params) {
425
425
  return {
426
426
  order_id: null,
427
427
  external_sale_number: "",
428
- order_number: "",
429
- shop_order_number: "",
430
- shop_full_order_number: "",
428
+ order_number: null,
429
+ shop_order_number: null,
430
+ shop_full_order_number: null,
431
431
  type: "appointment_booking",
432
432
  business_code: "appointment_booking",
433
433
  platform: "h5",
@@ -436,7 +436,7 @@ function createDefaultTempOrder(params) {
436
436
  status: "normal",
437
437
  payment_status: "payment_processing",
438
438
  shipping_status: "unfulfilled",
439
- customer_id: null,
439
+ customer_id: 0,
440
440
  customer_name: "",
441
441
  country_calling_code: "",
442
442
  phone: "",
@@ -496,7 +496,6 @@ function buildSubmitPayload(params) {
496
496
  shop_service_type: _shopServiceType,
497
497
  start_time: _startTime,
498
498
  customer: _customer,
499
- shop_full_order_number: _shopFullOrderNumber,
500
499
  tax_fee: _rootTaxFee,
501
500
  total_amount: _totalAmount,
502
501
  total_refund_amount: _totalRefundAmount,
@@ -506,6 +505,9 @@ function buildSubmitPayload(params) {
506
505
  } = tempOrder;
507
506
  const payload = {
508
507
  ...tempOrderRest,
508
+ order_number: null,
509
+ shop_order_number: null,
510
+ shop_full_order_number: null,
509
511
  platform: normalizeSubmitPlatform(platform),
510
512
  request_unique_idempotency_token: tempOrder.request_unique_idempotency_token || `${tempOrder.external_sale_number}_${now.getTime()}`,
511
513
  type: type ?? tempOrder.type ?? "table-order",
@@ -526,7 +528,7 @@ function buildSubmitPayload(params) {
526
528
  schedule_date: scheduleDate,
527
529
  created_at: tempOrder.created_at || formatDateTime(now),
528
530
  bookings: (tempOrder.bookings || []).filter(
529
- (booking) => Number(booking.parent_id ?? 0) !== 0
531
+ (booking) => Number(booking.parent_id) !== 0
530
532
  ).map((booking) => normalizeSubmitBooking(booking)),
531
533
  payments: tempOrder.payments || [],
532
534
  // discount_list: tempOrder.discount_list || [],
@@ -30,7 +30,8 @@ __reExport(SalesSummary_exports, require("./types"), module.exports);
30
30
  var salesSummaryDataKeys = {
31
31
  isPriceIncludeTax: "is_price_include_tax",
32
32
  taxRate: "tax_rate",
33
- taxTitle: "tax_title"
33
+ taxTitle: "tax_title",
34
+ taxCountryCode: "tax_country_code"
34
35
  };
35
36
  var SalesSummaryModule = class extends import_BaseModule.BaseModule {
36
37
  constructor(name, version) {
@@ -84,7 +85,8 @@ var SalesSummaryModule = class extends import_BaseModule.BaseModule {
84
85
  return {
85
86
  isPriceIncludeTax: this.getAppData(salesSummaryDataKeys.isPriceIncludeTax),
86
87
  taxRate: this.getAppData(salesSummaryDataKeys.taxRate),
87
- taxTitle: this.getAppData(salesSummaryDataKeys.taxTitle)
88
+ taxTitle: this.getAppData(salesSummaryDataKeys.taxTitle),
89
+ taxCountryCode: this.getAppData(salesSummaryDataKeys.taxCountryCode)
88
90
  };
89
91
  }
90
92
  async getSummary(params) {
@@ -16,3 +16,4 @@ export * from './Schedule';
16
16
  export * from './Quotation';
17
17
  export * from './ScanOrderLogger';
18
18
  export * from './OpenData';
19
+ export * from './BookingContext';
@@ -34,6 +34,7 @@ __reExport(modules_exports, require("./Schedule"), module.exports);
34
34
  __reExport(modules_exports, require("./Quotation"), module.exports);
35
35
  __reExport(modules_exports, require("./ScanOrderLogger"), module.exports);
36
36
  __reExport(modules_exports, require("./OpenData"), module.exports);
37
+ __reExport(modules_exports, require("./BookingContext"), module.exports);
37
38
  // Annotate the CommonJS export names for ESM import in node:
38
39
  0 && (module.exports = {
39
40
  ...require("./Product"),
@@ -53,5 +54,6 @@ __reExport(modules_exports, require("./OpenData"), module.exports);
53
54
  ...require("./Schedule"),
54
55
  ...require("./Quotation"),
55
56
  ...require("./ScanOrderLogger"),
56
- ...require("./OpenData")
57
+ ...require("./OpenData"),
58
+ ...require("./BookingContext")
57
59
  });
@@ -1,8 +1,8 @@
1
1
  import { Module, ModuleOptions, PisellCore } from '../../types';
2
2
  import { BaseModule } from '../../modules/BaseModule';
3
- import { BaseSalesOrderProduct, BaseSalesOrderProductIdentity, BaseSalesPaymentStatus, BaseSalesScanCodeResult } from './types';
3
+ import { BaseSalesOrderProduct, BaseSalesOrderProductIdentity, BaseSalesPaymentStatus, BaseSalesCalculateProductBookingPriceParams, BaseSalesProductBookingPriceResult, BaseSalesScanCodeResult } from './types';
4
4
  import { OrderModule } from '../../modules/Order';
5
- import type { AddProductBookingInput, LoadSalesDetailParams, OrderPaymentData, OrderPaymentSource, SendCustomerPayLinkParams, SyncPaymentsToOrderParams, SyncPaymentsToOrderResult, UpdateTempOrderCustomerInput, UpdateProductInOrderParams } from '../../modules/Order/types';
5
+ import type { AddProductBookingInput, LoadSalesDetailParams, OrderPaymentData, OrderPaymentSource, SendCustomerPayLinkParams, SyncPaymentsToOrderParams, SyncPaymentsToOrderResult, UpdateTempOrderCustomerInput, UpdateOrderBookingParams, UpdateOrderProductParams, OrderTempOrder } from '../../modules/Order/types';
6
6
  import type { SubmitPayloadEnhancer } from '../../modules/Order/utils';
7
7
  import type { Discount } from '../../modules/Discount/types';
8
8
  import { RequestPlugin, WindowPlugin } from '../../plugins';
@@ -11,6 +11,7 @@ import { ProductList } from '../../modules/ProductList';
11
11
  import { PaymentModule } from '../../modules/Payment';
12
12
  import type { SalesSummaryModule } from '../../modules/SalesSummary';
13
13
  import type { ScheduleModule } from '../../modules/Schedule';
14
+ import { QuotationModule } from '../../modules/Quotation';
14
15
  import type { ISalesDetail, ISalesDetailHeader, ISalesBooking, ISalesPayment, ISalesSurcharge } from './utils/parseSalesResponse';
15
16
  import { type TransformBaseProductToOrderProductParams } from './utils/transformBaseProductToOrderProduct';
16
17
  export interface BaseSalesState {
@@ -19,6 +20,7 @@ export interface BaseSalesState {
19
20
  payment?: PaymentModule;
20
21
  salesSummary?: SalesSummaryModule;
21
22
  schedule?: ScheduleModule;
23
+ quotation?: QuotationModule;
22
24
  }
23
25
  export declare class BaseSalesImpl extends BaseModule implements Module {
24
26
  protected defaultName: string;
@@ -26,6 +28,7 @@ export declare class BaseSalesImpl extends BaseModule implements Module {
26
28
  isSolution: boolean;
27
29
  protected initializeOptions: ModuleOptions;
28
30
  private logger;
31
+ private appPlugin;
29
32
  protected store: BaseSalesState;
30
33
  protected otherParams: Record<string, any>;
31
34
  protected cacheId: string | undefined;
@@ -39,7 +42,7 @@ export declare class BaseSalesImpl extends BaseModule implements Module {
39
42
  constructor(name?: string, version?: string);
40
43
  /**
41
44
  * 子类可覆盖此方法以追加/收敛要注册的子模块。
42
- * 默认包含通用销售模块:products / order / salesSummary / schedule / payment。
45
+ * 默认包含通用销售模块:products / order / salesSummary / schedule / payment / quotation
43
46
  */
44
47
  protected getRegisteredModuleNames(): readonly string[];
45
48
  /**
@@ -55,6 +58,10 @@ export declare class BaseSalesImpl extends BaseModule implements Module {
55
58
  */
56
59
  private logError;
57
60
  get payment(): PaymentModule | undefined;
61
+ private getCurrentOrderCustomerId;
62
+ private applyQuotationScheduleResolver;
63
+ private loadQuotationForPriceQuery;
64
+ protected getSubmitOrderSalesChannel(): string | undefined;
58
65
  /**
59
66
  * 工厂入口:根据子模块名实例化对应模块。
60
67
  * 默认使用 BookingByStep 公共 `createModule`。子类若需引入额外类型(如 customer),
@@ -67,6 +74,8 @@ export declare class BaseSalesImpl extends BaseModule implements Module {
67
74
  * sessionStorage 损坏时静默忽略,按空状态注册。
68
75
  */
69
76
  protected readSessionCacheData(): Record<string, any>;
77
+ private getAppData;
78
+ private syncAppDataToTempOrder;
70
79
  initialize(core: PisellCore, options?: ModuleOptions): Promise<void>;
71
80
  destroy(): Promise<void>;
72
81
  /**
@@ -91,27 +100,47 @@ export declare class BaseSalesImpl extends BaseModule implements Module {
91
100
  getPayments(): ISalesPayment[];
92
101
  /** 获取附加费用(运费/服务费/税费等)。 */
93
102
  getSurcharges(): ISalesSurcharge[];
94
- getTempOrder(): import("../../modules/Order/types").OrderTempOrder | null;
103
+ getTempOrder(): OrderTempOrder | null;
104
+ replaceTempOrder(tempOrder: OrderTempOrder): Promise<OrderTempOrder>;
95
105
  getOrderIdentity(): import("../../modules/Order/types").OrderIdentitySnapshot | null;
96
106
  getOrderSnapshot(): import("../../modules/Order/types").OrderSnapshot | null;
97
107
  getOrderSyncState(): import("../../modules/Order/types").OrderSyncState;
98
108
  getOrderAmountSnapshot(): import("../../modules/Order/types").OrderAmountSnapshot | null;
99
109
  getTempOrderNote(): string;
100
110
  updateTempOrderNote(note: string): string;
111
+ updateTempOrderNote(note: string, sync: true): Promise<string>;
112
+ updateTempOrderNote(note: string, sync: boolean): string | Promise<string>;
101
113
  updateTempOrderShopDiscount(amount: string | number): string;
102
114
  updateTempOrderContactsInfo(contactsInfo: Record<string, any> | null): Record<string, any> | null;
103
115
  private ensureTempOrder;
104
- addNewOrder(): Promise<import("../../modules/Order/types").OrderTempOrder>;
116
+ addNewOrder(): Promise<OrderTempOrder>;
105
117
  saveDraft(): Promise<void>;
106
- restoreOrder(): Promise<import("../../modules/Order/types").OrderTempOrder>;
118
+ restoreOrder(): Promise<OrderTempOrder>;
107
119
  getOrderProducts(): import("../../modules/Order/types").OrderProduct[];
108
120
  getSummary(): Promise<import("../../modules/Order/types").OrderSummary>;
121
+ private getHistoricalProductDiscountList;
122
+ private mergeHistoricalDiscountList;
123
+ loadDiscountConfig(params?: {
124
+ customerId?: number;
125
+ action?: 'create' | 'edit';
126
+ }): Promise<{
127
+ productList: Record<string, any>[];
128
+ discountList: Discount[];
129
+ }>;
130
+ bestDiscount(cb?: (result: any) => void): Promise<{
131
+ productList: Record<string, any>[];
132
+ discountList: Discount[];
133
+ }>;
109
134
  getDiscountList(): Discount[];
110
135
  scanPromotionCode(code: string, customerId?: number): Promise<BaseSalesScanCodeResult>;
111
136
  setDiscountSelected(params: {
112
137
  discountId: number;
113
138
  isSelected: boolean;
114
139
  }): Promise<void>;
140
+ applyDiscountCalculationResult(result?: {
141
+ productList?: Record<string, any>[];
142
+ discountList?: Discount[];
143
+ }): Promise<void>;
115
144
  submitScanOrder<T = any>(params?: {
116
145
  payments?: OrderPaymentSource[];
117
146
  paymentStatus?: BaseSalesPaymentStatus;
@@ -183,8 +212,10 @@ export declare class BaseSalesImpl extends BaseModule implements Module {
183
212
  submitBeforeSend?: boolean;
184
213
  }): Promise<T>;
185
214
  transformBaseProductToOrderProduct(params: TransformBaseProductToOrderProductParams): import("./utils/transformBaseProductToOrderProduct").BaseProductOrderProductInput | null;
215
+ calculateProductBookingPrice(params: BaseSalesCalculateProductBookingPriceParams): Promise<BaseSalesProductBookingPriceResult>;
186
216
  addProductToOrder(product: Partial<BaseSalesOrderProduct> & BaseSalesOrderProductIdentity, booking?: AddProductBookingInput): Promise<import("../../modules/Order/types").OrderProduct[]>;
187
- updateProductInOrder(params: UpdateProductInOrderParams): Promise<import("../../modules/Order/types").OrderProduct[]>;
217
+ updateOrderProduct(params: UpdateOrderProductParams): Promise<import("../../modules/Order/types").OrderProduct[]>;
218
+ updateOrderBooking(params: UpdateOrderBookingParams): any[];
188
219
  /**
189
220
  * 设置单行商品备注(与整单 `updateTempOrderNote` 区分)。
190
221
  * 多行同 SKU 时必须传入与删除/更新一致的 unique_identification_number。