@pisell/pisellos 2.2.173 → 2.2.175

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 (159) 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 +17 -33
  9. package/dist/modules/Order/index.js +395 -757
  10. package/dist/modules/Order/types.d.ts +17 -58
  11. package/dist/modules/Order/types.js +0 -2
  12. package/dist/modules/Order/utils.d.ts +1 -39
  13. package/dist/modules/Order/utils.js +31 -219
  14. package/dist/modules/Quotation/index.js +5 -16
  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/Schedule/index.js +2 -6
  19. package/dist/modules/index.d.ts +0 -1
  20. package/dist/modules/index.js +1 -2
  21. package/dist/server/index.js +6 -10
  22. package/dist/server/modules/order/utils/filterOrders.js +6 -20
  23. package/dist/server/modules/products/index.js +94 -113
  24. package/dist/server/modules/schedule/index.js +6 -13
  25. package/dist/solution/BaseSales/index.d.ts +7 -53
  26. package/dist/solution/BaseSales/index.js +339 -1160
  27. package/dist/solution/BaseSales/types.d.ts +1 -67
  28. package/dist/solution/BaseSales/types.js +1 -3
  29. package/dist/solution/BaseSales/utils/transformBaseProductToOrderProduct.js +15 -65
  30. package/dist/solution/BaseSales/utils.js +8 -46
  31. package/dist/solution/BookingByStep/index.d.ts +1 -1
  32. package/dist/solution/BookingTicket/index.d.ts +1 -133
  33. package/dist/solution/BookingTicket/index.js +175 -776
  34. package/dist/solution/BookingTicket/types.d.ts +0 -2
  35. package/dist/solution/BookingTicket/types.js +0 -3
  36. package/dist/solution/ScanOrder/index.d.ts +3 -9
  37. package/dist/solution/ScanOrder/index.js +128 -231
  38. package/dist/solution/ScanOrder/utils.js +8 -46
  39. package/dist/solution/ShopDiscount/index.d.ts +1 -0
  40. package/dist/solution/ShopDiscount/index.js +23 -18
  41. package/dist/solution/VenueBooking/index.d.ts +9 -5
  42. package/dist/solution/VenueBooking/index.js +55 -103
  43. package/dist/solution/VenueBooking/utils/slotMerge.d.ts +0 -4
  44. package/dist/solution/VenueBooking/utils/slotMerge.js +0 -10
  45. package/lib/modules/Customer/index.d.ts +0 -6
  46. package/lib/modules/Customer/index.js +11 -26
  47. package/lib/modules/Customer/types.d.ts +0 -2
  48. package/lib/modules/Discount/index.d.ts +4 -2
  49. package/lib/modules/Discount/index.js +63 -8
  50. package/lib/modules/Discount/types.d.ts +7 -1
  51. package/lib/modules/Order/index.d.ts +17 -33
  52. package/lib/modules/Order/index.js +148 -402
  53. package/lib/modules/Order/types.d.ts +17 -58
  54. package/lib/modules/Order/utils.d.ts +1 -39
  55. package/lib/modules/Order/utils.js +22 -197
  56. package/lib/modules/Quotation/index.js +6 -17
  57. package/lib/modules/Rules/index.d.ts +0 -4
  58. package/lib/modules/Rules/index.js +14 -22
  59. package/lib/modules/SalesSummary/index.js +2 -4
  60. package/lib/modules/Schedule/index.js +1 -3
  61. package/lib/modules/index.d.ts +0 -1
  62. package/lib/modules/index.js +1 -3
  63. package/lib/server/index.js +0 -2
  64. package/lib/server/modules/order/utils/filterOrders.js +4 -12
  65. package/lib/server/modules/products/index.js +12 -23
  66. package/lib/server/modules/schedule/index.js +1 -2
  67. package/lib/solution/BaseSales/index.d.ts +7 -53
  68. package/lib/solution/BaseSales/index.js +20 -527
  69. package/lib/solution/BaseSales/types.d.ts +1 -67
  70. package/lib/solution/BaseSales/types.js +1 -3
  71. package/lib/solution/BaseSales/utils/transformBaseProductToOrderProduct.js +11 -70
  72. package/lib/solution/BaseSales/utils.js +6 -46
  73. package/lib/solution/BookingByStep/index.d.ts +1 -1
  74. package/lib/solution/BookingTicket/index.d.ts +1 -133
  75. package/lib/solution/BookingTicket/index.js +8 -349
  76. package/lib/solution/BookingTicket/types.d.ts +0 -2
  77. package/lib/solution/BookingTicket/types.js +0 -6
  78. package/lib/solution/ScanOrder/index.d.ts +3 -9
  79. package/lib/solution/ScanOrder/index.js +66 -147
  80. package/lib/solution/ScanOrder/utils.js +6 -46
  81. package/lib/solution/ShopDiscount/index.d.ts +1 -0
  82. package/lib/solution/ShopDiscount/index.js +4 -2
  83. package/lib/solution/VenueBooking/index.d.ts +9 -5
  84. package/lib/solution/VenueBooking/index.js +14 -50
  85. package/lib/solution/VenueBooking/utils/slotMerge.d.ts +0 -4
  86. package/lib/solution/VenueBooking/utils/slotMerge.js +0 -10
  87. package/package.json +2 -2
  88. package/dist/modules/BookingContext/index.d.ts +0 -37
  89. package/dist/modules/BookingContext/index.js +0 -436
  90. package/dist/modules/BookingContext/types.d.ts +0 -102
  91. package/dist/modules/BookingContext/types.js +0 -51
  92. package/dist/modules/BookingContext/utils/buildCacheItemFromOrderLine.d.ts +0 -16
  93. package/dist/modules/BookingContext/utils/buildCacheItemFromOrderLine.js +0 -193
  94. package/dist/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.d.ts +0 -8
  95. package/dist/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.js +0 -137
  96. package/dist/modules/BookingContext/utils/cacheItemToBookingInput.d.ts +0 -75
  97. package/dist/modules/BookingContext/utils/cacheItemToBookingInput.js +0 -215
  98. package/dist/modules/BookingContext/utils/flexible.d.ts +0 -28
  99. package/dist/modules/BookingContext/utils/flexible.js +0 -56
  100. package/dist/modules/BookingContext/utils/formatResourceList.d.ts +0 -8
  101. package/dist/modules/BookingContext/utils/formatResourceList.js +0 -38
  102. package/dist/modules/BookingContext/utils/index.d.ts +0 -11
  103. package/dist/modules/BookingContext/utils/index.js +0 -11
  104. package/dist/modules/BookingContext/utils/noResource.d.ts +0 -13
  105. package/dist/modules/BookingContext/utils/noResource.js +0 -77
  106. package/dist/modules/BookingContext/utils/productExtend.d.ts +0 -72
  107. package/dist/modules/BookingContext/utils/productExtend.js +0 -339
  108. package/dist/modules/BookingContext/utils/resourceErrors.d.ts +0 -41
  109. package/dist/modules/BookingContext/utils/resourceErrors.js +0 -74
  110. package/dist/modules/BookingContext/utils/resourceSelection.d.ts +0 -7
  111. package/dist/modules/BookingContext/utils/resourceSelection.js +0 -24
  112. package/dist/modules/BookingContext/utils/resources.d.ts +0 -80
  113. package/dist/modules/BookingContext/utils/resources.js +0 -486
  114. package/dist/modules/BookingContext/utils/serviceTimes.d.ts +0 -55
  115. package/dist/modules/BookingContext/utils/serviceTimes.js +0 -151
  116. package/dist/modules/BookingContext/utils/timeSlices.d.ts +0 -42
  117. package/dist/modules/BookingContext/utils/timeSlices.js +0 -100
  118. package/dist/modules/Order/utils/manualProductDiscount.d.ts +0 -106
  119. package/dist/modules/Order/utils/manualProductDiscount.js +0 -212
  120. package/dist/solution/BaseSales/utils/quotationPrice.d.ts +0 -7
  121. package/dist/solution/BaseSales/utils/quotationPrice.js +0 -237
  122. package/dist/solution/BookingTicket/utils/addProductDecision.d.ts +0 -113
  123. package/dist/solution/BookingTicket/utils/addProductDecision.js +0 -346
  124. package/lib/modules/BookingContext/index.d.ts +0 -37
  125. package/lib/modules/BookingContext/index.js +0 -297
  126. package/lib/modules/BookingContext/types.d.ts +0 -102
  127. package/lib/modules/BookingContext/types.js +0 -34
  128. package/lib/modules/BookingContext/utils/buildCacheItemFromOrderLine.d.ts +0 -16
  129. package/lib/modules/BookingContext/utils/buildCacheItemFromOrderLine.js +0 -207
  130. package/lib/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.d.ts +0 -8
  131. package/lib/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.js +0 -141
  132. package/lib/modules/BookingContext/utils/cacheItemToBookingInput.d.ts +0 -75
  133. package/lib/modules/BookingContext/utils/cacheItemToBookingInput.js +0 -198
  134. package/lib/modules/BookingContext/utils/flexible.d.ts +0 -28
  135. package/lib/modules/BookingContext/utils/flexible.js +0 -80
  136. package/lib/modules/BookingContext/utils/formatResourceList.d.ts +0 -8
  137. package/lib/modules/BookingContext/utils/formatResourceList.js +0 -50
  138. package/lib/modules/BookingContext/utils/index.d.ts +0 -11
  139. package/lib/modules/BookingContext/utils/index.js +0 -43
  140. package/lib/modules/BookingContext/utils/noResource.d.ts +0 -13
  141. package/lib/modules/BookingContext/utils/noResource.js +0 -90
  142. package/lib/modules/BookingContext/utils/productExtend.d.ts +0 -72
  143. package/lib/modules/BookingContext/utils/productExtend.js +0 -283
  144. package/lib/modules/BookingContext/utils/resourceErrors.d.ts +0 -41
  145. package/lib/modules/BookingContext/utils/resourceErrors.js +0 -80
  146. package/lib/modules/BookingContext/utils/resourceSelection.d.ts +0 -7
  147. package/lib/modules/BookingContext/utils/resourceSelection.js +0 -46
  148. package/lib/modules/BookingContext/utils/resources.d.ts +0 -80
  149. package/lib/modules/BookingContext/utils/resources.js +0 -377
  150. package/lib/modules/BookingContext/utils/serviceTimes.d.ts +0 -55
  151. package/lib/modules/BookingContext/utils/serviceTimes.js +0 -162
  152. package/lib/modules/BookingContext/utils/timeSlices.d.ts +0 -42
  153. package/lib/modules/BookingContext/utils/timeSlices.js +0 -124
  154. package/lib/modules/Order/utils/manualProductDiscount.d.ts +0 -106
  155. package/lib/modules/Order/utils/manualProductDiscount.js +0 -207
  156. package/lib/solution/BaseSales/utils/quotationPrice.d.ts +0 -7
  157. package/lib/solution/BaseSales/utils/quotationPrice.js +0 -277
  158. package/lib/solution/BookingTicket/utils/addProductDecision.d.ts +0 -113
  159. package/lib/solution/BookingTicket/utils/addProductDecision.js +0 -318
