diff --git a/bidrag-domene/src/main/kotlin/no/nav/bidrag/domene/enums/beregning/Resultatkode.kt b/bidrag-domene/src/main/kotlin/no/nav/bidrag/domene/enums/beregning/Resultatkode.kt new file mode 100644 index 0000000..08d2345 --- /dev/null +++ b/bidrag-domene/src/main/kotlin/no/nav/bidrag/domene/enums/beregning/Resultatkode.kt @@ -0,0 +1,98 @@ +package no.nav.bidrag.domene.enums.beregning + +enum class Resultatkode(val legacyKode: String, vararg val type: ResultatkodeType) { + BARNET_ER_SELVFORSØRGET("", ResultatkodeType.BARNEBIDRAG, ResultatkodeType.SÆRTILSKUDD), + + // Resultat av beregning av barnebidrag, angir at det må gjøres en forholdsmessig fordeling + BEGRENSET_EVNE_FLERE_SAKER_UTFØR_FORHOLDSMESSIG_FORDELING("", ResultatkodeType.BARNEBIDRAG), + + // Beregnet bidrag er større enn forskuddsats, settes lik forskuddssats + BEGRENSET_REVURDERING("", ResultatkodeType.BARNEBIDRAG), + + // Barnet har delt bosted og BPs andel av U er under 50%, bidrag skal ikke beregnes + BIDRAG_IKKE_BEREGNET_DELT_BOSTED("", ResultatkodeType.BARNEBIDRAG), + + // Bidrag redusert pga ikke full evne + BIDRAG_REDUSERT_AV_EVNE("", ResultatkodeType.BARNEBIDRAG), + + // Maks 25% av inntekt + BIDRAG_REDUSERT_TIL_25_PROSENT_AV_INNTEKT("", ResultatkodeType.BARNEBIDRAG), + + // BarnetilleggBP er høyere enn beregnet bidrag + BIDRAG_SATT_TIL_BARNETILLEGG_BP("", ResultatkodeType.BARNEBIDRAG), + + // Barnebidrag settes likt barnetillegg fra forsvaret + BIDRAG_SATT_TIL_BARNETILLEGG_FORSVARET("", ResultatkodeType.BARNEBIDRAG), + + // Beregnet bidrag er lavere enn underholdskostnad minus barnetilleggBM + BIDRAG_SATT_TIL_UNDERHOLDSKOSTNAD_MINUS_BARNETILLEGG_BM("", ResultatkodeType.BARNEBIDRAG), + + // Barnet bor like mye hos begge foreldre + DELT_BOSTED("", ResultatkodeType.BARNEBIDRAG), + + // Beregning av forholdsmessig fordeling er utført og det er beregnet nytt bidragsbeløp + FORHOLDSMESSIG_FORDELING_BIDRAGSBELØP_ENDRET("", ResultatkodeType.BARNEBIDRAG), + + // Beregning av forholdsmessig fordeling er utført og det er ingen endringer på bidragsbeløp + FORHOLDSMESSIG_FORDELING_INGEN_ENDRING("", ResultatkodeType.BARNEBIDRAG), + + // BP har 0.- i bidragsevne, bidrag satt til 0.- + INGEN_EVNE("", ResultatkodeType.BARNEBIDRAG), + + // Kostnadsberegnet bidrag + KOSTNADSBEREGNET_BIDRAG("", ResultatkodeType.BARNEBIDRAG), + + REDUSERT_FORSKUDD_50_PROSENT("50", ResultatkodeType.FORSKUDD), + ORDINÆRT_FORSKUDD_75_PROSENT("75", ResultatkodeType.FORSKUDD), + FORHØYET_FORSKUDD_100_PROSENT("100", ResultatkodeType.FORSKUDD), + FORHØYET_FORSKUDD_11_ÅR_125_PROSENT("125", ResultatkodeType.FORSKUDD), + + // Resultat av beregning av særtilskudd + SÆRTILSKUDD_INNVILGET("VS", ResultatkodeType.SÆRTILSKUDD), + + // Resultat av beregning av særtilskudd + SÆRTILSKUDD_IKKE_FULL_BIDRAGSEVNE("6MB", ResultatkodeType.SÆRTILSKUDD), + + AVSLAG("A", ResultatkodeType.AVSLAG), + AVSLAG2("AA", ResultatkodeType.AVSLAG), + PÅ_GRUNN_AV_BARNEPENSJON("ABA", ResultatkodeType.AVSLAG), + + BARNETS_EKTESKAP("OBE", ResultatkodeType.OPPHØR), + BARNETS_INNTEKT("OBI", ResultatkodeType.OPPHØR), + PÅ_GRUNN_AV_YTELSE_FRA_FOLKETRYGDEN("OFT", ResultatkodeType.OPPHØR), + FULLT_UNDERHOLDT_AV_OFFENTLIG("OFU", ResultatkodeType.OPPHØR), + IKKE_OMSORG("OIO", ResultatkodeType.OPPHØR), + IKKE_OPPHOLD_I_RIKET("OIR", ResultatkodeType.OPPHØR), + MANGLENDE_DOKUMENTASJON("OMD", ResultatkodeType.OPPHØR), + PÅ_GRUNN_AV_SAMMENFLYTTING("OSA", ResultatkodeType.OPPHØR), + OPPHOLD_I_UTLANDET("OUT", ResultatkodeType.OPPHØR), + UTENLANDSK_YTELSE("OUY", ResultatkodeType.OPPHØR), + + ; + + companion object { + fun fraKode(kode: String): Resultatkode? { + return try { + enumValues().find { it.legacyKode == kode } ?: Resultatkode.valueOf(kode) + } catch (e: Exception) { + null + } + } + + fun alleMedType(type: ResultatkodeType): List { + return try { + enumValues().filter { it.type.contains(type) } + } catch (e: Exception) { + emptyList() + } + } + } + + enum class ResultatkodeType { + AVSLAG, + OPPHØR, + FORSKUDD, + BARNEBIDRAG, + SÆRTILSKUDD, + } +} diff --git a/bidrag-domene/src/main/kotlin/no/nav/bidrag/domene/enums/beregning/ResultatkodeBarnebidrag.kt b/bidrag-domene/src/main/kotlin/no/nav/bidrag/domene/enums/beregning/ResultatkodeBarnebidrag.kt index 15ca6da..d72e3ef 100644 --- a/bidrag-domene/src/main/kotlin/no/nav/bidrag/domene/enums/beregning/ResultatkodeBarnebidrag.kt +++ b/bidrag-domene/src/main/kotlin/no/nav/bidrag/domene/enums/beregning/ResultatkodeBarnebidrag.kt @@ -1,5 +1,6 @@ package no.nav.bidrag.domene.enums.beregning +@Deprecated("", replaceWith = ReplaceWith("Resultatkode")) enum class ResultatkodeBarnebidrag { BARNET_ER_SELVFORSØRGET, // Barnet er selvforsørget diff --git a/bidrag-domene/src/main/kotlin/no/nav/bidrag/domene/enums/beregning/ResultatkodeForskudd.kt b/bidrag-domene/src/main/kotlin/no/nav/bidrag/domene/enums/beregning/ResultatkodeForskudd.kt index 9b0dc51..8b32814 100644 --- a/bidrag-domene/src/main/kotlin/no/nav/bidrag/domene/enums/beregning/ResultatkodeForskudd.kt +++ b/bidrag-domene/src/main/kotlin/no/nav/bidrag/domene/enums/beregning/ResultatkodeForskudd.kt @@ -1,5 +1,6 @@ package no.nav.bidrag.domene.enums.beregning +@Deprecated("", replaceWith = ReplaceWith("Resultatkode")) enum class ResultatkodeForskudd(val legacyKode: String) { AVSLAG("A"), REDUSERT_FORSKUDD_50_PROSENT("50"), diff --git "a/bidrag-domene/src/main/kotlin/no/nav/bidrag/domene/enums/beregning/ResultatkodeS\303\246rtilskudd.kt" "b/bidrag-domene/src/main/kotlin/no/nav/bidrag/domene/enums/beregning/ResultatkodeS\303\246rtilskudd.kt" index e3be883..97deab7 100644 --- "a/bidrag-domene/src/main/kotlin/no/nav/bidrag/domene/enums/beregning/ResultatkodeS\303\246rtilskudd.kt" +++ "b/bidrag-domene/src/main/kotlin/no/nav/bidrag/domene/enums/beregning/ResultatkodeS\303\246rtilskudd.kt" @@ -1,5 +1,6 @@ package no.nav.bidrag.domene.enums.beregning +@Deprecated("", replaceWith = ReplaceWith("Resultatkode")) enum class ResultatkodeSærtilskudd(val kode: String) { BARNET_ER_SELVFORSØRGET("5SF"), // Barnet er selvforsørget SÆRTILSKUDD_INNVILGET("VS"), // Resultat av beregning av særtilskudd diff --git a/bidrag-domene/src/main/kotlin/no/nav/bidrag/domene/enums/grunnlag/Grunnlagstype.kt b/bidrag-domene/src/main/kotlin/no/nav/bidrag/domene/enums/grunnlag/Grunnlagstype.kt index c75899e..c3cac65 100644 --- a/bidrag-domene/src/main/kotlin/no/nav/bidrag/domene/enums/grunnlag/Grunnlagstype.kt +++ b/bidrag-domene/src/main/kotlin/no/nav/bidrag/domene/enums/grunnlag/Grunnlagstype.kt @@ -1,3 +1,5 @@ +@file:Suppress("unused") + package no.nav.bidrag.domene.enums.grunnlag import io.swagger.v3.oas.annotations.media.Schema @@ -43,15 +45,26 @@ enum class Grunnlagstype { FORHOLDSMESSIG_FORDELING, SLUTTBEREGNING_BBM, KLAGE_STATISTIKK, - PERSON, + BOSTATUS_PERIODE, SØKNAD, SIVILSTAND_PERIODE, - VIRKNINGSDATO, + VIRKNINGSTIDSPUNKT, NOTAT, + @Deprecated("Bruk de spesifikke grunnlagstypene som starter med PERSON_ i stedet") + PERSON, + PERSON_BIDRAGSMOTTAKER, + PERSON_BIDRAGSPLIKTIG, + PERSON_REELL_MOTTAKER, + PERSON_SØKNADSBARN, + PERSON_HUSSTANDSMEDLEM, + INNTEKT_RAPPORTERING_PERIODE, + // Inntekt som er beregnet av bidrag-inntekt + BEREGNET_INNTEKT, + INNHENTET_HUSSTANDSMEDLEM_PERIODE, INNHENTET_SIVILSTAND_PERIODE, INNHENTET_ARBEIDSFORHOLD_PERIODE, diff --git "a/bidrag-domene/src/main/kotlin/no/nav/bidrag/domene/enums/vedtak/Virkningstidspunkt\303\205rsakstype.kt" "b/bidrag-domene/src/main/kotlin/no/nav/bidrag/domene/enums/vedtak/Virkningstidspunkt\303\205rsakstype.kt" new file mode 100644 index 0000000..425c54c --- /dev/null +++ "b/bidrag-domene/src/main/kotlin/no/nav/bidrag/domene/enums/vedtak/Virkningstidspunkt\303\205rsakstype.kt" @@ -0,0 +1,26 @@ +@file:Suppress("unused") + +package no.nav.bidrag.domene.enums.vedtak + +import io.swagger.v3.oas.annotations.media.Schema + +@Schema(enumAsRef = true, name = "Årsakstype") +enum class VirkningstidspunktÅrsakstype(val legacyKode: String) { + ANNET("SF"), + ENDRING_3_MÅNEDER_TILBAKE("NF"), + ENDRING_3_ÅRS_REGELEN("OF"), + FRA_BARNETS_FØDSEL("AF"), + FRA_BARNETS_FLYTTEMÅNED("CF"), + FRA_KRAVFREMSETTELSE("DF"), + FRA_MÅNED_ETTER_INNTEKTEN_ØKTE("LF"), + FRA_OPPHOLDSTILLATELSE("GF"), + FRA_SØKNADSTIDSPUNKT("HF"), + FRA_SAMLIVSBRUDD("BF"), + FRA_SAMME_MÅNED_SOM_INNTEKTEN_BLE_REDUSERT("KF"), + PRIVAT_AVTALE("PA"), + REVURDERING_MÅNEDEN_ETTER("QF"), + SØKNADSTIDSPUNKT_ENDRING("MF"), + TIDLIGERE_FEILAKTIG_AVSLAG("PF"), + TRE_MÅNEDER_TILBAKE("EF"), + TRE_ÅRS_REGELEN("FF"), +} diff --git a/bidrag-domene/src/main/kotlin/no/nav/bidrag/domene/util/Visningsnavn.kt b/bidrag-domene/src/main/kotlin/no/nav/bidrag/domene/util/Visningsnavn.kt index 5cda663..327523f 100644 --- a/bidrag-domene/src/main/kotlin/no/nav/bidrag/domene/util/Visningsnavn.kt +++ b/bidrag-domene/src/main/kotlin/no/nav/bidrag/domene/util/Visningsnavn.kt @@ -4,6 +4,7 @@ import com.fasterxml.jackson.databind.ObjectMapper import com.fasterxml.jackson.dataformat.yaml.YAMLFactory import com.fasterxml.jackson.module.kotlin.readValue import com.fasterxml.jackson.module.kotlin.registerKotlinModule +import no.nav.bidrag.domene.enums.beregning.Resultatkode import no.nav.bidrag.domene.enums.beregning.ResultatkodeBarnebidrag import no.nav.bidrag.domene.enums.beregning.ResultatkodeForskudd import no.nav.bidrag.domene.enums.beregning.ResultatkodeSærtilskudd @@ -11,6 +12,7 @@ import no.nav.bidrag.domene.enums.diverse.Språk import no.nav.bidrag.domene.enums.inntekt.Inntektsrapportering import no.nav.bidrag.domene.enums.person.Bostatuskode import no.nav.bidrag.domene.enums.person.Sivilstandskode +import no.nav.bidrag.domene.enums.vedtak.VirkningstidspunktÅrsakstype import java.net.URL typealias VisningsnavnKodeMap = Map @@ -35,11 +37,19 @@ val Inntektsrapportering.visningsnavn get() = lastVisningsnavnFraFil("inntekttyp fun Inntektsrapportering.visningsnavnIntern(årstall: Int?) = "${visningsnavn.intern} $årstall".trim() +val VirkningstidspunktÅrsakstype.visningsnavn get() = lastVisningsnavnFraFil("årsak.yaml")[name] ?: visningsnavnMangler(name) val Sivilstandskode.visningsnavn get() = lastVisningsnavnFraFil("sivilstand.yaml")[name] ?: visningsnavnMangler(name) val Bostatuskode.visningsnavn get() = lastVisningsnavnFraFil("bostatus.yaml")[name] ?: visningsnavnMangler(name) -val ResultatkodeForskudd.visningsnavn get() = lastVisningsnavnFraFil("resultat.yaml", "FORSKUDD")[name] ?: visningsnavnMangler(name) -val ResultatkodeBarnebidrag.visningsnavn get() = lastVisningsnavnFraFil("resultat.yaml", "BARNEBIDRAG")[name] ?: visningsnavnMangler(name) -val ResultatkodeSærtilskudd.visningsnavn get() = lastVisningsnavnFraFil("resultat.yaml", "SÆRTILSKUDD")[name] ?: visningsnavnMangler(name) +val ResultatkodeForskudd.visningsnavn get() = + lastVisningsnavnFraFil("resultatDeprecated.yaml", "FORSKUDD")[name] + ?: visningsnavnMangler(name) +val ResultatkodeBarnebidrag.visningsnavn get() = + lastVisningsnavnFraFil("resultatDeprecated.yaml", "BARNEBIDRAG")[name] + ?: visningsnavnMangler(name) +val ResultatkodeSærtilskudd.visningsnavn get() = + lastVisningsnavnFraFil("resultatDeprecated.yaml", "SÆRTILSKUDD")[name] + ?: visningsnavnMangler(name) +val Resultatkode.visningsnavn get() = lastVisningsnavnFraFil("resultat.yaml")[name] ?: visningsnavnMangler(name) private fun lastVisningsnavnFraFil( filnavn: String, diff --git a/bidrag-domene/src/main/resources/kodeverk/visningsnavn/resultat.yaml b/bidrag-domene/src/main/resources/kodeverk/visningsnavn/resultat.yaml index a833a16..e40a2d0 100644 --- a/bidrag-domene/src/main/resources/kodeverk/visningsnavn/resultat.yaml +++ b/bidrag-domene/src/main/resources/kodeverk/visningsnavn/resultat.yaml @@ -1,91 +1,122 @@ -FORSKUDD: - AVSLAG: - intern: "Avslag" - bruker: - NB: "Avslag" - REDUSERT_FORSKUDD_50_PROSENT: - intern: "Redusert forskudd" - bruker: - NB: "Redusert forskudd" - ORDINÆRT_FORSKUDD_75_PROSENT: - intern: "Ordinært forskudd" - bruker: - NB: "Ordinært forskudd" - FORHØYET_FORSKUDD_100_PROSENT: - intern: "Forhøyet forskudd" - bruker: - NB: "Forhøyet forskudd" - FORHØYET_FORSKUDD_11_ÅR_125_PROSENT: - intern: "Forhøyet forskudd ved 11 år" - bruker: - NB: "Forhøyet forskudd ved 11 år" -BARNEBIDRAG: - BARNET_ER_SELVFORSØRGET: - intern: "Barnet er selvforsørget" - bruker: - NB: "Barnet er selvforsørget" - BEGRENSET_EVNE_FLERE_SAKER_UTFØR_FORHOLDSMESSIG_FORDELING: - intern: "Begrenset evne, flere saker, utfør forholdsmessig fordeling" - bruker: - NB: "Begrenset evne, flere saker, utfør forholdsmessig fordeling" - BEGRENSET_REVURDERING: - intern: "Begrenset revurdering" - bruker: - NB: "Begrenset revurdering" - BIDRAG_IKKE_BEREGNET_DELT_BOSTED: - intern: "Bidrag ikke beregnet, delt bosted" - bruker: - NB: "Bidrag ikke beregnet, delt bosted" - BIDRAG_REDUSERT_AV_EVNE: - intern: "Bidrag redusert av evne" - bruker: - NB: "Bidrag redusert av evne" - BIDRAG_REDUSERT_TIL_25_PROSENT_AV_INNTEKT: - intern: "Bidrag redusert til 25 prosent av inntekt" - bruker: - NB: "Bidrag redusert til 25 prosent av inntekt" - BIDRAG_SATT_TIL_BARNETILLEGG_BP: - intern: "Bidrag satt til barnetillegg fra BP" - bruker: - NB: "Bidrag satt til barnetillegg fra BP" - BIDRAG_SATT_TIL_BARNETILLEGG_FORSVARET: - intern: "Bidrag satt til barnetillegg fra forsvaret" - bruker: - NB: "Bidrag satt til barnetillegg fra forsvaret" - BIDRAG_SATT_TIL_UNDERHOLDSKOSTNAD_MINUS_BARNETILLEGG_BM: - intern: "Bidrag satt til underholdskostnad minus barnetillegg BM" - bruker: - NB: "Bidrag satt til underholdskostnad minus barnetillegg BM" - DELT_BOSTED: - intern: "Delt bosted" - bruker: - NB: "Delt bosted" - FORHOLDSMESSIG_FORDELING_BIDRAGSBELØP_ENDRET: - intern: "Forholdsmessig fordeling, bidragsbeløp endret" - bruker: - NB: "Forholdsmessig fordeling, bidragsbeløp endret" - FORHOLDSMESSIG_FORDELING_INGEN_ENDRING: - intern: "Forholdsmessig fordeling, ingen endring" - bruker: - NB: "Forholdsmessig fordeling, ingen endring" - INGEN_EVNE: - intern: "Ingen evne-" - bruker: - NB: "Ingen evne" - KOSTNADSBEREGNET_BIDRAG: - intern: "Kostnadsberegnet bidrag" - bruker: - NB: "Kostnadsberegnet bidrag" -SÆRTILSKUDD: - BARNET_ER_SELVFORSØRGET: - intern: "Barnet er selvforsørget" - bruker: - NB: "Barnet er selvforsørget" - SÆRTILSKUDD_INNVILGET: - intern: "Særtilskudd innvilget" - bruker: - NB: "Særtilskudd innvilget" - SÆRTILSKUDD_IKKE_FULL_BIDRAGSEVNE: - intern: "Særtilskudd ikke full bidragsevne" - bruker: - NB: "Særtilskudd ikke full bidragsevne" \ No newline at end of file +REDUSERT_FORSKUDD_50_PROSENT: + intern: "Redusert forskudd" + bruker: + NB: "Redusert forskudd" +ORDINÆRT_FORSKUDD_75_PROSENT: + intern: "Ordinært forskudd" + bruker: + NB: "Ordinært forskudd" +FORHØYET_FORSKUDD_100_PROSENT: + intern: "Forhøyet forskudd" + bruker: + NB: "Forhøyet forskudd" +FORHØYET_FORSKUDD_11_ÅR_125_PROSENT: + intern: "Forhøyet forskudd ved 11 år" + bruker: + NB: "Forhøyet forskudd ved 11 år" +BEGRENSET_EVNE_FLERE_SAKER_UTFØR_FORHOLDSMESSIG_FORDELING: + intern: "Begrenset evne, flere saker, utfør forholdsmessig fordeling" + bruker: + NB: "Begrenset evne, flere saker, utfør forholdsmessig fordeling" +BEGRENSET_REVURDERING: + intern: "Begrenset revurdering" + bruker: + NB: "Begrenset revurdering" +BIDRAG_IKKE_BEREGNET_DELT_BOSTED: + intern: "Bidrag ikke beregnet, delt bosted" + bruker: + NB: "Bidrag ikke beregnet, delt bosted" +BIDRAG_REDUSERT_AV_EVNE: + intern: "Bidrag redusert av evne" + bruker: + NB: "Bidrag redusert av evne" +BIDRAG_REDUSERT_TIL_25_PROSENT_AV_INNTEKT: + intern: "Bidrag redusert til 25 prosent av inntekt" + bruker: + NB: "Bidrag redusert til 25 prosent av inntekt" +BIDRAG_SATT_TIL_BARNETILLEGG_BP: + intern: "Bidrag satt til barnetillegg fra BP" + bruker: + NB: "Bidrag satt til barnetillegg fra BP" +BIDRAG_SATT_TIL_BARNETILLEGG_FORSVARET: + intern: "Bidrag satt til barnetillegg fra forsvaret" + bruker: + NB: "Bidrag satt til barnetillegg fra forsvaret" +BIDRAG_SATT_TIL_UNDERHOLDSKOSTNAD_MINUS_BARNETILLEGG_BM: + intern: "Bidrag satt til underholdskostnad minus barnetillegg BM" + bruker: + NB: "Bidrag satt til underholdskostnad minus barnetillegg BM" +DELT_BOSTED: + intern: "Delt bosted" + bruker: + NB: "Delt bosted" +FORHOLDSMESSIG_FORDELING_BIDRAGSBELØP_ENDRET: + intern: "Forholdsmessig fordeling, bidragsbeløp endret" + bruker: + NB: "Forholdsmessig fordeling, bidragsbeløp endret" +FORHOLDSMESSIG_FORDELING_INGEN_ENDRING: + intern: "Forholdsmessig fordeling, ingen endring" + bruker: + NB: "Forholdsmessig fordeling, ingen endring" +INGEN_EVNE: + intern: "Ingen evne" + bruker: + NB: "Ingen evne" +KOSTNADSBEREGNET_BIDRAG: + intern: "Kostnadsberegnet bidrag" + bruker: + NB: "Kostnadsberegnet bidrag" +BARNET_ER_SELVFORSØRGET: + intern: "Barnet er selvforsørget" + bruker: + NB: "Barnet er selvforsørget" +SÆRTILSKUDD_INNVILGET: + intern: "Særtilskudd innvilget" + bruker: + NB: "Særtilskudd innvilget" +SÆRTILSKUDD_IKKE_FULL_BIDRAGSEVNE: + intern: "Særtilskudd ikke full bidragsevne" + bruker: + NB: "Særtilskudd ikke full bidragsevne" + +#Avslagskoder +AVSLAG: + intern: "Avslag" + bruker: + NB: "Avslag" +AVSLAG2: + intern: "Avslag" + bruker: + NB: "Avslag" +PÅ_GRUNN_AV_BARNEPENSJON: + intern: "På grunn av barnepensjon" + +BARNETS_EKTESKAP: + intern: "Barnets ekteskap" + +BARNETS_INNTEKT: + intern: "Barnets inntekt" + +PÅ_GRUNN_AV_YTELSE_FRA_FOLKETRYGDEN: + intern: "På grunn av ytelse fra folketrygden" + +FULLT_UNDERHOLDT_AV_OFFENTLIG: + intern: "Fullt underholdt av offentlig" + +IKKE_OMSORG: + intern: "Ikke omsorg" + +IKKE_OPPHOLD_I_RIKET: + intern: "Ikke opphold i riket" + +MANGLENDE_DOKUMENTASJON: + intern: "Manglende dokumentasjon" + +PÅ_GRUNN_AV_SAMMENFLYTTING: + intern: "På grunn av sammenflytting" + +OPPHOLD_I_UTLANDET: + intern: "Opphold i utlandet" + +UTENLANDSK_YTELSE: + intern: "Utenlandsk ytelse" diff --git a/bidrag-domene/src/main/resources/kodeverk/visningsnavn/resultatDeprecated.yaml b/bidrag-domene/src/main/resources/kodeverk/visningsnavn/resultatDeprecated.yaml new file mode 100644 index 0000000..0f698ab --- /dev/null +++ b/bidrag-domene/src/main/resources/kodeverk/visningsnavn/resultatDeprecated.yaml @@ -0,0 +1,91 @@ +FORSKUDD: + AVSLAG: + intern: "Avslag" + bruker: + NB: "Avslag" + REDUSERT_FORSKUDD_50_PROSENT: + intern: "Redusert forskudd" + bruker: + NB: "Redusert forskudd" + ORDINÆRT_FORSKUDD_75_PROSENT: + intern: "Ordinært forskudd" + bruker: + NB: "Ordinært forskudd" + FORHØYET_FORSKUDD_100_PROSENT: + intern: "Forhøyet forskudd" + bruker: + NB: "Forhøyet forskudd" + FORHØYET_FORSKUDD_11_ÅR_125_PROSENT: + intern: "Forhøyet forskudd ved 11 år" + bruker: + NB: "Forhøyet forskudd ved 11 år" +BARNEBIDRAG: + BARNET_ER_SELVFORSØRGET: + intern: "Barnet er selvforsørget" + bruker: + NB: "Barnet er selvforsørget" + BEGRENSET_EVNE_FLERE_SAKER_UTFØR_FORHOLDSMESSIG_FORDELING: + intern: "Begrenset evne, flere saker, utfør forholdsmessig fordeling" + bruker: + NB: "Begrenset evne, flere saker, utfør forholdsmessig fordeling" + BEGRENSET_REVURDERING: + intern: "Begrenset revurdering" + bruker: + NB: "Begrenset revurdering" + BIDRAG_IKKE_BEREGNET_DELT_BOSTED: + intern: "Bidrag ikke beregnet, delt bosted" + bruker: + NB: "Bidrag ikke beregnet, delt bosted" + BIDRAG_REDUSERT_AV_EVNE: + intern: "Bidrag redusert av evne" + bruker: + NB: "Bidrag redusert av evne" + BIDRAG_REDUSERT_TIL_25_PROSENT_AV_INNTEKT: + intern: "Bidrag redusert til 25 prosent av inntekt" + bruker: + NB: "Bidrag redusert til 25 prosent av inntekt" + BIDRAG_SATT_TIL_BARNETILLEGG_BP: + intern: "Bidrag satt til barnetillegg fra BP" + bruker: + NB: "Bidrag satt til barnetillegg fra BP" + BIDRAG_SATT_TIL_BARNETILLEGG_FORSVARET: + intern: "Bidrag satt til barnetillegg fra forsvaret" + bruker: + NB: "Bidrag satt til barnetillegg fra forsvaret" + BIDRAG_SATT_TIL_UNDERHOLDSKOSTNAD_MINUS_BARNETILLEGG_BM: + intern: "Bidrag satt til underholdskostnad minus barnetillegg BM" + bruker: + NB: "Bidrag satt til underholdskostnad minus barnetillegg BM" + DELT_BOSTED: + intern: "Delt bosted" + bruker: + NB: "Delt bosted" + FORHOLDSMESSIG_FORDELING_BIDRAGSBELØP_ENDRET: + intern: "Forholdsmessig fordeling, bidragsbeløp endret" + bruker: + NB: "Forholdsmessig fordeling, bidragsbeløp endret" + FORHOLDSMESSIG_FORDELING_INGEN_ENDRING: + intern: "Forholdsmessig fordeling, ingen endring" + bruker: + NB: "Forholdsmessig fordeling, ingen endring" + INGEN_EVNE: + intern: "Ingen evne" + bruker: + NB: "Ingen evne" + KOSTNADSBEREGNET_BIDRAG: + intern: "Kostnadsberegnet bidrag" + bruker: + NB: "Kostnadsberegnet bidrag" +SÆRTILSKUDD: + BARNET_ER_SELVFORSØRGET: + intern: "Barnet er selvforsørget" + bruker: + NB: "Barnet er selvforsørget" + SÆRTILSKUDD_INNVILGET: + intern: "Særtilskudd innvilget" + bruker: + NB: "Særtilskudd innvilget" + SÆRTILSKUDD_IKKE_FULL_BIDRAGSEVNE: + intern: "Særtilskudd ikke full bidragsevne" + bruker: + NB: "Særtilskudd ikke full bidragsevne" \ No newline at end of file diff --git "a/bidrag-domene/src/main/resources/kodeverk/visningsnavn/\303\245rsak.yaml" "b/bidrag-domene/src/main/resources/kodeverk/visningsnavn/\303\245rsak.yaml" new file mode 100644 index 0000000..792e178 --- /dev/null +++ "b/bidrag-domene/src/main/resources/kodeverk/visningsnavn/\303\245rsak.yaml" @@ -0,0 +1,50 @@ +ANNET: + intern: "Annet" + +ENDRING_3_MÅNEDER_TILBAKE: + intern: "Endring 3 måneder tilbake" + +ENDRING_3_ÅRS_REGELEN: + intern: "Endring 3 års regelen" + +FRA_BARNETS_FØDSEL: + intern: "Fra barnets fødsel" + +FRA_BARNETS_FLYTTEMÅNED: + intern: "Fra barnets flyttemåned" + +FRA_KRAVFREMSETTELSE: + intern: "Fra kravfremsettelse" + +FRA_MÅNED_ETTER_INNTEKTEN_ØKTE: + intern: "Fra måned etter inntekten økte" + +FRA_OPPHOLDSTILLATELSE: + intern: "Fra oppholdstillatelse" + +FRA_SØKNADSTIDSPUNKT: + intern: "Fra søknadstidspunkt" + +FRA_SAMLIVSBRUDD: + intern: "Fra samlivsbrudd" + +FRA_SAMME_MÅNED_SOM_INNTEKTEN_BLE_REDUSERT: + intern: "Fra samme måned som inntekten ble redusert" + +PRIVAT_AVTALE: + intern: "Privat avtale" + +REVURDERING_MÅNEDEN_ETTER: + intern: "Revurdering måneden etter" + +SØKNADSTIDSPUNKT_ENDRING: + intern: "Søknadstidspunkt endring" + +TIDLIGERE_FEILAKTIG_AVSLAG: + intern: "Tidligere feilaktig avslag" + +TRE_MÅNEDER_TILBAKE: + intern: "Tre måneder tilbake" + +TRE_ÅRS_REGELEN: + intern: "Tre års regelen" \ No newline at end of file diff --git a/bidrag-domene/src/test/kotlin/no/nav/bidrag/domene/enums/beregning/ResultatkodeTest.kt b/bidrag-domene/src/test/kotlin/no/nav/bidrag/domene/enums/beregning/ResultatkodeTest.kt new file mode 100644 index 0000000..8619a87 --- /dev/null +++ b/bidrag-domene/src/test/kotlin/no/nav/bidrag/domene/enums/beregning/ResultatkodeTest.kt @@ -0,0 +1,27 @@ +package no.nav.bidrag.domene.enums.beregning + +import io.kotest.matchers.collections.shouldHaveSize +import io.kotest.matchers.nulls.shouldNotBeNull +import io.kotest.matchers.shouldBe +import org.junit.jupiter.api.Test + +class ResultatkodeTest { + @Test + fun `Skal hente resultatkode basert på legacyKode`() { + val resultatkode = Resultatkode.fraKode("A") + val resultatkode2 = Resultatkode.fraKode("AVSLAG") + + resultatkode.shouldNotBeNull() + resultatkode shouldBe Resultatkode.AVSLAG + + resultatkode2.shouldNotBeNull() + resultatkode2 shouldBe Resultatkode.AVSLAG + } + + @Test + fun `Skal hente avslagskoder`() { + val resultatkoder = Resultatkode.alleMedType(Resultatkode.ResultatkodeType.AVSLAG) + + resultatkoder.shouldHaveSize(3) + } +} diff --git a/bidrag-domene/src/test/kotlin/no/nav/bidrag/domene/util/VisningsnavnTest.kt b/bidrag-domene/src/test/kotlin/no/nav/bidrag/domene/util/VisningsnavnTest.kt index 8464a4d..06ca6fc 100644 --- a/bidrag-domene/src/test/kotlin/no/nav/bidrag/domene/util/VisningsnavnTest.kt +++ b/bidrag-domene/src/test/kotlin/no/nav/bidrag/domene/util/VisningsnavnTest.kt @@ -4,6 +4,7 @@ import io.kotest.assertions.assertSoftly import io.kotest.assertions.withClue import io.kotest.matchers.collections.shouldContainAll import io.kotest.matchers.shouldBe +import no.nav.bidrag.domene.enums.beregning.Resultatkode import no.nav.bidrag.domene.enums.beregning.ResultatkodeBarnebidrag import no.nav.bidrag.domene.enums.beregning.ResultatkodeForskudd import no.nav.bidrag.domene.enums.beregning.ResultatkodeSærtilskudd @@ -11,10 +12,23 @@ import no.nav.bidrag.domene.enums.diverse.Språk import no.nav.bidrag.domene.enums.inntekt.Inntektsrapportering import no.nav.bidrag.domene.enums.person.Bostatuskode import no.nav.bidrag.domene.enums.person.Sivilstandskode +import no.nav.bidrag.domene.enums.vedtak.VirkningstidspunktÅrsakstype import org.junit.jupiter.api.Nested import org.junit.jupiter.api.Test class VisningsnavnTest { + @Nested + internal inner class VirkningstidspunktÅrsakstypeTest { + @Test + fun `Valider at alle kodeverdier har visningsnavn`() { + VirkningstidspunktÅrsakstype.entries.forEach { + withClue("${it.name} mangler visningsnavn") { + it.visningsnavn.intern.isNotEmpty() shouldBe true + } + } + } + } + @Nested internal inner class InntektsrapporteringTest { @Test @@ -69,7 +83,7 @@ class VisningsnavnTest { } @Test - fun `Skal hente visningsnavn for sivilstand AINNTEKT_BEREGNET_12MND`() { + fun `Skal hente visningsnavn for sivilstand GIFT_SAMBOER`() { val visningsnavn = Sivilstandskode.GIFT_SAMBOER.visningsnavn visningsnavn.intern shouldBe "Gift/samboer" @@ -138,6 +152,11 @@ class VisningsnavnTest { internal inner class ResultatkodeTest { @Test fun `Valider at alle kodeverdier har visningsnavn`() { + Resultatkode.entries.forEach { + withClue("${it.name} mangler visningsnavn") { + it.visningsnavn.intern.isNotEmpty() shouldBe true + } + } ResultatkodeForskudd.entries.forEach { withClue("${it.name} mangler visningsnavn") { it.visningsnavn.intern.isNotEmpty() shouldBe true diff --git a/bidrag-transport/src/main/kotlin/no/nav/bidrag/transport/behandling/felles/grunnlag/GrunnlagExtensions.kt b/bidrag-transport/src/main/kotlin/no/nav/bidrag/transport/behandling/felles/grunnlag/GrunnlagExtensions.kt index 8d57ae0..f344c7f 100644 --- a/bidrag-transport/src/main/kotlin/no/nav/bidrag/transport/behandling/felles/grunnlag/GrunnlagExtensions.kt +++ b/bidrag-transport/src/main/kotlin/no/nav/bidrag/transport/behandling/felles/grunnlag/GrunnlagExtensions.kt @@ -8,31 +8,33 @@ inline fun BaseGrunnlag.innholdTilObjekt(): T { return commonObjectmapper.treeToValue(innhold) } -inline fun List.innholdTilObjekt(): List = map(BaseGrunnlag::innholdTilObjekt) +inline fun List.innholdTilObjekt(): List = map(BaseGrunnlag::innholdTilObjekt) -fun List.filtrerBasertPåFremmedReferanse( - grunnlagType: Grunnlagstype, +fun List.hentAllePersoner(): List = filter { it.type.name.startsWith("PERSON_") } + +fun List.filtrerBasertPåFremmedReferanse( + grunnlagType: Grunnlagstype? = null, referanse: String = "", -): List = - filter { it.type == grunnlagType } +): List = + filter { grunnlagType == null || it.type == grunnlagType } .filter { referanse.isEmpty() || it.grunnlagsreferanseListe.contains(referanse) } -fun List.filtrerBasertPåEgenReferanse( - grunnlagType: Grunnlagstype, +fun List.filtrerBasertPåEgenReferanse( + grunnlagType: Grunnlagstype? = null, referanse: String = "", -): List = - filter { it.type == grunnlagType } +): List = + filter { grunnlagType == null || it.type == grunnlagType } .filter { referanse.isEmpty() || referanse == it.referanse } -fun List.hentInntekter(): List = +fun List.hentInntekter(): List = filtrerBasertPåEgenReferanse( Grunnlagstype.INNTEKT_RAPPORTERING_PERIODE, ).innholdTilObjekt() data class InnholdMedReferanse(val referanse: String, val innhold: T) -inline fun List.filtrerOgKonverterBasertPåEgenReferanse( - grunnlagType: Grunnlagstype, +inline fun List.filtrerOgKonverterBasertPåEgenReferanse( + grunnlagType: Grunnlagstype? = null, referanse: String = "", ): List> = filtrerBasertPåEgenReferanse(grunnlagType, referanse) @@ -40,8 +42,8 @@ inline fun List.filtrerOgKonverterBas InnholdMedReferanse(it.referanse, it.innholdTilObjekt()) } -inline fun List.filtrerOgKonverterBasertPåFremmedReferanse( - grunnlagType: Grunnlagstype, +inline fun List.filtrerOgKonverterBasertPåFremmedReferanse( + grunnlagType: Grunnlagstype? = null, referanse: String = "", ): List> = filtrerBasertPåFremmedReferanse(grunnlagType, referanse) diff --git a/bidrag-transport/src/main/kotlin/no/nav/bidrag/transport/behandling/felles/grunnlag/InntektsrapporteringPeriode.kt b/bidrag-transport/src/main/kotlin/no/nav/bidrag/transport/behandling/felles/grunnlag/Inntekt.kt similarity index 54% rename from bidrag-transport/src/main/kotlin/no/nav/bidrag/transport/behandling/felles/grunnlag/InntektsrapporteringPeriode.kt rename to bidrag-transport/src/main/kotlin/no/nav/bidrag/transport/behandling/felles/grunnlag/Inntekt.kt index e13f9ea..e04da74 100644 --- a/bidrag-transport/src/main/kotlin/no/nav/bidrag/transport/behandling/felles/grunnlag/InntektsrapporteringPeriode.kt +++ b/bidrag-transport/src/main/kotlin/no/nav/bidrag/transport/behandling/felles/grunnlag/Inntekt.kt @@ -5,6 +5,7 @@ import no.nav.bidrag.domene.enums.inntekt.Inntektsrapportering import no.nav.bidrag.domene.enums.inntekt.Inntektstype import no.nav.bidrag.domene.tid.ÅrMånedsperiode import java.math.BigDecimal +import java.time.YearMonth @Schema(description = "Rapportert inntekt for person") data class InntektsrapporteringPeriode( @@ -27,3 +28,28 @@ data class InntektsrapporteringPeriode( val beløp: BigDecimal, ) } + +@Schema(description = "Inntekt beregnet av bidrag-inntekt basert på data fra bidrag-grunnlag") +data class BeregnetInntekt( + val versjon: String, + @Schema(description = "Liste over summerte månedsinntekter (Ainntekt ++))") + val summertMånedsinntektListe: List = emptyList(), +) : GrunnlagInnhold { + data class SummertMånedsinntekt( + @Schema(description = "Perioden inntekten gjelder for (format YYYY-MM)", example = "2023-01", type = "String", pattern = "YYYY-MM") + val gjelderÅrMåned: YearMonth, + @Schema(description = "Summert inntekt for måneden", example = "50000") + val sumInntekt: BigDecimal, + @Schema(description = "Liste over inntektsposter som utgjør grunnlaget for summert inntekt") + val inntektPostListe: List, + ) + + data class InntektPost( + @Schema(description = "Kode for inntektspost", example = "bonus") + val kode: String, + @Schema(description = "Inntekstype inntekstposten er knyttet til", example = "PENSJON") + val inntekstype: Inntektstype? = null, + @Schema(description = "Beløp som utgjør inntektsposten", example = "60000") + val beløp: BigDecimal, + ) +} diff --git a/bidrag-transport/src/main/kotlin/no/nav/bidrag/transport/behandling/felles/grunnlag/NotatGrunnlag.kt b/bidrag-transport/src/main/kotlin/no/nav/bidrag/transport/behandling/felles/grunnlag/NotatGrunnlag.kt index f36f49a..1d435db 100644 --- a/bidrag-transport/src/main/kotlin/no/nav/bidrag/transport/behandling/felles/grunnlag/NotatGrunnlag.kt +++ b/bidrag-transport/src/main/kotlin/no/nav/bidrag/transport/behandling/felles/grunnlag/NotatGrunnlag.kt @@ -3,4 +3,11 @@ package no.nav.bidrag.transport.behandling.felles.grunnlag data class NotatGrunnlag( val innhold: String, val erMedIVedtaksdokumentet: Boolean, -) : GrunnlagInnhold + val type: NotatType, +) : GrunnlagInnhold { + enum class NotatType { + VIRKNINGSTIDSPUNKT, + BOFORHOLD, + INNTEKT, + } +} diff --git "a/bidrag-transport/src/main/kotlin/no/nav/bidrag/transport/behandling/felles/grunnlag/S\303\270knad.kt" "b/bidrag-transport/src/main/kotlin/no/nav/bidrag/transport/behandling/felles/grunnlag/S\303\270knad.kt" index d694108..408e707 100644 --- "a/bidrag-transport/src/main/kotlin/no/nav/bidrag/transport/behandling/felles/grunnlag/S\303\270knad.kt" +++ "b/bidrag-transport/src/main/kotlin/no/nav/bidrag/transport/behandling/felles/grunnlag/S\303\270knad.kt" @@ -1,6 +1,7 @@ package no.nav.bidrag.transport.behandling.felles.grunnlag import no.nav.bidrag.domene.enums.rolle.SøktAvType +import no.nav.bidrag.domene.enums.vedtak.VirkningstidspunktÅrsakstype import no.nav.bidrag.domene.tid.ÅrMånedsperiode import java.math.BigDecimal import java.time.LocalDate @@ -11,9 +12,9 @@ data class SøknadGrunnlag( val søktAv: SøktAvType, ) : GrunnlagInnhold -data class VirkningsdatoGrunnlag( - val virkningsdato: LocalDate, - val årsak: String, +data class VirkningstidspunktGrunnlag( + val virkningstidspunkt: LocalDate, + val årsak: VirkningstidspunktÅrsakstype, ) : GrunnlagInnhold data class SluttberegningBBM(