Skip to content

Commit

Permalink
Legg til første fraværsdato som tilleggsinformasjon på utgåtte og fer…
Browse files Browse the repository at this point in the history
…dige oppgaver (#367)

### Bakgrunn
Arbeidsgivere trenger info om hvilken fraværsdato en oppgave er for slik at de finner frem til riktig inntektstmelding dersom de f.eks. skal gjøre endringer. Foreldrepenger var ikke interessert i å informere om første fraværsdato, men nå som vi har splittet blir det enklere i koden.

### Løsning
* Legg til første fraværsdato for alle lukkeårsaker
* Flytt kode for tilleggsinfo for opprettede forespørsler inn i ForespørselBehandlingTjeneste
  • Loading branch information
mortenoosvik authored Feb 5, 2025
1 parent de61a5f commit e516e9d
Show file tree
Hide file tree
Showing 6 changed files with 37 additions and 31 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -40,8 +40,7 @@ public interface ForespørselBehandlingTjeneste {
SaksnummerDto fagsakSaksnummer,
OrganisasjonsnummerDto organisasjonsnummer,
LocalDate skjæringstidspunkt,
LocalDate førsteUttaksdato,
String tilleggsinfo);
LocalDate førsteUttaksdato);

UUID opprettForespørselForArbeidsgiverInitiertIm(Ytelsetype ytelsetype,
AktørIdEntitet aktørId,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ class ForespørselBehandlingTjenesteImpl implements ForespørselBehandlingTjenes
var erArbeidsgiverInitiertInntektsmelding = foresporsel.getOppgaveId().isEmpty();
arbeidsgiverNotifikasjon.ferdigstillSak(foresporsel.getArbeidsgiverNotifikasjonSakId(), erArbeidsgiverInitiertInntektsmelding); // Oppdaterer status i arbeidsgiver-notifikasjon
arbeidsgiverNotifikasjon.oppdaterSakTilleggsinformasjon(foresporsel.getArbeidsgiverNotifikasjonSakId(),
ForespørselTekster.lagTilleggsInformasjon(årsak));
ForespørselTekster.lagTilleggsInformasjon(årsak, foresporsel.getSkjæringstidspunkt()));
forespørselTjeneste.ferdigstillForespørsel(foresporsel.getArbeidsgiverNotifikasjonSakId()); // Oppdaterer status i forespørsel
return foresporsel;
}
Expand Down Expand Up @@ -213,12 +213,13 @@ class ForespørselBehandlingTjenesteImpl implements ForespørselBehandlingTjenes
@Override
public void settForespørselTilUtgått(ForespørselEntitet eksisterendeForespørsel, boolean skalOppdatereArbeidsgiverNotifikasjon) {
if (skalOppdatereArbeidsgiverNotifikasjon) {
eksisterendeForespørsel.getOppgaveId().map( oppgaveId -> arbeidsgiverNotifikasjon.oppgaveUtgått(oppgaveId, OffsetDateTime.now()));
arbeidsgiverNotifikasjon.ferdigstillSak(eksisterendeForespørsel.getArbeidsgiverNotifikasjonSakId(), false); // Oppdaterer status i arbeidsgiver-notifikasjon
eksisterendeForespørsel.getOppgaveId().map(oppgaveId -> arbeidsgiverNotifikasjon.oppgaveUtgått(oppgaveId, OffsetDateTime.now()));
arbeidsgiverNotifikasjon.ferdigstillSak(eksisterendeForespørsel.getArbeidsgiverNotifikasjonSakId(),
false); // Oppdaterer status i arbeidsgiver-notifikasjon
}

arbeidsgiverNotifikasjon.oppdaterSakTilleggsinformasjon(eksisterendeForespørsel.getArbeidsgiverNotifikasjonSakId(),
ForespørselTekster.lagTilleggsInformasjon(LukkeÅrsak.UTGÅTT));
ForespørselTekster.lagTilleggsInformasjon(LukkeÅrsak.UTGÅTT, eksisterendeForespørsel.getSkjæringstidspunkt()));
forespørselTjeneste.settForespørselTilUtgått(eksisterendeForespørsel.getArbeidsgiverNotifikasjonSakId());

