Skip to content

Commit

Permalink
Endre datastruktur
Browse files Browse the repository at this point in the history
  • Loading branch information
s148719 committed Dec 6, 2024
1 parent f09da7c commit 57d76cc
Show file tree
Hide file tree
Showing 11 changed files with 172 additions and 95 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@ open class Underholdskostnad(
@JoinColumn(name = "person_id", nullable = false)
open val person: Person,
open var harTilsynsordning: Boolean? = null,
open var harTilleggsstønad: Boolean? = null,
@OneToMany(
fetch = FetchType.EAGER,
mappedBy = "underholdskostnad",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,5 @@ data class RolleDto(
val ident: String? = null,
val navn: String? = null,
valdselsdato: LocalDate? = null,
val harInnvilgetTilleggsstønad: Boolean? = null,
)
Original file line number Diff line number Diff line change
Expand Up @@ -740,23 +740,6 @@ class GrunnlagService(
}
}

// Oppdatere tilleggsstønad
innhentetGrunnlag.hentGrunnlagDto?.let { grunnlag ->
if (grunnlag.tilleggsstønadBarnetilsynListe.isNotEmpty() &&
feilrapporteringer.filter { Grunnlagsdatatype.BARNETILSYN == it.key }.isEmpty()
) {
val uSøknadsbarn =
behandling.underholdskostnader.filter {
it.barnetsRolleIBehandlingen != null &&
it.barnetsRolleIBehandlingen!!.personident != null
}
grunnlag.tilleggsstønadBarnetilsynListe.forEach { ts ->
val u = uSøknadsbarn.find { it.barnetsRolleIBehandlingen!!.personident!!.verdi == ts.partPersonId }
u?.harTilsynsordning = ts.harInnvilgetVedtak
}
}
}

return feilrapporteringer
}

Expand Down Expand Up @@ -1679,9 +1662,7 @@ class GrunnlagService(
behandling,
rolleInhentetFor,
Grunnlagstype(grunnlagsdatatype, false),
innhentetGrunnlag.tilleggsstønadBarnetilsynListe
.filter { harBarnRolleIBehandling(it.partPersonId, behandling) }
.toSet(),
innhentetGrunnlag.tilleggsstønadBarnetilsynListe.toSet(),
)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@ import no.nav.bidrag.behandling.dto.v2.behandling.UtgiftspostDto
import no.nav.bidrag.behandling.dto.v2.underhold.DatoperiodeDto
import no.nav.bidrag.behandling.dto.v2.underhold.UnderholdskostnadDto
import no.nav.bidrag.behandling.transformers.behandling.tilDto
import no.nav.bidrag.behandling.transformers.gebyr.tilDto
import no.nav.bidrag.behandling.transformers.utgift.tilBeregningDto
import no.nav.bidrag.behandling.transformers.utgift.tilDto
import no.nav.bidrag.behandling.transformers.vedtak.mapping.tilvedtak.BeregnGebyrResultat
Expand Down Expand Up @@ -454,33 +453,6 @@ fun List<DelberegningUnderholdskostnad>.tilUnderholdskostnadDto() =
)
}.toSet()

fun List<GrunnlagDto>.finneFaktiskTilsynsutgiftsperioder(): List<DelberegningUnderholdskostnad> =
this
.filtrerBasertPåEgenReferanse(
Grunnlagstype.FAKTISK_UTGIFT_PERIODE,
).innholdTilObjekt<DelberegningUnderholdskostnad>()
.sortedBy {
it.periode.fom
}

fun List<GrunnlagDto>.finneTilleggsstønadsperioder(): List<DelberegningUnderholdskostnad> =
this
.filtrerBasertPåEgenReferanse(
Grunnlagstype.TILLEGGSSTØNAD_PERIODE,
).innholdTilObjekt<DelberegningUnderholdskostnad>()
.sortedBy {
it.periode.fom
}

