Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

TFP-5873 inngangsvilkar medlemskap #381

Merged
merged 1 commit into from
Oct 15, 2024
Merged
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
@@ -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;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

det funker vel med primitive her. Gamle json vil deserialiseres til false

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nettopp, vi ønsker dem til true som er default for IV-input


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);
}
}