Skip to content

Commit

Permalink
FAGSYSTEM-199427 fikset feil opprettning av msp ved fødselshendelse o…
Browse files Browse the repository at this point in the history
…g fritt uttak (#175)
  • Loading branch information
palfi authored Jan 3, 2022
1 parent ef9c4f5 commit 840640d
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ private static List<OppgittPeriode> fellesFilter(RegelGrunnlag grunnlag, List<Op
var stønadskontotype = harForeldrepengerKonto ? Stønadskontotype.FORELDREPENGER : Stønadskontotype.MØDREKVOTE;
return finnManglendeMellomliggendePerioder(fellesUttakBeggeParter, familiehendelse, stønadskontotype)
.stream()
.flatMap(p -> split(tomTidsperiodeForbeholdtMor, p))
.flatMap(p -> split(tomTidsperiodeForbeholdtMor.plusDays(1), p))
.filter(p -> periodeLiggerITidsrommetForbeholdtMor(grunnlag, konfigurasjon, p))
.sorted(Comparator.comparing(OppgittPeriode::getFom))
.collect(Collectors.toList());
Expand Down Expand Up @@ -141,15 +141,17 @@ private static List<OppgittPeriode> finnMsp(LocalDate familieHendelse,
}

private static Stream<OppgittPeriode> split(LocalDate dato, OppgittPeriode periode) {
if (periode.overlapper(dato) && !periode.getFom().isEqual(dato) && !periode.getTom().isEqual(dato)) {
return Stream.of(periode.kopiMedNyPeriode(periode.getFom(), dato),
periode.kopiMedNyPeriode(dato.plusDays(1), periode.getTom()));
if (periode.getFom().isEqual(dato)) {
return Stream.of(periode);
}

if (periode.overlapper(dato)) {
return Stream.of(periode.kopiMedNyPeriode(periode.getFom(), dato.minusDays(1)),
periode.kopiMedNyPeriode(dato, periode.getTom()));
}
return Stream.of(periode);
}



private static List<LukketPeriode> splitPåTidsperiodeForbeholdtMor(LocalDate familiehendelse,
LukketPeriode periode,
Konfigurasjon konfigurasjon) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
import java.time.LocalDate;
import java.util.List;

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

import no.nav.foreldrepenger.regler.uttak.fastsetteperiode.grunnlag.Adopsjon;
Expand Down Expand Up @@ -358,6 +359,31 @@ void manglende_fpff_skal_ikke_slutte_i_helg() {
assertThat(msp.get(0).getTom()).isEqualTo(LocalDate.of(2021, 6, 25));
}

@Test
@DisplayName("Skal lage manglende søkt periode for den ene dagen som ligger innen første 6 ukene.")
void ikke_msp_hvis_fødsel_etter_termin_med_påfølgende_fritt_uttak() {
//Fra prod saksnummer 152085835
var termin = LocalDate.of(2021, 12, 15);
var fødselsdato = LocalDate.of(2021, 12, 16);

var grunnlag = grunnlagMedKontoer()
.datoer(new Datoer.Builder().fødsel(fødselsdato).termin(termin))
.søknad(new Søknad.Builder()
.oppgittPeriode(oppgittPeriode(FELLESPERIODE, LocalDate.of(2021, 11, 24), LocalDate.of(2021, 11, 24)))
.oppgittPeriode(oppgittPeriode(FORELDREPENGER_FØR_FØDSEL, LocalDate.of(2021, 11, 25), LocalDate.of(2021, 12, 15)))
.oppgittPeriode(oppgittPeriode(MØDREKVOTE, LocalDate.of(2021, 12, 16), LocalDate.of(2022, 1, 25)))
//Opprinnelig søkt fritt uttak etter uke 6
.oppgittPeriode(oppgittPeriode(MØDREKVOTE, LocalDate.of(2022, 2, 16), LocalDate.of(2022, 2, 16)))
)
.build();

var msp = finnManglendeSøktePerioder(grunnlag);

assertThat(msp).hasSize(1);
assertThat(msp.get(0).getFom()).isEqualTo(LocalDate.of(2022, 1, 26));
assertThat(msp.get(0).getTom()).isEqualTo(LocalDate.of(2022, 1, 26));
}

private List<OppgittPeriode> finnManglendeSøktePerioder(RegelGrunnlag grunnlag) {
return ManglendeSøktePerioderTjeneste.finnManglendeSøktePerioder(grunnlag, StandardKonfigurasjon.KONFIGURASJON);
}
Expand Down

0 comments on commit 840640d

Please sign in to comment.