Skip to content

Commit

Permalink
Legger til nytt felt ansettelsePeriode til Arbeidstaker (#169)
Browse files Browse the repository at this point in the history
  • Loading branch information
espennav authored Jul 15, 2021
1 parent 03241d2 commit f373338
Show file tree
Hide file tree
Showing 3 changed files with 117 additions and 10 deletions.
Original file line number Diff line number Diff line change
@@ -1,13 +1,18 @@
package no.nav.k9.søknad.felles.opptjening;

import com.fasterxml.jackson.annotation.*;
import static java.util.Collections.emptyList;
import static java.util.Collections.unmodifiableList;

import javax.validation.Valid;
import java.util.ArrayList;
import java.util.List;

import static java.util.Collections.emptyList;
import static java.util.Collections.unmodifiableList;
import javax.validation.Valid;

import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;

@JsonIgnoreProperties(ignoreUnknown = true)
@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.NONE, getterVisibility = JsonAutoDetect.Visibility.NONE, setterVisibility = JsonAutoDetect.Visibility.NONE, isGetterVisibility = JsonAutoDetect.Visibility.NONE, creatorVisibility = JsonAutoDetect.Visibility.NONE)
Expand All @@ -28,17 +33,24 @@ public class OpptjeningAktivitet {
@JsonProperty(value = "arbeidstaker")
private List<Arbeidstaker> arbeidstaker;

@Valid
@JsonInclude(value = JsonInclude.Include.NON_EMPTY)
@JsonProperty(value = "utenlandskeArbeidsforhold")
private List<UtenlandskArbeidsforhold> utenlandskeArbeidsforhold;

public OpptjeningAktivitet() {
//
}

@JsonCreator
public OpptjeningAktivitet(@JsonProperty(value = "arbeidstaker") @Valid List<Arbeidstaker> arbeidstaker,
@JsonProperty(value = "selvstendigNæringsdrivende") List<SelvstendigNæringsdrivende> selvstendigNæringsdrivende,
@JsonProperty(value = "frilanser") Frilanser frilanser) {
@JsonProperty(value = "selvstendigNæringsdrivende") @Valid List<SelvstendigNæringsdrivende> selvstendigNæringsdrivende,
@JsonProperty(value = "frilanser") @Valid Frilanser frilanser,
@JsonProperty(value = "utenlandskeArbeidsforhold") List<UtenlandskArbeidsforhold> utenlandskeArbeidsforhold) {
this.arbeidstaker = arbeidstaker;
this.selvstendigNæringsdrivende = (selvstendigNæringsdrivende == null) ? emptyList() : unmodifiableList(selvstendigNæringsdrivende);
this.frilanser = frilanser;
this.utenlandskeArbeidsforhold = utenlandskeArbeidsforhold;
}

@Deprecated
Expand Down Expand Up @@ -91,11 +103,30 @@ public OpptjeningAktivitet medArbeidstaker(List<Arbeidstaker> arbeidstaker) {
return this;
}

public List<UtenlandskArbeidsforhold> getUtenlandskeArbeidsforhold() {
return utenlandskeArbeidsforhold;
}

public OpptjeningAktivitet medUtenlandskArbeidsforhold(UtenlandskArbeidsforhold utenlandskArbeidsforhold) {
if (this.utenlandskeArbeidsforhold == null)
this.utenlandskeArbeidsforhold = new ArrayList<>();
this.utenlandskeArbeidsforhold.add(utenlandskArbeidsforhold);
return this;
}

public OpptjeningAktivitet medUtenlandskeArbeidsforhold(List<UtenlandskArbeidsforhold> utenlandskeArbeidsforhold) {
if (this.utenlandskeArbeidsforhold == null)
this.utenlandskeArbeidsforhold = new ArrayList<>();
this.utenlandskeArbeidsforhold.addAll(utenlandskeArbeidsforhold);
return this;
}

@Deprecated
public static final class Builder {
private List<SelvstendigNæringsdrivende> selvstendigNæringsdrivende = new ArrayList<>();
private Frilanser frilanser;
private List<Arbeidstaker> arbeidstaker = new ArrayList<>();
private List<UtenlandskArbeidsforhold> utenlandskeArbeidsforhold = new ArrayList<>();

private Builder() {
}
Expand All @@ -115,6 +146,11 @@ public Builder arbeidstaker(List<Arbeidstaker> arbeidstaker) {
return this;
}

public Builder utenlandskeArbeidsforhold(List<UtenlandskArbeidsforhold> utenlandskeArbeidsforhold) {
this.utenlandskeArbeidsforhold.addAll(utenlandskeArbeidsforhold);
return this;
}

public Builder selvstendigNæringsdrivende(SelvstendigNæringsdrivende selvstendigNæringsdrivende) {
this.selvstendigNæringsdrivende.add(selvstendigNæringsdrivende);
return this;
Expand All @@ -126,7 +162,7 @@ public Builder frilanser(Frilanser frilanser) {
}

public OpptjeningAktivitet build() {
return new OpptjeningAktivitet(arbeidstaker, selvstendigNæringsdrivende, frilanser);
return new OpptjeningAktivitet(arbeidstaker, selvstendigNæringsdrivende, frilanser, utenlandskeArbeidsforhold);
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
package no.nav.k9.søknad.felles.opptjening;

import javax.validation.Valid;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;

import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;

import no.nav.k9.søknad.felles.type.Landkode;
import no.nav.k9.søknad.felles.type.Periode;

@JsonIgnoreProperties(ignoreUnknown = true)
@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.NONE, getterVisibility = JsonAutoDetect.Visibility.NONE, setterVisibility = JsonAutoDetect.Visibility.NONE, isGetterVisibility = JsonAutoDetect.Visibility.NONE, creatorVisibility = JsonAutoDetect.Visibility.NONE)

public class UtenlandskArbeidsforhold {

@JsonProperty("ansettelsePeriode")
@Valid
@NotNull
private Periode ansettelsePeriode;

@JsonProperty(value = "land", required = true)
@Valid
@NotNull
private Landkode land;

@JsonProperty(value = "arbeidsgiversnavn")
@Pattern(regexp = "^[\\p{Graph}\\p{Space}\\p{Sc}\\p{L}\\p{M}\\p{N}]+$", message = "'${validatedValue}' matcher ikke tillatt pattern '{regexp}'")
private String arbeidsgiversnavn;


@JsonCreator
public UtenlandskArbeidsforhold(@JsonProperty(value = "ansettelsePeriode") @Valid @NotNull Periode ansettelsePeriode,
@JsonProperty(value = "land") @Valid @NotNull Landkode land,
@JsonProperty(value = "arbeidsgiversnavn") String arbeidsgiversnavn
) {
this.ansettelsePeriode = ansettelsePeriode;
this.land = land;
this.arbeidsgiversnavn = arbeidsgiversnavn;
}

public UtenlandskArbeidsforhold() {
}

public Periode getAnsettelsePeriode() {
return ansettelsePeriode;
}

public void setAnsettelsePeriode(Periode ansettelsePeriode) {
this.ansettelsePeriode = ansettelsePeriode;
}

public Landkode getLand() {
return land;
}

public void setLand(Landkode land) {
this.land = land;
}

public String getArbeidsgiversnavn() {
return arbeidsgiversnavn;
}

public void setArbeidsgiversnavn(String arbeidsgiversnavn) {
this.arbeidsgiversnavn = arbeidsgiversnavn;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,15 @@
import java.nio.file.Path;
import java.util.List;

import no.nav.k9.søknad.felles.fravær.AktivitetFravær;
import org.junit.jupiter.api.Test;

import no.nav.k9.søknad.Søknad;
import no.nav.k9.søknad.ValideringsFeil;
import no.nav.k9.søknad.felles.Feil;
import no.nav.k9.søknad.felles.opptjening.OpptjeningAktivitet;
import no.nav.k9.søknad.felles.fravær.AktivitetFravær;
import no.nav.k9.søknad.felles.fravær.FraværPeriode;
import no.nav.k9.søknad.felles.fravær.FraværÅrsak;
import no.nav.k9.søknad.felles.opptjening.OpptjeningAktivitet;
import no.nav.k9.søknad.ytelse.Ytelse;
import no.nav.k9.søknad.ytelse.YtelseValidator;

Expand Down Expand Up @@ -105,7 +105,7 @@ private static String jsonFromFile(String filename) {
static OmsorgspengerUtbetaling minimumSøknad() {
return new OmsorgspengerUtbetaling(
null,
new OpptjeningAktivitet(null,null, null),
new OpptjeningAktivitet(null,null, null, null),
List.of(
new FraværPeriode(
null,
Expand Down

0 comments on commit f373338

Please sign in to comment.