Skip to content

Commit

Permalink
Merge branch 'main' into dependabot/gradle/com.github.navikt.tbd-libs…
Browse files Browse the repository at this point in the history
…-naisful-app-2025.01.12-10.18-9546f140
  • Loading branch information
geiralund authored Jan 14, 2025
2 parents b141d56 + 77293ed commit 27704e3
Show file tree
Hide file tree
Showing 54 changed files with 746 additions and 386 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -3,27 +3,13 @@ package no.nav.dagpenger.avklaring
import no.nav.dagpenger.avklaring.Avklaring.Endring.Avbrutt
import no.nav.dagpenger.avklaring.Avklaring.Endring.Avklart
import no.nav.dagpenger.avklaring.Avklaring.Endring.UnderBehandling
import no.nav.dagpenger.opplysning.Avklaringkode
import no.nav.dagpenger.opplysning.Kilde
import no.nav.dagpenger.opplysning.Saksbehandlerkilde
import no.nav.dagpenger.uuid.UUIDv7
import java.time.LocalDateTime
import java.util.UUID

data class Avklaringkode(
val kode: String,
val tittel: String,
val beskrivelse: String,
val kanKvitteres: Boolean = true,
) {
override fun equals(other: Any?): Boolean {
if (this === other) return true
if (other !is Avklaringkode) return false
return kode == other.kode
}

override fun hashCode() = kode.hashCode()
}

