Skip to content

Commit

Permalink
Merge pull request #164 from navikt/bugfix/verneplikt
Browse files Browse the repository at this point in the history
Bugfix/verneplikt
  • Loading branch information
geiralund authored Jan 6, 2025
2 parents b0cf288 + c1b6c01 commit 8be5c9d
Show file tree
Hide file tree
Showing 11 changed files with 89 additions and 54 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,6 @@ class Søknadsprosess : Forretningsprosess {
Utdanning.kravTilUtdanning,
Utestengning.oppfyllerKravetTilIkkeUtestengt,
)
ønsketResultat.addAll(VernepliktFastsetting.ønsketResultat)
ønsketResultat.addAll(
vilkår,
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import no.nav.dagpenger.regel.Minsteinntekt
import no.nav.dagpenger.regel.Søknadstidspunkt.prøvingsdato

object Dagpengeperiode {
private val antallStønadsuker = Opplysningstype.somHeltall("Antall stønadsuker")
val antallStønadsuker = Opplysningstype.somHeltall("Antall stønadsuker")
private val gjenståendeStønadsdager = Opplysningstype.somHeltall("Antall gjenstående stønadsdager")
val ordinærPeriode = Opplysningstype.somHeltall("Antall stønadsuker som gis ved ordinære dagpenger")
private val dagerIUka = Opplysningstype.somHeltall("Antall dager som skal regnes med i hver uke")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,5 +37,11 @@ object VernepliktFastsetting {
regel(grunnlagForVernepliktErGunstigst) { størreEnn(grunnlagHvisVerneplikt, dagpengegrunnlag) }
}

val ønsketResultat = listOf(vernepliktGrunnlag, vernepliktPeriode, vernepliktFastsattVanligArbeidstid, grunnlagForVernepliktErGunstigst)
val ønsketResultat =
listOf(
vernepliktGrunnlag,
vernepliktPeriode,
vernepliktFastsattVanligArbeidstid,
grunnlagForVernepliktErGunstigst,
)
}
Original file line number Diff line number Diff line change
Expand Up @@ -206,16 +206,25 @@ private fun vedtakFastsattDTO(
KvoteDTO(
"Dagpengeperiode",
KvoteDTO.Type.uker,
opplysninger.finnOpplysning(Dagpengeperiode.ordinærPeriode).verdi.toBigDecimal(),
)
},
opplysninger.finnOpplysning(grunnlagForVernepliktErGunstigst).takeIf { it.verdi }?.let {
KvoteDTO(
"Verneplikt",
KvoteDTO.Type.uker,
opplysninger.finnOpplysning(vernepliktPeriode).verdi.toBigDecimal(),
runCatching { opplysninger.finnOpplysning(Dagpengeperiode.ordinærPeriode).verdi.toBigDecimal() }.getOrElse {
opplysninger
.finnOpplysning(
Dagpengeperiode.antallStønadsuker,
).verdi
.toBigDecimal()
},
)
},
runCatching { opplysninger.finnOpplysning(grunnlagForVernepliktErGunstigst) }
.getOrNull()
.takeIf { it?.verdi == true }
?.let {
KvoteDTO(
"Verneplikt",
KvoteDTO.Type.uker,
opplysninger.finnOpplysning(vernepliktPeriode).verdi.toBigDecimal(),
)
},
KvoteDTO(
"Egenandel",
KvoteDTO.Type.beløp,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ internal class OpplysningSvarMottak(
}

private val skipBehovId = listOf("ingen-match")
private val skipBehandlingsId = listOf("ingen-match")
private val skipBehandlingsId = listOf("ingen-match")

@WithSpan
override fun onPacket(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,14 +39,6 @@ Krav til minsteinntekt
Avtjent verneplikt
Har utført minst tre måneders militærtjeneste eller obligatorisk sivilforsvarstjeneste
Oppfyller kravet til minsteinntekt eller verneplikt
Grunnbeløp for grunnlag
Antall G som gis som grunnlag ved verneplikt
Periode som gis ved verneplikt
Fastsatt vanlig arbeidstid for verneplikt
Grunnlag for verneplikt hvis kravet ikke er oppfylt
Tellende inntekt
Faktor for maksimalt mulig grunnlag
Antall år i 36 måneder
Mottar ikke andre fulle ytelser
Er personen medlem av folketrygden
Opphold i Norge
Expand All @@ -58,6 +50,13 @@ Ledig ved samme bedrift eller arbeidsplass, og blir påvirket av utfallet?
Har tapt arbeid
Krav på lønn fra tidligere arbeidsgiver
Ny arbeidstid per uke
Grunnbeløp for grunnlag
Antall G som gis som grunnlag ved verneplikt
Grunnlag for verneplikt hvis kravet ikke er oppfylt
Tellende inntekt
Faktor for maksimalt mulig grunnlag
Antall år i 36 måneder
Fastsatt vanlig arbeidstid for verneplikt
Beregnet vanlig arbeidstid per uke før tap
Maksimal vanlig arbeidstid
Krav til prosentvis tap av arbeidstid
Expand All @@ -81,21 +80,21 @@ Opplæringspenger dagsats
Uføre dagsats
Foreldrepenger dagsats
Svangerskapspenger dagsats
Grunnlag for gis ved verneplikt
Oppjustert inntekt
6 ganger grunnbeløp
Oppfyller kravet til medlemskap
Oppfyller kravet til opphold i Norge
Er medlemmet ikke påvirket av streik eller lock-out?
Ikke krav på lønn fra tidligere arbeidsgiver
Grunnlag for gis ved verneplikt
Oppjustert inntekt
6 ganger grunnbeløp
Beregningsregel: Tapt arbeidstid
Godkjent unntak for utdanning eller opplæring?
Oppfyller krav til ikke utestengt
Krav til tap av arbeidsinntekt
Grunnlag for verneplikt hvis kravet er oppfylt
Inntektperiode 1
Inntektperiode 2
Inntektperiode 3
Krav til tap av arbeidsinntekt
Grunnlag siste 12 mnd.
Avkortet inntektperiode 1
Avkortet inntektperiode 2
Expand Down Expand Up @@ -159,6 +158,7 @@ Mottar vartpenger
Mottar ventelønn
Mottar etterlønn
Mottar garantilott fra Garantikassen for fiskere.
Periode som gis ved verneplikt
Har avkortet grunnlag
Beløp tilsvarende nedre terskel av G
Sum av ytelser utenfor folketrygden
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,13 +33,6 @@ Maks lengde på opptjeningsperiode
Grunnbeløp
Antall G for krav til 12 mnd arbeidsinntekt
Antall G for krav til 36 mnd arbeidsinntekt
Grunnbeløp for grunnlag
Antall G som gis som grunnlag ved verneplikt
Periode som gis ved verneplikt
Fastsatt vanlig arbeidstid for verneplikt
Grunnlag for verneplikt hvis kravet ikke er oppfylt
Faktor for maksimalt mulig grunnlag
Antall år i 36 måneder
Mottar ikke andre fulle ytelser
Er personen medlem av folketrygden
Opphold i Norge
Expand All @@ -51,6 +44,12 @@ Ledig ved samme bedrift eller arbeidsplass, og blir påvirket av utfallet?
Har tapt arbeid
Krav på lønn fra tidligere arbeidsgiver
Ny arbeidstid per uke
Grunnbeløp for grunnlag
Antall G som gis som grunnlag ved verneplikt
Grunnlag for verneplikt hvis kravet ikke er oppfylt
Faktor for maksimalt mulig grunnlag
Antall år i 36 måneder
Fastsatt vanlig arbeidstid for verneplikt
Beregnet vanlig arbeidstid per uke før tap
Maksimal vanlig arbeidstid
Krav til prosentvis tap av arbeidstid
Expand Down Expand Up @@ -97,20 +96,21 @@ Mottar vartpenger
Mottar ventelønn
Mottar etterlønn
Mottar garantilott fra Garantikassen for fiskere.
Periode som gis ved verneplikt
Dato søker når maks alder
Arbeidsgivers rapporteringsfrist
Inntektskrav for siste 12 mnd
Inntektskrav for siste 36 mnd
Grunnlag for gis ved verneplikt
Grunnlag for verneplikt hvis kravet er oppfylt
6 ganger grunnbeløp
Oppfyller kravet til medlemskap
Oppfyller kravet til opphold i Norge
Oppfyller kravet til heltid- og deltidsarbeid
Oppfyller kravet til mobilitet
Er medlemmet ikke påvirket av streik eller lock-out?
Ikke krav på lønn fra tidligere arbeidsgiver
Krav til tap av arbeidsinntekt
Grunnlag for gis ved verneplikt
Grunnlag for verneplikt hvis kravet er oppfylt
6 ganger grunnbeløp
Beregningsregel: Tapt arbeidstid
Godkjent unntak for utdanning eller opplæring?
Oppfyller krav til ikke utestengt
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,14 +39,6 @@ Krav til minsteinntekt
Avtjent verneplikt
Har utført minst tre måneders militærtjeneste eller obligatorisk sivilforsvarstjeneste
Oppfyller kravet til minsteinntekt eller verneplikt
Grunnbeløp for grunnlag
Antall G som gis som grunnlag ved verneplikt
Periode som gis ved verneplikt
Fastsatt vanlig arbeidstid for verneplikt
Grunnlag for verneplikt hvis kravet ikke er oppfylt
Tellende inntekt
Faktor for maksimalt mulig grunnlag
Antall år i 36 måneder
Mottar ikke andre fulle ytelser
Er personen medlem av folketrygden
Opphold i Norge
Expand All @@ -58,6 +50,13 @@ Ledig ved samme bedrift eller arbeidsplass, og blir påvirket av utfallet?
Har tapt arbeid
Krav på lønn fra tidligere arbeidsgiver
Ny arbeidstid per uke
Grunnbeløp for grunnlag
Antall G som gis som grunnlag ved verneplikt
Grunnlag for verneplikt hvis kravet ikke er oppfylt
Tellende inntekt
Faktor for maksimalt mulig grunnlag
Antall år i 36 måneder
Fastsatt vanlig arbeidstid for verneplikt
Beregnet vanlig arbeidstid per uke før tap
Maksimal vanlig arbeidstid
Krav til prosentvis tap av arbeidstid
Expand All @@ -81,21 +80,21 @@ Opplæringspenger dagsats
Uføre dagsats
Foreldrepenger dagsats
Svangerskapspenger dagsats
Grunnlag for gis ved verneplikt
Oppjustert inntekt
6 ganger grunnbeløp
Oppfyller kravet til medlemskap
Oppfyller kravet til opphold i Norge
Er medlemmet ikke påvirket av streik eller lock-out?
Ikke krav på lønn fra tidligere arbeidsgiver
Grunnlag for gis ved verneplikt
Oppjustert inntekt
6 ganger grunnbeløp
Beregningsregel: Tapt arbeidstid
Godkjent unntak for utdanning eller opplæring?
Oppfyller krav til ikke utestengt
Krav til tap av arbeidsinntekt
Grunnlag for verneplikt hvis kravet er oppfylt
Inntektperiode 1
Inntektperiode 2
Inntektperiode 3
Krav til tap av arbeidsinntekt
Grunnlag siste 12 mnd.
Avkortet inntektperiode 1
Avkortet inntektperiode 2
Expand Down Expand Up @@ -159,6 +158,7 @@ Mottar vartpenger
Mottar ventelønn
Mottar etterlønn
Mottar garantilott fra Garantikassen for fiskere.
Periode som gis ved verneplikt
Har avkortet grunnlag
Beløp tilsvarende nedre terskel av G
Sum av ytelser utenfor folketrygden
Expand Down
1 change: 1 addition & 0 deletions opplysninger/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ dependencies {
api("com.github.navikt:dp-inntekt-kontrakter:1_20231220.55a8a9")
api("org.javamoney:moneta:1.4.4")
api("no.nav.dagpenger:dp-grunnbelop:20240821.109.11cc88")
api(libs.kotlin.logging)

testImplementation("org.junit.jupiter:junit-jupiter-params:${libs.versions.junit.get()}")
testImplementation(libs.kotest.assertions.core)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package no.nav.dagpenger.opplysning

import mu.KotlinLogging
import no.nav.dagpenger.opplysning.regel.Ekstern
import no.nav.dagpenger.opplysning.regel.Regel
import java.time.LocalDate
Expand Down Expand Up @@ -33,6 +34,10 @@ class Regelkjøring(
private val opplysninger: Opplysninger,
private val forretningsprosess: Forretningsprosess,
) {
companion object {
private val logger = KotlinLogging.logger { }
}

constructor(regelverksdato: LocalDate, opplysninger: Opplysninger, vararg regelsett: Regelsett) : this(
regelverksdato,
regelverksdato,
Expand Down Expand Up @@ -163,10 +168,22 @@ class Regelkjøring(
}

private fun kjør(regel: Regel<*>) {
val opplysning = regel.lagProdukt(opplysningerPåPrøvingsdato)
kjørteRegler.add(regel)
plan.remove(regel)
opplysninger.leggTilUtledet(opplysning)
try {
val opplysning = regel.lagProdukt(opplysningerPåPrøvingsdato)
kjørteRegler.add(regel)
plan.remove(regel)
opplysninger.leggTilUtledet(opplysning)
} catch (e: IllegalArgumentException) {
logger.info {
"""
Skal kjøre:
${plan.joinToString("\n") { it.produserer.navn }}
Har kjørt:
${kjørteRegler.joinToString("\n") { it.produserer.navn }}
""".trimIndent()
}
throw e
}
}

private fun trenger(): Set<Opplysningstype<*>> {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,11 +45,14 @@ abstract class Regel<T : Comparable<T>> internal constructor(
.map { it.opplysningstype }
.toSet()
) {
regelForProdukt?.avhengerAv?.map { avhengighet ->
val avhengigRegel = produsenter[avhengighet]
avhengigRegel?.lagPlan(opplysninger, plan, produsenter)
if (regelForProdukt?.avhengerAv?.any { opplysninger.mangler(it) } == true) {
regelForProdukt.avhengerAv.map { avhengighet ->
val avhengigRegel = produsenter[avhengighet]
avhengigRegel?.lagPlan(opplysninger, plan, produsenter)
}
} else {
plan.add(this)
}
plan.add(this)
return
}

Expand Down

0 comments on commit 8be5c9d

Please sign in to comment.