Skip to content

Commit de147db

Browse files
committed
Forbereder iverksett korrigering
1 parent 6560ef7 commit de147db

File tree

1 file changed

+32
-20
lines changed

1 file changed

+32
-20
lines changed

app/src/main/kotlin/no/nav/tiltakspenger/saksbehandling/meldekort/service/IverksettMeldekortService.kt

+32-20
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,11 @@ import no.nav.tiltakspenger.saksbehandling.meldekort.domene.IverksettMeldekortKo
1515
import no.nav.tiltakspenger.saksbehandling.meldekort.domene.KanIkkeIverksetteMeldekort
1616
import no.nav.tiltakspenger.saksbehandling.meldekort.domene.MeldekortBehandling
1717
import no.nav.tiltakspenger.saksbehandling.meldekort.domene.MeldekortBehandlingStatus
18-
import no.nav.tiltakspenger.saksbehandling.meldekort.domene.Meldeperiode
18+
import no.nav.tiltakspenger.saksbehandling.meldekort.domene.MeldekortBehandlingType
1919
import no.nav.tiltakspenger.saksbehandling.meldekort.domene.opprettNesteMeldeperiode
2020
import no.nav.tiltakspenger.saksbehandling.meldekort.ports.MeldekortBehandlingRepo
2121
import no.nav.tiltakspenger.saksbehandling.meldekort.ports.MeldeperiodeRepo
22+
import no.nav.tiltakspenger.saksbehandling.saksbehandling.domene.sak.Sak
2223
import no.nav.tiltakspenger.saksbehandling.saksbehandling.ports.StatistikkStønadRepo
2324
import no.nav.tiltakspenger.saksbehandling.saksbehandling.service.person.PersonService
2425
import no.nav.tiltakspenger.saksbehandling.saksbehandling.service.sak.SakService
@@ -61,34 +62,45 @@ class IverksettMeldekortService(
6162
throw IllegalStateException("Kan ikke iverksette meldekortbehandling hvor meldeperioden (${meldeperiode.versjon}) ikke er siste versjon av meldeperioden i saken. sakId: $sakId, meldekortId: $meldekortId")
6263
}
6364

64-
val nesteMeldeperiode: Meldeperiode? = sak.opprettNesteMeldeperiode()?.let {
65-
if (meldekortBehandling.periode.tilOgMed.plusDays(1) != it.periode.fraOgMed) {
66-
log.info { "Neste meldeperiode (${it.periode}) er ikke sammenhengende med det vedtatte meldekortet sin meldeperiode (${meldekortBehandling.periode}). Oppretter ikke ny meldeperiode. behandlingId: ${meldekortBehandling.id}, sakId: ${meldekortBehandling.sakId}, saksnummer: ${meldekortBehandling.saksnummer}" }
65+
return meldekortBehandling.iverksettMeldekort(kommando.beslutter).onRight {
66+
when (it.type) {
67+
MeldekortBehandlingType.FØRSTE_BEHANDLING -> persisterFørsteBehandling(it, sak)
68+
MeldekortBehandlingType.KORRIGERING -> persisterKorrigering(it, sak)
69+
}
70+
}
71+
}
72+
73+
private fun persisterFørsteBehandling(meldekort: MeldekortBehandling.MeldekortBehandlet, sak: Sak) {
74+
val eksisterendeUtbetalingsvedtak = sak.utbetalinger
75+
val utbetalingsvedtak = meldekort.opprettUtbetalingsvedtak(
76+
saksnummer = sak.saksnummer,
77+
fnr = sak.fnr,
78+
eksisterendeUtbetalingsvedtak.lastOrNull()?.id,
79+
)
80+
val utbetalingsstatistikk = utbetalingsvedtak.tilStatistikk()
81+
82+
val nesteMeldeperiode = sak.opprettNesteMeldeperiode()?.let {
83+
if (meldekort.periode.tilOgMed.plusDays(1) != it.periode.fraOgMed) {
84+
log.info { "Neste meldeperiode (${it.periode}) er ikke sammenhengende med det vedtatte meldekortet sin meldeperiode (${meldekort.periode}). Oppretter ikke ny meldeperiode. behandlingId: ${meldekort.id}, sakId: ${meldekort.sakId}" }
6785
null
6886
} else {
6987
it
7088
}
7189
}
7290

73-
return meldekortBehandling.iverksettMeldekort(kommando.beslutter).onRight { iverksattMeldekort ->
74-
val eksisterendeUtbetalingsvedtak = sak.utbetalinger
75-
val utbetalingsvedtak = iverksattMeldekort.opprettUtbetalingsvedtak(
76-
saksnummer = sak.saksnummer,
77-
fnr = sak.fnr,
78-
eksisterendeUtbetalingsvedtak.lastOrNull()?.id,
79-
)
80-
val utbetalingsstatistikk = utbetalingsvedtak.tilStatistikk()
81-
82-
sessionFactory.withTransactionContext { tx ->
83-
meldekortBehandlingRepo.oppdater(iverksattMeldekort, tx)
84-
// TODO John og Anders: På et tidspunkt bør vi kanskje flytte generering av meldeperioder ut i en jobb?
85-
nesteMeldeperiode?.also { meldeperiodeRepo.lagre(it, tx) }
86-
utbetalingsvedtakRepo.lagre(utbetalingsvedtak, tx)
87-
statistikkStønadRepo.lagre(utbetalingsstatistikk, tx)
88-
}
91+
sessionFactory.withTransactionContext { tx ->
92+
meldekortBehandlingRepo.oppdater(meldekort, tx)
93+
// TODO John og Anders: På et tidspunkt bør vi kanskje flytte generering av meldeperioder ut i en jobb?
94+
nesteMeldeperiode?.also { meldeperiodeRepo.lagre(it, tx) }
95+
utbetalingsvedtakRepo.lagre(utbetalingsvedtak, tx)
96+
statistikkStønadRepo.lagre(utbetalingsstatistikk, tx)
8997
}
9098
}
9199

100+
private fun persisterKorrigering(meldekort: MeldekortBehandling.MeldekortBehandlet, sak: Sak) {
101+
TODO("Har ikke implementert iverksetting av korrigering ennå!")
102+
}
103+
92104
private suspend fun kastHvisIkkeTilgangTilPerson(
93105
saksbehandler: Saksbehandler,
94106
meldekortId: MeldekortId,

0 commit comments

Comments
 (0)