From 221edb31cc8fe73fe5f2221ec2f52af4bc7a6901 Mon Sep 17 00:00:00 2001 From: Mikael Bjerga <6940327+bjerga@users.noreply.github.com> Date: Thu, 2 Jan 2025 14:03:23 +0100 Subject: [PATCH] =?UTF-8?q?Fjern=20bestemmenede=20frav=C3=A6rsdag=20(del?= =?UTF-8?q?=202)=20(#820)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BerikInntektsmeldingService.kt | 17 -- .../UtledBestemmendeFravaersdag.kt | 30 ---- .../BerikInntektsmeldingServiceTest.kt | 5 - .../UtledBestemmendeFravaersdagKtTest.kt | 154 ------------------ .../no/nav/helsearbeidsgiver/felles/Key.kt | 1 - .../BerikInntektsmeldingServiceIT.kt | 9 - .../joark/TilXmlInntektsmeldingTest.kt | 3 +- 7 files changed, 1 insertion(+), 218 deletions(-) delete mode 100644 apps/berik-inntektsmelding-service/src/main/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/berikinntektsmeldingservice/UtledBestemmendeFravaersdag.kt delete mode 100644 apps/berik-inntektsmelding-service/src/test/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/berikinntektsmeldingservice/UtledBestemmendeFravaersdagKtTest.kt diff --git a/apps/berik-inntektsmelding-service/src/main/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/berikinntektsmeldingservice/BerikInntektsmeldingService.kt b/apps/berik-inntektsmelding-service/src/main/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/berikinntektsmeldingservice/BerikInntektsmeldingService.kt index 8ee9918a1..8afb46ba6 100644 --- a/apps/berik-inntektsmelding-service/src/main/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/berikinntektsmeldingservice/BerikInntektsmeldingService.kt +++ b/apps/berik-inntektsmelding-service/src/main/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/berikinntektsmeldingservice/BerikInntektsmeldingService.kt @@ -19,7 +19,6 @@ import no.nav.helsearbeidsgiver.felles.rapidsrivers.model.Fail import no.nav.helsearbeidsgiver.felles.rapidsrivers.publish import no.nav.helsearbeidsgiver.felles.rapidsrivers.service.ServiceMed4Steg import no.nav.helsearbeidsgiver.felles.utils.Log -import no.nav.helsearbeidsgiver.utils.json.serializer.LocalDateSerializer import no.nav.helsearbeidsgiver.utils.json.serializer.LocalDateTimeSerializer import no.nav.helsearbeidsgiver.utils.json.serializer.UuidSerializer import no.nav.helsearbeidsgiver.utils.json.toJson @@ -29,7 +28,6 @@ import no.nav.helsearbeidsgiver.utils.log.logger import no.nav.helsearbeidsgiver.utils.log.sikkerLogger import no.nav.helsearbeidsgiver.utils.wrapper.Fnr import no.nav.helsearbeidsgiver.utils.wrapper.Orgnr -import java.time.LocalDate import java.time.LocalDateTime import java.util.UUID @@ -58,7 +56,6 @@ data class Steg3( data class Steg4( val inntektsmelding: Inntektsmelding, - val bestemmendeFravaersdag: LocalDate, val erDuplikat: Boolean, ) @@ -97,7 +94,6 @@ class BerikInntektsmeldingService( override fun lesSteg4(melding: Map): Steg4 = Steg4( inntektsmelding = Key.INNTEKTSMELDING.les(Inntektsmelding.serializer(), melding), - bestemmendeFravaersdag = Key.BESTEMMENDE_FRAVAERSDAG.les(LocalDateSerializer, melding), erDuplikat = Key.ER_DUPLIKAT_IM.les(Boolean.serializer(), melding), ) @@ -183,16 +179,6 @@ class BerikInntektsmeldingService( mottatt = steg0.mottatt, ) - val bestemmendeFravaersdag = utledBestemmendeFravaersdag(steg1.forespoersel, inntektsmelding) - - val inntektsdato = inntektsmelding.inntekt?.inntektsdato - if (inntektsdato != null && bestemmendeFravaersdag.isBefore(inntektsdato)) { - "Bestemmende fraværsdag er før inntektsdato. Dette er ikke mulig. Spleis vil trolig spør om ny inntektsmelding.".also { - logger.error(it) - sikkerLogger.error(it) - } - } - rapid .publish( key = steg0.skjema.forespoerselId, @@ -204,8 +190,6 @@ class BerikInntektsmeldingService( .plus( mapOf( Key.INNTEKTSMELDING to inntektsmelding.toJson(Inntektsmelding.serializer()), - // TODO fjern etter overgangsfase - Key.BESTEMMENDE_FRAVAERSDAG to bestemmendeFravaersdag.toJson(), Key.INNSENDING_ID to steg0.innsendingId.toJson(Long.serializer()), ), ).toJson(), @@ -230,7 +214,6 @@ class BerikInntektsmeldingService( mapOf( Key.FORESPOERSEL_ID to steg0.skjema.forespoerselId.toJson(), Key.INNTEKTSMELDING to steg4.inntektsmelding.toJson(Inntektsmelding.serializer()), - Key.BESTEMMENDE_FRAVAERSDAG to steg4.bestemmendeFravaersdag.toJson(), Key.INNSENDING_ID to steg0.innsendingId.toJson(Long.serializer()), ).toJson(), ) diff --git a/apps/berik-inntektsmelding-service/src/main/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/berikinntektsmeldingservice/UtledBestemmendeFravaersdag.kt b/apps/berik-inntektsmelding-service/src/main/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/berikinntektsmeldingservice/UtledBestemmendeFravaersdag.kt deleted file mode 100644 index 754d44666..000000000 --- a/apps/berik-inntektsmelding-service/src/main/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/berikinntektsmeldingservice/UtledBestemmendeFravaersdag.kt +++ /dev/null @@ -1,30 +0,0 @@ -package no.nav.helsearbeidsgiver.inntektsmelding.berikinntektsmeldingservice - -import no.nav.helsearbeidsgiver.domene.inntektsmelding.v1.Inntektsmelding -import no.nav.helsearbeidsgiver.domene.inntektsmelding.v1.bestemmendeFravaersdag -import no.nav.helsearbeidsgiver.felles.domene.Forespoersel -import java.time.LocalDate - -/** - * Vi bruker Spleis sitt forslag til bestemmende fraværsdag (BF), med to unntak der vi må beregne BF selv: - * - Vi ber om AGP. Da kan AGP inneholde info som Spleis ikke vet om, f. eks. egenmeldinger. - * - Vi ber kun om refusjon. Da kan Spleis sitt forslag inneholde feil`*` dersom sykmeldt har mer enn én arbeidsgiver. - * - * `*` Det er ikke feil, men forslagene fra Spleis er egentlig inntektsdatoer per arbeidsgiver, ikke BF-er. - * For én arbeidsgiver så er disse datoene like, men det er de nødvendigvis ikke ved mer enn én arbeidsgiver. -*/ -fun utledBestemmendeFravaersdag( - forespoersel: Forespoersel, - inntektsmelding: Inntektsmelding, -): LocalDate = - if ( - forespoersel.forespurtData.arbeidsgiverperiode.paakrevd || - (!forespoersel.forespurtData.inntekt.paakrevd && forespoersel.forespurtData.refusjon.paakrevd) - ) { - bestemmendeFravaersdag( - arbeidsgiverperioder = inntektsmelding.agp?.perioder.orEmpty(), - sykefravaersperioder = forespoersel.sykmeldingsperioder, - ) - } else { - forespoersel.forslagBestemmendeFravaersdag() - } diff --git a/apps/berik-inntektsmelding-service/src/test/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/berikinntektsmeldingservice/BerikInntektsmeldingServiceTest.kt b/apps/berik-inntektsmelding-service/src/test/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/berikinntektsmeldingservice/BerikInntektsmeldingServiceTest.kt index 11a2505f0..84e684651 100644 --- a/apps/berik-inntektsmelding-service/src/test/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/berikinntektsmeldingservice/BerikInntektsmeldingServiceTest.kt +++ b/apps/berik-inntektsmelding-service/src/test/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/berikinntektsmeldingservice/BerikInntektsmeldingServiceTest.kt @@ -30,13 +30,11 @@ import no.nav.helsearbeidsgiver.felles.test.mock.mockInntektsmeldingV1 import no.nav.helsearbeidsgiver.felles.test.mock.mockSkjemaInntektsmelding import no.nav.helsearbeidsgiver.felles.test.rapidsrivers.message import no.nav.helsearbeidsgiver.felles.test.rapidsrivers.sendJson -import no.nav.helsearbeidsgiver.utils.json.serializer.LocalDateSerializer import no.nav.helsearbeidsgiver.utils.json.serializer.UuidSerializer import no.nav.helsearbeidsgiver.utils.json.serializer.set import no.nav.helsearbeidsgiver.utils.json.toJson import no.nav.helsearbeidsgiver.utils.test.date.kl import no.nav.helsearbeidsgiver.utils.test.date.november -import no.nav.helsearbeidsgiver.utils.test.date.oktober import no.nav.helsearbeidsgiver.utils.test.wrapper.genererGyldig import no.nav.helsearbeidsgiver.utils.wrapper.Fnr import no.nav.helsearbeidsgiver.utils.wrapper.Orgnr @@ -101,7 +99,6 @@ class BerikInntektsmeldingServiceTest : val data = it.lesData() Key.INNTEKTSMELDING.lesOrNull(Inntektsmelding.serializer(), data) shouldNotBe null - Key.BESTEMMENDE_FRAVAERSDAG.lesOrNull(LocalDateSerializer, data) shouldNotBe null Key.INNSENDING_ID.lesOrNull(Long.serializer(), data) shouldBe Mock.INNSENDING_ID } @@ -115,7 +112,6 @@ class BerikInntektsmeldingServiceTest : val data = it.lesData() Key.FORESPOERSEL_ID.lesOrNull(UuidSerializer, data) shouldBe Mock.skjema.forespoerselId Key.INNTEKTSMELDING.lesOrNull(Inntektsmelding.serializer(), data) shouldNotBe null - Key.BESTEMMENDE_FRAVAERSDAG.lesOrNull(LocalDateSerializer, data) shouldNotBe null Key.INNSENDING_ID.lesOrNull(Long.serializer(), data) shouldBe Mock.INNSENDING_ID } } @@ -204,7 +200,6 @@ private object Mock { mapOf( Key.ER_DUPLIKAT_IM to false.toJson(Boolean.serializer()), Key.INNTEKTSMELDING to mockInntektsmeldingV1().toJson(Inntektsmelding.serializer()), - Key.BESTEMMENDE_FRAVAERSDAG to 20.oktober.toJson(), ), ) } diff --git a/apps/berik-inntektsmelding-service/src/test/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/berikinntektsmeldingservice/UtledBestemmendeFravaersdagKtTest.kt b/apps/berik-inntektsmelding-service/src/test/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/berikinntektsmeldingservice/UtledBestemmendeFravaersdagKtTest.kt deleted file mode 100644 index c793ff8a3..000000000 --- a/apps/berik-inntektsmelding-service/src/test/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/berikinntektsmeldingservice/UtledBestemmendeFravaersdagKtTest.kt +++ /dev/null @@ -1,154 +0,0 @@ -package no.nav.helsearbeidsgiver.inntektsmelding.berikinntektsmeldingservice - -import io.kotest.core.spec.style.FunSpec -import io.kotest.matchers.shouldBe -import io.kotest.matchers.shouldNotBe -import no.nav.helsearbeidsgiver.domene.inntektsmelding.v1.til -import no.nav.helsearbeidsgiver.felles.test.mock.mockForespoersel -import no.nav.helsearbeidsgiver.felles.test.mock.mockInntektsmeldingV1 -import no.nav.helsearbeidsgiver.felles.test.mock.utenPaakrevdAGP -import no.nav.helsearbeidsgiver.felles.test.mock.utenPaakrevdInntekt -import no.nav.helsearbeidsgiver.utils.test.date.august -import no.nav.helsearbeidsgiver.utils.test.date.januar -import no.nav.helsearbeidsgiver.utils.test.date.juni -import no.nav.helsearbeidsgiver.utils.test.date.mai - -class UtledBestemmendeFravaersdagKtTest : - FunSpec({ - - context(::utledBestemmendeFravaersdag.name) { - - test("bruker beregnet bestemmende fraværsdag dersom AGP er påkrevd") { - val forespoersel = - mockForespoersel().let { - it.copy( - sykmeldingsperioder = - listOf( - 6.mai til 9.mai, - 12.mai til 27.mai, - ), - bestemmendeFravaersdager = - mapOf( - it.orgnr to 1.mai, - ), - ) - } - val inntektsmelding = - mockInntektsmeldingV1().let { - it.copy( - agp = - it.agp?.copy( - perioder = - listOf( - 5.mai til 9.mai, - 12.mai til 22.mai, - ), - ), - ) - } - - val bestemmendeFravaersdag = utledBestemmendeFravaersdag(forespoersel, inntektsmelding) - - bestemmendeFravaersdag shouldBe 12.mai - bestemmendeFravaersdag shouldNotBe forespoersel.forslagBestemmendeFravaersdag() - } - - test("bruker beregnet bestemmende fraværsdag dersom kun refusjon er påkrevd") { - val forespoersel = - mockForespoersel() - .utenPaakrevdAGP() - .utenPaakrevdInntekt() - .let { - it.copy( - sykmeldingsperioder = - listOf( - 5.januar til 10.januar, - 14.januar til 28.januar, - ), - bestemmendeFravaersdager = - mapOf( - it.orgnr to 3.januar, - ), - ) - } - - val inntektsmelding = - mockInntektsmeldingV1().let { - it.copy( - agp = - it.agp?.copy( - perioder = - listOf( - 5.januar til 10.januar, - 14.januar til 23.januar, - ), - ), - ) - } - - val bestemmendeFravaersdag = utledBestemmendeFravaersdag(forespoersel, inntektsmelding) - - bestemmendeFravaersdag shouldBe 14.januar - bestemmendeFravaersdag shouldNotBe forespoersel.forslagBestemmendeFravaersdag() - } - - test("bruker forslag (fra Spleis) som bestemmende fraværsdag dersom AGP _ikke_ er påkrevd og ikke kun refusjon påkrevd") { - val forespoersel = - mockForespoersel().utenPaakrevdAGP().let { - it.copy( - sykmeldingsperioder = - listOf( - 15.mai til 17.juni, - ), - bestemmendeFravaersdager = - mapOf( - it.orgnr to 8.mai, - ), - ) - } - val inntektsmelding = - mockInntektsmeldingV1().let { - it.copy( - agp = - it.agp?.copy( - perioder = emptyList(), - ), - ) - } - - val bestemmendeFravaersdag = utledBestemmendeFravaersdag(forespoersel, inntektsmelding) - - bestemmendeFravaersdag shouldNotBe 15.mai - bestemmendeFravaersdag shouldBe forespoersel.forslagBestemmendeFravaersdag() - } - - test("bruker beregnet bestemmende fraværsdag dersom forslag (fra Spleis) mangler og AGP _ikke_ er påkrevd og ikke kun refusjon påkrevd") { - val forespoersel = - mockForespoersel().utenPaakrevdAGP().copy( - sykmeldingsperioder = - listOf( - 10.august til 31.august, - ), - bestemmendeFravaersdager = emptyMap(), - ) - val inntektsmelding = - mockInntektsmeldingV1().let { - it.copy( - agp = - it.agp?.copy( - perioder = - listOf( - 5.august til 20.august, - ), - ), - ) - } - - val bestemmendeFravaersdag = utledBestemmendeFravaersdag(forespoersel, inntektsmelding) - - bestemmendeFravaersdag shouldNotBe 5.august - bestemmendeFravaersdag shouldBe forespoersel.forslagBestemmendeFravaersdag() - bestemmendeFravaersdag shouldBe 10.august - } - } - }) diff --git a/apps/felles/src/main/kotlin/no/nav/helsearbeidsgiver/felles/Key.kt b/apps/felles/src/main/kotlin/no/nav/helsearbeidsgiver/felles/Key.kt index e0327b591..c42b4b26d 100644 --- a/apps/felles/src/main/kotlin/no/nav/helsearbeidsgiver/felles/Key.kt +++ b/apps/felles/src/main/kotlin/no/nav/helsearbeidsgiver/felles/Key.kt @@ -14,7 +14,6 @@ enum class Key : IKey { // Egendefinerte ARBEIDSFORHOLD, ARBEIDSGIVER_FNR, - BESTEMMENDE_FRAVAERSDAG, DATA, EKSTERN_INNTEKTSMELDING, ER_DUPLIKAT_IM, diff --git a/apps/integrasjonstest/src/test/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/integrasjonstest/BerikInntektsmeldingServiceIT.kt b/apps/integrasjonstest/src/test/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/integrasjonstest/BerikInntektsmeldingServiceIT.kt index 6057add74..fd889bab3 100644 --- a/apps/integrasjonstest/src/test/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/integrasjonstest/BerikInntektsmeldingServiceIT.kt +++ b/apps/integrasjonstest/src/test/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/integrasjonstest/BerikInntektsmeldingServiceIT.kt @@ -29,7 +29,6 @@ import no.nav.helsearbeidsgiver.inntektsmelding.integrasjonstest.utils.bjarneBet import no.nav.helsearbeidsgiver.inntektsmelding.integrasjonstest.utils.maxMekker import no.nav.helsearbeidsgiver.utils.json.fromJson import no.nav.helsearbeidsgiver.utils.json.parseJson -import no.nav.helsearbeidsgiver.utils.json.serializer.LocalDateSerializer import no.nav.helsearbeidsgiver.utils.json.serializer.UuidSerializer import no.nav.helsearbeidsgiver.utils.json.toJson import no.nav.helsearbeidsgiver.utils.test.date.august @@ -160,10 +159,6 @@ class BerikInntektsmeldingServiceIT : EndToEndTest() { data[Key.INNTEKTSMELDING] .shouldNotBeNull() .fromJson(Inntektsmelding.serializer()) - - data[Key.BESTEMMENDE_FRAVAERSDAG] - .shouldNotBeNull() - .fromJson(LocalDateSerializer) } } @@ -297,10 +292,6 @@ class BerikInntektsmeldingServiceIT : EndToEndTest() { data[Key.INNTEKTSMELDING] .shouldNotBeNull() .fromJson(Inntektsmelding.serializer()) - - data[Key.BESTEMMENDE_FRAVAERSDAG] - .shouldNotBeNull() - .fromJson(LocalDateSerializer) } } } diff --git a/apps/joark/src/test/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/joark/TilXmlInntektsmeldingTest.kt b/apps/joark/src/test/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/joark/TilXmlInntektsmeldingTest.kt index f545af864..938463994 100644 --- a/apps/joark/src/test/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/joark/TilXmlInntektsmeldingTest.kt +++ b/apps/joark/src/test/kotlin/no/nav/helsearbeidsgiver/inntektsmelding/joark/TilXmlInntektsmeldingTest.kt @@ -53,13 +53,12 @@ class TilXmlInntektsmeldingTest { @Test fun `skal godta null-verdi i InntektEndringÅrsak`() { - val bestemmendeFravaersdag = 20.oktober val inntektmeldingUtenAarsak = mockInntektsmeldingV1().copy( inntekt = Inntekt( beloep = 1.0, - inntektsdato = bestemmendeFravaersdag, + inntektsdato = 20.oktober, naturalytelser = emptyList(), endringAarsak = null, ),