Skip to content

Commit ccdbf59

Browse files
committed
Oppdaterer generering av utbetalingsvedtak dto
1 parent c138814 commit ccdbf59

File tree

2 files changed

+45
-14
lines changed

2 files changed

+45
-14
lines changed

app/src/main/kotlin/no/nav/tiltakspenger/saksbehandling/clients/utbetaling/UtbetalingDTO.kt

+21-14
Original file line numberDiff line numberDiff line change
@@ -30,13 +30,11 @@ fun Utbetalingsvedtak.toDTO(
3030
val utbetalingerStønad = meldekortbehandling.toUtbetalingDto(vedtak.brukerNavkontor, barnetillegg = false)
3131
val utbetalingerBarnetillegg = meldekortbehandling.toUtbetalingDto(vedtak.brukerNavkontor, barnetillegg = true)
3232

33-
val nyeUtbetalinger = (utbetalingerStønad + utbetalingerBarnetillegg)
34-
35-
val førsteNyeUtbetaling = nyeUtbetalinger.minByOrNull { it.fraOgMedDato }!!
33+
val nyeOgOppdaterteUtbetalinger = (utbetalingerStønad + utbetalingerBarnetillegg)
3634

3735
val tidligereUtbetalinger = forrigeUtbetalingJson
3836
?.let { deserialize<IverksettV2Dto>(it) }
39-
?.utbetalingerFør(førsteNyeUtbetaling) ?: emptyList()
37+
?.hentIkkeOppdaterteUtbetalinger(nyeOgOppdaterteUtbetalinger) ?: emptyList()
4038

4139
return IverksettV2Dto(
4240
sakId = vedtak.saksnummer.toString(),
@@ -50,22 +48,25 @@ fun Utbetalingsvedtak.toDTO(
5048
vedtakstidspunkt = vedtak.opprettet,
5149
saksbehandlerId = vedtak.saksbehandler,
5250
beslutterId = vedtak.beslutter,
53-
utbetalinger = tidligereUtbetalinger + nyeUtbetalinger,
51+
utbetalinger = tidligereUtbetalinger + nyeOgOppdaterteUtbetalinger,
5452
),
5553
forrigeIverksetting =
5654
vedtak.forrigeUtbetalingsvedtakId?.let { ForrigeIverksettingV2Dto(behandlingId = it.uuidPart()) },
57-
).let {
58-
serialize(it)
59-
}
55+
).let { serialize(it) }
6056
}
6157

6258
/** 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)
6868
}
69+
}
6970

7071
private fun List<MeldeperiodeBeregningDag.Utfylt>.toUtbetalingDto(
7172
brukersNavKontor: Navkontor,
@@ -105,7 +106,13 @@ private fun MeldekortBehandling.MeldekortBehandlet.toUtbetalingDto(
105106
brukersNavKontor,
106107
barnetillegg,
107108
this.kjedeId,
108-
)
109+
) + this.beregning.meldeperioderOmberegnet.flatMap {
110+
it.dager.toUtbetalingDto(
111+
brukersNavKontor,
112+
barnetillegg,
113+
it.kjedeId,
114+
)
115+
}
109116
}
110117

111118
private fun MeldeperiodeBeregningDag.Utfylt.genererUtbetalingsperiode(

app/src/test/kotlin/no/nav/tiltakspenger/saksbehandling/clients/utbetaling/UtbetalingDTOKorrigeringTest.kt

+24
Original file line numberDiff line numberDiff line change
@@ -245,6 +245,30 @@ internal class UtbetalingDTOKorrigeringTest {
245245
"saksbehandlerId": "saksbehandler",
246246
"beslutterId": "beslutter",
247247
"utbetalinger": [
248+
{
249+
"beløp": 298,
250+
"satstype": "DAGLIG_INKL_HELG",
251+
"fraOgMedDato": "2025-01-20",
252+
"tilOgMedDato": "2025-01-24",
253+
"stønadsdata": {
254+
"stønadstype": "GRUPPE_AMO",
255+
"barnetillegg": false,
256+
"brukersNavKontor": "0220",
257+
"meldekortId": "2025-01-20/2025-02-02"
258+
}
259+
},
260+
{
261+
"beløp": 298,
262+
"satstype": "DAGLIG_INKL_HELG",
263+
"fraOgMedDato": "2025-01-27",
264+
"tilOgMedDato": "2025-01-31",
265+
"stønadsdata": {
266+
"stønadstype": "GRUPPE_AMO",
267+
"barnetillegg": false,
268+
"brukersNavKontor": "0220",
269+
"meldekortId": "2025-01-20/2025-02-02"
270+
}
271+
},
248272
{
249273
"beløp": 298,
250274
"satstype": "DAGLIG_INKL_HELG",

0 commit comments

Comments
 (0)