Skip to content

Commit

Permalink
TFP-5185: Fase 2 - automatisering av tilfeller hvor mors aktivitet er…
Browse files Browse the repository at this point in the history
… godkjent og under 75% uten gradering og samtidig uttak.
  • Loading branch information
espenwaaga committed Jul 3, 2024
1 parent 25d4417 commit 5268cb7
Show file tree
Hide file tree
Showing 4 changed files with 40 additions and 17 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -191,6 +191,9 @@ private UtbetalingsgradUtregning bestemUtbetalingsgradUtregning(OppgittPeriode o
return new UtbetalingsgradSamtidigUttakUtregning(samtidigUttaksprosent, oppgittPeriode.getArbeidsprosent(),
annenpartSamtidigUttaksprosent);
}
if (oppgittPeriode.getMorsStillingsprosent() != null) {
return new UtbetalingsgradMorsStillingsprosentUtregning(oppgittPeriode.getMorsStillingsprosent(), annenpartSamtidigUttaksprosent);
}
return new UtbetalingsgradUtenGraderingUtregning(annenpartSamtidigUttaksprosent);
}

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package no.nav.foreldrepenger.regler.uttak.fastsetteperiode;

import java.math.BigDecimal;
import java.util.Objects;

import no.nav.foreldrepenger.regler.uttak.fastsetteperiode.grunnlag.MorsStillingsprosent;
import no.nav.foreldrepenger.regler.uttak.fastsetteperiode.grunnlag.SamtidigUttaksprosent;
import no.nav.foreldrepenger.regler.uttak.fastsetteperiode.grunnlag.Utbetalingsgrad;

