Skip to content

Commit

Permalink
Gjer sjekken for kva vi anser som gjeldande § 14 a-vedtak meir "relaxed"
Browse files Browse the repository at this point in the history
  • Loading branch information
slovrid committed Feb 18, 2025
1 parent 7922f60 commit 04cb466
Show file tree
Hide file tree
Showing 2 changed files with 70 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -61,15 +61,19 @@ class Gjeldende14aVedtakService(
siste14aVedtakForBruker: Siste14aVedtakForBruker,
startDatoInnevarendeOppfolgingsperiode: ZonedDateTime
): Boolean {
val erVedtaketFattetIInnevarendeOppfolgingsperiode =
siste14aVedtakForBruker.fattetDato.isAfter(startDatoInnevarendeOppfolgingsperiode)
// 2025-02-18
// Vi har oppdaget at vedtak fattet i Arena får "fattetDato" lik midnatt den dagen vedtaket ble fattet.
// Derfor har vi valgt å innfør en "grace periode" på 4 døgn. Dvs. dersom vedtaket ble fattet etter
// "oppfølgingsperiode startdato - 4 døgn", så anser vi det som gjeldende.
val erVedtaketFattetIInnevarendeOppfolgingsperiodeMedGracePeriodePa4Dogn =
siste14aVedtakForBruker.fattetDato.isAfter(startDatoInnevarendeOppfolgingsperiode.minusDays(4))
val erVedtaketFattetForLanseringsdatoForVeilarboppfolging = siste14aVedtakForBruker.fattetDato
.isBefore(LANSERINGSDATO_VEILARBOPPFOLGING_OPPFOLGINGSPERIODE)
val erStartdatoForOppfolgingsperiodeLikLanseringsdatoForVeilarboppfolging =
!startDatoInnevarendeOppfolgingsperiode
.isAfter(LANSERINGSDATO_VEILARBOPPFOLGING_OPPFOLGINGSPERIODE)

return erVedtaketFattetIInnevarendeOppfolgingsperiode ||
return erVedtaketFattetIInnevarendeOppfolgingsperiodeMedGracePeriodePa4Dogn ||
(erVedtaketFattetForLanseringsdatoForVeilarboppfolging
&& erStartdatoForOppfolgingsperiodeLikLanseringsdatoForVeilarboppfolging)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -302,6 +302,69 @@ public void skal_ikke_flette_inn_gjeldende_14a_vedtak_for_flere_brukere_med_ulik
assertThat(oppfolgingsbruker2.getGjeldendeVedtak14a()).isNull();
}

@Test
public void skal_flette_inn_gjeldende_14a_vedtak_når_personen_har_vedtak_og_vedtak_fattet_dato_er_innenfor_oppfølging_startdato_minus_4_døgn() {
GjeldendeIdenter ident1 = genererGjeldendeIdent();
ZonedDateTime startdatoForOppfolging = ZonedDateTime.parse("2020-11-13T10:00:00+02:00");

OppfolgingsBruker oppfolgingsbruker = new OppfolgingsBruker()
.setFnr(ident1.getFnr().get())
.setAktoer_id(ident1.getAktorId().get());

Siste14aVedtakForBruker siste14AVedtakForBruker = Siste14aVedtakForBruker.builder()
.aktorId(ident1.getAktorId())
.innsatsgruppe(Innsatsgruppe.STANDARD_INNSATS)
.hovedmal(Hovedmal.BEHOLDE_ARBEID)
.fattetDato(startdatoForOppfolging.minusDays(3).minusHours(23).minusMinutes(59))
.build();

Map<AktorId, Siste14aVedtakForBruker> aktorIdSiste14aVedtakMap = Map.of(ident1.getAktorId(), siste14AVedtakForBruker);


Map<AktorId, Optional<ZonedDateTime>> aktorIdStartDatoForOppfolgingMap =
Map.of(ident1.getAktorId(), Optional.of(startdatoForOppfolging));

when(siste14aVedtakRepository.hentSiste14aVedtakForBrukere(any())).thenReturn(aktorIdSiste14aVedtakMap);
when(oppfolgingRepositoryV2.hentStartDatoForOppfolging(any())).thenReturn(aktorIdStartDatoForOppfolgingMap);

postgresOpensearchMapper.flettInnGjeldende14aVedtak(List.of(oppfolgingsbruker));

assertThat(oppfolgingsbruker.getGjeldendeVedtak14a()).isNotNull();
assertThat(oppfolgingsbruker.getGjeldendeVedtak14a().fattetDato()).isEqualTo(siste14AVedtakForBruker.getFattetDato());
assertThat(oppfolgingsbruker.getGjeldendeVedtak14a().innsatsgruppe()).isEqualTo(siste14AVedtakForBruker.getInnsatsgruppe());
assertThat(oppfolgingsbruker.getGjeldendeVedtak14a().hovedmal()).isEqualTo(siste14AVedtakForBruker.getHovedmal());
}

@Test
public void skal_ikke_flette_inn_gjeldende_14a_vedtak_når_personen_har_vedtak_og_vedtak_fattet_dato_er_utenfor_oppfølging_startdato_minus_4_døgn() {
GjeldendeIdenter ident1 = genererGjeldendeIdent();
ZonedDateTime startdatoForOppfolging = ZonedDateTime.parse("2020-11-13T10:00:00+02:00");

OppfolgingsBruker oppfolgingsbruker = new OppfolgingsBruker()
.setFnr(ident1.getFnr().get())
.setAktoer_id(ident1.getAktorId().get());

Siste14aVedtakForBruker siste14AVedtakForBruker = Siste14aVedtakForBruker.builder()
.aktorId(ident1.getAktorId())
.innsatsgruppe(Innsatsgruppe.STANDARD_INNSATS)
.hovedmal(Hovedmal.BEHOLDE_ARBEID)
.fattetDato(startdatoForOppfolging.minusDays(3))
.build();

Map<AktorId, Siste14aVedtakForBruker> aktorIdSiste14aVedtakMap = Map.of(ident1.getAktorId(), siste14AVedtakForBruker);


Map<AktorId, Optional<ZonedDateTime>> aktorIdStartDatoForOppfolgingMap =
Map.of(ident1.getAktorId(), Optional.of(startdatoForOppfolging));

when(siste14aVedtakRepository.hentSiste14aVedtakForBrukere(any())).thenReturn(aktorIdSiste14aVedtakMap);
when(oppfolgingRepositoryV2.hentStartDatoForOppfolging(any())).thenReturn(aktorIdStartDatoForOppfolgingMap);

postgresOpensearchMapper.flettInnGjeldende14aVedtak(List.of(oppfolgingsbruker));

assertThat(oppfolgingsbruker.getGjeldendeVedtak14a()).isNull();
}

private GjeldendeIdenter genererGjeldendeIdent() {
return GjeldendeIdenter.builder().fnr(randomFnr()).aktorId(randomAktorId()).build();
}
Expand Down

0 comments on commit 04cb466

Please sign in to comment.