Skip to content

Commit

Permalink
Fjerner SKAL_BRUKE_NY_KLASSEKODE_FOR_UTVIDET_BARNETRYGD-toggle (#5081)
Browse files Browse the repository at this point in the history
[NAV-24370](https://favro.com/organization/98c34fb974ce445eac854de0/1844bbac3b6605eacc8f5543?card=NAV-24370)

### 💰 Hva skal gjøres, og hvorfor?
Rydder bort toggle brukt i overgang til ny klassekode for utvidet
barnetrygd.
  • Loading branch information
bragejahren authored Feb 18, 2025
1 parent 14b1ba4 commit 45e8c3d
Show file tree
Hide file tree
Showing 16 changed files with 68 additions and 219 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,6 @@ enum class FeatureToggle(
// NAV-23955
BYTT_VALUTAJUSTERING_DATO("familie-ba-sak.behandling.valutajustering_dato"),

// NAV-22995
SKAL_BRUKE_NY_KLASSEKODE_FOR_UTVIDET_BARNETRYGD("familie-ba-sak.skal-bruke-ny-klassekode-for-utvidet-barnetrygd"),

// NAV-23733
BRUK_OVERSTYRING_AV_FOM_SISTE_ANDEL_UTVIDET("familie-ba-sak.bruk-overstyring-av-fom-siste-andel-utvidet"),

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
package no.nav.familie.ba.sak.integrasjoner.økonomi.utbetalingsoppdrag

import no.nav.familie.ba.sak.config.FeatureToggle
import no.nav.familie.ba.sak.config.featureToggle.UnleashNextMedContextService
import no.nav.familie.ba.sak.kjerne.behandling.domene.Behandling
import no.nav.familie.ba.sak.kjerne.beregning.domene.TilkjentYtelseRepository
import no.nav.familie.felles.utbetalingsgenerator.domain.BeregnetUtbetalingsoppdragLongId
Expand All @@ -10,21 +8,11 @@ import org.springframework.stereotype.Component
@Component
class KlassifiseringKorrigerer(
private val tilkjentYtelseRepository: TilkjentYtelseRepository,
private val unleashNextMedContextService: UnleashNextMedContextService,
) {
fun korrigerKlassifiseringVedBehov(
beregnetUtbetalingsoppdrag: BeregnetUtbetalingsoppdragLongId,
behandling: Behandling,
): BeregnetUtbetalingsoppdragLongId {
// For fagsaker vi ikke har skrudd på ny klassekode for, returnerer vi det originale utbetalingsoppdraget.
if (!unleashNextMedContextService.isEnabled(
toggle = FeatureToggle.SKAL_BRUKE_NY_KLASSEKODE_FOR_UTVIDET_BARNETRYGD,
behandlingId = behandling.id,
)
) {
return beregnetUtbetalingsoppdrag
}

val erFagsakOverPåNyKlassekodeForUtvidetBarnetrygd =
tilkjentYtelseRepository.harFagsakTattIBrukNyKlassekodeForUtvidetBarnetrygd(
fagsakId = behandling.fagsak.id,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,15 +13,14 @@ object SisteUtvidetAndelOverstyrer {
fun overstyrSisteUtvidetBarnetrygdAndel(
sisteAndelPerKjede: Map<IdentOgType, AndelTilkjentYtelse>,
tilkjenteYtelserMedOppdatertUtvidetKlassekodeIUtbetalingsoppdrag: List<TilkjentYtelse>,
skalBrukeNyKlassekodeForUtvidetBarnetrygd: Boolean,
): Map<IdentOgType, AndelDataLongId> {
return sisteAndelPerKjede.mapValues { (identOgType, sisteAndelIKjede) ->
if (identOgType.type != YtelsetypeBA.UTVIDET_BARNETRYGD) {
return@mapValues sisteAndelIKjede.tilAndelDataLongId(skalBrukeNyKlassekodeForUtvidetBarnetrygd)
return@mapValues sisteAndelIKjede.tilAndelDataLongId()
}

if (tilkjenteYtelserMedOppdatertUtvidetKlassekodeIUtbetalingsoppdrag.isEmpty()) {
return@mapValues sisteAndelIKjede.tilAndelDataLongId(skalBrukeNyKlassekodeForUtvidetBarnetrygd)
return@mapValues sisteAndelIKjede.tilAndelDataLongId()
}

// Finner siste utbetalingsoppdraget som innehold kjedelementer med oppdatert utvidet klassekode
Expand All @@ -37,9 +36,9 @@ object SisteUtvidetAndelOverstyrer {
if (sisteAndelIKjede.stønadFom != sistOversendteUtvidetBarnetrygdKjedeelement.vedtakdatoFom.toYearMonth()) {
logger.warn("Overstyrer vedtakFom i andelDataLongId da fom til siste andel per kjede ikke stemmer overens med siste kjedelement oversendt til Oppdrag")
// Oppdaterer fom i AndelDataLongId til samme fom som sist oversendte, da det ikke er 1-1 mellom fom på siste andel og fom på siste kjedelement oversendt til Oppdrag.
return@mapValues sisteAndelIKjede.tilAndelDataLongId(skalBrukeNyKlassekodeForUtvidetBarnetrygd).copy(fom = sistOversendteUtvidetBarnetrygdKjedeelement.vedtakdatoFom.toYearMonth(), tom = sistOversendteUtvidetBarnetrygdKjedeelement.vedtakdatoTom.toYearMonth())
return@mapValues sisteAndelIKjede.tilAndelDataLongId().copy(fom = sistOversendteUtvidetBarnetrygdKjedeelement.vedtakdatoFom.toYearMonth(), tom = sistOversendteUtvidetBarnetrygdKjedeelement.vedtakdatoTom.toYearMonth())
}
return@mapValues sisteAndelIKjede.tilAndelDataLongId(skalBrukeNyKlassekodeForUtvidetBarnetrygd)
return@mapValues sisteAndelIKjede.tilAndelDataLongId()
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -43,16 +43,10 @@ class UtbetalingsoppdragGenerator(
erSimulering,
)

val skalBrukeNyKlassekodeForUtvidetBarnetrygd =
unleashNextMedContextService.isEnabled(
toggle = FeatureToggle.SKAL_BRUKE_NY_KLASSEKODE_FOR_UTVIDET_BARNETRYGD,
behandlingId = vedtak.behandling.id,
)

val forrigeAndeler =
forrigeTilkjentYtelse?.tilAndelData(skalBrukeNyKlassekodeForUtvidetBarnetrygd) ?: emptyList()
forrigeTilkjentYtelse?.tilAndelData() ?: emptyList()

val nyeAndeler = tilkjentYtelse.tilAndelData(skalBrukeNyKlassekodeForUtvidetBarnetrygd)
val nyeAndeler = tilkjentYtelse.tilAndelData()

val beregnetUtbetalingsoppdrag =
utbetalingsgenerator.lagUtbetalingsoppdrag(
Expand All @@ -71,27 +65,20 @@ class UtbetalingsoppdragGenerator(
private fun hentSisteAndelTilkjentYtelse(
behandling: Behandling,
): Map<IdentOgType, AndelDataLongId> {
val skalBrukeNyKlassekodeForUtvidetBarnetrygd =
unleashNextMedContextService.isEnabled(
toggle = FeatureToggle.SKAL_BRUKE_NY_KLASSEKODE_FOR_UTVIDET_BARNETRYGD,
behandlingId = behandling.id,
)

val sisteAndelPerKjede =
andelTilkjentYtelseRepository
.hentSisteAndelPerIdentOgType(fagsakId = behandling.fagsak.id)
.associateBy { IdentOgType(it.aktør.aktivFødselsnummer(), it.type.tilYtelseType(skalBrukeNyKlassekodeForUtvidetBarnetrygd)) }
.associateBy { IdentOgType(it.aktør.aktivFødselsnummer(), it.type.tilYtelseType()) }

val tilkjenteYtelserMedOppdatertUtvidetBarnetrygdKlassekodeIUtbetalingsoppdrag = tilkjentYtelseRepository.findByOppdatertUtvidetBarnetrygdKlassekodeIUtbetalingsoppdrag(behandling.fagsak.id)

return if (tilkjenteYtelserMedOppdatertUtvidetBarnetrygdKlassekodeIUtbetalingsoppdrag.isNotEmpty() && unleashNextMedContextService.isEnabled(FeatureToggle.BRUK_OVERSTYRING_AV_FOM_SISTE_ANDEL_UTVIDET)) {
SisteUtvidetAndelOverstyrer.overstyrSisteUtvidetBarnetrygdAndel(
sisteAndelPerKjede = sisteAndelPerKjede,
tilkjenteYtelserMedOppdatertUtvidetKlassekodeIUtbetalingsoppdrag = tilkjenteYtelserMedOppdatertUtvidetBarnetrygdKlassekodeIUtbetalingsoppdrag,
skalBrukeNyKlassekodeForUtvidetBarnetrygd = skalBrukeNyKlassekodeForUtvidetBarnetrygd,
)
} else {
sisteAndelPerKjede.mapValues { it.value.tilAndelDataLongId(skalBrukeNyKlassekodeForUtvidetBarnetrygd) }
sisteAndelPerKjede.mapValues { it.value.tilAndelDataLongId() }
}
}

Expand All @@ -101,16 +88,16 @@ class UtbetalingsoppdragGenerator(
?.let { tilkjentYtelseRepository.findByBehandlingAndHasUtbetalingsoppdrag(behandlingId = it.id) }
}

fun TilkjentYtelse.tilAndelData(skalBrukeNyKlassekodeForUtvidetBarnetrygd: Boolean): List<AndelDataLongId> = this.andelerTilkjentYtelse.map { it.tilAndelDataLongId(skalBrukeNyKlassekodeForUtvidetBarnetrygd) }
fun TilkjentYtelse.tilAndelData(): List<AndelDataLongId> = this.andelerTilkjentYtelse.map { it.tilAndelDataLongId() }

fun AndelTilkjentYtelse.tilAndelDataLongId(skalBrukeNyKlassekodeForUtvidetBarnetrygd: Boolean): AndelDataLongId =
fun AndelTilkjentYtelse.tilAndelDataLongId(): AndelDataLongId =
AndelDataLongId(
id = id,
fom = periode.fom,
tom = periode.tom,
beløp = kalkulertUtbetalingsbeløp,
personIdent = aktør.aktivFødselsnummer(),
type = type.tilYtelseType(skalBrukeNyKlassekodeForUtvidetBarnetrygd),
type = type.tilYtelseType(),
periodeId = periodeOffset,
forrigePeriodeId = forrigePeriodeOffset,
kildeBehandlingId = kildeBehandlingId,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@ enum class YtelsetypeBA(
) : Ytelsestype {
ORDINÆR_BARNETRYGD("BATR"),
UTVIDET_BARNETRYGD("BAUTV-OP"),

// UTVIDET_BARNETRYGD_GAMMEL kan ikke slettes før vi er sikre på at alle løpende saker er over på ny klassekode
UTVIDET_BARNETRYGD_GAMMEL("BATR"),
SMÅBARNSTILLEGG("BATRSMA"),
}
Original file line number Diff line number Diff line change
Expand Up @@ -179,16 +179,10 @@ enum class YtelseType(
SMÅBARNSTILLEGG("BATRSMA"),
;

fun tilYtelseType(skalBrukeNyKlassekodeForUtvidetBarnetrygd: Boolean): YtelsetypeBA =
fun tilYtelseType(): YtelsetypeBA =
when (this) {
ORDINÆR_BARNETRYGD -> YtelsetypeBA.ORDINÆR_BARNETRYGD
UTVIDET_BARNETRYGD ->
if (skalBrukeNyKlassekodeForUtvidetBarnetrygd) {
YtelsetypeBA.UTVIDET_BARNETRYGD
} else {
YtelsetypeBA.UTVIDET_BARNETRYGD_GAMMEL
}

UTVIDET_BARNETRYGD -> YtelsetypeBA.UTVIDET_BARNETRYGD
SMÅBARNSTILLEGG -> YtelsetypeBA.SMÅBARNSTILLEGG
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -240,7 +240,7 @@ class BehandlingsinformasjonUtlederTest {

val sisteAndelPerKjede =
mapOf(
IdentOgType("1", YtelsetypeBA.ORDINÆR_BARNETRYGD) to andelTilkjentYtelse.tilAndelDataLongId(true),
IdentOgType("1", YtelsetypeBA.ORDINÆR_BARNETRYGD) to andelTilkjentYtelse.tilAndelDataLongId(),
)

every {
Expand Down Expand Up @@ -311,7 +311,7 @@ class BehandlingsinformasjonUtlederTest {

val sisteAndelPerKjede =
mapOf(
IdentOgType("1", YtelsetypeBA.ORDINÆR_BARNETRYGD) to lagAndelTilkjentYtelse.tilAndelDataLongId(true),
IdentOgType("1", YtelsetypeBA.ORDINÆR_BARNETRYGD) to lagAndelTilkjentYtelse.tilAndelDataLongId(),
)

every {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,6 @@ import io.mockk.every
import io.mockk.mockk
import no.nav.familie.ba.sak.common.førsteDagIInneværendeMåned
import no.nav.familie.ba.sak.common.sisteDagIMåned
import no.nav.familie.ba.sak.config.FeatureToggle
import no.nav.familie.ba.sak.config.featureToggle.UnleashNextMedContextService
import no.nav.familie.ba.sak.datagenerator.lagBehandling
import no.nav.familie.ba.sak.kjerne.beregning.domene.TilkjentYtelseRepository
import no.nav.familie.felles.utbetalingsgenerator.domain.Opphør
Expand All @@ -15,46 +13,11 @@ import java.time.LocalDate

class KlassifiseringKorrigererTest {
private val tilkjentYtelseRepository = mockk<TilkjentYtelseRepository>()
private val unleashNextMedContextService = mockk<UnleashNextMedContextService>()
private val klassifiseringKorrigerer =
KlassifiseringKorrigerer(
tilkjentYtelseRepository = tilkjentYtelseRepository,
unleashNextMedContextService = unleashNextMedContextService,
)

@Test
fun `skal returnere originalt utbetalingsoppdrag dersom toggle er av for fagsak`() {
// Arrange
val behandling = lagBehandling()
val beregnetUtbetalingsoppdragLongId =
lagBeregnetUtbetalingsoppdragLongId(
utbetalingsperioder =
listOf(
lagUtbetalingsperiode(
behandlingId = behandling.id,
periodeId = 0,
forrigePeriodeId = null,
ytelseTypeBa = YtelsetypeBA.UTVIDET_BARNETRYGD,
fom = LocalDate.now().førsteDagIInneværendeMåned(),
tom = LocalDate.now().sisteDagIMåned(),
),
),
andeler = emptyList(),
)

every { unleashNextMedContextService.isEnabled(FeatureToggle.SKAL_BRUKE_NY_KLASSEKODE_FOR_UTVIDET_BARNETRYGD, behandling.id) } returns false

// Act
val justertUtbetalingsoppdrag =
klassifiseringKorrigerer.korrigerKlassifiseringVedBehov(
beregnetUtbetalingsoppdrag = beregnetUtbetalingsoppdragLongId,
behandling = behandling,
)

// Assert
assertThat(justertUtbetalingsoppdrag).isEqualTo(beregnetUtbetalingsoppdragLongId)
}

@Test
fun `skal returnere originalt utbetalingsoppdrag dersom fagsak er over på ny klassekode`() {
// Arrange
Expand All @@ -75,7 +38,6 @@ class KlassifiseringKorrigererTest {
andeler = emptyList(),
)

every { unleashNextMedContextService.isEnabled(FeatureToggle.SKAL_BRUKE_NY_KLASSEKODE_FOR_UTVIDET_BARNETRYGD, behandling.id) } returns true
every { tilkjentYtelseRepository.harFagsakTattIBrukNyKlassekodeForUtvidetBarnetrygd(behandling.fagsak.id) } returns true

// Act
Expand Down Expand Up @@ -109,7 +71,6 @@ class KlassifiseringKorrigererTest {
andeler = emptyList(),
)

every { unleashNextMedContextService.isEnabled(FeatureToggle.SKAL_BRUKE_NY_KLASSEKODE_FOR_UTVIDET_BARNETRYGD, behandling.id) } returns true
every { tilkjentYtelseRepository.harFagsakTattIBrukNyKlassekodeForUtvidetBarnetrygd(behandling.fagsak.id) } returns false

// Act
Expand Down Expand Up @@ -172,7 +133,6 @@ class KlassifiseringKorrigererTest {
),
)

every { unleashNextMedContextService.isEnabled(FeatureToggle.SKAL_BRUKE_NY_KLASSEKODE_FOR_UTVIDET_BARNETRYGD, behandling.id) } returns true
every { tilkjentYtelseRepository.harFagsakTattIBrukNyKlassekodeForUtvidetBarnetrygd(behandling.fagsak.id) } returns false

// Act
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,6 @@ class SisteUtvidetAndelOverstyrerTest {
SisteUtvidetAndelOverstyrer.overstyrSisteUtvidetBarnetrygdAndel(
sisteAndelPerKjede = sisteAndelPerKjede,
tilkjenteYtelserMedOppdatertUtvidetKlassekodeIUtbetalingsoppdrag = tilkjenteYtelserMedOppdatertUtvidetKlassekodeIUtbetalingsoppdrag,
skalBrukeNyKlassekodeForUtvidetBarnetrygd = true,
)

// Assert
Expand All @@ -106,7 +105,7 @@ class SisteUtvidetAndelOverstyrerTest {
sisteAndelPerKjede.entries
.single { it.key.type == YtelsetypeBA.ORDINÆR_BARNETRYGD }
.value
.tilAndelDataLongId(true),
.tilAndelDataLongId(),
)
}

Expand Down Expand Up @@ -142,11 +141,10 @@ class SisteUtvidetAndelOverstyrerTest {
SisteUtvidetAndelOverstyrer.overstyrSisteUtvidetBarnetrygdAndel(
sisteAndelPerKjede = sisteAndelPerKjede,
tilkjenteYtelserMedOppdatertUtvidetKlassekodeIUtbetalingsoppdrag = emptyList(),
skalBrukeNyKlassekodeForUtvidetBarnetrygd = true,
)

// Assert
assertThat(sisteAndelPerKjedeMedOverstyrtUtvidetAndel).isEqualTo(sisteAndelPerKjede.mapValues { it.value.tilAndelDataLongId(true) })
assertThat(sisteAndelPerKjedeMedOverstyrtUtvidetAndel).isEqualTo(sisteAndelPerKjede.mapValues { it.value.tilAndelDataLongId() })
}

@Test
Expand Down Expand Up @@ -213,11 +211,10 @@ class SisteUtvidetAndelOverstyrerTest {
SisteUtvidetAndelOverstyrer.overstyrSisteUtvidetBarnetrygdAndel(
sisteAndelPerKjede = sisteAndelPerKjede,
tilkjenteYtelserMedOppdatertUtvidetKlassekodeIUtbetalingsoppdrag = tilkjenteYtelserMedOppdatertUtvidetKlassekodeIUtbetalingsoppdrag,
skalBrukeNyKlassekodeForUtvidetBarnetrygd = true,
)

// Assert
assertThat(sisteAndelPerKjedeMedOverstyrtUtvidetAndel).isEqualTo(sisteAndelPerKjede.mapValues { it.value.tilAndelDataLongId(true) })
assertThat(sisteAndelPerKjedeMedOverstyrtUtvidetAndel).isEqualTo(sisteAndelPerKjede.mapValues { it.value.tilAndelDataLongId() })
}

@Test
Expand Down Expand Up @@ -284,7 +281,6 @@ class SisteUtvidetAndelOverstyrerTest {
SisteUtvidetAndelOverstyrer.overstyrSisteUtvidetBarnetrygdAndel(
sisteAndelPerKjede = sisteAndelPerKjede,
tilkjenteYtelserMedOppdatertUtvidetKlassekodeIUtbetalingsoppdrag = tilkjenteYtelserMedOppdatertUtvidetKlassekodeIUtbetalingsoppdrag,
skalBrukeNyKlassekodeForUtvidetBarnetrygd = true,
)
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -100,13 +100,6 @@ class UtbetalingsoppdragGeneratorTest {
opphørAlleKjederFra = null,
)

every {
unleashNextMedContextService.isEnabled(
toggle = FeatureToggle.SKAL_BRUKE_NY_KLASSEKODE_FOR_UTVIDET_BARNETRYGD,
behandlingId = behandling.id,
)
} returns true

every {
unleashNextMedContextService.isEnabled(
toggle = FeatureToggle.BRUK_OVERSTYRING_AV_FOM_SISTE_ANDEL_UTVIDET,
Expand Down Expand Up @@ -239,13 +232,6 @@ class UtbetalingsoppdragGeneratorTest {
opphørAlleKjederFra = null,
)

every {
unleashNextMedContextService.isEnabled(
toggle = FeatureToggle.SKAL_BRUKE_NY_KLASSEKODE_FOR_UTVIDET_BARNETRYGD,
behandlingId = any(),
)
} returns true

every {
unleashNextMedContextService.isEnabled(
toggle = FeatureToggle.BRUK_OVERSTYRING_AV_FOM_SISTE_ANDEL_UTVIDET,
Expand Down
Loading

0 comments on commit 45e8c3d

Please sign in to comment.