@pisell/pisellos 2.2.244 → 2.2.246

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 (316) hide show
  1. package/dist/model/strategy/adapter/promotion/evaluator.js +3 -2
  2. package/dist/model/strategy/adapter/walletPass/utils.js +7 -4
  3. package/dist/modules/BookingContext/index.d.ts +48 -0
  4. package/dist/modules/BookingContext/index.js +566 -0
  5. package/dist/modules/BookingContext/types.d.ts +102 -0
  6. package/dist/modules/BookingContext/types.js +51 -0
  7. package/dist/modules/BookingContext/utils/buildCacheItemFromOrderLine.d.ts +16 -0
  8. package/dist/modules/BookingContext/utils/buildCacheItemFromOrderLine.js +284 -0
  9. package/dist/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.d.ts +8 -0
  10. package/dist/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.js +148 -0
  11. package/dist/modules/BookingContext/utils/cacheItemToBookingInput.d.ts +76 -0
  12. package/dist/modules/BookingContext/utils/cacheItemToBookingInput.js +218 -0
  13. package/dist/modules/BookingContext/utils/flexible.d.ts +28 -0
  14. package/dist/modules/BookingContext/utils/flexible.js +56 -0
  15. package/dist/modules/BookingContext/utils/formatResourceList.d.ts +8 -0
  16. package/dist/modules/BookingContext/utils/formatResourceList.js +38 -0
  17. package/dist/modules/BookingContext/utils/index.d.ts +11 -0
  18. package/dist/modules/BookingContext/utils/index.js +11 -0
  19. package/dist/modules/BookingContext/utils/noResource.d.ts +13 -0
  20. package/dist/modules/BookingContext/utils/noResource.js +77 -0
  21. package/dist/modules/BookingContext/utils/orderLineDisplay.d.ts +1 -0
  22. package/dist/modules/BookingContext/utils/orderLineDisplay.js +36 -0
  23. package/dist/modules/BookingContext/utils/productExtend.d.ts +72 -0
  24. package/dist/modules/BookingContext/utils/productExtend.js +339 -0
  25. package/dist/modules/BookingContext/utils/resourceErrors.d.ts +41 -0
  26. package/dist/modules/BookingContext/utils/resourceErrors.js +74 -0
  27. package/dist/modules/BookingContext/utils/resourceSelection.d.ts +7 -0
  28. package/dist/modules/BookingContext/utils/resourceSelection.js +24 -0
  29. package/dist/modules/BookingContext/utils/resources.d.ts +80 -0
  30. package/dist/modules/BookingContext/utils/resources.js +486 -0
  31. package/dist/modules/BookingContext/utils/serviceTimes.d.ts +55 -0
  32. package/dist/modules/BookingContext/utils/serviceTimes.js +151 -0
  33. package/dist/modules/BookingContext/utils/timeSlices.d.ts +42 -0
  34. package/dist/modules/BookingContext/utils/timeSlices.js +100 -0
  35. package/dist/modules/Cart/utils/cartProduct.js +24 -3
  36. package/dist/modules/Cart/utils/changePrice.js +11 -11
  37. package/dist/modules/Customer/index.d.ts +20 -0
  38. package/dist/modules/Customer/index.js +172 -83
  39. package/dist/modules/Customer/types.d.ts +2 -0
  40. package/dist/modules/Discount/index.d.ts +1 -1
  41. package/dist/modules/Discount/index.js +13 -6
  42. package/dist/modules/Discount/types.d.ts +1 -0
  43. package/dist/modules/OpenData/index.d.ts +8 -0
  44. package/dist/modules/OpenData/index.js +37 -17
  45. package/dist/modules/Order/index.d.ts +277 -18
  46. package/dist/modules/Order/index.js +3581 -779
  47. package/dist/modules/Order/types.d.ts +286 -31
  48. package/dist/modules/Order/types.js +38 -0
  49. package/dist/modules/Order/utils/manualProductDiscount.d.ts +106 -0
  50. package/dist/modules/Order/utils/manualProductDiscount.js +210 -0
  51. package/dist/modules/Order/utils.d.ts +147 -5
  52. package/dist/modules/Order/utils.js +750 -104
  53. package/dist/modules/Payment/index.d.ts +10 -13
  54. package/dist/modules/Payment/index.js +467 -837
  55. package/dist/modules/Payment/types.d.ts +2 -0
  56. package/dist/modules/Payment/utils.js +2 -1
  57. package/dist/modules/Payment/walletpass.js +41 -25
  58. package/dist/modules/ProductList/index.d.ts +16 -12
  59. package/dist/modules/ProductList/index.js +133 -59
  60. package/dist/modules/ProductList/types.d.ts +14 -0
  61. package/dist/modules/Quotation/index.d.ts +0 -1
  62. package/dist/modules/Quotation/index.js +25 -22
  63. package/dist/modules/Rules/index.d.ts +4 -0
  64. package/dist/modules/Rules/index.js +97 -70
  65. package/dist/modules/Rules/types.d.ts +1 -0
  66. package/dist/modules/SalesSummary/index.d.ts +8 -25
  67. package/dist/modules/SalesSummary/index.js +86 -35
  68. package/dist/modules/SalesSummary/types.d.ts +4 -1
  69. package/dist/modules/SalesSummary/utils.d.ts +2 -25
  70. package/dist/modules/SalesSummary/utils.js +794 -162
  71. package/dist/modules/Schedule/index.d.ts +7 -0
  72. package/dist/modules/Schedule/index.js +24 -2
  73. package/dist/modules/Summary/index.js +4 -3
  74. package/dist/modules/SurchargeList/index.d.ts +16 -0
  75. package/dist/modules/SurchargeList/index.js +162 -0
  76. package/dist/modules/SurchargeList/types.d.ts +11 -0
  77. package/dist/modules/SurchargeList/types.js +1 -0
  78. package/dist/modules/index.d.ts +2 -0
  79. package/dist/modules/index.js +3 -1
  80. package/dist/plugins/request.d.ts +1 -0
  81. package/dist/server/index.d.ts +204 -1
  82. package/dist/server/index.js +3654 -922
  83. package/dist/server/modules/index.d.ts +2 -0
  84. package/dist/server/modules/index.js +2 -0
  85. package/dist/server/modules/order/index.d.ts +120 -3
  86. package/dist/server/modules/order/index.js +1762 -448
  87. package/dist/server/modules/order/types.d.ts +32 -3
  88. package/dist/server/modules/order/types.js +8 -0
  89. package/dist/server/modules/order/utils/filterBookings.js +26 -3
  90. package/dist/server/modules/order/utils/filterOrders.js +23 -8
  91. package/dist/server/modules/payment/index.d.ts +28 -0
  92. package/dist/server/modules/payment/index.js +305 -0
  93. package/dist/server/modules/payment/types.d.ts +9 -0
  94. package/dist/server/modules/payment/types.js +1 -0
  95. package/dist/server/modules/products/index.d.ts +34 -7
  96. package/dist/server/modules/products/index.js +631 -317
  97. package/dist/server/modules/resource/index.d.ts +2 -0
  98. package/dist/server/modules/resource/index.js +29 -3
  99. package/dist/server/modules/schedule/index.d.ts +4 -4
  100. package/dist/server/modules/schedule/index.js +111 -88
  101. package/dist/server/test.json +713 -0
  102. package/dist/server/utils/small-ticket.d.ts +71 -0
  103. package/dist/server/utils/small-ticket.js +840 -0
  104. package/dist/solution/BaseSales/index.d.ts +133 -10
  105. package/dist/solution/BaseSales/index.js +1950 -447
  106. package/dist/solution/BaseSales/types.d.ts +82 -6
  107. package/dist/solution/BaseSales/types.js +5 -4
  108. package/dist/solution/BaseSales/utils/cartPromotion.d.ts +287 -0
  109. package/dist/solution/BaseSales/utils/cartPromotion.js +1438 -0
  110. package/dist/solution/BaseSales/utils/quotationPrice.d.ts +7 -0
  111. package/dist/solution/BaseSales/utils/quotationPrice.js +237 -0
  112. package/dist/solution/BaseSales/utils/transformBaseProductToOrderProduct.d.ts +1 -0
  113. package/dist/solution/BaseSales/utils/transformBaseProductToOrderProduct.js +105 -24
  114. package/dist/solution/BaseSales/utils.d.ts +1 -1
  115. package/dist/solution/BaseSales/utils.js +62 -21
  116. package/dist/solution/BookingByStep/index.d.ts +1 -1
  117. package/dist/solution/BookingTicket/index.d.ts +271 -11
  118. package/dist/solution/BookingTicket/index.js +1777 -242
  119. package/dist/solution/BookingTicket/types.d.ts +118 -1
  120. package/dist/solution/BookingTicket/types.js +41 -2
  121. package/dist/solution/BookingTicket/utils/addProductDecision.d.ts +117 -0
  122. package/dist/solution/BookingTicket/utils/addProductDecision.js +346 -0
  123. package/dist/solution/BookingTicket/utils/addTimeAvailability.d.ts +35 -0
  124. package/dist/solution/BookingTicket/utils/addTimeAvailability.js +95 -0
  125. package/dist/solution/BookingTicket/utils/bookingStatus.d.ts +40 -0
  126. package/dist/solution/BookingTicket/utils/bookingStatus.js +70 -0
  127. package/dist/solution/BookingTicket/utils/cartView.d.ts +9 -1
  128. package/dist/solution/BookingTicket/utils/cartView.js +94 -7
  129. package/dist/solution/BookingTicket/utils/exampleData.d.ts +123 -0
  130. package/dist/solution/BookingTicket/utils/exampleData.js +183 -0
  131. package/dist/solution/BookingTicket/utils/resolveBestAddTimePlan.d.ts +185 -0
  132. package/dist/solution/BookingTicket/utils/resolveBestAddTimePlan.js +438 -0
  133. package/dist/solution/BookingTicket/utils/scan/applyGlobalScan.d.ts +36 -0
  134. package/dist/solution/BookingTicket/utils/scan/applyGlobalScan.js +400 -0
  135. package/dist/solution/BookingTicket/utils/scan/formatGlobalScan.d.ts +32 -0
  136. package/dist/solution/BookingTicket/utils/scan/formatGlobalScan.js +56 -0
  137. package/dist/solution/BookingTicket/utils/scan/index.d.ts +5 -0
  138. package/dist/solution/BookingTicket/utils/scan/index.js +20 -8
  139. package/dist/solution/BookingTicket/utils/scan/scanProductValues.d.ts +21 -0
  140. package/dist/solution/BookingTicket/utils/scan/scanProductValues.js +150 -0
  141. package/dist/solution/BookingTicket/utils/sessionCatalogStale.d.ts +23 -0
  142. package/dist/solution/BookingTicket/utils/sessionCatalogStale.js +78 -0
  143. package/dist/solution/Checkout/index.d.ts +1 -0
  144. package/dist/solution/Checkout/index.js +10 -9
  145. package/dist/solution/RegisterAndLogin/config.js +2 -10
  146. package/dist/solution/ScanOrder/index.d.ts +9 -3
  147. package/dist/solution/ScanOrder/index.js +241 -134
  148. package/dist/solution/ScanOrder/types.d.ts +9 -5
  149. package/dist/solution/ScanOrder/types.js +2 -3
  150. package/dist/solution/ScanOrder/utils.d.ts +1 -1
  151. package/dist/solution/ScanOrder/utils.js +84 -22
  152. package/dist/solution/VenueBooking/index.d.ts +5 -2
  153. package/dist/solution/VenueBooking/index.js +110 -59
  154. package/dist/solution/VenueBooking/sales-section-4-annotated.json +0 -2
  155. package/dist/solution/VenueBooking/utils/slotMerge.d.ts +4 -0
  156. package/dist/solution/VenueBooking/utils/slotMerge.js +10 -0
  157. package/dist/types/index.d.ts +10 -0
  158. package/lib/model/strategy/adapter/promotion/evaluator.js +2 -1
  159. package/lib/model/strategy/adapter/promotion/index.js +49 -0
  160. package/lib/model/strategy/adapter/walletPass/utils.js +3 -2
  161. package/lib/modules/BookingContext/index.d.ts +48 -0
  162. package/lib/modules/BookingContext/index.js +368 -0
  163. package/lib/modules/BookingContext/types.d.ts +102 -0
  164. package/lib/modules/BookingContext/types.js +34 -0
  165. package/lib/modules/BookingContext/utils/buildCacheItemFromOrderLine.d.ts +16 -0
  166. package/lib/modules/BookingContext/utils/buildCacheItemFromOrderLine.js +276 -0
  167. package/lib/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.d.ts +8 -0
  168. package/lib/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.js +154 -0
  169. package/lib/modules/BookingContext/utils/cacheItemToBookingInput.d.ts +76 -0
  170. package/lib/modules/BookingContext/utils/cacheItemToBookingInput.js +201 -0
  171. package/lib/modules/BookingContext/utils/flexible.d.ts +28 -0
  172. package/lib/modules/BookingContext/utils/flexible.js +80 -0
  173. package/lib/modules/BookingContext/utils/formatResourceList.d.ts +8 -0
  174. package/lib/modules/BookingContext/utils/formatResourceList.js +50 -0
  175. package/lib/modules/BookingContext/utils/index.d.ts +11 -0
  176. package/lib/modules/BookingContext/utils/index.js +43 -0
  177. package/lib/modules/BookingContext/utils/noResource.d.ts +13 -0
  178. package/lib/modules/BookingContext/utils/noResource.js +90 -0
  179. package/lib/modules/BookingContext/utils/orderLineDisplay.d.ts +1 -0
  180. package/lib/modules/BookingContext/utils/orderLineDisplay.js +56 -0
  181. package/lib/modules/BookingContext/utils/productExtend.d.ts +72 -0
  182. package/lib/modules/BookingContext/utils/productExtend.js +283 -0
  183. package/lib/modules/BookingContext/utils/resourceErrors.d.ts +41 -0
  184. package/lib/modules/BookingContext/utils/resourceErrors.js +80 -0
  185. package/lib/modules/BookingContext/utils/resourceSelection.d.ts +7 -0
  186. package/lib/modules/BookingContext/utils/resourceSelection.js +46 -0
  187. package/lib/modules/BookingContext/utils/resources.d.ts +80 -0
  188. package/lib/modules/BookingContext/utils/resources.js +377 -0
  189. package/lib/modules/BookingContext/utils/serviceTimes.d.ts +55 -0
  190. package/lib/modules/BookingContext/utils/serviceTimes.js +162 -0
  191. package/lib/modules/BookingContext/utils/timeSlices.d.ts +42 -0
  192. package/lib/modules/BookingContext/utils/timeSlices.js +124 -0
  193. package/lib/modules/Cart/utils/cartProduct.js +20 -3
  194. package/lib/modules/Cart/utils/changePrice.js +12 -20
  195. package/lib/modules/Customer/index.d.ts +20 -0
  196. package/lib/modules/Customer/index.js +64 -11
  197. package/lib/modules/Customer/types.d.ts +2 -0
  198. package/lib/modules/Discount/index.d.ts +1 -1
  199. package/lib/modules/Discount/index.js +9 -1
  200. package/lib/modules/Discount/types.d.ts +1 -0
  201. package/lib/modules/OpenData/index.d.ts +8 -0
  202. package/lib/modules/OpenData/index.js +19 -5
  203. package/lib/modules/Order/index.d.ts +277 -18
  204. package/lib/modules/Order/index.js +2317 -337
  205. package/lib/modules/Order/types.d.ts +286 -31
  206. package/lib/modules/Order/types.js +1 -0
  207. package/lib/modules/Order/utils/manualProductDiscount.d.ts +106 -0
  208. package/lib/modules/Order/utils/manualProductDiscount.js +206 -0
  209. package/lib/modules/Order/utils.d.ts +147 -5
  210. package/lib/modules/Order/utils.js +615 -46
  211. package/lib/modules/Payment/index.d.ts +10 -13
  212. package/lib/modules/Payment/index.js +18 -150
  213. package/lib/modules/Payment/types.d.ts +2 -0
  214. package/lib/modules/Payment/utils.js +2 -1
  215. package/lib/modules/Payment/walletpass.js +16 -3
  216. package/lib/modules/ProductList/index.d.ts +16 -12
  217. package/lib/modules/ProductList/index.js +41 -4
  218. package/lib/modules/ProductList/types.d.ts +14 -0
  219. package/lib/modules/Quotation/index.d.ts +0 -1
  220. package/lib/modules/Quotation/index.js +19 -16
  221. package/lib/modules/Rules/index.d.ts +4 -0
  222. package/lib/modules/Rules/index.js +137 -120
  223. package/lib/modules/Rules/types.d.ts +1 -0
  224. package/lib/modules/SalesSummary/index.d.ts +8 -25
  225. package/lib/modules/SalesSummary/index.js +30 -4
  226. package/lib/modules/SalesSummary/types.d.ts +4 -1
  227. package/lib/modules/SalesSummary/utils.d.ts +2 -25
  228. package/lib/modules/SalesSummary/utils.js +645 -91
  229. package/lib/modules/Schedule/index.d.ts +7 -0
  230. package/lib/modules/Schedule/index.js +17 -1
  231. package/lib/modules/Summary/index.js +5 -4
  232. package/lib/modules/SurchargeList/index.d.ts +16 -0
  233. package/lib/modules/SurchargeList/index.js +89 -0
  234. package/lib/modules/SurchargeList/types.d.ts +11 -0
  235. package/lib/modules/SurchargeList/types.js +17 -0
  236. package/lib/modules/index.d.ts +2 -0
  237. package/lib/modules/index.js +5 -1
  238. package/lib/plugins/request.d.ts +1 -0
  239. package/lib/server/index.d.ts +204 -1
  240. package/lib/server/index.js +1891 -59
  241. package/lib/server/modules/index.d.ts +2 -0
  242. package/lib/server/modules/index.js +3 -0
  243. package/lib/server/modules/order/index.d.ts +120 -3
  244. package/lib/server/modules/order/index.js +887 -94
  245. package/lib/server/modules/order/types.d.ts +32 -3
  246. package/lib/server/modules/order/utils/filterBookings.js +24 -5
  247. package/lib/server/modules/order/utils/filterOrders.js +15 -6
  248. package/lib/server/modules/payment/index.d.ts +28 -0
  249. package/lib/server/modules/payment/index.js +192 -0
  250. package/lib/server/modules/payment/types.d.ts +9 -0
  251. package/lib/server/modules/payment/types.js +17 -0
  252. package/lib/server/modules/products/index.d.ts +34 -7
  253. package/lib/server/modules/products/index.js +189 -54
  254. package/lib/server/modules/resource/index.d.ts +2 -0
  255. package/lib/server/modules/resource/index.js +27 -3
  256. package/lib/server/modules/schedule/index.d.ts +4 -4
  257. package/lib/server/modules/schedule/index.js +47 -40
  258. package/lib/server/test.json +713 -0
  259. package/lib/server/utils/small-ticket.d.ts +71 -0
  260. package/lib/server/utils/small-ticket.js +800 -0
  261. package/lib/solution/BaseSales/index.d.ts +133 -10
  262. package/lib/solution/BaseSales/index.js +1111 -63
  263. package/lib/solution/BaseSales/types.d.ts +82 -6
  264. package/lib/solution/BaseSales/types.js +3 -1
  265. package/lib/solution/BaseSales/utils/cartPromotion.d.ts +287 -0
  266. package/lib/solution/BaseSales/utils/cartPromotion.js +992 -0
  267. package/lib/solution/BaseSales/utils/quotationPrice.d.ts +7 -0
  268. package/lib/solution/BaseSales/utils/quotationPrice.js +277 -0
  269. package/lib/solution/BaseSales/utils/transformBaseProductToOrderProduct.d.ts +1 -0
  270. package/lib/solution/BaseSales/utils/transformBaseProductToOrderProduct.js +106 -18
  271. package/lib/solution/BaseSales/utils.d.ts +1 -1
  272. package/lib/solution/BaseSales/utils.js +54 -10
  273. package/lib/solution/BookingByStep/index.d.ts +1 -1
  274. package/lib/solution/BookingTicket/index.d.ts +271 -11
  275. package/lib/solution/BookingTicket/index.js +922 -29
  276. package/lib/solution/BookingTicket/types.d.ts +118 -1
  277. package/lib/solution/BookingTicket/types.js +11 -0
  278. package/lib/solution/BookingTicket/utils/addProductDecision.d.ts +117 -0
  279. package/lib/solution/BookingTicket/utils/addProductDecision.js +318 -0
  280. package/lib/solution/BookingTicket/utils/addTimeAvailability.d.ts +35 -0
  281. package/lib/solution/BookingTicket/utils/addTimeAvailability.js +125 -0
  282. package/lib/solution/BookingTicket/utils/bookingStatus.d.ts +40 -0
  283. package/lib/solution/BookingTicket/utils/bookingStatus.js +44 -2
  284. package/lib/solution/BookingTicket/utils/cartView.d.ts +9 -1
  285. package/lib/solution/BookingTicket/utils/cartView.js +61 -6
  286. package/lib/solution/BookingTicket/utils/exampleData.d.ts +123 -0
  287. package/lib/solution/BookingTicket/utils/exampleData.js +0 -0
  288. package/lib/solution/BookingTicket/utils/resolveBestAddTimePlan.d.ts +185 -0
  289. package/lib/solution/BookingTicket/utils/resolveBestAddTimePlan.js +254 -0
  290. package/lib/solution/BookingTicket/utils/scan/applyGlobalScan.d.ts +36 -0
  291. package/lib/solution/BookingTicket/utils/scan/applyGlobalScan.js +169 -0
  292. package/lib/solution/BookingTicket/utils/scan/formatGlobalScan.d.ts +32 -0
  293. package/lib/solution/BookingTicket/utils/scan/formatGlobalScan.js +51 -0
  294. package/lib/solution/BookingTicket/utils/scan/index.d.ts +5 -0
  295. package/lib/solution/BookingTicket/utils/scan/index.js +17 -3
  296. package/lib/solution/BookingTicket/utils/scan/scanProductValues.d.ts +21 -0
  297. package/lib/solution/BookingTicket/utils/scan/scanProductValues.js +127 -0
  298. package/lib/solution/BookingTicket/utils/sessionCatalogStale.d.ts +23 -0
  299. package/lib/solution/BookingTicket/utils/sessionCatalogStale.js +85 -0
  300. package/lib/solution/Checkout/index.d.ts +1 -0
  301. package/lib/solution/Checkout/index.js +1 -2
  302. package/lib/solution/RegisterAndLogin/config.js +2 -10
  303. package/lib/solution/ScanOrder/index.d.ts +9 -3
  304. package/lib/solution/ScanOrder/index.js +153 -70
  305. package/lib/solution/ScanOrder/types.d.ts +9 -5
  306. package/lib/solution/ScanOrder/utils.d.ts +1 -1
  307. package/lib/solution/ScanOrder/utils.js +83 -17
  308. package/lib/solution/VenueBooking/index.d.ts +5 -2
  309. package/lib/solution/VenueBooking/index.js +54 -17
  310. package/lib/solution/VenueBooking/sales-section-4-annotated.json +0 -2
  311. package/lib/solution/VenueBooking/utils/slotMerge.d.ts +4 -0
  312. package/lib/solution/VenueBooking/utils/slotMerge.js +10 -0
  313. package/lib/types/index.d.ts +10 -0
  314. package/package.json +1 -1
  315. package/dist/solution/Checkout/appointmentDemo.json +0 -1
  316. package/lib/solution/Checkout/appointmentDemo.json +0 -1
