@stamhoofd/structures 2.5.0 → 2.7.0

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 (251) hide show
  1. package/dist/index.d.ts +1 -7
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +1 -7
  4. package/dist/index.js.map +1 -1
  5. package/dist/src/BalanceItemDetailed.d.ts +11 -3
  6. package/dist/src/BalanceItemDetailed.d.ts.map +1 -1
  7. package/dist/src/BalanceItemDetailed.js +15 -7
  8. package/dist/src/BalanceItemDetailed.js.map +1 -1
  9. package/dist/src/Event.d.ts +2 -1
  10. package/dist/src/Event.d.ts.map +1 -1
  11. package/dist/src/Event.js +7 -3
  12. package/dist/src/Event.js.map +1 -1
  13. package/dist/src/Group.d.ts +5 -0
  14. package/dist/src/Group.d.ts.map +1 -1
  15. package/dist/src/Group.js +8 -1
  16. package/dist/src/Group.js.map +1 -1
  17. package/dist/src/GroupSettings.d.ts +58 -19
  18. package/dist/src/GroupSettings.d.ts.map +1 -1
  19. package/dist/src/GroupSettings.js +188 -34
  20. package/dist/src/GroupSettings.js.map +1 -1
  21. package/dist/src/RegistrationPeriod.d.ts +1 -0
  22. package/dist/src/RegistrationPeriod.d.ts.map +1 -1
  23. package/dist/src/RegistrationPeriod.js +3 -0
  24. package/dist/src/RegistrationPeriod.js.map +1 -1
  25. package/dist/src/StockReservation.d.ts +20 -0
  26. package/dist/src/StockReservation.d.ts.map +1 -0
  27. package/dist/src/StockReservation.js +91 -0
  28. package/dist/src/StockReservation.js.map +1 -0
  29. package/dist/src/Version.d.ts +1 -1
  30. package/dist/src/Version.js +1 -1
  31. package/dist/src/addresses/Address.d.ts +4 -0
  32. package/dist/src/addresses/Address.d.ts.map +1 -1
  33. package/dist/src/addresses/Address.js +6 -0
  34. package/dist/src/addresses/Address.js.map +1 -1
  35. package/dist/src/email/EditorSmartVariable.d.ts.map +1 -1
  36. package/dist/src/email/EditorSmartVariable.js +7 -11
  37. package/dist/src/email/EditorSmartVariable.js.map +1 -1
  38. package/dist/src/email/Email.d.ts +4 -3
  39. package/dist/src/email/Email.d.ts.map +1 -1
  40. package/dist/src/email/Email.js +5 -4
  41. package/dist/src/email/Email.js.map +1 -1
  42. package/dist/src/members/Member.d.ts +7 -0
  43. package/dist/src/members/Member.d.ts.map +1 -1
  44. package/dist/src/members/Member.js +34 -1
  45. package/dist/src/members/Member.js.map +1 -1
  46. package/dist/src/members/MemberDetails.d.ts +8 -11
  47. package/dist/src/members/MemberDetails.d.ts.map +1 -1
  48. package/dist/src/members/MemberDetails.js +92 -51
  49. package/dist/src/members/MemberDetails.js.map +1 -1
  50. package/dist/src/members/MemberPlatformMembership.d.ts +1 -0
  51. package/dist/src/members/MemberPlatformMembership.d.ts.map +1 -1
  52. package/dist/src/members/MemberPlatformMembership.js +3 -0
  53. package/dist/src/members/MemberPlatformMembership.js.map +1 -1
  54. package/dist/src/members/MemberWithRegistrationsBlob.d.ts +1 -1
  55. package/dist/src/members/MemberWithRegistrationsBlob.d.ts.map +1 -1
  56. package/dist/src/members/MemberWithRegistrationsBlob.js +35 -12
  57. package/dist/src/members/MemberWithRegistrationsBlob.js.map +1 -1
  58. package/dist/src/members/PaymentDetailed.d.ts +3 -0
  59. package/dist/src/members/PaymentDetailed.d.ts.map +1 -1
  60. package/dist/src/members/PaymentDetailed.js +7 -8
  61. package/dist/src/members/PaymentDetailed.js.map +1 -1
  62. package/dist/src/members/PaymentGeneral.d.ts +5 -2
  63. package/dist/src/members/PaymentGeneral.d.ts.map +1 -1
  64. package/dist/src/members/PaymentGeneral.js +3 -5
  65. package/dist/src/members/PaymentGeneral.js.map +1 -1
  66. package/dist/src/members/PlatformMember.d.ts +6 -2
  67. package/dist/src/members/PlatformMember.d.ts.map +1 -1
  68. package/dist/src/members/PlatformMember.js +68 -18
  69. package/dist/src/members/PlatformMember.js.map +1 -1
  70. package/dist/src/members/Registration.d.ts +12 -0
  71. package/dist/src/members/Registration.d.ts.map +1 -1
  72. package/dist/src/members/Registration.js +18 -3
  73. package/dist/src/members/Registration.js.map +1 -1
  74. package/dist/src/members/RegistrationWithMember.d.ts +3 -2
  75. package/dist/src/members/RegistrationWithMember.d.ts.map +1 -1
  76. package/dist/src/members/RegistrationWithMember.js +7 -1
  77. package/dist/src/members/RegistrationWithMember.js.map +1 -1
  78. package/dist/src/members/checkout/BalanceItemCartItem.d.ts +3 -1
  79. package/dist/src/members/checkout/BalanceItemCartItem.d.ts.map +1 -1
  80. package/dist/src/members/checkout/BalanceItemCartItem.js +11 -9
  81. package/dist/src/members/checkout/BalanceItemCartItem.js.map +1 -1
  82. package/dist/src/members/checkout/RegisterCart.d.ts +16 -2
  83. package/dist/src/members/checkout/RegisterCart.d.ts.map +1 -1
  84. package/dist/src/members/checkout/RegisterCart.js +95 -17
  85. package/dist/src/members/checkout/RegisterCart.js.map +1 -1
  86. package/dist/src/members/checkout/RegisterCheckout.d.ts +19 -0
  87. package/dist/src/members/checkout/RegisterCheckout.d.ts.map +1 -1
  88. package/dist/src/members/checkout/RegisterCheckout.js +38 -1
  89. package/dist/src/members/checkout/RegisterCheckout.js.map +1 -1
  90. package/dist/src/members/checkout/RegisterItem.d.ts +37 -19
  91. package/dist/src/members/checkout/RegisterItem.d.ts.map +1 -1
  92. package/dist/src/members/checkout/RegisterItem.js +283 -118
  93. package/dist/src/members/checkout/RegisterItem.js.map +1 -1
  94. package/esm/dist/index.d.ts +1 -7
  95. package/esm/dist/index.d.ts.map +1 -1
  96. package/esm/dist/index.js +1 -7
  97. package/esm/dist/index.js.map +1 -1
  98. package/esm/dist/src/BalanceItemDetailed.d.ts +11 -3
  99. package/esm/dist/src/BalanceItemDetailed.d.ts.map +1 -1
  100. package/esm/dist/src/BalanceItemDetailed.js +15 -7
  101. package/esm/dist/src/BalanceItemDetailed.js.map +1 -1
  102. package/esm/dist/src/Event.d.ts +2 -1
  103. package/esm/dist/src/Event.d.ts.map +1 -1
  104. package/esm/dist/src/Event.js +7 -3
  105. package/esm/dist/src/Event.js.map +1 -1
  106. package/esm/dist/src/Group.d.ts +5 -0
  107. package/esm/dist/src/Group.d.ts.map +1 -1
  108. package/esm/dist/src/Group.js +9 -2
  109. package/esm/dist/src/Group.js.map +1 -1
  110. package/esm/dist/src/GroupSettings.d.ts +58 -19
  111. package/esm/dist/src/GroupSettings.d.ts.map +1 -1
  112. package/esm/dist/src/GroupSettings.js +188 -34
  113. package/esm/dist/src/GroupSettings.js.map +1 -1
  114. package/esm/dist/src/RegistrationPeriod.d.ts +1 -0
  115. package/esm/dist/src/RegistrationPeriod.d.ts.map +1 -1
  116. package/esm/dist/src/RegistrationPeriod.js +3 -0
  117. package/esm/dist/src/RegistrationPeriod.js.map +1 -1
  118. package/esm/dist/src/StockReservation.d.ts +20 -0
  119. package/esm/dist/src/StockReservation.d.ts.map +1 -0
  120. package/esm/dist/src/StockReservation.js +87 -0
  121. package/esm/dist/src/StockReservation.js.map +1 -0
  122. package/esm/dist/src/Version.d.ts +1 -1
  123. package/esm/dist/src/Version.js +1 -1
  124. package/esm/dist/src/addresses/Address.d.ts +4 -0
  125. package/esm/dist/src/addresses/Address.d.ts.map +1 -1
  126. package/esm/dist/src/addresses/Address.js +6 -0
  127. package/esm/dist/src/addresses/Address.js.map +1 -1
  128. package/esm/dist/src/email/EditorSmartVariable.d.ts.map +1 -1
  129. package/esm/dist/src/email/EditorSmartVariable.js +8 -12
  130. package/esm/dist/src/email/EditorSmartVariable.js.map +1 -1
  131. package/esm/dist/src/email/Email.d.ts +4 -3
  132. package/esm/dist/src/email/Email.d.ts.map +1 -1
  133. package/esm/dist/src/email/Email.js +5 -4
  134. package/esm/dist/src/email/Email.js.map +1 -1
  135. package/esm/dist/src/members/Member.d.ts +7 -0
  136. package/esm/dist/src/members/Member.d.ts.map +1 -1
  137. package/esm/dist/src/members/Member.js +32 -0
  138. package/esm/dist/src/members/Member.js.map +1 -1
  139. package/esm/dist/src/members/MemberDetails.d.ts +8 -11
  140. package/esm/dist/src/members/MemberDetails.d.ts.map +1 -1
  141. package/esm/dist/src/members/MemberDetails.js +92 -51
  142. package/esm/dist/src/members/MemberDetails.js.map +1 -1
  143. package/esm/dist/src/members/MemberPlatformMembership.d.ts +1 -0
  144. package/esm/dist/src/members/MemberPlatformMembership.d.ts.map +1 -1
  145. package/esm/dist/src/members/MemberPlatformMembership.js +3 -0
  146. package/esm/dist/src/members/MemberPlatformMembership.js.map +1 -1
  147. package/esm/dist/src/members/MemberWithRegistrationsBlob.d.ts +1 -1
  148. package/esm/dist/src/members/MemberWithRegistrationsBlob.d.ts.map +1 -1
  149. package/esm/dist/src/members/MemberWithRegistrationsBlob.js +35 -12
  150. package/esm/dist/src/members/MemberWithRegistrationsBlob.js.map +1 -1
  151. package/esm/dist/src/members/PaymentDetailed.d.ts +3 -0
  152. package/esm/dist/src/members/PaymentDetailed.d.ts.map +1 -1
  153. package/esm/dist/src/members/PaymentDetailed.js +7 -8
  154. package/esm/dist/src/members/PaymentDetailed.js.map +1 -1
  155. package/esm/dist/src/members/PaymentGeneral.d.ts +5 -2
  156. package/esm/dist/src/members/PaymentGeneral.d.ts.map +1 -1
  157. package/esm/dist/src/members/PaymentGeneral.js +3 -5
  158. package/esm/dist/src/members/PaymentGeneral.js.map +1 -1
  159. package/esm/dist/src/members/PlatformMember.d.ts +6 -2
  160. package/esm/dist/src/members/PlatformMember.d.ts.map +1 -1
  161. package/esm/dist/src/members/PlatformMember.js +68 -18
  162. package/esm/dist/src/members/PlatformMember.js.map +1 -1
  163. package/esm/dist/src/members/Registration.d.ts +12 -0
  164. package/esm/dist/src/members/Registration.d.ts.map +1 -1
  165. package/esm/dist/src/members/Registration.js +19 -4
  166. package/esm/dist/src/members/Registration.js.map +1 -1
  167. package/esm/dist/src/members/RegistrationWithMember.d.ts +3 -2
  168. package/esm/dist/src/members/RegistrationWithMember.d.ts.map +1 -1
  169. package/esm/dist/src/members/RegistrationWithMember.js +8 -2
  170. package/esm/dist/src/members/RegistrationWithMember.js.map +1 -1
  171. package/esm/dist/src/members/checkout/BalanceItemCartItem.d.ts +3 -1
  172. package/esm/dist/src/members/checkout/BalanceItemCartItem.d.ts.map +1 -1
  173. package/esm/dist/src/members/checkout/BalanceItemCartItem.js +11 -9
  174. package/esm/dist/src/members/checkout/BalanceItemCartItem.js.map +1 -1
  175. package/esm/dist/src/members/checkout/RegisterCart.d.ts +16 -2
  176. package/esm/dist/src/members/checkout/RegisterCart.d.ts.map +1 -1
  177. package/esm/dist/src/members/checkout/RegisterCart.js +96 -18
  178. package/esm/dist/src/members/checkout/RegisterCart.js.map +1 -1
  179. package/esm/dist/src/members/checkout/RegisterCheckout.d.ts +19 -0
  180. package/esm/dist/src/members/checkout/RegisterCheckout.d.ts.map +1 -1
  181. package/esm/dist/src/members/checkout/RegisterCheckout.js +38 -1
  182. package/esm/dist/src/members/checkout/RegisterCheckout.js.map +1 -1
  183. package/esm/dist/src/members/checkout/RegisterItem.d.ts +37 -19
  184. package/esm/dist/src/members/checkout/RegisterItem.d.ts.map +1 -1
  185. package/esm/dist/src/members/checkout/RegisterItem.js +283 -118
  186. package/esm/dist/src/members/checkout/RegisterItem.js.map +1 -1
  187. package/package.json +2 -2
  188. package/dist/src/members/MemberWithRegistrations.d.ts +0 -52
  189. package/dist/src/members/MemberWithRegistrations.d.ts.map +0 -1
  190. package/dist/src/members/MemberWithRegistrations.js +0 -156
  191. package/dist/src/members/MemberWithRegistrations.js.map +0 -1
  192. package/dist/src/members/checkout/OldRegisterCart.d.ts +0 -50
  193. package/dist/src/members/checkout/OldRegisterCart.d.ts.map +0 -1
  194. package/dist/src/members/checkout/OldRegisterCart.js +0 -207
  195. package/dist/src/members/checkout/OldRegisterCart.js.map +0 -1
  196. package/dist/src/members/checkout/OldRegisterCartPriceCalculator.d.ts +0 -36
  197. package/dist/src/members/checkout/OldRegisterCartPriceCalculator.d.ts.map +0 -1
  198. package/dist/src/members/checkout/OldRegisterCartPriceCalculator.js +0 -339
  199. package/dist/src/members/checkout/OldRegisterCartPriceCalculator.js.map +0 -1
  200. package/dist/src/members/checkout/OldRegisterCartValidator.d.ts +0 -35
  201. package/dist/src/members/checkout/OldRegisterCartValidator.d.ts.map +0 -1
  202. package/dist/src/members/checkout/OldRegisterCartValidator.js +0 -309
  203. package/dist/src/members/checkout/OldRegisterCartValidator.js.map +0 -1
  204. package/dist/src/members/checkout/OldRegisterCheckout.d.ts +0 -22
  205. package/dist/src/members/checkout/OldRegisterCheckout.d.ts.map +0 -1
  206. package/dist/src/members/checkout/OldRegisterCheckout.js +0 -46
  207. package/dist/src/members/checkout/OldRegisterCheckout.js.map +0 -1
  208. package/dist/src/members/checkout/OldRegisterItem.d.ts +0 -46
  209. package/dist/src/members/checkout/OldRegisterItem.d.ts.map +0 -1
  210. package/dist/src/members/checkout/OldRegisterItem.js +0 -89
  211. package/dist/src/members/checkout/OldRegisterItem.js.map +0 -1
  212. package/dist/src/members/checkout/RegisterCartPriceCalculator.test.d.ts +0 -2
  213. package/dist/src/members/checkout/RegisterCartPriceCalculator.test.d.ts.map +0 -1
  214. package/dist/src/members/checkout/RegisterCartPriceCalculator.test.js +0 -1076
  215. package/dist/src/members/checkout/RegisterCartPriceCalculator.test.js.map +0 -1
  216. package/dist/src/members/checkout/UnknownMemberWithRegistrations.d.ts +0 -23
  217. package/dist/src/members/checkout/UnknownMemberWithRegistrations.d.ts.map +0 -1
  218. package/dist/src/members/checkout/UnknownMemberWithRegistrations.js +0 -3
  219. package/dist/src/members/checkout/UnknownMemberWithRegistrations.js.map +0 -1
  220. package/esm/dist/src/members/MemberWithRegistrations.d.ts +0 -52
  221. package/esm/dist/src/members/MemberWithRegistrations.d.ts.map +0 -1
  222. package/esm/dist/src/members/MemberWithRegistrations.js +0 -152
  223. package/esm/dist/src/members/MemberWithRegistrations.js.map +0 -1
  224. package/esm/dist/src/members/checkout/OldRegisterCart.d.ts +0 -50
  225. package/esm/dist/src/members/checkout/OldRegisterCart.d.ts.map +0 -1
  226. package/esm/dist/src/members/checkout/OldRegisterCart.js +0 -202
  227. package/esm/dist/src/members/checkout/OldRegisterCart.js.map +0 -1
  228. package/esm/dist/src/members/checkout/OldRegisterCartPriceCalculator.d.ts +0 -36
  229. package/esm/dist/src/members/checkout/OldRegisterCartPriceCalculator.d.ts.map +0 -1
  230. package/esm/dist/src/members/checkout/OldRegisterCartPriceCalculator.js +0 -334
  231. package/esm/dist/src/members/checkout/OldRegisterCartPriceCalculator.js.map +0 -1
  232. package/esm/dist/src/members/checkout/OldRegisterCartValidator.d.ts +0 -35
  233. package/esm/dist/src/members/checkout/OldRegisterCartValidator.d.ts.map +0 -1
  234. package/esm/dist/src/members/checkout/OldRegisterCartValidator.js +0 -305
  235. package/esm/dist/src/members/checkout/OldRegisterCartValidator.js.map +0 -1
  236. package/esm/dist/src/members/checkout/OldRegisterCheckout.d.ts +0 -22
  237. package/esm/dist/src/members/checkout/OldRegisterCheckout.d.ts.map +0 -1
  238. package/esm/dist/src/members/checkout/OldRegisterCheckout.js +0 -41
  239. package/esm/dist/src/members/checkout/OldRegisterCheckout.js.map +0 -1
  240. package/esm/dist/src/members/checkout/OldRegisterItem.d.ts +0 -46
  241. package/esm/dist/src/members/checkout/OldRegisterItem.d.ts.map +0 -1
  242. package/esm/dist/src/members/checkout/OldRegisterItem.js +0 -84
  243. package/esm/dist/src/members/checkout/OldRegisterItem.js.map +0 -1
  244. package/esm/dist/src/members/checkout/RegisterCartPriceCalculator.test.d.ts +0 -2
  245. package/esm/dist/src/members/checkout/RegisterCartPriceCalculator.test.d.ts.map +0 -1
  246. package/esm/dist/src/members/checkout/RegisterCartPriceCalculator.test.js +0 -1074
  247. package/esm/dist/src/members/checkout/RegisterCartPriceCalculator.test.js.map +0 -1
  248. package/esm/dist/src/members/checkout/UnknownMemberWithRegistrations.d.ts +0 -23
  249. package/esm/dist/src/members/checkout/UnknownMemberWithRegistrations.d.ts.map +0 -1
  250. package/esm/dist/src/members/checkout/UnknownMemberWithRegistrations.js +0 -2
  251. package/esm/dist/src/members/checkout/UnknownMemberWithRegistrations.js.map +0 -1
