diff --git a/src/main/kotlin/no/nav/bidrag/behandling/database/datamodell/Underholdskostnad.kt b/src/main/kotlin/no/nav/bidrag/behandling/database/datamodell/Underholdskostnad.kt index 3ae2940a6..6d2efdea7 100644 --- a/src/main/kotlin/no/nav/bidrag/behandling/database/datamodell/Underholdskostnad.kt +++ b/src/main/kotlin/no/nav/bidrag/behandling/database/datamodell/Underholdskostnad.kt @@ -46,6 +46,8 @@ open class Underholdskostnad( ) open val faktiskeTilsynsutgifter: MutableSet = mutableSetOf(), ) { + val barnetsRolleIBehandlingen get() = person.rolle.filter { behandling.id == it.behandling.id }.firstOrNull() + override fun toString(): String = "Underholdskostnad(id=$id, behandling=${behandling.id}, person=${person.id}, harTilsynsordning=$harTilsynsordning, faktiskeTilsynsutgifter=$faktiskeTilsynsutgifter, barnetilsyn=$barnetilsyn, tilleggsstønad=$tilleggsstønad)" } 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 2d0d4ff49..eb54db260 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 @@ -90,7 +90,7 @@ data class ValideringsfeilUnderhold( navn = underholdskostnad!!.person.navn, ident = underholdskostnad.person.ident, fødselsdato = underholdskostnad.person.fødselsdato ?: LocalDate.now(), - medIBehandling = underholdskostnad.person.rolle.any { it.behandling.id == underholdskostnad.behandling.id }, + medIBehandling = underholdskostnad.barnetsRolleIBehandlingen != null, ) data class UnderholdBarnDto( 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 6496702a6..f9226c942 100644 --- a/src/main/kotlin/no/nav/bidrag/behandling/service/UnderholdService.kt +++ b/src/main/kotlin/no/nav/bidrag/behandling/service/UnderholdService.kt @@ -46,14 +46,12 @@ class UnderholdService( ) { val rolleSøknadsbarn = request.underholdsid?.let { - henteOgValidereUnderholdskostnad( - behandling, - it, - ).person.rolle.filter { it.behandling.id == behandling.id }.firstOrNull() + henteOgValidereUnderholdskostnad(behandling, it).barnetsRolleIBehandlingen } if (request.underholdsid == null) { - val underholdHarAndreBarn = behandling.underholdskostnader.find { it.person.rolle.isEmpty() } != null + val underholdHarAndreBarn = + behandling.underholdskostnader.find { it.barnetsRolleIBehandlingen == null } != null if (!underholdHarAndreBarn) { throw HttpClientErrorException( HttpStatus.BAD_REQUEST, @@ -99,7 +97,7 @@ class UnderholdService( ): UnderholdDto { request.validere() request.harTilsynsordning?.let { underholdskostnad.harTilsynsordning = it } - val rolleSøknadsbarn = underholdskostnad.person.rolle.firstOrNull() + val rolleSøknadsbarn = underholdskostnad.barnetsRolleIBehandlingen request.begrunnelse?.let { notatService.oppdatereNotat( underholdskostnad.behandling, @@ -313,7 +311,7 @@ class UnderholdService( ): UnderholdDto? { behandling.underholdskostnader.remove(underholdskostnad) underholdskostnad.person.underholdskostnad.remove(underholdskostnad) - if (underholdskostnad.person.underholdskostnad.isEmpty() && underholdskostnad.person.rolle.isEmpty()) { + if (underholdskostnad.person.underholdskostnad.isEmpty() && underholdskostnad.barnetsRolleIBehandlingen == null) { personRepository.deleteById(underholdskostnad.person.id!!) if (!behandling.harAndreBarnIUnderhold()) { notatService.sletteNotat(behandling, Notattype.UNDERHOLDSKOSTNAD, behandling.bidragsmottaker!!) diff --git a/src/main/kotlin/no/nav/bidrag/behandling/transformers/Dtomapper.kt b/src/main/kotlin/no/nav/bidrag/behandling/transformers/Dtomapper.kt index 57bdf22ed..3b38e7039 100644 --- a/src/main/kotlin/no/nav/bidrag/behandling/transformers/Dtomapper.kt +++ b/src/main/kotlin/no/nav/bidrag/behandling/transformers/Dtomapper.kt @@ -171,7 +171,7 @@ class Dtomapper( private fun Underholdskostnad.tilDto(): UnderholdDto { // Vil aldri ha flere enn èn rolle per behandling - val rolleSøknadsbarn = this.person.rolle.firstOrNull() + val rolleSøknadsbarn = this.barnetsRolleIBehandlingen return UnderholdDto( id = this.id!!, harTilsynsordning = this.harTilsynsordning, diff --git a/src/main/kotlin/no/nav/bidrag/behandling/transformers/person/Personmappinger.kt b/src/main/kotlin/no/nav/bidrag/behandling/transformers/person/Personmappinger.kt deleted file mode 100644 index bf176d127..000000000 --- a/src/main/kotlin/no/nav/bidrag/behandling/transformers/person/Personmappinger.kt +++ /dev/null @@ -1,26 +0,0 @@ -package no.nav.bidrag.behandling.transformers.person - -import no.nav.bidrag.behandling.database.datamodell.Behandling -import no.nav.bidrag.behandling.database.datamodell.Person -import no.nav.bidrag.behandling.dto.v2.behandling.PersoninfoDto -import no.nav.bidrag.domene.enums.diverse.Kilde -import no.nav.bidrag.domene.ident.Personident - -fun Person.tilPersoninfoDto(behandling: Behandling): PersoninfoDto { - val rolle = - behandling.roller.find { r -> - this.rolle - .map { it.id } - .toSet() - .contains(r.id) - } - - return PersoninfoDto( - id = this.id, - ident = rolle?.ident?.let { Personident(it) } ?: this.ident?.let { Personident(it) }, - navn = this.navn, - fødselsdato = rolle?.fødselsdato ?: this.fødselsdato, - kilde = rolle?.ident?.let { Kilde.OFFENTLIG } ?: Kilde.MANUELL, - medIBehandlingen = rolle?.ident != 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 8c9cca033..76d8724e5 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 @@ -23,7 +23,7 @@ fun Barnetilsyn.tilStønadTilBarnetilsynDto(): StønadTilBarnetilsynDto = fun List.tilStønadTilBarnetilsynDtos() = map { it.tilStønadTilBarnetilsynDto() }.toSet() -fun Behandling.harAndreBarnIUnderhold() = this.underholdskostnader.find { it.person.rolle.isEmpty() } != null +fun Behandling.harAndreBarnIUnderhold() = this.underholdskostnader.find { it.barnetsRolleIBehandlingen == null } != null fun BarnDto.annetBarnMedSammeNavnOgFødselsdatoEksistererFraFør(behandling: Behandling) = behandling.underholdskostnader diff --git a/src/main/kotlin/no/nav/bidrag/behandling/transformers/underhold/Validering.kt b/src/main/kotlin/no/nav/bidrag/behandling/transformers/underhold/Validering.kt index a5a9a0e0d..a62a7b05a 100644 --- a/src/main/kotlin/no/nav/bidrag/behandling/transformers/underhold/Validering.kt +++ b/src/main/kotlin/no/nav/bidrag/behandling/transformers/underhold/Validering.kt @@ -74,7 +74,7 @@ fun SletteUnderholdselement.validere(behandling: Behandling) { when (this.type) { Underholdselement.BARN -> { - val rolle = underhold.person.rolle.firstOrNull() + val rolle = underhold.barnetsRolleIBehandlingen if (rolle != null) { throw HttpClientErrorException( HttpStatus.BAD_REQUEST, diff --git a/src/main/kotlin/no/nav/bidrag/behandling/transformers/vedtak/mapping/tilvedtak/BehandlingTilGrunnlagMappingV2.kt b/src/main/kotlin/no/nav/bidrag/behandling/transformers/vedtak/mapping/tilvedtak/BehandlingTilGrunnlagMappingV2.kt index 707b7eacd..77a023ad7 100644 --- a/src/main/kotlin/no/nav/bidrag/behandling/transformers/vedtak/mapping/tilvedtak/BehandlingTilGrunnlagMappingV2.kt +++ b/src/main/kotlin/no/nav/bidrag/behandling/transformers/vedtak/mapping/tilvedtak/BehandlingTilGrunnlagMappingV2.kt @@ -307,7 +307,7 @@ class BehandlingTilGrunnlagMappingV2( underholdskostnader .flatMap { u -> u.faktiskeTilsynsutgifter.map { - val underholdRolle = u.person.rolle.find { it.behandling.id == id } + val underholdRolle = u.barnetsRolleIBehandlingen val gjelderBarn = underholdRolle?.tilGrunnlagPerson()?.also { grunnlagslistePersoner.add(it) diff --git a/src/main/kotlin/no/nav/bidrag/behandling/transformers/vedtak/mapping/tilvedtak/GrunnlagByggerBidrag.kt b/src/main/kotlin/no/nav/bidrag/behandling/transformers/vedtak/mapping/tilvedtak/GrunnlagByggerBidrag.kt index 4c75b21a7..15700e423 100644 --- a/src/main/kotlin/no/nav/bidrag/behandling/transformers/vedtak/mapping/tilvedtak/GrunnlagByggerBidrag.kt +++ b/src/main/kotlin/no/nav/bidrag/behandling/transformers/vedtak/mapping/tilvedtak/GrunnlagByggerBidrag.kt @@ -28,7 +28,7 @@ fun Behandling.tilGrunnlagBarnetilsyn(inkluderIkkeAngitt: Boolean = false): List .filter { inkluderIkkeAngitt || it.omfang != Tilsynstype.IKKE_ANGITT && it.under_skolealder != null } .flatMap { val underholdRolle = - u.person.rolle.find { it.behandling.id == id } + u.barnetsRolleIBehandlingen ?: ugyldigForespørsel("Fant ikke person for underholdskostnad i behandlingen") val underholdRolleGrunnlagobjekt = underholdRolle.tilGrunnlagPerson() val gjelderBarnReferanse = underholdRolleGrunnlagobjekt.referanse @@ -70,7 +70,7 @@ fun Behandling.tilGrunnlagTilleggsstønad(): List = .flatMap { u -> u.tilleggsstønad.flatMap { val underholdRolle = - u.person.rolle.find { it.behandling.id == id } + u.barnetsRolleIBehandlingen ?: ugyldigForespørsel("Fant ikke person for underholdskostnad i behandlingen") val underholdRolleGrunnlagobjekt = underholdRolle.tilGrunnlagPerson() val gjelderBarnReferanse = underholdRolleGrunnlagobjekt.referanse diff --git a/src/test/kotlin/no/nav/bidrag/behandling/controller/UnderholdControllerTest.kt b/src/test/kotlin/no/nav/bidrag/behandling/controller/UnderholdControllerTest.kt index 14bb94f68..6c7a71ff5 100644 --- a/src/test/kotlin/no/nav/bidrag/behandling/controller/UnderholdControllerTest.kt +++ b/src/test/kotlin/no/nav/bidrag/behandling/controller/UnderholdControllerTest.kt @@ -240,9 +240,8 @@ class UnderholdControllerTest : KontrollerTestRunner() { oppdatertBehandling.get().notater.find { behandling.underholdskostnader .first() - .person.rolle - .first() - .id == it.rolle.id && + .barnetsRolleIBehandlingen + ?.id == it.rolle.id && NotatGrunnlag.NotatType.UNDERHOLDSKOSTNAD == it.type }, ) { @@ -444,7 +443,7 @@ class UnderholdControllerTest : KontrollerTestRunner() { lagretBehandling.underholdskostnader shouldHaveSize 3 val u = - lagretBehandling.underholdskostnader.find { it.person.rolle.isEmpty() && it.person.navn == navnAnnetBarnBp } + lagretBehandling.underholdskostnader.find { it.barnetsRolleIBehandlingen == null && it.person.navn == navnAnnetBarnBp } val sletteUnderholdselement = SletteUnderholdselement(u?.id!!, u.person.id!!, Underholdselement.BARN) diff --git a/src/test/kotlin/no/nav/bidrag/behandling/service/BehandlingServiceTest.kt b/src/test/kotlin/no/nav/bidrag/behandling/service/BehandlingServiceTest.kt index f72cbde71..e6c1eada4 100644 --- a/src/test/kotlin/no/nav/bidrag/behandling/service/BehandlingServiceTest.kt +++ b/src/test/kotlin/no/nav/bidrag/behandling/service/BehandlingServiceTest.kt @@ -790,10 +790,7 @@ class BehandlingServiceTest : TestContainerRunner() { opprettetBehandling.roller.filter { Rolletype.BARN == it.rolletype } shouldHaveSize 1 opprettetBehandling.underholdskostnader shouldHaveSize 1 opprettetBehandling.underholdskostnader.filter { - Rolletype.BARN == - it.person.rolle - .first() - .rolletype + Rolletype.BARN == it.barnetsRolleIBehandlingen?.rolletype } shouldHaveSize 1 opprettetBehandling.underholdskostnader.filter { it.person.ident != null } shouldHaveSize 1 } 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 b508142f9..b7e8f4e48 100644 --- a/src/test/kotlin/no/nav/bidrag/behandling/service/UnderholdServiceTest.kt +++ b/src/test/kotlin/no/nav/bidrag/behandling/service/UnderholdServiceTest.kt @@ -440,10 +440,7 @@ class UnderholdServiceTest { val underholdskostnad = behandling.underholdskostnader.find { - barnIBehandling.ident!! == - it.person.rolle - .first() - .ident + barnIBehandling.ident!! == it.barnetsRolleIBehandlingen?.ident } underholdskostnad.shouldNotBeNull() @@ -497,10 +494,7 @@ class UnderholdServiceTest { val underholdskostnad = behandling.underholdskostnader.find { - barnIBehandling.ident!! == - it.person.rolle - .first() - .ident + barnIBehandling.ident!! == it.barnetsRolleIBehandlingen?.ident } underholdskostnad.shouldNotBeNull() @@ -560,10 +554,7 @@ class UnderholdServiceTest { val underholdskostnad = behandling.underholdskostnader.find { - barnIBehandling.ident!! == - it.person.rolle - .first() - .ident + barnIBehandling.ident!! == it.barnetsRolleIBehandlingen?.ident } underholdskostnad.shouldNotBeNull() @@ -625,10 +616,7 @@ class UnderholdServiceTest { val underholdskostnad = behandling.underholdskostnader.find { - barnIBehandling.ident!! == - it.person.rolle - .first() - .ident + barnIBehandling.ident!! == it.barnetsRolleIBehandlingen?.ident } underholdskostnad.shouldNotBeNull() @@ -694,10 +682,7 @@ class UnderholdServiceTest { val underholdskostnad = behandling.underholdskostnader.find { - barnIBehandling.ident!! == - it.person.rolle - .first() - .ident + barnIBehandling.ident!! == it.barnetsRolleIBehandlingen?.ident } underholdskostnad.shouldNotBeNull() @@ -755,10 +740,7 @@ class UnderholdServiceTest { val underholdskostnad = behandling.underholdskostnader.find { - barnIBehandling.ident!! == - it.person.rolle - .first() - .ident + barnIBehandling.ident!! == it.barnetsRolleIBehandlingen?.ident } underholdskostnad.shouldNotBeNull() @@ -825,10 +807,7 @@ class UnderholdServiceTest { val underholdskostnad = behandling.underholdskostnader.find { - barnIBehandling.ident!! == - it.person.rolle - .first() - .ident + barnIBehandling.ident!! == it.barnetsRolleIBehandlingen?.ident } underholdskostnad.shouldNotBeNull() @@ -866,10 +845,7 @@ class UnderholdServiceTest { val underholdskostnad = behandling.underholdskostnader.find { - barnIBehandling.ident!! == - it.person.rolle - .first() - .ident + barnIBehandling.ident!! == it.barnetsRolleIBehandlingen?.ident } underholdskostnad.shouldNotBeNull()