Skip to content

Commit

Permalink
Fjern gamle feature toggles som ikke har vært endret på en stund
Browse files Browse the repository at this point in the history
  • Loading branch information
sillerud committed Jan 14, 2025
1 parent dbb38c2 commit 39880dd
Show file tree
Hide file tree
Showing 9 changed files with 24 additions and 104 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -38,24 +38,20 @@ class ValiderBehandlingService(
}

// hvis behandlingen er henlagt, kan det opprettes ny behandling
// hvis toggelen KAN_OPPRETTE_BEH_MED_EKSTERNID_SOM_HAR_AVSLUTTET_TBK er på,
// sjekker ikke om det finnes en avsluttet tilbakekreving for eksternId
if (!featureToggleService.isEnabled(FeatureToggleConfig.KAN_OPPRETTE_BEH_MED_EKSTERNID_SOM_HAR_AVSLUTTET_TBK)) {
val avsluttetBehandlinger = behandlingRepository.finnAvsluttetTilbakekrevingsbehandlinger(request.eksternId, request.fagsystem)
if (avsluttetBehandlinger.isNotEmpty()) {
val sisteAvsluttetBehandling: Behandling = avsluttetBehandlinger.first()
val erSisteBehandlingHenlagt: Boolean =
sisteAvsluttetBehandling.resultater.any { it.erBehandlingHenlagt() }
if (!erSisteBehandlingHenlagt) {
val feilMelding =
"Det finnes allerede en avsluttet behandling for ytelsestype=${request.ytelsestype} " +
val avsluttetBehandlinger = behandlingRepository.finnAvsluttetTilbakekrevingsbehandlinger(request.eksternId, request.fagsystem)
if (avsluttetBehandlinger.isNotEmpty()) {
val sisteAvsluttetBehandling: Behandling = avsluttetBehandlinger.first()
val erSisteBehandlingHenlagt: Boolean =
sisteAvsluttetBehandling.resultater.any { it.erBehandlingHenlagt() }
if (!erSisteBehandlingHenlagt) {
val feilMelding =
"Det finnes allerede en avsluttet behandling for ytelsestype=${request.ytelsestype} " +
"og eksternFagsakId=${request.eksternFagsakId} som ikke er henlagt, kan ikke opprette en ny."
throw Feil(
message = feilMelding,
frontendFeilmelding = feilMelding,
httpStatus = HttpStatus.BAD_REQUEST,
)
}
throw Feil(
message = feilMelding,
frontendFeilmelding = feilMelding,
httpStatus = HttpStatus.BAD_REQUEST,
)
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@ import no.nav.familie.tilbake.beregning.modell.FordeltKravgrunnlagsbeløp
import no.nav.familie.tilbake.beregning.modell.GrunnlagsperiodeMedSkatteprosent
import no.nav.familie.tilbake.beregning.modell.Vedtaksresultat
import no.nav.familie.tilbake.common.repository.findByIdOrThrow
import no.nav.familie.tilbake.config.FeatureToggleConfig.Companion.BRUK_6_DESIMALER_I_SKATTEBEREGNING
import no.nav.familie.tilbake.config.FeatureToggleService
import no.nav.familie.tilbake.faktaomfeilutbetaling.FaktaFeilutbetalingMapper
import no.nav.familie.tilbake.faktaomfeilutbetaling.FaktaFeilutbetalingService
Expand Down Expand Up @@ -201,13 +200,11 @@ class TilbakekrevingsberegningService(
?: throw IllegalStateException("Periode i finnes ikke i map kravbeløpPerPeriode")
val perioderMedSkattProsent = lagGrunnlagPeriodeMedSkattProsent(vurdering.periode, kravgrunnlag)

val bruk6desimalerISkatteberegning = featureToggleService.isEnabled(BRUK_6_DESIMALER_I_SKATTEBEREGNING)
return TilbakekrevingsberegningVilkår.beregn(
vurdering,
delresultat,
perioderMedSkattProsent,
beregnRenter,
bruk6desimalerISkatteberegning,
)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@ internal object TilbakekrevingsberegningVilkår {
delresultat: FordeltKravgrunnlagsbeløp,
perioderMedSkatteprosent: List<GrunnlagsperiodeMedSkatteprosent>,
beregnRenter: Boolean,
bruk6desimalerISkatteberegning: Boolean = false,
): Beregningsresultatsperiode {
val periode: Månedsperiode = vilkårVurdering.periode
val vurdering: Vurdering = finnVurdering(vilkårVurdering)
Expand All @@ -49,7 +48,6 @@ internal object TilbakekrevingsberegningVilkår {
periode,
beløpUtenRenter,
perioderMedSkatteprosent,
bruk6desimalerISkatteberegning,
)
val nettoBeløp: BigDecimal = tilbakekrevingBeløp.subtract(skattBeløp)
return Beregningsresultatsperiode(
Expand Down Expand Up @@ -78,7 +76,6 @@ internal object TilbakekrevingsberegningVilkår {
periode: Månedsperiode,
bruttoTilbakekrevesBeløp: BigDecimal,
perioderMedSkatteprosent: List<GrunnlagsperiodeMedSkatteprosent>,
bruk6desimalerISkatteberegning: Boolean,
): BigDecimal {
val totalKgTilbakekrevesBeløp: BigDecimal = perioderMedSkatteprosent.sumOf { it.tilbakekrevingsbeløp }
val andel: BigDecimal =
Expand All @@ -90,12 +87,11 @@ internal object TilbakekrevingsberegningVilkår {
var skattBeløp: BigDecimal = BigDecimal.ZERO
for (grunnlagPeriodeMedSkattProsent in perioderMedSkatteprosent) {
if (periode.overlapper(grunnlagPeriodeMedSkattProsent.periode)) {
val scale = if (bruk6desimalerISkatteberegning) 6 else 4
val delTilbakekrevesBeløp: BigDecimal = grunnlagPeriodeMedSkattProsent.tilbakekrevingsbeløp.multiply(andel)
val beregnetSkattBeløp =
delTilbakekrevesBeløp
.multiply(grunnlagPeriodeMedSkattProsent.skatteprosent)
.divide(BigDecimal.valueOf(100), scale, RoundingMode.HALF_UP)
.divide(BigDecimal.valueOf(100), 6, RoundingMode.HALF_UP)
skattBeløp = skattBeløp.add(beregnetSkattBeløp).setScale(0, RoundingMode.DOWN)
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,16 +16,6 @@ class FeatureToggleConfig(
fun strategies(): List<Strategy> = listOf(ByClusterStrategy(clusterName))

companion object {
const val KAN_OPPRETTE_BEH_MED_EKSTERNID_SOM_HAR_AVSLUTTET_TBK =
"familie-tilbake.beh.kanopprettes.eksternid.avsluttet.tilbakekreving"

const val OVERSTYR_DELVILS_TILBAKEKREVING_TIL_FULL_TILBAKEKREVING = "familie-tilbake.overstyr-delvis-hvis-full"

const val BRUK_6_DESIMALER_I_SKATTEBEREGNING = "familie-tilbake.bruk-seks-desimaler-skatt"

const val IKKE_VALIDER_SÆRLIG_GRUNNET_ANNET_FRITEKST =
"familie-tilbake.ikke-valider-saerlig-grunnet-annet-fritekst"

const val KAN_SE_HISTORISKE_VURDERINGER = "familie-tilbake.se-historiske-vurderinger"

const val SAKSBEHANDLER_KAN_RESETTE_BEHANDLING = "familie-tilbake-frontend.saksbehandler.kan.resette.behandling"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,19 +29,16 @@ object VedtaksbrevFritekstValidator {
vedtaksbrevsoppsummering: Vedtaksbrevsoppsummering,
vedtaksbrevstype: Vedtaksbrevstype,
validerPåkrevetFritekster: Boolean,
skalIkkeValidereAnnetFritekst: Boolean,
) {
validerPerioder(behandling, avsnittMedPerioder, faktaFeilutbetaling)

if (!skalIkkeValidereAnnetFritekst) {
vilkårsvurdering?.let {
validerFritekstISærligGrunnerAnnetAvsnitt(
it,
vedtaksbrevFritekstPerioder,
validerPåkrevetFritekster,
vedtaksbrevsoppsummering.skalSammenslåPerioder == SkalSammenslåPerioder.JA,
)
}
vilkårsvurdering?.let {
validerFritekstISærligGrunnerAnnetAvsnitt(
it,
vedtaksbrevFritekstPerioder,
validerPåkrevetFritekster,
vedtaksbrevsoppsummering.skalSammenslåPerioder == SkalSammenslåPerioder.JA,
)
}

if (ORDINÆR == vedtaksbrevstype) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,6 @@ class VedtaksbrevService(
// Valider om obligatoriske fritekster er satt
val faktaFeilutbetaling = faktaRepository.findFaktaFeilutbetalingByBehandlingIdAndAktivIsTrue(behandlingId)
val vilkårsvurdering = vilkårsvurderingRepository.findByBehandlingIdAndAktivIsTrue(behandlingId)
val skalIkkeValidereAnnetFritekst = featureToggleService.isEnabled(FeatureToggleConfig.IKKE_VALIDER_SÆRLIG_GRUNNET_ANNET_FRITEKST)

VedtaksbrevFritekstValidator.validerObligatoriskeFritekster(
behandling = behandling,
Expand All @@ -103,7 +102,6 @@ class VedtaksbrevService(
vedtaksbrevsoppsummering = vedtaksbrevsoppsummering,
vedtaksbrevstype = vedtaksbrevstype,
validerPåkrevetFritekster = validerPåkrevetFritekster,
skalIkkeValidereAnnetFritekst = skalIkkeValidereAnnetFritekst,
)
// slett og legge til Vedtaksbrevsoppsummering
val eksisterendeVedtaksbrevsoppsummering = vedtaksbrevsoppsummeringRepository.findByBehandlingId(behandlingId)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -133,11 +133,7 @@ class IverksettelseService(
| Vurder å skru på featuretoggle familie-tilbake-overstyr-delvis-tilbakekreving og rekjør.
| Tilbakekrevingsbeløp=$tilbakekrevingsbeløp """.trimMargin(),
)
if (featureToggleService.isEnabled(FeatureToggleConfig.OVERSTYR_DELVILS_TILBAKEKREVING_TIL_FULL_TILBAKEKREVING)) {
KodeResultat.FULL_TILBAKEKREVING.kode
} else {
KodeResultat.DELVIS_TILBAKEKREVING.kode
}
KodeResultat.DELVIS_TILBAKEKREVING.kode
} else {
tilbakekrevingsbeløp.kodeResultat.kode
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -317,7 +317,7 @@ class TilbakekrevingsberegningVilkårTest {
}

@Test
fun `beregn skatt med 4 og 6 desimaler`() {
fun `beregn skatt med feil ved 4 desimaler`() {
val tilbakekrevingsbeløp = BigDecimal.valueOf(4212)
val skatteprosent = BigDecimal.valueOf(33.9981)

Expand Down Expand Up @@ -345,30 +345,9 @@ class TilbakekrevingsberegningVilkårTest {
feilutbetalt = tilbakekrevingsbeløp,
perioderMedSkatteprosent = grunnlagPeriodeMedSkattProsent,
beregnRenter = true,
bruk6desimalerISkatteberegning = false,
)
val resultatMed6Desimaler =
beregn(
vilkårVurdering = vilkårsvurdering,
feilutbetalt = tilbakekrevingsbeløp,
perioderMedSkatteprosent = grunnlagPeriodeMedSkattProsent,
beregnRenter = true,
bruk6desimalerISkatteberegning = true,
)

resultat.skalHaVerdier(
vilkårsvurdering = vilkårsvurdering,
vurdering = Aktsomhet.FORSETT,
feilutbetalt = tilbakekrevingsbeløp,
renteprosent = renteProsent,
rentebeløp = BigDecimal.valueOf(421),
tilbakekrevingsbeløpUtenRenter = tilbakekrevingsbeløp,
tilbakekrevingsbeløp = BigDecimal.valueOf(4633),
tilbakekrevingsbeløpEtterSkatt = BigDecimal.valueOf(3201),
skattebeløp = BigDecimal.valueOf(1432),
)

resultatMed6Desimaler.skalHaVerdier(
vilkårsvurdering = vilkårsvurdering,
vurdering = Aktsomhet.FORSETT,
feilutbetalt = tilbakekrevingsbeløp,
Expand Down Expand Up @@ -622,15 +601,13 @@ class TilbakekrevingsberegningVilkårTest {
feilutbetalt: BigDecimal,
perioderMedSkatteprosent: List<GrunnlagsperiodeMedSkatteprosent>,
beregnRenter: Boolean,
bruk6desimalerISkatteberegning: Boolean = false,
): Beregningsresultatsperiode {
val delresultat = FordeltKravgrunnlagsbeløp(feilutbetalt, feilutbetalt, BigDecimal.ZERO)
return TilbakekrevingsberegningVilkår.beregn(
vilkårVurdering = vilkårVurdering,
delresultat = delresultat,
perioderMedSkatteprosent = perioderMedSkatteprosent,
beregnRenter = beregnRenter,
bruk6desimalerISkatteberegning = bruk6desimalerISkatteberegning,
)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,36 +63,9 @@ class IverksettelseServiceUnitTest {
}

@Test
fun `skal endre fra delvis til full tilbakekreving dersom utestående beløp er 0 og featuretoggle skrudd på`() {
fun `skal beholde delvis tilbakekreving selv om utestående beløp er 0`() {
val requestSlot = settOppMockDataSomGirUriktigDelvisTilbakekrevingForEnPeriode()

every { featureToggleService.isEnabled(any()) } returns true
iverksettelseService.sendIverksettVedtak(behandling.id)

val tilbakekrevingsperioder = requestSlot.captured.tilbakekrevingsvedtak.tilbakekrevingsperiode

assertThat(tilbakekrevingsperioder).hasSize(2)
assertThat(
tilbakekrevingsperioder
.first()
.tilbakekrevingsbelop
.first()
.kodeResultat,
).isEqualTo(DELVIS_TILBAKEKREVING.kode)
assertThat(
tilbakekrevingsperioder
.last()
.tilbakekrevingsbelop
.first()
.kodeResultat,
).isEqualTo(FULL_TILBAKEKREVING.kode)
}

@Test
fun `skal beholde delvis tilbakekreving selv om utestående beløp er 0 når featuretoggle ikke er på`() {
val requestSlot = settOppMockDataSomGirUriktigDelvisTilbakekrevingForEnPeriode()

every { featureToggleService.isEnabled(any()) } returns false
iverksettelseService.sendIverksettVedtak(behandling.id)

val tilbakekrevingsperioder = requestSlot.captured.tilbakekrevingsvedtak.tilbakekrevingsperiode
Expand Down

0 comments on commit 39880dd

Please sign in to comment.