From 21c31874310b9c99e36fe4511989c3375d082fa1 Mon Sep 17 00:00:00 2001 From: Ugur Alpay Cenar Date: Fri, 13 Dec 2024 14:15:15 +0100 Subject: [PATCH] Visning av beregningsdetaljer tilsynsutgift --- pom.xml | 2 +- .../behandling/dto/v2/underhold/Underhold.kt | 6 +++++- .../transformers/BeregningDtoMapping.kt | 21 ++++++++++++++++++- 3 files changed, 26 insertions(+), 3 deletions(-) diff --git a/pom.xml b/pom.xml index a2f9aaca..9908d92f 100644 --- a/pom.xml +++ b/pom.xml @@ -17,7 +17,7 @@ 21 2.1.0 2024.12.11.070437 - 2024.12.10.160924 + 2024.12.13.140638 2.3.232 8.0 3.2.0 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 64859d18..dd1d4c76 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 @@ -114,6 +114,9 @@ data class UnderholdskostnadDto( data class Beregningsdetaljer( val tilsynsutgifterBarn: List = emptyList(), val sjablonMaksTilsynsutgift: BigDecimal, + val sjablonMaksFradrag: BigDecimal, + val sjablonAntallBarn: Int, + val skattAlminneligInntektFaktor: BigDecimal, val totalTilsynsutgift: BigDecimal, val sumTilsynsutgifter: BigDecimal, val endeligBeløp: BigDecimal, @@ -123,7 +126,8 @@ data class UnderholdskostnadDto( val erBegrensetAvMaksTilsyn: Boolean, val fordelingFaktor: BigDecimal, val skattefradrag: BigDecimal, - val skattefradragFaktor: BigDecimal, + val maksFradragAndel: BigDecimal, + val beløpTrukkeFraSkattefradrag: BigDecimal, ) data class TilsynsutgiftBarn( diff --git a/src/main/kotlin/no/nav/bidrag/behandling/transformers/BeregningDtoMapping.kt b/src/main/kotlin/no/nav/bidrag/behandling/transformers/BeregningDtoMapping.kt index 46de7d66..ee3ff929 100644 --- a/src/main/kotlin/no/nav/bidrag/behandling/transformers/BeregningDtoMapping.kt +++ b/src/main/kotlin/no/nav/bidrag/behandling/transformers/BeregningDtoMapping.kt @@ -66,6 +66,7 @@ import no.nav.bidrag.transport.behandling.felles.grunnlag.Person import no.nav.bidrag.transport.behandling.felles.grunnlag.SamværsklassePeriode import no.nav.bidrag.transport.behandling.felles.grunnlag.SivilstandPeriode import no.nav.bidrag.transport.behandling.felles.grunnlag.SjablonBidragsevnePeriode +import no.nav.bidrag.transport.behandling.felles.grunnlag.SjablonMaksFradragPeriode import no.nav.bidrag.transport.behandling.felles.grunnlag.SjablonMaksTilsynPeriode import no.nav.bidrag.transport.behandling.felles.grunnlag.SjablonSjablontallPeriode import no.nav.bidrag.transport.behandling.felles.grunnlag.SluttberegningBarnebidrag @@ -486,6 +487,16 @@ fun List.tilUnderholdskostnadDetaljer( Grunnlagstype.SJABLON_MAKS_TILSYN, grunnlagsreferanseListe, ) + val sjablonMaksfradrag = + finnOgKonverterGrunnlagSomErReferertFraGrunnlagsreferanseListe( + Grunnlagstype.SJABLON_MAKS_FRADRAG, + grunnlagsreferanseListe, + ) + val sjablonSkattesats = + finnOgKonverterGrunnlagSomErReferertFraGrunnlagsreferanseListe( + Grunnlagstype.SJABLON_SJABLONTALL, + nettoTilsyn.grunnlag.grunnlagsreferanseListe, + ).find { it.innhold.sjablon == SjablonTallNavn.SKATT_ALMINNELIG_INNTEKT_PROSENT } val maksTilsynBeløp = sjablonMaksTilsyn.firstOrNull()?.innhold?.maksBeløpTilsyn ?: BigDecimal.ZERO val søknadsbarnEndeligBeløp = nettoTilsyn.innhold.tilsynsutgiftBarnListe @@ -500,6 +511,9 @@ fun List.tilUnderholdskostnadDetaljer( val sumTilsynsutgifter = nettoTilsyn.innhold.tilsynsutgiftBarnListe.sumOf { it.sumTilsynsutgifter } val erBegrensetAvMaksTilsyn = nettoTilsyn.innhold.totalTilsynsutgift.setScale(0, RoundingMode.HALF_UP) != sumTilsynsutgifter.setScale(0, RoundingMode.HALF_UP) + val sjablonMaksFradragBeløp = sjablonMaksfradrag.firstOrNull()?.innhold?.maksBeløpFradrag ?: BigDecimal.ZERO + val antallBarn = nettoTilsyn.innhold.tilsynsutgiftBarnListe.size + val maksfradragAndel = sjablonMaksFradragBeløp.divide(antallBarn.toBigDecimal(), 10, RoundingMode.HALF_UP) return Beregningsdetaljer( erBegrensetAvMaksTilsyn = erBegrensetAvMaksTilsyn, endeligBeløp = søknadsbarnEndeligBeløp, @@ -511,7 +525,12 @@ fun List.tilUnderholdskostnadDetaljer( sumTilsynsutgifter = sumTilsynsutgifter, fordelingFaktor = nettoTilsyn.innhold.andelTilsynsutgiftFaktor, skattefradrag = nettoTilsyn.innhold.skattefradrag, - skattefradragFaktor = nettoTilsyn.innhold.skattefradrag, + maksFradragAndel = maksfradragAndel, + beløpTrukkeFraSkattefradrag = minOf(maksfradragAndel, nettoTilsyn.innhold.andelTilsynsutgiftBeløp), + sjablonMaksFradrag = sjablonMaksfradrag.firstOrNull()?.innhold?.maksBeløpFradrag ?: BigDecimal.ZERO, + skattAlminneligInntektFaktor = + sjablonSkattesats?.innhold?.verdi?.divide(BigDecimal(100), 10, RoundingMode.HALF_UP) ?: BigDecimal.ZERO, + sjablonAntallBarn = antallBarn, tilsynsutgifterBarn = nettoTilsyn.innhold.tilsynsutgiftBarnListe.sortedBy { it.gjelderBarn }.map { fu -> tilsynsutgifterBarn(grunnlagsreferanseListe, fu)