Skip to content

Commit

Permalink
Bugfix/oppdatere inntekter (#99)
Browse files Browse the repository at this point in the history
* Fikse oppdatering av inntekter

detached entity passed to persist: no.nav.bidrag.behandling.database.datamodell.Inntekt
  • Loading branch information
s148719 authored Dec 6, 2023
1 parent 42a8b6c commit 5c73861
Show file tree
Hide file tree
Showing 6 changed files with 78 additions and 60 deletions.
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -339,7 +339,7 @@
<plugin>
<groupId>org.owasp</groupId>
<artifactId>dependency-check-maven</artifactId>
<version>8.4.3</version>
<version>9.0.2</version>
<configuration>
<failBuildOnCVSS>8</failBuildOnCVSS>
<skip>${skipOwasp}</skip>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,8 @@ import io.swagger.v3.oas.annotations.security.SecurityRequirement
import no.nav.bidrag.behandling.dto.inntekt.InntekterResponse
import no.nav.bidrag.behandling.dto.inntekt.UpdateInntekterRequest
import no.nav.bidrag.behandling.service.BehandlingService
import no.nav.bidrag.behandling.transformers.toBarnetilleggDomain
import no.nav.bidrag.behandling.transformers.toBarnetilleggDto
import no.nav.bidrag.behandling.transformers.toInntektDomain
import no.nav.bidrag.behandling.transformers.toInntektDto
import no.nav.bidrag.behandling.transformers.toUtvidetbarnetrygdDomain
import no.nav.bidrag.behandling.transformers.toUtvidetbarnetrygdDto
import org.springframework.web.bind.annotation.GetMapping
import org.springframework.web.bind.annotation.PathVariable
Expand Down Expand Up @@ -41,13 +38,11 @@ class InntekterController(private val behandlingService: BehandlingService) {
@PathVariable behandlingId: Long,
@RequestBody request: UpdateInntekterRequest,
): InntekterResponse {
var behandling = behandlingService.hentBehandlingById(behandlingId)

behandlingService.oppdaterInntekter(
behandlingId,
request.inntekter.toInntektDomain(behandling!!),
request.barnetillegg.toBarnetilleggDomain(behandling),
request.utvidetbarnetrygd.toUtvidetbarnetrygdDomain(behandling),
request.inntekter,
request.barnetillegg,
request.utvidetbarnetrygd,
request.inntektBegrunnelseMedIVedtakNotat,
request.inntektBegrunnelseKunINotat,
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ class Behandling(
@OneToMany(
fetch = FetchType.EAGER,
mappedBy = "behandling",
cascade = [CascadeType.ALL],
cascade = [CascadeType.PERSIST, CascadeType.MERGE],
orphanRemoval = true,
)
var inntekter: MutableSet<Inntekt> = mutableSetOf(),
Expand All @@ -91,14 +91,14 @@ class Behandling(
@OneToMany(
fetch = FetchType.EAGER,
mappedBy = "behandling",
cascade = [CascadeType.ALL],
cascade = [CascadeType.PERSIST, CascadeType.MERGE],
orphanRemoval = true,
)
var barnetillegg: MutableSet<Barnetillegg> = mutableSetOf(),
@OneToMany(
fetch = FetchType.EAGER,
mappedBy = "behandling",
cascade = [CascadeType.ALL],
cascade = [CascadeType.PERSIST, CascadeType.MERGE],
orphanRemoval = true,
)
var utvidetbarnetrygd: MutableSet<Utvidetbarnetrygd> = mutableSetOf(),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,21 +2,24 @@ package no.nav.bidrag.behandling.service

import mu.KotlinLogging
import no.nav.bidrag.behandling.behandlingNotFoundException
import no.nav.bidrag.behandling.database.datamodell.Barnetillegg
import no.nav.bidrag.behandling.database.datamodell.Behandling
import no.nav.bidrag.behandling.database.datamodell.ForskuddAarsakType
import no.nav.bidrag.behandling.database.datamodell.HusstandsBarn
import no.nav.bidrag.behandling.database.datamodell.Inntekt
import no.nav.bidrag.behandling.database.datamodell.Sivilstand
import no.nav.bidrag.behandling.database.datamodell.Utvidetbarnetrygd
import no.nav.bidrag.behandling.database.repository.BehandlingRepository
import no.nav.bidrag.behandling.database.repository.RolleRepository
import no.nav.bidrag.behandling.dto.behandling.CreateRolleDto
import no.nav.bidrag.behandling.dto.forsendelse.BehandlingInfoDto
import no.nav.bidrag.behandling.dto.forsendelse.InitalizeForsendelseRequest
import no.nav.bidrag.behandling.dto.inntekt.BarnetilleggDto
import no.nav.bidrag.behandling.dto.inntekt.InntektDto
import no.nav.bidrag.behandling.dto.inntekt.UtvidetbarnetrygdDto
import no.nav.bidrag.behandling.transformers.tilForsendelseRolleDto
import no.nav.bidrag.behandling.transformers.tilVedtakType
import no.nav.bidrag.behandling.transformers.toBarnetilleggDomain
import no.nav.bidrag.behandling.transformers.toInntektDomain
import no.nav.bidrag.behandling.transformers.toRolle
import no.nav.bidrag.behandling.transformers.toUtvidetbarnetrygdDomain
import no.nav.bidrag.domene.enums.rolle.Rolletype
import org.springframework.stereotype.Service
import org.springframework.transaction.annotation.Transactional
Expand Down Expand Up @@ -97,9 +100,9 @@ class BehandlingService(
@Transactional
fun oppdaterInntekter(
behandlingId: Long,
inntekter: MutableSet<Inntekt>,
barnetillegg: MutableSet<Barnetillegg>,
utvidetbarnetrygd: MutableSet<Utvidetbarnetrygd>,
nyeInntekter: Set<InntektDto>,
nyeBarnetillegg: Set<BarnetilleggDto>,
nyUtvidetbarnetrygd: Set<UtvidetbarnetrygdDto>,
inntektBegrunnelseMedIVedtakNotat: String?,
inntektBegrunnelseKunINotat: String?,
) {
Expand All @@ -110,22 +113,35 @@ class BehandlingService(
behandling.inntektBegrunnelseMedIVedtakNotat = inntektBegrunnelseMedIVedtakNotat
behandling.inntektBegrunnelseKunINotat = inntektBegrunnelseKunINotat

var inntektOppdatert = false

val inntekter = nyeInntekter.toInntektDomain(behandling)
val barnetillegg = nyeBarnetillegg.toBarnetilleggDomain(behandling)
val nyUtvidetbarnetrygd = nyUtvidetbarnetrygd.toUtvidetbarnetrygdDomain(behandling)

if (behandling.inntekter != inntekter) {
log.info("Oppdaterer inntekter for behandlingsid $behandlingId")
behandling.inntekter.clear()
behandling.inntekter.addAll(inntekter)
inntektOppdatert = true
}

if (behandling.barnetillegg != barnetillegg) {
log.info("Oppdaterer barnetillegg for behandlingsid $behandlingId")
behandling.barnetillegg.clear()
behandling.barnetillegg.addAll(barnetillegg)
inntektOppdatert = true
}

if (behandling.utvidetbarnetrygd != utvidetbarnetrygd) {
if (behandling.utvidetbarnetrygd != nyUtvidetbarnetrygd) {
log.info("Oppdaterer utvidet barnetrygd for behandlingsid $behandlingId")
behandling.utvidetbarnetrygd.clear()
behandling.utvidetbarnetrygd.addAll(utvidetbarnetrygd)
behandling.utvidetbarnetrygd.addAll(nyUtvidetbarnetrygd)
inntektOppdatert = true
}

if (inntektOppdatert == true) {
behandlingRepository.save(behandling)
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ class InntekterControllerTest : KontrollerTestRunner() {
@Test
fun `skal hente inntekter for behandling`() {
// given
var behandling = behandling()
var behandling = behandlingRepository.save(behandling())

var inntekt = inntekt(behandling)
inntekt.inntektPostListe = inntektsposter(inntekt)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,23 +3,25 @@ package no.nav.bidrag.behandling.service
import jakarta.persistence.EntityManager
import jakarta.persistence.PersistenceContext
import no.nav.bidrag.behandling.TestContainerRunner
import no.nav.bidrag.behandling.database.datamodell.Barnetillegg
import no.nav.bidrag.behandling.database.datamodell.Behandling
import no.nav.bidrag.behandling.database.datamodell.Behandlingstype
import no.nav.bidrag.behandling.database.datamodell.ForskuddAarsakType
import no.nav.bidrag.behandling.database.datamodell.Inntekt
import no.nav.bidrag.behandling.database.datamodell.Kilde
import no.nav.bidrag.behandling.database.datamodell.Rolle
import no.nav.bidrag.behandling.database.datamodell.SoknadType
import no.nav.bidrag.behandling.database.datamodell.Utvidetbarnetrygd
import no.nav.bidrag.behandling.database.repository.BehandlingRepository
import no.nav.bidrag.behandling.dto.behandling.CreateRolleDto
import no.nav.bidrag.behandling.dto.behandling.CreateRolleRolleType
import no.nav.bidrag.behandling.dto.behandling.SivilstandDto
import no.nav.bidrag.behandling.dto.husstandsbarn.HusstandsbarnDto
import no.nav.bidrag.behandling.dto.inntekt.BarnetilleggDto
import no.nav.bidrag.behandling.dto.inntekt.InntektDto
import no.nav.bidrag.behandling.dto.inntekt.UtvidetbarnetrygdDto
import no.nav.bidrag.behandling.transformers.toDomain
import no.nav.bidrag.behandling.transformers.toLocalDate
import no.nav.bidrag.behandling.transformers.toSivilstandDomain
import no.nav.bidrag.domene.enums.inntekt.Inntektsrapportering
import no.nav.bidrag.domene.enums.person.Sivilstandskode
import no.nav.bidrag.domene.enums.rolle.Rolletype
import no.nav.bidrag.domene.enums.rolle.SøktAvType
Expand All @@ -33,6 +35,7 @@ import org.springframework.beans.factory.annotation.Autowired
import org.springframework.transaction.annotation.Transactional
import org.springframework.web.client.HttpClientErrorException
import java.math.BigDecimal
import java.time.LocalDate
import java.util.Calendar
import java.util.Date

Expand Down Expand Up @@ -318,33 +321,31 @@ class BehandlingServiceTest : TestContainerRunner() {
behandlingService.oppdaterInntekter(
actualBehandling.id!!,
mutableSetOf(
Inntekt(
"",
BigDecimal.valueOf(1.111),
Calendar.getInstance().time,
Calendar.getInstance().time,
"ident",
true,
true,
behandling = actualBehandling,
InntektDto(
taMed = true,
inntektType = Inntektsrapportering.KAPITALINNTEKT.name,
belop = BigDecimal.valueOf(4000),
datoFom = LocalDate.now().minusMonths(4),
datoTom = LocalDate.now().plusMonths(4),
ident = "123",
fraGrunnlag = true,
inntektPostListe = emptySet(),
),
),
mutableSetOf(
Barnetillegg(
actualBehandling,
"ident",
BigDecimal.ONE,
Calendar.getInstance().time,
Calendar.getInstance().time,
BarnetilleggDto(
ident = "123",
barnetillegg = BigDecimal.TEN,
datoFom = LocalDate.now().minusMonths(3),
datoTom = LocalDate.now().plusMonths(3),
),
),
mutableSetOf(
Utvidetbarnetrygd(
actualBehandling,
true,
BigDecimal.TEN,
Calendar.getInstance().time,
Calendar.getInstance().time,
UtvidetbarnetrygdDto(
deltBoSted = false,
belop = BigDecimal.TEN,
datoFom = LocalDate.now().minusMonths(3),
datoTom = LocalDate.now().plusMonths(3),
),
),
"Med i Vedtaket",
Expand Down Expand Up @@ -376,24 +377,23 @@ class BehandlingServiceTest : TestContainerRunner() {
behandlingService.oppdaterInntekter(
actualBehandling.id!!,
mutableSetOf(
Inntekt(
"",
BigDecimal.valueOf(1.111),
Calendar.getInstance().time,
Calendar.getInstance().time,
"ident",
true,
true,
behandling = actualBehandling,
InntektDto(
taMed = true,
inntektType = Inntektsrapportering.KAPITALINNTEKT.name,
belop = BigDecimal.valueOf(4000),
datoFom = LocalDate.now().minusMonths(4),
datoTom = LocalDate.now().plusMonths(4),
ident = "123",
fraGrunnlag = true,
inntektPostListe = emptySet(),
),
),
mutableSetOf(
Barnetillegg(
actualBehandling,
"ident",
BigDecimal.ONE,
Calendar.getInstance().time,
Calendar.getInstance().time,
BarnetilleggDto(
ident = "123",
barnetillegg = BigDecimal.TEN,
datoFom = LocalDate.now().minusMonths(3),
datoTom = LocalDate.now().plusMonths(3),
),
),
mutableSetOf(),
Expand All @@ -411,7 +411,14 @@ class BehandlingServiceTest : TestContainerRunner() {
behandlingService.oppdaterInntekter(
actualBehandling.id!!,
mutableSetOf(),
expectedBehandling.barnetillegg,
mutableSetOf(
BarnetilleggDto(
ident = "123",
barnetillegg = BigDecimal.TEN,
datoFom = LocalDate.now().minusMonths(3),
datoTom = LocalDate.now().plusMonths(3),
),
),
mutableSetOf(),
null,
null,
Expand Down

0 comments on commit 5c73861

Please sign in to comment.