From 92ac2ddfd2068ea0deed35dad7cbe700f5234059 Mon Sep 17 00:00:00 2001 From: Espen Johansen Velsvik Date: Fri, 10 Jan 2025 13:32:32 +0100 Subject: [PATCH] =?UTF-8?q?FAGSYSTEM-363084:=20Sjekker=20inntektsgrunnlag?= =?UTF-8?q?=20og=20ikkje=20brutto=20pr=20=C3=A5r=20for=20=C3=A5=20bestemme?= =?UTF-8?q?=20om=20grunnlag=20er=20over=206G=20ved=20beregning=20av=20gren?= =?UTF-8?q?severdi=20uten=20fordeling?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../grenseverdi/RegelFinnGrenseverdi.java | 1 + ...beidsforholdAndelsmessigUtenFordeling.java | 4 +- ...delerSomIkkeGjelderArbeidsforholdTil0.java | 52 ++++++++ ...ttAndelForArbeidsforholdUtenFordeling.java | 2 +- ...SomGjelderArbeidsforholdUtenFordeling.java | 2 +- ...FastsettAndelLikBruttoBGUtenFordeling.java | 4 +- .../FinnGrenseverdiUtenFordeling.java | 4 +- ...gelFastsettAndelBGOver6GUtenFordeling.java | 6 +- .../RegelFinnGrenseverdiUtenFordeling.java | 2 +- ...03\270rreEnnGrenseverdiUtenFordeling.java" | 38 ++++++ ...70rreEnnGrenseverdiUtenFordelingTest.java" | 124 ++++++++++++++++++ ...RegelFinnGrenseverdiUtenFordelingTest.java | 2 +- 12 files changed, 228 insertions(+), 13 deletions(-) rename beregningsregler/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/{ => utenfordeling}/AvkortBGAndelerSomIkkeGjelderArbeidsforholdAndelsmessigUtenFordeling.java (96%) create mode 100644 beregningsregler/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/utenfordeling/AvkortBGAndelerSomIkkeGjelderArbeidsforholdTil0.java rename beregningsregler/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/{ => utenfordeling}/FastsettAndelForArbeidsforholdUtenFordeling.java (97%) rename beregningsregler/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/{ => utenfordeling}/FastsettAndelForBGAndelerSomGjelderArbeidsforholdUtenFordeling.java (96%) rename beregningsregler/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/{ => utenfordeling}/FastsettAndelLikBruttoBGUtenFordeling.java (91%) rename beregningsregler/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/{ => utenfordeling}/FinnGrenseverdiUtenFordeling.java (98%) rename beregningsregler/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/{ => utenfordeling}/RegelFastsettAndelBGOver6GUtenFordeling.java (92%) rename beregningsregler/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/{ => utenfordeling}/RegelFinnGrenseverdiUtenFordeling.java (96%) create mode 100644 "beregningsregler/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/utenfordeling/SjekkOmTotaltBGForArbeidsforholdSt\303\270rreEnnGrenseverdiUtenFordeling.java" create mode 100644 "beregningsregler/src/test/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/utenfordeling/SjekkOmTotaltBGForArbeidsforholdSt\303\270rreEnnGrenseverdiUtenFordelingTest.java" diff --git a/beregningsregler/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/RegelFinnGrenseverdi.java b/beregningsregler/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/RegelFinnGrenseverdi.java index 108fbe1e..4a15c0fe 100644 --- a/beregningsregler/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/RegelFinnGrenseverdi.java +++ b/beregningsregler/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/RegelFinnGrenseverdi.java @@ -1,5 +1,6 @@ package no.nav.folketrygdloven.beregningsgrunnlag.grenseverdi; +import no.nav.folketrygdloven.beregningsgrunnlag.grenseverdi.utenfordeling.RegelFinnGrenseverdiUtenFordeling; import no.nav.folketrygdloven.beregningsgrunnlag.regelmodell.fastsett.BeregningsgrunnlagPeriode; import no.nav.folketrygdloven.regelmodelloversetter.EksportRegel; import no.nav.fpsak.nare.Ruleset; diff --git a/beregningsregler/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/AvkortBGAndelerSomIkkeGjelderArbeidsforholdAndelsmessigUtenFordeling.java b/beregningsregler/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/utenfordeling/AvkortBGAndelerSomIkkeGjelderArbeidsforholdAndelsmessigUtenFordeling.java similarity index 96% rename from beregningsregler/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/AvkortBGAndelerSomIkkeGjelderArbeidsforholdAndelsmessigUtenFordeling.java rename to beregningsregler/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/utenfordeling/AvkortBGAndelerSomIkkeGjelderArbeidsforholdAndelsmessigUtenFordeling.java index 7c03a5a5..80cb8bdc 100644 --- a/beregningsregler/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/AvkortBGAndelerSomIkkeGjelderArbeidsforholdAndelsmessigUtenFordeling.java +++ b/beregningsregler/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/utenfordeling/AvkortBGAndelerSomIkkeGjelderArbeidsforholdAndelsmessigUtenFordeling.java @@ -1,4 +1,4 @@ -package no.nav.folketrygdloven.beregningsgrunnlag.grenseverdi; +package no.nav.folketrygdloven.beregningsgrunnlag.grenseverdi.utenfordeling; import java.math.BigDecimal; import java.util.Comparator; @@ -17,7 +17,7 @@ import no.nav.fpsak.nare.specification.LeafSpecification; @RuleDocumentation(AvkortBGAndelerSomIkkeGjelderArbeidsforholdAndelsmessigUtenFordeling.ID) -public class AvkortBGAndelerSomIkkeGjelderArbeidsforholdAndelsmessigUtenFordeling extends LeafSpecification { +class AvkortBGAndelerSomIkkeGjelderArbeidsforholdAndelsmessigUtenFordeling extends LeafSpecification { public static final String ID = "FP_BR 29.8.4_uten_fordeling"; public static final String BESKRIVELSE = "Avkort alle beregningsgrunnlagsandeler som ikke gjelder arbeidsforhold andelsmessig."; diff --git a/beregningsregler/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/utenfordeling/AvkortBGAndelerSomIkkeGjelderArbeidsforholdTil0.java b/beregningsregler/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/utenfordeling/AvkortBGAndelerSomIkkeGjelderArbeidsforholdTil0.java new file mode 100644 index 00000000..adb7ca2f --- /dev/null +++ b/beregningsregler/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/utenfordeling/AvkortBGAndelerSomIkkeGjelderArbeidsforholdTil0.java @@ -0,0 +1,52 @@ +package no.nav.folketrygdloven.beregningsgrunnlag.grenseverdi.utenfordeling; + +import java.math.BigDecimal; +import java.util.HashMap; +import java.util.Map; + +import no.nav.folketrygdloven.beregningsgrunnlag.regelmodell.AktivitetStatus; +import no.nav.folketrygdloven.beregningsgrunnlag.regelmodell.fastsett.BeregningsgrunnlagPeriode; +import no.nav.folketrygdloven.beregningsgrunnlag.regelmodell.fastsett.BeregningsgrunnlagPrArbeidsforhold; +import no.nav.folketrygdloven.beregningsgrunnlag.regelmodell.fastsett.BeregningsgrunnlagPrStatus; +import no.nav.fpsak.nare.doc.RuleDocumentation; +import no.nav.fpsak.nare.evaluation.Evaluation; +import no.nav.fpsak.nare.specification.LeafSpecification; + +@RuleDocumentation(AvkortBGAndelerSomIkkeGjelderArbeidsforholdTil0.ID) +class AvkortBGAndelerSomIkkeGjelderArbeidsforholdTil0 extends LeafSpecification { + static final String ID = "FP_BR 29.8.3"; + static final String BESKRIVELSE = "Avkort alle beregningsgrunnlagsandeler som ikke gjelder arbeidsforhold til 0."; + + AvkortBGAndelerSomIkkeGjelderArbeidsforholdTil0() { + super(ID, BESKRIVELSE); + } + + @Override + public Evaluation evaluate(BeregningsgrunnlagPeriode grunnlag) { + + Map resultater = new HashMap<>(); + grunnlag.getBeregningsgrunnlagPrStatus().stream() + .filter(bgps -> !bgps.erArbeidstakerEllerFrilanser()) + .forEach(bgps -> { + BeregningsgrunnlagPrStatus.builder(bgps) + .medAndelsmessigFørGraderingPrAar(BigDecimal.ZERO) + .build(); + resultater.put("avkortetPrÅr.status." + bgps.getAktivitetStatus().name(), bgps.getAvkortetPrÅr()); + }); + + BeregningsgrunnlagPrStatus atfl = grunnlag.getBeregningsgrunnlagPrStatus(AktivitetStatus.ATFL); + if (atfl != null) { + atfl.getFrilansArbeidsforhold().ifPresent(af -> { + BeregningsgrunnlagPrArbeidsforhold.builder(af) + .medAndelsmessigFørGraderingPrAar(BigDecimal.ZERO) + .build(); + resultater.put("avkortetPrÅr.status." + atfl.getAktivitetStatus().name() + "." + af.getArbeidsgiverId(), af.getAvkortetPrÅr()); + }); + } + return beregnet(resultater); + + } + + + +} diff --git a/beregningsregler/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/FastsettAndelForArbeidsforholdUtenFordeling.java b/beregningsregler/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/utenfordeling/FastsettAndelForArbeidsforholdUtenFordeling.java similarity index 97% rename from beregningsregler/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/FastsettAndelForArbeidsforholdUtenFordeling.java rename to beregningsregler/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/utenfordeling/FastsettAndelForArbeidsforholdUtenFordeling.java index d9d37776..21f45245 100644 --- a/beregningsregler/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/FastsettAndelForArbeidsforholdUtenFordeling.java +++ b/beregningsregler/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/utenfordeling/FastsettAndelForArbeidsforholdUtenFordeling.java @@ -1,4 +1,4 @@ -package no.nav.folketrygdloven.beregningsgrunnlag.grenseverdi; +package no.nav.folketrygdloven.beregningsgrunnlag.grenseverdi.utenfordeling; import java.math.BigDecimal; import java.math.RoundingMode; diff --git a/beregningsregler/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/FastsettAndelForBGAndelerSomGjelderArbeidsforholdUtenFordeling.java b/beregningsregler/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/utenfordeling/FastsettAndelForBGAndelerSomGjelderArbeidsforholdUtenFordeling.java similarity index 96% rename from beregningsregler/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/FastsettAndelForBGAndelerSomGjelderArbeidsforholdUtenFordeling.java rename to beregningsregler/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/utenfordeling/FastsettAndelForBGAndelerSomGjelderArbeidsforholdUtenFordeling.java index 22929f9a..0a3b7a77 100644 --- a/beregningsregler/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/FastsettAndelForBGAndelerSomGjelderArbeidsforholdUtenFordeling.java +++ b/beregningsregler/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/utenfordeling/FastsettAndelForBGAndelerSomGjelderArbeidsforholdUtenFordeling.java @@ -1,4 +1,4 @@ -package no.nav.folketrygdloven.beregningsgrunnlag.grenseverdi; +package no.nav.folketrygdloven.beregningsgrunnlag.grenseverdi.utenfordeling; import java.math.BigDecimal; import java.util.HashMap; diff --git a/beregningsregler/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/FastsettAndelLikBruttoBGUtenFordeling.java b/beregningsregler/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/utenfordeling/FastsettAndelLikBruttoBGUtenFordeling.java similarity index 91% rename from beregningsregler/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/FastsettAndelLikBruttoBGUtenFordeling.java rename to beregningsregler/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/utenfordeling/FastsettAndelLikBruttoBGUtenFordeling.java index 47abe541..ed5ad098 100644 --- a/beregningsregler/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/FastsettAndelLikBruttoBGUtenFordeling.java +++ b/beregningsregler/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/utenfordeling/FastsettAndelLikBruttoBGUtenFordeling.java @@ -1,4 +1,4 @@ -package no.nav.folketrygdloven.beregningsgrunnlag.grenseverdi; +package no.nav.folketrygdloven.beregningsgrunnlag.grenseverdi.utenfordeling; import java.math.BigDecimal; @@ -11,7 +11,7 @@ import no.nav.fpsak.nare.specification.LeafSpecification; @RuleDocumentation(FastsettAndelLikBruttoBGUtenFordeling.ID) -public class FastsettAndelLikBruttoBGUtenFordeling extends LeafSpecification { +class FastsettAndelLikBruttoBGUtenFordeling extends LeafSpecification { static final String ID = "FP_BR 29.6.2_uten_fordeling"; static final String BESKRIVELSE = "Fastsett andel lik brutto bg"; diff --git a/beregningsregler/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/FinnGrenseverdiUtenFordeling.java b/beregningsregler/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/utenfordeling/FinnGrenseverdiUtenFordeling.java similarity index 98% rename from beregningsregler/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/FinnGrenseverdiUtenFordeling.java rename to beregningsregler/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/utenfordeling/FinnGrenseverdiUtenFordeling.java index 0c26d669..eb757319 100644 --- a/beregningsregler/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/FinnGrenseverdiUtenFordeling.java +++ b/beregningsregler/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/utenfordeling/FinnGrenseverdiUtenFordeling.java @@ -1,4 +1,4 @@ -package no.nav.folketrygdloven.beregningsgrunnlag.grenseverdi; +package no.nav.folketrygdloven.beregningsgrunnlag.grenseverdi.utenfordeling; import java.math.BigDecimal; import java.math.RoundingMode; @@ -17,7 +17,7 @@ import no.nav.fpsak.nare.specification.LeafSpecification; @RuleDocumentation(FinnGrenseverdiUtenFordeling.ID) -public class FinnGrenseverdiUtenFordeling extends LeafSpecification { +class FinnGrenseverdiUtenFordeling extends LeafSpecification { public static final String ID = "FP_BR 6.2_uten_fordeling"; public static final String BESKRIVELSE = "Finn grenseverdi uten fordeling"; diff --git a/beregningsregler/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/RegelFastsettAndelBGOver6GUtenFordeling.java b/beregningsregler/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/utenfordeling/RegelFastsettAndelBGOver6GUtenFordeling.java similarity index 92% rename from beregningsregler/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/RegelFastsettAndelBGOver6GUtenFordeling.java rename to beregningsregler/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/utenfordeling/RegelFastsettAndelBGOver6GUtenFordeling.java index d98c9da2..79ba7796 100644 --- a/beregningsregler/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/RegelFastsettAndelBGOver6GUtenFordeling.java +++ b/beregningsregler/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/utenfordeling/RegelFastsettAndelBGOver6GUtenFordeling.java @@ -1,4 +1,4 @@ -package no.nav.folketrygdloven.beregningsgrunnlag.grenseverdi; +package no.nav.folketrygdloven.beregningsgrunnlag.grenseverdi.utenfordeling; import no.nav.folketrygdloven.beregningsgrunnlag.regelmodell.AktivitetStatus; import no.nav.folketrygdloven.beregningsgrunnlag.regelmodell.fastsett.BeregningsgrunnlagPeriode; @@ -8,7 +8,7 @@ import no.nav.fpsak.nare.Ruleset; import no.nav.fpsak.nare.specification.Specification; -public class RegelFastsettAndelBGOver6GUtenFordeling implements RuleService { +class RegelFastsettAndelBGOver6GUtenFordeling implements RuleService { public static final String ID = "FP_BR_29.8_uten_fordeling"; public static final String BESKRIVELSE = "Fastsett avkortet BG over 6G når refusjon under 6G"; private BeregningsgrunnlagPeriode regelmodell; @@ -51,7 +51,7 @@ public Specification getSpecification() { } //FP_BR_29.8.2 Er totalt BG for beregningsgrunnlagsandeler fra arbeidsforhold > 6G? - Specification erTotaltBGFraArbeidforholdStørreEnn6G = rs.beregningHvisRegel(new SjekkOmTotaltBGForArbeidsforholdStørreEnnGrenseverdi(), + Specification erTotaltBGFraArbeidforholdStørreEnn6G = rs.beregningHvisRegel(new SjekkOmTotaltBGForArbeidsforholdStørreEnnGrenseverdiUtenFordeling(), avkortAndelerSomIkkegjelderAFtil0, avkortAndelerAndelsmessigOgFastsettBrukersAndel); diff --git a/beregningsregler/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/RegelFinnGrenseverdiUtenFordeling.java b/beregningsregler/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/utenfordeling/RegelFinnGrenseverdiUtenFordeling.java similarity index 96% rename from beregningsregler/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/RegelFinnGrenseverdiUtenFordeling.java rename to beregningsregler/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/utenfordeling/RegelFinnGrenseverdiUtenFordeling.java index ce5407f6..30f1bbc0 100644 --- a/beregningsregler/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/RegelFinnGrenseverdiUtenFordeling.java +++ b/beregningsregler/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/utenfordeling/RegelFinnGrenseverdiUtenFordeling.java @@ -1,4 +1,4 @@ -package no.nav.folketrygdloven.beregningsgrunnlag.grenseverdi; +package no.nav.folketrygdloven.beregningsgrunnlag.grenseverdi.utenfordeling; import no.nav.folketrygdloven.beregningsgrunnlag.fastsette.SjekkBeregningsgrunnlagStørreEnnGrenseverdi; import no.nav.folketrygdloven.beregningsgrunnlag.regelmodell.fastsett.BeregningsgrunnlagPeriode; diff --git "a/beregningsregler/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/utenfordeling/SjekkOmTotaltBGForArbeidsforholdSt\303\270rreEnnGrenseverdiUtenFordeling.java" "b/beregningsregler/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/utenfordeling/SjekkOmTotaltBGForArbeidsforholdSt\303\270rreEnnGrenseverdiUtenFordeling.java" new file mode 100644 index 00000000..dc90895f --- /dev/null +++ "b/beregningsregler/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/utenfordeling/SjekkOmTotaltBGForArbeidsforholdSt\303\270rreEnnGrenseverdiUtenFordeling.java" @@ -0,0 +1,38 @@ +package no.nav.folketrygdloven.beregningsgrunnlag.grenseverdi.utenfordeling; + + +import java.math.BigDecimal; + +import no.nav.folketrygdloven.beregningsgrunnlag.regelmodell.AktivitetStatus; +import no.nav.folketrygdloven.beregningsgrunnlag.regelmodell.fastsett.BeregningsgrunnlagPeriode; +import no.nav.folketrygdloven.beregningsgrunnlag.regelmodell.fastsett.BeregningsgrunnlagPrArbeidsforhold; +import no.nav.folketrygdloven.beregningsgrunnlag.regelmodell.fastsett.BeregningsgrunnlagPrStatus; +import no.nav.fpsak.nare.doc.RuleDocumentation; +import no.nav.fpsak.nare.evaluation.Evaluation; +import no.nav.fpsak.nare.evaluation.node.SingleEvaluation; +import no.nav.fpsak.nare.specification.LeafSpecification; + +@RuleDocumentation(SjekkOmTotaltBGForArbeidsforholdStørreEnnGrenseverdiUtenFordeling.ID) +class SjekkOmTotaltBGForArbeidsforholdStørreEnnGrenseverdiUtenFordeling extends LeafSpecification { + + static final String ID = "FP_BR_29.8.2_uten_fordeling"; + static final String BESKRIVELSE = "Er totalt intektsgrunnlag for andeler fra arbeidsforhold større enn 6G?"; + + SjekkOmTotaltBGForArbeidsforholdStørreEnnGrenseverdiUtenFordeling() { + super(ID, BESKRIVELSE); + } + + @Override + public Evaluation evaluate(BeregningsgrunnlagPeriode grunnlag) { + BigDecimal grenseverdi = grunnlag.getGrenseverdi(); + BeregningsgrunnlagPrStatus atfl = grunnlag.getBeregningsgrunnlagPrStatus(AktivitetStatus.ATFL); + BigDecimal totaltBG = atfl == null ? BigDecimal.ZERO : atfl.getArbeidsforholdIkkeFrilans().stream() + .map(BeregningsgrunnlagPrArbeidsforhold::getInntektsgrunnlagInkludertNaturalytelsePrÅr) + .reduce(BigDecimal.ZERO, BigDecimal::add); + SingleEvaluation resultat = totaltBG.compareTo(grenseverdi) > 0 ? ja() : nei(); + resultat.setEvaluationProperty("totaltBeregningsgrunnlagFraArbeidsforhold", totaltBG); + resultat.setEvaluationProperty("grunnbeløp", grunnlag.getGrunnbeløp()); + resultat.setEvaluationProperty("grenseverdi", grenseverdi); + return resultat; + } +} diff --git "a/beregningsregler/src/test/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/utenfordeling/SjekkOmTotaltBGForArbeidsforholdSt\303\270rreEnnGrenseverdiUtenFordelingTest.java" "b/beregningsregler/src/test/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/utenfordeling/SjekkOmTotaltBGForArbeidsforholdSt\303\270rreEnnGrenseverdiUtenFordelingTest.java" new file mode 100644 index 00000000..de07884f --- /dev/null +++ "b/beregningsregler/src/test/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/utenfordeling/SjekkOmTotaltBGForArbeidsforholdSt\303\270rreEnnGrenseverdiUtenFordelingTest.java" @@ -0,0 +1,124 @@ +package no.nav.folketrygdloven.beregningsgrunnlag.grenseverdi.utenfordeling; + +import static no.nav.folketrygdloven.beregningsgrunnlag.util.DateUtil.TIDENES_ENDE; +import static org.assertj.core.api.AssertionsForClassTypes.assertThat; +import static org.junit.jupiter.api.Assertions.*; + +import java.math.BigDecimal; +import java.time.LocalDate; + +import org.junit.jupiter.api.Test; + +import no.nav.folketrygdloven.beregningsgrunnlag.regelmodell.Aktivitet; +import no.nav.folketrygdloven.beregningsgrunnlag.regelmodell.AktivitetStatus; +import no.nav.folketrygdloven.beregningsgrunnlag.regelmodell.Periode; +import no.nav.folketrygdloven.beregningsgrunnlag.regelmodell.fastsett.Beregningsgrunnlag; +import no.nav.folketrygdloven.beregningsgrunnlag.regelmodell.fastsett.BeregningsgrunnlagPeriode; +import no.nav.folketrygdloven.beregningsgrunnlag.regelmodell.fastsett.BeregningsgrunnlagPrArbeidsforhold; +import no.nav.folketrygdloven.beregningsgrunnlag.regelmodell.fastsett.BeregningsgrunnlagPrStatus; +import no.nav.folketrygdloven.beregningsgrunnlag.regelmodell.grunnlag.inntekt.Arbeidsforhold; +import no.nav.fpsak.nare.evaluation.Evaluation; +import no.nav.fpsak.nare.evaluation.Resultat; + +class SjekkOmTotaltBGForArbeidsforholdStørreEnnGrenseverdiUtenFordelingTest { + + @Test + void skal_gi_resultat_JA_for_inntektsgrunnlag_over_grenseverdi() { + BeregningsgrunnlagPeriode periode = BeregningsgrunnlagPeriode.builder() + .medPeriode(Periode.of(LocalDate.now(), TIDENES_ENDE)) + .medBeregningsgrunnlagPrStatus(BeregningsgrunnlagPrStatus + .builder() + .medAktivitetStatus(AktivitetStatus.ATFL) + .medArbeidsforhold(BeregningsgrunnlagPrArbeidsforhold.builder() + .medAndelNr(1L) + .medBruttoPrÅr(BigDecimal.valueOf(100_000)) + .medInntektsgrunnlagPrÅr(BigDecimal.valueOf(1_000_000)) + .medArbeidsforhold(Arbeidsforhold.builder() + .medOrgnr("999999999") + .medAktivitet(Aktivitet.ARBEIDSTAKERINNTEKT).build()).build()) + .build()).build(); + + Beregningsgrunnlag.builder() + .medBeregningsgrunnlagPeriode(periode) + .medGrunnbeløp(BigDecimal.valueOf(100_000)); + + var evaluate = new SjekkOmTotaltBGForArbeidsforholdStørreEnnGrenseverdiUtenFordeling().evaluate(periode); + + assertThat(evaluate.result()).isEqualTo(Resultat.JA); + } + + @Test + void skal_gi_resultat_NEI_for_inntektsgrunnlag_under_grenseverdi() { + BeregningsgrunnlagPeriode periode = BeregningsgrunnlagPeriode.builder() + .medPeriode(Periode.of(LocalDate.now(), TIDENES_ENDE)) + .medBeregningsgrunnlagPrStatus(BeregningsgrunnlagPrStatus + .builder() + .medAktivitetStatus(AktivitetStatus.ATFL) + .medArbeidsforhold(BeregningsgrunnlagPrArbeidsforhold.builder() + .medAndelNr(1L) + .medBruttoPrÅr(BigDecimal.valueOf(800_000)) + .medInntektsgrunnlagPrÅr(BigDecimal.valueOf(500_000)) + .medArbeidsforhold(Arbeidsforhold.builder() + .medOrgnr("999999999") + .medAktivitet(Aktivitet.ARBEIDSTAKERINNTEKT).build()).build()) + .build()).build(); + + Beregningsgrunnlag.builder() + .medBeregningsgrunnlagPeriode(periode) + .medGrunnbeløp(BigDecimal.valueOf(100_000)); + + var evaluate = new SjekkOmTotaltBGForArbeidsforholdStørreEnnGrenseverdiUtenFordeling().evaluate(periode); + + assertThat(evaluate.result()).isEqualTo(Resultat.NEI); + } + + @Test + void skal_gi_resultat_NEI_for_inntektsgrunnlag_ikke_satt() { + BeregningsgrunnlagPeriode periode = BeregningsgrunnlagPeriode.builder() + .medPeriode(Periode.of(LocalDate.now(), TIDENES_ENDE)) + .medBeregningsgrunnlagPrStatus(BeregningsgrunnlagPrStatus + .builder() + .medAktivitetStatus(AktivitetStatus.ATFL) + .medArbeidsforhold(BeregningsgrunnlagPrArbeidsforhold.builder() + .medAndelNr(1L) + .medBruttoPrÅr(BigDecimal.valueOf(800_000)) + .medArbeidsforhold(Arbeidsforhold.builder() + .medOrgnr("999999999") + .medAktivitet(Aktivitet.ARBEIDSTAKERINNTEKT).build()).build()) + .build()).build(); + + Beregningsgrunnlag.builder() + .medBeregningsgrunnlagPeriode(periode) + .medGrunnbeløp(BigDecimal.valueOf(100_000)); + + var evaluate = new SjekkOmTotaltBGForArbeidsforholdStørreEnnGrenseverdiUtenFordeling().evaluate(periode); + + assertThat(evaluate.result()).isEqualTo(Resultat.NEI); + } + + @Test + void skal_gi_resultat_NEI_for_inntektsgrunnlag_lik_grenseverdi() { + BeregningsgrunnlagPeriode periode = BeregningsgrunnlagPeriode.builder() + .medPeriode(Periode.of(LocalDate.now(), TIDENES_ENDE)) + .medBeregningsgrunnlagPrStatus(BeregningsgrunnlagPrStatus + .builder() + .medAktivitetStatus(AktivitetStatus.ATFL) + .medArbeidsforhold(BeregningsgrunnlagPrArbeidsforhold.builder() + .medAndelNr(1L) + .medBruttoPrÅr(BigDecimal.valueOf(800_000)) + .medInntektsgrunnlagPrÅr(BigDecimal.valueOf(600_000)) + .medArbeidsforhold(Arbeidsforhold.builder() + .medOrgnr("999999999") + .medAktivitet(Aktivitet.ARBEIDSTAKERINNTEKT).build()).build()) + .build()).build(); + + Beregningsgrunnlag.builder() + .medBeregningsgrunnlagPeriode(periode) + .medGrunnbeløp(BigDecimal.valueOf(100_000)); + + var evaluate = new SjekkOmTotaltBGForArbeidsforholdStørreEnnGrenseverdiUtenFordeling().evaluate(periode); + + assertThat(evaluate.result()).isEqualTo(Resultat.NEI); + } + +} \ No newline at end of file diff --git a/beregningsregler/src/test/java/no/nav/folketrygdloven/beregningsgrunnlag/ytelse/svp/RegelFinnGrenseverdiUtenFordelingTest.java b/beregningsregler/src/test/java/no/nav/folketrygdloven/beregningsgrunnlag/ytelse/svp/RegelFinnGrenseverdiUtenFordelingTest.java index 6e302ff4..a7822427 100644 --- a/beregningsregler/src/test/java/no/nav/folketrygdloven/beregningsgrunnlag/ytelse/svp/RegelFinnGrenseverdiUtenFordelingTest.java +++ b/beregningsregler/src/test/java/no/nav/folketrygdloven/beregningsgrunnlag/ytelse/svp/RegelFinnGrenseverdiUtenFordelingTest.java @@ -10,7 +10,7 @@ import org.junit.jupiter.api.Test; -import no.nav.folketrygdloven.beregningsgrunnlag.grenseverdi.RegelFinnGrenseverdiUtenFordeling; +import no.nav.folketrygdloven.beregningsgrunnlag.grenseverdi.utenfordeling.RegelFinnGrenseverdiUtenFordeling; import no.nav.folketrygdloven.beregningsgrunnlag.regelmodell.AktivitetStatus; import no.nav.folketrygdloven.beregningsgrunnlag.regelmodell.MidlertidigInaktivType; import no.nav.folketrygdloven.beregningsgrunnlag.regelmodell.Periode;