diff --git a/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/ytelse/svp/AvkortBGAndelerSomIkkeGjelderArbeidsforholdAndelsmessig.java b/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/AvkortBGAndelerSomIkkeGjelderArbeidsforholdAndelsmessig.java similarity index 98% rename from src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/ytelse/svp/AvkortBGAndelerSomIkkeGjelderArbeidsforholdAndelsmessig.java rename to src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/AvkortBGAndelerSomIkkeGjelderArbeidsforholdAndelsmessig.java index a980cd94..15702acc 100644 --- a/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/ytelse/svp/AvkortBGAndelerSomIkkeGjelderArbeidsforholdAndelsmessig.java +++ b/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/AvkortBGAndelerSomIkkeGjelderArbeidsforholdAndelsmessig.java @@ -1,4 +1,4 @@ -package no.nav.folketrygdloven.beregningsgrunnlag.ytelse.svp; +package no.nav.folketrygdloven.beregningsgrunnlag.grenseverdi; import java.math.BigDecimal; import java.util.Comparator; diff --git a/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/ytelse/svp/AvkortBGAndelerSomIkkeGjelderArbeidsforholdAndelsmessigUtenFordeling.java b/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/AvkortBGAndelerSomIkkeGjelderArbeidsforholdAndelsmessigUtenFordeling.java similarity index 97% rename from src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/ytelse/svp/AvkortBGAndelerSomIkkeGjelderArbeidsforholdAndelsmessigUtenFordeling.java rename to src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/AvkortBGAndelerSomIkkeGjelderArbeidsforholdAndelsmessigUtenFordeling.java index b8b34402..7c03a5a5 100644 --- a/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/ytelse/svp/AvkortBGAndelerSomIkkeGjelderArbeidsforholdAndelsmessigUtenFordeling.java +++ b/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/AvkortBGAndelerSomIkkeGjelderArbeidsforholdAndelsmessigUtenFordeling.java @@ -1,4 +1,4 @@ -package no.nav.folketrygdloven.beregningsgrunnlag.ytelse.svp; +package no.nav.folketrygdloven.beregningsgrunnlag.grenseverdi; import java.math.BigDecimal; import java.util.Comparator; @@ -18,7 +18,7 @@ @RuleDocumentation(AvkortBGAndelerSomIkkeGjelderArbeidsforholdAndelsmessigUtenFordeling.ID) public class AvkortBGAndelerSomIkkeGjelderArbeidsforholdAndelsmessigUtenFordeling extends LeafSpecification { - public static final String ID = "FP_BR 29.8.4"; + 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."; AvkortBGAndelerSomIkkeGjelderArbeidsforholdAndelsmessigUtenFordeling() { diff --git a/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/ytelse/svp/AvkortBGAndelerSomIkkeGjelderArbeidsforholdTil0.java b/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/AvkortBGAndelerSomIkkeGjelderArbeidsforholdTil0.java similarity index 97% rename from src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/ytelse/svp/AvkortBGAndelerSomIkkeGjelderArbeidsforholdTil0.java rename to src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/AvkortBGAndelerSomIkkeGjelderArbeidsforholdTil0.java index 6166e250..a1377476 100644 --- a/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/ytelse/svp/AvkortBGAndelerSomIkkeGjelderArbeidsforholdTil0.java +++ b/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/AvkortBGAndelerSomIkkeGjelderArbeidsforholdTil0.java @@ -1,4 +1,4 @@ -package no.nav.folketrygdloven.beregningsgrunnlag.ytelse.svp; +package no.nav.folketrygdloven.beregningsgrunnlag.grenseverdi; import java.math.BigDecimal; import java.util.HashMap; diff --git a/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/ytelse/svp/FastsettAndelForArbeidsforhold.java b/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/FastsettAndelForArbeidsforhold.java similarity index 97% rename from src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/ytelse/svp/FastsettAndelForArbeidsforhold.java rename to src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/FastsettAndelForArbeidsforhold.java index 6cca3032..59107bcf 100644 --- a/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/ytelse/svp/FastsettAndelForArbeidsforhold.java +++ b/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/FastsettAndelForArbeidsforhold.java @@ -1,4 +1,4 @@ -package no.nav.folketrygdloven.beregningsgrunnlag.ytelse.svp; +package no.nav.folketrygdloven.beregningsgrunnlag.grenseverdi; import java.math.BigDecimal; import java.math.RoundingMode; diff --git a/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/ytelse/svp/FastsettAndelForArbeidsforholdUtenFordeling.java b/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/FastsettAndelForArbeidsforholdUtenFordeling.java similarity index 95% rename from src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/ytelse/svp/FastsettAndelForArbeidsforholdUtenFordeling.java rename to src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/FastsettAndelForArbeidsforholdUtenFordeling.java index 2429c835..32a36e01 100644 --- a/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/ytelse/svp/FastsettAndelForArbeidsforholdUtenFordeling.java +++ b/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/FastsettAndelForArbeidsforholdUtenFordeling.java @@ -1,4 +1,4 @@ -package no.nav.folketrygdloven.beregningsgrunnlag.ytelse.svp; +package no.nav.folketrygdloven.beregningsgrunnlag.grenseverdi; import java.math.BigDecimal; import java.math.RoundingMode; @@ -16,7 +16,7 @@ @RuleDocumentation(FastsettAndelForArbeidsforholdUtenFordeling.ID) class FastsettAndelForArbeidsforholdUtenFordeling extends LeafSpecification { - static final String ID = "FP_BR 29.8.6"; + static final String ID = "FP_BR 29.8.6_uten_fordeling"; static final String BESKRIVELSE = "Fastsett andeleler pr Arbeidsforhold"; FastsettAndelForArbeidsforholdUtenFordeling() { diff --git a/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/ytelse/svp/FastsettAndelForBGAndelerSomGjelderArbeidsforhold.java b/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/FastsettAndelForBGAndelerSomGjelderArbeidsforhold.java similarity index 97% rename from src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/ytelse/svp/FastsettAndelForBGAndelerSomGjelderArbeidsforhold.java rename to src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/FastsettAndelForBGAndelerSomGjelderArbeidsforhold.java index ae2b29a8..e3b2919f 100644 --- a/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/ytelse/svp/FastsettAndelForBGAndelerSomGjelderArbeidsforhold.java +++ b/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/FastsettAndelForBGAndelerSomGjelderArbeidsforhold.java @@ -1,4 +1,4 @@ -package no.nav.folketrygdloven.beregningsgrunnlag.ytelse.svp; +package no.nav.folketrygdloven.beregningsgrunnlag.grenseverdi; import java.math.BigDecimal; import java.util.HashMap; diff --git a/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/ytelse/svp/FastsettAndelForBGAndelerSomGjelderArbeidsforholdUtenFordeling.java b/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/FastsettAndelForBGAndelerSomGjelderArbeidsforholdUtenFordeling.java similarity index 94% rename from src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/ytelse/svp/FastsettAndelForBGAndelerSomGjelderArbeidsforholdUtenFordeling.java rename to src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/FastsettAndelForBGAndelerSomGjelderArbeidsforholdUtenFordeling.java index c35de005..22929f9a 100644 --- a/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/ytelse/svp/FastsettAndelForBGAndelerSomGjelderArbeidsforholdUtenFordeling.java +++ b/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/FastsettAndelForBGAndelerSomGjelderArbeidsforholdUtenFordeling.java @@ -1,4 +1,4 @@ -package no.nav.folketrygdloven.beregningsgrunnlag.ytelse.svp; +package no.nav.folketrygdloven.beregningsgrunnlag.grenseverdi; import java.math.BigDecimal; import java.util.HashMap; @@ -15,7 +15,7 @@ @RuleDocumentation(FastsettAndelForBGAndelerSomGjelderArbeidsforholdUtenFordeling.ID) class FastsettAndelForBGAndelerSomGjelderArbeidsforholdUtenFordeling extends LeafSpecification { - static final String ID = "FP_BR 29.8.10"; + static final String ID = "FP_BR 29.8.10_uten_fordeling"; static final String BESKRIVELSE = "Fastsett brukers andel for alle beregningsgrunnlagsandeler som gjelder arbeidsforhold."; FastsettAndelForBGAndelerSomGjelderArbeidsforholdUtenFordeling() { diff --git a/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/ytelse/svp/FastsettAndelLikBruttoBG.java b/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/FastsettAndelLikBruttoBG.java similarity index 94% rename from src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/ytelse/svp/FastsettAndelLikBruttoBG.java rename to src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/FastsettAndelLikBruttoBG.java index 48066db4..40c9ba9d 100644 --- a/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/ytelse/svp/FastsettAndelLikBruttoBG.java +++ b/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/FastsettAndelLikBruttoBG.java @@ -1,4 +1,4 @@ -package no.nav.folketrygdloven.beregningsgrunnlag.ytelse.svp; +package no.nav.folketrygdloven.beregningsgrunnlag.grenseverdi; import java.math.BigDecimal; @@ -13,7 +13,7 @@ @RuleDocumentation(FastsettAndelLikBruttoBG.ID) public class FastsettAndelLikBruttoBG extends LeafSpecification { - static final String ID = "FP_BR 29.6.2"; + static final String ID = "FP_BR 29.6.2_med_fordeling"; static final String BESKRIVELSE = "Fastsett andel lik brutto bg"; public FastsettAndelLikBruttoBG() { diff --git a/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/ytelse/svp/FastsettAndelLikBruttoBGUtenFordeling.java b/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/FastsettAndelLikBruttoBGUtenFordeling.java similarity index 94% rename from src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/ytelse/svp/FastsettAndelLikBruttoBGUtenFordeling.java rename to src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/FastsettAndelLikBruttoBGUtenFordeling.java index bc8bb3fd..47abe541 100644 --- a/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/ytelse/svp/FastsettAndelLikBruttoBGUtenFordeling.java +++ b/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/FastsettAndelLikBruttoBGUtenFordeling.java @@ -1,4 +1,4 @@ -package no.nav.folketrygdloven.beregningsgrunnlag.ytelse.svp; +package no.nav.folketrygdloven.beregningsgrunnlag.grenseverdi; import java.math.BigDecimal; @@ -13,7 +13,7 @@ @RuleDocumentation(FastsettAndelLikBruttoBGUtenFordeling.ID) public class FastsettAndelLikBruttoBGUtenFordeling extends LeafSpecification { - static final String ID = "FP_BR 29.6.2"; + static final String ID = "FP_BR 29.6.2_uten_fordeling"; static final String BESKRIVELSE = "Fastsett andel lik brutto bg"; public FastsettAndelLikBruttoBGUtenFordeling() { diff --git a/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/ytelse/svp/FinnGrenseverdi.java b/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/FinnGrenseverdi.java similarity index 98% rename from src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/ytelse/svp/FinnGrenseverdi.java rename to src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/FinnGrenseverdi.java index 9ffc7fb1..1b77b703 100644 --- a/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/ytelse/svp/FinnGrenseverdi.java +++ b/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/FinnGrenseverdi.java @@ -1,4 +1,4 @@ -package no.nav.folketrygdloven.beregningsgrunnlag.ytelse.svp; +package no.nav.folketrygdloven.beregningsgrunnlag.grenseverdi; import java.math.BigDecimal; import java.math.RoundingMode; @@ -19,7 +19,7 @@ @RuleDocumentation(FinnGrenseverdi.ID) public class FinnGrenseverdi extends LeafSpecification { - public static final String ID = "FP_BR 6.2"; + public static final String ID = "FP_BR 6.2_med_fordeling"; public static final String BESKRIVELSE = "Finn grenseverdi"; public FinnGrenseverdi() { diff --git a/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/ytelse/svp/FinnGrenseverdiUtenFordeling.java b/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/FinnGrenseverdiUtenFordeling.java similarity index 97% rename from src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/ytelse/svp/FinnGrenseverdiUtenFordeling.java rename to src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/FinnGrenseverdiUtenFordeling.java index 047c9301..e04187b1 100644 --- a/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/ytelse/svp/FinnGrenseverdiUtenFordeling.java +++ b/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/FinnGrenseverdiUtenFordeling.java @@ -1,4 +1,4 @@ -package no.nav.folketrygdloven.beregningsgrunnlag.ytelse.svp; +package no.nav.folketrygdloven.beregningsgrunnlag.grenseverdi; import java.math.BigDecimal; import java.math.RoundingMode; @@ -19,8 +19,8 @@ @RuleDocumentation(FinnGrenseverdiUtenFordeling.ID) public class FinnGrenseverdiUtenFordeling extends LeafSpecification { - public static final String ID = "FP_BR 6.2"; - public static final String BESKRIVELSE = "Finn grenseverdi"; + public static final String ID = "FP_BR 6.2_uten_fordeling"; + public static final String BESKRIVELSE = "Finn grenseverdi uten fordeling"; public FinnGrenseverdiUtenFordeling() { super(ID, BESKRIVELSE); diff --git a/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/ytelse/svp/RegelFastsettAndelBGOver6G.java b/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/RegelFastsettAndelBGOver6G.java similarity index 96% rename from src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/ytelse/svp/RegelFastsettAndelBGOver6G.java rename to src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/RegelFastsettAndelBGOver6G.java index 4bfac12d..d675f488 100644 --- a/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/ytelse/svp/RegelFastsettAndelBGOver6G.java +++ b/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/RegelFastsettAndelBGOver6G.java @@ -1,15 +1,15 @@ -package no.nav.folketrygdloven.beregningsgrunnlag.ytelse.svp; +package no.nav.folketrygdloven.beregningsgrunnlag.grenseverdi; import no.nav.folketrygdloven.beregningsgrunnlag.regelmodell.AktivitetStatus; -import no.nav.folketrygdloven.beregningsgrunnlag.regelmodell.fastsett.Fastsatt; import no.nav.folketrygdloven.beregningsgrunnlag.regelmodell.fastsett.BeregningsgrunnlagPeriode; import no.nav.folketrygdloven.beregningsgrunnlag.regelmodell.fastsett.BeregningsgrunnlagPrStatus; +import no.nav.folketrygdloven.beregningsgrunnlag.regelmodell.fastsett.Fastsatt; import no.nav.fpsak.nare.RuleService; import no.nav.fpsak.nare.Ruleset; import no.nav.fpsak.nare.specification.Specification; public class RegelFastsettAndelBGOver6G implements RuleService { - public static final String ID = "FP_BR_29.8"; + public static final String ID = "FP_BR_29.8_med_fordeling"; public static final String BESKRIVELSE = "Fastsett avkortet BG over 6G når refusjon under 6G"; private BeregningsgrunnlagPeriode regelmodell; diff --git a/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/RegelFastsettAndelBGOver6GUtenFordeling.java b/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/RegelFastsettAndelBGOver6GUtenFordeling.java new file mode 100644 index 00000000..d98c9da2 --- /dev/null +++ b/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/RegelFastsettAndelBGOver6GUtenFordeling.java @@ -0,0 +1,61 @@ +package no.nav.folketrygdloven.beregningsgrunnlag.grenseverdi; + +import no.nav.folketrygdloven.beregningsgrunnlag.regelmodell.AktivitetStatus; +import no.nav.folketrygdloven.beregningsgrunnlag.regelmodell.fastsett.BeregningsgrunnlagPeriode; +import no.nav.folketrygdloven.beregningsgrunnlag.regelmodell.fastsett.BeregningsgrunnlagPrStatus; +import no.nav.folketrygdloven.beregningsgrunnlag.regelmodell.fastsett.Fastsatt; +import no.nav.fpsak.nare.RuleService; +import no.nav.fpsak.nare.Ruleset; +import no.nav.fpsak.nare.specification.Specification; + +public 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; + + public RegelFastsettAndelBGOver6GUtenFordeling(BeregningsgrunnlagPeriode regelmodell) { + super(); + this.regelmodell = regelmodell; + } + + @SuppressWarnings("unchecked") + @Override + public Specification getSpecification() { + BeregningsgrunnlagPrStatus bgpsa = regelmodell.getBeregningsgrunnlagPrStatus(AktivitetStatus.ATFL); + + Ruleset rs = new Ruleset<>(); + + //FP_BR_29.8.10 For alle beregningsgrunnlagsandeler som gjelder arbeidsforhold, fastsett Brukers Andel + //FP_BR_29.8.4 Avkort alle beregningsgrunnlagsander som ikke gjelder arbeidsforhold andelsmessig + Specification avkortAndelerAndelsmessigOgFastsettBrukersAndel = rs.beregningsRegel( + AvkortBGAndelerSomIkkeGjelderArbeidsforholdAndelsmessigUtenFordeling.ID, + AvkortBGAndelerSomIkkeGjelderArbeidsforholdAndelsmessigUtenFordeling.BESKRIVELSE, + new AvkortBGAndelerSomIkkeGjelderArbeidsforholdAndelsmessigUtenFordeling(), + new FastsettAndelForBGAndelerSomGjelderArbeidsforholdUtenFordeling()); + + Specification avkortAndelerSomIkkegjelderAFtil0 = new Fastsatt(); + + if (bgpsa != null) { + Specification fastsettAndelerForArbeidsforhold = rs.beregningsRegel( + FastsettAndelForArbeidsforholdUtenFordeling.ID, + FastsettAndelForArbeidsforholdUtenFordeling.BESKRIVELSE, + new FastsettAndelForArbeidsforholdUtenFordeling(), + new Fastsatt()); + + //FP_BR_29.8.3 Avkort alle beregningsgrunnlagsandeler som ikke gjelder arbeidsforhold til 0 + avkortAndelerSomIkkegjelderAFtil0 = rs.beregningsRegel( + AvkortBGAndelerSomIkkeGjelderArbeidsforholdTil0.ID, + AvkortBGAndelerSomIkkeGjelderArbeidsforholdTil0.BESKRIVELSE, + new AvkortBGAndelerSomIkkeGjelderArbeidsforholdTil0(), + fastsettAndelerForArbeidsforhold); + } + + //FP_BR_29.8.2 Er totalt BG for beregningsgrunnlagsandeler fra arbeidsforhold > 6G? + Specification erTotaltBGFraArbeidforholdStørreEnn6G = rs.beregningHvisRegel(new SjekkOmTotaltBGForArbeidsforholdStørreEnnGrenseverdi(), + avkortAndelerSomIkkegjelderAFtil0, avkortAndelerAndelsmessigOgFastsettBrukersAndel); + + + return erTotaltBGFraArbeidforholdStørreEnn6G; + } + +} diff --git a/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/RegelFinnGrenseverdi.java b/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/RegelFinnGrenseverdi.java new file mode 100644 index 00000000..108fbe1e --- /dev/null +++ b/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/RegelFinnGrenseverdi.java @@ -0,0 +1,38 @@ +package no.nav.folketrygdloven.beregningsgrunnlag.grenseverdi; + +import no.nav.folketrygdloven.beregningsgrunnlag.regelmodell.fastsett.BeregningsgrunnlagPeriode; +import no.nav.folketrygdloven.regelmodelloversetter.EksportRegel; +import no.nav.fpsak.nare.Ruleset; +import no.nav.fpsak.nare.evaluation.Evaluation; +import no.nav.fpsak.nare.specification.Specification; + +public class RegelFinnGrenseverdi implements EksportRegel { + + public static final String ID = "FP_BR_29"; + + private BeregningsgrunnlagPeriode regelmodell; + + public RegelFinnGrenseverdi(BeregningsgrunnlagPeriode regelmodell) { + this.regelmodell = regelmodell; + } + + @Override + public Evaluation evaluer(BeregningsgrunnlagPeriode regelmodell) { + return getSpecification().evaluate(regelmodell); + } + + @SuppressWarnings("unchecked") + @Override + public Specification getSpecification() { + Ruleset rs = new Ruleset<>(); + + + // FP_BR_29.1 Skal finne grenseverdi uten å ta hensyn til fordeling? + Specification skalfinneGrenseverdiUtenFordeling = rs.beregningHvisRegel( + new SkalFinneGrenseverdiUtenFordeling(), + new RegelFinnGrenseverdiUtenFordeling(regelmodell).getSpecification(), + new RegelFinnGrenseverdiMedFordeling(regelmodell).getSpecification()); + + return skalfinneGrenseverdiUtenFordeling; + } +} diff --git a/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/ytelse/svp/RegelFinnGrenseverdi.java b/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/RegelFinnGrenseverdiMedFordeling.java similarity index 85% rename from src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/ytelse/svp/RegelFinnGrenseverdi.java rename to src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/RegelFinnGrenseverdiMedFordeling.java index 3a6bb3a1..4c844d09 100644 --- a/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/ytelse/svp/RegelFinnGrenseverdi.java +++ b/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/RegelFinnGrenseverdiMedFordeling.java @@ -1,4 +1,4 @@ -package no.nav.folketrygdloven.beregningsgrunnlag.ytelse.svp; +package no.nav.folketrygdloven.beregningsgrunnlag.grenseverdi; import no.nav.folketrygdloven.beregningsgrunnlag.fastsette.SjekkBeregningsgrunnlagStørreEnnGrenseverdi; import no.nav.folketrygdloven.beregningsgrunnlag.regelmodell.fastsett.BeregningsgrunnlagPeriode; @@ -8,13 +8,13 @@ import no.nav.fpsak.nare.evaluation.Evaluation; import no.nav.fpsak.nare.specification.Specification; -public class RegelFinnGrenseverdi implements EksportRegel { +public class RegelFinnGrenseverdiMedFordeling implements EksportRegel { - public static final String ID = "FP_BR_29"; + public static final String ID = "FP_BR_29_med_fordeling"; private BeregningsgrunnlagPeriode regelmodell; - public RegelFinnGrenseverdi(BeregningsgrunnlagPeriode regelmodell) { + public RegelFinnGrenseverdiMedFordeling(BeregningsgrunnlagPeriode regelmodell) { this.regelmodell = regelmodell; } @@ -41,7 +41,7 @@ public Specification getSpecification() { // Fastsett uten avkorting Specification fastsettUtenAvkorting = rs.beregningsRegel( - "FP_BR_29.6", + "FP_BR_29.6_med_fordeling", "Fastsett BG uten avkorting", new FastsettAndelLikBruttoBG(), fastsettGrenseverdi); diff --git a/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/RegelFinnGrenseverdiUtenFordeling.java b/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/RegelFinnGrenseverdiUtenFordeling.java new file mode 100644 index 00000000..ce5407f6 --- /dev/null +++ b/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/RegelFinnGrenseverdiUtenFordeling.java @@ -0,0 +1,57 @@ +package no.nav.folketrygdloven.beregningsgrunnlag.grenseverdi; + +import no.nav.folketrygdloven.beregningsgrunnlag.fastsette.SjekkBeregningsgrunnlagStørreEnnGrenseverdi; +import no.nav.folketrygdloven.beregningsgrunnlag.regelmodell.fastsett.BeregningsgrunnlagPeriode; +import no.nav.folketrygdloven.beregningsgrunnlag.regelmodell.fastsett.Fastsatt; +import no.nav.folketrygdloven.regelmodelloversetter.EksportRegel; +import no.nav.fpsak.nare.Ruleset; +import no.nav.fpsak.nare.evaluation.Evaluation; +import no.nav.fpsak.nare.specification.Specification; + +public class RegelFinnGrenseverdiUtenFordeling implements EksportRegel { + + public static final String ID = "FP_BR_29_uten_fordeling"; + + private BeregningsgrunnlagPeriode regelmodell; + + public RegelFinnGrenseverdiUtenFordeling(BeregningsgrunnlagPeriode regelmodell) { + this.regelmodell = regelmodell; + } + + @Override + public Evaluation evaluer(BeregningsgrunnlagPeriode regelmodell) { + return getSpecification().evaluate(regelmodell); + } + + @SuppressWarnings("unchecked") + @Override + public Specification getSpecification() { + Ruleset rs = new Ruleset<>(); + + // Fastsett grenseverdi for fastsetting av beregningsgrunnlag + Specification fastsettGrenseverdi = rs.beregningsRegel(FinnGrenseverdiUtenFordeling.ID, FinnGrenseverdiUtenFordeling.BESKRIVELSE, + new FinnGrenseverdiUtenFordeling(), new Fastsatt()); + + // Fastsett avkortet BG + Specification fastsettAvkortet = rs.beregningsRegel( + RegelFastsettAndelBGOver6GUtenFordeling.ID, + RegelFastsettAndelBGOver6GUtenFordeling.BESKRIVELSE, + new RegelFastsettAndelBGOver6GUtenFordeling(regelmodell).getSpecification(), + fastsettGrenseverdi); + + // Fastsett uten avkorting + Specification fastsettUtenAvkorting = rs.beregningsRegel( + "FP_BR_29.6_uten_fordeling", + "Fastsett BG uten avkorting", + new FastsettAndelLikBruttoBGUtenFordeling(), + fastsettGrenseverdi); + + // FP_BR_29.4 4. Brutto beregnings-grunnlag totalt > 6G? + Specification beregnEventuellAvkorting = rs.beregningHvisRegel( + new SjekkBeregningsgrunnlagStørreEnnGrenseverdi(), + fastsettAvkortet, + fastsettUtenAvkorting); + + return beregnEventuellAvkorting; + } +} diff --git "a/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/ytelse/svp/SjekkOmTotaltBGForArbeidsforholdSt\303\270rreEnnGrenseverdi.java" "b/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/SjekkOmTotaltBGForArbeidsforholdSt\303\270rreEnnGrenseverdi.java" similarity index 91% rename from "src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/ytelse/svp/SjekkOmTotaltBGForArbeidsforholdSt\303\270rreEnnGrenseverdi.java" rename to "src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/SjekkOmTotaltBGForArbeidsforholdSt\303\270rreEnnGrenseverdi.java" index ea7f29b9..c46830eb 100644 --- "a/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/ytelse/svp/SjekkOmTotaltBGForArbeidsforholdSt\303\270rreEnnGrenseverdi.java" +++ "b/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/SjekkOmTotaltBGForArbeidsforholdSt\303\270rreEnnGrenseverdi.java" @@ -1,4 +1,4 @@ -package no.nav.folketrygdloven.beregningsgrunnlag.ytelse.svp; +package no.nav.folketrygdloven.beregningsgrunnlag.grenseverdi; import java.math.BigDecimal; @@ -25,7 +25,7 @@ class SjekkOmTotaltBGForArbeidsforholdStørreEnnGrenseverdi extends LeafSpecific public Evaluation evaluate(BeregningsgrunnlagPeriode grunnlag) { BigDecimal grenseverdi = grunnlag.getGrenseverdi(); BeregningsgrunnlagPrStatus atfl = grunnlag.getBeregningsgrunnlagPrStatus(AktivitetStatus.ATFL); - BigDecimal totaltBG = atfl == null ? BigDecimal.ZERO : atfl.getArbeidsforholdIkkeFrilans().stream() + BigDecimal totaltBG = atfl == null ? BigDecimal.ZERO : atfl.getArbeidsforholdIkkeFrilans().stream() .map(af -> af.getBruttoInkludertNaturalytelsePrÅr().orElse(BigDecimal.ZERO)) .reduce(BigDecimal.ZERO, BigDecimal::add); SingleEvaluation resultat = totaltBG.compareTo(grenseverdi) > 0 ? ja() : nei(); diff --git a/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/SkalFinneGrenseverdiUtenFordeling.java b/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/SkalFinneGrenseverdiUtenFordeling.java new file mode 100644 index 00000000..72ffe4fe --- /dev/null +++ b/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/SkalFinneGrenseverdiUtenFordeling.java @@ -0,0 +1,40 @@ +package no.nav.folketrygdloven.beregningsgrunnlag.grenseverdi; + +import no.nav.folketrygdloven.beregningsgrunnlag.regelmodell.fastsett.BeregningsgrunnlagPeriode; +import no.nav.folketrygdloven.beregningsgrunnlag.regelmodell.ytelse.psb.PleiepengerGrunnlagFastsettGrenseverdi; +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(SkalFinneGrenseverdiUtenFordeling.ID) +public class SkalFinneGrenseverdiUtenFordeling extends LeafSpecification { + + public static final String ID = "FP_BR_29.1"; + public static final String BESKRIVELSE = "Skal finne grenseverdi uten å ta hensyn til fordeling?"; + + public SkalFinneGrenseverdiUtenFordeling() { + super(ID, BESKRIVELSE); + } + + @Override + public Evaluation evaluate(BeregningsgrunnlagPeriode grunnlag) { + + if (!grunnlag.getBeregningsgrunnlag().getToggles().isEnabled("GRADERING_MOT_INNTEKT")) { + return nei(); + } + + var ytelsesSpesifiktGrunnlag = grunnlag.getBeregningsgrunnlag().getYtelsesSpesifiktGrunnlag(); + + if (ytelsesSpesifiktGrunnlag instanceof PleiepengerGrunnlagFastsettGrenseverdi pleiepengergrunnlag) { + var startdatoNyeGraderingsregler = pleiepengergrunnlag.getStartdatoNyeGraderingsregler(); + SingleEvaluation resultat = startdatoNyeGraderingsregler == null || grunnlag.getPeriodeFom().isBefore(startdatoNyeGraderingsregler) ? nei() : ja(); + resultat.setEvaluationProperty("startdatoNyeGraderingsregler", startdatoNyeGraderingsregler); + resultat.setEvaluationProperty("periodeFom", grunnlag.getPeriodeFom()); + return resultat; + } else { + return nei(); + } + + } +} diff --git a/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/regelmodell/ytelse/psb/PleiepengerGrunnlagFastsettGrenseverdi.java b/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/regelmodell/ytelse/psb/PleiepengerGrunnlagFastsettGrenseverdi.java new file mode 100644 index 00000000..31adb06a --- /dev/null +++ b/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/regelmodell/ytelse/psb/PleiepengerGrunnlagFastsettGrenseverdi.java @@ -0,0 +1,31 @@ +package no.nav.folketrygdloven.beregningsgrunnlag.regelmodell.ytelse.psb; + +import java.time.LocalDate; + +import no.nav.folketrygdloven.beregningsgrunnlag.regelmodell.fastsett.YtelsesSpesifiktGrunnlag; + +public class PleiepengerGrunnlagFastsettGrenseverdi extends YtelsesSpesifiktGrunnlag { + + private LocalDate startdatoNyeGraderingsregler; + + public PleiepengerGrunnlagFastsettGrenseverdi(String ytelsetype) { + super(ytelsetype); + } + + public static PleiepengerGrunnlagFastsettGrenseverdi forSyktBarn() { + return new PleiepengerGrunnlagFastsettGrenseverdi("PSB"); + } + + public static PleiepengerGrunnlagFastsettGrenseverdi forNærstående() { + return new PleiepengerGrunnlagFastsettGrenseverdi("PPN"); + } + + + public LocalDate getStartdatoNyeGraderingsregler() { + return startdatoNyeGraderingsregler; + } + + public void setStartdatoNyeGraderingsregler(LocalDate startdatoNyeGraderingsregler) { + this.startdatoNyeGraderingsregler = startdatoNyeGraderingsregler; + } +} diff --git a/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/ytelse/svp/RegelFastsettAndelBGOver6GUtenFordeling.java b/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/ytelse/svp/RegelFastsettAndelBGOver6GUtenFordeling.java deleted file mode 100644 index b081ce87..00000000 --- a/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/ytelse/svp/RegelFastsettAndelBGOver6GUtenFordeling.java +++ /dev/null @@ -1,61 +0,0 @@ -package no.nav.folketrygdloven.beregningsgrunnlag.ytelse.svp; - -import no.nav.folketrygdloven.beregningsgrunnlag.regelmodell.AktivitetStatus; -import no.nav.folketrygdloven.beregningsgrunnlag.regelmodell.fastsett.BeregningsgrunnlagPeriode; -import no.nav.folketrygdloven.beregningsgrunnlag.regelmodell.fastsett.BeregningsgrunnlagPrStatus; -import no.nav.folketrygdloven.beregningsgrunnlag.regelmodell.fastsett.Fastsatt; -import no.nav.fpsak.nare.RuleService; -import no.nav.fpsak.nare.Ruleset; -import no.nav.fpsak.nare.specification.Specification; - -public class RegelFastsettAndelBGOver6GUtenFordeling implements RuleService { - public static final String ID = "FP_BR_29.8"; - public static final String BESKRIVELSE = "Fastsett avkortet BG over 6G når refusjon under 6G"; - private BeregningsgrunnlagPeriode regelmodell; - - public RegelFastsettAndelBGOver6GUtenFordeling(BeregningsgrunnlagPeriode regelmodell) { - super(); - this.regelmodell = regelmodell; - } - - @SuppressWarnings("unchecked") - @Override - public Specification getSpecification() { - BeregningsgrunnlagPrStatus bgpsa = regelmodell.getBeregningsgrunnlagPrStatus(AktivitetStatus.ATFL); - - Ruleset rs = new Ruleset<>(); - - //FP_BR_29.8.10 For alle beregningsgrunnlagsandeler som gjelder arbeidsforhold, fastsett Brukers Andel - //FP_BR_29.8.4 Avkort alle beregningsgrunnlagsander som ikke gjelder arbeidsforhold andelsmessig - Specification avkortAndelerAndelsmessigOgFastsettBrukersAndel = rs.beregningsRegel( - AvkortBGAndelerSomIkkeGjelderArbeidsforholdAndelsmessigUtenFordeling.ID, - AvkortBGAndelerSomIkkeGjelderArbeidsforholdAndelsmessigUtenFordeling.BESKRIVELSE, - new AvkortBGAndelerSomIkkeGjelderArbeidsforholdAndelsmessigUtenFordeling(), - new FastsettAndelForBGAndelerSomGjelderArbeidsforholdUtenFordeling()); - - Specification avkortAndelerSomIkkegjelderAFtil0 = new Fastsatt(); - - if (bgpsa != null) { - Specification fastsettAndelerForArbeidsforhold = rs.beregningsRegel( - FastsettAndelForArbeidsforholdUtenFordeling.ID, - FastsettAndelForArbeidsforholdUtenFordeling.BESKRIVELSE, - new FastsettAndelForArbeidsforholdUtenFordeling(), - new Fastsatt()); - - //FP_BR_29.8.3 Avkort alle beregningsgrunnlagsandeler som ikke gjelder arbeidsforhold til 0 - avkortAndelerSomIkkegjelderAFtil0 = rs.beregningsRegel( - AvkortBGAndelerSomIkkeGjelderArbeidsforholdTil0.ID, - AvkortBGAndelerSomIkkeGjelderArbeidsforholdTil0.BESKRIVELSE, - new AvkortBGAndelerSomIkkeGjelderArbeidsforholdTil0(), - fastsettAndelerForArbeidsforhold); - } - - //FP_BR_29.8.2 Er totalt BG for beregningsgrunnlagsandeler fra arbeidsforhold > 6G? - Specification erTotaltBGFraArbeidforholdStørreEnn6G = rs.beregningHvisRegel(new SjekkOmTotaltBGForArbeidsforholdStørreEnnGrenseverdi(), - avkortAndelerSomIkkegjelderAFtil0, avkortAndelerAndelsmessigOgFastsettBrukersAndel); - - - return erTotaltBGFraArbeidforholdStørreEnn6G; - } - -} diff --git a/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/ytelse/svp/RegelFinnGrenseverdiUtenFordeling.java b/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/ytelse/svp/RegelFinnGrenseverdiUtenFordeling.java deleted file mode 100644 index 787cdbfb..00000000 --- a/src/main/java/no/nav/folketrygdloven/beregningsgrunnlag/ytelse/svp/RegelFinnGrenseverdiUtenFordeling.java +++ /dev/null @@ -1,57 +0,0 @@ -package no.nav.folketrygdloven.beregningsgrunnlag.ytelse.svp; - -import no.nav.folketrygdloven.beregningsgrunnlag.fastsette.SjekkBeregningsgrunnlagStørreEnnGrenseverdi; -import no.nav.folketrygdloven.beregningsgrunnlag.regelmodell.fastsett.BeregningsgrunnlagPeriode; -import no.nav.folketrygdloven.beregningsgrunnlag.regelmodell.fastsett.Fastsatt; -import no.nav.folketrygdloven.regelmodelloversetter.EksportRegel; -import no.nav.fpsak.nare.Ruleset; -import no.nav.fpsak.nare.evaluation.Evaluation; -import no.nav.fpsak.nare.specification.Specification; - -public class RegelFinnGrenseverdiUtenFordeling implements EksportRegel { - - public static final String ID = "FP_BR_29_uten_fordeling"; - - private BeregningsgrunnlagPeriode regelmodell; - - public RegelFinnGrenseverdiUtenFordeling(BeregningsgrunnlagPeriode regelmodell) { - this.regelmodell = regelmodell; - } - - @Override - public Evaluation evaluer(BeregningsgrunnlagPeriode regelmodell) { - return getSpecification().evaluate(regelmodell); - } - - @SuppressWarnings("unchecked") - @Override - public Specification getSpecification() { - Ruleset rs = new Ruleset<>(); - - // Fastsett grenseverdi for fastsetting av beregningsgrunnlag - Specification fastsettGrenseverdi = rs.beregningsRegel(FinnGrenseverdiUtenFordeling.ID, FinnGrenseverdiUtenFordeling.BESKRIVELSE, - new FinnGrenseverdiUtenFordeling(), new Fastsatt()); - - // Fastsett avkortet BG - Specification fastsettAvkortet = rs.beregningsRegel( - RegelFastsettAndelBGOver6GUtenFordeling.ID, - RegelFastsettAndelBGOver6GUtenFordeling.BESKRIVELSE, - new RegelFastsettAndelBGOver6GUtenFordeling(regelmodell).getSpecification(), - fastsettGrenseverdi); - - // Fastsett uten avkorting - Specification fastsettUtenAvkorting = rs.beregningsRegel( - "FP_BR_29.6", - "Fastsett BG uten avkorting", - new FastsettAndelLikBruttoBGUtenFordeling(), - fastsettGrenseverdi); - - // FP_BR_29.4 4. Brutto beregnings-grunnlag totalt > 6G? - Specification beregnEventuellAvkorting = rs.beregningHvisRegel( - new SjekkBeregningsgrunnlagStørreEnnGrenseverdi(), - fastsettAvkortet, - fastsettUtenAvkorting); - - return beregnEventuellAvkorting; - } -} diff --git a/src/main/java/no/nav/folketrygdloven/regelmodelloversetter/KalkulusRegler.java b/src/main/java/no/nav/folketrygdloven/regelmodelloversetter/KalkulusRegler.java index fabcac7a..59ec9f96 100644 --- a/src/main/java/no/nav/folketrygdloven/regelmodelloversetter/KalkulusRegler.java +++ b/src/main/java/no/nav/folketrygdloven/regelmodelloversetter/KalkulusRegler.java @@ -6,6 +6,7 @@ import no.nav.folketrygdloven.beregningsgrunnlag.foreslå.RegelForeslåBeregningsgrunnlag; import no.nav.folketrygdloven.beregningsgrunnlag.foreslå.frisinn.RegelForeslåBeregningsgrunnlagFRISINN; import no.nav.folketrygdloven.beregningsgrunnlag.fortsettForeslå.RegelFortsettForeslåBeregningsgrunnlag; +import no.nav.folketrygdloven.beregningsgrunnlag.grenseverdi.RegelFinnGrenseverdi; import no.nav.folketrygdloven.beregningsgrunnlag.perioder.gradering.FastsettPerioderGraderingRegel; import no.nav.folketrygdloven.beregningsgrunnlag.perioder.naturalytelse.FastsettPerioderNaturalytelseRegel; import no.nav.folketrygdloven.beregningsgrunnlag.perioder.refusjon.FastsettPerioderRefusjonRegel; @@ -20,8 +21,6 @@ import no.nav.folketrygdloven.beregningsgrunnlag.vurder.frisinn.RegelVurderBeregningsgrunnlagFRISINN; import no.nav.folketrygdloven.beregningsgrunnlag.ytelse.frisinn.RegelFinnGrenseverdiFRISINN; import no.nav.folketrygdloven.beregningsgrunnlag.ytelse.frisinn.RegelFullføreBeregningsgrunnlagFRISINN; -import no.nav.folketrygdloven.beregningsgrunnlag.ytelse.svp.RegelFinnGrenseverdi; -import no.nav.folketrygdloven.beregningsgrunnlag.ytelse.svp.RegelFinnGrenseverdiUtenFordeling; import no.nav.folketrygdloven.besteberegning.RegelForeslåBesteberegning; import no.nav.folketrygdloven.besteberegning.modell.BesteberegningRegelmodell; import no.nav.folketrygdloven.skjæringstidspunkt.regel.RegelFastsettSkjæringstidspunkt; @@ -89,10 +88,6 @@ public static RegelResultat finnGrenseverdi(no.nav.folketrygdloven.beregningsgru return new RegelFinnGrenseverdi(input).evaluerRegel(input); } - public static RegelResultat finnGrenseverdiUtenFordeling(no.nav.folketrygdloven.beregningsgrunnlag.regelmodell.fastsett.BeregningsgrunnlagPeriode input) { - return new RegelFinnGrenseverdiUtenFordeling(input).evaluerRegel(input); - } - public static RegelResultat fullføreBeregningsgrunnlag(no.nav.folketrygdloven.beregningsgrunnlag.regelmodell.fastsett.BeregningsgrunnlagPeriode input) { return new RegelFullføreBeregningsgrunnlag(input).evaluerRegel(input); } diff --git a/src/test/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/SkalFinneGrenseverdiUtenFordelingTest.java b/src/test/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/SkalFinneGrenseverdiUtenFordelingTest.java new file mode 100644 index 00000000..820dfaad --- /dev/null +++ b/src/test/java/no/nav/folketrygdloven/beregningsgrunnlag/grenseverdi/SkalFinneGrenseverdiUtenFordelingTest.java @@ -0,0 +1,183 @@ +package no.nav.folketrygdloven.beregningsgrunnlag.grenseverdi; + +import static no.nav.folketrygdloven.beregningsgrunnlag.util.DateUtil.TIDENES_ENDE; +import static org.assertj.core.api.AssertionsForClassTypes.assertThat; + +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.folketrygdloven.beregningsgrunnlag.regelmodell.ytelse.psb.PleiepengerGrunnlagFastsettGrenseverdi; +import no.nav.fpsak.nare.evaluation.Resultat; + +class SkalFinneGrenseverdiUtenFordelingTest { + + @Test + void skal_finne_grenseverdi_med_fordeling_dersom_toggle_er_av() { + + + 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)) + .medArbeidsforhold(Arbeidsforhold.builder() + .medOrgnr("123456789") + .medAktivitet(Aktivitet.ARBEIDSTAKERINNTEKT).build()).build()) + .build()).build(); + + Beregningsgrunnlag.builder() + .leggTilToggle("GRADERING_MOT_INNTEKT", false) + .medBeregningsgrunnlagPeriode(periode) + .medYtelsesSpesifiktGrunnlag(PleiepengerGrunnlagFastsettGrenseverdi.forSyktBarn()) + .medGrunnbeløp(BigDecimal.valueOf(100_000)); + + + //Act + var evaluate = new SkalFinneGrenseverdiUtenFordeling().evaluate(periode); + + assertThat(evaluate.result()).isEqualTo(Resultat.NEI); + + } + + + @Test + void skal_finne_grenseverdi_med_fordeling_dersom_toggle_er_på_og_ikke_pleiepenger() { + + 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)) + .medArbeidsforhold(Arbeidsforhold.builder() + .medOrgnr("123456789") + .medAktivitet(Aktivitet.ARBEIDSTAKERINNTEKT).build()).build()) + .build()).build(); + + Beregningsgrunnlag.builder() + .leggTilToggle("GRADERING_MOT_INNTEKT", true) + .medBeregningsgrunnlagPeriode(periode) + .medGrunnbeløp(BigDecimal.valueOf(100_000)); + + + //Act + var evaluate = new SkalFinneGrenseverdiUtenFordeling().evaluate(periode); + + assertThat(evaluate.result()).isEqualTo(Resultat.NEI); + + } + + + @Test + void skal_finne_grenseverdi_med_fordeling_dersom_toggle_er_på_og_fom_dato_før_dato_for_nye_regler() { + + BeregningsgrunnlagPeriode periode = BeregningsgrunnlagPeriode.builder() + .medPeriode(Periode.of(LocalDate.now(), LocalDate.now().plusDays(9))) + .medBeregningsgrunnlagPrStatus(BeregningsgrunnlagPrStatus + .builder() + .medAktivitetStatus(AktivitetStatus.ATFL) + .medArbeidsforhold(BeregningsgrunnlagPrArbeidsforhold.builder() + .medAndelNr(1L) + .medBruttoPrÅr(BigDecimal.valueOf(100_000)) + .medArbeidsforhold(Arbeidsforhold.builder() + .medOrgnr("123456789") + .medAktivitet(Aktivitet.ARBEIDSTAKERINNTEKT).build()).build()) + .build()).build(); + + var ytelsesSpesifiktGrunnlag = PleiepengerGrunnlagFastsettGrenseverdi.forSyktBarn(); + ytelsesSpesifiktGrunnlag.setStartdatoNyeGraderingsregler(LocalDate.now().plusDays(10)); + Beregningsgrunnlag.builder() + .leggTilToggle("GRADERING_MOT_INNTEKT", true) + .medBeregningsgrunnlagPeriode(periode) + .medYtelsesSpesifiktGrunnlag(ytelsesSpesifiktGrunnlag) + .medGrunnbeløp(BigDecimal.valueOf(100_000)); + + + //Act + var evaluate = new SkalFinneGrenseverdiUtenFordeling().evaluate(periode); + + assertThat(evaluate.result()).isEqualTo(Resultat.NEI); + + } + + @Test + void skal_finne_grenseverdi_uten_fordeling_dersom_toggle_er_på_og_fom_dato_lik_dato_for_nye_regler() { + + BeregningsgrunnlagPeriode periode = BeregningsgrunnlagPeriode.builder() + .medPeriode(Periode.of(LocalDate.now(), LocalDate.now().plusDays(9))) + .medBeregningsgrunnlagPrStatus(BeregningsgrunnlagPrStatus + .builder() + .medAktivitetStatus(AktivitetStatus.ATFL) + .medArbeidsforhold(BeregningsgrunnlagPrArbeidsforhold.builder() + .medAndelNr(1L) + .medBruttoPrÅr(BigDecimal.valueOf(100_000)) + .medArbeidsforhold(Arbeidsforhold.builder() + .medOrgnr("123456789") + .medAktivitet(Aktivitet.ARBEIDSTAKERINNTEKT).build()).build()) + .build()).build(); + + var ytelsesSpesifiktGrunnlag = PleiepengerGrunnlagFastsettGrenseverdi.forSyktBarn(); + ytelsesSpesifiktGrunnlag.setStartdatoNyeGraderingsregler(LocalDate.now()); + Beregningsgrunnlag.builder() + .leggTilToggle("GRADERING_MOT_INNTEKT", true) + .medBeregningsgrunnlagPeriode(periode) + .medYtelsesSpesifiktGrunnlag(ytelsesSpesifiktGrunnlag) + .medGrunnbeløp(BigDecimal.valueOf(100_000)); + + + //Act + var evaluate = new SkalFinneGrenseverdiUtenFordeling().evaluate(periode); + + assertThat(evaluate.result()).isEqualTo(Resultat.JA); + + } + + @Test + void skal_finne_grenseverdi_uten_fordeling_dersom_toggle_er_på_og_fom_dato_etter_dato_for_nye_regler() { + + BeregningsgrunnlagPeriode periode = BeregningsgrunnlagPeriode.builder() + .medPeriode(Periode.of(LocalDate.now(), LocalDate.now().plusDays(9))) + .medBeregningsgrunnlagPrStatus(BeregningsgrunnlagPrStatus + .builder() + .medAktivitetStatus(AktivitetStatus.ATFL) + .medArbeidsforhold(BeregningsgrunnlagPrArbeidsforhold.builder() + .medAndelNr(1L) + .medBruttoPrÅr(BigDecimal.valueOf(100_000)) + .medArbeidsforhold(Arbeidsforhold.builder() + .medOrgnr("123456789") + .medAktivitet(Aktivitet.ARBEIDSTAKERINNTEKT).build()).build()) + .build()).build(); + + var ytelsesSpesifiktGrunnlag = PleiepengerGrunnlagFastsettGrenseverdi.forSyktBarn(); + ytelsesSpesifiktGrunnlag.setStartdatoNyeGraderingsregler(LocalDate.now().minusDays(1)); + Beregningsgrunnlag.builder() + .leggTilToggle("GRADERING_MOT_INNTEKT", true) + .medBeregningsgrunnlagPeriode(periode) + .medYtelsesSpesifiktGrunnlag(ytelsesSpesifiktGrunnlag) + .medGrunnbeløp(BigDecimal.valueOf(100_000)); + + + //Act + var evaluate = new SkalFinneGrenseverdiUtenFordeling().evaluate(periode); + + assertThat(evaluate.result()).isEqualTo(Resultat.JA); + + } + + +} \ No newline at end of file diff --git a/src/test/java/no/nav/folketrygdloven/beregningsgrunnlag/ytelse/svp/FastsettAndelLikBruttoBGTest.java b/src/test/java/no/nav/folketrygdloven/beregningsgrunnlag/ytelse/svp/FastsettAndelLikBruttoBGTest.java index 0dc7f542..b95c2799 100644 --- a/src/test/java/no/nav/folketrygdloven/beregningsgrunnlag/ytelse/svp/FastsettAndelLikBruttoBGTest.java +++ b/src/test/java/no/nav/folketrygdloven/beregningsgrunnlag/ytelse/svp/FastsettAndelLikBruttoBGTest.java @@ -8,6 +8,7 @@ import org.junit.jupiter.api.Test; +import no.nav.folketrygdloven.beregningsgrunnlag.grenseverdi.FastsettAndelLikBruttoBG; import no.nav.folketrygdloven.beregningsgrunnlag.regelmodell.AktivitetStatus; import no.nav.folketrygdloven.beregningsgrunnlag.regelmodell.Periode; import no.nav.folketrygdloven.beregningsgrunnlag.regelmodell.fastsett.BeregningsgrunnlagPeriode; diff --git a/src/test/java/no/nav/folketrygdloven/beregningsgrunnlag/ytelse/svp/RegelFinnGrenseverdiTest.java b/src/test/java/no/nav/folketrygdloven/beregningsgrunnlag/ytelse/svp/RegelFinnGrenseverdiMedFordelingTest.java similarity index 99% rename from src/test/java/no/nav/folketrygdloven/beregningsgrunnlag/ytelse/svp/RegelFinnGrenseverdiTest.java rename to src/test/java/no/nav/folketrygdloven/beregningsgrunnlag/ytelse/svp/RegelFinnGrenseverdiMedFordelingTest.java index 1bf15890..eff458e4 100644 --- a/src/test/java/no/nav/folketrygdloven/beregningsgrunnlag/ytelse/svp/RegelFinnGrenseverdiTest.java +++ b/src/test/java/no/nav/folketrygdloven/beregningsgrunnlag/ytelse/svp/RegelFinnGrenseverdiMedFordelingTest.java @@ -10,6 +10,7 @@ import org.junit.jupiter.api.Test; +import no.nav.folketrygdloven.beregningsgrunnlag.grenseverdi.RegelFinnGrenseverdiMedFordeling; import no.nav.folketrygdloven.beregningsgrunnlag.regelmodell.AktivitetStatus; import no.nav.folketrygdloven.beregningsgrunnlag.regelmodell.MidlertidigInaktivType; import no.nav.folketrygdloven.beregningsgrunnlag.regelmodell.Periode; @@ -21,7 +22,7 @@ import no.nav.folketrygdloven.beregningsgrunnlag.regelmodell.fastsett.TilkommetInntekt; import no.nav.folketrygdloven.beregningsgrunnlag.regelmodell.grunnlag.inntekt.Arbeidsforhold; -class RegelFinnGrenseverdiTest { +class RegelFinnGrenseverdiMedFordelingTest { public static final String ORGNR = "910"; private static final String ORGNR_2 = "974760673"; @@ -1598,7 +1599,7 @@ void to_arbeidsforhold_under_6G_aktivitetsgrad_lavere_enn_utbetalingsgrad() { private RegelResultat kjørRegel(BeregningsgrunnlagPeriode periode) { - return new RegelFinnGrenseverdi(periode).evaluerRegel(periode); + return new RegelFinnGrenseverdiMedFordeling(periode).evaluerRegel(periode); } private void leggTilArbeidsforhold(BeregningsgrunnlagPeriode periode, diff --git a/src/test/java/no/nav/folketrygdloven/beregningsgrunnlag/ytelse/svp/RegelFinnGrenseverdiUtenFordelingTest.java b/src/test/java/no/nav/folketrygdloven/beregningsgrunnlag/ytelse/svp/RegelFinnGrenseverdiMedFordelingUtenFordelingTest.java similarity index 99% rename from src/test/java/no/nav/folketrygdloven/beregningsgrunnlag/ytelse/svp/RegelFinnGrenseverdiUtenFordelingTest.java rename to src/test/java/no/nav/folketrygdloven/beregningsgrunnlag/ytelse/svp/RegelFinnGrenseverdiMedFordelingUtenFordelingTest.java index 58e937e8..1b96dff2 100644 --- a/src/test/java/no/nav/folketrygdloven/beregningsgrunnlag/ytelse/svp/RegelFinnGrenseverdiUtenFordelingTest.java +++ b/src/test/java/no/nav/folketrygdloven/beregningsgrunnlag/ytelse/svp/RegelFinnGrenseverdiMedFordelingUtenFordelingTest.java @@ -10,6 +10,7 @@ import org.junit.jupiter.api.Test; +import no.nav.folketrygdloven.beregningsgrunnlag.grenseverdi.RegelFinnGrenseverdiUtenFordeling; import no.nav.folketrygdloven.beregningsgrunnlag.regelmodell.AktivitetStatus; import no.nav.folketrygdloven.beregningsgrunnlag.regelmodell.MidlertidigInaktivType; import no.nav.folketrygdloven.beregningsgrunnlag.regelmodell.Periode; @@ -21,7 +22,7 @@ import no.nav.folketrygdloven.beregningsgrunnlag.regelmodell.fastsett.TilkommetInntekt; import no.nav.folketrygdloven.beregningsgrunnlag.regelmodell.grunnlag.inntekt.Arbeidsforhold; -class RegelFinnGrenseverdiUtenFordelingTest { +class RegelFinnGrenseverdiMedFordelingUtenFordelingTest { public static final String ORGNR = "910"; private static final String ORGNR_2 = "974760673"; diff --git "a/src/test/java/no/nav/folketrygdloven/beregningsgrunnlag/ytelse/svp/RegelFullf\303\270reBeregningsgrunnlagTest.java" "b/src/test/java/no/nav/folketrygdloven/beregningsgrunnlag/ytelse/svp/RegelFullf\303\270reBeregningsgrunnlagTest.java" index da9b242d..37eddf46 100644 --- "a/src/test/java/no/nav/folketrygdloven/beregningsgrunnlag/ytelse/svp/RegelFullf\303\270reBeregningsgrunnlagTest.java" +++ "b/src/test/java/no/nav/folketrygdloven/beregningsgrunnlag/ytelse/svp/RegelFullf\303\270reBeregningsgrunnlagTest.java" @@ -16,6 +16,7 @@ import org.junit.jupiter.api.Test; import no.nav.folketrygdloven.beregningsgrunnlag.fastsette.RegelFullføreBeregningsgrunnlag; +import no.nav.folketrygdloven.beregningsgrunnlag.grenseverdi.RegelFinnGrenseverdiMedFordeling; import no.nav.folketrygdloven.beregningsgrunnlag.regelmodell.AktivitetStatus; import no.nav.folketrygdloven.beregningsgrunnlag.regelmodell.Periode; import no.nav.folketrygdloven.beregningsgrunnlag.regelmodell.RegelResultat; @@ -773,7 +774,7 @@ private BeregningsgrunnlagPrArbeidsforhold lagBeregningsgrunnlagPrArbeidsforhold private RegelResultat kjørRegelFinnGrenseverdi(BeregningsgrunnlagPeriode grunnlag) { - return new RegelFinnGrenseverdi(grunnlag).evaluerRegel(grunnlag); + return new RegelFinnGrenseverdiMedFordeling(grunnlag).evaluerRegel(grunnlag); } private RegelResultat kjørRegelFullførBeregningsgrunnlag(BeregningsgrunnlagPeriode grunnlag) {