Skip to content

Commit

Permalink
TFP-5873 inngangsvilkar medlemskap (#381)
Browse files Browse the repository at this point in the history
  • Loading branch information
jolarsen authored Oct 15, 2024
1 parent 3ab9270 commit cb1e135
Show file tree
Hide file tree
Showing 17 changed files with 78 additions and 18 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package no.nav.foreldrepenger.regler.uttak.fastsetteperiode.betingelser;

import no.nav.foreldrepenger.regler.uttak.fastsetteperiode.FastsettePeriodeGrunnlag;
import no.nav.fpsak.nare.evaluation.Evaluation;
import no.nav.fpsak.nare.specification.LeafSpecification;

public class SjekkOmMedlemskapssvilkåretErOppfylt extends LeafSpecification<FastsettePeriodeGrunnlag> {

public static final String ID = "FP_VK 23";

public SjekkOmMedlemskapssvilkåretErOppfylt() {
super(ID);
}

@Override
public Evaluation evaluate(FastsettePeriodeGrunnlag grunnlag) {
return grunnlag.getInngangsvilkår().erMedlemskapOppfylt() ? ja() : nei();
}
}
Original file line number Diff line number Diff line change
@@ -1,11 +1,14 @@
package no.nav.foreldrepenger.regler.uttak.fastsetteperiode.grunnlag;

import java.util.Objects;

public final class Inngangsvilkår {

private boolean adopsjonOppfylt;
private boolean foreldreansvarOppfylt;
private boolean fødselOppfylt;
private boolean opptjeningOppfylt;
private Boolean medlemskapOppfylt;

private Inngangsvilkår() {

Expand All @@ -27,6 +30,11 @@ public boolean erOpptjeningOppfylt() {
return opptjeningOppfylt;
}

public boolean erMedlemskapOppfylt() {
// Kompatibilitet ved deserialisering av eldre grunnlag
return !Objects.equals(medlemskapOppfylt, Boolean.FALSE);
}

public static class Builder {

private final Inngangsvilkår kladd = new Inngangsvilkår();
Expand All @@ -51,6 +59,11 @@ public Builder opptjeningOppfylt(boolean oppfylt) {
return this;
}

public Builder medlemskapOppfylt(boolean oppfylt) {
kladd.medlemskapOppfylt = oppfylt;
return this;
}

public Inngangsvilkår build() {
return kladd;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@
import no.nav.foreldrepenger.regler.uttak.fastsetteperiode.betingelser.SjekkOmAnnenPartsPeriodeErInnvilgetUtsettelse;
import no.nav.foreldrepenger.regler.uttak.fastsetteperiode.betingelser.SjekkOmAnnenPartsPeriodeHarUtbetalingsgrad;
import no.nav.foreldrepenger.regler.uttak.fastsetteperiode.betingelser.SjekkOmBarnInnlagt;
import no.nav.foreldrepenger.regler.uttak.fastsetteperiode.betingelser.SjekkOmPeriodenKreverSammenhengendeUttak;
import no.nav.foreldrepenger.regler.uttak.fastsetteperiode.betingelser.SjekkOmBerørtBehandling;
import no.nav.foreldrepenger.regler.uttak.fastsetteperiode.betingelser.SjekkOmDetErAdopsjonAvStebarn;
import no.nav.foreldrepenger.regler.uttak.fastsetteperiode.betingelser.SjekkOmEtterNesteStønadsperiodeHarDisponibleDager;
Expand All @@ -19,6 +18,7 @@
import no.nav.foreldrepenger.regler.uttak.fastsetteperiode.betingelser.SjekkOmHvisOverlapperSåSamtykkeMellomParter;
import no.nav.foreldrepenger.regler.uttak.fastsetteperiode.betingelser.SjekkOmKontoErOpprettet;
import no.nav.foreldrepenger.regler.uttak.fastsetteperiode.betingelser.SjekkOmManglendeSøktPeriode;
import no.nav.foreldrepenger.regler.uttak.fastsetteperiode.betingelser.SjekkOmMedlemskapssvilkåretErOppfylt;
import no.nav.foreldrepenger.regler.uttak.fastsetteperiode.betingelser.SjekkOmOpphørsdatoTrefferPerioden;
import no.nav.foreldrepenger.regler.uttak.fastsetteperiode.betingelser.SjekkOmOpptjeningsvilkåretErOppfylt;
import no.nav.foreldrepenger.regler.uttak.fastsetteperiode.betingelser.SjekkOmPeriodeErFedrekvote;
Expand All @@ -29,6 +29,7 @@
import no.nav.foreldrepenger.regler.uttak.fastsetteperiode.betingelser.SjekkOmPeriodenErEtterMaksgrenseForUttak;
import no.nav.foreldrepenger.regler.uttak.fastsetteperiode.betingelser.SjekkOmPeriodenErEtterNesteStønadsperiode;
import no.nav.foreldrepenger.regler.uttak.fastsetteperiode.betingelser.SjekkOmPeriodenErFørGyldigDato;
import no.nav.foreldrepenger.regler.uttak.fastsetteperiode.betingelser.SjekkOmPeriodenKreverSammenhengendeUttak;
import no.nav.foreldrepenger.regler.uttak.fastsetteperiode.betingelser.SjekkOmPeriodenStarterFørFamiliehendelse;
import no.nav.foreldrepenger.regler.uttak.fastsetteperiode.betingelser.SjekkOmPeriodenStarterFørLovligUttakFørFødselTermin;
import no.nav.foreldrepenger.regler.uttak.fastsetteperiode.betingelser.SjekkOmPleiepenger;
Expand Down Expand Up @@ -238,10 +239,16 @@ private Specification<FastsettePeriodeGrunnlag> sjekkPeriodeInnenforMaksgrense()

private Specification<FastsettePeriodeGrunnlag> sjekkOmForeldreansvarsvilkåretErOppfylt() {
return rs.hvisRegel(SjekkOmForeldreansvarsvilkåretErOppfylt.ID, "Er foreldreansvarsvilkåret oppfylt?")
.hvis(new SjekkOmForeldreansvarsvilkåretErOppfylt(), sjekkOmOpptjeningsvilkåretErOppfylt())
.hvis(new SjekkOmForeldreansvarsvilkåretErOppfylt(), sjekkOmMedlemskapsvilkåretErOppfylt())
.ellers(IkkeOppfylt.opprett("UT1253", IkkeOppfyltÅrsak.FORELDREANSVARSVILKÅRET_IKKE_OPPFYLT, false, false));
}

private Specification<FastsettePeriodeGrunnlag> sjekkOmMedlemskapsvilkåretErOppfylt() {
return rs.hvisRegel(SjekkOmMedlemskapssvilkåretErOppfylt.ID, "Er medlemskapsvilkåret oppfylt?")
.hvis(new SjekkOmMedlemskapssvilkåretErOppfylt(), sjekkOmOpptjeningsvilkåretErOppfylt())
.ellers(IkkeOppfylt.opprett("UT1259", IkkeOppfyltÅrsak.SØKER_IKKE_MEDLEM, false, false));
}

private Specification<FastsettePeriodeGrunnlag> sjekkOmOpptjeningsvilkåretErOppfylt() {
return rs.hvisRegel(SjekkOmOpptjeningsvilkåretErOppfylt.ID, "Er opptjeningsvilkåret oppfylt?")
.hvis(new SjekkOmOpptjeningsvilkåretErOppfylt(), sjekkOmPleiepenger())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -186,7 +186,7 @@ OppgittPeriode utsettelsePeriode(LocalDate fom,
}

Inngangsvilkår.Builder oppfyltAlleVilkår() {
return new Inngangsvilkår.Builder().adopsjonOppfylt(true).foreldreansvarnOppfylt(true).fødselOppfylt(true).opptjeningOppfylt(true);
return new Inngangsvilkår.Builder().adopsjonOppfylt(true).foreldreansvarnOppfylt(true).fødselOppfylt(true).opptjeningOppfylt(true).medlemskapOppfylt(true);
}

RettOgOmsorg.Builder aleneomsorg() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -435,7 +435,7 @@ private RegelGrunnlag.Builder basicGrunnlag(LocalDate fødselsdato) {
.datoer(new Datoer.Builder().fødsel(fødselsdato))
.rettOgOmsorg(new RettOgOmsorg.Builder().morHarRett(true).farHarRett(true).samtykke(true))
.inngangsvilkår(
new Inngangsvilkår.Builder().adopsjonOppfylt(true).foreldreansvarnOppfylt(true).fødselOppfylt(true).opptjeningOppfylt(true));
new Inngangsvilkår.Builder().adopsjonOppfylt(true).foreldreansvarnOppfylt(true).fødselOppfylt(true).opptjeningOppfylt(true).medlemskapOppfylt(true));
}

private RegelGrunnlag.Builder basicGrunnlagFar(LocalDate fødselsdato) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -518,6 +518,6 @@ private RegelGrunnlag.Builder basicGrunnlag() {
.datoer(new Datoer.Builder().fødsel(FØDSELSDATO))
.rettOgOmsorg(new RettOgOmsorg.Builder().samtykke(true).farHarRett(true).morHarRett(true))
.inngangsvilkår(
new Inngangsvilkår.Builder().adopsjonOppfylt(true).foreldreansvarnOppfylt(true).fødselOppfylt(true).opptjeningOppfylt(true));
new Inngangsvilkår.Builder().adopsjonOppfylt(true).foreldreansvarnOppfylt(true).fødselOppfylt(true).opptjeningOppfylt(true).medlemskapOppfylt(true));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,6 @@ private RegelGrunnlag.Builder basicGrunnlag() {
.behandling(new Behandling.Builder().søkerErMor(true))
.rettOgOmsorg(new RettOgOmsorg.Builder().farHarRett(true).morHarRett(true).samtykke(true))
.inngangsvilkår(
new Inngangsvilkår.Builder().adopsjonOppfylt(true).foreldreansvarnOppfylt(true).fødselOppfylt(true).opptjeningOppfylt(true));
new Inngangsvilkår.Builder().adopsjonOppfylt(true).foreldreansvarnOppfylt(true).fødselOppfylt(true).opptjeningOppfylt(true).medlemskapOppfylt(true));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -789,7 +789,7 @@ private RegelGrunnlag.Builder grunnlag(LocalDate familiehendelseDato, boolean s
.behandling(new Behandling.Builder().søkerErMor(søkerMor))
.rettOgOmsorg(new RettOgOmsorg.Builder().samtykke(true))
.inngangsvilkår(
new Inngangsvilkår.Builder().adopsjonOppfylt(true).foreldreansvarnOppfylt(true).fødselOppfylt(true).opptjeningOppfylt(true));
new Inngangsvilkår.Builder().adopsjonOppfylt(true).foreldreansvarnOppfylt(true).fødselOppfylt(true).opptjeningOppfylt(true).medlemskapOppfylt(true));
}

private Kontoer.Builder foreldrepengerKonto(int trekkdager) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -142,7 +142,7 @@ private RegelGrunnlag.Builder basicGrunnlag(LocalDate familiehendelseDato) {
return create().datoer(new Datoer.Builder().fødsel(familiehendelseDato))
.rettOgOmsorg(new RettOgOmsorg.Builder().samtykke(true).farHarRett(true).morHarRett(true))
.inngangsvilkår(
new Inngangsvilkår.Builder().adopsjonOppfylt(true).foreldreansvarnOppfylt(true).fødselOppfylt(true).opptjeningOppfylt(true));
new Inngangsvilkår.Builder().adopsjonOppfylt(true).foreldreansvarnOppfylt(true).fødselOppfylt(true).opptjeningOppfylt(true).medlemskapOppfylt(true));
}

private RegelGrunnlag.Builder basicGrunnlagMor(LocalDate familiehendelseDato) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -210,7 +210,7 @@ void UT1221_mor_etterTermin_etter6Uker_omsorg_disponibleDager_gradering_avklart(
var grunnlag = basicGrunnlagMor(fødselsdato).kontoer(kontoer)
.søknad(søknad(oppgittPeriode))
.inngangsvilkår(
new Inngangsvilkår.Builder().fødselOppfylt(true).adopsjonOppfylt(true).foreldreansvarnOppfylt(true).opptjeningOppfylt(false))
new Inngangsvilkår.Builder().fødselOppfylt(true).adopsjonOppfylt(true).foreldreansvarnOppfylt(true).opptjeningOppfylt(false).medlemskapOppfylt(true))
.build();

var regelresultat = kjørRegel(oppgittPeriode, grunnlag);
Expand All @@ -223,6 +223,27 @@ void UT1221_mor_etterTermin_etter6Uker_omsorg_disponibleDager_gradering_avklart(
assertThat(regelresultat.getAvklaringÅrsak()).isEqualTo(IkkeOppfyltÅrsak.OPPTJENINGSVILKÅRET_IKKE_OPPFYLT);
}

@Test
void UT1259_medlemskapsvilkår_ikke_oppfylt() {
var fødselsdato = LocalDate.of(2018, 1, 1);
var oppgittPeriode = oppgittMødrekvote(fødselsdato.plusWeeks(10), fødselsdato.plusWeeks(11));
var kontoer = enKonto(Stønadskontotype.MØDREKVOTE, 100);
var grunnlag = basicGrunnlagMor(fødselsdato).kontoer(kontoer)
.søknad(søknad(oppgittPeriode))
.inngangsvilkår(
new Inngangsvilkår.Builder().fødselOppfylt(true).adopsjonOppfylt(true).foreldreansvarnOppfylt(true).opptjeningOppfylt(true).medlemskapOppfylt(false))
.build();

var regelresultat = kjørRegel(oppgittPeriode, grunnlag);

assertThat(regelresultat.oppfylt()).isFalse();
assertThat(regelresultat.skalUtbetale()).isFalse();
assertThat(regelresultat.trekkDagerFraSaldo()).isFalse();
assertThat(regelresultat.getManuellbehandlingårsak()).isNull();
assertThat(regelresultat.getUtfallType()).isEqualTo(UtfallType.AVSLÅTT);
assertThat(regelresultat.getAvklaringÅrsak()).isEqualTo(IkkeOppfyltÅrsak.SØKER_IKKE_MEDLEM);
}

@Test
void opphold_mødrekvote_annenforelder() {
var fødselsdato = LocalDate.of(2018, 1, 1);
Expand Down Expand Up @@ -441,7 +462,7 @@ private RegelGrunnlag.Builder basicGrunnlagFar(LocalDate fødselsdato) {
.rettOgOmsorg(new RettOgOmsorg.Builder().samtykke(true).morHarRett(true).farHarRett(true))
.behandling(new Behandling.Builder().søkerErMor(false))
.inngangsvilkår(
new Inngangsvilkår.Builder().adopsjonOppfylt(true).foreldreansvarnOppfylt(true).fødselOppfylt(true).opptjeningOppfylt(true));
new Inngangsvilkår.Builder().adopsjonOppfylt(true).foreldreansvarnOppfylt(true).fødselOppfylt(true).opptjeningOppfylt(true).medlemskapOppfylt(true));
}

private Søknad.Builder søknad(OppgittPeriode oppgittPeriode) {
Expand All @@ -461,6 +482,6 @@ private RegelGrunnlag.Builder basicGrunnlagMor(LocalDate fødselsdato) {
.rettOgOmsorg(new RettOgOmsorg.Builder().samtykke(true).morHarRett(true).farHarRett(true))
.behandling(new Behandling.Builder().søkerErMor(true))
.inngangsvilkår(
new Inngangsvilkår.Builder().adopsjonOppfylt(true).foreldreansvarnOppfylt(true).fødselOppfylt(true).opptjeningOppfylt(true));
new Inngangsvilkår.Builder().adopsjonOppfylt(true).foreldreansvarnOppfylt(true).fødselOppfylt(true).opptjeningOppfylt(true).medlemskapOppfylt(true));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -235,7 +235,7 @@ private RegelGrunnlag.Builder basicGrunnlag(LocalDate fødselsdato) {
.datoer(new Datoer.Builder().fødsel(fødselsdato))
.rettOgOmsorg(new RettOgOmsorg.Builder().samtykke(true).morHarRett(true).farHarRett(true))
.inngangsvilkår(
new Inngangsvilkår.Builder().adopsjonOppfylt(true).foreldreansvarnOppfylt(true).fødselOppfylt(true).opptjeningOppfylt(true));
new Inngangsvilkår.Builder().adopsjonOppfylt(true).foreldreansvarnOppfylt(true).fødselOppfylt(true).opptjeningOppfylt(true).medlemskapOppfylt(true));
}

private RegelGrunnlag.Builder basicGrunnlagFar(LocalDate fødselsdato) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ public static RegelGrunnlag.Builder create() {
.rettOgOmsorg(new RettOgOmsorg.Builder().morHarRett(true).farHarRett(true).samtykke(true))
.arbeid(new Arbeid.Builder().arbeidsforhold(arbeidsforhold))
.inngangsvilkår(
new Inngangsvilkår.Builder().adopsjonOppfylt(true).foreldreansvarnOppfylt(true).fødselOppfylt(true).opptjeningOppfylt(true));
new Inngangsvilkår.Builder().adopsjonOppfylt(true).foreldreansvarnOppfylt(true).fødselOppfylt(true).opptjeningOppfylt(true).medlemskapOppfylt(true));
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -312,7 +312,7 @@ private RegelGrunnlag.Builder basicBuilder(OppgittPeriode oppgittPeriode, boolea
.kontoer(kontoer)
.datoer(new Datoer.Builder().fødsel(FAMILIEHENDELSE_DATO))
.inngangsvilkår(
new Inngangsvilkår.Builder().adopsjonOppfylt(true).foreldreansvarnOppfylt(true).fødselOppfylt(true).opptjeningOppfylt(true));
new Inngangsvilkår.Builder().adopsjonOppfylt(true).foreldreansvarnOppfylt(true).fødselOppfylt(true).opptjeningOppfylt(true).medlemskapOppfylt(true));
}

private OppgittPeriode uttakPeriode(Stønadskontotype stønadskontotype, LocalDate fom, LocalDate tom) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -198,7 +198,7 @@ private RegelGrunnlag.Builder basicGrunnlag(LocalDate fødselsdato) {
.rettOgOmsorg(new RettOgOmsorg.Builder().samtykke(true).morHarRett(true).farHarRett(true))
.behandling(new Behandling.Builder().søkerErMor(false))
.inngangsvilkår(
new Inngangsvilkår.Builder().adopsjonOppfylt(true).foreldreansvarnOppfylt(true).fødselOppfylt(true).opptjeningOppfylt(true));
new Inngangsvilkår.Builder().adopsjonOppfylt(true).foreldreansvarnOppfylt(true).fødselOppfylt(true).opptjeningOppfylt(true).medlemskapOppfylt(true));
}

private Kontoer.Builder enKonto(Stønadskontotype stønadskontotype, int trekkdager) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -142,6 +142,6 @@ private RegelGrunnlag.Builder grunnlagFar(LocalDate familiehendelseDato, Oppgitt
.rettOgOmsorg(new RettOgOmsorg.Builder().farHarRett(true).morHarRett(true).samtykke(true))
.adopsjon(new Adopsjon.Builder().ankomstNorge(null).stebarnsadopsjon(true))
.inngangsvilkår(
new Inngangsvilkår.Builder().adopsjonOppfylt(true).foreldreansvarnOppfylt(true).fødselOppfylt(true).opptjeningOppfylt(true));
new Inngangsvilkår.Builder().adopsjonOppfylt(true).foreldreansvarnOppfylt(true).fødselOppfylt(true).opptjeningOppfylt(true).medlemskapOppfylt(true));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,7 @@ private RegelGrunnlag.Builder basicBuilder() {
.rettOgOmsorg(new RettOgOmsorg.Builder().samtykke(true))
.behandling(new Behandling.Builder().søkerErMor(true).sammenhengendeUttakTomDato(LocalDate.of(9999, 1, 1)))
.inngangsvilkår(
new Inngangsvilkår.Builder().adopsjonOppfylt(true).foreldreansvarnOppfylt(true).fødselOppfylt(true).opptjeningOppfylt(true));
new Inngangsvilkår.Builder().adopsjonOppfylt(true).foreldreansvarnOppfylt(true).fødselOppfylt(true).opptjeningOppfylt(true).medlemskapOppfylt(true));
}

private OppgittPeriode gradertoppgittPeriode(LocalDate fom, LocalDate tom, LocalDate mottattDato) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -133,6 +133,6 @@ private Behandling.Builder morBehandling() {
}

private Inngangsvilkår.Builder oppfylt() {
return new Inngangsvilkår.Builder().fødselOppfylt(true).adopsjonOppfylt(true).foreldreansvarnOppfylt(true).opptjeningOppfylt(true);
return new Inngangsvilkår.Builder().fødselOppfylt(true).adopsjonOppfylt(true).foreldreansvarnOppfylt(true).opptjeningOppfylt(true).medlemskapOppfylt(true);
}
}

0 comments on commit cb1e135

Please sign in to comment.