@pisell/pisellos 2.2.170 → 2.2.171

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 (149) hide show
  1. package/dist/model/strategy/adapter/promotion/index.js +0 -9
  2. package/dist/modules/Customer/index.d.ts +0 -6
  3. package/dist/modules/Customer/index.js +83 -129
  4. package/dist/modules/Customer/types.d.ts +0 -2
  5. package/dist/modules/Discount/index.d.ts +4 -2
  6. package/dist/modules/Discount/index.js +93 -8
  7. package/dist/modules/Discount/types.d.ts +7 -1
  8. package/dist/modules/Order/index.d.ts +15 -27
  9. package/dist/modules/Order/index.js +322 -695
  10. package/dist/modules/Order/types.d.ts +14 -49
  11. package/dist/modules/Order/types.js +0 -2
  12. package/dist/modules/Order/utils.d.ts +0 -17
  13. package/dist/modules/Order/utils.js +26 -97
  14. package/dist/modules/Rules/index.d.ts +0 -4
  15. package/dist/modules/Rules/index.js +10 -26
  16. package/dist/modules/SalesSummary/index.js +2 -4
  17. package/dist/modules/index.d.ts +0 -1
  18. package/dist/modules/index.js +1 -2
  19. package/dist/server/modules/order/utils/filterOrders.js +6 -20
  20. package/dist/solution/BaseSales/index.d.ts +7 -46
  21. package/dist/solution/BaseSales/index.js +315 -1009
  22. package/dist/solution/BaseSales/types.d.ts +1 -53
  23. package/dist/solution/BaseSales/types.js +1 -3
  24. package/dist/solution/BaseSales/utils/transformBaseProductToOrderProduct.js +15 -65
  25. package/dist/solution/BaseSales/utils.js +8 -46
  26. package/dist/solution/BookingByStep/index.d.ts +1 -1
  27. package/dist/solution/BookingTicket/index.d.ts +1 -133
  28. package/dist/solution/BookingTicket/index.js +175 -768
  29. package/dist/solution/BookingTicket/types.d.ts +0 -2
  30. package/dist/solution/BookingTicket/types.js +0 -3
  31. package/dist/solution/ScanOrder/index.d.ts +3 -9
  32. package/dist/solution/ScanOrder/index.js +128 -231
  33. package/dist/solution/ScanOrder/utils.js +8 -46
  34. package/dist/solution/ShopDiscount/index.d.ts +1 -0
  35. package/dist/solution/ShopDiscount/index.js +23 -18
  36. package/dist/solution/VenueBooking/index.d.ts +9 -5
  37. package/dist/solution/VenueBooking/index.js +55 -103
  38. package/dist/solution/VenueBooking/utils/slotMerge.d.ts +0 -4
  39. package/dist/solution/VenueBooking/utils/slotMerge.js +0 -10
  40. package/lib/modules/Customer/index.d.ts +0 -6
  41. package/lib/modules/Customer/index.js +11 -26
  42. package/lib/modules/Customer/types.d.ts +0 -2
  43. package/lib/modules/Discount/index.d.ts +4 -2
  44. package/lib/modules/Discount/index.js +63 -8
  45. package/lib/modules/Discount/types.d.ts +7 -1
  46. package/lib/modules/Order/index.d.ts +15 -27
  47. package/lib/modules/Order/index.js +84 -336
  48. package/lib/modules/Order/types.d.ts +14 -49
  49. package/lib/modules/Order/utils.d.ts +0 -17
  50. package/lib/modules/Order/utils.js +18 -105
  51. package/lib/modules/Rules/index.d.ts +0 -4
  52. package/lib/modules/Rules/index.js +14 -22
  53. package/lib/modules/SalesSummary/index.js +2 -4
  54. package/lib/modules/index.d.ts +0 -1
  55. package/lib/modules/index.js +1 -3
  56. package/lib/server/modules/order/utils/filterOrders.js +4 -12
  57. package/lib/solution/BaseSales/index.d.ts +7 -46
  58. package/lib/solution/BaseSales/index.js +20 -434
  59. package/lib/solution/BaseSales/types.d.ts +1 -53
  60. package/lib/solution/BaseSales/types.js +1 -3
  61. package/lib/solution/BaseSales/utils/transformBaseProductToOrderProduct.js +11 -70
  62. package/lib/solution/BaseSales/utils.js +6 -46
  63. package/lib/solution/BookingByStep/index.d.ts +1 -1
  64. package/lib/solution/BookingTicket/index.d.ts +1 -133
  65. package/lib/solution/BookingTicket/index.js +8 -341
  66. package/lib/solution/BookingTicket/types.d.ts +0 -2
  67. package/lib/solution/BookingTicket/types.js +0 -6
  68. package/lib/solution/ScanOrder/index.d.ts +3 -9
  69. package/lib/solution/ScanOrder/index.js +66 -147
  70. package/lib/solution/ScanOrder/utils.js +6 -46
  71. package/lib/solution/ShopDiscount/index.d.ts +1 -0
  72. package/lib/solution/ShopDiscount/index.js +4 -2
  73. package/lib/solution/VenueBooking/index.d.ts +9 -5
  74. package/lib/solution/VenueBooking/index.js +14 -50
  75. package/lib/solution/VenueBooking/utils/slotMerge.d.ts +0 -4
  76. package/lib/solution/VenueBooking/utils/slotMerge.js +0 -10
  77. package/package.json +2 -2
  78. package/dist/modules/BookingContext/index.d.ts +0 -37
  79. package/dist/modules/BookingContext/index.js +0 -436
  80. package/dist/modules/BookingContext/types.d.ts +0 -102
  81. package/dist/modules/BookingContext/types.js +0 -51
  82. package/dist/modules/BookingContext/utils/buildCacheItemFromOrderLine.d.ts +0 -16
  83. package/dist/modules/BookingContext/utils/buildCacheItemFromOrderLine.js +0 -193
  84. package/dist/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.d.ts +0 -8
  85. package/dist/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.js +0 -137
  86. package/dist/modules/BookingContext/utils/cacheItemToBookingInput.d.ts +0 -75
  87. package/dist/modules/BookingContext/utils/cacheItemToBookingInput.js +0 -215
  88. package/dist/modules/BookingContext/utils/flexible.d.ts +0 -28
  89. package/dist/modules/BookingContext/utils/flexible.js +0 -56
  90. package/dist/modules/BookingContext/utils/formatResourceList.d.ts +0 -8
  91. package/dist/modules/BookingContext/utils/formatResourceList.js +0 -38
  92. package/dist/modules/BookingContext/utils/index.d.ts +0 -11
  93. package/dist/modules/BookingContext/utils/index.js +0 -11
  94. package/dist/modules/BookingContext/utils/noResource.d.ts +0 -13
  95. package/dist/modules/BookingContext/utils/noResource.js +0 -77
  96. package/dist/modules/BookingContext/utils/productExtend.d.ts +0 -72
  97. package/dist/modules/BookingContext/utils/productExtend.js +0 -339
  98. package/dist/modules/BookingContext/utils/resourceErrors.d.ts +0 -41
  99. package/dist/modules/BookingContext/utils/resourceErrors.js +0 -74
  100. package/dist/modules/BookingContext/utils/resourceSelection.d.ts +0 -7
  101. package/dist/modules/BookingContext/utils/resourceSelection.js +0 -24
  102. package/dist/modules/BookingContext/utils/resources.d.ts +0 -80
  103. package/dist/modules/BookingContext/utils/resources.js +0 -486
  104. package/dist/modules/BookingContext/utils/serviceTimes.d.ts +0 -55
  105. package/dist/modules/BookingContext/utils/serviceTimes.js +0 -151
  106. package/dist/modules/BookingContext/utils/timeSlices.d.ts +0 -42
  107. package/dist/modules/BookingContext/utils/timeSlices.js +0 -100
  108. package/dist/modules/Order/utils/manualProductDiscount.d.ts +0 -106
  109. package/dist/modules/Order/utils/manualProductDiscount.js +0 -212
  110. package/dist/solution/BaseSales/utils/quotationPrice.d.ts +0 -7
  111. package/dist/solution/BaseSales/utils/quotationPrice.js +0 -159
  112. package/dist/solution/BookingTicket/utils/addProductDecision.d.ts +0 -113
  113. package/dist/solution/BookingTicket/utils/addProductDecision.js +0 -346
  114. package/lib/modules/BookingContext/index.d.ts +0 -37
  115. package/lib/modules/BookingContext/index.js +0 -297
  116. package/lib/modules/BookingContext/types.d.ts +0 -102
  117. package/lib/modules/BookingContext/types.js +0 -34
  118. package/lib/modules/BookingContext/utils/buildCacheItemFromOrderLine.d.ts +0 -16
  119. package/lib/modules/BookingContext/utils/buildCacheItemFromOrderLine.js +0 -207
  120. package/lib/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.d.ts +0 -8
  121. package/lib/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.js +0 -141
  122. package/lib/modules/BookingContext/utils/cacheItemToBookingInput.d.ts +0 -75
  123. package/lib/modules/BookingContext/utils/cacheItemToBookingInput.js +0 -198
  124. package/lib/modules/BookingContext/utils/flexible.d.ts +0 -28
  125. package/lib/modules/BookingContext/utils/flexible.js +0 -80
  126. package/lib/modules/BookingContext/utils/formatResourceList.d.ts +0 -8
  127. package/lib/modules/BookingContext/utils/formatResourceList.js +0 -50
  128. package/lib/modules/BookingContext/utils/index.d.ts +0 -11
  129. package/lib/modules/BookingContext/utils/index.js +0 -43
  130. package/lib/modules/BookingContext/utils/noResource.d.ts +0 -13
  131. package/lib/modules/BookingContext/utils/noResource.js +0 -90
  132. package/lib/modules/BookingContext/utils/productExtend.d.ts +0 -72
  133. package/lib/modules/BookingContext/utils/productExtend.js +0 -283
  134. package/lib/modules/BookingContext/utils/resourceErrors.d.ts +0 -41
  135. package/lib/modules/BookingContext/utils/resourceErrors.js +0 -80
  136. package/lib/modules/BookingContext/utils/resourceSelection.d.ts +0 -7
  137. package/lib/modules/BookingContext/utils/resourceSelection.js +0 -46
  138. package/lib/modules/BookingContext/utils/resources.d.ts +0 -80
  139. package/lib/modules/BookingContext/utils/resources.js +0 -377
  140. package/lib/modules/BookingContext/utils/serviceTimes.d.ts +0 -55
  141. package/lib/modules/BookingContext/utils/serviceTimes.js +0 -162
  142. package/lib/modules/BookingContext/utils/timeSlices.d.ts +0 -42
  143. package/lib/modules/BookingContext/utils/timeSlices.js +0 -124
  144. package/lib/modules/Order/utils/manualProductDiscount.d.ts +0 -106
  145. package/lib/modules/Order/utils/manualProductDiscount.js +0 -207
  146. package/lib/solution/BaseSales/utils/quotationPrice.d.ts +0 -7
  147. package/lib/solution/BaseSales/utils/quotationPrice.js +0 -201
  148. package/lib/solution/BookingTicket/utils/addProductDecision.d.ts +0 -113
  149. package/lib/solution/BookingTicket/utils/addProductDecision.js +0 -318
