From e5199aedea3f37bdcca188a06917299d7b34fb22 Mon Sep 17 00:00:00 2001 From: Espen Waaga <36693523+espenwaaga@users.noreply.github.com> Date: Tue, 22 Oct 2024 09:05:37 +0200 Subject: [PATCH] SVP: Forenkling av tilrettelegging (#2730) --- .../innsending/InnsendingConnection.java | 2 +- .../innsending/InnsendingTjeneste.java | 8 +- .../http/RestApiInputValideringDtoTest.java | 4 +- .../InnsendingControllerValidationTest.java | 9 +- .../json/svangerskapspenges\303\270knad.json" | 129 +++++++++----- .../kontrakt/innsending/dto/Innsending.java | 2 + .../innsending/dto/S\303\270knadDto.java" | 4 +- .../Endringss\303\270knadDto.java" | 2 +- ...dringss\303\270knadForeldrepengerDto.java" | 3 +- .../dto/ettersendelse/EttersendelseDto.java | 2 +- .../Foreldrepenges\303\270knadDto.java" | 3 +- .../Svangerskapspenges\303\270knadDto.java" | 38 ----- .../TilretteleggingDto.java | 21 --- ...edlegglistest\303\270rrelseValidator.java" | 2 +- .../innsending/mapper/CommonMapper.java | 4 +- .../mapper/DokumentasjonReferanseMapper.java | 6 +- .../mapper/EndringForeldrepengerMapper.java | 2 +- .../mapper/ForeldrepengerMapper.java | 2 +- .../mapper/SvangerskapspengerMapper.java | 161 ------------------ .../mapper/S\303\270knadMapper.java" | 4 - .../innsending/v2/dto/AnnenInntektDto.java | 13 +- .../innsending/v2/dto/N\303\246ringDto.java" | 18 +- .../innsending/v2/dto/S\303\270knadDto.java" | 1 - .../innsending/{ => v2}/dto/VedleggDto.java | 3 +- .../{ => v2}/dto/VedleggReferanse.java | 2 +- .../Endringss\303\270knadDto.java" | 2 +- ...dringss\303\270knadForeldrepengerDto.java" | 2 +- .../Engangsst\303\270nadDto.java" | 2 +- .../Foreldrepenges\303\270knadDto.java" | 2 +- .../svangerskapspenger/AvtaltFerieDto.java | 4 +- .../Svangerskapspenges\303\270knadDto.java" | 7 +- .../TilretteleggingbehovDto.java | 51 ++++++ .../innsending/v2/mapper/CommonMapper.java | 2 +- .../mapper/EndringForeldrepengerMapper.java | 2 +- .../mapper/Engangsst\303\270nadMapper.java" | 2 +- .../v2/mapper/ForeldrepengerMapper.java | 2 +- .../v2/mapper/SvangerskapspengerMapper.java | 93 +++++++++- .../innsending/dto/EttersendelseDTOTest.java | 1 + .../S\303\270knadDtoJacksonRountripTest.java" | 26 --- ...gglistest\303\270rrelseValidatorTest.java" | 2 +- .../innsending/mapper/DokumentasjonUtil.java | 2 +- .../EttersendelseMappingKonsistensTest.java | 2 +- ...angerskapspengerMappingKonsistensTest.java | 130 -------------- .../Endringss\303\270knadBuilder.java" | 2 +- .../util/builder/ForeldrepengerBuilder.java | 2 +- .../builder/SvangerskapspengerBuilder.java | 76 --------- .../util/builder/TilretteleggingBuilder.java | 80 --------- .../v2/dto/N\303\246ringDtoTest.java" | 37 ++++ .../S\303\270knadDtoJacksonRountripTest.java" | 22 ++- ...angerskapspengerMappingKonsistensTest.java | 120 ++++++++++++- .../Endringss\303\270knadBuilder.java" | 2 +- .../builder/Engangsst\303\270nadBuilder.java" | 2 +- .../util/builder/ForeldrepengerBuilder.java | 2 +- .../builder/SvangerskapspengerBuilder.java | 18 +- .../builder/TilretteleggingBehovBuilder.java | 53 ++++++ .../v2/util/maler/ArbeidsforholdMaler.java | 7 +- pom.xml | 2 +- 57 files changed, 544 insertions(+), 660 deletions(-) delete mode 100644 "kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/dto/svangerskapspenger/Svangerskapspenges\303\270knadDto.java" delete mode 100644 kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/dto/svangerskapspenger/TilretteleggingDto.java delete mode 100644 kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/mapper/SvangerskapspengerMapper.java rename kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/{ => v2}/dto/VedleggDto.java (95%) rename kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/{ => v2}/dto/VedleggReferanse.java (98%) create mode 100644 kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/dto/svangerskapspenger/tilretteleggingbehov/TilretteleggingbehovDto.java delete mode 100644 kontrakt/src/test/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/mapper/SvangerskapspengerMappingKonsistensTest.java delete mode 100644 kontrakt/src/test/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/util/builder/SvangerskapspengerBuilder.java delete mode 100644 kontrakt/src/test/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/util/builder/TilretteleggingBuilder.java create mode 100644 "kontrakt/src/test/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/dto/N\303\246ringDtoTest.java" create mode 100644 kontrakt/src/test/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/util/builder/TilretteleggingBehovBuilder.java diff --git a/domene/src/main/java/no/nav/foreldrepenger/selvbetjening/innsending/InnsendingConnection.java b/domene/src/main/java/no/nav/foreldrepenger/selvbetjening/innsending/InnsendingConnection.java index 13ce7e58f..e96d979f6 100644 --- a/domene/src/main/java/no/nav/foreldrepenger/selvbetjening/innsending/InnsendingConnection.java +++ b/domene/src/main/java/no/nav/foreldrepenger/selvbetjening/innsending/InnsendingConnection.java @@ -26,7 +26,7 @@ import no.nav.foreldrepenger.common.domain.Kvittering; import no.nav.foreldrepenger.selvbetjening.http.AbstractRestConnection; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.Innsending; -import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.VedleggReferanse; +import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.VedleggReferanse; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.ettersendelse.EttersendelseDto; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.SøknadDto; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.endringssøknad.EndringssøknadDto; diff --git a/domene/src/main/java/no/nav/foreldrepenger/selvbetjening/innsending/InnsendingTjeneste.java b/domene/src/main/java/no/nav/foreldrepenger/selvbetjening/innsending/InnsendingTjeneste.java index 46bfdf2bf..ceda7d9fb 100644 --- a/domene/src/main/java/no/nav/foreldrepenger/selvbetjening/innsending/InnsendingTjeneste.java +++ b/domene/src/main/java/no/nav/foreldrepenger/selvbetjening/innsending/InnsendingTjeneste.java @@ -21,14 +21,14 @@ import no.nav.foreldrepenger.selvbetjening.http.RetryAware; import no.nav.foreldrepenger.selvbetjening.innsending.pdf.PdfGenerator; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.Innsending; -import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.VedleggDto; -import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.VedleggReferanse; +import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.VedleggDto; +import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.VedleggReferanse; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.endringssøknad.EndringssøknadForeldrepengerDto; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.ettersendelse.EttersendelseDto; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.ettersendelse.TilbakebetalingUttalelseDto; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.foreldrepenger.ForeldrepengesøknadDto; -import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.svangerskapspenger.SvangerskapspengesøknadDto; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.engangsstønad.EngangsstønadDto; +import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger.SvangerskapspengesøknadDto; import no.nav.foreldrepenger.selvbetjening.mellomlagring.KryptertMellomlagring; import no.nav.foreldrepenger.selvbetjening.mellomlagring.Ytelse; @@ -136,7 +136,7 @@ private Ytelse tilYtelse(Innsending innsending) { if (innsending instanceof EngangsstønadDto) { return Ytelse.ENGANGSSTONAD; } - if (innsending instanceof SvangerskapspengesøknadDto || innsending instanceof no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger.SvangerskapspengesøknadDto) { + if ( innsending instanceof SvangerskapspengesøknadDto) { return Ytelse.SVANGERSKAPSPENGER; } if (innsending instanceof EndringssøknadForeldrepengerDto || innsending instanceof no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.endringssøknad.EndringssøknadForeldrepengerDto) { diff --git a/domene/src/test/java/no/nav/foreldrepenger/selvbetjening/http/RestApiInputValideringDtoTest.java b/domene/src/test/java/no/nav/foreldrepenger/selvbetjening/http/RestApiInputValideringDtoTest.java index 895e23a4f..4ab209b27 100644 --- a/domene/src/test/java/no/nav/foreldrepenger/selvbetjening/http/RestApiInputValideringDtoTest.java +++ b/domene/src/test/java/no/nav/foreldrepenger/selvbetjening/http/RestApiInputValideringDtoTest.java @@ -46,8 +46,8 @@ import jakarta.validation.constraints.Null; import jakarta.validation.constraints.Pattern; import jakarta.validation.constraints.Size; -import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.VedleggDto; -import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.VedleggReferanse; +import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.VedleggDto; +import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.VedleggReferanse; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.validering.VedlegglistestørrelseConstraint; class RestApiInputValideringDtoTest extends RestApiTestUtil { diff --git a/domene/src/test/java/no/nav/foreldrepenger/selvbetjening/innsending/validering/InnsendingControllerValidationTest.java b/domene/src/test/java/no/nav/foreldrepenger/selvbetjening/innsending/validering/InnsendingControllerValidationTest.java index ff674ea9b..4db861869 100644 --- a/domene/src/test/java/no/nav/foreldrepenger/selvbetjening/innsending/validering/InnsendingControllerValidationTest.java +++ b/domene/src/test/java/no/nav/foreldrepenger/selvbetjening/innsending/validering/InnsendingControllerValidationTest.java @@ -27,8 +27,8 @@ import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.endringssøknad.EndringssøknadDto; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.endringssøknad.EndringssøknadForeldrepengerDto; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.foreldrepenger.ForeldrepengesøknadDto; -import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.svangerskapspenger.SvangerskapspengesøknadDto; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger.arbeidsforhold.VirksomhetDto; +import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger.SvangerskapspengesøknadDto; @Import({InnsendingController.class, ApiExceptionHandler.class}) @WebMvcTest(controllers = InnsendingController.class) @@ -109,13 +109,12 @@ void foreldrepengesoknadAnnenInntektValidering() throws Exception { @Test void svangerskapspengerValidering() throws Exception { - var sf = mapper.readValue(bytesFra("json/svangerskapspengesøknad.json"), SøknadDto.class); - var svpSøknad = (SvangerskapspengesøknadDto) sf; + var svpSøknad = mapper.readValue(bytesFra("json/svangerskapspengesøknad.json"), SvangerskapspengesøknadDto.class); var tilrettelegging = svpSøknad.tilrettelegging().get(0); var virksomhet = (VirksomhetDto) tilrettelegging.arbeidsforhold(); - var result = mvc.perform(post(InnsendingController.INNSENDING_CONTROLLER_PATH) + var result = mvc.perform(post(InnsendingController.INNSENDING_CONTROLLER_PATH + "/svangerskapspenger") .contentType(MediaType.APPLICATION_JSON) - .content(mapper.writeValueAsString(sf) + .content(mapper.writeValueAsString(svpSøknad) .replace(virksomhet.id().value(), "Ikke lovlig \u0085") )) .andExpect(status().isBadRequest()) diff --git "a/domene/src/test/resources/json/svangerskapspenges\303\270knad.json" "b/domene/src/test/resources/json/svangerskapspenges\303\270knad.json" index 568488971..78ac5a334 100644 --- "a/domene/src/test/resources/json/svangerskapspenges\303\270knad.json" +++ "b/domene/src/test/resources/json/svangerskapspenges\303\270knad.json" @@ -1,48 +1,95 @@ { - "barn": { - "erBarnetFødt": false, - "termindato": "2021-12-30T00:00:00.000Z" + "språkkode": "nb", + "barn": + { + "erBarnetFødt": true, + "termindato": "2024-10-17", + "fødselsdato": "2024-09-01" + }, + "frilans": + { + "oppstart": "2024-09-01", + "jobberFremdelesSomFrilans": true + }, + "utenlandsopphold": + [ + { + "fom": "2024-11-01", + "tom": "2025-01-01", + "landkode": "PF" + } + ], + "tilrettelegging": + [ + { + "type": "ingen", + "slutteArbeidFom": "2024-08-21", + "arbeidsforhold": + { + "id": "896929119", + "type": "virksomhet" + }, + "behovForTilretteleggingFom": "2024-08-01" }, - "erEndringssøknad": false, - "informasjonOmUtenlandsopphold": { - "iNorgeNeste12Mnd": true, - "iNorgePåHendelsestidspunktet": true, - "iNorgeSiste12Mnd": true, - "jobbetINorgeSiste12Mnd": true, - "senereOpphold": [], - "tidligereOpphold": [] - }, - "søker": { - "harHattAnnenInntektSiste10Mnd": false, - "harJobbetSomFrilansSiste10Mnd": false, - "harJobbetSomSelvstendigNæringsdrivendeSiste10Mnd": false, - "rolle": "mor", - "språkkode": "NB" - }, - "tilrettelegging": [ + { + "type": "delvis", + "tilrettelagtArbeidFom": "2024-09-01", + "arbeidsforhold": + { + "type": "frilanser", + "risikoFaktorer": "aosudhsadasd", + "tilretteleggingstiltak": "dasdasdasda" + }, + "behovForTilretteleggingFom": "2024-09-01", + "stillingsprosent": 55 + } + ], + "vedlegg": + [ + { + "id": "V202501420381149434121431755494217436", + "file": + {}, + "filename": "Energiattest-2024-22241-20240909-Christophers-vei12-0301-53-305-0-80152663.pdf", + "filesize": 671019, + "uploaded": true, + "pending": false, + "type": "tilrettelegging", + "skjemanummer": "I000109", + "url": "https://www.intern.dev.nav.no/rest/storage/svangerskapspenger/vedlegg/bbcc8a26-9d47-45c3-bd7b-581473a6523c", + "uuid": "bbcc8a26-9d47-45c3-bd7b-581473a6523c", + "dokumenterer": + { + "type": "TILRETTELEGGING", + "arbeidsforhold": { - "arbeidsforhold": { - "id": "342352362", - "type": "virksomhet" - }, - "behovForTilretteleggingFom": "2021-12-01T00:00:00.000Z", - "stillingsprosent": 50, - "tilrettelagtArbeidFom": "2021-12-02T00:00:00.000Z", - "type": "delvis" + "id": "896929119", + "type": "virksomhet" } - ], - "type": "svangerskapspenger", - "vedlegg": [ + } + }, + { + "id": "V7820120548515963636185978031654819", + "file": + {}, + "filename": "Christmas-is-coming.jpg", + "filesize": 76305, + "uploaded": true, + "pending": false, + "type": "tilrettelegging", + "skjemanummer": "I000109", + "url": "https://www.intern.dev.nav.no/rest/storage/svangerskapspenger/vedlegg/f0327564-adc9-47c6-9621-341d4c43d99e", + "uuid": "f0327564-adc9-47c6-9621-341d4c43d99e", + "dokumenterer": + { + "type": "TILRETTELEGGING", + "arbeidsforhold": { - "skjemanummer": "I000109", - "uuid": "733de40c-1c57-4cbc-933f-dcd43ba8548b", - "dokumenterer": { - "type": "tilrettelegging", - "arbeidsforhold": { - "id": "342352362", - "type": "virksomhet" - } - } + "type": "frilanser", + "risikoFaktorer": "aosudhsadasd", + "tilretteleggingstiltak": "dasdasdasda" } - ] + } + } + ] } diff --git a/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/dto/Innsending.java b/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/dto/Innsending.java index efdc3d744..fc5c4e7d0 100644 --- a/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/dto/Innsending.java +++ b/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/dto/Innsending.java @@ -1,5 +1,7 @@ package no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto; +import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.VedleggDto; + import java.time.LocalDate; import java.util.List; diff --git "a/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/dto/S\303\270knadDto.java" "b/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/dto/S\303\270knadDto.java" index 533c21e83..8beaa5cf5 100644 --- "a/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/dto/S\303\270knadDto.java" +++ "b/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/dto/S\303\270knadDto.java" @@ -9,13 +9,12 @@ import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.foreldrepenger.ForeldrepengesøknadDto; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.foreldrepenger.Situasjon; -import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.svangerskapspenger.SvangerskapspengesøknadDto; +import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.VedleggDto; @Deprecated @JsonTypeInfo(use = NAME, property = "type", visible = true) @JsonSubTypes({ @JsonSubTypes.Type(value = ForeldrepengesøknadDto.class, name = "foreldrepenger"), - @JsonSubTypes.Type(value = SvangerskapspengesøknadDto.class, name = "svangerskapspenger") }) public interface SøknadDto extends Innsending { Situasjon situasjon(); @@ -25,7 +24,6 @@ public interface SøknadDto extends Innsending { List vedlegg(); default String navn() { if (this instanceof ForeldrepengesøknadDto) return "foreldrepenger"; - if (this instanceof SvangerskapspengesøknadDto) return "svangerskapspenger"; throw new IllegalStateException("Utvikerfeil: Kan ikke ha en annen ytelse enn fp, svp eller es!"); } } diff --git "a/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/dto/endringss\303\270knad/Endringss\303\270knadDto.java" "b/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/dto/endringss\303\270knad/Endringss\303\270knadDto.java" index 95443cb1b..b23eade8e 100644 --- "a/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/dto/endringss\303\270knad/Endringss\303\270knadDto.java" +++ "b/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/dto/endringss\303\270knad/Endringss\303\270knadDto.java" @@ -11,7 +11,7 @@ import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.BarnDto; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.Innsending; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.SøkerDto; -import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.VedleggDto; +import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.VedleggDto; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.foreldrepenger.Situasjon; @JsonTypeInfo(use = NAME, property = "type", visible = true) diff --git "a/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/dto/endringss\303\270knad/Endringss\303\270knadForeldrepengerDto.java" "b/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/dto/endringss\303\270knad/Endringss\303\270knadForeldrepengerDto.java" index 257020b8c..8775f7834 100644 --- "a/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/dto/endringss\303\270knad/Endringss\303\270knadForeldrepengerDto.java" +++ "b/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/dto/endringss\303\270knad/Endringss\303\270knadForeldrepengerDto.java" @@ -3,7 +3,6 @@ import static no.nav.foreldrepenger.common.domain.validation.InputValideringRegex.FRITEKST; import java.time.LocalDate; -import java.util.ArrayList; import java.util.List; import java.util.Optional; @@ -14,7 +13,7 @@ import no.nav.foreldrepenger.common.domain.Saksnummer; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.BarnDto; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.SøkerDto; -import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.VedleggDto; +import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.VedleggDto; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.foreldrepenger.AnnenforelderDto; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.foreldrepenger.Situasjon; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.foreldrepenger.UttaksplanPeriodeDto; diff --git a/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/dto/ettersendelse/EttersendelseDto.java b/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/dto/ettersendelse/EttersendelseDto.java index 4ca714196..ef7bc1916 100644 --- a/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/dto/ettersendelse/EttersendelseDto.java +++ b/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/dto/ettersendelse/EttersendelseDto.java @@ -13,7 +13,7 @@ import jakarta.validation.constraints.Size; import no.nav.foreldrepenger.common.domain.Saksnummer; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.Innsending; -import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.VedleggDto; +import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.VedleggDto; public record EttersendelseDto(LocalDate mottattdato, @NotNull YtelseType type, diff --git "a/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/dto/foreldrepenger/Foreldrepenges\303\270knadDto.java" "b/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/dto/foreldrepenger/Foreldrepenges\303\270knadDto.java" index 86e2bda18..f775241b8 100644 --- "a/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/dto/foreldrepenger/Foreldrepenges\303\270knadDto.java" +++ "b/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/dto/foreldrepenger/Foreldrepenges\303\270knadDto.java" @@ -3,7 +3,6 @@ import static no.nav.foreldrepenger.common.domain.validation.InputValideringRegex.FRITEKST; import java.time.LocalDate; -import java.util.ArrayList; import java.util.List; import java.util.Optional; @@ -15,7 +14,7 @@ import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.SøkerDto; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.SøknadDto; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.UtenlandsoppholdDto; -import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.VedleggDto; +import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.VedleggDto; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.validering.VedlegglistestørrelseConstraint; @Deprecated diff --git "a/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/dto/svangerskapspenger/Svangerskapspenges\303\270knadDto.java" "b/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/dto/svangerskapspenger/Svangerskapspenges\303\270knadDto.java" deleted file mode 100644 index 1a3027f6a..000000000 --- "a/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/dto/svangerskapspenger/Svangerskapspenges\303\270knadDto.java" +++ /dev/null @@ -1,38 +0,0 @@ -package no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.svangerskapspenger; - -import java.time.LocalDate; -import java.util.List; -import java.util.Optional; - -import jakarta.validation.Valid; -import jakarta.validation.constraints.NotNull; -import jakarta.validation.constraints.Size; -import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.BarnDto; -import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.SøkerDto; -import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.SøknadDto; -import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.UtenlandsoppholdDto; -import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.VedleggDto; -import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.foreldrepenger.Situasjon; -import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.validering.VedlegglistestørrelseConstraint; -import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger.AvtaltFerieDto; - -@Deprecated -public record SvangerskapspengesøknadDto(LocalDate mottattdato, - @Valid @NotNull @Size(max = 100) List<@Valid TilretteleggingDto> tilrettelegging, - @Valid @Size(max = 100) List<@Valid AvtaltFerieDto> avtaltFerie, - @Valid @NotNull BarnDto barn, - @Valid @NotNull UtenlandsoppholdDto informasjonOmUtenlandsopphold, - @Valid @NotNull SøkerDto søker, - @Valid @VedlegglistestørrelseConstraint @Size(max = 100) List<@Valid VedleggDto> vedlegg) implements SøknadDto { - - public SvangerskapspengesøknadDto { - tilrettelegging = Optional.ofNullable(tilrettelegging).orElse(List.of()); - vedlegg = Optional.ofNullable(vedlegg).orElse(List.of()); - avtaltFerie = Optional.ofNullable(avtaltFerie).orElse(List.of()); - } - - @Override - public Situasjon situasjon() { - return Situasjon.FØDSEL; - } -} diff --git a/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/dto/svangerskapspenger/TilretteleggingDto.java b/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/dto/svangerskapspenger/TilretteleggingDto.java deleted file mode 100644 index 92894888f..000000000 --- a/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/dto/svangerskapspenger/TilretteleggingDto.java +++ /dev/null @@ -1,21 +0,0 @@ -package no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.svangerskapspenger; - -import java.time.LocalDate; - -import jakarta.validation.Valid; -import jakarta.validation.constraints.Max; -import jakarta.validation.constraints.Min; -import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger.arbeidsforhold.ArbeidsforholdDto; - -public record TilretteleggingDto(Type type, - @Valid ArbeidsforholdDto arbeidsforhold, - @Min(0) @Max(100) Double stillingsprosent, - LocalDate behovForTilretteleggingFom, - LocalDate tilrettelagtArbeidFom, - LocalDate slutteArbeidFom) { - public enum Type { - HEL, - DELVIS, - INGEN - } -} diff --git "a/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/dto/validering/Vedlegglistest\303\270rrelseValidator.java" "b/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/dto/validering/Vedlegglistest\303\270rrelseValidator.java" index c7a54dc10..e2f3b99d5 100644 --- "a/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/dto/validering/Vedlegglistest\303\270rrelseValidator.java" +++ "b/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/dto/validering/Vedlegglistest\303\270rrelseValidator.java" @@ -6,7 +6,7 @@ import jakarta.validation.ConstraintValidator; import jakarta.validation.ConstraintValidatorContext; -import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.VedleggDto; +import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.VedleggDto; public class VedlegglistestørrelseValidator implements ConstraintValidator> { diff --git a/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/mapper/CommonMapper.java b/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/mapper/CommonMapper.java index 64ee35aef..ff11cc1d9 100644 --- a/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/mapper/CommonMapper.java +++ b/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/mapper/CommonMapper.java @@ -33,13 +33,13 @@ import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.AnnenInntektDto; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.BarnDto; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.FrilansInformasjonDto; -import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.VedleggReferanse; +import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.VedleggReferanse; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.NæringDto; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.SøkerDto; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.SøknadDto; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.TilknyttetPersonDto; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.UtenlandsoppholdPeriodeDto; -import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.VedleggDto; +import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.VedleggDto; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.foreldrepenger.Situasjon; public final class CommonMapper { diff --git a/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/mapper/DokumentasjonReferanseMapper.java b/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/mapper/DokumentasjonReferanseMapper.java index 4cf905595..9626dfd49 100644 --- a/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/mapper/DokumentasjonReferanseMapper.java +++ b/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/mapper/DokumentasjonReferanseMapper.java @@ -2,14 +2,14 @@ import java.util.List; -import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.VedleggDto; -import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.VedleggReferanse; +import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.ÅpenPeriodeDto; +import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.VedleggDto; +import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.VedleggReferanse; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger.arbeidsforhold.ArbeidsforholdDto; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger.arbeidsforhold.FrilanserDto; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger.arbeidsforhold.PrivatArbeidsgiverDto; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger.arbeidsforhold.SelvstendigNæringsdrivendeDto; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger.arbeidsforhold.VirksomhetDto; -import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.ÅpenPeriodeDto; public class DokumentasjonReferanseMapper { diff --git a/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/mapper/EndringForeldrepengerMapper.java b/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/mapper/EndringForeldrepengerMapper.java index 2978dd5be..ee9109b88 100644 --- a/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/mapper/EndringForeldrepengerMapper.java +++ b/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/mapper/EndringForeldrepengerMapper.java @@ -13,7 +13,7 @@ import no.nav.foreldrepenger.common.domain.foreldrepenger.Endringssøknad; import no.nav.foreldrepenger.common.domain.foreldrepenger.Foreldrepenger; import no.nav.foreldrepenger.common.domain.foreldrepenger.fordeling.Fordeling; -import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.VedleggDto; +import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.VedleggDto; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.endringssøknad.EndringssøknadForeldrepengerDto; final class EndringForeldrepengerMapper { diff --git a/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/mapper/ForeldrepengerMapper.java b/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/mapper/ForeldrepengerMapper.java index a39eda179..ffb1d0dac 100644 --- a/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/mapper/ForeldrepengerMapper.java +++ b/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/mapper/ForeldrepengerMapper.java @@ -39,7 +39,7 @@ import no.nav.foreldrepenger.common.domain.foreldrepenger.fordeling.UtsettelsesÅrsak; import no.nav.foreldrepenger.common.domain.foreldrepenger.fordeling.UttaksPeriode; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.SøkerDto; -import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.VedleggDto; +import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.VedleggDto; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.foreldrepenger.AnnenforelderDto; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.foreldrepenger.ForeldrepengesøknadDto; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.foreldrepenger.UttaksplanPeriodeDto; diff --git a/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/mapper/SvangerskapspengerMapper.java b/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/mapper/SvangerskapspengerMapper.java deleted file mode 100644 index e7c14f133..000000000 --- a/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/mapper/SvangerskapspengerMapper.java +++ /dev/null @@ -1,161 +0,0 @@ -package no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.mapper; - -import static no.nav.foreldrepenger.common.util.StreamUtil.safeStream; -import static no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.mapper.CommonMapper.tilOppholdIUtlandet; -import static no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.mapper.CommonMapper.tilOpptjening; -import static no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.mapper.CommonMapper.tilVedlegg; -import static no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.mapper.CommonMapper.tilVedleggsreferanse; - -import java.time.LocalDate; -import java.util.List; - -import no.nav.foreldrepenger.common.domain.BrukerRolle; -import no.nav.foreldrepenger.common.domain.Søker; -import no.nav.foreldrepenger.common.domain.Søknad; -import no.nav.foreldrepenger.common.domain.felles.ProsentAndel; -import no.nav.foreldrepenger.common.domain.svangerskapspenger.AvtaltFerie; -import no.nav.foreldrepenger.common.domain.svangerskapspenger.Svangerskapspenger; -import no.nav.foreldrepenger.common.domain.svangerskapspenger.tilrettelegging.DelvisTilrettelegging; -import no.nav.foreldrepenger.common.domain.svangerskapspenger.tilrettelegging.HelTilrettelegging; -import no.nav.foreldrepenger.common.domain.svangerskapspenger.tilrettelegging.IngenTilrettelegging; -import no.nav.foreldrepenger.common.domain.svangerskapspenger.tilrettelegging.Tilrettelegging; -import no.nav.foreldrepenger.common.domain.svangerskapspenger.tilrettelegging.arbeidsforhold.Arbeidsforhold; -import no.nav.foreldrepenger.common.domain.svangerskapspenger.tilrettelegging.arbeidsforhold.Frilanser; -import no.nav.foreldrepenger.common.domain.svangerskapspenger.tilrettelegging.arbeidsforhold.PrivatArbeidsgiver; -import no.nav.foreldrepenger.common.domain.svangerskapspenger.tilrettelegging.arbeidsforhold.SelvstendigNæringsdrivende; -import no.nav.foreldrepenger.common.domain.svangerskapspenger.tilrettelegging.arbeidsforhold.Virksomhet; -import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.VedleggDto; -import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger.arbeidsforhold.ArbeidsforholdDto; -import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger.arbeidsforhold.FrilanserDto; -import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger.arbeidsforhold.PrivatArbeidsgiverDto; -import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger.arbeidsforhold.SelvstendigNæringsdrivendeDto; -import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.svangerskapspenger.SvangerskapspengesøknadDto; -import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.svangerskapspenger.TilretteleggingDto; -import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger.arbeidsforhold.VirksomhetDto; - -// TODO: Gå gjennom verdier som er Nullable! -public final class SvangerskapspengerMapper { - - private SvangerskapspengerMapper() { - } - - static Søknad tilSvangerskapspengesøknadVedleggUtenInnhold(SvangerskapspengesøknadDto s, LocalDate mottattDato) { - var vedlegg = s.vedlegg(); - return new Søknad( - mottattDato, - tilSøker(s), - tilYtelse(s, vedlegg), - null, - tilVedlegg(vedlegg) - ); - } - - private static Søker tilSøker(SvangerskapspengesøknadDto s) { - var søker = s.søker(); - if (søker == null) { - throw new IllegalStateException("Kan ikke ha tom søkerobjekt"); - } - if (søker.rolle() != BrukerRolle.MOR) { - throw new IllegalStateException("Forventet at søker var mor, men var " + søker.rolle()); - } - return new Søker(BrukerRolle.MOR, søker.språkkode()); - } - - public static Svangerskapspenger tilYtelse(SvangerskapspengesøknadDto s, List vedlegg) { - return new Svangerskapspenger( - s.barn().termindato(), - tilFødselsdato(s), - tilOppholdIUtlandet(s), - tilOpptjening(s.søker(), vedlegg), - tilTilrettelegging(s, vedlegg), - tilFerieperioder(s) - ); - } - - private static List tilFerieperioder(SvangerskapspengesøknadDto s) { - return safeStream(s.avtaltFerie()).map(af -> { - var arbeidsforhold = tilArbeidsforhold(af.arbeidsforhold()); - return new AvtaltFerie(arbeidsforhold, af.fom(), af.tom()); - }).toList(); - } - - private static LocalDate tilFødselsdato(SvangerskapspengesøknadDto s) { - return s.barn().fødselsdatoer().stream() - .findFirst() - .orElse(null); - } - - private static List tilTilrettelegging(SvangerskapspengesøknadDto s, List vedlegg) { - return s.tilrettelegging().stream() - .map(tilrettelegging -> tilTilretteleggings(tilrettelegging, vedlegg)) - .toList(); - } - - private static Tilrettelegging tilTilretteleggings(TilretteleggingDto tilrettelegging, List vedlegg) { - return switch (tilrettelegging.type()) { - case HEL -> tilHelTilrettelegging(tilrettelegging, vedlegg); - case DELVIS -> tilDelvisTilrettelegging(tilrettelegging, vedlegg); - case INGEN -> tilIngenTilrettelegging(tilrettelegging, vedlegg); - }; - } - - private static IngenTilrettelegging tilIngenTilrettelegging(TilretteleggingDto tilrettelegging, List vedlegg) { - return new IngenTilrettelegging( - tilArbeidsforhold(tilrettelegging.arbeidsforhold()), - tilrettelegging.behovForTilretteleggingFom(), - tilrettelegging.slutteArbeidFom(), - tilVedleggsreferanse(DokumentasjonReferanseMapper.dokumentasjonSomDokumentererTilrettelegggingAv(vedlegg, tilrettelegging.arbeidsforhold())) - ); - } - - private static DelvisTilrettelegging tilDelvisTilrettelegging(TilretteleggingDto tilrettelegging, List vedlegg) { - return new DelvisTilrettelegging( - tilArbeidsforhold(tilrettelegging.arbeidsforhold()), - tilrettelegging.behovForTilretteleggingFom(), - tilrettelegging.tilrettelagtArbeidFom(), - tilrettelegging.stillingsprosent() != null ? ProsentAndel.valueOf(tilrettelegging.stillingsprosent()) : null, - tilVedleggsreferanse(DokumentasjonReferanseMapper.dokumentasjonSomDokumentererTilrettelegggingAv(vedlegg, tilrettelegging.arbeidsforhold())) - ); - } - - private static HelTilrettelegging tilHelTilrettelegging(TilretteleggingDto tilrettelegging, List vedlegg) { - return new HelTilrettelegging( - tilArbeidsforhold(tilrettelegging.arbeidsforhold()), - tilrettelegging.behovForTilretteleggingFom(), - tilrettelegging.tilrettelagtArbeidFom(), - tilVedleggsreferanse(DokumentasjonReferanseMapper.dokumentasjonSomDokumentererTilrettelegggingAv(vedlegg, tilrettelegging.arbeidsforhold())) - ); - } - - public static Arbeidsforhold tilArbeidsforhold(ArbeidsforholdDto arbeidsforhold) { - if (arbeidsforhold instanceof VirksomhetDto virksomhet) { - return tilVirksomhet(virksomhet); - } - if (arbeidsforhold instanceof PrivatArbeidsgiverDto privat) { - return tilPrivatArbeidsgiver(privat); - } - if (arbeidsforhold instanceof SelvstendigNæringsdrivendeDto næring) { - return tilSelvstendigNæringsdrivende(næring); - } - if (arbeidsforhold instanceof FrilanserDto frilans) { - return tilFrilanser(frilans); - } - throw new IllegalStateException("Utviklerfeil: Arbeidsforhold kan bare være virksomhet, privat, næring, frilans, men er " + arbeidsforhold); - } - - private static Frilanser tilFrilanser(FrilanserDto frilans) { - return new Frilanser(frilans.risikofaktorer(), frilans.tilretteleggingstiltak()); - } - - private static SelvstendigNæringsdrivende tilSelvstendigNæringsdrivende(SelvstendigNæringsdrivendeDto næring) { - return new SelvstendigNæringsdrivende(næring.risikofaktorer(), næring.tilretteleggingstiltak()); - } - - private static PrivatArbeidsgiver tilPrivatArbeidsgiver(PrivatArbeidsgiverDto privat) { - return new PrivatArbeidsgiver(privat.id()); - } - - private static Virksomhet tilVirksomhet(VirksomhetDto virksomhet) { - return new Virksomhet(virksomhet.id()); - } -} diff --git "a/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/mapper/S\303\270knadMapper.java" "b/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/mapper/S\303\270knadMapper.java" index e279895ec..707de7ea7 100644 --- "a/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/mapper/S\303\270knadMapper.java" +++ "b/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/mapper/S\303\270knadMapper.java" @@ -2,7 +2,6 @@ import static no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.mapper.EndringForeldrepengerMapper.tilEndringForeldrepengesøknadUtenVedleggInnhold; import static no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.mapper.ForeldrepengerMapper.tilForeldrepengesøknadVedleggUtenInnhold; -import static no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.mapper.SvangerskapspengerMapper.tilSvangerskapspengesøknadVedleggUtenInnhold; import static no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.mapper.EndringForeldrepengerMapper.tilEndringForeldrepengesøknad; import static no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.mapper.EngangsstønadMapper.tilEngangsstønad; import static no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.mapper.ForeldrepengerMapper.tilForeldrepengesøknad; @@ -42,9 +41,6 @@ public final class SøknadMapper { if (søknad instanceof no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.foreldrepenger.ForeldrepengesøknadDto f) { return tilForeldrepengesøknadVedleggUtenInnhold(f, mottattDato); } - if (søknad instanceof no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.svangerskapspenger.SvangerskapspengesøknadDto s) { - return tilSvangerskapspengesøknadVedleggUtenInnhold(s, mottattDato); - } throw new IllegalArgumentException("Ukjent søknad " + søknad.getClass().getSimpleName()); } diff --git a/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/dto/AnnenInntektDto.java b/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/dto/AnnenInntektDto.java index 90493f52e..4c0dc3115 100644 --- a/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/dto/AnnenInntektDto.java +++ b/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/dto/AnnenInntektDto.java @@ -1,19 +1,18 @@ package no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto; -import static com.fasterxml.jackson.annotation.JsonTypeInfo.As.PROPERTY; -import static com.fasterxml.jackson.annotation.JsonTypeInfo.Id.NAME; -import static no.nav.foreldrepenger.common.domain.validation.InputValideringRegex.FRITEKST; - -import java.time.LocalDate; - import com.fasterxml.jackson.annotation.JsonSubTypes; import com.fasterxml.jackson.annotation.JsonTypeInfo; import com.neovisionaries.i18n.CountryCode; - import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.Pattern; import no.nav.foreldrepenger.common.domain.felles.opptjening.AnnenOpptjeningType; +import java.time.LocalDate; + +import static com.fasterxml.jackson.annotation.JsonTypeInfo.As.PROPERTY; +import static com.fasterxml.jackson.annotation.JsonTypeInfo.Id.NAME; +import static no.nav.foreldrepenger.common.domain.validation.InputValideringRegex.FRITEKST; + @JsonTypeInfo(use = NAME, include = PROPERTY, property = "type") @JsonSubTypes({ @JsonSubTypes.Type(value = AnnenInntektDto.Annet.class, names = { "ETTERLØNN_SLUTTPAKKE", "MILITÆR_ELLER_SIVILTJENESTE" }), diff --git "a/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/dto/N\303\246ringDto.java" "b/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/dto/N\303\246ringDto.java" index d74b15e14..d98f4ee1d 100644 --- "a/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/dto/N\303\246ringDto.java" +++ "b/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/dto/N\303\246ringDto.java" @@ -1,18 +1,18 @@ package no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto; -import static no.nav.foreldrepenger.common.domain.validation.InputValideringRegex.FRITEKST; - -import java.time.LocalDate; - import com.neovisionaries.i18n.CountryCode; - import jakarta.validation.Valid; +import jakarta.validation.constraints.AssertTrue; import jakarta.validation.constraints.Digits; import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.Pattern; import no.nav.foreldrepenger.common.domain.Orgnummer; import no.nav.foreldrepenger.common.domain.felles.opptjening.Virksomhetstype; +import java.time.LocalDate; + +import static no.nav.foreldrepenger.common.domain.validation.InputValideringRegex.FRITEKST; + public record NæringDto(@Valid @NotNull LocalDate fom, @Valid LocalDate tom, @Valid Virksomhetstype næringstype, @@ -27,4 +27,12 @@ public record NæringDto(@Valid @NotNull LocalDate fom, LocalDate varigEndringDato, @Digits(integer = 9, fraction = 0) Integer varigEndringInntektEtterEndring, @Pattern(regexp = FRITEKST) String varigEndringBeskrivelse) { + + @AssertTrue(message = "Søker har oppgitt varig endring men varigEndringDato, varigEndringInntektEtterEndring og varigEndringBeskrivelse er ikke satt") + public boolean isVarigEndringGyldig() { + if (hattVarigEndringAvNæringsinntektSiste4Kalenderår) { + return varigEndringDato != null && varigEndringInntektEtterEndring != null && varigEndringBeskrivelse != null; + } + return true; + } } diff --git "a/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/dto/S\303\270knadDto.java" "b/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/dto/S\303\270knadDto.java" index 95db12562..ef6e93269 100644 --- "a/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/dto/S\303\270knadDto.java" +++ "b/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/dto/S\303\270knadDto.java" @@ -5,7 +5,6 @@ import no.nav.foreldrepenger.common.domain.BrukerRolle; import no.nav.foreldrepenger.common.oppslag.dkif.Målform; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.Innsending; -import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.VedleggDto; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.engangsstønad.EngangsstønadDto; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.foreldrepenger.ForeldrepengesøknadDto; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger.SvangerskapspengesøknadDto; diff --git a/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/dto/VedleggDto.java b/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/dto/VedleggDto.java similarity index 95% rename from kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/dto/VedleggDto.java rename to kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/dto/VedleggDto.java index 38668e747..23c9d05d2 100644 --- a/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/dto/VedleggDto.java +++ b/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/dto/VedleggDto.java @@ -1,4 +1,4 @@ -package no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto; +package no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto; import static no.nav.foreldrepenger.common.domain.validation.InputValideringRegex.FRITEKST; @@ -14,6 +14,7 @@ import jakarta.validation.constraints.Size; import no.nav.foreldrepenger.common.domain.felles.DokumentType; import no.nav.foreldrepenger.common.domain.felles.InnsendingsType; +import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.ÅpenPeriodeDto; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger.arbeidsforhold.ArbeidsforholdDto; public record VedleggDto(UUID uuid, diff --git a/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/dto/VedleggReferanse.java b/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/dto/VedleggReferanse.java similarity index 98% rename from kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/dto/VedleggReferanse.java rename to kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/dto/VedleggReferanse.java index f2141bb51..f4b00fc55 100644 --- a/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/dto/VedleggReferanse.java +++ b/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/dto/VedleggReferanse.java @@ -1,4 +1,4 @@ -package no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto; +package no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto; import java.util.Objects; import java.util.UUID; diff --git "a/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/dto/endringss\303\270knad/Endringss\303\270knadDto.java" "b/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/dto/endringss\303\270knad/Endringss\303\270knadDto.java" index 24ac93278..b6287bf25 100644 --- "a/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/dto/endringss\303\270knad/Endringss\303\270knadDto.java" +++ "b/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/dto/endringss\303\270knad/Endringss\303\270knadDto.java" @@ -9,7 +9,7 @@ import no.nav.foreldrepenger.common.domain.Saksnummer; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.Innsending; -import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.VedleggDto; +import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.VedleggDto; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.BarnDto; @JsonTypeInfo(use = NAME, property = "type", visible = true) diff --git "a/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/dto/endringss\303\270knad/Endringss\303\270knadForeldrepengerDto.java" "b/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/dto/endringss\303\270knad/Endringss\303\270knadForeldrepengerDto.java" index 3341274dc..1ca6ad16f 100644 --- "a/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/dto/endringss\303\270knad/Endringss\303\270knadForeldrepengerDto.java" +++ "b/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/dto/endringss\303\270knad/Endringss\303\270knadForeldrepengerDto.java" @@ -14,7 +14,7 @@ import no.nav.foreldrepenger.common.domain.BrukerRolle; import no.nav.foreldrepenger.common.domain.Saksnummer; import no.nav.foreldrepenger.common.oppslag.dkif.Målform; -import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.VedleggDto; +import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.VedleggDto; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.validering.VedlegglistestørrelseConstraint; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.BarnDto; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.foreldrepenger.annenpart.AnnenForelderDto; diff --git "a/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/dto/engangsst\303\270nad/Engangsst\303\270nadDto.java" "b/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/dto/engangsst\303\270nad/Engangsst\303\270nadDto.java" index 2c2a06f8e..66d1144d6 100644 --- "a/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/dto/engangsst\303\270nad/Engangsst\303\270nadDto.java" +++ "b/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/dto/engangsst\303\270nad/Engangsst\303\270nadDto.java" @@ -9,7 +9,7 @@ import jakarta.validation.constraints.Size; import no.nav.foreldrepenger.common.domain.BrukerRolle; import no.nav.foreldrepenger.common.oppslag.dkif.Målform; -import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.VedleggDto; +import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.VedleggDto; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.validering.VedlegglistestørrelseConstraint; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.BarnDto; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.SøknadDto; diff --git "a/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/dto/foreldrepenger/Foreldrepenges\303\270knadDto.java" "b/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/dto/foreldrepenger/Foreldrepenges\303\270knadDto.java" index c33acfb30..22875489a 100644 --- "a/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/dto/foreldrepenger/Foreldrepenges\303\270knadDto.java" +++ "b/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/dto/foreldrepenger/Foreldrepenges\303\270knadDto.java" @@ -12,7 +12,7 @@ import jakarta.validation.constraints.Size; import no.nav.foreldrepenger.common.domain.BrukerRolle; import no.nav.foreldrepenger.common.oppslag.dkif.Målform; -import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.VedleggDto; +import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.VedleggDto; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.validering.VedlegglistestørrelseConstraint; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.AnnenInntektDto; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.BarnDto; diff --git a/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/dto/svangerskapspenger/AvtaltFerieDto.java b/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/dto/svangerskapspenger/AvtaltFerieDto.java index 8da7d7034..aabcdb575 100644 --- a/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/dto/svangerskapspenger/AvtaltFerieDto.java +++ b/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/dto/svangerskapspenger/AvtaltFerieDto.java @@ -1,9 +1,9 @@ package no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger; +import java.time.LocalDate; + import jakarta.validation.Valid; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger.arbeidsforhold.ArbeidsforholdDto; -import java.time.LocalDate; - public record AvtaltFerieDto(@Valid ArbeidsforholdDto arbeidsforhold, LocalDate fom, LocalDate tom) { } diff --git "a/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/dto/svangerskapspenger/Svangerskapspenges\303\270knadDto.java" "b/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/dto/svangerskapspenger/Svangerskapspenges\303\270knadDto.java" index 3a5be9e6f..13f25df44 100644 --- "a/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/dto/svangerskapspenger/Svangerskapspenges\303\270knadDto.java" +++ "b/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/dto/svangerskapspenger/Svangerskapspenges\303\270knadDto.java" @@ -9,7 +9,7 @@ import jakarta.validation.constraints.Size; import no.nav.foreldrepenger.common.domain.BrukerRolle; import no.nav.foreldrepenger.common.oppslag.dkif.Målform; -import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.VedleggDto; +import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.VedleggDto; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.validering.VedlegglistestørrelseConstraint; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.AnnenInntektDto; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.FrilansDto; @@ -17,6 +17,7 @@ import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.SøknadDto; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.UtenlandsoppholdsperiodeDto; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger.tilrettelegging.TilretteleggingDto; +import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger.tilretteleggingbehov.TilretteleggingbehovDto; public record SvangerskapspengesøknadDto(LocalDate mottattdato, @Valid @NotNull BarnSvpDto barn, @@ -26,13 +27,15 @@ public record SvangerskapspengesøknadDto(LocalDate mottattdato, @Valid NæringDto egenNæring, @Valid @Size(max = 40) List andreInntekterSiste10Mnd, @Valid @Size(max = 40) List<@Valid @NotNull UtenlandsoppholdsperiodeDto> utenlandsopphold, - @Valid @NotNull @Size(max = 100) List<@Valid @NotNull TilretteleggingDto> tilrettelegging, + @Valid @Size(max = 100) List<@Valid @NotNull TilretteleggingDto> tilrettelegging, + @Valid @Size(max = 100) List<@Valid @NotNull TilretteleggingbehovDto> tilretteleggingsbehov, @Valid @Size(max = 100) List<@Valid @NotNull AvtaltFerieDto> avtaltFerie, @Valid @VedlegglistestørrelseConstraint @Size(max = 100) List<@Valid @NotNull VedleggDto> vedlegg) implements SøknadDto { public SvangerskapspengesøknadDto { utenlandsopphold = Optional.ofNullable(utenlandsopphold).orElse(List.of()); tilrettelegging = Optional.ofNullable(tilrettelegging).orElse(List.of()); + tilretteleggingsbehov = Optional.ofNullable(tilretteleggingsbehov).orElse(List.of()); andreInntekterSiste10Mnd = Optional.ofNullable(andreInntekterSiste10Mnd).orElse(List.of()); vedlegg = Optional.ofNullable(vedlegg).orElse(List.of()); avtaltFerie = Optional.ofNullable(avtaltFerie).orElse(List.of()); diff --git a/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/dto/svangerskapspenger/tilretteleggingbehov/TilretteleggingbehovDto.java b/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/dto/svangerskapspenger/tilretteleggingbehov/TilretteleggingbehovDto.java new file mode 100644 index 000000000..81eee55b1 --- /dev/null +++ b/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/dto/svangerskapspenger/tilretteleggingbehov/TilretteleggingbehovDto.java @@ -0,0 +1,51 @@ +package no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger.tilretteleggingbehov; + +import static com.fasterxml.jackson.annotation.JsonTypeInfo.As.PROPERTY; +import static com.fasterxml.jackson.annotation.JsonTypeInfo.Id.NAME; +import static no.nav.foreldrepenger.common.domain.validation.InputValideringRegex.FRITEKST; + +import java.time.LocalDate; +import java.util.List; + +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; + +import jakarta.validation.Valid; +import jakarta.validation.constraints.AssertTrue; +import jakarta.validation.constraints.Max; +import jakarta.validation.constraints.Min; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Pattern; +import jakarta.validation.constraints.Size; +import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger.arbeidsforhold.ArbeidsforholdDto; +import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger.arbeidsforhold.FrilanserDto; +import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger.arbeidsforhold.SelvstendigNæringsdrivendeDto; + +public record TilretteleggingbehovDto(@Valid @NotNull ArbeidsforholdDto arbeidsforhold, + @NotNull LocalDate behovForTilretteleggingFom, + @Pattern(regexp = FRITEKST) String risikofaktorer, + @Pattern(regexp = FRITEKST) String tilretteleggingstiltak, + @Valid @Size(min = 1, max = 20) List<@Valid @NotNull TilretteleggingDto> tilrettelegginger) { + + @AssertTrue(message = "Tilrettelegging av næring eller frilans må ha satt risikofaktorer og tilretteleggingstiltak") + public boolean isRisikofaktorerOgTilretteleggingtiltakSattForNæringFrilans() { + if (arbeidsforhold instanceof FrilanserDto || arbeidsforhold instanceof SelvstendigNæringsdrivendeDto) { + return risikofaktorer != null && tilretteleggingstiltak != null; + } + return true; + } + + @JsonTypeInfo(use = NAME, include = PROPERTY, property = "type") + @JsonSubTypes({ + @JsonSubTypes.Type(value = TilretteleggingDto.Hel.class, name = "hel"), + @JsonSubTypes.Type(value = TilretteleggingDto.Del.class, name = "delvis"), + @JsonSubTypes.Type(value = TilretteleggingDto.Ingen.class, name = "ingen") + }) + public interface TilretteleggingDto { + LocalDate fom(); + + record Hel(@NotNull LocalDate fom) implements TilretteleggingDto {} + record Del(@NotNull LocalDate fom, @NotNull @Min(0) @Max(100) Double stillingsprosent) implements TilretteleggingDto {} + record Ingen(@NotNull LocalDate fom) implements TilretteleggingDto {} + } +} diff --git a/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/mapper/CommonMapper.java b/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/mapper/CommonMapper.java index 2cc0b589f..1489baf07 100644 --- a/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/mapper/CommonMapper.java +++ b/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/mapper/CommonMapper.java @@ -25,7 +25,7 @@ import no.nav.foreldrepenger.common.domain.felles.relasjontilbarn.Omsorgsovertakelse; import no.nav.foreldrepenger.common.domain.felles.relasjontilbarn.RelasjonTilBarn; import no.nav.foreldrepenger.common.domain.felles.ÅpenPeriode; -import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.VedleggDto; +import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.VedleggDto; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.ÅpenPeriodeDto; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.mapper.DokumentasjonReferanseMapper; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.AdopsjonDto; diff --git a/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/mapper/EndringForeldrepengerMapper.java b/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/mapper/EndringForeldrepengerMapper.java index c7ecb6a52..67b66b6ec 100644 --- a/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/mapper/EndringForeldrepengerMapper.java +++ b/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/mapper/EndringForeldrepengerMapper.java @@ -12,7 +12,7 @@ import no.nav.foreldrepenger.common.domain.foreldrepenger.Endringssøknad; import no.nav.foreldrepenger.common.domain.foreldrepenger.Foreldrepenger; -import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.VedleggDto; +import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.VedleggDto; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.endringssøknad.EndringssøknadForeldrepengerDto; diff --git "a/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/mapper/Engangsst\303\270nadMapper.java" "b/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/mapper/Engangsst\303\270nadMapper.java" index 529d14b02..242feae27 100644 --- "a/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/mapper/Engangsst\303\270nadMapper.java" +++ "b/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/mapper/Engangsst\303\270nadMapper.java" @@ -13,7 +13,7 @@ import no.nav.foreldrepenger.common.domain.Ytelse; import no.nav.foreldrepenger.common.domain.engangsstønad.Engangsstønad; import no.nav.foreldrepenger.common.oppslag.dkif.Målform; -import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.VedleggDto; +import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.VedleggDto; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.engangsstønad.EngangsstønadDto; public final class EngangsstønadMapper { diff --git a/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/mapper/ForeldrepengerMapper.java b/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/mapper/ForeldrepengerMapper.java index c24df5a90..58ecc42ae 100644 --- a/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/mapper/ForeldrepengerMapper.java +++ b/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/mapper/ForeldrepengerMapper.java @@ -35,7 +35,7 @@ import no.nav.foreldrepenger.common.domain.foreldrepenger.fordeling.UtsettelsesPeriode; import no.nav.foreldrepenger.common.domain.foreldrepenger.fordeling.UttaksPeriode; import no.nav.foreldrepenger.common.oppslag.dkif.Målform; -import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.VedleggDto; +import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.VedleggDto; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.ÅpenPeriodeDto; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.mapper.DokumentasjonReferanseMapper; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.foreldrepenger.ForeldrepengesøknadDto; diff --git a/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/mapper/SvangerskapspengerMapper.java b/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/mapper/SvangerskapspengerMapper.java index d22d0faa8..39843f76e 100644 --- a/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/mapper/SvangerskapspengerMapper.java +++ b/kontrakt/src/main/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/mapper/SvangerskapspengerMapper.java @@ -3,7 +3,6 @@ import static no.nav.foreldrepenger.common.util.StreamUtil.safeStream; import static no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.mapper.CommonMapper.tilVedlegg; import static no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.mapper.CommonMapper.tilVedleggsreferanse; -import static no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.mapper.SvangerskapspengerMapper.tilArbeidsforhold; import static no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.mapper.CommonMapper.tilOppholdIUtlandet; import java.time.LocalDate; @@ -20,16 +19,28 @@ import no.nav.foreldrepenger.common.domain.svangerskapspenger.tilrettelegging.HelTilrettelegging; import no.nav.foreldrepenger.common.domain.svangerskapspenger.tilrettelegging.IngenTilrettelegging; import no.nav.foreldrepenger.common.domain.svangerskapspenger.tilrettelegging.Tilrettelegging; -import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.VedleggDto; +import no.nav.foreldrepenger.common.domain.svangerskapspenger.tilrettelegging.arbeidsforhold.Arbeidsforhold; +import no.nav.foreldrepenger.common.domain.svangerskapspenger.tilrettelegging.arbeidsforhold.Frilanser; +import no.nav.foreldrepenger.common.domain.svangerskapspenger.tilrettelegging.arbeidsforhold.PrivatArbeidsgiver; +import no.nav.foreldrepenger.common.domain.svangerskapspenger.tilrettelegging.arbeidsforhold.SelvstendigNæringsdrivende; +import no.nav.foreldrepenger.common.domain.svangerskapspenger.tilrettelegging.arbeidsforhold.Virksomhet; +import no.nav.foreldrepenger.common.domain.svangerskapspenger.tilretteleggingsbehov.Tilretteleggingbehov; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.mapper.DokumentasjonReferanseMapper; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.AnnenInntektDto; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.FrilansDto; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.NæringDto; +import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.VedleggDto; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger.SvangerskapspengesøknadDto; +import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger.arbeidsforhold.ArbeidsforholdDto; +import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger.arbeidsforhold.FrilanserDto; +import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger.arbeidsforhold.PrivatArbeidsgiverDto; +import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger.arbeidsforhold.SelvstendigNæringsdrivendeDto; +import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger.arbeidsforhold.VirksomhetDto; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger.tilrettelegging.DelvisTilretteleggingDto; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger.tilrettelegging.HelTilretteleggingDto; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger.tilrettelegging.IngenTilretteleggingDto; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger.tilrettelegging.TilretteleggingDto; +import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger.tilretteleggingbehov.TilretteleggingbehovDto; public final class SvangerskapspengerMapper { @@ -59,10 +70,52 @@ public static Svangerskapspenger tilYtelse(SvangerskapspengesøknadDto s, List tilTilretteleggingBehov(SvangerskapspengesøknadDto s, List vedlegg) { + return safeStream(s.tilretteleggingsbehov()) + .map(behov -> tilTilretteleggingBehov(behov, vedlegg)) + .toList(); + } + + private static Tilretteleggingbehov tilTilretteleggingBehov(TilretteleggingbehovDto tilretteleggingbehov, List vedlegg) { + return new Tilretteleggingbehov( + tilArbeidsforhold(tilretteleggingbehov), + tilretteleggingbehov.behovForTilretteleggingFom(), + tilTilrettelegging(tilretteleggingbehov.tilrettelegginger()), + tilVedleggsreferanse(DokumentasjonReferanseMapper.dokumentasjonSomDokumentererTilrettelegggingAv(vedlegg, tilretteleggingbehov.arbeidsforhold())) + ); + } + + private static Arbeidsforhold tilArbeidsforhold(TilretteleggingbehovDto tilretteleggingbehov) { + var arbeidsforhold = tilretteleggingbehov.arbeidsforhold(); + return switch (arbeidsforhold) { + case VirksomhetDto virksomhet -> new Virksomhet(virksomhet.id()); + case PrivatArbeidsgiverDto privat -> new PrivatArbeidsgiver(privat.id()); + case SelvstendigNæringsdrivendeDto ignore -> new SelvstendigNæringsdrivende(tilretteleggingbehov.risikofaktorer(), tilretteleggingbehov.tilretteleggingstiltak()); + case FrilanserDto ignore -> new Frilanser(tilretteleggingbehov.risikofaktorer(), tilretteleggingbehov.tilretteleggingstiltak()); + default -> throw new IllegalStateException("Utviklerfeil: Arbeidsforhold kan bare være virksomhet, privat, næring, frilans, men er " + arbeidsforhold); + }; + } + + private static List tilTilrettelegging(List tilrettelegginger) { + return safeStream(tilrettelegginger) + .map(SvangerskapspengerMapper::tilTilrettelegging) + .toList(); + } + + private static Tilretteleggingbehov.Tilrettelegging tilTilrettelegging(TilretteleggingbehovDto.TilretteleggingDto tilrettelegging) { + return switch (tilrettelegging) { + case TilretteleggingbehovDto.TilretteleggingDto.Hel hel -> new Tilretteleggingbehov.Tilrettelegging.Hel(hel.fom()); + case TilretteleggingbehovDto.TilretteleggingDto.Del del -> new Tilretteleggingbehov.Tilrettelegging.Delvis(del.fom(), del.stillingsprosent()); + case TilretteleggingbehovDto.TilretteleggingDto.Ingen ingen -> new Tilretteleggingbehov.Tilrettelegging.Ingen(ingen.fom()); + default -> throw new IllegalArgumentException("Ugyldig tilrettelegging: " + tilrettelegging); + }; + } + private static Opptjening tilOpptjening(NæringDto næring, FrilansDto frilans, List utlandets, List vedlegg) { var annenInntekt = safeStream(utlandets).map(AnnenInntektDto.class::cast).toList(); return CommonMapper.tilOpptjening(næring, frilans, annenInntekt, vedlegg); @@ -75,8 +128,9 @@ private static List tilFerieperioder(SvangerskapspengesøknadDto s) }).toList(); } + @Deprecated private static List tilTilrettelegging(SvangerskapspengesøknadDto s, List vedlegg) { - return s.tilrettelegging().stream() + return safeStream(s.tilrettelegging()) .map(tilrettelegging -> tilTilretteleggings(tilrettelegging, vedlegg)) .toList(); } @@ -121,4 +175,37 @@ private static HelTilrettelegging tilHelTilrettelegging(HelTilretteleggingDto ti tilVedleggsreferanse(DokumentasjonReferanseMapper.dokumentasjonSomDokumentererTilrettelegggingAv(vedlegg, tilrettelegging.arbeidsforhold())) ); } + + + private static Arbeidsforhold tilArbeidsforhold(ArbeidsforholdDto arbeidsforhold) { + if (arbeidsforhold instanceof VirksomhetDto virksomhet) { + return tilVirksomhet(virksomhet); + } + if (arbeidsforhold instanceof PrivatArbeidsgiverDto privat) { + return tilPrivatArbeidsgiver(privat); + } + if (arbeidsforhold instanceof SelvstendigNæringsdrivendeDto næring) { + return tilSelvstendigNæringsdrivende(næring); + } + if (arbeidsforhold instanceof FrilanserDto frilans) { + return tilFrilanser(frilans); + } + throw new IllegalStateException("Utviklerfeil: Arbeidsforhold kan bare være virksomhet, privat, næring, frilans, men er " + arbeidsforhold); + } + + private static Frilanser tilFrilanser(FrilanserDto frilans) { + return new Frilanser(frilans.risikofaktorer(), frilans.tilretteleggingstiltak()); + } + + private static SelvstendigNæringsdrivende tilSelvstendigNæringsdrivende(SelvstendigNæringsdrivendeDto næring) { + return new SelvstendigNæringsdrivende(næring.risikofaktorer(), næring.tilretteleggingstiltak()); + } + + private static PrivatArbeidsgiver tilPrivatArbeidsgiver(PrivatArbeidsgiverDto privat) { + return new PrivatArbeidsgiver(privat.id()); + } + + private static Virksomhet tilVirksomhet(VirksomhetDto virksomhet) { + return new Virksomhet(virksomhet.id()); + } } diff --git a/kontrakt/src/test/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/dto/EttersendelseDTOTest.java b/kontrakt/src/test/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/dto/EttersendelseDTOTest.java index 6886bc6a5..b9adad38b 100644 --- a/kontrakt/src/test/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/dto/EttersendelseDTOTest.java +++ b/kontrakt/src/test/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/dto/EttersendelseDTOTest.java @@ -10,6 +10,7 @@ import java.util.List; import java.util.UUID; +import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.VedleggDto; import org.junit.jupiter.api.Test; import com.fasterxml.jackson.core.JsonProcessingException; diff --git "a/kontrakt/src/test/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/dto/S\303\270knadDtoJacksonRountripTest.java" "b/kontrakt/src/test/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/dto/S\303\270knadDtoJacksonRountripTest.java" index ccbd0e275..dd6ac6266 100644 --- "a/kontrakt/src/test/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/dto/S\303\270knadDtoJacksonRountripTest.java" +++ "b/kontrakt/src/test/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/dto/S\303\270knadDtoJacksonRountripTest.java" @@ -3,9 +3,6 @@ import static no.nav.foreldrepenger.common.domain.foreldrepenger.fordeling.StønadskontoType.FELLESPERIODE; import static no.nav.foreldrepenger.common.domain.foreldrepenger.fordeling.StønadskontoType.FORELDREPENGER_FØR_FØDSEL; import static no.nav.foreldrepenger.common.domain.foreldrepenger.fordeling.StønadskontoType.MØDREKVOTE; -import static no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.util.builder.TilretteleggingBuilder.delvis; -import static no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.util.builder.TilretteleggingBuilder.hel; -import static no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.util.builder.TilretteleggingBuilder.ingen; import static no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.util.builder.UttakplanPeriodeBuilder.gradert; import static no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.util.builder.UttakplanPeriodeBuilder.overføring; import static no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.util.builder.UttakplanPeriodeBuilder.utsettelse; @@ -27,7 +24,6 @@ import no.nav.foreldrepenger.common.domain.BrukerRolle; import no.nav.foreldrepenger.common.domain.Fødselsnummer; -import no.nav.foreldrepenger.common.domain.Orgnummer; import no.nav.foreldrepenger.common.domain.Saksnummer; import no.nav.foreldrepenger.common.domain.foreldrepenger.fordeling.Overføringsårsak; import no.nav.foreldrepenger.common.domain.foreldrepenger.fordeling.UtsettelsesÅrsak; @@ -35,15 +31,12 @@ import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.endringssøknad.EndringssøknadForeldrepengerDto; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.foreldrepenger.Dekningsgrad; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.foreldrepenger.ForeldrepengesøknadDto; -import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.svangerskapspenger.SvangerskapspengesøknadDto; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.util.builder.AnnenforelderBuilder; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.util.builder.BarnBuilder; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.util.builder.EndringssøknadBuilder; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.util.builder.ForeldrepengerBuilder; -import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.util.builder.SvangerskapspengerBuilder; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.util.builder.SøkerBuilder; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.util.maler.OpptjeningMaler; -import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.util.maler.ArbeidsforholdMaler; /** * Skal verifisere at seralisering => deseralisering av objektet ikke mister noe data på veien. @@ -165,25 +158,6 @@ void fpGraderingFrilansTermingRountripTest() throws IOException { test(søknad); } - @Test - void svangerskapspengerRountripTest() throws IOException { - var tilrettelegginger = List.of( - hel(NOW.minusMonths(1), NOW.minusMonths(1), ArbeidsforholdMaler.selvstendigNæringsdrivende()).build(), - delvis(NOW, NOW, ArbeidsforholdMaler.privatArbeidsgiver(DUMMY_FNR), 55.0).build(), - ingen(NOW.plusWeeks(1), NOW.plusWeeks(1), ArbeidsforholdMaler.virksomhet(Orgnummer.MAGIC_ORG)).build() - ); - var søknad = new SvangerskapspengerBuilder(tilrettelegginger) - .medMedlemsskap(medlemskapUtlandetForrige12mnd()) - .medSøker(new SøkerBuilder(BrukerRolle.MOR) - .medSelvstendigNæringsdrivendeInformasjon(List.of(OpptjeningMaler.egenNaeringOpptjening(Orgnummer.MAGIC_ORG.value()))) - .build()) - .medBarn(BarnBuilder.termin(2, LocalDate.now().plusWeeks(2)).build()) - .build(); - - assertThat(søknad).isInstanceOf(SvangerskapspengesøknadDto.class); - test(søknad); - } - @Test void endringssøknadFpRountripTest() throws IOException { var uttak = List.of( diff --git "a/kontrakt/src/test/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/dto/validering/Vedlegglistest\303\270rrelseValidatorTest.java" "b/kontrakt/src/test/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/dto/validering/Vedlegglistest\303\270rrelseValidatorTest.java" index ea17a398d..50c882dfe 100644 --- "a/kontrakt/src/test/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/dto/validering/Vedlegglistest\303\270rrelseValidatorTest.java" +++ "b/kontrakt/src/test/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/dto/validering/Vedlegglistest\303\270rrelseValidatorTest.java" @@ -10,7 +10,7 @@ import org.junit.jupiter.api.Test; import no.nav.foreldrepenger.common.domain.felles.DokumentType; -import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.VedleggDto; +import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.VedleggDto; class VedlegglistestørrelseValidatorTest { diff --git a/kontrakt/src/test/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/mapper/DokumentasjonUtil.java b/kontrakt/src/test/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/mapper/DokumentasjonUtil.java index 21af41b88..0c29dffcd 100644 --- a/kontrakt/src/test/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/mapper/DokumentasjonUtil.java +++ b/kontrakt/src/test/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/mapper/DokumentasjonUtil.java @@ -7,7 +7,7 @@ import java.util.UUID; import no.nav.foreldrepenger.common.domain.felles.DokumentType; -import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.VedleggDto; +import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.VedleggDto; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger.arbeidsforhold.ArbeidsforholdDto; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.ÅpenPeriodeDto; diff --git a/kontrakt/src/test/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/mapper/EttersendelseMappingKonsistensTest.java b/kontrakt/src/test/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/mapper/EttersendelseMappingKonsistensTest.java index 82f224a61..1be035570 100644 --- a/kontrakt/src/test/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/mapper/EttersendelseMappingKonsistensTest.java +++ b/kontrakt/src/test/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/mapper/EttersendelseMappingKonsistensTest.java @@ -12,7 +12,7 @@ import no.nav.foreldrepenger.common.domain.Saksnummer; import no.nav.foreldrepenger.common.domain.felles.EttersendingsType; import no.nav.foreldrepenger.common.domain.felles.Vedlegg; -import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.VedleggDto; +import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.VedleggDto; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.ettersendelse.EttersendelseDto; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.ettersendelse.YtelseType; diff --git a/kontrakt/src/test/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/mapper/SvangerskapspengerMappingKonsistensTest.java b/kontrakt/src/test/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/mapper/SvangerskapspengerMappingKonsistensTest.java deleted file mode 100644 index 129a6b13d..000000000 --- a/kontrakt/src/test/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/mapper/SvangerskapspengerMappingKonsistensTest.java +++ /dev/null @@ -1,130 +0,0 @@ -package no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.mapper; - -import static no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.util.builder.TilretteleggingBuilder.delvis; -import static no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.util.builder.TilretteleggingBuilder.hel; -import static no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.util.builder.TilretteleggingBuilder.ingen; -import static no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.util.maler.MedlemsskapMaler.medlemskapUtlandetForrige12mnd; -import static org.assertj.core.api.Assertions.assertThat; - -import java.time.LocalDate; -import java.util.List; - -import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger.AvtaltFerieDto; - -import org.junit.jupiter.api.Test; - -import no.nav.foreldrepenger.common.domain.BrukerRolle; -import no.nav.foreldrepenger.common.domain.Fødselsnummer; -import no.nav.foreldrepenger.common.domain.Orgnummer; -import no.nav.foreldrepenger.common.domain.felles.VedleggReferanse; -import no.nav.foreldrepenger.common.domain.svangerskapspenger.Svangerskapspenger; -import no.nav.foreldrepenger.common.domain.svangerskapspenger.tilrettelegging.DelvisTilrettelegging; -import no.nav.foreldrepenger.common.domain.svangerskapspenger.tilrettelegging.HelTilrettelegging; -import no.nav.foreldrepenger.common.domain.svangerskapspenger.tilrettelegging.IngenTilrettelegging; -import no.nav.foreldrepenger.common.domain.svangerskapspenger.tilrettelegging.Tilrettelegging; -import no.nav.foreldrepenger.common.domain.svangerskapspenger.tilrettelegging.arbeidsforhold.PrivatArbeidsgiver; -import no.nav.foreldrepenger.common.domain.svangerskapspenger.tilrettelegging.arbeidsforhold.SelvstendigNæringsdrivende; -import no.nav.foreldrepenger.common.domain.svangerskapspenger.tilrettelegging.arbeidsforhold.Virksomhet; -import no.nav.foreldrepenger.common.oppslag.dkif.Målform; -import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.util.builder.BarnBuilder; -import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.util.builder.SvangerskapspengerBuilder; -import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.util.builder.SøkerBuilder; -import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.util.maler.ArbeidsforholdMaler; -import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.util.maler.OpptjeningMaler; - -class SvangerskapspengerMappingKonsistensTest { - private static final LocalDate NOW = LocalDate.now(); - private static final Fødselsnummer DUMMY_FNR = new Fødselsnummer("0000000000"); - - @Test - void svangerskapspengerTilretteleggingKonsistensSjekk() { - var tilretteleggingerDto = List.of( - hel(NOW.minusMonths(1), NOW.minusMonths(1), ArbeidsforholdMaler.selvstendigNæringsdrivende()).build(), - delvis(NOW, NOW, ArbeidsforholdMaler.privatArbeidsgiver(DUMMY_FNR), 55.0).build(), - ingen(NOW.plusWeeks(1), NOW.plusWeeks(1), ArbeidsforholdMaler.virksomhet(Orgnummer.MAGIC_ORG)).build() - ); - var ferie = new AvtaltFerieDto(ArbeidsforholdMaler.virksomhet(Orgnummer.MAGIC_ORG), LocalDate.now().plusDays(10), - LocalDate.now().plusDays(20)); - var søknadDto = new SvangerskapspengerBuilder(tilretteleggingerDto) - .medMedlemsskap(medlemskapUtlandetForrige12mnd()) - .medSøker(new SøkerBuilder(BrukerRolle.MOR) - .medSpråkkode(Målform.EN) - .medSelvstendigNæringsdrivendeInformasjon(List.of(OpptjeningMaler.egenNaeringOpptjening(Orgnummer.MAGIC_ORG.value()))) - .build()) - .medBarn(BarnBuilder.termin(2, LocalDate.now().plusWeeks(2)).build()) - .medAvtaltFerie(List.of(ferie)) - .build(); - - // Act - var mappedSøknad = SøknadMapper.tilSøknad(søknadDto, NOW); - - // Assert - assertThat(mappedSøknad.getSøker().søknadsRolle()).isEqualTo(søknadDto.søker().rolle()); - assertThat(mappedSøknad.getSøker().målform()).isEqualTo(søknadDto.søker().språkkode()); - assertThat(mappedSøknad.getMottattdato()).isEqualTo(søknadDto.mottattdato()); - assertThat(mappedSøknad.getTilleggsopplysninger()).isNull(); - - - assertThat(mappedSøknad.getYtelse()).isInstanceOf(Svangerskapspenger.class); - var svpMappet = (Svangerskapspenger) mappedSøknad.getYtelse(); - var tilrettelegginger = svpMappet.tilrettelegging(); - assertThat(tilrettelegginger).hasSameSizeAs(tilretteleggingerDto) - .hasExactlyElementsOfTypes( - HelTilrettelegging.class, - DelvisTilrettelegging.class, - IngenTilrettelegging.class - ) - .extracting(Tilrettelegging::getBehovForTilretteleggingFom) - .containsExactly( - tilretteleggingerDto.get(0).behovForTilretteleggingFom(), - tilretteleggingerDto.get(1).behovForTilretteleggingFom(), - tilretteleggingerDto.get(2).behovForTilretteleggingFom() - ); - assertThat(tilrettelegginger) - .extracting(Tilrettelegging::getArbeidsforhold) - .hasExactlyElementsOfTypes( - SelvstendigNæringsdrivende.class, - PrivatArbeidsgiver.class, - Virksomhet.class - ); - assertThat(svpMappet.avtaltFerie()).hasSize(1) - .first().satisfies(af -> { - assertThat(af.arbeidsforhold()).isInstanceOf(Virksomhet.class); - assertThat(af.ferieFom()).isEqualTo(LocalDate.now().plusDays(10)); - assertThat(af.ferieTom()).isEqualTo(LocalDate.now().plusDays(20)); - }); - - } - - @Test - void svangerskapspengerVedleggReferanseMappingKonsistens() { - var tilretteleggingerDto = List.of( - hel(NOW.minusMonths(1), NOW.minusMonths(1), ArbeidsforholdMaler.selvstendigNæringsdrivende()).build(), - delvis(NOW, NOW, ArbeidsforholdMaler.privatArbeidsgiver(DUMMY_FNR), 55.0).build(), - ingen(NOW.plusWeeks(1), NOW.plusWeeks(1), ArbeidsforholdMaler.virksomhet(Orgnummer.MAGIC_ORG)).build() - ); - var vedlegg1 = DokumentasjonUtil.vedlegg(DokumentasjonUtil.tilrettelegging(tilretteleggingerDto.get(0).arbeidsforhold())); - var vedlegg2 = DokumentasjonUtil.vedlegg(DokumentasjonUtil.tilrettelegging(tilretteleggingerDto.get(1).arbeidsforhold())); - var vedlegg3 = DokumentasjonUtil.vedlegg(DokumentasjonUtil.tilrettelegging(tilretteleggingerDto.get(2).arbeidsforhold())); - var søknadDto = new SvangerskapspengerBuilder(tilretteleggingerDto) - .medMedlemsskap(medlemskapUtlandetForrige12mnd()) - .medSøker(new SøkerBuilder(BrukerRolle.MOR) - .medSpråkkode(Målform.EN) - .medSelvstendigNæringsdrivendeInformasjon(List.of(OpptjeningMaler.egenNaeringOpptjening(Orgnummer.MAGIC_ORG.value()))) - .build()) - .medBarn(BarnBuilder.termin(2, LocalDate.now().plusWeeks(2)).build()) - .medVedlegg(List.of(vedlegg1, vedlegg2, vedlegg3)) - .build(); - - var mappedSøknad = SøknadMapper.tilSøknad(søknadDto, NOW); - var svp = (Svangerskapspenger) mappedSøknad.getYtelse(); - - assertThat(mappedSøknad.getVedlegg()).hasSameSizeAs(søknadDto.vedlegg()); - assertThat(svp.tilrettelegging().get(0).getVedlegg()).extracting(VedleggReferanse::referanse) - .containsExactly(vedlegg1.referanse().verdi()); - assertThat(svp.tilrettelegging().get(1).getVedlegg()).extracting(VedleggReferanse::referanse) - .containsExactly(vedlegg2.referanse().verdi()); - assertThat(svp.tilrettelegging().get(2).getVedlegg()).extracting(VedleggReferanse::referanse) - .containsExactly(vedlegg3.referanse().verdi()); - } -} diff --git "a/kontrakt/src/test/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/util/builder/Endringss\303\270knadBuilder.java" "b/kontrakt/src/test/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/util/builder/Endringss\303\270knadBuilder.java" index c2cd31540..f207421de 100644 --- "a/kontrakt/src/test/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/util/builder/Endringss\303\270knadBuilder.java" +++ "b/kontrakt/src/test/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/util/builder/Endringss\303\270knadBuilder.java" @@ -6,7 +6,7 @@ import no.nav.foreldrepenger.common.domain.Saksnummer; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.BarnDto; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.SøkerDto; -import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.VedleggDto; +import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.VedleggDto; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.endringssøknad.EndringssøknadDto; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.endringssøknad.EndringssøknadForeldrepengerDto; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.foreldrepenger.AnnenforelderDto; diff --git a/kontrakt/src/test/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/util/builder/ForeldrepengerBuilder.java b/kontrakt/src/test/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/util/builder/ForeldrepengerBuilder.java index 959f64fe9..0048e4c3c 100644 --- a/kontrakt/src/test/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/util/builder/ForeldrepengerBuilder.java +++ b/kontrakt/src/test/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/util/builder/ForeldrepengerBuilder.java @@ -7,7 +7,7 @@ import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.SøkerDto; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.SøknadDto; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.UtenlandsoppholdDto; -import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.VedleggDto; +import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.VedleggDto; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.foreldrepenger.AnnenforelderDto; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.foreldrepenger.Dekningsgrad; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.foreldrepenger.ForeldrepengesøknadDto; diff --git a/kontrakt/src/test/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/util/builder/SvangerskapspengerBuilder.java b/kontrakt/src/test/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/util/builder/SvangerskapspengerBuilder.java deleted file mode 100644 index f55797862..000000000 --- a/kontrakt/src/test/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/util/builder/SvangerskapspengerBuilder.java +++ /dev/null @@ -1,76 +0,0 @@ -package no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.util.builder; - -import java.time.LocalDate; -import java.util.List; - -import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.BarnDto; -import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.SøkerDto; -import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.UtenlandsoppholdDto; -import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.VedleggDto; -import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger.AvtaltFerieDto; -import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.svangerskapspenger.SvangerskapspengesøknadDto; -import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.svangerskapspenger.TilretteleggingDto; - -public class SvangerskapspengerBuilder { - private LocalDate mottattdato; - private List tilrettelegging; - - private List avtaltFerie; - private BarnDto barn; - private UtenlandsoppholdDto informasjonOmUtenlandsopphold; - private SøkerDto søker; - private List vedlegg; - - public SvangerskapspengerBuilder(List tilrettelegging) { - this.tilrettelegging = tilrettelegging; - } - - public SvangerskapspengerBuilder medMottattdato(LocalDate mottattdato) { - this.mottattdato = mottattdato; - return this; - } - - public SvangerskapspengerBuilder medTilrettelegging(List tilrettelegging) { - this.tilrettelegging = tilrettelegging; - return this; - } - - public SvangerskapspengerBuilder medBarn(BarnHelper barn) { - this.barn = barn.barn(); - return this; - } - - - public SvangerskapspengerBuilder medMedlemsskap(UtenlandsoppholdDto informasjonOmUtenlandsopphold) { - this.informasjonOmUtenlandsopphold = informasjonOmUtenlandsopphold; - return this; - } - - public SvangerskapspengerBuilder medSøker(SøkerDto søker) { - this.søker = søker; - return this; - } - - public SvangerskapspengerBuilder medVedlegg(List vedlegg) { - this.vedlegg = vedlegg; - return this; - } - - public SvangerskapspengerBuilder medAvtaltFerie(List avtaltFerie) { - this.avtaltFerie = avtaltFerie; - return this; - } - - public SvangerskapspengesøknadDto build() { - if (mottattdato == null) mottattdato = LocalDate.now(); - return new SvangerskapspengesøknadDto( - mottattdato, - tilrettelegging, - avtaltFerie, - barn, - informasjonOmUtenlandsopphold, - søker, - vedlegg - ); - } -} diff --git a/kontrakt/src/test/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/util/builder/TilretteleggingBuilder.java b/kontrakt/src/test/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/util/builder/TilretteleggingBuilder.java deleted file mode 100644 index 4d1689d81..000000000 --- a/kontrakt/src/test/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/util/builder/TilretteleggingBuilder.java +++ /dev/null @@ -1,80 +0,0 @@ -package no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.util.builder; - -import java.time.LocalDate; - -import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger.arbeidsforhold.ArbeidsforholdDto; -import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.svangerskapspenger.TilretteleggingDto; - -public class TilretteleggingBuilder { - private TilretteleggingDto.Type type; - private ArbeidsforholdDto arbeidsforhold; - private Double stillingsprosent; - private LocalDate behovForTilretteleggingFom; - private LocalDate tilrettelagtArbeidFom; - private LocalDate slutteArbeidFom; - - public static TilretteleggingBuilder hel(LocalDate behovForTilretteleggingFom, LocalDate tilrettelagtArbeidFom, ArbeidsforholdDto arbeidsforhold) { - return new TilretteleggingBuilder(TilretteleggingDto.Type.HEL) - .medBehovForTilretteleggingFom(behovForTilretteleggingFom) - .medTilrettelagtArbeidFom(tilrettelagtArbeidFom) - .medArbeidsforhold(arbeidsforhold); - } - public static TilretteleggingBuilder delvis(LocalDate behovForTilretteleggingFom, LocalDate tilrettelagtArbeidFom, ArbeidsforholdDto arbeidsforhold, Double stillingsprosent) { - return new TilretteleggingBuilder(TilretteleggingDto.Type.DELVIS) - .medBehovForTilretteleggingFom(behovForTilretteleggingFom) - .medTilrettelagtArbeidFom(tilrettelagtArbeidFom) - .medArbeidsforhold(arbeidsforhold) - .medStillingsprosent(stillingsprosent); - } - public static TilretteleggingBuilder ingen(LocalDate behovForTilretteleggingFom, LocalDate slutteArbeidFom, ArbeidsforholdDto arbeidsforhold) { - return new TilretteleggingBuilder(TilretteleggingDto.Type.INGEN) - .medBehovForTilretteleggingFom(behovForTilretteleggingFom) - .medSlutteArbeidFom(slutteArbeidFom) - .medArbeidsforhold(arbeidsforhold); - } - - private TilretteleggingBuilder(TilretteleggingDto.Type type) { - this.type = type; - } - - public TilretteleggingBuilder medType(TilretteleggingDto.Type type) { - this.type = type; - return this; - } - - public TilretteleggingBuilder medArbeidsforhold(ArbeidsforholdDto arbeidsforhold) { - this.arbeidsforhold = arbeidsforhold; - return this; - } - - public TilretteleggingBuilder medStillingsprosent(Double stillingsprosent) { - this.stillingsprosent = stillingsprosent; - return this; - } - - public TilretteleggingBuilder medBehovForTilretteleggingFom(LocalDate behovForTilretteleggingFom) { - this.behovForTilretteleggingFom = behovForTilretteleggingFom; - return this; - } - - public TilretteleggingBuilder medTilrettelagtArbeidFom(LocalDate tilrettelagtArbeidFom) { - this.tilrettelagtArbeidFom = tilrettelagtArbeidFom; - return this; - } - - public TilretteleggingBuilder medSlutteArbeidFom(LocalDate slutteArbeidFom) { - this.slutteArbeidFom = slutteArbeidFom; - return this; - } - - public TilretteleggingDto build() { - return new TilretteleggingDto( - type, - arbeidsforhold, - stillingsprosent, - behovForTilretteleggingFom, - tilrettelagtArbeidFom, - slutteArbeidFom - ); - } -} diff --git "a/kontrakt/src/test/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/dto/N\303\246ringDtoTest.java" "b/kontrakt/src/test/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/dto/N\303\246ringDtoTest.java" new file mode 100644 index 000000000..2d255cee9 --- /dev/null +++ "b/kontrakt/src/test/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/dto/N\303\246ringDtoTest.java" @@ -0,0 +1,37 @@ +package no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto; + +import static org.assertj.core.api.Assertions.assertThat; + +import java.time.LocalDate; + +import org.junit.jupiter.api.Test; + +import jakarta.validation.Validation; +import no.nav.foreldrepenger.common.domain.Orgnummer; +import no.nav.foreldrepenger.common.domain.felles.opptjening.Virksomhetstype; + +class NæringDtoTest { + + @Test + void næringOppgittVarigEndringUtenVarigEndringinformasjonSkalFeile() { + var validator = Validation.buildDefaultValidatorFactory().getValidator(); + var næring = new NæringDto( + LocalDate.MIN, + LocalDate.MAX, + Virksomhetstype.DAGMAMMA, + "navnet", + Orgnummer.MAGIC_ORG, + null, + true, + null, + false, + null, + true, + null, + null, + null + ); + var validate = validator.validate(næring); + assertThat(validate).hasSize(1); + } +} diff --git "a/kontrakt/src/test/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/dto/S\303\270knadDtoJacksonRountripTest.java" "b/kontrakt/src/test/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/dto/S\303\270knadDtoJacksonRountripTest.java" index 6efb55dd3..3990a820a 100644 --- "a/kontrakt/src/test/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/dto/S\303\270knadDtoJacksonRountripTest.java" +++ "b/kontrakt/src/test/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/dto/S\303\270knadDtoJacksonRountripTest.java" @@ -40,6 +40,7 @@ import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.util.builder.EngangsstønadBuilder; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.util.builder.ForeldrepengerBuilder; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.util.builder.SvangerskapspengerBuilder; +import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.util.builder.TilretteleggingBehovBuilder; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.util.maler.ArbeidsforholdMaler; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.util.maler.OpptjeningMaler; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.util.maler.UtenlandsoppholdMaler; @@ -165,7 +166,26 @@ void svangerskapspengerRountripTest() throws IOException { delvis(NOW, NOW, ArbeidsforholdMaler.privatArbeidsgiver(DUMMY_FNR), 55.0).build(), ingen(NOW.plusWeeks(1), NOW.plusWeeks(1), ArbeidsforholdMaler.virksomhet(Orgnummer.MAGIC_ORG)).build() ); - var søknad = new SvangerskapspengerBuilder(tilrettelegginger) + var søknad = new SvangerskapspengerBuilder(null) + .medTilrettelegging(tilrettelegginger) + .medUtenlandsopphold(UtenlandsoppholdMaler.oppholdIUtlandetForrige12mnd()) + .medSelvstendigNæringsdrivendeInformasjon(OpptjeningMaler.egenNaeringOpptjening(Orgnummer.MAGIC_ORG.value())) + .medBarn(BarnBuilder.termin(2, LocalDate.now().plusWeeks(2)).build()) + .build(); + + assertThat(søknad).isInstanceOf(SvangerskapspengesøknadDto.class); + test(søknad); + } + + @Test + void svangerskapspengerBehovRountripTest() throws IOException { + var tilretteleggingbehov = List.of( + new TilretteleggingBehovBuilder(ArbeidsforholdMaler.selvstendigNæringsdrivende(), NOW.minusMonths(1)).hel(NOW.minusMonths(1)).build(), + new TilretteleggingBehovBuilder(ArbeidsforholdMaler.privatArbeidsgiver(DUMMY_FNR), NOW).delvis(NOW, 55.0).build(), + new TilretteleggingBehovBuilder(ArbeidsforholdMaler.virksomhet(Orgnummer.MAGIC_ORG), NOW.plusMonths(1)).ingen(NOW.plusMonths(1)).build() + ); + + var søknad = new SvangerskapspengerBuilder(tilretteleggingbehov) .medUtenlandsopphold(UtenlandsoppholdMaler.oppholdIUtlandetForrige12mnd()) .medSelvstendigNæringsdrivendeInformasjon(OpptjeningMaler.egenNaeringOpptjening(Orgnummer.MAGIC_ORG.value())) .medBarn(BarnBuilder.termin(2, LocalDate.now().plusWeeks(2)).build()) diff --git a/kontrakt/src/test/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/mapper/SvangerskapspengerMappingKonsistensTest.java b/kontrakt/src/test/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/mapper/SvangerskapspengerMappingKonsistensTest.java index a87743330..ff84e51fe 100644 --- a/kontrakt/src/test/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/mapper/SvangerskapspengerMappingKonsistensTest.java +++ b/kontrakt/src/test/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/mapper/SvangerskapspengerMappingKonsistensTest.java @@ -8,8 +8,6 @@ import java.time.LocalDate; import java.util.List; -import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger.AvtaltFerieDto; - import org.junit.jupiter.api.Test; import no.nav.foreldrepenger.common.domain.BrukerRolle; @@ -24,14 +22,17 @@ import no.nav.foreldrepenger.common.domain.svangerskapspenger.tilrettelegging.arbeidsforhold.PrivatArbeidsgiver; import no.nav.foreldrepenger.common.domain.svangerskapspenger.tilrettelegging.arbeidsforhold.SelvstendigNæringsdrivende; import no.nav.foreldrepenger.common.domain.svangerskapspenger.tilrettelegging.arbeidsforhold.Virksomhet; +import no.nav.foreldrepenger.common.domain.svangerskapspenger.tilretteleggingsbehov.Tilretteleggingbehov; import no.nav.foreldrepenger.common.oppslag.dkif.Målform; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.mapper.DokumentasjonUtil; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.mapper.SøknadMapper; -import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.util.maler.ArbeidsforholdMaler; +import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger.AvtaltFerieDto; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.util.builder.BarnBuilder; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.util.builder.SvangerskapspengerBuilder; -import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.util.maler.UtenlandsoppholdMaler; +import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.util.builder.TilretteleggingBehovBuilder; +import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.util.maler.ArbeidsforholdMaler; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.util.maler.OpptjeningMaler; +import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.util.maler.UtenlandsoppholdMaler; class SvangerskapspengerMappingKonsistensTest { private static final LocalDate NOW = LocalDate.now(); @@ -46,7 +47,8 @@ void svangerskapspengerTilretteleggingKonsistensSjekk() { ); var ferie = new AvtaltFerieDto(ArbeidsforholdMaler.virksomhet(Orgnummer.MAGIC_ORG), LocalDate.now().plusDays(10), LocalDate.now().plusDays(20)); - var søknadDto = new SvangerskapspengerBuilder(tilretteleggingerDto) + var søknadDto = new SvangerskapspengerBuilder(null) + .medTilrettelegging(tilretteleggingerDto) .medUtenlandsopphold(UtenlandsoppholdMaler.oppholdIUtlandetForrige12mnd()) .medSpråkkode(Målform.EN) .medAvtaltFerie(List.of(ferie)) @@ -93,6 +95,74 @@ void svangerskapspengerTilretteleggingKonsistensSjekk() { }); } + @Test + void svangerskapspengerTilretteleggingBehovKonsistensSjekk() { + var tilretteleggingBehovDto = List.of( + new TilretteleggingBehovBuilder(ArbeidsforholdMaler.selvstendigNæringsdrivende(), NOW.minusMonths(1)) + .hel(NOW.minusMonths(1)) + .delvis(NOW, 55.0) + .build(), + new TilretteleggingBehovBuilder(ArbeidsforholdMaler.privatArbeidsgiver(DUMMY_FNR), NOW) + .delvis(NOW, 55.0) + .build(), + new TilretteleggingBehovBuilder(ArbeidsforholdMaler.virksomhet(Orgnummer.MAGIC_ORG), NOW.plusMonths(1)) + .ingen(NOW.plusMonths(1)) + .build() + ); + + + var ferie = new AvtaltFerieDto(ArbeidsforholdMaler.virksomhet(Orgnummer.MAGIC_ORG), LocalDate.now().plusDays(10), + LocalDate.now().plusDays(20)); + var søknadDto = new SvangerskapspengerBuilder(tilretteleggingBehovDto) + .medUtenlandsopphold(UtenlandsoppholdMaler.oppholdIUtlandetForrige12mnd()) + .medSpråkkode(Målform.EN) + .medAvtaltFerie(List.of(ferie)) + .medSelvstendigNæringsdrivendeInformasjon(OpptjeningMaler.egenNaeringOpptjening(Orgnummer.MAGIC_ORG.value())) + .medBarn(BarnBuilder.termin(2, LocalDate.now().plusWeeks(2)).build()) + .build(); + + // Act + var mappedSøknad = SøknadMapper.tilSøknad(søknadDto, NOW); + + // Assert + assertThat(mappedSøknad.getSøker().søknadsRolle()).isEqualTo(BrukerRolle.MOR); + assertThat(mappedSøknad.getSøker().målform()).isEqualTo(søknadDto.språkkode()); + assertThat(mappedSøknad.getMottattdato()).isEqualTo(søknadDto.mottattdato()); + assertThat(mappedSøknad.getTilleggsopplysninger()).isNull(); + + assertThat(mappedSøknad.getYtelse()).isInstanceOf(Svangerskapspenger.class); + var svpMappet = (Svangerskapspenger) mappedSøknad.getYtelse(); + var tilretteleggingbehov = svpMappet.tilretteleggingbehov(); + assertThat(tilretteleggingbehov).hasSameSizeAs(tilretteleggingBehovDto) + .extracting(Tilretteleggingbehov::behovForTilretteleggingFom) + .containsExactly( + tilretteleggingBehovDto.get(0).behovForTilretteleggingFom(), + tilretteleggingBehovDto.get(1).behovForTilretteleggingFom(), + tilretteleggingBehovDto.get(2).behovForTilretteleggingFom() + ); + assertThat(tilretteleggingbehov).hasSameSizeAs(tilretteleggingBehovDto) + .flatExtracting(Tilretteleggingbehov::tilrettelegginger) + .hasExactlyElementsOfTypes( + Tilretteleggingbehov.Tilrettelegging.Hel.class, + Tilretteleggingbehov.Tilrettelegging.Delvis.class, + Tilretteleggingbehov.Tilrettelegging.Delvis.class, + Tilretteleggingbehov.Tilrettelegging.Ingen.class + ); + assertThat(tilretteleggingbehov) + .extracting(Tilretteleggingbehov::arbeidsforhold) + .hasExactlyElementsOfTypes( + SelvstendigNæringsdrivende.class, + PrivatArbeidsgiver.class, + Virksomhet.class + ); + assertThat(svpMappet.avtaltFerie()).hasSize(1) + .first().satisfies(af -> { + assertThat(af.arbeidsforhold()).isInstanceOf(Virksomhet.class); + assertThat(af.ferieFom()).isEqualTo(LocalDate.now().plusDays(10)); + assertThat(af.ferieTom()).isEqualTo(LocalDate.now().plusDays(20)); + }); + } + @Test void svangerskapspengerVedleggReferanseMappingKonsistens() { var tilretteleggingerDto = List.of( @@ -103,7 +173,8 @@ void svangerskapspengerVedleggReferanseMappingKonsistens() { var vedlegg1 = DokumentasjonUtil.vedlegg(DokumentasjonUtil.tilrettelegging(tilretteleggingerDto.get(0).arbeidsforhold())); var vedlegg2 = DokumentasjonUtil.vedlegg(DokumentasjonUtil.tilrettelegging(tilretteleggingerDto.get(1).arbeidsforhold())); var vedlegg3 = DokumentasjonUtil.vedlegg(DokumentasjonUtil.tilrettelegging(tilretteleggingerDto.get(2).arbeidsforhold())); - var søknadDto = new SvangerskapspengerBuilder(tilretteleggingerDto) + var søknadDto = new SvangerskapspengerBuilder(null) + .medTilrettelegging(tilretteleggingerDto) .medSpråkkode(Målform.EN) .medUtenlandsopphold(UtenlandsoppholdMaler.oppholdIUtlandetForrige12mnd()) .medSelvstendigNæringsdrivendeInformasjon(OpptjeningMaler.egenNaeringOpptjening(Orgnummer.MAGIC_ORG.value())) @@ -122,4 +193,41 @@ void svangerskapspengerVedleggReferanseMappingKonsistens() { assertThat(svp.tilrettelegging().get(2).getVedlegg()).extracting(VedleggReferanse::referanse) .containsExactly(vedlegg3.referanse().verdi()); } + + @Test + void svangerskapspengerBehovVedleggReferanseMappingKonsistens() { + var tilretteleggingbehov = List.of( + new TilretteleggingBehovBuilder(ArbeidsforholdMaler.selvstendigNæringsdrivende(), NOW.minusMonths(1)) + .hel(NOW.minusMonths(1)) + .build(), + new TilretteleggingBehovBuilder(ArbeidsforholdMaler.privatArbeidsgiver(DUMMY_FNR), NOW) + .delvis(NOW, 55.0) + .build(), + new TilretteleggingBehovBuilder(ArbeidsforholdMaler.virksomhet(Orgnummer.MAGIC_ORG), NOW.plusMonths(1)) + .ingen(NOW.plusMonths(1)) + .build() + ); + + var vedlegg1 = DokumentasjonUtil.vedlegg(DokumentasjonUtil.tilrettelegging(tilretteleggingbehov.get(0).arbeidsforhold())); + var vedlegg2 = DokumentasjonUtil.vedlegg(DokumentasjonUtil.tilrettelegging(tilretteleggingbehov.get(1).arbeidsforhold())); + var vedlegg3 = DokumentasjonUtil.vedlegg(DokumentasjonUtil.tilrettelegging(tilretteleggingbehov.get(2).arbeidsforhold())); + var søknadDto = new SvangerskapspengerBuilder(tilretteleggingbehov) + .medSpråkkode(Målform.EN) + .medUtenlandsopphold(UtenlandsoppholdMaler.oppholdIUtlandetForrige12mnd()) + .medSelvstendigNæringsdrivendeInformasjon(OpptjeningMaler.egenNaeringOpptjening(Orgnummer.MAGIC_ORG.value())) + .medBarn(BarnBuilder.termin(2, LocalDate.now().plusWeeks(2)).build()) + .medVedlegg(List.of(vedlegg1, vedlegg2, vedlegg3)) + .build(); + + var mappedSøknad = SøknadMapper.tilSøknad(søknadDto, NOW); + var svp = (Svangerskapspenger) mappedSøknad.getYtelse(); + + assertThat(mappedSøknad.getVedlegg()).hasSameSizeAs(søknadDto.vedlegg()); + assertThat(svp.tilretteleggingbehov().get(0).vedlegg()).extracting(VedleggReferanse::referanse) + .containsExactly(vedlegg1.referanse().verdi()); + assertThat(svp.tilretteleggingbehov().get(1).vedlegg()).extracting(VedleggReferanse::referanse) + .containsExactly(vedlegg2.referanse().verdi()); + assertThat(svp.tilretteleggingbehov().get(2).vedlegg()).extracting(VedleggReferanse::referanse) + .containsExactly(vedlegg3.referanse().verdi()); + } } diff --git "a/kontrakt/src/test/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/util/builder/Endringss\303\270knadBuilder.java" "b/kontrakt/src/test/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/util/builder/Endringss\303\270knadBuilder.java" index 3b5df2675..b89d7f068 100644 --- "a/kontrakt/src/test/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/util/builder/Endringss\303\270knadBuilder.java" +++ "b/kontrakt/src/test/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/util/builder/Endringss\303\270knadBuilder.java" @@ -6,7 +6,7 @@ import no.nav.foreldrepenger.common.domain.BrukerRolle; import no.nav.foreldrepenger.common.domain.Saksnummer; import no.nav.foreldrepenger.common.oppslag.dkif.Målform; -import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.VedleggDto; +import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.VedleggDto; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.BarnDto; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.endringssøknad.EndringssøknadForeldrepengerDto; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.foreldrepenger.annenpart.AnnenForelderDto; diff --git "a/kontrakt/src/test/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/util/builder/Engangsst\303\270nadBuilder.java" "b/kontrakt/src/test/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/util/builder/Engangsst\303\270nadBuilder.java" index acd19fc5c..f65d6d35e 100644 --- "a/kontrakt/src/test/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/util/builder/Engangsst\303\270nadBuilder.java" +++ "b/kontrakt/src/test/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/util/builder/Engangsst\303\270nadBuilder.java" @@ -4,7 +4,7 @@ import java.util.List; import no.nav.foreldrepenger.common.oppslag.dkif.Målform; -import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.VedleggDto; +import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.VedleggDto; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.BarnDto; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.UtenlandsoppholdsperiodeDto; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.engangsstønad.EngangsstønadDto; diff --git a/kontrakt/src/test/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/util/builder/ForeldrepengerBuilder.java b/kontrakt/src/test/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/util/builder/ForeldrepengerBuilder.java index ce51215bc..17a7dd37b 100644 --- a/kontrakt/src/test/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/util/builder/ForeldrepengerBuilder.java +++ b/kontrakt/src/test/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/util/builder/ForeldrepengerBuilder.java @@ -5,7 +5,7 @@ import no.nav.foreldrepenger.common.domain.BrukerRolle; import no.nav.foreldrepenger.common.oppslag.dkif.Målform; -import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.VedleggDto; +import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.VedleggDto; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.AnnenInntektDto; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.BarnDto; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.FrilansDto; diff --git a/kontrakt/src/test/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/util/builder/SvangerskapspengerBuilder.java b/kontrakt/src/test/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/util/builder/SvangerskapspengerBuilder.java index cb78fea85..474d4e0f7 100644 --- a/kontrakt/src/test/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/util/builder/SvangerskapspengerBuilder.java +++ b/kontrakt/src/test/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/util/builder/SvangerskapspengerBuilder.java @@ -5,7 +5,7 @@ import no.nav.foreldrepenger.common.domain.BrukerRolle; import no.nav.foreldrepenger.common.oppslag.dkif.Målform; -import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.dto.VedleggDto; +import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.VedleggDto; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.AnnenInntektDto; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.BarnDto; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.FrilansDto; @@ -17,6 +17,7 @@ import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger.BarnSvpDto; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger.SvangerskapspengesøknadDto; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger.tilrettelegging.TilretteleggingDto; +import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger.tilretteleggingbehov.TilretteleggingbehovDto; public class SvangerskapspengerBuilder { private LocalDate mottattdato; @@ -26,15 +27,21 @@ public class SvangerskapspengerBuilder { private NæringDto selvstendigNæringsdrivendeInformasjon; private List andreInntekterSiste10Mnd; private List utenlandsopphold; - private List tilretteleggingsbehov; + private List tilrettelegging; + private List tilretteleggingbehov; private List avtaltFerie; private List vedlegg; - public SvangerskapspengerBuilder(List tilretteleggingsbehov) { - this.tilretteleggingsbehov = tilretteleggingsbehov; + public SvangerskapspengerBuilder(List tilretteleggingbehov) { + this.tilretteleggingbehov = tilretteleggingbehov; this.språkkode = Målform.standard(); } + public SvangerskapspengerBuilder medTilrettelegging(List tilrettelegging) { + this.tilrettelegging = tilrettelegging; + return this; + } + public SvangerskapspengerBuilder medMottattdato(LocalDate mottattdato) { this.mottattdato = mottattdato; return this; @@ -97,7 +104,8 @@ public SvangerskapspengerBuilder medVedlegg(List vedlegg) { selvstendigNæringsdrivendeInformasjon, andreInntekterSiste10Mnd, utenlandsopphold, - tilretteleggingsbehov, + tilrettelegging, + tilretteleggingbehov, avtaltFerie, vedlegg ); diff --git a/kontrakt/src/test/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/util/builder/TilretteleggingBehovBuilder.java b/kontrakt/src/test/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/util/builder/TilretteleggingBehovBuilder.java new file mode 100644 index 000000000..2d55cb5be --- /dev/null +++ b/kontrakt/src/test/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/util/builder/TilretteleggingBehovBuilder.java @@ -0,0 +1,53 @@ +package no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.util.builder; + +import java.time.LocalDate; +import java.util.ArrayList; +import java.util.List; + +import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger.arbeidsforhold.ArbeidsforholdDto; +import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger.arbeidsforhold.FrilanserDto; +import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger.arbeidsforhold.SelvstendigNæringsdrivendeDto; +import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger.tilretteleggingbehov.TilretteleggingbehovDto; + + +public class TilretteleggingBehovBuilder { + private ArbeidsforholdDto arbeidsforhold; + private LocalDate behovForTilretteleggingFom; + private String risikofaktorer; + private String tilretteleggingstiltak; + private List tilrettelegginger = new ArrayList<>(); + + public TilretteleggingBehovBuilder(ArbeidsforholdDto arbeidsforhold, LocalDate behovForTilretteleggingFom) { + this.arbeidsforhold = arbeidsforhold; + this.behovForTilretteleggingFom = behovForTilretteleggingFom; + if (arbeidsforhold instanceof SelvstendigNæringsdrivendeDto || arbeidsforhold instanceof FrilanserDto) { + this.risikofaktorer = "Risikofaktorer her"; + this.tilretteleggingstiltak = "Tilretteleggingstiltak her"; + } + } + + public TilretteleggingBehovBuilder hel(LocalDate tilrettelagtArbeidFom) { + this.tilrettelegginger.add(new TilretteleggingbehovDto.TilretteleggingDto.Hel(tilrettelagtArbeidFom)); + return this; + } + + public TilretteleggingBehovBuilder delvis(LocalDate tilrettelagtArbeidFom, Double stillingsprosent) { + this.tilrettelegginger.add(new TilretteleggingbehovDto.TilretteleggingDto.Del(tilrettelagtArbeidFom, stillingsprosent)); + return this; + } + + public TilretteleggingBehovBuilder ingen(LocalDate slutteArbeidFom) { + this.tilrettelegginger.add(new TilretteleggingbehovDto.TilretteleggingDto.Ingen(slutteArbeidFom)); + return this; + } + + public TilretteleggingbehovDto build() { + return new TilretteleggingbehovDto( + arbeidsforhold, + behovForTilretteleggingFom, + risikofaktorer, + tilretteleggingstiltak, + tilrettelegginger + ); + } +} diff --git a/kontrakt/src/test/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/util/maler/ArbeidsforholdMaler.java b/kontrakt/src/test/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/util/maler/ArbeidsforholdMaler.java index 65f2a27ba..5ae40a3a2 100644 --- a/kontrakt/src/test/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/util/maler/ArbeidsforholdMaler.java +++ b/kontrakt/src/test/java/no/nav/foreldrepenger/selvbetjening/kontrakt/innsending/v2/util/maler/ArbeidsforholdMaler.java @@ -2,6 +2,7 @@ import no.nav.foreldrepenger.common.domain.Fødselsnummer; import no.nav.foreldrepenger.common.domain.Orgnummer; +import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger.arbeidsforhold.ArbeidsforholdDto; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger.arbeidsforhold.PrivatArbeidsgiverDto; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger.arbeidsforhold.SelvstendigNæringsdrivendeDto; import no.nav.foreldrepenger.selvbetjening.kontrakt.innsending.v2.dto.svangerskapspenger.arbeidsforhold.VirksomhetDto; @@ -11,15 +12,15 @@ public final class ArbeidsforholdMaler { private ArbeidsforholdMaler() { } - public static VirksomhetDto virksomhet(Orgnummer orgnummer) { + public static ArbeidsforholdDto virksomhet(Orgnummer orgnummer) { return new VirksomhetDto(orgnummer); } - public static PrivatArbeidsgiverDto privatArbeidsgiver(Fødselsnummer fnr) { + public static ArbeidsforholdDto privatArbeidsgiver(Fødselsnummer fnr) { return new PrivatArbeidsgiverDto(fnr); } - public static SelvstendigNæringsdrivendeDto selvstendigNæringsdrivende() { + public static ArbeidsforholdDto selvstendigNæringsdrivende() { return new SelvstendigNæringsdrivendeDto( "risikofaktorer fra søker", "tilretteleggingstiltak fra søker" diff --git a/pom.xml b/pom.xml index bf66586f7..df0579c5e 100644 --- a/pom.xml +++ b/pom.xml @@ -43,7 +43,7 @@ UTF-8 2.1.1 - 3.1.6 + 3.1.9 4.0.5 5.1.2