diff --git a/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/ytelse/svp/FinnGrenseverdi.java b/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/ytelse/svp/FinnGrenseverdi.java index 42354cf0..31091573 100644 --- a/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/ytelse/svp/FinnGrenseverdi.java +++ b/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/ytelse/svp/FinnGrenseverdi.java @@ -48,12 +48,14 @@ public Evaluation evaluate(BeregningsgrunnlagPeriode grunnlag) { //juster ned med tilkommet inntekt hvis det gir lavere utbetaling enn overstående if (grunnlag.getBeregningsgrunnlag().getToggles().isEnabled("GRADERING_MOT_INNTEKT", false) && !grunnlag.getTilkommetInntektsforholdListe().isEmpty()) { - BigDecimal totalUtbetalingsgradEtterReduksjonVedTilkommetInntekt = andelBeholdtEtterGradertMotTilkommetInntekt(grunnlag); + BigDecimal graderingPåToppenAvUttakgraderingPgaTilkommetInntekt = andelBeholdtEtterGradertMotTilkommetInntekt(grunnlag); + resultater.put("graderingPåToppenAvUttakgraderingPgaTilkommetInntekt", min(BigDecimal.ONE, graderingPåToppenAvUttakgraderingPgaTilkommetInntekt)); + BigDecimal totalUtbetalingsgradEtterReduksjonVedTilkommetInntekt = min(BigDecimal.ONE, totalUtbetalingsgradFraUttak.multiply(graderingPåToppenAvUttakgraderingPgaTilkommetInntekt)); resultater.put("totalUtbetalingsgradEtterReduksjonVedTilkommetInntekt", totalUtbetalingsgradEtterReduksjonVedTilkommetInntekt); grunnlag.setTotalUtbetalingsgradEtterReduksjonVedTilkommetInntekt(totalUtbetalingsgradEtterReduksjonVedTilkommetInntekt); //deprecated etter totalUtbetalingsgradEtterReduksjonVedTilkommetInntekt ble lagt til? - grenseverdi = totalUtbetalingsgradEtterReduksjonVedTilkommetInntekt.compareTo(BigDecimal.ONE) < 0 ? grenseverdi.multiply(totalUtbetalingsgradEtterReduksjonVedTilkommetInntekt) : grenseverdi; + grenseverdi = graderingPåToppenAvUttakgraderingPgaTilkommetInntekt.compareTo(BigDecimal.ONE) < 0 ? grenseverdi.multiply(graderingPåToppenAvUttakgraderingPgaTilkommetInntekt) : grenseverdi; if (grunnlag.getInntektsgraderingFraBruttoBeregningsgrunnlag() != null) { resultater.put("inntektgraderingsprosent", grunnlag.getInntektsgraderingFraBruttoBeregningsgrunnlag()); } @@ -66,6 +68,10 @@ public Evaluation evaluate(BeregningsgrunnlagPeriode grunnlag) { } + static BigDecimal min(BigDecimal a, BigDecimal b){ + return a.compareTo(b) > 0 ? b : a; + } + private static BigDecimal summerAvkortetGradertMotUttak(BeregningsgrunnlagPeriode grunnlag) { BigDecimal sum = BigDecimal.ZERO; for (BeregningsgrunnlagPrStatus bps : grunnlag.getBeregningsgrunnlagPrStatusSomSkalBrukes()) {