Skip to content

Commit

Permalink
Merge pull request #642 from navikt/feature/utsett_innkreving
Browse files Browse the repository at this point in the history
* Fatte vedtak utsett innkreving

* Fatte vedtak utsett innkreving

* Fatte vedtak utsett innkreving
  • Loading branch information
ugur93 authored Dec 11, 2024
2 parents e244ce3 + 4451e0e commit 79c77a0
Show file tree
Hide file tree
Showing 6 changed files with 55 additions and 26 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,11 @@ import io.github.oshai.kotlinlogging.KotlinLogging
import io.swagger.v3.oas.annotations.Operation
import io.swagger.v3.oas.annotations.security.SecurityRequirement
import no.nav.bidrag.behandling.controller.v2.BehandlingRestControllerV2
import no.nav.bidrag.behandling.dto.v2.vedtak.FatteVedtakRequestDto
import no.nav.bidrag.behandling.service.VedtakService
import org.springframework.web.bind.annotation.PathVariable
import org.springframework.web.bind.annotation.PostMapping
import org.springframework.web.bind.annotation.RequestBody

private val LOGGER = KotlinLogging.logger {}

Expand All @@ -22,8 +24,9 @@ class VedtakController(
)
fun fatteVedtak(
@PathVariable behandlingsid: Long,
@RequestBody(required = false) request: FatteVedtakRequestDto? = null,
): Int {
LOGGER.info { "Fatter vedtak for $behandlingsid" }
return vedtakService.fatteVedtak(behandlingsid)
return vedtakService.fatteVedtak(behandlingsid, request)
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package no.nav.bidrag.behandling.dto.v2.vedtak

data class FatteVedtakRequestDto(
val innkrevingUtsattAntallDager: Long? = null,
)
34 changes: 24 additions & 10 deletions src/main/kotlin/no/nav/bidrag/behandling/service/VedtakService.kt
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import no.nav.bidrag.behandling.dto.v1.behandling.OpprettBehandlingResponse
import no.nav.bidrag.behandling.dto.v1.beregning.ResultatBeregningBarnDto
import no.nav.bidrag.behandling.dto.v1.beregning.ResultatBidragberegningDto
import no.nav.bidrag.behandling.dto.v1.beregning.ResultatSærbidragsberegningDto
import no.nav.bidrag.behandling.dto.v2.vedtak.FatteVedtakRequestDto
import no.nav.bidrag.behandling.toggleFatteVedtakName
import no.nav.bidrag.behandling.transformers.behandling.tilKanBehandlesINyLøsningRequest
import no.nav.bidrag.behandling.transformers.beregning.ValiderBeregning
Expand All @@ -27,6 +28,7 @@ import org.springframework.http.HttpStatus
import org.springframework.stereotype.Service
import org.springframework.transaction.annotation.Transactional
import org.springframework.web.client.HttpClientErrorException
import java.time.LocalDate
import java.time.LocalDateTime

private val LOGGER = KotlinLogging.logger {}
Expand Down Expand Up @@ -157,13 +159,16 @@ class VedtakService(
return vedtakTilBehandlingMapping.run { vedtak.tilBeregningResultatSærbidrag() }
}

fun fatteVedtak(behandlingId: Long): Int {
fun fatteVedtak(
behandlingId: Long,
request: FatteVedtakRequestDto? = null,
): Int {
val behandling = behandlingService.hentBehandlingById(behandlingId)
behandling.validerKanFatteVedtak()
return when (behandling.tilType()) {
TypeBehandling.FORSKUDD -> fatteVedtakForskudd(behandling)
TypeBehandling.SÆRBIDRAG -> fatteVedtakSærbidrag(behandling)
TypeBehandling.BIDRAG -> fatteVedtakBidrag(behandling)
TypeBehandling.BIDRAG -> fatteVedtakBidrag(behandling, request)
else -> throw HttpClientErrorException(
HttpStatus.BAD_REQUEST,
"Fatte vedtak av behandlingstype ${behandling.tilType()} støttes ikke",
Expand Down Expand Up @@ -232,7 +237,10 @@ class VedtakService(
return response.vedtaksid
}

fun fatteVedtakBidrag(behandling: Behandling): Int {
fun fatteVedtakBidrag(
behandling: Behandling,
request: FatteVedtakRequestDto?,
): Int {
val isEnabled = unleashInstance.isEnabled(toggleFatteVedtakName, false)
if (isEnabled.not()) {
throw HttpClientErrorException(
Expand All @@ -243,13 +251,19 @@ class VedtakService(
vedtakValiderBehandlingService.validerKanBehandlesINyLøsning(behandling.tilKanBehandlesINyLøsningRequest())
validering.run { behandling.validerForBeregningBidrag() }
val request =
behandlingTilVedtakMapping.run {
if (behandling.avslag != null) {
behandling.byggOpprettVedtakRequestAvslagForBidrag()
} else {
behandling.byggOpprettVedtakRequestBidrag()
}
}
behandlingTilVedtakMapping
.run {
if (behandling.avslag != null) {
behandling.byggOpprettVedtakRequestAvslagForBidrag()
} else {
behandling.byggOpprettVedtakRequestBidrag()
}
}.copy(
innkrevingUtsattTilDato =
request?.innkrevingUtsattAntallDager?.let {
LocalDate.now().plusDays(it)
},
)

request.validerGrunnlagsreferanser()
secureLogger.info { "Fatter vedtak for behandling ${behandling.id} med forespørsel $request" }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -154,7 +154,12 @@ private fun Behandling.overskriveBearbeidaBarnetilsynsgrunnlag(
)
}

grunnlagSomSkalOverskrives.find { it.gjelder == gjelder }?.let { it.data = tilJson(perioder) }
grunnlagSomSkalOverskrives.find { it.gjelder == gjelder }?.let {
it.data = tilJson(perioder)
if (overskriveAktiverte) {
it.aktiv = LocalDateTime.now()
}
}
}

fun Behandling.aktivereBarnetilsynHvisIngenEndringerMåAksepteres() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@ class VedtakControllerTest : KontrollerTestRunner() {
httpHeaderTestRestTemplate.exchange(
"${rootUriV2()}/behandling/fattevedtak/${behandling.id}",
HttpMethod.POST,
HttpEntity(""),
null,
Int::class.java,
)

Expand Down Expand Up @@ -153,7 +153,7 @@ class VedtakControllerTest : KontrollerTestRunner() {
httpHeaderTestRestTemplate.exchange(
"${rootUriV2()}/behandling/fattevedtak/${behandling.id}",
HttpMethod.POST,
HttpEntity(""),
null,
Int::class.java,
)

Expand Down Expand Up @@ -247,7 +247,7 @@ class VedtakControllerTest : KontrollerTestRunner() {
httpHeaderTestRestTemplate.exchange(
"${rootUriV2()}/behandling/fattevedtak/${behandling.id}",
HttpMethod.POST,
HttpEntity(""),
null,
BeregningValideringsfeil::class.java,
)

Expand Down Expand Up @@ -282,7 +282,7 @@ class VedtakControllerTest : KontrollerTestRunner() {
httpHeaderTestRestTemplate.exchange(
"${rootUriV2()}/behandling/fattevedtak/${behandling.id}",
HttpMethod.POST,
HttpEntity(""),
null,
BeregningValideringsfeil::class.java,
)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ import io.mockk.verify
import no.nav.bidrag.behandling.database.datamodell.Behandling
import no.nav.bidrag.behandling.database.datamodell.Inntekt
import no.nav.bidrag.behandling.database.datamodell.RolleManueltOverstyrtGebyr
import no.nav.bidrag.behandling.dto.v2.vedtak.FatteVedtakRequestDto
import no.nav.bidrag.behandling.service.NotatService.Companion.henteNotatinnhold
import no.nav.bidrag.behandling.transformers.grunnlag.tilGrunnlagsreferanse
import no.nav.bidrag.behandling.utils.harReferanseTilGrunnlag
Expand Down Expand Up @@ -166,15 +167,15 @@ class VedtakserviceBidragTest : CommonVedtakTilBehandlingTest() {
emptyList(),
)

vedtakService.fatteVedtak(behandling.id!!)
vedtakService.fatteVedtak(behandling.id!!, FatteVedtakRequestDto(innkrevingUtsattAntallDager = 3))

val opprettVedtakRequest = opprettVedtakSlot.captured

assertSoftly(opprettVedtakRequest) {
val request = opprettVedtakRequest
request.type shouldBe Vedtakstype.FASTSETTELSE
withClue("Grunnlagliste skal inneholde ${request.grunnlagListe.size} grunnlag") {
request.grunnlagListe shouldHaveSize 172
request.grunnlagListe shouldHaveSize 173
}
}

Expand Down Expand Up @@ -283,6 +284,7 @@ class VedtakserviceBidragTest : CommonVedtakTilBehandlingTest() {
validerNotater(behandling)
hentGrunnlagstyper(Grunnlagstype.DELBEREGNING_INNTEKTSBASERT_GEBYR) shouldHaveSize 2
hentGrunnlagstyper(Grunnlagstype.SLUTTBEREGNING_GEBYR) shouldHaveSize 2
hentGrunnlagstyper(Grunnlagstype.NOTAT) shouldHaveSize 6
hentGrunnlagstyper(Grunnlagstype.SJABLON_SJABLONTALL) shouldHaveSize 28
hentGrunnlagstyper(Grunnlagstype.SJABLON_BIDRAGSEVNE) shouldHaveSize 3
hentGrunnlagstyper(Grunnlagstype.SJABLON_MAKS_FRADRAG) shouldHaveSize 2
Expand Down Expand Up @@ -392,7 +394,7 @@ class VedtakserviceBidragTest : CommonVedtakTilBehandlingTest() {

behandling.bidragsmottaker!!.manueltOverstyrtGebyr = RolleManueltOverstyrtGebyr(true, false, "Begrunnelse")

vedtakService.fatteVedtak(behandling.id!!)
vedtakService.fatteVedtak(behandling.id!!, FatteVedtakRequestDto(innkrevingUtsattAntallDager = 3))

val opprettVedtakRequest = opprettVedtakSlot.captured

Expand Down Expand Up @@ -511,7 +513,7 @@ class VedtakserviceBidragTest : CommonVedtakTilBehandlingTest() {
behandling.bidragspliktig!!.harGebyrsøknad = false
behandling.søknadsbarn.first().innbetaltBeløp = BigDecimal(10000)

vedtakService.fatteVedtak(behandling.id!!)
vedtakService.fatteVedtak(behandling.id!!, FatteVedtakRequestDto(innkrevingUtsattAntallDager = 3))

val opprettVedtakRequest = opprettVedtakSlot.captured

Expand Down Expand Up @@ -578,7 +580,7 @@ class VedtakserviceBidragTest : CommonVedtakTilBehandlingTest() {
emptyList(),
)

vedtakService.fatteVedtak(behandling.id!!)
vedtakService.fatteVedtak(behandling.id!!, FatteVedtakRequestDto(innkrevingUtsattAntallDager = 3))

val opprettVedtakRequest = opprettVedtakSlot.captured

Expand Down Expand Up @@ -653,7 +655,7 @@ class VedtakserviceBidragTest : CommonVedtakTilBehandlingTest() {
emptyList(),
)

vedtakService.fatteVedtak(behandling.id!!)
vedtakService.fatteVedtak(behandling.id!!, FatteVedtakRequestDto(innkrevingUtsattAntallDager = 3))

val opprettVedtakRequest = opprettVedtakSlot.captured

Expand Down Expand Up @@ -741,7 +743,7 @@ class VedtakserviceBidragTest : CommonVedtakTilBehandlingTest() {
emptyList(),
)

vedtakService.fatteVedtak(behandling.id!!)
vedtakService.fatteVedtak(behandling.id!!, FatteVedtakRequestDto(innkrevingUtsattAntallDager = 3))

val opprettVedtakRequest = opprettVedtakSlot.captured

Expand Down Expand Up @@ -799,7 +801,7 @@ class VedtakserviceBidragTest : CommonVedtakTilBehandlingTest() {
emptyList(),
)

vedtakService.fatteVedtak(behandling.id!!)
vedtakService.fatteVedtak(behandling.id!!, FatteVedtakRequestDto(innkrevingUtsattAntallDager = 3))

val opprettVedtakRequest = opprettVedtakSlot.captured

Expand Down Expand Up @@ -934,7 +936,7 @@ class VedtakserviceBidragTest : CommonVedtakTilBehandlingTest() {
emptyList(),
)

vedtakService.fatteVedtak(behandling.id!!)
vedtakService.fatteVedtak(behandling.id!!, FatteVedtakRequestDto(innkrevingUtsattAntallDager = 3))

val opprettVedtakRequest = opprettVedtakSlot.captured

Expand Down Expand Up @@ -1016,7 +1018,7 @@ class VedtakserviceBidragTest : CommonVedtakTilBehandlingTest() {
emptyList(),
)

vedtakService.fatteVedtak(behandling.id!!)
vedtakService.fatteVedtak(behandling.id!!, FatteVedtakRequestDto(innkrevingUtsattAntallDager = 3))

val opprettVedtakRequest = opprettVedtakSlot.captured

Expand Down

0 comments on commit 79c77a0

Please sign in to comment.