From 5757bcc1079c6375cd32de964ffa35e5c8be5f68 Mon Sep 17 00:00:00 2001 From: Petter Ekern Date: Tue, 10 Dec 2024 09:20:10 +0100 Subject: [PATCH] =?UTF-8?q?FAGSYSTEM-360061:=20Runder=20ned=20for=20at=20k?= =?UTF-8?q?rav=20ikke=20skal=20=C3=B8kes=20og=20treffe=20validering=20i=20?= =?UTF-8?q?oppdaterer.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../refusjon/LagVurderRefusjonDto.java | 2 +- .../LagVurderRefusjonDtoTest.java | 33 +++++++++++++++++-- 2 files changed, 32 insertions(+), 3 deletions(-) diff --git a/kalkulator/src/main/java/no/nav/folketrygdloven/kalkulator/guitjenester/refusjon/LagVurderRefusjonDto.java b/kalkulator/src/main/java/no/nav/folketrygdloven/kalkulator/guitjenester/refusjon/LagVurderRefusjonDto.java index bdeffe42..e511b93b 100644 --- a/kalkulator/src/main/java/no/nav/folketrygdloven/kalkulator/guitjenester/refusjon/LagVurderRefusjonDto.java +++ b/kalkulator/src/main/java/no/nav/folketrygdloven/kalkulator/guitjenester/refusjon/LagVurderRefusjonDto.java @@ -145,7 +145,7 @@ private static Optional finnTidligereOverstyringFor if (Beløp.safeVerdi(årsbeløp) == null) { return Beløp.ZERO; } - return årsbeløp.divider(KonfigTjeneste.getMånederIÅr(), 0, RoundingMode.HALF_UP); + return årsbeløp.divider(KonfigTjeneste.getMånederIÅr(), 0, RoundingMode.DOWN); } private static boolean erTilkommetAndelEllerRefusjonTidligereInnvilgetMedLavereBeløpStørreEnnNull(Optional tidligereRefusjonForAndelIPeriode, RefusjonAndel andel) { diff --git a/kalkulator/src/test/java/no/nav/folketrygdloven/kalkulator/guitjenester/LagVurderRefusjonDtoTest.java b/kalkulator/src/test/java/no/nav/folketrygdloven/kalkulator/guitjenester/LagVurderRefusjonDtoTest.java index 1a6ba448..e913889c 100644 --- a/kalkulator/src/test/java/no/nav/folketrygdloven/kalkulator/guitjenester/LagVurderRefusjonDtoTest.java +++ b/kalkulator/src/test/java/no/nav/folketrygdloven/kalkulator/guitjenester/LagVurderRefusjonDtoTest.java @@ -3,6 +3,7 @@ import static no.nav.fpsak.tidsserie.LocalDateInterval.TIDENES_ENDE; import static org.assertj.core.api.Assertions.assertThat; +import java.math.BigDecimal; import java.time.LocalDate; import java.util.ArrayList; import java.util.Arrays; @@ -13,6 +14,8 @@ import java.util.Optional; import java.util.UUID; +import no.nav.folketrygdloven.kalkulator.modell.typer.Refusjon; + import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -115,7 +118,7 @@ void setup() { lagIAYGrunnlag(); byggBGAndel(Arbeidsgiver.virksomhet(orgnr), internRef); byggRefusjonAndel(Arbeidsgiver.virksomhet(orgnr), internRef); - byggBGAndelOrginal(Arbeidsgiver.virksomhet(orgnr), internRef, 0, 500000); + byggBGAndelOrginal(Arbeidsgiver.virksomhet(orgnr), internRef, 0, 500000); ferdigstillInput(); Optional resultat = LagVurderRefusjonDto.lagDto(andelMap, input); @@ -125,6 +128,27 @@ void setup() { assertAndeler(resultat.get().getAndeler(), orgnr, internRef, refusjonFom, STP.getSkjæringstidspunktBeregning(), tidligereUtb); } + @Test + void skal_teste_delvis_refusjon_pr_mnd() { + String internRef = UUID.randomUUID().toString(); + String orgnr = "999999999"; + LocalDate refusjonFom = BG_PERIODE.getFomDato(); + lagIAYGrunnlag(); + byggBGAndel(Arbeidsgiver.virksomhet(orgnr), internRef); + byggRefusjonAndel(Arbeidsgiver.virksomhet(orgnr), internRef); + byggBGAndelOrginal(Arbeidsgiver.virksomhet(orgnr), internRef, 0, 500000, 541031.61); + ferdigstillInput(); + + Optional resultat = LagVurderRefusjonDto.lagDto(andelMap, input); + TidligereUtbetalingDto tidligereUtb = new TidligereUtbetalingDto(bgPeriodeOrginal.getBeregningsgrunnlagPeriodeFom(), bgPeriodeOrginal.getBeregningsgrunnlagPeriodeTom(), true); + assertThat(resultat).isPresent(); + assertThat(resultat.get().getAndeler()).hasSize(1); + assertAndeler(resultat.get().getAndeler(), orgnr, internRef, refusjonFom, STP.getSkjæringstidspunktBeregning(), tidligereUtb); + var andel = resultat.get().getAndeler().getFirst(); + assertThat(andel.getMaksTillattDelvisRefusjonPrMnd()).isNotNull(); + assertThat(andel.getMaksTillattDelvisRefusjonPrMnd().verdi()).isEqualByComparingTo(BigDecimal.valueOf(45085)); + } + @Test void skal_lage_dto_når_tilkommetIM_har_refusjonskrav_tidligere_utbetalt_refusjon_for_annet_orgnr() { String internRef = UUID.randomUUID().toString(); @@ -298,12 +322,17 @@ private void byggBGAndel(Arbeidsgiver arbeidsgiver, String ref) { .build(bgPeriode); } - private void byggBGAndelOrginal(Arbeidsgiver arbeidsgiver, String internRef, int redusertBruker, int redusertAG) { + private void byggBGAndelOrginal(Arbeidsgiver arbeidsgiver, String internRef, int redusertBruker, int redusertAG) { + byggBGAndelOrginal(arbeidsgiver, internRef, redusertBruker, redusertAG, null); + } + + private void byggBGAndelOrginal(Arbeidsgiver arbeidsgiver, String internRef, int redusertBruker, int redusertAG, Double refusjonskrav) { BGAndelArbeidsforholdDto.Builder bga = BGAndelArbeidsforholdDto .builder() .medArbeidsperiodeFom(LocalDate.now().minusYears(1)) .medArbeidsperiodeTom(LocalDate.now().plusYears(2)) .medArbeidsforholdRef(internRef) + .medRefusjon(refusjonskrav == null ? null : new Refusjon(Beløp.fra(BigDecimal.valueOf(refusjonskrav)), null, null, null, null, null)) .medArbeidsgiver(arbeidsgiver); BeregningsgrunnlagPrStatusOgAndelDto.ny()