Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Ta med korrekt input til inntektsposter for ytelser #1327

Merged
merged 1 commit into from
Jan 20, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -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
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -188,8 +188,8 @@ private static List<Inntektsperiode> tilInntektsperioder(List<InntektsperiodeDto
}

private static Inntektsperiode tilInntektsperiode(InntektsperiodeDto i, Map<UUID, BrukerModell> 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));
}
Expand All @@ -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) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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))
Expand All @@ -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))
Expand Down