diff --git a/src/main/kotlin/no/nav/familie/klage/brev/domain/Brev.kt b/src/main/kotlin/no/nav/familie/klage/brev/domain/Brev.kt index b9464e00..a4d4c1f8 100644 --- a/src/main/kotlin/no/nav/familie/klage/brev/domain/Brev.kt +++ b/src/main/kotlin/no/nav/familie/klage/brev/domain/Brev.kt @@ -45,10 +45,12 @@ data class BrevmottakerPerson( val personIdent: String, val navn: String, val mottakerRolle: MottakerRolle, -) +) : Brevmottaker() data class BrevmottakerOrganisasjon( val organisasjonsnummer: String, val organisasjonsnavn: String, val navnHosOrganisasjon: String, -) +) : Brevmottaker() + +sealed class Brevmottaker diff --git a/src/main/kotlin/no/nav/familie/klage/distribusjon/SendTilKabalTask.kt b/src/main/kotlin/no/nav/familie/klage/distribusjon/SendTilKabalTask.kt index 69bc3bc7..07695157 100644 --- a/src/main/kotlin/no/nav/familie/klage/distribusjon/SendTilKabalTask.kt +++ b/src/main/kotlin/no/nav/familie/klage/distribusjon/SendTilKabalTask.kt @@ -1,6 +1,7 @@ package no.nav.familie.klage.distribusjon import no.nav.familie.klage.behandling.BehandlingService +import no.nav.familie.klage.brev.BrevService import no.nav.familie.klage.fagsak.FagsakService import no.nav.familie.klage.felles.util.TaskMetadata import no.nav.familie.klage.kabal.KabalService @@ -21,6 +22,7 @@ class SendTilKabalTask( private val behandlingService: BehandlingService, private val kabalService: KabalService, private val vurderingService: VurderingService, + private val brevService: BrevService, ) : AsyncTaskStep { override fun doTask(task: Task) { @@ -30,7 +32,8 @@ class SendTilKabalTask( val fagsak = fagsakService.hentFagsakForBehandling(behandlingId) val vurdering = vurderingService.hentVurdering(behandlingId) ?: error("Mangler vurdering på klagen - kan ikke oversendes til kabal") - kabalService.sendTilKabal(fagsak, behandling, vurdering, saksbehandlerIdent) + val brevmottakere = brevService.hentBrevmottakere(behandlingId) + kabalService.sendTilKabal(fagsak, behandling, vurdering, saksbehandlerIdent, brevmottakere) } companion object { diff --git a/src/main/kotlin/no/nav/familie/klage/kabal/KabalService.kt b/src/main/kotlin/no/nav/familie/klage/kabal/KabalService.kt index 05d56f39..6c18daee 100644 --- a/src/main/kotlin/no/nav/familie/klage/kabal/KabalService.kt +++ b/src/main/kotlin/no/nav/familie/klage/kabal/KabalService.kt @@ -2,6 +2,11 @@ package no.nav.familie.klage.kabal import no.nav.familie.klage.behandling.domain.Behandling import no.nav.familie.klage.behandling.domain.PåklagetVedtak +import no.nav.familie.klage.brev.domain.Brevmottaker +import no.nav.familie.klage.brev.domain.BrevmottakerOrganisasjon +import no.nav.familie.klage.brev.domain.BrevmottakerPerson +import no.nav.familie.klage.brev.domain.Brevmottakere +import no.nav.familie.klage.brev.domain.MottakerRolle import no.nav.familie.klage.fagsak.domain.Fagsak import no.nav.familie.klage.fagsak.domain.tilYtelse import no.nav.familie.klage.infrastruktur.config.LenkeConfig @@ -17,21 +22,36 @@ class KabalService( private val integrasjonerClient: FamilieIntegrasjonerClient, private val lenkeConfig: LenkeConfig, ) { - - fun sendTilKabal(fagsak: Fagsak, behandling: Behandling, vurdering: Vurdering, saksbehandlerIdent: String) { + fun sendTilKabal( + fagsak: Fagsak, + behandling: Behandling, + vurdering: Vurdering, + saksbehandlerIdent: String, + brevMottakere: Brevmottakere, + ) { val saksbehandler = integrasjonerClient.hentSaksbehandlerInfo(saksbehandlerIdent) - val oversendtKlageAnkeV3 = lagKlageOversendelseV3(fagsak, behandling, vurdering, saksbehandler.enhet) + val oversendtKlageAnkeV3 = + lagKlageOversendelseV3(fagsak, behandling, vurdering, saksbehandler.enhet, brevMottakere) kabalClient.sendTilKabal(oversendtKlageAnkeV3) } - private fun lagKlageOversendelseV3(fagsak: Fagsak, behandling: Behandling, vurdering: Vurdering, saksbehandlersEnhet: String): OversendtKlageAnkeV3 { + private fun lagKlageOversendelseV3( + fagsak: Fagsak, + behandling: Behandling, + vurdering: Vurdering, + saksbehandlersEnhet: String, + brevMottakere: Brevmottakere, + ): OversendtKlageAnkeV3 { return OversendtKlageAnkeV3( type = Type.KLAGE, - klager = OversendtKlager( - id = OversendtPartId( + klager = + OversendtKlager( + id = + OversendtPartId( type = OversendtPartIdType.PERSON, verdi = fagsak.hentAktivIdent(), ), + klagersProsessfullmektig = utledFullmektigFraBrevmottakere(brevMottakere), ), fagsak = OversendtSak(fagsakId = fagsak.eksternId, fagsystem = fagsak.fagsystem), kildeReferanse = behandling.eksternBehandlingId.toString(), @@ -46,12 +66,45 @@ class KabalService( ) } - private fun lagInnsynUrl(fagsak: Fagsak, påklagetVedtak: PåklagetVedtak): String { - val fagsystemUrl = when (fagsak.fagsystem) { - Fagsystem.EF -> lenkeConfig.efSakLenke - Fagsystem.BA -> lenkeConfig.baSakLenke - Fagsystem.KS -> lenkeConfig.ksSakLenke + private fun utledFullmektigFraBrevmottakere(brevMottakere: Brevmottakere): OversendtProsessfullmektig? { + val fullmektigEllerVerge = + brevMottakere.personer.firstOrNull { it.mottakerRolle == MottakerRolle.FULLMAKT } + ?: brevMottakere.personer.firstOrNull { it.mottakerRolle == MottakerRolle.VERGE } + ?: brevMottakere.organisasjoner.firstOrNull() + + return fullmektigEllerVerge?.let { + val oversendtPartId: OversendtPartId = utledPartIdFraFullmektigEllerVerge(it) + return OversendtProsessfullmektig(id = oversendtPartId, skalKlagerMottaKopi = false) + } + } + + private fun utledPartIdFraFullmektigEllerVerge(it: Brevmottaker) = + when (it) { + is BrevmottakerPerson -> { + OversendtPartId( + type = OversendtPartIdType.PERSON, + verdi = it.personIdent, + ) + } + + is BrevmottakerOrganisasjon -> { + OversendtPartId( + type = OversendtPartIdType.VIRKSOMHET, + verdi = it.organisasjonsnummer, + ) + } } + + private fun lagInnsynUrl( + fagsak: Fagsak, + påklagetVedtak: PåklagetVedtak, + ): String { + val fagsystemUrl = + when (fagsak.fagsystem) { + Fagsystem.EF -> lenkeConfig.efSakLenke + Fagsystem.BA -> lenkeConfig.baSakLenke + Fagsystem.KS -> lenkeConfig.ksSakLenke + } val påklagetVedtakDetaljer = påklagetVedtak.påklagetVedtakDetaljer return if (påklagetVedtakDetaljer != null && påklagetVedtakDetaljer.fagsystemType == FagsystemType.ORDNIÆR && påklagetVedtakDetaljer.eksternFagsystemBehandlingId != null) { "$fagsystemUrl/fagsak/${fagsak.eksternId}/${påklagetVedtakDetaljer.eksternFagsystemBehandlingId}" diff --git a/src/main/kotlin/no/nav/familie/klage/kabal/domain/OversendtKlage.kt b/src/main/kotlin/no/nav/familie/klage/kabal/domain/OversendtKlage.kt index e011278c..b2f46b3e 100644 --- a/src/main/kotlin/no/nav/familie/klage/kabal/domain/OversendtKlage.kt +++ b/src/main/kotlin/no/nav/familie/klage/kabal/domain/OversendtKlage.kt @@ -45,6 +45,7 @@ data class OversendtKlager( data class OversendtProsessfullmektig( val id: OversendtPartId, + @Deprecated("Denne er deprecated i Kabal og brukes ikke") val skalKlagerMottaKopi: Boolean, ) @@ -86,7 +87,11 @@ interface Kode { enum class LovKilde(override val id: String, override val navn: String, override val beskrivelse: String) : Kode { FOLKETRYGDLOVEN("1", "Folketrygdloven", "Ftrl"), - FORSKRIFT_OM_AKTIVITETSHJELPEMIDLER_TIL_DE_OVER_26_ÅR("2", "Forskrift om aktivitetshjelpemidler til de over 26 år", "Forskrift om aktivitetshjelpemidler til de over 26 år"), + FORSKRIFT_OM_AKTIVITETSHJELPEMIDLER_TIL_DE_OVER_26_ÅR( + "2", + "Forskrift om aktivitetshjelpemidler til de over 26 år", + "Forskrift om aktivitetshjelpemidler til de over 26 år", + ), FORSKRIFT_OM_HJELPEMIDLER_MM("3", "Forskrift om hjelpemidler mm.", "Forskrift om hjelpemidler mm."), FORSKRIFT_OM_ORTOPEDISKE_HJELPEMIDLER_MM("4", "Forskrift om ortopediske hjelpemidler mm.", "Forskrift om ortopediske hjelpemidler mm."), FORSKRIFT_OM_HØREAPPARATER_MM("5", "Forskrift om høreapparater mm.", "Forskrift om høreapparater mm."), @@ -102,7 +107,11 @@ enum class LovKilde(override val id: String, override val navn: String, override NORDISK_KONVENSJON("15", "Nordisk konvensjon", "Nordisk konvensjon"), GJENNOMFØRINGSFORORDNING_987_2009("16", "Gjennomføringsforordning 987/2009", "Gjennomføringsforordning 987/2009"), FORSKRIFT_UFØRETRYGD_FOLKETRYGDEN("17", "Forskrift om uføretrygd fra folketrygden", "Fors uføretr"), - FORSKRIFT_OM_BEREGNING_AV_UFØRETRYGD_ETTER_EØS_AVTALEN_883_2004("18", "Forskrift om beregning av uføretrygd etter EØS- avtalen 883/2004", "Forskrift om beregning av uføretrygd etter EØS- avtalen 883/2004"), + FORSKRIFT_OM_BEREGNING_AV_UFØRETRYGD_ETTER_EØS_AVTALEN_883_2004( + "18", + "Forskrift om beregning av uføretrygd etter EØS- avtalen 883/2004", + "Forskrift om beregning av uføretrygd etter EØS- avtalen 883/2004", + ), GJENNOMFØRINGSFORORDNING_987_2007("19", "Gjennomføringsforordning 987/2007", "Gjennomføringsforordning 987/2007"), EØS_FORORDNING_1408_71("20", "Forordning 1408/71", "Forordning 1408/71"), ANDRE_TRYGDEAVTALER("21", "Andre trygdeavtaler", "Andre trygdeavtaler"), @@ -117,7 +126,11 @@ enum class LovKilde(override val id: String, override val navn: String, override EØS_AVTALEN("30", "EØS-avtalen", "EØS-avtalen"), KONTANTSTØTTELOVEN("31", "Kontantstøtteloven", "Kontsl"), BARNELOVEN("32", "Barneloven", "Bl"), - FORSKRIFT_OM_FASTSETTELSE_OG_ENDRING_AV_FORSTRINGSTILSKOT("33", "Forskrift om fastsettelse og endring av fostringstilskot", "Fors fasts og end"), + FORSKRIFT_OM_FASTSETTELSE_OG_ENDRING_AV_FORSTRINGSTILSKOT( + "33", + "Forskrift om fastsettelse og endring av fostringstilskot", + "Fors fasts og end", + ), FORSKRIFT_OM_SÆRTILSKUDD("34", "Forskrift om særtilskudd", "Fors. om sært."), FORSKOTTERINGSLOVEN("35", "Forskotteringsloven", "Forskl"), BIDRAGSINNKREVINGSLOVEN("36", "Bidragsinnkrevingsloven", "Innkl"), @@ -133,16 +146,40 @@ enum class LovKilde(override val id: String, override val navn: String, override FORSKRIFT_OM_ARBEIDS_OG_UTDANNINGSREISER("45", "Forskrift om arbeids- og utdanningsreiser", "Fors om arb- og utd.r."), TILLEGGSSTØNADSFORSKRIFTEN("46", "Tilleggsstønadforskriften", "Fors om till.stø."), NAV_LOVEN("47", "NA V-loven", "NAV-L"), - MIDLERTIDIG_LOV_KOMP_SELVST_OG_FRILANS("48", "Midlertidig lov om kompensasjonsytelse for selvstendig næringsdrivende og frilansere", "Midl. komp selv.næ og fril"), + MIDLERTIDIG_LOV_KOMP_SELVST_OG_FRILANS( + "48", + "Midlertidig lov om kompensasjonsytelse for selvstendig næringsdrivende og frilansere", + "Midl. komp selv.næ og fril", + ), LØNNSKOMPENSASJON_FOR_PERMITTERTE("49", "Lønnskompensasjon for permitterte", "Lønn.komp perm"), - MIDLERTIDIG_FORSKR_FORSKUDD_DAGPENGER("50", "Midlertidig forskrift om forskudd på dagpenger for å avhjelpe konsekvensene av covid-19", "Midlertidig forskrift om forskudd på dagpenger for å avhjelpe konsekvensene av covid-19"), + MIDLERTIDIG_FORSKR_FORSKUDD_DAGPENGER( + "50", + "Midlertidig forskrift om forskudd på dagpenger for å avhjelpe konsekvensene av covid-19", + "Midlertidig forskrift om forskudd på dagpenger for å avhjelpe konsekvensene av covid-19", + ), BARNEBORTFØRINGSLOVEN("51", "Barnebortføringsloven", "Bbfl"), - KONVENSON_OM_SIVILE_SIDER_VED_BARNEBORTFØRING("52", "Konvensjon om sivile sider ved barnebortføring", "Konvensjon om sivile sider ved barnebortføring"), + KONVENSON_OM_SIVILE_SIDER_VED_BARNEBORTFØRING( + "52", + "Konvensjon om sivile sider ved barnebortføring", + "Konvensjon om sivile sider ved barnebortføring", + ), HAAG_KONVENSJONEN("53", "Haag-konvensjonen", "Haag-konvensjonen"), - FORSK_OPPFLG_NAV_EGEN_REGI("54", "Forskrift om oppfølgingstjenester i Arbeids- og velferdsetatens egen regi", "Forskrift om oppfølgingstjenester i Arbeids- og velferdsetatens egen regi"), + FORSK_OPPFLG_NAV_EGEN_REGI( + "54", + "Forskrift om oppfølgingstjenester i Arbeids- og velferdsetatens egen regi", + "Forskrift om oppfølgingstjenester i Arbeids- og velferdsetatens egen regi", + ), FORSKRIFT_OM_ETTERGJEVING("55", "Forskrift om ettergjeving", "Forskrift om ettergjeving"), - FORSKRIFT_OM_OPPFOSTRINGSBIDRAG("56", "Forskrift om fastsetting og endring av oppfostringsbidrag etter lov om barneverntjenester", "Forskrift om oppfostringsbidrag"), - FORSKRIFT_OM_LØNNSPLIKT_UNDER_PERMITTERING("57", "Forskrift om lønnsplikt under permittering", "Forskrift om lønnsplikt under permittering"), + FORSKRIFT_OM_OPPFOSTRINGSBIDRAG( + "56", + "Forskrift om fastsetting og endring av oppfostringsbidrag etter lov om barneverntjenester", + "Forskrift om oppfostringsbidrag", + ), + FORSKRIFT_OM_LØNNSPLIKT_UNDER_PERMITTERING( + "57", + "Forskrift om lønnsplikt under permittering", + "Forskrift om lønnsplikt under permittering", + ), HOVEDNUMMER_42_TRYGDEAVTALER("58", "Hovednummer 42 - Trygdeavtaler", "Hnr. 42"), DEKNINGSLOVEN("59", "Dekningsloven", "Dekningsloven"), diff --git a/src/test/kotlin/no/nav/familie/klage/behandling/FerdigstillBehandlingServiceTest.kt b/src/test/kotlin/no/nav/familie/klage/behandling/FerdigstillBehandlingServiceTest.kt index 0e9906c6..1377094b 100644 --- a/src/test/kotlin/no/nav/familie/klage/behandling/FerdigstillBehandlingServiceTest.kt +++ b/src/test/kotlin/no/nav/familie/klage/behandling/FerdigstillBehandlingServiceTest.kt @@ -91,7 +91,7 @@ internal class FerdigstillBehandlingServiceTest { every { distribusjonService.journalførBrev(any(), any(), any(), any(), any()) } returns journalpostId every { distribusjonService.distribuerBrev(any()) } returns brevDistribusjonId every { vurderingService.hentVurdering(any()) } returns vurdering - every { kabalService.sendTilKabal(any(), any(), any(), any()) } just Runs + every { kabalService.sendTilKabal(any(), any(), any(), any(), any()) } just Runs justRun { stegService.oppdaterSteg(any(), any(), capture(stegSlot), any()) } every { formService.formkravErOppfyltForBehandling(any()) } returns true justRun { behandlingService.oppdaterBehandlingMedResultat(any(), capture(behandlingsresultatSlot), null) } diff --git a/src/test/kotlin/no/nav/familie/klage/kabal/KabalServiceTest.kt b/src/test/kotlin/no/nav/familie/klage/kabal/KabalServiceTest.kt index 5c0862a0..38f94dd7 100644 --- a/src/test/kotlin/no/nav/familie/klage/kabal/KabalServiceTest.kt +++ b/src/test/kotlin/no/nav/familie/klage/kabal/KabalServiceTest.kt @@ -7,6 +7,10 @@ import io.mockk.mockk import io.mockk.slot import no.nav.familie.klage.behandling.domain.PåklagetVedtak import no.nav.familie.klage.behandling.domain.PåklagetVedtakstype +import no.nav.familie.klage.brev.domain.BrevmottakerOrganisasjon +import no.nav.familie.klage.brev.domain.BrevmottakerPerson +import no.nav.familie.klage.brev.domain.Brevmottakere +import no.nav.familie.klage.brev.domain.MottakerRolle import no.nav.familie.klage.fagsak.domain.PersonIdent import no.nav.familie.klage.infrastruktur.config.LenkeConfig import no.nav.familie.klage.integrasjoner.FamilieIntegrasjonerClient @@ -20,17 +24,18 @@ import no.nav.familie.kontrakter.felles.klage.FagsystemType import no.nav.familie.kontrakter.felles.saksbehandler.Saksbehandler import org.assertj.core.api.Assertions.assertThat import org.junit.jupiter.api.BeforeEach +import org.junit.jupiter.api.Nested import org.junit.jupiter.api.Test import org.junit.jupiter.api.assertThrows import java.util.UUID internal class KabalServiceTest { - val kabalClient = mockk() val integrasjonerClient = mockk() val lenkeConfig = LenkeConfig(efSakLenke = "BASEURL_EF", baSakLenke = "BASEURL_BA", ksSakLenke = "BASEURL_KS") val kabalService = KabalService(kabalClient, integrasjonerClient, lenkeConfig) val fagsak = fagsakDomain().tilFagsakMedPerson(setOf(PersonIdent("1"))) + val ingenBrevmottaker = Brevmottakere() val hjemmel = Hjemmel.FT_FEMTEN_FIRE @@ -53,10 +58,11 @@ internal class KabalServiceTest { @Test fun sendTilKabal() { val påklagetVedtakDetaljer = påklagetVedtakDetaljer() - val behandling = behandling(fagsak, påklagetVedtak = PåklagetVedtak(PåklagetVedtakstype.VEDTAK, påklagetVedtakDetaljer)) + val behandling = + behandling(fagsak, påklagetVedtak = PåklagetVedtak(PåklagetVedtakstype.VEDTAK, påklagetVedtakDetaljer)) val vurdering = vurdering(behandlingId = behandling.id, hjemmel = hjemmel) - kabalService.sendTilKabal(fagsak, behandling, vurdering, saksbehandlerA.navIdent) + kabalService.sendTilKabal(fagsak, behandling, vurdering, saksbehandlerA.navIdent, ingenBrevmottaker) val oversendelse = oversendelseSlot.captured assertThat(oversendelse.fagsak?.fagsakId).isEqualTo(fagsak.eksternId) @@ -80,10 +86,11 @@ internal class KabalServiceTest { @Test internal fun `skal sette innsynUrl til saksoversikten hvis påklaget vedtakstype gjelder tilbakekreving`() { val påklagetVedtakDetaljer = påklagetVedtakDetaljer(fagsystemType = FagsystemType.TILBAKEKREVING) - val behandling = behandling(fagsak, påklagetVedtak = PåklagetVedtak(PåklagetVedtakstype.VEDTAK, påklagetVedtakDetaljer)) + val behandling = + behandling(fagsak, påklagetVedtak = PåklagetVedtak(PåklagetVedtakstype.VEDTAK, påklagetVedtakDetaljer)) val vurdering = vurdering(behandlingId = behandling.id, hjemmel = hjemmel) - kabalService.sendTilKabal(fagsak, behandling, vurdering, saksbehandlerB.navIdent) + kabalService.sendTilKabal(fagsak, behandling, vurdering, saksbehandlerB.navIdent, ingenBrevmottaker) assertThat(oversendelseSlot.captured.innsynUrl) .isEqualTo("${lenkeConfig.efSakLenke}/fagsak/${fagsak.eksternId}/saksoversikt") @@ -95,7 +102,7 @@ internal class KabalServiceTest { val behandling = behandling(fagsak, påklagetVedtak = PåklagetVedtak(PåklagetVedtakstype.UTEN_VEDTAK)) val vurdering = vurdering(behandlingId = behandling.id, hjemmel = hjemmel) - kabalService.sendTilKabal(fagsak, behandling, vurdering, saksbehandlerB.navIdent) + kabalService.sendTilKabal(fagsak, behandling, vurdering, saksbehandlerB.navIdent, ingenBrevmottaker) assertThat(oversendelseSlot.captured.innsynUrl) .isEqualTo("${lenkeConfig.efSakLenke}/fagsak/${fagsak.eksternId}/saksoversikt") @@ -108,7 +115,118 @@ internal class KabalServiceTest { val vurdering = vurdering(behandlingId = behandling.id, hjemmel = hjemmel) assertThrows { - kabalService.sendTilKabal(fagsak, behandling, vurdering, "UKJENT1234") + kabalService.sendTilKabal(fagsak, behandling, vurdering, "UKJENT1234", ingenBrevmottaker) + } + } + + @Nested + inner class VergeOgFullmektig { + @Test + fun `dersom det både er verge og bruker skal motta kopi av brevet skal verge sendes over til kabal og motta svartidsbrevet`() { + val påklagetVedtakDetaljer = påklagetVedtakDetaljer() + val behandling = + behandling(fagsak, påklagetVedtak = PåklagetVedtak(PåklagetVedtakstype.VEDTAK, påklagetVedtakDetaljer)) + val vurdering = vurdering(behandlingId = behandling.id, hjemmel = hjemmel) + val verge = BrevmottakerPerson("01234567890", "Navn", MottakerRolle.VERGE) + val bruker = BrevmottakerPerson(fagsak.hentAktivIdent(), "Navn", MottakerRolle.BRUKER) + kabalService.sendTilKabal( + fagsak, + behandling, + vurdering, + saksbehandlerA.navIdent, + Brevmottakere(personer = listOf(verge, bruker)), + ) + + val oversendelse = oversendelseSlot.captured + assertThat(oversendelse.klager.klagersProsessfullmektig?.id?.verdi).isEqualTo(verge.personIdent) + assertThat(oversendelse.klager.klagersProsessfullmektig?.id?.type).isEqualTo(OversendtPartIdType.PERSON) + assertThat(oversendelse.klager.klagersProsessfullmektig?.skalKlagerMottaKopi).isFalse() + } + + @Test + fun `skal sende med verge til kabal uten kopi til bruker`() { + val påklagetVedtakDetaljer = påklagetVedtakDetaljer() + val behandling = + behandling(fagsak, påklagetVedtak = PåklagetVedtak(PåklagetVedtakstype.VEDTAK, påklagetVedtakDetaljer)) + val vurdering = vurdering(behandlingId = behandling.id, hjemmel = hjemmel) + val verge = BrevmottakerPerson("01234567890", "Navn", MottakerRolle.VERGE) + kabalService.sendTilKabal( + fagsak, + behandling, + vurdering, + saksbehandlerA.navIdent, + Brevmottakere(personer = listOf(verge)), + ) + + val oversendelse = oversendelseSlot.captured + assertThat(oversendelse.klager.klagersProsessfullmektig?.id?.verdi).isEqualTo(verge.personIdent) + assertThat(oversendelse.klager.klagersProsessfullmektig?.id?.type).isEqualTo(OversendtPartIdType.PERSON) + assertThat(oversendelse.klager.klagersProsessfullmektig?.skalKlagerMottaKopi).isFalse() + } + + @Test + fun `skal sende med fullmektig til kabal `() { + val påklagetVedtakDetaljer = påklagetVedtakDetaljer() + val behandling = + behandling(fagsak, påklagetVedtak = PåklagetVedtak(PåklagetVedtakstype.VEDTAK, påklagetVedtakDetaljer)) + val vurdering = vurdering(behandlingId = behandling.id, hjemmel = hjemmel) + val fullmektig = BrevmottakerPerson("01234567890", "Navn", MottakerRolle.FULLMAKT) + kabalService.sendTilKabal( + fagsak, + behandling, + vurdering, + saksbehandlerA.navIdent, + Brevmottakere(personer = listOf(fullmektig)), + ) + + val oversendelse = oversendelseSlot.captured + assertThat(oversendelse.klager.klagersProsessfullmektig?.id?.verdi).isEqualTo(fullmektig.personIdent) + assertThat(oversendelse.klager.klagersProsessfullmektig?.id?.type).isEqualTo(OversendtPartIdType.PERSON) + assertThat(oversendelse.klager.klagersProsessfullmektig?.skalKlagerMottaKopi).isFalse() + } + + @Test + fun `skal sende med organisasjonsfullemktig til kabal `() { + val påklagetVedtakDetaljer = påklagetVedtakDetaljer() + val behandling = + behandling(fagsak, påklagetVedtak = PåklagetVedtak(PåklagetVedtakstype.VEDTAK, påklagetVedtakDetaljer)) + val vurdering = vurdering(behandlingId = behandling.id, hjemmel = hjemmel) + val fullmektig = BrevmottakerOrganisasjon("012345678", "Navn på org", "Navn på person") + kabalService.sendTilKabal( + fagsak, + behandling, + vurdering, + saksbehandlerA.navIdent, + Brevmottakere(organisasjoner = listOf(fullmektig)), + ) + + val oversendelse = oversendelseSlot.captured + assertThat(oversendelse.klager.klagersProsessfullmektig?.id?.verdi).isEqualTo(fullmektig.organisasjonsnummer) + assertThat(oversendelse.klager.klagersProsessfullmektig?.id?.type).isEqualTo(OversendtPartIdType.VIRKSOMHET) + assertThat(oversendelse.klager.klagersProsessfullmektig?.skalKlagerMottaKopi).isFalse() + } + + @Test + fun `skal sende med fullmektig til kabal dersom det finnes både verge, fullmektig og organsiasjon`() { + val påklagetVedtakDetaljer = påklagetVedtakDetaljer() + val behandling = + behandling(fagsak, påklagetVedtak = PåklagetVedtak(PåklagetVedtakstype.VEDTAK, påklagetVedtakDetaljer)) + val vurdering = vurdering(behandlingId = behandling.id, hjemmel = hjemmel) + val fullmektigOrganisasjon = BrevmottakerOrganisasjon("012345678", "Navn på org", "Navn på person") + val fullmektig = BrevmottakerPerson("01234567890", "Fullmektig", MottakerRolle.FULLMAKT) + val verge = BrevmottakerPerson("98765432100", "Verge", MottakerRolle.VERGE) + kabalService.sendTilKabal( + fagsak, + behandling, + vurdering, + saksbehandlerA.navIdent, + Brevmottakere(personer = listOf(verge, fullmektig), organisasjoner = listOf(fullmektigOrganisasjon)), + ) + + val oversendelse = oversendelseSlot.captured + assertThat(oversendelse.klager.klagersProsessfullmektig?.id?.verdi).isEqualTo(fullmektig.personIdent) + assertThat(oversendelse.klager.klagersProsessfullmektig?.id?.type).isEqualTo(OversendtPartIdType.PERSON) + assertThat(oversendelse.klager.klagersProsessfullmektig?.skalKlagerMottaKopi).isFalse() } } }