Skip to content

Commit

Permalink
Lag støtte for hjemmel med og uten kortnavn
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 17af7b1 commit fad7306
Show file tree
Hide file tree
Showing 26 changed files with 124 additions and 55 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import no.nav.dagpenger.opplysning.regel.dato.leggTilÅr
import no.nav.dagpenger.opplysning.regel.dato.sisteDagIMåned
import no.nav.dagpenger.opplysning.regel.innhentes
import no.nav.dagpenger.opplysning.regel.oppslag
import no.nav.dagpenger.regel.Alderskrav.sisteDagIMåned
import no.nav.dagpenger.regel.Søknadstidspunkt.prøvingsdato
import no.nav.dagpenger.regel.Søknadstidspunkt.søknadsdato

Expand All @@ -25,8 +26,7 @@ object Alderskrav {

val regelsett =
Regelsett(
"4-23 Alder",
"§ 4-23. Bortfall på grunn av alder",
folketrygden.hjemmel(4, 23, "Bortfall på grunn av alder", "4-23 Alder"),
) {
regel(fødselsdato) { innhentes }
regel(aldersgrense) { oppslag(virkningsdato) { 67 } }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,12 @@ object FulleYtelser {

val regelsett =
Regelsett(
"4-24 Fulle ytelser",
"§ 4-24. Medlem som har fulle ytelser etter folketrygdloven eller avtalefestet pensjon",
folketrygden.hjemmel(
4,
24,
"Medlem som har fulle ytelser etter folketrygdloven eller avtalefestet pensjon",
"4-24 Fulle ytelser",
),
) {
utfall(ikkeFulleYtelser) { oppslag(prøvingsdato) { true } }
}
Expand Down
7 changes: 7 additions & 0 deletions dagpenger/src/main/kotlin/no/nav/dagpenger/regel/Lovkilder.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package no.nav.dagpenger.regel

import no.nav.dagpenger.opplysning.Lovkilde

val aOpplynsingsLoven = Lovkilde("A-opplysningsloven", "a-opplysningsloven")
val forskriftTilFolketrygden = Lovkilde("Forskrift til Folketrygdloven", "ftrl")
val folketrygden = Lovkilde("Folketrygdloven", "ftrl")
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,7 @@ object Meldeplikt {

val regelsett =
Regelsett(
"4-8 Meldeplikt",
"§ 4-8. Meldeplikt og møteplikt",
folketrygden.hjemmel(4, 8, "Meldeplikt og møteplikt", "4-8 Meldeplikt"),
) {
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 @@ -70,8 +70,7 @@ object Minsteinntekt {

val regelsett =
Regelsett(
"4-4 Minsteinntekt",
"§ 4-4. Krav til minsteinntekt",
folketrygden.hjemmel(4, 4, "Krav til minsteinntekt", "4-4 Minsteinntekt"),
) {
regel(maksPeriodeLengde) { oppslag(prøvingsdato) { 36 } }
regel(førsteMånedAvOpptjeningsperiode) { trekkFraMånedTilFørste(sisteAvsluttendendeKalenderMåned, maksPeriodeLengde) }
Expand Down
3 changes: 1 addition & 2 deletions dagpenger/src/main/kotlin/no/nav/dagpenger/regel/Opphold.kt
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,7 @@ object Opphold {

val regelsett =
Regelsett(
"4-2 Opphold",
"§ 4-2. Opphold i Norge",
folketrygden.hjemmel(4, 2, "Opphold i Norge", "4-2 Opphold"),
) {
regel(oppholdINorge) { oppslag(prøvingsdato) { true } }
regel(unntakForOpphold) { oppslag(prøvingsdato) { false } }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,7 @@ object Opptjeningstid {

val regelsett =
Regelsett(
"Opptjeningsperiode",
"A-opplysningsloven § 4. Frist for levering av opplysninger",
aOpplynsingsLoven.hjemmel(1, 2, "Frist for levering av opplysninger", "Opptjeningsperiode"),
RegelsettType.Fastsettelse,
) {
regel(pliktigRapporteringsfrist) { oppslag(prøvingsdato) { Aordningen.rapporteringsfrist(it) } }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,8 +38,7 @@ object ReellArbeidssøker {

val regelsett =
Regelsett(
"4-5 Reell arbeidssøker",
"§ 4-5. Reelle arbeidssøkere",
folketrygden.hjemmel(4, 5, "Reelle arbeidssøkere", "4-5 Reell arbeidssøker"),
) {
regel(kanJobbeDeltid) { innhentes }
regel(kanJobbeHvorSomHelst) { innhentes }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,7 @@ object Rettighetstype {

val regelsett =
Regelsett(
"Rettighetstype",
"Rettighetstype",
folketrygden.hjemmel(0, 0, "Rettighetstype", "Rettighetstype"),
RegelsettType.Fastsettelse,
) {
regel(ordinærArbeid) { innhentes }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,8 +62,7 @@ object SamordingUtenforFolketrygden {

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

Expand Down
11 changes: 6 additions & 5 deletions dagpenger/src/main/kotlin/no/nav/dagpenger/regel/Samordning.kt
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,6 @@ import no.nav.dagpenger.regel.Behov.Pleiepenger
import no.nav.dagpenger.regel.Behov.Svangerskapspenger
import no.nav.dagpenger.regel.Behov.Sykepenger
import no.nav.dagpenger.regel.Behov.Uføre
import no.nav.dagpenger.regel.Samordning.samordnetDagsats
import no.nav.dagpenger.regel.Samordning.skalSamordnes
import no.nav.dagpenger.regel.Samordning.utfallEtterSamordning
import no.nav.dagpenger.regel.Søknadstidspunkt.prøvingsdato
import no.nav.dagpenger.regel.TapAvArbeidsinntektOgArbeidstid.beregnetArbeidstid
import no.nav.dagpenger.regel.fastsetting.DagpengenesStørrelse.dagsatsEtterNittiProsent
Expand Down Expand Up @@ -60,8 +57,12 @@ object Samordning {

val regelsett =
Regelsett(
"4-25 Samordning reduserte ytelser",
"§ 4-25. Samordning med reduserte ytelser fra folketrygden, eller redusert avtalefestet pensjon",
folketrygden.hjemmel(
kapittel = 4,
paragraf = 25,
tittel = "Samordning med reduserte ytelser fra folketrygden, eller redusert avtalefestet pensjon",
kortnavn = "4-25 Samordning reduserte ytelser",
),
) {
regel(sykepenger) { innhentMed(prøvingsdato) }
regel(pleiepenger) { innhentMed(prøvingsdato) }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,7 @@ object StreikOgLockout {

val regelsett =
Regelsett(
"4-22 Streik og lock-out",
"§ 4-22. Bortfall ved streik og lock-out",
folketrygden.hjemmel(4, 22, "Bortfall ved streik og lock-out", "4-22 Streik og lock-out"),
).apply {
regel(deltarIStreikOgLockout) { oppslag(prøvingsdato) { false } }
regel(sammeBedriftOgPåvirket) { oppslag(prøvingsdato) { false } }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,8 +53,7 @@ object TapAvArbeidsinntektOgArbeidstid {

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

Expand Down
8 changes: 6 additions & 2 deletions dagpenger/src/main/kotlin/no/nav/dagpenger/regel/Utdanning.kt
Original file line number Diff line number Diff line change
Expand Up @@ -44,8 +44,12 @@ object Utdanning {

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

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,7 @@ object Utestengning {

val regelsett =
Regelsett(
"4-28 Utestengning",
"§ 4-28. Utestengning",
folketrygden.hjemmel(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 @@ -15,8 +15,7 @@ object Verneplikt {

val regelsett =
Regelsett(
"4-19 Verneplikt",
"§ 4-19. Dagpenger etter avtjent verneplikt",
folketrygden.hjemmel(4, 19, "Dagpenger etter avtjent verneplikt", "4-19 Verneplikt"),
) {
regel(avtjentVerneplikt) { innhentMed(søknadIdOpplysningstype) }
utfall(oppfyllerKravetTilVerneplikt) { erSann(avtjentVerneplikt) }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,7 @@ object Virkningstidspunkt {

val regelsett =
Regelsett(
"3A-1 Søknadstidspunkt",
"Dagpengeforskriften § 3A-1. Søknadstidspunkt",
forskriftTilFolketrygden.hjemmel(3, 1, "Søknadstidspunkt", "§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 @@ -24,6 +24,7 @@ import no.nav.dagpenger.opplysning.verdier.Beløp
import no.nav.dagpenger.regel.Minsteinntekt.inntektFraSkatt
import no.nav.dagpenger.regel.Søknadstidspunkt.prøvingsdato
import no.nav.dagpenger.regel.fastsetting.VernepliktFastsetting.grunnlagHvisVerneplikt
import no.nav.dagpenger.regel.folketrygden
import java.time.LocalDate

object Dagpengegrunnlag {
Expand Down Expand Up @@ -62,8 +63,7 @@ object Dagpengegrunnlag {

val regelsett =
Regelsett(
"4-11 Dagpengegrunnlag",
"§ 4-11. Dagpengegrunnlag",
folketrygden.hjemmel(4, 11, "Dagpengegrunnlag", "4-11 Dagpengegrunnlag"),
Fastsettelse,
) {
regel(antallÅrI36Måneder) { oppslag(prøvingsdato) { 3.0 } }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ import no.nav.dagpenger.regel.SamordingUtenforFolketrygden.dagsatsSamordnetUtenf
import no.nav.dagpenger.regel.Søknadstidspunkt.prøvingsdato
import no.nav.dagpenger.regel.Søknadstidspunkt.søknadIdOpplysningstype
import no.nav.dagpenger.regel.fastsetting.Dagpengegrunnlag.grunnlag
import no.nav.dagpenger.regel.folketrygden
import java.math.BigDecimal
import java.time.LocalDate

Expand Down Expand Up @@ -65,8 +66,7 @@ object DagpengenesStørrelse {

val regelsett =
Regelsett(
"4-12 Sats",
"§ 4-12. Dagpengenes størrelse",
folketrygden.hjemmel(4, 12, "Dagpengenes størrelse", "4-12 Sats og barnetillegg"),
Fastsettelse,
) {
regel(barn) { innhentMed(søknadIdOpplysningstype) }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import no.nav.dagpenger.opplysning.regel.størreEnnEllerLik
import no.nav.dagpenger.regel.Minsteinntekt
import no.nav.dagpenger.regel.Søknadstidspunkt.prøvingsdato
import no.nav.dagpenger.regel.fastsetting.Dagpengeperiode.ordinærPeriode
import no.nav.dagpenger.regel.folketrygden

object Dagpengeperiode {
val antallStønadsuker = Opplysningstype.somHeltall("Antall stønadsuker")
Expand Down Expand Up @@ -40,8 +41,7 @@ object Dagpengeperiode {

val regelsett =
Regelsett(
"4-15 Periode",
"§ 4-15. Antall stønadsuker (stønadsperiode)",
folketrygden.hjemmel(4, 15, "Antall stønadsuker (stønadsperiode)", "4-15 Periode"),
RegelsettType.Fastsettelse,
) {
regel(kortPeriode) { oppslag(prøvingsdato) { 52 } }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import no.nav.dagpenger.opplysning.RegelsettType
import no.nav.dagpenger.opplysning.regel.multiplikasjon
import no.nav.dagpenger.opplysning.regel.oppslag
import no.nav.dagpenger.regel.Søknadstidspunkt.prøvingsdato
import no.nav.dagpenger.regel.folketrygden

object Egenandel {
val egenandel = Opplysningstype.somBeløp("Egenandel")
Expand All @@ -14,8 +15,7 @@ object Egenandel {

val regelsett =
Regelsett(
"4-9 Egenandel",
"§ 4-9. Egenandel",
folketrygden.hjemmel(4, 9, "Egenandel", "4-9 Egenandel"),
RegelsettType.Fastsettelse,
) {
regel(faktor) { oppslag(prøvingsdato) { 3.0 } }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ import no.nav.dagpenger.regel.fastsetting.VernepliktFastsetting.grunnlagForVerne
import no.nav.dagpenger.regel.fastsetting.VernepliktFastsetting.vernepliktFastsattVanligArbeidstid
import no.nav.dagpenger.regel.fastsetting.VernepliktFastsetting.vernepliktGrunnlag
import no.nav.dagpenger.regel.fastsetting.VernepliktFastsetting.vernepliktPeriode
import no.nav.dagpenger.regel.folketrygden

object VernepliktFastsetting {
private val antallG = Opplysningstype.somDesimaltall("Antall G som gis som grunnlag ved verneplikt")
Expand All @@ -28,8 +29,7 @@ object VernepliktFastsetting {

val regelsett =
Regelsett(
"4-19 Dagpenger ved verneplikt",
"§ 4-19. Dagpenger etter avtjent verneplikt",
folketrygden.hjemmel(4, 19, "Dagpenger etter avtjent verneplikt", "4-19 Dagpenger ved verneplikt"),
RegelsettType.Fastsettelse,
) {
regel(antallG) { oppslag(prøvingsdato) { 3.0 } }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ import no.nav.dagpenger.behandling.api.models.AvklaringDTO
import no.nav.dagpenger.behandling.api.models.BehandlingDTO
import no.nav.dagpenger.behandling.api.models.BehandlingOpplysningerDTO
import no.nav.dagpenger.behandling.api.models.DataTypeDTO
import no.nav.dagpenger.behandling.api.models.HjemmelDTO
import no.nav.dagpenger.behandling.api.models.LovkildeDTO
import no.nav.dagpenger.behandling.api.models.OpplysningDTO
import no.nav.dagpenger.behandling.api.models.OpplysningskildeDTO
import no.nav.dagpenger.behandling.api.models.RegelDTO
Expand Down Expand Up @@ -83,12 +85,12 @@ internal fun Behandling.tilBehandlingDTO(): BehandlingDTO =
behandler.regelverk
.regelsettAvType(RegelsettType.Vilkår)
.map { it.tilRegelsettDTO(opplysninger, avklaringer) }
.sortedBy { it.navn },
.sortedBy { it.hjemmel.kapittel },
fastsettelser =
behandler.regelverk
.regelsettAvType(RegelsettType.Fastsettelse)
.map { it.tilRegelsettDTO(opplysninger, avklaringer) }
.sortedBy { it.navn },
.sortedBy { it.hjemmel.kapittel },
kreverTotrinnskontroll = this.kreverTotrinnskontroll(),
avklaringer = generelleAvklaringer.map { it.tilAvklaringDTO() },
opplysninger = opplysninger.map { it.tilOpplysningDTO() },
Expand All @@ -111,8 +113,14 @@ private fun Regelsett.tilRegelsettDTO(
}

return RegelsettDTO(
navn = navn,
hjemmel = hjemmel,
navn = hjemmel.kortnavn,
hjemmel =
HjemmelDTO(
kilde = LovkildeDTO(hjemmel.kilde.navn, hjemmel.kilde.kortnavn),
kapittel = hjemmel.kapittel.toString(),
paragraf = hjemmel.paragraf.toString(),
tittel = hjemmel.toString(),
),
avklaringer = egneAvklaringer.map { it.tilAvklaringDTO() },
opplysningIder = produserer.map { opplysning -> opplysning.id },
status = status,
Expand Down
31 changes: 30 additions & 1 deletion openapi/src/main/resources/behandling-api.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -542,6 +542,7 @@ components:
type: object
required:
- navn
- hjemmel
- avklaringer
- opplysninger
properties:
Expand All @@ -550,7 +551,7 @@ components:
type: string
hjemmel:
description: Hvilken hjemmel er regelsettet basert på
type: string
$ref: '#/components/schemas/Hjemmel'
status:
type: string
enum: [ "Oppfylt", "HarAvklaring", "IkkeOppfylt", "Info" ]
Expand All @@ -564,6 +565,34 @@ components:
items:
$ref: '#/components/schemas/OpplysningsId'

Hjemmel:
type: object
required:
- kilde
- kapittel
- paragraf
properties:
kilde:
description: Lov, forskrift, eller rundskriv
$ref: '#/components/schemas/Lovkilde'
kapittel:
type: string
paragraf:
type: string
tittel:
type: string

Lovkilde:
type: object
required:
- navn
- kortnavn
properties:
navn:
type: string
kortnavn:
type: string

Opplysning:
type: object
required:
Expand Down
Loading

0 comments on commit fad7306

Please sign in to comment.