Skip to content

Commit

Permalink
Svp utbetalingsgrad støtter desimaler
Browse files Browse the repository at this point in the history
  • Loading branch information
palfi committed Aug 30, 2023
1 parent 08e41db commit 0742027
Show file tree
Hide file tree
Showing 4 changed files with 61 additions and 42 deletions.
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
package no.nav.foreldrepenger.fpformidling.integrasjon.fpsak.mapper;

import java.math.RoundingMode;
import java.util.List;
import java.util.function.UnaryOperator;

import no.nav.foreldrepenger.fpformidling.integrasjon.fpsak.dto.uttak.svp.SvangerskapspengerUttakResultatArbeidsforholdDto;
import no.nav.foreldrepenger.fpformidling.integrasjon.fpsak.dto.uttak.svp.SvangerskapspengerUttakResultatDto;
import no.nav.foreldrepenger.fpformidling.typer.DatoIntervall;
Expand All @@ -9,9 +13,6 @@
import no.nav.foreldrepenger.fpformidling.uttak.svp.SvpUttakResultatPeriode;
import no.nav.foreldrepenger.fpformidling.virksomhet.Arbeidsgiver;

import java.util.List;
import java.util.function.UnaryOperator;


public class UttakSvpDtoMapper {

Expand Down Expand Up @@ -50,7 +51,7 @@ private static List<SvpUttakResultatPeriode> utledSvpUttakResultatPeriode(Svange
.stream()
.map(periodeDto -> SvpUttakResultatPeriode.Builder.ny()
.medTidsperiode(DatoIntervall.fraOgMedTilOgMed(periodeDto.fom(), periodeDto.tom()))
.medUtbetalingsgrad(periodeDto.utbetalingsgrad().longValue())
.medUtbetalingsgrad(periodeDto.utbetalingsgrad().setScale(2, RoundingMode.HALF_UP))
.medPeriodeResultatType(periodeDto.periodeResultatType())
.medPeriodeIkkeOppfyltÅrsak(periodeDto.periodeIkkeOppfyltÅrsak())
.medArbeidsgiverNavn(getArbeidsgiverNavn(arbeidsforhold, arbeidsgiver))
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,45 @@
package no.nav.foreldrepenger.fpformidling.brevproduksjon.mapper.innvilgelsesvp;

import static java.util.List.of;
import static no.nav.foreldrepenger.fpformidling.brevproduksjon.mapper.felles.BrevMapperUtil.formaterPersonnummer;
import static no.nav.foreldrepenger.fpformidling.brevproduksjon.mapper.felles.DatamapperTestUtil.FRITEKST;
import static no.nav.foreldrepenger.fpformidling.brevproduksjon.mapper.felles.DatamapperTestUtil.SAKSNUMMER;
import static no.nav.foreldrepenger.fpformidling.brevproduksjon.mapper.felles.DatamapperTestUtil.SØKERS_FNR;
import static no.nav.foreldrepenger.fpformidling.brevproduksjon.mapper.felles.DatamapperTestUtil.SØKERS_NAVN;
import static no.nav.foreldrepenger.fpformidling.brevproduksjon.mapper.felles.DatamapperTestUtil.lagStandardDokumentData;
import static no.nav.foreldrepenger.fpformidling.brevproduksjon.mapper.felles.DatamapperTestUtil.lagStandardDokumentFelles;
import static no.nav.foreldrepenger.fpformidling.brevproduksjon.mapper.felles.DatamapperTestUtil.lagStandardHendelseBuilder;
import static no.nav.foreldrepenger.fpformidling.integrasjon.dokgen.dto.felles.Beløp.of;
import static no.nav.foreldrepenger.fpformidling.typer.Dato.formaterDatoNorsk;
import static no.nav.foreldrepenger.fpformidling.typer.DatoIntervall.fraOgMedTilOgMed;
import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;

import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.Period;
import java.util.List;
import java.util.Optional;
import java.util.UUID;

import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.mockito.Mock;

import no.nav.foreldrepenger.fpformidling.behandling.Behandling;
import no.nav.foreldrepenger.fpformidling.behandling.BehandlingType;
import no.nav.foreldrepenger.fpformidling.behandling.Behandlingsresultat;
import no.nav.foreldrepenger.fpformidling.behandling.KonsekvensForYtelsen;
import no.nav.foreldrepenger.fpformidling.beregningsgrunnlag.*;
import no.nav.foreldrepenger.fpformidling.beregningsgrunnlag.AktivitetStatus;
import no.nav.foreldrepenger.fpformidling.beregningsgrunnlag.BGAndelArbeidsforhold;
import no.nav.foreldrepenger.fpformidling.beregningsgrunnlag.Beregningsgrunnlag;
import no.nav.foreldrepenger.fpformidling.beregningsgrunnlag.BeregningsgrunnlagAktivitetStatus;
import no.nav.foreldrepenger.fpformidling.beregningsgrunnlag.BeregningsgrunnlagPeriode;
import no.nav.foreldrepenger.fpformidling.beregningsgrunnlag.BeregningsgrunnlagPrStatusOgAndel;
import no.nav.foreldrepenger.fpformidling.beregningsgrunnlag.Hjemmel;
import no.nav.foreldrepenger.fpformidling.beregningsgrunnlag.PeriodeÅrsak;
import no.nav.foreldrepenger.fpformidling.brevproduksjon.mapper.felles.BrevParametere;
import no.nav.foreldrepenger.fpformidling.brevproduksjon.tjenester.DomeneobjektProvider;
import no.nav.foreldrepenger.fpformidling.dokumentdata.DokumentData;
Expand All @@ -28,32 +63,13 @@
import no.nav.foreldrepenger.fpformidling.typer.Beløp;
import no.nav.foreldrepenger.fpformidling.typer.DatoIntervall;
import no.nav.foreldrepenger.fpformidling.uttak.PeriodeResultatType;
import no.nav.foreldrepenger.fpformidling.uttak.svp.*;
import no.nav.foreldrepenger.fpformidling.uttak.svp.ArbeidsforholdIkkeOppfyltÅrsak;
import no.nav.foreldrepenger.fpformidling.uttak.svp.PeriodeIkkeOppfyltÅrsak;
import no.nav.foreldrepenger.fpformidling.uttak.svp.SvangerskapspengerUttak;
import no.nav.foreldrepenger.fpformidling.uttak.svp.SvpUttakResultatArbeidsforhold;
import no.nav.foreldrepenger.fpformidling.uttak.svp.SvpUttakResultatPeriode;
import no.nav.foreldrepenger.fpformidling.virksomhet.Arbeidsgiver;

import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.mockito.Mock;

import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.Period;
import java.util.List;
import java.util.Optional;
import java.util.UUID;

import static java.util.List.of;
import static no.nav.foreldrepenger.fpformidling.brevproduksjon.mapper.felles.BrevMapperUtil.formaterPersonnummer;
import static no.nav.foreldrepenger.fpformidling.brevproduksjon.mapper.felles.DatamapperTestUtil.*;
import static no.nav.foreldrepenger.fpformidling.integrasjon.dokgen.dto.felles.Beløp.of;
import static no.nav.foreldrepenger.fpformidling.typer.Dato.formaterDatoNorsk;
import static no.nav.foreldrepenger.fpformidling.typer.DatoIntervall.fraOgMedTilOgMed;
import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;

class SvangerskapspengerInnvilgelseDokumentdataMapperTest {

private static final LocalDate PERIODE1_FOM = LocalDate.now().minusDays(10);
Expand All @@ -78,10 +94,10 @@ class SvangerskapspengerInnvilgelseDokumentdataMapperTest {
private static final Long NATURALYTELSE_BORTFALT = 50L;
private static final LocalDate SØKNAD_DATO = LocalDate.now().minusDays(1);
private static final int KLAGEFRIST = 6;
private static final Long UTBETALINGSGRAD_PERIODE1 = 50L;
private static final Long UTBETALINGSGRAD_PERIODE2 = 100L;
private static final Long UTBETALINGSGRAD_PERIODE3 = 0L;
private static final Long UTBETALINGSGRAD_PERIODE4 = 0L;
private static final BigDecimal UTBETALINGSGRAD_PERIODE1 = BigDecimal.valueOf(50);
private static final BigDecimal UTBETALINGSGRAD_PERIODE2 = BigDecimal.valueOf(100);
private static final BigDecimal UTBETALINGSGRAD_PERIODE3 = BigDecimal.ZERO;
private static final BigDecimal UTBETALINGSGRAD_PERIODE4 = BigDecimal.ZERO;
private static final PeriodeIkkeOppfyltÅrsak PERIODE_IKKE_OPPFYLT_ÅRSAK = PeriodeIkkeOppfyltÅrsak.PERIODE_SAMTIDIG_SOM_FERIE;
private static final ArbeidsforholdIkkeOppfyltÅrsak ARBEIDSFORHOLD_IKKE_OPPFYLT_ÅRSAK = ArbeidsforholdIkkeOppfyltÅrsak.ARBEIDSGIVER_KAN_TILRETTELEGGE;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import static java.util.List.of;
import static org.assertj.core.api.Assertions.assertThat;

import java.math.BigDecimal;
import java.time.LocalDate;

import org.junit.jupiter.api.Test;
Expand Down Expand Up @@ -37,9 +38,9 @@ class UttaksperiodeMapperTest {
private static final String FORVENTET_NÆRINGSDRIVENDE_TEKST = "Som " + UttakSvpDtoMapper.NÆRINGSDRIVENDE;
private static final Arbeidsgiver ARBEIDSGIVER = new Arbeidsgiver("1", ARBEIDSGIVER_NAVN);
private static final long DAGSATS = 1000L;
private static final int UTBETALINGSGRAD_100 = 100;
private static final int UTBETALINGSGRAD_50 = 50;
private static final int UTBETALINGSGRAD_10 = 10;
private static final BigDecimal UTBETALINGSGRAD_100 = BigDecimal.valueOf(100);
private static final BigDecimal UTBETALINGSGRAD_50 = BigDecimal.valueOf(50);
private static final BigDecimal UTBETALINGSGRAD_10 = BigDecimal.valueOf(10);

@Test
void skal_mappe_og_slå_sammen_sammenhengende_perioder_med_samme_utbetalingsgrad_innenfor_samme_aktivitetstype() {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package no.nav.foreldrepenger.fpformidling.uttak.svp;

import java.math.BigDecimal;
import java.util.Objects;
import java.util.Optional;

Expand All @@ -9,7 +10,7 @@

public class SvpUttakResultatPeriode implements Comparable<SvpUttakResultatPeriode> {

private long utbetalingsgrad;
private BigDecimal utbetalingsgrad;
private PeriodeResultatType periodeResultatType;
private PeriodeIkkeOppfyltÅrsak periodeIkkeOppfyltÅrsak;
private DatoIntervall tidsperiode;
Expand Down Expand Up @@ -53,8 +54,8 @@ public Dato getTom() {
return tidsperiode.getTom();
}

public int getUtbetalingsgrad() {
return (int) utbetalingsgrad;
public BigDecimal getUtbetalingsgrad() {
return utbetalingsgrad;
}

public PeriodeResultatType getPeriodeResultatType() {
Expand All @@ -78,7 +79,7 @@ public boolean equals(Object o) {
return false;
}
var that = (SvpUttakResultatPeriode) o;
return getUtbetalingsgrad() == that.getUtbetalingsgrad() && getAktivitetDagsats() == that.getAktivitetDagsats() && Objects.equals(
return Objects.equals(getUtbetalingsgrad(), that.getUtbetalingsgrad()) && getAktivitetDagsats() == that.getAktivitetDagsats() && Objects.equals(
getTidsperiode(), that.getTidsperiode());
}

Expand All @@ -94,7 +95,7 @@ public int compareTo(SvpUttakResultatPeriode o) {

public static final class Builder {

private long utbetalingsgrad;
private BigDecimal utbetalingsgrad;
private PeriodeResultatType periodeResultatType = PeriodeResultatType.IKKE_FASTSATT;
private PeriodeIkkeOppfyltÅrsak periodeIkkeOppfyltÅrsak = PeriodeIkkeOppfyltÅrsak.INGEN;
private DatoIntervall tidsperiode;
Expand Down Expand Up @@ -123,7 +124,7 @@ public static Builder ny(SvpUttakResultatPeriode copy) {
return new Builder(copy);
}

public Builder medUtbetalingsgrad(long utbetalingsgrad) {
public Builder medUtbetalingsgrad(BigDecimal utbetalingsgrad) {
this.utbetalingsgrad = utbetalingsgrad;
return this;
}
Expand Down

0 comments on commit 0742027

Please sign in to comment.