Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Justerer litt på teksten i aktivitetsplikt-oppgave #6321

Merged
merged 4 commits into from
Nov 14, 2024
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,13 @@ class AktivitetspliktOppgaveService(
val hentBrevId = aktivitetspliktBrevDao.hentBrevdata(oppgaveId = oppgaveId)
if (!data.skalSendeBrev && hentBrevId?.brevId != null) {
aktivitetspliktBrevDao.fjernBrevId(oppgaveId, kilde)
runBlocking { brevApiKlient.slettBrev(brevId = hentBrevId.brevId, sakId = sak.id, brukerTokenInfo = saksbehandler) }
runBlocking {
brevApiKlient.slettBrev(
brevId = hentBrevId.brevId,
sakId = sak.id,
brukerTokenInfo = saksbehandler,
)
}
}
return aktivitetspliktBrevDao.hentBrevdata(oppgaveId)!!
}
Expand Down Expand Up @@ -138,11 +144,29 @@ class AktivitetspliktOppgaveService(
}
val skalOppretteBrev = skalOppretteBrev(brevData)
if (skalOppretteBrev) {
val vurderingForOppgave = aktivitetspliktService.hentVurderingForOppgave(oppgaveId) ?: throw GenerellIkkeFunnetException()
val vurderingForOppgave = aktivitetspliktService.hentVurderingForOppgave(oppgaveId)

val harNyVurdering =
sebassonav marked this conversation as resolved.
Show resolved Hide resolved
when (oppgave.type) {
OppgaveType.AKTIVITETSPLIKT_12MND -> vurderingForOppgave.aktivitet.any { it.vurdertFra12Mnd }
OppgaveType.AKTIVITETSPLIKT -> vurderingForOppgave.aktivitet.isNotEmpty()
else -> throw UgyldigForespoerselException(
"FEIL_OPPGAVETYPE",
"Kan ikke opprette brev for aktivitetsplikt med oppgavetype ${oppgave.type}",
)
}
if (!harNyVurdering) {
throw UgyldigForespoerselException(
"MANGLER_NY_VURDERING",
"Ny vurdering av aktivitetsplikt i denne oppgaven mangler. Den må legges til før brev kan opprettes",
)
}

val sisteAktivtetsgrad =
vurderingForOppgave.aktivitet.maxByOrNull { it.fom }
?: throw ManglerAktivitetsgrad("Mangler aktivitetsgrad for oppgave: $oppgaveId")
val nasjonalEllerUtland = behandlingService.hentUtlandstilknytningForSak(oppgave.sakId) ?: throw GenerellIkkeFunnetException()
val nasjonalEllerUtland =
behandlingService.hentUtlandstilknytningForSak(oppgave.sakId) ?: throw GenerellIkkeFunnetException()
val brevParametreAktivitetsplikt10mnd =
BrevParametre.AktivitetspliktInformasjon10Mnd(
aktivitetsgrad = mapAktivitetsgradstypeTilAktivtetsgrad(sisteAktivtetsgrad.aktivitetsgrad),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ import no.nav.etterlatte.common.Enheter
import no.nav.etterlatte.ktor.token.simpleSaksbehandler
import no.nav.etterlatte.libs.common.behandling.SakType
import no.nav.etterlatte.libs.common.feilhaandtering.ForespoerselException
import no.nav.etterlatte.libs.common.feilhaandtering.UgyldigForespoerselException
import no.nav.etterlatte.libs.common.grunnlag.Grunnlagsopplysning
import no.nav.etterlatte.libs.common.oppgave.OppgaveIntern
import no.nav.etterlatte.libs.common.oppgave.OppgaveKilde
Expand Down Expand Up @@ -264,6 +265,7 @@ class AktivitetspliktOppgaveServiceTest {
every { oppgaveService.hentOppgave(oppgaveId) } returns
mockk {
every { sakId } returns sakIdForOppgave
every { type } returns OppgaveType.AKTIVITETSPLIKT_12MND
}

val kilde = Grunnlagsopplysning.Saksbehandler("Z123456", Tidspunkt.now())
Expand All @@ -279,6 +281,7 @@ class AktivitetspliktOppgaveServiceTest {
opprettet = kilde,
endret = kilde,
beskrivelse = "Beskrivelse",
vurdertFra12Mnd = true,
)
every { aktivitetspliktService.hentVurderingForOppgave(oppgaveId) } returns
mockk {
Expand Down Expand Up @@ -306,6 +309,60 @@ class AktivitetspliktOppgaveServiceTest {
verify(exactly = 1) { aktivitetspliktService.hentVurderingForOppgave(oppgaveId) }
}

@Test
fun `skal ikke opprette brev hvis det ikke er vurdert fra 12 mnd i 12mnd-oppgave`() {
sebassonav marked this conversation as resolved.
Show resolved Hide resolved
val simpleSaksbehandler = simpleSaksbehandler()
val oppgaveId = UUID.randomUUID()
val sakIdForOppgave = SakId(1L)
every { oppgaveService.hentOppgave(oppgaveId) } returns
mockk {
every { sakId } returns sakIdForOppgave
every { type } returns OppgaveType.AKTIVITETSPLIKT_12MND
}

val kilde = Grunnlagsopplysning.Saksbehandler("Z123456", Tidspunkt.now())
val aksgrad =
AktivitetspliktAktivitetsgrad(
id = UUID.randomUUID(),
sakId = sakIdForOppgave,
behandlingId = UUID.randomUUID(),
oppgaveId = oppgaveId,
aktivitetsgrad = AktivitetspliktAktivitetsgradType.AKTIVITET_UNDER_50,
fom = LocalDate.now(),
tom = null,
opprettet = kilde,
endret = kilde,
beskrivelse = "Beskrivelse",
vurdertFra12Mnd = false,
)
every { aktivitetspliktService.hentVurderingForOppgave(oppgaveId) } returns
mockk {
every { aktivitet } returns listOf(aksgrad)
}
every { aktivitetspliktBrevDao.lagreBrevId(oppgaveId, any()) } returns 1

val skalSendeBrev =
AktivitetspliktInformasjonBrevdata(
oppgaveId,
sakIdForOppgave,
null,
true,
utbetaling = true,
redusertEtterInntekt = true,
kilde = kilde,
)
every { aktivitetspliktBrevDao.hentBrevdata(oppgaveId) } returns skalSendeBrev
coEvery { brevApiKlient.opprettSpesifiktBrev(any(), any(), any()) } returns
mockk {
every { id } returns 1L
}
assertThrows<UgyldigForespoerselException> {
service.opprettBrevHvisKraveneErOppfyltOgDetIkkeFinnes(oppgaveId, simpleSaksbehandler)
}
verify(exactly = 0) { aktivitetspliktBrevDao.lagreBrevId(any(), any()) }
verify(exactly = 1) { aktivitetspliktService.hentVurderingForOppgave(oppgaveId) }
}

@Test
fun `Kan ikke ferdigstille brev og oppgave om oppgaven er i feil state`() {
val simpleSaksbehandler = simpleSaksbehandler()
Expand Down