Skip to content
Open
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
Expand Up @@ -32,9 +32,15 @@ public class KontrollertInntektPeriode extends BaseEntitet {
@Column(name = "rapportert_inntekt")
private BigDecimal rapportertInntekt;

@Column(name = "rapportert_inntekt_pr_mnd")
private BigDecimal rapportertInntektPrMnd;

@Column(name = "register_inntekt")
private BigDecimal registerInntekt;

@Column(name = "register_inntekt_pr_mnd")
private BigDecimal registerInntektPrMnd;

@Convert(converter = KontrollertInntektKildeKodeverdiConverter.class)
@Column(name = "kilde", nullable = false)
private KontrollertInntektKilde kilde;
Expand Down Expand Up @@ -67,7 +73,9 @@ public KontrollertInntektPeriode(KontrollertInntektPeriode eksisterende) {
private KontrollertInntektPeriode(DatoIntervallEntitet periode,
BigDecimal inntekt,
BigDecimal rapportertInntekt,
BigDecimal rapportertInntektPrMnd,
BigDecimal registerInntekt,
BigDecimal registerInntektPrMnd,
KontrollertInntektKilde kilde,
boolean erManueltVurdert,
String begrunnelse) {
Expand All @@ -77,7 +85,9 @@ private KontrollertInntektPeriode(DatoIntervallEntitet periode,
this.erManueltVurdert = erManueltVurdert;
this.begrunnelse = begrunnelse;
this.registerInntekt = registerInntekt;
this.registerInntektPrMnd = registerInntektPrMnd;
this.rapportertInntekt = rapportertInntekt;
this.rapportertInntektPrMnd = rapportertInntektPrMnd;
}

public Long getId() {
Expand Down Expand Up @@ -131,7 +141,9 @@ public static class Builder {
private DatoIntervallEntitet periode;
private BigDecimal inntekt;
private BigDecimal rapportertInntekt;
private BigDecimal rapportertInntektPrMnd;
private BigDecimal registerInntekt;
private BigDecimal registerInntektPrMnd;
private KontrollertInntektKilde kilde;
private boolean erManueltVurdert;
private String begrunnelse;
Expand All @@ -157,11 +169,21 @@ public Builder medRapportertInntekt(BigDecimal rapportertInntekt) {
return this;
}

public Builder medRapportertInntektPrMnd(BigDecimal rapportertInntektPrMnd) {
this.rapportertInntektPrMnd = rapportertInntektPrMnd;
return this;
}

public Builder medRegisterInntekt(BigDecimal registerInntekt) {
this.registerInntekt = registerInntekt;
return this;
}

public Builder medRegisterInntektPrMnd(BigDecimal registerInntektPrMnd) {
this.registerInntektPrMnd = registerInntektPrMnd;
return this;
}

public Builder medKilde(KontrollertInntektKilde kilde) {
this.kilde = kilde;
return this;
Expand All @@ -179,10 +201,9 @@ public Builder medBegrunnelse(String begrunnelse) {


public KontrollertInntektPeriode build() {
return new KontrollertInntektPeriode(periode, inntekt, rapportertInntekt, registerInntekt, kilde, erManueltVurdert, begrunnelse);
return new KontrollertInntektPeriode(periode, inntekt, rapportertInntekt, rapportertInntektPrMnd, registerInntekt, registerInntektPrMnd, kilde, erManueltVurdert, begrunnelse);
}


}

}
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ class EtterlysningutlederKontrollerInntektTest {
LocalDateTimeline<Set<BehandlingÅrsakType>> prosessTriggerTidslinje = lagProsesstriggerTidslinjeForInntektRapporteringOgKontroll(fom, tom);
final var gjeldendeRapporterteInntekter = lagRapportertInntektTidslinjeMedDiffMotRegister(fom, tom, register, bruker);
LocalDateTimeline<EtterlysningOgRegisterinntekt> ikkeGodkjentUttalelseTidslinje = new LocalDateTimeline<>(fom, tom,
new EtterlysningOgRegisterinntekt(Set.of(new RapportertInntekt(InntektType.ARBEIDSTAKER_ELLER_FRILANSER, BigDecimal.valueOf(registerFraUttalelse))), new InntektskontrollEtterlysningInfo(EtterlysningStatus.MOTTATT_SVAR, false)));
new EtterlysningOgRegisterinntekt(Set.of(new RapportertInntekt(InntektType.ARBEIDSTAKER_ELLER_FRILANSER, BigDecimal.valueOf(registerFraUttalelse), BigDecimal.valueOf(registerFraUttalelse) )), new InntektskontrollEtterlysningInfo(EtterlysningStatus.MOTTATT_SVAR, false)));

// Act
var resultat = utfør(prosessTriggerTidslinje, gjeldendeRapporterteInntekter, ikkeGodkjentUttalelseTidslinje);
Expand Down Expand Up @@ -132,7 +132,7 @@ void skal_ikke_opprette_etterlysning_dersom_bruker_ikke_har_godkjent_ytelse_og_i
final var gjeldendeRapporterteInntekter = lagRapportertInntektTidslinjeMedDiffMotRegister(fom, tom, 0, 1001, 0);
LocalDateTimeline<EtterlysningOgRegisterinntekt> ikkeGodkjentUttalelseTidslinje = new LocalDateTimeline<>(
fom, tom,
new EtterlysningOgRegisterinntekt(Set.of(new RapportertInntekt(InntektType.YTELSE, BigDecimal.valueOf(1001))), new InntektskontrollEtterlysningInfo(EtterlysningStatus.MOTTATT_SVAR, false))
new EtterlysningOgRegisterinntekt(Set.of(new RapportertInntekt(InntektType.YTELSE, BigDecimal.valueOf(1001), BigDecimal.valueOf(1001))), new InntektskontrollEtterlysningInfo(EtterlysningStatus.MOTTATT_SVAR, false))
);

// Act
Expand All @@ -151,7 +151,7 @@ void skal_ikke_opprette_etterlysning_dersom_bruker_har_godkjent_ytelse_og_inntek
final var gjeldendeRapporterteInntekter = lagRapportertInntektTidslinjeMedDiffMotRegister(fom, tom, 0, 1001, 0);
LocalDateTimeline<EtterlysningOgRegisterinntekt> godkjentUttalelseTidslinje = new LocalDateTimeline<>(
fom, tom,
new EtterlysningOgRegisterinntekt(Set.of(new RapportertInntekt(InntektType.YTELSE, BigDecimal.valueOf(1001))), new InntektskontrollEtterlysningInfo(EtterlysningStatus.MOTTATT_SVAR, true))
new EtterlysningOgRegisterinntekt(Set.of(new RapportertInntekt(InntektType.YTELSE, BigDecimal.valueOf(1001), BigDecimal.valueOf(1001))), new InntektskontrollEtterlysningInfo(EtterlysningStatus.MOTTATT_SVAR, true))
);

// Act
Expand All @@ -172,8 +172,8 @@ void skal_ikke_opprette_etterlysning_dersom_bruker_tidligere_har_rapportert_innt
LocalDateTimeline<EtterlysningOgRegisterinntekt> godkjentUttalelseTidslinje = new LocalDateTimeline<>(
fom, tom,
new EtterlysningOgRegisterinntekt(Set.of(
new RapportertInntekt(InntektType.ARBEIDSTAKER_ELLER_FRILANSER, BigDecimal.valueOf(2000)),
new RapportertInntekt(InntektType.YTELSE, BigDecimal.valueOf(10_000))), new InntektskontrollEtterlysningInfo(EtterlysningStatus.MOTTATT_SVAR, true))
new RapportertInntekt(InntektType.ARBEIDSTAKER_ELLER_FRILANSER, BigDecimal.valueOf(2000), BigDecimal.valueOf(2000)),
new RapportertInntekt(InntektType.YTELSE, BigDecimal.valueOf(10_000), BigDecimal.valueOf(10_000))), new InntektskontrollEtterlysningInfo(EtterlysningStatus.MOTTATT_SVAR, true))
);

// Act
Expand All @@ -192,7 +192,7 @@ void skal_ikke_opprette_etterlysning_dersom_bruker_tidligere_har_rapportert_innt
LocalDateTimeline<Set<BehandlingÅrsakType>> prosessTriggerTidslinje = lagProsesstriggerTidslinjeForKontroll(fom, tom);
final var gjeldendeRapporterteInntekter = lagRapportertInntektTidslinjeMedDiffMotRegister(fom, tom, 10_000, 11_001);
LocalDateTimeline<EtterlysningOgRegisterinntekt> uttalelseTidslinje = new LocalDateTimeline<>(fom, tom,
new EtterlysningOgRegisterinntekt(Set.of(new RapportertInntekt(InntektType.ARBEIDSTAKER_ELLER_FRILANSER, BigDecimal.valueOf(10_002))), new InntektskontrollEtterlysningInfo(EtterlysningStatus.VENTER, null)));
new EtterlysningOgRegisterinntekt(Set.of(new RapportertInntekt(InntektType.ARBEIDSTAKER_ELLER_FRILANSER, BigDecimal.valueOf(10_002), BigDecimal.valueOf(10_002))), new InntektskontrollEtterlysningInfo(EtterlysningStatus.VENTER, null)));

// Act
var resultat = utfør(prosessTriggerTidslinje, gjeldendeRapporterteInntekter, uttalelseTidslinje);
Expand Down Expand Up @@ -260,8 +260,8 @@ private static LocalDateTimeline<RapporterteInntekter> lagRapportertInntektTidsl
LocalDateTimeline<RapporterteInntekter> gjeldendeRapporterteInntekter = new LocalDateTimeline<>(
List.of(
new LocalDateSegment<>(fom, tom, new RapporterteInntekter(Set.of(
new RapportertInntekt(InntektType.ARBEIDSTAKER_ELLER_FRILANSER, BigDecimal.valueOf(bruker))), Set.of(
new RapportertInntekt(InntektType.ARBEIDSTAKER_ELLER_FRILANSER, BigDecimal.valueOf(register))
new RapportertInntekt(InntektType.ARBEIDSTAKER_ELLER_FRILANSER, BigDecimal.valueOf(bruker), BigDecimal.valueOf(bruker))), Set.of(
new RapportertInntekt(InntektType.ARBEIDSTAKER_ELLER_FRILANSER, BigDecimal.valueOf(register), BigDecimal.valueOf(register))
)))
)
);
Expand All @@ -273,9 +273,9 @@ private static LocalDateTimeline<RapporterteInntekter> lagRapportertInntektTidsl
LocalDateTimeline<RapporterteInntekter> gjeldendeRapporterteInntekter = new LocalDateTimeline<>(
List.of(
new LocalDateSegment<>(fom, tom, new RapporterteInntekter(Set.of(
new RapportertInntekt(InntektType.ARBEIDSTAKER_ELLER_FRILANSER, BigDecimal.valueOf(bruker))), Set.of(
new RapportertInntekt(InntektType.YTELSE, BigDecimal.valueOf(registerYtelse)),
new RapportertInntekt(InntektType.ARBEIDSTAKER_ELLER_FRILANSER, BigDecimal.valueOf(registerATFL))
new RapportertInntekt(InntektType.ARBEIDSTAKER_ELLER_FRILANSER, BigDecimal.valueOf(bruker), BigDecimal.valueOf(bruker))), Set.of(
new RapportertInntekt(InntektType.YTELSE, BigDecimal.valueOf(registerYtelse), BigDecimal.valueOf(registerYtelse)),
new RapportertInntekt(InntektType.ARBEIDSTAKER_ELLER_FRILANSER, BigDecimal.valueOf(registerATFL), BigDecimal.valueOf(registerATFL))
)))
)
);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ void skal_utlede_resultat_uten_etterlysning_og_lagre_sporing() {
// Arrange
var fom = LocalDate.now().withDayOfMonth(1);
var tom = fom.plusMonths(1).minusDays(1);
var rapporterteInntekter = Set.of(new RapportertInntekt(InntektType.ARBEIDSTAKER_ELLER_FRILANSER, BigDecimal.TEN));
var rapporterteInntekter = Set.of(new RapportertInntekt(InntektType.ARBEIDSTAKER_ELLER_FRILANSER, BigDecimal.TEN, BigDecimal.TEN));
when(kontrollerInntektInputMapper.mapInput(any())).thenReturn(new KontrollerInntektInput(
new LocalDateTimeline<>(fom, tom, true),
new LocalDateTimeline<>(fom, tom, new RapporterteInntekter(rapporterteInntekter, rapporterteInntekter)),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ void skal_opprette_aksjonspunkt_dersom_bruker_har_uttalelse_og_registerinntekt_e
final var gjeldendeRapporterteInntekter = lagRapportertInntektTidslinjeMedDiffMotRegister(fom, tom, register, bruker);
LocalDateTimeline<EtterlysningOgRegisterinntekt> harUttalelseTidslinje = new LocalDateTimeline<>(fom, tom,
new EtterlysningOgRegisterinntekt(
Set.of(new RapportertInntekt(InntektType.ARBEIDSTAKER_ELLER_FRILANSER, BigDecimal.valueOf(register))),
Set.of(new RapportertInntekt(InntektType.ARBEIDSTAKER_ELLER_FRILANSER, BigDecimal.valueOf(register), BigDecimal.valueOf(register))),
new InntektskontrollEtterlysningInfo(EtterlysningStatus.MOTTATT_SVAR, true)
));

Expand Down Expand Up @@ -100,7 +100,7 @@ void skal_bruke_brukers_godkjente_inntekt_dersom_bruker_og_har_svart_uten_uttale
LocalDateTimeline<EtterlysningOgRegisterinntekt> ikkeGodkjentUttalelseTidslinje = new LocalDateTimeline<>(
fom, tom,
new EtterlysningOgRegisterinntekt(
Set.of(new RapportertInntekt(InntektType.YTELSE, BigDecimal.valueOf(1001))),
Set.of(new RapportertInntekt(InntektType.YTELSE, BigDecimal.valueOf(1001), BigDecimal.valueOf(1001))),
new InntektskontrollEtterlysningInfo(EtterlysningStatus.MOTTATT_SVAR, false)
));

Expand All @@ -122,8 +122,8 @@ void skal_bruke_brukers_godkjente_inntekt_dersom_bruker_tidligere_har_rapportert
fom, tom,
new EtterlysningOgRegisterinntekt(
Set.of(
new RapportertInntekt(InntektType.ARBEIDSTAKER_ELLER_FRILANSER, BigDecimal.valueOf(2000)),
new RapportertInntekt(InntektType.YTELSE, BigDecimal.valueOf(10_000))
new RapportertInntekt(InntektType.ARBEIDSTAKER_ELLER_FRILANSER, BigDecimal.valueOf(2000), BigDecimal.valueOf(2000)),
new RapportertInntekt(InntektType.YTELSE, BigDecimal.valueOf(10_000), BigDecimal.valueOf(10_000))
),
new InntektskontrollEtterlysningInfo(EtterlysningStatus.MOTTATT_SVAR, false))
);
Expand Down Expand Up @@ -177,7 +177,7 @@ void skal_opprette_aksjonspunkt_dersom_ingen_inntekt_i_register_og_rapportert_in
LocalDateTimeline<Set<BehandlingÅrsakType>> prosessTriggerTidslinje = lagProsesstriggerTidslinjeForInntektRapporteringOgKontroll(fom, tom);
final var gjeldendeRapporterteInntekter = lagRapportertInntektTidslinjeMedDiffMotRegister(fom, tom, register, bruker);
LocalDateTimeline<EtterlysningOgRegisterinntekt> etterlysningTidslinje = new LocalDateTimeline<>(fom, tom,
new EtterlysningOgRegisterinntekt(Set.of(new RapportertInntekt(InntektType.ARBEIDSTAKER_ELLER_FRILANSER, BigDecimal.valueOf(register))), new InntektskontrollEtterlysningInfo(EtterlysningStatus.UTLØPT, null)));
new EtterlysningOgRegisterinntekt(Set.of(new RapportertInntekt(InntektType.ARBEIDSTAKER_ELLER_FRILANSER, BigDecimal.valueOf(register), BigDecimal.valueOf(register))), new InntektskontrollEtterlysningInfo(EtterlysningStatus.UTLØPT, null)));

// Act
var resultat = utfør(prosessTriggerTidslinje, gjeldendeRapporterteInntekter, etterlysningTidslinje);
Expand Down Expand Up @@ -212,8 +212,8 @@ private static LocalDateTimeline<RapporterteInntekter> lagRapportertInntektTidsl
LocalDateTimeline<RapporterteInntekter> gjeldendeRapporterteInntekter = new LocalDateTimeline<>(
List.of(
new LocalDateSegment<>(fom, tom, new RapporterteInntekter(Set.of(
new RapportertInntekt(InntektType.ARBEIDSTAKER_ELLER_FRILANSER, BigDecimal.valueOf(bruker))), Set.of(
new RapportertInntekt(InntektType.ARBEIDSTAKER_ELLER_FRILANSER, BigDecimal.valueOf(register))
new RapportertInntekt(InntektType.ARBEIDSTAKER_ELLER_FRILANSER, BigDecimal.valueOf(bruker), BigDecimal.valueOf(bruker))), Set.of(
new RapportertInntekt(InntektType.ARBEIDSTAKER_ELLER_FRILANSER, BigDecimal.valueOf(register), BigDecimal.valueOf(register))
)))
)
);
Expand All @@ -225,9 +225,9 @@ private static LocalDateTimeline<RapporterteInntekter> lagRapportertInntektTidsl
LocalDateTimeline<RapporterteInntekter> gjeldendeRapporterteInntekter = new LocalDateTimeline<>(
List.of(
new LocalDateSegment<>(fom, tom, new RapporterteInntekter(Set.of(
new RapportertInntekt(InntektType.ARBEIDSTAKER_ELLER_FRILANSER, BigDecimal.valueOf(bruker))), Set.of(
new RapportertInntekt(InntektType.YTELSE, BigDecimal.valueOf(registerYtelse)),
new RapportertInntekt(InntektType.ARBEIDSTAKER_ELLER_FRILANSER, BigDecimal.valueOf(registerATFL))
new RapportertInntekt(InntektType.ARBEIDSTAKER_ELLER_FRILANSER, BigDecimal.valueOf(bruker), BigDecimal.valueOf(bruker))), Set.of(
new RapportertInntekt(InntektType.YTELSE, BigDecimal.valueOf(registerYtelse), BigDecimal.valueOf(registerYtelse)),
new RapportertInntekt(InntektType.ARBEIDSTAKER_ELLER_FRILANSER, BigDecimal.valueOf(registerATFL), BigDecimal.valueOf(registerATFL))
)))
)
);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,24 @@

import no.nav.ung.kodeverk.arbeidsforhold.InntektYtelseType;
import no.nav.ung.sak.typer.Arbeidsgiver;

import java.util.List;

public record InntekterForKilde(
InntektType inntektType,
Arbeidsgiver arbeidsgiver,
InntektYtelseType ytelseType,
List<Inntektsperiode> inntekter
) {}
) {

static InntekterForKilde forBrukersRapporterteArbeidsinntekter(Inntektsperiode inntektsperiode) {
return new InntekterForKilde(
InntektType.ARBEIDSTAKER_ELLER_FRILANSER,
null,
null,
List.of(inntektsperiode)
);
}

}

Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,20 @@

public record Inntektsperiode(
Beløp beløp,
Beløp periodebeløpFraRådata,
DatoIntervallEntitet periode
) {}
) {


public Inntektsperiode adderBeløp(Inntektsperiode augend) {
if (!this.periode.equals(augend.periode)) {
throw new IllegalArgumentException("Kan kun addere inntektsperioder med samme periode");
}
return new Inntektsperiode(
this.beløp.adder(augend.beløp),
this.periodebeløpFraRådata.adder(augend.periodebeløpFraRådata),
this.periode
);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -162,7 +162,9 @@ private static List<KontrollertInntektPeriode> mapAutomatiskKontrollerteInntektp
.medKilde(s.getValue().kilde())
.medErManueltVurdert(false)
.medRegisterInntekt(rapporterteInntekter.map(it -> it.registerRapporterteInntekter().stream().map(RapportertInntekt::beløp).reduce(BigDecimal::add).orElse(BigDecimal.ZERO)).orElse(BigDecimal.ZERO))
.medRegisterInntektPrMnd(rapporterteInntekter.map(it -> it.registerRapporterteInntekter().stream().map(RapportertInntekt::fulltRapporteringsbeløp).reduce(BigDecimal::add).orElse(BigDecimal.ZERO)).orElse(BigDecimal.ZERO))
.medRapportertInntekt(rapporterteInntekter.map(it -> it.brukerRapporterteInntekter().stream().map(RapportertInntekt::beløp).reduce(BigDecimal::add).orElse(BigDecimal.ZERO)).orElse(BigDecimal.ZERO))
.medRapportertInntektPrMnd(rapporterteInntekter.map(it -> it.brukerRapporterteInntekter().stream().map(RapportertInntekt::fulltRapporteringsbeløp).reduce(BigDecimal::add).orElse(BigDecimal.ZERO)).orElse(BigDecimal.ZERO))
.build();
}
).toList();
Expand All @@ -183,7 +185,9 @@ private static List<KontrollertInntektPeriode> mapManueltKontrollerteInntektperi
.medPeriode(DatoIntervallEntitet.fraOgMedTilOgMed(s.getFom(), s.getTom()))
.medInntekt(s.getValue().samletInntekt())
.medRegisterInntekt(rapporterteInntekter.map(it -> it.registerRapporterteInntekter().stream().map(RapportertInntekt::beløp).reduce(BigDecimal::add).orElse(BigDecimal.ZERO)).orElse(BigDecimal.ZERO))
.medRegisterInntektPrMnd(rapporterteInntekter.map(it -> it.registerRapporterteInntekter().stream().map(RapportertInntekt::fulltRapporteringsbeløp).reduce(BigDecimal::add).orElse(BigDecimal.ZERO)).orElse(BigDecimal.ZERO))
.medRapportertInntekt(rapporterteInntekter.map(it -> it.brukerRapporterteInntekter().stream().map(RapportertInntekt::beløp).reduce(BigDecimal::add).orElse(BigDecimal.ZERO)).orElse(BigDecimal.ZERO))
.medRapportertInntektPrMnd(rapporterteInntekter.map(it -> it.brukerRapporterteInntekter().stream().map(RapportertInntekt::fulltRapporteringsbeløp).reduce(BigDecimal::add).orElse(BigDecimal.ZERO)).orElse(BigDecimal.ZERO))
.medKilde(s.getValue().kilde())
.medErManueltVurdert(true)
.medBegrunnelse(s.getValue().begrunnelse())
Expand Down
Loading