@stamhoofd/models 2.120.6 → 2.122.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 (296) hide show
  1. package/dist/factories/GroupFactory.d.ts.map +1 -1
  2. package/dist/factories/GroupFactory.js +1 -1
  3. package/dist/factories/GroupFactory.js.map +1 -1
  4. package/dist/factories/OrganizationFactory.d.ts +2 -1
  5. package/dist/factories/OrganizationFactory.d.ts.map +1 -1
  6. package/dist/factories/OrganizationFactory.js +9 -1
  7. package/dist/factories/OrganizationFactory.js.map +1 -1
  8. package/dist/factories/RegistrationInvitationFactory.d.ts +15 -0
  9. package/dist/factories/RegistrationInvitationFactory.d.ts.map +1 -0
  10. package/dist/factories/RegistrationInvitationFactory.js +18 -0
  11. package/dist/factories/RegistrationInvitationFactory.js.map +1 -0
  12. package/dist/factories/STPackageFactory.js.map +1 -1
  13. package/dist/factories/UserFactory.d.ts.map +1 -1
  14. package/dist/factories/UserFactory.js +2 -2
  15. package/dist/factories/UserFactory.js.map +1 -1
  16. package/dist/factories/index.d.ts +1 -0
  17. package/dist/factories/index.d.ts.map +1 -1
  18. package/dist/factories/index.js +1 -0
  19. package/dist/factories/index.js.map +1 -1
  20. package/dist/helpers/EmailBuilder.d.ts.map +1 -1
  21. package/dist/helpers/EmailBuilder.js +8 -8
  22. package/dist/helpers/EmailBuilder.js.map +1 -1
  23. package/dist/helpers/Handlebars.d.ts.map +1 -1
  24. package/dist/helpers/Handlebars.js +10 -1
  25. package/dist/helpers/Handlebars.js.map +1 -1
  26. package/dist/helpers/InvoiceCounter.d.ts +24 -0
  27. package/dist/helpers/InvoiceCounter.d.ts.map +1 -0
  28. package/dist/helpers/InvoiceCounter.js +133 -0
  29. package/dist/helpers/InvoiceCounter.js.map +1 -0
  30. package/dist/index.d.ts +0 -1
  31. package/dist/index.d.ts.map +1 -1
  32. package/dist/index.js +0 -1
  33. package/dist/index.js.map +1 -1
  34. package/dist/migrations/1605262045-import-postcodes.d.ts.map +1 -1
  35. package/dist/migrations/1605262045-import-postcodes.js +58 -24
  36. package/dist/migrations/1605262045-import-postcodes.js.map +1 -1
  37. package/dist/migrations/1605262046-import-postcodes-nl.d.ts.map +1 -1
  38. package/dist/migrations/1605262046-import-postcodes-nl.js +54 -17
  39. package/dist/migrations/1605262046-import-postcodes-nl.js.map +1 -1
  40. package/dist/migrations/1719567881-organization-periodId.sql +2 -0
  41. package/dist/migrations/1719567882-groups-periodId.sql +2 -0
  42. package/dist/migrations/1720080975-convert-charset.d.ts +4 -0
  43. package/dist/migrations/1720080975-convert-charset.d.ts.map +1 -0
  44. package/dist/migrations/1720080975-convert-charset.js +26 -0
  45. package/dist/migrations/1720080975-convert-charset.js.map +1 -0
  46. package/dist/migrations/1720080976-convert-charset-leads.d.ts.map +1 -1
  47. package/dist/migrations/1720080976-convert-charset-leads.js +11 -10
  48. package/dist/migrations/1720080976-convert-charset-leads.js.map +1 -1
  49. package/dist/migrations/1721400546-users-memberId.sql +2 -0
  50. package/dist/migrations/1722269236-group-waitinglist-id.sql +2 -1
  51. package/dist/migrations/1722525785-balance-item-paying-organization-id.sql +2 -0
  52. package/dist/migrations/1722525787-depending-balance-item.sql +2 -0
  53. package/dist/migrations/1722963554-registration-group-price-and-options.sql +1 -1
  54. package/dist/migrations/1723652797-payments-paying-organization-id-fk.sql +2 -0
  55. package/dist/migrations/1733317908-added-missing-organization-fk-on-registrations.sql +2 -0
  56. package/dist/migrations/1733317910-paying-organization-id-fk.sql +2 -0
  57. package/dist/migrations/1733504881-negative-invoice-id.sql +6 -0
  58. package/dist/migrations/1733994455-balance-item-status-open.d.ts +4 -0
  59. package/dist/migrations/1733994455-balance-item-status-open.d.ts.map +1 -0
  60. package/dist/migrations/1733994455-balance-item-status-open.js +28 -0
  61. package/dist/migrations/1733994455-balance-item-status-open.js.map +1 -0
  62. package/dist/migrations/1763216320-bigint-balance-item-payments.sql +2 -0
  63. package/dist/migrations/1763216320-bigint-balance-items.sql +5 -0
  64. package/dist/migrations/1763216320-bigint-orders.sql +2 -0
  65. package/dist/migrations/1763216320-bigint-payments.sql +2 -0
  66. package/dist/migrations/1763216332-bigint-balance-item-price-total.sql +2 -0
  67. package/dist/migrations/1769087808-corrected-invoice-user-agent.sql +2 -0
  68. package/dist/migrations/1769087809-payments-invoice-id.sql +2 -0
  69. package/dist/migrations/1772033555-balance-item-package-id.sql +2 -0
  70. package/dist/migrations/1776873089-create-registration-invitations-table.sql +13 -0
  71. package/dist/migrations/1778657958-payments-create-mandate.sql +2 -0
  72. package/dist/migrations/1778657959-payments-mandate-id.sql +2 -0
  73. package/dist/migrations/1778796615-payments-reversing-payment-id.sql +5 -0
  74. package/dist/migrations/1778950642-price-invoiced.sql +2 -0
  75. package/dist/migrations/1779443446-transfer-fees.sql +3 -0
  76. package/dist/migrations/1779709174-used-register-code-balance-item-id.sql +5 -0
  77. package/dist/migrations/1779968328-payments-admin-user-id.sql +5 -0
  78. package/dist/migrations/1779970611-payments-refunded-amount.sql +2 -0
  79. package/dist/migrations/1779972640-balance-items-failed-at.sql +2 -0
  80. package/dist/migrations/1780328285-document-template-locked.sql +2 -0
  81. package/dist/migrations/1780328286-document-locked.sql +2 -0
  82. package/dist/migrations/1780412083-documents-set-locked.d.ts +4 -0
  83. package/dist/migrations/1780412083-documents-set-locked.d.ts.map +1 -0
  84. package/dist/migrations/1780412083-documents-set-locked.js +14 -0
  85. package/dist/migrations/1780412083-documents-set-locked.js.map +1 -0
  86. package/dist/migrations/1780928401-v1-groups-migration-data.d.ts +4 -0
  87. package/dist/migrations/1780928401-v1-groups-migration-data.d.ts.map +1 -0
  88. package/dist/migrations/1780928401-v1-groups-migration-data.js +44 -0
  89. package/dist/migrations/1780928401-v1-groups-migration-data.js.map +1 -0
  90. package/dist/models/BalanceItem.d.ts +14 -1
  91. package/dist/models/BalanceItem.d.ts.map +1 -1
  92. package/dist/models/BalanceItem.js +91 -41
  93. package/dist/models/BalanceItem.js.map +1 -1
  94. package/dist/models/CachedBalance.d.ts +6 -1
  95. package/dist/models/CachedBalance.d.ts.map +1 -1
  96. package/dist/models/CachedBalance.js +3 -2
  97. package/dist/models/CachedBalance.js.map +1 -1
  98. package/dist/models/Document.d.ts +4 -0
  99. package/dist/models/Document.d.ts.map +1 -1
  100. package/dist/models/Document.js +26 -3
  101. package/dist/models/Document.js.map +1 -1
  102. package/dist/models/DocumentTemplate.d.ts +4 -0
  103. package/dist/models/DocumentTemplate.d.ts.map +1 -1
  104. package/dist/models/DocumentTemplate.js +37 -1
  105. package/dist/models/DocumentTemplate.js.map +1 -1
  106. package/dist/models/Email.d.ts.map +1 -1
  107. package/dist/models/Email.js +1 -1
  108. package/dist/models/Email.js.map +1 -1
  109. package/dist/models/EmailVerificationCode.d.ts.map +1 -1
  110. package/dist/models/EmailVerificationCode.js +3 -13
  111. package/dist/models/EmailVerificationCode.js.map +1 -1
  112. package/dist/models/Event.d.ts +2 -1
  113. package/dist/models/Event.d.ts.map +1 -1
  114. package/dist/models/Event.js +3 -0
  115. package/dist/models/Event.js.map +1 -1
  116. package/dist/models/EventNotification.d.ts.map +1 -1
  117. package/dist/models/EventNotification.js +5 -5
  118. package/dist/models/EventNotification.js.map +1 -1
  119. package/dist/models/Group.d.ts +4 -0
  120. package/dist/models/Group.d.ts.map +1 -1
  121. package/dist/models/Group.js +17 -0
  122. package/dist/models/Group.js.map +1 -1
  123. package/dist/models/Invoice.d.ts +1 -0
  124. package/dist/models/Invoice.d.ts.map +1 -1
  125. package/dist/models/Invoice.js +8 -8
  126. package/dist/models/Invoice.js.map +1 -1
  127. package/dist/models/MemberPlatformMembership.d.ts.map +1 -1
  128. package/dist/models/MemberPlatformMembership.js +9 -0
  129. package/dist/models/MemberPlatformMembership.js.map +1 -1
  130. package/dist/models/MollieToken.d.ts +4 -8
  131. package/dist/models/MollieToken.d.ts.map +1 -1
  132. package/dist/models/MollieToken.js +37 -90
  133. package/dist/models/MollieToken.js.map +1 -1
  134. package/dist/models/Order.d.ts.map +1 -1
  135. package/dist/models/Order.js +1 -0
  136. package/dist/models/Order.js.map +1 -1
  137. package/dist/models/Organization.d.ts +30 -23
  138. package/dist/models/Organization.d.ts.map +1 -1
  139. package/dist/models/Organization.js +113 -61
  140. package/dist/models/Organization.js.map +1 -1
  141. package/dist/models/PasswordToken.d.ts +5 -1
  142. package/dist/models/PasswordToken.d.ts.map +1 -1
  143. package/dist/models/PasswordToken.js +18 -17
  144. package/dist/models/PasswordToken.js.map +1 -1
  145. package/dist/models/Payment.d.ts +35 -3
  146. package/dist/models/Payment.d.ts.map +1 -1
  147. package/dist/models/Payment.js +66 -3
  148. package/dist/models/Payment.js.map +1 -1
  149. package/dist/models/Registration.d.ts +1 -0
  150. package/dist/models/Registration.d.ts.map +1 -1
  151. package/dist/models/Registration.js +4 -3
  152. package/dist/models/Registration.js.map +1 -1
  153. package/dist/models/RegistrationInvitation.d.ts +14 -0
  154. package/dist/models/RegistrationInvitation.d.ts.map +1 -0
  155. package/dist/models/RegistrationInvitation.js +45 -0
  156. package/dist/models/RegistrationInvitation.js.map +1 -0
  157. package/dist/models/STCredit.d.ts +4 -0
  158. package/dist/models/STCredit.d.ts.map +1 -1
  159. package/dist/models/STCredit.js +28 -0
  160. package/dist/models/STCredit.js.map +1 -1
  161. package/dist/models/STInvoice.d.ts +7 -1
  162. package/dist/models/STInvoice.d.ts.map +1 -1
  163. package/dist/models/STInvoice.js +9 -0
  164. package/dist/models/STInvoice.js.map +1 -1
  165. package/dist/models/STPackage.d.ts +4 -0
  166. package/dist/models/STPackage.d.ts.map +1 -1
  167. package/dist/models/STPackage.js +12 -1
  168. package/dist/models/STPackage.js.map +1 -1
  169. package/dist/models/UsedRegisterCode.d.ts +9 -0
  170. package/dist/models/UsedRegisterCode.d.ts.map +1 -1
  171. package/dist/models/UsedRegisterCode.js +31 -0
  172. package/dist/models/UsedRegisterCode.js.map +1 -1
  173. package/dist/models/User.d.ts +1 -1
  174. package/dist/models/User.d.ts.map +1 -1
  175. package/dist/models/User.js +1 -1
  176. package/dist/models/User.js.map +1 -1
  177. package/dist/models/_relations.js +25 -0
  178. package/dist/models/_relations.js.map +1 -1
  179. package/dist/models/addresses/City.d.ts +4 -4
  180. package/dist/models/addresses/City.d.ts.map +1 -1
  181. package/dist/models/addresses/City.js +6 -6
  182. package/dist/models/addresses/City.js.map +1 -1
  183. package/dist/models/addresses/PostalCode.d.ts +2 -2
  184. package/dist/models/addresses/PostalCode.d.ts.map +1 -1
  185. package/dist/models/addresses/PostalCode.js +4 -3
  186. package/dist/models/addresses/PostalCode.js.map +1 -1
  187. package/dist/models/addresses/Street.d.ts +3 -3
  188. package/dist/models/addresses/Street.d.ts.map +1 -1
  189. package/dist/models/addresses/Street.js +4 -4
  190. package/dist/models/addresses/Street.js.map +1 -1
  191. package/dist/models/index.d.ts +2 -0
  192. package/dist/models/index.d.ts.map +1 -1
  193. package/dist/models/index.js +2 -0
  194. package/dist/models/index.js.map +1 -1
  195. package/dist/models/v1GroupMigrationData.d.ts +22 -0
  196. package/dist/models/v1GroupMigrationData.d.ts.map +1 -0
  197. package/dist/models/v1GroupMigrationData.js +48 -0
  198. package/dist/models/v1GroupMigrationData.js.map +1 -0
  199. package/package.json +41 -13
  200. package/src/factories/GroupFactory.ts +4 -6
  201. package/src/factories/OrganizationFactory.ts +12 -4
  202. package/src/factories/RegistrationInvitationFactory.ts +24 -0
  203. package/src/factories/STPackageFactory.ts +2 -2
  204. package/src/factories/UserFactory.ts +4 -5
  205. package/src/factories/index.ts +1 -0
  206. package/src/helpers/EmailBuilder.ts +19 -28
  207. package/src/helpers/Handlebars.ts +10 -1
  208. package/src/helpers/InvoiceCounter.test.ts +220 -0
  209. package/src/helpers/InvoiceCounter.ts +162 -0
  210. package/src/index.ts +0 -1
  211. package/src/migrations/1605262045-import-postcodes.ts +62 -25
  212. package/src/migrations/1605262046-import-postcodes-nl.ts +58 -17
  213. package/src/migrations/1719567881-organization-periodId.sql +2 -0
  214. package/src/migrations/1719567882-groups-periodId.sql +2 -0
  215. package/src/migrations/1720080975-convert-charset.ts +34 -0
  216. package/src/migrations/1720080976-convert-charset-leads.ts +16 -13
  217. package/src/migrations/1721400546-users-memberId.sql +2 -0
  218. package/src/migrations/1722269236-group-waitinglist-id.sql +2 -1
  219. package/src/migrations/1722525785-balance-item-paying-organization-id.sql +2 -0
  220. package/src/migrations/1722525787-depending-balance-item.sql +2 -0
  221. package/src/migrations/1722963554-registration-group-price-and-options.sql +1 -1
  222. package/src/migrations/1723652797-payments-paying-organization-id-fk.sql +2 -0
  223. package/src/migrations/1733317908-added-missing-organization-fk-on-registrations.sql +2 -0
  224. package/src/migrations/1733317910-paying-organization-id-fk.sql +2 -0
  225. package/src/migrations/1733504881-negative-invoice-id.sql +6 -0
  226. package/src/migrations/1733994455-balance-item-status-open.ts +30 -0
  227. package/src/migrations/1763216320-bigint-balance-item-payments.sql +2 -0
  228. package/src/migrations/1763216320-bigint-balance-items.sql +5 -0
  229. package/src/migrations/1763216320-bigint-orders.sql +2 -0
  230. package/src/migrations/1763216320-bigint-payments.sql +2 -0
  231. package/src/migrations/1763216332-bigint-balance-item-price-total.sql +2 -0
  232. package/src/migrations/1769087808-corrected-invoice-user-agent.sql +2 -0
  233. package/src/migrations/1769087809-payments-invoice-id.sql +2 -0
  234. package/src/migrations/1772033555-balance-item-package-id.sql +2 -0
  235. package/src/migrations/1776873089-create-registration-invitations-table.sql +13 -0
  236. package/src/migrations/1778657958-payments-create-mandate.sql +2 -0
  237. package/src/migrations/1778657959-payments-mandate-id.sql +2 -0
  238. package/src/migrations/1778796615-payments-reversing-payment-id.sql +5 -0
  239. package/src/migrations/1778950642-price-invoiced.sql +2 -0
  240. package/src/migrations/1779443446-transfer-fees.sql +3 -0
  241. package/src/migrations/1779709174-used-register-code-balance-item-id.sql +5 -0
  242. package/src/migrations/1779968328-payments-admin-user-id.sql +5 -0
  243. package/src/migrations/1779970611-payments-refunded-amount.sql +2 -0
  244. package/src/migrations/1779972640-balance-items-failed-at.sql +2 -0
  245. package/src/migrations/1780328285-document-template-locked.sql +2 -0
  246. package/src/migrations/1780328286-document-locked.sql +2 -0
  247. package/src/migrations/1780412083-documents-set-locked.ts +18 -0
  248. package/src/migrations/1780928401-v1-groups-migration-data.ts +50 -0
  249. package/src/models/BalanceItem.ts +98 -43
  250. package/src/models/CachedBalance.test.ts +46 -46
  251. package/src/models/CachedBalance.ts +7 -7
  252. package/src/models/Document.ts +34 -13
  253. package/src/models/DocumentTemplate.ts +56 -17
  254. package/src/models/Email.test.ts +3 -3
  255. package/src/models/Email.ts +28 -49
  256. package/src/models/EmailVerificationCode.ts +8 -22
  257. package/src/models/Event.ts +6 -4
  258. package/src/models/EventNotification.ts +6 -6
  259. package/src/models/Group.ts +24 -3
  260. package/src/models/Invoice.ts +10 -9
  261. package/src/models/MemberPlatformMembership.test.ts +70 -0
  262. package/src/models/MemberPlatformMembership.ts +16 -12
  263. package/src/models/MollieToken.ts +42 -102
  264. package/src/models/Order.ts +14 -26
  265. package/src/models/Organization.ts +143 -86
  266. package/src/models/PasswordToken.ts +21 -21
  267. package/src/models/Payment.ts +61 -4
  268. package/src/models/Registration.ts +6 -5
  269. package/src/models/RegistrationInvitation.ts +40 -0
  270. package/src/models/STCredit.ts +32 -0
  271. package/src/models/STInvoice.ts +11 -5
  272. package/src/models/STPackage.ts +19 -14
  273. package/src/models/UsedRegisterCode.ts +34 -0
  274. package/src/models/User.ts +6 -7
  275. package/src/models/_relations.ts +29 -0
  276. package/src/models/addresses/City.ts +8 -6
  277. package/src/models/addresses/PostalCode.test.ts +1 -0
  278. package/src/models/addresses/PostalCode.ts +5 -3
  279. package/src/models/addresses/Street.ts +6 -4
  280. package/src/models/index.ts +3 -0
  281. package/src/models/v1GroupMigrationData.ts +43 -0
  282. package/dist/helpers/MemberMerger.d.ts +0 -14
  283. package/dist/helpers/MemberMerger.d.ts.map +0 -1
  284. package/dist/helpers/MemberMerger.js +0 -364
  285. package/dist/helpers/MemberMerger.js.map +0 -1
  286. package/dist/migrations/1720080975-convert-charset.sql +0 -85
  287. package/dist/migrations/1723202126-member-number-index.sql +0 -2
  288. package/dist/models/OneTimeToken.d.ts +0 -38
  289. package/dist/models/OneTimeToken.d.ts.map +0 -1
  290. package/dist/models/OneTimeToken.js +0 -125
  291. package/dist/models/OneTimeToken.js.map +0 -1
  292. package/src/helpers/MemberMerger.test.ts +0 -782
  293. package/src/helpers/MemberMerger.ts +0 -577
  294. package/src/migrations/1720080975-convert-charset.sql +0 -85
  295. package/src/migrations/1723202126-member-number-index.sql +0 -2
  296. package/src/models/OneTimeToken.ts +0 -133
