Skip to content

Commit

Permalink
Inntektsjusteringsjobb begrunnelser (#6206)
Browse files Browse the repository at this point in the history
* Legger til begrunnelse KjoeringRequest og ny status TIL_MANUELL

* Legger til begrunnelse omregningskjoering db
  • Loading branch information
Bjodn authored Nov 4, 2024
1 parent 7e834c7 commit be06bb9
Show file tree
Hide file tree
Showing 5 changed files with 117 additions and 25 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -59,13 +59,14 @@ class OmregningDao(
val statement =
prepareStatement(
"""
INSERT INTO omregningskjoering (kjoering, status, sak_id)
VALUES (?, ?, ?)
INSERT INTO omregningskjoering (kjoering, status, sak_id, begrunnelse)
VALUES (?, ?, ?, ?)
""".trimIndent(),
)
statement.setString(1, request.kjoering)
statement.setString(2, request.status.name)
statement.setSakId(3, request.sakId)
statement.setString(4, request.begrunnelse ?: "")
statement.executeUpdate().also { require(it == 1) }
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -64,9 +64,16 @@ class AarligInntektsjusteringJobbService(
vedtakKlient.sakHarLopendeVedtakPaaDato(sakId, loependeFom.atDay(1), HardkodaSystembruker.omregning)

logger.info("Årlig inntektsjusteringsjobb $kjoering for $sakId")
if (!skalBehandlingOmregnes(sakId, vedtak, loependeFom)) {
// TODO Legge til en begrunnelse
omregningService.oppdaterKjoering(KjoeringRequest(kjoering, KjoeringStatus.FERDIGSTILT, sakId))
val skalIkkeGjennomfoereJobb = skalIkkeGjennomfoereJobb(sakId, vedtak, loependeFom)
if (skalIkkeGjennomfoereJobb != null) {
omregningService.oppdaterKjoering(
KjoeringRequest(
kjoering,
KjoeringStatus.FERDIGSTILT,
sakId,
begrunnelse = skalIkkeGjennomfoereJobb,
),
)
return
}
val aarsakTilManuell = kanIkkeKjoereAutomatisk(sakId, vedtak)
Expand All @@ -82,7 +89,14 @@ class AarligInntektsjusteringJobbService(
// frist = TODO
)
// TODO Legge til en begrunnelse og oppgave id
omregningService.oppdaterKjoering(KjoeringRequest(kjoering, KjoeringStatus.FERDIGSTILT, sakId))
omregningService.oppdaterKjoering(
KjoeringRequest(
kjoering,
KjoeringStatus.TIL_MANUELL,
sakId,
begrunnelse = aarsakTilManuell.name,
),
)
return
}
// TODO status KLAR_FOR_OMREGNING
Expand Down Expand Up @@ -127,7 +141,7 @@ class AarligInntektsjusteringJobbService(
etternavn == opplysningerPdl.etternavn.verdi &&
foedselsdato == opplysningerPdl.foedselsdato?.verdi &&
doedsdato == opplysningerPdl.doedsdato?.verdi &&
vergemaalEllerFremtidsfullmakt == opplysningerPdl.vergemaalEllerFremtidsfullmakt // TODO test i dev nøye..
vergemaalEllerFremtidsfullmakt == opplysningerPdl.vergemaalEllerFremtidsfullmakt?.map { it.verdi }
}
}
if (!opplysningerErUendretIPdl) {
Expand Down Expand Up @@ -173,13 +187,18 @@ class AarligInntektsjusteringJobbService(
}

// Skal inntektjusteres hvis: 1) er løpende fom dato, 2) ikke har oppgitt inntekt fra 1.1 neste inntektsår
private suspend fun skalBehandlingOmregnes(
private suspend fun skalIkkeGjennomfoereJobb(
sakId: SakId,
vedtak: LoependeYtelseDTO,
loependeFom: YearMonth,
): Boolean =
vedtak.erLoepende &&
!beregningKlient.sakHarInntektForAar(sakId, loependeFom.year, HardkodaSystembruker.omregning)
): String? =
if (!vedtak.erLoepende) {
"Sak er ikke løpende"
} else if (beregningKlient.sakHarInntektForAar(sakId, loependeFom.year, HardkodaSystembruker.omregning)) {
"Sak har allerede oppgitt inntekt for ${loependeFom.year}"
} else {
null
}

private fun hentPdlPersonopplysning(sak: Sak) =
pdlTjenesterKlient.hentPdlModellFlereSaktyper(sak.ident, PersonRolle.INNSENDER, SakType.OMSTILLINGSSTOENAD)
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
ALTER TABLE omregningskjoering
ADD COLUMN begrunnelse VARCHAR NOT NULL DEFAULT '';
Original file line number Diff line number Diff line change
Expand Up @@ -145,12 +145,66 @@ class AarligInntektsjusteringJobbServiceTest {

@Test
fun `Sak som ikke er loepende skal ferdigstilles`() {
// TODO
val request =
AarligInntektsjusteringRequest(
kjoering = "kjoering",
loependeFom = YearMonth.of(2025, 1),
saker = listOf(SakId(123L)),
)
coEvery { vedtakKlient.sakHarLopendeVedtakPaaDato(any(), any(), any()) } returns
loependeYtdelseDto().copy(
erLoepende = false,
)

every { omregningService.oppdaterKjoering(any()) } returns mockk()

runBlocking {
service.startAarligInntektsjustering(request)
}

verify {
omregningService.oppdaterKjoering(
withArg {
with(it) {
kjoering shouldBe "kjoering"
status shouldBe KjoeringStatus.FERDIGSTILT
sakId shouldBe SakId(123L)
begrunnelse shouldBe "Sak er ikke løpende"
}
},
)
}
}

@Test
fun `Sak som allerede har inntekt neste aar skal ferdigstilles`() {
// TODO
val request =
AarligInntektsjusteringRequest(
kjoering = "kjoering",
loependeFom = YearMonth.of(2025, 1),
saker = listOf(SakId(123L)),
)

coEvery { beregningKlient.sakHarInntektForAar(any(), any(), any()) } returns true

every { omregningService.oppdaterKjoering(any()) } returns mockk()

runBlocking {
service.startAarligInntektsjustering(request)
}

verify {
omregningService.oppdaterKjoering(
withArg {
with(it) {
kjoering shouldBe "kjoering"
status shouldBe KjoeringStatus.FERDIGSTILT
sakId shouldBe SakId(123L)
begrunnelse shouldBe "Sak har allerede oppgitt inntekt for 2025"
}
},
)
}
}

@Test
Expand All @@ -174,7 +228,6 @@ class AarligInntektsjusteringJobbServiceTest {
service.startAarligInntektsjustering(request)
}

// TODO verifiser satt status og begrunnelse kjøring..
verify {
oppgaveService.opprettOppgave(
"123",
Expand All @@ -189,8 +242,9 @@ class AarligInntektsjusteringJobbServiceTest {
withArg {
with(it) {
kjoering shouldBe "kjoering"
status shouldBe KjoeringStatus.FERDIGSTILT
status shouldBe KjoeringStatus.TIL_MANUELL
sakId shouldBe SakId(123L)
begrunnelse shouldBe AarligInntektsjusteringAarsakManuell.TIL_SAMORDNING.name
}
},
)
Expand Down Expand Up @@ -231,8 +285,9 @@ class AarligInntektsjusteringJobbServiceTest {
withArg {
with(it) {
kjoering shouldBe "kjoering"
status shouldBe KjoeringStatus.FERDIGSTILT
status shouldBe KjoeringStatus.TIL_MANUELL
sakId shouldBe SakId(123L)
begrunnelse shouldBe AarligInntektsjusteringAarsakManuell.UTDATERT_IDENT.name
}
},
)
Expand Down Expand Up @@ -266,7 +321,6 @@ class AarligInntektsjusteringJobbServiceTest {
service.startAarligInntektsjustering(request)
}

// TODO verifiser satt status og begrunnelse kjøring..
verify {
oppgaveService.opprettOppgave(
"123",
Expand All @@ -281,8 +335,9 @@ class AarligInntektsjusteringJobbServiceTest {
withArg {
with(it) {
kjoering shouldBe "kjoering"
status shouldBe KjoeringStatus.FERDIGSTILT
status shouldBe KjoeringStatus.TIL_MANUELL
sakId shouldBe SakId(123L)
begrunnelse shouldBe AarligInntektsjusteringAarsakManuell.UTDATERTE_PERSONOPPLYSNINGER.name
}
},
)
Expand All @@ -297,6 +352,23 @@ class AarligInntektsjusteringJobbServiceTest {
loependeFom = YearMonth.of(2025, 1),
saker = listOf(SakId(123L)),
)
val vergemaal =
VergemaalEllerFremtidsfullmakt(
embete = null,
type = null,
vergeEllerFullmektig = VergeEllerFullmektig(null, null, null, null, null),
)

coEvery { grunnlagService.hentPersonopplysninger(any(), any(), any()) } returns
mockk {
every { innsender } returns
mockk {
every { opplysning } returns
personGjenny.copy(
vergemaalEllerFremtidsfullmakt = listOf(vergemaal),
)
}
}

coEvery {
pdlTjenesterKlient.hentPdlModellFlereSaktyper(
Expand All @@ -309,11 +381,7 @@ class AarligInntektsjusteringJobbServiceTest {
vergemaalEllerFremtidsfullmakt =
listOf(
OpplysningDTO(
VergemaalEllerFremtidsfullmakt(
embete = null,
type = null,
vergeEllerFullmektig = VergeEllerFullmektig(null, null, null, null, null),
),
vergemaal,
"",
),
),
Expand All @@ -326,7 +394,6 @@ class AarligInntektsjusteringJobbServiceTest {
service.startAarligInntektsjustering(request)
}

// TODO verifiser satt status og begrunnelse kjøring..
verify {
oppgaveService.opprettOppgave(
"123",
Expand All @@ -341,8 +408,9 @@ class AarligInntektsjusteringJobbServiceTest {
withArg {
with(it) {
kjoering shouldBe "kjoering"
status shouldBe KjoeringStatus.FERDIGSTILT
status shouldBe KjoeringStatus.TIL_MANUELL
sakId shouldBe SakId(123L)
begrunnelse shouldBe AarligInntektsjusteringAarsakManuell.VERGEMAAL.name
}
},
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ data class KjoeringRequest(
val kjoering: String,
val status: KjoeringStatus,
val sakId: SakId,
val begrunnelse: String? = null,
)

data class LagreKjoeringRequest(
Expand All @@ -29,4 +30,5 @@ enum class KjoeringStatus {
FEILA,
IKKE_LOEPENDE,
FERDIGSTILT,
TIL_MANUELL,
}

0 comments on commit be06bb9

Please sign in to comment.