@pisell/pisellos 2.2.169 → 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 (146) hide show
  1. package/dist/modules/Customer/index.d.ts +0 -6
  2. package/dist/modules/Customer/index.js +83 -129
  3. package/dist/modules/Customer/types.d.ts +0 -2
  4. package/dist/modules/Discount/index.d.ts +4 -2
  5. package/dist/modules/Discount/index.js +93 -8
  6. package/dist/modules/Discount/types.d.ts +7 -1
  7. package/dist/modules/Order/index.d.ts +16 -28
  8. package/dist/modules/Order/index.js +322 -695
  9. package/dist/modules/Order/types.d.ts +14 -49
  10. package/dist/modules/Order/types.js +0 -2
  11. package/dist/modules/Order/utils.d.ts +0 -17
  12. package/dist/modules/Order/utils.js +26 -96
  13. package/dist/modules/Rules/index.d.ts +0 -4
  14. package/dist/modules/Rules/index.js +10 -26
  15. package/dist/modules/SalesSummary/index.js +2 -4
  16. package/dist/modules/index.d.ts +0 -1
  17. package/dist/modules/index.js +1 -2
  18. package/dist/server/modules/order/utils/filterOrders.js +6 -20
  19. package/dist/solution/BaseSales/index.d.ts +7 -46
  20. package/dist/solution/BaseSales/index.js +315 -1009
  21. package/dist/solution/BaseSales/types.d.ts +1 -53
  22. package/dist/solution/BaseSales/types.js +1 -3
  23. package/dist/solution/BaseSales/utils/transformBaseProductToOrderProduct.js +15 -65
  24. package/dist/solution/BaseSales/utils.js +8 -46
  25. package/dist/solution/BookingTicket/index.d.ts +2 -134
  26. package/dist/solution/BookingTicket/index.js +175 -768
  27. package/dist/solution/BookingTicket/types.d.ts +0 -2
  28. package/dist/solution/BookingTicket/types.js +0 -3
  29. package/dist/solution/ScanOrder/index.d.ts +3 -9
  30. package/dist/solution/ScanOrder/index.js +128 -231
  31. package/dist/solution/ScanOrder/utils.js +8 -46
  32. package/dist/solution/ShopDiscount/index.d.ts +1 -0
  33. package/dist/solution/ShopDiscount/index.js +23 -18
  34. package/dist/solution/VenueBooking/index.d.ts +9 -5
  35. package/dist/solution/VenueBooking/index.js +55 -103
  36. package/dist/solution/VenueBooking/utils/slotMerge.d.ts +0 -4
  37. package/dist/solution/VenueBooking/utils/slotMerge.js +0 -10
  38. package/lib/modules/Customer/index.d.ts +0 -6
  39. package/lib/modules/Customer/index.js +11 -26
  40. package/lib/modules/Customer/types.d.ts +0 -2
  41. package/lib/modules/Discount/index.d.ts +4 -2
  42. package/lib/modules/Discount/index.js +63 -8
  43. package/lib/modules/Discount/types.d.ts +7 -1
  44. package/lib/modules/Order/index.d.ts +16 -28
  45. package/lib/modules/Order/index.js +84 -336
  46. package/lib/modules/Order/types.d.ts +14 -49
  47. package/lib/modules/Order/utils.d.ts +0 -17
  48. package/lib/modules/Order/utils.js +18 -104
  49. package/lib/modules/Rules/index.d.ts +0 -4
  50. package/lib/modules/Rules/index.js +14 -22
  51. package/lib/modules/SalesSummary/index.js +2 -4
  52. package/lib/modules/index.d.ts +0 -1
  53. package/lib/modules/index.js +1 -3
  54. package/lib/server/modules/order/utils/filterOrders.js +4 -12
  55. package/lib/solution/BaseSales/index.d.ts +7 -46
  56. package/lib/solution/BaseSales/index.js +20 -434
  57. package/lib/solution/BaseSales/types.d.ts +1 -53
  58. package/lib/solution/BaseSales/types.js +1 -3
  59. package/lib/solution/BaseSales/utils/transformBaseProductToOrderProduct.js +11 -70
  60. package/lib/solution/BaseSales/utils.js +6 -46
  61. package/lib/solution/BookingTicket/index.d.ts +2 -134
  62. package/lib/solution/BookingTicket/index.js +8 -341
  63. package/lib/solution/BookingTicket/types.d.ts +0 -2
  64. package/lib/solution/BookingTicket/types.js +0 -6
  65. package/lib/solution/ScanOrder/index.d.ts +3 -9
  66. package/lib/solution/ScanOrder/index.js +66 -147
  67. package/lib/solution/ScanOrder/utils.js +6 -46
  68. package/lib/solution/ShopDiscount/index.d.ts +1 -0
  69. package/lib/solution/ShopDiscount/index.js +4 -2
  70. package/lib/solution/VenueBooking/index.d.ts +9 -5
  71. package/lib/solution/VenueBooking/index.js +14 -50
  72. package/lib/solution/VenueBooking/utils/slotMerge.d.ts +0 -4
  73. package/lib/solution/VenueBooking/utils/slotMerge.js +0 -10
  74. package/package.json +2 -2
  75. package/dist/modules/BookingContext/index.d.ts +0 -37
  76. package/dist/modules/BookingContext/index.js +0 -436
  77. package/dist/modules/BookingContext/types.d.ts +0 -102
  78. package/dist/modules/BookingContext/types.js +0 -51
  79. package/dist/modules/BookingContext/utils/buildCacheItemFromOrderLine.d.ts +0 -16
  80. package/dist/modules/BookingContext/utils/buildCacheItemFromOrderLine.js +0 -193
  81. package/dist/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.d.ts +0 -8
  82. package/dist/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.js +0 -137
  83. package/dist/modules/BookingContext/utils/cacheItemToBookingInput.d.ts +0 -75
  84. package/dist/modules/BookingContext/utils/cacheItemToBookingInput.js +0 -215
  85. package/dist/modules/BookingContext/utils/flexible.d.ts +0 -28
  86. package/dist/modules/BookingContext/utils/flexible.js +0 -56
  87. package/dist/modules/BookingContext/utils/formatResourceList.d.ts +0 -8
  88. package/dist/modules/BookingContext/utils/formatResourceList.js +0 -38
  89. package/dist/modules/BookingContext/utils/index.d.ts +0 -11
  90. package/dist/modules/BookingContext/utils/index.js +0 -11
  91. package/dist/modules/BookingContext/utils/noResource.d.ts +0 -13
  92. package/dist/modules/BookingContext/utils/noResource.js +0 -77
  93. package/dist/modules/BookingContext/utils/productExtend.d.ts +0 -72
  94. package/dist/modules/BookingContext/utils/productExtend.js +0 -339
  95. package/dist/modules/BookingContext/utils/resourceErrors.d.ts +0 -41
  96. package/dist/modules/BookingContext/utils/resourceErrors.js +0 -74
  97. package/dist/modules/BookingContext/utils/resourceSelection.d.ts +0 -7
  98. package/dist/modules/BookingContext/utils/resourceSelection.js +0 -24
  99. package/dist/modules/BookingContext/utils/resources.d.ts +0 -80
  100. package/dist/modules/BookingContext/utils/resources.js +0 -486
  101. package/dist/modules/BookingContext/utils/serviceTimes.d.ts +0 -55
  102. package/dist/modules/BookingContext/utils/serviceTimes.js +0 -151
  103. package/dist/modules/BookingContext/utils/timeSlices.d.ts +0 -42
  104. package/dist/modules/BookingContext/utils/timeSlices.js +0 -100
  105. package/dist/modules/Order/utils/manualProductDiscount.d.ts +0 -106
  106. package/dist/modules/Order/utils/manualProductDiscount.js +0 -212
  107. package/dist/solution/BaseSales/utils/quotationPrice.d.ts +0 -7
  108. package/dist/solution/BaseSales/utils/quotationPrice.js +0 -159
  109. package/dist/solution/BookingTicket/utils/addProductDecision.d.ts +0 -113
  110. package/dist/solution/BookingTicket/utils/addProductDecision.js +0 -346
  111. package/lib/modules/BookingContext/index.d.ts +0 -37
  112. package/lib/modules/BookingContext/index.js +0 -297
  113. package/lib/modules/BookingContext/types.d.ts +0 -102
  114. package/lib/modules/BookingContext/types.js +0 -34
  115. package/lib/modules/BookingContext/utils/buildCacheItemFromOrderLine.d.ts +0 -16
  116. package/lib/modules/BookingContext/utils/buildCacheItemFromOrderLine.js +0 -207
  117. package/lib/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.d.ts +0 -8
  118. package/lib/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.js +0 -141
  119. package/lib/modules/BookingContext/utils/cacheItemToBookingInput.d.ts +0 -75
  120. package/lib/modules/BookingContext/utils/cacheItemToBookingInput.js +0 -198
  121. package/lib/modules/BookingContext/utils/flexible.d.ts +0 -28
  122. package/lib/modules/BookingContext/utils/flexible.js +0 -80
  123. package/lib/modules/BookingContext/utils/formatResourceList.d.ts +0 -8
  124. package/lib/modules/BookingContext/utils/formatResourceList.js +0 -50
  125. package/lib/modules/BookingContext/utils/index.d.ts +0 -11
  126. package/lib/modules/BookingContext/utils/index.js +0 -43
  127. package/lib/modules/BookingContext/utils/noResource.d.ts +0 -13
  128. package/lib/modules/BookingContext/utils/noResource.js +0 -90
  129. package/lib/modules/BookingContext/utils/productExtend.d.ts +0 -72
  130. package/lib/modules/BookingContext/utils/productExtend.js +0 -283
  131. package/lib/modules/BookingContext/utils/resourceErrors.d.ts +0 -41
  132. package/lib/modules/BookingContext/utils/resourceErrors.js +0 -80
  133. package/lib/modules/BookingContext/utils/resourceSelection.d.ts +0 -7
  134. package/lib/modules/BookingContext/utils/resourceSelection.js +0 -46
  135. package/lib/modules/BookingContext/utils/resources.d.ts +0 -80
  136. package/lib/modules/BookingContext/utils/resources.js +0 -377
  137. package/lib/modules/BookingContext/utils/serviceTimes.d.ts +0 -55
  138. package/lib/modules/BookingContext/utils/serviceTimes.js +0 -162
  139. package/lib/modules/BookingContext/utils/timeSlices.d.ts +0 -42
  140. package/lib/modules/BookingContext/utils/timeSlices.js +0 -124
  141. package/lib/modules/Order/utils/manualProductDiscount.d.ts +0 -106
  142. package/lib/modules/Order/utils/manualProductDiscount.js +0 -207
  143. package/lib/solution/BaseSales/utils/quotationPrice.d.ts +0 -7
  144. package/lib/solution/BaseSales/utils/quotationPrice.js +0 -201
  145. package/lib/solution/BookingTicket/utils/addProductDecision.d.ts +0 -113
  146. 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
  /**
@@ -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';
@@ -29,15 +29,12 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
29
29
  // src/modules/Order/utils.ts
30
30
  var utils_exports = {};
31
31
  __export(utils_exports, {
32
- buildManualProductDiscountItem: () => import_manualProductDiscount.buildManualProductDiscountItem,
33
32
  buildSubmitPayload: () => buildSubmitPayload,
34
33
  composeLinePrice: () => composeLinePrice,
35
34
  createDefaultOrderRulesHooks: () => createDefaultOrderRulesHooks,
36
35
  createDefaultTempOrder: () => createDefaultTempOrder,
37
36
  createEmptySummary: () => import_utils2.createEmptySummary,
38
37
  createUuidV4: () => createUuidV4,
39
- ensureManualProductDiscountList: () => import_manualProductDiscount.ensureManualProductDiscountList,
40
- findManualProductDiscountItem: () => import_manualProductDiscount.findManualProductDiscountItem,
41
38
  formatDateTime: () => formatDateTime,
42
39
  formatV1Product: () => formatV1Product,
43
40
  generateDuration: () => generateDuration,
@@ -45,30 +42,19 @@ __export(utils_exports, {
45
42
  isTempOrder: () => isTempOrder,
46
43
  mapPaymentItemToOrderPayment: () => mapPaymentItemToOrderPayment,
47
44
  mapPaymentItemsToOrderPayments: () => mapPaymentItemsToOrderPayments,
48
- mergeManualProductDiscountIntoList: () => import_manualProductDiscount.mergeManualProductDiscountIntoList,
49
45
  mergeRelationForms: () => mergeRelationForms,
50
46
  normalizeBookingIsAll: () => normalizeBookingIsAll,
51
47
  normalizeBookingSubType: () => normalizeBookingSubType,
52
48
  normalizeSubmitBooking: () => normalizeSubmitBooking,
53
49
  normalizeSubmitCollectPaxValue: () => normalizeSubmitCollectPaxValue,
54
- resolveManualDiscountMessage: () => import_manualProductDiscount.resolveManualDiscountMessage,
55
- resolveManualDiscountOriginTotal: () => import_manualProductDiscount.resolveManualDiscountOriginTotal,
56
- resolveManualDiscountReasonFromSources: () => import_manualProductDiscount.resolveManualDiscountReasonFromSources,
57
- resolveManualOverrideLineOriginalPrice: () => resolveManualOverrideLineOriginalPrice,
58
- resolveRulesManualDiscountFlag: () => resolveRulesManualDiscountFlag,
59
- resolveSafeProductNum: () => import_manualProductDiscount.resolveSafeProductNum,
60
50
  resolveSubmitCollectPax: () => resolveSubmitCollectPax,
61
- shouldBuildManualProductDiscount: () => import_manualProductDiscount.shouldBuildManualProductDiscount,
62
- stripManualProductDiscountItems: () => import_manualProductDiscount.stripManualProductDiscountItems,
63
- sumOptionUnitPrice: () => sumOptionUnitPrice,
64
- syncManualProductDiscountProductNum: () => import_manualProductDiscount.syncManualProductDiscountProductNum
51
+ sumOptionUnitPrice: () => sumOptionUnitPrice
65
52
  });
66
53
  module.exports = __toCommonJS(utils_exports);
67
54
  var import_dayjs = __toESM(require("dayjs"));
68
55
  var import_decimal = __toESM(require("decimal.js"));
69
56
  var import_utils = require("../../solution/ScanOrder/utils");
70
57
  var import_utils2 = require("../../solution/ScanOrder/utils");
71
- var import_manualProductDiscount = require("./utils/manualProductDiscount");
72
58
  function composeLinePrice(params) {
73
59
  const { mainPrice, bundle, useOriginalBundle } = params;
74
60
  let total = new import_decimal.default(Number(mainPrice) || 0);
@@ -94,42 +80,6 @@ function sumOptionUnitPrice(options) {
94
80
  }
95
81
  return total;
96
82
  }
97
- function resolveRulesManualDiscountFlag(metadata) {
98
- if (!metadata)
99
- return void 0;
100
- if (metadata.is_manual_discount === true || metadata.is_manual_discount === 1) {
101
- return true;
102
- }
103
- const priceOverride = metadata.price_override;
104
- if (priceOverride !== void 0 && priceOverride !== null && priceOverride !== "") {
105
- return true;
106
- }
107
- return void 0;
108
- }
109
- function resolveManualOverrideLineOriginalPrice(params, fallbackCompositeOriginal) {
110
- var _a, _b;
111
- const metadata = params.metadata || {};
112
- const priceOverride = metadata.price_override;
113
- if (priceOverride === void 0 || priceOverride === null || priceOverride === "") {
114
- return fallbackCompositeOriginal;
115
- }
116
- const refTotal = (_b = (_a = metadata.origin) == null ? void 0 : _a._extend) == null ? void 0 : _b.origin_total;
117
- if (refTotal !== void 0 && refTotal !== null && refTotal !== "") {
118
- const parsed = Number(refTotal);
119
- if (Number.isFinite(parsed)) {
120
- return new import_decimal.default(parsed).toDecimalPlaces(2).toFixed(2);
121
- }
122
- }
123
- const lineOriginal = params.lineOriginalPrice;
124
- if (lineOriginal !== void 0 && lineOriginal !== null && lineOriginal !== "") {
125
- const parsedLine = Number(lineOriginal);
126
- const parsedFallback = Number(fallbackCompositeOriginal);
127
- if (Number.isFinite(parsedLine) && Number.isFinite(parsedFallback) && parsedLine > parsedFallback) {
128
- return new import_decimal.default(parsedLine).toDecimalPlaces(2).toFixed(2);
129
- }
130
- }
131
- return fallbackCompositeOriginal;
132
- }
133
83
  function createDefaultOrderRulesHooks() {
134
84
  const toUnitPriceString = (totalLike, num) => {
135
85
  const effectiveNum = Number(num) > 0 ? Number(num) : 1;
@@ -137,7 +87,7 @@ function createDefaultOrderRulesHooks() {
137
87
  };
138
88
  return {
139
89
  getProduct: (product) => {
140
- var _a, _b, _c, _d, _e;
90
+ var _a, _b, _c, _d, _e, _f;
141
91
  const metadataAny = product.metadata || {};
142
92
  const optionSum = sumOptionUnitPrice(product.product_option_item);
143
93
  let sourcePrice;
@@ -185,11 +135,9 @@ function createDefaultOrderRulesHooks() {
185
135
  bundle: product.product_bundle || [],
186
136
  booking_id: ((_b = product.metadata) == null ? void 0 : _b.booking_id) || null,
187
137
  isClient: false,
188
- // 勿写死 false:否则 Rules 不会走 total≠origin_total 的手动价推断,
189
- // 无券时会把 bundle 价还原成 original_price(手动改价套餐会从 20 回到 30)。
190
- isManualDiscount: resolveRulesManualDiscountFlag(metadataAny),
191
- holder_id: (_c = product.metadata) == null ? void 0 : _c.holder_id,
192
- startDate: ((_d = product.metadata) == null ? void 0 : _d.start_date) || ((_e = product.metadata) == null ? void 0 : _e.startDate)
138
+ isManualDiscount: ((_c = product.metadata) == null ? void 0 : _c.is_manual_discount) || false,
139
+ holder_id: (_d = product.metadata) == null ? void 0 : _d.holder_id,
140
+ startDate: ((_e = product.metadata) == null ? void 0 : _e.start_date) || ((_f = product.metadata) == null ? void 0 : _f.startDate)
193
141
  };
194
142
  },
195
143
  setProduct: (product, values) => {
@@ -212,14 +160,10 @@ function createDefaultOrderRulesHooks() {
212
160
  bundle: nextBundle,
213
161
  useOriginalBundle: true
214
162
  });
215
- const finalOriginalPrice = resolveManualOverrideLineOriginalPrice(
216
- { num: nextNum, metadata: metadataAny, lineOriginalPrice: product.original_price },
217
- composedOriginalPrice
218
- );
219
163
  return {
220
164
  ...product,
221
165
  selling_price: composedSellingPrice,
222
- original_price: finalOriginalPrice,
166
+ original_price: composedOriginalPrice,
223
167
  discount_list: values.discount_list ?? product.discount_list,
224
168
  num: values.quantity ?? product.num,
225
169
  product_bundle: nextBundle,
@@ -377,11 +321,6 @@ function normalizeSubmitProduct(product) {
377
321
  num,
378
322
  product_option_item: productOptionItem,
379
323
  surcharge_fee: _productSurchargeFee,
380
- discount_amount: _deprecatedDiscountAmount,
381
- discount_type: _deprecatedDiscountType,
382
- discountway: _deprecatedDiscountway,
383
- product_discount_reason: _deprecatedProductDiscountReason,
384
- discount_per: _deprecatedDiscountPer,
385
324
  ...productRest
386
325
  } = submitProduct;
387
326
  const rawMetadata = submitProduct.metadata || {};
@@ -486,23 +425,22 @@ function createDefaultTempOrder(params) {
486
425
  return {
487
426
  order_id: null,
488
427
  external_sale_number: "",
489
- order_number: null,
490
- shop_order_number: null,
491
- shop_full_order_number: null,
492
- type: "",
493
- business_code: void 0,
428
+ order_number: "",
429
+ shop_order_number: "",
430
+ shop_full_order_number: "",
431
+ type: "appointment_booking",
432
+ business_code: "appointment_booking",
494
433
  platform: "h5",
495
434
  sales_channel: "my_pisel",
496
435
  order_sales_channel: "online_store",
497
436
  status: "normal",
498
437
  payment_status: "payment_processing",
499
438
  shipping_status: "unfulfilled",
500
- customer_id: 0,
439
+ customer_id: null,
501
440
  customer_name: "",
502
441
  country_calling_code: "",
503
442
  phone: "",
504
443
  email: "",
505
- customer: null,
506
444
  is_price_include_tax: 1,
507
445
  tax_title: "",
508
446
  tax_country_code: "",
@@ -533,7 +471,6 @@ function createDefaultTempOrder(params) {
533
471
  };
534
472
  }
535
473
  function buildSubmitPayload(params) {
536
- var _a;
537
474
  const {
538
475
  tempOrder,
539
476
  cacheId,
@@ -559,6 +496,7 @@ function buildSubmitPayload(params) {
559
496
  shop_service_type: _shopServiceType,
560
497
  start_time: _startTime,
561
498
  customer: _customer,
499
+ shop_full_order_number: _shopFullOrderNumber,
562
500
  tax_fee: _rootTaxFee,
563
501
  total_amount: _totalAmount,
564
502
  total_refund_amount: _totalRefundAmount,
@@ -566,23 +504,12 @@ function buildSubmitPayload(params) {
566
504
  holder_id: _holderId,
567
505
  ...tempOrderRest
568
506
  } = tempOrder;
569
- let submitType = type ?? tempOrder.type;
570
- if (!submitType) {
571
- if ((_a = tempOrder == null ? void 0 : tempOrder.bookings) == null ? void 0 : _a.length) {
572
- submitType = "appointment_booking";
573
- } else {
574
- submitType = "virtual";
575
- }
576
- }
577
507
  const payload = {
578
508
  ...tempOrderRest,
579
- order_number: null,
580
- shop_order_number: null,
581
- shop_full_order_number: null,
582
509
  platform: normalizeSubmitPlatform(platform),
583
510
  request_unique_idempotency_token: tempOrder.request_unique_idempotency_token || `${tempOrder.external_sale_number}_${now.getTime()}`,
584
- type: submitType,
585
- business_code: businessCode ?? tempOrder.business_code,
511
+ type: type ?? tempOrder.type ?? "table-order",
512
+ business_code: businessCode ?? tempOrder.business_code ?? "table-order",
586
513
  sales_channel: tempOrder.sales_channel || "my_pisel",
587
514
  order_sales_channel: channel ?? tempOrder.order_sales_channel ?? "online_store",
588
515
  status: tempOrder.status || "normal",
@@ -597,9 +524,9 @@ function buildSubmitPayload(params) {
597
524
  note: tempOrder.note || "",
598
525
  delivery_type: tempOrder.delivery_type || "nil",
599
526
  schedule_date: scheduleDate,
600
- // created_at: tempOrder.created_at || formatDateTime(now), 和后端协定这个字段先不提交到接口
527
+ created_at: tempOrder.created_at || formatDateTime(now),
601
528
  bookings: (tempOrder.bookings || []).filter(
602
- (booking) => Number(booking.parent_id) !== 0
529
+ (booking) => Number(booking.parent_id ?? 0) !== 0
603
530
  ).map((booking) => normalizeSubmitBooking(booking)),
604
531
  payments: tempOrder.payments || [],
605
532
  // discount_list: tempOrder.discount_list || [],
@@ -685,15 +612,12 @@ function formatV1Product(products) {
685
612
  }
686
613
  // Annotate the CommonJS export names for ESM import in node:
687
614
  0 && (module.exports = {
688
- buildManualProductDiscountItem,
689
615
  buildSubmitPayload,
690
616
  composeLinePrice,
691
617
  createDefaultOrderRulesHooks,
692
618
  createDefaultTempOrder,
693
619
  createEmptySummary,
694
620
  createUuidV4,
695
- ensureManualProductDiscountList,
696
- findManualProductDiscountItem,
697
621
  formatDateTime,
698
622
  formatV1Product,
699
623
  generateDuration,
@@ -701,21 +625,11 @@ function formatV1Product(products) {
701
625
  isTempOrder,
702
626
  mapPaymentItemToOrderPayment,
703
627
  mapPaymentItemsToOrderPayments,
704
- mergeManualProductDiscountIntoList,
705
628
  mergeRelationForms,
706
629
  normalizeBookingIsAll,
707
630
  normalizeBookingSubType,
708
631
  normalizeSubmitBooking,
709
632
  normalizeSubmitCollectPaxValue,
710
- resolveManualDiscountMessage,
711
- resolveManualDiscountOriginTotal,
712
- resolveManualDiscountReasonFromSources,
713
- resolveManualOverrideLineOriginalPrice,
714
- resolveRulesManualDiscountFlag,
715
- resolveSafeProductNum,
716
633
  resolveSubmitCollectPax,
717
- shouldBuildManualProductDiscount,
718
- stripManualProductDiscountItems,
719
- sumOptionUnitPrice,
720
- syncManualProductDiscountProductNum
634
+ sumOptionUnitPrice
721
635
  });
@@ -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[];
@@ -159,14 +159,6 @@ var RulesModule = class extends import_BaseModule.BaseModule {
159
159
  filterDiscountListByType(discountList, type) {
160
160
  return (discountList || []).filter((item) => item.type === type || item.tag === type);
161
161
  }
162
- /** 剔除指定 type/tag 的折扣项,保留手动改价(type=product) / 券等 */
163
- excludeDiscountListByType(discountList, type) {
164
- return (discountList || []).filter((item) => item.type !== type && item.tag !== type);
165
- }
166
- /** 手动改价场景:去掉 promotion,保留 type=product 等行内折扣 */
167
- resolveDiscountListForManualOverride(discountList) {
168
- return this.excludeDiscountListByType(discountList, "promotion");
169
- }
170
162
  // 获取券不可用的原因
