@stamhoofd/backend 2.139.0 → 2.141.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 (69) hide show
  1. package/package.json +17 -17
  2. package/src/crons/fake-settlements.test.ts +129 -8
  3. package/src/crons/fake-settlements.ts +256 -9
  4. package/src/crons/index.ts +1 -1
  5. package/src/crons/invoices.ts +13 -8
  6. package/src/crons/settlement-sync.test.ts +39 -0
  7. package/src/crons/settlement-sync.ts +109 -0
  8. package/src/crons/stripe-invoices.ts +19 -13
  9. package/src/crons.ts +1 -5
  10. package/src/endpoints/auth/MFA.security.test.ts +76 -1
  11. package/src/endpoints/auth/VerifyEmailEndpoint.ts +14 -0
  12. package/src/endpoints/organization/dashboard/balance-items/GetBalanceItemBreakdownEndpoint.test.ts +16 -16
  13. package/src/endpoints/organization/dashboard/mollie/ConnectMollieEndpoint.ts +2 -2
  14. package/src/endpoints/organization/dashboard/organization/PatchOrganizationEndpoint.ts +1 -1
  15. package/src/endpoints/organization/dashboard/payments/GetPaymentBreakdownEndpoint.test.ts +14 -14
  16. package/src/endpoints/organization/dashboard/payments/GetPaymentsEndpoint.test.ts +150 -2
  17. package/src/endpoints/organization/dashboard/{stripe/GetStripePayoutsExportStatusEndpoint.ts → settlements/GetSettlementsSyncStatusEndpoint.ts} +9 -7
  18. package/src/endpoints/organization/dashboard/settlements/SettlementsExportEndpoint.test.ts +157 -0
  19. package/src/endpoints/organization/dashboard/settlements/SettlementsExportEndpoint.ts +140 -0
  20. package/src/endpoints/organization/dashboard/settlements/SettlementsSyncEndpoint.test.ts +110 -0
  21. package/src/endpoints/organization/dashboard/settlements/SettlementsSyncEndpoint.ts +104 -0
  22. package/src/excel-loaders/payments.ts +18 -1
  23. package/src/helpers/ApplicationFeeDetails.ts +66 -0
  24. package/src/helpers/ApplicationFeeInvoicer.test.ts +285 -0
  25. package/src/helpers/ApplicationFeeInvoicer.ts +419 -0
  26. package/src/helpers/AuthenticatedStructures.ts +14 -1
  27. package/src/helpers/MollieSettlementSync.test.ts +361 -0
  28. package/src/helpers/MollieSettlementSync.ts +323 -0
  29. package/src/helpers/MollieSettlementSyncRunner.ts +53 -0
  30. package/src/helpers/ProviderSettlementSyncRunner.ts +37 -0
  31. package/src/helpers/SettlementExporter.test.ts +366 -0
  32. package/src/helpers/SettlementExporter.ts +583 -0
  33. package/src/helpers/SettlementSyncRunner.test.ts +165 -0
  34. package/src/helpers/SettlementSyncRunner.ts +64 -0
  35. package/src/helpers/StripeHelper.ts +2 -1
  36. package/src/helpers/StripeSettlementSync.test.ts +828 -0
  37. package/src/helpers/StripeSettlementSync.ts +947 -0
  38. package/src/helpers/StripeSettlementSyncRunner.test.ts +66 -0
  39. package/src/helpers/StripeSettlementSyncRunner.ts +152 -0
  40. package/src/helpers/TwoFactorHelper.ts +1 -1
  41. package/src/helpers/WebmasterReport.test.ts +109 -0
  42. package/src/helpers/WebmasterReport.ts +115 -0
  43. package/src/helpers/getPaymentIdForStripeCharge.test.ts +91 -0
  44. package/src/helpers/getPaymentIdForStripeCharge.ts +71 -0
  45. package/src/helpers/streamForBreakdown.ts +2 -2
  46. package/src/services/ApplicationFeeService.test.ts +256 -0
  47. package/src/services/ApplicationFeeService.ts +283 -0
  48. package/src/services/DocumentRenderService.test.ts +72 -1
  49. package/src/services/InvoiceService.ts +18 -1
  50. package/src/services/PaymentService.ts +8 -0
  51. package/src/services/SettlementService.test.ts +559 -0
  52. package/src/services/SettlementService.ts +607 -0
  53. package/src/sql-filters/orders.ts +6 -2
  54. package/src/sql-filters/payment-settlement.test.ts +2 -2
  55. package/src/sql-filters/payments.ts +73 -0
  56. package/tests/filters/orders.test.ts +635 -0
  57. package/tests/helpers/MollieMocker.ts +64 -6
  58. package/tests/helpers/StripeMocker.ts +209 -17
  59. package/src/crons/stripe-payout-reports.ts +0 -69
  60. package/src/endpoints/organization/dashboard/stripe/StripePayoutsExportEndpoint.test.ts +0 -103
  61. package/src/endpoints/organization/dashboard/stripe/StripePayoutsExportEndpoint.ts +0 -125
  62. package/src/helpers/CheckSettlements.test.ts +0 -190
  63. package/src/helpers/CheckSettlements.ts +0 -237
  64. package/src/helpers/StripeInvoicer.ts +0 -419
  65. package/src/helpers/StripePayoutChecker.ts +0 -193
  66. package/src/helpers/StripePayoutExportData.ts +0 -195
  67. package/src/helpers/StripePayoutExportExcel.ts +0 -280
  68. package/src/helpers/StripePayoutReporter.test.ts +0 -419
  69. package/src/helpers/StripePayoutReporter.ts +0 -585
