Skip to content

Commit

Permalink
skal ikke gjenbruke historiske delvilkår fra tidligere behandlinger
Browse files Browse the repository at this point in the history
  • Loading branch information
ViktorGSolberg committed Nov 4, 2024
1 parent ed74247 commit 35470ff
Show file tree
Hide file tree
Showing 2 changed files with 85 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ import no.nav.familie.ef.sak.vilkår.VilkårType
import no.nav.familie.ef.sak.vilkår.Vilkårsresultat
import no.nav.familie.ef.sak.vilkår.Vilkårsvurdering
import no.nav.familie.ef.sak.vilkår.VilkårsvurderingRepository
import no.nav.familie.ef.sak.vilkår.regler.RegelVersjon
import org.slf4j.LoggerFactory
import org.springframework.stereotype.Service
import org.springframework.transaction.annotation.Transactional
Expand Down Expand Up @@ -101,13 +102,20 @@ class GjenbrukVilkårService(
val barnForVurdering = forrigeBarnIdTilNåværendeBarnMap[tidligereVurdering.barnId]
nåværendeVurderinger
.firstOrNull { it.type == tidligereVurdering.type && it.barnId == barnForVurdering?.id }
?.let {
?.let { vurdering ->
tidligereVurdering.copy(
id = it.id,
id = vurdering.id,
behandlingId = behandlingId,
sporbar = it.sporbar,
barnId = it.barnId,
sporbar = vurdering.sporbar,
barnId = vurdering.barnId,
opphavsvilkår = tidligereVurdering.opprettOpphavsvilkår(),
delvilkårsvurdering =
vurdering.delvilkårsvurdering.copy(
delvilkårsvurderinger =
vurdering.delvilkårsvurdering.delvilkårsvurderinger.filter { delvurdering ->
delvurdering.hovedregel.regelVersjon == RegelVersjon.GJELDENDE
},
),
)
}
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
package no.nav.familie.ef.sak.behandling

import no.nav.familie.ef.sak.OppslagSpringRunnerTest
import no.nav.familie.ef.sak.barn.BarnRepository
import no.nav.familie.ef.sak.barn.BehandlingBarn
import no.nav.familie.ef.sak.behandling.domain.BehandlingResultat
import no.nav.familie.ef.sak.behandling.domain.BehandlingStatus
import no.nav.familie.ef.sak.felles.util.BrukerContextUtil.testWithBrukerContext
import no.nav.familie.ef.sak.infrastruktur.config.RolleConfig
import no.nav.familie.ef.sak.opplysninger.personopplysninger.GrunnlagsdataService
Expand All @@ -18,8 +22,10 @@ import no.nav.familie.ef.sak.vilkår.dto.SvarPåVurderingerDto
import no.nav.familie.ef.sak.vilkår.dto.VilkårsvurderingDto
import no.nav.familie.ef.sak.vilkår.dto.VurderingDto
import no.nav.familie.ef.sak.vilkår.dto.tilDto
import no.nav.familie.ef.sak.vilkår.gjenbruk.GjenbrukVilkårService
import no.nav.familie.ef.sak.vilkår.regler.RegelId
import no.nav.familie.ef.sak.vilkår.regler.SvarId
import no.nav.familie.kontrakter.ef.felles.BehandlingÅrsak
import no.nav.familie.kontrakter.felles.ef.StønadType
import org.assertj.core.api.Assertions.assertThat
import org.junit.jupiter.params.ParameterizedTest
Expand All @@ -37,6 +43,12 @@ internal class TestSaksbehandlingControllerTest : OppslagSpringRunnerTest() {
@Autowired
private lateinit var vurderingStegService: VurderingStegService

@Autowired
private lateinit var gjenbrukVilkårService: GjenbrukVilkårService

@Autowired
private lateinit var barnRepository: BarnRepository

@Autowired
private lateinit var vilkårsvurderingRepository: VilkårsvurderingRepository

Expand Down Expand Up @@ -121,6 +133,67 @@ internal class TestSaksbehandlingControllerTest : OppslagSpringRunnerTest() {
assertThat(endredeVurderinger.first { it.id == aleneomsorgVilkår.id }.resultat).isEqualTo(Vilkårsresultat.OPPFYLT)
}

@ParameterizedTest
@EnumSource(StønadType::class)
internal fun `skal gjenbruke vilkårsvurderinger fra tidligere behandling uten å ta med historiske delvilkår`(stønadType: StønadType) {
val fagsak = testoppsettService.lagreFagsak(fagsak(stønadstype = stønadType))

// Opprett behandlinger
val førstegangsbehandling =
behandlingRepository.insert(
behandling(
fagsak = fagsak,
resultat = BehandlingResultat.INNVILGET,
status = BehandlingStatus.FERDIGSTILT,
årsak = BehandlingÅrsak.SØKNAD,
),
)
val revurdering =
behandlingRepository.insert(
behandling(
fagsak = fagsak,
resultat = BehandlingResultat.IKKE_SATT,
status = BehandlingStatus.UTREDES,
årsak = BehandlingÅrsak.SØKNAD,
),
)

// Opprett behandlingsbarn
barnRepository.insert(BehandlingBarn(behandlingId = førstegangsbehandling.id, personIdent = "13481975357"))
barnRepository.insert(BehandlingBarn(behandlingId = revurdering.id, personIdent = "13481975357"))

// Opprett grunnlagsdata
grunnlagsdataService.opprettGrunnlagsdata(førstegangsbehandling.id)
grunnlagsdataService.opprettGrunnlagsdata(revurdering.id)

// Opprett alle vurderinger (med historiske vilkår) for førstegangsbehandling
val vurderingerForFørstegangsbehandling = vilkårsvurderingRepository.insertAll(opprettAlleVurderinger(førstegangsbehandling.id, stønadType))

// Opprett vurderiner (uten historiske vilkår) for revurdering
testWithBrukerContext(preferredUsername = "Z999999", groups = listOf(rolleConfig.saksbehandlerRolle)) {
// Initier vilkår for revurdering
vurderingService.hentEllerOpprettVurderinger(revurdering.id)
}

val initielleVurderingerForRevurdering = vurderingService.hentAlleVurderinger(revurdering.id)

// Skal ha opprettet delvilkår som er historiske for førstegangsbehandling
assertThat(tilRegelIds(vurderingerForFørstegangsbehandling.map { it.tilDto() })).contains(RegelId.SKRIFTLIG_AVTALE_OM_DELT_BOSTED)
// Skal ikke ha opprettet delvilkår som er historiske for revurdering
assertThat(initielleVurderingerForRevurdering.flatMap { vilkårsvurdering -> vilkårsvurdering.delvilkårsvurderinger.flatMap { deilvilkårsvurdering -> deilvilkårsvurdering.vurderinger.map { it.regelId } } }).doesNotContain(RegelId.SKRIFTLIG_AVTALE_OM_DELT_BOSTED)

testWithBrukerContext(preferredUsername = "Z999999", groups = listOf(rolleConfig.saksbehandlerRolle)) {
// Kopier over vilkår fra førstegangsbehandling til revurdering
gjenbrukVilkårService.gjenbrukInngangsvilkårVurderinger(revurdering.id, førstegangsbehandling.id)
}

// Hent vurderinger for revurdering etter gjenbruk
val endredeVurderingerForRevurdering = vurderingService.hentAlleVurderinger(revurdering.id)

// Skal ikke ha gjenbrukt delvilkår som er historiske
assertThat(tilRegelIds(endredeVurderingerForRevurdering)).doesNotContain(RegelId.SKRIFTLIG_AVTALE_OM_DELT_BOSTED)
}

private fun opprettAlleVurderinger(
behandlingId: UUID,
stønadType: StønadType,
Expand Down

0 comments on commit 35470ff

Please sign in to comment.