@@ -27,7 +27,8 @@ fun Utbetalingsvedtak.toDTO(
27
27
): String {
28
28
val forrigeUtbetaling = forrigeUtbetalingJson?.let { deserialize<IverksettV2Dto >(it) }
29
29
val vedtak: Utbetalingsvedtak = this
30
- val nyeUtbetalinger = meldekortbehandling.toUtbetalingDto(vedtak.brukerNavkontor)
30
+ val nyeUtbetalingerStønad = meldekortbehandling.toUtbetalingDto(vedtak.brukerNavkontor, barnetillegg = false )
31
+ val nyeUtbetalingerBarnetillegg = meldekortbehandling.toUtbetalingDto(vedtak.brukerNavkontor, barnetillegg = true )
31
32
32
33
return IverksettV2Dto (
33
34
sakId = vedtak.saksnummer.toString(),
@@ -41,7 +42,10 @@ fun Utbetalingsvedtak.toDTO(
41
42
vedtakstidspunkt = vedtak.opprettet,
42
43
saksbehandlerId = vedtak.saksbehandler,
43
44
beslutterId = vedtak.beslutter,
44
- utbetalinger = (forrigeUtbetaling?.vedtak?.utbetalinger ? : emptyList()) + nyeUtbetalinger,
45
+ utbetalinger = (
46
+ forrigeUtbetaling?.vedtak?.utbetalinger
47
+ ? : emptyList()
48
+ ) + nyeUtbetalingerStønad + nyeUtbetalingerBarnetillegg,
45
49
),
46
50
forrigeIverksetting =
47
51
vedtak.forrigeUtbetalingsvedtakId?.let { ForrigeIverksettingV2Dto (behandlingId = it.uuidPart()) },
@@ -52,6 +56,7 @@ fun Utbetalingsvedtak.toDTO(
52
56
53
57
private fun MeldekortBehandling.MeldekortBehandlet.toUtbetalingDto (
54
58
brukersNavKontor : Navkontor ,
59
+ barnetillegg : Boolean ,
55
60
): List <UtbetalingV2Dto > {
56
61
return this .beregning.fold((listOf ())) { acc: List <UtbetalingV2Dto >, meldekortdag ->
57
62
meldekortdag as MeldeperiodeBeregningDag .Utfylt
@@ -61,11 +66,17 @@ private fun MeldekortBehandling.MeldekortBehandlet.toUtbetalingDto(
61
66
meldekortdag.genererUtbetalingsperiode(
62
67
meldeperiodeKjedeId = meldeperiodeKjedeId,
63
68
brukersNavKontor = brukersNavKontor,
69
+ barnetillegg = barnetillegg,
64
70
)?.let { acc + it } ? : acc
65
71
}
66
72
67
73
else ->
68
- sisteUtbetalingsperiode.leggTil(meldekortdag, this .meldeperiodeKjedeId, brukersNavKontor).let {
74
+ sisteUtbetalingsperiode.leggTil(
75
+ meldekortdag,
76
+ this .meldeperiodeKjedeId,
77
+ brukersNavKontor,
78
+ barnetillegg = barnetillegg,
79
+ ).let {
69
80
when (it) {
70
81
is Resultat .KanIkkeSl åSammen -> acc + it.utbetalingsperiode
71
82
is Resultat .KanSl åSammen -> acc.dropLast(1 ) + it.utbetalingsperiode
@@ -79,20 +90,23 @@ private fun MeldekortBehandling.MeldekortBehandlet.toUtbetalingDto(
79
90
private fun MeldeperiodeBeregningDag.Utfylt.genererUtbetalingsperiode (
80
91
meldeperiodeKjedeId : MeldeperiodeKjedeId ,
81
92
brukersNavKontor : Navkontor ,
93
+ barnetillegg : Boolean ,
82
94
): UtbetalingV2Dto ? {
95
+ // Vi ønsker ikke lage linjer for 0-beløp (safeguard).
96
+ if (barnetillegg && this .beløpBarnetillegg == 0 ) return null
97
+ if (! barnetillegg && this .beløp == 0 ) return null
83
98
return when (this .reduksjon) {
84
99
ReduksjonAvYtelseP åGrunnAvFrav ær.YtelsenFallerBort -> null
85
100
ReduksjonAvYtelseP åGrunnAvFrav ær.IngenReduksjon , ReduksjonAvYtelseP åGrunnAvFrav ær.Reduksjon ->
86
101
UtbetalingV2Dto (
87
- beløp = this .beløp.toUInt(),
102
+ beløp = ( if (barnetillegg) this .beløpBarnetillegg else this . beløp) .toUInt(),
88
103
satstype = Satstype .DAGLIG_INKL_HELG ,
89
104
fraOgMedDato = this .dato,
90
105
tilOgMedDato = this .dato,
91
106
stønadsdata =
92
107
St ønadsdataTiltakspengerV2Dto(
93
108
stønadstype = this .tiltakstype.mapStønadstype(),
94
- // TODO barnetillegg: Legg til støtte for barnetillegg
95
- barnetillegg = false ,
109
+ barnetillegg = barnetillegg,
96
110
brukersNavKontor = brukersNavKontor.kontornummer,
97
111
meldekortId = meldeperiodeKjedeId.verdi,
98
112
),
@@ -104,8 +118,9 @@ private fun UtbetalingV2Dto.leggTil(
104
118
meldekortdag : MeldeperiodeBeregningDag .Utfylt ,
105
119
meldeperiodeKjedeId : MeldeperiodeKjedeId ,
106
120
brukersNavKontor : Navkontor ,
121
+ barnetillegg : Boolean ,
107
122
): Resultat {
108
- val neste = meldekortdag.genererUtbetalingsperiode(meldeperiodeKjedeId, brukersNavKontor)
123
+ val neste = meldekortdag.genererUtbetalingsperiode(meldeperiodeKjedeId, brukersNavKontor, barnetillegg )
109
124
? : return Resultat .SkalIkkeUtbetales
110
125
return if (this .kanSlåSammen (neste)) {
111
126
Resultat .KanSl åSammen (this .copy(tilOgMedDato = neste.tilOgMedDato))
0 commit comments