Skip to content

Commit

Permalink
Revert "Avslår periode for søker dersom det allerede er oppfylt for a…
Browse files Browse the repository at this point in the history
…nnen pleietrengende med høyere prio (#1013)" (#1026)

This reverts commit 0896e99.
  • Loading branch information
espenjv authored Nov 4, 2024
1 parent 16b5e57 commit d9d37b6
Show file tree
Hide file tree
Showing 25 changed files with 60 additions and 370 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ enum class KnekkpunktType {
NATTEVÅKSPERIODE,
INNGANGSVILKÅR_IKKE_OPPFYLT,
ANNEN_PARTS_UTTAK,
EGET_UTTAK_ANNEN_PLEIETRENGENDE,
FORRIGE_UTTAKPLAN,
TRUKKET_UTTAK,
ARBEID,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,6 @@ data class Uttaksgrunnlag (
@JsonProperty("beredskapsperioder") val beredskapsperioder: Map<LukketPeriode, Utfall> = mapOf(),
@JsonProperty("nattevåksperioder") val nattevåksperioder: Map<LukketPeriode, Utfall> = mapOf(),
@JsonProperty("kravprioritetForBehandlinger") val kravprioritetForBehandlinger: Map<LukketPeriode, List<BehandlingUUID>> = mapOf(),
@JsonProperty("kravprioritetForEgneBehandlinger") val kravprioritetForEgneBehandlinger: Map<LukketPeriode, List<BehandlingUUID>> = mapOf(),
@JsonProperty("sisteVedtatteUttaksplanForBehandling") val sisteVedtatteUttaksplanForBehandling: Map<BehandlingUUID, BehandlingUUID?> = mapOf(),
@JsonProperty("utenlandsoppholdperioder") val utenlandsoppholdperioder: Map<LukketPeriode, UtenlandsoppholdInfo> = mapOf()
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,66 +41,40 @@ enum class Endringsstatus {

@JsonIgnoreProperties(ignoreUnknown = true)
@JsonFormat(shape = JsonFormat.Shape.OBJECT)
@JsonAutoDetect(
getterVisibility = JsonAutoDetect.Visibility.NONE,
setterVisibility = JsonAutoDetect.Visibility.NONE,
fieldVisibility = JsonAutoDetect.Visibility.ANY
)
@JsonAutoDetect(getterVisibility = JsonAutoDetect.Visibility.NONE, setterVisibility = JsonAutoDetect.Visibility.NONE, fieldVisibility = JsonAutoDetect.Visibility.ANY)
data class Uttaksplan @JsonCreator constructor(
@JsonProperty("perioder") val perioder: Map<LukketPeriode, UttaksperiodeInfo> = mapOf(),
@JsonProperty("trukketUttak") val trukketUttak: List<LukketPeriode> = listOf(),
@JsonProperty("kvoteInfo") val kvoteInfo: KvoteInfo? = null,
@JsonProperty("commitId") val commitId: String = ""
) {
constructor(perioder: Map<LukketPeriode, UttaksperiodeInfo>, trukketUttak: List<LukketPeriode>) : this(
perioder,
trukketUttak,
null,
""
)
constructor(perioder: Map<LukketPeriode, UttaksperiodeInfo>, trukketUttak: List<LukketPeriode>) : this(perioder, trukketUttak, null, "")
}

@JsonIgnoreProperties(ignoreUnknown = true)
@JsonFormat(shape = JsonFormat.Shape.OBJECT)
@JsonAutoDetect(
getterVisibility = JsonAutoDetect.Visibility.NONE,
setterVisibility = JsonAutoDetect.Visibility.NONE,
fieldVisibility = JsonAutoDetect.Visibility.ANY
)
@JsonAutoDetect(getterVisibility = JsonAutoDetect.Visibility.NONE, setterVisibility = JsonAutoDetect.Visibility.NONE, fieldVisibility = JsonAutoDetect.Visibility.ANY)
data class KvoteInfo @JsonCreator constructor(
@JsonProperty("maxDato") val maxDato: LocalDate?,
@JsonProperty("totaltForbruktKvote") val totaltForbruktKvote: BigDecimal
@JsonProperty("maxDato") val maxDato: LocalDate?,
@JsonProperty("totaltForbruktKvote") val totaltForbruktKvote: BigDecimal
)

@JsonIgnoreProperties(ignoreUnknown = true)
@JsonFormat(shape = JsonFormat.Shape.OBJECT)
@JsonAutoDetect(
getterVisibility = JsonAutoDetect.Visibility.NONE,
setterVisibility = JsonAutoDetect.Visibility.NONE,
fieldVisibility = JsonAutoDetect.Visibility.ANY
)
@JsonAutoDetect(getterVisibility = JsonAutoDetect.Visibility.NONE, setterVisibility = JsonAutoDetect.Visibility.NONE, fieldVisibility = JsonAutoDetect.Visibility.ANY)
data class Utbetalingsgrader @JsonCreator constructor(
@JsonProperty("arbeidsforhold") val arbeidsforhold: Arbeidsforhold,
@JsonProperty("normalArbeidstid") val normalArbeidstid: Duration,
@JsonProperty("faktiskArbeidstid") val faktiskArbeidstid: Duration?,
@JsonProperty("utbetalingsgrad") val utbetalingsgrad: Prosent,
@JsonProperty("tilkommet") val tilkommet: Boolean? = null
) {
constructor(
arbeidsforhold: Arbeidsforhold,
normalArbeidstid: Duration,
faktiskArbeidstid: Duration?,
utbetalingsgrad: Prosent
) : this(arbeidsforhold, normalArbeidstid, faktiskArbeidstid, utbetalingsgrad, false)
constructor(arbeidsforhold: Arbeidsforhold, normalArbeidstid: Duration, faktiskArbeidstid: Duration?, utbetalingsgrad: Prosent) : this(arbeidsforhold, normalArbeidstid, faktiskArbeidstid, utbetalingsgrad, false)
}

@JsonIgnoreProperties(ignoreUnknown = true)
@JsonFormat(shape = JsonFormat.Shape.OBJECT)
@JsonAutoDetect(
getterVisibility = JsonAutoDetect.Visibility.NONE,
setterVisibility = JsonAutoDetect.Visibility.NONE,
fieldVisibility = JsonAutoDetect.Visibility.ANY
)
@JsonAutoDetect(getterVisibility = JsonAutoDetect.Visibility.NONE, setterVisibility = JsonAutoDetect.Visibility.NONE, fieldVisibility = JsonAutoDetect.Visibility.ANY)
data class UttaksperiodeInfo @JsonCreator constructor(
@JsonProperty("utfall") val utfall: Utfall,
@JsonProperty("uttaksgrad") val uttaksgrad: Prosent,
Expand All @@ -122,7 +96,7 @@ data class UttaksperiodeInfo @JsonCreator constructor(
@JsonProperty("utenlandsoppholdUtenÅrsak") val utenlandsoppholdUtenÅrsak: Boolean = false,
@JsonProperty("utenlandsopphold") val utenlandsopphold: Utenlandsopphold? = null,
@JsonProperty("manueltOverstyrt") val manueltOverstyrt: Boolean = false
) {
) {

companion object {

Expand All @@ -139,8 +113,7 @@ data class UttaksperiodeInfo @JsonCreator constructor(
nattevåk: Utfall?,
beredskap: Utfall?,
utenlandsopphold: Utenlandsopphold?,
manueltOverstyrt: Boolean = false
): UttaksperiodeInfo {
manueltOverstyrt: Boolean = false): UttaksperiodeInfo {

val årsakerMedOppfylt = årsaker.filter { it.oppfylt }
require(årsakerMedOppfylt.isEmpty()) {
Expand All @@ -164,8 +137,8 @@ data class UttaksperiodeInfo @JsonCreator constructor(
utenlandsopphold = utenlandsopphold,
manueltOverstyrt = manueltOverstyrt,
uttaksgradMedReduksjonGrunnetInntektsgradering = null,
uttaksgradUtenReduksjonGrunnetInntektsgradering = null,
)
uttaksgradUtenReduksjonGrunnetInntektsgradering = null
)
}

fun oppfylt(
Expand All @@ -184,8 +157,7 @@ data class UttaksperiodeInfo @JsonCreator constructor(
nattevåk: Utfall?,
beredskap: Utfall?,
utenlandsopphold: Utenlandsopphold?,
manueltOverstyrt: Boolean = false
): UttaksperiodeInfo {
manueltOverstyrt: Boolean = false): UttaksperiodeInfo {

require(årsak.oppfylt) {
"Kan ikke sette periode til oppfylt med årsak som ikke er for oppfylt. ($årsak)"
Expand Down Expand Up @@ -235,11 +207,7 @@ data class UttaksperiodeInfo @JsonCreator constructor(

@JsonIgnoreProperties(ignoreUnknown = true)
@JsonFormat(shape = JsonFormat.Shape.OBJECT)
@JsonAutoDetect(
getterVisibility = JsonAutoDetect.Visibility.NONE,
setterVisibility = JsonAutoDetect.Visibility.NONE,
fieldVisibility = JsonAutoDetect.Visibility.ANY
)
@JsonAutoDetect(getterVisibility = JsonAutoDetect.Visibility.NONE, setterVisibility = JsonAutoDetect.Visibility.NONE, fieldVisibility = JsonAutoDetect.Visibility.ANY)
data class GraderingMotTilsyn @JsonCreator constructor(
@JsonProperty("etablertTilsyn") val etablertTilsyn: Prosent,
@JsonProperty("overseEtablertTilsynÅrsak") val overseEtablertTilsynÅrsak: OverseEtablertTilsynÅrsak?,
Expand All @@ -250,19 +218,15 @@ data class GraderingMotTilsyn @JsonCreator constructor(

@JsonIgnoreProperties(ignoreUnknown = true)
@JsonFormat(shape = JsonFormat.Shape.OBJECT)
@JsonAutoDetect(
getterVisibility = JsonAutoDetect.Visibility.NONE,
setterVisibility = JsonAutoDetect.Visibility.NONE,
fieldVisibility = JsonAutoDetect.Visibility.ANY
)
@JsonAutoDetect(getterVisibility = JsonAutoDetect.Visibility.NONE, setterVisibility = JsonAutoDetect.Visibility.NONE, fieldVisibility = JsonAutoDetect.Visibility.ANY)
data class Utenlandsopphold @JsonCreator constructor(
@JsonProperty("erEøsLand") val erEøsLand: Boolean?,
@JsonProperty("landkode") val landkode: String? = null,
@JsonProperty("årsak") val årsak: UtenlandsoppholdÅrsak = UtenlandsoppholdÅrsak.INGEN
) {
constructor(landkode: String?, utenlandsoppholdÅrsak: UtenlandsoppholdÅrsak) : this(
RegionUtil().erIEØS(landkode),
landkode,
utenlandsoppholdÅrsak
RegionUtil().erIEØS(landkode),
landkode,
utenlandsoppholdÅrsak
)
}
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@ enum class Årsak(val oppfylt: Boolean) {
FOR_LAV_TAPT_ARBEIDSTID(false),
FOR_LAV_ØNSKET_UTTAKSGRAD(false),
LOVBESTEMT_FERIE(false),
ANNEN_PLEIETRENGENDE_MED_HØYERE_PRIO(false),
BARNETS_DØDSFALL(false),
SØKERS_DØDSFALL(false),
INNGANGSVILKÅR_IKKE_OPPFYLT(false),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -151,7 +151,7 @@ internal object BeregnGrader {
uttaksgradUtenReduksjonGrunnetInntektsgradering = uttaksgradResultat.uttaksgrad,
uttaksgradMedReduksjonGrunnetInntektsgradering = uttaksgradMedReduksjonGrunnetInntektsgradering,
utbetalingsgrader = utbetalingsgrader,
årsak = uttaksgradResultat.årsak(),
årsak = uttaksgradResultat.årsak()
)
}

Expand Down Expand Up @@ -268,6 +268,7 @@ internal object BeregnGrader {
)
}


private fun finnØnsketUttaksgradProsentnsketUttaksgrad: Duration?): Prosent {
if (ønsketUttaksgrad == null) {
return HUNDRE_PROSENT
Expand Down Expand Up @@ -335,7 +336,6 @@ internal object BeregnGrader {
andreSøkeresTilsyn + etablertTilsynsprosent > ÅTTI_PROSENT -> {
return Årsak.FOR_LAV_REST_PGA_ETABLERT_TILSYN_OG_ANDRE_SØKERE
}

}
}
return null
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,4 +18,4 @@ data class BeregnGraderGrunnlag(
val nyeReglerUtbetalingsgrad: LocalDate?,
val overstyrtInput: OverstyrtInput? = null,
val inntektsgradering: Inntektsgradering? = null,
)
)
Original file line number Diff line number Diff line change
Expand Up @@ -25,21 +25,8 @@ internal object KnekkpunktUtleder {
finnForFerie(knekkpunkMap, regelGrunnlag.lovbestemtFerie)
finnForIkkeOppfyltInngangsvilkår(knekkpunkMap, regelGrunnlag.inngangsvilkår)
finnForPleiebehov(knekkpunkMap, regelGrunnlag.pleiebehov)
finnForAnnenUttaksplan(
knekkpunkMap,
regelGrunnlag.andrePartersUttaksplanPerBehandling,
KnekkpunktType.ANNEN_PARTS_UTTAK
)
finnForAnnenUttaksplan(
knekkpunkMap,
regelGrunnlag.vedtatteUttaksplanPerBehandling,
KnekkpunktType.ANNEN_PARTS_UTTAK
)
finnForAnnenUttaksplan(
knekkpunkMap,
regelGrunnlag.egneUttaksplanerAllePleietrengendePerBehandling,
KnekkpunktType.EGET_UTTAK_ANNEN_PLEIETRENGENDE
)
finnForAnnenPartsUttaksplan(knekkpunkMap, regelGrunnlag.andrePartersUttaksplanPerBehandling)
finnForAnnenPartsUttaksplan(knekkpunkMap, regelGrunnlag.vedtatteUttaksplanPerBehandling)
if (regelGrunnlag.forrigeUttaksplan != null) {
finnForForrigeUttaksplan(knekkpunkMap, regelGrunnlag.forrigeUttaksplan)
}
Expand Down Expand Up @@ -143,11 +130,9 @@ internal object KnekkpunktUtleder {
pleiebehov.entries.forEach {finnForPeriode(knekkpunktMap, it.key, KnekkpunktType.PLEIEBEHOV)}
}

private fun finnForAnnenUttaksplan(
knekkpunktMap: KnekkpunktMap, andrePartersUttaksplan: Map<UUID, Uttaksplan>, knekkpunktType: KnekkpunktType
) {
private fun finnForAnnenPartsUttaksplan(knekkpunktMap:KnekkpunktMap, andrePartersUttaksplan:Map<UUID, Uttaksplan>) {
andrePartersUttaksplan.forEach { (_, uttaksplan) ->
uttaksplan.perioder.forEach {finnForPeriode(knekkpunktMap, it.key, knekkpunktType)}
uttaksplan.perioder.forEach {finnForPeriode(knekkpunktMap, it.key, KnekkpunktType.ANNEN_PARTS_UTTAK)}
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,7 @@ internal object UttaksplanRegler {
private val PeriodeRegler = linkedSetOf(
FerieRegel(),
SøkersDødRegel(),
BarnsDødPeriodeRegel(),
TilsynForAndrePleietrengendeRegel()
BarnsDødPeriodeRegel()
)

private val UttaksplanRegler = linkedSetOf(
Expand Down Expand Up @@ -127,7 +126,7 @@ internal object UttaksplanRegler {
nattevåk = nattevåk,
beredskap = beredskap,
utenlandsopphold = Utenlandsopphold(landkode, utenlandsoppholdÅrsak),
manueltOverstyrt = grader.manueltOverstyrt,
manueltOverstyrt = grader.manueltOverstyrt
)
} else {
perioder[søktUttaksperiode] = UttaksperiodeInfo.ikkeOppfylt(
Expand Down Expand Up @@ -182,7 +181,6 @@ internal object UttaksplanRegler {
val etablertTilsyn = grunnlag.finnEtablertTilsyn(periode)
val oppgittTilsyn = grunnlag.finnOppgittTilsyn(periode)
val (andreSøkeresTilsynReberegnet, andrePartersTilsyn) = grunnlag.finnAndreSøkeresTilsyn(periode)

val arbeidPerArbeidsforhold = grunnlag.finnArbeidPerArbeidsforhold(periode)
val overseEtablertTilsynÅrsak = grunnlag.avklarOverseEtablertTilsynÅrsak(periode, etablertTilsyn)
val overstyrtInput = grunnlag.finnOverstyrtInput(periode)
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -21,14 +21,12 @@ data class RegelGrunnlag(
val lovbestemtFerie: List<LukketPeriode> = listOf(),
val inngangsvilkår: Map<String, List<Vilkårsperiode>> = mapOf(),
val andrePartersUttaksplanPerBehandling: Map<UUID, Uttaksplan> = mapOf(),
val egneUttaksplanerAllePleietrengendePerBehandling: Map<UUID, Uttaksplan> = mapOf(),
val vedtatteUttaksplanPerBehandling: Map<UUID, Uttaksplan> = mapOf(),
val sisteVedtatteUttaksplanForBehandling: Map<UUID, UUID> = mapOf(),
val forrigeUttaksplan: Uttaksplan? = null,
val beredskapsperioder: Map<LukketPeriode, Utfall> = mapOf(),
val nattevåksperioder: Map<LukketPeriode, Utfall> = mapOf(),
val kravprioritetForBehandlinger: Map<LukketPeriode, List<UUID>> = mapOf(),
val kravprioritetForEgneBehandlinger: Map<LukketPeriode, List<UUID>> = mapOf(),
val utenlandsoppholdperioder: Map<LukketPeriode, UtenlandsoppholdInfo> = mapOf(),
val overstyrtInput: Map<LukketPeriode, OverstyrtInput> = mapOf(),
val inntektsgradering: Map<LukketPeriode, Inntektsgradering> = mapOf(),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ object GrunnlagMapper {
fun tilRegelGrunnlag(
uttaksgrunnlag: Uttaksgrunnlag,
andrePartersUttakplanPerBehandling: Map<UUID, Uttaksplan>,
egneUttaksplanerAllePleietrengendePerBehandling: Map<UUID, Uttaksplan>,
vedtatteUttaksplanerPerBehandling: Map<UUID, Uttaksplan>,
forrigeUttaksplan: Uttaksplan?,
commitId: String = ""
Expand All @@ -29,12 +28,6 @@ object GrunnlagMapper {
uttaksgrunnlag.kravprioritetForBehandlinger.forEach { (periode, kravprio) ->
kravprioritetForBehandlinger[periode] = kravprio.map { UUID.fromString(it) }
}

val kravprioritetForEgneBehandlinger = mutableMapOf<LukketPeriode, List<UUID>>()
uttaksgrunnlag.kravprioritetForEgneBehandlinger.forEach { (periode, kravprio) ->
kravprioritetForEgneBehandlinger[periode] = kravprio.map { UUID.fromString(it) }
}

val sisteVedtatteUttaksplanForBehandling = mutableMapOf<UUID, UUID>()
uttaksgrunnlag.sisteVedtatteUttaksplanForBehandling.filterValues { it != null }
.forEach { (behandling, originalBehandling) ->
Expand All @@ -56,14 +49,12 @@ object GrunnlagMapper {
lovbestemtFerie = uttaksgrunnlag.lovbestemtFerie.sortedBy { it.fom },
inngangsvilkår = uttaksgrunnlag.inngangsvilkår,
andrePartersUttaksplanPerBehandling = andrePartersUttakplanPerBehandling,
egneUttaksplanerAllePleietrengendePerBehandling = egneUttaksplanerAllePleietrengendePerBehandling,
vedtatteUttaksplanPerBehandling = vedtatteUttaksplanerPerBehandling,
sisteVedtatteUttaksplanForBehandling = sisteVedtatteUttaksplanForBehandling,
forrigeUttaksplan = forrigeUttaksplan,
beredskapsperioder = uttaksgrunnlag.beredskapsperioder,
nattevåksperioder = uttaksgrunnlag.nattevåksperioder,
kravprioritetForBehandlinger = kravprioritetForBehandlinger,
kravprioritetForEgneBehandlinger = kravprioritetForEgneBehandlinger,
utenlandsoppholdperioder = uttaksgrunnlag.utenlandsoppholdperioder,
overstyrtInput = uttaksgrunnlag.overstyrtInput,
inntektsgradering = uttaksgrunnlag.inntektsgradering,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -309,5 +309,5 @@ private fun dummyUttaksperiodeInfo(oppgittTilsyn: Duration? = null) = Uttaksperi
uttaksgrad = HUNDRE_PROSENT,
årsaker = setOf(),
uttaksgradUtenReduksjonGrunnetInntektsgradering = null,
uttaksgradMedReduksjonGrunnetInntektsgradering = null,
uttaksgradMedReduksjonGrunnetInntektsgradering = null
)
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ internal class BeregnGraderTest {
ytelseType = YtelseType.PSB,
periode = PERIODE,
nyeReglerUtbetalingsgrad = NYE_REGLER_UTBETALINGSGRAD_DATO,
inntektsgradering = Inntektsgradering(BigDecimal.valueOf(50)),
inntektsgradering = Inntektsgradering(BigDecimal.valueOf(50))
)
)

Expand All @@ -92,7 +92,7 @@ internal class BeregnGraderTest {
ytelseType = YtelseType.PSB,
periode = PERIODE,
nyeReglerUtbetalingsgrad = NYE_REGLER_UTBETALINGSGRAD_DATO,
inntektsgradering = Inntektsgradering(BigDecimal.valueOf(50)),
inntektsgradering = Inntektsgradering(BigDecimal.valueOf(50))
)
)

Expand All @@ -119,7 +119,7 @@ internal class BeregnGraderTest {
periode = PERIODE,
nyeReglerUtbetalingsgrad = NYE_REGLER_UTBETALINGSGRAD_DATO,
inntektsgradering = Inntektsgradering(BigDecimal.valueOf(50)),
overstyrtInput = OverstyrtInput(BigDecimal.valueOf(30), listOf(OverstyrtUtbetalingsgradPerArbeidsforhold(BigDecimal.valueOf(30), ARBEIDSGIVER1))),
overstyrtInput = OverstyrtInput(BigDecimal.valueOf(30), listOf(OverstyrtUtbetalingsgradPerArbeidsforhold(BigDecimal.valueOf(30), ARBEIDSGIVER1)))
)
)

Expand Down
Loading

0 comments on commit d9d37b6

Please sign in to comment.