Skip to content

Commit

Permalink
Merge pull request #523 from navikt/fullmektig-til-kabal
Browse files Browse the repository at this point in the history
Skal oversende fullmektig til kabal
  • Loading branch information
charliemidtlyng authored Oct 11, 2024
2 parents ed2c302 + 08989bf commit a716f70
Show file tree
Hide file tree
Showing 6 changed files with 244 additions and 31 deletions.
6 changes: 4 additions & 2 deletions src/main/kotlin/no/nav/familie/klage/brev/domain/Brev.kt
Original file line number Diff line number Diff line change
Expand Up @@ -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
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -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) {
Expand All @@ -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 {
Expand Down
75 changes: 64 additions & 11 deletions src/main/kotlin/no/nav/familie/klage/kabal/KabalService.kt
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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(),
Expand All @@ -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,
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}"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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,
)

Expand Down Expand Up @@ -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."),
Expand All @@ -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"),
Expand All @@ -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"),
Expand All @@ -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"),

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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) }
Expand Down
Loading

0 comments on commit a716f70

Please sign in to comment.