Skip to content

Commit

Permalink
Legger til mottatt inntektsjustering i omregningsdata
Browse files Browse the repository at this point in the history
  • Loading branch information
Bjodn committed Nov 26, 2024
1 parent 08695f9 commit 8f351f8
Show file tree
Hide file tree
Showing 7 changed files with 55 additions and 23 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ import no.nav.etterlatte.oppgave.OppgaveService
import no.nav.etterlatte.rapidsandrivers.OmregningData
import no.nav.etterlatte.rapidsandrivers.OmregningDataPacket
import no.nav.etterlatte.rapidsandrivers.OmregningHendelseType
import no.nav.etterlatte.rapidsandrivers.OmregningInntektsjustering
import org.slf4j.LoggerFactory
import java.time.YearMonth

Expand Down Expand Up @@ -49,6 +50,10 @@ class InntektsjusteringSelvbetjeningService(
sakId,
InntektsjusteringRequest.utledLoependeFom(),
InntektsjusteringRequest.utledKjoering(request.inntektsjusteringId),
OmregningInntektsjustering(
inntekt = request.inntekt,
inntektUtland = request.inntektUtland,
),
)
}

Expand All @@ -67,6 +72,7 @@ class InntektsjusteringSelvbetjeningService(
sakId: SakId,
loependeFom: YearMonth,
kjoering: String,
inntektsjustering: OmregningInntektsjustering,
) {
val correlationId = getCorrelationId()
rapid
Expand All @@ -84,6 +90,7 @@ class InntektsjusteringSelvbetjeningService(
sakId = sakId,
revurderingaarsak = Revurderingaarsak.INNTEKTSENDRING,
fradato = loependeFom.atDay(1),
inntektsjustering = inntektsjustering,
).toPacket(),
),
).toJson(),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ class InntektsjusteringSelvbetjeningServiceTest {
fun `skal behandle inntektsjustering automatisk hvis featureToggle = true`() {
every { featureToggleService.isEnabled(any(), any()) } returns true

val inntektsjusteringRequest = InntektsjusteringRequest(SakId(123L), "123", UUID.randomUUID())
val inntektsjusteringRequest = InntektsjusteringRequest(SakId(123L), "123", UUID.randomUUID(), 100, 0)
service.behandleInntektsjustering(inntektsjusteringRequest)
verify(exactly = 1) {
rapid.publiser(
Expand All @@ -67,7 +67,7 @@ class InntektsjusteringSelvbetjeningServiceTest {
every { featureToggleService.isEnabled(any(), any()) } returns false
every { oppgaveService.opprettOppgave(any(), any(), any(), any(), any()) } returns mockk()

val inntektsjusteringRequest = InntektsjusteringRequest(SakId(123L), "123", UUID.randomUUID())
val inntektsjusteringRequest = InntektsjusteringRequest(SakId(123L), "123", UUID.randomUUID(), 100, 0)
service.behandleInntektsjustering(inntektsjusteringRequest)

verify(exactly = 1) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,22 +53,12 @@ class BehandlingClient(
UUID.fromString(response.body())
}

fun behandleInntektsjustering(
sakId: SakId,
journalPostId: String,
inntektsjusteringId: UUID,
) {
fun behandleInntektsjustering(request: InntektsjusteringRequest) {
runBlocking {
sakOgBehandlingApp
.post("$url/inntektsjustering/behandle") {
contentType(ContentType.Application.Json)
setBody(
InntektsjusteringRequest(
sak = sakId,
journalpostId = journalPostId,
inntektsjusteringId = inntektsjusteringId,
),
)
setBody(request)
}.body<InntektsjusteringRequest>()
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import no.nav.etterlatte.libs.common.behandling.SakType
import no.nav.etterlatte.libs.common.event.InntektsjusteringInnsendt
import no.nav.etterlatte.libs.common.event.InntektsjusteringInnsendtHendelseType
import no.nav.etterlatte.libs.common.inntektsjustering.Inntektsjustering
import no.nav.etterlatte.libs.common.inntektsjustering.InntektsjusteringRequest
import no.nav.etterlatte.libs.common.objectMapper
import no.nav.etterlatte.libs.common.sak.Sak
import no.nav.etterlatte.rapidsandrivers.ListenerMedLogging
Expand All @@ -17,7 +18,6 @@ import no.nav.helse.rapids_rivers.JsonMessage
import no.nav.helse.rapids_rivers.MessageContext
import no.nav.helse.rapids_rivers.RapidsConnection
import org.slf4j.LoggerFactory
import java.util.UUID

internal class InntektsjusteringRiver(
rapidsConnection: RapidsConnection,
Expand Down Expand Up @@ -52,7 +52,7 @@ internal class InntektsjusteringRiver(
return
}

startBehandlingAvInntektsjustering(sak, journalpostResponse, inntektsjustering.id)
startBehandlingAvInntektsjustering(sak, journalpostResponse, inntektsjustering)
} catch (e: JsonMappingException) {
sikkerLogg.error("Feil under deserialisering", e)
logger.error("Feil under deserialisering av inntektsjustering (id=${inntektsjustering.id}). Se sikkerlogg for detaljer.")
Expand All @@ -66,12 +66,20 @@ internal class InntektsjusteringRiver(
private fun startBehandlingAvInntektsjustering(
sak: Sak,
journalpostResponse: OpprettJournalpostResponse,
inntektsjusteringId: UUID,
inntektsjustering: Inntektsjustering,
) {
behandlingKlient.behandleInntektsjustering(
sak.id,
journalpostResponse.journalpostId,
inntektsjusteringId,
InntektsjusteringRequest(
sak = sak.id,
journalpostId = journalpostResponse.journalpostId,
inntektsjusteringId = inntektsjustering.id,
inntekt =
inntektsjustering.arbeidsinntekt + inntektsjustering.naeringsinntekt + (
inntektsjustering.afpInntekt
?: 0
),
inntektUtland = inntektsjustering.inntektFraUtland,
),
)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ internal class InntektsjusteringRiverTest {
private fun testRapid() = TestRapid().apply { InntektsjusteringRiver(this, behandlingKlientMock, journalfoerInntektsjusteringService) }

@Test
fun `Skal journalføre inntektsjustering og opprette oppgave i Gjenny`() {
fun `Skal journalføre inntektsjustering og starte behandling med summert inntekt`() {
val sak = Sak("123", SakType.OMSTILLINGSSTOENAD, randomSakId(), Enheter.PORSGRUNN.enhetNr)
val inntektsjustering =
Inntektsjustering(
Expand All @@ -70,7 +70,7 @@ internal class InntektsjusteringRiverTest {
"JournalId123",
true,
)
coEvery { behandlingKlientMock.behandleInntektsjustering(any(), any(), any()) } just Runs
coEvery { behandlingKlientMock.behandleInntektsjustering(any()) } just Runs

val melding =
JsonMessage
Expand All @@ -92,7 +92,14 @@ internal class InntektsjusteringRiverTest {
dokarkivKlientMock.opprettJournalpost(capture(journalRequest))
pdfgenKlient.genererPdf(capture(pdfDataSlot), "inntektsjustering_nytt_aar_v1")

behandlingKlientMock.behandleInntektsjustering(sak.id, any(), any())
behandlingKlientMock.behandleInntektsjustering(
withArg {
it.sak shouldBe sak.id
it.inntektsjusteringId shouldBe inntektsjustering.id
it.inntekt shouldBe 700
it.inntektUtland shouldBe 300
},
)
}
with(journalRequest.captured) {
tittel shouldBe "Inntektsjustering 2025"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@ data class InntektsjusteringRequest(
val sak: SakId,
val journalpostId: String,
val inntektsjusteringId: UUID,
val inntekt: Int,
val inntektUtland: Int,
) {
companion object {
fun utledKjoering(id: UUID) = "INNTEKTSJUSTERING_${utledLoependeFom()}_$id"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ data class OmregningData(
private var behandlingId: UUID? = null,
private var forrigeBehandlingId: UUID? = null,
val utbetalingVerifikasjon: UtbetalingVerifikasjon = UtbetalingVerifikasjon.INGEN,
private var inntektsjustering: OmregningInntektsjustering? = null,
) {
fun toPacket() =
OmregningDataPacket(
Expand All @@ -60,6 +61,7 @@ data class OmregningData(
behandlingId,
forrigeBehandlingId,
utbetalingVerifikasjon,
inntektsjustering,
)

fun hentFraDato(): LocalDate = fradato ?: throw OmregningshendelseHarFeilTilstand(OmregningData::fradato.name)
Expand Down Expand Up @@ -97,6 +99,15 @@ data class OmregningData(
}
forrigeBehandlingId = value
}

fun hentInntektsjustering() = inntektsjustering ?: throw OmregningshendelseHarFeilTilstand(OmregningData::inntektsjustering.name)

fun endreInntektsjustering(value: OmregningInntektsjustering) {
if (inntektsjustering != null) {
throw OmregningshendelseSkalIkkeMuteres(OmregningData::inntektsjustering.name)
}
inntektsjustering = value
}
}

data class OmregningDataPacket(
Expand All @@ -108,6 +119,7 @@ data class OmregningDataPacket(
val behandlingId: UUID?,
val forrigeBehandlingId: UUID?,
val utbetalingVerifikasjon: UtbetalingVerifikasjon,
val inntektsjustering: OmregningInntektsjustering?,
) {
companion object KEYS {
val KEY = HENDELSE_DATA_KEY
Expand All @@ -118,9 +130,15 @@ data class OmregningDataPacket(
val BEHANDLING_ID = "$HENDELSE_DATA_KEY.${OmregningDataPacket::behandlingId.name}"
val FORRIGE_BEHANDLING_ID = "$HENDELSE_DATA_KEY.${OmregningDataPacket::forrigeBehandlingId.name}"
val REV_AARSAK = "$HENDELSE_DATA_KEY.${OmregningDataPacket::revurderingaarsak.name}"
val INNTEKTSJUSTERING = "$HENDELSE_DATA_KEY.${OmregningDataPacket::inntektsjustering.name}"
}
}

data class OmregningInntektsjustering(
val inntekt: Int,
val inntektUtland: Int,
)

var JsonMessage.omregningData: OmregningData
get() = objectMapper.treeToValue(this[HENDELSE_DATA_KEY])
set(name) {
Expand Down

0 comments on commit 8f351f8

Please sign in to comment.