From f53f4314ed3617e125be5b2ba6d3b2e20f6a7676 Mon Sep 17 00:00:00 2001 From: s148719 Date: Fri, 13 Dec 2024 11:50:00 +0100 Subject: [PATCH] Fikse oppdatering av barnetilsynstabell etter endring i virkningsdato --- .../behandling/service/UnderholdService.kt | 6 ++++- .../transformers/underhold/Utvidelser.kt | 15 ++++++++++++ .../service/UnderholdServiceTest.kt | 23 +++++++++++++------ src/test/resources/application-local.yaml | 4 ++-- 4 files changed, 38 insertions(+), 10 deletions(-) diff --git a/src/main/kotlin/no/nav/bidrag/behandling/service/UnderholdService.kt b/src/main/kotlin/no/nav/bidrag/behandling/service/UnderholdService.kt index f985da92c..9a9ef96a2 100644 --- a/src/main/kotlin/no/nav/bidrag/behandling/service/UnderholdService.kt +++ b/src/main/kotlin/no/nav/bidrag/behandling/service/UnderholdService.kt @@ -29,6 +29,7 @@ import no.nav.bidrag.behandling.fantIkkeFødselsdatoTilPerson import no.nav.bidrag.behandling.transformers.Dtomapper import no.nav.bidrag.behandling.transformers.behandling.hentAlleBearbeidaBarnetilsyn import no.nav.bidrag.behandling.transformers.underhold.aktivereBarnetilsynHvisIngenEndringerMåAksepteres +import no.nav.bidrag.behandling.transformers.underhold.erstatteOffentligePerioderIBarnetilsynstabellMedOppdatertGrunnlag import no.nav.bidrag.behandling.transformers.underhold.harAndreBarnIUnderhold import no.nav.bidrag.behandling.transformers.underhold.henteOgValidereUnderholdskostnad import no.nav.bidrag.behandling.transformers.underhold.justerePerioder @@ -448,7 +449,10 @@ class UnderholdService( } private fun oppdatereUnderholdsperioderEtterEndretVirkningsdato(b: Behandling) { - b.underholdskostnader.forEach { it.justerePerioder() } + b.underholdskostnader.forEach { + it.erstatteOffentligePerioderIBarnetilsynstabellMedOppdatertGrunnlag() + it.justerePerioder() + } } private fun tilpasseIkkeaktiveBarnetilsynsgrunnlagEtterVirkningsdato(behandling: Behandling) { 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 312b7c4b5..313868b4c 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 @@ -8,6 +8,7 @@ import no.nav.bidrag.behandling.database.datamodell.Underholdskostnad import no.nav.bidrag.behandling.database.datamodell.hentAlleAktiv import no.nav.bidrag.behandling.database.datamodell.hentAlleIkkeAktiv import no.nav.bidrag.behandling.database.datamodell.hentGrunnlagForType +import no.nav.bidrag.behandling.database.datamodell.hentSisteAktiv import no.nav.bidrag.behandling.database.datamodell.konvertereData import no.nav.bidrag.behandling.dto.v2.behandling.Grunnlagsdatatype import no.nav.bidrag.behandling.dto.v2.behandling.Grunnlagstype @@ -104,6 +105,20 @@ fun Grunnlag.justerePerioderForBearbeidaBarnetilsynEtterVirkningstidspunkt(overs } } +fun Underholdskostnad.erstatteOffentligePerioderIBarnetilsynstabellMedOppdatertGrunnlag() { + val barnetilsynFraGrunnlag = + behandling.grunnlag + .hentSisteAktiv() + .find { Grunnlagsdatatype.BARNETILSYN == it.type && it.erBearbeidet } + .konvertereData>() + ?.filter { this.person.ident == it.barnPersonId } + + barnetilsynFraGrunnlag?.let { g -> + barnetilsyn.clear() + g.forEach { barnetilsyn.add(it.tilBarnetilsyn(this)) } + } +} + fun Underholdskostnad.justerePerioder() { val virkningsdato = behandling.virkningstidspunktEllerSøktFomDato diff --git a/src/test/kotlin/no/nav/bidrag/behandling/service/UnderholdServiceTest.kt b/src/test/kotlin/no/nav/bidrag/behandling/service/UnderholdServiceTest.kt index 4d3c825d2..dc4208b0b 100644 --- a/src/test/kotlin/no/nav/bidrag/behandling/service/UnderholdServiceTest.kt +++ b/src/test/kotlin/no/nav/bidrag/behandling/service/UnderholdServiceTest.kt @@ -22,6 +22,7 @@ import no.nav.bidrag.behandling.database.datamodell.Tilleggsstønad import no.nav.bidrag.behandling.database.datamodell.Underholdskostnad import no.nav.bidrag.behandling.database.datamodell.hentAlleAktiv import no.nav.bidrag.behandling.database.datamodell.hentAlleIkkeAktiv +import no.nav.bidrag.behandling.database.datamodell.hentSisteAktiv import no.nav.bidrag.behandling.database.datamodell.henteNyesteAktiveGrunnlag import no.nav.bidrag.behandling.database.datamodell.henteNyesteIkkeAktiveGrunnlag import no.nav.bidrag.behandling.database.datamodell.konvertereData @@ -1086,7 +1087,13 @@ class UnderholdServiceTest { behandlingstype = TypeBehandling.BIDRAG, ) - b.leggeTilGjeldendeBarnetilsyn(oppretteBarnetilsynGrunnlagDto(b, skolealder = Skolealder.UNDER, tilsynstype = Tilsynstype.DELTID)) + b.leggeTilGjeldendeBarnetilsyn( + oppretteBarnetilsynGrunnlagDto( + b, + skolealder = Skolealder.UNDER, + tilsynstype = Tilsynstype.DELTID, + ), + ) b.leggeTilNyttBarnetilsyn() val nyVirkningsdato = @@ -1182,7 +1189,13 @@ class UnderholdServiceTest { underholdService.tilpasseUnderholdEtterVirkningsdato(b) // så - u.barnetilsyn.first().fom shouldBe b.virkningstidspunkt + u.barnetilsyn.first().fom shouldBe + b.grunnlag + .hentSisteAktiv() + .find { Grunnlagsdatatype.BARNETILSYN == it.type } + .konvertereData>()!! + .minBy { it.periodeFra } + .periodeFra u.faktiskeTilsynsutgifter.first().fom shouldBe b.virkningstidspunkt u.tilleggsstønad.first().fom shouldBe b.virkningstidspunkt } @@ -1257,11 +1270,7 @@ class UnderholdServiceTest { perioderBearbeida.shouldBeEmpty() } - assertSoftly(u.barnetilsyn) { - shouldHaveSize(1) - find { Kilde.MANUELL == it.kilde }.shouldNotBeNull() - find { Kilde.MANUELL == it.kilde }!!.fom shouldBe b.virkningstidspunktEllerSøktFomDato - } + u.barnetilsyn.shouldHaveSize(0) } } diff --git a/src/test/resources/application-local.yaml b/src/test/resources/application-local.yaml index 24250c08f..a12f86bfc 100644 --- a/src/test/resources/application-local.yaml +++ b/src/test/resources/application-local.yaml @@ -6,10 +6,10 @@ AZURE_APP_CLIENT_SECRET: unset server.port: 8990 NAIS_APP_NAME: bidrag-behandling DB_HOST: localhost -#DB_PORT: 5432 +DB_PORT: 5432 DB_DATABASE: bidrag-behandling -DB_PORT: 5454 +#DB_PORT: 5454 DB_USERNAME: cloudsqliamuser DB_PASSWORD: admin