@@ -1,4 +1,5 @@
1
+ SET FOREIGN_KEY_CHECKS=0;
1
2
  ALTER TABLE `groups`
2
3
  ADD COLUMN `waitingListId` varchar(36) NULL AFTER `defaultAgeGroupId`;
3
-
4
4
  ALTER TABLE `groups` ADD FOREIGN KEY (`waitingListId`) REFERENCES `groups` (`id`) ON UPDATE CASCADE ON DELETE SET NULL;
5
+ SET FOREIGN_KEY_CHECKS=1;
@@ -1,2 +1,4 @@
1
+ SET FOREIGN_KEY_CHECKS=0;
1
2
  ALTER TABLE `balance_items` ADD COLUMN `payingOrganizationId` varchar(36) NULL;
2
3
  ALTER TABLE `balance_items` ADD FOREIGN KEY (`payingOrganizationId`) REFERENCES `organizations` (`id`) ON UPDATE CASCADE ON DELETE SET NULL;
4
+ SET FOREIGN_KEY_CHECKS=1;
@@ -1,2 +1,4 @@
1
+ SET FOREIGN_KEY_CHECKS=0;
1
2
  ALTER TABLE `balance_items` ADD COLUMN `dependingBalanceItemId` varchar(36) NULL;
2
3
  ALTER TABLE `balance_items` ADD FOREIGN KEY (`dependingBalanceItemId`) REFERENCES `balance_items` (`id`) ON UPDATE CASCADE ON DELETE SET NULL;
