@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
@@ -159,6 +159,14 @@ 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
+ }
162
170
  // 获取券不可用的原因
163
171
  getUnavailableReason(discountList, productList) {
164
172
  var _a;
@@ -198,6 +206,7 @@ var RulesModule = class extends import_BaseModule.BaseModule {
198
206
  isFormSubject,
199
207
  orderTotalAmount
200
208
  }, options) {
209
+ var _a;
201
210
  const isEditModeAddNewProduct = productList.find((n) => n.booking_id) && productList.find((n) => !n.booking_id);
202
211
  const editModeDiscount = [];
203
212
  const addModeDiscount = [];
@@ -210,8 +219,8 @@ var RulesModule = class extends import_BaseModule.BaseModule {
210
219
  });
211
220
  const editModeOrderLevelProductIds = /* @__PURE__ */ new Set();
212
221
  editModeDiscount.forEach((discount) => {
213
- var _a, _b;
214
- if (((_a = discount.discount) == null ? void 0 : _a.discount_calculation_mode) === "order_level") {
222
+ var _a2, _b;
223
+ if (((_a2 = discount.discount) == null ? void 0 : _a2.discount_calculation_mode) === "order_level") {
215
224
  editModeOrderLevelProductIds.add((_b = discount == null ? void 0 : discount.discount) == null ? void 0 : _b.discount_product_id);
216
225
  }
217
226
  });
@@ -225,6 +234,13 @@ var RulesModule = class extends import_BaseModule.BaseModule {
225
234
  const filteredDiscountList = addModeDiscount.filter((discount) => {
226
235
  return !discount.isManualSelect;
227
236
  });
237
+ const hasDiscountInput = editModeDiscount.length > 0 || addModeDiscount.length > 0 || Boolean(options == null ? void 0 : options.discountId) || Boolean((_a = options == null ? void 0 : options.selectedList) == null ? void 0 : _a.length) || Boolean(options == null ? void 0 : options.scan);
238
+ if (!hasDiscountInput) {
239
+ return {
240
+ discountList,
241
+ productList
242
+ };
243
+ }
228
244
  const flattenProductsWithBundle = (productList2) => {
229
245
  const flattened = [];
230
246
  productList2.forEach((originProduct) => {
@@ -270,17 +286,17 @@ var RulesModule = class extends import_BaseModule.BaseModule {
270
286
  };
271
287
  const sortedDiscountList = [...filteredDiscountList].sort((a, b) => {
272
288
  const isHolderDiscount = (discount) => {
273
- var _a, _b;
274
- return ((_b = (_a = discount.metadata) == null ? void 0 : _a.holder) == null ? void 0 : _b.type) === "custom";
289
+ var _a2, _b;
290
+ return ((_b = (_a2 = discount.metadata) == null ? void 0 : _a2.holder) == null ? void 0 : _b.type) === "custom";
275
291
  };
276
292
  const isGoodPass = (discount) => discount.tag === "good_pass";
277
293
  const isOrderLevelDiscount = (discount) => {
278
- var _a;
279
- return discount.tag === "product_discount_card" && ((_a = discount.metadata) == null ? void 0 : _a.discount_calculation_mode) === "order_level";
294
+ var _a2;
295
+ return discount.tag === "product_discount_card" && ((_a2 = discount.metadata) == null ? void 0 : _a2.discount_calculation_mode) === "order_level";
280
296
  };
281
297
  const isItemLevelDiscount = (discount) => {
282
- var _a;
283
- return discount.tag === "product_discount_card" && ((_a = discount.metadata) == null ? void 0 : _a.discount_calculation_mode) !== "order_level";
298
+ var _a2;
299
+ return discount.tag === "product_discount_card" && ((_a2 = discount.metadata) == null ? void 0 : _a2.discount_calculation_mode) !== "order_level";
284
300
  };
285
301
  const getPriority = (discount) => {
286
302
  const isHolder = isHolderDiscount(discount);
@@ -310,8 +326,8 @@ var RulesModule = class extends import_BaseModule.BaseModule {
310
326
  return itemA.expire_time ? -1 : itemB.expire_time ? 1 : 0;
311
327
  }
312
328
  function compareDiscountCardValue(itemA, itemB) {
313
- var _a, _b;
314
- const typeA = ((_a = itemA.metadata) == null ? void 0 : _a.discount_card_type) || "percent";
329
+ var _a2, _b;
330
+ const typeA = ((_a2 = itemA.metadata) == null ? void 0 : _a2.discount_card_type) || "percent";
315
331
  const typeB = ((_b = itemB.metadata) == null ? void 0 : _b.discount_card_type) || "percent";
316
332
  if (typeA === "fixed_amount" && typeB === "percent")
317
333
  return -1;
@@ -351,7 +367,7 @@ var RulesModule = class extends import_BaseModule.BaseModule {
351
367
  });
352
368
  const flattenedList = flattenProductsWithBundle(productList);
353
369
  const sortedFlattenedList = flattenedList.sort((a, b) => {
354
- var _a, _b;
370
+ var _a2, _b;
355
371
  const priceA = new import_decimal.default(
356
372
  a.type === "bundle" ? a.original_price ?? a.price ?? "0" : a.price || "0"
357
373
  );
@@ -364,7 +380,7 @@ var RulesModule = class extends import_BaseModule.BaseModule {
364
380
  }
365
381
  if (a.type === "main" && b.type === "main") {
366
382
  if (a.product.quantity === b.product.quantity) {
367
- return (((_a = b.product.discount_list) == null ? void 0 : _a.length) || 0) - (((_b = a.product.discount_list) == null ? void 0 : _b.length) || 0);
383
+ return (((_a2 = b.product.discount_list) == null ? void 0 : _a2.length) || 0) - (((_b = a.product.discount_list) == null ? void 0 : _b.length) || 0);
368
384
  }
369
385
  return a.product.quantity - b.product.quantity;
370
386
  }
@@ -377,7 +393,7 @@ var RulesModule = class extends import_BaseModule.BaseModule {
377
393
  const evaluator = this.getWalletPassEvaluator();
378
394
  if (evaluator) {
379
395
  addModeDiscount.forEach((discount) => {
380
- var _a, _b;
396
+ var _a2, _b;
381
397
  const discountType = discount.tag || discount.type;
382
398
  if (["good_pass", "discount_card", "product_discount_card"].includes(
383
399
  discountType
@@ -389,17 +405,17 @@ var RulesModule = class extends import_BaseModule.BaseModule {
389
405
  type: discountType,
390
406
  product_id: discount.product_id,
391
407
  unified_available_status: 1,
392
- available_product_type: (_a = discount.limited_relation_product_data) == null ? void 0 : _a.type,
408
+ available_product_type: (_a2 = discount.limited_relation_product_data) == null ? void 0 : _a2.type,
393
409
  available_product_ids: (_b = discount.limited_relation_product_data) == null ? void 0 : _b.product_ids
394
410
  };
395
411
  const productsForEvaluate = sortedFlattenedList.map((item) => {
396
- var _a2;
412
+ var _a3;
397
413
  return {
398
414
  product_id: item.id,
399
415
  price: item.price || 0,
400
416
  quantity: item.quantity || item.num || 1,
401
417
  selling_price: item.price || 0,
402
- product_options: item.type === "main" ? (_a2 = item.product) == null ? void 0 : _a2.options : void 0
418
+ product_options: item.type === "main" ? (_a3 = item.product) == null ? void 0 : _a3.options : void 0
403
419
  };
404
420
  });
405
421
  const result = evaluator.checkVoucherAvailability({
@@ -432,7 +448,7 @@ var RulesModule = class extends import_BaseModule.BaseModule {
432
448
  const orderLevelDiscountApplicableItems = /* @__PURE__ */ new Map();
433
449
  const itemApplicableDiscounts = /* @__PURE__ */ new Map();
434
450
  const checkItemApplicableForDiscount = (flatItem, discount) => {
435
- var _a, _b, _c, _d, _e, _f, _g, _h;
451
+ var _a2, _b, _c, _d, _e, _f, _g, _h;
436
452
  let product;
437
453
  if (flatItem.type === "main") {
438
454
  product = flatItem.product;
@@ -445,7 +461,7 @@ var RulesModule = class extends import_BaseModule.BaseModule {
445
461
  num: flatItem.num,
446
462
  booking_id: flatItem.booking_id,
447
463
  discount_list: flatItem.discount_list || [],
448
- startDate: (_a = flatItem.parentProduct) == null ? void 0 : _a.startDate
464
+ startDate: (_a2 = flatItem.parentProduct) == null ? void 0 : _a2.startDate
449
465
  };
450
466
  }
451
467
  const isAvailableProduct = flatItem.type === "main" ? !((product == null ? void 0 : product.booking_id) && ((_b = product == null ? void 0 : product.discount_list) == null ? void 0 : _b.length) && ((_c = product == null ? void 0 : product.discount_list) == null ? void 0 : _c.every((d) => d.id && ["good_pass", "discount_card", "product_discount_card"].includes(d.tag || d.type)))) : !((flatItem == null ? void 0 : flatItem.booking_id) && !!((_e = (_d = flatItem == null ? void 0 : flatItem.bundleItem) == null ? void 0 : _d.discount_list) == null ? void 0 : _e.length) && ((_g = (_f = flatItem == null ? void 0 : flatItem.bundleItem) == null ? void 0 : _f.discount_list) == null ? void 0 : _g.every((d) => d.id)));
@@ -507,14 +523,13 @@ var RulesModule = class extends import_BaseModule.BaseModule {
507
523
  }
508
524
  }
509
525
  });
510
- console.log("occupiedItems", occupiedItems, "orderLevelDiscountApplicableItems", orderLevelDiscountApplicableItems);
511
526
  sortedDiscountList.forEach((discount) => {
512
527
  if (!(0, import_utils3.isOrderLevelFixedAmountDiscount)(discount)) {
513
528
  return;
514
529
  }
515
530
  const applicableProducts = [];
516
531
  sortedFlattenedList.forEach((flatItem) => {
517
- var _a, _b, _c;
532
+ var _a2, _b, _c;
518
533
  const occupyingDiscountId = occupiedItems.get(flatItem._id);
519
534
  if (occupyingDiscountId !== void 0 && occupyingDiscountId !== discount.id) {
520
535
  return;
@@ -534,7 +549,7 @@ var RulesModule = class extends import_BaseModule.BaseModule {
534
549
  num: flatItem.num
535
550
  };
536
551
  }
537
- const quantity = flatItem.type === "main" ? product.num || product.quantity || 1 : (product.num || product.quantity || 1) * (((_a = flatItem.parentProduct) == null ? void 0 : _a.num) || ((_b = flatItem.parentProduct) == null ? void 0 : _b.quantity) || 1);
552
+ const quantity = flatItem.type === "main" ? product.num || product.quantity || 1 : (product.num || product.quantity || 1) * (((_a2 = flatItem.parentProduct) == null ? void 0 : _a2.num) || ((_b = flatItem.parentProduct) == null ? void 0 : _b.quantity) || 1);
538
553
  const originalAmount = flatItem.type === "main" ? Number(product.price ?? 0) : Number(flatItem.original_price ?? flatItem.price ?? 0);
539
554
  const productData = {
540
555
  productId: flatItem._id,
@@ -554,7 +569,7 @@ var RulesModule = class extends import_BaseModule.BaseModule {
554
569
  const processedProductsMap = /* @__PURE__ */ new Map();
555
570
  const appliedDiscountProducts = /* @__PURE__ */ new Map();
556
571
  sortedFlattenedList.forEach((flatItem) => {
557
- var _a;
572
+ var _a2;
558
573
  let product, originProduct;
559
574
  if (flatItem.type === "main") {
560
575
  product = flatItem.product;
@@ -570,12 +585,12 @@ var RulesModule = class extends import_BaseModule.BaseModule {
570
585
  origin_total: flatItem.origin_total,
571
586
  booking_id: flatItem.booking_id,
572
587
  discount_list: flatItem.discount_list || [],
573
- startDate: (_a = flatItem.parentProduct) == null ? void 0 : _a.startDate
588
+ startDate: (_a2 = flatItem.parentProduct) == null ? void 0 : _a2.startDate
574
589
  };
575
590
  originProduct = flatItem.originProduct;
576
591
  }
577
592
  addModeDiscount.forEach((discount) => {
578
- var _a2, _b, _c, _d, _e, _f, _g, _h, _i, _j;
593
+ var _a3, _b, _c, _d, _e, _f, _g, _h, _i, _j;
579
594
  const limitedData = discount == null ? void 0 : discount.limited_relation_product_data;
580
595
  const _tempVar = (flatItem == null ? void 0 : flatItem.type) === "bundle" ? flatItem == null ? void 0 : flatItem.parentProduct : flatItem == null ? void 0 : flatItem.product;
581
596
  const isHolderMatch = this.checkHolderMatch(
@@ -589,7 +604,7 @@ var RulesModule = class extends import_BaseModule.BaseModule {
589
604
  let timeLimit = true;
590
605
  timeLimit = !!(0, import_utils.filterDiscountListByBookingTime)([discount], ((product == null ? void 0 : product.startDate) || (0, import_dayjs.default)()).format("YYYY-MM-DD HH:mm:ss")).length;
591
606
  const isLimitedProduct = (limitedData.type === "product_all" && limitedData.filter !== 1 || limitedData.type === "product_all" && limitedData.filter === 1 && !limitedData.exclude_product_ids.includes(product.id) || limitedData.product_ids && limitedData.product_ids.includes(product.id)) && isHolderMatch;
592
- const isAvailableProduct = flatItem.type === "main" ? !((product == null ? void 0 : product.booking_id) && ((_a2 = product == null ? void 0 : product.discount_list) == null ? void 0 : _a2.length) && ((_b = product == null ? void 0 : product.discount_list) == null ? void 0 : _b.every(
607
+ const isAvailableProduct = flatItem.type === "main" ? !((product == null ? void 0 : product.booking_id) && ((_a3 = product == null ? void 0 : product.discount_list) == null ? void 0 : _a3.length) && ((_b = product == null ? void 0 : product.discount_list) == null ? void 0 : _b.every(
593
608
  (discount2) => discount2.id && [
594
609
  "good_pass",
595
610
  "discount_card",
@@ -673,7 +688,7 @@ var RulesModule = class extends import_BaseModule.BaseModule {
673
688
  }, 0);
674
689
  };
675
690
  sortedFlattenedList.forEach((flatItem, index) => {
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;
691
+ var _a2, _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, _H, _I;
677
692
  let product, originProduct;
678
693
  if (flatItem.type === "main") {
679
694
  product = flatItem.product;
@@ -686,7 +701,7 @@ var RulesModule = class extends import_BaseModule.BaseModule {
686
701
  quantity: flatItem.quantity,
687
702
  num: flatItem.num,
688
703
  total: flatItem.total,
689
- original_price: (_a = flatItem == null ? void 0 : flatItem.bundleItem) == null ? void 0 : _a.original_price,
704
+ original_price: (_a2 = flatItem == null ? void 0 : flatItem.bundleItem) == null ? void 0 : _a2.original_price,
690
705
  origin_total: (_b = flatItem == null ? void 0 : flatItem.bundleItem) == null ? void 0 : _b.original_price,
691
706
  booking_id: flatItem.booking_id,
692
707
  discount_list: ((_c = flatItem == null ? void 0 : flatItem.bundleItem) == null ? void 0 : _c.discount_list) || [],
@@ -694,11 +709,18 @@ var RulesModule = class extends import_BaseModule.BaseModule {
694
709
  };
695
710
  originProduct = flatItem.originProduct;
696
711
  }
697
- if ((product == null ? void 0 : product.booking_id) && ((_e = product.discount_list) == null ? void 0 : _e.length) && ((_f = product == null ? void 0 : product.discount_list) == null ? void 0 : _f.every(
698
- (discount) => discount.id && ["good_pass", "discount_card", "product_discount_card"].includes(
699
- discount.tag || discount.type
700
- )
701
- ))) {
712
+ const isPersistedProduct = (product == null ? void 0 : product.booking_id) || (originProduct == null ? void 0 : originProduct.order_detail_id) || (originProduct == null ? void 0 : originProduct.orderDetailId) || (originProduct == null ? void 0 : originProduct.booking_id);
713
+ const hasExistingWalletDiscount = ((_e = product.discount_list) == null ? void 0 : _e.length) && ((_f = product == null ? void 0 : product.discount_list) == null ? void 0 : _f.every((discount) => {
714
+ var _a3;
715
+ const discountIdentity = discount.id ?? ((_a3 = discount.discount) == null ? void 0 : _a3.resource_id);
716
+ const discountType = discount.tag || discount.type;
717
+ return Boolean(
718
+ discountIdentity && ["good_pass", "discount_card", "product_discount_card"].includes(
719
+ discountType
720
+ )
721
+ );
722
+ }));
723
+ if (isPersistedProduct && hasExistingWalletDiscount) {
702
724
  if (flatItem.type === "main") {
703
725
  processedProductsMap.set(product._id, [originProduct]);
704
726
  } else {
@@ -712,20 +734,20 @@ var RulesModule = class extends import_BaseModule.BaseModule {
712
734
  return;
713
735
  }
714
736
  const applicableDiscounts = sortedDiscountList.filter((discount) => {
715
- var _a2, _b2, _c2, _d2;
737
+ var _a3, _b2, _c2, _d2;
716
738
  const discountType = discount.tag || discount.type;
717
739
  if (["good_pass", "discount_card", "product_discount_card"].includes(
718
740
  discountType
719
741
  )) {
720
- if (discount.config === void 0 || !((_a2 = discount == null ? void 0 : discount.config) == null ? void 0 : _a2.isAvailable)) {
742
+ if (discount.config === void 0 || !((_a3 = discount == null ? void 0 : discount.config) == null ? void 0 : _a3.isAvailable)) {
721
743
  return false;
722
744
  }
723
745
  }
724
746
  if ((Number(product.price) <= 0 || !product.price) && !((_b2 = product.discount_list) == null ? void 0 : _b2.length) && (discount.tag || discount.type) === "good_pass")
725
747
  return false;
726
748
  if ((Number(product.price) <= 0 || !product.price) && !((_c2 = product.discount_list) == null ? void 0 : _c2.find((n) => {
727
- var _a3;
728
- return ((_a3 = n.discount) == null ? void 0 : _a3.resource_id) === discount.id;
749
+ var _a4;
750
+ return ((_a4 = n.discount) == null ? void 0 : _a4.resource_id) === discount.id;
729
751
  })) && (discount.tag || discount.type) !== "good_pass")
730
752
  return false;
731
753
  const targetUsedDiscounts = usedDiscounts.get(discount.id);
@@ -779,13 +801,13 @@ var RulesModule = class extends import_BaseModule.BaseModule {
779
801
  const selectedDiscount = selectedDiscountCard || applicableDiscounts[0];
780
802
  let isManualDiscount = false;
781
803
  if (flatItem.type === "main") {
782
- isManualDiscount = typeof product.isManualDiscount === "boolean" ? product.isManualDiscount : product.total != product.origin_total && (product.bundle || []).every(
804
+ isManualDiscount = typeof product.isManualDiscount === "boolean" ? product.isManualDiscount : ((_g = product.discount_list) == null ? void 0 : _g.some((item) => item.type === "product")) || product.total != product.origin_total && (product.bundle || []).every(
783
805
  (item) => {
784
- var _a2;
785
- return !((_a2 = item.discount_list || []) == null ? void 0 : _a2.length);
806
+ var _a3;
807
+ return !((_a3 = item.discount_list || []) == null ? void 0 : _a3.length);
786
808
  }
787
- ) && (!((_g = product.discount_list) == null ? void 0 : _g.length) || ((_i = (_h = product == null ? void 0 : product.discount_list) == null ? void 0 : _h.every) == null ? void 0 : _i.call(
788
- _h,
809
+ ) && (!((_h = product.discount_list) == null ? void 0 : _h.length) || ((_j = (_i = product == null ? void 0 : product.discount_list) == null ? void 0 : _i.every) == null ? void 0 : _j.call(
810
+ _i,
789
811
  (item) => item.type === "product"
790
812
  )));
791
813
  if (product.inPromotion) {
@@ -794,36 +816,36 @@ var RulesModule = class extends import_BaseModule.BaseModule {
794
816
  } else {
795
817
  const parentProduct = flatItem.parentProduct;
796
818
  if (parentProduct) {
797
- isManualDiscount = typeof parentProduct.isManualDiscount === "boolean" ? parentProduct.isManualDiscount : parentProduct.total != parentProduct.origin_total && (parentProduct.bundle || []).every(
819
+ isManualDiscount = typeof parentProduct.isManualDiscount === "boolean" ? parentProduct.isManualDiscount : ((_k = parentProduct.discount_list) == null ? void 0 : _k.some((item) => item.type === "product")) || parentProduct.total != parentProduct.origin_total && (parentProduct.bundle || []).every(
798
820
  (item) => {
799
- var _a2;
800
- return !((_a2 = item.discount_list || []) == null ? void 0 : _a2.length);
821
+ var _a3;
822
+ return !((_a3 = item.discount_list || []) == null ? void 0 : _a3.length);
801
823
  }
802
- ) && (!((_j = parentProduct.discount_list) == null ? void 0 : _j.length) || ((_l = (_k = parentProduct == null ? void 0 : parentProduct.discount_list) == null ? void 0 : _k.every) == null ? void 0 : _l.call(
803
- _k,
824
+ ) && (!((_l = parentProduct.discount_list) == null ? void 0 : _l.length) || ((_n = (_m = parentProduct == null ? void 0 : parentProduct.discount_list) == null ? void 0 : _m.every) == null ? void 0 : _n.call(
825
+ _m,
804
826
  (item) => item.type === "product"
805
827
  )));
806
828
  }
807
829
  }
808
830
  if (options == null ? void 0 : options.discountId) {
809
- if (flatItem.type === "main" && ((_m = product.discount_list) == null ? void 0 : _m.some(
831
+ if (flatItem.type === "main" && ((_o = product.discount_list) == null ? void 0 : _o.some(
810
832
  (item) => {
811
- var _a2;
812
- return ((_a2 = item.discount) == null ? void 0 : _a2.resource_id) === options.discountId;
833
+ var _a3;
834
+ return ((_a3 = item.discount) == null ? void 0 : _a3.resource_id) === options.discountId;
813
835
  }
814
836
  ))) {
815
837
  isManualDiscount = false;
816
838
  }
817
839
  if (flatItem.type === "bundle") {
818
- if (((_n = product.discount_list) == null ? void 0 : _n.some(
840
+ if (((_p = product.discount_list) == null ? void 0 : _p.some(
819
841
  (item) => {
820
- var _a2;
821
- return ((_a2 = item.discount) == null ? void 0 : _a2.resource_id) === options.discountId;
842
+ var _a3;
843
+ return ((_a3 = item.discount) == null ? void 0 : _a3.resource_id) === options.discountId;
822
844
  }
823
- )) || ((_p = (_o = flatItem.parentProduct) == null ? void 0 : _o.discount_list) == null ? void 0 : _p.some(
845
+ )) || ((_r = (_q = flatItem.parentProduct) == null ? void 0 : _q.discount_list) == null ? void 0 : _r.some(
824
846
  (item) => {
825
- var _a2;
826
- return ((_a2 = item.discount) == null ? void 0 : _a2.resource_id) === options.discountId;
847
+ var _a3;
848
+ return ((_a3 = item.discount) == null ? void 0 : _a3.resource_id) === options.discountId;
827
849
  }
828
850
  ))) {
829
851
  isManualDiscount = false;
@@ -831,13 +853,13 @@ var RulesModule = class extends import_BaseModule.BaseModule {
831
853
  }
832
854
  }
833
855
  if (options == null ? void 0 : options.selectedList) {
834
- if (flatItem.type === "main" && ((_q = product.discount_list) == null ? void 0 : _q.some(
856
+ if (flatItem.type === "main" && ((_s = product.discount_list) == null ? void 0 : _s.some(
835
857
  (item) => {
836
- var _a2;
837
- return (_a2 = options == null ? void 0 : options.selectedList) == null ? void 0 : _a2.some(
858
+ var _a3;
859
+ return (_a3 = options == null ? void 0 : options.selectedList) == null ? void 0 : _a3.some(
838
860
  (n) => {
839
- var _a3;
840
- return n.discountId === ((_a3 = item.discount) == null ? void 0 : _a3.resource_id);
861
+ var _a4;
862
+ return n.discountId === ((_a4 = item.discount) == null ? void 0 : _a4.resource_id);
841
863
  }
842
864
  );
843
865
  }
@@ -845,23 +867,23 @@ var RulesModule = class extends import_BaseModule.BaseModule {
845
867
  isManualDiscount = false;
846
868
  }
847
869
  if (flatItem.type === "bundle") {
848
- if (((_r = product.discount_list) == null ? void 0 : _r.some(
870
+ if (((_t = product.discount_list) == null ? void 0 : _t.some(
849
871
  (item) => {
850
- var _a2;
851
- return (_a2 = options == null ? void 0 : options.selectedList) == null ? void 0 : _a2.some(
872
+ var _a3;
873
+ return (_a3 = options == null ? void 0 : options.selectedList) == null ? void 0 : _a3.some(
852
874
  (n) => {
853
- var _a3;
854
- return n.discountId === ((_a3 = item.discount) == null ? void 0 : _a3.resource_id);
875
+ var _a4;
876
+ return n.discountId === ((_a4 = item.discount) == null ? void 0 : _a4.resource_id);
855
877
  }
856
878
  );
857
879
  }
858
- )) || ((_t = (_s = flatItem.parentProduct) == null ? void 0 : _s.discount_list) == null ? void 0 : _t.some(
880
+ )) || ((_v = (_u = flatItem.parentProduct) == null ? void 0 : _u.discount_list) == null ? void 0 : _v.some(
859
881
  (item) => {
860
- var _a2;
861
- return (_a2 = options == null ? void 0 : options.selectedList) == null ? void 0 : _a2.some(
882
+ var _a3;
883
+ return (_a3 = options == null ? void 0 : options.selectedList) == null ? void 0 : _a3.some(
862
884
  (n) => {
863
- var _a3;
864
- return n.discountId === ((_a3 = item.discount) == null ? void 0 : _a3.resource_id);
885
+ var _a4;
886
+ return n.discountId === ((_a4 = item.discount) == null ? void 0 : _a4.resource_id);
865
887
  }
866
888
  );
867
889
  }
@@ -896,11 +918,11 @@ var RulesModule = class extends import_BaseModule.BaseModule {
896
918
  price: product.price,
897
919
  options: restoredOptions
898
920
  },
899
- discount_list: this.filterDiscountListByType(product.discount_list, "promotion")
921
+ discount_list: isManualDiscount ? this.resolveDiscountListForManualOverride(product.discount_list) : this.filterDiscountListByType(product.discount_list, "promotion")
900
922
  })
901
923
  ]);
902
924
  } else {
903
- let total = product.inPromotion ? ((_u = product == null ? void 0 : product._promotion) == null ? void 0 : _u.finalPrice) ?? product.origin_total ?? product.total : product.origin_total ?? product.total;
925
+ let total = product.inPromotion ? ((_w = product == null ? void 0 : product._promotion) == null ? void 0 : _w.finalPrice) ?? product.origin_total ?? product.total : product.origin_total ?? product.total;
904
926
  let main_product_selling_price = product.price;
905
927
  if ((product.discount_list || []).some((item) => item.type === "promotion") || (0, import_lodash_es.isBoolean)(product.vouchersApplicable) && !product.vouchersApplicable) {
906
928
  total = product.total ?? product.origin_total;
@@ -918,14 +940,14 @@ var RulesModule = class extends import_BaseModule.BaseModule {
918
940
  main_product_selling_price,
919
941
  options: restoredOptions
920
942
  },
921
- discount_list: this.filterDiscountListByType(product.discount_list, "promotion")
943
+ discount_list: isManualDiscount ? this.resolveDiscountListForManualOverride(product.discount_list) : this.filterDiscountListByType(product.discount_list, "promotion")
922
944
  })
923
945
  ]);
924
946
  }
925
947
  } else {
926
948
  processedFlatItemsMap.set(flatItem._id, [{
927
949
  ...flatItem,
928
- discount_list: this.filterDiscountListByType(((_v = flatItem.bundleItem) == null ? void 0 : _v.discount_list) || [], "promotion"),
950
+ discount_list: isManualDiscount ? this.resolveDiscountListForManualOverride(((_x = flatItem.bundleItem) == null ? void 0 : _x.discount_list) || []) : this.filterDiscountListByType(((_y = flatItem.bundleItem) == null ? void 0 : _y.discount_list) || [], "promotion"),
929
951
  price: isManualDiscount ? flatItem.bundleItem.price : flatItem.bundleItem.original_price,
930
952
  processed: true
931
953
  }]);
@@ -976,13 +998,13 @@ var RulesModule = class extends import_BaseModule.BaseModule {
976
998
  if (this.filterDiscountListByType(product.discount_list, "promotion").length && product.origin_total) {
977
999
  productOriginTotal = product.origin_total;
978
1000
  }
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) {
1001
+ if (Number(((_z = originProduct == null ? void 0 : originProduct._productInit) == null ? void 0 : _z.original_price) || 0) > 0 && product.origin_total && product.total && product.origin_total !== product.total) {
980
1002
  productOriginTotal = product.total;
981
1003
  }
982
1004
  const isOrderLevel = (0, import_utils3.isOrderLevelFixedAmountDiscount)(selectedDiscount2);
983
1005
  const orderLevelAllocation = isOrderLevel ? orderLevelDiscountAllocations.get(selectedDiscount2.id) : null;
984
1006
  const productAllocation = orderLevelAllocation == null ? void 0 : orderLevelAllocation.get(flatItem._id);
985
- const isDeductOptionPrice = !!((_x = selectedDiscount2.config) == null ? void 0 : _x.deductOptionPrice);
1007
+ const isDeductOptionPrice = !!((_A = selectedDiscount2.config) == null ? void 0 : _A.deductOptionPrice);
986
1008
  let mainProductSellingPrice;
987
1009
  let amount;
988
1010
  let productDiscountDifference;
@@ -1000,7 +1022,7 @@ var RulesModule = class extends import_BaseModule.BaseModule {
1000
1022
  );
1001
1023
  amount = new import_decimal.default(product.price).minus(new import_decimal.default(mainProductSellingPrice)).toNumber();
1002
1024
  }
1003
- if (isDeductOptionPrice && ((_y = product.options) == null ? void 0 : _y.length)) {
1025
+ if (isDeductOptionPrice && ((_B = product.options) == null ? void 0 : _B.length)) {
1004
1026
  const optionResult = applyDiscountToOptions(
1005
1027
  product.options,
1006
1028
  selectedDiscount2
@@ -1008,7 +1030,7 @@ var RulesModule = class extends import_BaseModule.BaseModule {
1008
1030
  discountedOptions = optionResult.discountedOptions;
1009
1031
  optionDiscountAmount = optionResult.optionDiscountAmount;
1010
1032
  }
1011
- const optionsForLineTotal = isDeductOptionPrice && ((_z = product.options) == null ? void 0 : _z.length) ? discountedOptions : product.options;
1033
+ const optionsForLineTotal = isDeductOptionPrice && ((_C = product.options) == null ? void 0 : _C.length) ? discountedOptions : product.options;
1012
1034
  const optionsLineTotal = getOptionTotal(optionsForLineTotal || []);
1013
1035
  const total = new import_decimal.default(mainProductSellingPrice).plus(optionsLineTotal).toNumber();
1014
1036
  const mainProductDiscountAmount = amount;
@@ -1019,9 +1041,9 @@ var RulesModule = class extends import_BaseModule.BaseModule {
1019
1041
  amount: lineDiscountAmount,
1020
1042
  type: selectedDiscount2.tag === "product_discount_card" ? "discount_card" : discountType,
1021
1043
  discount: {
1022
- discount_card_type: (_A = selectedDiscount2 == null ? void 0 : selectedDiscount2.metadata) == null ? void 0 : _A.discount_card_type,
1044
+ discount_card_type: (_D = selectedDiscount2 == null ? void 0 : selectedDiscount2.metadata) == null ? void 0 : _D.discount_card_type,
1023
1045
  fixed_amount: lineDiscountAmount,
1024
- discount_calculation_mode: (_B = selectedDiscount2 == null ? void 0 : selectedDiscount2.metadata) == null ? void 0 : _B.discount_calculation_mode,
1046
+ discount_calculation_mode: (_E = selectedDiscount2 == null ? void 0 : selectedDiscount2.metadata) == null ? void 0 : _E.discount_calculation_mode,
1025
1047
  resource_id: selectedDiscount2.id,
1026
1048
  title: selectedDiscount2.format_title,
1027
1049
  original_amount: product.price,
@@ -1103,7 +1125,7 @@ var RulesModule = class extends import_BaseModule.BaseModule {
1103
1125
  type: "good_pass",
1104
1126
  discount: {
1105
1127
  fixed_amount: product.origin_total,
1106
- discount_calculation_mode: (_C = selectedDiscount2 == null ? void 0 : selectedDiscount2.metadata) == null ? void 0 : _C.discount_calculation_mode,
1128
+ discount_calculation_mode: (_F = selectedDiscount2 == null ? void 0 : selectedDiscount2.metadata) == null ? void 0 : _F.discount_calculation_mode,
1107
1129
  resource_id: selectedDiscount2.id,
1108
1130
  title: selectedDiscount2.format_title,
1109
1131
  original_amount: product.origin_total,
@@ -1177,9 +1199,9 @@ var RulesModule = class extends import_BaseModule.BaseModule {
1177
1199
  amount: fixedAmountPerItem * (product.num || 1),
1178
1200
  type: selectedDiscount2.tag === "product_discount_card" ? "discount_card" : selectedDiscount2.tag,
1179
1201
  discount: {
1180
- discount_card_type: (_D = selectedDiscount2 == null ? void 0 : selectedDiscount2.metadata) == null ? void 0 : _D.discount_card_type,
1202
+ discount_card_type: (_G = selectedDiscount2 == null ? void 0 : selectedDiscount2.metadata) == null ? void 0 : _G.discount_card_type,
1181
1203
  fixed_amount: fixedAmountPerItem,
1182
- discount_calculation_mode: (_E = selectedDiscount2 == null ? void 0 : selectedDiscount2.metadata) == null ? void 0 : _E.discount_calculation_mode,
1204
+ discount_calculation_mode: (_H = selectedDiscount2 == null ? void 0 : selectedDiscount2.metadata) == null ? void 0 : _H.discount_calculation_mode,
1183
1205
  resource_id: selectedDiscount2.id,
1184
1206
  title: selectedDiscount2.format_title,
1185
1207
  original_amount: product.original_price,
@@ -1195,7 +1217,7 @@ var RulesModule = class extends import_BaseModule.BaseModule {
1195
1217
  ...productDiscountDifference !== void 0 && { product_discount_difference: productDiscountDifference }
1196
1218
  },
1197
1219
  config: selectedDiscount2 == null ? void 0 : selectedDiscount2.config,
1198
- _num: (product.num || 1) * (((_F = flatItem == null ? void 0 : flatItem.parentProduct) == null ? void 0 : _F.num) || 1)
1220
+ _num: (product.num || 1) * (((_I = flatItem == null ? void 0 : flatItem.parentProduct) == null ? void 0 : _I.num) || 1)
1199
1221
  };
1200
1222
  const appliedProducts = appliedDiscountProducts.get(selectedDiscount2.id) || [];
1201
1223
  appliedProducts.push(discountDetail);
@@ -1270,8 +1292,8 @@ var RulesModule = class extends import_BaseModule.BaseModule {
1270
1292
  bundleProcessingInfo.set(bundleIndex, processedBundleItems);
1271
1293
  const hasGoodPass = processedBundleItems.some(
1272
1294
  (item) => {
1273
- var _a;
1274
- return (_a = item.discount_list) == null ? void 0 : _a.some(
1295
+ var _a2;
1296
+ return (_a2 = item.discount_list) == null ? void 0 : _a2.some(
1275
1297
  (discount) => discount.type === "good_pass" || discount.tag === "good_pass"
1276
1298
  );
1277
1299
  }
@@ -1295,13 +1317,13 @@ var RulesModule = class extends import_BaseModule.BaseModule {
1295
1317
  if (processedItems.length > 1) {
1296
1318
  processedItems.forEach((item) => {
1297
1319
  const updatedDiscountList2 = (item.discount_list || []).map((discount) => {
1298
- var _a;
1320
+ var _a2;
1299
1321
  return {
1300
1322
  ...discount,
1301
1323
  metadata: {
1302
1324
  ...discount.metadata,
1303
1325
  num: item.num,
1304
- custom_product_bundle_map_id: (_a = item.metadata) == null ? void 0 : _a.custom_product_bundle_map_id
1326
+ custom_product_bundle_map_id: (_a2 = item.metadata) == null ? void 0 : _a2.custom_product_bundle_map_id
1305
1327
  }
1306
1328
  // num: item.num, // 使用拆分后的 num
1307
1329
  };
@@ -1319,13 +1341,13 @@ var RulesModule = class extends import_BaseModule.BaseModule {
1319
1341
  const item = processedItems[0];
1320
1342
  if (item.processed) {
1321
1343
  const updatedDiscountList2 = (item.discount_list || []).map((discount) => {
1322
- var _a;
1344
+ var _a2;
1323
1345
  return {
1324
1346
  ...discount,
1325
1347
  metadata: {
1326
1348
  ...discount.metadata,
1327
1349
  num: item.num,
1328
- custom_product_bundle_map_id: (_a = item.metadata) == null ? void 0 : _a.custom_product_bundle_map_id
1350
+ custom_product_bundle_map_id: (_a2 = item.metadata) == null ? void 0 : _a2.custom_product_bundle_map_id
1329
1351
  }
1330
1352
  // num: item.num, // 使用当前的 num
1331
1353
  };
@@ -1349,8 +1371,8 @@ var RulesModule = class extends import_BaseModule.BaseModule {
1349
1371
  mainProductData.original_price || mainProductData.price || 0
1350
1372
  );
1351
1373
  const updatedMainDiscountList = mainProductData.discount_list.map((discount) => {
1352
- var _a, _b;
1353
- if ((_a = discount == null ? void 0 : discount.metadata) == null ? void 0 : _a.custom_product_bundle_map_id) {
1374
+ var _a2, _b;
1375
+ if ((_a2 = discount == null ? void 0 : discount.metadata) == null ? void 0 : _a2.custom_product_bundle_map_id) {
1354
1376
  return discount;
1355
1377
  }
1356
1378
  return {
@@ -1365,8 +1387,8 @@ var RulesModule = class extends import_BaseModule.BaseModule {
1365
1387
  });
1366
1388
  const mainDiscountList = updatedMainDiscountList.filter(
1367
1389
  (item) => {
1368
- var _a;
1369
- return !((_a = item == null ? void 0 : item.metadata) == null ? void 0 : _a.custom_product_bundle_map_id);
1390
+ var _a2;
1391
+ return !((_a2 = item == null ? void 0 : item.metadata) == null ? void 0 : _a2.custom_product_bundle_map_id);
1370
1392
  }
1371
1393
  );
1372
1394
  if (mainDiscountList && mainDiscountList.length > 0) {
@@ -1379,8 +1401,8 @@ var RulesModule = class extends import_BaseModule.BaseModule {
1379
1401
  newTotalWithDiscount += Number(item.price) * Number(item.num);
1380
1402
  });
1381
1403
  newBundleWithDiscount.forEach((item) => {
1382
- var _a, _b, _c;
1383
- const originalPrice = ((_c = (_b = (_a = item.discount_list) == null ? void 0 : _a[0]) == null ? void 0 : _b.discount) == null ? void 0 : _c.original_amount) || item.price;
1404
+ var _a2, _b, _c;
1405
+ const originalPrice = ((_c = (_b = (_a2 = item.discount_list) == null ? void 0 : _a2[0]) == null ? void 0 : _b.discount) == null ? void 0 : _c.original_amount) || item.price;
1384
1406
  newOriginTotalWithDiscount += Number(originalPrice) * Number(item.num);
1385
1407
  });
1386
1408
  }
@@ -1417,8 +1439,8 @@ var RulesModule = class extends import_BaseModule.BaseModule {
1417
1439
  mainProductData.original_price || mainProductData.price || 0
1418
1440
  );
1419
1441
  const updatedMainDiscountListOriginal = mainProductData.discount_list.map((discount) => {
1420
- var _a, _b;
1421
- if ((_a = discount == null ? void 0 : discount.metadata) == null ? void 0 : _a.custom_product_bundle_map_id) {
1442
+ var _a2, _b;
1443
+ if ((_a2 = discount == null ? void 0 : discount.metadata) == null ? void 0 : _a2.custom_product_bundle_map_id) {
1422
1444
  return discount;
1423
1445
  }
1424
1446
  return {
@@ -1433,8 +1455,8 @@ var RulesModule = class extends import_BaseModule.BaseModule {
1433
1455
  });
1434
1456
  const mainDiscountListOriginal = updatedMainDiscountListOriginal.filter(
1435
1457
  (item) => {
1436
- var _a;
1437
- return !((_a = item == null ? void 0 : item.metadata) == null ? void 0 : _a.custom_product_bundle_map_id);
1458
+ var _a2;
1459
+ return !((_a2 = item == null ? void 0 : item.metadata) == null ? void 0 : _a2.custom_product_bundle_map_id);
1438
1460
  }
1439
1461
  );
1440
1462
  if (mainDiscountListOriginal && mainDiscountListOriginal.length > 0) {
@@ -1473,7 +1495,7 @@ var RulesModule = class extends import_BaseModule.BaseModule {
1473
1495
  }
1474
1496
  } else {
1475
1497
  mainProductArr.forEach((mainProduct) => {
1476
- var _a, _b, _c;
1498
+ var _a2, _b, _c;
1477
1499
  const mainProductData = this.hooks.getProduct(mainProduct);
1478
1500
  const newBundle = [];
1479
1501
  if (product.bundle && Array.isArray(product.bundle)) {
@@ -1484,14 +1506,16 @@ var RulesModule = class extends import_BaseModule.BaseModule {
1484
1506
  newBundle.push(bundleItem);
1485
1507
  } else {
1486
1508
  processedBundleItems.forEach((item) => {
1509
+ const nextBundlePrice = item.price ?? bundleItem.price;
1510
+ const nextBundleSellingPrice = item.bundle_selling_price ?? item.price ?? bundleItem.bundle_selling_price;
1487
1511
  const updatedDiscountList2 = (item.discount_list || []).map((discount) => {
1488
- var _a2;
1512
+ var _a3;
1489
1513
  return {
1490
1514
  ...discount,
1491
1515
  metadata: {
1492
1516
  ...discount.metadata,
1493
1517
  num: item.num,
1494
- custom_product_bundle_map_id: (_a2 = discount == null ? void 0 : discount.metadata) == null ? void 0 : _a2.custom_product_bundle_map_id
1518
+ custom_product_bundle_map_id: (_a3 = discount == null ? void 0 : discount.metadata) == null ? void 0 : _a3.custom_product_bundle_map_id
1495
1519
  }
1496
1520
  // num: item.num, // 使用拆分后的 num
1497
1521
  };
@@ -1500,38 +1524,31 @@ var RulesModule = class extends import_BaseModule.BaseModule {
1500
1524
  ...bundleItem,
1501
1525
  _id: item._id,
1502
1526
  product_id: bundleItem.product_id,
1503
- price: item.price,
1527
+ price: nextBundlePrice,
1504
1528
  num: item.num,
1505
1529
  discount_list: updatedDiscountList2,
1506
- bundle_selling_price: bundleItem.bundle_selling_price !== void 0 ? item.price : void 0
1530
+ bundle_selling_price: bundleItem.bundle_selling_price !== void 0 ? nextBundleSellingPrice : void 0
1507
1531
  });
1508
1532
  });
1509
1533
  }
1510
1534
  });
1511
1535
  }
1512
- let newTotal = Number(mainProductData.price || 0);
1536
+ const mainSellingPrice = mainProductData.main_product_selling_price ?? mainProductData.price ?? 0;
1537
+ let newTotal = Number(mainSellingPrice || 0);
1513
1538
  let newOriginTotal = Number(mainProductData.original_price || mainProductData.price || 0);
1514
- const isManualDiscount = typeof mainProductData.isManualDiscount === "boolean" ? mainProductData.isManualDiscount : mainProductData.total != mainProductData.origin_total && (!((_a = mainProductData.discount_list) == null ? void 0 : _a.length) || ((_c = (_b = mainProductData == null ? void 0 : mainProductData.discount_list) == null ? void 0 : _b.every) == null ? void 0 : _c.call(_b, (item) => item.type === "product")));
1539
+ const isManualDiscount = typeof mainProductData.isManualDiscount === "boolean" ? mainProductData.isManualDiscount : mainProductData.total != mainProductData.origin_total && (!((_a2 = mainProductData.discount_list) == null ? void 0 : _a2.length) || ((_c = (_b = mainProductData == null ? void 0 : mainProductData.discount_list) == null ? void 0 : _b.every) == null ? void 0 : _c.call(_b, (item) => item.type === "product")));
1515
1540
  if (isManualDiscount) {
1516
1541
  newTotal = mainProductData.total ?? newTotal;
1517
1542
  newOriginTotal = mainProductData.origin_total ?? newOriginTotal;
1518
1543
  } else {
1519
- const mainDiscountList = mainProductData.discount_list.filter((item) => {
1520
- var _a2;
1521
- return !((_a2 = item == null ? void 0 : item.metadata) == null ? void 0 : _a2.custom_product_bundle_map_id);
1522
- });
1523
- if (mainDiscountList && mainDiscountList.length > 0) {
1524
- const allDiscountAmount = (0, import_utils.getDiscountListAmount)(mainDiscountList);
1525
- newTotal = new import_decimal.default(mainProductData.price || 0).minus(allDiscountAmount).toNumber() ?? newTotal;
1526
- newOriginTotal = mainProductData.origin_total ?? newOriginTotal;
1527
- }
1528
1544
  if (newBundle.length > 0) {
1529
1545
  newBundle.forEach((item) => {
1530
- newTotal += Number(item.price) * Number(item.num);
1546
+ const bundleSellingPrice = item.bundle_selling_price ?? item.price;
1547
+ newTotal += Number(bundleSellingPrice) * Number(item.num);
1531
1548
  });
1532
1549
  newBundle.forEach((item) => {
1533
- var _a2, _b2, _c2;
1534
- const originalPrice = ((_c2 = (_b2 = (_a2 = item.discount_list) == null ? void 0 : _a2[0]) == null ? void 0 : _b2.discount) == null ? void 0 : _c2.original_amount) || item.price;
1550
+ var _a3, _b2, _c2;
1551
+ const originalPrice = ((_c2 = (_b2 = (_a3 = item.discount_list) == null ? void 0 : _a3[0]) == null ? void 0 : _b2.discount) == null ? void 0 : _c2.original_amount) || item.price;
1535
1552
  newOriginTotal += Number(originalPrice) * Number(item.num);
1536
1553
  });
1537
1554
  }
@@ -1618,7 +1635,6 @@ var RulesModule = class extends import_BaseModule.BaseModule {
1618
1635
  appliedProductDetails: []
1619
1636
  };
1620
1637
  });
1621
- console.log(processedProductList, "processedProductList");
1622
1638
  return {
1623
1639
  productList: processedProductList,
1624
1640
  discountList: [...editModeDiscount, ...updatedDiscountList]
@@ -1711,6 +1727,7 @@ var RulesModule = class extends import_BaseModule.BaseModule {
1711
1727
  this.core.effects.offByModuleDestroy(this.name);
1712
1728
  await this.core.effects.emit(`${this.name}:onDestroy`, {});
1713
1729
  console.log("[Rules] 已销毁");
1730
+ super.destroy();
1714
1731
  }
1715
1732
  async clear() {
1716
1733
  console.log("[Rules] clear");