Skip to content

Commit

Permalink
Barnetilsyn kilde
Browse files Browse the repository at this point in the history
  • Loading branch information
ugur93 committed Dec 23, 2024
1 parent 2d8e997 commit 64e2ab5
Show file tree
Hide file tree
Showing 4 changed files with 104 additions and 18 deletions.
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
<java.version>21</java.version>
<kotlin.version>2.1.0</kotlin.version>
<bidrag-felles.version>2024.12.23.100918</bidrag-felles.version>
<bidrag-beregn-felles.version>2024.12.16.134803</bidrag-beregn-felles.version>
<bidrag-beregn-felles.version>2024.12.23.123033</bidrag-beregn-felles.version>
<h2.version>2.3.232</h2.version>
<logback-encoder.version>8.0</logback-encoder.version>
<token-support.version>3.2.0</token-support.version>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import no.nav.bidrag.behandling.database.datamodell.Person
import no.nav.bidrag.behandling.database.datamodell.Tilleggsstønad
import no.nav.bidrag.behandling.database.datamodell.Underholdskostnad
import no.nav.bidrag.behandling.database.datamodell.hentAlleIkkeAktiv
import no.nav.bidrag.behandling.database.datamodell.hentSisteBearbeidetBarnetilsyn
import no.nav.bidrag.behandling.database.datamodell.henteNyesteAktiveGrunnlag
import no.nav.bidrag.behandling.database.datamodell.henteNyesteIkkeAktiveGrunnlag
import no.nav.bidrag.behandling.database.repository.PersonRepository
Expand Down Expand Up @@ -37,6 +38,7 @@ import no.nav.bidrag.domene.enums.barnetilsyn.Skolealder
import no.nav.bidrag.domene.enums.barnetilsyn.Tilsynstype
import no.nav.bidrag.domene.enums.diverse.Kilde
import no.nav.bidrag.domene.ident.Personident
import no.nav.bidrag.domene.tid.Datoperiode
import org.springframework.http.HttpStatus
import org.springframework.stereotype.Service
import org.springframework.transaction.annotation.Transactional
Expand Down Expand Up @@ -142,15 +144,18 @@ class UnderholdService(
request: StønadTilBarnetilsynDto,
) {
request.validerePerioderStønadTilBarnetilsyn(underholdskostnad)

val offentligBarnetilsyn = underholdskostnad.hentSisteBearbeidetBarnetilsyn() ?: emptyList()
val overlapperMedOffentligPeriode =
offentligBarnetilsyn.any {
val periode = Datoperiode(it.periodeFra, it.periodeTil)
val forespørselPeriode = Datoperiode(request.periode.fom, request.periode.tom)
periode.inneholder(forespørselPeriode)
}
val kilde = if (overlapperMedOffentligPeriode) Kilde.OFFENTLIG else Kilde.MANUELL
request.id?.let { id ->
val barnetilsyn = underholdskostnad.barnetilsyn.find { id == it.id }!!

// dersom periode endres skal kilde alltid være manuell
if (barnetilsyn.fom != request.periode.fom || barnetilsyn.tom != request.periode.tom) {
barnetilsyn.kilde = Kilde.MANUELL
}

barnetilsyn.kilde = kilde
barnetilsyn.fom = request.periode.fom
barnetilsyn.tom = request.periode.tom
barnetilsyn.under_skolealder =
Expand All @@ -174,7 +179,7 @@ class UnderholdService(
else -> null
},
omfang = request.tilsynstype ?: Tilsynstype.IKKE_ANGITT,
kilde = Kilde.MANUELL,
kilde = kilde,
underholdskostnad = underholdskostnad,
)
underholdskostnad.barnetilsyn.add(barnetilsyn)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -743,7 +743,7 @@ class UnderholdServiceTest {
}

@Test
open fun `skal ikke endre kilde på offentlig innslag så lenge periode ikke endres`() {
open fun `skal endre kilde på manuell innslag til offentlig hvis periode matcher`() {
// gitt
val behandling =
oppretteTestbehandling(
Expand All @@ -752,6 +752,14 @@ class UnderholdServiceTest {
behandlingstype = TypeBehandling.BIDRAG,
)

behandling.leggeTilGjeldendeBarnetilsyn(
oppretteBarnetilsynGrunnlagDto(
behandling = behandling,
periodeFra = LocalDate.parse("2024-01-01"),
periodeTil = LocalDate.parse("2024-08-01"),
),
false,
)
val barnIBehandling = behandling.søknadsbarn.first()
barnIBehandling.ident.shouldNotBeNull()

Expand All @@ -765,7 +773,77 @@ class UnderholdServiceTest {
Barnetilsyn(
id = 1,
underholdskostnad = underholdskostnad,
fom = LocalDate.now(),
fom = LocalDate.parse("2023-01-01"),
under_skolealder = true,
kilde = Kilde.MANUELL,
omfang = Tilsynstype.HELTID,
),
)

underholdskostnad.barnetilsyn shouldHaveSize 1

val request =
StønadTilBarnetilsynDto(
id = 1,
periode =
DatoperiodeDto(
LocalDate.parse("2024-03-01"),
LocalDate.parse("2024-06-30"),
),
skolealder = Skolealder.OVER,
tilsynstype = Tilsynstype.DELTID,
)

// hvis
underholdService.oppdatereStønadTilBarnetilsynManuelt(underholdskostnad, request)

//
val u = behandling.underholdskostnader.first()
u.shouldNotBeNull()
u.barnetilsyn.shouldNotBeEmpty()
u.barnetilsyn shouldHaveSize 1

assertSoftly(u.barnetilsyn.first()) {
fom shouldBe request.periode.fom
tom shouldBe request.periode.tom
under_skolealder shouldBe false
omfang shouldBe request.tilsynstype
kilde shouldBe Kilde.OFFENTLIG
}
}

@Test
open fun `skal endre kilde på offentlig innslag til manuell hvis periode ikke matcher`() {
// gitt
val behandling =
oppretteTestbehandling(
setteDatabaseider = true,
inkludereBp = true,
behandlingstype = TypeBehandling.BIDRAG,
)

behandling.leggeTilGjeldendeBarnetilsyn(
oppretteBarnetilsynGrunnlagDto(
behandling = behandling,
periodeFra = LocalDate.parse("2024-01-01"),
periodeTil = LocalDate.parse("2024-08-01"),
),
false,
)
val barnIBehandling = behandling.søknadsbarn.first()
barnIBehandling.ident.shouldNotBeNull()

val underholdskostnad =
behandling.underholdskostnader.find {
barnIBehandling.ident!! == it.barnetsRolleIBehandlingen?.ident
}
underholdskostnad.shouldNotBeNull()

underholdskostnad.barnetilsyn.add(
Barnetilsyn(
id = 1,
underholdskostnad = underholdskostnad,
fom = LocalDate.parse("2024-01-01"),
under_skolealder = true,
kilde = Kilde.OFFENTLIG,
omfang = Tilsynstype.HELTID,
Expand All @@ -779,7 +857,7 @@ class UnderholdServiceTest {
id = 1,
periode =
DatoperiodeDto(
LocalDate.now(),
LocalDate.parse("2023-12-01"),
null,
),
skolealder = Skolealder.OVER,
Expand All @@ -800,7 +878,7 @@ class UnderholdServiceTest {
tom shouldBe request.periode.tom
under_skolealder shouldBe false
omfang shouldBe request.tilsynstype
kilde shouldBe Kilde.OFFENTLIG
kilde shouldBe Kilde.MANUELL
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1869,6 +1869,7 @@ fun Behandling.leggeTilGjeldendeBarnetilsyn(
this,
periodeFraAntallMndTilbake = 13,
),
leggTilBarnetilsyn: Boolean = true,
) {
this.grunnlag.add(
Grunnlag(
Expand All @@ -1895,12 +1896,14 @@ fun Behandling.leggeTilGjeldendeBarnetilsyn(
),
)

this.grunnlag
.filter { Grunnlagsdatatype.BARNETILSYN == it.type && it.erBearbeidet && it.aktiv != null }
.forEach { g ->
val u = this.underholdskostnader.find { it.person.ident == g.gjelder }
g.konvertereData<Set<BarnetilsynGrunnlagDto>>()?.tilBarnetilsyn(u!!)?.let { u.barnetilsyn.addAll(it) }
}
if (leggTilBarnetilsyn) {
this.grunnlag
.filter { Grunnlagsdatatype.BARNETILSYN == it.type && it.erBearbeidet && it.aktiv != null }
.forEach { g ->
val u = this.underholdskostnader.find { it.person.ident == g.gjelder }
g.konvertereData<Set<BarnetilsynGrunnlagDto>>()?.tilBarnetilsyn(u!!)?.let { u.barnetilsyn.addAll(it) }
}
}
}

fun Behandling.leggeTilNyttBarnetilsyn(
Expand Down

0 comments on commit 64e2ab5

Please sign in to comment.