Skip to content

Commit 4fd53aa

Browse files
Bytt til tidslinjebibliotek fra familie-felles (#5099)
### 💰 Hva skal gjøres, og hvorfor? Favro: NAV-23270 Fortsettelse av #5089 Bytter ut tidslinje fra ba-sak med tidslinje fra familie-felles enkelte steder. Holder PR'ene små, så de skal være lette å lese. Bør leses commit for commit. Det er noe duplikatkode, men dette vil fjernes i senere PR'er
1 parent 68b2f21 commit 4fd53aa

File tree

10 files changed

+98
-77
lines changed

10 files changed

+98
-77
lines changed

src/main/kotlin/no/nav/familie/ba/sak/kjerne/behandlingsresultat/BehandlingsresultatValideringUtils.kt

Lines changed: 20 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -3,21 +3,23 @@ package no.nav.familie.ba.sak.kjerne.behandlingsresultat
33
import no.nav.familie.ba.sak.common.Feil
44
import no.nav.familie.ba.sak.common.FunksjonellFeil
55
import no.nav.familie.ba.sak.common.secureLogger
6+
import no.nav.familie.ba.sak.common.sisteDagIInneværendeMåned
7+
import no.nav.familie.ba.sak.common.toYearMonth
68
import no.nav.familie.ba.sak.kjerne.behandling.domene.Behandling
79
import no.nav.familie.ba.sak.kjerne.behandling.domene.BehandlingType
810
import no.nav.familie.ba.sak.kjerne.behandling.domene.Behandlingsresultat
911
import no.nav.familie.ba.sak.kjerne.behandling.domene.BehandlingÅrsak
1012
import no.nav.familie.ba.sak.kjerne.beregning.domene.AndelTilkjentYtelse
1113
import no.nav.familie.ba.sak.kjerne.beregning.domene.YtelseType
1214
import no.nav.familie.ba.sak.kjerne.beregning.domene.tilTidslinjerPerAktørOgType
15+
import no.nav.familie.ba.sak.kjerne.eøs.felles.util.MAX_MÅNED
16+
import no.nav.familie.ba.sak.kjerne.eøs.felles.util.MIN_MÅNED
1317
import no.nav.familie.ba.sak.kjerne.personident.Aktør
14-
import no.nav.familie.ba.sak.kjerne.tidslinje.Tidslinje
15-
import no.nav.familie.ba.sak.kjerne.tidslinje.komposisjon.outerJoin
16-
import no.nav.familie.ba.sak.kjerne.tidslinje.tidspunkt.Måned
17-
import no.nav.familie.ba.sak.kjerne.tidslinje.tidspunkt.MånedTidspunkt.Companion.tilTidspunkt
18-
import no.nav.familie.ba.sak.kjerne.tidslinje.tidspunkt.tilYearMonth
19-
import no.nav.familie.ba.sak.kjerne.tidslinje.transformasjon.beskjærTilOgMed
18+
import no.nav.familie.ba.sak.kjerne.tidslinjefamiliefelles.transformasjon.beskjærTilOgMed
2019
import no.nav.familie.ba.sak.kjerne.vilkårsvurdering.domene.PersonResultat
20+
import no.nav.familie.tidslinje.Tidslinje
21+
import no.nav.familie.tidslinje.outerJoin
22+
import no.nav.familie.tidslinje.utvidelser.tilPerioderIkkeNull
2123
import java.time.YearMonth
2224

2325
object BehandlingsresultatValideringUtils {
@@ -79,8 +81,8 @@ object BehandlingsresultatValideringUtils {
7981
Måned: YearMonth,
8082
) {
8183
val forrigeMåned =Måned.minusMonths(1)
82-
val andelerIFortidenTidslinje = andelerDenneBehandlingen.tilTidslinjerPerAktørOgType().beskjærTilOgMed(forrigeMåned.tilTidspunkt())
83-
val andelerIFortidenForrigeBehanldingTidslinje = andelerForrigeBehandling.tilTidslinjerPerAktørOgType().beskjærTilOgMed(forrigeMåned.tilTidspunkt())
84+
val andelerIFortidenTidslinje = andelerDenneBehandlingen.tilTidslinjerPerAktørOgType().beskjærTilOgMed(forrigeMåned.sisteDagIInneværendeMåned())
85+
val andelerIFortidenForrigeBehanldingTidslinje = andelerForrigeBehandling.tilTidslinjerPerAktørOgType().beskjærTilOgMed(forrigeMåned.sisteDagIInneværendeMåned())
8486

8587
val endringerIAndelerTilbakeITidTidslinjer =
8688
andelerIFortidenTidslinje.outerJoin(andelerIFortidenForrigeBehanldingTidslinje) { nyAndel, gammelAndel ->
@@ -113,16 +115,19 @@ object BehandlingsresultatValideringUtils {
113115
endringISatsTidslinjer.kastFeilOgLoggVedEndringerIAndeler()
114116
}
115117

116-
private fun Map<Pair<Aktør, YtelseType>, Tidslinje<EndringIAndel, Måned>>.kastFeilOgLoggVedEndringerIAndeler() {
118+
private fun Map<Pair<Aktør, YtelseType>, Tidslinje<EndringIAndel>>.kastFeilOgLoggVedEndringerIAndeler() {
117119
this.forEach { (aktør, ytelsetype), endringIAndelTidslinje ->
118-
endringIAndelTidslinje.perioder().forEach {
119-
if (it.innhold is ErEndringIAndel) {
120+
endringIAndelTidslinje.tilPerioderIkkeNull().forEach {
121+
if (it.verdi is ErEndringIAndel) {
122+
val erEndringIAndel = it.verdi as ErEndringIAndel
123+
val fom = it.fom?.toYearMonth() ?: MIN_MÅNED
124+
val tom = it.tom?.toYearMonth() ?: MAX_MÅNED
120125
secureLogger.info(
121-
"Det er en uforventet endring i $ytelsetype-andel for $aktør i perioden ${it.fraOgMed.tilYearMonth()} til ${it.tilOgMed.tilYearMonth()}.\n" +
122-
"Andel denne behandlingen: ${it.innhold.andelDenneBehandlingen}\n" +
123-
"Andel forrige behandling: ${it.innhold.andelForrigeBehandling}",
126+
"Det er en uforventet endring i $ytelsetype-andel for $aktør i perioden $fom til $tom.\n" +
127+
"Andel denne behandlingen: ${erEndringIAndel.andelDenneBehandlingen}\n" +
128+
"Andel forrige behandling: ${erEndringIAndel.andelForrigeBehandling}",
124129
)
125-
throw Feil("Det er en uforventet endring i andel. Gjelder andel i perioden ${it.fraOgMed.tilYearMonth()} til ${it.tilOgMed.tilYearMonth()}. Se secure log for mer detaljer.")
130+
throw Feil("Det er en uforventet endring i andel. Gjelder andel i perioden $fom til $tom. Se secure log for mer detaljer.")
126131
}
127132
}
128133
}

src/main/kotlin/no/nav/familie/ba/sak/kjerne/beregning/AndelTilkjentYtelseTidslinje.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import no.nav.familie.ba.sak.kjerne.tidslinje.tidspunkt.Måned
77
import no.nav.familie.ba.sak.kjerne.tidslinje.tidspunkt.MånedTidspunkt.Companion.tilTidspunkt
88
import no.nav.familie.ba.sak.kjerne.vedtak.vedtaksperiode.vedtaksperiodeProdusent.AndelForVedtaksbegrunnelse
99
import no.nav.familie.ba.sak.kjerne.vedtak.vedtaksperiode.vedtaksperiodeProdusent.AndelForVedtaksperiode
10+
import no.nav.familie.tidslinje.tilTidslinje
1011

1112
class AndelTilkjentYtelseTidslinje(
1213
private val andelerTilkjentYtelse: List<AndelTilkjentYtelse>,
@@ -21,6 +22,8 @@ class AndelTilkjentYtelseTidslinje(
2122
}
2223
}
2324

25+
fun List<AndelTilkjentYtelse>.tilTidslinje() = this.map { it.tilPeriode() }.tilTidslinje()
26+
2427
class AndelTilkjentYtelseForVedtaksperioderTidslinje(
2528
private val andelerTilkjentYtelse: List<AndelTilkjentYtelse>,
2629
) : Tidslinje<AndelForVedtaksperiode, Måned>() {

src/main/kotlin/no/nav/familie/ba/sak/kjerne/beregning/TilkjentYtelseValidering.kt

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,12 +29,14 @@ import no.nav.familie.ba.sak.kjerne.tidslinje.Periode
2929
import no.nav.familie.ba.sak.kjerne.tidslinje.Tidslinje
3030
import no.nav.familie.ba.sak.kjerne.tidslinje.komposisjon.kombiner
3131
import no.nav.familie.ba.sak.kjerne.tidslinje.komposisjon.kombinerMed
32-
import no.nav.familie.ba.sak.kjerne.tidslinje.komposisjon.outerJoin
3332
import no.nav.familie.ba.sak.kjerne.tidslinje.månedPeriodeAv
3433
import no.nav.familie.ba.sak.kjerne.tidslinje.tidspunkt.Måned
3534
import no.nav.familie.ba.sak.kjerne.tidslinje.tidspunkt.tilYearMonth
3635
import no.nav.familie.ba.sak.kjerne.tidslinje.tilTidslinje
3736
import no.nav.familie.ba.sak.kjerne.tidslinje.transformasjon.map
37+
import no.nav.familie.tidslinje.outerJoin
38+
import no.nav.familie.tidslinje.utvidelser.tilPerioder
39+
import no.nav.familie.tidslinje.utvidelser.tilPerioderIkkeNull
3840
import java.math.BigDecimal
3941
import java.time.LocalDate
4042
import java.time.YearMonth
@@ -113,7 +115,7 @@ object TilkjentYtelseValidering {
113115
else -> false
114116
}
115117
}.values
116-
.map { it.perioder() } // Må kalle på .perioder() for at feilene over skal bli kastet
118+
.map { it.tilPerioder() } // Må kalle på .perioder() for at feilene over skal bli kastet
117119
}
118120

119121
fun finnAktørIderMedUgyldigEtterbetalingsperiode(
@@ -180,7 +182,7 @@ object TilkjentYtelseValidering {
180182

181183
val fagsakType = tilkjentYtelse.behandling.fagsak.type
182184

183-
tidslinjeMedAndeler.perioder().mapNotNull { it.innhold }.forEach {
185+
tidslinjeMedAndeler.tilPerioderIkkeNull().map { it.verdi }.forEach {
184186
val søkersAndeler = hentSøkersAndeler(it, søker)
185187
val barnasAndeler = hentBarnasAndeler(it, barna)
186188

src/main/kotlin/no/nav/familie/ba/sak/kjerne/beregning/domene/AndelTilkjentYtelse.kt

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ import no.nav.familie.ba.sak.common.toYearMonth
2323
import no.nav.familie.ba.sak.integrasjoner.økonomi.utbetalingsoppdrag.YtelsetypeBA
2424
import no.nav.familie.ba.sak.kjerne.beregning.AndelTilkjentYtelseForVedtaksbegrunnelserTidslinje
2525
import no.nav.familie.ba.sak.kjerne.beregning.AndelTilkjentYtelseForVedtaksperioderTidslinje
26-
import no.nav.familie.ba.sak.kjerne.beregning.AndelTilkjentYtelseTidslinje
26+
import no.nav.familie.ba.sak.kjerne.beregning.tilTidslinje
2727
import no.nav.familie.ba.sak.kjerne.grunnlag.personopplysninger.Person
2828
import no.nav.familie.ba.sak.kjerne.personident.Aktør
2929
import no.nav.familie.ba.sak.kjerne.vilkårsvurdering.domene.PersonResultat
@@ -209,11 +209,9 @@ private fun regelverkAvhengigeVilkår() =
209209
Vilkår.LOVLIG_OPPHOLD,
210210
)
211211

212-
fun Collection<AndelTilkjentYtelse>.tilTidslinjerPerAktørOgType(): Map<Pair<Aktør, YtelseType>, AndelTilkjentYtelseTidslinje> =
212+
fun Collection<AndelTilkjentYtelse>.tilTidslinjerPerAktørOgType() =
213213
groupBy { Pair(it.aktør, it.type) }.mapValues { (_, andelerTilkjentYtelsePåPerson) ->
214-
AndelTilkjentYtelseTidslinje(
215-
andelerTilkjentYtelsePåPerson,
216-
)
214+
andelerTilkjentYtelsePåPerson.tilTidslinje()
217215
}
218216

219217
fun List<AndelTilkjentYtelse>.tilAndelForVedtaksperiodeTidslinjerPerAktørOgType(): Map<Pair<Aktør, YtelseType>, AndelTilkjentYtelseForVedtaksperioderTidslinje> =

src/main/kotlin/no/nav/familie/ba/sak/kjerne/beregning/domene/TilkjentYtelse.kt

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,7 @@ import jakarta.persistence.SequenceGenerator
1616
import jakarta.persistence.Table
1717
import no.nav.familie.ba.sak.common.YearMonthConverter
1818
import no.nav.familie.ba.sak.kjerne.behandling.domene.Behandling
19-
import no.nav.familie.ba.sak.kjerne.tidslinje.Tidslinje
20-
import no.nav.familie.ba.sak.kjerne.tidslinje.komposisjon.kombiner
21-
import no.nav.familie.ba.sak.kjerne.tidslinje.tidspunkt.Måned
19+
import no.nav.familie.ba.sak.kjerne.tidslinjefamiliefelles.komposisjon.kombiner
2220
import no.nav.familie.ba.sak.sikkerhet.RollestyringMotDatabase
2321
import no.nav.familie.kontrakter.felles.objectMapper
2422
import no.nav.familie.kontrakter.felles.oppdrag.Utbetalingsoppdrag
@@ -64,7 +62,7 @@ data class TilkjentYtelse(
6462
val andelerTilkjentYtelse: MutableSet<AndelTilkjentYtelse> = mutableSetOf(),
6563
)
6664

67-
fun TilkjentYtelse.tilTidslinjeMedAndeler(): Tidslinje<Iterable<AndelTilkjentYtelse>, Måned> =
65+
fun TilkjentYtelse.tilTidslinjeMedAndeler() =
6866
this.andelerTilkjentYtelse
6967
.tilTidslinjerPerAktørOgType()
7068
.values

src/main/kotlin/no/nav/familie/ba/sak/kjerne/brev/BrevUtil.kt

Lines changed: 22 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,11 @@ import no.nav.familie.ba.sak.common.Feil
44
import no.nav.familie.ba.sak.common.TIDENES_ENDE
55
import no.nav.familie.ba.sak.common.TIDENES_MORGEN
66
import no.nav.familie.ba.sak.common.Utils.slåSammen
7+
import no.nav.familie.ba.sak.common.førsteDagIInneværendeMåned
78
import no.nav.familie.ba.sak.common.sisteDagIMåned
89
import no.nav.familie.ba.sak.common.tilMånedÅr
910
import no.nav.familie.ba.sak.common.tilMånedÅrMedium
11+
import no.nav.familie.ba.sak.common.toYearMonth
1012
import no.nav.familie.ba.sak.kjerne.behandling.domene.Behandling
1113
import no.nav.familie.ba.sak.kjerne.behandling.domene.BehandlingType
1214
import no.nav.familie.ba.sak.kjerne.behandling.domene.Behandlingsresultat.DELVIS_INNVILGET
@@ -27,7 +29,8 @@ import no.nav.familie.ba.sak.kjerne.brev.domene.maler.utbetalingEøs.UtbetalingE
2729
import no.nav.familie.ba.sak.kjerne.brev.domene.maler.utbetalingEøs.UtbetalingMndEøs
2830
import no.nav.familie.ba.sak.kjerne.brev.domene.maler.utbetalingEøs.UtbetalingMndEøsOppsummering
2931
import no.nav.familie.ba.sak.kjerne.endretutbetaling.domene.EndretUtbetalingAndel
30-
import no.nav.familie.ba.sak.kjerne.eøs.felles.beregning.tilSeparateTidslinjerForBarna
32+
import no.nav.familie.ba.sak.kjerne.eøs.felles.beregning.tilSeparateFamilieFellesTidslinjerForBarna
33+
import no.nav.familie.ba.sak.kjerne.eøs.felles.util.MIN_MÅNED
3134
import no.nav.familie.ba.sak.kjerne.eøs.kompetanse.domene.Kompetanse
3235
import no.nav.familie.ba.sak.kjerne.eøs.kompetanse.domene.KompetanseResultat
3336
import no.nav.familie.ba.sak.kjerne.eøs.kompetanse.domene.tilUtfylteKompetanserEtterEndringstidpunktPerAktør
@@ -37,18 +40,18 @@ import no.nav.familie.ba.sak.kjerne.eøs.utenlandskperiodebeløp.tilUtbetaltFraA
3740
import no.nav.familie.ba.sak.kjerne.eøs.valutakurs.Valutakurs
3841
import no.nav.familie.ba.sak.kjerne.fagsak.FagsakStatus
3942
import no.nav.familie.ba.sak.kjerne.personident.Aktør
40-
import no.nav.familie.ba.sak.kjerne.tidslinje.komposisjon.erIkkeTom
41-
import no.nav.familie.ba.sak.kjerne.tidslinje.komposisjon.kombiner
42-
import no.nav.familie.ba.sak.kjerne.tidslinje.komposisjon.outerJoin
43-
import no.nav.familie.ba.sak.kjerne.tidslinje.splitPerTidsenhet
4443
import no.nav.familie.ba.sak.kjerne.tidslinje.tidspunkt.MånedTidspunkt
45-
import no.nav.familie.ba.sak.kjerne.tidslinje.tidspunkt.MånedTidspunkt.Companion.tilMånedTidspunkt
46-
import no.nav.familie.ba.sak.kjerne.tidslinje.tidspunkt.tilYearMonth
47-
import no.nav.familie.ba.sak.kjerne.tidslinje.transformasjon.beskjærFraOgMed
48-
import no.nav.familie.ba.sak.kjerne.tidslinje.transformasjon.mapIkkeNull
44+
import no.nav.familie.ba.sak.kjerne.tidslinjefamiliefelles.komposisjon.erIkkeTom
45+
import no.nav.familie.ba.sak.kjerne.tidslinjefamiliefelles.komposisjon.kombiner
46+
import no.nav.familie.ba.sak.kjerne.tidslinjefamiliefelles.transformasjon.beskjærFraOgMed
47+
import no.nav.familie.ba.sak.kjerne.tidslinjefamiliefelles.transformasjon.mapIkkeNull
48+
import no.nav.familie.ba.sak.kjerne.tidslinjefamiliefelles.utils.splitPerMåned
4949
import no.nav.familie.ba.sak.kjerne.vedtak.domene.VedtaksperiodeMedBegrunnelser
50+
import no.nav.familie.tidslinje.outerJoin
51+
import no.nav.familie.tidslinje.utvidelser.tilPerioder
5052
import tilLandNavn
5153
import java.time.LocalDate
54+
import java.time.YearMonth
5255

5356
fun hentAutomatiskVedtaksbrevtype(behandling: Behandling): Brevmal {
5457
val behandlingÅrsak = behandling.opprettetÅrsak
@@ -117,8 +120,8 @@ fun skalHenteUtbetalingerEøs(
117120

118121
val valutakurserEtterEndringtidspunktet =
119122
valutakurser
120-
.tilSeparateTidslinjerForBarna()
121-
.mapValues { (_, valutakursTidslinjeForBarn) -> valutakursTidslinjeForBarn.beskjærFraOgMed(endringstidspunkt.tilMånedTidspunkt()) }
123+
.tilSeparateFamilieFellesTidslinjerForBarna()
124+
.mapValues { (_, valutakursTidslinjeForBarn) -> valutakursTidslinjeForBarn.beskjærFraOgMed(endringstidspunkt.førsteDagIInneværendeMåned()) }
122125

123126
return valutakurserEtterEndringtidspunktet.any { it.value.erIkkeTom() }
124127
}
@@ -160,10 +163,10 @@ fun hentUtbetalingerPerMndEøs(
160163

161164
// Ønsker kun andeler etter endringstidspunkt så beskjærer fra og med endringstidspunktet
162165
val andelerForVedtaksperioderPerAktørOgTypeAvgrensetTilVedtaksperioder =
163-
andelerForVedtaksperioderPerAktørOgType.mapValues { (_, andelForVedtaksperiode) -> andelForVedtaksperiode.beskjærFraOgMed(endringstidspunkt.tilMånedTidspunkt()) }
166+
andelerForVedtaksperioderPerAktørOgType.mapValues { (_, andelForVedtaksperiode) -> andelForVedtaksperiode.beskjærFraOgMed(endringstidspunkt.førsteDagIInneværendeMåned()) }
164167

165-
val utenlandskePeriodebeløpTidslinjerForBarna = utenlandskePeriodebeløp.tilSeparateTidslinjerForBarna().mapKeys { entry -> Pair(entry.key, YtelseType.ORDINÆR_BARNETRYGD) }
166-
val valutakursTidslinjerForBarna = valutakurser.tilSeparateTidslinjerForBarna().mapKeys { entry -> Pair(entry.key, YtelseType.ORDINÆR_BARNETRYGD) }
168+
val utenlandskePeriodebeløpTidslinjerForBarna = utenlandskePeriodebeløp.tilSeparateFamilieFellesTidslinjerForBarna().mapKeys { entry -> Pair(entry.key, YtelseType.ORDINÆR_BARNETRYGD) }
169+
val valutakursTidslinjerForBarna = valutakurser.tilSeparateFamilieFellesTidslinjerForBarna().mapKeys { entry -> Pair(entry.key, YtelseType.ORDINÆR_BARNETRYGD) }
167170

168171
return andelerForVedtaksperioderPerAktørOgTypeAvgrensetTilVedtaksperioder
169172
// Kombinerer tidslinjene for andeler, utenlandskPeriodebeløp og valutakurser per aktørOgYtelse
@@ -176,13 +179,13 @@ fun hentUtbetalingerPerMndEøs(
176179
// Kombinerer verdiene til alle tidslinjene slik at vi får en liste av UtbetalingEøs per periode, samt sørger for at vi får en periode per mnd.
177180
// Grupperer deretter på periodenes fom
178181
.kombiner()
179-
.perioder()
180-
.flatMap { periode -> periode.splitPerTidsenhet(LocalDate.now().tilMånedTidspunkt()) }
182+
.tilPerioder()
183+
.flatMap { periode -> periode.splitPerMåned(YearMonth.now()) }
181184
.associate { periode ->
182-
val utbetalingMndEøs = hentUtbetalingMndEøs(utbetalingerEøs = periode.innhold?.toList() ?: emptyList())
183-
val fraOgMedDato = periode.fraOgMed.tilYearMonth().tilMånedÅrMedium()
185+
val utbetalingMndEøs = hentUtbetalingMndEøs(utbetalingerEøs = periode.verdi?.toList() ?: emptyList())
186+
val fraOgMedMåned = (periode.fom?.toYearMonth() ?: MIN_MÅNED).tilMånedÅrMedium()
184187

185-
fraOgMedDato to utbetalingMndEøs
188+
fraOgMedMåned to utbetalingMndEøs
186189
}.filter { it.value.utbetalinger.isNotEmpty() }
187190
}
188191

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package no.nav.familie.ba.sak.kjerne.tidslinjefamiliefelles.utils
2+
3+
import no.nav.familie.ba.sak.common.førsteDagIInneværendeMåned
4+
import no.nav.familie.ba.sak.common.rangeTo
5+
import no.nav.familie.ba.sak.common.sisteDagIInneværendeMåned
6+
import no.nav.familie.ba.sak.common.toYearMonth
7+
import no.nav.familie.tidslinje.PRAKTISK_TIDLIGSTE_DAG
8+
import no.nav.familie.tidslinje.Periode
9+
import java.time.YearMonth
10+
11+
fun <V> Periode<V>.splitPerMåned(tilOgMedMåned: YearMonth): List<Periode<V>> {
12+
val førsteMåned = (this.fom ?: PRAKTISK_TIDLIGSTE_DAG).toYearMonth()
13+
val sisteMåned = setOfNotNull(this.tom?.toYearMonth(), tilOgMedMåned).minOrNull()!!
14+
return førsteMåned.rangeTo(sisteMåned).map {
15+
Periode(
16+
verdi = this.verdi,
17+
fom = it.førsteDagIInneværendeMåned(),
18+
tom = it.sisteDagIInneværendeMåned(),
19+
)
20+
}
21+
}

0 commit comments

Comments
 (0)