18
18
import no .nav .k9 .søknad .felles .type .Periode ;
19
19
import no .nav .k9 .søknad .ytelse .Ytelse ;
20
20
import no .nav .k9 .søknad .ytelse .YtelseValidator ;
21
- import no .nav .k9 .søknad .ytelse .olp .v1 .kurs .KursPeriodeMedReisetid ;
21
+ import no .nav .k9 .søknad .ytelse .olp .v1 .kurs .Reise ;
22
22
23
23
class OpplæringspengerYtelseValidator extends YtelseValidator {
24
24
@@ -86,7 +86,7 @@ List<Feil> validerOgLeggTilFeilene(Opplæringspenger olp,
86
86
feilene .addAll (validerAtIngenPerioderOverlapperMedTrekkKravPerioder (trekkKravPerioderTidslinje , søknadsperiodeTidslinje , "trekkKravPerioder" ));
87
87
88
88
for (var ytelsePeriode : PerioderMedEndringUtil .getAllePerioderSomMåVæreInnenforSøknadsperiode (olp )) {
89
- if (ytelsePeriode .getPeriodeMap ().keySet ().stream ().anyMatch (Periode ::isTilOgMedFørFraOgMed )){
89
+ if (ytelsePeriode .getPeriodeMap ().keySet ().stream ().anyMatch (Periode ::isTilOgMedFørFraOgMed )) {
90
90
continue ; //fortsette validering med ugyldige perioder gir bare duplikate feil
91
91
}
92
92
var ytelsePeriodeTidsserie = lagTidslinjeOgValider (ytelsePeriode .getPeriodeMap (), ytelsePeriode .getFelt () + ".perioder" , feilene );
@@ -96,7 +96,8 @@ List<Feil> validerOgLeggTilFeilene(Opplæringspenger olp,
96
96
97
97
validerAtYtelsePeriodenErKomplettMedSøknad (søknadsperiodeTidslinje , olp .getUttak ().getPerioder (), "uttak" , feilene );
98
98
99
- validerReisetidMotKursperioden (olp .getKurs ().getKursperioder (), "kurs.kursperioder" , feilene );
99
+ validerReise (olp .getKurs ().getReise (), "kurs.reise" , feilene );
100
+ validerReisetidMotKursperioden (olp .getKurs ().getKursperioder (), olp .getKurs ().getReise (), "kurs.reise" , feilene );
100
101
101
102
return feilene ;
102
103
}
@@ -129,23 +130,28 @@ private List<Feil> validerAtYtelsePerioderErInnenforIntervalForEndring(LocalDate
129
130
.collect (Collectors .toCollection (ArrayList ::new )));
130
131
}
131
132
132
- private void validerReisetidMotKursperioden (List <KursPeriodeMedReisetid > kursperioder , String felt , List <Feil > feil ) {
133
- for (KursPeriodeMedReisetid kursPeriode : kursperioder ) {
134
- if (kursPeriode != null ) {
135
- LocalDate avreise = kursPeriode .getAvreise ();
136
- LocalDate hjemkomst = kursPeriode .getHjemkomst ();
137
- Periode periode = kursPeriode .getPeriode ();
138
-
139
- if (avreise != null && hjemkomst != null && periode != null ) {
140
- if (hjemkomst .isBefore (avreise )) {
141
- feil .add (toFeil (periode , felt , "ugyldigKursPeriode" , "hjemkomst er før avreise: " ));
142
- }
143
- if (avreise .isAfter (periode .getFraOgMed ())) {
144
- feil .add (toFeil (periode , felt , "ugyldigKursPeriode" , "avreise er etter kursstart: " ));
145
- }
146
- if (hjemkomst .isBefore (periode .getTilOgMed ())) {
147
- feil .add (toFeil (periode , felt , "ugyldigKursPeriode" , "hjemkomst er før kursslutt: " ));
148
- }
133
+ private void validerReise (Reise reise , String felt , List <Feil > feilene ) {
134
+ if (reise .isReiserUtenforKursdager ()) {
135
+ if (reise .getReisedager () == null || reise .getReisedager ().isEmpty ()) {
136
+ feilene .add (lagFeil (felt , "påkrevd" , "Reisedager må inneholde minst en dag når reiserUtenforKursdager er satt." ));
137
+ }
138
+ if (reise .getReisedagerBeskrivelse () == null ) {
139
+ feilene .add (lagFeil (felt , "påkrevd" , "Beskrivelse må være satt når reiserUtenforKursdager er satt." ));
140
+ }
141
+ }
142
+ }
143
+
144
+ private void validerReisetidMotKursperioden (List <Periode > kursperioder , Reise reise , String felt , List <Feil > feil ) {
145
+ var reisedager = reise .getReisedager ();
146
+ if (reisedager == null || reisedager .isEmpty ()) {
147
+ return ;
148
+ }
149
+
150
+ // En reisedag må være innenfor en kursperiode
151
+ for (LocalDate reisedag : reisedager ) {
152
+ if (reisedag != null ) {
153
+ if (kursperioder .stream ().noneMatch (kursPeriode -> kursPeriode .inneholder (new Periode (reisedag , reisedag )))) {
154
+ feil .add (lagFeil (felt , "ugyldigReise" , "Reisedagen er ikke innenfor en kursperiode: " + reisedag ));
149
155
}
150
156
}
151
157
}
0 commit comments