Skip to content

Commit

Permalink
PEK-715 spesialhåndtering av uttaksalder for brukere født 1. i måneden
Browse files Browse the repository at this point in the history
  • Loading branch information
antonfofanov committed Dec 8, 2024
1 parent cfbc3e7 commit c1293b7
Show file tree
Hide file tree
Showing 4 changed files with 76 additions and 6 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
package no.nav.tjenestepensjon.simulering.common

import no.nav.tjenestepensjon.simulering.model.domain.pen.Alder
import java.time.LocalDate
import java.time.Period

object AlderUtil {

fun bestemAlderVedDato(fodselsdato: LocalDate, date: LocalDate): Alder {
val periode = Period.between(fodselsdato, date)
return Alder(periode.years, periode.months)
}

/*
* Funksjonen returnerer uttaksaderen ved uttaksdato, kan være lavere enn faktisk alder, når, f eks,
* bruker er født 1. i måned. Da skal brukeren ta ut pensjon en måned senere, selv om man er teknisk sett 1 måned eldre
* 1.1.2001 -> 1.2.2063 = 62 år og 0 måneder
*/
fun bestemUttaksalderVedDato(fodselsdato: LocalDate, date: LocalDate): Alder {
val periode = Period.between(fodselsdato, date)
if (fodselsdato.dayOfMonth == 1) {
return Alder(periode.years, periode.months - 1)
}
return Alder(periode.years, periode.months)
}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package no.nav.tjenestepensjon.simulering.v2025.afp.v1

import no.nav.tjenestepensjon.simulering.common.AlderUtil.bestemAlderVedDato
import no.nav.tjenestepensjon.simulering.model.domain.pen.Alder
import no.nav.tjenestepensjon.simulering.model.domain.pen.AlderForDelingstall
import java.time.LocalDate
Expand All @@ -25,9 +26,4 @@ object AlderForDelingstallBeregner {
}
return listOf(AlderForDelingstall(bestemAlderVedDato(fodselsdato, uttaksdato), uttaksdato))
}

fun bestemAlderVedDato(fodselsdato: LocalDate, date: LocalDate): Alder {
val periode = Period.between(fodselsdato, date)
return Alder(periode.years, periode.months)
}
}
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package no.nav.tjenestepensjon.simulering.v2025.tjenestepensjon.v1.service.spk

import io.github.oshai.kotlinlogging.KotlinLogging
import no.nav.tjenestepensjon.simulering.common.AlderUtil.bestemAlderVedDato
import no.nav.tjenestepensjon.simulering.ping.Pingable
import no.nav.tjenestepensjon.simulering.v2025.afp.v1.AlderForDelingstallBeregner.bestemAlderVedDato
import no.nav.tjenestepensjon.simulering.v2025.tjenestepensjon.v1.domain.Maanedsutbetaling
import no.nav.tjenestepensjon.simulering.v2025.tjenestepensjon.v1.domain.SimulertTjenestepensjonMedMaanedsUtbetalinger
import no.nav.tjenestepensjon.simulering.v2025.tjenestepensjon.v1.domain.Utbetalingsperiode
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
package no.nav.tjenestepensjon.simulering.common

import org.junit.jupiter.api.Test

import org.junit.jupiter.api.Assertions.*
import java.time.LocalDate

class AlderUtilTest {

@Test
fun `spesialhaandtering for uttaksalder for brukere foedt foerste i maaneden`() {

val foedselsdato = LocalDate.of(2001, 1, 1)
val uttaksdato = LocalDate.of(2063, 2, 1)
val alder = AlderUtil.bestemUttaksalderVedDato(foedselsdato, uttaksdato)
assertEquals(62, alder.aar)
assertEquals(0, alder.maaneder)
}

@Test
fun `bestem uttaksalder for en foedselsdato paa foerste desember`() {

val foedselsdato = LocalDate.of(2001, 12, 1)
val uttaksdato = LocalDate.of(2064, 1, 1)
val alder = AlderUtil.bestemUttaksalderVedDato(foedselsdato, uttaksdato)
assertEquals(62, alder.aar)
assertEquals(0, alder.maaneder)
}

@Test
fun `test bestem uttaksalder`() {

val foedselsdato = LocalDate.of(2000, 3, 15)
val uttaksdato = LocalDate.of(2062, 4, 1)
val alder = AlderUtil.bestemUttaksalderVedDato(foedselsdato, uttaksdato)
assertEquals(62, alder.aar)
assertEquals(0, alder.maaneder)
}

@Test
fun `test bestem uttaksalder for X aar og 11 maaneder`(){
val foedselsdato = LocalDate.of(2000, 3, 15)
val uttaksdato = LocalDate.of(2062, 3, 1)
val alder = AlderUtil.bestemUttaksalderVedDato(foedselsdato, uttaksdato)
assertEquals(61, alder.aar)
assertEquals(11, alder.maaneder)
}
}

0 comments on commit c1293b7

Please sign in to comment.