@pisell/pisellos 2.2.178 → 2.2.180

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 (182) 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 +17 -87
  8. package/dist/modules/Order/index.js +501 -1357
  9. package/dist/modules/Order/types.d.ts +19 -198
  10. package/dist/modules/Order/types.js +0 -31
  11. package/dist/modules/Order/utils.d.ts +1 -50
  12. package/dist/modules/Order/utils.js +32 -261
  13. package/dist/modules/Quotation/index.d.ts +1 -0
  14. package/dist/modules/Quotation/index.js +21 -23
  15. package/dist/modules/Rules/index.d.ts +0 -4
  16. package/dist/modules/Rules/index.js +10 -26
  17. package/dist/modules/SalesSummary/index.js +2 -4
  18. package/dist/modules/SalesSummary/utils.js +7 -21
  19. package/dist/modules/Schedule/index.js +2 -6
  20. package/dist/modules/index.d.ts +0 -1
  21. package/dist/modules/index.js +1 -2
  22. package/dist/server/index.js +29 -87
  23. package/dist/server/modules/order/index.d.ts +0 -23
  24. package/dist/server/modules/order/index.js +46 -123
  25. package/dist/server/modules/order/types.d.ts +2 -0
  26. package/dist/server/modules/order/utils/filterOrders.js +6 -20
  27. package/dist/server/modules/products/index.d.ts +1 -1
  28. package/dist/server/modules/products/index.js +113 -130
  29. package/dist/server/modules/schedule/index.js +6 -13
  30. package/dist/solution/BaseSales/index.d.ts +7 -89
  31. package/dist/solution/BaseSales/index.js +375 -1494
  32. package/dist/solution/BaseSales/types.d.ts +1 -67
  33. package/dist/solution/BaseSales/types.js +1 -3
  34. package/dist/solution/BaseSales/utils/parseSalesResponse.d.ts +1 -0
  35. package/dist/solution/BaseSales/utils/parseSalesResponse.js +1 -1
  36. package/dist/solution/BaseSales/utils/transformBaseProductToOrderProduct.js +16 -68
  37. package/dist/solution/BaseSales/utils.js +8 -46
  38. package/dist/solution/BookingByStep/index.d.ts +1 -1
  39. package/dist/solution/BookingTicket/index.d.ts +1 -133
  40. package/dist/solution/BookingTicket/index.js +175 -780
  41. package/dist/solution/BookingTicket/types.d.ts +0 -2
  42. package/dist/solution/BookingTicket/types.js +0 -3
  43. package/dist/solution/BookingTicket/utils/cartView.js +2 -4
  44. package/dist/solution/ScanOrder/index.d.ts +3 -9
  45. package/dist/solution/ScanOrder/index.js +128 -231
  46. package/dist/solution/ScanOrder/utils.js +8 -46
  47. package/dist/solution/ShopDiscount/index.d.ts +1 -0
  48. package/dist/solution/ShopDiscount/index.js +23 -18
  49. package/dist/solution/VenueBooking/index.d.ts +9 -5
  50. package/dist/solution/VenueBooking/index.js +55 -103
  51. package/dist/solution/VenueBooking/utils/slotMerge.d.ts +0 -4
  52. package/dist/solution/VenueBooking/utils/slotMerge.js +0 -10
  53. package/lib/model/strategy/adapter/promotion/index.js +0 -49
  54. package/lib/modules/Customer/index.d.ts +0 -6
  55. package/lib/modules/Customer/index.js +11 -26
  56. package/lib/modules/Customer/types.d.ts +0 -2
  57. package/lib/modules/Discount/index.d.ts +4 -2
  58. package/lib/modules/Discount/index.js +63 -8
  59. package/lib/modules/Discount/types.d.ts +7 -1
  60. package/lib/modules/Order/index.d.ts +17 -87
  61. package/lib/modules/Order/index.js +150 -677
  62. package/lib/modules/Order/types.d.ts +19 -198
  63. package/lib/modules/Order/types.js +0 -1
  64. package/lib/modules/Order/utils.d.ts +1 -50
  65. package/lib/modules/Order/utils.js +22 -229
  66. package/lib/modules/Quotation/index.d.ts +1 -0
  67. package/lib/modules/Quotation/index.js +15 -18
  68. package/lib/modules/Rules/index.d.ts +0 -4
  69. package/lib/modules/Rules/index.js +14 -22
  70. package/lib/modules/SalesSummary/index.js +2 -4
  71. package/lib/modules/SalesSummary/utils.js +7 -21
  72. package/lib/modules/Schedule/index.js +1 -3
  73. package/lib/modules/index.d.ts +0 -1
  74. package/lib/modules/index.js +1 -3
  75. package/lib/server/index.js +4 -41
  76. package/lib/server/modules/order/index.d.ts +0 -23
  77. package/lib/server/modules/order/index.js +14 -46
  78. package/lib/server/modules/order/types.d.ts +2 -0
  79. package/lib/server/modules/order/utils/filterOrders.js +4 -12
  80. package/lib/server/modules/products/index.d.ts +1 -1
  81. package/lib/server/modules/products/index.js +20 -30
  82. package/lib/server/modules/schedule/index.js +1 -2
  83. package/lib/solution/BaseSales/index.d.ts +7 -89
  84. package/lib/solution/BaseSales/index.js +22 -736
  85. package/lib/solution/BaseSales/types.d.ts +1 -67
  86. package/lib/solution/BaseSales/types.js +1 -3
  87. package/lib/solution/BaseSales/utils/parseSalesResponse.d.ts +1 -0
  88. package/lib/solution/BaseSales/utils/parseSalesResponse.js +1 -0
  89. package/lib/solution/BaseSales/utils/transformBaseProductToOrderProduct.js +12 -71
  90. package/lib/solution/BaseSales/utils.js +6 -46
  91. package/lib/solution/BookingByStep/index.d.ts +1 -1
  92. package/lib/solution/BookingTicket/index.d.ts +1 -133
  93. package/lib/solution/BookingTicket/index.js +8 -352
  94. package/lib/solution/BookingTicket/types.d.ts +0 -2
  95. package/lib/solution/BookingTicket/types.js +0 -6
  96. package/lib/solution/BookingTicket/utils/cartView.js +2 -4
  97. package/lib/solution/ScanOrder/index.d.ts +3 -9
  98. package/lib/solution/ScanOrder/index.js +66 -147
  99. package/lib/solution/ScanOrder/utils.js +6 -46
  100. package/lib/solution/ShopDiscount/index.d.ts +1 -0
  101. package/lib/solution/ShopDiscount/index.js +4 -2
  102. package/lib/solution/VenueBooking/index.d.ts +9 -5
  103. package/lib/solution/VenueBooking/index.js +14 -50
  104. package/lib/solution/VenueBooking/utils/slotMerge.d.ts +0 -4
  105. package/lib/solution/VenueBooking/utils/slotMerge.js +0 -10
  106. package/package.json +2 -2
  107. package/dist/modules/BookingContext/index.d.ts +0 -37
  108. package/dist/modules/BookingContext/index.js +0 -436
  109. package/dist/modules/BookingContext/types.d.ts +0 -102
  110. package/dist/modules/BookingContext/types.js +0 -51
  111. package/dist/modules/BookingContext/utils/buildCacheItemFromOrderLine.d.ts +0 -16
  112. package/dist/modules/BookingContext/utils/buildCacheItemFromOrderLine.js +0 -193
  113. package/dist/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.d.ts +0 -8
  114. package/dist/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.js +0 -137
  115. package/dist/modules/BookingContext/utils/cacheItemToBookingInput.d.ts +0 -75
  116. package/dist/modules/BookingContext/utils/cacheItemToBookingInput.js +0 -215
  117. package/dist/modules/BookingContext/utils/flexible.d.ts +0 -28
  118. package/dist/modules/BookingContext/utils/flexible.js +0 -56
  119. package/dist/modules/BookingContext/utils/formatResourceList.d.ts +0 -8
  120. package/dist/modules/BookingContext/utils/formatResourceList.js +0 -38
  121. package/dist/modules/BookingContext/utils/index.d.ts +0 -11
  122. package/dist/modules/BookingContext/utils/index.js +0 -11
  123. package/dist/modules/BookingContext/utils/noResource.d.ts +0 -13
  124. package/dist/modules/BookingContext/utils/noResource.js +0 -77
  125. package/dist/modules/BookingContext/utils/productExtend.d.ts +0 -72
  126. package/dist/modules/BookingContext/utils/productExtend.js +0 -339
  127. package/dist/modules/BookingContext/utils/resourceErrors.d.ts +0 -41
  128. package/dist/modules/BookingContext/utils/resourceErrors.js +0 -74
  129. package/dist/modules/BookingContext/utils/resourceSelection.d.ts +0 -7
  130. package/dist/modules/BookingContext/utils/resourceSelection.js +0 -24
  131. package/dist/modules/BookingContext/utils/resources.d.ts +0 -80
  132. package/dist/modules/BookingContext/utils/resources.js +0 -486
  133. package/dist/modules/BookingContext/utils/serviceTimes.d.ts +0 -55
  134. package/dist/modules/BookingContext/utils/serviceTimes.js +0 -151
  135. package/dist/modules/BookingContext/utils/timeSlices.d.ts +0 -42
  136. package/dist/modules/BookingContext/utils/timeSlices.js +0 -100
  137. package/dist/modules/Order/utils/manualProductDiscount.d.ts +0 -106
  138. package/dist/modules/Order/utils/manualProductDiscount.js +0 -212
  139. package/dist/solution/BaseSales/utils/cartPromotion.d.ts +0 -275
  140. package/dist/solution/BaseSales/utils/cartPromotion.js +0 -1258
  141. package/dist/solution/BaseSales/utils/quotationPrice.d.ts +0 -7
  142. package/dist/solution/BaseSales/utils/quotationPrice.js +0 -237
  143. package/dist/solution/BookingTicket/utils/addProductDecision.d.ts +0 -113
  144. package/dist/solution/BookingTicket/utils/addProductDecision.js +0 -346
  145. package/lib/modules/BookingContext/index.d.ts +0 -37
  146. package/lib/modules/BookingContext/index.js +0 -297
  147. package/lib/modules/BookingContext/types.d.ts +0 -102
  148. package/lib/modules/BookingContext/types.js +0 -34
  149. package/lib/modules/BookingContext/utils/buildCacheItemFromOrderLine.d.ts +0 -16
  150. package/lib/modules/BookingContext/utils/buildCacheItemFromOrderLine.js +0 -207
  151. package/lib/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.d.ts +0 -8
  152. package/lib/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.js +0 -141
  153. package/lib/modules/BookingContext/utils/cacheItemToBookingInput.d.ts +0 -75
  154. package/lib/modules/BookingContext/utils/cacheItemToBookingInput.js +0 -198
  155. package/lib/modules/BookingContext/utils/flexible.d.ts +0 -28
  156. package/lib/modules/BookingContext/utils/flexible.js +0 -80
  157. package/lib/modules/BookingContext/utils/formatResourceList.d.ts +0 -8
  158. package/lib/modules/BookingContext/utils/formatResourceList.js +0 -50
  159. package/lib/modules/BookingContext/utils/index.d.ts +0 -11
  160. package/lib/modules/BookingContext/utils/index.js +0 -43
  161. package/lib/modules/BookingContext/utils/noResource.d.ts +0 -13
  162. package/lib/modules/BookingContext/utils/noResource.js +0 -90
  163. package/lib/modules/BookingContext/utils/productExtend.d.ts +0 -72
  164. package/lib/modules/BookingContext/utils/productExtend.js +0 -283
  165. package/lib/modules/BookingContext/utils/resourceErrors.d.ts +0 -41
  166. package/lib/modules/BookingContext/utils/resourceErrors.js +0 -80
  167. package/lib/modules/BookingContext/utils/resourceSelection.d.ts +0 -7
  168. package/lib/modules/BookingContext/utils/resourceSelection.js +0 -46
  169. package/lib/modules/BookingContext/utils/resources.d.ts +0 -80
  170. package/lib/modules/BookingContext/utils/resources.js +0 -377
  171. package/lib/modules/BookingContext/utils/serviceTimes.d.ts +0 -55
  172. package/lib/modules/BookingContext/utils/serviceTimes.js +0 -162
  173. package/lib/modules/BookingContext/utils/timeSlices.d.ts +0 -42
  174. package/lib/modules/BookingContext/utils/timeSlices.js +0 -124
  175. package/lib/modules/Order/utils/manualProductDiscount.d.ts +0 -106
  176. package/lib/modules/Order/utils/manualProductDiscount.js +0 -207
  177. package/lib/solution/BaseSales/utils/cartPromotion.d.ts +0 -275
  178. package/lib/solution/BaseSales/utils/cartPromotion.js +0 -836
  179. package/lib/solution/BaseSales/utils/quotationPrice.d.ts +0 -7
  180. package/lib/solution/BaseSales/utils/quotationPrice.js +0 -277
  181. package/lib/solution/BookingTicket/utils/addProductDecision.d.ts +0 -113
  182. package/lib/solution/BookingTicket/utils/addProductDecision.js +0 -318
