From 4ae634906d138f3576bdced168d6629a76c02556 Mon Sep 17 00:00:00 2001 From: Ugur Alpay Cenar Date: Thu, 19 Dec 2024 14:25:41 +0100 Subject: [PATCH] Oppdater underholdskostnad api (#645) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Oppdater underholdskostnad api * Oppdater underholdskostnad api * Oppdater underholdskostnad api * Oppdater underholdskostnad api * Oppdater underholdskostnad api * Fikse tester * Fikse tester * Hindre behandling av begrenset revurdering * Rydde opp i UnderholdController * Rydde opp i UnderholdController * Rydde opp i UnderholdController * Rydde opp i UnderholdController * Lagring av søknadstype * Lagring av søknadstype * Lagring av søknadstype * Lagring av søknadstype --- pom.xml | 2 +- .../controller/v2/UnderholdController.kt | 91 ++++++------------- .../database/datamodell/Behandling.kt | 3 + .../database/datamodell/Underholdskostnad.kt | 2 +- .../OpprettBehandlingFraVedtakRequest.kt | 2 + .../v1/behandling/OpprettBehandlingRequest.kt | 4 + .../KanBehandlesINyL\303\270sningRequest.kt" | 2 + .../behandling/dto/v2/underhold/Underhold.kt | 14 +++ .../behandling/service/BehandlingService.kt | 1 + .../behandling/service/UnderholdService.kt | 58 ++++-------- .../service/ValiderBehandlingService.kt | 3 +- .../behandling/service/VedtakService.kt | 1 + .../behandling/transformers/Dtomapper.kt | 71 ++++++++++----- .../behandling/BehandlingDtoMapping.kt | 1 + .../fravedtak/VedtakTilBehandlingMapping.kt | 3 + ...able_behandling_add_column_soknadstype.sql | 1 + .../controller/UnderholdControllerTest.kt | 65 +++---------- .../behandling/BehandlingControllerTest.kt | 4 +- .../service/UnderholdServiceTest.kt | 43 --------- .../behandling/transformers/DtoMapperTest.kt | 52 +---------- .../ValideringOpprettBehandlingTest.kt | 2 +- 21 files changed, 147 insertions(+), 278 deletions(-) create mode 100644 src/main/resources/db/migration/V2.36.0__table_behandling_add_column_soknadstype.sql diff --git a/pom.xml b/pom.xml index 5694962aa..45f70272c 100644 --- a/pom.xml +++ b/pom.xml @@ -16,7 +16,7 @@ 21 2.1.0 - 2024.12.16.144038 + 2024.12.19.080813 2024.12.16.134803 2.3.232 8.0 diff --git a/src/main/kotlin/no/nav/bidrag/behandling/controller/v2/UnderholdController.kt b/src/main/kotlin/no/nav/bidrag/behandling/controller/v2/UnderholdController.kt index 37ee224bf..22733247d 100644 --- a/src/main/kotlin/no/nav/bidrag/behandling/controller/v2/UnderholdController.kt +++ b/src/main/kotlin/no/nav/bidrag/behandling/controller/v2/UnderholdController.kt @@ -12,26 +12,22 @@ import no.nav.bidrag.behandling.dto.v2.underhold.BarnDto import no.nav.bidrag.behandling.dto.v2.underhold.OppdatereBegrunnelseRequest import no.nav.bidrag.behandling.dto.v2.underhold.OppdatereFaktiskTilsynsutgiftRequest import no.nav.bidrag.behandling.dto.v2.underhold.OppdatereTilleggsstønadRequest -import no.nav.bidrag.behandling.dto.v2.underhold.OppdatereUnderholdRequest import no.nav.bidrag.behandling.dto.v2.underhold.OppdatereUnderholdResponse +import no.nav.bidrag.behandling.dto.v2.underhold.OpprettUnderholdskostnadBarnResponse import no.nav.bidrag.behandling.dto.v2.underhold.SletteUnderholdselement 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.underhold.Underholdselement import no.nav.bidrag.behandling.service.UnderholdService import no.nav.bidrag.behandling.transformers.Dtomapper import no.nav.bidrag.behandling.transformers.underhold.henteOgValidereUnderholdskostnad import no.nav.bidrag.behandling.transformers.underhold.tilStønadTilBarnetilsynDto import no.nav.bidrag.behandling.transformers.underhold.validerePerioder import no.nav.bidrag.commons.util.secureLogger -import org.springframework.http.HttpStatus import org.springframework.web.bind.annotation.DeleteMapping import org.springframework.web.bind.annotation.PathVariable import org.springframework.web.bind.annotation.PostMapping import org.springframework.web.bind.annotation.PutMapping import org.springframework.web.bind.annotation.RequestBody import org.springframework.web.bind.annotation.RequestParam -import org.springframework.web.bind.annotation.ResponseStatus private val log = KotlinLogging.logger {} @@ -41,7 +37,6 @@ class UnderholdController( private val underholdService: UnderholdService, private val dtomapper: Dtomapper, ) { - @ResponseStatus(HttpStatus.ACCEPTED) @DeleteMapping("/behandling/{behandlingsid}/underhold") @Operation( description = @@ -60,7 +55,7 @@ class UnderholdController( fun sletteFraUnderhold( @PathVariable behandlingsid: Long, @Valid @RequestBody(required = true) request: SletteUnderholdselement, - ): UnderholdDto? { + ): OppdatereUnderholdResponse { log.info { "Sletter fra underholdskostnad i behandling $behandlingsid" } secureLogger.info { "Sletter fra underholdskostnad i behandling $behandlingsid med forespørsel $request" } @@ -69,16 +64,15 @@ class UnderholdController( .findBehandlingById(behandlingsid) .orElseThrow { behandlingNotFoundException(behandlingsid) } - val underholdDto = underholdService.sletteFraUnderhold(behandling, request) - - if (Underholdselement.BARN == request.type && underholdDto == null) { - return null - } + underholdService.sletteFraUnderhold(behandling, request) - return underholdDto + return OppdatereUnderholdResponse( + underholdskostnad = dtomapper.run { behandling.tilBeregnetUnderholdskostnad().first().perioder }, + beregnetUnderholdskostnader = dtomapper.run { behandling.tilBeregnetUnderholdskostnad() }, + valideringsfeil = null, + ) } - @ResponseStatus(HttpStatus.CREATED) @PutMapping("/behandling/{behandlingsid}/underhold/{underholdsid}/barnetilsyn") @Operation( description = @@ -88,7 +82,7 @@ class UnderholdController( @ApiResponses( value = [ ApiResponse( - responseCode = "201", + responseCode = "200", description = "Forespørsel oppdatert uten feil", ), ], @@ -116,13 +110,12 @@ class UnderholdController( val oppdatertBarnetilsyn = underholdService.oppdatereStønadTilBarnetilsynManuelt(underholdskostnad, request) return OppdatereUnderholdResponse( stønadTilBarnetilsyn = oppdatertBarnetilsyn.tilStønadTilBarnetilsynDto(), - underholdskostnad = - dtomapper.tilUnderholdskostnadsperioderForBehandlingMedKunEttSøknadsbarn(underholdskostnad.behandling), + underholdskostnad = dtomapper.run { behandling.tilBeregnetUnderholdskostnad().perioderForBarn(underholdskostnad.person) }, + beregnetUnderholdskostnader = dtomapper.run { behandling.tilBeregnetUnderholdskostnad() }, valideringsfeil = underholdskostnad.barnetilsyn.validerePerioder(), ) } - @ResponseStatus(HttpStatus.CREATED) @PutMapping("/behandling/{behandlingsid}/underhold/{underholdsid}/faktisk_tilsynsutgift") @Operation( description = @@ -133,7 +126,7 @@ class UnderholdController( @ApiResponses( value = [ ApiResponse( - responseCode = "201", + responseCode = "200", description = "Forespørsel oppdatert uten feil", ), ], @@ -156,15 +149,12 @@ class UnderholdController( val oppdatertFaktiskTilsynsutgift = underholdService.oppdatereFaktiskeTilsynsutgifter(underholdskostnad, request) return OppdatereUnderholdResponse( faktiskTilsynsutgift = dtomapper.tilFaktiskTilsynsutgiftDto(oppdatertFaktiskTilsynsutgift), - underholdskostnad = - dtomapper.tilUnderholdskostnadsperioderForBehandlingMedKunEttSøknadsbarn( - underholdskostnad.behandling, - ), + underholdskostnad = dtomapper.run { behandling.tilBeregnetUnderholdskostnad().first().perioder }, + beregnetUnderholdskostnader = dtomapper.run { behandling.tilBeregnetUnderholdskostnad() }, valideringsfeil = underholdskostnad.barnetilsyn.validerePerioder(), ) } - @ResponseStatus(HttpStatus.CREATED) @PutMapping("/behandling/{behandlingsid}/underhold/{underholdsid}/tilleggsstonad") @Operation( description = @@ -174,7 +164,7 @@ class UnderholdController( @ApiResponses( value = [ ApiResponse( - responseCode = "201", + responseCode = "200", description = "Forespørsel oppdatert uten feil", ), ], @@ -197,43 +187,12 @@ class UnderholdController( val oppdatertTilleggsstønad = underholdService.oppdatereTilleggsstønad(underholdskostnad, request) return OppdatereUnderholdResponse( tilleggsstønad = dtomapper.tilTilleggsstønadDto(oppdatertTilleggsstønad), - underholdskostnad = - dtomapper.tilUnderholdskostnadsperioderForBehandlingMedKunEttSøknadsbarn(underholdskostnad.behandling), + underholdskostnad = dtomapper.run { behandling.tilBeregnetUnderholdskostnad().first().perioder }, + beregnetUnderholdskostnader = dtomapper.run { behandling.tilBeregnetUnderholdskostnad() }, valideringsfeil = underholdskostnad.barnetilsyn.validerePerioder(), ) } - @Deprecated("Erstattes av oppdatereBegrunnelse og angiTilsynsordning") - @ResponseStatus(HttpStatus.CREATED) - @PutMapping("/behandling/{behandlingsid}/underhold/{underholdsid}/oppdatere") - @Operation( - description = "Angir om et barn har tilsynsordning.", - security = [SecurityRequirement(name = "bearer-key")], - ) - @ApiResponses( - value = [ - ApiResponse( - responseCode = "201", - description = "Forespørsel oppdatert uten feil", - ), - ], - ) - fun oppdatereUnderhold( - @PathVariable behandlingsid: Long, - @PathVariable underholdsid: Long, - @RequestBody(required = true) request: OppdatereUnderholdRequest, - ): UnderholdDto { - val behandling = - behandlingRepository - .findBehandlingById(behandlingsid) - .orElseThrow { behandlingNotFoundException(behandlingsid) } - - val underholdskostnad = henteOgValidereUnderholdskostnad(behandling, underholdsid) - - return underholdService.oppdatereUnderhold(underholdskostnad, request) - } - - @ResponseStatus(HttpStatus.CREATED) @PutMapping("/behandling/{behandlingsid}/underhold/begrunnelse") @Operation( description = "Oppdatere begrunnelse for underhold relatert til søknadsbarn eller andre barn.", @@ -242,7 +201,7 @@ class UnderholdController( @ApiResponses( value = [ ApiResponse( - responseCode = "201", + responseCode = "200", description = "Forespørsel oppdatert uten feil", ), ], @@ -259,7 +218,6 @@ class UnderholdController( underholdService.oppdatereBegrunnelse(behandling, request) } - @ResponseStatus(HttpStatus.CREATED) @PutMapping("/behandling/{behandlingsid}/underhold/{underholdsid}/tilsynsordning") @Operation( description = "Angir om søknadsbarn har tilsynsordning.", @@ -268,7 +226,7 @@ class UnderholdController( @ApiResponses( value = [ ApiResponse( - responseCode = "201", + responseCode = "200", description = "Forespørsel oppdatert uten feil", ), ], @@ -288,7 +246,6 @@ class UnderholdController( underholdService.oppdatereTilsynsordning(underholdskostnad, harTilsynsordning) } - @ResponseStatus(HttpStatus.CREATED) @PostMapping("/behandling/{behandlingsid}/underhold/opprette") @Operation( description = "Oppretter underholdselement med faktiske utgifter for BMs andre barn. Legges manuelt inn av saksbehandler.", @@ -297,7 +254,7 @@ class UnderholdController( @ApiResponses( value = [ ApiResponse( - responseCode = "201", + responseCode = "200", description = "Forespørsel oppdatert uten feil", ), ], @@ -305,12 +262,16 @@ class UnderholdController( fun oppretteUnderholdForBarn( @PathVariable behandlingsid: Long, @RequestBody(required = true) gjelderBarn: BarnDto, - ): UnderholdDto { + ): OpprettUnderholdskostnadBarnResponse { val behandling = behandlingRepository .findBehandlingById(behandlingsid) .orElseThrow { behandlingNotFoundException(behandlingsid) } - return dtomapper.tilUnderholdDto(underholdService.oppretteUnderholdskostnad(behandling, gjelderBarn)) + return OpprettUnderholdskostnadBarnResponse( + underholdskostnad = dtomapper.tilUnderholdDto(underholdService.oppretteUnderholdskostnad(behandling, gjelderBarn)), + beregnetUnderholdskostnader = dtomapper.run { behandling.tilBeregnetUnderholdskostnad() }, + valideringsfeil = null, + ) } } diff --git a/src/main/kotlin/no/nav/bidrag/behandling/database/datamodell/Behandling.kt b/src/main/kotlin/no/nav/bidrag/behandling/database/datamodell/Behandling.kt index c621a2917..27ac74d90 100644 --- a/src/main/kotlin/no/nav/bidrag/behandling/database/datamodell/Behandling.kt +++ b/src/main/kotlin/no/nav/bidrag/behandling/database/datamodell/Behandling.kt @@ -15,6 +15,7 @@ import jakarta.persistence.Id import jakarta.persistence.OneToMany import jakarta.persistence.OneToOne import no.nav.bidrag.behandling.transformers.vedtak.ifFalse +import no.nav.bidrag.domene.enums.behandling.BisysSøknadstype import no.nav.bidrag.domene.enums.beregning.Resultatkode import no.nav.bidrag.domene.enums.diverse.Kilde import no.nav.bidrag.domene.enums.rolle.Rolletype @@ -159,6 +160,8 @@ open class Behandling( ) open var underholdskostnader: MutableSet = mutableSetOf(), open var deleted: Boolean = false, + @Enumerated(EnumType.STRING) + open var søknadstype: BisysSøknadstype? = null, ) { val grunnlagListe: List get() = grunnlag.toList() val søknadsbarn get() = roller.filter { it.rolletype == Rolletype.BARN } diff --git a/src/main/kotlin/no/nav/bidrag/behandling/database/datamodell/Underholdskostnad.kt b/src/main/kotlin/no/nav/bidrag/behandling/database/datamodell/Underholdskostnad.kt index 6d2efdea7..61cd96ef3 100644 --- a/src/main/kotlin/no/nav/bidrag/behandling/database/datamodell/Underholdskostnad.kt +++ b/src/main/kotlin/no/nav/bidrag/behandling/database/datamodell/Underholdskostnad.kt @@ -46,7 +46,7 @@ open class Underholdskostnad( ) open val faktiskeTilsynsutgifter: MutableSet = mutableSetOf(), ) { - val barnetsRolleIBehandlingen get() = person.rolle.filter { behandling.id == it.behandling.id }.firstOrNull() + val barnetsRolleIBehandlingen get() = person.rolle.find { behandling.id == it.behandling.id } override fun toString(): String = "Underholdskostnad(id=$id, behandling=${behandling.id}, person=${person.id}, harTilsynsordning=$harTilsynsordning, faktiskeTilsynsutgifter=$faktiskeTilsynsutgifter, barnetilsyn=$barnetilsyn, tilleggsstønad=$tilleggsstønad)" diff --git a/src/main/kotlin/no/nav/bidrag/behandling/dto/v1/behandling/OpprettBehandlingFraVedtakRequest.kt b/src/main/kotlin/no/nav/bidrag/behandling/dto/v1/behandling/OpprettBehandlingFraVedtakRequest.kt index be1595449..ad434cbca 100644 --- a/src/main/kotlin/no/nav/bidrag/behandling/dto/v1/behandling/OpprettBehandlingFraVedtakRequest.kt +++ b/src/main/kotlin/no/nav/bidrag/behandling/dto/v1/behandling/OpprettBehandlingFraVedtakRequest.kt @@ -3,6 +3,7 @@ package no.nav.bidrag.behandling.dto.v1.behandling import io.swagger.v3.oas.annotations.media.Schema import jakarta.validation.constraints.NotBlank import jakarta.validation.constraints.Size +import no.nav.bidrag.domene.enums.behandling.BisysSøknadstype import no.nav.bidrag.domene.enums.rolle.SøktAvType import no.nav.bidrag.domene.enums.vedtak.Vedtakstype import java.time.LocalDate @@ -25,4 +26,5 @@ data class OpprettBehandlingFraVedtakRequest( @Schema(required = true) val søknadsid: Long, val søknadsreferanseid: Long? = null, + val søknadstype: BisysSøknadstype? = null, ) diff --git a/src/main/kotlin/no/nav/bidrag/behandling/dto/v1/behandling/OpprettBehandlingRequest.kt b/src/main/kotlin/no/nav/bidrag/behandling/dto/v1/behandling/OpprettBehandlingRequest.kt index 2c77cbe9b..bd880b799 100644 --- a/src/main/kotlin/no/nav/bidrag/behandling/dto/v1/behandling/OpprettBehandlingRequest.kt +++ b/src/main/kotlin/no/nav/bidrag/behandling/dto/v1/behandling/OpprettBehandlingRequest.kt @@ -7,6 +7,7 @@ import jakarta.validation.constraints.Size import no.nav.bidrag.behandling.dto.v2.behandling.KanBehandlesINyLøsningRequest import no.nav.bidrag.behandling.dto.v2.behandling.SjekkRolleDto import no.nav.bidrag.behandling.transformers.bestemTypeBehandling +import no.nav.bidrag.domene.enums.behandling.BisysSøknadstype import no.nav.bidrag.domene.enums.behandling.TypeBehandling import no.nav.bidrag.domene.enums.rolle.SøktAvType import no.nav.bidrag.domene.enums.vedtak.Engangsbeløptype @@ -16,6 +17,7 @@ import no.nav.bidrag.domene.enums.vedtak.Vedtakstype import java.time.LocalDate data class OpprettBehandlingRequest( + val søknadstype: BisysSøknadstype? = null, @Schema(required = true) val vedtakstype: Vedtakstype, @Schema(required = true) @@ -46,9 +48,11 @@ data class OpprettBehandlingRequest( fun OpprettBehandlingRequest.tilKanBehandlesINyLøsningRequest(): KanBehandlesINyLøsningRequest = KanBehandlesINyLøsningRequest( saksnummer = this.saksnummer, + søknadstype = søknadstype, roller = this.roller.map { SjekkRolleDto(it.rolletype, it.ident, it.erUkjent) }, stønadstype = this.stønadstype, engangsbeløpstype = this.engangsbeløpstype, + vedtakstype = vedtakstype, ) fun OpprettBehandlingRequest.tilType() = bestemTypeBehandling(stønadstype, engangsbeløpstype) diff --git "a/src/main/kotlin/no/nav/bidrag/behandling/dto/v2/behandling/KanBehandlesINyL\303\270sningRequest.kt" "b/src/main/kotlin/no/nav/bidrag/behandling/dto/v2/behandling/KanBehandlesINyL\303\270sningRequest.kt" index b90cdb612..d4d9e1acb 100644 --- "a/src/main/kotlin/no/nav/bidrag/behandling/dto/v2/behandling/KanBehandlesINyL\303\270sningRequest.kt" +++ "b/src/main/kotlin/no/nav/bidrag/behandling/dto/v2/behandling/KanBehandlesINyL\303\270sningRequest.kt" @@ -4,6 +4,7 @@ import io.swagger.v3.oas.annotations.media.Schema import jakarta.validation.constraints.NotBlank import jakarta.validation.constraints.Size import no.nav.bidrag.behandling.transformers.bestemTypeBehandling +import no.nav.bidrag.domene.enums.behandling.BisysSøknadstype import no.nav.bidrag.domene.enums.rolle.Rolletype import no.nav.bidrag.domene.enums.vedtak.Engangsbeløptype import no.nav.bidrag.domene.enums.vedtak.Stønadstype @@ -22,6 +23,7 @@ data class KanBehandlesINyLøsningRequest( var vedtakstype: Vedtakstype? = null, @Schema(required = true) var engangsbeløpstype: Engangsbeløptype? = null, + var søknadstype: BisysSøknadstype? = null, val harReferanseTilAnnenBehandling: Boolean = false, ) { val bidragspliktig get() = roller.find { it.rolletype == Rolletype.BIDRAGSPLIKTIG } diff --git a/src/main/kotlin/no/nav/bidrag/behandling/dto/v2/underhold/Underhold.kt b/src/main/kotlin/no/nav/bidrag/behandling/dto/v2/underhold/Underhold.kt index 4e4eb8c5e..73a365f6b 100644 --- a/src/main/kotlin/no/nav/bidrag/behandling/dto/v2/underhold/Underhold.kt +++ b/src/main/kotlin/no/nav/bidrag/behandling/dto/v2/underhold/Underhold.kt @@ -14,12 +14,20 @@ import no.nav.bidrag.domene.tid.Datoperiode import java.math.BigDecimal import java.time.LocalDate +data class OpprettUnderholdskostnadBarnResponse( + val underholdskostnad: UnderholdDto, + val valideringsfeil: ValideringsfeilUnderhold? = null, + val beregnetUnderholdskostnader: Set, +) + data class OppdatereUnderholdResponse( val stønadTilBarnetilsyn: StønadTilBarnetilsynDto? = null, val faktiskTilsynsutgift: FaktiskTilsynsutgiftDto? = null, val tilleggsstønad: TilleggsstønadDto? = null, + @Deprecated("Bruk beregnetUnderholdskostnader") val underholdskostnad: Set, val valideringsfeil: ValideringsfeilUnderhold? = null, + val beregnetUnderholdskostnader: Set, ) data class SletteUnderholdselement( @@ -50,6 +58,7 @@ data class UnderholdDto( val tilleggsstønad: Set = emptySet(), val underholdskostnad: Set, val begrunnelse: String? = null, + val beregnetUnderholdskostnad: Set, ) data class OppdatereUnderholdRequest( @@ -101,6 +110,11 @@ data class ValideringsfeilUnderhold( ) } +data class BeregnetUnderholdskostnad( + val gjelderBarn: PersoninfoDto, + val perioder: Set, +) + data class UnderholdskostnadDto( val periode: DatoperiodeDto, val forbruk: BigDecimal = BigDecimal.ZERO, diff --git a/src/main/kotlin/no/nav/bidrag/behandling/service/BehandlingService.kt b/src/main/kotlin/no/nav/bidrag/behandling/service/BehandlingService.kt index 9ddff5de9..db786df98 100644 --- a/src/main/kotlin/no/nav/bidrag/behandling/service/BehandlingService.kt +++ b/src/main/kotlin/no/nav/bidrag/behandling/service/BehandlingService.kt @@ -114,6 +114,7 @@ class BehandlingService( ?.let { SaksbehandlernavnProvider.hentSaksbehandlernavn(it) } val behandling = Behandling( + søknadstype = opprettBehandling.søknadstype, vedtakstype = opprettBehandling.vedtakstype, søktFomDato = opprettBehandling.søktFomDato, innkrevingstype = diff --git a/src/main/kotlin/no/nav/bidrag/behandling/service/UnderholdService.kt b/src/main/kotlin/no/nav/bidrag/behandling/service/UnderholdService.kt index 1503931b4..61d6f38b9 100644 --- a/src/main/kotlin/no/nav/bidrag/behandling/service/UnderholdService.kt +++ b/src/main/kotlin/no/nav/bidrag/behandling/service/UnderholdService.kt @@ -19,10 +19,8 @@ import no.nav.bidrag.behandling.dto.v2.underhold.BarnDto import no.nav.bidrag.behandling.dto.v2.underhold.OppdatereBegrunnelseRequest import no.nav.bidrag.behandling.dto.v2.underhold.OppdatereFaktiskTilsynsutgiftRequest import no.nav.bidrag.behandling.dto.v2.underhold.OppdatereTilleggsstønadRequest -import no.nav.bidrag.behandling.dto.v2.underhold.OppdatereUnderholdRequest import no.nav.bidrag.behandling.dto.v2.underhold.SletteUnderholdselement 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.underhold.Underholdselement import no.nav.bidrag.behandling.fantIkkeFødselsdatoTilPerson import no.nav.bidrag.behandling.transformers.Dtomapper @@ -105,26 +103,6 @@ class UnderholdService( underholdskostnad.harTilsynsordning = harTilsynsordning } - @Deprecated("Erstattes av oppdatereBegrunnelse og oppdatereTilsynsordning") - @Transactional - fun oppdatereUnderhold( - underholdskostnad: Underholdskostnad, - request: OppdatereUnderholdRequest, - ): UnderholdDto { - request.validere() - request.harTilsynsordning?.let { underholdskostnad.harTilsynsordning = it } - val rolleSøknadsbarn = underholdskostnad.barnetsRolleIBehandlingen - request.begrunnelse?.let { - notatService.oppdatereNotat( - underholdskostnad.behandling, - Notattype.UNDERHOLDSKOSTNAD, - it, - rolleSøknadsbarn ?: underholdskostnad.behandling.bidragsmottaker!!, - ) - } - return dtomapper.tilUnderholdDto(underholdskostnad) - } - @Transactional fun oppretteUnderholdskostnad( behandling: Behandling, @@ -356,48 +334,48 @@ class UnderholdService( fun sletteFraUnderhold( behandling: Behandling, request: SletteUnderholdselement, - ): UnderholdDto? { + ) { request.validere(behandling) val underholdskostnad = behandling.underholdskostnader.find { request.idUnderhold == it.id }!! when (request.type) { - Underholdselement.BARN -> return sletteUnderholdskostnad(behandling, underholdskostnad) - Underholdselement.FAKTISK_TILSYNSUTGIFT -> return sletteFaktiskTilsynsutgift( - underholdskostnad, - request.idElement, - ) + Underholdselement.BARN -> sletteUnderholdskostnad(behandling, underholdskostnad) + Underholdselement.FAKTISK_TILSYNSUTGIFT -> + sletteFaktiskTilsynsutgift( + underholdskostnad, + request.idElement, + ) - Underholdselement.TILLEGGSSTØNAD -> return sletteTilleggsstønad(underholdskostnad, request.idElement) - Underholdselement.STØNAD_TIL_BARNETILSYN -> return sletteStønadTilBarnetilsyn( - underholdskostnad, - request.idElement, - ) + Underholdselement.TILLEGGSSTØNAD -> sletteTilleggsstønad(underholdskostnad, request.idElement) + Underholdselement.STØNAD_TIL_BARNETILSYN -> + sletteStønadTilBarnetilsyn( + underholdskostnad, + request.idElement, + ) } } private fun sletteStønadTilBarnetilsyn( underholdskostnad: Underholdskostnad, idElement: Long, - ): UnderholdDto { + ) { val stønadTilBarnetilsyn = underholdskostnad.barnetilsyn.find { idElement == it.id } underholdskostnad.barnetilsyn.remove(stønadTilBarnetilsyn) - return dtomapper.tilUnderholdDto(underholdskostnad) } private fun sletteTilleggsstønad( underholdskostnad: Underholdskostnad, idElement: Long, - ): UnderholdDto { + ) { val tilleggsstønad = underholdskostnad.tilleggsstønad.find { idElement == it.id } underholdskostnad.tilleggsstønad.remove(tilleggsstønad) - return dtomapper.tilUnderholdDto(underholdskostnad) } private fun sletteUnderholdskostnad( behandling: Behandling, underholdskostnad: Underholdskostnad, - ): UnderholdDto? { + ) { behandling.underholdskostnader.remove(underholdskostnad) underholdskostnad.person.underholdskostnad.remove(underholdskostnad) if (underholdskostnad.person.underholdskostnad.isEmpty() && underholdskostnad.barnetsRolleIBehandlingen == null) { @@ -407,16 +385,14 @@ class UnderholdService( } } underholdskostnadRepository.deleteById(underholdskostnad.id!!) - return null } private fun sletteFaktiskTilsynsutgift( underholdskostnad: Underholdskostnad, idElement: Long, - ): UnderholdDto { + ) { val faktiskTilsynsutgift = underholdskostnad.faktiskeTilsynsutgifter.find { idElement == it.id } underholdskostnad.faktiskeTilsynsutgifter.remove(faktiskTilsynsutgift) - return dtomapper.tilUnderholdDto(underholdskostnad) } private fun lagreUnderholdskostnad( diff --git a/src/main/kotlin/no/nav/bidrag/behandling/service/ValiderBehandlingService.kt b/src/main/kotlin/no/nav/bidrag/behandling/service/ValiderBehandlingService.kt index 9a9cb4b4b..6b0789b32 100644 --- a/src/main/kotlin/no/nav/bidrag/behandling/service/ValiderBehandlingService.kt +++ b/src/main/kotlin/no/nav/bidrag/behandling/service/ValiderBehandlingService.kt @@ -6,6 +6,7 @@ import no.nav.bidrag.behandling.dto.v2.behandling.KanBehandlesINyLøsningRequest import no.nav.bidrag.behandling.dto.v2.behandling.KanBehandlesINyLøsningResponse import no.nav.bidrag.behandling.dto.v2.behandling.tilType import no.nav.bidrag.commons.util.secureLogger +import no.nav.bidrag.domene.enums.behandling.BisysSøknadstype import no.nav.bidrag.domene.enums.behandling.TypeBehandling import no.nav.bidrag.domene.enums.rolle.Rolletype import no.nav.bidrag.domene.enums.vedtak.Stønadstype @@ -46,7 +47,7 @@ class ValiderBehandlingService( if (request.vedtakstype == Vedtakstype.KLAGE || request.harReferanseTilAnnenBehandling) { return "Kan ikke behandle klage eller omgjøring" } - if (request.vedtakstype == Vedtakstype.REVURDERING) { + if (request.vedtakstype == Vedtakstype.REVURDERING || request.søknadstype == BisysSøknadstype.BEGRENSET_REVURDERING) { return "Kan ikke behandle begrenset revurdering" } val bp = request.bidragspliktig diff --git a/src/main/kotlin/no/nav/bidrag/behandling/service/VedtakService.kt b/src/main/kotlin/no/nav/bidrag/behandling/service/VedtakService.kt index 55d47ec15..49981b77f 100644 --- a/src/main/kotlin/no/nav/bidrag/behandling/service/VedtakService.kt +++ b/src/main/kotlin/no/nav/bidrag/behandling/service/VedtakService.kt @@ -137,6 +137,7 @@ class VedtakService( søknadRefId = request.søknadsreferanseid, enhet = request.behandlerenhet, søknadId = request.søknadsid, + søknadstype = request.søknadstype, lesemodus = false, opprinneligVedtakstidspunkt = hentOpprinneligVedtakstidspunkt(vedtak).toSet(), opprinneligVedtakstype = hentOpprinneligVedtakstype(vedtak), diff --git a/src/main/kotlin/no/nav/bidrag/behandling/transformers/Dtomapper.kt b/src/main/kotlin/no/nav/bidrag/behandling/transformers/Dtomapper.kt index 57f594490..101ba1030 100644 --- a/src/main/kotlin/no/nav/bidrag/behandling/transformers/Dtomapper.kt +++ b/src/main/kotlin/no/nav/bidrag/behandling/transformers/Dtomapper.kt @@ -37,11 +37,11 @@ import no.nav.bidrag.behandling.dto.v2.boforhold.HusstandsmedlemDtoV2 import no.nav.bidrag.behandling.dto.v2.boforhold.OppdatereBoforholdResponse import no.nav.bidrag.behandling.dto.v2.boforhold.egetBarnErEnesteVoksenIHusstanden import no.nav.bidrag.behandling.dto.v2.gebyr.validerGebyr +import no.nav.bidrag.behandling.dto.v2.underhold.BeregnetUnderholdskostnad import no.nav.bidrag.behandling.dto.v2.underhold.DatoperiodeDto import no.nav.bidrag.behandling.dto.v2.underhold.FaktiskTilsynsutgiftDto import no.nav.bidrag.behandling.dto.v2.underhold.TilleggsstønadDto import no.nav.bidrag.behandling.dto.v2.underhold.UnderholdDto -import no.nav.bidrag.behandling.dto.v2.underhold.UnderholdskostnadDto import no.nav.bidrag.behandling.dto.v2.utgift.OppdatereUtgiftResponse import no.nav.bidrag.behandling.objectmapper import no.nav.bidrag.behandling.service.NotatService @@ -179,17 +179,19 @@ class Dtomapper( gjelderBarn = this.person.tilPersoninfoDto(rolleSøknadsbarn), faktiskTilsynsutgift = this.faktiskeTilsynsutgifter.sortedBy { it.fom }.tilFaktiskeTilsynsutgiftDtos(), stønadTilBarnetilsyn = - rolleSøknadsbarn?.let { - this.barnetilsyn - .sortedBy { it.fom } - .toSet() - .tilStønadTilBarnetilsynDtos() - } - ?: emptySet(), - tilleggsstønad = - rolleSøknadsbarn?.let { this.tilleggsstønad.sortedBy { it.fom }.tilTilleggsstønadDtos() } - ?: emptySet(), - underholdskostnad = rolleSøknadsbarn?.let { this.behandling.tilBeregnetUnderholdskostnad() } ?: emptySet(), + this.barnetilsyn + .sortedBy { it.fom } + .toSet() + .tilStønadTilBarnetilsynDtos(), + tilleggsstønad = this.tilleggsstønad.sortedBy { it.fom }.tilTilleggsstønadDtos(), + underholdskostnad = + this.behandling + .tilBeregnetUnderholdskostnad() + .perioderForBarn(person), + beregnetUnderholdskostnad = + this.behandling + .tilBeregnetUnderholdskostnad() + .perioderForBarn(person), begrunnelse = NotatService.henteUnderholdsnotat( this.behandling, @@ -198,18 +200,41 @@ class Dtomapper( ) } - private fun Behandling.tilBeregnetUnderholdskostnad(): Set { - // TODO: Beregning støtter per nå kun ett søknadsbarn. Skal støtte flere søknadsbarn i fremtiden. - val grunnlag = - vedtakGrunnlagMapper.byggGrunnlagForBeregning( - this, - this.søknadsbarn.first(), - ) + fun Set.perioderForBarn(person: Person) = + find { bu -> + bu.gjelderBarn.ident?.verdi == person.ident + }?.perioder ?: emptySet() + + fun Behandling.tilBeregnetUnderholdskostnad(): Set = + this.søknadsbarn + .map { + val grunnlag = + vedtakGrunnlagMapper.byggGrunnlagForBeregning( + this, + it, + ) + + val underholdBeregning = beregnBarnebidragApi.beregnNettoTilsynsutgiftOgUnderholdskostnad(grunnlag) + BeregnetUnderholdskostnad( + it.tilPersoninfoDto(), + underholdBeregning + .finnAlleDelberegningUnderholdskostnad() + .tilUnderholdskostnadDto(underholdBeregning), + ) + }.toSet() + + private fun Rolle.tilPersoninfoDto(): PersoninfoDto { + val personinfo = + this.ident?.let { vedtakGrunnlagMapper.mapper.personService.hentPerson(it) } - val underholdBeregning = beregnBarnebidragApi.beregnNettoTilsynsutgiftOgUnderholdskostnad(grunnlag) - return underholdBeregning - .finnAlleDelberegningUnderholdskostnad() - .tilUnderholdskostnadDto(underholdBeregning) + return PersoninfoDto( + id = this.id, + ident = ident?.let { Personident(it) } ?: this.ident?.let { Personident(it) }, + navn = personinfo?.navn ?: this.navn, + fødselsdato = personinfo?.fødselsdato ?: this.fødselsdato, + kilde = ident?.let { Kilde.OFFENTLIG } ?: Kilde.MANUELL, + medIBehandlingen = ident != null, + ) } private fun Person.tilPersoninfoDto(rolle: Rolle?): PersoninfoDto { diff --git a/src/main/kotlin/no/nav/bidrag/behandling/transformers/behandling/BehandlingDtoMapping.kt b/src/main/kotlin/no/nav/bidrag/behandling/transformers/behandling/BehandlingDtoMapping.kt index 41bc1aa14..6fb410b4b 100644 --- a/src/main/kotlin/no/nav/bidrag/behandling/transformers/behandling/BehandlingDtoMapping.kt +++ b/src/main/kotlin/no/nav/bidrag/behandling/transformers/behandling/BehandlingDtoMapping.kt @@ -578,6 +578,7 @@ fun Behandling.tilKanBehandlesINyLøsningRequest() = stønadstype = stonadstype, saksnummer = saksnummer, vedtakstype = vedtakstype, + søknadstype = søknadstype, harReferanseTilAnnenBehandling = soknadRefId != null, roller = roller.map { diff --git a/src/main/kotlin/no/nav/bidrag/behandling/transformers/vedtak/mapping/fravedtak/VedtakTilBehandlingMapping.kt b/src/main/kotlin/no/nav/bidrag/behandling/transformers/vedtak/mapping/fravedtak/VedtakTilBehandlingMapping.kt index 39233fcd3..744495e38 100644 --- a/src/main/kotlin/no/nav/bidrag/behandling/transformers/vedtak/mapping/fravedtak/VedtakTilBehandlingMapping.kt +++ b/src/main/kotlin/no/nav/bidrag/behandling/transformers/vedtak/mapping/fravedtak/VedtakTilBehandlingMapping.kt @@ -25,6 +25,7 @@ import no.nav.bidrag.behandling.transformers.utgift.tilDto import no.nav.bidrag.commons.security.utils.TokenUtils import no.nav.bidrag.commons.service.organisasjon.SaksbehandlernavnProvider import no.nav.bidrag.domene.enums.barnetilsyn.Skolealder +import no.nav.bidrag.domene.enums.behandling.BisysSøknadstype import no.nav.bidrag.domene.enums.behandling.TypeBehandling import no.nav.bidrag.domene.enums.beregning.Resultatkode import no.nav.bidrag.domene.enums.diverse.Kilde @@ -82,6 +83,7 @@ class VedtakTilBehandlingMapping( enhet: String? = null, opprinneligVedtakstidspunkt: Set = emptySet(), opprinneligVedtakstype: Vedtakstype? = null, + søknadstype: BisysSøknadstype? = null, ): Behandling { val opprettetAv = if (lesemodus) { @@ -102,6 +104,7 @@ class VedtakTilBehandlingMapping( val behandling = Behandling( id = if (lesemodus) 1 else null, + søknadstype = søknadstype, vedtakstype = vedtakType ?: type, opprinneligVedtakstype = opprinneligVedtakstype, virkningstidspunkt = virkningstidspunkt ?: hentSøknad().søktFraDato, diff --git a/src/main/resources/db/migration/V2.36.0__table_behandling_add_column_soknadstype.sql b/src/main/resources/db/migration/V2.36.0__table_behandling_add_column_soknadstype.sql new file mode 100644 index 000000000..0ae4dc7d6 --- /dev/null +++ b/src/main/resources/db/migration/V2.36.0__table_behandling_add_column_soknadstype.sql @@ -0,0 +1 @@ +alter table behandling add column if not exists søknadstype text; diff --git a/src/test/kotlin/no/nav/bidrag/behandling/controller/UnderholdControllerTest.kt b/src/test/kotlin/no/nav/bidrag/behandling/controller/UnderholdControllerTest.kt index e85063fd9..2f146dcba 100644 --- a/src/test/kotlin/no/nav/bidrag/behandling/controller/UnderholdControllerTest.kt +++ b/src/test/kotlin/no/nav/bidrag/behandling/controller/UnderholdControllerTest.kt @@ -18,8 +18,8 @@ import no.nav.bidrag.behandling.dto.v2.underhold.DatoperiodeDto import no.nav.bidrag.behandling.dto.v2.underhold.OppdatereBegrunnelseRequest import no.nav.bidrag.behandling.dto.v2.underhold.OppdatereFaktiskTilsynsutgiftRequest import no.nav.bidrag.behandling.dto.v2.underhold.OppdatereTilleggsstønadRequest -import no.nav.bidrag.behandling.dto.v2.underhold.OppdatereUnderholdRequest import no.nav.bidrag.behandling.dto.v2.underhold.OppdatereUnderholdResponse +import no.nav.bidrag.behandling.dto.v2.underhold.OpprettUnderholdskostnadBarnResponse import no.nav.bidrag.behandling.dto.v2.underhold.SletteUnderholdselement import no.nav.bidrag.behandling.dto.v2.underhold.StønadTilBarnetilsynDto import no.nav.bidrag.behandling.dto.v2.underhold.UnderholdDto @@ -76,16 +76,16 @@ class UnderholdControllerTest : KontrollerTestRunner() { "${rootUriV2()}/behandling/${behandling.id}/underhold/opprette", HttpMethod.POST, HttpEntity(request), - UnderholdDto::class.java, + OpprettUnderholdskostnadBarnResponse::class.java, ) // så assertSoftly(svar) { shouldNotBeNull() - statusCode shouldBe HttpStatus.CREATED + statusCode shouldBe HttpStatus.OK } - assertSoftly(svar.body) { + assertSoftly(svar.body!!.underholdskostnad) { shouldNotBeNull() id shouldBeGreaterThan 0L harTilsynsordning.shouldBeNull() @@ -95,7 +95,7 @@ class UnderholdControllerTest : KontrollerTestRunner() { tilleggsstønad.shouldBeEmpty() } - assertSoftly(svar.body!!.gjelderBarn) { + assertSoftly(svar.body!!.underholdskostnad.gjelderBarn) { id.shouldNotBeNull() navn shouldBe request.navn fødselsdato shouldBe request.fødselsdato @@ -143,7 +143,7 @@ class UnderholdControllerTest : KontrollerTestRunner() { "${rootUriV2()}/behandling/${behandling.id}/underhold/opprette", HttpMethod.POST, HttpEntity(request), - UnderholdDto::class.java, + OpprettUnderholdskostnadBarnResponse::class.java, ) // så @@ -191,7 +191,7 @@ class UnderholdControllerTest : KontrollerTestRunner() { // så svar.shouldNotBeNull() - svar.statusCode shouldBe HttpStatus.CREATED + svar.statusCode shouldBe HttpStatus.OK val oppdatertBehandling = behandlingRepository.findBehandlingById(lagretBehandling.id!!) oppdatertBehandling.shouldNotBeNull() @@ -231,7 +231,7 @@ class UnderholdControllerTest : KontrollerTestRunner() { // så svar.shouldNotBeNull() - svar.statusCode shouldBe HttpStatus.CREATED + svar.statusCode shouldBe HttpStatus.OK val oppdatertBehandling = behandlingRepository.findBehandlingById(lagretBehandling.id!!) oppdatertBehandling.shouldNotBeNull() @@ -250,45 +250,6 @@ class UnderholdControllerTest : KontrollerTestRunner() { } } - @Test - open fun `skal angi tilsynsordning og oppdatere begrunnelse`() { - // gitt - val behandling = - oppretteTestbehandling( - inkludereBp = true, - behandlingstype = TypeBehandling.BIDRAG, - ) - - testdataManager.lagreBehandlingNewTransaction(behandling) - val underholdsid = behandling.underholdskostnader.first().id!! - - val oppdatereUnderholdRequest = OppdatereUnderholdRequest(true, "En grundig begrunnelse") - - // hvis - val svar = - httpHeaderTestRestTemplate.exchange( - "${rootUriV2()}/behandling/${behandling.id}/underhold/$underholdsid/oppdatere", - HttpMethod.PUT, - HttpEntity(oppdatereUnderholdRequest), - UnderholdDto::class.java, - ) - - // så - assertSoftly(svar) { - statusCode shouldBe HttpStatus.CREATED - body.shouldNotBeNull() - body!!.id shouldBe underholdsid - body!!.harTilsynsordning shouldBe oppdatereUnderholdRequest.harTilsynsordning - body!!.begrunnelse shouldBe oppdatereUnderholdRequest.begrunnelse - } - - assertSoftly(underholdskostnadRepository.findById(underholdsid)) { - it.shouldNotBeNull() - it.get().harTilsynsordning.shouldNotBeNull() - it.get().harTilsynsordning shouldBe oppdatereUnderholdRequest.harTilsynsordning - } - } - @Test open fun `skal oppdatere stønad til barnetilsyn`() { // gitt @@ -319,7 +280,7 @@ class UnderholdControllerTest : KontrollerTestRunner() { // så assertSoftly(svar) { - statusCode shouldBe HttpStatus.CREATED + statusCode shouldBe HttpStatus.OK body.shouldNotBeNull() body!!.faktiskTilsynsutgift.shouldBeNull() body!!.tilleggsstønad.shouldBeNull() @@ -365,7 +326,7 @@ class UnderholdControllerTest : KontrollerTestRunner() { // så assertSoftly(svar) { - statusCode shouldBe HttpStatus.CREATED + statusCode shouldBe HttpStatus.OK body.shouldNotBeNull() body!!.stønadTilBarnetilsyn.shouldBeNull() body!!.tilleggsstønad.shouldBeNull() @@ -408,7 +369,7 @@ class UnderholdControllerTest : KontrollerTestRunner() { // så assertSoftly(svar) { - statusCode shouldBe HttpStatus.CREATED + statusCode shouldBe HttpStatus.OK body.shouldNotBeNull() body!!.stønadTilBarnetilsyn.shouldBeNull() body!!.faktiskTilsynsutgift.shouldBeNull() @@ -465,8 +426,8 @@ class UnderholdControllerTest : KontrollerTestRunner() { // så assertSoftly(svar) { shouldNotBeNull() - statusCode shouldBe HttpStatus.ACCEPTED - body.shouldBeNull() + statusCode shouldBe HttpStatus.OK + body.shouldNotBeNull() } val oppdatertBehandling = behandlingRepository.findBehandlingById(lagretBehandling.id!!).get() diff --git a/src/test/kotlin/no/nav/bidrag/behandling/controller/behandling/BehandlingControllerTest.kt b/src/test/kotlin/no/nav/bidrag/behandling/controller/behandling/BehandlingControllerTest.kt index daf909050..4e4eb2ad8 100644 --- a/src/test/kotlin/no/nav/bidrag/behandling/controller/behandling/BehandlingControllerTest.kt +++ b/src/test/kotlin/no/nav/bidrag/behandling/controller/behandling/BehandlingControllerTest.kt @@ -6,6 +6,7 @@ import no.nav.bidrag.behandling.database.repository.GrunnlagRepository import no.nav.bidrag.behandling.dto.v1.behandling.OpprettBehandlingRequest import no.nav.bidrag.behandling.dto.v1.behandling.OpprettRolleDto import no.nav.bidrag.behandling.utils.testdata.SAKSNUMMER +import no.nav.bidrag.domene.enums.behandling.BisysSøknadstype import no.nav.bidrag.domene.enums.rolle.SøktAvType import no.nav.bidrag.domene.enums.vedtak.Stønadstype import no.nav.bidrag.domene.enums.vedtak.Vedtakstype @@ -28,7 +29,8 @@ class BehandlingControllerTest : KontrollerTestRunner() { søknadsid: Long = 100, ): OpprettBehandlingRequest = OpprettBehandlingRequest( - Vedtakstype.FASTSETTELSE, + søknadstype = BisysSøknadstype.SØKNAD, + vedtakstype = Vedtakstype.FASTSETTELSE, stønadstype = Stønadstype.FORSKUDD, søktFomDato = LocalDate.now().minusMonths(4), mottattdato = LocalDate.now(), diff --git a/src/test/kotlin/no/nav/bidrag/behandling/service/UnderholdServiceTest.kt b/src/test/kotlin/no/nav/bidrag/behandling/service/UnderholdServiceTest.kt index f17cca5f8..b9266728a 100644 --- a/src/test/kotlin/no/nav/bidrag/behandling/service/UnderholdServiceTest.kt +++ b/src/test/kotlin/no/nav/bidrag/behandling/service/UnderholdServiceTest.kt @@ -36,7 +36,6 @@ import no.nav.bidrag.behandling.dto.v2.underhold.DatoperiodeDto import no.nav.bidrag.behandling.dto.v2.underhold.OppdatereBegrunnelseRequest import no.nav.bidrag.behandling.dto.v2.underhold.OppdatereFaktiskTilsynsutgiftRequest import no.nav.bidrag.behandling.dto.v2.underhold.OppdatereTilleggsstønadRequest -import no.nav.bidrag.behandling.dto.v2.underhold.OppdatereUnderholdRequest import no.nav.bidrag.behandling.dto.v2.underhold.SletteUnderholdselement import no.nav.bidrag.behandling.dto.v2.underhold.StønadTilBarnetilsynDto import no.nav.bidrag.behandling.dto.v2.underhold.Underholdselement @@ -969,48 +968,6 @@ class UnderholdServiceTest { respons.shouldNotBeNull() } } - - @Nested - @DisplayName("Tester oppdatering av underhold ") - open inner class Underholdstest { - @Test - open fun `skal angi tilsynsordning og legge inn begrunnelse`() { - // gitt - val behandling = - oppretteTestbehandling( - setteDatabaseider = true, - inkludereBp = true, - behandlingstype = TypeBehandling.BIDRAG, - ) - - val barnIBehandling = behandling.søknadsbarn.first() - barnIBehandling.ident.shouldNotBeNull() - - val underholdskostnad = - behandling.underholdskostnader.find { - barnIBehandling.ident!! == it.barnetsRolleIBehandlingen?.ident - } - underholdskostnad.shouldNotBeNull() - - val request = - OppdatereUnderholdRequest( - harTilsynsordning = true, - begrunnelse = "Barmet går i SFO", - ) - - // hvis - val underholdDto = underholdService.oppdatereUnderhold(underholdskostnad, request) - - // så - assertSoftly(underholdDto) { - harTilsynsordning shouldBe request.harTilsynsordning - begrunnelse shouldBe request.begrunnelse - stønadTilBarnetilsyn.shouldBeEmpty() - faktiskTilsynsutgift.shouldBeEmpty() - tilleggsstønad.shouldBeEmpty() - } - } - } } @Nested diff --git a/src/test/kotlin/no/nav/bidrag/behandling/transformers/DtoMapperTest.kt b/src/test/kotlin/no/nav/bidrag/behandling/transformers/DtoMapperTest.kt index 9d34c2afa..1657b961a 100644 --- a/src/test/kotlin/no/nav/bidrag/behandling/transformers/DtoMapperTest.kt +++ b/src/test/kotlin/no/nav/bidrag/behandling/transformers/DtoMapperTest.kt @@ -27,10 +27,7 @@ import no.nav.bidrag.behandling.transformers.vedtak.mapping.tilvedtak.VedtakGrun import no.nav.bidrag.behandling.utils.testdata.TestdataManager import no.nav.bidrag.behandling.utils.testdata.oppretteArbeidsforhold import no.nav.bidrag.behandling.utils.testdata.oppretteTestbehandling -import no.nav.bidrag.behandling.utils.testdata.testdataBM -import no.nav.bidrag.behandling.utils.testdata.testdataBP import no.nav.bidrag.behandling.utils.testdata.testdataBarn1 -import no.nav.bidrag.behandling.utils.testdata.testdataBarn2 import no.nav.bidrag.beregn.barnebidrag.BeregnBarnebidragApi import no.nav.bidrag.beregn.barnebidrag.BeregnGebyrApi import no.nav.bidrag.beregn.barnebidrag.BeregnSamværsklasseApi @@ -57,6 +54,7 @@ import org.junit.jupiter.api.DisplayName import org.junit.jupiter.api.Nested import org.junit.jupiter.api.Test import org.springframework.beans.factory.annotation.Autowired +import stubPersonConsumer import java.time.LocalDate import java.time.LocalDateTime @@ -64,7 +62,6 @@ class DtoMapperTest : TestContainerRunner() { @Autowired lateinit var testdataManager: TestdataManager - @MockkBean lateinit var personService: PersonService @MockK @@ -90,6 +87,8 @@ class DtoMapperTest : TestContainerRunner() { @BeforeEach fun initMocks() { + stubSjablonProvider() + personService = PersonService(stubPersonConsumer()) grunnlagsmapper = BehandlingTilGrunnlagMappingV2(personService, BeregnSamværsklasseApi(stubSjablonService())) vedtakGrunnlagsmapper = VedtakGrunnlagMapper( @@ -460,15 +459,6 @@ class DtoMapperTest : TestContainerRunner() { ), ) - every { personService.hentPerson(testdataBarn1.ident) } returns - PersonDto( - ident = Personident(testdataBarn1.ident), - navn = testdataBarn1.navn, - fødselsdato = testdataBarn1.fødselsdato, - ) - - every { personService.hentNyesteIdent(any()) } returns Personident(testdataBarn1.ident) - // hvis val dto = dtomapper.tilUnderholdDto(behandling.underholdskostnader.first()) @@ -547,42 +537,6 @@ class DtoMapperTest : TestContainerRunner() { every { validerBehandlingService.kanBehandlesINyLøsning(any()) } returns null - every { personService.hentPerson(innhentetForRolle.personident!!.verdi) } returns - PersonDto( - ident = innhentetForRolle.personident!!, - navn = testdataBM.navn, - fødselsdato = testdataBM.fødselsdato, - ) - - every { personService.hentNyesteIdent(testdataBP.ident) } returns Personident(testdataBP.ident) - - every { personService.hentPerson(innhentetForRolle.personident!!.verdi) } returns - PersonDto( - ident = innhentetForRolle.personident!!, - navn = testdataBP.navn, - fødselsdato = testdataBP.fødselsdato, - ) - - every { personService.hentNyesteIdent(testdataBM.ident) } returns Personident(testdataBM.ident) - - every { personService.hentPerson(testdataBarn1.ident) } returns - PersonDto( - ident = Personident(testdataBarn1.ident), - navn = testdataBarn1.navn, - fødselsdato = testdataBarn1.fødselsdato, - ) - - every { personService.hentNyesteIdent(testdataBarn1.ident) } returns Personident(testdataBarn1.ident) - - every { personService.hentPerson(testdataBarn2.ident) } returns - PersonDto( - ident = Personident(testdataBarn1.ident), - navn = testdataBarn1.navn, - fødselsdato = testdataBarn1.fødselsdato, - ) - - every { personService.hentNyesteIdent(testdataBarn2.ident) } returns Personident(testdataBarn2.ident) - // hvis val dto = dtomapper.tilDto(behandling) diff --git a/src/test/kotlin/no/nav/bidrag/behandling/transformers/ValideringOpprettBehandlingTest.kt b/src/test/kotlin/no/nav/bidrag/behandling/transformers/ValideringOpprettBehandlingTest.kt index 123138fe5..bae4c6514 100644 --- a/src/test/kotlin/no/nav/bidrag/behandling/transformers/ValideringOpprettBehandlingTest.kt +++ b/src/test/kotlin/no/nav/bidrag/behandling/transformers/ValideringOpprettBehandlingTest.kt @@ -22,7 +22,7 @@ import java.time.LocalDate class ValideringOpprettBehandlingTest { private fun opprettOpprettBehandlingRequest() = OpprettBehandlingRequest( - Vedtakstype.FASTSETTELSE, + vedtakstype = Vedtakstype.FASTSETTELSE, engangsbeløpstype = Engangsbeløptype.SÆRBIDRAG, søktFomDato = LocalDate.now().minusMonths(4), mottattdato = LocalDate.now(),