Skip to content

Commit

Permalink
Merge pull request #117 from navikt/feature/ny-versjon-bidrag-domene
Browse files Browse the repository at this point in the history
Ny versjon av bidrag-domene
  • Loading branch information
LarsOttoHaugen authored Dec 1, 2023
2 parents 5c722f7 + 0176eb0 commit 66b1026
Show file tree
Hide file tree
Showing 10 changed files with 247 additions and 246 deletions.
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ Tilbyr felles dataklasser og util-metoder for håndtering av inntekter, sjablone

| Versjon | Endringstype | Beskrivelse |
|---------|--------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 1.0.6 | Endret | Ny versjon av bidrag-domene |
| 1.0.5 | Endret | Lagt til validering av input-datoer i PeriodeUtil. Java versjon 21. ktlint formattering. |
| 1.0.4 | Endret | Ny versjon av bidrag-domene. Kommentert ut en del kode som gjelder inntektsvalidering. |
| 1.0.3 | Endret | Delvis fjernet bruk av InntektType |
Expand Down
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@

<!-- dependencies -->
<spring-boot.version>3.0.6</spring-boot.version>
<bidrag-domene.version>20231110092737_1f08513</bidrag-domene.version>
<bidrag-domene.version>20231129132715_50218a8</bidrag-domene.version>
</properties>

<distributionManagement>
Expand Down
2 changes: 1 addition & 1 deletion src/main/kotlin/no/nav/bidrag/beregn/felles/bo/Avvik.kt
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package no.nav.bidrag.beregn.felles.bo

import no.nav.bidrag.domene.enums.Avvikstype
import no.nav.bidrag.domene.enums.beregning.Avvikstype

