Skip to content

Commit

Permalink
TFP-4035 knekker avslått utsettelse riktig når bruker går tom for dag…
Browse files Browse the repository at this point in the history
…er (#126)
  • Loading branch information
palfi authored Jan 20, 2021
1 parent b64e4f2 commit 91d6474
Show file tree
Hide file tree
Showing 10 changed files with 58 additions and 19 deletions.
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@
<sonar.host.url>https://sonarcloud.io</sonar.host.url>
<sonar.organization>navit</sonar.organization>
<sonar.projectKey>navikt_fp-uttak</sonar.projectKey>
<revision>5.0</revision>
<revision>0</revision>
<sha1>SNAPSHOT</sha1>
<java.version>11</java.version>
<maven.compiler.source>${java.version}</maven.compiler.source>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -224,7 +224,7 @@ private Optional<TomKontoKnekkpunkt> finnKnekkpunkt(OppgittPeriode aktuellPeriod
Konfigurasjon konfig,
SaldoUtregning saldoUtregning,
FastsettePerioderRegelresultat regelresultat) {
if (aktuellPeriode.isUtsettelse() || erFPFF(aktuellPeriode)) {
if (erFPFF(aktuellPeriode)) {
return Optional.empty();
}
var stønadskontotype = utledKonto(aktuellPeriode, regelGrunnlag, saldoUtregning, konfig);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -364,7 +364,7 @@ public class AdopsjonOrkestreringTest extends FastsettePerioderRegelOrkestrering
var kontoer = new Kontoer.Builder().leggTilKonto(new Konto.Builder().medType(FORELDREPENGER).medTrekkdager(130));
RegelGrunnlag grunnlag = grunnlagAdopsjon.medKontoer(kontoer)
.medDatoer(new Datoer.Builder().medOmsorgsovertakelse(omsorgsovertakelseDato))
.medRettOgOmsorg(new RettOgOmsorg.Builder().medFarHarRett(true).medMorHarRett(false).medSamtykke(true))
.medRettOgOmsorg(bareFarRett())
.medBehandling(farBehandling())
.medSøknad(søknad(Søknadstype.ADOPSJON,
oppgittPeriode(FORELDREPENGER, omsorgsovertakelseDato.minusWeeks(1), omsorgsovertakelseDato.minusDays(1))))
Expand All @@ -388,7 +388,7 @@ public class AdopsjonOrkestreringTest extends FastsettePerioderRegelOrkestrering
new Arbeid.Builder().leggTilArbeidsforhold(new Arbeidsforhold(ARBEIDSFORHOLD)))
.medKontoer(kontoer)
.medDatoer(new Datoer.Builder().medOmsorgsovertakelse(omsorgsovertakelseDato))
.medRettOgOmsorg(new RettOgOmsorg.Builder().medFarHarRett(true).medMorHarRett(false).medSamtykke(true))
.medRettOgOmsorg(bareFarRett())
.medBehandling(farBehandling())
.medSøknad(new Søknad.Builder().medType(Søknadstype.ADOPSJON)
.leggTilOppgittPeriode(oppgittPeriode(FORELDREPENGER, omsorgsovertakelseDato,
Expand Down Expand Up @@ -421,7 +421,7 @@ public class AdopsjonOrkestreringTest extends FastsettePerioderRegelOrkestrering
var grunnlag = grunnlagAdopsjon.medArbeid(new Arbeid.Builder().leggTilArbeidsforhold(new Arbeidsforhold(ARBEIDSFORHOLD)))
.medKontoer(kontoer)
.medDatoer(new Datoer.Builder().medOmsorgsovertakelse(omsorgsovertakelseDato))
.medRettOgOmsorg(new RettOgOmsorg.Builder().medFarHarRett(true).medMorHarRett(false).medSamtykke(true))
.medRettOgOmsorg(bareFarRett())
.medBehandling(farBehandling())
.medSøknad(søknad)
.medAdopsjon(new Adopsjon.Builder().medAnkomstNorge(null))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@
import no.nav.foreldrepenger.regler.uttak.fastsetteperiode.grunnlag.Datoer;
import no.nav.foreldrepenger.regler.uttak.fastsetteperiode.grunnlag.Dokumentasjon;
import no.nav.foreldrepenger.regler.uttak.fastsetteperiode.grunnlag.PeriodeMedAvklartMorsAktivitet;
import no.nav.foreldrepenger.regler.uttak.fastsetteperiode.grunnlag.RettOgOmsorg;
import no.nav.foreldrepenger.regler.uttak.fastsetteperiode.grunnlag.Søknadstype;
import no.nav.foreldrepenger.regler.uttak.fastsetteperiode.grunnlag.Utbetalingsgrad;
import no.nav.foreldrepenger.regler.uttak.fastsetteperiode.grunnlag.UtsettelseÅrsak;
Expand Down Expand Up @@ -183,7 +182,7 @@ public void skal_ikke_ta_hensyn_til_startdato_hvis_bare_ett_arbeidsforhold() {
var søknad = søknad(Søknadstype.FØDSEL, utsettelseArbeid, fpPeriode).medDokumentasjon(dokumentasjon);
grunnlag.medArbeid(arbeid)
.medSøknad(søknad)
.medRettOgOmsorg(new RettOgOmsorg.Builder().medAleneomsorg(false).medFarHarRett(true).medSamtykke(true))
.medRettOgOmsorg(bareFarRett())
.medBehandling(farBehandling())
.medDatoer(new Datoer.Builder().medFødsel(fødsel));

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@
import no.nav.foreldrepenger.regler.uttak.fastsetteperiode.grunnlag.PeriodeVurderingType;
import no.nav.foreldrepenger.regler.uttak.fastsetteperiode.grunnlag.Perioderesultattype;
import no.nav.foreldrepenger.regler.uttak.fastsetteperiode.grunnlag.RegelGrunnlag;
import no.nav.foreldrepenger.regler.uttak.fastsetteperiode.grunnlag.RettOgOmsorg;
import no.nav.foreldrepenger.regler.uttak.fastsetteperiode.grunnlag.Søknad;
import no.nav.foreldrepenger.regler.uttak.fastsetteperiode.grunnlag.Søknadstype;
import no.nav.foreldrepenger.regler.uttak.fastsetteperiode.grunnlag.UtsettelseÅrsak;
Expand Down Expand Up @@ -98,7 +97,7 @@ public void kun_far_har_rett() {
var grunnlag = new RegelGrunnlag.Builder().medBehandling(farBehandling())
.medOpptjening(new Opptjening.Builder().medSkjæringstidspunkt(fødselsdato))
.medDatoer(new Datoer.Builder().medFødsel(fødselsdato))
.medRettOgOmsorg(new RettOgOmsorg.Builder().medFarHarRett(true))
.medRettOgOmsorg(bareFarRett())
.medSøknad(søknad)
.medInngangsvilkår(oppfyltAlleVilkår())
.medArbeid(new Arbeid.Builder().leggTilArbeidsforhold(new Arbeidsforhold(ARBEIDSFORHOLD)))
Expand All @@ -125,7 +124,7 @@ public void kun_far_har_rett() {
var grunnlag = new RegelGrunnlag.Builder().medBehandling(farBehandling())
.medOpptjening(new Opptjening.Builder().medSkjæringstidspunkt(fødselsdato))
.medDatoer(new Datoer.Builder().medFødsel(fødselsdato))
.medRettOgOmsorg(new RettOgOmsorg.Builder().medFarHarRett(true))
.medRettOgOmsorg(bareFarRett())
.medSøknad(søknad)
.medInngangsvilkår(oppfyltAlleVilkår())
.medArbeid(new Arbeid.Builder().leggTilArbeidsforhold(new Arbeidsforhold(ARBEIDSFORHOLD)))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -174,6 +174,10 @@ RettOgOmsorg.Builder beggeRett() {
return new RettOgOmsorg.Builder().medSamtykke(true).medMorHarRett(true).medFarHarRett(true);
}

RettOgOmsorg.Builder bareFarRett() {
return new RettOgOmsorg.Builder().medSamtykke(true).medMorHarRett(false).medFarHarRett(true);
}

OppgittPeriode utsettelsePeriode(LocalDate fom, LocalDate tom, UtsettelseÅrsak utsettelseÅrsak) {
return OppgittPeriode.forUtsettelse(fom, tom, PeriodeVurderingType.PERIODE_OK, utsettelseÅrsak, null, null);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ public class GraderingOrkestreringTest extends FastsettePerioderRegelOrkestrerin
.medKontoer(kontoer)
.medBehandling(farBehandling())
.medDatoer(new Datoer.Builder().medFødsel(LocalDate.of(2019, 1, 23)))
.medRettOgOmsorg(new RettOgOmsorg.Builder().medMorHarRett(false).medFarHarRett(true).medAleneomsorg(true))
.medRettOgOmsorg(new RettOgOmsorg.Builder().medMorHarRett(false).medAleneomsorg(true))
.medSøknad(new Søknad.Builder().medType(Søknadstype.FØDSEL)
.leggTilOppgittPeriode(søknadsperiode1)
.leggTilOppgittPeriode(søknadsperiode2))
Expand Down Expand Up @@ -311,7 +311,7 @@ public void utbetalingsgrad_og_trekkdager_skal_ta_utgangspunkt_samtidig_uttakspr
.medBehandling(new Behandling.Builder().medSøkerErMor(true))
.medDatoer(new Datoer.Builder().medOmsorgsovertakelse(søknadsperiode.getFom()))
.medAdopsjon(new Adopsjon.Builder().medAnkomstNorge(søknadsperiode.getFom()))
.medRettOgOmsorg(new RettOgOmsorg.Builder().medMorHarRett(true).medFarHarRett(true).medAleneomsorg(true))
.medRettOgOmsorg(new RettOgOmsorg.Builder().medAleneomsorg(true))
.medSøknad(new Søknad.Builder().medType(Søknadstype.ADOPSJON).leggTilOppgittPeriode(søknadsperiode))
.build();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -189,8 +189,7 @@ public void riktig_knekk_ved_tom_for_dager_ifm_helg2() {
var kontoer = new Kontoer.Builder().leggTilKonto(new Konto.Builder().medType(FORELDREPENGER).medTrekkdager(200));
grunnlag.medDatoer(new Datoer.Builder().medFødsel(fødselsdato))
.medBehandling(farBehandling())
.medRettOgOmsorg(
new RettOgOmsorg.Builder().medSamtykke(true).medFarHarRett(true).medMorHarRett(false).medAleneomsorg(false))
.medRettOgOmsorg(bareFarRett())
.medSøknad(new Søknad.Builder().medType(Søknadstype.FØDSEL)
.leggTilOppgittPeriode(oppgittPeriode(Stønadskontotype.FORELDREPENGER, LocalDate.of(2019, 3, 20),
LocalDate.of(2019, 12, 24))))
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package no.nav.foreldrepenger.regler.uttak.fastsetteperiode;

import static no.nav.foreldrepenger.regler.uttak.fastsetteperiode.grunnlag.PeriodeMedAvklartMorsAktivitet.Resultat.*;
import static no.nav.foreldrepenger.regler.uttak.fastsetteperiode.grunnlag.PeriodeMedAvklartMorsAktivitet.Resultat.I_AKTIVITET;
import static org.assertj.core.api.Assertions.assertThat;

import java.math.BigDecimal;
Expand All @@ -21,7 +21,6 @@
import no.nav.foreldrepenger.regler.uttak.fastsetteperiode.grunnlag.PeriodeMedAvklartMorsAktivitet;
import no.nav.foreldrepenger.regler.uttak.fastsetteperiode.grunnlag.Perioderesultattype;
import no.nav.foreldrepenger.regler.uttak.fastsetteperiode.grunnlag.RegelGrunnlag;
import no.nav.foreldrepenger.regler.uttak.fastsetteperiode.grunnlag.RettOgOmsorg;
import no.nav.foreldrepenger.regler.uttak.fastsetteperiode.grunnlag.Revurdering;
import no.nav.foreldrepenger.regler.uttak.fastsetteperiode.grunnlag.Søknad;
import no.nav.foreldrepenger.regler.uttak.fastsetteperiode.grunnlag.Søknadstype;
Expand Down Expand Up @@ -74,8 +73,8 @@ private Kontoer.Builder kontoer(Konto.Builder... konto) {
//manglende søkt blir opprettet før foreldrepenger-perioder
oppgittPeriode)
.medDokumentasjon(dokumentasjon);
RegelGrunnlag grunnlag = basicGrunnlagFar(fødselsdato).medRettOgOmsorg(
new RettOgOmsorg.Builder().medMorHarRett(false).medFarHarRett(true))
RegelGrunnlag grunnlag = basicGrunnlagFar(fødselsdato)
.medRettOgOmsorg(bareFarRett())
.medSøknad(søknad)
.medKontoer(kontoer(konto(Stønadskontotype.FORELDREPENGER, 1000)))
.build();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
import java.time.LocalDate;
import java.util.List;

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

import no.nav.foreldrepenger.regler.uttak.fastsetteperiode.grunnlag.AktivitetIdentifikator;
import no.nav.foreldrepenger.regler.uttak.fastsetteperiode.grunnlag.AnnenPart;
Expand All @@ -25,7 +25,9 @@
import no.nav.foreldrepenger.regler.uttak.fastsetteperiode.grunnlag.EndringAvStilling;
import no.nav.foreldrepenger.regler.uttak.fastsetteperiode.grunnlag.Konto;
import no.nav.foreldrepenger.regler.uttak.fastsetteperiode.grunnlag.Kontoer;
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.grunnlag.PeriodeMedAvklartMorsAktivitet;
import no.nav.foreldrepenger.regler.uttak.fastsetteperiode.grunnlag.PeriodeMedBarnInnlagt;
import no.nav.foreldrepenger.regler.uttak.fastsetteperiode.grunnlag.PeriodeMedHV;
import no.nav.foreldrepenger.regler.uttak.fastsetteperiode.grunnlag.PeriodeMedInnleggelse;
Expand Down Expand Up @@ -743,6 +745,43 @@ public void utsettelse_pga_tiltak_i_regi_av_nav_skal_innvilges_hvis_dokumentert(
assertThat(perioder.get(0).getUttakPeriode().getTrekkdager(ARBEIDSFORHOLD)).isEqualTo(Trekkdager.ZERO);
}

@Test
public void avslag_utsettelse_med_trekkdager_skal_knekkes_når_saldo_går_tom() {
var fødselsdato = LocalDate.of(2021, 1, 20);
//Skal få avslag pga mor ikke er i aktivitet
var fom = fødselsdato.plusWeeks(6);
var tom = fødselsdato.plusWeeks(9);
var dokumentasjon = new Dokumentasjon.Builder().leggTilPeriodeMedAvklartMorsAktivitet(
new PeriodeMedAvklartMorsAktivitet(fom, tom, PeriodeMedAvklartMorsAktivitet.Resultat.IKKE_I_AKTIVITET_DOKUMENTERT));
//Skal gå tom for dager
var utsettelse = OppgittPeriode.forUtsettelse(fom, tom, PeriodeVurderingType.PERIODE_OK,
UtsettelseÅrsak.ARBEID, fødselsdato, MorsAktivitet.ARBEID);
basicGrunnlagFar(fødselsdato)
.medDatoer(new Datoer.Builder().medFødsel(fødselsdato))
.medRettOgOmsorg(bareFarRett())
.medKontoer(new Kontoer.Builder().leggTilKonto(new Konto.Builder().medTrekkdager(10).medType(FORELDREPENGER)))
.medSøknad(new Søknad.Builder().medType(Søknadstype.FØDSEL)
.leggTilOppgittPeriode(utsettelse)
.medDokumentasjon(dokumentasjon));

var perioder = fastsettPerioder(grunnlag);

assertThat(perioder).hasSize(2);
assertThat(perioder.get(0).getUttakPeriode().getPerioderesultattype()).isEqualTo(Perioderesultattype.AVSLÅTT);
assertThat(perioder.get(0).getUttakPeriode().getFom()).isEqualTo(fom);
assertThat(perioder.get(0).getUttakPeriode().getTom()).isEqualTo(fom.plusWeeks(2).minusDays(1));
assertThat(perioder.get(0).getUttakPeriode().getUtbetalingsgrad(ARBEIDSFORHOLD)).isEqualTo(Utbetalingsgrad.ZERO);
assertThat(perioder.get(0).getUttakPeriode().getTrekkdager(ARBEIDSFORHOLD).merEnn0()).isTrue();

assertThat(perioder.get(1).getUttakPeriode().getPerioderesultattype()).isEqualTo(Perioderesultattype.AVSLÅTT);
assertThat(perioder.get(1).getUttakPeriode().getPeriodeResultatÅrsak())
.isEqualTo(IkkeOppfyltÅrsak.INGEN_STØNADSDAGER_IGJEN_FOR_AVSLÅTT_UTSETTELSE);
assertThat(perioder.get(1).getUttakPeriode().getFom()).isEqualTo(fom.plusWeeks(2));
assertThat(perioder.get(1).getUttakPeriode().getTom()).isEqualTo(tom);
assertThat(perioder.get(1).getUttakPeriode().getUtbetalingsgrad(ARBEIDSFORHOLD)).isEqualTo(Utbetalingsgrad.ZERO);
assertThat(perioder.get(1).getUttakPeriode().getTrekkdager(ARBEIDSFORHOLD)).isEqualTo(Trekkdager.ZERO);
}

private void assertDeTreFørstePeriodene(List<FastsettePeriodeResultat> resultat, LocalDate fødselsdato) {
//3 uker før fødsel - innvilges
var uttakPeriode = resultat.get(0).getUttakPeriode();
Expand Down

0 comments on commit 91d6474

Please sign in to comment.