Skip to content

Commit

Permalink
Opprett grunnlagsobjekter for vedtak og beregning (#51)
Browse files Browse the repository at this point in the history
  • Loading branch information
ugur93 authored Jan 26, 2024
1 parent c78f3ff commit ff4dd0f
Show file tree
Hide file tree
Showing 30 changed files with 756 additions and 321 deletions.
2 changes: 1 addition & 1 deletion bidrag-commons-test/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
<parent>
<groupId>no.nav.bidrag</groupId>
<artifactId>bidrag-felles</artifactId>
<version>${revision}</version>
<version>1.0-SNAPSHOT</version>
</parent>

<artifactId>bidrag-commons-test-felles</artifactId>
Expand Down
2 changes: 1 addition & 1 deletion bidrag-commons/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<parent>
<groupId>no.nav.bidrag</groupId>
<artifactId>bidrag-felles</artifactId>
<version>${revision}</version>
<version>1.0-SNAPSHOT</version>
</parent>

<artifactId>bidrag-commons-felles</artifactId>
Expand Down
2 changes: 1 addition & 1 deletion bidrag-domene/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
<parent>
<groupId>no.nav.bidrag</groupId>
<artifactId>bidrag-felles</artifactId>
<version>${revision}</version>
<version>1.0-SNAPSHOT</version>
</parent>

<artifactId>bidrag-domene-felles</artifactId>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,20 @@
package no.nav.bidrag.domene.enums.beregning

enum class ResultatkodeForskudd {
AVSLAG,
REDUSERT_FORSKUDD_50_PROSENT,
ORDINÆRT_FORSKUDD_75_PROSENT,
FORHØYET_FORSKUDD_100_PROSENT,
FORHØYET_FORSKUDD_11_ÅR_125_PROSENT,
enum class ResultatkodeForskudd(val legacyKode: String) {
AVSLAG("A"),
REDUSERT_FORSKUDD_50_PROSENT("50"),
ORDINÆRT_FORSKUDD_75_PROSENT("75"),
FORHØYET_FORSKUDD_100_PROSENT("100"),
FORHØYET_FORSKUDD_11_ÅR_125_PROSENT("125"),
;

companion object {
fun fraKode(kode: String): ResultatkodeForskudd? {
return try {
entries.find { it.legacyKode == kode } ?: ResultatkodeForskudd.valueOf(kode)
} catch (e: Exception) {
null
}
}
}
}
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package no.nav.bidrag.domene.enums.beregning

enum class ResultatkodeSærtilskudd {
BARNET_ER_SELVFORSØRGET, // Barnet er selvforsørget
SÆRTILSKUDD_INNVILGET, // Resultat av beregning av særtilskudd
SÆRTILSKUDD_IKKE_FULL_BIDRAGSEVNE, // Resultat av beregning av særtilskudd
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
SÆRTILSKUDD_IKKE_FULL_BIDRAGSEVNE("6MB"), // Resultat av beregning av særtilskudd
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,105 +6,61 @@ import io.swagger.v3.oas.annotations.media.Schema
* Typer grunnlag som benyttes i behandling
*/
@Schema(enumAsRef = true)
enum class Grunnlagstype(val value: String) {
SÆRFRADRAG(GrunnlagstypeConstants.SÆRFRADRAG),
SØKNADSBARN_INFO(GrunnlagstypeConstants.SØKNADSBARN_INFO),
SKATTEKLASSE(GrunnlagstypeConstants.SKATTEKLASSE),
BARN_I_HUSSTAND(GrunnlagstypeConstants.BARN_I_HUSSTAND),
BOSTATUS(GrunnlagstypeConstants.BOSTATUS),
BOSTATUS_BP(GrunnlagstypeConstants.BOSTATUS_BP),
INNTEKT(GrunnlagstypeConstants.INNTEKT),
INNTEKT_BARN(GrunnlagstypeConstants.INNTEKT_BARN),
INNTEKT_UTVIDET_BARNETRYGD(GrunnlagstypeConstants.INNTEKT_UTVIDET_BARNETRYGD),
KAPITALINNTEKT(GrunnlagstypeConstants.KAPITALINNTEKT),
KAPITALINNTEKT_BARN(GrunnlagstypeConstants.KAPITALINNTEKT_BARN),
NETTO_SÆRTILSKUDD(GrunnlagstypeConstants.NETTO_SÆRTILSKUDD),
SAMVÆRSKLASSE(GrunnlagstypeConstants.SAMVÆRSKLASSE),
BIDRAGSEVNE(GrunnlagstypeConstants.BIDRAGSEVNE),
SAMVÆRSFRADRAG(GrunnlagstypeConstants.SAMVÆRSFRADRAG),
SJABLON(GrunnlagstypeConstants.SJABLON),
LØPENDE_BIDRAG(GrunnlagstypeConstants.LØPENDE_BIDRAG),
FAKTISK_UTGIFT(GrunnlagstypeConstants.FAKTISK_UTGIFT),
BARNETILSYN_MED_STØNAD(GrunnlagstypeConstants.BARNETILSYN_MED_STØNAD),
FORPLEINING_UTGIFT(GrunnlagstypeConstants.FORPLEINING_UTGIFT),
BARN(GrunnlagstypeConstants.BARN),
SIVILSTAND(GrunnlagstypeConstants.SIVILSTAND),
BARNETILLEGG(GrunnlagstypeConstants.BARNETILLEGG),
BARNETILLEGG_FORSVARET(GrunnlagstypeConstants.BARNETILLEGG_FORSVARET),
DELT_BOSTED(GrunnlagstypeConstants.DELT_BOSTED),
NETTO_BARNETILSYN(GrunnlagstypeConstants.NETTO_BARNETILSYN),
UNDERHOLDSKOSTNAD(GrunnlagstypeConstants.UNDERHOLDSKOSTNAD),
BPS_ANDEL_UNDERHOLDSKOSTNAD(GrunnlagstypeConstants.BPS_ANDEL_UNDERHOLDSKOSTNAD),
TILLEGGSBIDRAG(GrunnlagstypeConstants.TILLEGGSBIDRAG),
MAKS_BIDRAG_PER_BARN(GrunnlagstypeConstants.MAKS_BIDRAG_PER_BARN),
BPS_ANDEL_SÆRTILSKUDD(GrunnlagstypeConstants.BPS_ANDEL_SÆRTILSKUDD),
MAKS_GRENSE_25_INNTEKT(GrunnlagstypeConstants.MAKS_GRENSE_25_INNTEKT),
GEBYRFRITAK(GrunnlagstypeConstants.GEBYRFRITAK),
SØKNAD_INFO(GrunnlagstypeConstants.SØKNAD_INFO),
BARN_INFO(GrunnlagstypeConstants.BARN_INFO),
PERSON_INFO(GrunnlagstypeConstants.PERSON_INFO),
SAKSBEHANDLER_INFO(GrunnlagstypeConstants.SAKSBEHANDLER_INFO),
VEDTAK_INFO(GrunnlagstypeConstants.VEDTAK_INFO),
INNBETALT_BELØP(GrunnlagstypeConstants.INNBETALT_BELØP),
FORHOLDSMESSIG_FORDELING(GrunnlagstypeConstants.FORHOLDSMESSIG_FORDELING),
SLUTTBEREGNING_BBM(GrunnlagstypeConstants.SLUTTBEREGNING_BBM),
KLAGE_STATISTIKK(GrunnlagstypeConstants.KLAGE_STATISTIKK),
PERSON(GrunnlagstypeConstants.PERSON),
BOSTATUS_PERIODE(GrunnlagstypeConstants.BOSTATUS_PERIODE),
BEREGNING_INNTEKT_RAPPORTERING_PERIODE(GrunnlagstypeConstants.BEREGNING_INNTEKT_RAPPORTERING_PERIODE),
SIVILSTAND_PERIODE(GrunnlagstypeConstants.SIVILSTAND_PERIODE),
VIRKNINGSDATO(GrunnlagstypeConstants.VIRKNINGSDATO),
NOTAT(GrunnlagstypeConstants.NOTAT),
;
enum class Grunnlagstype {
SÆRFRADRAG,
SKATTEKLASSE,
BARN_I_HUSSTAND,
BOSTATUS,
BOSTATUS_BP,
INNTEKT,
INNTEKT_BARN,
INNTEKT_UTVIDET_BARNETRYGD,
KAPITALINNTEKT,
KAPITALINNTEKT_BARN,
NETTO_SÆRTILSKUDD,
SAMVÆRSKLASSE,
BIDRAGSEVNE,
SAMVÆRSFRADRAG,
SJABLON,
LØPENDE_BIDRAG,
FAKTISK_UTGIFT,
BARNETILSYN_MED_STØNAD,
FORPLEINING_UTGIFT,
BARN,
SIVILSTAND,
BARNETILLEGG,
BARNETILLEGG_FORSVARET,
DELT_BOSTED,
NETTO_BARNETILSYN,
UNDERHOLDSKOSTNAD,
BPS_ANDEL_UNDERHOLDSKOSTNAD,
TILLEGGSBIDRAG,
MAKS_BIDRAG_PER_BARN,
BPS_ANDEL_SÆRTILSKUDD,
MAKS_GRENSE_25_INNTEKT,
GEBYRFRITAK,
INNBETALT_BELØP,
FORHOLDSMESSIG_FORDELING,
SLUTTBEREGNING_BBM,
KLAGE_STATISTIKK,
PERSON,
BOSTATUS_PERIODE,
SØKNAD,
SIVILSTAND_PERIODE,
VIRKNINGSDATO,
NOTAT,

object GrunnlagstypeConstants {
const val SÆRFRADRAG = "SÆRFRADRAG"
const val SØKNADSBARN_INFO = "SØKNADSBARN_INFO"
const val SKATTEKLASSE = "SKATTEKLASSE"
const val BARN_I_HUSSTAND = "BARN_I_HUSSTAND"
const val BOSTATUS = "BOSTATUS"
const val BOSTATUS_BP = "BOSTATUS_BP"
const val INNTEKT = "INNTEKT"
const val INNTEKT_BARN = "INNTEKT_BARN"
const val INNTEKT_UTVIDET_BARNETRYGD = "INNTEKT_UTVIDET_BARNETRYGD"
const val KAPITALINNTEKT = "KAPITALINNTEKT"
const val KAPITALINNTEKT_BARN = "KAPITALINNTEKT_BARN"
const val NETTO_SÆRTILSKUDD = "NETTO_SÆRTILSKUDD"
const val SAMVÆRSKLASSE = "SAMVÆRSKLASSE"
const val BIDRAGSEVNE = "BIDRAGSEVNE"
const val SAMVÆRSFRADRAG = "SAMVÆRSFRADRAG"
const val SJABLON = "SJABLON"
const val LØPENDE_BIDRAG = "LØPENDE_BIDRAG"
const val FAKTISK_UTGIFT = "FAKTISK_UTGIFT"
const val BARNETILSYN_MED_STØNAD = "BARNETILSYN_MED_STØNAD"
const val FORPLEINING_UTGIFT = "FORPLEINING_UTGIFT"
const val BARN = "BARN"
const val SIVILSTAND = "SIVILSTAND"
const val BARNETILLEGG = "BARNETILLEGG"
const val BARNETILLEGG_FORSVARET = "BARNETILLEGG_FORSVARET"
const val DELT_BOSTED = "DELT_BOSTED"
const val NETTO_BARNETILSYN = "NETTO_BARNETILSYN"
const val UNDERHOLDSKOSTNAD = "UNDERHOLDSKOSTNAD"
const val BPS_ANDEL_UNDERHOLDSKOSTNAD = "BPS_ANDEL_UNDERHOLDSKOSTNAD"
const val TILLEGGSBIDRAG = "TILLEGGSBIDRAG"
const val MAKS_BIDRAG_PER_BARN = "MAKS_BIDRAG_PER_BARN"
const val BPS_ANDEL_SÆRTILSKUDD = "BPS_ANDEL_SÆRTILSKUDD"
const val MAKS_GRENSE_25_INNTEKT = "MAKS_GRENSE_25_INNTEKT"
const val GEBYRFRITAK = "GEBYRFRITAK"
const val SØKNAD_INFO = "SØKNAD_INFO"
const val BARN_INFO = "BARN_INFO"
const val PERSON_INFO = "PERSON_INFO"
const val SAKSBEHANDLER_INFO = "SAKSBEHANDLER_INFO"
const val VEDTAK_INFO = "VEDTAK_INFO"
const val INNBETALT_BELØP = "INNBETALT_BELØP"
const val FORHOLDSMESSIG_FORDELING = "FORHOLDSMESSIG_FORDELING"
const val SLUTTBEREGNING_BBM = "SLUTTBEREGNING_BBM"
const val KLAGE_STATISTIKK = "KLAGE_STATISTIKK"
const val PERSON = "PERSON"
const val BOSTATUS_PERIODE = "BOSTATUS_PERIODE"
const val BEREGNING_INNTEKT_RAPPORTERING_PERIODE = "BEREGNING_INNTEKT_RAPPORTERING_PERIODE"
const val SIVILSTAND_PERIODE = "SIVILSTAND_PERIODE"
const val VIRKNINGSDATO = "VIRKNINGSDATO"
const val NOTAT = "NOTAT"
}
INNTEKT_RAPPORTERING_PERIODE,

INNHENTET_HUSSTANDSMEDLEM_PERIODE,
INNHENTET_SIVILSTAND_PERIODE,
INNHENTET_ARBEIDSFORHOLD_PERIODE,
INNHENTET_INNTEKT_SKATTEGRUNNLAG_PERIODE,
INNHENTET_INNTEKT_AORDNING_PERIODE,
INNHENTET_INNTEKT_BARNETILLEGG_PERIODE,
INNHENTET_INNTEKT_KONTANTSTØTTE_PERIODE,
INNHENTET_INNTEKT_AINNTEKT_PERIODE,
INNHENTET_INNTEKT_BARNETILSYN_PERIODE,
INNHENTET_INNTEKT_SMÅBARNSTILLEGG_PERIODE,
INNHENTET_INNTEKT_UTVIDETBARNETRYGD_PERIODE,
}
2 changes: 1 addition & 1 deletion bidrag-transport/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
<parent>
<groupId>no.nav.bidrag</groupId>
<artifactId>bidrag-felles</artifactId>
<version>${revision}</version>
<version>1.0-SNAPSHOT</version>
</parent>

<artifactId>bidrag-transport-felles</artifactId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ package no.nav.bidrag.transport.behandling.beregning.barnebidrag
import io.swagger.v3.oas.annotations.media.Schema
import no.nav.bidrag.domene.enums.beregning.ResultatkodeBarnebidrag
import no.nav.bidrag.domene.tid.ÅrMånedsperiode
import no.nav.bidrag.transport.behandling.beregning.felles.Grunnlag
import no.nav.bidrag.transport.behandling.felles.grunnlag.GrunnlagDto
import java.math.BigDecimal

// Barnebidrag
Expand All @@ -12,7 +12,7 @@ data class BeregnetTotalBarnebidragResultat(
@Schema(description = "Periodisert liste over resultat av barnebidragsberegning")
var beregnetBarnebidragPeriodeListe: List<ResultatPeriode> = emptyList(),
@Schema(description = "Liste over grunnlag brukt i beregning")
var grunnlagListe: List<Grunnlag> = emptyList(),
var grunnlagListe: List<GrunnlagDto> = emptyList(),
)

@Schema(description = "Resultatet av en beregning for en gitt periode - barnebidrag")
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package no.nav.bidrag.transport.behandling.beregning.felles

import io.swagger.v3.oas.annotations.media.Schema
import no.nav.bidrag.domene.tid.ÅrMånedsperiode
import no.nav.bidrag.transport.behandling.felles.grunnlag.GrunnlagDto

@Schema(description = "Grunnlaget for en beregning av barnebidrag, forskudd og særtilskudd")
data class BeregnGrunnlag(
@Schema(description = "Beregningsperiode") val periode: ÅrMånedsperiode,
@Schema(description = "Referanse til Person-objekt som tilhører søknadsbarnet") valknadsbarnReferanse: String,
@Schema(description = "Periodisert liste over grunnlagselementer") val grunnlagListe: List<GrunnlagDto> = emptyList(),
)

fun BeregnGrunnlag.valider() {
requireNotNull(periode.fom) { "beregningsperiode fom kan ikke være null" }
requireNotNull(periode.til) { "beregningsperiode til kan ikke være null" }
}

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,16 +1,6 @@
package no.nav.bidrag.transport.behandling.beregning.felles.grunnlag

import io.swagger.v3.oas.annotations.media.Schema
import no.nav.bidrag.domene.enums.inntekt.Inntektsrapportering
import no.nav.bidrag.domene.tid.ÅrMånedsperiode
import java.math.BigDecimal
import no.nav.bidrag.transport.behandling.felles.grunnlag.InntektsrapporteringPeriode

@Schema(description = "Rapportert inntekt for person")
data class BeregningInntektRapporteringPeriode(
@Schema(description = "Periode") val periode: ÅrMånedsperiode,
@Schema(description = "Type inntektsrapportering") val inntektsrapportering: Inntektsrapportering,
@Schema(description = "Referanse til barnet inntekten gjelder for") val gjelderBarn: String? = null,
@Schema(description = "Inntekt beløp") val beløp: BigDecimal,
@Schema(description = "Er registrert manuelt?") val manueltRegistrert: Boolean,
@Schema(description = "Skal være del av beregning?") val valgt: Boolean,
)
@Deprecated("Bruk InntektsrapporteringPeriode", ReplaceWith("InntektsrapporteringPeriode"))
typealias BeregningInntektRapporteringPeriode = InntektsrapporteringPeriode
Original file line number Diff line number Diff line change
Expand Up @@ -3,21 +3,21 @@ package no.nav.bidrag.transport.behandling.beregning.forskudd
import io.swagger.v3.oas.annotations.media.Schema
import no.nav.bidrag.domene.enums.beregning.ResultatkodeForskudd
import no.nav.bidrag.domene.tid.ÅrMånedsperiode
import no.nav.bidrag.transport.behandling.beregning.felles.Grunnlag
import no.nav.bidrag.transport.behandling.felles.grunnlag.GrunnlagDto
import java.math.BigDecimal

// Resultat
@Schema(description = "Resultatet av en forskuddsberegning")
data class BeregnetForskuddResultat(
@Schema(description = "Periodisert liste over resultat av forskuddsberegning") var beregnetForskuddPeriodeListe: List<ResultatPeriode> =
emptyList(),
@Schema(description = "Liste over grunnlag brukt i beregning") var grunnlagListe: List<Grunnlag> = emptyList(),
@Schema(description = "Liste over grunnlag brukt i beregning") var grunnlagListe: List<GrunnlagDto> = emptyList(),
)

@Schema(description = "Resultatet av en beregning for en gitt periode")
data class ResultatPeriode(
@Schema(description = "Beregnet resultat periode") var periode: ÅrMånedsperiode,
@Schema(description = "Beregnet resultat innhold") var resultat: ResultatBeregning,
@Schema(description = "Beregnet resultat") var resultat: ResultatBeregning,
@Schema(description = "Beregnet grunnlag innhold") var grunnlagsreferanseListe: List<String>,
)

Expand Down
Loading

0 comments on commit ff4dd0f

Please sign in to comment.