@@ -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) {
@@ -135,9 +135,7 @@ var ScheduleModule = class extends import_BaseModule.BaseModule {
135
135
  return dates;
136
136
  }
137
137
  getScheduleListByIds(ids) {
138
- const idSet = new Set(ids.map((id) => String(id)));
139
- const list = this.store.scheduleList.filter((n) => idSet.has(String(n.id)));
140
- return list;
138
+ return this.store.scheduleList.filter((n) => ids.includes(n.id));
141
139
  }
142
140
  setAvailabilityScheduleDateList(list) {
143
141
  this.store.availabilityDateList = list;
@@ -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
  });
@@ -931,8 +931,6 @@ var Server = class {
931
931
  return;
932
932
  }
933
933
  try {
934
- await this.schedule.loadAllSchedule();
935
- this.products.clearPriceCache();
936
934
  await this.products.setupQuotationPriceBridge({
937
935
  scheduleModule: this.schedule,
938
936
  channel: (_a = this.core.context) == null ? void 0 : _a.channel
@@ -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
  });
@@ -177,7 +177,7 @@ var ProductsModule = class extends import_BaseModule.BaseModule {
177
177
  * Server 层负责传入完整 schedule 模块,Products 只负责把报价单计算结果转成价格响应形状。
178
178
  */
179
179
  async setupQuotationPriceBridge(params) {
180
- var _a;
180
+ var _a, _b, _c;
181
181
  if (!this.core) {
182
182
  this.logWarning("setupQuotationPriceBridge: core 尚未初始化");
183
183
  return;
@@ -190,25 +190,15 @@ var ProductsModule = class extends import_BaseModule.BaseModule {
190
190
  this.quotationPriceBridge = quotation;
191
191
  }
192
192
  if (params.scheduleModule) {
193
- const scheduleCache = /* @__PURE__ */ new Map();
194
- let hasLoadedScheduleList = false;
193
+ const scheduleList = ((_c = (_b = params.scheduleModule).getScheduleList) == null ? void 0 : _c.call(_b)) || [];
194
+ const scheduleMap = new Map(
195
+ scheduleList.map((schedule) => [schedule.id, schedule])
196
+ );
195
197
  this.quotationPriceBridge.setScheduleResolver((id) => {
196
- var _a2, _b, _c, _d, _e, _f;
197
- const scheduleId = String(id);
198
- if (scheduleCache.has(scheduleId))
199
- return scheduleCache.get(scheduleId);
200
- if (!hasLoadedScheduleList) {
201
- const scheduleList = ((_b = (_a2 = params.scheduleModule).getScheduleList) == null ? void 0 : _b.call(_a2)) || [];
202
- for (const schedule of scheduleList) {
203
- scheduleCache.set(String(schedule.id), schedule);
204
- }
205
- hasLoadedScheduleList = true;
206
- }
207
- if (scheduleCache.has(scheduleId))
208
- return scheduleCache.get(scheduleId);
209
- const schedules = ((_d = (_c = params.scheduleModule).getScheduleListByIds) == null ? void 0 : _d.call(_c, [id])) || ((_f = (_e = params.scheduleModule).getScheduleByIds) == null ? void 0 : _f.call(_e, [id])) || [];
210
- if (schedules[0])
211
- scheduleCache.set(scheduleId, schedules[0]);
198
+ var _a2, _b2;
199
+ if (scheduleMap.has(id))
200
+ return scheduleMap.get(id);
201
+ const schedules = ((_b2 = (_a2 = params.scheduleModule).getScheduleByIds) == null ? void 0 : _b2.call(_a2, [id])) || [];
212
202
  return schedules[0];
213
203
  });
214
204
  }
@@ -268,11 +258,10 @@ var ProductsModule = class extends import_BaseModule.BaseModule {
268
258
  customer_id: customerId
269
259
  });
270
260
  const productPrice = quotedPrice ?? product.price;
271
- const productBasePrice = quotedPrice ?? product.base_price ?? product.price ?? 0;
272
261
  return {
273
262
  id: product.id,
274
263
  price: String(productPrice ?? 0),
275
- base_price: String(productBasePrice),
264
+ base_price: String(product.base_price ?? product.price ?? 0),
276
265
  variant: this.buildVariantPriceData(product, datetime, customerId),
277
266
  bundle_group: this.buildBundleGroupPriceData(product, datetime, customerId)
278
267
  };
@@ -289,7 +278,7 @@ var ProductsModule = class extends import_BaseModule.BaseModule {
289
278
  customer_id: customerId
290
279
  });
291
280
  const price = quotedPrice ?? variant.price ?? product.price ?? 0;
292
- const basePrice = quotedPrice ?? variant.base_price ?? variant.price ?? product.base_price ?? product.price ?? 0;
281
+ const basePrice = variant.base_price ?? variant.price ?? product.base_price ?? product.price ?? 0;
293
282
  return {
294
283
  id: Number(variant.id),
295
284
  product_id: Number(variant.product_id ?? product.id),
@@ -314,7 +303,7 @@ var ProductsModule = class extends import_BaseModule.BaseModule {
314
303
  customer_id: customerId
315
304
  });
316
305
  const price = quotedPrice ?? item.price ?? 0;
317
- const basePrice = quotedPrice ?? item.base_price ?? item.price ?? 0;
306
+ const basePrice = item.base_price ?? item.price ?? 0;
318
307
  return {
319
308
  id: Number(item.id),
320
309
  product_id: Number(item.product_id ?? product.id),
@@ -183,9 +183,8 @@ var ScheduleModuleEx = class extends import_BaseModule.BaseModule {
183
183
  return [];
184
184
  }
185
185
  const result = [];
186
- const scheduleList = this.store.scheduleList || [];
187
186
  for (const id of ids) {
188
- const schedule = this.store.map.get(id) || scheduleList.find((item) => String(item.id) === String(id));
187
+ const schedule = this.store.map.get(id);
189
188
  if (schedule) {
190
189
  result.push(schedule);
191
190
  }
@@ -1,8 +1,8 @@
1
1
  import { Module, ModuleOptions, PisellCore } from '../../types';
2
2
  import { BaseModule } from '../../modules/BaseModule';
3
- import { BaseSalesOrderProduct, BaseSalesOrderProductIdentity, BaseSalesPaymentStatus, BaseSalesUpdateOrderProductQuantityParams, BaseSalesCalculateProductBookingPriceParams, BaseSalesProductBookingPriceResult, BaseSalesScanCodeResult } from './types';
3
+ import { BaseSalesOrderProduct, BaseSalesOrderProductIdentity, BaseSalesPaymentStatus, BaseSalesScanCodeResult } from './types';
4
4
  import { OrderModule } from '../../modules/Order';
5
- import type { AddProductBookingInput, LoadSalesDetailParams, OrderPaymentData, OrderPaymentSource, SendCustomerPayLinkParams, SyncPaymentsToOrderParams, SyncPaymentsToOrderResult, UpdateTempOrderCustomerInput, UpdateOrderBookingParams, UpdateOrderProductParams, OrderTempOrder } from '../../modules/Order/types';
5
+ import type { AddProductBookingInput, LoadSalesDetailParams, OrderPaymentData, OrderPaymentSource, SendCustomerPayLinkParams, SyncPaymentsToOrderParams, SyncPaymentsToOrderResult, UpdateTempOrderCustomerInput, UpdateProductInOrderParams } from '../../modules/Order/types';
6
6
  import type { SubmitPayloadEnhancer } from '../../modules/Order/utils';
7
7
  import type { Discount } from '../../modules/Discount/types';
8
8
  import { RequestPlugin, WindowPlugin } from '../../plugins';
@@ -11,7 +11,6 @@ import { ProductList } from '../../modules/ProductList';
11
11
  import { PaymentModule } from '../../modules/Payment';
12
12
  import type { SalesSummaryModule } from '../../modules/SalesSummary';
13
13
  import type { ScheduleModule } from '../../modules/Schedule';
14
- import { QuotationModule } from '../../modules/Quotation';
15
14
  import type { ISalesDetail, ISalesDetailHeader, ISalesBooking, ISalesPayment, ISalesSurcharge } from './utils/parseSalesResponse';
16
15
  import { type TransformBaseProductToOrderProductParams } from './utils/transformBaseProductToOrderProduct';
17
16
  export interface BaseSalesState {
@@ -20,7 +19,6 @@ export interface BaseSalesState {
20
19
  payment?: PaymentModule;
21
20
  salesSummary?: SalesSummaryModule;
22
21
  schedule?: ScheduleModule;
23
- quotation?: QuotationModule;
24
22
  }
25
23
  export declare class BaseSalesImpl extends BaseModule implements Module {
26
24
  protected defaultName: string;
@@ -28,7 +26,6 @@ export declare class BaseSalesImpl extends BaseModule implements Module {
28
26
  isSolution: boolean;
29
27
  protected initializeOptions: ModuleOptions;
30
28
  private logger;
31
- private appPlugin;
32
29
  protected store: BaseSalesState;
33
30
  protected otherParams: Record<string, any>;
34
31
  protected cacheId: string | undefined;
@@ -39,12 +36,10 @@ export declare class BaseSalesImpl extends BaseModule implements Module {
39
36
  window: WindowPlugin;
40
37
  request: RequestPlugin;
41
38
  protected currentSalesDetail: ISalesDetail | null;
42
- protected discountConfigCacheKey: string | null;
43
- protected hasManualDiscountSelection: boolean;
44
39
  constructor(name?: string, version?: string);
45
40
  /**
46
41
  * 子类可覆盖此方法以追加/收敛要注册的子模块。
47
- * 默认包含通用销售模块:products / order / salesSummary / schedule / payment / quotation
42
+ * 默认包含通用销售模块:products / order / salesSummary / schedule / payment。
48
43
  */
49
44
  protected getRegisteredModuleNames(): readonly string[];
50
45
  /**
@@ -60,10 +55,6 @@ export declare class BaseSalesImpl extends BaseModule implements Module {
60
55
  */
61
56
  private logError;
62
57
  get payment(): PaymentModule | undefined;
63
- private getCurrentOrderCustomerId;
64
- private applyQuotationScheduleResolver;
65
- private loadQuotationForPriceQuery;
66
- protected getSubmitOrderSalesChannel(): string | undefined;
67
58
  /**
68
59
  * 工厂入口:根据子模块名实例化对应模块。
69
60
  * 默认使用 BookingByStep 公共 `createModule`。子类若需引入额外类型(如 customer),
@@ -76,8 +67,6 @@ export declare class BaseSalesImpl extends BaseModule implements Module {
76
67
  * sessionStorage 损坏时静默忽略,按空状态注册。
77
68
  */
78
69
  protected readSessionCacheData(): Record<string, any>;
79
- private getAppData;
80
- private syncAppDataToTempOrder;
81
70
  initialize(core: PisellCore, options?: ModuleOptions): Promise<void>;
82
71
  destroy(): Promise<void>;
83
72
  /**
@@ -102,59 +91,27 @@ export declare class BaseSalesImpl extends BaseModule implements Module {
102
91
  getPayments(): ISalesPayment[];
103
92
  /** 获取附加费用(运费/服务费/税费等)。 */
104
93
  getSurcharges(): ISalesSurcharge[];
105
- getTempOrder(): OrderTempOrder | null;
106
- replaceTempOrder(tempOrder: OrderTempOrder): Promise<OrderTempOrder>;
94
+ getTempOrder(): import("../../modules/Order/types").OrderTempOrder | null;
107
95
  getOrderIdentity(): import("../../modules/Order/types").OrderIdentitySnapshot | null;
108
96
  getOrderSnapshot(): import("../../modules/Order/types").OrderSnapshot | null;
109
97
  getOrderSyncState(): import("../../modules/Order/types").OrderSyncState;
110
98
  getOrderAmountSnapshot(): import("../../modules/Order/types").OrderAmountSnapshot | null;
111
99
  getTempOrderNote(): string;
112
100
  updateTempOrderNote(note: string): string;
113
- updateTempOrderNote(note: string, sync: true): Promise<string>;
114
- updateTempOrderNote(note: string, sync: boolean): string | Promise<string>;
115
- updateRemoteOrderNote(orderId: number | string, note: string): void;
116
101
  updateTempOrderShopDiscount(amount: string | number): string;
117
102
  updateTempOrderContactsInfo(contactsInfo: Record<string, any> | null): Record<string, any> | null;
118
- /** @deprecated OrderModule 不再负责 tempOrder localStorage 持久化。 */
119
- setEnableTempOrderPersist(enabled: boolean): void;
120
- /** @deprecated OrderModule 不再负责 tempOrder localStorage 持久化。 */
121
- isTempOrderPersistEnabled(): boolean;
122
103
  private ensureTempOrder;
123
- addNewOrder(): Promise<OrderTempOrder>;
104
+ addNewOrder(): Promise<import("../../modules/Order/types").OrderTempOrder>;
124
105
  saveDraft(): Promise<void>;
125
- restoreOrder(): Promise<OrderTempOrder>;
126
- /**
127
- * 仅清空 tempOrder 购物车行(products / bookings / discount_list)。
128
- * 同步清空内存中的 salesDetail 商品/预约视图,避免编辑态仍读到旧 bookings。
129
- */
130
- clearOrderCartLines(): Promise<OrderTempOrder>;
106
+ restoreOrder(): Promise<import("../../modules/Order/types").OrderTempOrder>;
131
107
  getOrderProducts(): import("../../modules/Order/types").OrderProduct[];
132
108
  getSummary(): Promise<import("../../modules/Order/types").OrderSummary>;
133
- private getHistoricalProductDiscountList;
134
- private isPersistedOrderProduct;
135
- private mergeHistoricalDiscountList;
136
- private mergeCurrentDiscountSelectionState;
137
- loadDiscountConfig(params?: {
138
- customerId?: number;
139
- action?: 'create' | 'edit';
140
- }): Promise<{
141
- productList: Record<string, any>[];
142
- discountList: Discount[];
143
- }>;
144
- bestDiscount(cb?: (result: any) => void): Promise<{
145
- productList: Record<string, any>[];
146
- discountList: Discount[];
147
- }>;
148
109
  getDiscountList(): Discount[];
149
110
  scanPromotionCode(code: string, customerId?: number): Promise<BaseSalesScanCodeResult>;
150
111
  setDiscountSelected(params: {
151
112
  discountId: number;
152
113
  isSelected: boolean;
153
114
  }): Promise<void>;
154
- applyDiscountCalculationResult(result?: {
155
- productList?: Record<string, any>[];
156
- discountList?: Discount[];
157
- }): Promise<void>;
158
115
  submitScanOrder<T = any>(params?: {
159
116
  payments?: OrderPaymentSource[];
160
117
  paymentStatus?: BaseSalesPaymentStatus;
@@ -226,11 +183,8 @@ export declare class BaseSalesImpl extends BaseModule implements Module {
226
183
  submitBeforeSend?: boolean;
227
184
  }): Promise<T>;
228
185
  transformBaseProductToOrderProduct(params: TransformBaseProductToOrderProductParams): import("./utils/transformBaseProductToOrderProduct").BaseProductOrderProductInput | null;
229
- calculateProductBookingPrice(params: BaseSalesCalculateProductBookingPriceParams): Promise<BaseSalesProductBookingPriceResult>;
230
186
  addProductToOrder(product: Partial<BaseSalesOrderProduct> & BaseSalesOrderProductIdentity, booking?: AddProductBookingInput): Promise<import("../../modules/Order/types").OrderProduct[]>;
231
- updateOrderProduct(params: UpdateOrderProductParams): Promise<import("../../modules/Order/types").OrderProduct[]>;
232
- updateOrderProductQuantity(params: BaseSalesUpdateOrderProductQuantityParams): Promise<import("../../modules/Order/types").OrderProduct[]>;
233
- updateOrderBooking(params: UpdateOrderBookingParams): any[];
187
+ updateProductInOrder(params: UpdateProductInOrderParams): Promise<import("../../modules/Order/types").OrderProduct[]>;
234
188
  /**
235
189
  * 设置单行商品备注(与整单 `updateTempOrderNote` 区分)。
236
190
  * 多行同 SKU 时必须传入与删除/更新一致的 unique_identification_number。