class UtbetalingsgradMorsStillingsprosentUtregning implements UtbetalingsgradUtregning {

private final MorsStillingsprosent morsStillingsprosent;
private final SamtidigUttaksprosent annenpartSamtidigUttaksprosent;

public UtbetalingsgradMorsStillingsprosentUtregning(MorsStillingsprosent morsStillingsprosent,
SamtidigUttaksprosent annenpartSamtidigUttaksprosent) {
Objects.requireNonNull(annenpartSamtidigUttaksprosent);
this.morsStillingsprosent = morsStillingsprosent;
this.annenpartSamtidigUttaksprosent = annenpartSamtidigUttaksprosent;
}

@Override
public Utbetalingsgrad resultat() {
var samtidigUttakPgaMor = BigDecimal.valueOf(100).subtract(annenpartSamtidigUttaksprosent.decimalValue());
return new Utbetalingsgrad(samtidigUttakPgaMor.min(morsStillingsprosent.decimalValue()));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import no.nav.foreldrepenger.regler.uttak.fastsetteperiode.FastsettePeriodeGrunnlag;
import no.nav.foreldrepenger.regler.uttak.fastsetteperiode.grunnlag.MorsAktivitet;
import no.nav.foreldrepenger.regler.uttak.fastsetteperiode.grunnlag.OppgittPeriode;
import no.nav.foreldrepenger.regler.uttak.fastsetteperiode.util.SamtidigUttakUtil;
import no.nav.fpsak.nare.doc.RuleDocumentation;
import no.nav.fpsak.nare.evaluation.Evaluation;
import no.nav.fpsak.nare.specification.LeafSpecification;
Expand All @@ -20,7 +21,7 @@ public SjekkOmMorErIArbeidMedStillingprosentUnder75Prosent() {
@Override
public Evaluation evaluate(FastsettePeriodeGrunnlag grunnlag) {
var aktuellPeriode = grunnlag.getAktuellPeriode();
if (erMorIArbeidOgHarEnStillingsprosentMindreEnn75Prosent(aktuellPeriode)) {
if (erMorIArbeidOgHarEnStillingsprosentMindreEnn75Prosent(aktuellPeriode) && (SamtidigUttakUtil.søktSamtidigUttakForPeriode(grunnlag) || grunnlag.getAktuellPeriode().erSøktGradering())) {
return ja();
}
return nei();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,6 @@
import java.time.LocalDate;
import java.util.Set;

import no.nav.foreldrepenger.regler.uttak.fastsetteperiode.utfall.InnvilgetÅrsak;

import no.nav.foreldrepenger.regler.uttak.fastsetteperiode.utfall.Manuellbehandlingårsak;

import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test;

Expand All @@ -29,6 +25,8 @@
import no.nav.foreldrepenger.regler.uttak.fastsetteperiode.grunnlag.SamtidigUttaksprosent;
import no.nav.foreldrepenger.regler.uttak.fastsetteperiode.grunnlag.Søknad;
import no.nav.foreldrepenger.regler.uttak.fastsetteperiode.grunnlag.Utbetalingsgrad;
import no.nav.foreldrepenger.regler.uttak.fastsetteperiode.utfall.InnvilgetÅrsak;
import no.nav.foreldrepenger.regler.uttak.fastsetteperiode.utfall.Manuellbehandlingårsak;

public class DelvisArbeidOrkestreringTest extends FastsettePerioderRegelOrkestreringTestBase {
public static final LocalDate FØDSELSDATO = LocalDate.of(2024, 6, 17);
Expand All @@ -54,12 +52,9 @@ void far_fullt_uttak_mor_akkurat_ikke_75_prosent_i_arbeid() {
var fastsattePerioder = fastsettPerioder(lagGrunnlag(oppgittPeriode));

assertThat(fastsattePerioder).hasSize(1);
assertThat(fastsattePerioder.getFirst().uttakPeriode().getPerioderesultattype()).isEqualTo(Perioderesultattype.MANUELL_BEHANDLING);
assertThat(fastsattePerioder.getFirst().uttakPeriode().getPeriodeResultatÅrsak()).isEqualTo(InnvilgetÅrsak.FORELDREPENGER_KUN_FAR_HAR_RETT);
assertThat(fastsattePerioder.getFirst().uttakPeriode().getManuellbehandlingårsak()).isEqualTo(Manuellbehandlingårsak.AKTIVITETSKRAV_DELVIS_ARBEID);
// assertThat(fastsattePerioder.getFirst().uttakPeriode().getPerioderesultattype()).isEqualTo(Perioderesultattype.INNVILGET);
// assertThat(fastsattePerioder.getFirst().uttakPeriode().getUtbetalingsgrad(ARBEIDSFORHOLD)).isEqualTo(new Utbetalingsgrad(74.99));
// assertThat(fastsattePerioder.getFirst().uttakPeriode().getTrekkdager(ARBEIDSFORHOLD)).isEqualTo(new Trekkdager(30));
assertThat(fastsattePerioder.getFirst().uttakPeriode().getPerioderesultattype()).isEqualTo(Perioderesultattype.INNVILGET);
assertThat(fastsattePerioder.getFirst().uttakPeriode().getUtbetalingsgrad(ARBEIDSFORHOLD)).isEqualTo(new Utbetalingsgrad(74.99));
assertThat(fastsattePerioder.getFirst().uttakPeriode().getTrekkdager(ARBEIDSFORHOLD)).isEqualTo(new Trekkdager(30));
}

@Test
Expand All @@ -69,12 +64,9 @@ void far_fullt_uttak_mor_under_75_prosent_i_arbeid() {
var fastsattePerioder = fastsettPerioder(lagGrunnlag(oppgittPeriode));

assertThat(fastsattePerioder).hasSize(1);
assertThat(fastsattePerioder.getFirst().uttakPeriode().getPerioderesultattype()).isEqualTo(Perioderesultattype.MANUELL_BEHANDLING);
assertThat(fastsattePerioder.getFirst().uttakPeriode().getPeriodeResultatÅrsak()).isEqualTo(InnvilgetÅrsak.FORELDREPENGER_KUN_FAR_HAR_RETT);
assertThat(fastsattePerioder.getFirst().uttakPeriode().getManuellbehandlingårsak()).isEqualTo(Manuellbehandlingårsak.AKTIVITETSKRAV_DELVIS_ARBEID);
// assertThat(fastsattePerioder.getFirst().uttakPeriode().getPerioderesultattype()).isEqualTo(Perioderesultattype.INNVILGET);
// assertThat(fastsattePerioder.getFirst().uttakPeriode().getUtbetalingsgrad(ARBEIDSFORHOLD)).isEqualTo(new Utbetalingsgrad(40));
// assertThat(fastsattePerioder.getFirst().uttakPeriode().getTrekkdager(ARBEIDSFORHOLD)).isEqualTo(new Trekkdager(30));
assertThat(fastsattePerioder.getFirst().uttakPeriode().getPerioderesultattype()).isEqualTo(Perioderesultattype.INNVILGET);
assertThat(fastsattePerioder.getFirst().uttakPeriode().getUtbetalingsgrad(ARBEIDSFORHOLD)).isEqualTo(new Utbetalingsgrad(40));
assertThat(fastsattePerioder.getFirst().uttakPeriode().getTrekkdager(ARBEIDSFORHOLD)).isEqualTo(new Trekkdager(30));
}

@Test
Expand Down

0 comments on commit 5268cb7

Please sign in to comment.