Package-level declarations

vurderRettighetsType slår sammen vilkårsvurderingene i Vilkårsresultat til en tidslinje av RettighetsType. For hver periode sjekkes hvert element i kravprioritet (KravForRettighetsType.kt) i rekkefølge – første KravspesifikasjonForRettighetsType hvor alle kravene er oppfylt (MåVæreOppfylt, SkalIkkeGiAvslag, IngenKrav, KravOmForutgåendeAAP) vinner for den perioden. Diagrammene under viser hvordan vilkårenes OPPFYLT/IKKE_OPPFYLT-status over tid oversettes til en tidslinje av rettighetstyper, med eksempler hentet fra KravForRettighetsTypeTest.kt.

Eksempel: ordinær AAP-sak hvor medlemmet blir for gammel

Alle vilkår er oppfylt gjennom hele perioden, men ALDERSVILKÅRET går til IKKE_OPPFYLT når brukeren fyller 67 år. Siden ALDERSVILKÅRET alltid må være oppfylt (uavhengig av kravprioritet), fører dette til opphør.

Eksempel: overgang uføre hvor varigheten overskrides

BISTANDSVILKÅRET er IKKE_OPPFYLT gjennom hele perioden, men det er irrelevant siden KravForOvergangUføretrygd.kravBistand = IngenKrav. Det er OVERGANGUFØREVILKÅRET som styrer rettighetstypen, og opphøret skjer først når varigheten for overgang uføre overskrides.

Eksempel: bytte fra ordinær AAP til vurdering for uføretrygd

Her ser vi en overgang mellom to ulike rettighetstyper i samme sak, uten opphør i mellom. Fram til 30. juni 2025 er bistandsbehovet oppfylt, og saken matcher KravForOrdinærAap (rettighetstype BISTANDSBEHOV). Fra 1. juli opphører bistandsbehovet samtidig som OVERGANGUFØREVILKÅRET blir vurdert og oppfylt (med innvilgelsesårsak VURDERES_FOR_UFØRETRYGD) – da matcher saken i stedet KravForOvergangUføretrygd (rettighetstype VURDERES_FOR_UFØRETRYGD.

Types

Link copied to clipboard
Link copied to clipboard
data class KvoteBruktOpp(val kvoteBruktOpp: Kvote, val rettighetstypeVurdering: RettighetstypeVurdering) : KvoteVurdering
Link copied to clipboard
data class KvoteOk(val brukerKvote: Kvote?, val rettighetstypeVurdering: RettighetstypeVurdering) : KvoteVurdering
Link copied to clipboard
sealed interface KvoteVurdering
Link copied to clipboard
data class RettighetstypeVurdering(val kravspesifikasjonForRettighetsType: KravspesifikasjonForRettighetsType?, val vilkårsvurderinger: Map<Vilkårtype, Vilkårsvurdering>)
Link copied to clipboard
internal data class Telleverk(val ordinærForbruk: Hverdager = Hverdager(0), val sykepengeerstatningForbruk: Hverdager = Hverdager(0))

Properties

Link copied to clipboard

Rekkefølgen på disse er av betydning: første match blir valgt. Ideelt sett burde de nok være i samme rekkefølge som vi vurdere vilkår i flyten. Samtidig er nok en del (nesten alle?) av kravene gjensidig utelukkende.

Functions

Link copied to clipboard

Her er det en del rom for forbedringer:

Link copied to clipboard
fun utledStansEllerOpphør(vilkårsresultat: Vilkårsresultat, kvoter: Kvoter, rettighetsperiode: Periode): Map<LocalDate, StansEllerOpphør>

Identifiserer hva som er avslagsårsakene som fører til at medlemmet mister retten til AAP. Her ser vi på overgangen fra å ha rett til AAP en dag til å ikke ha rett til AAP den neste dagen.

Link copied to clipboard
internal fun vurderKvoter(kvoter: Kvoter, rettighetsType: Tidslinje<RettighetstypeVurdering>): Tidslinje<KvoteVurdering>
Link copied to clipboard
fun vurderRettighetsType(vilkårsresultat: Vilkårsresultat, kvoter: Kvoter): Tidslinje<RettighetsType>
Link copied to clipboard
fun vurderRettighetstypeOgKvoter(vilkårsresultat: Vilkårsresultat, kvoter: Kvoter): Tidslinje<KvoteVurdering>