@@ -1,334 +0,0 @@
1
- import { OldGroupPrices } from "../../OldGroupPrices";
2
- export class OldRegisterCartPriceCalculator {
3
- /**
4
- * Return an unique ID that is the same for all groups that should have equal family pricing (2nd, 3rd discount)
5
- */
6
- static getParentCategory(group, all) {
7
- var _a;
8
- const parents = group.getParentCategories(all, false);
9
- return (_a = parents[0]) !== null && _a !== void 0 ? _a : null;
10
- }
11
- static calculateSinglePrice(member, registration, members, groups, categories) {
12
- var _a, _b;
13
- const item = {
14
- memberId: member.id,
15
- groupId: registration.groupId,
16
- reduced: (_b = (_a = member.details.requiresFinancialSupport) === null || _a === void 0 ? void 0 : _a.value) !== null && _b !== void 0 ? _b : false,
17
- waitingList: registration.waitingList,
18
- calculatedPrice: 0
19
- };
20
- this.calculatePrices([item], [...members, member], groups, categories);
21
- return item.calculatedPrice;
22
- }
23
- static calculateSinglePriceForNewMember(details, registration, members, groups, categories) {
24
- var _a, _b;
25
- const member = {
26
- id: 'calculating-member',
27
- details,
28
- registrations: [registration],
29
- };
30
- const item = {
31
- memberId: member.id,
32
- groupId: registration.groupId,
33
- reduced: (_b = (_a = details.requiresFinancialSupport) === null || _a === void 0 ? void 0 : _a.value) !== null && _b !== void 0 ? _b : false,
34
- waitingList: registration.waitingList,
35
- calculatedPrice: 0
36
- };
37
- this.calculatePrices([item], [...members, member], groups, categories);
38
- return item.calculatedPrice;
39
- }
40
- /**
41
- * @param items Items you want to calculate the prices for (should be all the items)
42
- * @param members All current members, including members that are not present in the items (because we need to know this for family discounts)
43
- * @param groups All the groups of this organization
44
- * @param categories All the categories of this organization
45
- */
46
- static calculatePrices(items, members, groups, categories, forceDate) {
47
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v;
48
- // Step 1 + 2:
49
- // 1. add the group prices
50
- // 2. group items by items that have a grouped family discount
51
- // - First: no discounts or only discount for same group (ordering doesn't matter)
52
- // - Second: Discounts for same member in category
53
- // - Last: Diuscounts for family members in category
54
- // Excluding waiting lists
55
- const groupedItems = [[], new Map(), new Map()];
56
- const now = forceDate !== null && forceDate !== void 0 ? forceDate : new Date();
57
- for (const item of items) {
58
- item.calculatedPrice = 0;
59
- const group = groups.find(g => g.id === item.groupId);
60
- const member = members.find(m => m.id === item.memberId);
61
- if (!group || !member) {
62
- throw new Error("Invalid item: member or group doesn't exist anymore");
63
- }
64
- if (!item.waitingList) {
65
- const groupPrices = (_a = group.settings.getGroupPrices(now)) !== null && _a !== void 0 ? _a : OldGroupPrices.create({});
66
- const category = this.getParentCategory(group, categories);
67
- if (!category) {
68
- throw new Error("Invalid item: category doesn't exist anymore");
69
- }
70
- const _item = Object.assign(item, { _groupPrices: groupPrices, _group: group, _category: category });
71
- // In which priority queue?
72
- if (groupPrices.onlySameGroup || groupPrices.prices.length <= 1) {
73
- // First queue: ordering will never matter
74
- groupedItems[0].push(_item);
75
- }
76
- else {
77
- const prior = groupPrices.sameMemberOnlyDiscount ? 1 : 2;
78
- const key = groupPrices.sameMemberOnlyDiscount ? (category.id + "-" + member.id) : category.id;
79
- const arr = (_b = groupedItems[prior].get(key)) !== null && _b !== void 0 ? _b : [];
80
- arr.push(_item);
81
- groupedItems[prior].set(key, arr);
82
- }
83
- }
84
- }
85
- // Keep a mapping of amount of members that is registered in each category + each group
86
- /// Group ID => amount of members that are registered
87
- const groupAmounts = new Map();
88
- // Amount of registrations in a given group for a given member (member id is first)
89
- const groupPerMemberAmounts = new Map();
90
- /// Category ID => amount of members that are registered
91
- const categoryAmounts = new Map();
92
- // Amount of registrations in a given category for a given member (member id is first)
93
- const categoryPerMemberAmounts = new Map();
94
- // Fill in the existing registrations
95
- for (const member of members) {
96
- // Create map items
97
- const groupAmountsMember = new Map();
98
- const categoryAmountsMember = new Map();
99
- groupPerMemberAmounts.set(member.id, groupAmountsMember);
100
- categoryPerMemberAmounts.set(member.id, categoryAmountsMember);
101
- for (const registration of member.registrations) {
102
- // Skip this if we have an item in the cart with the same properties
103
- const inCart = !!items.find(i => i.memberId === member.id && i.groupId === registration.groupId);
104
- if (inCart) {
105
- continue;
106
- }
107
- const group = groups.find(g => g.id === registration.groupId);
108
- if (group && !registration.waitingList && registration.cycle === group.cycle && registration.registeredAt !== null && registration.deactivatedAt === null) {
109
- // Active registration
110
- groupAmounts.set(group.id, ((_c = groupAmounts.get(group.id)) !== null && _c !== void 0 ? _c : 0) + 1);
111
- groupAmountsMember.set(group.id, ((_d = groupAmountsMember.get(group.id)) !== null && _d !== void 0 ? _d : 0) + 1);
112
- const category = this.getParentCategory(group, categories);
113
- if (category) {
114
- categoryAmounts.set(category.id, ((_e = categoryAmounts.get(category.id)) !== null && _e !== void 0 ? _e : 0) + 1);
115
- categoryAmountsMember.set(category.id, ((_f = categoryAmountsMember.get(category.id)) !== null && _f !== void 0 ? _f : 0) + 1);
116
- }
117
- }
118
- }
119
- }
120
- // All items that are not affected by ordering calculate first
121
- for (const item of groupedItems[0]) {
122
- // TODO: cache this information
123
- const group = item._group;
124
- const category = item._category;
125
- let alreadyRegisteredCount = 0;
126
- if (item._groupPrices.prices.length > 1) {
127
- if (item._groupPrices.onlySameGroup) {
128
- if (item._groupPrices.sameMemberOnlyDiscount) {
129
- alreadyRegisteredCount = (_h = (_g = groupPerMemberAmounts.get(item.memberId)) === null || _g === void 0 ? void 0 : _g.get(item.groupId)) !== null && _h !== void 0 ? _h : 0;
130
- }
131
- else {
132
- alreadyRegisteredCount = (_j = groupAmounts.get(item.groupId)) !== null && _j !== void 0 ? _j : 0;
133
- }
134
- }
135
- else {
136
- throw new Error("Category based discount shouldn't be in priority 0 queue");
137
- if (item._groupPrices.sameMemberOnlyDiscount) {
138
- alreadyRegisteredCount = (_l = (_k = categoryPerMemberAmounts.get(item.memberId)) === null || _k === void 0 ? void 0 : _k.get(category.id)) !== null && _l !== void 0 ? _l : 0;
139
- }
140
- else {
141
- alreadyRegisteredCount = (_m = categoryAmounts.get(category.id)) !== null && _m !== void 0 ? _m : 0;
142
- }
143
- }
144
- }
145
- const price = item._groupPrices.getPriceFor(item.reduced, alreadyRegisteredCount);
146
- item.calculatedPrice = price;
147
- // Increase counters
148
- const groupAmountsMember = groupPerMemberAmounts.get(item.memberId);
149
- const categoryAmountsMember = categoryPerMemberAmounts.get(item.memberId);
150
- groupAmounts.set(group.id, ((_o = groupAmounts.get(group.id)) !== null && _o !== void 0 ? _o : 0) + 1);
151
- groupAmountsMember.set(group.id, ((_p = groupAmountsMember.get(group.id)) !== null && _p !== void 0 ? _p : 0) + 1);
152
- categoryAmounts.set(category.id, ((_q = categoryAmounts.get(category.id)) !== null && _q !== void 0 ? _q : 0) + 1);
153
- categoryAmountsMember.set(category.id, ((_r = categoryAmountsMember.get(category.id)) !== null && _r !== void 0 ? _r : 0) + 1);
154
- }
155
- // Discount for category, for same member
156
- for (const [_, items] of groupedItems[1]) {
157
- const memberId = items[0].memberId;
158
- const group = items[0]._group;
159
- const category = items[0]._category;
160
- const maxFamilyMembersDiscount = Math.max(...items.map(i => i._groupPrices.prices.length));
161
- // Get current amounts
162
- const existingCount = (_t = (_s = categoryPerMemberAmounts.get(memberId)) === null || _s === void 0 ? void 0 : _s.get(category.id)) !== null && _t !== void 0 ? _t : 0;
163
- // Find most optimal order
164
- const combinations = getPossibleCombinations(items, maxFamilyMembersDiscount - 1 - existingCount);
165
- let minimumPrice = null;
166
- let minimumCombination = [];
167
- // Calculate the smallest price
168
- for (const combination of combinations) {
169
- let total = 0;
170
- let alreadyRegisteredCount = existingCount;
171
- for (const item of combination) {
172
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
173
- const price = item._groupPrices.getPriceFor(item.reduced, alreadyRegisteredCount);
174
- alreadyRegisteredCount++;
175
- total += price;
176
- }
177
- if (minimumPrice === null || total < minimumPrice) {
178
- minimumPrice = total;
179
- minimumCombination = combination;
180
- }
181
- }
182
- // Calculate once again to set the fixed price for every item
183
- let alreadyRegisteredCount = existingCount;
184
- for (const item of minimumCombination) {
185
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
186
- const price = item._groupPrices.getPriceFor(item.reduced, alreadyRegisteredCount);
187
- item.calculatedPrice = price;
188
- alreadyRegisteredCount++;
189
- // Increase counters for next cycle (groups don't matter anymore, so skipped, and same member also doesn't matter anymore)
190
- //const groupAmountsMember = groupPerMemberAmounts.get(item.memberId)!
191
- //const categoryAmountsMember = categoryPerMemberAmounts.get(item.memberId)!
192
- //groupAmounts.set(group.id, (groupAmounts.get(group.id) ?? 0) + 1)
193
- //groupAmountsMember.set(group.id, (groupAmountsMember.get(group.id) ?? 0) + 1)
194
- categoryAmounts.set(category.id, ((_u = categoryAmounts.get(category.id)) !== null && _u !== void 0 ? _u : 0) + 1);
195
- //categoryAmountsMember.set(category.id, (categoryAmountsMember.get(category.id) ?? 0) + 1)
196
- }
197
- }
198
- // Discount for category, for same member
199
- for (const [_, items] of groupedItems[2]) {
200
- const memberId = items[0].memberId;
201
- const group = items[0]._group;
202
- const category = items[0]._category;
203
- const maxFamilyMembersDiscount = Math.max(...items.map(i => i._groupPrices.prices.length));
204
- // Get current amounts
205
- const existingCount = (_v = categoryAmounts.get(category.id)) !== null && _v !== void 0 ? _v : 0;
206
- // Find most optimal order
207
- const combinations = getPossibleCombinations(items, maxFamilyMembersDiscount - 1 - existingCount);
208
- let minimumPrice = null;
209
- let minimumCombination = [];
210
- // Calculate the smallest price
211
- for (const combination of combinations) {
212
- let total = 0;
213
- let alreadyRegisteredCount = existingCount;
214
- for (const item of combination) {
215
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
216
- const price = item._groupPrices.getPriceFor(item.reduced, alreadyRegisteredCount);
217
- alreadyRegisteredCount++;
218
- total += price;
219
- }
220
- if (minimumPrice === null || total < minimumPrice) {
221
- minimumPrice = total;
222
- minimumCombination = combination;
223
- }
224
- }
225
- // Calculate once again to set the fixed price for every item
226
- let alreadyRegisteredCount = existingCount;
227
- for (const item of minimumCombination) {
228
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
229
- const price = item._groupPrices.getPriceFor(item.reduced, alreadyRegisteredCount);
230
- item.calculatedPrice = price;
231
- alreadyRegisteredCount++;
232
- // No need to increase counters: it's done
233
- }
234
- }
235
- // Step 3: calculate all possible prices
236
- /*for (const [familyID, items] of groupedItems) {
237
- // Count all members that are already registered in this family discount group
238
- // (to know the number of members, and to know the discount)
239
- let existingCount = 0
240
- for (const member of members) {
241
- for (const registration of member.registrations) {
242
-
243
- // Skip this if we have an item in the cart with the same properties
244
- const inCart = !!items.find(i => i.memberId === member.id && i.groupId === registration.groupId)
245
- if (inCart) {
246
- continue
247
- }
248
- const group = groups.find(g => g.id === registration.groupId)
249
- if (group && !registration.waitingList && registration.cycle === group.cycle && registration.registeredAt !== null && registration.deactivatedAt === null) {
250
- // Active registration
251
- if (this.getFamilyDiscountIdFor(group, categories) == familyID) {
252
- existingCount++
253
- }
254
- }
255
- }
256
- }
257
-
258
- // TODO: move those without discounts to the start and remove them from the combinations that need to get calculated. They always need to be added first because they don't give discount
259
-
260
- const maxFamilyMembersDiscount = 3 // discount for third + more members
261
-
262
- // Order in all possible ways (where only the first X places matter)
263
- const combinations = getPossibleCombinations(items, maxFamilyMembersDiscount - 1 - existingCount)
264
-
265
- let minimumPrice: number | null = null
266
- let minimumCombination: RegisterItemWithPriceAndGroupPrices[] = []
267
-
268
- // Calculate the smallest price
269
- for (const combination of combinations) {
270
- let total = 0
271
- let alreadyRegisteredCount = existingCount
272
- for (const item of combination) {
273
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
274
- const price = item._groupPrices.getPriceFor(item.reduced, alreadyRegisteredCount)
275
- alreadyRegisteredCount++
276
- total += price
277
- }
278
-
279
- if (minimumPrice === null || total < minimumPrice) {
280
- minimumPrice = total
281
- minimumCombination = combination
282
- }
283
- }
284
-
285
- // Calculate once again to set the fixed price for every item
286
- let alreadyRegisteredCount = existingCount
287
- for (const item of minimumCombination) {
288
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
289
- const price = item._groupPrices.getPriceFor(item.reduced, alreadyRegisteredCount)
290
- item.calculatedPrice = price
291
- alreadyRegisteredCount++
292
- }
293
- }*/
294
- // Clean up
295
- for (const item of items) {
296
- // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
297
- const i = item;
298
- // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
299
- delete i._groupPrices;
300
- // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
301
- delete i._group;
302
- // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
303
- delete i._category;
304
- }
305
- }
306
- }
307
- /**
308
- * Return all the possible ordering of the first x items (= amount) of a given array.
309
- * E.g. [1, 2, 3, 4, 5] for 2 items: [1, 2, (3, 4, 5)], [1, 3, (2, 4, 5)], [1, 4, (2, 3, 5)], [1, 5, (3, 4, 2)], [2, 1, (3, 4, 5)], ...
310
- */
311
- export function getPossibleCombinations(array, amount) {
312
- if (amount <= 0) {
313
- // Only one possibility
314
- return [array];
315
- }
316
- if (array.length <= 1) {
317
- // Only one possible combination
318
- return [array];
319
- }
320
- // On array.length possibilities
321
- return array.flatMap((first, index) => {
322
- // Remove first from the array, get possible combinations, append first back to each combination and return these combinations
323
- const arr = array.slice();
324
- arr.splice(index, 1);
325
- // Get all possibilities
326
- const combo = getPossibleCombinations(arr, amount - 1);
327
- // Append first back to all possible combinations
328
- for (const c of combo) {
329
- c.unshift(first);
330
- }
331
- return combo;
332
- });
333
- }
334
- //# sourceMappingURL=OldRegisterCartPriceCalculator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"OldRegisterCartPriceCalculator.js","sourceRoot":"","sources":["../../../../../src/members/checkout/OldRegisterCartPriceCalculator.ts"],"names":[],"mappings":"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"}
@@ -1,35 +0,0 @@
1
- import { Group } from "../../Group";
2
- import { GroupCategory } from "../../GroupCategory";
3
- import { OldIDRegisterItem, OldRegisterItem } from "./OldRegisterItem";
4
- import { UnknownMemberWithRegistrations } from "./UnknownMemberWithRegistrations";
5
- export type CanRegisterResponse = {
6
- closed: boolean;
7
- waitingList: boolean;
8
- message?: string;
9
- description?: string;
10
- invited: boolean;
11
- };
12
- /**
13
- * Class that can validate a Cart and registrations.
14
- * This is usefull to share the validation between backend and frontend (for both the encrypted and non-encrypted versions)
15
- */
16
- export declare class OldRegisterCartValidator {
17
- static isAlreadyRegistered(member: UnknownMemberWithRegistrations, group: Group, waitingList: boolean): boolean;
18
- static canRegister(member: UnknownMemberWithRegistrations, group: Group, family: UnknownMemberWithRegistrations[], groups: Group[], categories: GroupCategory[], cart: (OldIDRegisterItem | OldRegisterItem)[]): CanRegisterResponse;
19
- static getAlreadyInCartDescription({ member, group, waitingList, cart }: {
20
- member: UnknownMemberWithRegistrations;
21
- group: Group;
22
- waitingList: boolean;
23
- cart: (OldIDRegisterItem | OldRegisterItem)[];
24
- }): "Dit staat klaar in jouw mandje. Bevestig het mandje om jouw plaats op de wachtlijst te bevestigen. " | "Dit staat klaar in jouw mandje. Bevestig het mandje om jouw plaats om jouw inschrijving te bevestigen. " | undefined;
25
- /**
26
- * Return true if this member was registered in the previous year (current doesn't count)
27
- */
28
- static isExistingMember(member: UnknownMemberWithRegistrations, groups: Group[]): boolean;
29
- /**
30
- * True if you cannot register because you reached the maximum of a group category
31
- */
32
- static hasReachedCategoryMaximum(member: UnknownMemberWithRegistrations, group: Group, groups: Group[], categories: GroupCategory[], cart?: (OldIDRegisterItem | OldRegisterItem)[]): boolean;
33
- static validateItem(item: OldIDRegisterItem | OldRegisterItem, family: UnknownMemberWithRegistrations[], groups: Group[], categories: GroupCategory[], previousItems: (OldIDRegisterItem | OldRegisterItem)[]): void;
34
- }
35
- //# sourceMappingURL=OldRegisterCartValidator.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"OldRegisterCartValidator.d.ts","sourceRoot":"","sources":["../../../../../src/members/checkout/OldRegisterCartValidator.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAGnD,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACtE,OAAO,EAAE,8BAA8B,EAAE,MAAM,kCAAkC,CAAA;AAEjF,MAAM,MAAM,mBAAmB,GAAG;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,WAAW,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAC,CAAC;AAErI;;;GAGG;AACH,qBAAa,wBAAwB;IACjC,MAAM,CAAC,mBAAmB,CAAC,MAAM,EAAE,8BAA8B,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO;IAGrG,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,8BAA8B,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,8BAA8B,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,aAAa,EAAE,EAAE,IAAI,EAAE,CAAC,iBAAiB,GAAG,eAAe,CAAC,EAAE,GAAG,mBAAmB;IA2MpO,MAAM,CAAC,2BAA2B,CAAC,EAAC,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAC,EAAE;QAAC,MAAM,EAAE,8BAA8B,CAAC;QAAC,KAAK,EAAE,KAAK,CAAC;QAAC,WAAW,EAAE,OAAO,CAAC;QAAC,IAAI,EAAE,CAAC,iBAAiB,GAAG,eAAe,CAAC,EAAE,CAAA;KAAC;IAiBlM;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,8BAA8B,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO;IAwBzF;;OAEG;IACH,MAAM,CAAC,yBAAyB,CAAC,MAAM,EAAE,8BAA8B,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,aAAa,EAAE,EAAE,IAAI,GAAE,CAAC,iBAAiB,GAAG,eAAe,CAAC,EAAO,GAAG,OAAO;IA0BjM,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,iBAAiB,GAAG,eAAe,EAAE,MAAM,EAAE,8BAA8B,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,aAAa,EAAE,EAAE,aAAa,EAAE,CAAC,iBAAiB,GAAG,eAAe,CAAC,EAAE;CA8ChN"}