From 6d19e371c95ca5d33994bcc9190ffecb5aac4f65 Mon Sep 17 00:00:00 2001 From: Johan Henrik Date: Wed, 23 Feb 2022 15:18:15 +0100 Subject: [PATCH] =?UTF-8?q?TSF-2417=20Lagt=20til=20felter=20for=20landkode?= =?UTF-8?q?=20og=20utenlandsopphold=C3=A5rsak=20for=20visning=20av=20utenl?= =?UTF-8?q?andsperioder.=20(#430)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * TSF-2417 Lagt til felter for landkode og utenlandsoppholdårsak i databasen * Fjernet en debugstreng * TSF-2417 Lagd en test som verifiserer at perioder opprettes med korrekte default verdier for landkode og utenlandsoppholdÅrsak * TST-2417 Lagd en test som verifiserer at periodene lagres med korrekt landkode * TSF-2417 Implementert løsning for å lagre perioder med korrekt landkode * TSF-2417 Lagd en test som verifiserer at periodene lagres med korrekt utenlandsoppholdÅrsak * TSF-2417 Implementert løsning for å lagre perioder med korrekt utenlandsoppholdÅrsak * TSF-2417 Splittet testingen av default verdier for utenlandsinfo Testen for å verifisere default verdier for utenlandsinfo er splittet inn i en test for godkjente og en for ikke godkjente utenaldsopphold perioder. * TSF-2417 Splittet testingen av landkode for utenlandsinfo Testen for å verifisere landkode for utenlandsinfo er splittet inn i en test for godkjente og en for ikke godkjente utenlandsopphold perioder. * TSF-2417 Implementert løsning for landkoder for ikke oppfylte perioder * TSF-2417 Splittet testingen av utenlandsoppholdÅrsak for utenlandsinfo Testen for å verifisere utenlandsoppholdÅrsak for utenlandsinfo er splittet inn i en test for godkjente og en for ikke godkjente utenlandsopphold perioder. * TSF-2417 Implementert fiks for verifisering av årsak * TSF-2417 Lagt til integrasjonstester og implementert en løsning som får testene til å kjøre * TSF-2417 Byttet ut !! med ? i testkode * TSF-2417 Fikset warnings * TSF-2417 Oppdatert navn til databaseskript * Løser merge conflict nummer 2 --- .../uttak/kontrakter/Uttaksgrunnlag.kt | 2 +- .../uttak/kontrakter/Uttaksplan.kt | 20 +- .../uttak/regler/UttaksplanRegler.kt | 31 ++- .../uttak/regler/SimuleringTjenesteTest.kt | 9 +- .../regler/UttakTjenesteGraderingTest.kt | 32 +-- .../uttak/regler/UttaksplanMergerTest.kt | 8 +- .../delregler/MaxAntallDagerRegelTest.kt | 17 +- .../kontrakter_ext/RegelGrunnlagExtKtTest.kt | 4 +- .../server/db/UttaksperiodeRepository.kt | 15 +- ...dkode_og_utenlandsopphold\303\245rsak.sql" | 9 + .../uttak/server/UttakplanApiTest.kt | 184 ++++++++++++++++++ .../uttak/server/db/UttakRepositoryTest.kt | 162 ++++++++++++++- 12 files changed, 456 insertions(+), 37 deletions(-) create mode 100644 "server/src/main/resources/db/migration/V1.18__nye_felter_for_landkode_og_utenlandsopphold\303\245rsak.sql" diff --git a/kontrakter/src/main/kotlin/no/nav/pleiepengerbarn/uttak/kontrakter/Uttaksgrunnlag.kt b/kontrakter/src/main/kotlin/no/nav/pleiepengerbarn/uttak/kontrakter/Uttaksgrunnlag.kt index 54ba2a97..fe14ea4d 100644 --- a/kontrakter/src/main/kotlin/no/nav/pleiepengerbarn/uttak/kontrakter/Uttaksgrunnlag.kt +++ b/kontrakter/src/main/kotlin/no/nav/pleiepengerbarn/uttak/kontrakter/Uttaksgrunnlag.kt @@ -51,5 +51,5 @@ data class SøktUttak( @JsonAutoDetect(getterVisibility = JsonAutoDetect.Visibility.NONE, setterVisibility = JsonAutoDetect.Visibility.NONE, fieldVisibility = JsonAutoDetect.Visibility.ANY) data class UtenlandsoppholdInfo( @JsonProperty("utenlandsoppholdÅrsak") val utenlandsoppholdÅrsak: UtenlandsoppholdÅrsak, - @JsonProperty("landkode") val landkode: String + @JsonProperty("landkode") val landkode: String? ) \ No newline at end of file diff --git a/kontrakter/src/main/kotlin/no/nav/pleiepengerbarn/uttak/kontrakter/Uttaksplan.kt b/kontrakter/src/main/kotlin/no/nav/pleiepengerbarn/uttak/kontrakter/Uttaksplan.kt index c529cb14..bc4ae109 100644 --- a/kontrakter/src/main/kotlin/no/nav/pleiepengerbarn/uttak/kontrakter/Uttaksplan.kt +++ b/kontrakter/src/main/kotlin/no/nav/pleiepengerbarn/uttak/kontrakter/Uttaksplan.kt @@ -86,7 +86,9 @@ data class UttaksperiodeInfo @JsonCreator constructor( @JsonProperty("nattevåk") val nattevåk: Utfall?, @JsonProperty("beredskap") val beredskap: Utfall?, @JsonProperty("endringsstatus") val endringsstatus: Endringsstatus? = null, - @JsonProperty("utenlandsoppholdUtenÅrsak") val utenlandsoppholdUtenÅrsak: Boolean = false + @JsonProperty("utenlandsoppholdUtenÅrsak") val utenlandsoppholdUtenÅrsak: Boolean = false, + @JsonProperty("landkode") val landkode: String? = null, + @JsonProperty("utenlandsoppholdÅrsak") val utenlandsoppholdÅrsak: UtenlandsoppholdÅrsak = UtenlandsoppholdÅrsak.INGEN ) { companion object { @@ -102,7 +104,9 @@ data class UttaksperiodeInfo @JsonCreator constructor( kildeBehandlingUUID: BehandlingUUID, annenPart: AnnenPart, nattevåk: Utfall?, - beredskap: Utfall?): UttaksperiodeInfo { + beredskap: Utfall?, + landkode: String?, + utenlandsoppholdÅrsak: UtenlandsoppholdÅrsak): UttaksperiodeInfo { val årsakerMedOppfylt = årsaker.filter { it.oppfylt } require(årsakerMedOppfylt.isEmpty()) { @@ -122,7 +126,9 @@ data class UttaksperiodeInfo @JsonCreator constructor( kildeBehandlingUUID = kildeBehandlingUUID, annenPart = annenPart, nattevåk = nattevåk, - beredskap = beredskap + beredskap = beredskap, + landkode = landkode, + utenlandsoppholdÅrsak = utenlandsoppholdÅrsak ) } @@ -138,7 +144,9 @@ data class UttaksperiodeInfo @JsonCreator constructor( kildeBehandlingUUID: BehandlingUUID, annenPart: AnnenPart, nattevåk: Utfall?, - beredskap: Utfall?): UttaksperiodeInfo { + beredskap: Utfall?, + landkode: String?, + utenlandsoppholdÅrsak: UtenlandsoppholdÅrsak): UttaksperiodeInfo { require(årsak.oppfylt) { "Kan ikke sette periode til oppfylt med årsak som ikke er for oppfylt. ($årsak)" @@ -157,7 +165,9 @@ data class UttaksperiodeInfo @JsonCreator constructor( kildeBehandlingUUID = kildeBehandlingUUID, annenPart = annenPart, nattevåk = nattevåk, - beredskap = beredskap + beredskap = beredskap, + landkode = landkode, + utenlandsoppholdÅrsak = utenlandsoppholdÅrsak ) } diff --git a/regler/src/main/kotlin/no/nav/pleiepengerbarn/uttak/regler/UttaksplanRegler.kt b/regler/src/main/kotlin/no/nav/pleiepengerbarn/uttak/regler/UttaksplanRegler.kt index ff29733c..2d417a46 100644 --- a/regler/src/main/kotlin/no/nav/pleiepengerbarn/uttak/regler/UttaksplanRegler.kt +++ b/regler/src/main/kotlin/no/nav/pleiepengerbarn/uttak/regler/UttaksplanRegler.kt @@ -7,6 +7,7 @@ import no.nav.pleiepengerbarn.uttak.regler.delregler.FerieRegel import no.nav.pleiepengerbarn.uttak.regler.domene.GraderBeregnet import no.nav.pleiepengerbarn.uttak.regler.domene.RegelGrunnlag import no.nav.pleiepengerbarn.uttak.regler.kontrakter_ext.annenPart +import no.nav.pleiepengerbarn.uttak.regler.kontrakter_ext.overlapperDelvis import no.nav.pleiepengerbarn.uttak.regler.kontrakter_ext.overlapperHelt import java.math.BigDecimal import java.math.RoundingMode @@ -68,6 +69,24 @@ internal object UttaksplanRegler { val nattevåk = grunnlag.finnNattevåk(søktUttaksperiode) val beredskap = grunnlag.finnBeredskap(søktUttaksperiode) val ikkeOppfyltÅrsaker = årsaker.filter { !it.oppfylt } .toSet() + var søktPeriodeOverlapperMedUtenlandsperiode = false + var utenlandsopphold: Map.Entry? = null + val landkode: String? + val utenlandsoppholdÅrsak: UtenlandsoppholdÅrsak + for (utenlandsoppholdElement in grunnlag.utenlandsoppholdperioder) { + if (utenlandsoppholdElement.key.overlapperDelvis(søktUttaksperiode)) { + søktPeriodeOverlapperMedUtenlandsperiode = true + utenlandsopphold = utenlandsoppholdElement + break + } + } + if (søktPeriodeOverlapperMedUtenlandsperiode) { + landkode = utenlandsopphold?.value?.landkode + utenlandsoppholdÅrsak = utenlandsopphold?.value?.utenlandsoppholdÅrsak ?: UtenlandsoppholdÅrsak.INGEN + } else { + landkode = grunnlag.utenlandsoppholdperioder[søktUttaksperiode]?.landkode + utenlandsoppholdÅrsak = grunnlag.utenlandsoppholdperioder[søktUttaksperiode]?.utenlandsoppholdÅrsak ?: UtenlandsoppholdÅrsak.INGEN + } if (ikkeOppfyltÅrsaker.isNotEmpty()) { perioder[søktUttaksperiode] = UttaksperiodeInfo.ikkeOppfylt( utbetalingsgrader = grader.tilUtbetalingsgrader(false), @@ -80,7 +99,9 @@ internal object UttaksplanRegler { kildeBehandlingUUID = grunnlag.behandlingUUID.toString(), annenPart = grunnlag.annenPart(søktUttaksperiode), nattevåk = nattevåk, - beredskap = beredskap + beredskap = beredskap, + landkode = landkode, + utenlandsoppholdÅrsak = utenlandsoppholdÅrsak ) } else { if (grader.årsak.oppfylt) { @@ -101,7 +122,9 @@ internal object UttaksplanRegler { kildeBehandlingUUID = grunnlag.behandlingUUID.toString(), annenPart = grunnlag.annenPart(søktUttaksperiode), nattevåk = nattevåk, - beredskap = beredskap + beredskap = beredskap, + landkode = landkode, + utenlandsoppholdÅrsak = utenlandsoppholdÅrsak ) } else { perioder[søktUttaksperiode] = UttaksperiodeInfo.ikkeOppfylt( @@ -115,7 +138,9 @@ internal object UttaksplanRegler { kildeBehandlingUUID = grunnlag.behandlingUUID.toString(), annenPart = grunnlag.annenPart(søktUttaksperiode), nattevåk = nattevåk, - beredskap = beredskap + beredskap = beredskap, + landkode = landkode, + utenlandsoppholdÅrsak = utenlandsoppholdÅrsak ) } } diff --git a/regler/src/test/kotlin/no/nav/pleiepengerbarn/uttak/regler/SimuleringTjenesteTest.kt b/regler/src/test/kotlin/no/nav/pleiepengerbarn/uttak/regler/SimuleringTjenesteTest.kt index f2dfaf4f..b4bbd432 100644 --- a/regler/src/test/kotlin/no/nav/pleiepengerbarn/uttak/regler/SimuleringTjenesteTest.kt +++ b/regler/src/test/kotlin/no/nav/pleiepengerbarn/uttak/regler/SimuleringTjenesteTest.kt @@ -219,7 +219,9 @@ internal class SimuleringTjenesteTest { kildeBehandlingUUID = UUID.randomUUID().toString(), annenPart = AnnenPart.ALENE, nattevåk = null, - beredskap = null + beredskap = null, + landkode = null, + utenlandsoppholdÅrsak = UtenlandsoppholdÅrsak.INGEN ) } @@ -235,8 +237,9 @@ internal class SimuleringTjenesteTest { kildeBehandlingUUID = UUID.randomUUID().toString(), annenPart = AnnenPart.ALENE, nattevåk = null, - beredskap = null - + beredskap = null, + landkode = null, + utenlandsoppholdÅrsak = UtenlandsoppholdÅrsak.INGEN ) } diff --git a/regler/src/test/kotlin/no/nav/pleiepengerbarn/uttak/regler/UttakTjenesteGraderingTest.kt b/regler/src/test/kotlin/no/nav/pleiepengerbarn/uttak/regler/UttakTjenesteGraderingTest.kt index 98d25236..d7729c77 100644 --- a/regler/src/test/kotlin/no/nav/pleiepengerbarn/uttak/regler/UttakTjenesteGraderingTest.kt +++ b/regler/src/test/kotlin/no/nav/pleiepengerbarn/uttak/regler/UttakTjenesteGraderingTest.kt @@ -227,7 +227,9 @@ internal class UttakTjenesteGraderingTest { pleiebehov = Pleiebehov.PROSENT_100.prosent, annenPart = AnnenPart.ALENE, nattevåk = null, - beredskap = null + beredskap = null, + landkode = null, + utenlandsoppholdÅrsak = UtenlandsoppholdÅrsak.INGEN ) ), trukketUttak = listOf() @@ -295,7 +297,9 @@ internal class UttakTjenesteGraderingTest { søkersTapteArbeidstid = Prosent(40), oppgittTilsyn = null, nattevåk = null, - beredskap = null + beredskap = null, + landkode = null, + utenlandsoppholdÅrsak = UtenlandsoppholdÅrsak.INGEN ) ), trukketUttak = listOf() @@ -359,7 +363,9 @@ internal class UttakTjenesteGraderingTest { knekkpunktTyper = setOf(), annenPart = AnnenPart.ALENE, nattevåk = null, - beredskap = null + beredskap = null, + landkode = null, + utenlandsoppholdÅrsak = UtenlandsoppholdÅrsak.INGEN ) ), trukketUttak = listOf() @@ -696,13 +702,15 @@ internal class UttakTjenesteGraderingTest { knekkpunktTyper = setOf(), annenPart = AnnenPart.ALENE, nattevåk = null, - beredskap = null - ) - ), - trukketUttak = listOf() - ), - tredjePartsBehandlingUUID to Uttaksplan( - perioder = mapOf( + beredskap = null, + landkode = null, + utenlandsoppholdÅrsak = UtenlandsoppholdÅrsak.INGEN + ) + ), + trukketUttak = listOf() + ), + tredjePartsBehandlingUUID to Uttaksplan( + perioder = mapOf( helePerioden to UttaksperiodeInfo.oppfylt( kildeBehandlingUUID = tredjePartsBehandlingUUID.toString(), uttaksgrad = Prosent(100), @@ -714,7 +722,9 @@ internal class UttakTjenesteGraderingTest { knekkpunktTyper = setOf(), annenPart = AnnenPart.ALENE, nattevåk = null, - beredskap = null + beredskap = null, + landkode = null, + utenlandsoppholdÅrsak = UtenlandsoppholdÅrsak.INGEN ) ), trukketUttak = listOf() diff --git a/regler/src/test/kotlin/no/nav/pleiepengerbarn/uttak/regler/UttaksplanMergerTest.kt b/regler/src/test/kotlin/no/nav/pleiepengerbarn/uttak/regler/UttaksplanMergerTest.kt index 0da019f5..4a6eb2f7 100644 --- a/regler/src/test/kotlin/no/nav/pleiepengerbarn/uttak/regler/UttaksplanMergerTest.kt +++ b/regler/src/test/kotlin/no/nav/pleiepengerbarn/uttak/regler/UttaksplanMergerTest.kt @@ -23,7 +23,9 @@ internal class UttaksplanMergerTest { kildeBehandlingUUID = behandlingUUID, annenPart = AnnenPart.ALENE, nattevåk = null, - beredskap = null + beredskap = null, + landkode = null, + utenlandsoppholdÅrsak = UtenlandsoppholdÅrsak.INGEN ) private fun ikkeOppfylt(behandlingUUID: BehandlingUUID) = UttaksperiodeInfo.ikkeOppfylt( @@ -36,7 +38,9 @@ internal class UttaksplanMergerTest { kildeBehandlingUUID = behandlingUUID, annenPart = AnnenPart.ALENE, nattevåk = null, - beredskap = null + beredskap = null, + landkode = null, + utenlandsoppholdÅrsak = UtenlandsoppholdÅrsak.INGEN ) @Test diff --git a/regler/src/test/kotlin/no/nav/pleiepengerbarn/uttak/regler/delregler/MaxAntallDagerRegelTest.kt b/regler/src/test/kotlin/no/nav/pleiepengerbarn/uttak/regler/delregler/MaxAntallDagerRegelTest.kt index f7740c89..c3111279 100644 --- a/regler/src/test/kotlin/no/nav/pleiepengerbarn/uttak/regler/delregler/MaxAntallDagerRegelTest.kt +++ b/regler/src/test/kotlin/no/nav/pleiepengerbarn/uttak/regler/delregler/MaxAntallDagerRegelTest.kt @@ -195,7 +195,9 @@ class MaxAntallDagerRegelTest { knekkpunktTyper = setOf(), annenPart = AnnenPart.ALENE, nattevåk = null, - beredskap = null + beredskap = null, + landkode = null, + utenlandsoppholdÅrsak = UtenlandsoppholdÅrsak.INGEN ), annenPeriode2 to UttaksperiodeInfo.ikkeOppfylt( kildeBehandlingUUID = annenPartsBehandlingUUID.toString(), @@ -207,7 +209,9 @@ class MaxAntallDagerRegelTest { annenPart = AnnenPart.ALENE, nattevåk = null, beredskap = null, - årsaker = setOf(Årsak.FOR_LAV_INNTEKT) + årsaker = setOf(Årsak.FOR_LAV_INNTEKT), + landkode = null, + utenlandsoppholdÅrsak = UtenlandsoppholdÅrsak.INGEN ), annenPeriode3 to UttaksperiodeInfo.oppfylt( kildeBehandlingUUID = annenPartsBehandlingUUID.toString(), @@ -220,7 +224,9 @@ class MaxAntallDagerRegelTest { knekkpunktTyper = setOf(), annenPart = AnnenPart.ALENE, nattevåk = null, - beredskap = null + beredskap = null, + landkode = null, + utenlandsoppholdÅrsak = UtenlandsoppholdÅrsak.INGEN ) ), @@ -451,7 +457,9 @@ private fun dummyRegelGrunnlagMedAndreParter(helePerioden: LukketPeriode, annenP knekkpunktTyper = setOf(), annenPart = AnnenPart.ALENE, nattevåk = null, - beredskap = null + beredskap = null, + landkode = null, + utenlandsoppholdÅrsak = UtenlandsoppholdÅrsak.INGEN ) ), trukketUttak = listOf() @@ -465,6 +473,7 @@ private fun dummyRegelGrunnlagMedAndreParter(helePerioden: LukketPeriode, annenP kravprioritetForBehandlinger = mapOf(helePerioden to listOf(annenPartsBehandlingUUID)) ) + private fun dummyUttaksperiodeInfo(oppgittTilsyn: Duration? = null, utfall: Utfall = Utfall.OPPFYLT) = UttaksperiodeInfo( utfall = utfall, utbetalingsgrader = mapOf(arbeidsforhold1 to Prosent(100)).somUtbetalingsgrader(), diff --git a/regler/src/test/kotlin/no/nav/pleiepengerbarn/uttak/regler/kontrakter_ext/RegelGrunnlagExtKtTest.kt b/regler/src/test/kotlin/no/nav/pleiepengerbarn/uttak/regler/kontrakter_ext/RegelGrunnlagExtKtTest.kt index c5dcbcfb..45ba834a 100644 --- a/regler/src/test/kotlin/no/nav/pleiepengerbarn/uttak/regler/kontrakter_ext/RegelGrunnlagExtKtTest.kt +++ b/regler/src/test/kotlin/no/nav/pleiepengerbarn/uttak/regler/kontrakter_ext/RegelGrunnlagExtKtTest.kt @@ -49,7 +49,9 @@ internal class RegelGrunnlagExtKtTest { oppgittTilsyn = null, annenPart = AnnenPart.ALENE, nattevåk = null, - beredskap = null + beredskap = null, + landkode = null, + utenlandsoppholdÅrsak = UtenlandsoppholdÅrsak.INGEN ) )) } diff --git a/server/src/main/kotlin/no/nav/pleiepengerbarn/uttak/server/db/UttaksperiodeRepository.kt b/server/src/main/kotlin/no/nav/pleiepengerbarn/uttak/server/db/UttaksperiodeRepository.kt index 335aded7..aa3d0377 100644 --- a/server/src/main/kotlin/no/nav/pleiepengerbarn/uttak/server/db/UttaksperiodeRepository.kt +++ b/server/src/main/kotlin/no/nav/pleiepengerbarn/uttak/server/db/UttaksperiodeRepository.kt @@ -42,7 +42,8 @@ internal class UttaksperiodeRepository { pleiebehov, etablert_tilsyn, andre_sokeres_tilsyn, tilgjengelig_for_soker, uttaksgrad, aarsaker, utfall, sokers_tapte_arbeidstid, oppgitt_tilsyn, inngangsvilkar, knekkpunkt_typer, kilde_behandling_uuid, annen_part, overse_etablert_tilsyn_arsak, - nattevåk, beredskap, andre_sokeres_tilsyn_reberegnet, endringsstatus, utenlandsopphold_uten_aarsak + nattevåk, beredskap, andre_sokeres_tilsyn_reberegnet, endringsstatus, utenlandsopphold_uten_aarsak, + landkode, utenlandsopphold_aarsak from uttaksperiode where uttaksresultat_id = :uttaksresultat_id """.trimIndent() @@ -68,7 +69,6 @@ internal class UttaksperiodeRepository { val endringsstatusString = rs.getString("endringsstatus") val endringsstatus = if (endringsstatusString != null) Endringsstatus.valueOf(endringsstatusString) else null - PeriodeOgUttaksperiodeInfo( uttaksperiodeId = rs.getLong("id"), periode = LukketPeriode( @@ -91,7 +91,9 @@ internal class UttaksperiodeRepository { nattevåk = tilUtfall(rs.getString("nattevåk")), beredskap = tilUtfall(rs.getString("beredskap")), endringsstatus = endringsstatus, - utenlandsoppholdUtenÅrsak = rs.getBoolean("utenlandsopphold_uten_aarsak") + utenlandsoppholdUtenÅrsak = rs.getBoolean("utenlandsopphold_uten_aarsak"), + landkode = rs.getString("landkode"), + utenlandsoppholdÅrsak = UtenlandsoppholdÅrsak.valueOf(rs.getString("utenlandsopphold_aarsak")) ) ) } @@ -128,11 +130,12 @@ internal class UttaksperiodeRepository { insert into uttaksperiode (id, uttaksresultat_id, fom, tom, pleiebehov, etablert_tilsyn, andre_sokeres_tilsyn, andre_sokeres_tilsyn_reberegnet, tilgjengelig_for_soker, uttaksgrad, aarsaker, utfall, sokers_tapte_arbeidstid, oppgitt_tilsyn, inngangsvilkar, knekkpunkt_typer, - kilde_behandling_uuid, annen_part, overse_etablert_tilsyn_arsak, nattevåk, beredskap, endringsstatus, utenlandsopphold_uten_aarsak) + kilde_behandling_uuid, annen_part, overse_etablert_tilsyn_arsak, nattevåk, beredskap, endringsstatus, utenlandsopphold_uten_aarsak, + landkode, utenlandsopphold_aarsak) values(nextval('seq_uttaksperiode'), :uttaksresultat_id, :fom, :tom, :pleiebehov, :etablert_tilsyn, :andre_sokeres_tilsyn, :andre_sokeres_tilsyn_reberegnet, :tilgjengelig_for_soker, :uttaksgrad, :aarsaker, :utfall::utfall, :sokers_tapte_arbeidstid, :oppgitt_tilsyn, :inngangsvilkar, :knekkpunkt_typer, :kilde_behandling_uuid, :annen_part::annen_part, :overse_etablert_tilsyn_arsak::overse_etablert_tilsyn_arsak, - :nattevåk::utfall, :beredskap::utfall, :endringsstatus::endringsstatus, :utenlandsopphold_uten_aarsak) + :nattevåk::utfall, :beredskap::utfall, :endringsstatus::endringsstatus, :utenlandsopphold_uten_aarsak, :landkode, :utenlandsopphold_aarsak) """.trimIndent() val keyHolder = GeneratedKeyHolder() @@ -159,6 +162,8 @@ internal class UttaksperiodeRepository { .addValue("beredskap", info.beredskap?.name, Types.OTHER) .addValue("endringsstatus", info.endringsstatus?.name, Types.OTHER) .addValue("utenlandsopphold_uten_aarsak", info.utenlandsoppholdUtenÅrsak) + .addValue("landkode", info.landkode) + .addValue("utenlandsopphold_aarsak", info.utenlandsoppholdÅrsak.toString()) jdbcTemplate.update(sql, params, keyHolder, arrayOf("id")) return keyHolder.key as Long diff --git "a/server/src/main/resources/db/migration/V1.18__nye_felter_for_landkode_og_utenlandsopphold\303\245rsak.sql" "b/server/src/main/resources/db/migration/V1.18__nye_felter_for_landkode_og_utenlandsopphold\303\245rsak.sql" new file mode 100644 index 00000000..8ff7c677 --- /dev/null +++ "b/server/src/main/resources/db/migration/V1.18__nye_felter_for_landkode_og_utenlandsopphold\303\245rsak.sql" @@ -0,0 +1,9 @@ +ALTER TABLE uttaksperiode ADD COLUMN landkode VARCHAR(3); +ALTER TABLE uttaksperiode ADD COLUMN utenlandsopphold_aarsak VARCHAR(127) DEFAULT 'INGEN'; +ALTER TABLE uttaksperiode +ADD CONSTRAINT utenlandsopphold_aarsak_regel +CHECK (utenlandsopphold_aarsak IN ( + 'BARNET_INNLAGT_I_HELSEINSTITUSJON_FOR_NORSK_OFFENTLIG_REGNING', + 'BARNET_INNLAGT_I_HELSEINSTITUSJON_DEKKET_ETTER_AVTALE_MED_ET_ANNET_LAND_OM_TRYGD', + 'INGEN' +)); \ No newline at end of file diff --git a/server/src/test/kotlin/no/nav/pleiepengerbarn/uttak/server/UttakplanApiTest.kt b/server/src/test/kotlin/no/nav/pleiepengerbarn/uttak/server/UttakplanApiTest.kt index d8e1eb52..8122c858 100644 --- a/server/src/test/kotlin/no/nav/pleiepengerbarn/uttak/server/UttakplanApiTest.kt +++ b/server/src/test/kotlin/no/nav/pleiepengerbarn/uttak/server/UttakplanApiTest.kt @@ -1198,6 +1198,143 @@ class UttakplanApiTest(@Autowired val restTemplate: TestRestTemplate) { uttaksplan.assertOppfylt(periode = søknadsperiode, utenlandsoppholdUtenÅrsak = true) } + @Test + internal fun `Oppfylte perioder skal lagres med korrekte default verdier for landkode og utenlandsoppholdÅrsak`() { + val saksnummer = opprettUttakUtenlandsopphold(LukketPeriode("2021-01-04/2021-02-28")) + + val søknadsperiode = LukketPeriode("2021-12-13/2021-12-17") + val grunnlag = lagGrunnlag( + søknadsperiode = søknadsperiode, + arbeid = listOf( + Arbeid(ARBEIDSFORHOLD1, mapOf(søknadsperiode to ArbeidsforholdPeriodeInfo(jobberNormalt = FULL_DAG, jobberNå = INGENTING))) + ), + pleiebehov = mapOf(søknadsperiode to Pleiebehov.PROSENT_100), + saksnummer = saksnummer + ) + val uttaksplan = grunnlag.opprettUttaksplan() + + uttaksplan.assertOppfylt(søknadsperiode, landkode = null, utenlandsoppholdÅrsak = UtenlandsoppholdÅrsak.INGEN) + } + + @Test + internal fun `Ikke oppfylte perioder skal lagres med korrekte default verdier for landkode og utenlandsoppholdÅrsak`() { + val saksnummer = opprettUttakUtenlandsopphold(LukketPeriode("2021-01-04/2021-03-07")) + + val søknadsperiode = LukketPeriode("2021-02-22/2021-03-07") + val grunnlag = lagGrunnlag( + søknadsperiode = søknadsperiode, + arbeid = listOf( + Arbeid(ARBEIDSFORHOLD1, mapOf( + LukketPeriode("2021-02-22/2021-02-28") to ArbeidsforholdPeriodeInfo(jobberNormalt = FULL_DAG, jobberNå = FULL_DAG) + )) + ), + pleiebehov = mapOf(søknadsperiode to Pleiebehov.PROSENT_100), + saksnummer = saksnummer + ).copy( + utenlandsoppholdperioder = mapOf( + søknadsperiode to UtenlandsoppholdInfo(UtenlandsoppholdÅrsak.INGEN, landkode = null) + ) + ) + val uttaksplan = grunnlag.opprettUttaksplan() + + uttaksplan.assertIkkeOppfylt(periode = LukketPeriode("2021-02-22/2021-02-26"), + ikkeOppfyltÅrsaker = setOf(Årsak.FOR_LAV_TAPT_ARBEIDSTID), + endringsstatus = Endringsstatus.ENDRET, landkode = null, + utenlandsoppholdÅrsak = UtenlandsoppholdÅrsak.INGEN) + } + + @Test + internal fun `Oppfylte perioder med utenlandsopphold skal lagres med korrekt landkode i UttaksperiodeInfo`() { + val søknadsperiode = LukketPeriode("2021-01-04/2021-01-08") + + val grunnlag = lagGrunnlag( + søknadsperiode = søknadsperiode, + arbeid = listOf( + Arbeid(ARBEIDSFORHOLD1, mapOf(søknadsperiode to ArbeidsforholdPeriodeInfo(jobberNormalt = FULL_DAG, jobberNå = INGENTING))) + ), + pleiebehov = mapOf(søknadsperiode to Pleiebehov.PROSENT_100), + ).copy( + utenlandsoppholdperioder = mapOf(LukketPeriode("2021-01-05/2021-01-07") to UtenlandsoppholdInfo(UtenlandsoppholdÅrsak.INGEN, "USA")) + ) + val uttaksplan = grunnlag.opprettUttaksplan() + + uttaksplan.assertOppfylt(periode = LukketPeriode("2021-01-05/2021-01-07"), utenlandsoppholdUtenÅrsak = true, landkode = "USA") + } + + @Test + internal fun `Ikke oppfylte perioder skal lagres med korrekt landkode i UttaksperiodeInfo`() { + val saksnummer = opprettUttakUtenlandsopphold(LukketPeriode("2021-01-04/2021-03-07")) + + val søknadsperiode = LukketPeriode("2021-02-22/2021-03-07") + val grunnlag = lagGrunnlag( + søknadsperiode = søknadsperiode, + arbeid = listOf( + Arbeid(ARBEIDSFORHOLD1, mapOf( + LukketPeriode("2021-02-22/2021-02-28") to ArbeidsforholdPeriodeInfo(jobberNormalt = FULL_DAG, jobberNå = FULL_DAG) + )) + ), + pleiebehov = mapOf(søknadsperiode to Pleiebehov.PROSENT_100), + saksnummer = saksnummer + ).copy( + utenlandsoppholdperioder = mapOf( + søknadsperiode to UtenlandsoppholdInfo(UtenlandsoppholdÅrsak.INGEN, "USA") + ) + ) + val uttaksplan = grunnlag.opprettUttaksplan() + + uttaksplan.assertIkkeOppfylt(periode = LukketPeriode("2021-02-22/2021-02-26"), + ikkeOppfyltÅrsaker = setOf(Årsak.FOR_LAV_TAPT_ARBEIDSTID), + endringsstatus = Endringsstatus.ENDRET, + landkode = "USA") + } + + @Test + internal fun `Oppfylte perioder med utenlandsopphold skal lagres med korrekt utenlandsoppholdÅrsak i UttaksperiodeInfo`() { + val søknadsperiode = LukketPeriode("2021-01-04/2021-01-08") + + val grunnlag = lagGrunnlag( + søknadsperiode = søknadsperiode, + arbeid = listOf( + Arbeid(ARBEIDSFORHOLD1, mapOf(søknadsperiode to ArbeidsforholdPeriodeInfo(jobberNormalt = FULL_DAG, jobberNå = INGENTING))) + ), + pleiebehov = mapOf(søknadsperiode to Pleiebehov.PROSENT_100), + ).copy( + utenlandsoppholdperioder = mapOf(LukketPeriode("2021-01-05/2021-01-07") + to UtenlandsoppholdInfo(UtenlandsoppholdÅrsak.BARNET_INNLAGT_I_HELSEINSTITUSJON_FOR_NORSK_OFFENTLIG_REGNING, "USA")) + ) + val uttaksplan = grunnlag.opprettUttaksplan() + + uttaksplan.assertOppfylt(periode = LukketPeriode("2021-01-05/2021-01-07"), utenlandsoppholdUtenÅrsak = false, + utenlandsoppholdÅrsak = UtenlandsoppholdÅrsak.BARNET_INNLAGT_I_HELSEINSTITUSJON_FOR_NORSK_OFFENTLIG_REGNING, landkode = "USA") + } + + @Test + internal fun `Ikke oppfylte perioder skal lagres med korrekt utenlandsoppholdÅrsak i UttaksperiodeInfo`() { + val saksnummer = opprettUttakUtenlandsopphold(LukketPeriode("2021-01-04/2021-03-07")) + + val søknadsperiode = LukketPeriode("2021-02-22/2021-03-07") + val grunnlag = lagGrunnlag( + søknadsperiode = søknadsperiode, + arbeid = listOf( + Arbeid(ARBEIDSFORHOLD1, mapOf( + LukketPeriode("2021-02-22/2021-02-28") to ArbeidsforholdPeriodeInfo(jobberNormalt = FULL_DAG, jobberNå = FULL_DAG) + )) + ), + pleiebehov = mapOf(søknadsperiode to Pleiebehov.PROSENT_100), + saksnummer = saksnummer + ).copy( + utenlandsoppholdperioder = mapOf( + søknadsperiode to UtenlandsoppholdInfo(UtenlandsoppholdÅrsak.BARNET_INNLAGT_I_HELSEINSTITUSJON_FOR_NORSK_OFFENTLIG_REGNING, "USA") + ) + ) + val uttaksplan = grunnlag.opprettUttaksplan() + + uttaksplan.assertIkkeOppfylt(periode = LukketPeriode("2021-02-22/2021-02-26"), + ikkeOppfyltÅrsaker = setOf(Årsak.FOR_LAV_TAPT_ARBEIDSTID), + endringsstatus = Endringsstatus.ENDRET, + landkode = "USA", + utenlandsoppholdÅrsak = UtenlandsoppholdÅrsak.BARNET_INNLAGT_I_HELSEINSTITUSJON_FOR_NORSK_OFFENTLIG_REGNING) + } @Test internal fun `Simulering skal gi samme resultat med samme grunnlag som forrige uttaksplan`() { @@ -1307,6 +1444,34 @@ class UttakplanApiTest(@Autowired val restTemplate: TestRestTemplate) { } } + /* + * Lagt til en testmetode som tester informasjon om utenlandsperioder. + * Valgte å lage en metode med ekstra parametre så slipper vi å skrive om ekisterende tester. + */ + private fun Uttaksplan.assertOppfylt( + periode: LukketPeriode, + grad: Prosent = HUNDRE_PROSENT, + gradPerArbeidsforhold: Map = mapOf(ARBEIDSFORHOLD1 to HUNDRE_PROSENT), + oppfyltÅrsak: Årsak = Årsak.FULL_DEKNING, + endringsstatus: Endringsstatus = Endringsstatus.NY, + utenlandsoppholdUtenÅrsak: Boolean = false, + landkode: String? = null, + utenlandsoppholdÅrsak: UtenlandsoppholdÅrsak = UtenlandsoppholdÅrsak.INGEN + ) { + assertOppfylt( + periode, grad, gradPerArbeidsforhold, oppfyltÅrsak, + endringsstatus, utenlandsoppholdUtenÅrsak + ) + val periodeInfo = perioder[periode] ?: fail("Finner ikke periode: $periode") + when (periodeInfo.utfall) { + Utfall.OPPFYLT -> { + assertThat(periodeInfo.landkode).isEqualTo(landkode) + assertThat(periodeInfo.utenlandsoppholdÅrsak).isEqualTo(utenlandsoppholdÅrsak) + } + else -> fail("Perioden $periode er ikke oppfylt") + } + } + private fun Uttaksplan.assertSøkersTaptArbeid(periode: LukketPeriode, søkersTapteArbeidstid: Prosent, søkersTapteTimer: Duration) { val periodeInfo = perioder[periode] ?: fail("Finner ikke periode: $periode") assertThat(periodeInfo.søkersTapteArbeidstid).isEqualByComparingTo(søkersTapteArbeidstid) @@ -1329,6 +1494,25 @@ class UttakplanApiTest(@Autowired val restTemplate: TestRestTemplate) { } } + private fun Uttaksplan.assertIkkeOppfylt(periode: LukketPeriode, + ikkeOppfyltÅrsaker: Set<Årsak> = setOf(), + knekkpunktTyper: Set = setOf(), + endringsstatus: Endringsstatus, + landkode: String? = null, + utenlandsoppholdÅrsak: UtenlandsoppholdÅrsak = UtenlandsoppholdÅrsak.INGEN) { + assertIkkeOppfylt(periode, ikkeOppfyltÅrsaker, knekkpunktTyper, endringsstatus) + val periodeInfo = perioder[periode] ?: fail("Finner ikke periode: $periode") + when (periodeInfo.utfall) { + Utfall.IKKE_OPPFYLT -> { + assertThat(periodeInfo.landkode).isEqualTo(landkode) + assertThat(periodeInfo.utenlandsoppholdÅrsak).isEqualTo(utenlandsoppholdÅrsak) + } + else -> fail("Perioden $periode er oppfylt") + } + + } + + private fun Duration.prosent(prosent: Long):Duration { return this.multipliedBy(prosent).dividedBy(100) } diff --git a/server/src/test/kotlin/no/nav/pleiepengerbarn/uttak/server/db/UttakRepositoryTest.kt b/server/src/test/kotlin/no/nav/pleiepengerbarn/uttak/server/db/UttakRepositoryTest.kt index 1d7d3862..0e17528a 100644 --- a/server/src/test/kotlin/no/nav/pleiepengerbarn/uttak/server/db/UttakRepositoryTest.kt +++ b/server/src/test/kotlin/no/nav/pleiepengerbarn/uttak/server/db/UttakRepositoryTest.kt @@ -42,6 +42,84 @@ internal class UttakRepositoryTest { @Autowired private lateinit var uttakRepository: UttakRepository + @Test + internal fun `Ikke oppfylt uttaksplan skal lagre informasjon om utenlandsperioder`() { + val behandlingUUID = UUID.randomUUID() + + val landkode = "CAN" + val utenlandsoppholdÅrsak = UtenlandsoppholdÅrsak.INGEN + val grunnlagJanuar = dummyRegelGrunnlag(heleJanuar, behandlingUUID) + val uttakJanuar = dummyIkkeOppfyltUttaksplanMedUtenlandsopphold(heleJanuar, landkode, utenlandsoppholdÅrsak) + uttakRepository.lagre(uttaksplan = uttakJanuar, regelGrunnlag = grunnlagJanuar) + val uttaksplan = uttakRepository.hent(behandlingUUID) + assertThat(uttaksplan).isNotNull + // Krever at landkodene og utenlandsoppholdårsaken er som før. + uttaksplan!!.perioder.values.forEach{ it -> assertThat(it.landkode).isEqualTo(landkode)} + uttaksplan.perioder.values.forEach{ it -> assertThat(it.utenlandsoppholdÅrsak).isEqualTo(utenlandsoppholdÅrsak)} + } + + @Test + internal fun `Ikke oppfylt uttaksplan skal lagre informasjon om utenlandsperioder med gyldig utenlandsoppholdÅrsak`() { + val behandlingUUID = UUID.randomUUID() + + val landkode = "CAN" + val utenlandsoppholdÅrsak = UtenlandsoppholdÅrsak.BARNET_INNLAGT_I_HELSEINSTITUSJON_DEKKET_ETTER_AVTALE_MED_ET_ANNET_LAND_OM_TRYGD + val grunnlagJanuar = dummyRegelGrunnlag(heleJanuar, behandlingUUID) + val uttakJanuar = dummyIkkeOppfyltUttaksplanMedUtenlandsopphold(heleJanuar, landkode, utenlandsoppholdÅrsak) + uttakRepository.lagre(uttaksplan = uttakJanuar, regelGrunnlag = grunnlagJanuar) + val uttaksplan = uttakRepository.hent(behandlingUUID) + assertThat(uttaksplan).isNotNull + // Krever at landkodene og utenlandsoppholdårsaken er som før. + uttaksplan!!.perioder.values.forEach{ it -> assertThat(it.landkode).isEqualTo(landkode)} + uttaksplan.perioder.values.forEach{ it -> assertThat(it.utenlandsoppholdÅrsak).isEqualTo(utenlandsoppholdÅrsak)} + } + + @Test + internal fun `Oppfylt uttaksplan skal lagre informasjon om utenlandsperioder`() { + val behandlingUUID = UUID.randomUUID() + + val landkode = "CAN" + val utenlandsoppholdÅrsak = UtenlandsoppholdÅrsak.BARNET_INNLAGT_I_HELSEINSTITUSJON_DEKKET_ETTER_AVTALE_MED_ET_ANNET_LAND_OM_TRYGD + val grunnlagJanuar = dummyRegelGrunnlag(heleJanuar, behandlingUUID) + val uttakJanuar = dummyUttaksplanMedUtenlandsopphold(heleJanuar, landkode, utenlandsoppholdÅrsak) + uttakRepository.lagre(uttaksplan = uttakJanuar, regelGrunnlag = grunnlagJanuar) + val uttaksplan = uttakRepository.hent(behandlingUUID) + assertThat(uttaksplan).isNotNull + // Krever at landkodene og utenlandsoppholdårsaken er som før. + uttaksplan!!.perioder.values.forEach{ it -> assertThat(it.landkode).isEqualTo(landkode)} + uttaksplan!!.perioder.values.forEach{ it -> assertThat(it.utenlandsoppholdÅrsak).isEqualTo(utenlandsoppholdÅrsak)} + } + + @Test + internal fun `Ikke oppfylt uttaksplan uten informasjon om utenlandsperioder skal lagres med standardverdier`() { + val behandlingUUID = UUID.randomUUID() + + val grunnlagJanuar = dummyRegelGrunnlag(heleJanuar, behandlingUUID) + val uttakJanuar = dummyIkkeOppfyltUttaksplan(heleJanuar) + uttakRepository.lagre(uttaksplan = uttakJanuar, regelGrunnlag = grunnlagJanuar) + val uttaksplan = uttakRepository.hent(behandlingUUID) + assertThat(uttaksplan).isNotNull + // Krever at landkoden er null og utenlandsoppholdårsaken er INGEN. + uttaksplan!!.perioder.values.forEach{ it -> assertThat(it.landkode).isNull()} + uttaksplan.perioder.values.forEach{ it -> assertThat(it.utenlandsoppholdÅrsak) + .isEqualTo(UtenlandsoppholdÅrsak.INGEN)} + } + + @Test + internal fun `Oppfylt uttaksplan uten informasjon om utenlandsperioder skal lagres med standardverdier`() { + val behandlingUUID = UUID.randomUUID() + + val grunnlagJanuar = dummyRegelGrunnlag(heleJanuar, behandlingUUID) + val uttakJanuar = dummyUttaksplan(heleJanuar) + uttakRepository.lagre(uttaksplan = uttakJanuar, regelGrunnlag = grunnlagJanuar) + val uttaksplan = uttakRepository.hent(behandlingUUID) + assertThat(uttaksplan).isNotNull + // Krever at landkoden er null og utenlandsoppholdårsaken er INGEN. + uttaksplan!!.perioder.values.forEach{ it -> assertThat(it.landkode).isNull()} + uttaksplan.perioder.values.forEach{ it -> assertThat(it.utenlandsoppholdÅrsak) + .isEqualTo(UtenlandsoppholdÅrsak.INGEN)} + } + @Test internal fun `Søker etter ikke eksisterende behandling skal føre til exception`() { val uttaksplan = uttakRepository.hent(UUID.randomUUID()) @@ -264,8 +342,86 @@ internal class UttakRepositoryTest { oppgittTilsyn = null, annenPart = AnnenPart.ALENE, nattevåk = null, - beredskap = null) + beredskap = null, + landkode = null, + utenlandsoppholdÅrsak = UtenlandsoppholdÅrsak.INGEN) + ) + ) + } + private fun dummyIkkeOppfyltUttaksplan(periode:LukketPeriode): Uttaksplan { + return Uttaksplan( + perioder = mapOf( + periode to UttaksperiodeInfo.ikkeOppfylt( + kildeBehandlingUUID = UUID.randomUUID().toString(), + årsaker = setOf(Årsak.FOR_MANGE_DAGER_UTENLANDSOPPHOLD), + pleiebehov = Pleiebehov.PROSENT_200.prosent.setScale(2, RoundingMode.HALF_UP), + knekkpunktTyper = setOf(), + utbetalingsgrader = listOf(Utbetalingsgrader( + arbeidsforhold = arbeidsforhold1, + utbetalingsgrad = Prosent(100).setScale(2, RoundingMode.HALF_UP), + normalArbeidstid = FULL_DAG, + faktiskArbeidstid = Duration.ZERO)), + søkersTapteArbeidstid = Prosent(100).setScale(2, RoundingMode.HALF_UP), + oppgittTilsyn = null, + annenPart = AnnenPart.ALENE, + nattevåk = null, + beredskap = null, + landkode = null, + utenlandsoppholdÅrsak = UtenlandsoppholdÅrsak.INGEN) + ), + trukketUttak = listOf() + ) + } + + private fun dummyUttaksplanMedUtenlandsopphold(periode:LukketPeriode, landkode: String, + utenlandsoppholdÅrsak: UtenlandsoppholdÅrsak): Uttaksplan { + return Uttaksplan( + perioder = mapOf( + periode to UttaksperiodeInfo.oppfylt( + kildeBehandlingUUID = UUID.randomUUID().toString(), + uttaksgrad = Prosent(100).setScale(2, RoundingMode.HALF_UP), + årsak = Årsak.FULL_DEKNING, + pleiebehov = Pleiebehov.PROSENT_200.prosent.setScale(2, RoundingMode.HALF_UP), + knekkpunktTyper = setOf(), + utbetalingsgrader = listOf(Utbetalingsgrader( + arbeidsforhold = arbeidsforhold1, + utbetalingsgrad = Prosent(100).setScale(2, RoundingMode.HALF_UP), + normalArbeidstid = FULL_DAG, + faktiskArbeidstid = Duration.ZERO)), + søkersTapteArbeidstid = Prosent(100).setScale(2, RoundingMode.HALF_UP), + oppgittTilsyn = null, + annenPart = AnnenPart.ALENE, + nattevåk = null, + beredskap = null, + landkode = landkode, + utenlandsoppholdÅrsak = utenlandsoppholdÅrsak) + ), + trukketUttak = listOf() + ) + } + + private fun dummyIkkeOppfyltUttaksplanMedUtenlandsopphold(periode:LukketPeriode, landkode: String, + utenlandsoppholdÅrsak: UtenlandsoppholdÅrsak): Uttaksplan { + return Uttaksplan( + perioder = mapOf( + periode to UttaksperiodeInfo.ikkeOppfylt( + kildeBehandlingUUID = UUID.randomUUID().toString(), + årsaker = setOf(Årsak.FOR_MANGE_DAGER_UTENLANDSOPPHOLD), + pleiebehov = Pleiebehov.PROSENT_200.prosent.setScale(2, RoundingMode.HALF_UP), + knekkpunktTyper = setOf(), + utbetalingsgrader = listOf(Utbetalingsgrader( + arbeidsforhold = arbeidsforhold1, + utbetalingsgrad = Prosent(100).setScale(2, RoundingMode.HALF_UP), + normalArbeidstid = FULL_DAG, + faktiskArbeidstid = Duration.ZERO)), + søkersTapteArbeidstid = Prosent(100).setScale(2, RoundingMode.HALF_UP), + oppgittTilsyn = null, + annenPart = AnnenPart.ALENE, + nattevåk = null, + beredskap = null, + landkode = landkode, + utenlandsoppholdÅrsak = utenlandsoppholdÅrsak) ), trukketUttak = listOf() ) @@ -289,7 +445,9 @@ internal class UttakRepositoryTest { oppgittTilsyn = null, annenPart = AnnenPart.ALENE, nattevåk = null, - beredskap = null) + beredskap = null, + landkode = null, + utenlandsoppholdÅrsak = UtenlandsoppholdÅrsak.INGEN) ), trukketUttak = listOf(),