data class Avvik(
val avvikTekst: String,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,13 @@ package no.nav.bidrag.beregn.felles.inntekt

import no.nav.bidrag.beregn.felles.bo.Periode
import no.nav.bidrag.beregn.felles.bo.PeriodisertGrunnlag
import no.nav.bidrag.domene.enums.InntektType
import no.nav.bidrag.domene.enums.inntekt.Inntektstype
import java.math.BigDecimal

data class InntektPeriodeGrunnlag(
val referanse: String,
val inntektPeriode: Periode,
val type: InntektType,
val type: Inntektstype,
val belop: BigDecimal,
val deltFordel: Boolean,
val skatteklasse2: Boolean,
Expand Down
40 changes: 20 additions & 20 deletions src/main/kotlin/no/nav/bidrag/beregn/felles/util/InntektUtil.kt
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,10 @@ import no.nav.bidrag.beregn.felles.inntekt.InntektPeriodeGrunnlag
import no.nav.bidrag.beregn.felles.inntekt.InntektPeriodeGrunnlagUtenInntektType
import no.nav.bidrag.beregn.felles.inntekt.PeriodisertInntekt
import no.nav.bidrag.beregn.felles.periode.Periodiserer
import no.nav.bidrag.domene.enums.Formaal
import no.nav.bidrag.domene.enums.InntektType
import no.nav.bidrag.domene.enums.Rolle
import no.nav.bidrag.domene.enums.inntekt.Inntektstype
import no.nav.bidrag.domene.enums.rolle.Rolle
import no.nav.bidrag.domene.enums.sjablon.SjablonTallNavn
import no.nav.bidrag.domene.enums.vedtak.Formål
import java.math.BigDecimal
import java.math.RoundingMode
import java.time.LocalDate
Expand All @@ -28,7 +28,7 @@ object InntektUtil {
@JvmStatic
fun validerInntekter(
inntektPeriodeGrunnlagListe: List<InntektPeriodeGrunnlag>,
formaal: Formaal,
formaal: Formål,
rolle: Rolle,
): List<Avvik> {
val avvikListe = mutableListOf<Avvik>()
Expand Down Expand Up @@ -217,7 +217,7 @@ object InntektUtil {
// Danner liste over alle inntekter av type UTVIDET_BARNETRYGD
val justertInntektPeriodeGrunnlagListeUtvidetBarnetrygd =
justertInntektPeriodeGrunnlagListeAlleInntekter
.filter { it.type == InntektType.UTVIDET_BARNETRYGD.name }
.filter { it.type == Inntektstype.UTVIDET_BARNETRYGD.name }
.toList()

// Hvis det ikke finnes inntekter av type UTVIDET_BARNETRYGD, returnerer den samme listen som ble sendt inn
Expand All @@ -236,10 +236,10 @@ object InntektUtil {
// Lager filter over de sjablonene som skal brukes (0004, 0030, 0031, 0039)
val sjablonFilter =
listOf(
SjablonTallNavn.FORDEL_SKATTEKLASSE2_BELOP,
SjablonTallNavn.OVRE_INNTEKTSGRENSE_IKKE_I_SKATTEPOSISJON_BELOP,
SjablonTallNavn.NEDRE_INNTEKTSGRENSE_FULL_SKATTEPOSISJON_BELOP,
SjablonTallNavn.FORDEL_SAERFRADRAG_BELOP,
SjablonTallNavn.FORDEL_SKATTEKLASSE2_BELØP,
SjablonTallNavn.ØVRE_INNTEKTSGRENSE_IKKE_I_SKATTEPOSISJON_BELØP,
SjablonTallNavn.NEDRE_INNTEKTSGRENSE_FULL_SKATTEPOSISJON_BELØP,
SjablonTallNavn.FORDEL_SÆRFRADRAG_BELØP,
)

// Filtrerer sjabloner og justerer datoer
Expand Down Expand Up @@ -288,25 +288,25 @@ object InntektUtil {
finnSjablonverdi(
periode = it.getPeriode(),
justertsjablonListe = justertSjablonListe,
sjablonTallNavn = SjablonTallNavn.FORDEL_SKATTEKLASSE2_BELOP,
sjablonTallNavn = SjablonTallNavn.FORDEL_SKATTEKLASSE2_BELØP,
),
sjablon0030OvreInntektsgrenseBelop =
finnSjablonverdi(
periode = it.getPeriode(),
justertsjablonListe = justertSjablonListe,
sjablonTallNavn = SjablonTallNavn.OVRE_INNTEKTSGRENSE_IKKE_I_SKATTEPOSISJON_BELOP,
sjablonTallNavn = SjablonTallNavn.ØVRE_INNTEKTSGRENSE_IKKE_I_SKATTEPOSISJON_BELØP,
),
sjablon0031NedreInntektsgrenseBelop =
finnSjablonverdi(
periode = it.getPeriode(),
justertsjablonListe = justertSjablonListe,
sjablonTallNavn = SjablonTallNavn.NEDRE_INNTEKTSGRENSE_FULL_SKATTEPOSISJON_BELOP,
sjablonTallNavn = SjablonTallNavn.NEDRE_INNTEKTSGRENSE_FULL_SKATTEPOSISJON_BELØP,
),
sjablon0039FordelSaerfradragBelop =
finnSjablonverdi(
periode = it.getPeriode(),
justertsjablonListe = justertSjablonListe,
sjablonTallNavn = SjablonTallNavn.FORDEL_SAERFRADRAG_BELOP,
sjablonTallNavn = SjablonTallNavn.FORDEL_SÆRFRADRAG_BELØP,
),
deltFordel =
finnDeltFordel(
Expand Down Expand Up @@ -346,7 +346,7 @@ object InntektUtil {
periode: Periode,
justertInntektPeriodeGrunnlagListe: List<InntektPeriodeGrunnlagUtenInntektType>,
) = justertInntektPeriodeGrunnlagListe
.filter { it.getPeriode().overlapperMed(periode) && it.type != InntektType.UTVIDET_BARNETRYGD.name }
.filter { it.getPeriode().overlapperMed(periode) && it.type != Inntektstype.UTVIDET_BARNETRYGD.name }
.map(InntektPeriodeGrunnlagUtenInntektType::belop)
.fold(BigDecimal.ZERO) { acc, belop -> acc + belop }

Expand All @@ -365,15 +365,15 @@ object InntektUtil {
periode: Periode,
justertInntektPeriodeGrunnlagListe: List<InntektPeriodeGrunnlagUtenInntektType>,
) = justertInntektPeriodeGrunnlagListe.firstOrNull {
it.getPeriode().overlapperMed(periode) && it.type == InntektType.UTVIDET_BARNETRYGD.name
it.getPeriode().overlapperMed(periode) && it.type == Inntektstype.UTVIDET_BARNETRYGD.name
}?.deltFordel ?: false

// Finner verdien til flagget 'Skatteklasse 2' i en gitt periode
private fun finnSkatteklasse2(
periode: Periode,
justertInntektPeriodeGrunnlagListe: List<InntektPeriodeGrunnlagUtenInntektType>,
) = justertInntektPeriodeGrunnlagListe.firstOrNull {
it.getPeriode().overlapperMed(periode) && it.type == InntektType.UTVIDET_BARNETRYGD.name
it.getPeriode().overlapperMed(periode) && it.type == Inntektstype.UTVIDET_BARNETRYGD.name
}?.skatteklasse2 ?: false

// Beregner fordel særfradrag
Expand Down Expand Up @@ -432,13 +432,13 @@ object InntektUtil {
var forrigeDatoFom = periodisertInntektListe[0].periode.datoFom
var forrigeDatoTil = periodisertInntektListe[0].periode.datoTil
var forrigeBelop = periodisertInntektListe[0].fordelSaerfradragBelop
var inntektType: InntektType
var inntektType: Inntektstype
periodisertInntektListe.forEach {
if (forrigeBelop.compareTo(it.fordelSaerfradragBelop) != 0) {
if (forrigeBelop.compareTo(BigDecimal.ZERO) != 0) {
// TODO Må enten ha FORDEL_SKATTEKLASSE2 og FORDEL_SAERFRADRAG_ENSLIG_FORSORGER som egne inntektstyper eller forutsette at denne logikken flyttes til bidrag-behandling
// TODO InntetkType.AAP er ikke gyldig her. Har bare satt den for at koden skal kompilere
inntektType = InntektType.AAP
inntektType = Inntektstype.AAP
// if (forrigeDatoFom.isBefore(TIL_DATO_FORDEL_SKATTEKLASSE2)) InntektType.FORDEL_SKATTEKLASSE2 else InntektType.FORDEL_SAERFRADRAG_ENSLIG_FORSORGER
inntektListeSaerfradragEnsligForsorger.add(
InntektPeriodeGrunnlagUtenInntektType(
Expand All @@ -459,7 +459,7 @@ object InntektUtil {
if (forrigeBelop.compareTo(BigDecimal.ZERO) != 0) {
// TODO Må enten ha FORDEL_SKATTEKLASSE2 og FORDEL_SAERFRADRAG_ENSLIG_FORSORGER som egne inntektstyper eller forutsette at denne logikken flyttes til bidrag-behandling
// TODO InntetkType.AAP er ikke gyldig her. Har bare satt den for at koden skal kompilere
inntektType = InntektType.AAP
inntektType = Inntektstype.AAP
// if (forrigeDatoFom.isBefore(TIL_DATO_FORDEL_SKATTEKLASSE2)) InntektType.FORDEL_SKATTEKLASSE2 else InntektType.FORDEL_SAERFRADRAG_ENSLIG_FORSORGER
inntektListeSaerfradragEnsligForsorger.add(
InntektPeriodeGrunnlagUtenInntektType(
Expand All @@ -477,7 +477,7 @@ object InntektUtil {
}

private fun lagReferanse(
inntektType: InntektType,
inntektType: Inntektstype,
datoFom: LocalDate,
) = "Beregnet_Inntekt_" + inntektType.name + "_" + datoFom.format(DateTimeFormatter.ofPattern("yyyyMMdd"))
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ package no.nav.bidrag.beregn.felles.util

import no.nav.bidrag.beregn.felles.bo.Avvik
import no.nav.bidrag.beregn.felles.bo.Periode
import no.nav.bidrag.domene.enums.Avvikstype
import no.nav.bidrag.domene.enums.beregning.Avvikstype
import java.time.LocalDate

object PeriodeUtil {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import no.nav.bidrag.beregn.felles.bo.SjablonSingelNokkelSingelInnhold
import no.nav.bidrag.beregn.felles.bo.TrinnvisSkattesats
import no.nav.bidrag.domene.enums.sjablon.SjablonInnholdNavn
import no.nav.bidrag.domene.enums.sjablon.SjablonNavn
import no.nav.bidrag.domene.enums.sjablon.SjablonNokkelNavn
import no.nav.bidrag.domene.enums.sjablon.SjablonNøkkelNavn
import no.nav.bidrag.domene.enums.sjablon.SjablonTallNavn
import java.math.BigDecimal
import java.util.Comparator.comparing
Expand Down Expand Up @@ -55,7 +55,7 @@ object SjablonUtil {
sjablonListe: List<Sjablon>,
sjablonNavn: SjablonNavn,
sjablonNokkelListe: List<SjablonNokkel>,
sjablonNokkelNavn: SjablonNokkelNavn,
sjablonNokkelNavn: SjablonNøkkelNavn,
sjablonNokkelVerdi: Int,
sjablonInnholdNavn: SjablonInnholdNavn,
): BigDecimal {
Expand Down Expand Up @@ -103,7 +103,7 @@ object SjablonUtil {
val inntektGrenseListe =
finnSjablonInnholdVerdiListe(
sjablonInnholdListe = sjablonInnholdListe,
sjablonInnholdNavn = SjablonInnholdNavn.INNTEKTSGRENSE_BELOP,
sjablonInnholdNavn = SjablonInnholdNavn.INNTEKTSGRENSE_BELØP,
)
val satsListe =
finnSjablonInnholdVerdiListe(
Expand Down Expand Up @@ -176,7 +176,7 @@ object SjablonUtil {
// Brukes av sjabloner som har ett nøkkelobjekt med eksakt match og flere innholdobjekter (Samværsfradrag).
private fun mapTilSingelListeNokkelSortert(
filtrertSjablonListe: List<Sjablon>,
sjablonNokkelNavn: SjablonNokkelNavn,
sjablonNokkelNavn: SjablonNøkkelNavn,
): List<SjablonSingelNokkel> =
filtrertSjablonListe
.map {
Expand Down
Loading

0 comments on commit 66b1026

Please sign in to comment.