From 66134831dfd125e5958198a2aaa5bc19aef6d3da Mon Sep 17 00:00:00 2001 From: Mikael Bjerga <6940327+bjerga@users.noreply.github.com> Date: Mon, 4 Nov 2024 14:49:06 +0100 Subject: [PATCH] =?UTF-8?q?Vis=20sykmeldingsperioder=20som=20tilleggsinfo?= =?UTF-8?q?=20p=C3=A5=20sak=20(#746)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../felles/utils/DateUtils.kt | 5 ++ .../ForespoerselMottattRiver.kt | 2 + .../integrasjonstest/ForespoerselMottattIT.kt | 5 +- .../joark/dokument/PdfDokument.kt | 52 ++++++++++--------- .../inntektsmelding/joark/dokument/Utils.kt | 9 ++-- .../ArbeidsgiverNotifikasjonKlientUtils.kt | 27 +++++----- .../HentDataTilSakOgOppgaveService.kt | 15 +++--- .../OpprettForespoerselSakOgOppgaveRiver.kt | 7 ++- .../river/OpprettSelvbestemtSakRiver.kt | 1 + ...ArbeidsgiverNotifikasjonKlientUtilsTest.kt | 5 +- .../HentDataTilSakOgOppgaveServiceTest.kt | 10 ++-- ...pprettForespoerselSakOgOppgaveRiverTest.kt | 11 ++-- .../river/OpprettSelvbestemtSakRiverTest.kt | 1 + 13 files changed, 77 insertions(+), 73 deletions(-) diff --git a/felles/src/main/kotlin/no/nav/helsearbeidsgiver/felles/utils/DateUtils.kt b/felles/src/main/kotlin/no/nav/helsearbeidsgiver/felles/utils/DateUtils.kt index db856f5de..1e0b8f5a5 100644 --- a/felles/src/main/kotlin/no/nav/helsearbeidsgiver/felles/utils/DateUtils.kt +++ b/felles/src/main/kotlin/no/nav/helsearbeidsgiver/felles/utils/DateUtils.kt @@ -2,6 +2,11 @@ package no.nav.helsearbeidsgiver.felles.utils import java.time.LocalDate import java.time.YearMonth +import java.time.format.DateTimeFormatter + +private val norskDatoFormat = DateTimeFormatter.ofPattern("dd.MM.yyyy") + +fun LocalDate.tilNorskFormat(): String = format(norskDatoFormat) fun LocalDate.toYearMonth(): YearMonth = YearMonth.of(year, month) diff --git a/forespoersel-mottatt/src/main/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/forespoerselmottatt/ForespoerselMottattRiver.kt b/forespoersel-mottatt/src/main/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/forespoerselmottatt/ForespoerselMottattRiver.kt index 0d74897be..c3c1ed8c5 100644 --- a/forespoersel-mottatt/src/main/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/forespoerselmottatt/ForespoerselMottattRiver.kt +++ b/forespoersel-mottatt/src/main/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/forespoerselmottatt/ForespoerselMottattRiver.kt @@ -58,7 +58,9 @@ class ForespoerselMottattRiver : PriObjectRiver() { Key.DATA to mapOf( Key.FORESPOERSEL_ID to forespoerselId.toJson(), + // TODO kan fjernes etter overgangsfase Key.ORGNRUNDERENHET to orgnr.toJson(), + // TODO kan fjernes etter overgangsfase Key.FNR to fnr.toJson(), Key.SKAL_HA_PAAMINNELSE to skalHaPaaminnelse.toJson(Boolean.serializer()), Key.FORESPOERSEL to forespoerselFraBro.toForespoersel().toJson(Forespoersel.serializer()), diff --git a/integrasjonstest/src/test/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/integrasjonstest/ForespoerselMottattIT.kt b/integrasjonstest/src/test/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/integrasjonstest/ForespoerselMottattIT.kt index 491cb77aa..1133e008d 100644 --- a/integrasjonstest/src/test/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/integrasjonstest/ForespoerselMottattIT.kt +++ b/integrasjonstest/src/test/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/integrasjonstest/ForespoerselMottattIT.kt @@ -4,6 +4,7 @@ import io.kotest.matchers.nulls.shouldNotBeNull import io.kotest.matchers.shouldBe import io.mockk.coEvery import kotlinx.serialization.builtins.serializer +import no.nav.helsearbeidsgiver.domene.inntektsmelding.v1.til import no.nav.helsearbeidsgiver.felles.BehovType import no.nav.helsearbeidsgiver.felles.EventName import no.nav.helsearbeidsgiver.felles.Key @@ -21,6 +22,8 @@ import no.nav.helsearbeidsgiver.utils.json.fromJson import no.nav.helsearbeidsgiver.utils.json.serializer.UuidSerializer import no.nav.helsearbeidsgiver.utils.json.serializer.set import no.nav.helsearbeidsgiver.utils.json.toJson +import no.nav.helsearbeidsgiver.utils.test.date.januar +import no.nav.helsearbeidsgiver.utils.test.date.mars import no.nav.helsearbeidsgiver.utils.test.wrapper.genererGyldig import no.nav.helsearbeidsgiver.utils.wrapper.Fnr import no.nav.helsearbeidsgiver.utils.wrapper.Orgnr @@ -52,7 +55,7 @@ class ForespoerselMottattIT : EndToEndTest() { fnr = Mock.fnr, forespoerselId = Mock.forespoerselId, vedtaksperiodeId = UUID.randomUUID(), - sykmeldingsperioder = emptyList(), + sykmeldingsperioder = listOf(23.januar til 15.mars), egenmeldingsperioder = emptyList(), bestemmendeFravaersdager = emptyMap(), forespurtData = mockForespurtData(), diff --git a/joark/src/main/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/joark/dokument/PdfDokument.kt b/joark/src/main/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/joark/dokument/PdfDokument.kt index 7b85ae476..e1b8ea4c6 100644 --- a/joark/src/main/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/joark/dokument/PdfDokument.kt +++ b/joark/src/main/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/joark/dokument/PdfDokument.kt @@ -17,13 +17,14 @@ import no.nav.helsearbeidsgiver.domene.inntektsmelding.v1.Permittering import no.nav.helsearbeidsgiver.domene.inntektsmelding.v1.Sykefravaer import no.nav.helsearbeidsgiver.domene.inntektsmelding.v1.Tariffendring import no.nav.helsearbeidsgiver.domene.inntektsmelding.v1.VarigLoennsendring +import no.nav.helsearbeidsgiver.felles.utils.tilNorskFormat private const val FORKLARING_ENDRING = "Forklaring for endring" class PdfDokument( val inntektsmelding: Inntektsmelding, ) { - private val pdf = PdfBuilder(bodySize = 20, topText = "Innsendt: ${inntektsmelding.mottatt.toNorsk()}") // Setter skriftstørrelsen på labels og text + private val pdf = PdfBuilder(bodySize = 20, topText = "Innsendt: ${inntektsmelding.mottatt.tilNorskFormat()}") // Setter skriftstørrelsen på labels og text private var y = 0 private val kolonneEn = 0 private val kolonneTo = 420 @@ -158,7 +159,7 @@ class PdfDokument( val seksjonStartY = y // Husk når denne seksjonen starter i y-aksen // --- Kolonnen til venstre ------------------------------------------------- - addLabel("Bestemmende fraværsdag (skjæringstidpunkt)", inntektsmelding.inntekt?.inntektsdato?.toNorsk(), kolonneEn) + addLabel("Bestemmende fraværsdag (skjæringstidpunkt)", inntektsmelding.inntekt?.inntektsdato?.tilNorskFormat(), kolonneEn) addLabel("Arbeidsgiverperiode", x = kolonneEn) addPerioder(kolonneEn, inntektsmelding.agp?.perioder.orEmpty()) @@ -185,14 +186,17 @@ class PdfDokument( perioder: List, ) { perioder.forEach { - addLabel("Fra", it.fom.toNorsk(), x, linefeed = false) - addLabel("Til", it.tom.toNorsk(), x + 200) + addLabel("Fra", it.fom.tilNorskFormat(), x, linefeed = false) + addLabel("Til", it.tom.tilNorskFormat(), x + 200) } } private fun addInntekt() { addSection("Beregnet månedslønn") - addLabel("Registrert inntekt (per ${inntektsmelding.inntekt?.inntektsdato?.toNorsk()})", "${inntektsmelding.inntekt?.beloep?.toNorsk()} kr/måned") + addLabel( + "Registrert inntekt (per ${inntektsmelding.inntekt?.inntektsdato?.tilNorskFormat()})", + "${inntektsmelding.inntekt?.beloep?.tilNorskFormat()} kr/måned", + ) val endringAarsak = inntektsmelding.inntekt?.endringAarsak when (endringAarsak) { null -> return // trenger ikke sende inn årsak... @@ -245,29 +249,29 @@ class PdfDokument( private fun addTariffendring(tariffendring: Tariffendring) { addLabel(FORKLARING_ENDRING, "Tariffendring") - addLabel("Gjelder fra", tariffendring.gjelderFra.toNorsk(), linefeed = false) - addLabel("Ble kjent", tariffendring.bleKjent.toNorsk(), kolonneTo) + addLabel("Gjelder fra", tariffendring.gjelderFra.tilNorskFormat(), linefeed = false) + addLabel("Ble kjent", tariffendring.bleKjent.tilNorskFormat(), kolonneTo) } private fun addVarigLonnsendring(varigLoennsendring: VarigLoennsendring) { addLabel(FORKLARING_ENDRING, "Varig lønnsendring") - addLabel("Gjelder fra", varigLoennsendring.gjelderFra.toNorsk()) + addLabel("Gjelder fra", varigLoennsendring.gjelderFra.tilNorskFormat()) } private fun addNyStilling(nyStilling: NyStilling) { addLabel(FORKLARING_ENDRING, "Ny stilling", linefeed = false) - addLabel("Gjelder fra", nyStilling.gjelderFra.toNorsk(), kolonneTo) + addLabel("Gjelder fra", nyStilling.gjelderFra.tilNorskFormat(), kolonneTo) } private fun addNyStillingsprosent(nyStillingsprosent: NyStillingsprosent) { addLabel(FORKLARING_ENDRING, "Ny stillingsprosent", linefeed = false) - addLabel("Gjelder fra", nyStillingsprosent.gjelderFra.toNorsk(), kolonneTo) + addLabel("Gjelder fra", nyStillingsprosent.gjelderFra.tilNorskFormat(), kolonneTo) } private fun addBonus() { addLabel(FORKLARING_ENDRING, "Bonus") - // addLabel("Estimert årlig bonus", årligBonus.toNorsk()) - // addLabel("Dato siste bonus", datoBonus.toNorsk()) + // addLabel("Estimert årlig bonus", årligBonus.tilNorskFormat()) + // addLabel("Dato siste bonus", datoBonus.tilNorskFormat()) } private fun addFerietrekk() { @@ -280,28 +284,28 @@ class PdfDokument( addSection("Refusjon") - addLabel("Betaler arbeidsgiver full lønn til arbeidstaker i arbeidsgiverperioden?", (redusertLoennIAgp == null).toNorsk()) + addLabel("Betaler arbeidsgiver full lønn til arbeidstaker i arbeidsgiverperioden?", (redusertLoennIAgp == null).tilNorskFormat()) if (redusertLoennIAgp != null) { // Redusert lønn i AGP - to ekstra spørsmål addLabel("Begrunnelse", redusertLoennIAgp.begrunnelse.tilTekst()) - addLabel("Utbetalt under arbeidsgiverperiode", redusertLoennIAgp.beloep.toNorsk() + " kr") + addLabel("Utbetalt under arbeidsgiverperiode", redusertLoennIAgp.beloep.tilNorskFormat() + " kr") } - addLabel("Betaler arbeidsgiver lønn under hele eller deler av sykefraværet?", (refusjon != null).toNorsk()) + addLabel("Betaler arbeidsgiver lønn under hele eller deler av sykefraværet?", (refusjon != null).tilNorskFormat()) if (refusjon != null) { // Ja - tre ekstra spørsmål - addLabel("Refusjonsbeløp pr måned", refusjon.beloepPerMaaned.toNorsk() + " kr/måned") + addLabel("Refusjonsbeløp pr måned", refusjon.beloepPerMaaned.tilNorskFormat() + " kr/måned") val sluttdato = refusjon.sluttdato - addLabel("Opphører refusjonskravet i perioden", (sluttdato != null).toNorsk()) + addLabel("Opphører refusjonskravet i perioden", (sluttdato != null).tilNorskFormat()) if (sluttdato != null) { - addLabel("Siste dag dere krever refusjon for", sluttdato.toNorsk()) + addLabel("Siste dag dere krever refusjon for", sluttdato.tilNorskFormat()) } - addLabel("Endringer i refusjon i perioden", refusjon.endringer.isNotEmpty().toNorsk()) + addLabel("Endringer i refusjon i perioden", refusjon.endringer.isNotEmpty().tilNorskFormat()) refusjon.endringer.forEach { - addLabel("Beløp", it.beloep.toNorsk(), kolonneEn, linefeed = false) - addLabel("Dato", it.startdato.toNorsk(), kolonneTo) + addLabel("Beløp", it.beloep.tilNorskFormat(), kolonneEn, linefeed = false) + addLabel("Dato", it.startdato.tilNorskFormat(), kolonneTo) } } } @@ -316,15 +320,15 @@ class PdfDokument( addLabel("Verdi naturalytelse - kr/måned", x = naturalytelse3) inntektsmelding.inntekt?.naturalytelser?.forEach { addText(it.naturalytelse.name, naturalytelse1, linefeed = false) - addText(it.sluttdato.toNorsk(), naturalytelse2, linefeed = false) - addText(it.verdiBeloep.toNorsk(), naturalytelse3) + addText(it.sluttdato.tilNorskFormat(), naturalytelse2, linefeed = false) + addText(it.verdiBeloep.tilNorskFormat(), naturalytelse3) } moveCursorBy(pdf.bodySize * 2) } } private fun addTidspunkt() { - pdf.addItalics("Innsendt: ${inntektsmelding.mottatt.toNorsk()}", kolonneEn, y) + pdf.addItalics("Innsendt: ${inntektsmelding.mottatt.tilNorskFormat()}", kolonneEn, y) moveCursorBy(pdf.bodySize) } } diff --git a/joark/src/main/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/joark/dokument/Utils.kt b/joark/src/main/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/joark/dokument/Utils.kt index fbf72c070..73f0fac13 100644 --- a/joark/src/main/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/joark/dokument/Utils.kt +++ b/joark/src/main/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/joark/dokument/Utils.kt @@ -2,20 +2,17 @@ package no.nav.helsearbeidsgiver.inntektsmelding.joark.dokument import no.nav.helsearbeidsgiver.domene.inntektsmelding.v1.RedusertLoennIAgp import java.text.DecimalFormat -import java.time.LocalDate import java.time.OffsetDateTime import java.time.format.DateTimeFormatter -fun LocalDate.toNorsk(): String = this.format(DateTimeFormatter.ofPattern("dd.MM.yyyy")) +fun OffsetDateTime.tilNorskFormat(): String = this.format(DateTimeFormatter.ofPattern("dd.MM.yyyy ' kl. ' HH.mm.ss")) -fun OffsetDateTime.toNorsk(): String = this.format(DateTimeFormatter.ofPattern("dd.MM.yyyy ' kl. ' HH.mm.ss")) - -fun Double.toNorsk(): String { +fun Double.tilNorskFormat(): String { val format = DecimalFormat("#,###.##") return format.format(this) } -fun Boolean.toNorsk(): String = +fun Boolean.tilNorskFormat(): String = if (this) { "Ja" } else { diff --git a/notifikasjon/src/main/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/notifikasjon/ArbeidsgiverNotifikasjonKlientUtils.kt b/notifikasjon/src/main/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/notifikasjon/ArbeidsgiverNotifikasjonKlientUtils.kt index 810e95dca..b601c6061 100644 --- a/notifikasjon/src/main/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/notifikasjon/ArbeidsgiverNotifikasjonKlientUtils.kt +++ b/notifikasjon/src/main/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/notifikasjon/ArbeidsgiverNotifikasjonKlientUtils.kt @@ -8,12 +8,11 @@ import no.nav.helsearbeidsgiver.arbeidsgivernotifikasjon.SakEllerOppgaveFinnesIk import no.nav.helsearbeidsgiver.arbeidsgivernotifkasjon.graphql.generated.enums.SaksStatus import no.nav.helsearbeidsgiver.domene.inntektsmelding.v1.Periode import no.nav.helsearbeidsgiver.felles.domene.Person +import no.nav.helsearbeidsgiver.felles.utils.tilNorskFormat import no.nav.helsearbeidsgiver.utils.log.logger import no.nav.helsearbeidsgiver.utils.log.sikkerLogger import no.nav.helsearbeidsgiver.utils.wrapper.Fnr import no.nav.helsearbeidsgiver.utils.wrapper.Orgnr -import java.time.LocalDate -import java.time.format.DateTimeFormatter import java.util.UUID import kotlin.time.Duration.Companion.days @@ -52,6 +51,8 @@ object NotifikasjonTekst { fun sakTittel(sykmeldt: Person): String = "Inntektsmelding for ${sykmeldt.navn}: f. ${sykmeldt.fnr.lesFoedselsdato()}" + fun sakTilleggsinfo(sykmeldingsperioder: List): String = "Sykmeldingsperiode ${sykmeldingsperioder.tilString()}" + fun oppgaveInnhold( orgnr: Orgnr, orgNavn: String, @@ -67,10 +68,10 @@ object NotifikasjonTekst { fun paaminnelseInnhold( orgnr: Orgnr, orgNavn: String, - sykmeldingsPerioder: List, + sykmeldingsperioder: List, ): String = listOf( - "Nav venter fortsatt på inntektsmelding for en av deres ansatte${sykmeldingsPerioder.tilString() ?: ""}.", + "Nav venter fortsatt på inntektsmelding for en av deres ansatte for periode: ${sykmeldingsperioder.tilString()}.", "Vi trenger inntektsmeldingen så snart som mulig,", "ellers kan vi ikke behandle søknaden om sykepenger.", "Logg inn på Min side – arbeidsgiver på Nav for å finne ut hvilken inntektsmelding det gjelder.", @@ -83,6 +84,7 @@ fun ArbeidsgiverNotifikasjonKlient.opprettSak( inntektsmeldingTypeId: UUID, orgnr: Orgnr, sykmeldt: Person, + sykmeldingsperioder: List, initiellStatus: SaksStatus = SaksStatus.UNDER_BEHANDLING, ): String { val statusTekst = @@ -100,6 +102,7 @@ fun ArbeidsgiverNotifikasjonKlient.opprettSak( lenke = lenke, tittel = NotifikasjonTekst.sakTittel(sykmeldt), statusTekst = statusTekst, + tilleggsinfo = NotifikasjonTekst.sakTilleggsinfo(sykmeldingsperioder), initiellStatus = initiellStatus, hardDeleteOm = sakLevetid, ) @@ -255,6 +258,13 @@ fun ArbeidsgiverNotifikasjonKlient.settOppgaveUtgaatt( } } +fun List.tilString(): String = + if (size < 2) { + "${first().fom.tilNorskFormat()} - ${first().tom.tilNorskFormat()}" + } else { + "${first().fom.tilNorskFormat()} - [...] - ${last().tom.tilNorskFormat()}" + } + // Støtter d-nummer private fun Fnr.lesFoedselsdato(): String { val foersteSiffer = verdi.first().digitToInt() @@ -265,15 +275,6 @@ private fun Fnr.lesFoedselsdato(): String { } } -fun LocalDate.tilString(): String = format(DateTimeFormatter.ofPattern("dd.MM.yyyy")) - -fun List.tilString(): String? = - when (size) { - 0 -> null - 1 -> " for periode: ${first().fom.tilString()} - ${first().tom.tilString()}" - else -> " for periode: ${first().fom.tilString()} - [...] - ${last().tom.tilString()}" - } - private fun loggWarnIkkeFunnetEllerThrow( melding: String, error: Throwable, diff --git a/notifikasjon/src/main/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/notifikasjon/HentDataTilSakOgOppgaveService.kt b/notifikasjon/src/main/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/notifikasjon/HentDataTilSakOgOppgaveService.kt index 70adc53a1..7ce89198d 100644 --- a/notifikasjon/src/main/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/notifikasjon/HentDataTilSakOgOppgaveService.kt +++ b/notifikasjon/src/main/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/notifikasjon/HentDataTilSakOgOppgaveService.kt @@ -27,8 +27,6 @@ import java.util.UUID data class Steg0( val transaksjonId: UUID, val forespoerselId: UUID, - val orgnr: Orgnr, - val fnr: Fnr, val skalHaPaaminnelse: Boolean, val forespoersel: Forespoersel, ) @@ -53,8 +51,6 @@ class HentDataTilSakOgOppgaveService( Steg0( transaksjonId = Key.UUID.les(UuidSerializer, melding), forespoerselId = Key.FORESPOERSEL_ID.les(UuidSerializer, melding), - orgnr = Key.ORGNRUNDERENHET.les(Orgnr.serializer(), melding), - fnr = Key.FNR.les(Fnr.serializer(), melding), skalHaPaaminnelse = Key.SKAL_HA_PAAMINNELSE.les(Boolean.serializer(), melding), forespoersel = Key.FORESPOERSEL.les(Forespoersel.serializer(), melding), ) @@ -93,7 +89,7 @@ class HentDataTilSakOgOppgaveService( Key.DATA to data .plus( - Key.ORGNR_UNDERENHETER to setOf(steg0.orgnr).toJson(Orgnr.serializer()), + Key.ORGNR_UNDERENHETER to setOf(steg0.forespoersel.orgnr).toJson(String.serializer()), ).toJson(), ) } @@ -111,7 +107,7 @@ class HentDataTilSakOgOppgaveService( Key.DATA to data .plus( - Key.FNR_LISTE to setOf(steg0.fnr).toJson(Fnr.serializer()), + Key.FNR_LISTE to setOf(steg0.forespoersel.fnr).toJson(String.serializer()), ).toJson(), ) } @@ -127,8 +123,8 @@ class HentDataTilSakOgOppgaveService( sikkerLogger.info(it) } - val orgNavn = steg1.orgnrMedNavn[steg0.orgnr] ?: ORG_NAVN_DEFAULT - val sykmeldt = steg2.personer[steg0.fnr] ?: personDefault(steg0.fnr) + val orgNavn = steg1.orgnrMedNavn[steg0.forespoersel.orgnr.let(::Orgnr)] ?: ORG_NAVN_DEFAULT + val sykmeldt = steg2.personer[steg0.forespoersel.fnr.let(::Fnr)] ?: personDefault(steg0.forespoersel.fnr.let(::Fnr)) rapid.publish( Key.EVENT_NAME to EventName.SAK_OG_OPPGAVE_OPPRETT_REQUESTED.toJson(), @@ -136,7 +132,8 @@ class HentDataTilSakOgOppgaveService( Key.DATA to mapOf( Key.FORESPOERSEL_ID to steg0.forespoerselId.toJson(), - Key.ORGNRUNDERENHET to steg0.orgnr.toJson(), + // TODO kan fjernes etter overgangsfase + Key.ORGNRUNDERENHET to steg0.forespoersel.orgnr.toJson(), Key.SYKMELDT to sykmeldt.toJson(Person.serializer()), Key.VIRKSOMHET to orgNavn.toJson(), Key.SKAL_HA_PAAMINNELSE to steg0.skalHaPaaminnelse.toJson(Boolean.serializer()), diff --git a/notifikasjon/src/main/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/notifikasjon/river/OpprettForespoerselSakOgOppgaveRiver.kt b/notifikasjon/src/main/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/notifikasjon/river/OpprettForespoerselSakOgOppgaveRiver.kt index e53d23e7a..402ad0470 100644 --- a/notifikasjon/src/main/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/notifikasjon/river/OpprettForespoerselSakOgOppgaveRiver.kt +++ b/notifikasjon/src/main/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/notifikasjon/river/OpprettForespoerselSakOgOppgaveRiver.kt @@ -29,7 +29,6 @@ data class OpprettForespoerselSakOgOppgaveMelding( val eventName: EventName, val transaksjonId: UUID, val forespoerselId: UUID, - val orgnr: Orgnr, val sykmeldt: Person, val orgNavn: String, val skalHaPaaminnelse: Boolean, @@ -54,7 +53,6 @@ class OpprettForespoerselSakOgOppgaveRiver( eventName = Key.EVENT_NAME.krev(EventName.SAK_OG_OPPGAVE_OPPRETT_REQUESTED, EventName.serializer(), json), transaksjonId = Key.UUID.les(UuidSerializer, json), forespoerselId = Key.FORESPOERSEL_ID.les(UuidSerializer, data), - orgnr = Key.ORGNRUNDERENHET.les(Orgnr.serializer(), data), sykmeldt = Key.SYKMELDT.les(Person.serializer(), data), orgNavn = Key.VIRKSOMHET.les(String.serializer(), data), skalHaPaaminnelse = Key.SKAL_HA_PAAMINNELSE.les(Boolean.serializer(), data), @@ -69,15 +67,16 @@ class OpprettForespoerselSakOgOppgaveRiver( agNotifikasjonKlient.opprettSak( lenke = lenke, inntektsmeldingTypeId = forespoerselId, - orgnr = orgnr, + orgnr = forespoersel.orgnr.let(::Orgnr), sykmeldt = sykmeldt, + sykmeldingsperioder = forespoersel.sykmeldingsperioder, ) val oppgaveId = agNotifikasjonKlient.opprettOppgave( lenke = lenke, forespoerselId = forespoerselId, - orgnr = orgnr, + orgnr = forespoersel.orgnr.let(::Orgnr), orgNavn = orgNavn, skalHaPaaminnelse = skalHaPaaminnelse, paaminnelseAktivert = paaminnelseToggle.oppgavePaaminnelseAktivert, diff --git a/notifikasjon/src/main/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/notifikasjon/river/OpprettSelvbestemtSakRiver.kt b/notifikasjon/src/main/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/notifikasjon/river/OpprettSelvbestemtSakRiver.kt index 622097ef8..04c2207c3 100644 --- a/notifikasjon/src/main/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/notifikasjon/river/OpprettSelvbestemtSakRiver.kt +++ b/notifikasjon/src/main/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/notifikasjon/river/OpprettSelvbestemtSakRiver.kt @@ -62,6 +62,7 @@ class OpprettSelvbestemtSakRiver( inntektsmeldingTypeId = inntektsmelding.type.id, orgnr = inntektsmelding.avsender.orgnr, sykmeldt = inntektsmelding.sykmeldt.let { Person(it.fnr, it.navn) }, + sykmeldingsperioder = inntektsmelding.sykmeldingsperioder, initiellStatus = SaksStatus.FERDIG, ) diff --git a/notifikasjon/src/test/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/notifikasjon/ArbeidsgiverNotifikasjonKlientUtilsTest.kt b/notifikasjon/src/test/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/notifikasjon/ArbeidsgiverNotifikasjonKlientUtilsTest.kt index 66b725597..bf8c45d03 100644 --- a/notifikasjon/src/test/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/notifikasjon/ArbeidsgiverNotifikasjonKlientUtilsTest.kt +++ b/notifikasjon/src/test/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/notifikasjon/ArbeidsgiverNotifikasjonKlientUtilsTest.kt @@ -30,9 +30,8 @@ class ArbeidsgiverNotifikasjonKlientUtilsTest : context("Generer riktig periode tekst for oppgave varsel tekst") { withData( mapOf( - "ingen perioder" to row(emptyList(), null), - "en periode" to row(listOf(1.januar til 31.januar), " for periode: 01.01.2018 - 31.01.2018"), - "to perioder" to row(listOf(1.januar til 31.januar, 1.februar til 28.februar), " for periode: 01.01.2018 - [...] - 28.02.2018"), + "en periode" to row(listOf(1.januar til 31.januar), "01.01.2018 - 31.01.2018"), + "to perioder" to row(listOf(1.januar til 31.januar, 1.februar til 28.februar), "01.01.2018 - [...] - 28.02.2018"), ), ) { (perioder, forventet) -> perioder.tilString() shouldBe forventet diff --git a/notifikasjon/src/test/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/notifikasjon/HentDataTilSakOgOppgaveServiceTest.kt b/notifikasjon/src/test/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/notifikasjon/HentDataTilSakOgOppgaveServiceTest.kt index fe7754761..92633ea6f 100644 --- a/notifikasjon/src/test/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/notifikasjon/HentDataTilSakOgOppgaveServiceTest.kt +++ b/notifikasjon/src/test/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/notifikasjon/HentDataTilSakOgOppgaveServiceTest.kt @@ -65,7 +65,7 @@ class HentDataTilSakOgOppgaveServiceTest : Key.DATA to mapOf( Key.FORESPOERSEL_ID to Mock.forespoerselId.toJson(), - Key.ORGNRUNDERENHET to Mock.orgnr.toJson(), + Key.ORGNRUNDERENHET to Mock.forespoersel.orgnr.toJson(), Key.SYKMELDT to Mock.personer.values .first() @@ -112,10 +112,8 @@ private object Mock { val forespoersel = mockForespoersel() val transaksjonId: UUID = forespoersel.vedtaksperiodeId val forespoerselId: UUID = UUID.randomUUID() - val orgnr = Orgnr(forespoersel.orgnr) - val fnr = Fnr(forespoersel.fnr) - val orgnrMedNavn = mapOf(orgnr to "Kåre Conradis Kål og Kålrabi") - val personer = mapOf(fnr to Person(fnr, "Kåre Conradi")) + val orgnrMedNavn = mapOf(forespoersel.orgnr.let(::Orgnr) to "Kåre Conradis Kål og Kålrabi") + val personer = listOf(forespoersel.fnr.let(::Fnr)).associateWith { Person(it, "Kåre Conradi") } fun steg0(): Map = mapOf( @@ -124,8 +122,6 @@ private object Mock { Key.DATA to mapOf( Key.FORESPOERSEL_ID to forespoerselId.toJson(), - Key.ORGNRUNDERENHET to orgnr.toJson(), - Key.FNR to fnr.toJson(), Key.SKAL_HA_PAAMINNELSE to SKAL_HA_PAAMINNELSE.toJson(Boolean.serializer()), Key.FORESPOERSEL to forespoersel.toJson(Forespoersel.serializer()), ).toJson(), diff --git a/notifikasjon/src/test/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/notifikasjon/river/OpprettForespoerselSakOgOppgaveRiverTest.kt b/notifikasjon/src/test/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/notifikasjon/river/OpprettForespoerselSakOgOppgaveRiverTest.kt index 2131d3acf..be24f4231 100644 --- a/notifikasjon/src/test/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/notifikasjon/river/OpprettForespoerselSakOgOppgaveRiverTest.kt +++ b/notifikasjon/src/test/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/notifikasjon/river/OpprettForespoerselSakOgOppgaveRiverTest.kt @@ -73,31 +73,32 @@ class OpprettForespoerselSakOgOppgaveRiverTest : coVerifySequence { mockAgNotifikasjonKlient.opprettNySak( - virksomhetsnummer = innkommendeMelding.orgnr.verdi, + virksomhetsnummer = innkommendeMelding.forespoersel.orgnr, grupperingsid = innkommendeMelding.forespoerselId.toString(), merkelapp = NotifikasjonTekst.MERKELAPP, lenke = "en-slags-url/im-dialog/${innkommendeMelding.forespoerselId}", tittel = NotifikasjonTekst.sakTittel(innkommendeMelding.sykmeldt), statusTekst = NotifikasjonTekst.STATUS_TEKST_UNDER_BEHANDLING, + tilleggsinfo = NotifikasjonTekst.sakTilleggsinfo(innkommendeMelding.forespoersel.sykmeldingsperioder), initiellStatus = SaksStatus.UNDER_BEHANDLING, hardDeleteOm = sakLevetid, ) mockAgNotifikasjonKlient.opprettNyOppgave( - virksomhetsnummer = innkommendeMelding.orgnr.verdi, + virksomhetsnummer = innkommendeMelding.forespoersel.orgnr, eksternId = innkommendeMelding.forespoerselId.toString(), grupperingsid = innkommendeMelding.forespoerselId.toString(), merkelapp = NotifikasjonTekst.MERKELAPP, lenke = "en-slags-url/im-dialog/${innkommendeMelding.forespoerselId}", tekst = NotifikasjonTekst.OPPGAVE_TEKST, varslingTittel = NotifikasjonTekst.STATUS_TEKST_UNDER_BEHANDLING, - varslingInnhold = NotifikasjonTekst.oppgaveInnhold(innkommendeMelding.orgnr, innkommendeMelding.orgNavn), + varslingInnhold = NotifikasjonTekst.oppgaveInnhold(innkommendeMelding.forespoersel.orgnr.let(::Orgnr), innkommendeMelding.orgNavn), tidspunkt = null, paaminnelse = Paaminnelse( tittel = "Påminnelse: ${NotifikasjonTekst.STATUS_TEKST_UNDER_BEHANDLING}", innhold = NotifikasjonTekst.paaminnelseInnhold( - innkommendeMelding.orgnr, + innkommendeMelding.forespoersel.orgnr.let(::Orgnr), innkommendeMelding.orgNavn, innkommendeMelding.forespoersel.sykmeldingsperioder, ), @@ -259,7 +260,6 @@ fun innkommendeOpprettForespoerselSakOgOppgaveMelding(): OpprettForespoerselSakO eventName = EventName.SAK_OG_OPPGAVE_OPPRETT_REQUESTED, transaksjonId = UUID.randomUUID(), forespoerselId = OpprettSakOgOppgaveMock.forespoerselId, - orgnr = OpprettSakOgOppgaveMock.orgnr, sykmeldt = OpprettSakOgOppgaveMock.person, orgNavn = OpprettSakOgOppgaveMock.orgNavn, skalHaPaaminnelse = true, @@ -273,7 +273,6 @@ private fun OpprettForespoerselSakOgOppgaveMelding.toMap() = Key.DATA to mapOf( Key.FORESPOERSEL_ID to forespoerselId.toJson(), - Key.ORGNRUNDERENHET to orgnr.toJson(), Key.SYKMELDT to sykmeldt.toJson(Person.serializer()), Key.VIRKSOMHET to orgNavn.toJson(), Key.SKAL_HA_PAAMINNELSE to skalHaPaaminnelse.toJson(Boolean.serializer()), diff --git a/notifikasjon/src/test/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/notifikasjon/river/OpprettSelvbestemtSakRiverTest.kt b/notifikasjon/src/test/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/notifikasjon/river/OpprettSelvbestemtSakRiverTest.kt index 1f7238866..d343a8bf6 100644 --- a/notifikasjon/src/test/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/notifikasjon/river/OpprettSelvbestemtSakRiverTest.kt +++ b/notifikasjon/src/test/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/notifikasjon/river/OpprettSelvbestemtSakRiverTest.kt @@ -80,6 +80,7 @@ class OpprettSelvbestemtSakRiverTest : "Inntektsmelding for ${innkommendeMelding.inntektsmelding.sykmeldt.navn}: " + "f. ${innkommendeMelding.inntektsmelding.sykmeldt.fnr.verdi.take(6)}", statusTekst = "Mottatt – Se kvittering eller korriger inntektsmelding", + tilleggsinfo = "Sykmeldingsperiode 05.10.2018 - [...] - 03.11.2018", initiellStatus = SaksStatus.FERDIG, hardDeleteOm = any(), )