4
+ SET FOREIGN_KEY_CHECKS=1;
@@ -1,3 +1,3 @@
1
1
  ALTER TABLE `registrations`
2
2
  ADD COLUMN `options` json NOT NULL DEFAULT ('{"value": [], "version": 0}') AFTER `price`,
3
- ADD COLUMN `groupPrice` json NOT NULL DEFAULT ('{"value": {"id": "unknown", "name": "Onbekend", "price": {"price": 0, "reducedPrice": null}}, "version": 0}') AFTER `price`;
3
+ ADD COLUMN `groupPrice` json NOT NULL DEFAULT ('{"value": {"id": "unknown", "name": "Standaardtarief", "price": {"price": 0, "reducedPrice": null}}, "version": 0}') AFTER `price`;
@@ -1,2 +1,4 @@
1
1
 
2
+ SET FOREIGN_KEY_CHECKS=0;
2
3
  ALTER TABLE `payments` ADD FOREIGN KEY (`payingOrganizationId`) REFERENCES `organizations` (`id`) ON UPDATE CASCADE ON DELETE SET NULL;
4
+ SET FOREIGN_KEY_CHECKS=1;
@@ -1 +1,3 @@
1
+ SET FOREIGN_KEY_CHECKS=0;
1
2
  ALTER TABLE `registrations` ADD FOREIGN KEY (`organizationId`) REFERENCES `organizations` (`id`) ON UPDATE CASCADE ON DELETE CASCADE;
