@@ -30,13 +30,11 @@ fun Utbetalingsvedtak.toDTO(
30
30
val utbetalingerStønad = meldekortbehandling.toUtbetalingDto(vedtak.brukerNavkontor, barnetillegg = false )
31
31
val utbetalingerBarnetillegg = meldekortbehandling.toUtbetalingDto(vedtak.brukerNavkontor, barnetillegg = true )
32
32
33
- val nyeUtbetalinger = (utbetalingerStønad + utbetalingerBarnetillegg)
34
-
35
- val førsteNyeUtbetaling = nyeUtbetalinger.minByOrNull { it.fraOgMedDato }!!
33
+ val nyeOgOppdaterteUtbetalinger = (utbetalingerStønad + utbetalingerBarnetillegg)
36
34
37
35
val tidligereUtbetalinger = forrigeUtbetalingJson
38
36
?.let { deserialize<IverksettV2Dto >(it) }
39
- ?.utbetalingerFør(førsteNyeUtbetaling ) ? : emptyList()
37
+ ?.hentIkkeOppdaterteUtbetalinger(nyeOgOppdaterteUtbetalinger ) ? : emptyList()
40
38
41
39
return IverksettV2Dto (
42
40
sakId = vedtak.saksnummer.toString(),
@@ -50,22 +48,25 @@ fun Utbetalingsvedtak.toDTO(
50
48
vedtakstidspunkt = vedtak.opprettet,
51
49
saksbehandlerId = vedtak.saksbehandler,
52
50
beslutterId = vedtak.beslutter,
53
- utbetalinger = tidligereUtbetalinger + nyeUtbetalinger ,
51
+ utbetalinger = tidligereUtbetalinger + nyeOgOppdaterteUtbetalinger ,
54
52
),
55
53
forrigeIverksetting =
56
54
vedtak.forrigeUtbetalingsvedtakId?.let { ForrigeIverksettingV2Dto (behandlingId = it.uuidPart()) },
57
- ).let {
58
- serialize(it)
59
- }
55
+ ).let { serialize(it) }
60
56
}
61
57
62
58
/* * Filtrerer vekk tidligere utbetalinger, og utbetalinger på samme meldeperiodekjede ("meldekortId" her) */
63
- private fun IverksettV2Dto.utbetalingerF ør (utbetaling : UtbetalingV2Dto ) =
64
- this .vedtak.utbetalinger.filter {
65
- val itStønadsdata = it.stønadsdata as St ønadsdataTiltakspengerV2Dto
66
- val utbetalingStønadsdata = utbetaling.stønadsdata as St ønadsdataTiltakspengerV2Dto
67
- utbetaling.fraOgMedDato > it.fraOgMedDato && utbetalingStønadsdata.meldekortId != itStønadsdata.meldekortId
59
+ private fun IverksettV2Dto.hentIkkeOppdaterteUtbetalinger (oppdaterteUtbetalinger : List <UtbetalingV2Dto >): List <UtbetalingV2Dto > {
60
+ val oppdaterteMeldekortIder = oppdaterteUtbetalinger.map {
61
+ val stønadsdata = it.stønadsdata as St ønadsdataTiltakspengerV2Dto
62
+ stønadsdata.meldekortId
63
+ }
64
+
65
+ return this .vedtak.utbetalinger.filterNot { tidligereUtbetaling ->
66
+ val stønadsdata = tidligereUtbetaling.stønadsdata as St ønadsdataTiltakspengerV2Dto
67
+ oppdaterteMeldekortIder.contains(stønadsdata.meldekortId)
68
68
}
69
+ }
69
70
70
71
private fun List<MeldeperiodeBeregningDag.Utfylt>.toUtbetalingDto (
71
72
brukersNavKontor : Navkontor ,
@@ -105,7 +106,13 @@ private fun MeldekortBehandling.MeldekortBehandlet.toUtbetalingDto(
105
106
brukersNavKontor,
106
107
barnetillegg,
107
108
this .kjedeId,
108
- )
109
+ ) + this .beregning.meldeperioderOmberegnet.flatMap {
110
+ it.dager.toUtbetalingDto(
111
+ brukersNavKontor,
112
+ barnetillegg,
113
+ it.kjedeId,
114
+ )
115
+ }
109
116
}
110
117
111
118
private fun MeldeperiodeBeregningDag.Utfylt.genererUtbetalingsperiode (
0 commit comments