From ddab61c1f42e913e92c34acdb3e6c0b7ad3672ef Mon Sep 17 00:00:00 2001 From: Ugur Alpay Cenar Date: Wed, 11 Dec 2024 08:52:35 +0100 Subject: [PATCH] Sette til og med dato barnetilsyn --- .../behandling/dto/v2/underhold/Underhold.kt | 18 ++++- .../transformers/underhold/Utvidelser.kt | 4 +- .../transformers/underhold/UtvidelserTest.kt | 77 +++++++++++++++++++ 3 files changed, 97 insertions(+), 2 deletions(-) diff --git a/src/main/kotlin/no/nav/bidrag/behandling/dto/v2/underhold/Underhold.kt b/src/main/kotlin/no/nav/bidrag/behandling/dto/v2/underhold/Underhold.kt index b1774fa9..1eb9336b 100644 --- a/src/main/kotlin/no/nav/bidrag/behandling/dto/v2/underhold/Underhold.kt +++ b/src/main/kotlin/no/nav/bidrag/behandling/dto/v2/underhold/Underhold.kt @@ -109,7 +109,23 @@ data class UnderholdskostnadDto( val tilsynsutgifter: BigDecimal = BigDecimal.ZERO, val barnetrygd: BigDecimal = BigDecimal.ZERO, val total: BigDecimal, -) + val beregningsdetaljer: Beregningsdetaljer? = null, +) { + data class Beregningsdetaljer( + val tilsynsutgifterBarn: List = emptyList(), + val totalTilsynsutgift: BigDecimal, + val endeligBeløp: BigDecimal, + val faktiskBeløp: BigDecimal, + val fordelingFaktor: BigDecimal, + val skattefradrag: BigDecimal, + ) + + data class TilsynsutgiftBarn( + val beløp: BigDecimal, + val kostpenger: BigDecimal? = null, + val tilleggsstønad: BigDecimal? = null, + ) +} data class OppdatereTilleggsstønadRequest( val id: Long? = null, diff --git a/src/main/kotlin/no/nav/bidrag/behandling/transformers/underhold/Utvidelser.kt b/src/main/kotlin/no/nav/bidrag/behandling/transformers/underhold/Utvidelser.kt index f50c14e6..42146cb1 100644 --- a/src/main/kotlin/no/nav/bidrag/behandling/transformers/underhold/Utvidelser.kt +++ b/src/main/kotlin/no/nav/bidrag/behandling/transformers/underhold/Utvidelser.kt @@ -69,10 +69,12 @@ fun Set.tilBarnetilsyn(u: Underholdskostnad) = this.map fun BarnetilsynGrunnlagDto.tilBarnetilsyn(u: Underholdskostnad): Barnetilsyn { fun erUnderSkolealder(fødselsdato: LocalDate) = fødselsdato.plusYears(ALDER_VED_SKOLESTART).year > LocalDate.now().year + val justerForDato = maxOf(u.behandling.virkningstidspunkt!!, LocalDate.now().withDayOfMonth(1)) + val tilOgMedDato = this.periodeTil?.minusDays(1) return Barnetilsyn( underholdskostnad = u, fom = this.periodeFra, - tom = this.periodeTil?.minusDays(1), + tom = if (tilOgMedDato != null && tilOgMedDato.isAfter(justerForDato)) null else tilOgMedDato, kilde = Kilde.OFFENTLIG, omfang = this.tilsynstype ?: Tilsynstype.IKKE_ANGITT, under_skolealder = erUnderSkolealder(u.person.henteFødselsdato), diff --git a/src/test/kotlin/no/nav/bidrag/behandling/transformers/underhold/UtvidelserTest.kt b/src/test/kotlin/no/nav/bidrag/behandling/transformers/underhold/UtvidelserTest.kt index 4a63f678..f9217134 100644 --- a/src/test/kotlin/no/nav/bidrag/behandling/transformers/underhold/UtvidelserTest.kt +++ b/src/test/kotlin/no/nav/bidrag/behandling/transformers/underhold/UtvidelserTest.kt @@ -112,4 +112,81 @@ class UtvidelserTest { // så barnetilsyn.under_skolealder shouldBe true } + + @Test + fun `skal sette til og med dato til null hvis etter virkning`() { + // gitt + val b = + oppretteTestbehandling( + setteDatabaseider = true, + inkludereBp = true, + behandlingstype = TypeBehandling.BIDRAG, + ) + + val barnetilsynGrunnlagDto = + oppretteBarnetilsynGrunnlagDto(b, periodeFraAntallMndTilbake = 13) + .copy(periodeTil = LocalDate.now().plusMonths(2)) + + val u = b.underholdskostnader.first() + b.virkningstidspunkt = LocalDate.now().plusMonths(1).withDayOfMonth(1) + + // hvis + val barnetilsyn = barnetilsynGrunnlagDto.tilBarnetilsyn(u) + + // så + barnetilsyn.tom shouldBe null + } + + @Test + fun `skal sette til og med dato til null hvis etter dagens dato`() { + // gitt + val b = + oppretteTestbehandling( + setteDatabaseider = true, + inkludereBp = true, + behandlingstype = TypeBehandling.BIDRAG, + ) + + val barnetilsynGrunnlagDto = + oppretteBarnetilsynGrunnlagDto(b, periodeFraAntallMndTilbake = 13) + .copy(periodeTil = LocalDate.now().plusMonths(1)) + + val u = b.underholdskostnader.first() + b.virkningstidspunkt = LocalDate.now().minusMonths(3).withDayOfMonth(1) + + // hvis + val barnetilsyn = barnetilsynGrunnlagDto.tilBarnetilsyn(u) + + // så + barnetilsyn.tom shouldBe null + } + + @Test + fun `skal sette til og med dato hvis før virkning`() { + // gitt + val b = + oppretteTestbehandling( + setteDatabaseider = true, + inkludereBp = true, + behandlingstype = TypeBehandling.BIDRAG, + ) + + val barnetilsynGrunnlagDto = + oppretteBarnetilsynGrunnlagDto(b, periodeFraAntallMndTilbake = 13) + .copy(periodeTil = LocalDate.now().minusMonths(4).plusMonths(1)) + + val u = b.underholdskostnader.first() + b.virkningstidspunkt = LocalDate.now().minusMonths(3).withDayOfMonth(1) + + // hvis + val barnetilsyn = barnetilsynGrunnlagDto.tilBarnetilsyn(u) + + // så + barnetilsyn.tom shouldBe + LocalDate + .now() + .minusMonths(4) + .plusMonths(1) + .minusDays(1) + } }