Skip to content

Commit ce54c8e

Browse files
authored
Pleiepenger i livets sluttfase - justerer validering på opptjening (#233)
1 parent 664accd commit ce54c8e

File tree

1 file changed

+28
-22
lines changed

1 file changed

+28
-22
lines changed

soknad/src/main/java/no/nav/k9/søknad/ytelse/pls/v1/PleiepengerLivetsSluttfaseYtelseValidator.java

Lines changed: 28 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import no.nav.fpsak.tidsserie.LocalDateTimeline;
1010
import no.nav.k9.søknad.felles.Feil;
1111
import no.nav.k9.søknad.felles.opptjening.AnnenAktivitet;
12+
import no.nav.k9.søknad.felles.opptjening.Frilanser;
1213
import no.nav.k9.søknad.felles.opptjening.SelvstendigNæringsdrivende;
1314
import no.nav.k9.søknad.felles.type.Periode;
1415
import no.nav.k9.søknad.ytelse.Ytelse;
@@ -31,37 +32,53 @@ public List<Feil> valider(PleipengerLivetsSluttfase søknad) {
3132
feilene.addAll(validerPerioderErLukketOgGyldig(søknad.getBosteder().getPerioderSomSkalSlettes(), "bosteder.perioderSomSkalSlettes"));
3233
feilene.addAll(validerPerioderErLukketOgGyldig(søknad.getUtenlandsopphold().getPerioder(), "utenlandsopphold.perioder"));
3334
feilene.addAll(validerPerioderErLukketOgGyldig(søknad.getUtenlandsopphold().getPerioderSomSkalSlettes(), "utenlandsopphold.perioderSomSkalSlettes"));
34-
validerArbeidstid(søknad, feilene);
35+
validerArbeidstid(søknad);
3536
validerOpptjening(søknad, feilene);
3637
} catch (ValideringsAvbrytendeFeilException valideringsAvbrytendeFeilException) {
3738
feilene.addAll(valideringsAvbrytendeFeilException.getFeilList());
3839
}
3940
return feilene;
4041
}
4142

42-
private void validerArbeidstid(PleipengerLivetsSluttfase søknad, List<Feil> feilene) {
43+
private void validerArbeidstid(PleipengerLivetsSluttfase søknad) throws ValideringsAvbrytendeFeilException {
4344
List<Arbeidstaker> arbeidstakerList = søknad.getArbeidstid().getArbeidstakerList();
4445
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");
4647
}
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"));
4950
}
5051

5152
private void validerOpptjening(PleipengerLivetsSluttfase søknad, List<Feil> feilene) {
5253
List<SelvstendigNæringsdrivende> snAktiviteter = søknad.getOpptjeningAktivitet().getSelvstendigNæringsdrivende();
5354
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");
5556
}
5657

5758
List<AnnenAktivitet> andreAktiviteter = søknad.getOpptjeningAktivitet().getAndreAktiviteter();
5859
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);
6061
}
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);
6175
}
6276

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+
6582
if (!nyFeil.isEmpty()) {
6683
throw new ValideringsAvbrytendeFeilException(nyFeil);
6784
}
@@ -81,23 +98,12 @@ private List<Feil> validerPerioderErLukketOgGyldig(Map<Periode, ?> perioder, Str
8198
return feil;
8299
}
83100

84-
private List<Feil> validerPerioderErLukketOgGyldig(List<Periode> periodeList, String felt) {
101+
private List<Feil> validerPerioderGyldig(Map<Periode, ?> perioder, String felt) {
85102
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));
93104
return feil;
94105
}
95106

96-
private void validerPeriodeErLukketOgGyldig(Periode periode, String felt, List<Feil> feil) {
97-
validerPerioderErLukket(periode, felt, feil);
98-
validerPerioderIkkeErInvertert(periode, felt, feil);
99-
}
100-
101107
private void validerPerioderErLukket(Periode periode, String felt, List<Feil> feil) {
102108
if (periode.getTilOgMed() == null) {
103109
feil.add(lagFeil(felt, "påkrevd", "Til og med (TOM) må være satt."));

0 commit comments

Comments
 (0)