Skip to content

Commit

Permalink
Slett all gammel begrunnelse kode og slett begrunnelser ny toggle (#4045
Browse files Browse the repository at this point in the history
)

Favrokort:
https://favro.com/organization/98c34fb974ce445eac854de0/1844bbac3b6605eacc8f5543?card=NAV-15962

Vi ønsker å slette toggelen "BEGRUNNELSER_NY" og alt gammel begrunnelser
kode.
På dette tidspunktet ønsker vi heller å rette feil i den nye løsningen
istedenfor å rulle tilbake.
  • Loading branch information
UyQuangNguyen authored Oct 4, 2023
1 parent d7e3634 commit 796a76b
Show file tree
Hide file tree
Showing 59 changed files with 88 additions and 1,024 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@ class FeatureToggleConfig {
const val EØS_INFORMASJON_OM_ÅRLIG_KONTROLL = "familie-ba-sak.eos-informasjon-om-aarlig-kontroll"
const val ER_MANUEL_POSTERING_TOGGLE_PÅ = "familie-ba-sak.manuell-postering"
const val FEILUTBETALT_VALUTA_PR_MND = "familie-ba-sak.feilutbetalt-valuta-pr-mnd"
const val BEGRUNNELSER_NY = "familie-ba-sak.begrunnelser-ny"
const val EØS_PRAKSISENDRING_SEPTEMBER2023 =
"familie-ba-sak.behandling.eos-annen-forelder-omfattet-av-norsk-lovgivning"

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -82,8 +82,6 @@ data class AndelTilkjentYtelseForTidslinje(
val sats: Int,
val ytelseType: YtelseType,
val prosent: BigDecimal,
val stønadFom: YearMonth? = null,
val stønadTom: YearMonth? = null,
val nasjonaltPeriodebeløp: Int = beløp,
val differanseberegnetPeriodebeløp: Int? = null,
)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package no.nav.familie.ba.sak.kjerne.beregning

import no.nav.familie.ba.sak.common.toYearMonth
import no.nav.familie.ba.sak.config.FeatureToggleConfig
import no.nav.familie.ba.sak.config.FeatureToggleService
import no.nav.familie.ba.sak.integrasjoner.økonomi.AndelTilkjentYtelseForSimuleringFactory
import no.nav.familie.ba.sak.integrasjoner.økonomi.AndelTilkjentYtelseForUtbetalingsoppdrag
Expand Down Expand Up @@ -191,15 +190,12 @@ class BeregningService(
val vilkårsvurdering = vilkårsvurderingRepository.findByBehandlingAndAktiv(behandling.id)
?: throw IllegalStateException("Kunne ikke hente vilkårsvurdering for behandling med id ${behandling.id}")

val skalBrukeNyBegrunnelseLogikk = featureToggleService.isEnabled(FeatureToggleConfig.BEGRUNNELSER_NY)

val tilkjentYtelse =
TilkjentYtelseUtils.beregnTilkjentYtelse(
vilkårsvurdering = vilkårsvurdering,
personopplysningGrunnlag = personopplysningGrunnlag,
endretUtbetalingAndeler = endreteUtbetalingAndeler,
fagsakType = behandling.fagsak.type,
skalBrukeNyBegrunnelseLogikk = skalBrukeNyBegrunnelseLogikk,
) { søkerAktør ->
småbarnstilleggService.hentOgLagrePerioderMedOvergangsstønadForBehandling(
søkerAktør = søkerAktør,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package no.nav.familie.ba.sak.kjerne.beregning

import no.nav.familie.ba.sak.common.Utils.avrundetHeltallAvProsent
import no.nav.familie.ba.sak.common.toYearMonth
import no.nav.familie.ba.sak.kjerne.beregning.domene.AndelTilkjentYtelseMedEndreteUtbetalinger
import no.nav.familie.ba.sak.kjerne.beregning.domene.InternPeriodeOvergangsstønad
import no.nav.familie.ba.sak.kjerne.beregning.domene.InternPeriodeOvergangsstønadTidslinje
Expand All @@ -25,7 +24,6 @@ data class SmåbarnstilleggBarnetrygdGenerator(
utvidetAndeler: List<AndelTilkjentYtelseMedEndreteUtbetalinger>,
barnasAndeler: List<AndelTilkjentYtelseMedEndreteUtbetalinger>,
barnasAktørerOgFødselsdatoer: List<Pair<Aktør, LocalDate>>,
skalBrukeNyBegrunnelseLogikk: Boolean,
): List<AndelTilkjentYtelseMedEndreteUtbetalinger> {
if (perioderMedFullOvergangsstønad.isEmpty() || utvidetAndeler.isEmpty() || barnasAndeler.isEmpty()) return emptyList()

Expand All @@ -51,26 +49,18 @@ data class SmåbarnstilleggBarnetrygdGenerator(

return kombinertProsentTidslinje.filtrerIkkeNull().lagSmåbarnstilleggAndeler(
søkerAktør = søkerAktør,
skalBrukeNyBegrunnelseLogikk = skalBrukeNyBegrunnelseLogikk,
)
}

private fun Tidslinje<SmåbarnstilleggPeriode, Måned>.lagSmåbarnstilleggAndeler(
søkerAktør: Aktør,
skalBrukeNyBegrunnelseLogikk: Boolean,
): List<AndelTilkjentYtelseMedEndreteUtbetalinger> {
return this.kombinerUtenNullMed(satstypeTidslinje(SatsType.SMA)) { småbarnstilleggPeriode, sats ->
val prosentIPeriode = småbarnstilleggPeriode.prosent
val beløpIPeriode = sats.avrundetHeltallAvProsent(prosent = prosentIPeriode)

val stønadFom = if (skalBrukeNyBegrunnelseLogikk) null else småbarnstilleggPeriode.overgangsstønadPeriode.fomDato.toYearMonth()
val stønadTom = if (skalBrukeNyBegrunnelseLogikk) null else småbarnstilleggPeriode.overgangsstønadPeriode.tomDato.toYearMonth()

AndelTilkjentYtelseForTidslinje(
aktør = søkerAktør,
// Tar vare på overgangsstøandperiodene
stønadFom = stønadFom,
stønadTom = stønadTom,
beløp = beløpIPeriode,
ytelseType = YtelseType.SMÅBARNSTILLEGG,
sats = sats,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
package no.nav.familie.ba.sak.kjerne.beregning

import no.nav.familie.ba.sak.common.secureLogger
import no.nav.familie.ba.sak.config.FeatureToggleConfig
import no.nav.familie.ba.sak.config.FeatureToggleService
import no.nav.familie.ba.sak.integrasjoner.ef.EfSakRestClient
import no.nav.familie.ba.sak.kjerne.behandling.BehandlingHentOgPersisterService
import no.nav.familie.ba.sak.kjerne.behandling.domene.Behandling
Expand Down Expand Up @@ -30,7 +28,6 @@ class SmåbarnstilleggService(
private val tilkjentYtelseRepository: TilkjentYtelseRepository,
private val persongrunnlagService: PersongrunnlagService,
private val andelerTilkjentYtelseOgEndreteUtbetalingerService: AndelerTilkjentYtelseOgEndreteUtbetalingerService,
private val featureToggleService: FeatureToggleService,
) {

@Transactional
Expand Down Expand Up @@ -93,13 +90,12 @@ class SmåbarnstilleggService(
behandling: Behandling,
): List<InternPeriodeOvergangsstønad> {
val dagensDato = LocalDate.now()
val skalBrukeNyBegrunnelseLogikk = featureToggleService.isEnabled(FeatureToggleConfig.BEGRUNNELSER_NY)

val perioderOvergangsstønad = periodeOvergangsstønadGrunnlagRepository.findByBehandlingId(behandlingId = behandling.id).map { it.tilInternPeriodeOvergangsstønad() }
val overgangsstønadPerioderFraForrigeBehandling =
hentPerioderMedOvergangsstønadFraForrigeVedtatteBehandling(behandling).map { it.tilInternPeriodeOvergangsstønad() }.slåSammenTidligerePerioder(dagensDato, skalBrukeNyBegrunnelseLogikk)
hentPerioderMedOvergangsstønadFraForrigeVedtatteBehandling(behandling).map { it.tilInternPeriodeOvergangsstønad() }.slåSammenTidligerePerioder(dagensDato)

return perioderOvergangsstønad.splittOgSlåSammen(overgangsstønadPerioderFraForrigeBehandling, dagensDato, skalBrukeNyBegrunnelseLogikk)
return perioderOvergangsstønad.splittOgSlåSammen(overgangsstønadPerioderFraForrigeBehandling, dagensDato)
}

private fun hentPerioderMedOvergangsstønadFraForrigeVedtatteBehandling(behandling: Behandling): List<PeriodeOvergangsstønadGrunnlag> {
Expand All @@ -116,8 +112,6 @@ class SmåbarnstilleggService(
}

fun vedtakOmOvergangsstønadPåvirkerFagsak(fagsak: Fagsak): Boolean {
val skalBrukeNyBegrunnelseLogikk = featureToggleService.isEnabled(FeatureToggleConfig.BEGRUNNELSER_NY)

val sistIverksatteBehandling =
behandlingHentOgPersisterService.hentSisteBehandlingSomErIverksatt(fagsakId = fagsak.id)
?: return false
Expand All @@ -132,7 +126,7 @@ class SmåbarnstilleggService(

val nyePerioderMedFullOvergangsstønad =
hentPerioderMedFullOvergangsstønad(aktør = fagsak.aktør).map { it.tilInternPeriodeOvergangsstønad() }
.slåSammenTidligerePerioder(dagensDato, skalBrukeNyBegrunnelseLogikk)
.slåSammenTidligerePerioder(dagensDato)

val andelerMedEndringerFraSistIverksatteBehandling = andelerTilkjentYtelseOgEndreteUtbetalingerService
.finnAndelerTilkjentYtelseMedEndreteUtbetalinger(sistIverksatteBehandling.id)
Expand All @@ -152,7 +146,6 @@ class SmåbarnstilleggService(
it.fødselsdato,
)
},
skalBrukeNyBegrunnelseLogikk = skalBrukeNyBegrunnelseLogikk,
)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,9 +38,8 @@ import java.time.YearMonth
fun List<InternPeriodeOvergangsstønad>.splittOgSlåSammen(
overgangsstønadPerioderFraForrigeBehandling: List<InternPeriodeOvergangsstønad>,
dagensDato: LocalDate,
skalBrukeNyBegrunnelseLogikk: Boolean,
) = this
.slåSammenTidligerePerioder(dagensDato, skalBrukeNyBegrunnelseLogikk)
.slåSammenTidligerePerioder(dagensDato)
.splitFramtidigePerioderFraForrigeBehandling(overgangsstønadPerioderFraForrigeBehandling, LocalDate.now())

class VedtaksperiodefinnerSmåbarnstilleggFeil(
Expand All @@ -60,7 +59,6 @@ fun vedtakOmOvergangsstønadPåvirkerFagsak(
nyePerioderMedFullOvergangsstønad: List<InternPeriodeOvergangsstønad>,
forrigeAndelerTilkjentYtelse: List<AndelTilkjentYtelseMedEndreteUtbetalinger>,
barnasAktørerOgFødselsdatoer: List<Pair<Aktør, LocalDate>>,
skalBrukeNyBegrunnelseLogikk: Boolean,
): Boolean {
val (forrigeSmåbarnstilleggAndeler, forrigeAndelerIkkeSmåbarnstillegg) = forrigeAndelerTilkjentYtelse.partition { it.erSmåbarnstillegg() }

Expand All @@ -71,7 +69,6 @@ fun vedtakOmOvergangsstønadPåvirkerFagsak(
barnasAndeler = forrigeBarnasAndeler,
utvidetAndeler = forrigeUtvidetAndeler,
barnasAktørerOgFødselsdatoer = barnasAktørerOgFødselsdatoer,
skalBrukeNyBegrunnelseLogikk = skalBrukeNyBegrunnelseLogikk,
)

return nyeSmåbarnstilleggAndeler.førerTilEndringIUtbetalingFraForrigeBehandling(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,6 @@ object TilkjentYtelseUtils {
personopplysningGrunnlag: PersonopplysningGrunnlag,
endretUtbetalingAndeler: List<EndretUtbetalingAndelMedAndelerTilkjentYtelse> = emptyList(),
fagsakType: FagsakType,
skalBrukeNyBegrunnelseLogikk: Boolean,
hentPerioderMedFullOvergangsstønad: (aktør: Aktør) -> List<InternPeriodeOvergangsstønad> = { _ -> emptyList() },
): TilkjentYtelse {
val tilkjentYtelse = TilkjentYtelse(
Expand Down Expand Up @@ -95,7 +94,6 @@ object TilkjentYtelseUtils {
),
utvidetAndeler = andelerTilkjentYtelseUtvidetMedAlleEndringer,
barnasAndeler = barnasAndelerInkludertEtterbetaling3ÅrEndringer,
skalBrukeNyBegrunnelseLogikk = skalBrukeNyBegrunnelseLogikk,
barnasAktørerOgFødselsdatoer = personopplysningGrunnlag.barna.map {
Pair(
it.aktør,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,14 +28,8 @@ fun EksternPeriode.tilInternPeriodeOvergangsstønad() = InternPeriodeOvergangsst

fun List<InternPeriodeOvergangsstønad>.slåSammenTidligerePerioder(
dagensDato: LocalDate,
skalBrukeNyBegrunnelseLogikk: Boolean,
): List<InternPeriodeOvergangsstønad> {
val tidligerePerioder =
if (skalBrukeNyBegrunnelseLogikk) {
this.filter { it.fomDato.isSameOrBefore(dagensDato) }
} else {
this.filter { it.tomDato.isSameOrBefore(dagensDato) }
}
val tidligerePerioder = this.filter { it.fomDato.isSameOrBefore(dagensDato) }

val nyePerioder = this.minus(tidligerePerioder)
return tidligerePerioder.slåSammenSammenhengendePerioder() + nyePerioder
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ import no.nav.familie.ba.sak.common.NullablePeriode
import no.nav.familie.ba.sak.common.Periode
import no.nav.familie.ba.sak.common.TIDENES_ENDE
import no.nav.familie.ba.sak.common.TIDENES_MORGEN
import no.nav.familie.ba.sak.config.FeatureToggleService
import no.nav.familie.ba.sak.kjerne.brev.domene.EndretUtbetalingsperiodeDeltBostedTriggere
import no.nav.familie.ba.sak.kjerne.brev.domene.MinimertRestEndretAndel
import no.nav.familie.ba.sak.kjerne.brev.domene.MinimertUtbetalingsperiodeDetalj
Expand Down Expand Up @@ -34,7 +33,6 @@ fun hentPersonidenterGjeldendeForBegrunnelse(
identerMedReduksjonPåPeriode: List<String> = emptyList(),
minimerteUtbetalingsperiodeDetaljer: List<MinimertUtbetalingsperiodeDetalj>,
deBarnForrigePeriode: List<String>,
featureToggleService: FeatureToggleService,
): Set<String> {
val erFortsattInnvilgetBegrunnelse = vedtakBegrunnelseType.erFortsattInnvilget()
val erEndretUtbetalingBegrunnelse = vedtakBegrunnelseType == VedtakBegrunnelseType.ENDRET_UTBETALING
Expand All @@ -58,7 +56,6 @@ fun hentPersonidenterGjeldendeForBegrunnelse(
begrunnelse = begrunnelse,
triggesAv = triggesAv,
erFørsteVedtaksperiodePåFagsak = erFørsteVedtaksperiodePåFagsak,
featureToggleService = featureToggleService,
).map { person -> person.personIdent }

return when {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,6 @@ import no.nav.familie.ba.sak.common.førsteDagINesteMåned
import no.nav.familie.ba.sak.common.tilDagMånedÅr
import no.nav.familie.ba.sak.common.tilKortString
import no.nav.familie.ba.sak.common.tilMånedÅr
import no.nav.familie.ba.sak.config.FeatureToggleConfig
import no.nav.familie.ba.sak.config.FeatureToggleService
import no.nav.familie.ba.sak.kjerne.brev.domene.BrevBegrunnelseGrunnlagMedPersoner
import no.nav.familie.ba.sak.kjerne.brev.domene.MinimertKompetanse
import no.nav.familie.ba.sak.kjerne.brev.domene.MinimertUregistrertBarn
Expand Down Expand Up @@ -48,7 +46,6 @@ class BrevPeriodeGenerator(
private val minimerteKompetanserForPeriode: List<MinimertKompetanse>,
private val minimerteKompetanserSomStopperRettFørPeriode: List<MinimertKompetanse>,
private valdeBarnForrigePeriode: List<String>,
private val featureToggleService: FeatureToggleService,
) {

fun genererBrevPeriode(): BrevPeriode? {
Expand Down Expand Up @@ -205,11 +202,9 @@ class BrevPeriodeGenerator(
.filter { it.person.type == PersonType.BARN }
.partition { it.utbetaltPerMnd != 0 }

val skalBrukeNyBegrunnelseLogikk = featureToggleService.isEnabled(FeatureToggleConfig.BEGRUNNELSER_NY)

val tomDato =
if (minimertVedtaksperiode.tom?.erSenereEnnInneværendeMåned() == false) {
if (skalBrukeNyBegrunnelseLogikk) minimertVedtaksperiode.tom.tilMånedÅr() else minimertVedtaksperiode.tom.tilDagMånedÅr()
minimertVedtaksperiode.tom.tilMånedÅr()
} else {
null
}
Expand All @@ -229,25 +224,21 @@ class BrevPeriodeGenerator(
}

val utbetalingsbeløp = minimertVedtaksperiode.minimerteUtbetalingsperiodeDetaljer.totaltUtbetalt()
val brevPeriodeType = if (skalBrukeNyBegrunnelseLogikk) {
hentBrevPeriodeType(
vedtaksperiodetype = minimertVedtaksperiode.type,
fom = minimertVedtaksperiode.fom,
erUtbetalingEllerDeltBostedIPeriode = minimertVedtaksperiode.minimerteUtbetalingsperiodeDetaljer.any { it.endringsårsak == Årsak.DELT_BOSTED || it.utbetaltPerMnd > 0 },
)
} else {
hentPeriodeTypeGammel(utbetalingsbeløp, minimertVedtaksperiode.fom, barnMedUtbetaling)
}
val brevPeriodeType = hentBrevPeriodeType(
vedtaksperiodetype = minimertVedtaksperiode.type,
fom = minimertVedtaksperiode.fom,
erUtbetalingEllerDeltBostedIPeriode = minimertVedtaksperiode.minimerteUtbetalingsperiodeDetaljer.any { it.endringsårsak == Årsak.DELT_BOSTED || it.utbetaltPerMnd > 0 },
)

val duEllerInstitusjonen = hentDuEllerInstitusjonenTekst(brevPeriodeType)

return BrevPeriode(

fom = if (skalBrukeNyBegrunnelseLogikk) this.hentFomTekst() else this.hentFomTekstGammel(),
fom = this.hentFomTekst(),
tom = when {
tomDato.isNullOrBlank() -> ""
minimertVedtaksperiode.type == Vedtaksperiodetype.FORTSATT_INNVILGET -> ""
minimertVedtaksperiode.type == Vedtaksperiodetype.AVSLAG && skalBrukeNyBegrunnelseLogikk -> "til og med $tomDato "
minimertVedtaksperiode.type == Vedtaksperiodetype.AVSLAG -> "til og med $tomDato "
brevPeriodeType == BrevPeriodeType.INGEN_UTBETALING -> ""
brevPeriodeType == BrevPeriodeType.INNVILGELSE_INGEN_UTBETALING -> " til $tomDato"
else -> "til $tomDato "
Expand Down Expand Up @@ -295,40 +286,6 @@ class BrevPeriodeGenerator(
}
}

@Deprecated("Erstattes av hentPeriodeType etter at ny begrunnelse logikk er produksjonsatt")
private fun hentPeriodeTypeGammel(
utbetalingsbeløp: Int,
fom: LocalDate?,
barnMedUtbetaling: List<MinimertRestPerson>,
) = if (restBehandlingsgrunnlagForBrev.fagsakType == FagsakType.INSTITUSJON) {
when (minimertVedtaksperiode.type) {
Vedtaksperiodetype.FORTSATT_INNVILGET -> BrevPeriodeType.FORTSATT_INNVILGET_INSTITUSJON
Vedtaksperiodetype.UTBETALING -> when (utbetalingsbeløp) {
0 -> BrevPeriodeType.INNVILGELSE_INGEN_UTBETALING
else -> BrevPeriodeType.INNVILGELSE_INSTITUSJON
}

Vedtaksperiodetype.AVSLAG -> if (fom != null) BrevPeriodeType.AVSLAG_INSTITUSJON else BrevPeriodeType.AVSLAG_UTEN_PERIODE_INSTITUSJON
Vedtaksperiodetype.OPPHØR -> BrevPeriodeType.OPPHOR_INSTITUSJON
Vedtaksperiodetype.UTBETALING_MED_REDUKSJON_FRA_SIST_IVERKSATTE_BEHANDLING -> BrevPeriodeType.INNVILGELSE_INSTITUSJON
Vedtaksperiodetype.ENDRET_UTBETALING -> throw Feil("Endret utbetaling skal ikke benyttes lenger.")
}
} else {
when (minimertVedtaksperiode.type) {
Vedtaksperiodetype.FORTSATT_INNVILGET -> BrevPeriodeType.FORTSATT_INNVILGET
Vedtaksperiodetype.UTBETALING -> when {
utbetalingsbeløp == 0 -> BrevPeriodeType.INNVILGELSE_INGEN_UTBETALING
barnMedUtbetaling.isEmpty() -> BrevPeriodeType.INNVILGELSE_KUN_UTBETALING_PÅ_SØKER
else -> BrevPeriodeType.INNVILGELSE
}

Vedtaksperiodetype.AVSLAG -> if (fom != null) BrevPeriodeType.AVSLAG else BrevPeriodeType.AVSLAG_UTEN_PERIODE
Vedtaksperiodetype.OPPHØR -> BrevPeriodeType.OPPHOR
Vedtaksperiodetype.UTBETALING_MED_REDUKSJON_FRA_SIST_IVERKSATTE_BEHANDLING -> BrevPeriodeType.INNVILGELSE
Vedtaksperiodetype.ENDRET_UTBETALING -> throw Feil("Endret utbetaling skal ikke benyttes lenger.")
}
}

fun finnBarnIUtbetalingPeriode(identerIBegrunnelene: List<String>): List<MinimertRestPerson> {
val identerMedUtbetaling =
minimertVedtaksperiode.minimerteUtbetalingsperiodeDetaljer.map { it.person.personIdent }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -142,7 +142,6 @@ class BrevPeriodeService(
utvidetVedtaksperiodeMedBegrunnelse.tilMinimertVedtaksperiode(
sanityBegrunnelser = sanityBegrunnelser,
sanityEØSBegrunnelser = sanityEØSBegrunnelser,
featureToggleService = featureToggleService,
)

val landkoderISO2 = integrasjonClient.hentLandkoderISO2()
Expand Down Expand Up @@ -179,7 +178,6 @@ class BrevPeriodeService(
)
},
dødeBarnForrigePeriode = dødeBarnForrigePeriode,
featureToggleService = featureToggleService,
)

if (skalLogge) {
Expand Down
Loading

0 comments on commit 796a76b

Please sign in to comment.