@@ -180,6 +180,79 @@ export const paymentFilterCompilers: SQLFilterDefinitions = {
180
180
  ),
181
181
  balanceItemPaymentsCompilers,
182
182
  ),
183
+ // The stored payouts this payment was part of (the m2m rows, not the legacy JSON blob above)
184
+ settlements: createExistsFilter(
185
+ SQL.select()
186
+ .from(
187
+ SQL.table('payment_settlements'),
188
+ ).join(
189
+ SQL.join(
190
+ SQL.table('settlements'),
191
+ ).where(
192
+ SQL.column('settlements', 'id'),
193
+ SQL.column('payment_settlements', 'settlementId'),
194
+ ),
195
+ ).where(
196
+ SQL.column('payment_settlements', 'paymentId'),
197
+ SQL.column('payments', 'id'),
198
+ ),
199
+ {
200
+ ...baseSQLFilterCompilers,
201
+ amount: createColumnFilter({
202
+ expression: SQL.column('payment_settlements', 'amount'),
203
+ type: SQLValueType.Number,
204
+ nullable: false,
205
+ }),
206
+ externalId: createColumnFilter({
207
+ expression: SQL.column('payment_settlements', 'externalId'),
208
+ type: SQLValueType.String,
209
+ nullable: false,
210
+ }),
211
+ occurredAt: createColumnFilter({
212
+ expression: SQL.column('payment_settlements', 'occurredAt'),
213
+ type: SQLValueType.Datetime,
214
+ nullable: false,
215
+ }),
216
+ settlement: {
217
+ ...baseSQLFilterCompilers,
218
+ id: createColumnFilter({
219
+ expression: SQL.column('settlements', 'id'),
220
+ type: SQLValueType.String,
221
+ nullable: false,
222
+ }),
223
+ provider: createColumnFilter({
224
+ expression: SQL.column('settlements', 'provider'),
225
+ type: SQLValueType.String,
226
+ nullable: false,
227
+ }),
228
+ externalId: createColumnFilter({
229
+ expression: SQL.column('settlements', 'externalId'),
230
+ type: SQLValueType.String,
231
+ nullable: false,
232
+ }),
233
+ reference: createColumnFilter({
234
+ expression: SQL.column('settlements', 'reference'),
235
+ type: SQLValueType.String,
236
+ nullable: false,
237
+ }),
238
+ settledAt: createColumnFilter({
239
+ expression: SQL.column('settlements', 'settledAt'),
240
+ type: SQLValueType.Datetime,
241
+ nullable: false,
242
+ }),
243
+ amount: createColumnFilter({
244
+ expression: SQL.column('settlements', 'amount'),
245
+ type: SQLValueType.Number,
246
+ nullable: false,
247
+ }),
248
+ stripeAccountId: createColumnFilter({
249
+ expression: SQL.column('settlements', 'stripeAccountId'),
250
+ type: SQLValueType.String,
251
+ nullable: true,
252
+ }),
253
+ },
254
+ },
255
+ ),
183
256
  };
184
257
 
185
258
  /**