@@ -25,6 +25,7 @@ internal class UgyldigeSituasjonerObservatør(private val person: Person): Perso
25
25
private val gjeldendeBehandlingstatus = mutableMapOf<UUID , Behandlingstatus >()
26
26
private val arbeidsgivere get() = arbeidsgivereMap.values
27
27
private val IM = Inntektsmeldinger ()
28
+ private val søknader = mutableMapOf<UUID , UUID ?>() // SøknadId -> VedtaksperiodeId
28
29
29
30
private val behandlingOpprettetEventer = mutableListOf<PersonObserver .BehandlingOpprettetEvent >()
30
31
private val behandlingLukketEventer = mutableListOf<PersonObserver .BehandlingLukketEvent >()
@@ -136,7 +137,16 @@ internal class UgyldigeSituasjonerObservatør(private val person: Person): Perso
136
137
IM .behandlingUtført()
137
138
}
138
139
140
+ override fun s øknadH åndtert (søknadId : UUID , vedtaksperiodeId : UUID , organisasjonsnummer : String ) {
141
+ søknader[søknadId] = null // VedtaksperiodeId her
142
+ }
143
+
139
144
override fun vedtaksperiodeVenter (event : PersonObserver .VedtaksperiodeVenterEvent ) {
145
+ sjekkUgyldigeVentesituasjoner(event)
146
+ sjekkSøknadIdEierskap(event.vedtaksperiodeId, event.hendelser)
147
+ }
148
+
149
+ private fun sjekkUgyldigeVentesituasjoner (event : PersonObserver .VedtaksperiodeVenterEvent ) {
140
150
if (event.venterPå.venteårsak.hva != " HJELP" ) return // Om vi venter på noe annet enn hjelp er det OK 👍
141
151
if (event.revurderingFeilet()) return // For tester som ender opp i revurdering feilet er det riktig at vi trenger hjelp 🛟
142
152
if (event.auuVilOmgjøres()) return // For tester som ikke lar en AUU gå videre i livet 🛟
@@ -148,6 +158,15 @@ internal class UgyldigeSituasjonerObservatør(private val person: Person): Perso
148
158
""" .let { throw IllegalStateException (it) }
149
159
}
150
160
161
+ private fun sjekkS øknadIdEierskap (vedtaksperiodeId : UUID , hendelseIder : Set <UUID >) {
162
+ val søknadIder = hendelseIder.intersect(søknader.keys)
163
+ søknadIder.forEach { søknadId ->
164
+ val eier = søknader[søknadId]
165
+ if (eier == null ) søknader[søknadId] = vedtaksperiodeId
166
+ else check(eier == vedtaksperiodeId) { " Både vedtaksperiode $eier og $vedtaksperiodeId peker på søknaden $s øknadId" }
167
+ }
168
+ }
169
+
151
170
override fun inntektsmeldingH åndtert (inntektsmeldingId : UUID , vedtaksperiodeId : UUID , organisasjonsnummer : String ) = IM .håndtert(inntektsmeldingId)
152
171
override fun inntektsmeldingIkkeH åndtert (inntektsmeldingId : UUID , organisasjonsnummer : String , harPeriodeInnenfor16Dager : Boolean ) = IM .ikkeHåndtert(inntektsmeldingId)
153
172
override fun inntektsmeldingF ørS øknad (event : PersonObserver .InntektsmeldingF ørSøknadEvent) = IM .førSøknad(event.inntektsmeldingId)
0 commit comments