Skip to content

Commit bb536c7

Browse files
authored
Flytter fraværskorrigering IM inn under ytelse for OmsorgspengerUtbetaling (#208)
Gjenbruker patternet for delvis søknadsinnhold som også anvendes av PSB
1 parent 2ff42ce commit bb536c7

File tree

8 files changed

+331
-439
lines changed

8 files changed

+331
-439
lines changed

soknad/src/main/java/no/nav/k9/søknad/felles/fravær/FraværPeriode.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
import java.util.stream.Collectors;
77

88
import javax.validation.Valid;
9-
import javax.validation.constraints.NotNull;
109
import javax.validation.constraints.Size;
1110

1211
import com.fasterxml.jackson.annotation.JsonAutoDetect;
@@ -27,15 +26,15 @@ public class FraværPeriode implements Comparable<FraværPeriode> {
2726
@JsonProperty("duration")
2827
private final Duration duration;
2928

30-
@NotNull
29+
@Valid
3130
@JsonProperty(value = "årsak", required = true)
3231
private final FraværÅrsak årsak;
3332

3433
@Valid
3534
@JsonProperty(value = "søknadÅrsak")
3635
private SøknadÅrsak søknadÅrsak;
3736

38-
@NotNull
37+
@Valid
3938
@Size(min = 1, max = 2)
4039
@JsonProperty(value = "aktivitetFravær", required = true)
4140
private final List<AktivitetFravær> aktivitetFravær;

soknad/src/main/java/no/nav/k9/søknad/ytelse/omsorgspenger/fraværskorrigering/v1/OmsorgspengerFraværskorrigeringInntektsmelding.java

Lines changed: 0 additions & 90 deletions
This file was deleted.

soknad/src/main/java/no/nav/k9/søknad/ytelse/omsorgspenger/fraværskorrigering/v1/OmsorgspengerFraværskorrigeringInntektsmeldingValidator.java

Lines changed: 0 additions & 80 deletions
This file was deleted.

soknad/src/main/java/no/nav/k9/søknad/ytelse/omsorgspenger/v1/OmsorgspengerUtbetaling.java

Lines changed: 31 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,25 @@
11
package no.nav.k9.søknad.ytelse.omsorgspenger.v1;
22

3+
import java.time.LocalDate;
34
import java.util.ArrayList;
45
import java.util.Collections;
56
import java.util.List;
67

78
import javax.validation.Valid;
8-
import javax.validation.constraints.NotNull;
9-
import javax.validation.constraints.Size;
109

1110
import com.fasterxml.jackson.annotation.JsonAutoDetect;
1211
import com.fasterxml.jackson.annotation.JsonCreator;
1312
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
1413
import com.fasterxml.jackson.annotation.JsonProperty;
1514
import com.fasterxml.jackson.annotation.JsonTypeName;
1615

17-
import no.nav.k9.søknad.PeriodeValidator;
18-
import no.nav.k9.søknad.felles.Feil;
19-
import no.nav.k9.søknad.felles.opptjening.OpptjeningAktivitet;
2016
import no.nav.k9.søknad.felles.fravær.FraværPeriode;
17+
import no.nav.k9.søknad.felles.opptjening.OpptjeningAktivitet;
2118
import no.nav.k9.søknad.felles.personopplysninger.Barn;
2219
import no.nav.k9.søknad.felles.personopplysninger.Bosteder;
2320
import no.nav.k9.søknad.felles.personopplysninger.Utenlandsopphold;
24-
import no.nav.k9.søknad.felles.type.Person;
2521
import no.nav.k9.søknad.felles.type.Periode;
22+
import no.nav.k9.søknad.felles.type.Person;
2623
import no.nav.k9.søknad.ytelse.Ytelse;
2724
import no.nav.k9.søknad.ytelse.YtelseValidator;
2825

@@ -36,8 +33,7 @@ public class OmsorgspengerUtbetaling implements Ytelse {
3633
private List<Barn> fosterbarn;
3734

3835
@Valid
39-
@NotNull
40-
@JsonProperty(value = "aktivitet", required = true)
36+
@JsonProperty(value = "aktivitet")
4137
private OpptjeningAktivitet aktivitet;
4238

4339
@Valid
@@ -49,24 +45,28 @@ public class OmsorgspengerUtbetaling implements Ytelse {
4945
private Utenlandsopphold utenlandsopphold;
5046

5147
@Valid
52-
@NotNull
53-
@Size(min = 1, message = "Minst 1 fraværsperiode må oppgis")
54-
@JsonProperty(value = "fraværsperioder", required = true)
48+
@JsonProperty(value = "fraværsperioder")
5549
private List<FraværPeriode> fraværsperioder;
5650

51+
@Valid
52+
@JsonProperty(value = "fraværsperioderKorrigeringIm")
53+
private List<FraværPeriode> fraværsperioderKorrigeringIm;
54+
5755
public OmsorgspengerUtbetaling() {
5856
//
5957
}
6058

6159
@JsonCreator
6260
public OmsorgspengerUtbetaling(@JsonProperty("fosterbarn") @Valid List<Barn> fosterbarn,
63-
@JsonProperty(value = "aktivitet", required = true) @Valid @NotNull OpptjeningAktivitet opptjening,
64-
@JsonProperty(value = "fraværsperioder", required = true) @Valid @NotNull @Size(min = 1) List<FraværPeriode> fraværsperioder,
65-
@JsonProperty(value = "bosteder") @Valid @NotNull Bosteder bosteder,
66-
@JsonProperty(value = "utenlandsopphold") @Valid @NotNull Utenlandsopphold utenlandsopphold) {
61+
@JsonProperty(value = "aktivitet") @Valid OpptjeningAktivitet opptjening,
62+
@JsonProperty(value = "fraværsperioder") @Valid List<FraværPeriode> fraværsperioder,
63+
@JsonProperty(value = "fraværsperioderKorrigeringIm") @Valid List<FraværPeriode> fraværsperioderKorrigeringIm,
64+
@JsonProperty(value = "bosteder") @Valid Bosteder bosteder,
65+
@JsonProperty(value = "utenlandsopphold") @Valid Utenlandsopphold utenlandsopphold) {
6766
this.fosterbarn = fosterbarn;
6867
this.aktivitet = opptjening;
6968
this.fraværsperioder = fraværsperioder;
69+
this.fraværsperioderKorrigeringIm = fraværsperioderKorrigeringIm;
7070
this.bosteder = bosteder;
7171
this.utenlandsopphold = utenlandsopphold;
7272
}
@@ -83,6 +83,10 @@ public OpptjeningAktivitet getAktivitet() {
8383
return fraværsperioder == null? null: Collections.unmodifiableList(fraværsperioder);
8484
}
8585

86+
public List<FraværPeriode> getFraværsperioderKorrigeringIm() {
87+
return fraværsperioderKorrigeringIm;
88+
}
89+
8690
public Bosteder getBosteder() {
8791
return bosteder;
8892
}
@@ -104,8 +108,18 @@ public Person getAnnenPart() {
104108
/** har ikke egen søknadsperiode for omsorgspenger, men angir på bakggrunn av angitte fraværsperioder. */
105109
@Override
106110
public Periode getSøknadsperiode() {
107-
var fom = fraværsperioder.stream().min(FraværPeriode::compareTo).orElseThrow().getPeriode().getFraOgMed();
108-
var tom = fraværsperioder.stream().max(FraværPeriode::compareTo).orElseThrow().getPeriode().getTilOgMed();
111+
LocalDate fom;
112+
LocalDate tom;
113+
if (fraværsperioder != null && !fraværsperioder.isEmpty()) {
114+
fom = fraværsperioder.stream().min(FraværPeriode::compareTo).orElseThrow().getPeriode().getFraOgMed();
115+
tom = fraværsperioder.stream().max(FraværPeriode::compareTo).orElseThrow().getPeriode().getTilOgMed();
116+
} else if (fraværsperioderKorrigeringIm != null && !fraværsperioderKorrigeringIm.isEmpty()) {
117+
fom = fraværsperioderKorrigeringIm.stream().min(FraværPeriode::compareTo).orElseThrow().getPeriode().getFraOgMed();
118+
tom = fraværsperioderKorrigeringIm.stream().max(FraværPeriode::compareTo).orElseThrow().getPeriode().getTilOgMed();
119+
} else {
120+
// Skal fanges opp av validator
121+
throw new IllegalArgumentException("Må ha fravær fra enten søker eller fra fraværskorrigering av inntektsmelding");
122+
}
109123
return new Periode(fom, tom);
110124
}
111125

@@ -152,38 +166,4 @@ public OmsorgspengerUtbetaling medUtenlandsopphold(Utenlandsopphold utenlandsopp
152166
this.utenlandsopphold = utenlandsopphold;
153167
return this;
154168
}
155-
156-
@Size(max = 0, message = "${validatedValue}")
157-
private List<Feil> validerAngittUtenlandsopphold() {
158-
if (utenlandsopphold == null)
159-
List.of();
160-
return new PeriodeValidator().validerIkkeTillattOverlapp(utenlandsopphold.getPerioder(), "utenlandsopphold.perioder");
161-
}
162-
163-
@Size(max = 0, message = "${validatedValue}")
164-
private List<Feil> validerAngittBosteder() {
165-
if (bosteder == null)
166-
return List.of();
167-
return new PeriodeValidator().validerIkkeTillattOverlapp(bosteder.getPerioder(), "bosteder.perioder");
168-
}
169-
170-
@Size(max = 0, message = "${validatedValue}")
171-
private List<Feil> getValiderAngittFosterbarn() {
172-
var barn = this.fosterbarn;
173-
if (barn == null || barn.isEmpty())
174-
return List.of();
175-
var index = 0;
176-
List<Feil> feil = new ArrayList<>();
177-
for (Barn b : barn) {
178-
if (b.getPersonIdent() == null && b.getFødselsdato() == null) {
179-
feil.add(new Feil("fosterbarn[" + index + "]", "norskIdentitetsnummerEllerFødselsdatoPåkrevd",
180-
"Må sette enten Personnummer/D-nummer på fosterbarn, eller fødselsdato."));
181-
} else if (b.getPersonIdent() != null && b.getFødselsdato() != null) {
182-
feil.add(
183-
new Feil("fosterbarn[" + index + "]", "ikkeEntydigIdPåBarnet", "Må sette enten Personnummer/D-nummer på fosterbarn, eller fødselsdato."));
184-
}
185-
index++;
186-
}
187-
return feil;
188-
}
189169
}

0 commit comments

Comments
 (0)