diff --git a/kalkulator/src/main/java/no/nav/folketrygdloven/kalkulator/felles/inntektgradering/SimulerTilkomneAktiviteterTjeneste.java b/kalkulator/src/main/java/no/nav/folketrygdloven/kalkulator/felles/inntektgradering/SimulerTilkomneAktiviteterTjeneste.java index 19ed00be..59a6875b 100644 --- a/kalkulator/src/main/java/no/nav/folketrygdloven/kalkulator/felles/inntektgradering/SimulerTilkomneAktiviteterTjeneste.java +++ b/kalkulator/src/main/java/no/nav/folketrygdloven/kalkulator/felles/inntektgradering/SimulerTilkomneAktiviteterTjeneste.java @@ -35,7 +35,8 @@ public static LocalDateTimeline> utledTilkommetAktivit beregningsgrunnlagInput.getSkjæringstidspunktForBeregning(), beregningsgrunnlagInput.getBeregningsgrunnlag().getBeregningsgrunnlagPerioder().get(0).getBeregningsgrunnlagPrStatusOgAndelList(), beregningsgrunnlagInput.getYtelsespesifiktGrunnlag(), - beregningsgrunnlagInput.getIayGrunnlag() + beregningsgrunnlagInput.getIayGrunnlag(), + true ); return tilkommetTidslinje.filterValue(v -> !v.isEmpty()).compress(); } diff --git a/kalkulator/src/main/java/no/nav/folketrygdloven/kalkulator/steg/tilkommetInntekt/TilkommetInntektsforholdTjeneste.java b/kalkulator/src/main/java/no/nav/folketrygdloven/kalkulator/steg/tilkommetInntekt/TilkommetInntektsforholdTjeneste.java index 17d20a6c..0fb5004a 100644 --- a/kalkulator/src/main/java/no/nav/folketrygdloven/kalkulator/steg/tilkommetInntekt/TilkommetInntektsforholdTjeneste.java +++ b/kalkulator/src/main/java/no/nav/folketrygdloven/kalkulator/steg/tilkommetInntekt/TilkommetInntektsforholdTjeneste.java @@ -70,6 +70,14 @@ public static LocalDateTimeline> finnTilkommetInntekts Collection andelerFraStart, YtelsespesifiktGrunnlag utbetalingsgradGrunnlag, InntektArbeidYtelseGrunnlagDto iayGrunnlag) { + return finnTilkommetInntektsforholdTidslinje(skjæringstidspunkt, andelerFraStart, utbetalingsgradGrunnlag, iayGrunnlag, false); + } + + public static LocalDateTimeline> finnTilkommetInntektsforholdTidslinje(LocalDate skjæringstidspunkt, + Collection andelerFraStart, + YtelsespesifiktGrunnlag utbetalingsgradGrunnlag, + InntektArbeidYtelseGrunnlagDto iayGrunnlag, + boolean ikkeFiltrerVedFulltFravær) { var yrkesaktiviteter = iayGrunnlag.getAktørArbeidFraRegister().map(AktørArbeidDto::hentAlleYrkesaktiviteter).orElse(Collections.emptyList()); var yrkesaktivitetTidslinje = finnInntektsforholdFraYrkesaktiviteter(skjæringstidspunkt, yrkesaktiviteter); @@ -77,9 +85,12 @@ public static LocalDateTimeline> finnTilkommetInntekts var dagpengetidslinje = finnDagpengetidslinje(iayGrunnlag, skjæringstidspunkt); var aktivitetTidslinje = yrkesaktivitetTidslinje.union(næringTidslinje, StandardCombinators::union) .union(dagpengetidslinje, StandardCombinators::union); - var fraværstidslinje = finnTidslinjeMedFravær((UtbetalingsgradGrunnlag) utbetalingsgradGrunnlag); - aktivitetTidslinje = aktivitetTidslinje.intersection(fraværstidslinje, StandardCombinators::leftOnly); - return aktivitetTidslinje.compress().map(s -> mapTilkommetTidslinje(andelerFraStart, yrkesaktiviteter, utbetalingsgradGrunnlag, s)); + + if (!ikkeFiltrerVedFulltFravær) { + var utbetalingTidslinje = finnTidslinjeMedFravær((UtbetalingsgradGrunnlag) utbetalingsgradGrunnlag); + aktivitetTidslinje = aktivitetTidslinje.intersection(utbetalingTidslinje, StandardCombinators::leftOnly); + } + return aktivitetTidslinje.compress().map(s -> mapTilkommetTidslinje(andelerFraStart, yrkesaktiviteter, utbetalingsgradGrunnlag, s, ikkeFiltrerVedFulltFravær)); } private static LocalDateTimeline> finnDagpengetidslinje(InntektArbeidYtelseGrunnlagDto iayGrunnlag, LocalDate skjæringstidspunkt) { @@ -106,22 +117,24 @@ private static LocalDateTimeline> finnDagpengetidslinje(Inn private static List>> mapTilkommetTidslinje(Collection andeler, Collection yrkesaktiviteter, YtelsespesifiktGrunnlag utbetalingsgradGrunnlag, - LocalDateSegment> s) { + LocalDateSegment> s, + boolean ikkeFiltrerVedFulltFravær) { var periode = Intervall.fraOgMedTilOgMed(s.getFom(), s.getTom()); return List.of(new LocalDateSegment<>(s.getFom(), s.getTom(), - mapTilkomne(yrkesaktiviteter, andeler, utbetalingsgradGrunnlag, periode, s.getValue()))); + mapTilkomne(yrkesaktiviteter, andeler, utbetalingsgradGrunnlag, periode, s.getValue(), ikkeFiltrerVedFulltFravær))); } private static Set mapTilkomne(Collection yrkesaktiviteter, Collection andeler, YtelsespesifiktGrunnlag utbetalingsgradGrunnlag, Intervall periode, - Set inntektsforholdListe) { + Set inntektsforholdListe, + boolean ikkeFiltrerVedFulltFravær) { var nyeInntektsforhold = inntektsforholdListe.stream() .filter(it -> !harAndelForArbeidsgiverFraStart(it, andeler)) - .filter(it -> harIkkeFulltFravær(utbetalingsgradGrunnlag, periode, it)) + .filter(it -> ikkeFiltrerVedFulltFravær || harIkkeFulltFravær(utbetalingsgradGrunnlag, periode, it)) .collect(Collectors.toSet()); return nyeInntektsforhold.stream()