diff --git a/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/arbeidstaker/FastsettAvkortetLikBruttoBG.java b/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/arbeidstaker/FastsettAvkortetLikBruttoBG.java index 89408898..64cdb8d3 100644 --- a/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/arbeidstaker/FastsettAvkortetLikBruttoBG.java +++ b/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/arbeidstaker/FastsettAvkortetLikBruttoBG.java @@ -26,7 +26,7 @@ public Evaluation evaluate(BeregningsgrunnlagPeriode grunnlag) { for (BeregningsgrunnlagPrStatus beregningsgrunnlagPrStatus : grunnlag.getBeregningsgrunnlagPrStatusSomSkalBrukes()) { if (AktivitetStatus.erArbeidstaker(beregningsgrunnlagPrStatus.getAktivitetStatus())) { for (BeregningsgrunnlagPrArbeidsforhold af : beregningsgrunnlagPrStatus.getArbeidsforholdSomSkalBrukes()) { - BigDecimal bruttoInkludertNaturalytelsePrÅr = af.getGradertBruttoInkludertNaturalytelsePrÅr() + BigDecimal bruttoInkludertNaturalytelsePrÅr = af.getAktivitetsgradertBruttoInkludertNaturalytelsePrÅr() .orElseThrow(() -> new IllegalStateException("Brutto er ikke satt for arbeidsforhold " + af.toString())); BeregningsgrunnlagPrArbeidsforhold.builder(af) .medAvkortetPrÅr(bruttoInkludertNaturalytelsePrÅr) @@ -35,7 +35,7 @@ public Evaluation evaluate(BeregningsgrunnlagPeriode grunnlag) { .build(); } } else { - BigDecimal avkortetPrStatus = beregningsgrunnlagPrStatus.getGradertBruttoPrÅr(); + BigDecimal avkortetPrStatus = beregningsgrunnlagPrStatus.getAktivitetsgradertBruttoPrÅr(); BeregningsgrunnlagPrStatus.builder(beregningsgrunnlagPrStatus).medAvkortetPrÅr(avkortetPrStatus).build(); } } diff --git a/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/arbeidstaker/FastsettBrukersAndelUtenAvkorting.java b/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/arbeidstaker/FastsettBrukersAndelUtenAvkorting.java index b29ea1d5..69bad05c 100644 --- a/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/arbeidstaker/FastsettBrukersAndelUtenAvkorting.java +++ b/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/arbeidstaker/FastsettBrukersAndelUtenAvkorting.java @@ -28,6 +28,7 @@ public Evaluation evaluate(BeregningsgrunnlagPeriode grunnlag) { return ja(); // Andre statuser har alltid brukers andel lik brutto/avkortet/redusert BG } + // Kva skjer her? for (BeregningsgrunnlagPrArbeidsforhold arbeidsforhold : bgps.getArbeidsforholdSomSkalBrukes()) { BigDecimal arbeidsgiversAndel = arbeidsforhold.getMaksimalRefusjonPrÅr(); diff --git a/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/avkorting/AvkortBGAndelerSomIkkeGjelderArbeidsforholdAndelsmessig.java b/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/avkorting/AvkortBGAndelerSomIkkeGjelderArbeidsforholdAndelsmessig.java index 0b0a6d53..e0d66b06 100644 --- a/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/avkorting/AvkortBGAndelerSomIkkeGjelderArbeidsforholdAndelsmessig.java +++ b/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/avkorting/AvkortBGAndelerSomIkkeGjelderArbeidsforholdAndelsmessig.java @@ -31,7 +31,7 @@ public Evaluation evaluate(BeregningsgrunnlagPeriode grunnlag) { BeregningsgrunnlagPrStatus atfl = grunnlag.getBeregningsgrunnlagPrStatus(AktivitetStatus.ATFL); BigDecimal sumBeregningsgrunnlagArbeidsforhold = atfl == null ? BigDecimal.ZERO : atfl.getArbeidsforholdSomSkalBrukesIkkeFrilans() .stream() - .map(BeregningsgrunnlagPrArbeidsforhold::getGradertBruttoInkludertNaturalytelsePrÅr) + .map(BeregningsgrunnlagPrArbeidsforhold::getAktivitetsgradertBruttoInkludertNaturalytelsePrÅr) .filter(Optional::isPresent) .map(Optional::get) .reduce(BigDecimal.ZERO, BigDecimal::add); @@ -44,7 +44,7 @@ public Evaluation evaluate(BeregningsgrunnlagPeriode grunnlag) { Optional frilansArbeidsforholdOpt = atfl.getFrilansArbeidsforholdSomSkalBrukes(); if (frilansArbeidsforholdOpt.isPresent()) { BeregningsgrunnlagPrArbeidsforhold af = frilansArbeidsforholdOpt.get(); - BigDecimal bruttoBeregningsgrunnlagForAndelen = af.getGradertBruttoInkludertNaturalytelsePrÅr() + BigDecimal bruttoBeregningsgrunnlagForAndelen = af.getAktivitetsgradertBruttoInkludertNaturalytelsePrÅr() .orElseThrow(() -> new IllegalStateException("Brutto er ikke satt for arbeidsforhold " + af.toString())); BigDecimal avkortetBrukersAndel; if (bruttoBeregningsgrunnlagForAndelen.compareTo(bGUtenArbeidsforholdTilFordeling) >= 0) { @@ -67,7 +67,7 @@ public Evaluation evaluate(BeregningsgrunnlagPeriode grunnlag) { Iterator bgpsIter = bgpsSorted.iterator(); while (bgpsIter.hasNext()) { BeregningsgrunnlagPrStatus bgps = bgpsIter.next(); - BigDecimal bruttoBeregningsgrunnlagForAndelen = bgps.getGradertBruttoInkludertNaturalytelsePrÅr(); + BigDecimal bruttoBeregningsgrunnlagForAndelen = bgps.getAktivitetsgradertBruttoInkludertNaturalytelsePrÅr(); BigDecimal avkortetBrukersAndel; if (bruttoBeregningsgrunnlagForAndelen.compareTo(bGUtenArbeidsforholdTilFordeling) >= 0) { avkortetBrukersAndel = bGUtenArbeidsforholdTilFordeling; diff --git a/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/avkorting/FastsettAndelTilFordeling.java b/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/avkorting/FastsettAndelTilFordeling.java index bdf38da8..64863f9b 100644 --- a/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/avkorting/FastsettAndelTilFordeling.java +++ b/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/avkorting/FastsettAndelTilFordeling.java @@ -90,16 +90,16 @@ private void forberedNesteIterasjon(SingleEvaluation resultat, List ikkeFastsattAf, Map resultater, BigDecimal sumFastsattAvkortetRefusjon, BigDecimal ikkeFordelt) { BigDecimal sumBruttoBG = ikkeFastsattAf.stream() - .map(af -> af.getGradertBruttoInkludertNaturalytelsePrÅr().orElse(BigDecimal.ZERO)) + .map(af -> af.getAktivitetsgradertBruttoInkludertNaturalytelsePrÅr().orElse(BigDecimal.ZERO)) .reduce(BigDecimal.ZERO, BigDecimal::add); resultater.put("tidligereFastsattRefusjon", sumFastsattAvkortetRefusjon); resultater.put("gjenstårÅFastsetteRefusjon", ikkeFordelt); ikkeFastsattAf.forEach(af -> { BigDecimal prosentandel = BigDecimal.valueOf(100) - .multiply(af.getGradertBruttoInkludertNaturalytelsePrÅr().orElse(BigDecimal.ZERO)) + .multiply(af.getAktivitetsgradertBruttoInkludertNaturalytelsePrÅr().orElse(BigDecimal.ZERO)) .divide(sumBruttoBG, 10, RoundingMode.HALF_EVEN); resultater.put("gjenstårÅFastsetteRefusjon.prosentandel." + af.getArbeidsgiverId(), prosentandel); - BigDecimal andel = ikkeFordelt.multiply(af.getGradertBruttoInkludertNaturalytelsePrÅr().orElse(BigDecimal.ZERO)) + BigDecimal andel = ikkeFordelt.multiply(af.getAktivitetsgradertBruttoInkludertNaturalytelsePrÅr().orElse(BigDecimal.ZERO)) .divide(sumBruttoBG, 10, RoundingMode.HALF_EVEN) .subtract(af.getMaksimalRefusjonPrÅr()); BeregningsgrunnlagPrArbeidsforhold.builder(af) diff --git a/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/avkorting/FastsettBrukersAndelForBGAndelerSomGjelderArbeidsforhold.java b/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/avkorting/FastsettBrukersAndelForBGAndelerSomGjelderArbeidsforhold.java index b80d286e..2e35bb80 100644 --- a/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/avkorting/FastsettBrukersAndelForBGAndelerSomGjelderArbeidsforhold.java +++ b/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/avkorting/FastsettBrukersAndelForBGAndelerSomGjelderArbeidsforhold.java @@ -31,7 +31,7 @@ public Evaluation evaluate(BeregningsgrunnlagPeriode grunnlag) { resultat.setEvaluationProperties(resultater); atfl.getArbeidsforholdSomSkalBrukesIkkeFrilans().forEach(arbeidsforhold -> { BigDecimal avkortetRefusjonPrÅr = arbeidsforhold.getMaksimalRefusjonPrÅr() == null ? BigDecimal.ZERO : arbeidsforhold.getMaksimalRefusjonPrÅr(); - BigDecimal avkortetBrukersAndel = arbeidsforhold.getGradertBruttoInkludertNaturalytelsePrÅr().orElse(BigDecimal.ZERO).subtract(avkortetRefusjonPrÅr); + BigDecimal avkortetBrukersAndel = arbeidsforhold.getAktivitetsgradertBruttoInkludertNaturalytelsePrÅr().orElse(BigDecimal.ZERO).subtract(avkortetRefusjonPrÅr); BeregningsgrunnlagPrArbeidsforhold.builder(arbeidsforhold) .medAvkortetPrÅr(avkortetRefusjonPrÅr.add(avkortetBrukersAndel)) .medAvkortetRefusjonPrÅr(avkortetRefusjonPrÅr) diff --git "a/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/avkorting/SjekkOmTotaltBGForArbeidsforholdSt\303\270rreEnnGrenseverdi.java" "b/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/avkorting/SjekkOmTotaltBGForArbeidsforholdSt\303\270rreEnnGrenseverdi.java" index ebb33f4d..30477540 100644 --- "a/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/avkorting/SjekkOmTotaltBGForArbeidsforholdSt\303\270rreEnnGrenseverdi.java" +++ "b/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/avkorting/SjekkOmTotaltBGForArbeidsforholdSt\303\270rreEnnGrenseverdi.java" @@ -25,7 +25,7 @@ public Evaluation evaluate(BeregningsgrunnlagPeriode grunnlag) { BigDecimal grenseverdi = grunnlag.getGrenseverdi(); BeregningsgrunnlagPrStatus atfl = grunnlag.getBeregningsgrunnlagPrStatus(AktivitetStatus.ATFL); BigDecimal totaltBG = atfl == null ? BigDecimal.ZERO : atfl.getArbeidsforholdSomSkalBrukesIkkeFrilans().stream() - .map(af -> af.getGradertBruttoInkludertNaturalytelsePrÅr().orElse(BigDecimal.ZERO)) + .map(af -> af.getAktivitetsgradertBruttoInkludertNaturalytelsePrÅr().orElse(BigDecimal.ZERO)) .reduce(BigDecimal.ZERO, BigDecimal::add); SingleEvaluation resultat = totaltBG.compareTo(grenseverdi) > 0 ? ja() : nei(); resultat.setEvaluationProperty("totaltBeregningsgrunnlagFraArbeidsforhold", totaltBG); diff --git "a/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/fastsette/SjekkGradertBeregningsgrunnlagSt\303\270rreEnnGrenseverdi.java" "b/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/fastsette/SjekkGradertBeregningsgrunnlagSt\303\270rreEnnGrenseverdi.java" index 5b3fe263..50b0a0f4 100644 --- "a/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/fastsette/SjekkGradertBeregningsgrunnlagSt\303\270rreEnnGrenseverdi.java" +++ "b/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/fastsette/SjekkGradertBeregningsgrunnlagSt\303\270rreEnnGrenseverdi.java" @@ -21,7 +21,7 @@ public class SjekkGradertBeregningsgrunnlagStørreEnnGrenseverdi extends LeafSpe @Override public Evaluation evaluate(BeregningsgrunnlagPeriode grunnlag) { - BigDecimal bruttoInklBortfaltNaturalytelsePrÅr = grunnlag.getGradertBruttoPrÅrInkludertNaturalytelser(); + BigDecimal bruttoInklBortfaltNaturalytelsePrÅr = grunnlag.getAktivitetsgradertBruttoPrÅrInkludertNaturalytelser(); BigDecimal grenseverdi = grunnlag.getGrenseverdi(); SingleEvaluation resultat = bruttoInklBortfaltNaturalytelsePrÅr.compareTo(grenseverdi) > 0 ? ja() : nei(); resultat.setEvaluationProperty("bruttoPrÅr", bruttoInklBortfaltNaturalytelsePrÅr); diff --git a/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/fastsette/refusjon/FastsettMaksimalRefusjon.java b/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/fastsette/refusjon/FastsettMaksimalRefusjon.java index 798ef9e3..d28803f2 100644 --- a/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/fastsette/refusjon/FastsettMaksimalRefusjon.java +++ b/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/fastsette/refusjon/FastsettMaksimalRefusjon.java @@ -28,11 +28,11 @@ public Evaluation evaluate(BeregningsgrunnlagPeriode grunnlag) { grunnlag.getBeregningsgrunnlagPrStatusSomSkalBrukes().stream() .flatMap(bgs -> bgs.getArbeidsforholdSomSkalBrukes().stream()) .forEach(af -> { - BigDecimal refusjonskravPrArbeidsforholdPrÅr = af.getGradertRefusjonskravPrÅr().orElse(BigDecimal.ZERO); + BigDecimal refusjonskravPrArbeidsforholdPrÅr = af.getAktivitetsgradertRefusjonskravPrÅr().orElse(BigDecimal.ZERO); if (af.getMaksimalRefusjonPrÅr() == null) { BeregningsgrunnlagPrArbeidsforhold.Builder bgArbeidsforholdBuilder = BeregningsgrunnlagPrArbeidsforhold.builder(af); - BigDecimal maksimalRefusjon = af.getGradertBruttoPrÅr().min(refusjonskravPrArbeidsforholdPrÅr); + BigDecimal maksimalRefusjon = af.getAktivitetsgradertBruttoPrÅr().min(refusjonskravPrArbeidsforholdPrÅr); bgArbeidsforholdBuilder.medMaksimalRefusjonPrÅr(maksimalRefusjon); bgArbeidsforholdBuilder.build(); } diff --git a/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/fastsette/refusjon/over6g/BeregnArbeidsgiversAndeler.java b/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/fastsette/refusjon/over6g/BeregnArbeidsgiversAndeler.java index 1fa2cf73..f1feea16 100644 --- a/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/fastsette/refusjon/over6g/BeregnArbeidsgiversAndeler.java +++ b/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/fastsette/refusjon/over6g/BeregnArbeidsgiversAndeler.java @@ -58,12 +58,12 @@ public Evaluation evaluate(BeregningsgrunnlagPeriode grunnlag) { .orElse(BigDecimal.ZERO)); // Forsøk å tildele avkortede andeler til alle - BigDecimal gradertBruttoSum = ikkeFastsatt.stream().map(BeregningsgrunnlagPrArbeidsforhold::getGradertBruttoPrÅr) + BigDecimal gradertBruttoSum = ikkeFastsatt.stream().map(BeregningsgrunnlagPrArbeidsforhold::getAktivitetsgradertBruttoPrÅr) .filter(Objects::nonNull) .reduce(BigDecimal::add).orElse(BigDecimal.ZERO); resultater.put(REFUSJON_TIL_FORDELING, refusjonTilFordeling); ikkeFastsatt.forEach(af -> { - var gradertBruttoPrÅr = af.getGradertBruttoPrÅr() == null ? BigDecimal.ZERO : af.getGradertBruttoPrÅr(); + var gradertBruttoPrÅr = af.getAktivitetsgradertBruttoPrÅr() == null ? BigDecimal.ZERO : af.getAktivitetsgradertBruttoPrÅr(); BigDecimal andel = refusjonTilFordeling.multiply(gradertBruttoPrÅr) .divide(gradertBruttoSum, 10, RoundingMode.HALF_EVEN); BeregningsgrunnlagPrArbeidsforhold.builder(af) diff --git a/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/regelmodell/fastsett/BeregningsgrunnlagPeriode.java b/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/regelmodell/fastsett/BeregningsgrunnlagPeriode.java index b56b0bae..bea721e5 100644 --- a/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/regelmodell/fastsett/BeregningsgrunnlagPeriode.java +++ b/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/regelmodell/fastsett/BeregningsgrunnlagPeriode.java @@ -106,10 +106,10 @@ void addBeregningsgrunnlagPrStatus(BeregningsgrunnlagPrStatus beregningsgrunnlag return brutto.add(naturalytelser); } - public BigDecimal getGradertBruttoPrÅrInkludertNaturalytelser() { - BigDecimal naturalytelser = getGradertNaturalytelserBortfaltMinusTilkommetPrÅr(); - BigDecimal brutto = getGradertBruttoPrÅr(); - return brutto.add(naturalytelser); + public BigDecimal getAktivitetsgradertBruttoPrÅrInkludertNaturalytelser() { + return getBeregningsgrunnlagPrStatus().stream() + .map(BeregningsgrunnlagPrStatus::getAktivitetsgradertBruttoInkludertNaturalytelsePrÅr) + .reduce(BigDecimal.ZERO, BigDecimal::add); } private BigDecimal getNaturalytelserBortfaltMinusTilkommetPrÅr() { @@ -118,12 +118,6 @@ void addBeregningsgrunnlagPrStatus(BeregningsgrunnlagPrStatus beregningsgrunnlag .reduce(BigDecimal.ZERO, BigDecimal::add); } - private BigDecimal getGradertNaturalytelserBortfaltMinusTilkommetPrÅr() { - return beregningsgrunnlagPrStatus.stream() - .map(BeregningsgrunnlagPrStatus::samletGradertNaturalytelseBortfaltMinusTilkommetPrÅr) - .reduce(BigDecimal.ZERO, BigDecimal::add); - } - public Periode getBeregningsgrunnlagPeriode() { return bgPeriode; } diff --git a/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/regelmodell/fastsett/BeregningsgrunnlagPrArbeidsforhold.java b/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/regelmodell/fastsett/BeregningsgrunnlagPrArbeidsforhold.java index 4f1cb22f..61f524cd 100644 --- a/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/regelmodell/fastsett/BeregningsgrunnlagPrArbeidsforhold.java +++ b/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/regelmodell/fastsett/BeregningsgrunnlagPrArbeidsforhold.java @@ -48,18 +48,11 @@ public boolean erFrilanser() { return Optional.ofNullable(naturalytelseBortfaltPrÅr); } - public Optional getGradertNaturalytelseBortfaltPrÅr() { - return Optional.ofNullable(finnGradert(naturalytelseBortfaltPrÅr)); - } public Optional getNaturalytelseTilkommetPrÅr() { return Optional.ofNullable(naturalytelseTilkommetPrÅr); } - public Optional getGradertNaturalytelseTilkommetPrÅr() { - return Optional.ofNullable(finnGradert(naturalytelseTilkommetPrÅr)); - } - public String getBeskrivelse() { return (erFrilanser() ? "FL:" : "AT:") + getArbeidsgiverId(); } @@ -72,6 +65,11 @@ public String getBeskrivelse() { return finnGradert(getBruttoPrÅr().orElse(null)); } + public BigDecimal getAktivitetsgradertBruttoPrÅr() { + return finnAktivitetsgradert(getBruttoPrÅr().orElse(null)); + } + + public BigDecimal getInntektsgrunnlagPrÅr() { return inntektsgrunnlagPrÅr != null ? inntektsgrunnlagPrÅr : BigDecimal.ZERO; } @@ -112,8 +110,8 @@ public Arbeidsforhold getArbeidsforhold() { return arbeidsforhold; } - public Optional getGradertRefusjonskravPrÅr() { - return Optional.ofNullable(finnGradert(refusjonPrÅr)); + public Optional getAktivitetsgradertRefusjonskravPrÅr() { + return Optional.ofNullable(finnAktivitetsgradert(refusjonPrÅr)); } public Optional getGradertBruttoInkludertNaturalytelsePrÅr() { @@ -121,6 +119,11 @@ public Arbeidsforhold getArbeidsforhold() { return brutto.map(this::finnGradert); } + public Optional getAktivitetsgradertBruttoInkludertNaturalytelsePrÅr() { + Optional brutto = getBruttoInkludertNaturalytelsePrÅr(); + return brutto.map(this::finnAktivitetsgradert); + } + public BigDecimal getMaksimalRefusjonPrÅr() { return maksimalRefusjonPrÅr; } @@ -188,6 +191,10 @@ private BigDecimal finnGradert(BigDecimal verdi) { return verdi == null ? null : verdi.multiply(utbetalingsprosent.scaleByPowerOfTen(-2)); } + private BigDecimal finnAktivitetsgradert(BigDecimal verdi) { + return verdi == null ? null : verdi.multiply(BigDecimal.valueOf(100).subtract(aktivitetsgrad).scaleByPowerOfTen(-2)); + } + public static Builder builder() { return new Builder(); } diff --git a/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/regelmodell/fastsett/BeregningsgrunnlagPrStatus.java b/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/regelmodell/fastsett/BeregningsgrunnlagPrStatus.java index 0071ee96..225e370b 100644 --- a/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/regelmodell/fastsett/BeregningsgrunnlagPrStatus.java +++ b/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/regelmodell/fastsett/BeregningsgrunnlagPrStatus.java @@ -94,20 +94,6 @@ public boolean erArbeidstakerEllerFrilanser() { return sumBortfaltNaturalYtelse.subtract(sumTilkommetNaturalYtelse); } - public BigDecimal samletGradertNaturalytelseBortfaltMinusTilkommetPrÅr() { - BigDecimal sumBortfaltNaturalYtelse = getArbeidsforhold().stream() - .map(BeregningsgrunnlagPrArbeidsforhold::getGradertNaturalytelseBortfaltPrÅr) - .filter(Optional::isPresent) - .map(Optional::get) - .reduce(BigDecimal.ZERO, BigDecimal::add); - BigDecimal sumTilkommetNaturalYtelse = getArbeidsforhold().stream() - .map(BeregningsgrunnlagPrArbeidsforhold::getGradertNaturalytelseTilkommetPrÅr) - .filter(Optional::isPresent) - .map(Optional::get) - .reduce(BigDecimal.ZERO, BigDecimal::add); - return sumBortfaltNaturalYtelse.subtract(sumTilkommetNaturalYtelse); - } - public BigDecimal getBruttoPrÅr() { return bruttoPrÅr != null ? bruttoPrÅr : getArbeidsforhold().stream() .map(BeregningsgrunnlagPrArbeidsforhold::getBruttoPrÅr) @@ -123,10 +109,22 @@ public boolean erArbeidstakerEllerFrilanser() { .reduce(BigDecimal.ZERO, BigDecimal::add); } + public BigDecimal getAktivitetsgradertBruttoPrÅr() { + return bruttoPrÅr != null ? finnAktivitetsgradert(bruttoPrÅr) : getArbeidsforhold().stream() + .map(BeregningsgrunnlagPrArbeidsforhold::getAktivitetsgradertBruttoPrÅr) + .filter(Objects::nonNull) + .reduce(BigDecimal.ZERO, BigDecimal::add); + } + private BigDecimal finnGradert(BigDecimal verdi) { return verdi == null ? null : verdi.multiply(utbetalingsprosent.scaleByPowerOfTen(-2)); } + private BigDecimal finnAktivitetsgradert(BigDecimal verdi) { + return verdi == null ? null : verdi.multiply((BigDecimal.valueOf(100).subtract(aktivitetsgrad)).scaleByPowerOfTen(-2)); + } + + public BigDecimal getBruttoInkludertNaturalytelsePrÅr() { BigDecimal brutto = getBruttoPrÅr(); BigDecimal samletNaturalytelse = samletNaturalytelseBortfaltMinusTilkommetPrÅr(); @@ -147,6 +145,13 @@ private BigDecimal finnGradert(BigDecimal verdi) { .reduce(BigDecimal.ZERO, BigDecimal::add); } + public BigDecimal getAktivitetsgradertBruttoInkludertNaturalytelsePrÅr() { + return bruttoPrÅr != null ? finnAktivitetsgradert(getBruttoInkludertNaturalytelsePrÅr()) : getArbeidsforhold().stream() + .map(BeregningsgrunnlagPrArbeidsforhold::getGradertBruttoInkludertNaturalytelsePrÅr) + .filter(Optional::isPresent) + .map(Optional::get) + .reduce(BigDecimal.ZERO, BigDecimal::add); + } public List getArbeidsforhold() { return Collections.unmodifiableList(arbeidsforhold);