From 9c2556dba133b80be273a264aef3ec42fda9a73b Mon Sep 17 00:00:00 2001 From: Jens-Otto Larsen Date: Sat, 20 Jan 2024 18:02:09 +0100 Subject: [PATCH] Ta med korrekt input til inntektsposter for ytelser --- .../vtp/kontrakter/v2/InntektYtelseType.java | 92 +++++++++++++++++++ .../vtp/kontrakter/v2/InntektsperiodeDto.java | 20 ++++ .../mapper/InntektYtelseModellMapper.java | 37 ++++++-- .../TestscenarioV2RestTjenesteTest.java | 9 +- 4 files changed, 145 insertions(+), 13 deletions(-) create mode 100644 kontrakter/src/main/java/no/nav/foreldrepenger/vtp/kontrakter/v2/InntektYtelseType.java diff --git a/kontrakter/src/main/java/no/nav/foreldrepenger/vtp/kontrakter/v2/InntektYtelseType.java b/kontrakter/src/main/java/no/nav/foreldrepenger/vtp/kontrakter/v2/InntektYtelseType.java new file mode 100644 index 000000000..9404dd7e1 --- /dev/null +++ b/kontrakter/src/main/java/no/nav/foreldrepenger/vtp/kontrakter/v2/InntektYtelseType.java @@ -0,0 +1,92 @@ +package no.nav.foreldrepenger.vtp.kontrakter.v2; + +/* + * Ytvalg fra kodeverkene Loennsbeskrivelse, Næringsinntektbeskrivelse, PensjonEllerTrygdBeskrivelse, YtelseFraOffentligeBeskrivelse + */ +public enum InntektYtelseType { + + // Loennsbeskrivelse - Lønn + FASTLØNN(InntektType.LØNNSINNTEKT, "fastloenn"), + FERIEPENGER(InntektType.LØNNSINNTEKT, "feriepenger"), + KOMMUNAL_OMSORGSLØNN_MM(InntektType.LØNNSINNTEKT, "kommunalOmsorgsloennOgFosterhjemsgodtgjoerelse"), // Tilkommet for K9 + + // YtelseFraOffentligeBeskrivelse - Ytelse utbetalt til person som er arbeidstaker/frilanser/ytelsesmottaker + AAP(InntektType.YTELSE_FRA_OFFENTLIGE, "arbeidsavklaringspenger"), + DAGPENGER(InntektType.YTELSE_FRA_OFFENTLIGE, "dagpengerVedArbeidsloeshet"), + DAGPENGER_FISKER_HYRE(InntektType.YTELSE_FRA_OFFENTLIGE, "dagpengerTilFiskerSomBareHarHyre"), + FORELDREPENGER(InntektType.YTELSE_FRA_OFFENTLIGE, "foreldrepenger"), + SVANGERSKAPSPENGER(InntektType.YTELSE_FRA_OFFENTLIGE, "svangerskapspenger"), + SYKEPENGER(InntektType.YTELSE_FRA_OFFENTLIGE, "sykepenger"), + SYKEPENGER_FISKER_HYRE(InntektType.YTELSE_FRA_OFFENTLIGE, "sykepengerTilFiskerSomBareHarHyre"), + OMSORGSPENGER(InntektType.YTELSE_FRA_OFFENTLIGE, "omsorgspenger"), + OPPLÆRINGSPENGER(InntektType.YTELSE_FRA_OFFENTLIGE, "opplaeringspenger"), + PLEIEPENGER(InntektType.YTELSE_FRA_OFFENTLIGE, "pleiepenger"), + OVERGANGSSTØNAD_ENSLIG(InntektType.YTELSE_FRA_OFFENTLIGE, "overgangsstoenadTilEnsligMorEllerFarSomBegynteAaLoepe1April2014EllerSenere"), + VENTELØNN(InntektType.YTELSE_FRA_OFFENTLIGE, "venteloenn"), + + FERIEPENGER_FORELDREPENGER(InntektType.YTELSE_FRA_OFFENTLIGE, "feriepengerForeldrepenger"), + FERIEPENGER_SVANGERSKAPSPENGER(InntektType.YTELSE_FRA_OFFENTLIGE, "feriepengerSvangerskapspenger"), + FERIEPENGER_OMSORGSPENGER(InntektType.YTELSE_FRA_OFFENTLIGE, "feriepengerOmsorgspenger"), + FERIEPENGER_OPPLÆRINGSPENGER(InntektType.YTELSE_FRA_OFFENTLIGE, "feriepengerOpplaeringspenger"), + FERIEPENGER_PLEIEPENGER(InntektType.YTELSE_FRA_OFFENTLIGE, "feriepengerPleiepenger"), + FERIEPENGER_SYKEPENGER(InntektType.YTELSE_FRA_OFFENTLIGE, "feriepengerSykepenger"), + FERIEPENGER_SYKEPENGER_FISKER_HYRE(InntektType.YTELSE_FRA_OFFENTLIGE, "feriepengerSykepengerTilFiskerSomBareHarHyre"), + FERIETILLEGG_DAGPENGER(InntektType.YTELSE_FRA_OFFENTLIGE, "ferietilleggDagpengerVedArbeidsloeshet"), + FERIETILLEGG_DAGPENGER_FISKER_HYRE(InntektType.YTELSE_FRA_OFFENTLIGE, "ferietilleggDagpengerTilFiskerSomBareHarHyre"), + + // PensjonEllerTrygdBeskrivelse - Annen ytelse utbetalt til person + KVALIFISERINGSSTØNAD(InntektType.PENSJON_ELLER_TRYGD, "kvalifiseringstoenad"), + + // Næringsinntektbeskrivelse, Ytelse utbetalt til person som er næringsdrivende, fisker/lott, dagmamma eller jord/skogbruker + FORELDREPENGER_NÆRING(InntektType.NÆRINGSINNTEKT, "foreldrepenger"), + FORELDREPENGER_NÆRING_DAGMAMMA(InntektType.NÆRINGSINNTEKT, "foreldrepengerTilDagmamma"), + FORELDREPENGER_NÆRING_FISKER(InntektType.NÆRINGSINNTEKT, "foreldrepengerTilFisker"), + FORELDREPENGER_NÆRING_JORDBRUK(InntektType.NÆRINGSINNTEKT, "foreldrepengerTilJordOgSkogbrukere"), + SVANGERSKAPSPENGER_NÆRING(InntektType.NÆRINGSINNTEKT, "svangerskapspenger"), + SYKEPENGER_NÆRING(InntektType.NÆRINGSINNTEKT, "sykepenger"), + SYKEPENGER_NÆRING_DAGMAMMA(InntektType.NÆRINGSINNTEKT, "sykepengerTilDagmamma"), + SYKEPENGER_NÆRING_FISKER(InntektType.NÆRINGSINNTEKT, "sykepengerTilFisker"), + SYKEPENGER_NÆRING_JORDBRUK(InntektType.NÆRINGSINNTEKT, "sykepengerTilJordOgSkogbrukere"), + OMSORGSPENGER_NÆRING(InntektType.NÆRINGSINNTEKT, "omsorgspenger"), + OMSORGSPENGER_NÆRING_DAGMAMMA(InntektType.NÆRINGSINNTEKT, "omsorgspengerTilDagmamma"), + OMSORGSPENGER_NÆRING_FISKER(InntektType.NÆRINGSINNTEKT, "omsorgspengerTilFisker"), + OMSORGSPENGER_NÆRING_JORDBRUK(InntektType.NÆRINGSINNTEKT, "omsorgspengerTilJordOgSkogbrukere"), + OPPLÆRINGSPENGER_NÆRING(InntektType.NÆRINGSINNTEKT, "opplaeringspenger"), + PLEIEPENGER_NÆRING(InntektType.NÆRINGSINNTEKT, "pleiepenger"), + PLEIEPENGER_NÆRING_DAGMAMMA(InntektType.NÆRINGSINNTEKT, "pleiepengerTilDagmamma"), + PLEIEPENGER_NÆRING_FISKER(InntektType.NÆRINGSINNTEKT, "pleiepengerTilFisker"), + PLEIEPENGER_NÆRING_JORDBRUK(InntektType.NÆRINGSINNTEKT, "pleiepengerTilJordOgSkogbrukere"), + DAGPENGER_NÆRING(InntektType.NÆRINGSINNTEKT, "dagpengerVedArbeidsloeshet"), + DAGPENGER_NÆRING_FISKER(InntektType.NÆRINGSINNTEKT, "dagpengerTilFisker"), + + // Annen ytelse utbetalt til person som er næringsdrivende + ANNET(InntektType.NÆRINGSINNTEKT, "annet"), + VEDERLAG(InntektType.NÆRINGSINNTEKT, "vederlag"), + VEDERLAG_DAGMAMMA(InntektType.NÆRINGSINNTEKT, "vederlagDagmammaIEgetHjem"), + LOTT_KUN_TRYGDEAVGIFT(InntektType.NÆRINGSINNTEKT, "lottKunTrygdeavgift"), + KOMPENSASJON_FOR_TAPT_PERSONINNTEKT(InntektType.NÆRINGSINNTEKT, "kompensasjonForTaptPersoninntekt") + ; + + private final InntektType inntektType; + private final String beskrivelse; // Finnes i feltet beskrivelse i Inntektskomponentens felt Inntekt . beskrivelse + + InntektYtelseType(InntektType inntektType, String offisiellKode) { + this.inntektType = inntektType; + this.beskrivelse = offisiellKode; + } + + public InntektType getInntektType() { + return inntektType; + } + + public String getBeskrivelse() { + return beskrivelse; + } + + public enum InntektType { + LØNNSINNTEKT, + NÆRINGSINNTEKT, + PENSJON_ELLER_TRYGD, + YTELSE_FRA_OFFENTLIGE + } +} diff --git a/kontrakter/src/main/java/no/nav/foreldrepenger/vtp/kontrakter/v2/InntektsperiodeDto.java b/kontrakter/src/main/java/no/nav/foreldrepenger/vtp/kontrakter/v2/InntektsperiodeDto.java index 5d926e6c1..ca162e0af 100644 --- a/kontrakter/src/main/java/no/nav/foreldrepenger/vtp/kontrakter/v2/InntektsperiodeDto.java +++ b/kontrakter/src/main/java/no/nav/foreldrepenger/vtp/kontrakter/v2/InntektsperiodeDto.java @@ -7,8 +7,28 @@ public record InntektsperiodeDto(LocalDate fom, LocalDate tom, Integer beløp, InntektTypeDto inntektType, + InntektYtelseType inntektYtelseType, InntektFordelDto inntektFordel, Arbeidsgiver arbeidsgiver) { + + public InntektsperiodeDto(LocalDate fom, + LocalDate tom, + Integer beløp, + InntektTypeDto inntektType, + InntektFordelDto inntektFordel, + Arbeidsgiver arbeidsgiver) { + this(fom, tom, beløp, inntektType, null, inntektFordel, arbeidsgiver); + } + + public InntektsperiodeDto(LocalDate fom, + LocalDate tom, + Integer beløp, + InntektYtelseType inntektYtelseType, + InntektFordelDto inntektFordel, + Arbeidsgiver arbeidsgiver) { + this(fom, tom, beløp, null, inntektYtelseType, inntektFordel, arbeidsgiver); + } + public enum InntektTypeDto { LØNNSINNTEKT, NÆRINGSINNTEKT, diff --git a/server/src/main/java/no/nav/foreldrepenger/vtp/server/api/scenario/mapper/InntektYtelseModellMapper.java b/server/src/main/java/no/nav/foreldrepenger/vtp/server/api/scenario/mapper/InntektYtelseModellMapper.java index 45ec81d68..60769de52 100644 --- a/server/src/main/java/no/nav/foreldrepenger/vtp/server/api/scenario/mapper/InntektYtelseModellMapper.java +++ b/server/src/main/java/no/nav/foreldrepenger/vtp/server/api/scenario/mapper/InntektYtelseModellMapper.java @@ -188,8 +188,8 @@ private static List tilInntektsperioder(List allePersoner) { - return new Inntektsperiode(i.fom(), i.tom(), null, i.beløp(), tilOrgnummer(i.arbeidsgiver()), tilInntektType(i.inntektType()), - tilInntektFordel(i.inntektFordel()), INNTEKTPERIODE_BESKRIVELSE, null, null, + return new Inntektsperiode(i.fom(), i.tom(), null, i.beløp(), tilOrgnummer(i.arbeidsgiver()), tilInntektType(i), + tilInntektFordel(i.inntektFordel()), tilBeskrivelse(i), null, null, null, tilPrivatArbeidgiver(i.arbeidsgiver(), allePersoner)); } @@ -216,13 +216,32 @@ private static InntektFordel tilInntektFordel(InntektsperiodeDto.InntektFordelDt }; } - private static InntektType tilInntektType(InntektsperiodeDto.InntektTypeDto inntektTypeDto) { - return switch (inntektTypeDto) { - case LØNNSINNTEKT -> InntektType.LØNNSINNTEKT; - case NÆRINGSINNTEKT -> InntektType.NÆRINGSINNTEKT; - case PENSJON_ELLER_TRYGD -> InntektType.PENSJON_ELLER_TRYGD; - case YTELSE_FRA_OFFENTLIGE -> InntektType.YTELSE_FRA_OFFENTLIGE; - }; + private static InntektType tilInntektType(InntektsperiodeDto inntektsperiodeDto) { + if (inntektsperiodeDto.inntektYtelseType() != null) { + return switch (inntektsperiodeDto.inntektYtelseType().getInntektType()) { + case LØNNSINNTEKT -> InntektType.LØNNSINNTEKT; + case NÆRINGSINNTEKT -> InntektType.NÆRINGSINNTEKT; + case PENSJON_ELLER_TRYGD -> InntektType.PENSJON_ELLER_TRYGD; + case YTELSE_FRA_OFFENTLIGE -> InntektType.YTELSE_FRA_OFFENTLIGE; + }; + } else if (inntektsperiodeDto.inntektType() != null) { + return switch (inntektsperiodeDto.inntektType()) { + case LØNNSINNTEKT -> InntektType.LØNNSINNTEKT; + case NÆRINGSINNTEKT -> InntektType.NÆRINGSINNTEKT; + case PENSJON_ELLER_TRYGD -> InntektType.PENSJON_ELLER_TRYGD; + case YTELSE_FRA_OFFENTLIGE -> InntektType.YTELSE_FRA_OFFENTLIGE; + }; + } else { + return InntektType.LØNNSINNTEKT; + } + } + + private static String tilBeskrivelse(InntektsperiodeDto inntektsperiodeDto) { + if (inntektsperiodeDto.inntektYtelseType() != null) { + return inntektsperiodeDto.inntektYtelseType().getBeskrivelse(); + } else { + return INNTEKTPERIODE_BESKRIVELSE; + } } private static TRexModell tilTrex(InfotrygdDto infotrygd) { diff --git a/server/src/test/java/no/nav/foreldrepenger/vtp/server/api/scenario/TestscenarioV2RestTjenesteTest.java b/server/src/test/java/no/nav/foreldrepenger/vtp/server/api/scenario/TestscenarioV2RestTjenesteTest.java index 4fe8e324a..58128526b 100644 --- a/server/src/test/java/no/nav/foreldrepenger/vtp/server/api/scenario/TestscenarioV2RestTjenesteTest.java +++ b/server/src/test/java/no/nav/foreldrepenger/vtp/server/api/scenario/TestscenarioV2RestTjenesteTest.java @@ -14,6 +14,7 @@ import no.nav.foreldrepenger.vtp.kontrakter.v2.FamilierelasjonModellDto; import no.nav.foreldrepenger.vtp.kontrakter.v2.GeografiskTilknytningDto; import no.nav.foreldrepenger.vtp.kontrakter.v2.InntektYtelseModellDto; +import no.nav.foreldrepenger.vtp.kontrakter.v2.InntektYtelseType; import no.nav.foreldrepenger.vtp.kontrakter.v2.InntektkomponentDto; import no.nav.foreldrepenger.vtp.kontrakter.v2.InntektsperiodeDto; import no.nav.foreldrepenger.vtp.kontrakter.v2.Kjønn; @@ -52,8 +53,8 @@ void roundtripTestAvOpprettingAvTestcenario() { null, null, new InntektkomponentDto( - List.of(new InntektsperiodeDto(LocalDate.now(), null, 2000, InntektsperiodeDto.InntektTypeDto.LØNNSINNTEKT, - InntektsperiodeDto.InntektFordelDto.KONTANTYTELSE, new PrivatArbeidsgiver(privateAG)))), + List.of(new InntektsperiodeDto(LocalDate.now(), null, 2000, + InntektYtelseType.FASTLØNN, InntektsperiodeDto.InntektFordelDto.KONTANTYTELSE, new PrivatArbeidsgiver(privateAG)))), null, null, null)) @@ -64,8 +65,8 @@ InntektsperiodeDto.InntektFordelDto.KONTANTYTELSE, new PrivatArbeidsgiver(privat null, null, new InntektkomponentDto( - List.of(new InntektsperiodeDto(LocalDate.now(), null, 2000, InntektsperiodeDto.InntektTypeDto.LØNNSINNTEKT, - InntektsperiodeDto.InntektFordelDto.KONTANTYTELSE, new OrganisasjonDto(new Orgnummer("99999999"), null)))), + List.of(new InntektsperiodeDto(LocalDate.now(), null, 2000, + InntektYtelseType.FASTLØNN, InntektsperiodeDto.InntektFordelDto.KONTANTYTELSE, new OrganisasjonDto(new Orgnummer("99999999"), null)))), null, null, null))