feat(billing): add automatic booking for Sportförderbeitrag in compliance with § 16 ÖTO

Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
This commit is contained in:
2026-04-15 11:17:25 +02:00
parent c542094196
commit 8c804832d8
5 changed files with 55 additions and 9 deletions
@@ -98,15 +98,15 @@ class NennungBillingIntegrationTest {
// WHEN: Nennung einreichen
nennungUseCases.nennungEinreichen(request)
// THEN: Konto muss existieren und Saldo muss -25,00 EUR sein (Gebühr)
// THEN: Konto muss existieren und Saldo muss -26,00 EUR sein (25,00 Gebühr + 1,00 Sportförderbeitrag)
val konto = kontoService.getKonto(turnierId, reiterId)
assertNotNull(konto, "Konto sollte automatisch erstellt worden sein")
assertEquals(-2500L, konto?.saldoCent)
assertEquals(-2600L, konto?.saldoCent)
val buchungen = kontoService.getBuchungsHistorie(konto!!.kontoId)
assertEquals(1, buchungen.size)
assertEquals(BuchungsTyp.NENNGELD, buchungen[0].typ)
assertEquals(-2500L, buchungen[0].betragCent)
assertEquals(2, buchungen.size)
assertNotNull(buchungen.find { it.typ == BuchungsTyp.NENNGELD })
assertNotNull(buchungen.find { it.typ == BuchungsTyp.SPORTFOERDERBEITRAG })
}
@Test
@@ -165,13 +165,14 @@ class NennungBillingIntegrationTest {
// WHEN: Nennung einreichen
nennungUseCases.nennungEinreichen(request)
// THEN: Saldo muss -45,00 EUR sein (-30 - 15)
// THEN: Saldo muss -46,00 EUR sein (-30 - 15 - 1 Sportförderbeitrag)
val konto = kontoService.getKonto(turnierId, reiterId)
assertEquals(-4500L, konto?.saldoCent)
assertEquals(-4600L, konto?.saldoCent)
val buchungen = kontoService.getBuchungsHistorie(konto!!.kontoId)
assertEquals(2, buchungen.size)
assertEquals(3, buchungen.size)
// Einer muss NACHNENNGEBUEHR sein
assertNotNull(buchungen.find { it.typ == BuchungsTyp.NACHNENNGEBUEHR })
assertNotNull(buchungen.find { it.typ == BuchungsTyp.SPORTFOERDERBEITRAG })
}
}