Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Grunnlag barnetilsyn #612

Merged
merged 27 commits into from
Dec 5, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
4e55106
Oppgradere til nyeste BeregnBarnebidragApi. Fikse barn medIBehandlingen.
s148719 Nov 20, 2024
701294d
WIP - begrunnelse
s148719 Nov 20, 2024
1387e90
Fikse oppdatering av underhold
s148719 Nov 20, 2024
eec5b83
Fikse sletting av notat i fbm sletting av andre barn
s148719 Nov 20, 2024
9a47b4a
Endre API for oppdatering av begrunnelse og tilsynsordning i underhold
s148719 Nov 21, 2024
51dff2d
WIP - grunnlag barnetilsyn
s148719 Nov 22, 2024
c4d3a9b
Update UnderholdControllerTest.kt
s148719 Nov 22, 2024
721a8cc
Merge branch 'main' into grunnlag-barnetilsyn
s148719 Nov 25, 2024
b61312c
Innhenting av barnetilsyn
s148719 Nov 27, 2024
ddafe11
Oppdatere tester og diverse
s148719 Nov 28, 2024
32f54ef
Merge branch 'main' into grunnlag-barnetilsyn
s148719 Nov 28, 2024
14f03be
Update Person.kt
s148719 Nov 28, 2024
ba39e16
merge + ktlinting
s148719 Nov 28, 2024
6945ae6
Fikse vedtak-til-grunnlagsmapping for barnetilsyn
s148719 Nov 29, 2024
37a2c39
Justere underholdsperioder etter virkningstidspunkt
s148719 Dec 3, 2024
c031ed8
Merge branch 'main' into grunnlag-barnetilsyn
s148719 Dec 3, 2024
d916908
Oppdatere tester
s148719 Dec 4, 2024
d22b515
Merge branch 'main' into grunnlag-barnetilsyn
s148719 Dec 4, 2024
e8dc9bb
Fikse tester
s148719 Dec 4, 2024
33104f0
Mer testfix
s148719 Dec 4, 2024
767499c
Update VedtakTilBehandlingSærbidragTest.kt
s148719 Dec 4, 2024
80e3440
Sette harTilsynsordning til sann når tilsynstabeller oppdateres
s148719 Dec 5, 2024
ed25478
Merge branch 'main' into grunnlag-barnetilsyn
s148719 Dec 5, 2024
f4ac86c
Sette skolealder automatisk for innhenta barnetilsyn. Bevare kilde of…
s148719 Dec 5, 2024
032a831
Merge branch 'main' into grunnlag-barnetilsyn
s148719 Dec 5, 2024
638c7f7
Update GrunnlagServiceTest.kt
s148719 Dec 5, 2024
d36f5ea
Fikse test
s148719 Dec 5, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -164,7 +164,6 @@ open class Behandling(
val søknadsbarn get() = roller.filter { it.rolletype == Rolletype.BARN }
val bidragsmottaker get() = roller.find { it.rolletype == Rolletype.BIDRAGSMOTTAKER }
val bidragspliktig get() = roller.find { it.rolletype == Rolletype.BIDRAGSPLIKTIG }
val rolleGrunnlagSkalHentesFor get() = if (stonadstype == Stønadstype.FORSKUDD) bidragsmottaker else bidragspliktig

val erVedtakFattet get() = vedtaksid != null
val virkningstidspunktEllerSøktFomDato get() = virkningstidspunkt ?: søktFomDato
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import jakarta.persistence.GeneratedValue
import jakarta.persistence.GenerationType
import jakarta.persistence.Id
import jakarta.persistence.OneToMany
import no.nav.bidrag.domene.ident.Personident
import java.time.LocalDate
import java.time.LocalDateTime

Expand Down Expand Up @@ -34,6 +35,10 @@ open class Person(
)
open val rolle: MutableSet<Rolle> = mutableSetOf(),
) {
val personident get() = ident?.let { Personident(it) } ?: rolle.first().ident?.let { Personident(it) }

val henteFødselsdato get() = fødselsdato ?: rolle.first().fødselsdato

override fun toString(): String =
"Person(id=$id, ident=$ident, navn=$navn, fødselsdato=$fødselsdato, opprettet=$opprettet, roller=$rolle)"
}
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,10 @@ open class Rolle(
)
open var person: Person? = null,
) {
val personident get() = person?.ident?.let { Personident(it) } ?: this.ident?.let { Personident(it) }

val henteFødselsdato get() = person?.fødselsdato ?: this.fødselsdato

override fun toString(): String =
"Rolle(id=$id, behandling=${behandling.id}, rolletype=$rolletype, ident=$ident, fødselsdato=$fødselsdato, opprettet=$opprettet, navn=$navn, deleted=$deleted, innbetaltBeløp=$innbetaltBeløp)"
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import com.fasterxml.jackson.annotation.JsonFormat
import com.fasterxml.jackson.annotation.JsonIgnore
import com.fasterxml.jackson.databind.annotation.JsonDeserialize
import io.swagger.v3.oas.annotations.media.Schema
import no.nav.bidrag.behandling.database.datamodell.Behandling
import no.nav.bidrag.behandling.dto.v1.behandling.BegrunnelseDto
import no.nav.bidrag.behandling.dto.v1.behandling.RolleDto
import no.nav.bidrag.behandling.dto.v1.behandling.SivilstandDto
Expand All @@ -13,10 +14,12 @@ import no.nav.bidrag.behandling.dto.v2.gebyr.GebyrValideringsfeilDto
import no.nav.bidrag.behandling.dto.v2.inntekt.InntekterDtoV2
import no.nav.bidrag.behandling.dto.v2.inntekt.InntektspostDtoV2
import no.nav.bidrag.behandling.dto.v2.samvær.SamværDto
import no.nav.bidrag.behandling.dto.v2.underhold.StønadTilBarnetilsynDto
import no.nav.bidrag.behandling.dto.v2.underhold.UnderholdDto
import no.nav.bidrag.behandling.dto.v2.utgift.MaksGodkjentBeløpDto
import no.nav.bidrag.behandling.dto.v2.validering.UtgiftValideringsfeilDto
import no.nav.bidrag.behandling.transformers.PeriodeDeserialiserer
import no.nav.bidrag.behandling.transformers.tilType
import no.nav.bidrag.domene.enums.behandling.TypeBehandling
import no.nav.bidrag.domene.enums.beregning.Resultatkode
import no.nav.bidrag.domene.enums.diverse.Kilde
Expand All @@ -40,6 +43,7 @@ import no.nav.bidrag.domene.util.visningsnavn
import no.nav.bidrag.domene.util.visningsnavnIntern
import no.nav.bidrag.organisasjon.dto.SaksbehandlerDto
import no.nav.bidrag.transport.behandling.grunnlag.response.ArbeidsforholdGrunnlagDto
import no.nav.bidrag.transport.behandling.grunnlag.response.BarnetilsynGrunnlagDto
import no.nav.bidrag.transport.behandling.grunnlag.response.SivilstandGrunnlagDto
import java.math.BigDecimal
import java.time.LocalDate
Expand Down Expand Up @@ -246,6 +250,7 @@ data class AktiveGrunnlagsdata(
val husstandsmedlem: Set<HusstandsmedlemGrunnlagDto>,
val andreVoksneIHusstanden: AndreVoksneIHusstandenGrunnlagDto? = null,
val sivilstand: SivilstandAktivGrunnlagDto? = null,
val stønadTilBarnetilsyn: StønadTilBarnetilsynAktiveGrunnlagDto? = null,
) {
@Deprecated("Erstattes av husstandsmedlem")
@Schema(description = "Erstattes av husstandsmedlem", deprecated = true)
Expand All @@ -258,6 +263,7 @@ data class IkkeAktiveGrunnlagsdata(
val arbeidsforhold: Set<ArbeidsforholdGrunnlagDto> = emptySet(),
val andreVoksneIHusstanden: AndreVoksneIHusstandenGrunnlagDto? = null,
val sivilstand: SivilstandIkkeAktivGrunnlagDto? = null,
val stønadTilBarnetilsyn: StønadTilBarnetilsynIkkeAktiveGrunnlagDto? = null,
) {
@Deprecated("Erstattes av husstandsmedlem")
@Schema(description = "Erstattes av husstandsmedlem", deprecated = true)
Expand Down Expand Up @@ -335,6 +341,17 @@ data class SivilstandIkkeAktivGrunnlagDto(
val innhentetTidspunkt: LocalDateTime = LocalDateTime.now(),
)

data class StønadTilBarnetilsynAktiveGrunnlagDto(
val grunnlag: Map<Personident, Set<BarnetilsynGrunnlagDto>> = emptyMap(),
val innhentetTidspunkt: LocalDateTime = LocalDateTime.now(),
)

data class StønadTilBarnetilsynIkkeAktiveGrunnlagDto(
val stønadTilBarnetilsyn: Map<Personident, Set<StønadTilBarnetilsynDto>> = emptyMap(),
val grunnlag: Map<Personident, Set<BarnetilsynGrunnlagDto>> = emptyMap(),
val innhentetTidspunkt: LocalDateTime = LocalDateTime.now(),
)

data class HusstandsmedlemGrunnlagDto(
val perioder: Set<BostatusperiodeGrunnlagDto>,
val ident: String? = null,
Expand Down Expand Up @@ -386,7 +403,7 @@ data class AndreVoksneIHusstandenDetaljerDto(

@Schema(enumAsRef = true, name = "OpplysningerType")
enum class Grunnlagsdatatype(
val behandlinstypeMotRolletyper: Map<TypeBehandling, Set<Rolletype>> = emptyMap(),
val behandlingstypeMotRolletyper: Map<TypeBehandling, Set<Rolletype>> = emptyMap(),
val erGjeldende: Boolean = true,
) {
ARBEIDSFORHOLD(
Expand Down Expand Up @@ -496,11 +513,11 @@ enum class Grunnlagsdatatype(
when (rolletype != null) {
true ->
entries
.filter { it.behandlinstypeMotRolletyper.keys.contains(behandlingstype) }
.filter { it.behandlinstypeMotRolletyper.values.any { roller -> roller.contains(rolletype) } }
.filter { it.behandlingstypeMotRolletyper.keys.contains(behandlingstype) }
.filter { it.behandlingstypeMotRolletyper.values.any { roller -> roller.contains(rolletype) } }
.toSet()

false -> entries.filter { it.behandlinstypeMotRolletyper.keys.contains(behandlingstype) }.toSet()
false -> entries.filter { it.behandlingstypeMotRolletyper.keys.contains(behandlingstype) }.toSet()
}

fun gjeldende() = Grunnlagsdatatype.entries.filter { it.erGjeldende }
Expand All @@ -526,3 +543,19 @@ fun Grunnlagsdatatype.tilInntektrapporteringYtelse() =
Grunnlagsdatatype.KONTANTSTØTTE -> Inntektsrapportering.KONTANTSTØTTE
else -> null
}

fun Grunnlagsdatatype.innhentesForRolle(behandling: Behandling) =
when (this) {
Grunnlagsdatatype.BARNETILSYN, Grunnlagsdatatype.BOFORHOLD, Grunnlagsdatatype.BOFORHOLD_ANDRE_VOKSNE_I_HUSSTANDEN -> {
val t = this.behandlingstypeMotRolletyper[behandling.tilType()]
t?.let {
when (it.first()) {
Rolletype.BIDRAGSMOTTAKER -> behandling.bidragsmottaker
Rolletype.BIDRAGSPLIKTIG -> behandling.bidragspliktig
else -> null
}
}
}

else -> null
}
Original file line number Diff line number Diff line change
Expand Up @@ -144,8 +144,8 @@ data class FaktiskTilsynsutgiftDto(
data class StønadTilBarnetilsynDto(
val id: Long? = null,
val periode: DatoperiodeDto,
val skolealder: Skolealder,
val tilsynstype: Tilsynstype,
val skolealder: Skolealder? = null,
val tilsynstype: Tilsynstype? = null,
val kilde: Kilde = Kilde.MANUELL,
)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -299,6 +299,11 @@ class BehandlingService(
) {
val erVirkningstidspunktEndret = request.virkningstidspunkt != behandling.virkningstidspunkt

fun oppdatereUnderhold() {
log.info { "Tilpasse perioder for underhold til ny virkningsdato i behandling ${behandling.id}" }
underholdService.tilpasseUnderholdEtterVirkningsdato(behandling)
}

fun oppdaterBoforhold() {
log.info { "Virkningstidspunkt er endret. Beregner husstandsmedlemsperioder på ny for behandling ${behandling.id}" }
grunnlagService.oppdaterAktiveBoforholdEtterEndretVirkningstidspunkt(behandling)
Expand Down Expand Up @@ -353,8 +358,8 @@ class BehandlingService(
oppdaterBoforhold()
oppdaterAndreVoksneIHusstanden()
oppdaterInntekter()
oppdatereUnderhold()
oppdaterSamvær()
// TODO Underholdskostnad
}
}
}
Expand Down Expand Up @@ -482,7 +487,7 @@ class BehandlingService(
oppdatereHusstandsmedlemmerForRoller(behandling, rollerSomLeggesTil)
oppdatereSamværForRoller(behandling, rollerSomLeggesTil)

// TODO oppdater underholdskostnader ( legge til når ny barn legges til )
// TODO: Underholdskostnad versjon 3: Opprette underholdskostnad for nytt søknadsbarn

behandlingRepository.save(behandling)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ import no.nav.bidrag.behandling.dto.v1.behandling.BoforholdValideringsfeil
import no.nav.bidrag.behandling.dto.v2.behandling.Grunnlagsdatatype
import no.nav.bidrag.behandling.dto.v2.behandling.Grunnlagstype
import no.nav.bidrag.behandling.dto.v2.behandling.OppdatereBegrunnelse
import no.nav.bidrag.behandling.dto.v2.behandling.innhentesForRolle
import no.nav.bidrag.behandling.dto.v2.boforhold.OppdatereAndreVoksneIHusstanden
import no.nav.bidrag.behandling.dto.v2.boforhold.OppdatereBoforholdResponse
import no.nav.bidrag.behandling.dto.v2.boforhold.OppdatereHusstandsmedlem
Expand Down Expand Up @@ -107,7 +108,7 @@ class BoforholdService(
behandling = behandling,
notattype = Notattype.BOFORHOLD,
notattekst = request.henteNyttNotat() ?: "",
rolle = behandling.rolleGrunnlagSkalHentesFor!!,
rolle = Grunnlagsdatatype.BOFORHOLD.innhentesForRolle(behandling)!!,
)

return OppdatereBoforholdResponse(
Expand Down Expand Up @@ -1187,7 +1188,7 @@ class BoforholdService(
data = tilJson(boforholdrespons),
innhentet = LocalDateTime.now(),
aktiv = LocalDateTime.now(),
rolle = behandling.rolleGrunnlagSkalHentesFor!!,
rolle = Grunnlagsdatatype.BOFORHOLD.innhentesForRolle(behandling)!!,
gjelder = personidentBarn.verdi,
),
)
Expand Down
Loading
Loading