Skip to content

Commit

Permalink
Barnetrygd til pensjon: Diverse robustgjøringer (#444)
Browse files Browse the repository at this point in the history
Fikser 3 tilfeller med 500-feil og 2 tilfeller med tom-dato før fom-dato
  • Loading branch information
tnarland authored Jan 25, 2024
1 parent e8edbea commit 2d20e23
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 9 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ data class Barn(

@Column(name = "F_NR", columnDefinition = "VARCHAR2")
@Convert(converter = ReversedFoedselNrConverter::class)
val fnr: FoedselsNr,
val fnr: FoedselsNr?,

@Column(name = "TK_NR", columnDefinition = "VARCHAR2")
val tkNr: String,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -162,7 +162,7 @@ class BarnetrygdService(

if (!barn.isNullOrEmpty()) {
val personerViaBarn = barnRepository.findBarnByFnrList(barn.map { FoedselsNr(it) })
.map { it.fnr.asString }
.mapNotNull { it.fnr?.asString }
personer.addAll(personerViaBarn)
}
return personer.map { person -> vedtakRepository.tellAntallÅpneSakerPåPerson(person) }.sum()
Expand All @@ -185,7 +185,7 @@ class BarnetrygdService(
// Sjekk om det finnes relaterte saker, dvs om barna finnes i andre stønader
val barnetrygdFraRelaterteSaker = barnRepository.findBarnByFnrList(perioder.map { FoedselsNr(it.personIdent) })
.filter { it.fnr != brukerFnr && it.harGyldigStønadstype }
.map { it.fnr }.distinct()
.mapNotNull { it.fnr }.distinct()
.mapNotNull { relatertBrukerFnr ->
BarnetrygdTilPensjon(
fnr = relatertBrukerFnr.asString,
Expand Down Expand Up @@ -496,7 +496,8 @@ class BarnetrygdService(
else -> YtelseTypeEkstern.ORDINÆR_BARNETRYGD
},
stønadFom = utbetaling.fom()!!,
stønadTom = minOf(utbetalingTom, barnetsOpphørsdato),
stønadTom = minOf(utbetalingTom, barnetsOpphørsdato).takeUnless { it.isBefore(utbetaling.fom()) }
?: maxOf(utbetalingTom, barnetsOpphørsdato),
personIdent = barn.barnFnr.asString,
delingsprosentYtelse = ytelseProsent(stønad, undervalg, fraDato.year),
sakstypeEkstern = when (undervalg) {
Expand All @@ -523,11 +524,16 @@ class BarnetrygdService(
}

private fun Barn.harDatoSomSamsvarer(stønad: TrunkertStønad): Boolean {
if (barnetrygdTom()?.isBefore(virkningFom()) == true) // tilhører en feilregistrert stønad
return false
try {
if (barnetrygdTom()?.isBefore(virkningFom()) == true) // tilhører en feilregistrert stønad
return false

return iverksatt().isSameOrBefore(stønad.iverksatt()) &&
virkningFom().isSameOrBefore(stønad.virkningFom())
return iverksatt().isSameOrBefore(stønad.iverksatt()) &&
virkningFom().isSameOrBefore(stønad.virkningFom())
} catch (e: DateTimeParseException) {
logger.warn("Klarte ikke parse dato på barn(id=$id), stønad(id=${stønad.id})")
return false
}
}

private fun TrunkertStønad.iverksatt() = DatoUtils.seqDatoTilYearMonth(iverksattFom)!!
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ object TestData {
): Barn {
return Barn(
id = nextId(),
fnr = stønad.fnr!!,
fnr = stønad.fnr,
tkNr = stønad.tkNr,
personKey = stønad.personKey,
barnFnr = barnFnr,
Expand Down

0 comments on commit 2d20e23

Please sign in to comment.