171
163
  getUnavailableReason(discountList, productList) {
172
164
  var _a;
@@ -681,7 +673,7 @@ var RulesModule = class extends import_BaseModule.BaseModule {
681
673
  }, 0);
682
674
  };
683
675
  sortedFlattenedList.forEach((flatItem, index) => {
684
- var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _A, _B, _C, _D, _E, _F, _G;
676
+ var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _A, _B, _C, _D, _E, _F;
685
677
  let product, originProduct;
686
678
  if (flatItem.type === "main") {
687
679
  product = flatItem.product;
@@ -904,7 +896,7 @@ var RulesModule = class extends import_BaseModule.BaseModule {
904
896
  price: product.price,
905
897
  options: restoredOptions
906
898
  },
907
- discount_list: isManualDiscount ? this.resolveDiscountListForManualOverride(product.discount_list) : this.filterDiscountListByType(product.discount_list, "promotion")
899
+ discount_list: this.filterDiscountListByType(product.discount_list, "promotion")
908
900
  })
909
901
  ]);
910
902
  } else {
@@ -926,14 +918,14 @@ var RulesModule = class extends import_BaseModule.BaseModule {
926
918
  main_product_selling_price,
927
919
  options: restoredOptions
928
920
  },
929
- discount_list: isManualDiscount ? this.resolveDiscountListForManualOverride(product.discount_list) : this.filterDiscountListByType(product.discount_list, "promotion")
921
+ discount_list: this.filterDiscountListByType(product.discount_list, "promotion")
930
922
  })