@@ -2,7 +2,6 @@ import { CartItem } from '../Cart/types';
2
2
  import type { DiscountModule } from '../Discount';
3
3
  import type { RulesModule } from '../Rules';
4
4
  import type { Discount } from '../Discount/types';
5
- import type { UnavailableReason } from '../Rules/types';
6
5
  import type { SubmitPayloadEnhancer } from './utils';
7
6
  import type { PaymentItem } from '../Payment/types';
8
7
  import type { ICustomer } from '../AccountList/types';
@@ -49,13 +48,6 @@ export interface OrderCustomerChangePayload {
49
48
  patch: OrderCustomerView;
50
49
  snapshot: ICustomer | null;
51
50
  }
52
- export interface OrderScanCodeResult {
53
- isAvailable: boolean;
54
- discountList: Discount[];
55
- scannedDiscountList: Discount[];
56
- type: 'server' | 'clientCalc';
57
- unavailableReason?: UnavailableReason;
58
- }
59
51
  export interface OrderProductIdentity {
60
52
  product_id: number | null;
61
53
  product_variant_id: number;
@@ -111,11 +103,11 @@ export interface OrderSummary {
111
103
  export interface OrderTempOrder {
112
104
  order_id: number | null;
113
105
  external_sale_number: string;
114
- order_number: string | null;
115
- shop_order_number: string | null;
116
- shop_full_order_number: string | null;
106
+ order_number: string;
107
+ shop_order_number: string;
108
+ shop_full_order_number: string;
117
109
  type: string;
118
- business_code?: string;
110
+ business_code: string;
119
111
  platform: string;
120
112
  sales_channel: string;
121
113
  order_sales_channel: string;
@@ -165,7 +157,7 @@ export interface OrderSubmitProduct extends Omit<OrderProduct, 'unique_identific
165
157
  payment_price: string;
166
158
  product_sku: Record<string, any>;
167
159
  }
168
- export interface OrderSubmitPayload extends Omit<OrderTempOrder, 'platform' | 'products' | '_extend' | 'customer'> {
160
+ export interface OrderSubmitPayload extends Omit<OrderTempOrder, 'platform' | 'products' | '_extend' | 'customer' | 'shop_full_order_number'> {
169
161
  platform: string;
170
162
  request_unique_idempotency_token?: string;
171
163
  form_record_ids?: Array<{
@@ -184,32 +176,16 @@ export interface OrderState {
184
176
  discount: DiscountModule | null;
185
177
  rules: RulesModule | null;
186
178
  }
187
- export interface ReplaceTempOrderOptions {
188
- recalculateSummary?: boolean;
189
- persist?: boolean;
190
- saveDraft?: boolean;
191
- }
192
- export type AddProductBookingInput = Record<string, any>;
193
179
  /** 更新购物车行:仅传 SKU 时命中同 SKU 第一行;多行同 SKU 须传 unique_identification_number / 选项指纹等 */
194
- export interface UpdateOrderProductParams {
180
+ export interface UpdateProductInOrderParams {
195
181
  product_id: number | null;
196
182
  product_variant_id: number;
197
183
  updates: Partial<OrderProduct>;
198
184
  unique_identification_number?: string;
199
- identity_key?: string;
200
185
  product_option_item?: any[];
201
186
  product_bundle?: any[];
202
- booking?: AddProductBookingInput;
203
- }
204
- /** 仅更新购物车行数量;行定位语义与 updateOrderProduct / removeProductFromOrder 保持一致 */
205
- export interface UpdateOrderProductQuantityParams extends OrderProductIdentity {
206
- num: number;
207
- identity_key?: string;
208
- }
209
- export interface UpdateOrderBookingParams {
210
- unique_identification_number: string;
211
- updates: AddProductBookingInput;
212
187
  }
188
+ export type AddProductBookingInput = Record<string, any>;
213
189
  export interface OrderProductMergeDecisionContext {
214
190
  incomingProduct: Partial<OrderProduct> & OrderProductIdentity;
215
191
  normalizedIncoming: OrderProduct;
@@ -260,11 +236,10 @@ export interface SubmitSalesOrderParams {
260
236
  query: {
261
237
  order_id: number | null;
262
238
  external_sale_number: string;
263
- order_number: string | null;
264
- shop_order_number: string | null;
265
- shop_full_order_number: string | null;
239
+ order_number: string;
240
+ shop_order_number: string;
266
241
  type: string;
267
- business_code?: string;
242
+ business_code: string;
268
243
  platform: string;
269
244
  request_unique_idempotency_token?: string;
270
245
  sales_channel: string;
@@ -375,7 +350,6 @@ export interface SyncPaymentsToOrderParams {
375
350
  paymentStatus?: SubmitSalesOrderParams['query']['payment_status'];
376
351
  submitWhenPaid?: boolean;
377
352
  smallTicketDataFlag?: number;
378
- channel?: string;
379
353
  }
380
354
  export interface SyncPaymentsToOrderResult<T = any> {
381
355
  isFullyPaid: boolean;
@@ -472,7 +446,6 @@ export interface OrderModuleAPI {
472
446
  }) => void;
473
447
  getTempOrder: () => OrderTempOrder | null;
474
448
  ensureTempOrder: () => OrderTempOrder;
475
- replaceTempOrder: (tempOrder: OrderTempOrder, options?: ReplaceTempOrderOptions) => Promise<OrderTempOrder>;
476
449
  addNewOrder: () => Promise<OrderTempOrder>;
477
450
  restoreOrder: () => OrderTempOrder;
478
451
  getOrderProducts: () => OrderProduct[];
@@ -485,19 +458,13 @@ export interface OrderModuleAPI {
485
458
  getOrderSyncState: () => OrderSyncState;
486
459
  getOrderAmountSnapshot: () => OrderAmountSnapshot | null;
487
460
  getTempOrderNote: () => string;
488
- updateTempOrderNote: {
489
- (note: string): string;
490
- (note: string, sync: true): Promise<string>;
491
- (note: string, sync: boolean): string | Promise<string>;
492
- };
461
+ updateTempOrderNote: (note: string) => string;
493
462
  updateTempOrderShopDiscount: (amount: string | number) => string;
494
463
  updateTempOrderCustomer: (customer: UpdateTempOrderCustomerInput) => OrderSnapshot['customer'];
495
464
  updateTempOrderBuzzer: (buzzer: string) => string;
496
465
  updateTempOrderContactsInfo: (contactsInfo: Record<string, any> | null) => Record<string, any> | null;
497
466
  addProductToOrder: (product: Partial<OrderProduct> & OrderProductIdentity, booking?: AddProductBookingInput) => Promise<OrderProduct[]>;
498
- updateOrderProduct: (params: UpdateOrderProductParams) => Promise<OrderProduct[]>;
499
- updateOrderProductQuantity: (params: UpdateOrderProductQuantityParams) => Promise<OrderProduct[]>;
500
- updateOrderBooking: (params: UpdateOrderBookingParams) => any[];
467
+ updateProductInOrder: (params: UpdateProductInOrderParams) => Promise<OrderProduct[]>;
501
468
  removeProductFromOrder: (identity: OrderProductIdentity) => Promise<OrderProduct[]>;
502
469
  persistTempOrder: () => void;
503
470
  submitTempOrder: <T = any>(params?: {
@@ -549,10 +516,8 @@ export interface OrderModuleAPI {
549
516
  clearOrderCustomer: () => void;
550
517
  loadDiscountConfig: (params: {
551
518
  customerId: number;
552
- action?: 'create' | 'edit';
553
- orderId?: number;
554
- apply?: boolean;
555
- }) => Promise<Discount[]>;
519
+ action?: 'create';
520
+ }) => Promise<void>;
556
521
  getDiscountList: () => Discount[];
557
522
  applyDiscount: () => void;
558
523
  /**
@@ -29,8 +29,6 @@ export var OrderHooks = /*#__PURE__*/function (OrderHooks) {
29
29
 
30
30
  /** 更新购物车行:仅传 SKU 时命中同 SKU 第一行;多行同 SKU 须传 unique_identification_number / 选项指纹等 */
31
31
 
32
- /** 仅更新购物车行数量;行定位语义与 updateOrderProduct / removeProductFromOrder 保持一致 */
33
-
34
32
  /**
35
33
  * 订单信息
36
34
  */
@@ -65,21 +65,6 @@ export declare function sumOptionUnitPrice(options?: Array<{
65
65
  *
66
66
  * 导出为纯函数方便单测直接驱动钩子,不依赖 OrderModule 实例。
67
67
  */
68
- /** Rules calcDiscount 用手动价标记;undefined 表示交给 Rules 用 total/origin_total 推断 */
69
- export declare function resolveRulesManualDiscountFlag(metadata: Record<string, any> | null | undefined): boolean | undefined;
70
- /**
71
- * 手动改价(price_override)时行级 original_price(composite 单价):
72
- * 购物车划线价应对齐 metadata.origin._extend.origin_total(改价前单价 composite,如 40),
73
- * 而非 bundle 子项 catalog 原价合成的 composedOriginalPrice(如 30)。
74
- *
75
- * origin_total 与 SkuDetailModal / cacheItem._extend 一致,为单价语义,不再除以 num。
76
- */
77
- export declare function resolveManualOverrideLineOriginalPrice(params: {
78
- num?: number;
79
- metadata?: Record<string, any> | null;
80
- /** 已有行级 original_price(origin 被裁剪时兜底划线价) */
81
- lineOriginalPrice?: string | number | null;
82
- }, fallbackCompositeOriginal: string): string;
83
68
  export declare function createDefaultOrderRulesHooks(): RulesParamsHooks;
84
69
  /**
85
70
  * 通过 session 类商品的开始时间结束时间生成商品的时长
@@ -156,5 +141,3 @@ export declare function formatV1Product(products: OrderSubmitProduct[]): {
156
141
  unique: string;
157
142
  }[];
158
143
  export { createEmptySummary } from '../../solution/ScanOrder/utils';
159
- export { buildManualProductDiscountItem, ensureManualProductDiscountList, findManualProductDiscountItem, mergeManualProductDiscountIntoList, resolveManualDiscountMessage, resolveManualDiscountOriginTotal, resolveManualDiscountReasonFromSources, resolveSafeProductNum, shouldBuildManualProductDiscount, syncManualProductDiscountProductNum, stripManualProductDiscountItems, } from './utils/manualProductDiscount';
160
- export type { ManualProductDiscountItem } from './utils/manualProductDiscount';
@@ -1,6 +1,6 @@
1
1
  var _excluded = ["unique_identification_number"],
2
- _excluded2 = ["num", "product_option_item", "surcharge_fee", "discount_amount", "discount_type", "discountway", "product_discount_reason", "discount_per"],
3
- _excluded3 = ["_extend", "relation_id", "table_form_id", "resource_id", "summary", "lastOrderInfo", "paid_amount", "shop_id", "shop_note", "shop_service_type", "start_time", "customer", "tax_fee", "total_amount", "total_refund_amount", "create_date", "holder_id"],
2
+ _excluded2 = ["num", "product_option_item", "surcharge_fee"],
3
+ _excluded3 = ["_extend", "relation_id", "table_form_id", "resource_id", "summary", "lastOrderInfo", "paid_amount", "shop_id", "shop_note", "shop_service_type", "start_time", "customer", "shop_full_order_number", "tax_fee", "total_amount", "total_refund_amount", "create_date", "holder_id"],
4
4
  _excluded4 = ["collect_pax", "table_occupancy_duration"];
5
5
  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; }
6
6
  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; }
@@ -113,51 +113,6 @@ export function sumOptionUnitPrice(options) {
113
113
  *
114
114
  * 导出为纯函数方便单测直接驱动钩子,不依赖 OrderModule 实例。
115
115
  */
116
-
117
- /** Rules calcDiscount 用手动价标记;undefined 表示交给 Rules 用 total/origin_total 推断 */
118
- export function resolveRulesManualDiscountFlag(metadata) {
119
- if (!metadata) return undefined;
120
- if (metadata.is_manual_discount === true || metadata.is_manual_discount === 1) {
121
- return true;
122
- }
123
- var priceOverride = metadata.price_override;
124
- if (priceOverride !== undefined && priceOverride !== null && priceOverride !== '') {
125
- return true;
126
- }
127
- return undefined;
128
- }
129
-
130
- /**
131
- * 手动改价(price_override)时行级 original_price(composite 单价):
132
- * 购物车划线价应对齐 metadata.origin._extend.origin_total(改价前单价 composite,如 40),
133
- * 而非 bundle 子项 catalog 原价合成的 composedOriginalPrice(如 30)。
134
- *
135
- * origin_total 与 SkuDetailModal / cacheItem._extend 一致,为单价语义,不再除以 num。
136
- */
137
- export function resolveManualOverrideLineOriginalPrice(params, fallbackCompositeOriginal) {
138
- var _metadata$origin;
139
- var metadata = params.metadata || {};
140
- var priceOverride = metadata.price_override;
141
- if (priceOverride === undefined || priceOverride === null || priceOverride === '') {
142
- return fallbackCompositeOriginal;
143
- }
144
- var refTotal = (_metadata$origin = metadata.origin) === null || _metadata$origin === void 0 || (_metadata$origin = _metadata$origin._extend) === null || _metadata$origin === void 0 ? void 0 : _metadata$origin.origin_total;
145
- if (refTotal !== undefined && refTotal !== null && refTotal !== '') {
146
- var parsed = Number(refTotal);
147
- if (Number.isFinite(parsed)) {
148
- return new Decimal(parsed).toDecimalPlaces(2).toFixed(2);
149
- }
150
- }
151
- var lineOriginal = params.lineOriginalPrice;
152
- if (lineOriginal !== undefined && lineOriginal !== null && lineOriginal !== '') {
153
- var parsedLine = Number(lineOriginal);
154
- var parsedFallback = Number(fallbackCompositeOriginal);
155
- if (Number.isFinite(parsedLine) && Number.isFinite(parsedFallback) && parsedLine > parsedFallback) {
156
- return new Decimal(parsedLine).toDecimalPlaces(2).toFixed(2);
157
- }
158
- }
159
- return fallbackCompositeOriginal;
160
- }
161
116
  export function createDefaultOrderRulesHooks() {
162
117
  var toUnitPriceString = function toUnitPriceString(totalLike, num) {
163
118
  var effectiveNum = Number(num) > 0 ? Number(num) : 1;
@@ -165,7 +120,7 @@ export function createDefaultOrderRulesHooks() {
165
120
  };
166
121
  return {
167
122
  getProduct: function getProduct(product) {
168
- var _product$metadata, _product$metadata2, _product$metadata3, _product$metadata4, _product$metadata5;
123
+ var _product$metadata, _product$metadata2, _product$metadata3, _product$metadata4, _product$metadata5, _product$metadata6;
169
124
  // source_product_price 是权威源;兜底链:source → mainSelling − options(反推)→ 行 selling_price
170
125
  var metadataAny = product.metadata || {};
171
126
  var optionSum = sumOptionUnitPrice(product.product_option_item);
@@ -206,11 +161,9 @@ export function createDefaultOrderRulesHooks() {
206
161
  bundle: product.product_bundle || [],
207
162
  booking_id: ((_product$metadata2 = product.metadata) === null || _product$metadata2 === void 0 ? void 0 : _product$metadata2.booking_id) || null,
208
163
  isClient: false,
209
- // 勿写死 false:否则 Rules 不会走 total≠origin_total 的手动价推断,
210
- // 无券时会把 bundle 价还原成 original_price(手动改价套餐会从 20 回到 30)。
211
- isManualDiscount: resolveRulesManualDiscountFlag(metadataAny),
212
- holder_id: (_product$metadata3 = product.metadata) === null || _product$metadata3 === void 0 ? void 0 : _product$metadata3.holder_id,
213
- startDate: ((_product$metadata4 = product.metadata) === null || _product$metadata4 === void 0 ? void 0 : _product$metadata4.start_date) || ((_product$metadata5 = product.metadata) === null || _product$metadata5 === void 0 ? void 0 : _product$metadata5.startDate)
164
+ isManualDiscount: ((_product$metadata3 = product.metadata) === null || _product$metadata3 === void 0 ? void 0 : _product$metadata3.is_manual_discount) || false,
165
+ holder_id: (_product$metadata4 = product.metadata) === null || _product$metadata4 === void 0 ? void 0 : _product$metadata4.holder_id,
166
+ startDate: ((_product$metadata5 = product.metadata) === null || _product$metadata5 === void 0 ? void 0 : _product$metadata5.start_date) || ((_product$metadata6 = product.metadata) === null || _product$metadata6 === void 0 ? void 0 : _product$metadata6.startDate)
214
167
  };
215
168
  },
216
169
  setProduct: function setProduct(product, values) {
@@ -243,14 +196,9 @@ export function createDefaultOrderRulesHooks() {
243
196
  bundle: nextBundle,
244
197
  useOriginalBundle: true
245
198
  });
246
- var finalOriginalPrice = resolveManualOverrideLineOriginalPrice({
247
- num: nextNum,
248
- metadata: metadataAny,
249
- lineOriginalPrice: product.original_price
250
- }, composedOriginalPrice);
251
199
  return _objectSpread(_objectSpread({}, product), {}, {
252
200
  selling_price: composedSellingPrice,
253
- original_price: finalOriginalPrice,
201
+ original_price: composedOriginalPrice,
254
202
  discount_list: (_values$discount_list = values.discount_list) !== null && _values$discount_list !== void 0 ? _values$discount_list : product.discount_list,
255
203
  num: (_values$quantity2 = values.quantity) !== null && _values$quantity2 !== void 0 ? _values$quantity2 : product.num,
256
204
  product_bundle: nextBundle,
@@ -446,11 +394,6 @@ function normalizeSubmitProduct(product) {
446
394
  var num = submitProduct.num,
447
395
  productOptionItem = submitProduct.product_option_item,
448
396
  _productSurchargeFee = submitProduct.surcharge_fee,
449
- _deprecatedDiscountAmount = submitProduct.discount_amount,
450
- _deprecatedDiscountType = submitProduct.discount_type,
451
- _deprecatedDiscountway = submitProduct.discountway,
452
- _deprecatedProductDiscountReason = submitProduct.product_discount_reason,
453
- _deprecatedDiscountPer = submitProduct.discount_per,
454
397
  productRest = _objectWithoutProperties(submitProduct, _excluded2);
455
398
  var rawMetadata = submitProduct.metadata || {};
456
399
  var bookingUid = rawMetadata.booking_uid;
@@ -559,23 +502,22 @@ export function createDefaultTempOrder(params) {
559
502
  return {
560
503
  order_id: null,
561
504
  external_sale_number: '',
562
- order_number: null,
563
- shop_order_number: null,
564
- shop_full_order_number: null,
565
- type: '',
566
- business_code: undefined,
505
+ order_number: '',
506
+ shop_order_number: '',
507
+ shop_full_order_number: '',
508
+ type: 'appointment_booking',
509
+ business_code: 'appointment_booking',
567
510
  platform: 'h5',
568
511
  sales_channel: 'my_pisel',
569
512
  order_sales_channel: 'online_store',
570
513
  status: 'normal',
571
514
  payment_status: 'payment_processing',
572
515
  shipping_status: 'unfulfilled',
573
- customer_id: 0,
516
+ customer_id: null,
574
517
  customer_name: '',
575
518
  country_calling_code: '',
576
519
  phone: '',
577
520
  email: '',
578
- customer: null,
579
521
  is_price_include_tax: 1,
580
522
  tax_title: '',
581
523
  tax_country_code: '',
@@ -606,7 +548,7 @@ export function createDefaultTempOrder(params) {
606
548
  };
607
549
  }
608
550
  export function buildSubmitPayload(params) {
609
- var _tempOrder$customer_i, _ref10, _tempOrder$is_price_i, _tempOrder$is_deposit;
551
+ var _ref10, _ref11, _ref12, _tempOrder$is_price_i, _tempOrder$is_deposit;
610
552
  var tempOrder = params.tempOrder,
611
553
  cacheId = params.cacheId,
612
554
  _params$now = params.now,
@@ -631,33 +573,20 @@ export function buildSubmitPayload(params) {
631
573
  _shopServiceType = _ref9.shop_service_type,
632
574
  _startTime = _ref9.start_time,
633
575
  _customer = _ref9.customer,
576
+ _shopFullOrderNumber = _ref9.shop_full_order_number,
634
577
  _rootTaxFee = _ref9.tax_fee,
635
578
  _totalAmount = _ref9.total_amount,
636
579
  _totalRefundAmount = _ref9.total_refund_amount,
637
580
  _createDate = _ref9.create_date,
638
581
  _holderId = _ref9.holder_id,
639
582
  tempOrderRest = _objectWithoutProperties(_ref9, _excluded3);
640
- var submitType = type !== null && type !== void 0 ? type : tempOrder.type;
641
- if (!submitType) {
642
- var _tempOrder$bookings;
643
- // 如果外部没有传递 types,根据订单里当前是否有 bookings 来决定是 appointment_booking 还是 virtual
644
- if (tempOrder !== null && tempOrder !== void 0 && (_tempOrder$bookings = tempOrder.bookings) !== null && _tempOrder$bookings !== void 0 && _tempOrder$bookings.length) {
645
- submitType = 'appointment_booking';
646
- } else {
647
- submitType = 'virtual';
648
- }
649
- }
650
583
  var payload = _objectSpread(_objectSpread({}, tempOrderRest), {}, {
651
- customer_id: (_tempOrder$customer_i = tempOrder.customer_id) !== null && _tempOrder$customer_i !== void 0 ? _tempOrder$customer_i : 0,
652
- order_number: null,
653
- shop_order_number: null,
654
- shop_full_order_number: null,
655
584
  platform: normalizeSubmitPlatform(platform),
656
585
  request_unique_idempotency_token: tempOrder.request_unique_idempotency_token || "".concat(tempOrder.external_sale_number, "_").concat(now.getTime()),
657
- type: submitType,
658
- business_code: businessCode !== null && businessCode !== void 0 ? businessCode : tempOrder.business_code,
586
+ type: (_ref10 = type !== null && type !== void 0 ? type : tempOrder.type) !== null && _ref10 !== void 0 ? _ref10 : 'table-order',
587
+ business_code: (_ref11 = businessCode !== null && businessCode !== void 0 ? businessCode : tempOrder.business_code) !== null && _ref11 !== void 0 ? _ref11 : 'table-order',
659
588
  sales_channel: tempOrder.sales_channel || 'my_pisel',
660
- order_sales_channel: (_ref10 = channel !== null && channel !== void 0 ? channel : tempOrder.order_sales_channel) !== null && _ref10 !== void 0 ? _ref10 : 'online_store',
589
+ order_sales_channel: (_ref12 = channel !== null && channel !== void 0 ? channel : tempOrder.order_sales_channel) !== null && _ref12 !== void 0 ? _ref12 : 'online_store',
661
590
  status: tempOrder.status || 'normal',
662
591
  payment_status: tempOrder.payment_status || 'payment_processing',
663
592
  // shipping_status: tempOrder.shipping_status || 'unfulfilled',
@@ -670,9 +599,10 @@ export function buildSubmitPayload(params) {
670
599
  note: tempOrder.note || '',
671
600
  delivery_type: tempOrder.delivery_type || 'nil',
672
601
  schedule_date: scheduleDate,
673
- // created_at: tempOrder.created_at || formatDateTime(now), 和后端协定这个字段先不提交到接口
602
+ created_at: tempOrder.created_at || formatDateTime(now),
674
603
  bookings: (tempOrder.bookings || []).filter(function (booking) {
675
- return Number(booking.parent_id) !== 0;
604
+ var _parent_id;
605
+ return Number((_parent_id = booking.parent_id) !== null && _parent_id !== void 0 ? _parent_id : 0) !== 0;
676
606
  }).map(function (booking) {
677
607
  return normalizeSubmitBooking(booking);
678
608
  }),
@@ -684,10 +614,10 @@ export function buildSubmitPayload(params) {
684
614
  // holder: tempOrder.holder || null,
685
615
  // summary,
686
616
  metadata: function () {
687
- var _ref11 = tempOrder.metadata || {},
688
- _collectPax = _ref11.collect_pax,
689
- _tableOccupancyDuration = _ref11.table_occupancy_duration,
690
- rest = _objectWithoutProperties(_ref11, _excluded4);
617
+ var _ref13 = tempOrder.metadata || {},
618
+ _collectPax = _ref13.collect_pax,
619
+ _tableOccupancyDuration = _ref13.table_occupancy_duration,
620
+ rest = _objectWithoutProperties(_ref13, _excluded4);
691
621
  return _objectSpread({}, rest);
692
622
  }(),
693
623
  products: (tempOrder.products || []).map(function (product) {
@@ -782,5 +712,4 @@ export function formatV1Product(products) {
782
712
  };
783
713
  });
784
714
  }
785
- export { createEmptySummary } from "../../solution/ScanOrder/utils";
786
- export { buildManualProductDiscountItem, ensureManualProductDiscountList, findManualProductDiscountItem, mergeManualProductDiscountIntoList, resolveManualDiscountMessage, resolveManualDiscountOriginTotal, resolveManualDiscountReasonFromSources, resolveSafeProductNum, shouldBuildManualProductDiscount, syncManualProductDiscountProductNum, stripManualProductDiscountItems } from "./utils/manualProductDiscount";
715
+ export { createEmptySummary } from "../../solution/ScanOrder/utils";
@@ -32,10 +32,6 @@ export declare class RulesModule extends BaseModule implements Module, RulesModu
32
32
  unavailableReason?: UnavailableReason;
33
33
  };
34
34
  filterDiscountListByType(discountList: Discount[], type: string): Discount[];
35
- /** 剔除指定 type/tag 的折扣项,保留手动改价(type=product) / 券等 */
36
- excludeDiscountListByType(discountList: Discount[], type: string): Discount[];
37
- /** 手动改价场景:去掉 promotion,保留 type=product 等行内折扣 */
38
- resolveDiscountListForManualOverride(discountList: Discount[]): Discount[];
39
35
  private getUnavailableReason;
40
36
  calcDiscount({ discountList, productList, holders, isFormSubject, orderTotalAmount }: {
41
37
  discountList: Discount[];
@@ -222,22 +222,6 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
222
222
  return item.type === type || item.tag === type;
223
223
  });
224
224
  }
225
-
226
- /** 剔除指定 type/tag 的折扣项,保留手动改价(type=product) / 券等 */
227
- }, {
228
- key: "excludeDiscountListByType",
229
- value: function excludeDiscountListByType(discountList, type) {
230
- return (discountList || []).filter(function (item) {
231
- return item.type !== type && item.tag !== type;
232
- });
233
- }
234
-
235
- /** 手动改价场景:去掉 promotion,保留 type=product 等行内折扣 */
236
- }, {
237
- key: "resolveDiscountListForManualOverride",
238
- value: function resolveDiscountListForManualOverride(discountList) {
239
- return this.excludeDiscountListByType(discountList, 'promotion');
240
- }
241
225
  // 获取券不可用的原因
242
226
  }, {
243
227
  key: "getUnavailableReason",
@@ -1224,7 +1208,7 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
1224
1208
  price: product.price,
1225
1209
  options: restoredOptions
1226
1210
  }), {}, {
1227
- discount_list: isManualDiscount ? _this3.resolveDiscountListForManualOverride(product.discount_list) : _this3.filterDiscountListByType(product.discount_list, 'promotion')
1211
+ discount_list: _this3.filterDiscountListByType(product.discount_list, 'promotion')
1228
1212
  }))]);
1229
1213
  } else {
1230
1214
  var _ref13, _product$_promotion$f, _product13, _product$origin_total;
@@ -1247,14 +1231,14 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
1247
1231
  main_product_selling_price: main_product_selling_price,
1248
1232
  options: restoredOptions
1249
1233
  }), {}, {
1250
- discount_list: isManualDiscount ? _this3.resolveDiscountListForManualOverride(product.discount_list) : _this3.filterDiscountListByType(product.discount_list, 'promotion')
1234
+ discount_list: _this3.filterDiscountListByType(product.discount_list, 'promotion')
1251
1235
  }))]);
1252
1236
  }
1253
1237
  } else {
1254
- var _flatItem$bundleItem8, _flatItem$bundleItem9;
1238
+ var _flatItem$bundleItem8;
1255
1239
  // bundle子商品:保存到扁平化Map
1256
1240
  processedFlatItemsMap.set(flatItem._id, [_objectSpread(_objectSpread({}, flatItem), {}, {
1257
- discount_list: isManualDiscount ? _this3.resolveDiscountListForManualOverride(((_flatItem$bundleItem8 = flatItem.bundleItem) === null || _flatItem$bundleItem8 === void 0 ? void 0 : _flatItem$bundleItem8.discount_list) || []) : _this3.filterDiscountListByType(((_flatItem$bundleItem9 = flatItem.bundleItem) === null || _flatItem$bundleItem9 === void 0 ? void 0 : _flatItem$bundleItem9.discount_list) || [], 'promotion'),
1241
+ discount_list: _this3.filterDiscountListByType(((_flatItem$bundleItem8 = flatItem.bundleItem) === null || _flatItem$bundleItem8 === void 0 ? void 0 : _flatItem$bundleItem8.discount_list) || [], 'promotion'),
1258
1242
  price: isManualDiscount ? flatItem.bundleItem.price : flatItem.bundleItem.original_price,
1259
1243
  processed: true
1260
1244
  })]);
@@ -2085,10 +2069,10 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
2085
2069
  return true; // 单独购买时可用
2086
2070
  }
2087
2071
  if (isBundleItem) {
2088
- var _flatItem$bundleItem10, _flatItem$bundleItem11, _flatItem$originProdu, _flatItem$parentProdu10;
2072
+ var _flatItem$bundleItem9, _flatItem$bundleItem10, _flatItem$originProdu, _flatItem$parentProdu10;
2089
2073
  // 套餐中购买时,判断是否为原价
2090
- var priceType = (_flatItem$bundleItem10 = flatItem.bundleItem) === null || _flatItem$bundleItem10 === void 0 ? void 0 : _flatItem$bundleItem10.price_type;
2091
- var priceTypeExt = (_flatItem$bundleItem11 = flatItem.bundleItem) === null || _flatItem$bundleItem11 === void 0 ? void 0 : _flatItem$bundleItem11.price_type_ext;
2074
+ var priceType = (_flatItem$bundleItem9 = flatItem.bundleItem) === null || _flatItem$bundleItem9 === void 0 ? void 0 : _flatItem$bundleItem9.price_type;
2075
+ var priceTypeExt = (_flatItem$bundleItem10 = flatItem.bundleItem) === null || _flatItem$bundleItem10 === void 0 ? void 0 : _flatItem$bundleItem10.price_type_ext;
2092
2076
  // 主商品id
2093
2077
  var mainProductId = (flatItem === null || flatItem === void 0 || (_flatItem$originProdu = flatItem.originProduct) === null || _flatItem$originProdu === void 0 || (_flatItem$originProdu = _flatItem$originProdu._productOrigin) === null || _flatItem$originProdu === void 0 ? void 0 : _flatItem$originProdu.id) || (flatItem === null || flatItem === void 0 || (_flatItem$parentProdu10 = flatItem.parentProduct) === null || _flatItem$parentProdu10 === void 0 ? void 0 : _flatItem$parentProdu10.id) || 0;
2094
2078
  // original_price 对应:
@@ -2155,10 +2139,10 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
2155
2139
  return false; // 单独购买时不可用
2156
2140
  }
2157
2141
  if (isBundleItem) {
2158
- var _flatItem$bundleItem12, _flatItem$bundleItem13;
2142
+ var _flatItem$bundleItem11, _flatItem$bundleItem12;
2159
2143
  // 套餐中购买时,判断是否为原价
2160
- var _priceType = (_flatItem$bundleItem12 = flatItem.bundleItem) === null || _flatItem$bundleItem12 === void 0 ? void 0 : _flatItem$bundleItem12.price_type;
2161
- var _priceTypeExt = (_flatItem$bundleItem13 = flatItem.bundleItem) === null || _flatItem$bundleItem13 === void 0 ? void 0 : _flatItem$bundleItem13.price_type_ext;
2144
+ var _priceType = (_flatItem$bundleItem11 = flatItem.bundleItem) === null || _flatItem$bundleItem11 === void 0 ? void 0 : _flatItem$bundleItem11.price_type;
2145
+ var _priceTypeExt = (_flatItem$bundleItem12 = flatItem.bundleItem) === null || _flatItem$bundleItem12 === void 0 ? void 0 : _flatItem$bundleItem12.price_type_ext;
2162
2146
 
2163
2147
  // original_price 对应:
2164
2148
  // 1. price_type: "markup" && price_type_ext: "product_price"
@@ -27,8 +27,7 @@ export * from "./types";
27
27
  var salesSummaryDataKeys = {
28
28
  isPriceIncludeTax: 'is_price_include_tax',
29
29
  taxRate: 'tax_rate',
30
- taxTitle: 'tax_title',
31
- taxCountryCode: 'tax_country_code'
30
+ taxTitle: 'tax_title'
32
31
  };
33
32
  export var SalesSummaryModule = /*#__PURE__*/function (_BaseModule) {
34
33
  _inherits(SalesSummaryModule, _BaseModule);
@@ -136,8 +135,7 @@ export var SalesSummaryModule = /*#__PURE__*/function (_BaseModule) {
136
135
  return {
137
136
  isPriceIncludeTax: this.getAppData(salesSummaryDataKeys.isPriceIncludeTax),
138
137
  taxRate: this.getAppData(salesSummaryDataKeys.taxRate),
139
- taxTitle: this.getAppData(salesSummaryDataKeys.taxTitle),
140
- taxCountryCode: this.getAppData(salesSummaryDataKeys.taxCountryCode)
138
+ taxTitle: this.getAppData(salesSummaryDataKeys.taxTitle)
141
139
  };
142
140
  }
143
141
  }, {
@@ -16,4 +16,3 @@ export * from './Schedule';
16
16
  export * from './Quotation';
17
17
  export * from './ScanOrderLogger';
18
18
  export * from './OpenData';
19
- export * from './BookingContext';
@@ -15,5 +15,4 @@ export * from "./SalesSummary";
15
15
  export * from "./Schedule";
16
16
  export * from "./Quotation";
17
17
  export * from "./ScanOrderLogger";
18
- export * from "./OpenData";
19
- export * from "./BookingContext";
18
+ export * from "./OpenData";
@@ -1,17 +1,4 @@
1
1
  import dayjs from 'dayjs';
2
- /** 从订单 payments 提取支付方式 code,与 UI 筛选选项及 filterBookings 一致 */
3
- function getOrderPaymentCodes(order) {
4
- var payments = order.payments;
5
- if (!Array.isArray(payments) || payments.length === 0) {
6
- return [];
7
- }
8
- return payments.map(function (item) {
9
- return item === null || item === void 0 ? void 0 : item.code;
10
- }).filter(function (code) {
11
- return typeof code === 'string' && code.length > 0;
12
- });
13
- }
14
-
15
2
  /**
16
3
  * 订单过滤函数
17
4
  * @param orders 原始订单列表
@@ -139,23 +126,22 @@ export function filterOrders(orders, filters) {
139
126
  }
140
127
  }
141
128
 
142
- // payment_methods - 支付方式(按 payments[].code 匹配,不再使用 order.payment_methods)
129
+ // payment_methods - 支付方式
143
130
  if (safeFilters.payment_methods && safeFilters.payment_methods.length > 0) {
144
- var orderPaymentCodes = getOrderPaymentCodes(order);
145
- if (orderPaymentCodes.length === 0) {
131
+ if (!order.payment_methods || !Array.isArray(order.payment_methods) || order.payment_methods.length === 0) {
146
132
  rejected.push({
147
133
  order_id: order.order_id,
148
134
  order_number: order.order_number,
149
135
  reason: {
150
136
  field: 'payment_methods',
151
- actual: order.payments,
137
+ actual: order.payment_methods,
152
138
  expected: safeFilters.payment_methods
153
139
  }
154
140
  });
155
141
  return false;
156
142
  }
157
- var hasMatch = orderPaymentCodes.some(function (code) {
158
- return safeFilters.payment_methods.includes(code);
143
+ var hasMatch = order.payment_methods.some(function (pm) {
144
+ return safeFilters.payment_methods.includes(pm);
159
145
  });
160
146
  if (!hasMatch) {
161
147
  rejected.push({
@@ -163,7 +149,7 @@ export function filterOrders(orders, filters) {
163
149
  order_number: order.order_number,
164
150
  reason: {
165
151
  field: 'payment_methods',
166
- actual: orderPaymentCodes,
152
+ actual: order.payment_methods,
167
153
  expected: safeFilters.payment_methods
168
154
  }
169
155
  });