Skip to content

Commit

Permalink
EY-4564: regelverk alltid satt fra vedtaksvurdering (#6802)
Browse files Browse the repository at this point in the history
* EY-4564: Regelverk skal alltid være satt i utbetaling

* EY-4564: Setter regelverk til påkrevet i utbetalingsperioder for vedtak

* Migrerer inn regelverk på eksisterende vedtak som mangler

* Fikser feilende tester

* EY-4564: Setter regelverk også beregningsperioder

* EY-4564: Fikser feilende test

* EY-4564: Endrer versjon migreringsscript
  • Loading branch information
henrikg authored Jan 22, 2025
1 parent 285d43d commit e0c043a
Show file tree
Hide file tree
Showing 14 changed files with 46 additions and 28 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
-- Setter regelverk på alle perioder fom 2024
UPDATE beregningsperiode SET regelverk = 'REGELVERK_FOM_JAN_2024' WHERE regelverk is null AND datofom >= '2024-01-01';

-- Setter regelverk på alle perioder før 2024
UPDATE beregningsperiode SET regelverk = 'REGELVERK_TOM_DES_2023' WHERE regelverk is null AND datofom < '2024-01-01';

-- Legger på not-null constraint på feltet
ALTER TABLE beregningsperiode ALTER COLUMN regelverk SET NOT NULL;
2 changes: 2 additions & 0 deletions apps/etterlatte-beregning/src/test/kotlin/TestHelper.kt
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ import no.nav.etterlatte.beregning.grunnlag.InstitusjonsoppholdBeregningsgrunnla
import no.nav.etterlatte.beregning.regler.barnepensjon.BarnepensjonGrunnlag
import no.nav.etterlatte.ktor.token.simpleSaksbehandler
import no.nav.etterlatte.libs.common.IntBroek
import no.nav.etterlatte.libs.common.Regelverk
import no.nav.etterlatte.libs.common.Vedtaksloesning
import no.nav.etterlatte.libs.common.behandling.BehandlingStatus
import no.nav.etterlatte.libs.common.behandling.BehandlingType
Expand Down Expand Up @@ -321,6 +322,7 @@ fun beregningsperiode(
trygdetid = trygdetid,
regelResultat = mapOf("regel" to "resultat").toObjectNode(),
regelVersjon = "1",
regelverk = Regelverk.fraDato(datoFOM.atDay(1)),
kilde = Grunnlagsopplysning.RegelKilde("regelid", Tidspunkt.now(), "1"),
)

Expand Down
3 changes: 2 additions & 1 deletion apps/etterlatte-statistikk/src/test/resources/melding.json
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,8 @@
"tom": null
},
"beloep": 9290,
"type": "UTBETALING"
"type": "UTBETALING",
"regelverk": "REGELVERK_FOM_JAN_2024"
}
]
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,6 @@ class VedtakMottakRiver(
var vedtakId: Long? = null
try {
val vedtak: Utbetalingsvedtak = lesVedtak(packet).also { vedtakId = it.vedtakId }
// FIXME når VedtakNyDto tas i bruk: attestert ELLER samordnet (vedtakstatus)
logger.info("Attestert vedtak med vedtakId=${vedtak.vedtakId} mottatt")

when (val resultat = utbetalingService.iverksettUtbetaling(vedtak)) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -93,11 +93,10 @@ class UtbetalingMapper(
OppdragKlassifikasjonskode.OMSTILLINGSTOENAD_OPTP
}
Saktype.BARNEPENSJON -> {
// TODO i en overgangsperiode vil det finnes en del vedtak uten regelverk satt - kompenserer for dette her (https://jira.adeo.no/browse/EY-4564)
val regelverk = utbetalingsperiode.regelverk ?: Regelverk.fraDato(utbetalingsperiode.periode.fom.atDay(1))
when (regelverk) {
when (utbetalingsperiode.regelverk) {
Regelverk.REGELVERK_TOM_DES_2023 -> OppdragKlassifikasjonskode.BARNEPEFOER2024_OPTP
Regelverk.REGELVERK_FOM_JAN_2024 -> OppdragKlassifikasjonskode.BARNEPENSJON_OPTP
else -> throw Exception("Mangler regelverk i utbetalingsperiode")
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,11 +50,14 @@ class UtbetalingMapperTest {
utbetalingsperioder =
listOf(
utbetalingsperiode(
YearMonth.of(2023, Month.JANUARY),
YearMonth.of(2023, Month.DECEMBER),
fom = YearMonth.of(2023, Month.JANUARY),
tom = YearMonth.of(2023, Month.DECEMBER),
regelverk = Regelverk.REGELVERK_TOM_DES_2023,
),
utbetalingsperiode(
YearMonth.of(2024, Month.JANUARY),
fom = YearMonth.of(2024, Month.JANUARY),
tom = null,
regelverk = Regelverk.REGELVERK_FOM_JAN_2024,
),
),
sakType = Saktype.BARNEPENSJON,
Expand Down Expand Up @@ -95,7 +98,7 @@ class UtbetalingMapperTest {
private fun utbetalingsperiode(
fom: YearMonth,
tom: YearMonth? = null,
regelverk: Regelverk? = null,
regelverk: Regelverk,
) = Utbetalingsperiode(
id = 1,
periode = Periode(fom = fom, tom),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,8 @@ internal class UtbetalingsvedtakTest {
"id": 72,
"periode": {
"fom": "2022-09",
"tom": null
"tom": null,
"regelverk": "REGELVERK_TOM_DES_2023"
},
"beloep": 9290.0,
"type": "UTBETALING"
Expand Down Expand Up @@ -66,7 +67,8 @@ internal class UtbetalingsvedtakTest {
"id": 72,
"periode": {
"fom": "2022-09",
"tom": null
"tom": null,
"regelverk": "REGELVERK_TOM_DES_2023"
},
"beloep": 9290.0,
"type": "UTBETALING"
Expand Down
3 changes: 2 additions & 1 deletion apps/etterlatte-utbetaling/src/test/resources/vedtak.json
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,8 @@
"tom": null
},
"beloep": 2000,
"type": "UTBETALING"
"type": "UTBETALING",
"regelverk": "REGELVERK_TOM_DES_2023"
}
]
}
Expand Down
3 changes: 2 additions & 1 deletion apps/etterlatte-utbetaling/src/test/resources/vedtakOms.json
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,8 @@
"tom": null
},
"beloep": 2000,
"type": "UTBETALING"
"type": "UTBETALING",
"regelverk": "REGELVERK_TOM_DES_2023"
}
]
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,8 @@
"tom": null
},
"beloep": 2000,
"type": "UTBETALING"
"type": "UTBETALING",
"regelverk": "REGELVERK_FOM_JAN_2024"
}
]
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -554,7 +554,7 @@ class VedtakBehandlingService(
opprettUtbetalingsperioder(
vedtakType = vedtakType,
beregningOgAvkorting = beregningOgAvkorting,
behandling.sakType,
sakType = behandling.sakType,
opphoerFraOgMed = opphoerFraOgMed,
),
revurderingInfo = behandling.revurderingInfo,
Expand Down Expand Up @@ -633,7 +633,7 @@ class VedtakBehandlingService(
),
beloep = it.utbetaltBeloep.toBigDecimal(),
type = UtbetalingsperiodeType.UTBETALING,
regelverk = it.regelverk,
regelverk = it.regelverk ?: Regelverk.fraDato(it.datoFOM.atDay(1)),
)
}
}
Expand Down Expand Up @@ -677,15 +677,7 @@ class VedtakBehandlingService(
periode = Periode(opphoerFraOgMed, null),
beloep = null,
type = UtbetalingsperiodeType.OPPHOER,
regelverk =
if (perioderMedUtbetaling.any { it.regelverk != null }) {
// Regelverk er satt på periodene - for at det skal bli konsistent mot utbetaling
Regelverk.fraDato(
opphoerFraOgMed.atDay(1),
)
} else {
null
},
regelverk = Regelverk.fraDato(opphoerFraOgMed.atDay(1)),
),
)
} else {
Expand All @@ -698,14 +690,15 @@ class VedtakBehandlingService(
private fun hentRegelverkFraBeregningForPeriode(
beregningsperioder: List<Beregningsperiode>,
fom: YearMonth,
): Regelverk? {
): Regelverk {
val samsvarendeBeregningsperiode =
beregningsperioder
.sortedBy { it.datoFOM }
.firstOrNull { fom >= it.datoFOM && (it.datoTOM == null || fom <= it.datoTOM) }
?: throw InternfeilException("Fant ingen beregningsperioder som samsvarte med avkortingsperiode $fom")

return samsvarendeBeregningsperiode.regelverk
?: Regelverk.fraDato(samsvarendeBeregningsperiode.datoFOM.atDay(1))
}

private suspend fun hentDataForVedtak(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -598,7 +598,7 @@ class VedtaksvurderingRepository(
),
beloep = bigDecimalOrNull("beloep"),
type = UtbetalingsperiodeType.valueOf(string("type")),
regelverk = stringOrNull("regelverk")?.let { Regelverk.valueOf(it) },
regelverk = string("regelverk").let { Regelverk.valueOf(it) },
)

private fun Row.toAvkortetYtelsePeriode() =
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
-- Setter regelverk på alle perioder fom 2024
UPDATE utbetalingsperiode SET regelverk = 'REGELVERK_FOM_JAN_2024' WHERE regelverk is null AND datofom >= '2024-01-01';

-- Setter regelverk på alle perioder før 2024
UPDATE utbetalingsperiode SET regelverk = 'REGELVERK_TOM_DES_2023' WHERE regelverk is null AND datofom < '2024-01-01';

-- Legger på not-null constraint på feltet
ALTER TABLE utbetalingsperiode ALTER COLUMN regelverk SET NOT NULL;
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@ data class Utbetalingsperiode(
val periode: Periode,
val beloep: BigDecimal?,
val type: UtbetalingsperiodeType,
val regelverk: Regelverk?,
val regelverk: Regelverk,
)

enum class UtbetalingsperiodeType {
Expand Down

0 comments on commit e0c043a

Please sign in to comment.