931
923
  ]);
932
924
  }
933
925
  } else {
934
926
  processedFlatItemsMap.set(flatItem._id, [{
935
927
  ...flatItem,
936
- discount_list: isManualDiscount ? this.resolveDiscountListForManualOverride(((_v = flatItem.bundleItem) == null ? void 0 : _v.discount_list) || []) : this.filterDiscountListByType(((_w = flatItem.bundleItem) == null ? void 0 : _w.discount_list) || [], "promotion"),
928
+ discount_list: this.filterDiscountListByType(((_v = flatItem.bundleItem) == null ? void 0 : _v.discount_list) || [], "promotion"),
937
929
  price: isManualDiscount ? flatItem.bundleItem.price : flatItem.bundleItem.original_price,
938
930
  processed: true
939
931
  }]);
@@ -984,13 +976,13 @@ var RulesModule = class extends import_BaseModule.BaseModule {
984
976
  if (this.filterDiscountListByType(product.discount_list, "promotion").length && product.origin_total) {
985
977
  productOriginTotal = product.origin_total;
986
978
  }
987
- if (Number(((_x = originProduct == null ? void 0 : originProduct._productInit) == null ? void 0 : _x.original_price) || 0) > 0 && product.origin_total && product.total && product.origin_total !== product.total) {
979
+ if (Number(((_w = originProduct == null ? void 0 : originProduct._productInit) == null ? void 0 : _w.original_price) || 0) > 0 && product.origin_total && product.total && product.origin_total !== product.total) {
988
980
  productOriginTotal = product.total;
989
981
  }
990
982
  const isOrderLevel = (0, import_utils3.isOrderLevelFixedAmountDiscount)(selectedDiscount2);
991
983
  const orderLevelAllocation = isOrderLevel ? orderLevelDiscountAllocations.get(selectedDiscount2.id) : null;
992
984
  const productAllocation = orderLevelAllocation == null ? void 0 : orderLevelAllocation.get(flatItem._id);
993
- const isDeductOptionPrice = !!((_y = selectedDiscount2.config) == null ? void 0 : _y.deductOptionPrice);
985
+ const isDeductOptionPrice = !!((_x = selectedDiscount2.config) == null ? void 0 : _x.deductOptionPrice);
994
986
  let mainProductSellingPrice;
995
987
  let amount;
996
988
  let productDiscountDifference;
@@ -1008,7 +1000,7 @@ var RulesModule = class extends import_BaseModule.BaseModule {
1008
1000
  );
1009
1001
  amount = new import_decimal.default(product.price).minus(new import_decimal.default(mainProductSellingPrice)).toNumber();
1010
1002
  }
1011
- if (isDeductOptionPrice && ((_z = product.options) == null ? void 0 : _z.length)) {
1003
+ if (isDeductOptionPrice && ((_y = product.options) == null ? void 0 : _y.length)) {
1012
1004
  const optionResult = applyDiscountToOptions(
1013
1005
  product.options,
1014
1006
  selectedDiscount2
@@ -1016,7 +1008,7 @@ var RulesModule = class extends import_BaseModule.BaseModule {
1016
1008
  discountedOptions = optionResult.discountedOptions;
1017
1009
  optionDiscountAmount = optionResult.optionDiscountAmount;
1018
1010
  }
1019
- const optionsForLineTotal = isDeductOptionPrice && ((_A = product.options) == null ? void 0 : _A.length) ? discountedOptions : product.options;
1011
+ const optionsForLineTotal = isDeductOptionPrice && ((_z = product.options) == null ? void 0 : _z.length) ? discountedOptions : product.options;
1020
1012
  const optionsLineTotal = getOptionTotal(optionsForLineTotal || []);
1021
1013
  const total = new import_decimal.default(mainProductSellingPrice).plus(optionsLineTotal).toNumber();
1022
1014
  const mainProductDiscountAmount = amount;
@@ -1027,9 +1019,9 @@ var RulesModule = class extends import_BaseModule.BaseModule {
1027
1019
  amount: lineDiscountAmount,
1028
1020
  type: selectedDiscount2.tag === "product_discount_card" ? "discount_card" : discountType,
1029
1021
  discount: {
1030
- discount_card_type: (_B = selectedDiscount2 == null ? void 0 : selectedDiscount2.metadata) == null ? void 0 : _B.discount_card_type,
1022
+ discount_card_type: (_A = selectedDiscount2 == null ? void 0 : selectedDiscount2.metadata) == null ? void 0 : _A.discount_card_type,
1031
1023
  fixed_amount: lineDiscountAmount,
1032
- discount_calculation_mode: (_C = selectedDiscount2 == null ? void 0 : selectedDiscount2.metadata) == null ? void 0 : _C.discount_calculation_mode,
1024
+ discount_calculation_mode: (_B = selectedDiscount2 == null ? void 0 : selectedDiscount2.metadata) == null ? void 0 : _B.discount_calculation_mode,
1033
1025
  resource_id: selectedDiscount2.id,
1034
1026
  title: selectedDiscount2.format_title,
1035
1027
  original_amount: product.price,
@@ -1111,7 +1103,7 @@ var RulesModule = class extends import_BaseModule.BaseModule {
1111
1103
  type: "good_pass",
1112
1104
  discount: {
1113
1105
  fixed_amount: product.origin_total,
1114
- discount_calculation_mode: (_D = selectedDiscount2 == null ? void 0 : selectedDiscount2.metadata) == null ? void 0 : _D.discount_calculation_mode,
1106
+ discount_calculation_mode: (_C = selectedDiscount2 == null ? void 0 : selectedDiscount2.metadata) == null ? void 0 : _C.discount_calculation_mode,
1115
1107
  resource_id: selectedDiscount2.id,
1116
1108
  title: selectedDiscount2.format_title,
1117
1109
  original_amount: product.origin_total,
@@ -1185,9 +1177,9 @@ var RulesModule = class extends import_BaseModule.BaseModule {
1185
1177
  amount: fixedAmountPerItem * (product.num || 1),
1186
1178
  type: selectedDiscount2.tag === "product_discount_card" ? "discount_card" : selectedDiscount2.tag,
1187
1179
  discount: {
1188
- discount_card_type: (_E = selectedDiscount2 == null ? void 0 : selectedDiscount2.metadata) == null ? void 0 : _E.discount_card_type,
1180
+ discount_card_type: (_D = selectedDiscount2 == null ? void 0 : selectedDiscount2.metadata) == null ? void 0 : _D.discount_card_type,
1189
1181
  fixed_amount: fixedAmountPerItem,
1190
- discount_calculation_mode: (_F = selectedDiscount2 == null ? void 0 : selectedDiscount2.metadata) == null ? void 0 : _F.discount_calculation_mode,
1182
+ discount_calculation_mode: (_E = selectedDiscount2 == null ? void 0 : selectedDiscount2.metadata) == null ? void 0 : _E.discount_calculation_mode,
1191
1183
  resource_id: selectedDiscount2.id,
1192
1184
  title: selectedDiscount2.format_title,
1193
1185
  original_amount: product.original_price,
@@ -1203,7 +1195,7 @@ var RulesModule = class extends import_BaseModule.BaseModule {
1203
1195
  ...productDiscountDifference !== void 0 && { product_discount_difference: productDiscountDifference }
1204
1196
  },
1205
1197
  config: selectedDiscount2 == null ? void 0 : selectedDiscount2.config,
1206
- _num: (product.num || 1) * (((_G = flatItem == null ? void 0 : flatItem.parentProduct) == null ? void 0 : _G.num) || 1)
1198
+ _num: (product.num || 1) * (((_F = flatItem == null ? void 0 : flatItem.parentProduct) == null ? void 0 : _F.num) || 1)
1207
1199
  };
1208
1200
  const appliedProducts = appliedDiscountProducts.get(selectedDiscount2.id) || [];
1209
1201
  appliedProducts.push(discountDetail);
@@ -30,8 +30,7 @@ __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",
34
- taxCountryCode: "tax_country_code"
33
+ taxTitle: "tax_title"
35
34
  };
36
35
  var SalesSummaryModule = class extends import_BaseModule.BaseModule {
37
36
  constructor(name, version) {
@@ -85,8 +84,7 @@ var SalesSummaryModule = class extends import_BaseModule.BaseModule {
85
84
  return {
86
85
  isPriceIncludeTax: this.getAppData(salesSummaryDataKeys.isPriceIncludeTax),
87
86
  taxRate: this.getAppData(salesSummaryDataKeys.taxRate),
88
- taxTitle: this.getAppData(salesSummaryDataKeys.taxTitle),
89
- taxCountryCode: this.getAppData(salesSummaryDataKeys.taxCountryCode)
87
+ taxTitle: this.getAppData(salesSummaryDataKeys.taxTitle)
90
88
  };
91
89
  }
92
90
  async getSummary(params) {
@@ -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';
@@ -34,7 +34,6 @@ __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);
38
37
  // Annotate the CommonJS export names for ESM import in node:
39
38
  0 && (module.exports = {
40
39
  ...require("./Product"),
@@ -54,6 +53,5 @@ __reExport(modules_exports, require("./BookingContext"), module.exports);
54
53
  ...require("./Schedule"),
55
54
  ...require("./Quotation"),
56
55
  ...require("./ScanOrderLogger"),
57
- ...require("./OpenData"),
58
- ...require("./BookingContext")
56
+ ...require("./OpenData")
59
57
  });
@@ -33,13 +33,6 @@ __export(filterOrders_exports, {
33
33
  });
34
34
  module.exports = __toCommonJS(filterOrders_exports);
35
35
  var import_dayjs = __toESM(require("dayjs"));
36
- function getOrderPaymentCodes(order) {
37
- const payments = order.payments;
38
- if (!Array.isArray(payments) || payments.length === 0) {
39
- return [];
40
- }
41
- return payments.map((item) => item == null ? void 0 : item.code).filter((code) => typeof code === "string" && code.length > 0);
42
- }
43
36
  function filterOrders(orders, filters) {
44
37
  const safeFilters = filters || {};
45
38
  if (!orders || !Array.isArray(orders)) {
@@ -140,27 +133,26 @@ function filterOrders(orders, filters) {
140
133
  }
141
134
  }
142
135
  if (safeFilters.payment_methods && safeFilters.payment_methods.length > 0) {
143
- const orderPaymentCodes = getOrderPaymentCodes(order);
144
- if (orderPaymentCodes.length === 0) {
136
+ if (!order.payment_methods || !Array.isArray(order.payment_methods) || order.payment_methods.length === 0) {
145
137
  rejected.push({
146
138
  order_id: order.order_id,
147
139
  order_number: order.order_number,
148
140
  reason: {
149
141
  field: "payment_methods",
150
- actual: order.payments,
142
+ actual: order.payment_methods,
151
143
  expected: safeFilters.payment_methods
152
144
  }
153
145
  });
154
146
  return false;
155
147
  }
156
- const hasMatch = orderPaymentCodes.some((code) => safeFilters.payment_methods.includes(code));
148
+ const hasMatch = order.payment_methods.some((pm) => safeFilters.payment_methods.includes(pm));
157
149
  if (!hasMatch) {
158
150
  rejected.push({
159
151
  order_id: order.order_id,
160
152
  order_number: order.order_number,
161
153
  reason: {
162
154
  field: "payment_methods",
163
- actual: orderPaymentCodes,
155
+ actual: order.payment_methods,
164
156
  expected: safeFilters.payment_methods
165
157
  }
166
158
  });