data class Avklaring internal constructor(
val id: UUID,
val kode: Avklaringkode,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package no.nav.dagpenger.avklaring

import no.nav.dagpenger.opplysning.Avklaringkode
import no.nav.dagpenger.opplysning.LesbarOpplysninger
import no.nav.dagpenger.opplysning.LesbarOpplysningerMedLogg
import java.time.LocalDateTime
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package no.nav.dagpenger.avklaring

import no.nav.dagpenger.opplysning.Avklaringkode

object TestAvklaringer {
val ArbeidIEØS =
Avklaringkode(
Expand Down
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 @@ -24,12 +25,15 @@ object Alderskrav {
val kravTilAlder = Opplysningstype.somBoolsk("Oppfyller kravet til alder")

val regelsett =
Regelsett("§ 4-23. Bortfall på grunn av alder") {
Regelsett(
folketrygden.hjemmel(4, 23, "Bortfall på grunn av alder", "4-23 Alder"),
) {
regel(fødselsdato) { innhentes }
regel(aldersgrense) { oppslag(virkningsdato) { 67 } }
regel(sisteMåned) { leggTilÅr(fødselsdato, aldersgrense) }
regel(sisteDagIMåned) { sisteDagIMåned(sisteMåned) }
regel(kravTilAlder) { førEllerLik(virkningsdato, sisteDagIMåned) }

utfall(kravTilAlder) { førEllerLik(virkningsdato, sisteDagIMåned) }
}

val MuligGjenopptakKontroll =
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package no.nav.dagpenger.regel

import no.nav.dagpenger.avklaring.Avklaringkode
import no.nav.dagpenger.opplysning.Avklaringkode

object Avklaringspunkter {
val YtelserUtenforFolketrygden: Avklaringkode =
Expand Down
11 changes: 9 additions & 2 deletions dagpenger/src/main/kotlin/no/nav/dagpenger/regel/FulleYtelser.kt
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,15 @@ 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") {
regel(ikkeFulleYtelser) { oppslag(prøvingsdato) { true } }
Regelsett(
folketrygden.hjemmel(
4,
24,
"Medlem som har fulle ytelser etter folketrygdloven eller avtalefestet pensjon",
"4-24 Fulle ytelser",
),
) {
utfall(ikkeFulleYtelser) { oppslag(prøvingsdato) { true } }
}

val ønsketResultat = listOf(ikkeFulleYtelser)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,14 +14,12 @@ object KravPåDagpenger {

val regelsett =
Regelsett("Krav på dagpenger") {

regel(minsteinntektEllerVerneplikt) { enAv(minsteinntekt, oppfyllerKravetTilVerneplikt) }

regel(kravPåDagpenger) {
utfall(kravPåDagpenger) {
alle(
Alderskrav.kravTilAlder,
FulleYtelser.ikkeFulleYtelser,
Medlemskap.oppfyllerMedlemskap,
Meldeplikt.registrertPåSøknadstidspunktet,
minsteinntektEllerVerneplikt,
Opphold.oppfyllerKravet,
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")
18 changes: 0 additions & 18 deletions dagpenger/src/main/kotlin/no/nav/dagpenger/regel/Medlemskap.kt

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,11 @@ 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(
folketrygden.hjemmel(4, 8, "Meldeplikt og møteplikt", "4-8 Meldeplikt"),
) {
regel(registrertArbeidssøker) { innhentMed(prøvingsdato) }
regel(registrertPåSøknadstidspunktet) { erSann(registrertArbeidssøker) }
utfall(registrertPåSøknadstidspunktet) { erSann(registrertArbeidssøker) }
}

val IkkeRegistrertSomArbeidsøkerKontroll =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,9 @@ object Minsteinntekt {
val minsteinntekt = Opplysningstype.somBoolsk("Krav til minsteinntekt".tekstId("opplysning.krav-til-minsteinntekt"))

val regelsett =
Regelsett("§ 4-4. Krav til minsteinntekt") {
Regelsett(
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 All @@ -96,7 +98,11 @@ object Minsteinntekt {
regel(`36mndTerskel`) { multiplikasjon(grunnbeløp, `36mndTerskelFaktor`) }
regel(over36mndTerskel) { størreEnnEllerLik(inntekt36, `36mndTerskel`) }

regel(minsteinntekt) { enAv(over12mndTerskel, over36mndTerskel) }
utfall(minsteinntekt) { enAv(over12mndTerskel, over36mndTerskel) }

avklaring(Avklaringspunkter.SvangerskapsrelaterteSykepenger)
avklaring(Avklaringspunkter.InntektNesteKalendermåned)
avklaring(Avklaringspunkter.ØnskerEtterRapporteringsfrist)
}

private fun grunnbeløpFor(it: LocalDate) =
Expand Down
17 changes: 15 additions & 2 deletions dagpenger/src/main/kotlin/no/nav/dagpenger/regel/Opphold.kt
Original file line number Diff line number Diff line change
Expand Up @@ -3,20 +3,33 @@ package no.nav.dagpenger.regel
import no.nav.dagpenger.opplysning.Opplysningstype
import no.nav.dagpenger.opplysning.Regelsett
import no.nav.dagpenger.opplysning.id
import no.nav.dagpenger.opplysning.regel.alle
import no.nav.dagpenger.opplysning.regel.enAv
import no.nav.dagpenger.opplysning.regel.erSann
import no.nav.dagpenger.opplysning.regel.oppslag
import no.nav.dagpenger.regel.Søknadstidspunkt.prøvingsdato

object Opphold {
var oppholdINorge = Opplysningstype.somBoolsk("Opphold i Norge".id("OppholdINorge"))
var unntakForOpphold = Opplysningstype.somBoolsk("Oppfyller unntak for opphold i Norge")
val oppfyllerKravetTilOpphold = Opplysningstype.somBoolsk("Oppfyller kravet til opphold i Norge eller unntak")

val medlemFolketrygden = Opplysningstype.somBoolsk("Er personen medlem av folketrygden")
val oppfyllerMedlemskap = Opplysningstype.somBoolsk("Oppfyller kravet til medlemskap")

val oppfyllerKravet = Opplysningstype.somBoolsk("Oppfyller kravet til opphold i Norge")

val regelsett =
Regelsett("§ 4-2. Opphold i Norge") {
Regelsett(
folketrygden.hjemmel(4, 2, "Opphold i Norge", "4-2 Opphold"),
) {
regel(oppholdINorge) { oppslag(prøvingsdato) { true } }
regel(unntakForOpphold) { oppslag(prøvingsdato) { false } }
regel(oppfyllerKravetTilOpphold) { enAv(oppholdINorge, unntakForOpphold) }

regel(medlemFolketrygden) { oppslag(prøvingsdato) { true } }
regel(oppfyllerMedlemskap) { erSann(medlemFolketrygden) }

regel(oppfyllerKravet) { enAv(oppholdINorge, unntakForOpphold) }
utfall(oppfyllerKravet) { alle(oppfyllerKravetTilOpphold, oppfyllerMedlemskap) }
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package no.nav.dagpenger.regel

import no.nav.dagpenger.opplysning.Opplysningstype
import no.nav.dagpenger.opplysning.Regelsett
import no.nav.dagpenger.opplysning.RegelsettType
import no.nav.dagpenger.opplysning.id
import no.nav.dagpenger.opplysning.regel.dato.førsteArbeidsdag
import no.nav.dagpenger.opplysning.regel.dato.sisteAvsluttendeKalenderMåned
Expand All @@ -23,7 +24,10 @@ object Opptjeningstid {
val sisteAvsluttendendeKalenderMåned = Opplysningstype.somDato("Siste avsluttende kalendermåned".id(SisteAvsluttendeKalenderMåned))

val regelsett =
Regelsett("Opptjeningsperiode") {
Regelsett(
aOpplynsingsLoven.hjemmel(1, 2, "Frist for levering av opplysninger", "Opptjeningsperiode"),
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,9 @@ object ReellArbeidssøker {
val kravTilArbeidssøker = Opplysningstype.somBoolsk("Krav til arbeidssøker")

val regelsett =
Regelsett("§ 4-5. Reelle arbeidssøkere") {
Regelsett(
folketrygden.hjemmel(4, 5, "Reelle arbeidssøkere", "4-5 Reell arbeidssøker"),
) {
regel(kanJobbeDeltid) { innhentes }
regel(kanJobbeHvorSomHelst) { innhentes }
regel(erArbeidsfør) { innhentes }
Expand All @@ -51,7 +53,7 @@ object ReellArbeidssøker {
regel(oppfyllerKravTilArbeidsfør) { enAv(erArbeidsfør) }
regel(oppfyllerKravetTilEthvertArbeid) { enAv(villigTilEthvertArbeid) }

regel(kravTilArbeidssøker) {
utfall(kravTilArbeidssøker) {
alle(
oppfyllerKravTilArbeidssøker,
oppfyllerKravTilMobilitet,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@ val RegelverkDagpenger =
Egenandel.regelsett,
FulleYtelser.regelsett,
KravPåDagpenger.regelsett,
Medlemskap.regelsett,
Meldeplikt.regelsett,
Minsteinntekt.regelsett,
Opphold.regelsett,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package no.nav.dagpenger.regel

import no.nav.dagpenger.opplysning.Opplysningstype
import no.nav.dagpenger.opplysning.Regelsett
import no.nav.dagpenger.opplysning.RegelsettType
import no.nav.dagpenger.opplysning.id
import no.nav.dagpenger.opplysning.regel.enAv
import no.nav.dagpenger.opplysning.regel.ingenAv
Expand All @@ -26,7 +27,10 @@ object Rettighetstype {
val rettighetstype = Opplysningstype.somBoolsk("Rettighetstype".id("Rettighetstype"))

val regelsett =
Regelsett("Rettighetstype") {
Regelsett(
folketrygden.hjemmel(0, 0, "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,9 @@ object SamordingUtenforFolketrygden {
val dagsatsSamordnetUtenforFolketrygden = Opplysningstype.somBeløp("Dagsats uten barnetillegg samordnet")

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

regel(pensjonFraOffentligTjenestepensjonsordning) { oppslag(prøvingsdato) { false } }
Expand Down Expand Up @@ -104,7 +106,7 @@ object SamordingUtenforFolketrygden {

regel(dagsatsSamordnetUtenforFolketrygden) { divisjon(samordnetUkessats, arbeidsdagerPerUke) }

regel(skalSamordnesUtenforFolketrygden) {
utfall(skalSamordnesUtenforFolketrygden) {
enAv(
andreYtelser,
pensjonFraOffentligTjenestepensjonsordning,
Expand Down
12 changes: 7 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,7 +57,12 @@ object Samordning {

val regelsett =
Regelsett(
"§ 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 Expand Up @@ -99,7 +101,7 @@ object Samordning {

regel(utfallEtterSamordning) { enAv(kanUtbetale, harBarnetillegg) }

regel(skalSamordnes) {
utfall(skalSamordnes) {
enAv(
sykepenger,
pleiepenger,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,11 @@ 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(
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 } }
regel(ikkeStreikEllerLockout) { ingenAv(deltarIStreikOgLockout, sammeBedriftOgPåvirket) }
utfall(ikkeStreikEllerLockout) { ingenAv(deltarIStreikOgLockout, sammeBedriftOgPåvirket) }
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,6 @@ class Søknadsprosess : Forretningsprosess {
listOf(
Alderskrav.kravTilAlder,
FulleYtelser.ikkeFulleYtelser,
Medlemskap.oppfyllerMedlemskap,
Meldeplikt.registrertPåSøknadstidspunktet,
minsteinntektEllerVerneplikt,
Opphold.oppfyllerKravet,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,9 @@ 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(
folketrygden.hjemmel(4, 3, "Krav til tap av arbeidsinntekt og arbeidstid", "4-3 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 Expand Up @@ -93,7 +95,7 @@ object TapAvArbeidsinntektOgArbeidstid {

regel(beregningsregel) { enAv(beregningsregel6mnd, beregningsregel12mnd, beregningsregel36mnd) }

regel(kravTilTapAvArbeidsinntektOgArbeidstid) {
utfall(kravTilTapAvArbeidsinntektOgArbeidstid) {
alle(kravTilTapAvArbeidsinntekt, kravTilTaptArbeidstid, beregningsregel, kravTilMinstTaptArbeidstid)
}
}
Expand Down
Loading

0 comments on commit 27704e3

Please sign in to comment.