Skip to content

Commit

Permalink
Underhold lagre andre barn til BM
Browse files Browse the repository at this point in the history
  • Loading branch information
ugur93 committed Dec 24, 2024
1 parent da33cc3 commit 00da217
Show file tree
Hide file tree
Showing 7 changed files with 32 additions and 24 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -261,7 +261,7 @@ class UnderholdController(
.orElseThrow { behandlingNotFoundException(behandlingsid) }

return OpprettUnderholdskostnadBarnResponse(
underholdskostnad = dtomapper.tilUnderholdDto(underholdService.opprettEllerOppdaterUnderholdskostnad(behandling, gjelderBarn)),
underholdskostnad = dtomapper.tilUnderholdDto(underholdService.oppretteUnderholdskostnad(behandling, gjelderBarn)),
beregnetUnderholdskostnader = dtomapper.run { behandling.tilBeregnetUnderholdskostnad() },
valideringsfeil = behandling.underholdskostnader.valider(),
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -190,7 +190,7 @@ class BehandlingService(
// Oppretter underholdskostnad for alle barna i behandlingen ved bidrag
opprettBehandling.roller.filter { Rolletype.BARN == it.rolletype }.forEach {
behandlingDo.underholdskostnader.add(
underholdService.opprettEllerOppdaterUnderholdskostnad(behandling, BarnDto(personident = it.ident)),
underholdService.oppretteUnderholdskostnad(behandling, BarnDto(personident = it.ident)),
)
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -805,21 +805,22 @@ class GrunnlagService(
val andreBarnIkkeIBehandling =
husstandsmedlemmerOgEgneBarn
.filter { it.erBarn }
.filter { !søknadsbarnidenter.contains(it.partPersonId) }
.filter { !søknadsbarnidenter.contains(it.gjelderPersonId) }

andreBarnIkkeIBehandling.forEach {
secureLogger.info { "$it er annen barn til BM. Oppretter underholdskostnad med kilde OFFENTLIG" }
underholdService.opprettEllerOppdaterUnderholdskostnad(
secureLogger.info { "$it er annen barn til BM. Oppretter eller oppdaterer underholdskostnad til kilde OFFENTLIG" }
behandling.underholdskostnader.find { u -> u.person.ident == it.gjelderPersonId }?.let {
it.kilde = Kilde.OFFENTLIG
} ?: underholdService.oppretteUnderholdskostnad(
behandling,
BarnDto(personident = Personident(it.partPersonId!!), fødselsdato = it.fødselsdato),
BarnDto(personident = Personident(it.gjelderPersonId!!), fødselsdato = it.fødselsdato),
kilde = Kilde.OFFENTLIG,
)
}

val andreBarnIdenter = andreBarnIkkeIBehandling.map { it.partPersonId }
val andreBarnIdenter = andreBarnIkkeIBehandling.map { it.gjelderPersonId }
behandling.underholdskostnader
.filter { it.barnetsRolleIBehandlingen == null }
.filter { it.kilde != Kilde.OFFENTLIG }
.filter { !andreBarnIdenter.contains(it.person.ident) }
.forEach {
secureLogger.info { "$it er ikke lenger barn til BM i følge offentlige opplysninger. Endrer kilde til Manuell" }
Expand Down Expand Up @@ -1374,6 +1375,9 @@ class GrunnlagService(
it.aktiv = LocalDateTime.now()
}
}
Grunnlagsdatatype.ANDRE_BARN -> {
it.aktiv = LocalDateTime.now()
}

else -> it.aktiv = LocalDateTime.now()
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -113,17 +113,14 @@ class UnderholdService(
}

@Transactional
fun opprettEllerOppdaterUnderholdskostnad(
fun oppretteUnderholdskostnad(
behandling: Behandling,
gjelderBarn: BarnDto,
kilde: Kilde? = null,
): Underholdskostnad {
gjelderBarn.validere(behandling, personService)

return behandling.underholdskostnader.find { it.person.ident == gjelderBarn.personident?.verdi }?.let {
it.kilde = kilde
it
} ?: gjelderBarn.personident?.let { personidentBarn ->
return gjelderBarn.personident?.let { personidentBarn ->
val rolleSøknadsbarn = behandling.søknadsbarn.find { it.ident == personidentBarn.verdi }
personRepository.findFirstByIdent(personidentBarn.verdi)?.let { eksisterendePerson ->
rolleSøknadsbarn?.let { eksisterendePerson.rolle.add(it) }
Expand Down
15 changes: 11 additions & 4 deletions src/main/kotlin/no/nav/bidrag/behandling/transformers/Dtomapper.kt
Original file line number Diff line number Diff line change
Expand Up @@ -169,7 +169,14 @@ class Dtomapper(
aktiveGrunnlag: List<Grunnlag>,
) = ikkeAktiveGrunnlag.henteEndringerIAndreVoksneIBpsHusstand(aktiveGrunnlag)

fun Set<Underholdskostnad>.tilDtos() = this.map { it.tilDto() }.sortedByDescending { it.gjelderBarn.fødselsdato }.toSet()
fun Set<Underholdskostnad>.tilDtos() =
this
.map { it.tilDto() }
.sortedWith(
compareByDescending<UnderholdDto> { it.gjelderBarn.kilde == Kilde.OFFENTLIG }
.thenByDescending { it.gjelderBarn.kilde == Kilde.MANUELL }
.thenBy { it.gjelderBarn.fødselsdato },
).toSet()

private fun Underholdskostnad.tilDto(): UnderholdDto {
// Vil aldri ha flere enn èn rolle per behandling
Expand Down Expand Up @@ -227,9 +234,9 @@ class Dtomapper(
return PersoninfoDto(
id = this.id,
ident = ident?.let { Personident(it) } ?: this.ident?.let { Personident(it) },
navn = personinfo?.navn ?: this.navn,
navn = hentPersonVisningsnavn(personinfo?.navn) ?: this.navn,
fødselsdato = personinfo?.fødselsdato ?: this.fødselsdato,
kilde = ident?.let { Kilde.OFFENTLIG } ?: Kilde.MANUELL,
kilde = null,
medIBehandlingen = ident != null,
)
}
Expand All @@ -245,7 +252,7 @@ class Dtomapper(
return PersoninfoDto(
id = this.id,
ident = rolle?.ident?.let { Personident(it) } ?: this.ident?.let { Personident(it) },
navn = personinfo?.navn ?: this.navn,
navn = hentPersonVisningsnavn(personinfo?.navn) ?: this.navn,
fødselsdato = personinfo?.fødselsdato ?: this.fødselsdato,
kilde = kilde,
medIBehandlingen = rolle?.ident != null,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -263,7 +263,7 @@ class VedtakTilBehandlingMapping(
),
)
} else {
underholdService.opprettEllerOppdaterUnderholdskostnad(
underholdService.oppretteUnderholdskostnad(
behandling,
BarnDto(personident = Personident(rolle.ident!!)),
)
Expand Down Expand Up @@ -323,7 +323,7 @@ class VedtakTilBehandlingMapping(
),
)
} else {
underholdService.opprettEllerOppdaterUnderholdskostnad(
underholdService.oppretteUnderholdskostnad(
behandling,
BarnDto(
personident = gjelderBarn.ident,
Expand Down Expand Up @@ -365,7 +365,7 @@ class VedtakTilBehandlingMapping(
),
)
} else {
underholdService.opprettEllerOppdaterUnderholdskostnad(
underholdService.oppretteUnderholdskostnad(
behandling,
BarnDto(
personident = gjelderBarn.ident,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -329,7 +329,7 @@ class UnderholdServiceTest {
)

// hvis
underholdService.opprettEllerOppdaterUnderholdskostnad(behandling, request)
underholdService.oppretteUnderholdskostnad(behandling, request)

//
val u = behandling.underholdskostnader.find { it.id == universalid }
Expand Down Expand Up @@ -367,7 +367,7 @@ class UnderholdServiceTest {
// hvis
val respons =
assertFailsWith<HttpClientErrorException> {
underholdService.opprettEllerOppdaterUnderholdskostnad(behandling, request)
underholdService.oppretteUnderholdskostnad(behandling, request)
}

//
Expand Down Expand Up @@ -403,7 +403,7 @@ class UnderholdServiceTest {
// hvis
val respons =
assertFailsWith<HttpClientErrorException> {
underholdService.opprettEllerOppdaterUnderholdskostnad(behandling, request)
underholdService.oppretteUnderholdskostnad(behandling, request)
}

//
Expand All @@ -428,7 +428,7 @@ class UnderholdServiceTest {
// hvis
val respons =
assertFailsWith<HttpClientErrorException> {
underholdService.opprettEllerOppdaterUnderholdskostnad(behandling, request)
underholdService.oppretteUnderholdskostnad(behandling, request)
}

//
Expand Down

0 comments on commit 00da217

Please sign in to comment.