@pisell/pisellos 2.2.171 → 2.2.172

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 (156) 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 +193 -0
  7. package/dist/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.d.ts +8 -0
  8. package/dist/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.js +137 -0
  9. package/dist/modules/BookingContext/utils/cacheItemToBookingInput.d.ts +75 -0
  10. package/dist/modules/BookingContext/utils/cacheItemToBookingInput.js +215 -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.d.ts +6 -0
  32. package/dist/modules/Customer/index.js +129 -83
  33. package/dist/modules/Customer/types.d.ts +2 -0
  34. package/dist/modules/Discount/index.d.ts +2 -4
  35. package/dist/modules/Discount/index.js +8 -93
  36. package/dist/modules/Discount/types.d.ts +1 -7
  37. package/dist/modules/Order/index.d.ts +47 -16
  38. package/dist/modules/Order/index.js +743 -334
  39. package/dist/modules/Order/types.d.ts +57 -17
  40. package/dist/modules/Order/types.js +2 -0
  41. package/dist/modules/Order/utils/manualProductDiscount.d.ts +106 -0
  42. package/dist/modules/Order/utils/manualProductDiscount.js +212 -0
  43. package/dist/modules/Order/utils.d.ts +23 -1
  44. package/dist/modules/Order/utils.js +139 -30
  45. package/dist/modules/Quotation/index.js +16 -5
  46. package/dist/modules/Rules/index.d.ts +4 -0
  47. package/dist/modules/Rules/index.js +26 -10
  48. package/dist/modules/SalesSummary/index.js +4 -2
  49. package/dist/modules/Schedule/index.js +6 -2
  50. package/dist/modules/index.d.ts +1 -0
  51. package/dist/modules/index.js +2 -1
  52. package/dist/server/index.js +10 -6
  53. package/dist/server/modules/order/utils/filterOrders.js +20 -6
  54. package/dist/server/modules/products/index.js +9 -8
  55. package/dist/server/modules/schedule/index.js +13 -6
  56. package/dist/solution/BaseSales/index.d.ts +65 -7
  57. package/dist/solution/BaseSales/index.js +1066 -315
  58. package/dist/solution/BaseSales/types.d.ts +53 -1
  59. package/dist/solution/BaseSales/types.js +3 -1
  60. package/dist/solution/BaseSales/utils/quotationPrice.d.ts +7 -0
  61. package/dist/solution/BaseSales/utils/quotationPrice.js +159 -0
  62. package/dist/solution/BaseSales/utils/transformBaseProductToOrderProduct.js +65 -15
  63. package/dist/solution/BaseSales/utils.js +46 -8
  64. package/dist/solution/BookingTicket/index.d.ts +134 -2
  65. package/dist/solution/BookingTicket/index.js +768 -175
  66. package/dist/solution/BookingTicket/types.d.ts +2 -0
  67. package/dist/solution/BookingTicket/types.js +3 -0
  68. package/dist/solution/BookingTicket/utils/addProductDecision.d.ts +113 -0
  69. package/dist/solution/BookingTicket/utils/addProductDecision.js +346 -0
  70. package/dist/solution/ScanOrder/index.d.ts +9 -3
  71. package/dist/solution/ScanOrder/index.js +231 -128
  72. package/dist/solution/ScanOrder/utils.js +46 -8
  73. package/dist/solution/ShopDiscount/index.d.ts +0 -1
  74. package/dist/solution/ShopDiscount/index.js +18 -23
  75. package/dist/solution/VenueBooking/index.d.ts +5 -9
  76. package/dist/solution/VenueBooking/index.js +103 -55
  77. package/dist/solution/VenueBooking/utils/slotMerge.d.ts +4 -0
  78. package/dist/solution/VenueBooking/utils/slotMerge.js +10 -0
  79. package/lib/modules/BookingContext/index.d.ts +37 -0
  80. package/lib/modules/BookingContext/index.js +297 -0
  81. package/lib/modules/BookingContext/types.d.ts +102 -0
  82. package/lib/modules/BookingContext/types.js +34 -0
  83. package/lib/modules/BookingContext/utils/buildCacheItemFromOrderLine.d.ts +16 -0
  84. package/lib/modules/BookingContext/utils/buildCacheItemFromOrderLine.js +207 -0
  85. package/lib/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.d.ts +8 -0
  86. package/lib/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.js +141 -0
  87. package/lib/modules/BookingContext/utils/cacheItemToBookingInput.d.ts +75 -0
  88. package/lib/modules/BookingContext/utils/cacheItemToBookingInput.js +198 -0
  89. package/lib/modules/BookingContext/utils/flexible.d.ts +28 -0
  90. package/lib/modules/BookingContext/utils/flexible.js +80 -0
  91. package/lib/modules/BookingContext/utils/formatResourceList.d.ts +8 -0
  92. package/lib/modules/BookingContext/utils/formatResourceList.js +50 -0
  93. package/lib/modules/BookingContext/utils/index.d.ts +11 -0
  94. package/lib/modules/BookingContext/utils/index.js +43 -0
  95. package/lib/modules/BookingContext/utils/noResource.d.ts +13 -0
  96. package/lib/modules/BookingContext/utils/noResource.js +90 -0
  97. package/lib/modules/BookingContext/utils/productExtend.d.ts +72 -0
  98. package/lib/modules/BookingContext/utils/productExtend.js +283 -0
  99. package/lib/modules/BookingContext/utils/resourceErrors.d.ts +41 -0
  100. package/lib/modules/BookingContext/utils/resourceErrors.js +80 -0
  101. package/lib/modules/BookingContext/utils/resourceSelection.d.ts +7 -0
  102. package/lib/modules/BookingContext/utils/resourceSelection.js +46 -0
  103. package/lib/modules/BookingContext/utils/resources.d.ts +80 -0
  104. package/lib/modules/BookingContext/utils/resources.js +377 -0
  105. package/lib/modules/BookingContext/utils/serviceTimes.d.ts +55 -0
  106. package/lib/modules/BookingContext/utils/serviceTimes.js +162 -0
  107. package/lib/modules/BookingContext/utils/timeSlices.d.ts +42 -0
  108. package/lib/modules/BookingContext/utils/timeSlices.js +124 -0
  109. package/lib/modules/Customer/index.d.ts +6 -0
  110. package/lib/modules/Customer/index.js +26 -11
  111. package/lib/modules/Customer/types.d.ts +2 -0
  112. package/lib/modules/Discount/index.d.ts +2 -4
  113. package/lib/modules/Discount/index.js +8 -63
  114. package/lib/modules/Discount/types.d.ts +1 -7
  115. package/lib/modules/Order/index.d.ts +47 -16
  116. package/lib/modules/Order/index.js +389 -90
  117. package/lib/modules/Order/types.d.ts +57 -17
  118. package/lib/modules/Order/utils/manualProductDiscount.d.ts +106 -0
  119. package/lib/modules/Order/utils/manualProductDiscount.js +207 -0
  120. package/lib/modules/Order/utils.d.ts +23 -1
  121. package/lib/modules/Order/utils.js +145 -21
  122. package/lib/modules/Quotation/index.js +17 -6
  123. package/lib/modules/Rules/index.d.ts +4 -0
  124. package/lib/modules/Rules/index.js +22 -14
  125. package/lib/modules/SalesSummary/index.js +4 -2
  126. package/lib/modules/Schedule/index.js +3 -1
  127. package/lib/modules/index.d.ts +1 -0
  128. package/lib/modules/index.js +3 -1
  129. package/lib/server/index.js +2 -0
  130. package/lib/server/modules/order/utils/filterOrders.js +12 -4
  131. package/lib/server/modules/products/index.js +8 -9
  132. package/lib/server/modules/schedule/index.js +2 -1
  133. package/lib/solution/BaseSales/index.d.ts +65 -7
  134. package/lib/solution/BaseSales/index.js +492 -20
  135. package/lib/solution/BaseSales/types.d.ts +53 -1
  136. package/lib/solution/BaseSales/types.js +3 -1
  137. package/lib/solution/BaseSales/utils/quotationPrice.d.ts +7 -0
  138. package/lib/solution/BaseSales/utils/quotationPrice.js +201 -0
  139. package/lib/solution/BaseSales/utils/transformBaseProductToOrderProduct.js +70 -11
  140. package/lib/solution/BaseSales/utils.js +46 -6
  141. package/lib/solution/BookingTicket/index.d.ts +134 -2
  142. package/lib/solution/BookingTicket/index.js +341 -8
  143. package/lib/solution/BookingTicket/types.d.ts +2 -0
  144. package/lib/solution/BookingTicket/types.js +6 -0
  145. package/lib/solution/BookingTicket/utils/addProductDecision.d.ts +113 -0
  146. package/lib/solution/BookingTicket/utils/addProductDecision.js +318 -0
  147. package/lib/solution/ScanOrder/index.d.ts +9 -3
  148. package/lib/solution/ScanOrder/index.js +147 -66
  149. package/lib/solution/ScanOrder/utils.js +46 -6
  150. package/lib/solution/ShopDiscount/index.d.ts +0 -1
  151. package/lib/solution/ShopDiscount/index.js +2 -4
  152. package/lib/solution/VenueBooking/index.d.ts +5 -9
  153. package/lib/solution/VenueBooking/index.js +50 -14
  154. package/lib/solution/VenueBooking/utils/slotMerge.d.ts +4 -0
  155. package/lib/solution/VenueBooking/utils/slotMerge.js +10 -0
  156. package/package.json +2 -2
