Skip to content

Commit

Permalink
Merge pull request #695 from navikt/flytte_regel_3
Browse files Browse the repository at this point in the history
Flytte regel 3
  • Loading branch information
hjmNav authored Nov 15, 2024
2 parents 65f6a0e + 726eb36 commit 8139c66
Show file tree
Hide file tree
Showing 18 changed files with 169 additions and 44 deletions.
7 changes: 7 additions & 0 deletions src/main/kotlin/no/nav/medlemskap/domene/Kontrollperiode.kt
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,11 @@ data class Kontrollperiode(
fom = startDatoForYtelse.minusDays(28),
tom = startDatoForYtelse
)
fun kontrollperiodeForBarneBriller(startDatoForYtelse: LocalDate): Kontrollperiode =
Kontrollperiode(
fom = startDatoForYtelse.minusDays(0),
tom = startDatoForYtelse
)

fun kontrollPeriodeForPersonhistorikk(startDatoForYtelse: LocalDate): Kontrollperiode {
return Kontrollperiode(
Expand Down Expand Up @@ -54,5 +59,7 @@ data class Kontrollperiode(
return inputPeriode.fom.minusDays(1)
}
}


}
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,8 @@ data class Oppholdstillatelse(
val gjeldendeOppholdsstatus: GjeldendeOppholdsstatus?,
val arbeidsadgang: Arbeidsadgang?,
val uavklartFlyktningstatus: Boolean?,
val harFlyktningstatus: Boolean?
val harFlyktningstatus: Boolean?,
val udiFeilKode: Int? = null
) {

fun harPermanentOppholdstillatelse(periode: Periode): Boolean {
Expand Down
1 change: 1 addition & 0 deletions src/main/kotlin/no/nav/medlemskap/regler/common/RegelId.kt
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,7 @@ enum class RegelId(val identifikator: String, val avklaring: String, val neiBegr
REGEL_REQUEST_VALIDERING("Validering", "Er input-dataene gyldige?"),
REGEL_OVERSTYRING("OVERSTYRING", "Er overstyringsregler avklart?"),
REGEL_FELLES_ARBEIDSFORHOLD("FELLES ARBEIDSFORHOLD", "Er felles regler for arbeidsforhold avklart?"),
REGEL_YTELSER("REGLER YTELSER", "Er felles regler for ytelser avklart?"),
REGEL_HOVEDSAKLIG_ARBEIDSTAKER("Hovedsaklig arbeidstaker", "Er arbeidstaker i hovedsak arbeidstaker?"),
REGEL_OPPHOLDSTILLATELSE("Oppholdstillatelse", "Har bruker gyldig oppholdstillatelse?")
;
Expand Down
3 changes: 2 additions & 1 deletion src/main/kotlin/no/nav/medlemskap/regler/v1/Hovedregler.kt
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,8 @@ class Hovedregler(private val datagrunnlag: Datagrunnlag) {
private fun kjørFellesRegler(): List<Resultat> {
val fellesRegler = listOf(
ReglerForDoedsfall.fraDatagrunnlag(datagrunnlag),
ReglerForFellesArbeidsforhold.fraDatagrunnlag(datagrunnlag)
ReglerForFellesArbeidsforhold.fraDatagrunnlag(datagrunnlag),
ReglerForStonader.fraDatagrunnlag(datagrunnlag)
)

return fellesRegler.map(Regler::kjørHovedflyt)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,15 +35,15 @@ class ReglerForArbeidsforhold(
hvisNei = erBrukerPilotEllerKabinansattFlyt
)

val erForetakAktivtFlyt = lagRegelflyt(
/*val erForetakAktivtFlyt = lagRegelflyt(
regel = hentRegel(REGEL_6),
hvisJa = erArbeidsforholdetMaritimtFlyt,
hvisNei = regelflytUavklart(ytelse, REGEL_ARBEIDSFORHOLD)
)
)*/

val harForetakMerEnn5AnsatteFlyt = lagRegelflyt(
regel = hentRegel(REGEL_5),
hvisJa = erForetakAktivtFlyt,
hvisJa = erArbeidsforholdetMaritimtFlyt,
hvisNei = regelflytUavklart(ytelse, REGEL_ARBEIDSFORHOLD)
)

Expand All @@ -53,7 +53,7 @@ class ReglerForArbeidsforhold(
hvisNei = harForetakMerEnn5AnsatteFlyt
)

val erArbeidsgiverOrganisasjonFlyt = lagRegelflyt(
/*val erArbeidsgiverOrganisasjonFlyt = lagRegelflyt(
regel = hentRegel(REGEL_4),
hvisJa = erArbeidsgiverOffentligSektor,
hvisNei = regelflytUavklart(ytelse, REGEL_ARBEIDSFORHOLD)
Expand All @@ -63,9 +63,9 @@ class ReglerForArbeidsforhold(
regel = hentRegel(REGEL_3),
hvisJa = erArbeidsgiverOrganisasjonFlyt,
hvisNei = regelflytUavklart(ytelse, REGEL_ARBEIDSFORHOLD)
)
)*/

return harBrukerSammenhengendeArbeidsforholdSiste12MndFlyt
return erArbeidsgiverOffentligSektor
}

companion object {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,25 +21,34 @@ class ReglerForFellesArbeidsforhold(

override fun hentHovedflyt(): Regelflyt {

/*
val erBrukerArbeidstakerIkontrollperiodeForStønadsområdeFlyt = lagRegelflyt(
regel = hentRegel(REGEL_21),
hvisJa = regelflytJa(ytelse, REGEL_FELLES_ARBEIDSFORHOLD),
hvisNei = konklusjonUavklart(ytelse, REGEL_FELLES_ARBEIDSFORHOLD)
)
*/

val HarBrukerSammenhengendeArbeidsforholdRegelFlyt = lagRegelflyt(
regel = hentRegel(REGEL_3),
hvisJa = regelflytJa(ytelse, REGEL_FELLES_ARBEIDSFORHOLD),
hvisNei = konklusjonUavklart(ytelse, REGEL_FELLES_ARBEIDSFORHOLD),
)

val ErPeriodenForUtenlandsoppholdetInnenforSiste12MånederFlyt = lagRegelflyt(
regel = hentRegel(REGEL_25),
hvisJa = konklusjonUavklart(ytelse, REGEL_FELLES_ARBEIDSFORHOLD),
hvisNei = erBrukerArbeidstakerIkontrollperiodeForStønadsområdeFlyt,
hvisNei = HarBrukerSammenhengendeArbeidsforholdRegelFlyt,
)


val HarBrukerUtenlandsoppholdIArbeidsforholdetFlyt = lagRegelflyt(
regel = hentRegel(REGEL_22),
hvisJa = ErPeriodenForUtenlandsoppholdetInnenforSiste12MånederFlyt,
hvisNei = erBrukerArbeidstakerIkontrollperiodeForStønadsområdeFlyt
hvisNei = HarBrukerSammenhengendeArbeidsforholdRegelFlyt
)


val ErSummenAvPermisjonenMerEnn30DagerSiste12Mnd = lagRegelflyt(
regel = hentRegel(REGEL_33),
hvisJa = konklusjonUavklart(ytelse, REGEL_FELLES_ARBEIDSFORHOLD),
Expand Down
44 changes: 44 additions & 0 deletions src/main/kotlin/no/nav/medlemskap/regler/v1/ReglerForStonader.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
package no.nav.medlemskap.regler.v1

import no.nav.medlemskap.domene.Datagrunnlag
import no.nav.medlemskap.domene.InputPeriode
import no.nav.medlemskap.domene.Ytelse
import no.nav.medlemskap.regler.common.RegelId
import no.nav.medlemskap.regler.common.RegelId.*
import no.nav.medlemskap.regler.common.Regelflyt
import no.nav.medlemskap.regler.common.Regelflyt.Companion.konklusjonUavklart
import no.nav.medlemskap.regler.common.Regelflyt.Companion.regelflytJa
import no.nav.medlemskap.regler.common.Regler
import no.nav.medlemskap.regler.common.Svar


class ReglerForStonader(
val periode: InputPeriode,
ytelse: Ytelse,
regelFactory: RegelFactory,
overstyrteRegler: Map<RegelId, Svar>
) : Regler(ytelse, regelFactory, overstyrteRegler) {

override fun hentHovedflyt(): Regelflyt {

val Erbrukerarbeidstakerikontrollperiodeforstonadsomraade = lagRegelflyt(
regel = hentRegel(REGEL_21),
hvisJa = regelflytJa(ytelse, REGEL_YTELSER),
hvisNei = konklusjonUavklart(ytelse, REGEL_YTELSER)
)

return Erbrukerarbeidstakerikontrollperiodeforstonadsomraade
}

companion object {
fun fraDatagrunnlag(datagrunnlag: Datagrunnlag, overstyrteRegler: Map<RegelId, Svar> = emptyMap()): ReglerForStonader {

return ReglerForStonader(
periode = datagrunnlag.periode,
ytelse = datagrunnlag.ytelse,
regelFactory = RegelFactory(datagrunnlag),
overstyrteRegler = overstyrteRegler
)
}
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
package no.nav.medlemskap.regler.v1.arbeidsforhold

import no.nav.medlemskap.domene.Kontrollperiode
import no.nav.medlemskap.domene.Kontrollperiode.Companion.kontrollPeriodeForArbeidsforhold
import no.nav.medlemskap.domene.Kontrollperiode.Companion.kontrollperiodeForBarneBriller
import no.nav.medlemskap.domene.Kontrollperiode.Companion.kontrollperiodeForSykepenger
import no.nav.medlemskap.domene.Ytelse
import no.nav.medlemskap.regler.common.BasisRegel
Expand All @@ -14,4 +16,19 @@ abstract class ArbeidsforholdRegel(
) : BasisRegel(regelId, ytelse) {
val kontrollPeriodeForArbeidsforhold = kontrollPeriodeForArbeidsforhold(startDatoForYtelse)
val kontrollperiodeForSykepenger = kontrollperiodeForSykepenger(startDatoForYtelse)
val kontrollperiodeForBarnbriller = kontrollperiodeForBarneBriller(startDatoForYtelse)

fun finnKOntrollPeriode(ytelse: Ytelse): Kontrollperiode {
when (ytelse){
Ytelse.SYKEPENGER -> return kontrollperiodeForSykepenger
Ytelse.BARNE_BRILLER -> return kontrollperiodeForBarnbriller
Ytelse.DAGPENGER -> return kontrollperiodeForSykepenger
Ytelse.ENSLIG_FORSORGER -> return kontrollperiodeForSykepenger
Ytelse.LOVME -> return kontrollperiodeForSykepenger
Ytelse.LOVME_GCP -> return kontrollperiodeForSykepenger
Ytelse.MEDLEMSKAP_BARN -> return kontrollperiodeForBarnbriller
Ytelse.MIN_VEI -> return kontrollperiodeForSykepenger
Ytelse.LOVME_FUNKSJONELLE_TESTER -> return kontrollperiodeForSykepenger
}
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
package no.nav.medlemskap.regler.v1.arbeidsforhold

import no.nav.medlemskap.domene.Datagrunnlag
import no.nav.medlemskap.domene.Kontrollperiode
import no.nav.medlemskap.domene.Kontrollperiode.Companion.kontrollperiodeForBarneBriller
import no.nav.medlemskap.domene.Ytelse
import no.nav.medlemskap.domene.arbeidsforhold.Arbeidsforhold
import no.nav.medlemskap.domene.arbeidsforhold.Arbeidsforhold.Companion.erSammenhengendeIKontrollPeriode
Expand All @@ -18,7 +20,10 @@ class ErBrukerArbeidstakerIKontrollperiodeForStønadsområde(
) : ArbeidsforholdRegel(regelId, ytelse, startDatoForYtelse) {

override fun operasjon(): Resultat {
return if (arbeidsforhold.erSammenhengendeIKontrollPeriode(kontrollperiodeForSykepenger, ytelse, 1)) {

val kontrollPeriode = finnKOntrollPeriode(ytelse)

return if (arbeidsforhold.erSammenhengendeIKontrollPeriode(kontrollPeriode, ytelse, 1)) {
ja(regelId)
} else {
nei(regelId)
Expand Down
3 changes: 3 additions & 0 deletions src/main/resources/lovme.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -428,6 +428,9 @@ components:
harFlyktningstatus:
type: boolean
nullable: true
udiFeilKode:
type: integer
nullable: true
nullable: true
GjeldendeOppholdsstatus:
properties:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,8 +48,39 @@ Egenskap: Regelflyt for regel 21


Når medlemskap beregnes med følgende parametre
| Fra og med dato | Til og med dato | Har hatt arbeid utenfor Norge |
| 30.01.2020 | 30.01.2021 | Nei |
| Fra og med dato | Til og med dato | Har hatt arbeid utenfor Norge | Ytelse |
| 30.01.2020 | 30.01.2021 | Nei | SYKEPENGER |


skal svaret være "Ja"
Og skal regel "21" gi svaret "Ja"

Scenario: Regelflyt regel 21: bruker får "Ja" for regel 21, hvis bruker har hatt kontinuerlig arbeidsforhold i minst 2 dager for barnebriller.

Gitt følgende arbeidsforhold fra AAReg
| Fra og med dato | Til og med dato | Arbeidsgivertype | Arbeidsforholdstype | Arbeidsgiver Id |
| 29.01.2020 | | Organisasjon | NORMALT | 1 |


Når medlemskap beregnes med følgende parametre
| Fra og med dato | Til og med dato | Har hatt arbeid utenfor Norge | Ytelse |
| 30.01.2020 | 30.01.2021 | Nei | BARNE_BRILLER |


skal svaret være "UAVKLART"
Og skal regel "21" gi svaret "Ja"

Scenario: Regelflyt regel 21: bruker får "Nei" for regel 21, hvis bruker har hatt kontinuerlig arbeidsforhold i minst 2 dager for barnebriller.

Gitt følgende arbeidsforhold fra AAReg
| Fra og med dato | Til og med dato | Arbeidsgivertype | Arbeidsforholdstype | Arbeidsgiver Id |
| 30.01.2020 | | Organisasjon | NORMALT | 1 |


Når medlemskap beregnes med følgende parametre
| Fra og med dato | Til og med dato | Har hatt arbeid utenfor Norge | Ytelse |
| 30.01.2020 | 30.01.2021 | Nei | BARNE_BRILLER |


skal svaret være "UAVKLART"
Og skal regel "21" gi svaret "Nei"
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# language: no
# encoding: UTF-8

##
Egenskap: Regelflyt for regel 4

Bakgrunn:
Expand Down Expand Up @@ -30,10 +30,10 @@ Egenskap: Regelflyt for regel 4
| Fra og med dato | Til og med dato | Har hatt arbeid utenfor Norge |
| 30.01.2020 | 30.01.2021 | Nei |

skal svaret være "<Medlemskap>"
Og skal regel-årsaker være "<Årsaker>"
Og skal regel "3" gi svaret "Ja"
Og skal regel "4" gi svaret "<Regel 4>"
#Så skal svaret være "<Medlemskap>"
#Og skal regel-årsaker være "<Årsaker>"
#Og skal regel "3" gi svaret "Ja"
#Og skal regel "4" gi svaret "<Regel 4>"

Eksempler:
| Arbeidsgivertype | Regel 4 | Medlemskap | Årsaker |
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,8 @@ Egenskap: Regelflyt for regel 6
| Fra og med dato | Til og med dato | Har hatt arbeid utenfor Norge |
| 30.01.2020 | 30.01.2021 | Nei |

skal svaret være "<Medlemskap>"
Og skal regel "6" gi svaret "<Regel 6>"
#Så skal svaret være "<Medlemskap>"
#Og skal regel "6" gi svaret "<Regel 6>"

Eksempler:
| Konkursstatus | Regel 6 | Medlemskap |
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ Egenskap: EØS-borger med medl unntak.
#| REGEL_OVERSTYRING |
| REGEL_DOED |
| REGEL_FELLES_ARBEIDSFORHOLD |
| REGEL_YTELSER |
| REGEL_STATSBORGERSKAP |
| REGEL_MEDL |
| REGEL_ARBEIDSFORHOLD |
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ Egenskap: Norsk borger med medl unntak.
#| OVERSTYRING |
| DOED |
| FELLES ARBEIDSFORHOLD |
| REGEL_YTELSER |
| STATSBORGERSKAP |
| MEDL |
| ARBEIDSFORHOLD |
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,15 +11,15 @@ Egenskap: Tredjelandsborger med medl unntak.

Og følgende arbeidsforhold fra AAReg
| Fra og med dato | Til og med dato | Arbeidsgivertype | Arbeidsforholdstype | Arbeidsgiver Id |
| 01.02.2020 | | Organisasjon | NORMALT | 1 |
| 01.01.2020 | | Organisasjon | NORMALT | 1 |

Og følgende arbeidsgiver i arbeidsforholdet
| Identifikator | Arbeidsgivertype | Landkode | Antall ansatte |
| organisasjonsnummer | STAT | NOR | 10 |

Og følgende detaljer om ansatte for arbeidsgiver
| Antall ansatte | Gyldighetsperiode gyldig fra | Gyldighetsperiode gyldig til |
| 10 | 01.02.2020 | 01.08.2021 |
| 10 | 01.01.2020 | 01.08.2021 |

Og følgende oppholdstillatelse
| Gyldig fra og med | Gyldig til og med | Har tillatelse | Type | Oppholdstillatelse på samme vilkår flagg |
Expand All @@ -42,7 +42,7 @@ Egenskap: Tredjelandsborger med medl unntak.

Og følgende arbeidsavtaler i arbeidsforholdet
| Fra og med dato | Til og med dato | Yrkeskode | Stillingsprosent |
| 10.10.1975 | 01.08.2021 | yrkeskode | 100 |
| 10.10.1975 | | yrkeskode | 100 |

Når medlemskap beregnes med følgende parametre
| Fra og med dato | Til og med dato | Har hatt arbeid utenfor Norge |
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@ Egenskap: Tredjelandsborger med medl unntak.
#| REGEL_OVERSTYRING |
| REGEL_DOED |
| REGEL_FELLES_ARBEIDSFORHOLD |
| REGEL_YTELSER |
| REGEL_STATSBORGERSKAP |
| REGEL_TREDJELANDSBORGER_FAMILIE |
| REGEL_HOVEDSAKLIG_ARBEIDSTAKER |
Expand Down Expand Up @@ -97,6 +98,7 @@ Egenskap: Tredjelandsborger med medl unntak.
#| REGEL_OVERSTYRING |
| REGEL_DOED |
| REGEL_FELLES_ARBEIDSFORHOLD |
| REGEL_YTELSER |
| REGEL_STATSBORGERSKAP |
| REGEL_TREDJELANDSBORGER_FAMILIE |
| REGEL_HOVEDSAKLIG_ARBEIDSTAKER |
Expand Down Expand Up @@ -169,6 +171,7 @@ Egenskap: Tredjelandsborger med medl unntak.
#| REGEL_OVERSTYRING |
| REGEL_DOED |
| REGEL_FELLES_ARBEIDSFORHOLD |
| REGEL_YTELSER |
| REGEL_STATSBORGERSKAP |
| REGEL_TREDJELANDSBORGER_FAMILIE |
| REGEL_HOVEDSAKLIG_ARBEIDSTAKER |
Expand Down
Loading

0 comments on commit 8139c66

Please sign in to comment.