3
+ SET FOREIGN_KEY_CHECKS=1;
@@ -1 +1,3 @@
1
+ SET FOREIGN_KEY_CHECKS=0;
1
2
  ALTER TABLE `registrations` ADD FOREIGN KEY (`payingOrganizationId`) REFERENCES `organizations` (`id`) ON UPDATE CASCADE ON DELETE SET NULL;
3
+ SET FOREIGN_KEY_CHECKS=1;
@@ -0,0 +1,6 @@
1
+ ALTER TABLE
2
+ `stamhoofd_invoices`
3
+ ADD
4
+ COLUMN `negativeInvoiceId` varchar(36) NULL,
5
+ ADD
6
+ FOREIGN KEY (`negativeInvoiceId`) REFERENCES `stamhoofd_invoices` (`id`) ON UPDATE CASCADE ON DELETE SET NULL;
@@ -0,0 +1,4 @@
1
+ import { Migration } from '@simonbackx/simple-database';
2
+ declare const _default: Migration;
3
+ export default _default;
4
+ //# sourceMappingURL=1733994455-balance-item-status-open.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"1733994455-balance-item-status-open.d.ts","sourceRoot":"","sources":["../../src/migrations/1733994455-balance-item-status-open.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,SAAS,EAAE,MAAM,6BAA6B,CAAC;;AAGlE,wBA0BG"}
@@ -0,0 +1,28 @@
1
+ import { Database, Migration } from '@simonbackx/simple-database';
2
+ import { BalanceItemStatus } from '@stamhoofd/structures';
3
+ export default new Migration(async () => {
4
+ if (STAMHOOFD.environment === 'test') {
5
+ console.log('skipped in tests');
6
+ return;
7
+ }
8
+ const query = `
9
+ UPDATE
10
+ balance_items
11
+ SET status = ?
12
+ WHERE status IN (?)`;
13
+ await Database.update(query, [
14
+ BalanceItemStatus.Due,
15
+ ['Paid', 'Pending'],
16
+ ]);
17
+ const q2 = `
18
+ UPDATE
19
+ balance_items
20
+ SET status = ?,
21
+ amount = coalesce(nullif(ROUND(coalesce(pricePaid / nullif(unitPrice, 0), 0)), 0), 1)
22
+ WHERE amount = 0 AND status = ?`;
23
+ await Database.update(q2, [
24
+ BalanceItemStatus.Canceled,
25
+ BalanceItemStatus.Due,
26
+ ]);
27
+ });
28
+ //# sourceMappingURL=1733994455-balance-item-status-open.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"1733994455-balance-item-status-open.js","sourceRoot":"","sources":["../../src/migrations/1733994455-balance-item-status-open.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D,eAAe,IAAI,SAAS,CAAC,KAAK,IAAI,EAAE;IACpC,IAAI,SAAS,CAAC,WAAW,KAAK,MAAM,EAAE,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QAChC,OAAO;IACX,CAAC;IAED,MAAM,KAAK,GAAG;;;;4BAIU,CAAC;IACzB,MAAM,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE;QACzB,iBAAiB,CAAC,GAAG;QACrB,CAAC,MAAM,EAAE,SAAS,CAAC;KACtB,CAAC,CAAC;IAEH,MAAM,EAAE,GAAG;;;;;wCAKyB,CAAC;IACrC,MAAM,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE;QACtB,iBAAiB,CAAC,QAAQ;QAC1B,iBAAiB,CAAC,GAAG;KACxB,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ ALTER TABLE `balance_item_payments`
2
+ CHANGE `price` `price` bigint NOT NULL DEFAULT '0';
@@ -0,0 +1,5 @@
1
+ ALTER TABLE `balance_items`
2
+ CHANGE `unitPrice` `unitPrice` bigint NOT NULL DEFAULT '0',
3
+ CHANGE `pricePaid` `pricePaid` bigint NOT NULL DEFAULT '0',
4
+ CHANGE `pricePending` `pricePending` bigint NOT NULL DEFAULT '0',
5
+ CHANGE `priceOpen` `priceOpen` bigint NOT NULL DEFAULT '0';
@@ -0,0 +1,2 @@
1
+ ALTER TABLE `webshop_orders`
2
+ CHANGE `totalPrice` `totalPrice` bigint NULL;
@@ -0,0 +1,2 @@
1
+ ALTER TABLE `payments`
2
+ CHANGE `price` `price` bigint NOT NULL DEFAULT '0';
@@ -0,0 +1,2 @@
1
+ ALTER TABLE `balance_items`
2
+ CHANGE `priceTotal` `priceTotal` bigint NOT NULL DEFAULT '0';
@@ -0,0 +1,2 @@
1
+ ALTER TABLE `invoices`
2
+ CHANGE `userAgent` `userAgent` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL;
@@ -1,3 +1,5 @@
1
+ SET FOREIGN_KEY_CHECKS=0;
1
2
  ALTER TABLE `payments`