@@ -78,22 +78,22 @@ export var QuotationModule = /*#__PURE__*/function (_BaseModule) {
78
78
  case 0:
79
79
  query = {};
80
80
  if (params !== null && params !== void 0 && params.channel) query.channel = params.channel;
81
- if (params !== null && params !== void 0 && params.customer_id) query.customer_id = String(params.customer_id);
82
81
  if ((params === null || params === void 0 ? void 0 : params.channel) === 'online_store') {
83
82
  query.channel = 'online-store';
84
83
  }
85
- _context2.next = 6;
84
+ _context2.next = 5;
86
85
  return this.request.get('/quotation/available', query, {
87
- useCache: false
86
+ useCache: false,
87
+ osServer: true
88
88
  });
89
- case 6:
89
+ case 5:
90
90
  res = _context2.sent;
91
- list = this.filterQuotationsByCustomer((res === null || res === void 0 || (_data = res.data) === null || _data === void 0 ? void 0 : _data.list) || (res === null || res === void 0 ? void 0 : res.list) || [], params === null || params === void 0 ? void 0 : params.customer_id);
91
+ list = (res === null || res === void 0 || (_data = res.data) === null || _data === void 0 ? void 0 : _data.list) || (res === null || res === void 0 ? void 0 : res.list) || [];
92
92
  list.sort(function (a, b) {
93
93
  return a.sort - b.sort;
94
94
  });
95
95
  this.store.list = list;
96
- case 10:
96
+ case 9:
97
97
  case "end":
98
98
  return _context2.stop();
99
99
  }
