diff --git a/src/main/kotlin/no/nav/bidrag/behandling/dto/v1/beregning/ResultatBeregningFelles.kt b/src/main/kotlin/no/nav/bidrag/behandling/dto/v1/beregning/ResultatBeregningFelles.kt index 3a128f9cf..4d2390277 100644 --- a/src/main/kotlin/no/nav/bidrag/behandling/dto/v1/beregning/ResultatBeregningFelles.kt +++ b/src/main/kotlin/no/nav/bidrag/behandling/dto/v1/beregning/ResultatBeregningFelles.kt @@ -3,10 +3,12 @@ package no.nav.bidrag.behandling.dto.v1.beregning import no.nav.bidrag.domene.ident.Personident +import java.math.BigDecimal import java.time.LocalDate data class ResultatRolle( val ident: Personident?, val navn: String, val fødselsdato: LocalDate, + val innbetaltBeløp: BigDecimal? = null, ) diff --git a/src/main/kotlin/no/nav/bidrag/behandling/service/BeregningService.kt b/src/main/kotlin/no/nav/bidrag/behandling/service/BeregningService.kt index 6c642331d..bbea62dde 100644 --- a/src/main/kotlin/no/nav/bidrag/behandling/service/BeregningService.kt +++ b/src/main/kotlin/no/nav/bidrag/behandling/service/BeregningService.kt @@ -49,7 +49,7 @@ private val LOGGER = KotlinLogging.logger {} private fun Rolle.tilPersonident() = ident?.let { Personident(it) } -private fun Rolle.mapTilResultatBarn() = ResultatRolle(tilPersonident(), hentNavn(), fødselsdato) +private fun Rolle.mapTilResultatBarn() = ResultatRolle(tilPersonident(), hentNavn(), fødselsdato, innbetaltBeløp) @Service class BeregningService( diff --git a/src/main/kotlin/no/nav/bidrag/behandling/transformers/vedtak/mapping/fravedtak/VedtakTilBehandlingMapping.kt b/src/main/kotlin/no/nav/bidrag/behandling/transformers/vedtak/mapping/fravedtak/VedtakTilBehandlingMapping.kt index dd90cf11d..051f4ca11 100644 --- a/src/main/kotlin/no/nav/bidrag/behandling/transformers/vedtak/mapping/fravedtak/VedtakTilBehandlingMapping.kt +++ b/src/main/kotlin/no/nav/bidrag/behandling/transformers/vedtak/mapping/fravedtak/VedtakTilBehandlingMapping.kt @@ -140,7 +140,9 @@ class VedtakTilBehandlingMapping( ) behandling.roller = grunnlagListe.mapRoller(behandling, lesemodus) + oppdaterDirekteOppgjørBeløp(behandling, lesemodus) grunnlagListe.oppdaterRolleGebyr(behandling) + behandling.inntekter = grunnlagListe.mapInntekter(behandling, lesemodus) behandling.husstandsmedlem = grunnlagListe.mapHusstandsmedlem(behandling, lesemodus) behandling.sivilstand = grunnlagListe.mapSivilstand(behandling, lesemodus) diff --git a/src/main/kotlin/no/nav/bidrag/behandling/transformers/vedtak/mapping/fravedtak/VedtakTilBehandlingMappingFelles.kt b/src/main/kotlin/no/nav/bidrag/behandling/transformers/vedtak/mapping/fravedtak/VedtakTilBehandlingMappingFelles.kt index 45c1dc704..53e0004d1 100644 --- a/src/main/kotlin/no/nav/bidrag/behandling/transformers/vedtak/mapping/fravedtak/VedtakTilBehandlingMappingFelles.kt +++ b/src/main/kotlin/no/nav/bidrag/behandling/transformers/vedtak/mapping/fravedtak/VedtakTilBehandlingMappingFelles.kt @@ -34,6 +34,7 @@ import no.nav.bidrag.domene.enums.grunnlag.Grunnlagstype import no.nav.bidrag.domene.enums.inntekt.Inntektsrapportering import no.nav.bidrag.domene.enums.rolle.Rolletype import no.nav.bidrag.domene.enums.rolle.SøktAvType +import no.nav.bidrag.domene.enums.vedtak.Engangsbeløptype import no.nav.bidrag.domene.enums.vedtak.Vedtakstype import no.nav.bidrag.sivilstand.SivilstandApi import no.nav.bidrag.transport.behandling.felles.grunnlag.BaseGrunnlag @@ -119,6 +120,7 @@ fun VedtakDto.tilBeregningResultatBidrag(): ResultatBidragberegningDto = barn.ident, barn.navn ?: hentPersonVisningsnavn(barn.ident?.verdi)!!, barn.fødselsdato, + hentDirekteOppgjørBeløp(barnIdent.verdi), ), perioder = stønadsendring.periodeListe.map { @@ -155,6 +157,22 @@ internal fun List.mapRoller( it.tilRolle(behandling, if (lesemodus) i.toLong() else null) }.toMutableSet() +internal fun VedtakDto.oppdaterDirekteOppgjørBeløp( + behandling: Behandling, + lesemodus: Boolean, +) = if (lesemodus) { + behandling.søknadsbarn.forEach { + it.innbetaltBeløp = hentDirekteOppgjørBeløp(it.ident!!) + } +} else { + null +} + +internal fun VedtakDto.hentDirekteOppgjørBeløp(kravhaver: String) = + engangsbeløpListe + .find { it.type == Engangsbeløptype.DIREKTE_OPPGJØR && it.kravhaver.verdi == kravhaver } + ?.beløp + internal fun List.oppdaterRolleGebyr(behandling: Behandling) = filtrerBasertPåEgenReferanse(Grunnlagstype.SLUTTBEREGNING_GEBYR) .groupBy { it.gjelderReferanse }