2
3
  ADD COLUMN `invoiceId` varchar(36) NULL AFTER `customer`,
3
4
  ADD FOREIGN KEY (`invoiceId`) REFERENCES `invoices` (`id`) ON UPDATE CASCADE ON DELETE SET NULL;
5
+ SET FOREIGN_KEY_CHECKS=1;
@@ -1,3 +1,5 @@
1
+ SET FOREIGN_KEY_CHECKS=0;
1
2
  ALTER TABLE `balance_items`
2
3
  ADD COLUMN `packageId` varchar(36) NULL AFTER `memberId`,
3
4
  ADD FOREIGN KEY (`packageId`) REFERENCES `stamhoofd_packages` (`id`) ON UPDATE CASCADE ON DELETE SET NULL;
5
+ SET FOREIGN_KEY_CHECKS=1;
@@ -0,0 +1,13 @@
1
+ CREATE TABLE `registration_invitations` (
2
+ `id` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
3
+ `memberId` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
4
+ `groupId` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
5
+ `organizationId` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
6
+ `createdAt` datetime NOT NULL,
7
+ PRIMARY KEY (`id`),
8
+ UNIQUE KEY `uk_member_group` (`memberId`, `groupId`),
9
+ KEY `idx_memberId` (`memberId`) USING BTREE,
10
+ CONSTRAINT `registration_invitations_ibfk_1` FOREIGN KEY (`memberId`) REFERENCES `members` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
11
+ CONSTRAINT `registration_invitations_ibfk_2` FOREIGN KEY (`groupId`) REFERENCES `groups` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
12
+ CONSTRAINT `registration_invitations_ibfk_3` FOREIGN KEY (`organizationId`) REFERENCES `organizations` (`id`) ON UPDATE CASCADE ON DELETE CASCADE
13
+ ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci;
@@ -0,0 +1,2 @@
1
+ ALTER TABLE `payments`
2
+ ADD COLUMN `createMandate` json NULL AFTER `stripeAccountId`;
@@ -0,0 +1,2 @@
1
+ ALTER TABLE `payments`
2
+ ADD COLUMN `mandateId` varchar(36) NULL AFTER `stripeAccountId`;
@@ -0,0 +1,5 @@
1
+ SET FOREIGN_KEY_CHECKS=0;
2
+ ALTER TABLE `payments`
3
+ ADD COLUMN `reversingPaymentId` varchar(36) NULL AFTER `invoiceId`,
4
+ ADD FOREIGN KEY (`reversingPaymentId`) REFERENCES `payments` (`id`) ON UPDATE CASCADE ON DELETE SET NULL;
5
+ SET FOREIGN_KEY_CHECKS=1;
@@ -0,0 +1,2 @@
1
+ ALTER TABLE `balance_items`
2
+ ADD COLUMN `priceInvoiced` int NOT NULL DEFAULT '0' AFTER `priceOpen`;
@@ -0,0 +1,3 @@
1
+ ALTER TABLE `payments`
2
+ ADD COLUMN `transferFeeManual` int NOT NULL DEFAULT '0' AFTER `transferFee`,
3
+ ADD COLUMN `transferFeeManualCharged` int NOT NULL DEFAULT '0' AFTER `transferFeeManual`;
@@ -0,0 +1,5 @@
1
+ SET FOREIGN_KEY_CHECKS=0;
2
+ ALTER TABLE `used_register_codes`
3
+ ADD COLUMN `balanceItemId` varchar(36) NULL AFTER `code`,
4
+ ADD FOREIGN KEY (`balanceItemId`) REFERENCES `balance_items` (`id`) ON UPDATE CASCADE ON DELETE SET NULL;
5
+ SET FOREIGN_KEY_CHECKS=1;
@@ -0,0 +1,5 @@
1
+ SET FOREIGN_KEY_CHECKS=0;
2
+ ALTER TABLE `payments`
3
+ ADD COLUMN `adminUserId` varchar(36) NULL AFTER `organizationId`,
4
+ ADD FOREIGN KEY (`adminUserId`) REFERENCES `users` (`id`) ON UPDATE CASCADE ON DELETE SET NULL;
5
+ SET FOREIGN_KEY_CHECKS=1;
@@ -0,0 +1,2 @@
1
+ ALTER TABLE `payments`
2
+ ADD COLUMN `refundedAmount` bigint NOT NULL DEFAULT '0' AFTER `price`;
@@ -0,0 +1,2 @@
1
+ ALTER TABLE `balance_items`
2
+ ADD COLUMN `failedAt` datetime NULL AFTER `paidAt`;
@@ -0,0 +1,2 @@
1
+ ALTER TABLE `document_templates`
2
+ ADD COLUMN `isLocked` tinyint(1) NOT NULL DEFAULT '0' AFTER `publishedAt`;
@@ -0,0 +1,2 @@
1
+ ALTER TABLE `documents`
2
+ ADD COLUMN `isLocked` tinyint(1) NOT NULL DEFAULT '0' AFTER `number`;
@@ -0,0 +1,4 @@
1
+ import { Migration } from '@simonbackx/simple-database';
2
+ declare const _default: Migration;
3
+ export default _default;
4
+ //# sourceMappingURL=1780412083-documents-set-locked.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"1780412083-documents-set-locked.d.ts","sourceRoot":"","sources":["../../src/migrations/1780412083-documents-set-locked.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,SAAS,EAAE,MAAM,6BAA6B,CAAC;;AAElE,wBAeG"}
@@ -0,0 +1,14 @@
1
+ import { Database, Migration } from '@simonbackx/simple-database';
2
+ export default new Migration(async () => {
3
+ process.stdout.write('\n');
4
+ if (STAMHOOFD.userMode === 'platform') {
5
+ console.log('Skipped set documents locked for userMode platform.');
6
+ return Promise.resolve();
7
+ }
8
+ console.log('Start locking document templates.');
9
+ await Database.statement(`update document_templates set isLocked = 1 where status = 'Published';`);
10
+ console.log('Start locking documents.');
11
+ await Database.statement(`update documents set isLocked = 1 where status = 'Published';`);
12
+ return Promise.resolve();
13
+ });
14
+ //# sourceMappingURL=1780412083-documents-set-locked.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"1780412083-documents-set-locked.js","sourceRoot":"","sources":["../../src/migrations/1780412083-documents-set-locked.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAElE,eAAe,IAAI,SAAS,CAAC,KAAK,IAAI,EAAE;IACpC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAE3B,IAAI,SAAS,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;QACpC,OAAO,CAAC,GAAG,CAAC,qDAAqD,CAAC,CAAC;QACnE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;IACjD,MAAM,QAAQ,CAAC,SAAS,CAAC,wEAAwE,CAAC,CAAC;IAEnG,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;IACxC,MAAM,QAAQ,CAAC,SAAS,CAAC,+DAA+D,CAAC,CAAC;IAE1F,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;AAC7B,CAAC,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { Migration } from '@simonbackx/simple-database';
2
+ declare const _default: Migration;
3
+ export default _default;
4
+ //# sourceMappingURL=1780928401-v1-groups-migration-data.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"1780928401-v1-groups-migration-data.d.ts","sourceRoot":"","sources":["../../src/migrations/1780928401-v1-groups-migration-data.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,SAAS,EAAE,MAAM,6BAA6B,CAAC;;AAClE,wBAuCG"}
@@ -0,0 +1,44 @@
1
+ import { Database, Migration } from '@simonbackx/simple-database';
2
+ export default new Migration(async () => {
3
+ if (STAMHOOFD.environment === 'test') {
4
+ console.log('skipped in tests');
5
+ return;
6
+ }
7
+ if (STAMHOOFD.userMode === 'platform') {
8
+ console.log('skipped for userMode platform');
9
+ return;
10
+ }
11
+ console.log('start create v1_groups_migration_data table');
12
+ // create table to keep track of which combination of group id and cycle has been migrated to a new group after the migration from Stamhoofd v1 to v2
13
+ const groupsQuery = `CREATE TABLE \`v1_groups_migration_data\` (
14
+ \`newGroupId\` varchar(36) NOT NULL,
15
+ \`oldGroupId\` varchar(36) NOT NULL,
16
+ \`oldCycle\` int NOT NULL DEFAULT '0',
17
+ PRIMARY KEY (\`newGroupId\`),
18
+ UNIQUE KEY \`oldKey\` (\`oldGroupId\`,\`oldCycle\`) USING BTREE,
19
+ CONSTRAINT \`v1_groups_migration_data_ibfk_1\` FOREIGN KEY (\`newGroupId\`) REFERENCES \`groups\` (\`id\`) ON DELETE CASCADE ON UPDATE CASCADE
20
+ ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;`;
21
+ await Database.statement(groupsQuery);
22
+ console.log('finished create v1_groups_migration_data table');
23
+ console.log('start create v1_waiting_list_migration_data table');
24
+ // create table to keep track of which combination of waiting list group id and cycle has been migrated to a new group after the migration from Stamhoofd v1 to v2
25
+ const waitingListsQuery = `CREATE TABLE \`v1_waiting_list_migration_data\` (
26
+ \`newGroupId\` varchar(36) NOT NULL,
27
+ \`oldGroupId\` varchar(36) NOT NULL,
28
+ \`oldCycle\` int NOT NULL DEFAULT '0',
29
+ PRIMARY KEY (\`newGroupId\`),
30
+ UNIQUE KEY \`oldKey\` (\`oldGroupId\`,\`oldCycle\`) USING BTREE,
31
+ CONSTRAINT \`v1_waiting_list_migration_data_ibfk_1\` FOREIGN KEY (\`newGroupId\`) REFERENCES \`groups\` (\`id\`) ON DELETE CASCADE ON UPDATE CASCADE
32
+ ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;`;
33
+ await Database.statement(waitingListsQuery);
34
+ console.log('finished create v1_waiting_list_migration_data table');
35
+ });
36
+ // CREATE TABLE `v1_groups_migration_data` (
37
+ // `newGroupId` varchar(36) NOT NULL,
38
+ // `oldGroupId` varchar(36) NOT NULL,
39
+ // `oldCycle` int NOT NULL DEFAULT '0',
40
+ // PRIMARY KEY (`newGroupId`),
41
+ // UNIQUE KEY `oldKey` (`oldGroupId`,`oldCycle`) USING BTREE,
42
+ // CONSTRAINT `groups_ibfk_1` FOREIGN KEY (`newGroupId`) REFERENCES `groups` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
43
+ // ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
44
+ //# sourceMappingURL=1780928401-v1-groups-migration-data.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"1780928401-v1-groups-migration-data.js","sourceRoot":"","sources":["../../src/migrations/1780928401-v1-groups-migration-data.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAClE,eAAe,IAAI,SAAS,CAAC,KAAK,IAAI,EAAE;IACpC,IAAI,SAAS,CAAC,WAAW,KAAK,MAAM,EAAE,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QAChC,OAAO;IACX,CAAC;IAED,IAAI,SAAS,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;QACpC,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;QAC7C,OAAO;IACX,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC;IAE3D,qJAAqJ;IACrJ,MAAM,WAAW,GAAG;;;;;;;wEAOgD,CAAC;IAErE,MAAM,QAAQ,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IACtC,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;IAE9D,OAAO,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC;IACjE,kKAAkK;IAClK,MAAM,iBAAiB,GAAG;;;;;;;wEAO0C,CAAC;IACrE,MAAM,QAAQ,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;IAE5C,OAAO,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAAC;AACxE,CAAC,CAAC,CAAC;AAEH,4CAA4C;AAC5C,yCAAyC;AACzC,yCAAyC;AACzC,2CAA2C;AAC3C,gCAAgC;AAChC,+DAA+D;AAC/D,yHAAyH;AACzH,sEAAsE"}
@@ -108,6 +108,10 @@ export declare class BalanceItem extends QueryableModel {
108
108
  * This is required for correct VAT calculations without intermediate rounding.
109
109
  */
110
110
  priceOpen: number;
111
+ /**
112
+ * Cached value, for optimizations
113
+ */
114
+ priceInvoiced: number;
111
115
  /**
112
116
  * todo: deprecate ('pending' and 'paid') + 'hidden' status and replace with 'due' + 'hidden'
113
117
  * -> maybe add 'due' (due if dueAt is null or <= now), 'hidden' (never due), 'future' (= not due until dueAt - but not possible to pay earlier)
@@ -122,6 +126,10 @@ export declare class BalanceItem extends QueryableModel {
122
126
  * Marking a balance item as 'paid' can have side effects. To prevent executing these side effects multiple times, we store it in here.
123
127
  */
124
128
  paidAt: Date | null;
129
+ /**
130
+ * Marking a balance item as 'failed' can have side effects. To prevent executing these side effects multiple times, we store it in here.
131
+ */
132
+ failedAt: Date | null;
125
133
  createdAt: Date;
126
134
  updatedAt: Date;
127
135
  /**
@@ -203,6 +211,10 @@ export declare class BalanceItem extends QueryableModel {
203
211
  * Update the outstanding balance of multiple members in one go (or all members)
204
212
  */
205
213
  static updatePricePaid(balanceItemIds: string[] | 'all'): Promise<void>;
214
+ /**
215
+ * Update the outstanding balance of multiple members in one go (or all members)
216
+ */
217
+ static updateInvoiced(balanceItemIds: string[] | 'all'): Promise<number>;
206
218
  static loadPayments(items: (BalanceItem | {
207
219
  id: string;
208
220
  })[]): Promise<{
@@ -213,6 +225,7 @@ export declare class BalanceItem extends QueryableModel {
213
225
  static getStructureWithPayments(items: (BalanceItem | BalanceItemStruct)[]): Promise<BalanceItemWithPayments[]>;
214
226
  static getStructureWithPrivatePayments(items: BalanceItem[]): Promise<BalanceItemWithPrivatePayments[]>;
215
227
  static balanceItemsForUsersAndMembers(organizationId: string | null, userIds: string[], memberIds: string[]): Promise<BalanceItem[]>;
216
- static balanceItemsForOrganization(organizationId: string): Promise<BalanceItem[]>;
228
+ static balanceItemsForOrganization(payingOrganizationId: string, organizationId?: string): Promise<BalanceItem[]>;
229
+ save(...args: Parameters<QueryableModel['save']>): Promise<boolean>;
217
230
  }
218
231
  //# sourceMappingURL=BalanceItem.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BalanceItem.d.ts","sourceRoot":"","sources":["../../src/models/BalanceItem.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BalanceItem.d.ts","sourceRoot":"","sources":["../../src/models/BalanceItem.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,8 @@ import { BalanceItemPaymentWithPayment, BalanceItemPaymentWithPrivatePayment, Ba
4
4
  import { Formatter, STMath } from '@stamhoofd/utility';
5
5
  import { v4 as uuidv4 } from 'uuid';
6
6
  import { EnumDecoder, MapDecoder } from '@simonbackx/simple-encoding';
7
- import { QueryableModel } from '@stamhoofd/sql';
7
+ import { SimpleError } from '@simonbackx/simple-errors';
8
+ import { QueryableModel, SQL } from '@stamhoofd/sql';
8
9
  import { Payment } from './Payment.js';
9
10
  /**
10
11
  * Keeps track of how much a member/user owes or needs to be reimbursed.
@@ -118,6 +119,10 @@ export class BalanceItem extends QueryableModel {
118
119
  * This is required for correct VAT calculations without intermediate rounding.
119
120
  */
120
121
  priceOpen = 0;
122
+ /**
123
+ * Cached value, for optimizations
124
+ */
125
+ priceInvoiced = 0;
121
126
  /**
122
127
  * todo: deprecate ('pending' and 'paid') + 'hidden' status and replace with 'due' + 'hidden'
123
128
  * -> maybe add 'due' (due if dueAt is null or <= now), 'hidden' (never due), 'future' (= not due until dueAt - but not possible to pay earlier)
@@ -132,6 +137,10 @@ export class BalanceItem extends QueryableModel {
132
137
  * Marking a balance item as 'paid' can have side effects. To prevent executing these side effects multiple times, we store it in here.
133
138
  */
134
139
  paidAt = null;
140
+ /**
141
+ * Marking a balance item as 'failed' can have side effects. To prevent executing these side effects multiple times, we store it in here.
142
+ */
143
+ failedAt = null;
135
144
  createdAt;
136
145
  updatedAt;
137
146
  /**
@@ -403,6 +412,43 @@ export class BalanceItem extends QueryableModel {
403
412
  ${secondWhere}`;
404
413
  await Database.update(query, params);
405
414
  }
415
+ /**
416
+ * Update the outstanding balance of multiple members in one go (or all members)
417
+ */
418
+ static async updateInvoiced(balanceItemIds) {
419
+ if (balanceItemIds !== 'all' && balanceItemIds.length === 0) {
420
+ return 0;
421
+ }
422
+ const params = [];
423
+ let firstWhere = '';
424
+ let secondWhere = '';
425
+ if (balanceItemIds !== 'all') {
426
+ firstWhere = ` AND balanceItemId IN (?)`;
427
+ params.push(balanceItemIds);
428
+ params.push(balanceItemIds);
429
+ secondWhere = `WHERE balance_items.id IN (?)`;
430
+ params.push(balanceItemIds);
431
+ }
432
+ // Note: this query only works in MySQL because of the SET assignment behaviour allowing to reference newly set values
433
+ const query = `
434
+ UPDATE
435
+ balance_items
436
+ LEFT JOIN (
437
+ SELECT
438
+ balanceItemId,
439
+ sum(invoiced_balance_items.balanceInvoicedAmount) AS invoiced
440
+ FROM
441
+ invoiced_balance_items
442
+ LEFT JOIN invoices ON invoices.id = invoiced_balance_items.invoiceId
443
+ WHERE
444
+ invoices.number is not null${firstWhere}
445
+ GROUP BY
446
+ balanceItemId
447
+ ) invoiced ON invoiced.balanceItemId = balance_items.id
448
+ SET balance_items.priceInvoiced = coalesce(invoiced.invoiced, 0)
449
+ ${secondWhere}`;
450
+ return (await Database.update(query, params))[0].affectedRows;
451
+ }
406
452
  static async loadPayments(items) {
407
453
  if (items.length == 0) {
408
454
  return { balanceItemPayments: [], payments: [] };
@@ -459,53 +505,51 @@ export class BalanceItem extends QueryableModel {
459
505
  });
460
506
  }
461
507
  static async balanceItemsForUsersAndMembers(organizationId, userIds, memberIds) {
462
- if (memberIds.length == 0 && userIds.length == 0) {
508
+ if (memberIds.length === 0 && userIds.length === 0) {
463
509
  return [];
464
510
  }
465
- const params = [];
466
- const where = [];
467
- if (memberIds.length) {
468
- if (memberIds.length == 1) {
469
- where.push(`memberId = ?`);
470
- params.push(memberIds[0]);
471
- }
472
- else {
473
- where.push(`memberId IN (?)`);
474
- params.push(memberIds);
475
- }
511
+ const base = BalanceItem.select()
512
+ .whereNot('status', BalanceItemStatus.Hidden);
513
+ if (organizationId) {
514
+ base.andWhere('organizationId', organizationId);
476
515
  }
477
- // Note here, we don't search for memberId IS NULL restriction in MySQL because it slows down the query too much (500ms)
478
- // Better if we do it in code here
479
- if (userIds.length) {
480
- if (userIds.length == 1) {
481
- where.push('userId = ?');
482
- params.push(userIds[0]);
483
- }
484
- else {
485
- where.push('userId IN (?)');
486
- params.push(userIds);
487
- }
516
+ if (memberIds.length && userIds.length) {
517
+ // Don't include other members than the provided members
518
+ base.andWhere(SQL.where('memberId', memberIds)
519
+ // Include null member
520
+ .or(
521
+ // Don't include balances of other members, even when userId matches
522
+ // this allows removing access for a member
523
+ SQL.where('userId', userIds)
524
+ .and('memberId', null)));
488
525
  }
489
- const requiredWhere = [];
490
- if (organizationId) {
491
- requiredWhere.push('organizationId = ?');
492
- params.push(organizationId);
526
+ else if (memberIds.length) {
527
+ base.andWhere('memberId', memberIds);
493
528
  }
494
- const query = `SELECT ${BalanceItem.getDefaultSelect()} FROM ${BalanceItem.table} WHERE (${where.join(' OR ')}) ${requiredWhere.length ? (' AND ' + requiredWhere.join(' AND ')) : ''} AND ${BalanceItem.table}.status != ?`;
495
- params.push(BalanceItemStatus.Hidden);
496
- const [rows] = await Database.select(query, params);
497
- const balanceItems = BalanceItem.fromRows(rows, BalanceItem.table);
498
- // Filter out items of other members
499
- if (memberIds.length) {
500
- return balanceItems.filter(b => !b.memberId || memberIds.includes(b.memberId));
529
+ else if (userIds.length) {
530
+ base.andWhere('userId', userIds);
501
531
  }
502
- return balanceItems;
532
+ base.andWhere('priceOpen', '!=', 0);
533
+ return await base.fetch();
503
534
  }
504
- static async balanceItemsForOrganization(organizationId) {
505
- return await BalanceItem.select()
506
- .where('payingOrganizationId', organizationId)
507
- .whereNot('status', BalanceItemStatus.Hidden)
508
- .fetch();
535
+ static async balanceItemsForOrganization(payingOrganizationId, organizationId) {
536
+ const base = BalanceItem.select()
537
+ .where('payingOrganizationId', payingOrganizationId)
538
+ .whereNot('status', BalanceItemStatus.Hidden);
539
+ if (organizationId) {
540
+ base.where('organizationId', organizationId);
541
+ }
542
+ return await base.fetch();
543
+ }
544
+ save(...args) {
545
+ if (this.unitPrice % 100 !== 0) {
546
+ throw new SimpleError({
547
+ statusCode: 500,
548
+ code: 'unrounded_balance_item',
549
+ message: 'Balance item unitPrices should be rounded up to 1 cent',
550
+ });
551
+ }
552
+ return super.save(...args);
509
553
  }
510
554
  }
511
555
  __decorate([
@@ -592,6 +636,9 @@ __decorate([
592
636
  skipUpdate: true,
593
637
  })
594
638
  ], BalanceItem.prototype, "priceOpen", void 0);
639
+ __decorate([
640
+ column({ type: 'integer' })
641
+ ], BalanceItem.prototype, "priceInvoiced", void 0);
595
642
  __decorate([
596
643
  column({ type: 'string' })
597
644
  ], BalanceItem.prototype, "status", void 0);
@@ -601,6 +648,9 @@ __decorate([
601
648
  __decorate([
602
649
  column({ type: 'datetime', nullable: true })
603
650
  ], BalanceItem.prototype, "paidAt", void 0);
651
+ __decorate([
652
+ column({ type: 'datetime', nullable: true })
653
+ ], BalanceItem.prototype, "failedAt", void 0);
604
654
  __decorate([
605
655
  column({
606
656
  type: 'datetime', beforeSave(old) {
@@ -1 +1 @@
1
- {"version":3,"file":"BalanceItem.js","sourceRoot":"","sources":["../../src/models/BalanceItem.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BalanceItem.js","sourceRoot":"","sources":["../../src/models/BalanceItem.ts"],"names":[],"mappings":"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"}