From 83df337a19bf837e69ad1d4a355e0760a6c6b430 Mon Sep 17 00:00:00 2001 From: Mikael Bjerga Date: Tue, 5 Nov 2024 14:26:21 +0100 Subject: [PATCH] =?UTF-8?q?Bestemmende=20frav=C3=A6rsdag:=20Ignorer=20egen?= =?UTF-8?q?meldinger=20om=20AGP=20ikke=20er=20p=C3=A5krevd?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../felles/domene/Forespoersel.kt | 21 ++++++---- .../felles/ForespoerselTest.kt | 41 +++++++++++++++++++ 2 files changed, 53 insertions(+), 9 deletions(-) diff --git a/felles/src/main/kotlin/no/nav/helsearbeidsgiver/felles/domene/Forespoersel.kt b/felles/src/main/kotlin/no/nav/helsearbeidsgiver/felles/domene/Forespoersel.kt index 730545e8f..d55ea3c6f 100644 --- a/felles/src/main/kotlin/no/nav/helsearbeidsgiver/felles/domene/Forespoersel.kt +++ b/felles/src/main/kotlin/no/nav/helsearbeidsgiver/felles/domene/Forespoersel.kt @@ -38,21 +38,24 @@ data class Forespoersel( } private fun brukForslagEllerUtled(forslag: LocalDate?): LocalDate { + val gyldigeEgenmeldinger = + if (forespurtData.arbeidsgiverperiode.paakrevd) { + egenmeldingsperioder + } else { + emptyList() + } + val utledet = bestemmendeFravaersdag( arbeidsgiverperioder = emptyList(), - sykefravaersperioder = egenmeldingsperioder.plus(sykmeldingsperioder).sortedBy { it.fom }, + sykefravaersperioder = gyldigeEgenmeldinger.plus(sykmeldingsperioder).sortedBy { it.fom }, ) - return if (forslag == null) { - utledet - } else { + return when { + forslag == null -> utledet // Spleis hensyntar ikke sykmeldtes rapporterte egenmeldinger når de utleder forslaget sitt - if (egenmeldingsperioder.isEmpty()) { - forslag - } else { - minOf(forslag, utledet) - } + gyldigeEgenmeldinger.isEmpty() -> forslag + else -> minOf(forslag, utledet) } } } diff --git a/felles/src/test/kotlin/no/nav/helsearbeidsgiver/felles/ForespoerselTest.kt b/felles/src/test/kotlin/no/nav/helsearbeidsgiver/felles/ForespoerselTest.kt index f8322ea03..3baf3c6d4 100644 --- a/felles/src/test/kotlin/no/nav/helsearbeidsgiver/felles/ForespoerselTest.kt +++ b/felles/src/test/kotlin/no/nav/helsearbeidsgiver/felles/ForespoerselTest.kt @@ -5,7 +5,10 @@ import io.kotest.matchers.nulls.shouldBeNull import io.kotest.matchers.shouldBe import no.nav.helsearbeidsgiver.domene.inntektsmelding.v1.til import no.nav.helsearbeidsgiver.felles.domene.Forespoersel +import no.nav.helsearbeidsgiver.felles.domene.ForespurtData import no.nav.helsearbeidsgiver.felles.test.mock.mockForespoersel +import no.nav.helsearbeidsgiver.felles.test.mock.mockForespurtData +import no.nav.helsearbeidsgiver.utils.test.date.april import no.nav.helsearbeidsgiver.utils.test.date.august import no.nav.helsearbeidsgiver.utils.test.date.desember import no.nav.helsearbeidsgiver.utils.test.date.februar @@ -98,6 +101,25 @@ class ForespoerselTest : forespoersel.forslagBestemmendeFravaersdag() shouldBe 5.januar } + + test("ignorer egenmeldinger ved beregning av bestemmende fraværsdag dersom agp ikke er påkrevd") { + val forespoersel = + mockForespoersel().copy( + orgnr = "555898023", + sykmeldingsperioder = listOf(7.mars til 31.mars), + egenmeldingsperioder = listOf(5.mars til 6.mars), + bestemmendeFravaersdager = mapOf("444707112" to 14.april), + forespurtData = + mockForespurtData().copy( + arbeidsgiverperiode = + ForespurtData.Arbeidsgiverperiode( + paakrevd = false, + ), + ), + ) + + forespoersel.forslagBestemmendeFravaersdag() shouldBe 7.mars + } } context(Forespoersel::forslagInntektsdato.name) { @@ -217,6 +239,25 @@ class ForespoerselTest : forespoersel.forslagInntektsdato() shouldBe 2.februar } + + test("ignorer egenmeldinger ved beregning av bestemmende fraværsdag dersom agp ikke er påkrevd") { + val forespoersel = + mockForespoersel().copy( + orgnr = "333848343", + sykmeldingsperioder = listOf(8.august til 28.august), + egenmeldingsperioder = listOf(2.august til 7.august), + bestemmendeFravaersdager = emptyMap(), + forespurtData = + mockForespurtData().copy( + arbeidsgiverperiode = + ForespurtData.Arbeidsgiverperiode( + paakrevd = false, + ), + ), + ) + + forespoersel.forslagInntektsdato() shouldBe 8.august + } } context(Forespoersel::eksternBestemmendeFravaersdag.name) {