Skip to content

Commit

Permalink
TSF-2417 Lagt til felter for landkode og utenlandsoppholdårsak for vi…
Browse files Browse the repository at this point in the history
…sning av utenlandsperioder. (#430)

* 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
  • Loading branch information
johanhenrik authored Feb 23, 2022
1 parent ae4a7cb commit 6d19e37
Show file tree
Hide file tree
Showing 12 changed files with 456 additions and 37 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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?
)
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand All @@ -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()) {
Expand All @@ -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
)
}

Expand All @@ -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)"
Expand All @@ -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
)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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<LukketPeriode, UtenlandsoppholdInfo>? = 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),
Expand All @@ -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) {
Expand All @@ -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(
Expand All @@ -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
)
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
)
}

Expand All @@ -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
)

}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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()
Expand Down Expand Up @@ -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()
Expand Down Expand Up @@ -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()
Expand Down Expand Up @@ -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),
Expand All @@ -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()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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(
Expand All @@ -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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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(),
Expand All @@ -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(),
Expand All @@ -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
)

),
Expand Down Expand Up @@ -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()
Expand All @@ -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(),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
)
))
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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()
Expand All @@ -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(
Expand All @@ -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"))
)
)
}
Expand Down Expand Up @@ -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()
Expand All @@ -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
Expand Down
Loading

0 comments on commit 6d19e37

Please sign in to comment.