var msg = String.format("Setter forespørsel til utgått, orgnr: %s, stp: %s, saksnr: %s, ytelse: %s",
Expand Down Expand Up @@ -251,8 +252,7 @@ class ForespørselBehandlingTjenesteImpl implements ForespørselBehandlingTjenes
SaksnummerDto fagsakSaksnummer,
OrganisasjonsnummerDto organisasjonsnummer,
LocalDate skjæringstidspunkt,
LocalDate førsteUttaksdato,
String tilleggsinfo) {
LocalDate førsteUttaksdato) {
var msg = String.format("Oppretter forespørsel, orgnr: %s, stp: %s, saksnr: %s, ytelse: %s",
organisasjonsnummer,
skjæringstidspunkt,
Expand All @@ -277,9 +277,7 @@ class ForespørselBehandlingTjenesteImpl implements ForespørselBehandlingTjenes
ForespørselTekster.lagSaksTittel(person.mapFulltNavn(), person.fødselsdato()),
skjemaUri);

if (tilleggsinfo != null) {
arbeidsgiverNotifikasjon.oppdaterSakTilleggsinformasjon(arbeidsgiverNotifikasjonSakId, tilleggsinfo);
}
arbeidsgiverNotifikasjon.oppdaterSakTilleggsinformasjon(arbeidsgiverNotifikasjonSakId, ForespørselTekster.lagTilleggsInformasjonOrdinær(skjæringstidspunkt));

forespørselTjeneste.setArbeidsgiverNotifikasjonSakId(uuid, arbeidsgiverNotifikasjonSakId);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,18 +17,23 @@ class ForespørselTekster {
private static final String BESKJED_FRA_SAKSBEHANDLER_TEKST = "Vi har ennå ikke mottatt inntektsmelding for %s. For at vi skal kunne behandle søknaden om %s, må inntektsmeldingen sendes inn så raskt som mulig.";
private static final String VARSEL_FRA_SAKSBEHANDLER_TEKST = "%s - orgnr %s: Vi har ennå ikke mottatt inntektsmelding. For at vi skal kunne behandle søknaden om %s, må inntektsmeldingen sendes inn så raskt som mulig.";

private static final String TILLEGGSINFORMASJON_UTFØRT_EKSTERN = "Utført i Altinn eller i bedriftens lønns- og personalsystem";
private static final String TILLEGGSINFORMASJON_UTGÅTT = "Du trenger ikke lenger å sende denne inntektsmeldingen";
private static final String TILLEGGSINFORMASJON_UTFØRT_EKSTERN = "Utført i Altinn eller i bedriftens lønns- og personalsystem for første fraværsdag %s";
private static final String TILLEGGSINFORMASJON_UTGÅTT = "Du trenger ikke lenger sende inntektsmelding for første fraværsdag %s";
private static final String TILLEGGSINFORMASJON_ORDINÆR = "For første fraværsdag %s";

private ForespørselTekster() {
// Skjuler default
}

public static String lagTilleggsInformasjon(LukkeÅrsak årsak) {
public static String lagTilleggsInformasjonOrdinær(LocalDate førsteFraværsdag) {
return String.format(TILLEGGSINFORMASJON_ORDINÆR, førsteFraværsdag.format(DateTimeFormatter.ofPattern("dd.MM.yy")));
}

public static String lagTilleggsInformasjon(LukkeÅrsak årsak, LocalDate førsteFraværsdag) {
return switch (årsak) {
case EKSTERN_INNSENDING -> TILLEGGSINFORMASJON_UTFØRT_EKSTERN;
case UTGÅTT -> TILLEGGSINFORMASJON_UTGÅTT;
default -> null;
case EKSTERN_INNSENDING -> String.format(TILLEGGSINFORMASJON_UTFØRT_EKSTERN, førsteFraværsdag.format(DateTimeFormatter.ofPattern("dd.MM.yy")));
case UTGÅTT -> String.format(TILLEGGSINFORMASJON_UTGÅTT, førsteFraværsdag.format(DateTimeFormatter.ofPattern("dd.MM.yy")));
case ORDINÆR_INNSENDING -> lagTilleggsInformasjonOrdinær(førsteFraværsdag);
};
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,9 +58,8 @@ public void doTask(ProsessTaskData prosessTaskData) {
return;
}

String tilleggsinfo = String.format("For første fraværsdag %s", skjæringstidspunkt.format(DateTimeFormatter.ofPattern("dd.MM.yy")));
// K9 trenger ikke førsteUttaksdato, setter alltid null her
forespørselBehandlingTjeneste.opprettForespørsel(ytelsetype, aktørId, fagsakSaksnummer, organisasjonsnummer, skjæringstidspunkt, null, tilleggsinfo);
forespørselBehandlingTjeneste.opprettForespørsel(ytelsetype, aktørId, fagsakSaksnummer, organisasjonsnummer, skjæringstidspunkt, null);
MetrikkerTjeneste.loggForespørselOpprettet(ytelsetype);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import static org.junit.jupiter.api.Assertions.assertEquals;

import java.time.LocalDate;
import java.time.format.DateTimeFormatter;

import org.junit.jupiter.api.Test;

Expand All @@ -26,20 +27,28 @@ void lagOppgaveTekst() {

@Test
void lagTilleggsInformasjon_EksternInnsending() {
String statusTekst = ForespørselTekster.lagTilleggsInformasjon(LukkeÅrsak.EKSTERN_INNSENDING);
assertEquals("Utført i Altinn eller i bedriftens lønns- og personalsystem", statusTekst);
LocalDate førsteFraværsdag = LocalDate.now();
String statusTekst = ForespørselTekster.lagTilleggsInformasjon(LukkeÅrsak.EKSTERN_INNSENDING, førsteFraværsdag);
var forventetTekst = String.format("Utført i Altinn eller i bedriftens lønns- og personalsystem for første fraværsdag %s",
førsteFraværsdag.format(DateTimeFormatter.ofPattern("dd.MM.yy")));
assertEquals(forventetTekst, statusTekst);
}

@Test
void lagTilleggsInformasjon_OrdinærInnsending() {
String statusTekst = ForespørselTekster.lagTilleggsInformasjon(LukkeÅrsak.ORDINÆR_INNSENDING);
assertEquals(null, statusTekst);
LocalDate førsteFraværsdag = LocalDate.now();
String statusTekst = ForespørselTekster.lagTilleggsInformasjon(LukkeÅrsak.ORDINÆR_INNSENDING, førsteFraværsdag);
var forventetTekst = String.format("For første fraværsdag %s", førsteFraværsdag.format(DateTimeFormatter.ofPattern("dd.MM.yy")));
assertEquals(forventetTekst, statusTekst);
}

@Test
void lagTilleggsInformasjon_Utgått() {
String statusTekst = ForespørselTekster.lagTilleggsInformasjon(LukkeÅrsak.UTGÅTT);
assertEquals("Du trenger ikke lenger å sende denne inntektsmeldingen", statusTekst);
LocalDate førsteFraværsdag = LocalDate.now();
String statusTekst = ForespørselTekster.lagTilleggsInformasjon(LukkeÅrsak.UTGÅTT, førsteFraværsdag);
var forventetTekst = String.format("Du trenger ikke lenger sende inntektsmelding for første fraværsdag %s",
førsteFraværsdag.format(DateTimeFormatter.ofPattern("dd.MM.yy")));
assertEquals(forventetTekst, statusTekst);
}

@Test
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
import static org.mockito.Mockito.when;

import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.List;

import org.junit.jupiter.api.Test;
Expand Down Expand Up @@ -42,10 +41,7 @@ class OpprettForespørselTaskTest {

task.doTask(taskdata);

String tilleggsinfo = String.format("For første fraværsdag %s", skjæringstidspunkt.format(DateTimeFormatter.ofPattern("dd.MM.yy")));

verify(forespørselBehandlingTjeneste).opprettForespørsel(ytelsetype, aktørId, fagsakSaksnummer, organisasjon, skjæringstidspunkt,
null, tilleggsinfo);
verify(forespørselBehandlingTjeneste).opprettForespørsel(ytelsetype, aktørId, fagsakSaksnummer, organisasjon, skjæringstidspunkt, null);
}

@Test
Expand All @@ -64,6 +60,6 @@ class OpprettForespørselTaskTest {

task.doTask(taskdata);

verify(forespørselBehandlingTjeneste, times(0)).opprettForespørsel(any(), any(), any(), any(), any(), any(), any());
verify(forespørselBehandlingTjeneste, times(0)).opprettForespørsel(any(), any(), any(), any(), any(), any());
}
}

0 comments on commit e516e9d

Please sign in to comment.