Skip to content

Commit eb2ab1c

Browse files
authored
OpptjeningAktivitet kan settes til null. Gjer det mulig å ignorere opplysninger om opptjening (#284)
1 parent a90c59f commit eb2ab1c

File tree

5 files changed

+63
-13
lines changed

5 files changed

+63
-13
lines changed

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -161,6 +161,11 @@ public PleipengerLivetsSluttfase medOpptjeningAktivitet(OpptjeningAktivitet oppt
161161
return this;
162162
}
163163

164+
public PleipengerLivetsSluttfase ignorerOpplysningerOmOpptjening() {
165+
this.opptjeningAktivitet = null;
166+
return this;
167+
}
168+
164169
public PleipengerLivetsSluttfase medBosteder(Bosteder bosteder) {
165170
this.bosteder = Objects.requireNonNull(bosteder, "bosteder");
166171
return this;

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

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import java.util.Optional;
99

1010
import javax.validation.Valid;
11+
import javax.validation.constraints.AssertTrue;
1112
import javax.validation.constraints.NotNull;
1213

1314
import com.fasterxml.jackson.annotation.JsonAutoDetect;
@@ -55,8 +56,7 @@ public class PleiepengerSyktBarn implements Ytelse {
5556
private List<Periode> trekkKravPerioder = new ArrayList<>();
5657

5758
@Valid
58-
@JsonProperty(value = "opptjeningAktivitet", required = true)
59-
@NotNull
59+
@JsonProperty(value = "opptjeningAktivitet")
6060
private OpptjeningAktivitet opptjeningAktivitet = new OpptjeningAktivitet();
6161

6262
@Valid
@@ -204,6 +204,11 @@ public PleiepengerSyktBarn medOpptjeningAktivitet(OpptjeningAktivitet arbeidAkti
204204
return this;
205205
}
206206

207+
public PleiepengerSyktBarn ignorerOpplysningerOmOpptjening() {
208+
this.opptjeningAktivitet = null;
209+
return this;
210+
}
211+
207212
public Optional<DataBruktTilUtledning> getSøknadInfo() {
208213
return Optional.ofNullable(dataBruktTilUtledning);
209214
}
@@ -319,4 +324,13 @@ public Type getType() {
319324
public YtelseValidator getValidator() {
320325
return new PleiepengerSyktBarnYtelseValidator();
321326
}
327+
328+
329+
@AssertTrue
330+
public boolean skalHaOpplysningOmOpptjeningVedNyPeriode() {
331+
if (søknadsperiode != null && !søknadsperiode.isEmpty()) {
332+
return opptjeningAktivitet != null;
333+
}
334+
return true;
335+
}
322336
}

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

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -44,18 +44,18 @@ public void forsikreValidert(Ytelse ytelse) {
4444

4545
public void forsikreValidert(Ytelse ytelse, List<Periode> gyldigeEndringsperioder) {
4646
Objects.requireNonNull(gyldigeEndringsperioder, "gyldigeEndringsperioder");
47-
47+
4848
List<Feil> feil = validerMedGyldigEndringsperodeHvisDenFinnes(ytelse, gyldigeEndringsperioder);
4949
if (!feil.isEmpty()) {
5050
throw new ValideringsFeil(feil);
5151
}
5252
}
53-
53+
5454
List<Feil> validerMedGyldigEndringsperodeHvisDenFinnes(Ytelse ytelse,
5555
List<Periode> gyldigeEndringsperioder) {
56-
56+
5757
Objects.requireNonNull(gyldigeEndringsperioder, "gyldigeEndringsperioder");
58-
58+
5959
var psb = (PleiepengerSyktBarn) ytelse;
6060
var feilene = new ArrayList<Feil>();
6161

@@ -74,12 +74,16 @@ List<Feil> validerOgLeggTilFeilene(PleiepengerSyktBarn psb,
7474

7575
validerLovligEndring(psb, gyldigeEndringsperioder, feilene);
7676

77+
if (!psb.skalHaOpplysningOmOpptjeningVedNyPeriode()) {
78+
feilene.add(new Feil("oppgittOpptjening", "påkrevd", "Opplysninger om opptjening må være oppgitt for ny søknadsperiode."));
79+
}
80+
7781
feilene.addAll(validerPerioderErLukketOgGyldig(psb.getBosteder().getPerioder(), "bosteder.perioder"));
7882
feilene.addAll(validerPerioderErLukketOgGyldig(psb.getUtenlandsopphold().getPerioder(), "utenlandsopphold.perioder"));
79-
83+
8084
final LocalDateTimeline<Boolean> søknadsperiodeTidslinje = lagTidslinjeOgValider(psb.getSøknadsperiodeList(), "søknadsperiode.perioder", feilene);
8185
final LocalDateTimeline<Boolean> intervalForEndringTidslinje;
82-
86+
8387

8488
final LocalDateTimeline<Boolean> gyldigEndringsperiodeTidslinje = lagTidslinjeOgValider(gyldigeEndringsperioder, "gyldigeEndringsperioder.perioder", feilene);
8589
intervalForEndringTidslinje = søknadsperiodeTidslinje.union(gyldigEndringsperiodeTidslinje, StandardCombinators::coalesceLeftHandSide);
@@ -98,7 +102,7 @@ List<Feil> validerOgLeggTilFeilene(PleiepengerSyktBarn psb,
98102
}
99103

100104
validerAtYtelsePeriodenErKomplettMedSøknad(søknadsperiodeTidslinje, psb.getUttak().getPerioder(), "uttak", feilene);
101-
105+
102106
return feilene;
103107
}
104108

soknad/src/test/java/no/nav/k9/søknad/ytelse/psb/v1/EndringTest.java

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -194,7 +194,7 @@ public void endringsperioderIkkeInneholdeDagerSomErUtenforGyldigIntervalOgIkkeEr
194194
feilInneholder(feil, "ytelse.uttak.perioder", "ugyldigPeriode");
195195
feilInneholder(feil, "ytelse.arbeidstid.arbeidstakerList[0].perioder", "ugyldigPeriode");
196196
}
197-
197+
198198
@Test
199199
public void kunDokumentklassifiseringSkalFungere() {
200200
var gyldigIntervalForEndring = List.of(new Periode(LocalDate.now(), LocalDate.now().plusWeeks(2)));
@@ -205,6 +205,19 @@ public void kunDokumentklassifiseringSkalFungere() {
205205
verifyIngenFeil(søknad, gyldigIntervalForEndring);
206206
}
207207

208+
@Test
209+
public void komplettEndringssøknadIgnorererOpplysningOmOpptjening() {
210+
var gyldigEndringsInterval = new Periode(LocalDate.now().minusMonths(2), LocalDate.now().plusWeeks(3));
211+
var endringsperiode = new Periode(LocalDate.now().minusWeeks(2), LocalDate.now().plusWeeks(3));
212+
213+
var psb = komplettYtelseMedEndring(endringsperiode);
214+
psb.ignorerOpplysningerOmOpptjening();
215+
var søknad = SøknadEksempel.søknad(psb);
216+
217+
verifyIngenFeil(søknad, List.of(gyldigEndringsInterval));
218+
}
219+
220+
208221
private void assertEndringsperioderIJson(PleiepengerSyktBarn ytelse) {
209222
var endringsperioder = new ArrayList<Periode>();
210223
try {

soknad/src/test/java/no/nav/k9/søknad/ytelse/psb/v1/SøknadTest.java

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ class SøknadTest {
4646
public void minimumSøknadHarIngenValideringsFeil() {
4747
verifyIngenFeil(MINIMUM_SØKNAD);
4848
}
49-
49+
5050
@Test
5151
public void mottattDatoKanIkkeVæreIFremtiden() {
5252
final Periode søknadsperiode = new Periode(LocalDate.now(), LocalDate.now().plusMonths(2));
@@ -56,6 +56,20 @@ class SøknadTest {
5656
verifyHarFeil(søknad);
5757
}
5858

59+
@Test
60+
public void oppgittOpptjeningMåVæreSattForNySøknad() {
61+
var søknadsperiode = new Periode(LocalDate.now(), LocalDate.now().plusWeeks(4));
62+
var utelands = new Periode(LocalDate.now().minusYears(1), LocalDate.now());
63+
var bosteder = new Periode(LocalDate.now().minusYears(1), LocalDate.now().plusWeeks(4));
64+
var lovbestemtferie = new Periode(LocalDate.now().plusWeeks(3), LocalDate.now().plusWeeks(4));
65+
var søknad = YtelseEksempel.komplettYtelseMedSøknadsperiode(søknadsperiode, lovbestemtferie, utelands, bosteder);
66+
søknad.ignorerOpplysningerOmOpptjening();
67+
68+
assertThat(søknad.skalHaOpplysningOmOpptjeningVedNyPeriode()).isFalse();
69+
var feil = verifyHarFeil(søknad);
70+
feilInneholder(feil, new Feil("oppgittOpptjening", "påkrevd", "Opplysninger om opptjening må være oppgitt for ny søknadsperiode." ));
71+
}
72+
5973
@Test
6074
public void barnKanIkkeVæreSøker() {
6175
var søknadsperiode = new Periode(LocalDate.now(), LocalDate.now().plusWeeks(4));
@@ -155,7 +169,7 @@ public void bostederKanIkkeHaInvertertePerioder() {
155169
var feil = verifyHarFeil(søknad, List.of());
156170
feilInneholder(feil, "missingArgument");
157171
}
158-
172+
159173
@Test
160174
public void søknadLagerRiktigFeilmeldingPathForNullFeil() {
161175
var søknadsperiode = new Periode(LocalDate.now().minusWeeks(2), LocalDate.now().plusWeeks(2));
@@ -176,7 +190,7 @@ public void bostederKanIkkeHaInvertertePerioder() {
176190

177191
//TODO legge på getSøknadsperioder test
178192

179-
193+
180194

181195

182196
}

0 commit comments

Comments
 (0)