fun List<GrunnlagDto>.finneBarnetilleggsperioder(): List<DelberegningUnderholdskostnad> =
this
.filtrerBasertPåEgenReferanse(
Grunnlagstype.BARNETILLEGG_PERIODE,
).innholdTilObjekt<DelberegningUnderholdskostnad>()
.sortedBy {
it.periode.fom
}

fun List<GrunnlagDto>.finnAlleDelberegningUnderholdskostnad(): List<DelberegningUnderholdskostnad> =
this
.filtrerBasertPåEgenReferanse(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -585,8 +585,7 @@ class Dtomapper(
søknadsid = soknadsid,
behandlerenhet = behandlerEnhet,
gebyr = mapGebyr(),
roller =
roller.map { it.tilDto() }.toSet(),
roller = roller.map { it.tilDto() }.toSet(),
søknadRefId = soknadRefId,
vedtakRefId = refVedtaksid,
virkningstidspunkt =
Expand Down Expand Up @@ -767,10 +766,13 @@ class Dtomapper(
?.filter { it.relasjon != Familierelasjon.BARN }
?.filter {
it.fødselsdato == null ||
it.fødselsdato!!.withDayOfMonth(1).isBefore(behandling.virkningstidspunktEllerSøktFomDato.minusYears(18))
it.fødselsdato!!
.withDayOfMonth(1)
.isBefore(behandling.virkningstidspunktEllerSøktFomDato.minusYears(18))
}?.filter {
it.borISammeHusstandDtoListe.any { p ->
val periodeBorHosBP = ÅrMånedsperiode(p.periodeFra!!.withDayOfMonth(1), p.periodeTil?.withDayOfMonth(1)?.minusDays(1))
val periodeBorHosBP =
ÅrMånedsperiode(p.periodeFra!!.withDayOfMonth(1), p.periodeTil?.withDayOfMonth(1)?.minusDays(1))
val periodeBPErInnenfor =
periodeBorHosBP.fom >= periode.fom &&
periodeBorHosBP.til != null &&
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@ import no.nav.bidrag.sivilstand.response.SivilstandBeregnet
import no.nav.bidrag.transport.behandling.grunnlag.response.BarnetilsynGrunnlagDto
import no.nav.bidrag.transport.behandling.grunnlag.response.FeilrapporteringDto
import no.nav.bidrag.transport.behandling.grunnlag.response.SivilstandGrunnlagDto
import no.nav.bidrag.transport.behandling.grunnlag.response.TilleggsstønadGrunnlagDto
import no.nav.bidrag.transport.behandling.inntekt.response.SummertMånedsinntekt
import no.nav.bidrag.transport.felles.ifTrue
import java.time.LocalDate
Expand Down Expand Up @@ -111,7 +112,31 @@ fun Behandling.tilBehandlingDetaljerDtoV2() =
},
)

fun Rolle.tilDto() = RolleDto(id!!, rolletype, ident, navn ?: hentPersonVisningsnavn(ident), fødselsdato)
fun Rolle.tilDto() =
RolleDto(
id!!,
rolletype,
ident,
navn ?: hentPersonVisningsnavn(ident),
fødselsdato,
this.harInnvilgetTilleggsstønad(),
)

fun Rolle.harInnvilgetTilleggsstønad(): Boolean? {
val tilleggsstønad =
this.behandling.grunnlag
.filter { Grunnlagsdatatype.TILLEGGSSTØNAD == it.type && !it.erBearbeidet }
.filter { this == it.rolle }

if (tilleggsstønad.isNotEmpty()) {
return tilleggsstønad
.maxBy { it.innhentet }
.konvertereData<Set<TilleggsstønadGrunnlagDto>>()
?.first()
?.harInnvilgetVedtak
}
return null
}

fun Map<Grunnlagsdatatype, FeilrapporteringDto?>.tilGrunnlagsinnhentingsfeil(behandling: Behandling) =
this
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -80,8 +80,6 @@ import no.nav.bidrag.transport.behandling.grunnlag.response.UtvidetBarnetrygdGru
import no.nav.bidrag.transport.behandling.inntekt.response.SummertÅrsinntekt
import no.nav.bidrag.transport.felles.commonObjectmapper
import org.assertj.core.api.Assertions.assertThat
import org.assertj.core.error.ShouldHaveDimensions.shouldHaveSize
import org.assertj.core.error.ShouldHaveSize.shouldHaveSize
import org.junit.experimental.runners.Enclosed
import org.junit.jupiter.api.BeforeEach
import org.junit.jupiter.api.DisplayName
Expand Down Expand Up @@ -564,42 +562,19 @@ class GrunnlagServiceTest : TestContainerRunner() {
}
}

behandling.underholdskostnader shouldHaveSize 2
behandling.underholdskostnader.flatMap { it.barnetilsyn } shouldHaveSize 0
behandling.grunnlag
.filter { Rolletype.BIDRAGSMOTTAKER == it.rolle.rolletype }
.filter { Grunnlagsdatatype.TILLEGGSSTØNAD == it.type && !it.erBearbeidet } shouldHaveSize 0

// hvis
grunnlagService.oppdatereGrunnlagForBehandling(behandling)

//
behandling.grunnlagSistInnhentet?.toLocalDate() shouldBe LocalDate.now()

behandling.grunnlag.filter { Rolletype.BIDRAGSMOTTAKER == it.rolle.rolletype } shouldHaveSize 1

val uTestbarn1 =
behandling.underholdskostnader.find {
it.person.rolle
.first()
.personident
?.verdi == testdataBarn1.ident
}

assertSoftly(uTestbarn1) {
shouldNotBeNull()
harTilsynsordning shouldBe true
}

val uTestbarn2 =
behandling.underholdskostnader.find {
it.person.rolle
.first()
.personident
?.verdi == testdataBarn2.ident
}

assertSoftly(uTestbarn2) {
shouldNotBeNull()
harTilsynsordning shouldBe false
}
behandling.grunnlag
.filter { Rolletype.BIDRAGSMOTTAKER == it.rolle.rolletype }
.filter { Grunnlagsdatatype.TILLEGGSSTØNAD == it.type && !it.erBearbeidet } shouldHaveSize 1
}
}

