@@ -3,7 +3,6 @@ package no.nav.tiltakspenger.saksbehandling.meldekort.domene
3
3
import arrow.core.NonEmptyList
4
4
import arrow.core.toNonEmptyListOrNull
5
5
import no.nav.tiltakspenger.libs.common.MeldekortId
6
- import no.nav.tiltakspenger.libs.common.MeldeperiodeKjedeId
7
6
import no.nav.tiltakspenger.libs.periodisering.Periodisering
8
7
import no.nav.tiltakspenger.libs.tiltak.TiltakstypeSomGirRett
9
8
import no.nav.tiltakspenger.saksbehandling.barnetillegg.AntallBarn
@@ -38,8 +37,6 @@ private data class MeldekortBeregning(
38
37
val barnetilleggsPerioder : Periodisering <AntallBarn ?>,
39
38
val tiltakstypePerioder : Periodisering <TiltakstypeSomGirRett ?>,
40
39
) {
41
- private val meldekortSomSkalUtfylles: MeldekortBehandling
42
-
43
40
private var sykTilstand: SykTilstand = SykTilstand .FullUtbetaling
44
41
private var egenmeldingsdagerSyk: Int = ANTALL_EGENMELDINGSDAGER
45
42
private var sykKaranteneDag: LocalDate ? = null
@@ -65,17 +62,17 @@ private data class MeldekortBeregning(
65
62
require(meldekortSomSkalUtfylles is MeldekortBehandling .MeldekortUnderBehandling ) {
66
63
" Innsendt meldekort $meldekortId er ikke under behandling"
67
64
}
68
-
69
- this .meldekortSomSkalUtfylles = meldekortSomSkalUtfylles
70
65
}
71
66
72
67
/* * Returnerer beregnede dager fra kommando, og omberegning for relevante dager på saken */
73
68
fun beregn (): Pair <NonEmptyList <MeldeperiodeBeregningDag .Utfylt >, List<MeldeperiodeOmberegnet>> {
74
- val oppdatertMeldekortId = meldekortSomSkalUtfylles.id
75
- val oppdatertKjedeId = meldekortSomSkalUtfylles.kjedeId
69
+ val oppdatertMeldekortId = kommando.meldekortId
76
70
val oppdaterteDager = kommando.dager
77
71
val oppdatertFraOgMed = oppdaterteDager.first().dag
78
72
73
+ val meldekortSomSkalUtfylles = eksisterendeMeldekortBehandlinger.hentMeldekortBehandling(oppdatertMeldekortId)!!
74
+ val oppdatertKjedeId = meldekortSomSkalUtfylles.kjedeId
75
+
79
76
val (eksisterendeMeldekortFør, eksisterendeMeldekortEtter) = eksisterendeMeldekortBehandlinger.sisteBehandledeMeldekortPerKjede
80
77
.dropWhile { it.kjedeId == oppdatertKjedeId }
81
78
.partition { it.periode.fraOgMed < oppdatertFraOgMed }
@@ -95,38 +92,34 @@ private data class MeldekortBeregning(
95
92
val antallBarn: AntallBarn = barnetilleggsPerioder.hentVerdiForDag(dag) ? : AntallBarn .ZERO
96
93
97
94
when (meldekortdag.status) {
98
- SPERRET -> sperret(dag, oppdatertMeldekortId, oppdatertKjedeId )
95
+ SPERRET -> sperret(dag, oppdatertMeldekortId)
99
96
DELTATT_UTEN_L ØNN_I_TILTAKET -> deltattUtenLønn(
100
97
dag,
101
98
oppdatertMeldekortId,
102
- oppdatertKjedeId,
103
99
tiltakstype,
104
100
antallBarn,
105
101
)
106
102
107
103
DELTATT_MED_L ØNN_I_TILTAKET -> deltattMedLønn(
108
104
dag,
109
105
oppdatertMeldekortId,
110
- oppdatertKjedeId,
111
106
tiltakstype,
112
107
antallBarn,
113
108
)
114
109
115
- IKKE_DELTATT -> ikkeDeltatt(dag, oppdatertMeldekortId, oppdatertKjedeId, tiltakstype, antallBarn)
116
- FRAV ÆR_SYK -> fraværSyk(dag, oppdatertMeldekortId, oppdatertKjedeId, tiltakstype, antallBarn)
117
- FRAV ÆR_SYKT_BARN -> fraværSykBarn(dag, oppdatertMeldekortId, oppdatertKjedeId, tiltakstype, antallBarn)
110
+ IKKE_DELTATT -> ikkeDeltatt(dag, oppdatertMeldekortId, tiltakstype, antallBarn)
111
+ FRAV ÆR_SYK -> fraværSyk(dag, oppdatertMeldekortId, tiltakstype, antallBarn)
112
+ FRAV ÆR_SYKT_BARN -> fraværSykBarn(dag, oppdatertMeldekortId, tiltakstype, antallBarn)
118
113
FRAV ÆR_VELFERD_GODKJENT_AV_NAV -> gyldigFravær(
119
114
dag,
120
115
oppdatertMeldekortId,
121
- oppdatertKjedeId,
122
116
tiltakstype,
123
117
antallBarn,
124
118
)
125
119
126
120
FRAV ÆR_VELFERD_IKKE_GODKJENT_AV_NAV -> ugyldigFravær(
127
121
dag,
128
122
oppdatertMeldekortId,
129
- oppdatertKjedeId,
130
123
tiltakstype,
131
124
antallBarn,
132
125
)
@@ -152,18 +145,17 @@ private data class MeldekortBeregning(
152
145
153
146
val dag = meldekortdag.dato
154
147
val meldekortId = meldekortdag.meldekortId
155
- val kjedeId = meldekortdag.kjedeId
156
148
val antallBarn: AntallBarn = barnetilleggsPerioder.hentVerdiForDag(dag) ? : AntallBarn .ZERO
157
149
158
150
val utfyltDag = when (meldekortdag) {
159
- is Sperret -> sperret(dag, meldekortId, kjedeId )
160
- is VelferdGodkjentAvNav -> gyldigFravær(dag, meldekortId, kjedeId, tiltakstype, antallBarn)
161
- is VelferdIkkeGodkjentAvNav -> ugyldigFravær(dag, meldekortId, kjedeId, tiltakstype, antallBarn)
162
- is SyktBarn -> fraværSykBarn(dag, meldekortId, kjedeId, tiltakstype, antallBarn)
163
- is SykBruker -> fraværSyk(dag, meldekortId, kjedeId, tiltakstype, antallBarn)
164
- is IkkeDeltatt -> ikkeDeltatt(dag, meldekortId, kjedeId, tiltakstype, antallBarn)
165
- is DeltattMedL ønnITiltaket -> deltattMedLønn(dag, meldekortId, kjedeId, tiltakstype, antallBarn)
166
- is DeltattUtenL ønnITiltaket -> deltattUtenLønn(dag, meldekortId, kjedeId, tiltakstype, antallBarn)
151
+ is Sperret -> sperret(dag, meldekortId)
152
+ is VelferdGodkjentAvNav -> gyldigFravær(dag, meldekortId, tiltakstype, antallBarn)
153
+ is VelferdIkkeGodkjentAvNav -> ugyldigFravær(dag, meldekortId, tiltakstype, antallBarn)
154
+ is SyktBarn -> fraværSykBarn(dag, meldekortId, tiltakstype, antallBarn)
155
+ is SykBruker -> fraværSyk(dag, meldekortId, tiltakstype, antallBarn)
156
+ is IkkeDeltatt -> ikkeDeltatt(dag, meldekortId, tiltakstype, antallBarn)
157
+ is DeltattMedL ønnITiltaket -> deltattMedLønn(dag, meldekortId, tiltakstype, antallBarn)
158
+ is DeltattUtenL ønnITiltaket -> deltattUtenLønn(dag, meldekortId, tiltakstype, antallBarn)
167
159
}
168
160
169
161
return utfyltDag
@@ -172,15 +164,13 @@ private data class MeldekortBeregning(
172
164
private fun deltattUtenL ønn (
173
165
dag : LocalDate ,
174
166
meldekortId : MeldekortId ,
175
- kjedeId : MeldeperiodeKjedeId ,
176
167
tiltakstype : TiltakstypeSomGirRett ,
177
168
antallBarn : AntallBarn ,
178
169
): DeltattUtenL ønnITiltaket {
179
170
sjekkSykKarantene(dag)
180
171
sjekkSykBarnKarantene(dag)
181
172
return DeltattUtenL ønnITiltaket.create(
182
173
meldekortId = meldekortId,
183
- kjedeId = kjedeId,
184
174
dato = dag,
185
175
tiltakstype = tiltakstype,
186
176
antallBarn = antallBarn,
@@ -190,15 +180,13 @@ private data class MeldekortBeregning(
190
180
private fun gyldigFrav ær (
191
181
dag : LocalDate ,
192
182
meldekortId : MeldekortId ,
193
- kjedeId : MeldeperiodeKjedeId ,
194
183
tiltakstype : TiltakstypeSomGirRett ,
195
184
antallBarn : AntallBarn ,
196
185
): VelferdGodkjentAvNav {
197
186
sjekkSykKarantene(dag)
198
187
sjekkSykBarnKarantene(dag)
199
188
return VelferdGodkjentAvNav .create(
200
189
meldekortId = meldekortId,
201
- kjedeId = kjedeId,
202
190
dato = dag,
203
191
tiltakstype = tiltakstype,
204
192
antallBarn = antallBarn,
@@ -208,15 +196,13 @@ private data class MeldekortBeregning(
208
196
private fun ugyldigFrav ær (
209
197
dag : LocalDate ,
210
198
meldekortId : MeldekortId ,
211
- kjedeId : MeldeperiodeKjedeId ,
212
199
tiltakstype : TiltakstypeSomGirRett ,
213
200
antallBarn : AntallBarn ,
214
201
): VelferdIkkeGodkjentAvNav {
215
202
sjekkSykKarantene(dag)
216
203
sjekkSykBarnKarantene(dag)
217
204
return VelferdIkkeGodkjentAvNav .create(
218
205
meldekortId = meldekortId,
219
- kjedeId = kjedeId,
220
206
dato = dag,
221
207
tiltakstype = tiltakstype,
222
208
antallBarn = antallBarn,
@@ -226,29 +212,25 @@ private data class MeldekortBeregning(
226
212
private fun sperret (
227
213
dag : LocalDate ,
228
214
meldekortId : MeldekortId ,
229
- kjedeId : MeldeperiodeKjedeId ,
230
215
): Sperret {
231
216
sjekkSykKarantene(dag)
232
217
sjekkSykBarnKarantene(dag)
233
218
return Sperret (
234
219
meldekortId = meldekortId,
235
- kjedeId = kjedeId,
236
220
dato = dag,
237
221
)
238
222
}
239
223
240
224
private fun ikkeDeltatt (
241
225
dag : LocalDate ,
242
226
meldekortId : MeldekortId ,
243
- kjedeId : MeldeperiodeKjedeId ,
244
227
tiltakstype : TiltakstypeSomGirRett ,
245
228
antallBarn : AntallBarn ,
246
229
): IkkeDeltatt {
247
230
sjekkSykKarantene(dag)
248
231
sjekkSykBarnKarantene(dag)
249
232
return IkkeDeltatt .create(
250
233
meldekortId = meldekortId,
251
- kjedeId = kjedeId,
252
234
dato = dag,
253
235
tiltakstype = tiltakstype,
254
236
antallBarn = antallBarn,
@@ -258,15 +240,13 @@ private data class MeldekortBeregning(
258
240
private fun deltattMedL ønn (
259
241
dag : LocalDate ,
260
242
meldekortId : MeldekortId ,
261
- kjedeId : MeldeperiodeKjedeId ,
262
243
tiltakstype : TiltakstypeSomGirRett ,
263
244
antallBarn : AntallBarn ,
264
245
): DeltattMedL ønnITiltaket {
265
246
sjekkSykKarantene(dag)
266
247
sjekkSykBarnKarantene(dag)
267
248
return DeltattMedL ønnITiltaket.create(
268
249
meldekortId = meldekortId,
269
- kjedeId = kjedeId,
270
250
dato = dag,
271
251
tiltakstype = tiltakstype,
272
252
antallBarn = antallBarn,
@@ -276,7 +256,6 @@ private data class MeldekortBeregning(
276
256
private fun frav ærSyk (
277
257
dag : LocalDate ,
278
258
meldekortId : MeldekortId ,
279
- kjedeId : MeldeperiodeKjedeId ,
280
259
tiltakstype : TiltakstypeSomGirRett ,
281
260
antallBarn : AntallBarn ,
282
261
): SykBruker {
@@ -287,7 +266,6 @@ private data class MeldekortBeregning(
287
266
egenmeldingsdagerSyk--
288
267
return SykBruker .create(
289
268
meldekortId = meldekortId,
290
- kjedeId = kjedeId,
291
269
dato = dag,
292
270
tiltakstype = tiltakstype,
293
271
reduksjon = IngenReduksjon ,
@@ -298,7 +276,6 @@ private data class MeldekortBeregning(
298
276
sykTilstand = SykTilstand .DelvisUtbetaling
299
277
return SykBruker .create(
300
278
meldekortId = meldekortId,
301
- kjedeId = kjedeId,
302
279
dato = dag,
303
280
tiltakstype = tiltakstype,
304
281
reduksjon = Reduksjon ,
@@ -316,7 +293,6 @@ private data class MeldekortBeregning(
316
293
}
317
294
return SykBruker .create(
318
295
meldekortId = meldekortId,
319
- kjedeId = kjedeId,
320
296
dato = dag,
321
297
tiltakstype = tiltakstype,
322
298
reduksjon = Reduksjon ,
@@ -327,7 +303,6 @@ private data class MeldekortBeregning(
327
303
sykKaranteneDag = dag.plusDays(DAGER_KARANTENE )
328
304
return SykBruker .create(
329
305
meldekortId = meldekortId,
330
- kjedeId = kjedeId,
331
306
dato = dag,
332
307
tiltakstype = tiltakstype,
333
308
reduksjon = YtelsenFallerBort ,
@@ -342,7 +317,6 @@ private data class MeldekortBeregning(
342
317
sykKaranteneDag = dag.plusDays(DAGER_KARANTENE )
343
318
return SykBruker .create(
344
319
meldekortId = meldekortId,
345
- kjedeId = kjedeId,
346
320
dato = dag,
347
321
tiltakstype = tiltakstype,
348
322
reduksjon = YtelsenFallerBort ,
@@ -355,7 +329,6 @@ private data class MeldekortBeregning(
355
329
private fun frav ærSykBarn (
356
330
dag : LocalDate ,
357
331
meldekortId : MeldekortId ,
358
- kjedeId : MeldeperiodeKjedeId ,
359
332
tiltakstype : TiltakstypeSomGirRett ,
360
333
antallBarn : AntallBarn ,
361
334
): SyktBarn {
@@ -366,7 +339,6 @@ private data class MeldekortBeregning(
366
339
egenmeldingsdagerSyktBarn--
367
340
return SyktBarn .create(
368
341
meldekortId = meldekortId,
369
- kjedeId = kjedeId,
370
342
dag = dag,
371
343
tiltakstype = tiltakstype,
372
344
reduksjon = IngenReduksjon ,
@@ -378,7 +350,6 @@ private data class MeldekortBeregning(
378
350
syktBarnTilstand = SykTilstand .DelvisUtbetaling
379
351
return SyktBarn .create(
380
352
meldekortId = meldekortId,
381
- kjedeId = kjedeId,
382
353
dag = dag,
383
354
tiltakstype = tiltakstype,
384
355
reduksjon = Reduksjon ,
@@ -396,7 +367,6 @@ private data class MeldekortBeregning(
396
367
}
397
368
return SyktBarn .create(
398
369
meldekortId = meldekortId,
399
- kjedeId = kjedeId,
400
370
dag = dag,
401
371
tiltakstype = tiltakstype,
402
372
reduksjon = Reduksjon ,
@@ -407,7 +377,6 @@ private data class MeldekortBeregning(
407
377
syktBarnKaranteneDag = dag.plusDays(DAGER_KARANTENE )
408
378
return SyktBarn .create(
409
379
meldekortId = meldekortId,
410
- kjedeId = kjedeId,
411
380
dag = dag,
412
381
tiltakstype = tiltakstype,
413
382
reduksjon = YtelsenFallerBort ,
@@ -421,7 +390,6 @@ private data class MeldekortBeregning(
421
390
sjekkSykBarnKarantene(dag)
422
391
return SyktBarn .create(
423
392
meldekortId = meldekortId,
424
- kjedeId = kjedeId,
425
393
dag = dag,
426
394
tiltakstype = tiltakstype,
427
395
reduksjon = YtelsenFallerBort ,
0 commit comments