@@ -1,4 +1,4 @@
1
- import { OrderModule, ProductList, QuotationModule, SalesSummaryModule, ScanOrderLoggerModule as BaseSalesLoggerModule, ScheduleModule } from '../../modules';
1
+ import { OrderModule, ProductList, SalesSummaryModule, ScanOrderLoggerModule as BaseSalesLoggerModule, ScheduleModule } from '../../modules';
2
2
  import type { ScanOrderLogInput as BaseSalesLogInput, ScanOrderLoggerProviderConfig as BaseSalesLoggerProviderConfig, ScanOrderLoggerProviderType as BaseSalesLoggerProviderType } from '../../modules/ScanOrderLogger/types';
3
3
  import type { QuantityCheckResult, QuantityLimitResult } from '../../model/strategy/adapter/itemRule';
4
4
  /**
@@ -11,8 +11,6 @@ export declare const BaseSalesHookNames: {
11
11
  readonly onRetryInit: "onRetryInit";
12
12
  readonly onRefresh: "onRefresh";
13
13
  readonly onCartValidationChanged: "onCartValidationChanged";
14
- readonly onPaymentSyncStart: "onPaymentSyncStart";
15
- readonly onPaymentSyncEnd: "onPaymentSyncEnd";
16
14
  };
17
15
  export type BaseSalesHookName = typeof BaseSalesHookNames[keyof typeof BaseSalesHookNames];
18
16
  export declare function createBaseSalesHook(moduleName: string, hookName: BaseSalesHookName): string;
@@ -44,9 +42,6 @@ export interface BaseSalesOrderProductIdentity {
44
42
  product_option_item?: any[];
45
43
  product_bundle?: any[];
46
44
  }
47
- export interface BaseSalesUpdateOrderProductQuantityParams extends BaseSalesOrderProductIdentity {
48
- num: number;
49
- }
50
45
  export interface BaseSalesOrderProduct extends BaseSalesOrderProductIdentity {
51
46
  order_detail_id: number | null;
52
47
  num: number;
@@ -208,66 +203,6 @@ export interface BaseSalesSubmitPayload extends Omit<BaseSalesTempOrder, 'platfo
208
203
  }>;
209
204
  products: BaseSalesSubmitProduct[];
210
205
  }
211
- export interface BaseSalesQuotationDurationConfig {
212
- type: string;
213
- value: number;
214
- flexible_config?: {
215
- is_enable_minimum_duration?: 0 | 1;
216
- warning_threshold?: number;
217
- block_threshold?: number;
218
- };
219
- }
220
- export interface BaseSalesCalculateProductBookingPriceParams {
221
- product: Record<string, any>;
222
- booking?: {
223
- start_date?: string;
224
- start_time?: string;
225
- end_date?: string;
226
- end_time?: string;
227
- [key: string]: any;
228
- };
229
- duration?: BaseSalesQuotationDurationConfig;
230
- customer_id?: number | string;
231
- fallback_price?: number | string;
232
- datetime?: string;
233
- channel?: string;
234
- }
235
- export type BaseSalesProductBookingPriceSegmentSource = 'quotation' | 'fallback';
236
- export interface BaseSalesProductBookingPriceSegment {
237
- start_datetime: string;
238
- end_datetime?: string;
239
- time_point: string;
240
- unit_price: string;
241
- quantity: number;
242
- total_price: string;
243
- quotation_shelf_id: number;
244
- source: BaseSalesProductBookingPriceSegmentSource;
245
- }
246
- export interface BaseSalesBundleProductBookingPriceResult {
247
- bundle_id?: number;
248
- group_id?: number;
249
- bundle_group_id?: number;
250
- bundle_product_id: number | null;
251
- bundle_variant_id: number;
252
- unit_price: string;
253
- total_price: string;
254
- quantity: number;
255
- quotation_shelf_id: number;
256
- source: BaseSalesProductBookingPriceSegmentSource;
257
- segments: BaseSalesProductBookingPriceSegment[];
258
- }
259
- export interface BaseSalesProductBookingPriceResult {
260
- product_id: number | null;
261
- product_variant_id: number;
262
- customer_id?: number | string;
263
- unit_price: string;
264
- total_price: string;
265
- quantity: number;
266
- duration?: BaseSalesQuotationDurationConfig;
267
- quotation_shelf_id: number;
268
- segments: BaseSalesProductBookingPriceSegment[];
269
- product_bundle?: BaseSalesBundleProductBookingPriceResult[];
270
- }
271
206
  export type BaseSalesAvailabilityMode = 'idle' | 'shop_closed' | 'submit_disabled' | 'resource_busy' | 'additional_order_with_code' | 'additional_order';
272
207
  export interface BaseSalesTableFormRecord {
273
208
  policy?: string | null;
@@ -346,7 +281,6 @@ export interface BaseSalesState {
346
281
  error: string | null;
347
282
  products?: ProductList;
348
283
  order?: OrderModule;
349
- quotation?: QuotationModule;
350
284
  salesSummary?: SalesSummaryModule;
351
285
  baseSalesLogger?: BaseSalesLoggerModule;
352
286
  schedule?: ScheduleModule;
@@ -28,9 +28,7 @@ var BaseSalesHookNames = {
28
28
  onDestroy: "onDestroy",
29
29
  onRetryInit: "onRetryInit",
30
30
  onRefresh: "onRefresh",
31
- onCartValidationChanged: "onCartValidationChanged",
32
- onPaymentSyncStart: "onPaymentSyncStart",
33
- onPaymentSyncEnd: "onPaymentSyncEnd"
31
+ onCartValidationChanged: "onCartValidationChanged"
34
32
  };
35
33
  function createBaseSalesHook(moduleName, hookName) {
36
34
  return `${moduleName}:${hookName}`;
@@ -24,6 +24,7 @@ export interface ISalesDetailHeader {
24
24
  platform?: string;
25
25
  sales_channel?: string;
26
26
  order_sales_channel?: string;
27
+ vouchers?: any[];
27
28
  status?: string;
28
29
  payment_status?: string;
29
30
  shipping_status?: string;
@@ -32,6 +32,7 @@ var HEADER_KEYS = [
32
32
  "platform",
33
33
  "sales_channel",
34
34
  "order_sales_channel",
35
+ "vouchers",
35
36
  "status",
36
37
  "payment_status",
37
38
  "shipping_status",
@@ -22,7 +22,6 @@ __export(transformBaseProductToOrderProduct_exports, {
22
22
  transformBaseProductToOrderProduct: () => transformBaseProductToOrderProduct
23
23
  });
24
24
  module.exports = __toCommonJS(transformBaseProductToOrderProduct_exports);
25
- var import_manualProductDiscount = require("../../../modules/Order/utils/manualProductDiscount");
26
25
  function toNumber(value, fallback = 0) {
27
26
  const parsedValue = Number(value);
28
27
  if (!Number.isFinite(parsedValue))
@@ -63,23 +62,13 @@ function normalizeOptionItems(optionItems) {
63
62
  };
64
63
  });
65
64
  }
66
- function normalizeBundleItems(bundleItems, preferPriceField = false) {
65
+ function normalizeBundleItems(bundleItems) {
67
66
  if (!Array.isArray(bundleItems))
68
67
  return [];
69
- return bundleItems.map((bundleItem) => {
70
- const unitSelling = preferPriceField ? bundleItem.price ?? bundleItem.bundle_selling_price ?? bundleItem.custom_price ?? bundleItem.product_price ?? "0" : bundleItem.bundle_selling_price ?? bundleItem.price ?? bundleItem.custom_price ?? bundleItem.product_price ?? "0";
71
- const unitStr = toPriceString(unitSelling, "0.00");
72
- const num = toSafePositiveInt((bundleItem == null ? void 0 : bundleItem.num) ?? (bundleItem == null ? void 0 : bundleItem.quantity), 1);
73
- return {
74
- ...bundleItem,
75
- num,
76
- quantity: (bundleItem == null ? void 0 : bundleItem.quantity) ?? num,
77
- price: bundleItem.price ?? unitStr,
78
- bundle_selling_price: unitStr,
79
- original_price: bundleItem.original_price ?? bundleItem.product_price ?? bundleItem.price ?? unitStr,
80
- option: normalizeOptionItems(bundleItem == null ? void 0 : bundleItem.option)
81
- };
82
- });
68
+ return bundleItems.map((bundleItem) => ({
69
+ ...bundleItem,
70
+ option: normalizeOptionItems(bundleItem == null ? void 0 : bundleItem.option)
71
+ }));
83
72
  }
84
73
  function findVariantById(origin, variantId) {
85
74
  if (!origin || !variantId || variantId <= 0)
@@ -88,7 +77,7 @@ function findVariantById(origin, variantId) {
88
77
  return variants.find((variant) => Number(variant == null ? void 0 : variant.id) === variantId) || null;
89
78
  }
90
79
  function transformBaseProductToOrderProduct(params) {
91
- var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k;
80
+ var _a, _b;
92
81
  const { payload, fallbackProductId = null } = params;
93
82
  if (!payload || typeof payload !== "object")
94
83
  return null;
@@ -112,52 +101,13 @@ function transformBaseProductToOrderProduct(params) {
112
101
  payload.price ?? payload.selling_price ?? (matchedVariant == null ? void 0 : matchedVariant.price) ?? (matchedVariant == null ? void 0 : matchedVariant.base_price) ?? (origin == null ? void 0 : origin.price) ?? (origin == null ? void 0 : origin.base_price) ?? (sourceProduct == null ? void 0 : sourceProduct.price) ?? (sourceProduct == null ? void 0 : sourceProduct.selling_price) ?? (sourceProduct == null ? void 0 : sourceProduct.base_price),
113
102
  "0.00"
114
103
  );
115
- const lineCompositeTotal = toPriceString(
116
- payload.line_total ?? payload.total ?? ((_c = payload._extend) == null ? void 0 : _c.total),
117
- sourceProductPrice
118
- );
119
- const hasPriceOverride = payload.price_override !== void 0 && payload.price_override !== null && payload.price_override !== "";
120
104
  const productOptionItem = normalizeOptionItems(
121
105
  payload.option ?? payload.options ?? payload.product_option_item
122
106
  );
123
107
  const productBundle = normalizeBundleItems(
124
- payload.bundle ?? payload.product_bundle,
125
- hasPriceOverride
108
+ payload.bundle ?? payload.product_bundle
126
109
  );
127
- const uniqueIdentificationNumber = payload.unique_identification_number;
128
- const resolvedQuantity = toSafePositiveInt(payload.quantity ?? payload.num, 1);
129
- const originTotal = (0, import_manualProductDiscount.resolveManualDiscountOriginTotal)({
130
- originTotal: payload.origin_total,
131
- extendOriginTotal: (_d = payload._extend) == null ? void 0 : _d.origin_total,
132
- originExtendOriginTotal: (_e = origin == null ? void 0 : origin._extend) == null ? void 0 : _e.origin_total,
133
- sourceExtendOriginTotal: (_f = sourceProduct == null ? void 0 : sourceProduct._extend) == null ? void 0 : _f.origin_total,
134
- catalogUnitPrice: (origin == null ? void 0 : origin.base_price) ?? (origin == null ? void 0 : origin.price) ?? (sourceProduct == null ? void 0 : sourceProduct.base_price) ?? (sourceProduct == null ? void 0 : sourceProduct.price),
135
- quantity: resolvedQuantity
136
- });
137
- const sellingTotal = Number(
138
- payload.line_total ?? payload.total ?? ((_g = payload._extend) == null ? void 0 : _g.total) ?? lineCompositeTotal
139
- );
140
- const discountReason = (0, import_manualProductDiscount.resolveManualDiscountReasonFromSources)({
141
- discountReason: payload.discount_reason,
142
- extendDiscountReason: (_h = payload._extend) == null ? void 0 : _h.discount_reason,
143
- originExtendDiscountReason: (_i = origin == null ? void 0 : origin._extend) == null ? void 0 : _i.discount_reason
144
- });
145
- const lineOriginalPrice = hasPriceOverride && Number.isFinite(originTotal) ? toPriceString(originTotal) : lineCompositeTotal;
146
- const manualDiscountList = (0, import_manualProductDiscount.shouldBuildManualProductDiscount)({
147
- hasPriceOverride,
148
- originTotal,
149
- sellingTotal
150
- }) ? (0, import_manualProductDiscount.mergeManualProductDiscountIntoList)(
151
- payload.discount_list,
152
- (0, import_manualProductDiscount.buildManualProductDiscountItem)({
153
- originTotal: Number.isFinite(originTotal) ? originTotal : Number(lineOriginalPrice),
154
- sellingTotal: Number.isFinite(sellingTotal) ? sellingTotal : Number(lineCompositeTotal),
155
- quantity: resolvedQuantity,
156
- message: discountReason,
157
- discountway: (_j = payload._extend) == null ? void 0 : _j.discountway,
158
- discount_per: (_k = payload._extend) == null ? void 0 : _k.discount_per
159
- })
160
- ) : payload.discount_list || [];
110
+ const uniqueIdentificationNumber = payload.unique_identification_number ?? payload.unique;
161
111
  const metadata = {
162
112
  unique: payload.unique,
163
113
  session: payload.session,
@@ -169,14 +119,7 @@ function transformBaseProductToOrderProduct(params) {
169
119
  policy_id: payload.policy_id,
170
120
  source_shop_id: payload.source_shop_id,
171
121
  origin,
172
- source_product_price: sourceProductPrice,
173
- main_product_selling_price: sourceProductPrice,
174
- main_product_original_price: sourceProductPrice,
175
- ...hasPriceOverride ? {
176
- price_override: String(payload.price_override),
177
- is_manual_discount: 1
178
- } : {},
179
- ...payload.bundle_edit !== void 0 ? { bundle_edit: payload.bundle_edit } : {}
122
+ source_product_price: sourceProductPrice
180
123
  };
181
124
  if (uniqueIdentificationNumber) {
182
125
  metadata.unique_identification_number = String(uniqueIdentificationNumber);
@@ -185,13 +128,11 @@ function transformBaseProductToOrderProduct(params) {
185
128
  product_id: productId,
186
129
  product_variant_id: productVariantId,
187
130
  unique_identification_number: uniqueIdentificationNumber ? String(uniqueIdentificationNumber) : void 0,
188
- num: resolvedQuantity,
131
+ num: toSafePositiveInt(payload.quantity ?? payload.num, 1),
189
132
  product_option_item: productOptionItem,
190
133
  product_bundle: productBundle,
191
- discount_list: manualDiscountList,
192
- // 折后行价由 normalizeOrderProduct 按 main + bundle 合成;手动改价时 bundle 已为分摊后单价
193
- selling_price: lineCompositeTotal,
194
- original_price: lineOriginalPrice,
134
+ selling_price: sourceProductPrice,
135
+ original_price: sourceProductPrice,
195
136
  tax_fee: toPriceString(
196
137
  payload.tax_fee ?? (matchedVariant == null ? void 0 : matchedVariant.tax_fee) ?? (origin == null ? void 0 : origin.tax_fee) ?? (sourceProduct == null ? void 0 : sourceProduct.tax_fee),
197
138
  "0.00"
@@ -38,7 +38,6 @@ __export(utils_exports, {
38
38
  module.exports = __toCommonJS(utils_exports);
39
39
  var import_decimal = __toESM(require("decimal.js"));
40
40
  var import_utils = require("../../modules/Order/utils");
41
- var import_manualProductDiscount = require("../../modules/Order/utils/manualProductDiscount");
42
41
  function createEmptySummary() {
43
42
  return {
44
43
  product_quantity: 0,
@@ -103,40 +102,12 @@ function isSkuOnlyDeleteIdentity(x) {
103
102
  return !("product_option_item" in x) && !("product_bundle" in x);
104
103
  }
105
104
  function normalizeOrderProduct(product) {
106
- var _a, _b, _c, _d, _e, _f;
105
+ var _a, _b, _c;
107
106
  const metadata = { ...product.metadata || {} };
108
107
  const resolvedIdentityKey = ((_a = product.metadata) == null ? void 0 : _a.unique_identification_number) ? String(product.metadata.unique_identification_number) : product.unique_identification_number && String(product.unique_identification_number).length > 0 ? String(product.unique_identification_number) : product.identity_key && String(product.identity_key).length > 0 ? String(product.identity_key) : (0, import_utils.createUuidV4)();
109
108
  metadata.unique_identification_number = resolvedIdentityKey;
110
- const priceOverride = metadata.price_override;
111
- const originOtherBundle = (_d = (_c = (_b = metadata.origin) == null ? void 0 : _b._extend) == null ? void 0 : _c.other) == null ? void 0 : _d.bundle;
112
- let bundleInput = product.product_bundle || [];
113
- if (priceOverride !== void 0 && priceOverride !== null && priceOverride !== "" && Array.isArray(originOtherBundle) && originOtherBundle.length > 0) {
114
- const priceById = /* @__PURE__ */ new Map();
115
- originOtherBundle.forEach((item) => {
116
- if ((item == null ? void 0 : item.id) == null)
117
- return;
118
- const unit = item.price ?? item.bundle_selling_price;
119
- if (unit === void 0 || unit === null)
120
- return;
121
- priceById.set(String(item.id), String(unit));
122
- });
123
- const base = Array.isArray(bundleInput) && bundleInput.length > 0 ? bundleInput : originOtherBundle;
124
- bundleInput = base.map((item) => {
125
- const unit = priceById.get(String(item == null ? void 0 : item.id));
126
- if (unit === void 0)
127
- return item;
128
- return {
129
- ...item,
130
- price: unit,
131
- bundle_selling_price: unit
132
- };
133
- });
134
- }
135
- const normalizedBundle = bundleInput.map((item) => ({
109
+ const normalizedBundle = (product.product_bundle || []).map((item) => ({
136
110
  ...item,
137
- bundle_id: item.bundle_id ?? item.id,
138
- bundle_product_id: item.bundle_product_id ?? item._bundle_product_id,
139
- bundle_group_id: item.bundle_group_id ?? item.group_id,
140
111
  bundle_selling_price: item.bundle_selling_price ?? item.price ?? "0.00",
141
112
  price: item.price ?? item.custom_price ?? item.bundle_selling_price ?? "0.00",
142
113
  price_type: item.price_type ?? item.custom_price_type ?? "",
@@ -146,8 +117,8 @@ function normalizeOrderProduct(product) {
146
117
  const optionSum = (0, import_utils.sumOptionUnitPrice)(normalizedOptions);
147
118
  const isV2 = metadata.price_schema_version === 2 || metadata.price_schema_version === "2";
148
119
  const variantId = Number(product.product_variant_id || 0);
149
- const variantList = variantId ? (_e = metadata == null ? void 0 : metadata.origin) == null ? void 0 : _e.variant : null;
150
- const variantPrice = Array.isArray(variantList) ? (_f = variantList.find((v) => Number(v == null ? void 0 : v.id) === variantId)) == null ? void 0 : _f.price : void 0;
120
+ const variantList = variantId ? (_b = metadata == null ? void 0 : metadata.origin) == null ? void 0 : _b.variant : null;
121
+ const variantPrice = Array.isArray(variantList) ? (_c = variantList.find((v) => Number(v == null ? void 0 : v.id) === variantId)) == null ? void 0 : _c.price : void 0;
151
122
  const resolvedSource = (() => {
152
123
  var _a2, _b2;
153
124
  if (metadata.source_product_price !== void 0) {
@@ -203,17 +174,6 @@ function normalizeOrderProduct(product) {
203
174
  bundle: normalizedBundle,
204
175
  useOriginalBundle: true
205
176
  });
206
- const finalOriginalPrice = (0, import_utils.resolveManualOverrideLineOriginalPrice)(
207
- { num: product.num, metadata, lineOriginalPrice: product.original_price },
208
- composedOriginalPrice
209
- );
210
- const discountList = (0, import_manualProductDiscount.ensureManualProductDiscountList)({
211
- discountList: product.discount_list,
212
- metadata,
213
- originalPrice: finalOriginalPrice,
214
- sellingPrice: composedSellingPrice,
215
- quantity: getSafeProductNum(product.num)
216
- });
217
177
  return {
218
178
  order_detail_id: product.order_detail_id || null,
219
179
  product_id: product.product_id,
@@ -221,10 +181,10 @@ function normalizeOrderProduct(product) {
221
181
  product_variant_id: product.product_variant_id,
222
182
  product_option_item: normalizedOptions,
223
183
  selling_price: composedSellingPrice,
224
- original_price: finalOriginalPrice,
184
+ original_price: composedOriginalPrice,
225
185
  tax_fee: product.tax_fee || "0.00",
226
186
  is_charge_tax: product.is_charge_tax ?? 0,
227
- discount_list: discountList,
187
+ discount_list: product.discount_list || [],
228
188
  product_bundle: normalizedBundle,
229
189
  metadata,
230
190
  note: product.note != null ? String(product.note) : ""
@@ -311,7 +311,7 @@ export declare class BookingByStepImpl extends BaseModule implements Module {
311
311
  date: string;
312
312
  status: string;
313
313
  week: string;
314
- weekNum: 0 | 1 | 2 | 6 | 3 | 5 | 4;
314
+ weekNum: 0 | 1 | 2 | 3 | 5 | 6 | 4;
315
315
  }[]>;
316
316
  submitTimeSlot(timeSlots: TimeSliceItem): void;
317
317
  private getScheduleDataByIds;
@@ -1,16 +1,10 @@
1
1
  import { Module, ModuleOptions, PisellCore } from '../../types';
2
2
  import { BookingTicketCartView, BookingTicketProductCatalogView, BookingTicketState, IGetCustomerListParams, ICustomer, ILoadProductsParams, ILoadProductDetailParams, IScanResult } from './types';
3
3
  import type { ProductData } from '../../modules';
4
- import { type BookingContextConfig, type BookingContextDateInput, type BookingContextResource, type BookingContextResourceMap, type BookingContextState, type InitBookingContextParams, type LoadBookingConfigParams, type LoadBookingResourcesParams, type ResourceError, type BookingCalcContext } from '../../modules/BookingContext';
5
4
  import type { OrderCustomerView } from '../../modules/Order/types';
6
5
  import { BaseSalesImpl } from '../BaseSales';
7
- import type { BaseSalesScanCodeResult } from '../BaseSales/types';
8
6
  import type { ISalesDetail } from '../BaseSales/utils/parseSalesResponse';
9
7
  import type { LoadSalesDetailParams } from '../../modules/Order/types';
10
- import { AddProductDecideContext, AddProductRequiresDetailPayload } from './utils/addProductDecision';
11
- import { type BuildCacheItemFromOrderLineInput } from '../../modules/BookingContext/utils/buildCacheItemFromOrderLine';
12
- import { type BuildNormalProductCacheItemFromOrderLineInput } from '../../modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine';
13
- import type { AddProductBookingInput, OrderProduct, OrderProductIdentity, UpdateOrderProductParams } from '../../modules/Order/types';
14
8
  export declare class BookingTicketImpl extends BaseSalesImpl implements Module {
15
9
  protected defaultName: string;
16
10
  protected defaultVersion: string;
@@ -22,14 +16,10 @@ export declare class BookingTicketImpl extends BaseSalesImpl implements Module {
22
16
  private platform;
23
17
  private scan;
24
18
  private productCatalog;
25
- private orderCustomerDiscountRefreshInFlight;
26
- private orderCustomerDiscountRefreshCustomerId;
27
19
  /**
28
- * 在 BaseSales 默认模块清单(products/order/salesSummary/schedule)基础上追加 customer + bookingContext
29
- * bookingContext 是 SalesSdk 加车下沉所需的「预约 UI 上下文」(bookingConfig / resourcesOrigin / date)。
20
+ * 在 BaseSales 默认模块清单(products/order/salesSummary/schedule)基础上追加 customer。
30
21
  */
31
22
  protected getRegisteredModuleNames(): readonly string[];
32
- protected getSubmitOrderSalesChannel(): string;
33
23
  /**
34
24
  * 业务侧子模块工厂:BookingTicket 自带的 createBookingTicketModule 优先匹配;
35
25
  * 未识别的模块名(如 BookingByStep 公共类型)回退到父类工厂。
@@ -44,14 +34,6 @@ export declare class BookingTicketImpl extends BaseSalesImpl implements Module {
44
34
  * 让现有 setActiveCustomer / getActiveCustomer 调用方零成本拿到详情态客户。
45
35
  */
46
36
  loadSalesDetail(orderIdOrParams: number | string | LoadSalesDetailParams): Promise<ISalesDetail>;
47
- scanPromotionCode(code: string, customerId?: number): Promise<BaseSalesScanCodeResult>;
48
- private hydrateOrderCustomerFromScanDiscounts;
49
- private getDiscountCustomerId;
50
- private resolveCustomerByDiscountCustomerId;
51
- private findCustomerById;
52
- private normalizeCustomer;
53
- private getRawCustomerId;
54
- private hasUsableCustomerDetails;
55
37
  /**
56
38
  * 更新当前预约的 appointment_status。
57
39
  *
@@ -204,19 +186,8 @@ export declare class BookingTicketImpl extends BaseSalesImpl implements Module {
204
186
  * 清空下单客户(协议字段 + snapshot)。
205
187
  */
206
188
  clearOrderCustomer(): void;
207
- /**
208
- * 重置 tempOrder,并同步清空下单客户运行态。
209
- *
210
- * OrderModule.restoreOrder 会重建空单(customer_id 已为 null),但不会:
211
- * - emit BookingTicket `onOrderCustomerChange`
212
- * - 重置 CustomerModule.selectedCustomer(老路 getActiveCustomer)
213
- *
214
- * 因此在 super.restoreOrder 之后显式清客户,保证 SalesSdk / ticketBooking 订阅方与 tempOrder 一致。
215
- */
216
- restoreOrder(): Promise<import("../../modules/Order/types").OrderTempOrder>;
217
189
  /** 内部:基于 OrderModule 当前状态构造一份 OrderCustomerChangePayload。 */
218
190
  private buildOrderCustomerPayload;
219
- private refreshDiscountConfigAfterOrderCustomerChange;
220
191
  /**
221
192
  * 获取客户分页信息
222
193
  * @returns 分页信息
@@ -320,109 +291,6 @@ export declare class BookingTicketImpl extends BaseSalesImpl implements Module {
320
291
  * @returns 其他参数
321
292
  */
322
293
  getOtherParams(): Promise<Record<string, any>>;
323
- /** 拉取 board config 并写入 BookingContext。 */
324
- loadBookingConfig(params?: LoadBookingConfigParams): Promise<BookingContextConfig | null>;
325
- /** 拉取资源全集并写入 BookingContext。 */
326
- loadBookingResources(params?: LoadBookingResourcesParams): Promise<BookingContextResource[]>;
327
- /** 初始化 BookingContext(date + config + resources)。 */
328
- initBookingContext(params?: InitBookingContextParams): Promise<BookingContextState>;
329
- /** 当前 store 是否已具备与入参等价的 config / resources(无需再请求接口)。 */
330
- isBookingContextReady(params?: InitBookingContextParams): boolean;
331
- /** 写入 booking config(来源:`/core/board/management/config`)。 */
332
- setBookingConfig(config: BookingContextConfig | null): void;
333
- /** 读取当前 booking config。 */
334
- getBookingConfig(): BookingContextConfig | null;
335
- /** 写入资源全集(来源:`/form/schedule`),同步派生 resourcesOriginMap。 */
336
- setResources(resources: BookingContextResource[] | null | undefined): void;
337
- /** 读取资源全集(浅克隆)。 */
338
- getResourcesOrigin(): BookingContextResource[];
339
- /** 读取资源全集 map(id → resource)。 */
340
- getResourcesOriginMap(): BookingContextResourceMap;
341
- /** 写入当前选择的日期;支持 dayjs / Date / string。 */
342
- setBookingDate(date: BookingContextDateInput): void;
343
- /** 读取当前选择的日期(统一 string)。 */
344
- getBookingDate(): string | null;
345
- /** 读取 BookingContext 完整 store(调试 / 测试 / 透传给 SDK 使用)。 */
346
- getBookingContextState(): BookingContextState;
347
- /** 清空 BookingContext(切租户 / destroy 场景)。 */
348
- clearBookingContext(): void;
349
- /**
350
- * 构造 BookingContext 计算上下文(供 getProductExtend / getResourceByIds 等读 API 复用)。
351
- */
352
- private buildBookingCalcContext;
353
- /**
354
- * 取商品当前可选资源列表(透传 OS BookingContext utils#getResourceByIds)。
355
- * `extraResources` 用于把拖入未绑定的资源也展示出来。
356
- */
357
- getResourcesForProduct(product: any, options?: {
358
- extraResources?: Array<{
359
- form_id: number | string;
360
- id: number;
361
- }>;
362
- }): any[];
363
- /**
364
- * 拼装 cacheItem 的 _extend / _data(资源 / 容量 / timeObj),与 info2 `getProductExtend` 等价。
365
- */
366
- getProductExtend(cacheItem: any, extra?: Partial<BookingCalcContext>): any;
367
- /**
368
- * 取资源不可用原因列表(结构化 enum + params,i18n 文案由 UI 渲染)。
369
- */
370
- getResourceErrors(resource: any, cacheItem: any): ResourceError[];
371
- /**
372
- * 拼装 addProductDecision 通用上下文(从 store 自取)。
373
- */
374
- private buildAddProductCtx;
375
- /**
376
- * 加车两阶段主决策(规格弹窗 / 资源编辑 / 直接加车)。
377
- * 与 ticketBooking `handleSelectProduct` + `handleBooking4Service` 等价。
378
- */
379
- decideAddProduct(item: any, options?: Partial<AddProductDecideContext>): import("./utils/addProductDecision").AddProductDecision;
380
- /** 规格弹窗 callback 后的第二段决策。 */
381
- decideAfterDetail(cacheItem: any, options?: Partial<AddProductDecideContext>): import("./utils/addProductDecision").AddProductDecision;
382
- /**
383
- * @deprecated 请用 `decideAddProduct`;`autoClose=true` 仅当 action=add。
384
- */
385
- decideAutoClose(item: any, options?: Partial<AddProductDecideContext>): {
386
- autoClose: boolean;
387
- cacheItem?: any;
388
- };
389
- /** 替代 info2 `getIsEject`:商品是否需要弹窗(0/1)。 */
390
- getIsEject(item: any, type?: 'select' | 'detail'): 0 | 1;
391
- /** 仅 session 商品(无 variant/option/package)→ true。 */
392
- getIsOnlySession(item: any): boolean;
393
- /**
394
- * 拼装 requiresDetail payload(给 SDK 直接 return 给 UI 用)。
395
- */
396
- buildRequiresDetailPayload(item: any, options?: Partial<AddProductDecideContext>): AddProductRequiresDetailPayload;
397
- /**
398
- * 把 detail 弹窗回调结果(e, extension_type, detail)转换为 `(product, booking)` 入参。
399
- * 内部会先拼 cacheItem,再走 cacheItemToBookingInput 严格协议对齐。
400
- */
401
- transformDetailToProductAndBooking(input: {
402
- item: any;
403
- cacheItem?: any;
404
- detailResult?: {
405
- e: any;
406
- extension_type?: any;
407
- detail?: any;
408
- };
409
- options?: Partial<AddProductDecideContext>;
410
- }): {
411
- product: Partial<OrderProduct> & OrderProductIdentity;
412
- booking?: AddProductBookingInput;
413
- cacheItem: any;
414
- };
415
- /**
416
- * 从已加车的 order line + booking 反查资源编辑抽屉所需的 cacheItem。
417
- * 供 SalesSdk「编辑资源」等场景使用;字段语义与 buildCacheItemFromDetail 产出对齐。
418
- */
419
- buildCacheItemFromOrderLine(input: BuildCacheItemFromOrderLineInput): Record<string, any>;
420
- /**
421
- * 从已加车的普通商品 order line 反查 SkuDetailModal edit 所需的 cacheItem。
422
- */
423
- buildNormalProductCacheItemFromOrderLine(input: BuildNormalProductCacheItemFromOrderLineInput): Record<string, any>;
424
- /** 文档别名:与 OrderModule.updateOrderProduct 一致。 */
425
- updateProductInOrder(params: UpdateOrderProductParams): Promise<OrderProduct[]>;
426
294
  /**
427
295
  * 销毁模块:先调用父类(销毁所有 store 内子模块 + emit destroy + super.destroy()),
428
296
  * 再清理 BookingTicket 自有资源(scan 监听 + scan 内存缓存)。