Expand Down Expand Up @@ -1238,7 +1213,9 @@ class GrunnlagServiceTest : TestContainerRunner() {
val alleAktiveGrunnlag = behandling.grunnlag.filter { it.aktiv != null }
alleAktiveGrunnlag.size shouldBe 3
val sistInnhentaSmåbarnstillegg =
behandling.grunnlag.filter { Grunnlagsdatatype.SMÅBARNSTILLEGG == it.type }.maxBy { it.innhentet }
behandling.grunnlag
.filter { Grunnlagsdatatype.SMÅBARNSTILLEGG == it.type }
.maxBy { it.innhentet }
sistInnhentaSmåbarnstillegg.aktiv shouldBe null

val gjeldendeSmåbarnstillegg =
Expand Down Expand Up @@ -4413,7 +4390,8 @@ class GrunnlagServiceTest : TestContainerRunner() {
@Transactional
open fun `skal ikke lagre ny innhenting av skattegrunnlag med teknisk feil dersom forrige innhenting var OK`() {
// gitt
val behandling = oppretteTestbehandling(true, setteDatabaseider = true, inkludereInntektsgrunnlag = true)
val behandling =
oppretteTestbehandling(true, setteDatabaseider = true, inkludereInntektsgrunnlag = true)

val skattegrunnlag =
behandling.grunnlag
Expand Down Expand Up @@ -4560,7 +4538,8 @@ class GrunnlagServiceTest : TestContainerRunner() {
@Transactional
open fun `skal lagre endret skattegrunnlag med teknisk feil dersom forrige innhenting hadde teknisk feil`() {
// gitt
val behandling = oppretteTestbehandling(true, setteDatabaseider = true, inkludereInntektsgrunnlag = true)
val behandling =
oppretteTestbehandling(true, setteDatabaseider = true, inkludereInntektsgrunnlag = true)

val skattegrunnlag =
behandling.grunnlag
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,14 @@ import io.kotest.matchers.collections.shouldHaveSize
import io.kotest.matchers.nulls.shouldBeNull
import io.kotest.matchers.nulls.shouldNotBeNull
import io.kotest.matchers.shouldBe
import io.kotest.matchers.shouldNotBe
import io.mockk.every
import io.mockk.impl.annotations.MockK
import io.mockk.junit5.MockKExtension
import no.nav.bidrag.behandling.database.datamodell.Grunnlag
import no.nav.bidrag.behandling.database.datamodell.Inntekt
import no.nav.bidrag.behandling.database.datamodell.RolleManueltOverstyrtGebyr
import no.nav.bidrag.behandling.dto.v2.behandling.Grunnlagsdatatype
import no.nav.bidrag.behandling.service.BeregningEvnevurderingService
import no.nav.bidrag.behandling.service.PersonService
import no.nav.bidrag.behandling.service.TilgangskontrollService
Expand All @@ -18,6 +21,7 @@ import no.nav.bidrag.behandling.transformers.beregning.ValiderBeregning
import no.nav.bidrag.behandling.transformers.vedtak.mapping.tilvedtak.BehandlingTilGrunnlagMappingV2
import no.nav.bidrag.behandling.transformers.vedtak.mapping.tilvedtak.VedtakGrunnlagMapper
import no.nav.bidrag.behandling.utils.testdata.opprettGyldigBehandlingForBeregningOgVedtak
import no.nav.bidrag.behandling.utils.testdata.oppretteTestbehandling
import no.nav.bidrag.beregn.barnebidrag.BeregnBarnebidragApi
import no.nav.bidrag.beregn.barnebidrag.BeregnGebyrApi
import no.nav.bidrag.beregn.barnebidrag.BeregnSamværsklasseApi
Expand All @@ -28,11 +32,15 @@ import no.nav.bidrag.domene.enums.beregning.Resultatkode
import no.nav.bidrag.domene.enums.diverse.Kilde
import no.nav.bidrag.domene.enums.inntekt.Inntektsrapportering
import no.nav.bidrag.domene.enums.rolle.Rolletype
import no.nav.bidrag.transport.behandling.grunnlag.response.TilleggsstønadGrunnlagDto
import no.nav.bidrag.transport.felles.commonObjectmapper
import org.assertj.core.error.ShouldNotBeNull
import org.junit.jupiter.api.BeforeEach
import org.junit.jupiter.api.Test
import org.junit.jupiter.api.extension.ExtendWith
import stubPersonConsumer
import java.math.BigDecimal
import java.time.LocalDateTime

@ExtendWith(MockKExtension::class)
class DtoMapperMockTest {
Expand Down Expand Up @@ -277,4 +285,40 @@ class DtoMapperMockTest {
it.begrunnelse shouldBe null
}
}

@Test
fun `skal legge til informasjon om tilleggsstønad`() {
// gitt
val behandling =
oppretteTestbehandling(
setteDatabaseider = true,
inkludereBp = true,
behandlingstype = TypeBehandling.BIDRAG,
)

val innhentetForRolle = behandling.bidragsmottaker!!
val tilleggsstønadsgrunnlag = TilleggsstønadGrunnlagDto(innhentetForRolle.personident!!.verdi, true)
val innhentetGrunnlag =
Grunnlag(
behandling,
Grunnlagsdatatype.TILLEGGSSTØNAD,
false,
commonObjectmapper.writeValueAsString(setOf(tilleggsstønadsgrunnlag)),
LocalDateTime.now(),
rolle = innhentetForRolle,
)
behandling.grunnlag.add(innhentetGrunnlag)

every { validerBehandlingService.kanBehandlesINyLøsning(any()) } returns null

// hvis
val dto = dtomapper.tilDto(behandling)

//
assertSoftly(dto.roller.find { Rolletype.BIDRAGSMOTTAKER == it.rolletype }) {
ShouldNotBeNull.shouldNotBeNull()
it!!.harInnvilgetTilleggsstønad shouldNotBe null
it.harInnvilgetTilleggsstønad shouldBe true
}
}
}
Loading

0 comments on commit 57d76cc

Please sign in to comment.