Skip to content

Commit 5b7d0f2

Browse files
fix: utvider ytelse med søknadsperiode (#86)
1 parent 094bcdf commit 5b7d0f2

File tree

4 files changed

+43
-17
lines changed

4 files changed

+43
-17
lines changed

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

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414

1515
@JsonIgnoreProperties(ignoreUnknown = true)
1616
@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.NONE, getterVisibility = JsonAutoDetect.Visibility.NONE, setterVisibility = JsonAutoDetect.Visibility.NONE, isGetterVisibility = JsonAutoDetect.Visibility.NONE, creatorVisibility = JsonAutoDetect.Visibility.NONE)
17-
public class FraværPeriode {
17+
public class FraværPeriode implements Comparable<FraværPeriode> {
1818

1919
@Valid
2020
@JsonProperty("periode")
@@ -50,6 +50,11 @@ public int hashCode() {
5050
return Objects.hash(periode, duration);
5151
}
5252

53+
@Override
54+
public int compareTo(FraværPeriode b) {
55+
return this.getPeriode().compareTo(b.getPeriode());
56+
}
57+
5358
@Override
5459
public String toString() {
5560
return "FraværPeriode{" +

soknad/src/main/java/no/nav/k9/søknad/ytelse/Ytelse.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
import com.fasterxml.jackson.annotation.JsonTypeInfo;
88

9+
import no.nav.k9.søknad.felles.type.Periode;
910
import no.nav.k9.søknad.felles.type.Person;
1011

1112
@Valid
@@ -36,4 +37,6 @@ public String kode() {
3637
return kode;
3738
}
3839
}
40+
41+
Periode getSøknadsperiode();
3942
}

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

Lines changed: 33 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,30 @@
11
package no.nav.k9.søknad.ytelse.omsorgspenger.v1;
22

3-
import com.fasterxml.jackson.annotation.*;
3+
import java.util.ArrayList;
4+
import java.util.List;
5+
6+
import javax.validation.Valid;
7+
import javax.validation.constraints.NotNull;
8+
import javax.validation.constraints.Size;
9+
10+
import com.fasterxml.jackson.annotation.JsonAutoDetect;
11+
import com.fasterxml.jackson.annotation.JsonCreator;
12+
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
13+
import com.fasterxml.jackson.annotation.JsonProperty;
14+
import com.fasterxml.jackson.annotation.JsonTypeName;
15+
416
import no.nav.k9.søknad.PeriodeValidator;
517
import no.nav.k9.søknad.felles.Feil;
618
import no.nav.k9.søknad.felles.aktivitet.ArbeidAktivitet;
719
import no.nav.k9.søknad.felles.fravær.FraværPeriode;
820
import no.nav.k9.søknad.felles.personopplysninger.Barn;
921
import no.nav.k9.søknad.felles.personopplysninger.Bosteder;
1022
import no.nav.k9.søknad.felles.personopplysninger.Utenlandsopphold;
23+
import no.nav.k9.søknad.felles.type.Periode;
1124
import no.nav.k9.søknad.felles.type.Person;
1225
import no.nav.k9.søknad.ytelse.Ytelse;
1326
import no.nav.k9.søknad.ytelse.YtelseValidator;
1427

15-
import javax.validation.Valid;
16-
import javax.validation.constraints.NotNull;
17-
import javax.validation.constraints.Size;
18-
import java.util.ArrayList;
19-
import java.util.List;
20-
2128
@JsonIgnoreProperties(ignoreUnknown = true)
2229
@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.NONE, getterVisibility = JsonAutoDetect.Visibility.NONE, setterVisibility = JsonAutoDetect.Visibility.NONE, isGetterVisibility = JsonAutoDetect.Visibility.NONE, creatorVisibility = JsonAutoDetect.Visibility.NONE)
2330
@JsonTypeName(Ytelse.OMSORGSPENGER_UTBETALING)
@@ -39,13 +46,13 @@ public class OmsorgspengerUtbetaling implements Ytelse {
3946
@Valid
4047
@JsonProperty(value = "utenlandsopphold")
4148
private Utenlandsopphold utenlandsopphold;
42-
49+
4350
@Valid
4451
@NotNull
45-
@Size(min = 1, message="Minst 1 fraværsperiode må oppgis")
52+
@Size(min = 1, message = "Minst 1 fraværsperiode må oppgis")
4653
@JsonProperty(value = "fraværsperioder", required = true)
4754
private final List<FraværPeriode> fraværsperioder;
48-
55+
4956
@JsonCreator
5057
public OmsorgspengerUtbetaling(@JsonProperty("fosterbarn") @Valid List<Barn> fosterbarn,
5158
@JsonProperty(value = "aktivitet", required = true) @Valid @NotNull ArbeidAktivitet opptjening,
@@ -70,6 +77,14 @@ public ArbeidAktivitet getAktivitet() {
7077
return fraværsperioder;
7178
}
7279

80+
/** har ikke egen søknadsperiode for omsorgspenger, men angir på bakggrunn av angitte fraværsperioder. */
81+
@Override
82+
public Periode getSøknadsperiode() {
83+
var fom = fraværsperioder.stream().min(FraværPeriode::compareTo).orElseThrow().getPeriode().getFraOgMed();
84+
var tom = fraværsperioder.stream().max(FraværPeriode::compareTo).orElseThrow().getPeriode().getTilOgMed();
85+
return new Periode(fom, tom);
86+
}
87+
7388
@Override
7489
public Type getType() {
7590
return Type.OMSORGSPENGER_UTBETALING;
@@ -79,25 +94,27 @@ public Type getType() {
7994
public List<Person> getBerørtePersoner() {
8095
return List.copyOf(fosterbarn);
8196
}
82-
97+
8398
@Override
8499
public YtelseValidator getValidator() {
85100
return new OmsorgspengerUtbetalingValidator();
86101
}
87102

88-
@Size(max=0, message="${validatedValue}")
103+
@Size(max = 0, message = "${validatedValue}")
89104
private List<Feil> validerAngittUtenlandsopphold() {
90-
if (utenlandsopphold == null) List.of();
105+
if (utenlandsopphold == null)
106+
List.of();
91107
return new PeriodeValidator().validerIkkeTillattOverlapp(utenlandsopphold.perioder, "utenlandsopphold.perioder");
92108
}
93109

94-
@Size(max=0, message="${validatedValue}")
110+
@Size(max = 0, message = "${validatedValue}")
95111
private List<Feil> validerAngittBosteder() {
96-
if (bosteder == null) return List.of();
112+
if (bosteder == null)
113+
return List.of();
97114
return new PeriodeValidator().validerIkkeTillattOverlapp(bosteder.perioder, "bosteder.perioder");
98115
}
99116

100-
@Size(max=0, message="${validatedValue}")
117+
@Size(max = 0, message = "${validatedValue}")
101118
private List<Feil> getValiderAngittFosterbarn() {
102119
var barn = this.fosterbarn;
103120
if (barn == null || barn.isEmpty())

soknad/src/main/java/no/nav/k9/søknad/ytelse/psb/v1/PleiepengerSyktBarn.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,7 @@ public void setBarn(Barn barn) {
139139
this.barn = barn;
140140
}
141141

142+
@Override
142143
public Periode getSøknadsperiode() {
143144
return søknadsperiode;
144145
}

0 commit comments

Comments
 (0)