@@ -1,12 +1,11 @@
1
1
  import { Module, PisellCore, ModuleOptions } from '../../types';
2
2
  import { BaseModule } from '../BaseModule';
3
- import { OrderModuleAPI, CommitOrderParams, UpdateProductInOrderParams, CheckoutOrderParams, CancelOrderParams, ChangeBookingStatusParams } from './types';
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
- import type { OrderAmountSnapshot, AddProductBookingInput, OrderIdentitySnapshot, OrderPaymentSource, OrderSnapshot, OrderSyncState, SyncPaymentsToOrderParams, SyncPaymentsToOrderResult, SubmitSalesOrderParams, OrderProduct, OrderProductIdentity, OrderSummary, OrderTempOrder, OrderPaymentData, SendCustomerPayLinkParams, UpdateTempOrderCustomerInput, OrderCustomerPatch, OrderCustomerView } from './types';
6
+ import type { OrderAmountSnapshot, AddProductBookingInput, OrderIdentitySnapshot, OrderPaymentSource, OrderSnapshot, OrderSyncState, SyncPaymentsToOrderParams, SyncPaymentsToOrderResult, SubmitSalesOrderParams, OrderProduct, OrderProductIdentity, OrderSummary, OrderTempOrder, OrderPaymentData, SendCustomerPayLinkParams, UpdateTempOrderCustomerInput, OrderCustomerPatch, OrderCustomerView, OrderScanCodeResult, ReplaceTempOrderOptions } from './types';
7
7
  import type { ICustomer } from '../AccountList/types';
