Skip to content

Commit

Permalink
FAGSYSTEM-338819: For omgjøring etter klage blir behandlinga av type …
Browse files Browse the repository at this point in the history
…endring, altså heilt vanleg, så da vil ikkje fiksen frå forrige forsøk slå til. Så for revurderingar som er omgjøring etter klage, må vi hente ut klagen og sende med (#5396)
  • Loading branch information
madsop-nav authored Jul 19, 2024
1 parent 70349ce commit 9c8e761
Show file tree
Hide file tree
Showing 5 changed files with 116 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ class BrevdataFacade(
val systemkilde = behandling?.kilde ?: Vedtaksloesning.GJENNY // Dette kan være en pesys-sak
val spraak = overstyrSpraak ?: grunnlag.mapSpraak()

val forenkletVedtak = vedtakOgRevurderingsaarsak(vedtak, sak, saksbehandlerIdent, attestantIdent)
val forenkletVedtak = vedtakOgRevurderingsaarsak(vedtak, sak, saksbehandlerIdent, attestantIdent, brukerTokenInfo)

GenerellBrevData(
sak = sak,
Expand All @@ -94,11 +94,12 @@ class BrevdataFacade(
)
}

private fun vedtakOgRevurderingsaarsak(
private suspend fun vedtakOgRevurderingsaarsak(
vedtak: VedtakDto?,
sak: Sak,
saksbehandlerIdent: String,
attestantIdent: String?,
bruker: BrukerTokenInfo,
): Pair<ForenkletVedtak?, Revurderingaarsak?> =
when (vedtak?.type) {
VedtakType.INNVILGELSE,
Expand All @@ -118,6 +119,12 @@ class BrevdataFacade(
vedtak.vedtakFattet?.tidspunkt?.toNorskLocalDate(),
virkningstidspunkt = vedtakInnhold.virkningstidspunkt,
revurderingInfo = vedtakInnhold.behandling.revurderingInfo,
klage =
if (vedtakInnhold.behandling.revurderingsaarsak == Revurderingaarsak.OMGJOERING_ETTER_KLAGE) {
behandlingService.hentKlageForBehandling(vedtakInnhold.behandling.id, sak.id, bruker)
} else {
null
},
),
vedtakInnhold.behandling.revurderingsaarsak,
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -132,6 +132,17 @@ class BehandlingKlient(
errorMessage = { "Kunne ikke hente klage med id=$klageId" },
brukerTokenInfo = brukerTokenInfo,
)

internal suspend fun hentKlagerForSak(
sakId: Long,
brukerTokenInfo: BrukerTokenInfo,
): List<Klage> =
get(
url = "$resourceUrl/api/klage/sak/$sakId",
onSuccess = { deserialize(it.response!!.toString()) },
errorMessage = { "Kunne ikke hente klager for sak=$sakId" },
brukerTokenInfo = brukerTokenInfo,
)
}

class BehandlingKlientException(
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package no.nav.etterlatte.brev.hentinformasjon.behandling

import no.nav.etterlatte.brev.behandlingklient.BehandlingKlient
import no.nav.etterlatte.libs.common.behandling.Klage
import no.nav.etterlatte.libs.ktor.token.BrukerTokenInfo
import java.util.UUID

Expand Down Expand Up @@ -41,4 +42,19 @@ class BehandlingService(
sakId: Long,
brukerTokenInfo: BrukerTokenInfo,
) = behandlingKlient.hentSisteIverksatteBehandling(sakId, brukerTokenInfo)

suspend fun hentKlageForBehandling(
behandlingId: UUID,
sakId: Long,
bruker: BrukerTokenInfo,
): Klage? {
val hentKlagerForSak = behandlingKlient.hentKlagerForSak(sakId, bruker)
return hentKlagerForSak.firstOrNull {
it.formkrav
?.formkrav
?.vedtaketKlagenGjelder
?.behandlingId
?.let { UUID.fromString(it) } == behandlingId
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@ import no.nav.etterlatte.brev.hentinformasjon.beregning.BeregningService
import no.nav.etterlatte.brev.hentinformasjon.grunnlag.GrunnlagService
import no.nav.etterlatte.brev.hentinformasjon.trygdetid.TrygdetidService
import no.nav.etterlatte.brev.hentinformasjon.vedtaksvurdering.VedtaksvurderingService
import no.nav.etterlatte.brev.hentinformasjon.vilkaarsvurdering.VilkaarsvurderingService
import no.nav.etterlatte.brev.model.Spraak
import no.nav.etterlatte.brev.model.tilbakekreving.tilbakekreving
import no.nav.etterlatte.ktor.token.simpleSaksbehandler
Expand Down Expand Up @@ -61,7 +60,6 @@ internal class BrevdataFacadeImplTest {
private val beregningService = mockk<BeregningService>()
private val behandlingService = mockk<BehandlingService>()
private val trygdetidService = mockk<TrygdetidService>()
private val vilkaarsvurderingService = mockk<VilkaarsvurderingService>()

private val service =
BrevdataFacade(
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
package no.nav.etterlatte.brev.hentinformasjon.behandling

import io.mockk.coEvery
import io.mockk.mockk
import kotlinx.coroutines.runBlocking
import no.nav.etterlatte.brev.behandlingklient.BehandlingKlient
import no.nav.etterlatte.ktor.token.simpleSaksbehandler
import no.nav.etterlatte.libs.common.behandling.Formkrav
import no.nav.etterlatte.libs.common.behandling.FormkravMedBeslutter
import no.nav.etterlatte.libs.common.behandling.JaNei
import no.nav.etterlatte.libs.common.behandling.Klage
import no.nav.etterlatte.libs.common.behandling.KlageStatus
import no.nav.etterlatte.libs.common.behandling.SakType
import no.nav.etterlatte.libs.common.behandling.VedtaketKlagenGjelder
import no.nav.etterlatte.libs.common.grunnlag.Grunnlagsopplysning
import no.nav.etterlatte.libs.common.sak.Sak
import no.nav.etterlatte.libs.common.tidspunkt.Tidspunkt
import no.nav.etterlatte.libs.common.vedtak.VedtakType
import org.junit.jupiter.api.Assertions.assertEquals
import org.junit.jupiter.api.Test
import java.time.ZonedDateTime
import java.util.UUID

class BehandlingServiceTest {
@Test
fun `kan hente og deserialisere klager`() {
val behandlingId = UUID.randomUUID()
val klagePaaDenneBehandlinga = klage(behandlingId, 1L)
val klient =
mockk<BehandlingKlient>().also {
coEvery { it.hentKlagerForSak(1L, any()) } returns
listOf(
klagePaaDenneBehandlinga,
klage(UUID.randomUUID(), 2L),
)
}
val service = BehandlingService(klient)
runBlocking {
val klage = service.hentKlageForBehandling(behandlingId, 1L, simpleSaksbehandler())
assertEquals(klagePaaDenneBehandlinga, klage)
}
}

private fun klage(
behandlingId: UUID,
sakId: Long,
): Klage =
Klage(
behandlingId,
Sak("ident", SakType.BARNEPENSJON, sakId, "einheit"),
Tidspunkt.now(),
KlageStatus.OPPRETTET,
kabalResultat = null,
kabalStatus = null,
formkrav =
FormkravMedBeslutter(
Formkrav(
vedtaketKlagenGjelder =
VedtaketKlagenGjelder(
id = UUID.randomUUID().toString(),
behandlingId = behandlingId.toString(),
datoAttestert = ZonedDateTime.now(),
vedtakType = VedtakType.ENDRING,
),
erKlagerPartISaken = JaNei.JA,
erKlagenSignert = JaNei.JA,
gjelderKlagenNoeKonkretIVedtaket = JaNei.JA,
erKlagenFramsattInnenFrist = JaNei.JA,
erFormkraveneOppfylt = JaNei.JA,
begrunnelse = "klage",
),
saksbehandler = Grunnlagsopplysning.automatiskSaksbehandler,
),
innkommendeDokument = null,
resultat = null,
utfall = null,
aarsakTilAvbrytelse = null,
initieltUtfall = null,
)
}

0 comments on commit 9c8e761

Please sign in to comment.