@@ -130,8 +130,10 @@ export var QuotationModule = /*#__PURE__*/function (_BaseModule) {
130
130
  try {
131
131
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
132
132
  var quotation = _step.value;
133
- if (!this.isQuotationVisibleForCustomer(quotation, customer_id)) continue;
134
- if (!this.isQuotationActiveAt(quotation, datetime)) continue;
133
+ var visible = this.isQuotationVisibleForCustomer(quotation, customer_id);
134
+ if (!visible) continue;
135
+ var active = this.isQuotationActiveAt(quotation, datetime);
136
+ if (!active) continue;
135
137
  var match = this.findProductData(quotation.product_data, productId, variantId);
136
138
  if (!match) continue;
137
139
  if (match.value === 0) continue;
@@ -218,14 +220,6 @@ export var QuotationModule = /*#__PURE__*/function (_BaseModule) {
218
220
  value: function setScheduleResolver(resolver) {
219
221
  this.scheduleResolver = resolver;
220
222
  }
221
- }, {
222
- key: "filterQuotationsByCustomer",
223
- value: function filterQuotationsByCustomer(list, customerId) {
224
- var _this2 = this;
225
- return list.filter(function (quotation) {
226
- return _this2.isQuotationVisibleForCustomer(quotation, customerId);
227
- });
228
- }
229
223
  }, {
230
224
  key: "isQuotationVisibleForCustomer",
231
225
  value: function isQuotationVisibleForCustomer(quotation, customerId) {
@@ -246,18 +240,27 @@ export var QuotationModule = /*#__PURE__*/function (_BaseModule) {
246
240
  key: "isQuotationActiveAt",
247
241
  value: function isQuotationActiveAt(quotation, datetime) {
248
242
  var _quotation$schedule,
249
- _this3 = this;
243
+ _this2 = this;
250
244
  if (!((_quotation$schedule = quotation.schedule) !== null && _quotation$schedule !== void 0 && _quotation$schedule.length)) return false;
251
- var scheduleItems = quotation.schedule.map(function (s) {
252
- var _this3$scheduleResolv;
253
- var full = (_this3$scheduleResolv = _this3.scheduleResolver) === null || _this3$scheduleResolv === void 0 ? void 0 : _this3$scheduleResolv.call(_this3, s.id);
254
- if (full) return full;
255
- return _objectSpread(_objectSpread({}, s), {}, {
245
+ var scheduleItems = [];
246
+ quotation.schedule.forEach(function (s) {
247
+ var _this2$scheduleResolv;
248
+ var full = (_this2$scheduleResolv = _this2.scheduleResolver) === null || _this2$scheduleResolv === void 0 ? void 0 : _this2$scheduleResolv.call(_this2, s.id);
249
+ if (full) {
250
+ scheduleItems.push(full);
251
+ return;
252
+ }
253
+ if (_this2.scheduleResolver) {
254
+ return;
255
+ }
256
+ var fallbackSchedule = _objectSpread(_objectSpread({}, s), {}, {
256
257
  repeat_type: s.repeat_type || 'none',
257
258
  repeat_rule: s.repeat_rule || null,
258
259
  time_slot: s.time_slot || []
259
260
  });
261
+ scheduleItems.push(fallbackSchedule);
260
262
  });
263
+ if (!scheduleItems.length) return false;
261
264
  return getDateIsInSchedule(datetime, scheduleItems);
262
265
  }
263
266
  }, {
@@ -32,6 +32,10 @@ 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[];
35
39
  private getUnavailableReason;
36
40
  calcDiscount({ discountList, productList, holders, isFormSubject, orderTotalAmount }: {
37
41
  discountList: Discount[];
@@ -18,6 +18,8 @@ function _asyncToGenerator(fn) { return function () { var self = this, args = ar
18
18
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
19
19
  function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
20
20
  function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
21
+ function _get() { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get.bind(); } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(arguments.length < 3 ? target : receiver); } return desc.value; }; } return _get.apply(this, arguments); }
22
+ function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }
21
23
  function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
22
24
  function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
23
25
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
@@ -222,6 +224,22 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
222
224
  return item.type === type || item.tag === type;
223
225
  });
224
226
  }
227
+
228
+ /** 剔除指定 type/tag 的折扣项,保留手动改价(type=product) / 券等 */
229
+ }, {
230
+ key: "excludeDiscountListByType",
231
+ value: function excludeDiscountListByType(discountList, type) {
232
+ return (discountList || []).filter(function (item) {
233
+ return item.type !== type && item.tag !== type;
234
+ });
235
+ }
236
+
237
+ /** 手动改价场景:去掉 promotion,保留 type=product 等行内折扣 */
238
+ }, {
239
+ key: "resolveDiscountListForManualOverride",
240
+ value: function resolveDiscountListForManualOverride(discountList) {
241
+ return this.excludeDiscountListByType(discountList, 'promotion');
242
+ }
225
243
  // 获取券不可用的原因
226
244
  }, {
227
245
  key: "getUnavailableReason",
@@ -298,7 +316,8 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
298
316
  }, {
299
317
  key: "calcDiscount",
300
318
  value: function calcDiscount(_ref2, options) {
301
- var _this3 = this;
319
+ var _options$selectedList,
320
+ _this3 = this;
302
321
  var discountList = _ref2.discountList,
303
322
  productList = _ref2.productList,
304
323
  holders = _ref2.holders,
@@ -344,6 +363,13 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
344
363
  var filteredDiscountList = addModeDiscount.filter(function (discount) {
345
364
  return !discount.isManualSelect;
346
365
  });
366
+ var hasDiscountInput = editModeDiscount.length > 0 || addModeDiscount.length > 0 || Boolean(options === null || options === void 0 ? void 0 : options.discountId) || Boolean(options === null || options === void 0 || (_options$selectedList = options.selectedList) === null || _options$selectedList === void 0 ? void 0 : _options$selectedList.length) || Boolean(options === null || options === void 0 ? void 0 : options.scan);
367
+ if (!hasDiscountInput) {
368
+ return {
369
+ discountList: discountList,
370
+ productList: productList
371
+ };
372
+ }
347
373
 
348
374
  // 🔥 扁平化商品列表:将 bundle 子商品展开为虚拟商品
349
375
  var flattenProductsWithBundle = function flattenProductsWithBundle(productList) {
@@ -760,7 +786,6 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
760
786
  }
761
787
  }
762
788
  });
763
- console.log('occupiedItems', occupiedItems, 'orderLevelDiscountApplicableItems', orderLevelDiscountApplicableItems);
764
789
 
765
790
  // 🔥 第三步:识别 order_level 折扣卡并预计算分摊(排除被其他专属折扣卡占用的商品)
766
791
  sortedDiscountList.forEach(function (discount) {
@@ -977,7 +1002,7 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
977
1002
  // 然后再处理应用哪些优惠券,此时只考虑filteredDiscountList中的优惠券
978
1003
  // 🔥 使用扁平化后的列表进行处理
979
1004
  sortedFlattenedList.forEach(function (flatItem, index) {
980
- var _product10, _product$discount_lis2, _product11;
1005
+ var _product10, _originProduct, _originProduct2, _originProduct3, _product$discount_lis2, _product11;
981
1006
  // 获取商品数据
982
1007
  var product, originProduct;
983
1008
  if (flatItem.type === 'main') {
@@ -1001,11 +1026,16 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
1001
1026
  };
1002
1027
  originProduct = flatItem.originProduct;
1003
1028
  }
1029
+ var isPersistedProduct = ((_product10 = product) === null || _product10 === void 0 ? void 0 : _product10.booking_id) || ((_originProduct = originProduct) === null || _originProduct === void 0 ? void 0 : _originProduct.order_detail_id) || ((_originProduct2 = originProduct) === null || _originProduct2 === void 0 ? void 0 : _originProduct2.orderDetailId) || ((_originProduct3 = originProduct) === null || _originProduct3 === void 0 ? void 0 : _originProduct3.booking_id);
1030
+ var hasExistingWalletDiscount = ((_product$discount_lis2 = product.discount_list) === null || _product$discount_lis2 === void 0 ? void 0 : _product$discount_lis2.length) && ((_product11 = product) === null || _product11 === void 0 || (_product11 = _product11.discount_list) === null || _product11 === void 0 ? void 0 : _product11.every(function (discount) {
1031
+ var _discount$id, _discount$discount4;
1032
+ var discountIdentity = (_discount$id = discount.id) !== null && _discount$id !== void 0 ? _discount$id : (_discount$discount4 = discount.discount) === null || _discount$discount4 === void 0 ? void 0 : _discount$discount4.resource_id;
1033
+ var discountType = discount.tag || discount.type;
1034
+ return Boolean(discountIdentity && ['good_pass', 'discount_card', 'product_discount_card'].includes(discountType));
1035
+ }));
1004
1036
 
1005
- // 已有优惠的商品跳过
1006
- if ((_product10 = product) !== null && _product10 !== void 0 && _product10.booking_id && (_product$discount_lis2 = product.discount_list) !== null && _product$discount_lis2 !== void 0 && _product$discount_lis2.length && (_product11 = product) !== null && _product11 !== void 0 && (_product11 = _product11.discount_list) !== null && _product11 !== void 0 && _product11.every(function (discount) {
1007
- return discount.id && ['good_pass', 'discount_card', 'product_discount_card'].includes(discount.tag || discount.type);
1008
- })) {
1037
+ // 已持久化且已有钱包券/折扣卡的商品行跳过,保留后端历史折扣结果。
1038
+ if (isPersistedProduct && hasExistingWalletDiscount) {
1009
1039
  if (flatItem.type === 'main') {
1010
1040
  processedProductsMap.set(product._id, [originProduct]);
1011
1041
  } else {
@@ -1100,12 +1130,14 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
1100
1130
  // 如果是手动折扣,则不适用优惠券
1101
1131
  var isManualDiscount = false;
1102
1132
  if (flatItem.type === 'main') {
1103
- var _product$discount_lis5, _product12, _product12$every;
1133
+ var _product$discount_lis5, _product$discount_lis6, _product12, _product12$every;
1104
1134
  // 主商品:判断自身是否手动折扣
1105
- isManualDiscount = typeof product.isManualDiscount === 'boolean' ? product.isManualDiscount : product.total != product.origin_total && (product.bundle || []).every(function (item) {
1135
+ isManualDiscount = typeof product.isManualDiscount === 'boolean' ? product.isManualDiscount : ((_product$discount_lis5 = product.discount_list) === null || _product$discount_lis5 === void 0 ? void 0 : _product$discount_lis5.some(function (item) {
1136
+ return item.type === 'product';
1137
+ })) || product.total != product.origin_total && (product.bundle || []).every(function (item) {
1106
1138
  var _ref11;
1107
1139
  return !((_ref11 = item.discount_list || []) !== null && _ref11 !== void 0 && _ref11.length);
1108
- }) && (!((_product$discount_lis5 = product.discount_list) !== null && _product$discount_lis5 !== void 0 && _product$discount_lis5.length) || ((_product12 = product) === null || _product12 === void 0 || (_product12 = _product12.discount_list) === null || _product12 === void 0 || (_product12$every = _product12.every) === null || _product12$every === void 0 ? void 0 : _product12$every.call(_product12, function (item) {
1140
+ }) && (!((_product$discount_lis6 = product.discount_list) !== null && _product$discount_lis6 !== void 0 && _product$discount_lis6.length) || ((_product12 = product) === null || _product12 === void 0 || (_product12 = _product12.discount_list) === null || _product12 === void 0 || (_product12$every = _product12.every) === null || _product12$every === void 0 ? void 0 : _product12$every.call(_product12, function (item) {
1109
1141
  return item.type === 'product';
1110
1142
  })));
1111
1143
  if (product.inPromotion) {
@@ -1115,11 +1147,13 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
1115
1147
  // bundle子商品:判断父主商品是否手动折扣
1116
1148
  var parentProduct = flatItem.parentProduct;
1117
1149
  if (parentProduct) {
1118
- var _parentProduct$discou, _parentProduct$discou2, _parentProduct$discou3;
1119
- isManualDiscount = typeof parentProduct.isManualDiscount === 'boolean' ? parentProduct.isManualDiscount : parentProduct.total != parentProduct.origin_total && (parentProduct.bundle || []).every(function (item) {
1150
+ var _parentProduct$discou, _parentProduct$discou2, _parentProduct$discou3, _parentProduct$discou4;
1151
+ isManualDiscount = typeof parentProduct.isManualDiscount === 'boolean' ? parentProduct.isManualDiscount : ((_parentProduct$discou = parentProduct.discount_list) === null || _parentProduct$discou === void 0 ? void 0 : _parentProduct$discou.some(function (item) {
1152
+ return item.type === 'product';
1153
+ })) || parentProduct.total != parentProduct.origin_total && (parentProduct.bundle || []).every(function (item) {
1120
1154
  var _ref12;
1121
1155
  return !((_ref12 = item.discount_list || []) !== null && _ref12 !== void 0 && _ref12.length);
1122
- }) && (!((_parentProduct$discou = parentProduct.discount_list) !== null && _parentProduct$discou !== void 0 && _parentProduct$discou.length) || (parentProduct === null || parentProduct === void 0 || (_parentProduct$discou2 = parentProduct.discount_list) === null || _parentProduct$discou2 === void 0 || (_parentProduct$discou3 = _parentProduct$discou2.every) === null || _parentProduct$discou3 === void 0 ? void 0 : _parentProduct$discou3.call(_parentProduct$discou2, function (item) {
1156
+ }) && (!((_parentProduct$discou2 = parentProduct.discount_list) !== null && _parentProduct$discou2 !== void 0 && _parentProduct$discou2.length) || (parentProduct === null || parentProduct === void 0 || (_parentProduct$discou3 = parentProduct.discount_list) === null || _parentProduct$discou3 === void 0 || (_parentProduct$discou4 = _parentProduct$discou3.every) === null || _parentProduct$discou4 === void 0 ? void 0 : _parentProduct$discou4.call(_parentProduct$discou3, function (item) {
1123
1157
  return item.type === 'product';
1124
1158
  })));
1125
1159
  }
@@ -1127,9 +1161,9 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
1127
1161
 
1128
1162
  // 勾选时覆盖手动折扣
1129
1163
  if (options !== null && options !== void 0 && options.discountId) {
1130
- var _product$discount_lis6;
1164
+ var _product$discount_lis7;
1131
1165
  // 主商品:检查自己的 discount_list
1132
- if (flatItem.type === 'main' && (_product$discount_lis6 = product.discount_list) !== null && _product$discount_lis6 !== void 0 && _product$discount_lis6.some(function (item) {
1166
+ if (flatItem.type === 'main' && (_product$discount_lis7 = product.discount_list) !== null && _product$discount_lis7 !== void 0 && _product$discount_lis7.some(function (item) {
1133
1167
  var _item$discount;
1134
1168
  return ((_item$discount = item.discount) === null || _item$discount === void 0 ? void 0 : _item$discount.resource_id) === options.discountId;
1135
1169
  })) {
@@ -1137,8 +1171,8 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
1137
1171
  }
1138
1172
  // bundle子商品:检查自己的 discount_list 或父主商品的 discount_list
1139
1173
  if (flatItem.type === 'bundle') {
1140
- var _product$discount_lis7, _flatItem$parentProdu7;
1141
- if ((_product$discount_lis7 = product.discount_list) !== null && _product$discount_lis7 !== void 0 && _product$discount_lis7.some(function (item) {
1174
+ var _product$discount_lis8, _flatItem$parentProdu7;
1175
+ if ((_product$discount_lis8 = product.discount_list) !== null && _product$discount_lis8 !== void 0 && _product$discount_lis8.some(function (item) {
1142
1176
  var _item$discount2;
1143
1177
  return ((_item$discount2 = item.discount) === null || _item$discount2 === void 0 ? void 0 : _item$discount2.resource_id) === options.discountId;
1144
1178
  }) || (_flatItem$parentProdu7 = flatItem.parentProduct) !== null && _flatItem$parentProdu7 !== void 0 && (_flatItem$parentProdu7 = _flatItem$parentProdu7.discount_list) !== null && _flatItem$parentProdu7 !== void 0 && _flatItem$parentProdu7.some(function (item) {
@@ -1150,11 +1184,11 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
1150
1184
  }
1151
1185
  }
1152
1186
  if (options !== null && options !== void 0 && options.selectedList) {
1153
- var _product$discount_lis8;
1187
+ var _product$discount_lis9;
1154
1188
  // 主商品:检查自己的 discount_list
1155
- if (flatItem.type === 'main' && (_product$discount_lis8 = product.discount_list) !== null && _product$discount_lis8 !== void 0 && _product$discount_lis8.some(function (item) {
1156
- var _options$selectedList;
1157
- return options === null || options === void 0 || (_options$selectedList = options.selectedList) === null || _options$selectedList === void 0 ? void 0 : _options$selectedList.some(function (n) {
1189
+ if (flatItem.type === 'main' && (_product$discount_lis9 = product.discount_list) !== null && _product$discount_lis9 !== void 0 && _product$discount_lis9.some(function (item) {
1190
+ var _options$selectedList2;
1191
+ return options === null || options === void 0 || (_options$selectedList2 = options.selectedList) === null || _options$selectedList2 === void 0 ? void 0 : _options$selectedList2.some(function (n) {
1158
1192
  var _item$discount4;
1159
1193
  return n.discountId === ((_item$discount4 = item.discount) === null || _item$discount4 === void 0 ? void 0 : _item$discount4.resource_id);
1160
1194
  });
@@ -1163,16 +1197,16 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
1163
1197
  }
1164
1198
  // bundle子商品:检查自己的 discount_list 或父主商品的 discount_list
1165
1199
  if (flatItem.type === 'bundle') {
1166
- var _product$discount_lis9, _flatItem$parentProdu8;
1167
- if ((_product$discount_lis9 = product.discount_list) !== null && _product$discount_lis9 !== void 0 && _product$discount_lis9.some(function (item) {
1168
- var _options$selectedList2;
1169
- return options === null || options === void 0 || (_options$selectedList2 = options.selectedList) === null || _options$selectedList2 === void 0 ? void 0 : _options$selectedList2.some(function (n) {
1200
+ var _product$discount_lis10, _flatItem$parentProdu8;
1201
+ if ((_product$discount_lis10 = product.discount_list) !== null && _product$discount_lis10 !== void 0 && _product$discount_lis10.some(function (item) {
1202
+ var _options$selectedList3;
1203
+ return options === null || options === void 0 || (_options$selectedList3 = options.selectedList) === null || _options$selectedList3 === void 0 ? void 0 : _options$selectedList3.some(function (n) {
1170
1204
  var _item$discount5;
1171
1205
  return n.discountId === ((_item$discount5 = item.discount) === null || _item$discount5 === void 0 ? void 0 : _item$discount5.resource_id);
1172
1206
  });
1173
1207
  }) || (_flatItem$parentProdu8 = flatItem.parentProduct) !== null && _flatItem$parentProdu8 !== void 0 && (_flatItem$parentProdu8 = _flatItem$parentProdu8.discount_list) !== null && _flatItem$parentProdu8 !== void 0 && _flatItem$parentProdu8.some(function (item) {
1174
- var _options$selectedList3;
1175
- return options === null || options === void 0 || (_options$selectedList3 = options.selectedList) === null || _options$selectedList3 === void 0 ? void 0 : _options$selectedList3.some(function (n) {
1208
+ var _options$selectedList4;
1209
+ return options === null || options === void 0 || (_options$selectedList4 = options.selectedList) === null || _options$selectedList4 === void 0 ? void 0 : _options$selectedList4.some(function (n) {
1176
1210
  var _item$discount6;
1177
1211
  return n.discountId === ((_item$discount6 = item.discount) === null || _item$discount6 === void 0 ? void 0 : _item$discount6.resource_id);
1178
1212
  });
@@ -1208,7 +1242,7 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
1208
1242
  price: product.price,
1209
1243
  options: restoredOptions
1210
1244
  }), {}, {
1211
- discount_list: _this3.filterDiscountListByType(product.discount_list, 'promotion')
1245
+ discount_list: isManualDiscount ? _this3.resolveDiscountListForManualOverride(product.discount_list) : _this3.filterDiscountListByType(product.discount_list, 'promotion')
1212
1246
  }))]);
1213
1247
  } else {
1214
1248
  var _ref13, _product$_promotion$f, _product13, _product$origin_total;
@@ -1231,14 +1265,14 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
1231
1265
  main_product_selling_price: main_product_selling_price,
1232
1266
  options: restoredOptions
1233
1267
  }), {}, {
1234
- discount_list: _this3.filterDiscountListByType(product.discount_list, 'promotion')
1268
+ discount_list: isManualDiscount ? _this3.resolveDiscountListForManualOverride(product.discount_list) : _this3.filterDiscountListByType(product.discount_list, 'promotion')
1235
1269
  }))]);
1236
1270
  }
1237
1271
  } else {
1238
- var _flatItem$bundleItem8;
1272
+ var _flatItem$bundleItem8, _flatItem$bundleItem9;
1239
1273
  // bundle子商品:保存到扁平化Map
1240
1274
  processedFlatItemsMap.set(flatItem._id, [_objectSpread(_objectSpread({}, flatItem), {}, {
1241
- discount_list: _this3.filterDiscountListByType(((_flatItem$bundleItem8 = flatItem.bundleItem) === null || _flatItem$bundleItem8 === void 0 ? void 0 : _flatItem$bundleItem8.discount_list) || [], 'promotion'),
1275
+ discount_list: isManualDiscount ? _this3.resolveDiscountListForManualOverride(((_flatItem$bundleItem8 = flatItem.bundleItem) === null || _flatItem$bundleItem8 === void 0 ? void 0 : _flatItem$bundleItem8.discount_list) || []) : _this3.filterDiscountListByType(((_flatItem$bundleItem9 = flatItem.bundleItem) === null || _flatItem$bundleItem9 === void 0 ? void 0 : _flatItem$bundleItem9.discount_list) || [], 'promotion'),
1242
1276
  price: isManualDiscount ? flatItem.bundleItem.price : flatItem.bundleItem.original_price,
1243
1277
  processed: true
1244
1278
  })]);
@@ -1286,7 +1320,7 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
1286
1320
  }));
1287
1321
  }
1288
1322
  for (var i = 0; i < splitCount; i++) {
1289
- var _originProduct, _selectedDiscount$con, _product$options, _product$options2, _selectedDiscount$met, _selectedDiscount$met2;
1323
+ var _originProduct4, _selectedDiscount$con, _product$options, _product$options2, _selectedDiscount$met, _selectedDiscount$met2;
1290
1324
  // 如果用过折扣卡,也就不存在拆分的情况了,这里直接使用上面计算出来的折扣卡
1291
1325
  var _selectedDiscount = selectedDiscountCard || applicableDiscounts[i];
1292
1326
  // 标记优惠券为已使用
@@ -1307,7 +1341,7 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
1307
1341
  productOriginTotal = product.origin_total;
1308
1342
  }
1309
1343
  // 如果originProduct?._productInit?.original_price为 0,product.origin_total可能为空,此时取 product.total
1310
- if (Number(((_originProduct = originProduct) === null || _originProduct === void 0 || (_originProduct = _originProduct._productInit) === null || _originProduct === void 0 ? void 0 : _originProduct.original_price) || 0) > 0 && product.origin_total && product.total && product.origin_total !== product.total) {
1344
+ if (Number(((_originProduct4 = originProduct) === null || _originProduct4 === void 0 || (_originProduct4 = _originProduct4._productInit) === null || _originProduct4 === void 0 ? void 0 : _originProduct4.original_price) || 0) > 0 && product.origin_total && product.total && product.origin_total !== product.total) {
1311
1345
  productOriginTotal = product.total;
1312
1346
  }
1313
1347
 
@@ -1847,7 +1881,7 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
1847
1881
  } else {
1848
1882
  // 🔥 没有子商品被拆分,使用原有逻辑
1849
1883
  mainProductArr.forEach(function (mainProduct) {
1850
- var _mainProductData$disc, _mainProductData$disc2, _mainProductData$disc3;
1884
+ var _ref15, _mainProductData$main, _mainProductData$disc, _mainProductData$disc2, _mainProductData$disc3;
1851
1885
  var mainProductData = _this3.hooks.getProduct(mainProduct);
1852
1886
 
1853
1887
  // 重组bundle
@@ -1862,6 +1896,9 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
1862
1896
  } else {
1863
1897
  // 🔥 关键:拆分后的bundle item
1864
1898
  processedBundleItems.forEach(function (item) {
1899
+ var _item$price, _ref14, _item$bundle_selling_;
1900
+ var nextBundlePrice = (_item$price = item.price) !== null && _item$price !== void 0 ? _item$price : bundleItem.price;
1901
+ var nextBundleSellingPrice = (_ref14 = (_item$bundle_selling_ = item.bundle_selling_price) !== null && _item$bundle_selling_ !== void 0 ? _item$bundle_selling_ : item.price) !== null && _ref14 !== void 0 ? _ref14 : bundleItem.bundle_selling_price;
1865
1902
  // 🔥 更新 discount_list 中的 num,使其与拆分后的 item.num 一致
1866
1903
  var updatedDiscountList = (item.discount_list || []).map(function (discount) {
1867
1904
  var _discount$metadata10;
@@ -1876,18 +1913,20 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
1876
1913
  newBundle.push(_objectSpread(_objectSpread({}, bundleItem), {}, {
1877
1914
  _id: item._id,
1878
1915
  product_id: bundleItem.product_id,
1879
- price: item.price,
1916
+ price: nextBundlePrice,
1880
1917
  num: item.num,
1881
1918
  discount_list: updatedDiscountList,
1882
- bundle_selling_price: bundleItem.bundle_selling_price !== undefined ? item.price : undefined
1919
+ bundle_selling_price: bundleItem.bundle_selling_price !== undefined ? nextBundleSellingPrice : undefined
1883
1920
  }));
1884
1921
  });
1885
1922
  }
1886
1923
  });
1887
1924
  }
1888
1925
 
1889
- // 🔥 重新计算主商品的总价(包含bundle
1890
- var newTotal = Number(mainProductData.price || 0);
1926
+ // 主商品已经在前面的 setProduct 中应用过折扣;这里只替换 bundle
1927
+ // 避免把主商品 discount_list 再扣一次。
1928
+ var mainSellingPrice = (_ref15 = (_mainProductData$main = mainProductData.main_product_selling_price) !== null && _mainProductData$main !== void 0 ? _mainProductData$main : mainProductData.price) !== null && _ref15 !== void 0 ? _ref15 : 0;
1929
+ var newTotal = Number(mainSellingPrice || 0);
1891
1930
  var newOriginTotal = Number(mainProductData.original_price || mainProductData.price || 0);
1892
1931
 
1893
1932
  // 判断是否是手动折扣
@@ -1901,24 +1940,12 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
1901
1940
  newTotal = (_mainProductData$tota = mainProductData.total) !== null && _mainProductData$tota !== void 0 ? _mainProductData$tota : newTotal;
1902
1941
  newOriginTotal = (_mainProductData$orig3 = mainProductData.origin_total) !== null && _mainProductData$orig3 !== void 0 ? _mainProductData$orig3 : newOriginTotal;
1903
1942
  } else {
1904
- // 不是手动折扣时,才重新计算
1905
- var _mainDiscountList = mainProductData.discount_list.filter(function (item) {
1906
- var _item$metadata5;
1907
- return !(item !== null && item !== void 0 && (_item$metadata5 = item.metadata) !== null && _item$metadata5 !== void 0 && _item$metadata5.custom_product_bundle_map_id);
1908
- });
1909
-
1910
- // 如果主商品本身有折扣,需要重新计算主商品价格
1911
- if (_mainDiscountList && _mainDiscountList.length > 0) {
1912
- var _Decimal$minus$toNumb3, _mainProductData$orig4;
1913
- var _allDiscountAmount2 = getDiscountListAmount(_mainDiscountList);
1914
- newTotal = (_Decimal$minus$toNumb3 = new Decimal(mainProductData.price || 0).minus(_allDiscountAmount2).toNumber()) !== null && _Decimal$minus$toNumb3 !== void 0 ? _Decimal$minus$toNumb3 : newTotal;
1915
- newOriginTotal = (_mainProductData$orig4 = mainProductData.origin_total) !== null && _mainProductData$orig4 !== void 0 ? _mainProductData$orig4 : newOriginTotal;
1916
- }
1917
-
1918
- // 累加bundle的价格(只累加一次)
1943
+ // 累加 bundle 的折后价格(只累加一次)
1919
1944
  if (newBundle.length > 0) {
1920
1945
  newBundle.forEach(function (item) {
1921
- newTotal += Number(item.price) * Number(item.num);
1946
+ var _item$bundle_selling_2;
1947
+ var bundleSellingPrice = (_item$bundle_selling_2 = item.bundle_selling_price) !== null && _item$bundle_selling_2 !== void 0 ? _item$bundle_selling_2 : item.price;
1948
+ newTotal += Number(bundleSellingPrice) * Number(item.num);
1922
1949
  });
1923
1950
 
1924
1951
  // 计算原始总价(不考虑折扣)
@@ -2020,7 +2047,6 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
2020
2047
  appliedProductDetails: []
2021
2048
  });
2022
2049
  });
2023
- console.log(processedProductList, 'processedProductList');
2024
2050
  return {
2025
2051
  productList: processedProductList,
2026
2052
  discountList: [].concat(editModeDiscount, _toConsumableArray(updatedDiscountList))
@@ -2047,14 +2073,14 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
2047
2073
  var ruleType = usageRules.type;
2048
2074
  // 套餐适用范围配置
2049
2075
  var packageScope = usageRules === null || usageRules === void 0 ? void 0 : usageRules.package_scope;
2050
- var _ref14 = packageScope || {},
2051
- scopeType = _ref14.type,
2052
- _ref14$exclude_bundle = _ref14.exclude_bundle_product_ids,
2053
- exclude_bundle_product_ids = _ref14$exclude_bundle === void 0 ? [] : _ref14$exclude_bundle,
2054
- _ref14$include_bundle = _ref14.include_bundle_product_ids,
2055
- include_bundle_product_ids = _ref14$include_bundle === void 0 ? [] : _ref14$include_bundle,
2056
- _ref14$filter = _ref14.filter,
2057
- filter = _ref14$filter === void 0 ? 0 : _ref14$filter;
2076
+ var _ref16 = packageScope || {},
2077
+ scopeType = _ref16.type,
2078
+ _ref16$exclude_bundle = _ref16.exclude_bundle_product_ids,
2079
+ exclude_bundle_product_ids = _ref16$exclude_bundle === void 0 ? [] : _ref16$exclude_bundle,
2080
+ _ref16$include_bundle = _ref16.include_bundle_product_ids,
2081
+ include_bundle_product_ids = _ref16$include_bundle === void 0 ? [] : _ref16$include_bundle,
2082
+ _ref16$filter = _ref16.filter,
2083
+ filter = _ref16$filter === void 0 ? 0 : _ref16$filter;
2058
2084
  var isMainProduct = flatItem.type === 'main'; // 单独购买
2059
2085
  var isBundleItem = flatItem.type === 'bundle'; // 套餐中购买
2060
2086
 
@@ -2069,10 +2095,10 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
2069
2095
  return true; // 单独购买时可用
2070
2096
  }
2071
2097
  if (isBundleItem) {
2072
- var _flatItem$bundleItem9, _flatItem$bundleItem10, _flatItem$originProdu, _flatItem$parentProdu10;
2098
+ var _flatItem$bundleItem10, _flatItem$bundleItem11, _flatItem$originProdu, _flatItem$parentProdu10;
2073
2099
  // 套餐中购买时,判断是否为原价
2074
- var priceType = (_flatItem$bundleItem9 = flatItem.bundleItem) === null || _flatItem$bundleItem9 === void 0 ? void 0 : _flatItem$bundleItem9.price_type;
2075
- var priceTypeExt = (_flatItem$bundleItem10 = flatItem.bundleItem) === null || _flatItem$bundleItem10 === void 0 ? void 0 : _flatItem$bundleItem10.price_type_ext;
2100
+ var priceType = (_flatItem$bundleItem10 = flatItem.bundleItem) === null || _flatItem$bundleItem10 === void 0 ? void 0 : _flatItem$bundleItem10.price_type;
2101
+ var priceTypeExt = (_flatItem$bundleItem11 = flatItem.bundleItem) === null || _flatItem$bundleItem11 === void 0 ? void 0 : _flatItem$bundleItem11.price_type_ext;
2076
2102
  // 主商品id
2077
2103
  var mainProductId = (flatItem === null || flatItem === void 0 || (_flatItem$originProdu = flatItem.originProduct) === null || _flatItem$originProdu === void 0 || (_flatItem$originProdu = _flatItem$originProdu._productOrigin) === null || _flatItem$originProdu === void 0 ? void 0 : _flatItem$originProdu.id) || (flatItem === null || flatItem === void 0 || (_flatItem$parentProdu10 = flatItem.parentProduct) === null || _flatItem$parentProdu10 === void 0 ? void 0 : _flatItem$parentProdu10.id) || 0;
2078
2104
  // original_price 对应:
@@ -2139,10 +2165,10 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
2139
2165
  return false; // 单独购买时不可用
2140
2166
  }
2141
2167
  if (isBundleItem) {
2142
- var _flatItem$bundleItem11, _flatItem$bundleItem12;
2168
+ var _flatItem$bundleItem12, _flatItem$bundleItem13;
2143
2169
  // 套餐中购买时,判断是否为原价
2144
- var _priceType = (_flatItem$bundleItem11 = flatItem.bundleItem) === null || _flatItem$bundleItem11 === void 0 ? void 0 : _flatItem$bundleItem11.price_type;
2145
- var _priceTypeExt = (_flatItem$bundleItem12 = flatItem.bundleItem) === null || _flatItem$bundleItem12 === void 0 ? void 0 : _flatItem$bundleItem12.price_type_ext;
2170
+ var _priceType = (_flatItem$bundleItem12 = flatItem.bundleItem) === null || _flatItem$bundleItem12 === void 0 ? void 0 : _flatItem$bundleItem12.price_type;
2171
+ var _priceTypeExt = (_flatItem$bundleItem13 = flatItem.bundleItem) === null || _flatItem$bundleItem13 === void 0 ? void 0 : _flatItem$bundleItem13.price_type_ext;
2146
2172
 
2147
2173
  // original_price 对应:
2148
2174
  // 1. price_type: "markup" && price_type_ext: "product_price"
@@ -2242,7 +2268,8 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
2242
2268
  return this.core.effects.emit("".concat(this.name, ":onDestroy"), {});
2243
2269
  case 3:
2244
2270
  console.log('[Rules] 已销毁');
2245
- case 4:
2271
+ _get(_getPrototypeOf(RulesModule.prototype), "destroy", this).call(this);
2272
+ case 5:
2246
2273
  case "end":
2247
2274
  return _context3.stop();
2248
2275
  }
@@ -53,6 +53,7 @@ type ProductDetail = {
53
53
  vouchersApplicable?: boolean;
54
54
  holder_id?: number;
55
55
  startDate?: any;
56
+ main_product_selling_price?: number | string;
56
57
  };
57
58
  export interface RulesParamsHooks {
58
59
  getProduct: (product: Record<string, any>) => ProductDetail;
@@ -8,8 +8,16 @@ export declare class SalesSummaryModule extends BaseModule implements Module, Sa
8
8
  private appPlugin;
9
9
  private store;
10
10
  private request;
11
+ private surchargeListModuleName;
11
12
  constructor(name?: string, version?: string);
12
13
  initialize(core: PisellCore, options: ModuleOptions): Promise<void>;
14
+ /**
15
+ * 更新父级解决方案透传的运行态参数,并在 surcharge 模块名变化时刷新附加费列表。
16
+ *
17
+ * @example
18
+ * await salesSummaryModule.updateOtherParams({ surchargeListModuleName: 'custom_surchargeList' });
19
+ */
20
+ updateOtherParams(params: Record<string, any>): Promise<void>;
13
21
  getSurchargeList(): Promise<void>;
14
22
  private getAppData;
15
23
  private getTaxConfig;
@@ -43,30 +51,5 @@ export declare class SalesSummaryModule extends BaseModule implements Module, Sa
43
51
  rounding_amount: string;
44
52
  pay_service_charge_amount: string;
45
53
  is_price_include_tax?: number | undefined;
46
- } | {
47
- tax_title: string;
48
- tax_rate: number | undefined;
49
- product_quantity: number;
50
- product_original_amount: string;
51
- product_amount: string;
52
- product_expect_amount: string;
53
- product_tax_fee: string;
54
- shipping_fee: string;
55
- shipping_tax_fee: string;
56
- tax_fee: string;
57
- surcharge_fee: string;
58
- surcharges: any;
59
- discount_amount: string;
60
- deposit_amount: string;
61
- deposit: import("./types").DepositInfo | undefined;
62
- expect_amount: string;
63
- total_amount: string;
64
- total_refund_amount: string;
65
- customer_paid_amount: string;
66
- order_paid_amount: string;
67
- amount_gap: string;
68
- rounding_amount: string;
69
- pay_service_charge_amount: string;
70
- is_price_include_tax: number;
71
54
  }>;
72
55
  }