8
8
  import type { Discount } from '../Discount/types';
9
- import { UnavailableReason } from '../Rules/types';
10
9
  export declare class OrderModule extends BaseModule implements Module, OrderModuleAPI {
11
10
  protected defaultName: string;
12
11
  protected defaultVersion: string;
@@ -20,6 +19,8 @@ export declare class OrderModule extends BaseModule implements Module, OrderModu
20
19
  private rulesHooksOverride?;
21
20
  private orderHooks?;
22
21
  private otherParams?;
22
+ /** 是否将 tempOrder 写入 localStorage;默认 true,SalesSdk 等内存态场景可关闭。 */
23
+ private enableTempOrderPersist;
23
24
  /**
24
25
  * Populate `savedAmount` on each discount based on product-level discount details.
25
26
  * Only selected discounts get a non-zero value.
@@ -43,16 +44,12 @@ export declare class OrderModule extends BaseModule implements Module, OrderModu
43
44
  private createDefaultRulesHooks;
44
45
  loadDiscountConfig(params: {
45
46
  customerId: number;
46
- action?: 'create';
47
- }): Promise<void>;
47
+ action?: 'create' | 'edit';
48
+ orderId?: number;
49
+ apply?: boolean;
50
+ }): Promise<Discount[]>;
48
51
  getDiscountList(): Discount[];
49
- scanCode(code: string, customerId?: number): Promise<{
50
- isAvailable: boolean;
51
- discountList: Discount[];
52
- type: 'server' | 'clientCalc';
53
- unavailableReason?: UnavailableReason;
54
- unavailableReasonKey?: string | null;
55
- }>;
52
+ scanCode(code: string, customerId?: number): Promise<OrderScanCodeResult>;
56
53
  applyDiscount(): void;
57
54
  initTempOrder(params: {
58
55
  cacheId?: string;
@@ -60,6 +57,23 @@ export declare class OrderModule extends BaseModule implements Module, OrderModu
60
57
  }): void;
61
58
  private getTempOrderStorageKey;
62
59
  private restoreTempOrderFromStorage;
60
+ /**
61
+ * 运行时切换 tempOrder localStorage 持久化。
62
+ *
63
+ * @example
64
+ * orderModule.setEnableTempOrderPersist(false);
65
+ * orderModule.addProductToOrder(product); // 不会写入 localStorage
66
+ */
67
+ setEnableTempOrderPersist(enabled: boolean): void;
68
+ /**
69
+ * 读取当前是否启用 tempOrder localStorage 持久化。
70
+ *
71
+ * @example
72
+ * if (orderModule.isTempOrderPersistEnabled()) {
73
+ * orderModule.persistTempOrder();
74
+ * }
75
+ */
76
+ isTempOrderPersistEnabled(): boolean;
63
77
  persistTempOrder(): void;
64
78
  private createDefaultTempOrderInstance;
65
79
  private createExternalSaleNumber;
@@ -71,6 +85,7 @@ export declare class OrderModule extends BaseModule implements Module, OrderModu
71
85
  getLocalOrderByOrderNumber(orderNumber: string): Promise<Record<string, any> | null>;
72
86
  getLocalOrderByExternalSaleNumber(externalSaleNumber: string): Promise<Record<string, any> | null>;
73
87
  saveDraft(): Promise<void>;
88
+ private saveDraftInBackground;
74
89
  private hydrateTempOrderFromLocalRecord;
75
90
  private extractOrderIdFromSubmitResult;
76
91
  private calculatePaymentTotal;
@@ -80,6 +95,7 @@ export declare class OrderModule extends BaseModule implements Module, OrderModu
80
95
  ensureTempOrder(): OrderTempOrder;
81
96
  restoreOrder(): OrderTempOrder;
82
97
  getTempOrder(): OrderTempOrder | null;
98
+ replaceTempOrder(tempOrder: OrderTempOrder, options?: ReplaceTempOrderOptions): Promise<OrderTempOrder>;
83
99
  getOrderIdentity(): OrderIdentitySnapshot | null;
84
100
  getOrderSyncState(): OrderSyncState;
85
101
  getOrderAmountSnapshot(): OrderAmountSnapshot | null;
@@ -90,20 +106,27 @@ export declare class OrderModule extends BaseModule implements Module, OrderModu
90
106
  private ensureExtend;
91
107
  private captureProductRuntime;
92
108
  private createLinkedProductAndBooking;
109
+ private getBookingUniqueIdentificationNumber;
110
+ private findBookingIndexByUniqueIdentificationNumber;
111
+ private removeLinkedBookingsForProduct;
93
112
  private getSalesSummary;
94
113
  recalculateSummary(options?: {
95
114
  createIfMissing?: boolean;
96
115
  }): Promise<OrderSummary | null>;
97
116
  getOrderSummary(): Promise<OrderSummary>;
98
117
  updateTempOrderNote(note: string): string;
118
+ updateTempOrderNote(note: string, sync: true): Promise<string>;
119
+ updateTempOrderNote(note: string, sync: boolean): string | Promise<string>;
120
+ syncTempOrderNoteToRemote(orderId: number | string, note: string): Promise<string>;
99
121
  getTempOrderNote(): string;
100
122
  updateTempOrderShopDiscount(amount: string | number): string;
101
123
  updateTempOrderBuzzer(buzzer: string): string;
102
124
  updateTempOrderContactsInfo(contactsInfo: Record<string, any> | null): Record<string, any> | null;
125
+ private buildTempOrderCustomer;
103
126
  /**
104
127
  * 更新当前 tempOrder 的客户协议字段。
105
128
  *
106
- * PaymentModal 只需要修改订单里的客户字段;如果外部还有客户模块需要同步,
129
+ * PaymentModal 只需要修改订单里的客户事实;如果外部还有客户模块需要同步,
107
130
  * 应由调用方通过回调处理,不能把外部 UI 状态写进 tempOrder。
108
131
  */
109
132
  updateTempOrderCustomer(customer: UpdateTempOrderCustomerInput): OrderSnapshot['customer'];
@@ -148,8 +171,15 @@ export declare class OrderModule extends BaseModule implements Module, OrderModu
148
171
  private shouldMergeProductToOrder;
149
172
  addProductToOrder(product: Partial<OrderProduct> & OrderProductIdentity, booking?: AddProductBookingInput): Promise<OrderProduct[]>;
150
173
  private hasGoodPassDiscount;
151
- updateProductInOrder(params: UpdateProductInOrderParams): Promise<OrderProduct[]>;
174
+ updateOrderProduct(params: UpdateOrderProductParams): Promise<OrderProduct[]>;
175
+ updateOrderProductQuantity(params: UpdateOrderProductQuantityParams): Promise<OrderProduct[]>;
176
+ updateOrderBooking(params: UpdateOrderBookingParams): any[];
152
177
  removeProductFromOrder(identity: OrderProductIdentity): Promise<OrderProduct[]>;
178
+ /**
179
+ * 仅清空购物车行(products / bookings),不重置整单。
180
+ * 用于「仅清空商品」;客户、备注、支付等协议字段保持不变。
181
+ */
182
+ clearOrderCartLines(): Promise<OrderTempOrder>;
153
183
  /**
154
184
  * 提交当前 Sales tempOrder。
155
185
  *
@@ -174,7 +204,7 @@ export declare class OrderModule extends BaseModule implements Module, OrderModu
174
204
  private logSubmitBackendRejected;
175
205
  syncPaymentsToOrder<T = any>(params: SyncPaymentsToOrderParams): Promise<SyncPaymentsToOrderResult<T>>;
176
206
  createOrder(params: CommitOrderParams['query']): {
177
- type: "virtual" | "appointment_booking";
207
+ type: "appointment_booking" | "virtual";
178
208
  platform: string;
179
209
  sales_channel: string;
180
210
  order_sales_channel: string;
@@ -221,8 +251,9 @@ export declare class OrderModule extends BaseModule implements Module, OrderModu
221
251
  hydrateTempOrderFromRecord(record: Record<string, any>, options?: {
222
252
  recalcOnHydrate?: boolean;
223
253
  }): Promise<OrderTempOrder>;
254
+ private normalizeTempOrderForRuntime;
224
255
  private normalizeHydratedOrderProduct;
225
256
  getLastOrderInfo(): Record<string, any> | undefined;
226
257
  getOrderInfo(order_id: number): Promise<any>;
227
258
  }
228
- export type { UpdateProductInOrderParams } from './types';
259
+ export type { UpdateOrderBookingParams, UpdateOrderProductParams, UpdateOrderProductQuantityParams, } from './types';