@@ -38,12 +38,10 @@ private static List<SplittetPeriode> periodiserBeregningsgrunnlag(PeriodeModell
38
38
// lag alle periodene, med riktige andeler
39
39
Map <LocalDate , Set <PeriodeSplittData >> periodeMap = identifisertePeriodeÅrsaker .getPeriodeMap ();
40
40
41
-
42
41
List <Map .Entry <LocalDate , Set <PeriodeSplittData >>> entries = new ArrayList <>(periodeMap .entrySet ());
43
42
44
43
ListIterator <Map .Entry <LocalDate , Set <PeriodeSplittData >>> listIterator = entries .listIterator ();
45
44
46
-
47
45
List <SplittetPeriode > list = new ArrayList <>();
48
46
while (listIterator .hasNext ()) {
49
47
Map .Entry <LocalDate , Set <PeriodeSplittData >> entry = listIterator .next ();
@@ -70,6 +68,12 @@ private static List<SplittetPeriode> periodiserBeregningsgrunnlag(PeriodeModell
70
68
.map (FastsettPeriodeRegel ::mapSplittetAndelFLSN )
71
69
.collect (Collectors .toList ()));
72
70
71
+ nyeAndeler .addAll (input .getEndringerISøktYtelse ().stream ()
72
+ .filter (AndelGradering ::erNyAktivitet )
73
+ .filter (andel -> harUtbetalingIPeriode (andel , periodeFom ))
74
+ .map (gradering -> mapSplittetAndel (gradering , periodeFom ))
75
+ .collect (Collectors .toList ()));
76
+
73
77
LocalDate tom = utledPeriodeTom (entries , listIterator );
74
78
Periode periode = new Periode (periodeFom , tom );
75
79
SplittetPeriode splittetPeriode = SplittetPeriode .builder ()
@@ -83,6 +87,10 @@ private static List<SplittetPeriode> periodiserBeregningsgrunnlag(PeriodeModell
83
87
return list ;
84
88
}
85
89
90
+ private static boolean harUtbetalingIPeriode (AndelGradering andel , LocalDate periodeFom ) {
91
+ return andel .getGraderinger ().stream ().anyMatch (g -> g .getPeriode ().inneholder (periodeFom ) & g .getUtbetalingsprosent ().compareTo (BigDecimal .ZERO ) > 0 );
92
+ }
93
+
86
94
private static LocalDate utledPeriodeTom (List <Map .Entry <LocalDate , Set <PeriodeSplittData >>> entries , ListIterator <Map .Entry <LocalDate , Set <PeriodeSplittData >>> listIterator ) {
87
95
return listIterator .hasNext () ?
88
96
entries .get (listIterator .nextIndex ()).getKey ().minusDays (1 ) :
@@ -114,15 +122,33 @@ private static SplittetAndel mapSplittetAndel(ArbeidsforholdOgInntektsmelding im
114
122
115
123
Periode ansettelsesPeriode = im .getAnsettelsesperiode ();
116
124
117
- return SplittetAndel .builder ()
118
- .medAktivitetstatus (im .getAktivitetStatus ())
119
- .medArbeidsforhold (im .getArbeidsforhold ())
120
- .medRefusjonskravPrÅr (refusjonPrÅr )
121
- .medArbeidsperiodeFom (ansettelsesPeriode .getFom ())
122
- .medArbeidsperiodeTom (ansettelsesPeriode .getTom ())
123
- .build ();
125
+ SplittetAndel .Builder builder = SplittetAndel .builder ()
126
+ .medAktivitetstatus (im .getAktivitetStatus ())
127
+ .medArbeidsforhold (im .getArbeidsforhold ())
128
+ .medRefusjonskravPrÅr (refusjonPrÅr );
129
+ settAnsettelsesPeriodeHvisFinnes (ansettelsesPeriode , builder );
130
+ return builder .build ();
131
+ }
132
+
133
+ private static SplittetAndel mapSplittetAndel (AndelGradering gradering , LocalDate periodeFom ) {
134
+ Periode ansettelsesPeriode = gradering .getArbeidsforhold ().getAnsettelsesPeriode ();
135
+
136
+ SplittetAndel .Builder builder = SplittetAndel .builder ()
137
+ .medAktivitetstatus (gradering .getAktivitetStatus ())
138
+ .medArbeidsforhold (gradering .getArbeidsforhold ());
139
+ settAnsettelsesPeriodeHvisFinnes (ansettelsesPeriode , builder );
140
+ return builder .build ();
124
141
}
125
142
143
+ private static void settAnsettelsesPeriodeHvisFinnes (Periode ansettelsesPeriode , SplittetAndel .Builder builder ) {
144
+ if (ansettelsesPeriode != null ) {
145
+ builder
146
+ .medArbeidsperiodeFom (ansettelsesPeriode .getFom ())
147
+ .medArbeidsperiodeTom (ansettelsesPeriode .getTom ());
148
+ }
149
+ }
150
+
151
+
126
152
private static BeregningsgrunnlagPrArbeidsforhold mapToArbeidsforhold (ArbeidsforholdOgInntektsmelding im , LocalDate fom ) {
127
153
Optional <BigDecimal > refusjonskravPrÅr = im .getGyldigeRefusjonskrav ().stream ()
128
154
.filter (refusjon -> refusjon .getPeriode ().inneholder (fom ))
0 commit comments