From ff4dd0f01b65157ae97a4b49adb6bfa8aca872d1 Mon Sep 17 00:00:00 2001 From: Ugur Alpay Cenar Date: Fri, 26 Jan 2024 12:36:56 +0100 Subject: [PATCH] Opprett grunnlagsobjekter for vedtak og beregning (#51) --- bidrag-commons-test/pom.xml | 2 +- bidrag-commons/pom.xml | 2 +- bidrag-domene/pom.xml | 2 +- .../enums/beregning/ResultatkodeForskudd.kt | 23 ++- .../ResultatkodeS\303\246rtilskudd.kt" | 8 +- .../domene/enums/grunnlag/Grunnlagstype.kt | 156 ++++++--------- bidrag-transport/pom.xml | 2 +- .../beregning/barnebidrag/Barnebidrag.kt | 4 +- .../beregning/felles/BeregnGrunnlag.kt | 17 ++ .../behandling/beregning/felles/Dto.kt | 66 ------- .../BeregningInntektRapporteringPeriode.kt | 16 +- .../behandling/beregning/forskudd/Forskudd.kt | 6 +- .../beregning/saertilskudd/Saertilskudd.kt | 4 +- .../behandling/felles/grunnlag/Felles.kt | 77 ++++++++ .../behandling/felles/grunnlag/Grunnlag.kt | 28 --- .../felles/grunnlag/GrunnlagExtensions.kt | 50 +++++ .../felles/grunnlag/Husstandsmedlem.kt | 25 +++ .../felles/grunnlag/InntektInnhentet.kt | 183 ++++++++++++++++++ .../grunnlag/InntektsrapporteringPeriode.kt | 29 +++ .../felles/grunnlag/NotatGrunnlag.kt | 6 + .../behandling/felles/grunnlag/Sivilstand.kt | 32 +++ .../felles/grunnlag/S\303\270knad.kt" | 24 +++ .../behandling/grunnlag/response/Ainntekt.kt | 17 +- .../grunnlag/response/Skattegrunnlag.kt | 10 + .../vedtak/request/OpprettVedtakRequestDto.kt | 51 ++--- .../behandling/vedtak/response/VedtakDto.kt | 13 +- .../nav/bidrag/transport/felles/JsonUtils.kt | 4 +- .../beregning/felles/BeregninFellesTest.kt | 91 ++++++++- .../transport/felles/GrunnlagDtoFellesTest.kt | 25 +++ pom.xml | 104 +++++----- 30 files changed, 756 insertions(+), 321 deletions(-) create mode 100644 bidrag-transport/src/main/kotlin/no/nav/bidrag/transport/behandling/beregning/felles/BeregnGrunnlag.kt delete mode 100644 bidrag-transport/src/main/kotlin/no/nav/bidrag/transport/behandling/beregning/felles/Dto.kt create mode 100644 bidrag-transport/src/main/kotlin/no/nav/bidrag/transport/behandling/felles/grunnlag/Felles.kt delete mode 100644 bidrag-transport/src/main/kotlin/no/nav/bidrag/transport/behandling/felles/grunnlag/Grunnlag.kt create mode 100644 bidrag-transport/src/main/kotlin/no/nav/bidrag/transport/behandling/felles/grunnlag/GrunnlagExtensions.kt create mode 100644 bidrag-transport/src/main/kotlin/no/nav/bidrag/transport/behandling/felles/grunnlag/Husstandsmedlem.kt create mode 100644 bidrag-transport/src/main/kotlin/no/nav/bidrag/transport/behandling/felles/grunnlag/InntektInnhentet.kt create mode 100644 bidrag-transport/src/main/kotlin/no/nav/bidrag/transport/behandling/felles/grunnlag/InntektsrapporteringPeriode.kt create mode 100644 bidrag-transport/src/main/kotlin/no/nav/bidrag/transport/behandling/felles/grunnlag/NotatGrunnlag.kt create mode 100644 bidrag-transport/src/main/kotlin/no/nav/bidrag/transport/behandling/felles/grunnlag/Sivilstand.kt create mode 100644 "bidrag-transport/src/main/kotlin/no/nav/bidrag/transport/behandling/felles/grunnlag/S\303\270knad.kt" create mode 100644 bidrag-transport/src/test/kotlin/no/nav/bidrag/transport/felles/GrunnlagDtoFellesTest.kt diff --git a/bidrag-commons-test/pom.xml b/bidrag-commons-test/pom.xml index 2a322a1..0e090e9 100644 --- a/bidrag-commons-test/pom.xml +++ b/bidrag-commons-test/pom.xml @@ -4,7 +4,7 @@ no.nav.bidrag bidrag-felles - ${revision} + 1.0-SNAPSHOT bidrag-commons-test-felles diff --git a/bidrag-commons/pom.xml b/bidrag-commons/pom.xml index 3328dfb..aecc933 100644 --- a/bidrag-commons/pom.xml +++ b/bidrag-commons/pom.xml @@ -5,7 +5,7 @@ no.nav.bidrag bidrag-felles - ${revision} + 1.0-SNAPSHOT bidrag-commons-felles diff --git a/bidrag-domene/pom.xml b/bidrag-domene/pom.xml index 627d816..b664641 100644 --- a/bidrag-domene/pom.xml +++ b/bidrag-domene/pom.xml @@ -6,7 +6,7 @@ no.nav.bidrag bidrag-felles - ${revision} + 1.0-SNAPSHOT bidrag-domene-felles 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 fe6ab7c..9b0dc51 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,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 + } + } + } } 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 bc1d562..e3be883 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,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 } 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 a9cd091..c75899e 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 @@ -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, } diff --git a/bidrag-transport/pom.xml b/bidrag-transport/pom.xml index 3bc6e85..6163fbe 100644 --- a/bidrag-transport/pom.xml +++ b/bidrag-transport/pom.xml @@ -7,7 +7,7 @@ no.nav.bidrag bidrag-felles - ${revision} + 1.0-SNAPSHOT bidrag-transport-felles diff --git a/bidrag-transport/src/main/kotlin/no/nav/bidrag/transport/behandling/beregning/barnebidrag/Barnebidrag.kt b/bidrag-transport/src/main/kotlin/no/nav/bidrag/transport/behandling/beregning/barnebidrag/Barnebidrag.kt index 74e0424..bd9d9a5 100644 --- a/bidrag-transport/src/main/kotlin/no/nav/bidrag/transport/behandling/beregning/barnebidrag/Barnebidrag.kt +++ b/bidrag-transport/src/main/kotlin/no/nav/bidrag/transport/behandling/beregning/barnebidrag/Barnebidrag.kt @@ -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 @@ -12,7 +12,7 @@ data class BeregnetTotalBarnebidragResultat( @Schema(description = "Periodisert liste over resultat av barnebidragsberegning") var beregnetBarnebidragPeriodeListe: List = emptyList(), @Schema(description = "Liste over grunnlag brukt i beregning") - var grunnlagListe: List = emptyList(), + var grunnlagListe: List = emptyList(), ) @Schema(description = "Resultatet av en beregning for en gitt periode - barnebidrag") diff --git a/bidrag-transport/src/main/kotlin/no/nav/bidrag/transport/behandling/beregning/felles/BeregnGrunnlag.kt b/bidrag-transport/src/main/kotlin/no/nav/bidrag/transport/behandling/beregning/felles/BeregnGrunnlag.kt new file mode 100644 index 0000000..872dc8d --- /dev/null +++ b/bidrag-transport/src/main/kotlin/no/nav/bidrag/transport/behandling/beregning/felles/BeregnGrunnlag.kt @@ -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") val søknadsbarnReferanse: String, + @Schema(description = "Periodisert liste over grunnlagselementer") val grunnlagListe: List = emptyList(), +) + +fun BeregnGrunnlag.valider() { + requireNotNull(periode.fom) { "beregningsperiode fom kan ikke være null" } + requireNotNull(periode.til) { "beregningsperiode til kan ikke være null" } +} diff --git a/bidrag-transport/src/main/kotlin/no/nav/bidrag/transport/behandling/beregning/felles/Dto.kt b/bidrag-transport/src/main/kotlin/no/nav/bidrag/transport/behandling/beregning/felles/Dto.kt deleted file mode 100644 index 6581b6a..0000000 --- a/bidrag-transport/src/main/kotlin/no/nav/bidrag/transport/behandling/beregning/felles/Dto.kt +++ /dev/null @@ -1,66 +0,0 @@ -package no.nav.bidrag.transport.behandling.beregning.felles - -import com.fasterxml.jackson.databind.JsonNode -import io.swagger.v3.oas.annotations.media.Schema -import no.nav.bidrag.domene.enums.grunnlag.Grunnlagstype -import no.nav.bidrag.domene.tid.ÅrMånedsperiode -import no.nav.bidrag.transport.felles.objectmapper - -@Schema(description = "Grunnlaget for en beregning av barnebidrag, forskudd og særtilskudd") -data class BeregnGrunnlag( - @Schema(description = "Beregningsperiode") val periode: ÅrMånedsperiode? = null, - @Schema(description = "Referanse til Person-objekt som tilhører søknadsbarnet") val søknadsbarnReferanse: String? = null, - @Schema(description = "Periodisert liste over grunnlagselementer") val grunnlagListe: List? = null, -) - -fun BeregnGrunnlag.valider() { - requireNotNull(periode) { "beregningsperiode kan ikke være null" } - requireNotNull(periode.fom) { "beregningsperiode fom kan ikke være null" } - requireNotNull(periode.til) { "beregningsperiode til kan ikke være null" } - requireNotNull(søknadsbarnReferanse) { "søknadsbarnReferanse kan ikke være null" } - grunnlagListe?.map { it.valider() } ?: throw IllegalArgumentException("grunnlagListe kan ikke være null") -} - -data class InnholdMedReferanse(val referanse: String, val innhold: T) - -fun BeregnGrunnlag.hentInnholdBasertPåEgenReferanse( - grunnlagType: Grunnlagstype, - clazz: Class, - referanse: String = "", -): List> = - grunnlagListe!! - .filter { it.type == grunnlagType } - .filter { referanse.isEmpty() || referanse == it.referanse } - .map { - val innhold = objectmapper.treeToValue(it.innhold, clazz) - InnholdMedReferanse(it.referanse!!, innhold) - } - -fun BeregnGrunnlag.hentInnholdBasertPåFremmedReferanse( - grunnlagType: Grunnlagstype, - clazz: Class, - referanse: String = "", -): List> = - grunnlagListe!! - .filter { it.type == grunnlagType } - .filter { referanse.isEmpty() || it.grunnlagsreferanseListe!!.contains(referanse) } - .map { - val innhold = objectmapper.treeToValue(it.innhold, clazz) - InnholdMedReferanse(it.referanse!!, innhold) - } - -@Schema(description = "Grunnlag") -data class Grunnlag( - @Schema(description = "Referanse (unikt navn på grunnlaget)") val referanse: String? = null, - @Schema(description = "Grunnlagstype") val type: Grunnlagstype? = null, - @Schema(description = "Liste over grunnlagsreferanser") val grunnlagsreferanseListe: List? = null, - @Schema(description = "Grunnlagsinnhold (generisk)") val innhold: JsonNode? = null, -) - -fun Grunnlag.valider() { - requireNotNull(referanse) { "referanse kan ikke være null" } - requireNotNull(type) { "type kan ikke være null" } - requireNotNull(innhold) { "innhold kan ikke være null" } -} - -fun JsonNode.toString() = objectmapper.writeValueAsString(this) diff --git a/bidrag-transport/src/main/kotlin/no/nav/bidrag/transport/behandling/beregning/felles/grunnlag/BeregningInntektRapporteringPeriode.kt b/bidrag-transport/src/main/kotlin/no/nav/bidrag/transport/behandling/beregning/felles/grunnlag/BeregningInntektRapporteringPeriode.kt index 2bcf23e..59fb693 100644 --- a/bidrag-transport/src/main/kotlin/no/nav/bidrag/transport/behandling/beregning/felles/grunnlag/BeregningInntektRapporteringPeriode.kt +++ b/bidrag-transport/src/main/kotlin/no/nav/bidrag/transport/behandling/beregning/felles/grunnlag/BeregningInntektRapporteringPeriode.kt @@ -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 diff --git a/bidrag-transport/src/main/kotlin/no/nav/bidrag/transport/behandling/beregning/forskudd/Forskudd.kt b/bidrag-transport/src/main/kotlin/no/nav/bidrag/transport/behandling/beregning/forskudd/Forskudd.kt index fbbbc5e..147f5f3 100644 --- a/bidrag-transport/src/main/kotlin/no/nav/bidrag/transport/behandling/beregning/forskudd/Forskudd.kt +++ b/bidrag-transport/src/main/kotlin/no/nav/bidrag/transport/behandling/beregning/forskudd/Forskudd.kt @@ -3,7 +3,7 @@ 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 @@ -11,13 +11,13 @@ import java.math.BigDecimal data class BeregnetForskuddResultat( @Schema(description = "Periodisert liste over resultat av forskuddsberegning") var beregnetForskuddPeriodeListe: List = emptyList(), - @Schema(description = "Liste over grunnlag brukt i beregning") var grunnlagListe: List = emptyList(), + @Schema(description = "Liste over grunnlag brukt i beregning") var grunnlagListe: List = 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, ) diff --git a/bidrag-transport/src/main/kotlin/no/nav/bidrag/transport/behandling/beregning/saertilskudd/Saertilskudd.kt b/bidrag-transport/src/main/kotlin/no/nav/bidrag/transport/behandling/beregning/saertilskudd/Saertilskudd.kt index 5ec1e18..f748aa0 100644 --- a/bidrag-transport/src/main/kotlin/no/nav/bidrag/transport/behandling/beregning/saertilskudd/Saertilskudd.kt +++ b/bidrag-transport/src/main/kotlin/no/nav/bidrag/transport/behandling/beregning/saertilskudd/Saertilskudd.kt @@ -10,7 +10,7 @@ import io.swagger.v3.oas.annotations.media.Schema import no.nav.bidrag.domene.enums.beregning.ResultatkodeSærtilskudd import no.nav.bidrag.domene.enums.rolle.Rolle 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 import java.time.LocalDate @@ -130,7 +130,7 @@ data class SoknadsBarnInfo( data class BeregnetTotalSaertilskuddResultat( @Schema(description = "Periodisert liste over resultat av særtilskuddsberegning") var beregnetSaertilskuddPeriodeListe: List = emptyList(), - @Schema(description = "Liste over grunnlag brukt i beregning") var grunnlagListe: List = emptyList(), + @Schema(description = "Liste over grunnlag brukt i beregning") var grunnlagListe: List = emptyList(), ) @Schema(description = "Resultatet av en beregning for en gitt periode") diff --git a/bidrag-transport/src/main/kotlin/no/nav/bidrag/transport/behandling/felles/grunnlag/Felles.kt b/bidrag-transport/src/main/kotlin/no/nav/bidrag/transport/behandling/felles/grunnlag/Felles.kt new file mode 100644 index 0000000..bcb6daf --- /dev/null +++ b/bidrag-transport/src/main/kotlin/no/nav/bidrag/transport/behandling/felles/grunnlag/Felles.kt @@ -0,0 +1,77 @@ +package no.nav.bidrag.transport.behandling.felles.grunnlag + +import com.fasterxml.jackson.databind.JsonNode +import io.swagger.v3.oas.annotations.media.Schema +import no.nav.bidrag.domene.enums.grunnlag.Grunnlagstype +import no.nav.bidrag.domene.ident.Personident +import no.nav.bidrag.domene.tid.ÅrMånedsperiode +import no.nav.bidrag.transport.felles.commonObjectmapper +import java.time.LocalDate +import java.time.LocalDateTime + +val NULL_PERIODE_FRA = LocalDate.of(0, 1, 1) + +@Schema(description = "Grunnlag") +data class GrunnlagDto( + override val referanse: String, + override val type: Grunnlagstype, + override val innhold: JsonNode, + override val grunnlagsreferanseListe: List = emptyList(), +) : BaseGrunnlag { + override fun toString(): String { + return super.asString() + } +} + +@Schema(description = "BaseGrunnlag") +interface BaseGrunnlag { + @get:Schema(description = "Referanse (unikt navn på grunnlaget)") + val referanse: String + + @get:Schema(description = "Grunnlagstype") + val type: Grunnlagstype + + @get:Schema(description = "Grunnlagsinnhold (generisk)", type = "GrunnlagInnhold") + val innhold: JsonNode + + @get:Schema(description = "Liste over grunnlagsreferanser") + val grunnlagsreferanseListe: List + + fun asString(): String { + return "$type - ${::referanse.name}=$referanse, " + + "${::grunnlagsreferanseListe.name}=${grunnlagsreferanseListe.ifEmpty { listOf("") }.joinToString(",")}, " + + "${::innhold.name}=${commonObjectmapper.writeValueAsString(innhold)}" + } + + fun BaseGrunnlag.valider() { + require(referanse.isNotEmpty()) { "referanse kan ikke være en tom streng" } + } +} + +interface GrunnlagInnhold + +interface GrunnlagPeriodeInnhold : GrunnlagInnhold { + val periode: ÅrMånedsperiode + + @get:Schema( + description = + "Om grunnlaget er manuelt registrert av saksbehandler " + + "eller om det er innhentet fra ekstern kilde (skatt/folkregisteret...)", + ) + val manueltRegistrert: Boolean +} + +interface InnhentetGrunnlagInnhold : GrunnlagPeriodeInnhold { + @get:Schema(description = "Tidspunkt data hentet fra kilden") + val hentetTidspunkt: LocalDateTime + val grunnlag: T + override val manueltRegistrert: Boolean + get() = false +} + +@Schema(description = "Informasjon om en person som er inkludert i vedtaket") +data class Person( + val ident: Personident = Personident(""), + val navn: String = "", + val fødselsdato: LocalDate = LocalDate.parse("2000-01-01"), +) : GrunnlagInnhold diff --git a/bidrag-transport/src/main/kotlin/no/nav/bidrag/transport/behandling/felles/grunnlag/Grunnlag.kt b/bidrag-transport/src/main/kotlin/no/nav/bidrag/transport/behandling/felles/grunnlag/Grunnlag.kt deleted file mode 100644 index 7ab9be3..0000000 --- a/bidrag-transport/src/main/kotlin/no/nav/bidrag/transport/behandling/felles/grunnlag/Grunnlag.kt +++ /dev/null @@ -1,28 +0,0 @@ -package no.nav.bidrag.transport.behandling.felles.grunnlag - -import io.swagger.v3.oas.annotations.media.Schema -import no.nav.bidrag.domene.enums.person.Bostatuskode -import no.nav.bidrag.domene.enums.person.Sivilstandskode -import no.nav.bidrag.domene.ident.Personident -import no.nav.bidrag.domene.tid.ÅrMånedsperiode -import java.time.LocalDate - -@Schema(description = "Informasjon om en person som er inkludert i vedtaket") -data class Person( - @Schema(description = "Ident") val ident: Personident = Personident(""), - @Schema(description = "Navn") val navn: String = "", - @Schema(description = "Fødselsdato") val fødselsdato: LocalDate = LocalDate.parse("2000-01-01"), -) - -@Schema(description = "Bostatus for person") -data class BostatusPeriode( - @Schema(description = "Periode") val periode: ÅrMånedsperiode, - @Schema(description = "Bostatus") val bostatus: Bostatuskode, - @Schema(description = "Er registrert manuelt?") val manueltRegistrert: Boolean, -) - -@Schema(description = "Sivilstand for person") -data class SivilstandPeriode( - @Schema(description = "Periode") val periode: ÅrMånedsperiode, - @Schema(description = "Sivilstand") val sivilstand: Sivilstandskode, -) 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 new file mode 100644 index 0000000..8d57ae0 --- /dev/null +++ b/bidrag-transport/src/main/kotlin/no/nav/bidrag/transport/behandling/felles/grunnlag/GrunnlagExtensions.kt @@ -0,0 +1,50 @@ +package no.nav.bidrag.transport.behandling.felles.grunnlag + +import com.fasterxml.jackson.module.kotlin.treeToValue +import no.nav.bidrag.domene.enums.grunnlag.Grunnlagstype +import no.nav.bidrag.transport.felles.commonObjectmapper + +inline fun BaseGrunnlag.innholdTilObjekt(): T { + return commonObjectmapper.treeToValue(innhold) +} + +inline fun List.innholdTilObjekt(): List = map(BaseGrunnlag::innholdTilObjekt) + +fun List.filtrerBasertPåFremmedReferanse( + grunnlagType: Grunnlagstype, + referanse: String = "", +): List = + filter { it.type == grunnlagType } + .filter { referanse.isEmpty() || it.grunnlagsreferanseListe.contains(referanse) } + +fun List.filtrerBasertPåEgenReferanse( + grunnlagType: Grunnlagstype, + referanse: String = "", +): List = + filter { it.type == grunnlagType } + .filter { referanse.isEmpty() || referanse == it.referanse } + +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, + referanse: String = "", +): List> = + filtrerBasertPåEgenReferanse(grunnlagType, referanse) + .map { + InnholdMedReferanse(it.referanse, it.innholdTilObjekt()) + } + +inline fun List.filtrerOgKonverterBasertPåFremmedReferanse( + grunnlagType: Grunnlagstype, + referanse: String = "", +): List> = + filtrerBasertPåFremmedReferanse(grunnlagType, referanse) + .map { + InnholdMedReferanse(it.referanse, it.innholdTilObjekt()) + } diff --git a/bidrag-transport/src/main/kotlin/no/nav/bidrag/transport/behandling/felles/grunnlag/Husstandsmedlem.kt b/bidrag-transport/src/main/kotlin/no/nav/bidrag/transport/behandling/felles/grunnlag/Husstandsmedlem.kt new file mode 100644 index 0000000..b5422a7 --- /dev/null +++ b/bidrag-transport/src/main/kotlin/no/nav/bidrag/transport/behandling/felles/grunnlag/Husstandsmedlem.kt @@ -0,0 +1,25 @@ +package no.nav.bidrag.transport.behandling.felles.grunnlag + +import io.swagger.v3.oas.annotations.media.Schema +import no.nav.bidrag.domene.enums.person.Bostatuskode +import no.nav.bidrag.domene.tid.ÅrMånedsperiode +import java.time.LocalDateTime + +data class InnhentetHusstandsmedlem( + override val periode: ÅrMånedsperiode, + override val grunnlag: HusstandsmedlemPDL, + override val hentetTidspunkt: LocalDateTime, +) : InnhentetGrunnlagInnhold { + data class HusstandsmedlemPDL( + @Schema(description = "Referanse til person som er husstandsmedlem") + val relatertPerson: String?, + val erBarnAvBmBp: Boolean, + ) +} + +@Schema(description = "Bostatus for person") +data class BostatusPeriode( + override val periode: ÅrMånedsperiode, + val bostatus: Bostatuskode, + override val manueltRegistrert: Boolean, +) : GrunnlagPeriodeInnhold diff --git a/bidrag-transport/src/main/kotlin/no/nav/bidrag/transport/behandling/felles/grunnlag/InntektInnhentet.kt b/bidrag-transport/src/main/kotlin/no/nav/bidrag/transport/behandling/felles/grunnlag/InntektInnhentet.kt new file mode 100644 index 0000000..96147b3 --- /dev/null +++ b/bidrag-transport/src/main/kotlin/no/nav/bidrag/transport/behandling/felles/grunnlag/InntektInnhentet.kt @@ -0,0 +1,183 @@ +package no.nav.bidrag.transport.behandling.felles.grunnlag + +import io.swagger.v3.oas.annotations.media.Schema +import no.nav.bidrag.domene.enums.barnetilsyn.Skolealder +import no.nav.bidrag.domene.enums.barnetilsyn.Tilsynstype +import no.nav.bidrag.domene.tid.ÅrMånedsperiode +import java.math.BigDecimal +import java.time.LocalDate +import java.time.LocalDateTime +import java.time.YearMonth + +data class InnhentetArbeidsforhold( + override val periode: ÅrMånedsperiode, + override val grunnlag: Arbeidsforhold, + override val hentetTidspunkt: LocalDateTime, +) : InnhentetGrunnlagInnhold { + data class Arbeidsforhold( + @Schema(description = "Startdato for arbeidsforholdet") + val startdato: LocalDate?, + @Schema(description = "Eventuell sluttdato for arbeidsforholdet") + val sluttdato: LocalDate?, + @Schema(description = "Navn på arbeidsgiver") + val arbeidsgiverNavn: String?, + @Schema(description = "Arbeidsgivers organisasjonsnummer") + val arbeidsgiverOrgnummer: String?, + @Schema(description = "Liste av ansettelsesdetaljer, med eventuell historikk") + val ansettelsesdetaljerListe: List = emptyList(), + @Schema(description = "Liste over registrerte permisjoner") + val permisjonListe: List = emptyList(), + @Schema(description = "Liste over registrerte permitteringer") + val permitteringListe: List = emptyList(), + ) { + data class Permisjon( + val startdato: LocalDate?, + val sluttdato: LocalDate?, + val beskrivelse: String?, + val prosent: Double?, + ) + + data class Permittering( + val startdato: LocalDate?, + val sluttdato: LocalDate?, + val beskrivelse: String?, + val prosent: Double?, + ) + } + + data class Ansettelsesdetaljer( + @Schema(description = "Fradato for ansettelsesdetalj. År + måned") + val periodeFra: YearMonth?, + @Schema(description = "Eventuell sluttdato for ansettelsesdetalj. År + måned") + val periodeTil: YearMonth?, + @Schema(description = "Type arbeidsforhold, Ordinaer, Maritim, Forenklet, Frilanser'") + val arbeidsforholdType: String?, + @Schema(description = "Beskrivelse av arbeidstidsordning. Eks: 'Ikke skift'") + val arbeidstidsordningBeskrivelse: String?, + @Schema(description = "Beskrivelse av ansettelsesform. Eks: 'Fast ansettelse'") + val ansettelsesformBeskrivelse: String?, + @Schema(description = "Beskrivelse av yrke. Eks: 'KONTORLEDER'") + val yrkeBeskrivelse: String?, + @Schema(description = "Avtalt antall timer i uken") + val antallTimerPrUke: Double?, + @Schema(description = "Avtalt stillingsprosent") + val avtaltStillingsprosent: Double?, + @Schema(description = "Dato for forrige endring i stillingsprosent") + val sisteStillingsprosentendringDato: LocalDate?, + @Schema(description = "Dato for forrige lønnsendring") + val sisteLønnsendringDato: LocalDate?, + ) +} + +data class InnhentetSkattegrunnlag( + override val periode: ÅrMånedsperiode, + val år: Int = periode.fom.year, + override val hentetTidspunkt: LocalDateTime, + override val grunnlag: Skattegrunnlag, +) : InnhentetGrunnlagInnhold { + data class Skattegrunnlag( + val skattegrunnlagListe: List, + ) + + data class Skattegrunnlagspost( + @Schema(description = "Type skattegrunnlag: Ordinær eller Svalbard") + val skattegrunnlagType: String, + @Schema( + description = + "Tekniske navnet på inntektsposten. Er samme verdi som \"Summert skattegrunnlag\"" + + " fra NAV kodeverk ( https://kodeverk-web.dev.adeo.no/kodeverksoversikt/kodeverk/Summert%20skattegrunnlag )", + ) + val kode: String, + @Schema(description = "Beløp") + val beløp: BigDecimal, + ) +} + +data class InnhentetBarnetillegg( + override val periode: ÅrMånedsperiode, + override val hentetTidspunkt: LocalDateTime, + override val grunnlag: Barnetillegg, +) : InnhentetGrunnlagInnhold { + data class Barnetillegg( + @Schema(description = "Referansen barnet barnetillegget er rapportert for") + val gjelderBarn: String, + @Schema(description = "Type barnetillegg.") + val barnetilleggType: String, + val beløpBrutto: BigDecimal, + @Schema(description = "Angir om barnet er felles- eller særkullsbarn") + val barnType: String, + ) +} + +data class InnhentetAinntekt( + override val periode: ÅrMånedsperiode, + override val hentetTidspunkt: LocalDateTime, + override val grunnlag: AinntektInnhentet, +) : InnhentetGrunnlagInnhold { + data class AinntektInnhentet( + val ainntektspostListe: List, + ) + + data class Ainntektspost( + val utbetalingsperiode: String?, + val opptjeningsperiodeFra: LocalDate?, + val opptjeningsperiodeTil: LocalDate?, + val kategori: String, + val fordelType: String?, + val beløp: BigDecimal, + val etterbetalingsperiodeFra: LocalDate?, + val etterbetalingsperiodeTil: LocalDate?, + ) +} + +// Innhentet grunnlag (rådata) + +data class InnhentetUtvidetBarnetrygd( + override val periode: ÅrMånedsperiode, + override val hentetTidspunkt: LocalDateTime, + override val grunnlag: UtvidetBarnetrygd, +) : InnhentetGrunnlagInnhold { + data class UtvidetBarnetrygd( + @Schema(description = "Beløp") + val beløp: BigDecimal, + @Schema(description = "Angir om stønaden er manuelt beregnet") + val manueltBeregnet: Boolean, + ) +} + +data class InnhentetSmåbarnstillegg( + override val periode: ÅrMånedsperiode, + override val hentetTidspunkt: LocalDateTime, + override val grunnlag: Småbarnstillegg, +) : InnhentetGrunnlagInnhold { + data class Småbarnstillegg( + @Schema(description = "Beløp") + val beløp: BigDecimal, + @Schema(description = "Angir om stønaden er manuelt beregnet") + val manueltBeregnet: Boolean, + ) +} + +data class InnhentetBarnetilsyn( + override val periode: ÅrMånedsperiode, + override val hentetTidspunkt: LocalDateTime, + override val grunnlag: Barnetilsyn, +) : InnhentetGrunnlagInnhold { + data class Barnetilsyn( + val gjelderBarn: String, + val beløp: Int?, + val tilsynstype: Tilsynstype?, + val skolealder: Skolealder?, + ) +} + +data class InnhentetKontantstøtte( + override val periode: ÅrMånedsperiode, + override val hentetTidspunkt: LocalDateTime, + override val grunnlag: Kontantstøtte, +) : InnhentetGrunnlagInnhold { + data class Kontantstøtte( + val gjelderBarn: String, + val beløp: Int, + ) +} 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/InntektsrapporteringPeriode.kt new file mode 100644 index 0000000..e13f9ea --- /dev/null +++ b/bidrag-transport/src/main/kotlin/no/nav/bidrag/transport/behandling/felles/grunnlag/InntektsrapporteringPeriode.kt @@ -0,0 +1,29 @@ +package no.nav.bidrag.transport.behandling.felles.grunnlag + +import io.swagger.v3.oas.annotations.media.Schema +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 + +@Schema(description = "Rapportert inntekt for person") +data class InntektsrapporteringPeriode( + override val periode: ÅrMånedsperiode, + override val manueltRegistrert: Boolean, + @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 = "Om inntekt er tatt med i beregningen") val valgt: Boolean, + @Schema( + description = "Liste med inntekstposter som inntekten består av. Vil være tom hvis det er manuelt registrert", + ) val inntekstpostListe: List = emptyList(), +) : GrunnlagPeriodeInnhold { + data class Inntektspost( + @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 utgø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 new file mode 100644 index 0000000..f36f49a --- /dev/null +++ b/bidrag-transport/src/main/kotlin/no/nav/bidrag/transport/behandling/felles/grunnlag/NotatGrunnlag.kt @@ -0,0 +1,6 @@ +package no.nav.bidrag.transport.behandling.felles.grunnlag + +data class NotatGrunnlag( + val innhold: String, + val erMedIVedtaksdokumentet: Boolean, +) : GrunnlagInnhold diff --git a/bidrag-transport/src/main/kotlin/no/nav/bidrag/transport/behandling/felles/grunnlag/Sivilstand.kt b/bidrag-transport/src/main/kotlin/no/nav/bidrag/transport/behandling/felles/grunnlag/Sivilstand.kt new file mode 100644 index 0000000..b826634 --- /dev/null +++ b/bidrag-transport/src/main/kotlin/no/nav/bidrag/transport/behandling/felles/grunnlag/Sivilstand.kt @@ -0,0 +1,32 @@ +package no.nav.bidrag.transport.behandling.felles.grunnlag + +import io.swagger.v3.oas.annotations.media.Schema +import no.nav.bidrag.domene.enums.person.Sivilstandskode +import no.nav.bidrag.domene.enums.person.SivilstandskodePDL +import no.nav.bidrag.domene.tid.ÅrMånedsperiode +import java.time.LocalDate +import java.time.LocalDateTime + +data class InnhentetSivilstand( + override val periode: ÅrMånedsperiode, + override val grunnlag: SivilstandPDL, + override val hentetTidspunkt: LocalDateTime, +) : InnhentetGrunnlagInnhold { + data class SivilstandPDL( + @Schema(description = "Type sivilstand fra PDL") + val sivilstand: SivilstandskodePDL?, + @Schema(description = "Dato NAV tidligst har fått bekreftet sivilstanden") + val bekreftelsesdato: LocalDate?, + @Schema(description = "Master for opplysningen om sivilstand (FREG eller PDL)") + val master: String?, + @Schema(description = "Angir om sivilstanden er historisk (true) eller aktiv (false)") + val historisk: Boolean?, + ) +} + +@Schema(description = "Sivilstand for person") +data class SivilstandPeriode( + override val periode: ÅrMånedsperiode, + val sivilstand: Sivilstandskode, + override val manueltRegistrert: Boolean, +) : GrunnlagPeriodeInnhold 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" new file mode 100644 index 0000000..d694108 --- /dev/null +++ "b/bidrag-transport/src/main/kotlin/no/nav/bidrag/transport/behandling/felles/grunnlag/S\303\270knad.kt" @@ -0,0 +1,24 @@ +package no.nav.bidrag.transport.behandling.felles.grunnlag + +import no.nav.bidrag.domene.enums.rolle.SøktAvType +import no.nav.bidrag.domene.tid.ÅrMånedsperiode +import java.math.BigDecimal +import java.time.LocalDate + +data class SøknadGrunnlag( + val mottattDato: LocalDate, + val søktFraDato: LocalDate, + val søktAv: SøktAvType, +) : GrunnlagInnhold + +data class VirkningsdatoGrunnlag( + val virkningsdato: LocalDate, + val årsak: String, +) : GrunnlagInnhold + +data class SluttberegningBBM( + val periode: ÅrMånedsperiode, + val beregnetBidragBeløp: BigDecimal, + val endeligBidragBeløp: BigDecimal, + val resultatKode: String, +) : GrunnlagInnhold diff --git a/bidrag-transport/src/main/kotlin/no/nav/bidrag/transport/behandling/grunnlag/response/Ainntekt.kt b/bidrag-transport/src/main/kotlin/no/nav/bidrag/transport/behandling/grunnlag/response/Ainntekt.kt index 429cf43..98887e0 100644 --- a/bidrag-transport/src/main/kotlin/no/nav/bidrag/transport/behandling/grunnlag/response/Ainntekt.kt +++ b/bidrag-transport/src/main/kotlin/no/nav/bidrag/transport/behandling/grunnlag/response/Ainntekt.kt @@ -46,16 +46,25 @@ data class AinntektspostDto( val opplysningspliktigId: String?, @Schema(description = "Id til virksomheten som rapporterer inn inntekten") val virksomhetId: String?, - @Schema(description = "Type inntekt: Lonnsinntekt, Naeringsinntekt, Pensjon eller trygd, Ytelse fra offentlig") - val inntektType: String, @Schema(description = "Type fordel: Kontantytelse, Naturalytelse, Utgiftsgodtgjorelse") val fordelType: String?, @Schema(description = "Beskrivelse av inntekt") val beskrivelse: String?, - @Schema(description = "Beløp") - val belop: BigDecimal, @Schema(description = "Fra-dato etterbetaling") val etterbetalingsperiodeFra: LocalDate?, @Schema(description = "Til-dato etterbetaling") val etterbetalingsperiodeTil: LocalDate?, + @Schema(description = "Type inntekt: Lonnsinntekt, Naeringsinntekt, Pensjon eller trygd, Ytelse fra offentlig") + @Deprecated("", replaceWith = ReplaceWith("kategori")) + val inntektType: String, + @Schema( + description = "Type inntekt: Lonnsinntekt, Naeringsinntekt, Pensjon eller trygd, Ytelse fra offentlig", + allowableValues = ["LOENNSINNTEKT", "NAERINGSINNTEKT", "PENSJON_ELLER_TRYGD", "YTELSE_FRA_OFFENTLIGE"], + ) + val kategori: String = inntektType, + @Schema(description = "Beløp") + @Deprecated("", replaceWith = ReplaceWith("beløp")) + val belop: BigDecimal, + @Schema(description = "Beløp") + val beløp: BigDecimal = belop, ) diff --git a/bidrag-transport/src/main/kotlin/no/nav/bidrag/transport/behandling/grunnlag/response/Skattegrunnlag.kt b/bidrag-transport/src/main/kotlin/no/nav/bidrag/transport/behandling/grunnlag/response/Skattegrunnlag.kt index 49cd416..d52ca6a 100644 --- a/bidrag-transport/src/main/kotlin/no/nav/bidrag/transport/behandling/grunnlag/response/Skattegrunnlag.kt +++ b/bidrag-transport/src/main/kotlin/no/nav/bidrag/transport/behandling/grunnlag/response/Skattegrunnlag.kt @@ -39,7 +39,17 @@ data class SkattegrunnlagspostDto( @Schema(description = "Type skattegrunnlag: Ordinær eller Svalbard") val skattegrunnlagType: String, @Schema(description = "Type inntekt: Lonnsinntekt, Naeringsinntekt, Pensjon eller trygd, Ytelse fra offentlig") + @Deprecated("", replaceWith = ReplaceWith("kode")) val inntektType: String, @Schema(description = "Beløp") + @Deprecated("", replaceWith = ReplaceWith("beløp")) val belop: BigDecimal, + @Schema(description = "Beløp på skattegrunnlagposten") + val beløp: BigDecimal = belop, + @Schema( + description = + "Tekniske navnet på inntektsposten. Er samme verdi som \"Summert skattegrunnlag\"" + + " fra NAV kodeverk ( https://kodeverk-web.dev.adeo.no/kodeverksoversikt/kodeverk/Summert%20skattegrunnlag )", + ) + val kode: String = inntektType, ) diff --git a/bidrag-transport/src/main/kotlin/no/nav/bidrag/transport/behandling/vedtak/request/OpprettVedtakRequestDto.kt b/bidrag-transport/src/main/kotlin/no/nav/bidrag/transport/behandling/vedtak/request/OpprettVedtakRequestDto.kt index cc12fcc..35297e1 100644 --- a/bidrag-transport/src/main/kotlin/no/nav/bidrag/transport/behandling/vedtak/request/OpprettVedtakRequestDto.kt +++ b/bidrag-transport/src/main/kotlin/no/nav/bidrag/transport/behandling/vedtak/request/OpprettVedtakRequestDto.kt @@ -18,6 +18,7 @@ import no.nav.bidrag.domene.ident.Personident import no.nav.bidrag.domene.organisasjon.Enhetsnummer import no.nav.bidrag.domene.sak.Saksnummer import no.nav.bidrag.domene.tid.ÅrMånedsperiode +import no.nav.bidrag.transport.behandling.felles.grunnlag.BaseGrunnlag import java.math.BigDecimal import java.time.LocalDate import java.time.LocalDateTime @@ -29,42 +30,44 @@ data class OpprettVedtakRequestDto( @Schema(description = "Type vedtak") val type: Vedtakstype, @Schema(description = "Skal bare brukes ved batchkjøring. Id til batchjobb som oppretter vedtaket") - val opprettetAv: String?, + val opprettetAv: String? = null, @Schema(description = "Tidspunkt/timestamp når vedtaket er fattet") - val vedtakstidspunkt: LocalDateTime, + val vedtakstidspunkt: LocalDateTime = LocalDateTime.now(), @Schema(description = "Enheten som er ansvarlig for vedtaket. Kan være null for feks batch") @NotBlank - val enhetsnummer: Enhetsnummer?, + val enhetsnummer: Enhetsnummer? = null, @Schema(description = "Settes hvis overføring til Elin skal utsettes") - val innkrevingUtsattTilDato: LocalDate?, + val innkrevingUtsattTilDato: LocalDate? = null, @Schema(description = "Settes hvis vedtaket er fastsatt i utlandet") - val fastsattILand: String?, + val fastsattILand: String? = null, @Schema(description = "Liste over alle grunnlag som inngår i vedtaket") @field:Valid val grunnlagListe: List, @Schema(description = "Liste over alle stønadsendringer som inngår i vedtaket") @field:Valid - val stønadsendringListe: List?, + val stønadsendringListe: List = emptyList(), @Schema(description = "Liste over alle engangsbeløp som inngår i vedtaket") @field:Valid - val engangsbeløpListe: List?, + val engangsbeløpListe: List = emptyList(), @Schema(description = "Liste med referanser til alle behandlinger som ligger som grunnlag til vedtaket") @field:Valid - val behandlingsreferanseListe: List?, + val behandlingsreferanseListe: List = emptyList(), ) @Schema data class OpprettGrunnlagRequestDto( - @Schema(description = "Referanse til grunnlaget") @NotBlank - val referanse: String, - @Schema(description = "Grunnlagstype") + override val referanse: String, @NotBlank - val type: Grunnlagstype, - @Schema(description = "Innholdet i grunnlaget") + override val type: Grunnlagstype, @NotBlank - val innhold: JsonNode, -) + override val innhold: JsonNode, + override val grunnlagsreferanseListe: List = emptyList(), +) : BaseGrunnlag { + override fun toString(): String { + return super.asString() + } +} @Schema data class OpprettStønadsendringRequestDto( @@ -80,7 +83,7 @@ data class OpprettStønadsendringRequestDto( @Schema(description = "Personidenten til den som mottar bidraget") val mottaker: Personident, @Schema(description = "Angir første år en stønad skal indeksreguleres") - val førsteIndeksreguleringsår: Int?, + val førsteIndeksreguleringsår: Int? = null, @Schema(description = "Angir om stønaden skal innkreves") val innkreving: Innkrevingstype, @Schema( @@ -90,9 +93,9 @@ data class OpprettStønadsendringRequestDto( ) val beslutning: Beslutningstype, @Schema(description = "Id for vedtaket det er klaget på") - val omgjørVedtakId: Int?, + val omgjørVedtakId: Int? = null, @Schema(description = "Referanse som brukes i utlandssaker") - val eksternReferanse: String?, + val eksternReferanse: String? = null, @Schema(description = "Liste over grunnlag som er knyttet direkte til stønadsendringen") val grunnlagReferanseListe: List, @Schema(description = "Liste over alle perioder som inngår i stønadsendringen") @@ -109,12 +112,12 @@ data class OpprettPeriodeRequestDto( val beløp: BigDecimal?, @Schema(description = "Valutakoden tilhørende stønadsbeløpet") @NotBlank - val valutakode: String?, + val valutakode: String? = null, @Schema(description = "Resultatkoden tilhørende stønadsbeløpet") @NotBlank val resultatkode: String, @Schema(description = "Referanse - delytelseId/beslutningslinjeId -> bidrag-regnskap. Skal fjernes senere") - val delytelseId: String?, + val delytelseId: String? = null, @Schema(description = "Liste over alle grunnlag som inngår i perioden") @NotEmpty val grunnlagReferanseListe: List, @@ -151,17 +154,17 @@ data class OpprettEngangsbeløpRequestDto( ) val beslutning: Beslutningstype, @Schema(description = "Id for vedtaket det er klaget på. Utgjør sammen med referanse en unik id for et engangsbeløp") - val omgjørVedtakId: Int?, + val omgjørVedtakId: Int? = null, @Schema( description = "Referanse til engangsbeløp, brukes for å kunne omgjøre engangsbeløp senere i et klagevedtak. Unik innenfor et vedtak. " + "Unik referanse blir generert av bidrag-vedtak hvis den ikke er angitt i requesten.", ) - val referanse: String?, + val referanse: String? = null, @Schema(description = "Referanse - delytelsesId/beslutningslinjeId -> bidrag-regnskap. Skal fjernes senere") - val delytelseId: String?, + val delytelseId: String? = null, @Schema(description = "Referanse som brukes i utlandssaker") - val eksternReferanse: String?, + val eksternReferanse: String? = null, @Schema(description = "Liste over alle grunnlag som inngår i engangsbeløpet") @NotEmpty val grunnlagReferanseListe: List, diff --git a/bidrag-transport/src/main/kotlin/no/nav/bidrag/transport/behandling/vedtak/response/VedtakDto.kt b/bidrag-transport/src/main/kotlin/no/nav/bidrag/transport/behandling/vedtak/response/VedtakDto.kt index 592e1ec..a9cd50a 100644 --- a/bidrag-transport/src/main/kotlin/no/nav/bidrag/transport/behandling/vedtak/response/VedtakDto.kt +++ b/bidrag-transport/src/main/kotlin/no/nav/bidrag/transport/behandling/vedtak/response/VedtakDto.kt @@ -1,10 +1,8 @@ package no.nav.bidrag.transport.behandling.vedtak.response -import com.fasterxml.jackson.databind.JsonNode import io.swagger.v3.oas.annotations.media.Schema import jakarta.validation.constraints.Min import jakarta.validation.constraints.NotBlank -import no.nav.bidrag.domene.enums.grunnlag.Grunnlagstype import no.nav.bidrag.domene.enums.vedtak.BehandlingsrefKilde import no.nav.bidrag.domene.enums.vedtak.Beslutningstype import no.nav.bidrag.domene.enums.vedtak.Engangsbeløptype @@ -16,6 +14,7 @@ import no.nav.bidrag.domene.ident.Personident import no.nav.bidrag.domene.organisasjon.Enhetsnummer import no.nav.bidrag.domene.sak.Saksnummer import no.nav.bidrag.domene.tid.ÅrMånedsperiode +import no.nav.bidrag.transport.behandling.felles.grunnlag.GrunnlagDto import java.math.BigDecimal import java.time.LocalDate import java.time.LocalDateTime @@ -52,16 +51,6 @@ data class VedtakDto( val behandlingsreferanseListe: List, ) -@Schema -data class GrunnlagDto( - @Schema(description = "Referanse til grunnlaget") - val referanse: String, - @Schema(description = "Grunnlagstype") - val type: Grunnlagstype, - @Schema(description = "Innholdet i grunnlaget") - val innhold: JsonNode, -) - @Schema data class StønadsendringDto( @Schema(description = "Stønadstype") diff --git a/bidrag-transport/src/main/kotlin/no/nav/bidrag/transport/felles/JsonUtils.kt b/bidrag-transport/src/main/kotlin/no/nav/bidrag/transport/felles/JsonUtils.kt index f417cb9..380df58 100644 --- a/bidrag-transport/src/main/kotlin/no/nav/bidrag/transport/felles/JsonUtils.kt +++ b/bidrag-transport/src/main/kotlin/no/nav/bidrag/transport/felles/JsonUtils.kt @@ -2,7 +2,9 @@ package no.nav.bidrag.transport.felles import com.fasterxml.jackson.databind.json.JsonMapper -internal val objectmapper = +val commonObjectmapper = JsonMapper.builder() .findAndAddModules() + .configure(com.fasterxml.jackson.databind.SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false) + .configure(com.fasterxml.jackson.databind.DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false) .build() diff --git a/bidrag-transport/src/test/kotlin/no/nav/bidrag/transport/behandling/beregning/felles/BeregninFellesTest.kt b/bidrag-transport/src/test/kotlin/no/nav/bidrag/transport/behandling/beregning/felles/BeregninFellesTest.kt index ffad37e..ca84dd0 100644 --- a/bidrag-transport/src/test/kotlin/no/nav/bidrag/transport/behandling/beregning/felles/BeregninFellesTest.kt +++ b/bidrag-transport/src/test/kotlin/no/nav/bidrag/transport/behandling/beregning/felles/BeregninFellesTest.kt @@ -1,13 +1,21 @@ package no.nav.bidrag.transport.behandling.beregning.felles -import com.fasterxml.jackson.module.kotlin.convertValue +import com.fasterxml.jackson.databind.node.POJONode import io.kotest.matchers.collections.shouldHaveSize import io.kotest.matchers.shouldBe import no.nav.bidrag.domene.enums.grunnlag.Grunnlagstype +import no.nav.bidrag.domene.enums.inntekt.Inntektsrapportering +import no.nav.bidrag.domene.enums.person.Bostatuskode import no.nav.bidrag.domene.ident.Personident +import no.nav.bidrag.domene.tid.ÅrMånedsperiode +import no.nav.bidrag.transport.behandling.felles.grunnlag.BostatusPeriode +import no.nav.bidrag.transport.behandling.felles.grunnlag.GrunnlagDto +import no.nav.bidrag.transport.behandling.felles.grunnlag.InntektsrapporteringPeriode import no.nav.bidrag.transport.behandling.felles.grunnlag.Person -import no.nav.bidrag.transport.felles.objectmapper +import no.nav.bidrag.transport.behandling.felles.grunnlag.filtrerOgKonverterBasertPåEgenReferanse +import no.nav.bidrag.transport.behandling.felles.grunnlag.filtrerOgKonverterBasertPåFremmedReferanse import org.junit.jupiter.api.Test +import java.math.BigDecimal import java.time.LocalDate class BeregninFellesTest { @@ -16,21 +24,94 @@ class BeregninFellesTest { val personreferanse = "person_bm_1" val beregnGrunnlag = BeregnGrunnlag( + periode = ÅrMånedsperiode(LocalDate.parse("2020-01-01"), null), + søknadsbarnReferanse = "", grunnlagListe = listOf( - Grunnlag( + GrunnlagDto( referanse = personreferanse, type = Grunnlagstype.PERSON, innhold = - objectmapper.convertValue( + POJONode( Person(Personident("123123123"), fødselsdato = LocalDate.parse("2023-01-01")), ), ), ), ) - val person = beregnGrunnlag.hentInnholdBasertPåEgenReferanse(Grunnlagstype.PERSON, Person::class.java, personreferanse) + val person = beregnGrunnlag.grunnlagListe.filtrerOgKonverterBasertPåEgenReferanse(Grunnlagstype.PERSON, personreferanse) person shouldHaveSize 1 person.firstOrNull()?.innhold?.ident?.verdi shouldBe "123123123" } + + @Test + fun `skal hente grunnlag basert på fremmed referanse`() { + val personreferanse = "person_bm_1" + val beregnGrunnlag = + BeregnGrunnlag( + periode = ÅrMånedsperiode(LocalDate.parse("2020-01-01"), null), + søknadsbarnReferanse = "", + grunnlagListe = + listOf( + GrunnlagDto( + referanse = personreferanse, + type = Grunnlagstype.PERSON, + innhold = + POJONode( + Person(Personident("123123123"), fødselsdato = LocalDate.parse("2023-01-01")), + ), + ), + GrunnlagDto( + referanse = "inntekt_1", + type = Grunnlagstype.INNTEKT_RAPPORTERING_PERIODE, + grunnlagsreferanseListe = listOf(personreferanse), + innhold = + POJONode( + InntektsrapporteringPeriode( + periode = ÅrMånedsperiode(LocalDate.parse("2020-01-01"), null), + beløp = BigDecimal.ONE, + inntektsrapportering = Inntektsrapportering.AINNTEKT, + manueltRegistrert = false, + valgt = true, + ), + ), + ), + GrunnlagDto( + referanse = "inntekt_2", + type = Grunnlagstype.INNTEKT_RAPPORTERING_PERIODE, + grunnlagsreferanseListe = listOf(personreferanse), + innhold = + POJONode( + InntektsrapporteringPeriode( + periode = ÅrMånedsperiode(LocalDate.parse("2022-01-01"), null), + beløp = BigDecimal.ONE, + inntektsrapportering = Inntektsrapportering.AINNTEKT, + manueltRegistrert = false, + valgt = true, + ), + ), + ), + GrunnlagDto( + referanse = personreferanse, + type = Grunnlagstype.PERSON, + grunnlagsreferanseListe = listOf(personreferanse), + innhold = + POJONode( + BostatusPeriode( + periode = ÅrMånedsperiode(LocalDate.parse("2020-01-01"), null), + manueltRegistrert = false, + bostatus = Bostatuskode.MED_FORELDER, + ), + ), + ), + ), + ) + + val grunnlagListe = + beregnGrunnlag.grunnlagListe.filtrerOgKonverterBasertPåFremmedReferanse( + Grunnlagstype.INNTEKT_RAPPORTERING_PERIODE, + personreferanse, + ) + grunnlagListe shouldHaveSize 2 + } } diff --git a/bidrag-transport/src/test/kotlin/no/nav/bidrag/transport/felles/GrunnlagDtoFellesTest.kt b/bidrag-transport/src/test/kotlin/no/nav/bidrag/transport/felles/GrunnlagDtoFellesTest.kt new file mode 100644 index 0000000..4232837 --- /dev/null +++ b/bidrag-transport/src/test/kotlin/no/nav/bidrag/transport/felles/GrunnlagDtoFellesTest.kt @@ -0,0 +1,25 @@ +package no.nav.bidrag.transport.felles + +import com.fasterxml.jackson.databind.node.POJONode +import io.kotest.matchers.shouldBe +import no.nav.bidrag.domene.enums.grunnlag.Grunnlagstype +import no.nav.bidrag.domene.ident.Personident +import no.nav.bidrag.transport.behandling.felles.grunnlag.GrunnlagDto +import no.nav.bidrag.transport.behandling.felles.grunnlag.Person +import org.junit.jupiter.api.Test +import java.time.LocalDate + +class GrunnlagDtoFellesTest { + @Test + fun `Skal opprette grunnlag`() { + val grunnlag = + GrunnlagDto( + "Person-150-BM", + Grunnlagstype.PERSON, + POJONode(Person(Personident("123213213213"), "Navn Navnesen", LocalDate.parse("2020-01-01"))), + ) + + grunnlag.toString() shouldBe "PERSON - referanse=Person-150-BM, grunnlagsreferanseListe=, " + + "innhold={\"ident\":\"123213213213\",\"navn\":\"Navn Navnesen\",\"fødselsdato\":\"2020-01-01\"}" + } +} diff --git a/pom.xml b/pom.xml index 222a31a..b236588 100644 --- a/pom.xml +++ b/pom.xml @@ -7,7 +7,7 @@ no.nav.bidrag bidrag-felles Bidrag felles - ${revision} + 1.0-SNAPSHOT pom @@ -184,6 +184,62 @@ + + ktlint + + true + + + + + org.apache.maven.plugins + maven-antrun-plugin + ${maven-antrun.version} + + + ktlint + verify + + + + + + + + + run + + + + ktlint-format + validate + + + + + + + + + + + + run + + + + + + com.pinterest.ktlint + ktlint-cli + ${ktlint.version} + + + + + + + @@ -276,52 +332,6 @@ flatten-maven-plugin ${flatten-maven.version} - - org.apache.maven.plugins - maven-antrun-plugin - ${maven-antrun.version} - - - ktlint - verify - - - - - - - - - run - - - - ktlint-format - validate - - - - - - - - - - - - run - - - - - - com.pinterest.ktlint - ktlint-cli - ${ktlint.version} - - - -