Skip to content

Commit

Permalink
Lag en måte å vurdere om regelsett er relevant i behandlingen
Browse files Browse the repository at this point in the history
Co-authored-by: Eivind Havnelid Røyrvik <[email protected]>
Co-authored-by: Sindre Sægrov <[email protected]>
  • Loading branch information
3 people committed Jan 15, 2025
1 parent 9b2215c commit 704bcd9
Show file tree
Hide file tree
Showing 4 changed files with 27 additions and 3 deletions.
11 changes: 11 additions & 0 deletions dagpenger/src/main/kotlin/no/nav/dagpenger/regel/Verneplikt.kt
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import no.nav.dagpenger.opplysning.Regelsett
import no.nav.dagpenger.opplysning.id
import no.nav.dagpenger.opplysning.regel.erSann
import no.nav.dagpenger.opplysning.regel.innhentMed
import no.nav.dagpenger.regel.KravPåDagpenger.kravPåDagpenger
import no.nav.dagpenger.regel.Søknadstidspunkt.søknadIdOpplysningstype

object Verneplikt {
Expand All @@ -21,6 +22,16 @@ object Verneplikt {
utfall(oppfyllerKravetTilVerneplikt) { erSann(avtjentVerneplikt) }

avklaring(Avklaringspunkter.Verneplikt)

relevantHvis {
val harKrav = it.har(kravPåDagpenger) && it.finnOpplysning(kravPåDagpenger).verdi

if (harKrav) {
it.finnOpplysning(avtjentVerneplikt).verdi == false
} else {
true
}
}
}

val VernepliktKontroll =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ import no.nav.dagpenger.opplysning.Faktum
import no.nav.dagpenger.opplysning.Heltall
import no.nav.dagpenger.opplysning.Hypotese
import no.nav.dagpenger.opplysning.InntektDataType
import no.nav.dagpenger.opplysning.LesbarOpplysninger
import no.nav.dagpenger.opplysning.Opplysning
import no.nav.dagpenger.opplysning.Penger
import no.nav.dagpenger.opplysning.Redigerbar
Expand Down Expand Up @@ -84,12 +85,12 @@ internal fun Behandling.tilBehandlingDTO(): BehandlingDTO =
vilkår =
behandler.regelverk
.regelsettAvType(RegelsettType.Vilkår)
.map { it.tilRegelsettDTO(opplysninger, avklaringer) }
.map { it.tilRegelsettDTO(opplysninger, avklaringer, opplysninger()) }
.sortedBy { it.hjemmel.paragraf.toInt() },
fastsettelser =
behandler.regelverk
.regelsettAvType(RegelsettType.Fastsettelse)
.map { it.tilRegelsettDTO(opplysninger, avklaringer) }
.map { it.tilRegelsettDTO(opplysninger, avklaringer, opplysninger()) }
.sortedBy { it.hjemmel.paragraf.toInt() },
kreverTotrinnskontroll = this.kreverTotrinnskontroll(),
avklaringer = generelleAvklaringer.map { it.tilAvklaringDTO() },
Expand All @@ -100,6 +101,7 @@ internal fun Behandling.tilBehandlingDTO(): BehandlingDTO =
private fun Regelsett.tilRegelsettDTO(
opplysninger: Set<Opplysning<*>>,
avklaringer: Set<Avklaring>,
lesbarOpplysninger: LesbarOpplysninger,
): RegelsettDTO {
val produserer = opplysninger.filter { opplysning -> opplysning.opplysningstype in produserer }
val avklaringskoder = avklaringer()
Expand All @@ -112,6 +114,8 @@ private fun Regelsett.tilRegelsettDTO(
status = RegelsettDTO.Status.HarAvklaring
}

val erRelevant = erRelevant(lesbarOpplysninger)

return RegelsettDTO(
navn = hjemmel.kortnavn,
hjemmel =
Expand All @@ -124,6 +128,7 @@ private fun Regelsett.tilRegelsettDTO(
avklaringer = egneAvklaringer.map { it.tilAvklaringDTO() },
opplysningIder = produserer.map { opplysning -> opplysning.id },
status = status,
relevant = erRelevant,
)
}

Expand Down
3 changes: 2 additions & 1 deletion openapi/src/main/resources/behandling-api.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -498,7 +498,6 @@ components:
- tittel
- beskrivelse
- status
- status2
- maskinelt
- sistEndret
properties:
Expand Down Expand Up @@ -559,6 +558,8 @@ components:
hjemmel:
description: Hvilken hjemmel er regelsettet basert på
$ref: '#/components/schemas/Hjemmel'
relevant:
type: boolean
status:
type: string
enum: [ "Oppfylt", "HarAvklaring", "IkkeOppfylt", "Info" ]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ class Regelsett(
private val regler: MutableMap<Opplysningstype<*>, TemporalCollection<Regel<*>>> = mutableMapOf()
private val avklaringer: MutableSet<Avklaringkode> = mutableSetOf()
private var _utfall: Opplysningstype<Boolean>? = null
private var relevant: (opplysninger: LesbarOpplysninger) -> Boolean = { true }
val utfall get() = _utfall
val navn = hjemmel.kortnavn

Expand All @@ -61,6 +62,12 @@ class Regelsett(

fun avklaringer() = avklaringer.toSet()

fun relevantHvis(block: (opplysninger: LesbarOpplysninger) -> Boolean) {
relevant = block
}

fun erRelevant(opplysninger: LesbarOpplysninger) = relevant(opplysninger)

fun utfall(
produserer: Opplysningstype<Boolean>,
gjelderFraOgMed: LocalDate = LocalDate.MIN,
Expand Down

0 comments on commit 704bcd9

Please sign in to comment.