Skip to content

Commit 46d96aa

Browse files
committed
Støtt barnetillegg i utbetalingslinjene
1 parent b4e56bb commit 46d96aa

File tree

16 files changed

+634
-31
lines changed

16 files changed

+634
-31
lines changed

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

+22-7
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,8 @@ fun Utbetalingsvedtak.toDTO(
2727
): String {
2828
val forrigeUtbetaling = forrigeUtbetalingJson?.let { deserialize<IverksettV2Dto>(it) }
2929
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)
3132

3233
return IverksettV2Dto(
3334
sakId = vedtak.saksnummer.toString(),
@@ -41,7 +42,10 @@ fun Utbetalingsvedtak.toDTO(
4142
vedtakstidspunkt = vedtak.opprettet,
4243
saksbehandlerId = vedtak.saksbehandler,
4344
beslutterId = vedtak.beslutter,
44-
utbetalinger = (forrigeUtbetaling?.vedtak?.utbetalinger ?: emptyList()) + nyeUtbetalinger,
45+
utbetalinger = (
46+
forrigeUtbetaling?.vedtak?.utbetalinger
47+
?: emptyList()
48+
) + nyeUtbetalingerStønad + nyeUtbetalingerBarnetillegg,
4549
),
4650
forrigeIverksetting =
4751
vedtak.forrigeUtbetalingsvedtakId?.let { ForrigeIverksettingV2Dto(behandlingId = it.uuidPart()) },
@@ -52,6 +56,7 @@ fun Utbetalingsvedtak.toDTO(
5256

5357
private fun MeldekortBehandling.MeldekortBehandlet.toUtbetalingDto(
5458
brukersNavKontor: Navkontor,
59+
barnetillegg: Boolean,
5560
): List<UtbetalingV2Dto> {
5661
return this.beregning.fold((listOf())) { acc: List<UtbetalingV2Dto>, meldekortdag ->
5762
meldekortdag as MeldeperiodeBeregningDag.Utfylt
@@ -61,11 +66,17 @@ private fun MeldekortBehandling.MeldekortBehandlet.toUtbetalingDto(
6166
meldekortdag.genererUtbetalingsperiode(
6267
meldeperiodeKjedeId = meldeperiodeKjedeId,
6368
brukersNavKontor = brukersNavKontor,
69+
barnetillegg = barnetillegg,
6470
)?.let { acc + it } ?: acc
6571
}
6672

6773
else ->
68-
sisteUtbetalingsperiode.leggTil(meldekortdag, this.meldeperiodeKjedeId, brukersNavKontor).let {
74+
sisteUtbetalingsperiode.leggTil(
75+
meldekortdag,
76+
this.meldeperiodeKjedeId,
77+
brukersNavKontor,
78+
barnetillegg = barnetillegg,
79+
).let {
6980
when (it) {
7081
is Resultat.KanIkkeSlåSammen -> acc + it.utbetalingsperiode
7182
is Resultat.KanSlåSammen -> acc.dropLast(1) + it.utbetalingsperiode
@@ -79,20 +90,23 @@ private fun MeldekortBehandling.MeldekortBehandlet.toUtbetalingDto(
7990
private fun MeldeperiodeBeregningDag.Utfylt.genererUtbetalingsperiode(
8091
meldeperiodeKjedeId: MeldeperiodeKjedeId,
8192
brukersNavKontor: Navkontor,
93+
barnetillegg: Boolean,
8294
): 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
8398
return when (this.reduksjon) {
8499
ReduksjonAvYtelsePåGrunnAvFravær.YtelsenFallerBort -> null
85100
ReduksjonAvYtelsePåGrunnAvFravær.IngenReduksjon, ReduksjonAvYtelsePåGrunnAvFravær.Reduksjon ->
86101
UtbetalingV2Dto(
87-
beløp = this.beløp.toUInt(),
102+
beløp = (if (barnetillegg) this.beløpBarnetillegg else this.beløp).toUInt(),
88103
satstype = Satstype.DAGLIG_INKL_HELG,
89104
fraOgMedDato = this.dato,
90105
tilOgMedDato = this.dato,
91106
stønadsdata =
92107
StønadsdataTiltakspengerV2Dto(
93108
stønadstype = this.tiltakstype.mapStønadstype(),
94-
// TODO barnetillegg: Legg til støtte for barnetillegg
95-
barnetillegg = false,
109+
barnetillegg = barnetillegg,
96110
brukersNavKontor = brukersNavKontor.kontornummer,
97111
meldekortId = meldeperiodeKjedeId.verdi,
98112
),
@@ -104,8 +118,9 @@ private fun UtbetalingV2Dto.leggTil(
104118
meldekortdag: MeldeperiodeBeregningDag.Utfylt,
105119
meldeperiodeKjedeId: MeldeperiodeKjedeId,
106120
brukersNavKontor: Navkontor,
121+
barnetillegg: Boolean,
107122
): Resultat {
108-
val neste = meldekortdag.genererUtbetalingsperiode(meldeperiodeKjedeId, brukersNavKontor)
123+
val neste = meldekortdag.genererUtbetalingsperiode(meldeperiodeKjedeId, brukersNavKontor, barnetillegg)
109124
?: return Resultat.SkalIkkeUtbetales
110125
return if (this.kanSlåSammen(neste)) {
111126
Resultat.KanSlåSammen(this.copy(tilOgMedDato = neste.tilOgMedDato))

app/src/main/kotlin/no/nav/tiltakspenger/vedtak/repository/behandling/BarnetilleggDbJson.kt

+2-2
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ private data class BarnetilleggPeriodeMedVerdi(
2323
fun String.toBarnetillegg(): Barnetillegg {
2424
val barnetilleggDbJson = deserialize<BarnetilleggDbJson>(this)
2525
return Barnetillegg(
26-
value = Periodisering(
26+
periodisering = Periodisering(
2727
barnetilleggDbJson.value.map {
2828
PeriodeMedVerdi(
2929
periode = it.periode.toDomain(),
@@ -36,7 +36,7 @@ fun String.toBarnetillegg(): Barnetillegg {
3636
}
3737

3838
fun Barnetillegg.toDbJson(): String = BarnetilleggDbJson(
39-
value = this.value.perioderMedVerdi.map {
39+
value = this.periodisering.perioderMedVerdi.map {
4040
BarnetilleggPeriodeMedVerdi(
4141
periode = it.periode.toDbJson(),
4242
verdi = it.verdi.value,

app/src/main/kotlin/no/nav/tiltakspenger/vedtak/routes/behandling/BehandlingRoutes.kt

+1
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import no.nav.tiltakspenger.saksbehandling.service.behandling.brev.ForhåndsvisV
1414
import no.nav.tiltakspenger.saksbehandling.service.sak.SakService
1515
import no.nav.tiltakspenger.saksbehandling.service.sak.StartRevurderingService
1616
import no.nav.tiltakspenger.vedtak.auditlog.AuditService
17+
import no.nav.tiltakspenger.vedtak.routes.behandling.barnetillegg.oppdaterBarnetilleggRoute
1718
import no.nav.tiltakspenger.vedtak.routes.behandling.beslutter.iverksettBehandlingRoute
1819
import no.nav.tiltakspenger.vedtak.routes.behandling.brev.forhåndsvisVedtaksbrevRoute
1920
import no.nav.tiltakspenger.vedtak.routes.behandling.brev.oppdaterFritekstTilVedtaksbrevRoute

app/src/main/kotlin/no/nav/tiltakspenger/vedtak/routes/behandling/barnetillegg/OppdaterBarnetilleggRoute.kt

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package no.nav.tiltakspenger.vedtak.routes.behandling
1+
package no.nav.tiltakspenger.vedtak.routes.behandling.barnetillegg
22

33
import io.ktor.http.HttpStatusCode
44
import io.ktor.server.response.respond
@@ -47,7 +47,7 @@ private data class OppdaterBarnetilleggBody(
4747
correlationId = correlationId,
4848
saksbehandler = saksbehandler,
4949
barnetillegg = Barnetillegg(
50-
value = Periodisering(
50+
periodisering = Periodisering(
5151
barnetilleggForPeriode.map {
5252
PeriodeMedVerdi(AntallBarn(it.antallBarn), it.periode.toDomain())
5353
},

0 commit comments

Comments
 (0)