Skip to content

Commit

Permalink
Legg på kort navn
Browse files Browse the repository at this point in the history
Co-authored-by: Tonje Mjøvik Myran <[email protected]>
Co-authored-by: Eivind Havnelid Røyrvik <[email protected]>
Co-authored-by: Sindre Sægrov <[email protected]>
Co-authored-by: Mette Wendy Lindberg Gulbrandsen <[email protected]>
Co-authored-by: Morten Tholander <[email protected]>
  • Loading branch information
6 people committed Jan 14, 2025
1 parent 1cedb70 commit 4435fdb
Show file tree
Hide file tree
Showing 26 changed files with 98 additions and 26 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,10 @@ object Alderskrav {
val kravTilAlder = Opplysningstype.somBoolsk("Oppfyller kravet til alder")

val regelsett =
Regelsett("§ 4-23. Bortfall på grunn av alder") {
Regelsett(
"4-23 Alder",
"§ 4-23. Bortfall på grunn av alder",
) {
regel(fødselsdato) { innhentes }
regel(aldersgrense) { oppslag(virkningsdato) { 67 } }
regel(sisteMåned) { leggTilÅr(fødselsdato, aldersgrense) }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,10 @@ object FulleYtelser {
val ikkeFulleYtelser = Opplysningstype.somBoolsk("Mottar ikke andre fulle ytelser")

val regelsett =
Regelsett("§ 4-24. Medlem som har fulle ytelser etter folketrygdloven eller avtalefestet pensjon") {
Regelsett(
"4-24 Fulle ytelser",
"§ 4-24. Medlem som har fulle ytelser etter folketrygdloven eller avtalefestet pensjon",
) {
utfall(ikkeFulleYtelser) { oppslag(prøvingsdato) { true } }
}

Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,10 @@ object Meldeplikt {
val registrertPåSøknadstidspunktet = Opplysningstype.somBoolsk("Registrert som arbeidssøker på søknadstidspunktet")

val regelsett =
Regelsett("§ 4-8. Meldeplikt og møteplikt") {
Regelsett(
"4-8 Meldeplikt",
"§ 4-8. Meldeplikt og møteplikt",
) {
regel(registrertArbeidssøker) { innhentMed(prøvingsdato) }
utfall(registrertPåSøknadstidspunktet) { erSann(registrertArbeidssøker) }
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,10 @@ object Minsteinntekt {
val minsteinntekt = Opplysningstype.somBoolsk("Krav til minsteinntekt".tekstId("opplysning.krav-til-minsteinntekt"))

val regelsett =
Regelsett("§ 4-4. Krav til minsteinntekt") {
Regelsett(
"4-4 Minsteinntekt",
"§ 4-4. Krav til minsteinntekt",
) {
regel(maksPeriodeLengde) { oppslag(prøvingsdato) { 36 } }
regel(førsteMånedAvOpptjeningsperiode) { trekkFraMånedTilFørste(sisteAvsluttendendeKalenderMåned, maksPeriodeLengde) }

Expand Down
5 changes: 4 additions & 1 deletion dagpenger/src/main/kotlin/no/nav/dagpenger/regel/Opphold.kt
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,10 @@ object Opphold {
val oppfyllerKravet = Opplysningstype.somBoolsk("Oppfyller kravet til opphold og medlemskap i Norge")

val regelsett =
Regelsett("§ 4-2. Opphold i Norge") {
Regelsett(
"4-2 Opphold",
"§ 4-2. Opphold i Norge",
) {
regel(oppholdINorge) { oppslag(prøvingsdato) { true } }
regel(unntakForOpphold) { oppslag(prøvingsdato) { false } }
regel(oppfyllerKravetTilOpphold) { enAv(oppholdINorge, unntakForOpphold) }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,11 @@ object Opptjeningstid {
val sisteAvsluttendendeKalenderMåned = Opplysningstype.somDato("Siste avsluttende kalendermåned".id(SisteAvsluttendeKalenderMåned))

val regelsett =
Regelsett("Opptjeningsperiode", RegelsettType.Fastsettelse) {
Regelsett(
"Opptjeningsperiode",
"A-opplysningsloven § 4. Frist for levering av opplysninger",
RegelsettType.Fastsettelse,
) {
regel(pliktigRapporteringsfrist) { oppslag(prøvingsdato) { Aordningen.rapporteringsfrist(it) } }
regel(justertRapporteringsfrist) { førsteArbeidsdag(pliktigRapporteringsfrist) }
regel(sisteAvsluttendendeKalenderMåned) { sisteAvsluttendeKalenderMåned(prøvingsdato, justertRapporteringsfrist) }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,10 @@ object ReellArbeidssøker {
val kravTilArbeidssøker = Opplysningstype.somBoolsk("Krav til arbeidssøker")

val regelsett =
Regelsett("§ 4-5. Reelle arbeidssøkere") {
Regelsett(
"4-5 Reell arbeidssøker",
"§ 4-5. Reelle arbeidssøkere",
) {
regel(kanJobbeDeltid) { innhentes }
regel(kanJobbeHvorSomHelst) { innhentes }
regel(erArbeidsfør) { innhentes }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,11 @@ object Rettighetstype {
val rettighetstype = Opplysningstype.somBoolsk("Rettighetstype".id("Rettighetstype"))

val regelsett =
Regelsett("Rettighetstype", RegelsettType.Fastsettelse) {
Regelsett(
"Rettighetstype",
"Rettighetstype",
RegelsettType.Fastsettelse,
) {
regel(ordinærArbeid) { innhentes }
regel(permittering) { innhentes }
regel(lønnsgaranti) { innhentes }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,10 @@ object SamordingUtenforFolketrygden {
val dagsatsSamordnetUtenforFolketrygden = Opplysningstype.somBeløp("Dagsats uten barnetillegg samordnet")

val regelsett =
Regelsett("§ 4-26. Samordning med ytelser utenfor folketrygden") {
Regelsett(
"4-26 Samordning utenfor folketrygden",
"§ 4-26. Samordning med ytelser utenfor folketrygden",
) {
regel(andreYtelser) { innhentes }

regel(pensjonFraOffentligTjenestepensjonsordning) { oppslag(prøvingsdato) { false } }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@ object Samordning {

val regelsett =
Regelsett(
"4-25 Samordning reduserte ytelser",
"§ 4-25. Samordning med reduserte ytelser fra folketrygden, eller redusert avtalefestet pensjon",
) {
regel(sykepenger) { innhentMed(prøvingsdato) }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,10 @@ object StreikOgLockout {
val ikkeStreikEllerLockout = Opplysningstype.somBoolsk("Er medlemmet ikke påvirket av streik eller lock-out?")

val regelsett =
Regelsett("§ 4-22. Bortfall ved streik og lock-out").apply {
Regelsett(
"4-22 Bortfall ved streik og lock-out",
"§ 4-22. Bortfall ved streik og lock-out",
).apply {
regel(deltarIStreikOgLockout) { oppslag(prøvingsdato) { false } }
regel(sammeBedriftOgPåvirket) { oppslag(prøvingsdato) { false } }
utfall(ikkeStreikEllerLockout) { ingenAv(deltarIStreikOgLockout, sammeBedriftOgPåvirket) }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,10 @@ object TapAvArbeidsinntektOgArbeidstid {
val kravTilTapAvArbeidsinntektOgArbeidstid = Opplysningstype.somBoolsk("Krav til tap av arbeidsinntekt og arbeidstid")

val regelsett =
Regelsett("§ 4-3. Krav til tap av arbeidsinntekt og arbeidstid") {
Regelsett(
"4-3 Tap av arbeidsinntekt og arbeidstid",
"§ 4-3. Krav til tap av arbeidsinntekt og arbeidstid",
) {
regel(ønsketArbeidstid) { innhentMed(søknadIdOpplysningstype) }

regel(tapAvArbeid) { oppslag(prøvingsdato) { true } } // TODO: Satt til true for testing av innvilgelse
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,10 @@ object Utdanning {
val kravTilUtdanning = Opplysningstype.somBoolsk("Krav til utdanning eller opplæring")

val regelsett =
Regelsett("§ 4-6. Dagpenger under utdanning, opplæring, etablering av egen virksomhet m.v.") {
Regelsett(
"4-6 Utdanning og etablering",
"§ 4-6. Dagpenger under utdanning, opplæring, etablering av egen virksomhet m.v.",
) {
regel(tarUtdanning) { innhentMed() }

// TODO: Legg til regler for å om kravet til utdanning skal vurderes
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,10 @@ object Utestengning {
val oppfyllerKravetTilIkkeUtestengt = Opplysningstype.somBoolsk("Oppfyller krav til ikke utestengt")

val regelsett =
Regelsett("§ 4-28. Utestengning") {
Regelsett(
"4-28 Utestengning",
"§ 4-28. Utestengning",
) {
regel(utestengt) { oppslag(prøvingsdato) { false } }
utfall(oppfyllerKravetTilIkkeUtestengt) { ikke(utestengt) }
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,10 @@ object Verneplikt {
Opplysningstype.somBoolsk("Har utført minst tre måneders militærtjeneste eller obligatorisk sivilforsvarstjeneste")

val regelsett =
Regelsett("§ 4-19. Dagpenger etter avtjent verneplikt") {
Regelsett(
"4-19 Verneplikt",
"§ 4-19. Dagpenger etter avtjent verneplikt",
) {
regel(avtjentVerneplikt) { innhentMed(søknadIdOpplysningstype) }
utfall(oppfyllerKravetTilVerneplikt) { erSann(avtjentVerneplikt) }
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,10 @@ object Virkningstidspunkt {
val dagensDato = Opplysningstype.somDato("Dagens dato")

val regelsett =
Regelsett("Dagpengeforskriften § 3A-1. Søknadstidspunkt").apply {
Regelsett(
"3A-1 Søknadstidspunkt",
"Dagpengeforskriften § 3A-1. Søknadstidspunkt",
).apply {
regel(dagensDato) { finnDagensDato }
regel(virkningstidspunkt) { fraOgMed(KravPåDagpenger.kravPåDagpenger) }
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,11 @@ object Dagpengegrunnlag {
internal val bruktBeregningsregel = Opplysningstype.somTekst("Brukt beregningsregel")

val regelsett =
Regelsett("§ 4-11. Dagpengegrunnlag", Fastsettelse) {
Regelsett(
"4-11 Dagpengegrunnlag",
"§ 4-11. Dagpengegrunnlag",
Fastsettelse,
) {
regel(antallÅrI36Måneder) { oppslag(prøvingsdato) { 3.0 } }
regel(faktorForMaksgrense) { oppslag(prøvingsdato) { 6.0 } }
regel(maksgrenseForGrunnlag) { multiplikasjon(grunnbeløpForDagpengeGrunnlag, faktorForMaksgrense) }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,11 @@ object DagpengenesStørrelse {
val harSamordnet = Opplysningstype.somBoolsk("Har samordnet")

val regelsett =
Regelsett("§ 4-12. Dagpengenes størrelse", Fastsettelse) {
Regelsett(
"4-12 Sats",
"§ 4-12. Dagpengenes størrelse",
Fastsettelse,
) {
regel(barn) { innhentMed(søknadIdOpplysningstype) }
regel(antallBarn) { antallAv(barn) { kvalifiserer } }

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,11 @@ object Dagpengeperiode {
private val ingenOrdinærPeriode = Opplysningstype.somHeltall("Stønadsuker når kravet til minste arbeidsinntekt ikke er oppfylt")

val regelsett =
Regelsett("§ 4-15. Antall stønadsuker (stønadsperiode)", RegelsettType.Fastsettelse) {
Regelsett(
"4-15 Periode",
"§ 4-15. Antall stønadsuker (stønadsperiode)",
RegelsettType.Fastsettelse,
) {
regel(kortPeriode) { oppslag(prøvingsdato) { 52 } }
regel(langPeriode) { oppslag(prøvingsdato) { 104 } }
regel(terskelFaktor12) { oppslag(prøvingsdato) { 2.0 } }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,11 @@ object Egenandel {
private val faktor = Opplysningstype.somDesimaltall("Antall dagsats for egenandel")

val regelsett =
Regelsett("§ 4-9. Egenandel", RegelsettType.Fastsettelse) {
Regelsett(
"4-9 Egenandel",
"§ 4-9. Egenandel",
RegelsettType.Fastsettelse,
) {
regel(faktor) { oppslag(prøvingsdato) { 3.0 } }
regel(egenandel) { multiplikasjon(sats, faktor) }
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,11 @@ object VernepliktFastsetting {
val grunnlagForVernepliktErGunstigst = Opplysningstype.somBoolsk("Grunnlaget for verneplikt er høyere enn dagpengegrunnlaget")

val regelsett =
Regelsett("§ 4-19. Dagpenger etter avtjent verneplikt", RegelsettType.Fastsettelse) {
Regelsett(
"4-19 Dagpenger ved verneplikt",
"§ 4-19. Dagpenger etter avtjent verneplikt",
RegelsettType.Fastsettelse,
) {
regel(antallG) { oppslag(prøvingsdato) { 3.0 } }
regel(vernepliktGrunnlag) { multiplikasjon(grunnbeløpForDagpengeGrunnlag, antallG) }
regel(vernepliktPeriode) { oppslag(prøvingsdato) { 26 } }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,8 @@ private fun Regelsett.tilRegelsettDTO(
}

return RegelsettDTO(
navn,
navn = navn,
hjemmel = hjemmel,
avklaringer = egneAvklaringer.map { it.tilAvklaringDTO() },
opplysningIder = produserer.map { opplysning -> opplysning.id },
status = status,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -268,7 +268,7 @@ internal class BehandlingApiTest {
behandlingDto.opplysninger.all { it.redigerbar } shouldBe false
behandlingDto.avklaringer.shouldNotBeEmpty()

with(behandlingDto.vilkår.single { it.navn == "§ 4-4. Krav til minsteinntekt" }) {
with(behandlingDto.vilkår.single { it.navn == "4-4 Minsteinntekt" }) {
avklaringer shouldHaveSize 1
avklaringer.single().kode shouldBe "InntektNesteKalendermåned"
}
Expand Down
4 changes: 4 additions & 0 deletions openapi/src/main/resources/behandling-api.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -546,6 +546,10 @@ components:
- opplysninger
properties:
navn:
description: Kort navn som beskriver regelsettet
type: string
hjemmel:
description: Hvilken hjemmel er regelsettet basert på
type: string
status:
type: string
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,12 @@ enum class RegelsettType {

class Regelsett(
val navn: String,
val hjemmel: String,
val type: RegelsettType,
block: Regelsett.() -> Unit = {},
) {
constructor(navn: String, block: Regelsett.() -> Unit = {}) : this(navn, RegelsettType.Vilkår, block)
constructor(navn: String, block: Regelsett.() -> Unit = {}) : this(navn, navn, RegelsettType.Vilkår, block)
constructor(navn: String, hjemmel: String, block: Regelsett.() -> Unit = {}) : this(navn, hjemmel, RegelsettType.Vilkår, block)

private val regler: MutableMap<Opplysningstype<*>, TemporalCollection<Regel<*>>> = mutableMapOf()
private val avklaringer: MutableSet<Avklaringkode> = mutableSetOf()
Expand Down

0 comments on commit 4435fdb

Please sign in to comment.