9
9
import no .nav .fpsak .tidsserie .LocalDateTimeline ;
10
10
import no .nav .k9 .søknad .felles .Feil ;
11
11
import no .nav .k9 .søknad .felles .opptjening .AnnenAktivitet ;
12
+ import no .nav .k9 .søknad .felles .opptjening .Frilanser ;
12
13
import no .nav .k9 .søknad .felles .opptjening .SelvstendigNæringsdrivende ;
13
14
import no .nav .k9 .søknad .felles .type .Periode ;
14
15
import no .nav .k9 .søknad .ytelse .Ytelse ;
@@ -31,37 +32,53 @@ public List<Feil> valider(PleipengerLivetsSluttfase søknad) {
31
32
feilene .addAll (validerPerioderErLukketOgGyldig (søknad .getBosteder ().getPerioderSomSkalSlettes (), "bosteder.perioderSomSkalSlettes" ));
32
33
feilene .addAll (validerPerioderErLukketOgGyldig (søknad .getUtenlandsopphold ().getPerioder (), "utenlandsopphold.perioder" ));
33
34
feilene .addAll (validerPerioderErLukketOgGyldig (søknad .getUtenlandsopphold ().getPerioderSomSkalSlettes (), "utenlandsopphold.perioderSomSkalSlettes" ));
34
- validerArbeidstid (søknad , feilene );
35
+ validerArbeidstid (søknad );
35
36
validerOpptjening (søknad , feilene );
36
37
} catch (ValideringsAvbrytendeFeilException valideringsAvbrytendeFeilException ) {
37
38
feilene .addAll (valideringsAvbrytendeFeilException .getFeilList ());
38
39
}
39
40
return feilene ;
40
41
}
41
42
42
- private void validerArbeidstid (PleipengerLivetsSluttfase søknad , List < Feil > feilene ) {
43
+ private void validerArbeidstid (PleipengerLivetsSluttfase søknad ) throws ValideringsAvbrytendeFeilException {
43
44
List <Arbeidstaker > arbeidstakerList = søknad .getArbeidstid ().getArbeidstakerList ();
44
45
for (int i = 0 ; i < arbeidstakerList .size (); i ++) {
45
- lagTidslinjeOgValider (arbeidstakerList .get (i ).getArbeidstidInfo ().getPerioder (), "arbeidstid.arbeidstakerList[" + i + "].perioder" , feilene );
46
+ lagTidslinjeOgValider (arbeidstakerList .get (i ).getArbeidstidInfo ().getPerioder (), "arbeidstid.arbeidstakerList[" + i + "].perioder" );
46
47
}
47
- søknad .getArbeidstid ().getSelvstendigNæringsdrivendeArbeidstidInfo ().ifPresent (sn -> lagTidslinjeOgValider (sn .getPerioder (), "arbeidstid.selvstendigNæringsdrivendeArbeidstidInfo" , feilene ));
48
- søknad .getArbeidstid ().getFrilanserArbeidstidInfo ().ifPresent (fl -> lagTidslinjeOgValider (fl .getPerioder (), "arbeidstid.frilanserArbeidstidInfo" , feilene ));
48
+ søknad .getArbeidstid ().getSelvstendigNæringsdrivendeArbeidstidInfo ().ifPresent (sn -> lagTidslinjeOgValider (sn .getPerioder (), "arbeidstid.selvstendigNæringsdrivendeArbeidstidInfo" ));
49
+ søknad .getArbeidstid ().getFrilanserArbeidstidInfo ().ifPresent (fl -> lagTidslinjeOgValider (fl .getPerioder (), "arbeidstid.frilanserArbeidstidInfo" ));
49
50
}
50
51
51
52
private void validerOpptjening (PleipengerLivetsSluttfase søknad , List <Feil > feilene ) {
52
53
List <SelvstendigNæringsdrivende > snAktiviteter = søknad .getOpptjeningAktivitet ().getSelvstendigNæringsdrivende ();
53
54
for (int i = 0 ; i < snAktiviteter .size (); i ++) {
54
- lagTidslinjeOgValider (snAktiviteter .get (i ).getPerioder (), "opptjeningAktivitet.selvstendigNæringsdrivende[" + i + "].perioder" , feilene );
55
+ lagTidslinjeMedStøtteForÅpenPeriodeOgValider (snAktiviteter .get (i ).getPerioder (), "opptjeningAktivitet.selvstendigNæringsdrivende[" + i + "].perioder" );
55
56
}
56
57
57
58
List <AnnenAktivitet > andreAktiviteter = søknad .getOpptjeningAktivitet ().getAndreAktiviteter ();
58
59
for (int i = 0 ; i < andreAktiviteter .size (); i ++) {
59
- validerPeriodeErLukketOgGyldig (andreAktiviteter .get (i ).getPeriode (), "opptjeningAktivitet.andreAktiviteter[" + i + "].perioder" , feilene );
60
+ validerPerioderIkkeErInvertert (andreAktiviteter .get (i ).getPeriode (), "opptjeningAktivitet.andreAktiviteter[" + i + "].perioder" , feilene );
60
61
}
62
+ Frilanser fl = søknad .getOpptjeningAktivitet ().getFrilanser ();
63
+ if (fl != null ) {
64
+ validerPerioderIkkeErInvertert (new Periode (fl .getStartdato (), fl .getSluttdato ()), "opptjeningAktivitet.frilanser.startdato/sluttdato" , feilene );
65
+ }
66
+
67
+ }
68
+
69
+ private LocalDateTimeline <Boolean > lagTidslinjeMedStøtteForÅpenPeriodeOgValider (Map <Periode , ?> periodeMap , String felt ) throws ValideringsAvbrytendeFeilException {
70
+ return lagTidslinjeOgValider (periodeMap , felt , true );
71
+ }
72
+
73
+ private LocalDateTimeline <Boolean > lagTidslinjeOgValider (Map <Periode , ?> periodeMap , String felt ) throws ValideringsAvbrytendeFeilException {
74
+ return lagTidslinjeOgValider (periodeMap , felt , false );
61
75
}
62
76
63
- private LocalDateTimeline <Boolean > lagTidslinjeOgValider (Map <Periode , ?> periodeMap , String felt , List <Feil > feil ) throws ValideringsAvbrytendeFeilException {
64
- var nyFeil = validerPerioderErLukketOgGyldig (periodeMap , felt );
77
+ private LocalDateTimeline <Boolean > lagTidslinjeOgValider (Map <Periode , ?> periodeMap , String felt , boolean godtaÅpenPeriode ) throws ValideringsAvbrytendeFeilException {
78
+ var nyFeil = godtaÅpenPeriode
79
+ ? validerPerioderGyldig (periodeMap , felt )
80
+ : validerPerioderErLukketOgGyldig (periodeMap , felt );
81
+
65
82
if (!nyFeil .isEmpty ()) {
66
83
throw new ValideringsAvbrytendeFeilException (nyFeil );
67
84
}
@@ -81,23 +98,12 @@ private List<Feil> validerPerioderErLukketOgGyldig(Map<Periode, ?> perioder, Str
81
98
return feil ;
82
99
}
83
100
84
- private List <Feil > validerPerioderErLukketOgGyldig ( List <Periode > periodeList , String felt ) {
101
+ private List <Feil > validerPerioderGyldig ( Map <Periode , ?> perioder , String felt ) {
85
102
var feil = new ArrayList <Feil >();
86
- for (int i = 0 ; i < periodeList .size (); i ++) {
87
- var periode = periodeList .get (i );
88
- if (periode != null ) {
89
- validerPerioderErLukket (periode , felt + "[" + i + "]" , feil );
90
- validerPerioderIkkeErInvertert (periode , felt + "[" + i + "]" , feil );
91
- }
92
- }
103
+ perioder .keySet ().forEach (p -> validerPerioderIkkeErInvertert (p , felt + "['" + p + "']" , feil ));
93
104
return feil ;
94
105
}
95
106
96
- private void validerPeriodeErLukketOgGyldig (Periode periode , String felt , List <Feil > feil ) {
97
- validerPerioderErLukket (periode , felt , feil );
98
- validerPerioderIkkeErInvertert (periode , felt , feil );
99
- }
100
-
101
107
private void validerPerioderErLukket (Periode periode , String felt , List <Feil > feil ) {
102
108
if (periode .getTilOgMed () == null ) {
103
109
feil .add (lagFeil (felt , "påkrevd" , "Til og med (TOM) må være satt." ));
0 commit comments