Repository: navikt/familie-ba-sak
Pull request #5217: Opprett tilbakekrevingsvedtak når behandling settes på vent
Author: login: MagnusTonnessen
Created: 2025-04-08T06:23:05Z | Merged: 2025-04-09T11:14:41Z

### 💰 Hva skal gjøres, og hvorfor?

Favro: NAV-22552

Når en behandling settes på vent med årsak `AVVENT_SAMTYKKE_ULOVFESTET_MOTREGNING`, skal det opprettes et forenklet tilbakekrevingsvedtak for behandlingen, dersom det ikke allerede eksisterer et.

Fikser også noen små bugs og typos.

Funksjonalitet er togglet i frontend og i valideringsfunksjon i backend

### ✅ Checklist
_Har du husket alle punktene i listen?_
- [ ] Jeg har testet mine endringer i henhold til akseptansekriteriene 🕵️
- [ ] Jeg har config- eller sql-endringer. I så fall, husk manuell deploy til miljø for å verifisere endringene.
- [x] Jeg har skrevet tester. Hvis du ikke har skrevet tester, beskriv hvorfor under 👇



Diff:
diff --git "a/src/main/kotlin/no/nav/familie/ba/sak/kjerne/behandling/settp\303\245vent/SettP\303\245VentService.kt" "b/src/main/kotlin/no/nav/familie/ba/sak/kjerne/behandling/settp\303\245vent/SettP\303\245VentService.kt"
index 96ea7e223a0..01c802b3fdc 100644
--- "a/src/main/kotlin/no/nav/familie/ba/sak/kjerne/behandling/settp\303\245vent/SettP\303\245VentService.kt"
+++ "b/src/main/kotlin/no/nav/familie/ba/sak/kjerne/behandling/settp\303\245vent/SettP\303\245VentService.kt"
@@ -8,6 +8,7 @@ import no.nav.familie.ba.sak.integrasjoner.oppgave.OppgaveService
 import no.nav.familie.ba.sak.kjerne.behandling.BehandlingHentOgPersisterService
 import no.nav.familie.ba.sak.kjerne.behandling.domene.BehandlingStatus
 import no.nav.familie.ba.sak.kjerne.logg.LoggService
+import no.nav.familie.ba.sak.kjerne.vedtak.forenklettilbakekrevingsvedtak.ForenkletTilbakekrevingsvedtakService
 import no.nav.familie.ba.sak.statistikk.saksstatistikk.SaksstatistikkEventPublisher
 import org.slf4j.Logger
 import org.slf4j.LoggerFactory
@@ -23,6 +24,7 @@ class SettPåVentService(
     private val loggService: LoggService,
     private val oppgaveService: OppgaveService,
     private val unleashService: UnleashNextMedContextService,
+    private val forenkletTilbakekrevingsvedtakService: ForenkletTilbakekrevingsvedtakService,
 ) {
     fun finnAktivSettPåVentPåBehandling(behandlingId: Long): SettPåVent? = settPåVentRepository.findByBehandlingIdAndAktiv(behandlingId, true)
 
@@ -65,6 +67,10 @@ class SettPåVentService(
             nyFrist = frist,
         )
 
+        if (årsak == SettPåVentÅrsak.AVVENTER_SAMTYKKE_ULOVFESTET_MOTREGNING) {
+            forenkletTilbakekrevingsvedtakService.opprettForenkletTilbakekrevingsvedtak(behandlingId)
+        }
+
         return settPåVent
     }
 
diff --git "a/src/main/kotlin/no/nav/familie/ba/sak/kjerne/behandling/settp\303\245vent/SettP\303\245VentUtils.kt" "b/src/main/kotlin/no/nav/familie/ba/sak/kjerne/behandling/settp\303\245vent/SettP\303\245VentUtils.kt"
index 220ce2c1470..ea0acd70221 100644
--- "a/src/main/kotlin/no/nav/familie/ba/sak/kjerne/behandling/settp\303\245vent/SettP\303\245VentUtils.kt"
+++ "b/src/main/kotlin/no/nav/familie/ba/sak/kjerne/behandling/settp\303\245vent/SettP\303\245VentUtils.kt"
@@ -5,8 +5,8 @@ import no.nav.familie.ba.sak.common.FunksjonellFeil
 import no.nav.familie.ba.sak.kjerne.behandling.domene.Behandling
 import no.nav.familie.ba.sak.kjerne.behandling.domene.BehandlingStatus
 import no.nav.familie.ba.sak.kjerne.behandling.settpåvent.SettPåVentÅrsak.AVVENTER_SAMTYKKE_ULOVFESTET_MOTREGNING
-import no.nav.familie.tidslinje.diffIDager
 import java.time.LocalDate
+import java.time.temporal.ChronoUnit.DAYS
 
 const val DAGER_FRIST_FOR_AVVENTER_SAMTYKKE_ULOVFESTET_MOTREGNING = 5L
 
@@ -63,10 +63,10 @@ fun validerFristForUlovfestetMotregning(
     behandling: Behandling,
     frist: LocalDate,
 ) {
-    val fristDager = LocalDate.now().diffIDager(frist)
-    if (fristDager == DAGER_FRIST_FOR_AVVENTER_SAMTYKKE_ULOVFESTET_MOTREGNING) {
+    val fristDager = LocalDate.now().until(frist, DAYS)
+    if (fristDager != DAGER_FRIST_FOR_AVVENTER_SAMTYKKE_ULOVFESTET_MOTREGNING) {
         throw Feil(
-            "Uventet frist for SettPåVent med årsak $AVVENTER_SAMTYKKE_ULOVFESTET_MOTREGNING for behandling ${behandling.id}." +
+            "Uventet frist for SettPåVent med årsak $AVVENTER_SAMTYKKE_ULOVFESTET_MOTREGNING for behandling ${behandling.id}. " +
                 "Forventet frist er $DAGER_FRIST_FOR_AVVENTER_SAMTYKKE_ULOVFESTET_MOTREGNING dager, faktisk frist er $fristDager dager.",
         )
     }
diff --git a/src/main/kotlin/no/nav/familie/ba/sak/kjerne/vedtak/forenklettilbakekrevingsvedtak/ForenkletTilbakekrevingsvedtakBrevService.kt b/src/main/kotlin/no/nav/familie/ba/sak/kjerne/vedtak/forenklettilbakekrevingsvedtak/ForenkletTilbakekrevingsvedtakBrevService.kt
new file mode 100644
index 00000000000..138f7f1b0d3
--- /dev/null
+++ b/src/main/kotlin/no/nav/familie/ba/sak/kjerne/vedtak/forenklettilbakekrevingsvedtak/ForenkletTilbakekrevingsvedtakBrevService.kt
@@ -0,0 +1,29 @@
+package no.nav.familie.ba.sak.kjerne.vedtak.forenklettilbakekrevingsvedtak
+
+import no.nav.familie.ba.sak.common.FunksjonellFeil
+import no.nav.familie.ba.sak.kjerne.brev.DokumentGenereringService
+import org.springframework.stereotype.Service
+import org.springframework.transaction.annotation.Transactional
+
+@Service
+class ForenkletTilbakekrevingsvedtakBrevService(
+    private val forenkletTilbakekrevingsvedtakRepository: ForenkletTilbakekrevingsvedtakRepository,
+    private val dokumentGenereringService: DokumentGenereringService,
+) {
+    private fun hentForenkletTilbakekrevingsvedtakEllerKastFunksjonellFeil(behandlingId: Long): ForenkletTilbakekrevingsvedtak =
+        forenkletTilbakekrevingsvedtakRepository.finnForenkletTilbakekrevingsvedtakForBehandling(behandlingId)
+            ?: throw FunksjonellFeil("Forenklet tilbakekrevingsvedtak finnes ikke for behandling $behandlingId. Oppdater fanen og prøv igjen.")
+
+    @Transactional
+    fun opprettOgLagreForenkletTilbakekrevingsvedtakPdf(
+        behandlingId: Long,
+    ): ForenkletTilbakekrevingsvedtak {
+        val forenkletTilbakekrevingsvedtak = hentForenkletTilbakekrevingsvedtakEllerKastFunksjonellFeil(behandlingId)
+        val pdf = dokumentGenereringService.genererBrevForForenkletTilbakekrevingsvedtak(forenkletTilbakekrevingsvedtak)
+
+        forenkletTilbakekrevingsvedtak.vedtakPdf = pdf
+        forenkletTilbakekrevingsvedtakRepository.saveAndFlush(forenkletTilbakekrevingsvedtak)
+
+        return forenkletTilbakekrevingsvedtak
+    }
+}
diff --git a/src/main/kotlin/no/nav/familie/ba/sak/kjerne/vedtak/forenklettilbakekrevingsvedtak/ForenkletTilbakekrevingsvedtakController.kt b/src/main/kotlin/no/nav/familie/ba/sak/kjerne/vedtak/forenklettilbakekrevingsvedtak/ForenkletTilbakekrevingsvedtakController.kt
index ae3598a6148..bd224406173 100644
--- a/src/main/kotlin/no/nav/familie/ba/sak/kjerne/vedtak/forenklettilbakekrevingsvedtak/ForenkletTilbakekrevingsvedtakController.kt
+++ b/src/main/kotlin/no/nav/familie/ba/sak/kjerne/vedtak/forenklettilbakekrevingsvedtak/ForenkletTilbakekrevingsvedtakController.kt
@@ -29,6 +29,7 @@ import org.springframework.web.bind.annotation.RestController
 class ForenkletTilbakekrevingsvedtakController(
     val tilgangService: TilgangService,
     val forenkletTilbakekrevingsvedtakService: ForenkletTilbakekrevingsvedtakService,
+    val forenkletTilbakekrevingsvedtakBrevService: ForenkletTilbakekrevingsvedtakBrevService,
 ) {
     @GetMapping(
         produces = [MediaType.APPLICATION_JSON_VALUE],
@@ -85,9 +86,7 @@ class ForenkletTilbakekrevingsvedtakController(
         return ResponseEntity.ok(Ressurs.success(oppdatertForenkletTilbakekrevingsvedtak.tilRestForenkletTilbakekrevingsvedtak()))
     }
 
-    @DeleteMapping(
-        consumes = [MediaType.APPLICATION_JSON_VALUE],
-    )
+    @DeleteMapping
     fun slettForenkletTilbakekrevingsvedtak(
         @PathVariable behandlingId: Long,
     ): ResponseEntity<Ressurs<String>> {
@@ -104,7 +103,7 @@ class ForenkletTilbakekrevingsvedtakController(
 
     @Operation(summary = "Henter eksisterende forenklet tilbakekrevingsvedtak pdf.")
     @GetMapping(
-        produces = [MediaType.APPLICATION_PDF_VALUE],
+        produces = [MediaType.APPLICATION_JSON_VALUE],
         path = ["/pdf"],
     )
     fun hentForenkletTilbakekrevingsvedtakPdf(
@@ -124,7 +123,7 @@ class ForenkletTilbakekrevingsvedtakController(
 
     @Operation(summary = "Oppretter og henter forenklet tilbakekrevingsvedtak pdf.")
     @PostMapping(
-        produces = [MediaType.APPLICATION_PDF_VALUE],
+        produces = [MediaType.APPLICATION_JSON_VALUE],
         path = ["/pdf"],
     )
     fun opprettOgHentForenkletTilbakekrevingsvedtakPdf(
@@ -136,7 +135,7 @@ class ForenkletTilbakekrevingsvedtakController(
         )
 
         val forenkletTilbakekrevingsvedtakPdf =
-            forenkletTilbakekrevingsvedtakService.opprettOgLagreForenkletTilbakekrevingsvedtakPdf(behandlingId).vedtakPdf
+            forenkletTilbakekrevingsvedtakBrevService.opprettOgLagreForenkletTilbakekrevingsvedtakPdf(behandlingId).vedtakPdf
                 ?: throw Feil("Forenklet tilbakekrevingsvedtak pdf ble ikke opprettet for behandling $behandlingId.")
 
         return Ressurs.success(forenkletTilbakekrevingsvedtakPdf)
diff --git a/src/main/kotlin/no/nav/familie/ba/sak/kjerne/vedtak/forenklettilbakekrevingsvedtak/ForenkletTilbakekrevingsvedtakService.kt b/src/main/kotlin/no/nav/familie/ba/sak/kjerne/vedtak/forenklettilbakekrevingsvedtak/ForenkletTilbakekrevingsvedtakService.kt
index 6bbdcf8fe55..4e97a1f89bf 100644
--- a/src/main/kotlin/no/nav/familie/ba/sak/kjerne/vedtak/forenklettilbakekrevingsvedtak/ForenkletTilbakekrevingsvedtakService.kt
+++ b/src/main/kotlin/no/nav/familie/ba/sak/kjerne/vedtak/forenklettilbakekrevingsvedtak/ForenkletTilbakekrevingsvedtakService.kt
@@ -2,7 +2,6 @@ package no.nav.familie.ba.sak.kjerne.vedtak.forenklettilbakekrevingsvedtak
 
 import no.nav.familie.ba.sak.common.FunksjonellFeil
 import no.nav.familie.ba.sak.kjerne.behandling.BehandlingHentOgPersisterService
-import no.nav.familie.ba.sak.kjerne.brev.DokumentGenereringService
 import no.nav.familie.ba.sak.kjerne.logg.LoggService
 import org.springframework.stereotype.Service
 import org.springframework.transaction.annotation.Transactional
@@ -11,11 +10,14 @@ import org.springframework.transaction.annotation.Transactional
 class ForenkletTilbakekrevingsvedtakService(
     private val forenkletTilbakekrevingsvedtakRepository: ForenkletTilbakekrevingsvedtakRepository,
     private val loggService: LoggService,
-    private val dokumentGenereringService: DokumentGenereringService,
     private val behandlingService: BehandlingHentOgPersisterService,
 ) {
     fun finnForenkletTilbakekrevingsvedtak(behandlingId: Long) = forenkletTilbakekrevingsvedtakRepository.finnForenkletTilbakekrevingsvedtakForBehandling(behandlingId)
 
+    fun hentForenkletTilbakekrevingsvedtakEllerKastFunksjonellFeil(behandlingId: Long): ForenkletTilbakekrevingsvedtak =
+        finnForenkletTilbakekrevingsvedtak(behandlingId)
+            ?: throw FunksjonellFeil("Forenklet tilbakekrevingsvedtak finnes ikke for behandling $behandlingId. Oppdater fanen og prøv igjen.")
+
     @Transactional
     fun opprettForenkletTilbakekrevingsvedtak(behandlingId: Long) =
         finnForenkletTilbakekrevingsvedtak(behandlingId) ?: run {
@@ -67,23 +69,6 @@ class ForenkletTilbakekrevingsvedtakService(
             loggService.loggForenkletTilbakekrevingsvedtakSlettet(behandlingId)
         }
 
-    @Transactional
-    fun opprettOgLagreForenkletTilbakekrevingsvedtakPdf(
-        behandlingId: Long,
-    ): ForenkletTilbakekrevingsvedtak {
-        val forenkletTilbakekrevingsvedtak = hentForenkletTilbakekrevingsvedtakEllerKastFunksjonellFeil(behandlingId)
-        val pdf = dokumentGenereringService.genererBrevForForenkletTilbakekrevingsvedtak(forenkletTilbakekrevingsvedtak)
-
-        forenkletTilbakekrevingsvedtak.vedtakPdf = pdf
-        forenkletTilbakekrevingsvedtakRepository.saveAndFlush(forenkletTilbakekrevingsvedtak)
-
-        return forenkletTilbakekrevingsvedtak
-    }
-
-    fun hentForenkletTilbakekrevingsvedtakEllerKastFunksjonellFeil(behandlingId: Long): ForenkletTilbakekrevingsvedtak =
-        finnForenkletTilbakekrevingsvedtak(behandlingId)
-            ?: throw FunksjonellFeil("Forenklet tilbakekrevingsvedtak finnes ikke for behandling $behandlingId. Oppdater fanen og prøv igjen.")
-
     companion object {
         // TODO: Denne endres på senere når det er klart hva standard tekst skal være
         private const val STANDARD_TEKST_FORENKLET_TILBAKEKREVINGSVEDTAK = "TEKST"
diff --git a/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/kjerne/vedtak/forenklettilbakekrevingsvedtak/ForenkletTilbakekrevingsvedtakServiceTest.kt b/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/kjerne/vedtak/forenklettilbakekrevingsvedtak/ForenkletTilbakekrevingsvedtakServiceTest.kt
index 0ccd8343411..2a6a5a5a93b 100644
--- a/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/kjerne/vedtak/forenklettilbakekrevingsvedtak/ForenkletTilbakekrevingsvedtakServiceTest.kt
+++ b/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/kjerne/vedtak/forenklettilbakekrevingsvedtak/ForenkletTilbakekrevingsvedtakServiceTest.kt
@@ -25,10 +25,15 @@ class ForenkletTilbakekrevingsvedtakServiceTest {
         ForenkletTilbakekrevingsvedtakService(
             forenkletTilbakekrevingsvedtakRepository,
             loggService,
-            dokumentGenereringService,
             behandlingService,
         )
 
+    private val forenkletTilbakekrevingsvedtakBrevService =
+        ForenkletTilbakekrevingsvedtakBrevService(
+            forenkletTilbakekrevingsvedtakRepository,
+            dokumentGenereringService,
+        )
+
     @Nested
     inner class FinnForenkletTilbakekrevingsvedtakTest {
         @Test
@@ -228,7 +233,7 @@ class ForenkletTilbakekrevingsvedtakServiceTest {
             every { forenkletTilbakekrevingsvedtakRepository.saveAndFlush(forenkletTilbakekrevingsvedtak) } returnsArgument (0)
 
             // Act
-            val forenkletTilbakekrevingsvedtakMedPdf = forenkletTilbakekrevingsvedtakService.opprettOgLagreForenkletTilbakekrevingsvedtakPdf(behandling.id)
+            val forenkletTilbakekrevingsvedtakMedPdf = forenkletTilbakekrevingsvedtakBrevService.opprettOgLagreForenkletTilbakekrevingsvedtakPdf(behandling.id)
 
             // Assert
             assertThat(forenkletTilbakekrevingsvedtakMedPdf.vedtakPdf).isEqualTo(pdf)
diff --git a/src/test/integrasjonstester/kotlin/no/nav/familie/ba/sak/cucumber/mock/CucumberMock.kt b/src/test/integrasjonstester/kotlin/no/nav/familie/ba/sak/cucumber/mock/CucumberMock.kt
index e77e25f2d88..956efdc772f 100644
--- a/src/test/integrasjonstester/kotlin/no/nav/familie/ba/sak/cucumber/mock/CucumberMock.kt
+++ b/src/test/integrasjonstester/kotlin/no/nav/familie/ba/sak/cucumber/mock/CucumberMock.kt
@@ -465,6 +465,7 @@ class CucumberMock(
             loggService = loggService,
             oppgaveService = oppgaveService,
             unleashService = unleashNextMedContextService,
+            forenkletTilbakekrevingsvedtakService = mockk(relaxed = true),
         )
 
     val snikeIKøenService =
diff --git "a/src/test/integrasjonstester/kotlin/no/nav/familie/ba/sak/kjerne/behandling/settp\303\245vent/SettP\303\245VentServiceTest.kt" "b/src/test/integrasjonstester/kotlin/no/nav/familie/ba/sak/kjerne/behandling/settp\303\245vent/SettP\303\245VentServiceTest.kt"
index 0c9e40f29bb..ca9150f1b37 100644
--- "a/src/test/integrasjonstester/kotlin/no/nav/familie/ba/sak/kjerne/behandling/settp\303\245vent/SettP\303\245VentServiceTest.kt"
+++ "b/src/test/integrasjonstester/kotlin/no/nav/familie/ba/sak/kjerne/behandling/settp\303\245vent/SettP\303\245VentServiceTest.kt"
@@ -1,5 +1,6 @@
 package no.nav.familie.ba.sak.kjerne.behandling.settpåvent
 
+import no.nav.familie.ba.sak.common.Feil
 import no.nav.familie.ba.sak.common.FunksjonellFeil
 import no.nav.familie.ba.sak.config.AbstractSpringIntegrationTest
 import no.nav.familie.ba.sak.config.DatabaseCleanupService
@@ -22,6 +23,7 @@ import no.nav.familie.ba.sak.kjerne.grunnlag.personopplysninger.PersongrunnlagSe
 import no.nav.familie.ba.sak.kjerne.steg.StegService
 import no.nav.familie.ba.sak.kjerne.steg.StegType
 import no.nav.familie.ba.sak.kjerne.vedtak.VedtakService
+import no.nav.familie.ba.sak.kjerne.vedtak.forenklettilbakekrevingsvedtak.ForenkletTilbakekrevingsvedtakService
 import no.nav.familie.ba.sak.kjerne.vedtak.vedtaksperiode.VedtaksperiodeService
 import no.nav.familie.ba.sak.kjerne.vilkårsvurdering.VilkårsvurderingService
 import no.nav.familie.ba.sak.kjørbehandling.kjørStegprosessForFGB
@@ -33,6 +35,7 @@ import org.assertj.core.api.Assertions.catchThrowable
 import org.junit.jupiter.api.Assertions
 import org.junit.jupiter.api.BeforeAll
 import org.junit.jupiter.api.Tag
+import org.junit.jupiter.api.Test
 import org.junit.jupiter.api.assertDoesNotThrow
 import org.junit.jupiter.api.assertThrows
 import org.junit.jupiter.params.ParameterizedTest
@@ -57,8 +60,10 @@ class SettPåVentServiceTest(
     @Autowired private val taBehandlingerEtterVentefristAvVentTask: TaBehandlingerEtterVentefristAvVentTask,
     @Autowired private val brevmalService: BrevmalService,
     @Autowired private val snikeIKøenService: SnikeIKøenService,
+    @Autowired private val forenkletTilbakekrevingsvedtakService: ForenkletTilbakekrevingsvedtakService,
 ) : AbstractSpringIntegrationTest() {
     private val barnFnr = leggTilPersonInfo(randomBarnFnr())
+    private val frist = LocalDate.now().plusDays(DAGER_FRIST_FOR_AVVENTER_SAMTYKKE_ULOVFESTET_MOTREGNING)
 
     @BeforeAll
     fun init() {
@@ -69,7 +74,6 @@ class SettPåVentServiceTest(
     @EnumSource(value = SettPåVentÅrsak::class)
     fun `Kan sette en behandling på vent hvis statusen er utredes`(årsak: SettPåVentÅrsak) {
         val behandling = opprettBehandling()
-        val frist = LocalDate.now().plusDays(3)
 
         val settBehandlingPåVent =
             settPåVentService.settBehandlingPåVent(
@@ -90,7 +94,6 @@ class SettPåVentServiceTest(
     @EnumSource(value = SettPåVentÅrsak::class)
     fun `gjenopprett behandling skal sette status til utredes på nytt`(årsak: SettPåVentÅrsak) {
         val behandling = opprettBehandling()
-        val frist = LocalDate.now().plusDays(3)
 
         settPåVentService.settBehandlingPåVent(
             behandling.id,
@@ -141,7 +144,7 @@ class SettPåVentServiceTest(
         val behandlingId = behandlingEtterVilkårsvurderingSteg.id
         settPåVentService.settBehandlingPåVent(
             behandlingId = behandlingId,
-            frist = LocalDate.now().plusDays(21),
+            frist = frist,
             årsak = årsak,
         )
 
@@ -168,7 +171,7 @@ class SettPåVentServiceTest(
 
         settPåVentService.settBehandlingPåVent(
             behandlingId = behandlingEtterVilkårsvurderingSteg.id,
-            frist = LocalDate.now().plusDays(21),
+            frist = frist,
             årsak = årsak,
         )
 
@@ -233,25 +236,23 @@ class SettPåVentServiceTest(
 
         val behandlingId = behandlingEtterVilkårsvurderingSteg.id
 
-        val frist1 = LocalDate.now().plusDays(21)
-
         val settPåVent =
             settPåVentRepository.save(
                 SettPåVent(
                     behandling = behandlingEtterVilkårsvurderingSteg,
-                    frist = frist1,
+                    frist = frist,
                     årsak = årsak,
                 ),
             )
 
-        Assertions.assertEquals(frist1, settPåVentService.finnAktivSettPåVentPåBehandling(behandlingId)!!.frist)
+        Assertions.assertEquals(frist, settPåVentService.finnAktivSettPåVentPåBehandling(behandlingId)!!.frist)
 
-        val frist2 = LocalDate.now().plusDays(9)
+        val nyFrist = LocalDate.now().plusDays(9)
 
-        settPåVent.frist = frist2
+        settPåVent.frist = nyFrist
         settPåVentRepository.save(settPåVent)
 
-        Assertions.assertEquals(frist2, settPåVentService.finnAktivSettPåVentPåBehandling(behandlingId)!!.frist)
+        Assertions.assertEquals(nyFrist, settPåVentService.finnAktivSettPåVentPåBehandling(behandlingId)!!.frist)
     }
 
     @ParameterizedTest
@@ -286,7 +287,7 @@ class SettPåVentServiceTest(
         settPåVentService
             .settBehandlingPåVent(
                 behandlingId = behandling1.id,
-                frist = LocalDate.now(),
+                frist = frist,
                 årsak = årsak,
             ).let {
                 settPåVentRepository.save(it.copy(frist = LocalDate.now().minusDays(1)))
@@ -294,7 +295,7 @@ class SettPåVentServiceTest(
 
         settPåVentService.settBehandlingPåVent(
             behandlingId = behandling2.id,
-            frist = LocalDate.now().plusDays(21),
+            frist = frist,
             årsak = årsak,
         )
 
@@ -313,7 +314,6 @@ class SettPåVentServiceTest(
     @EnumSource(value = SettPåVentÅrsak::class)
     fun `Skal ikke kunne gjenoppta behandlingen hvis den er satt på maskinell vent`(årsak: SettPåVentÅrsak) {
         val behandling = opprettBehandling()
-        val frist = LocalDate.now().plusDays(3)
 
         settPåVentService.settBehandlingPåVent(
             behandling.id,
@@ -331,6 +331,58 @@ class SettPåVentServiceTest(
             .isEqualTo("Behandlingen er under maskinell vent, og kan gjenopptas senere.")
     }
 
+    @Test
+    fun `Skal kaste feil for årsak AVVENTER_SAMTYKKE_ULOVFESTET_MOTREGNING med annen frist enn 5 dager`() {
+        val behandling = opprettBehandling()
+
+        val feil =
+            assertThrows<Feil> {
+                settPåVentService.settBehandlingPåVent(
+                    behandlingId = behandling.id,
+                    frist = LocalDate.now().plusDays(1),
+                    årsak = SettPåVentÅrsak.AVVENTER_SAMTYKKE_ULOVFESTET_MOTREGNING,
+                )
+            }
+
+        assertThat(feil.message).isEqualTo("Uventet frist for SettPåVent med årsak AVVENTER_SAMTYKKE_ULOVFESTET_MOTREGNING for behandling ${behandling.id}. Forventet frist er 5 dager, faktisk frist er 1 dager.")
+    }
+
+    @Test
+    fun `Skal opprette forenklet tilbakekrevingsvedtak for behandlinger som settes på vent med årsak AVVENTER_SAMTYKKE_ULOVFESTET_MOTREGNING`() {
+        val behandling = opprettBehandling()
+
+        val settPåVent =
+            settPåVentService.settBehandlingPåVent(
+                behandlingId = behandling.id,
+                frist = frist,
+                årsak = SettPåVentÅrsak.AVVENTER_SAMTYKKE_ULOVFESTET_MOTREGNING,
+            )
+
+        assertThat(settPåVent.årsak).isEqualTo(SettPåVentÅrsak.AVVENTER_SAMTYKKE_ULOVFESTET_MOTREGNING)
+        assertThat(settPåVent.frist).isEqualTo(frist)
+
+        val forenkletTilbakekrevingsvedtak = forenkletTilbakekrevingsvedtakService.finnForenkletTilbakekrevingsvedtak(behandling.id)
+
+        assertThat(forenkletTilbakekrevingsvedtak).isNotNull()
+        assertThat(forenkletTilbakekrevingsvedtak!!.behandling.id).isEqualTo(behandling.id)
+    }
+
+    @ParameterizedTest
+    @EnumSource(value = SettPåVentÅrsak::class, mode = EnumSource.Mode.EXCLUDE, names = ["AVVENTER_SAMTYKKE_ULOVFESTET_MOTREGNING"])
+    fun `Skal ikke opprette forenklet tilbakekrevingsvedtak for behandlinger som settes på vent med annen årsak enn AVVENTER_SAMTYKKE_ULOVFESTET_MOTREGNING`(årsak: SettPåVentÅrsak) {
+        val behandling = opprettBehandling()
+
+        settPåVentService.settBehandlingPåVent(
+            behandlingId = behandling.id,
+            frist = frist,
+            årsak = årsak,
+        )
+
+        val forenkletTilbakekrevingsvedtak = forenkletTilbakekrevingsvedtakService.finnForenkletTilbakekrevingsvedtak(behandling.id)
+
+        assertThat(forenkletTilbakekrevingsvedtak).isNull()
+    }
+
     private fun opprettBehandling(status: BehandlingStatus = BehandlingStatus.UTREDES): Behandling {
         val fagsak = fagsakService.hentEllerOpprettFagsak(randomFnr())
         val behandling =


Reviews:
user: login: stigebil
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-08T09:53:53Z
user: login: MagnusTonnessen
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-08T14:16:05Z
user: login: stigebil
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-08T14:20:25Z
user: login: MagnusTonnessen
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-09T07:14:39Z
user: login: stigebil
state: APPROVED
author_association: CONTRIBUTOR
submitted_at: 2025-04-09T10:38:25Z

Review comments:
diff_hunk: @@ -142,8 +142,8 @@ class UtvidetBehandlingService(
             kompetanser = kompetanser.map { it.tilRestKompetanse() }.sortedByDescending { it.fom },
             totrinnskontroll = totrinnskontroll?.tilRestTotrinnskontroll(),
             aktivSettPåVent =
-                settPåVentService
-                    .finnAktivSettPåVentPåBehandling(behandlingId = behandlingId)
+                settPåVentRepository
+                    .findByBehandlingIdAndAktiv(behandlingId, true)
path: src/main/kotlin/no/nav/familie/ba/sak/kjerne/behandling/UtvidetBehandlingService.kt
user: login: stigebil
body: Hvorfor bruker du repometoden direkte?
created_at: 2025-04-08T09:53:53Z
author_association: CONTRIBUTOR
diff_hunk: @@ -142,8 +142,8 @@ class UtvidetBehandlingService(
             kompetanser = kompetanser.map { it.tilRestKompetanse() }.sortedByDescending { it.fom },
             totrinnskontroll = totrinnskontroll?.tilRestTotrinnskontroll(),
             aktivSettPåVent =
-                settPåVentService
-                    .finnAktivSettPåVentPåBehandling(behandlingId = behandlingId)
+                settPåVentRepository
+                    .findByBehandlingIdAndAktiv(behandlingId, true)
path: src/main/kotlin/no/nav/familie/ba/sak/kjerne/behandling/UtvidetBehandlingService.kt
user: login: MagnusTonnessen
body: På grunn av circular dependency 😭 Er det bedre å lage en egen service som bare henter?
created_at: 2025-04-08T14:16:04Z
author_association: CONTRIBUTOR
diff_hunk: @@ -142,8 +142,8 @@ class UtvidetBehandlingService(
             kompetanser = kompetanser.map { it.tilRestKompetanse() }.sortedByDescending { it.fom },
             totrinnskontroll = totrinnskontroll?.tilRestTotrinnskontroll(),
             aktivSettPåVent =
-                settPåVentService
-                    .finnAktivSettPåVentPåBehandling(behandlingId = behandlingId)
+                settPåVentRepository
+                    .findByBehandlingIdAndAktiv(behandlingId, true)
path: src/main/kotlin/no/nav/familie/ba/sak/kjerne/behandling/UtvidetBehandlingService.kt
user: login: stigebil
body: Circular dependency er jo et hint om feil i arkitekturen, men kan enkelt overstyres med å annotere injecten med `@Lazy` hvis man ikke kommer seg vekk fra den
created_at: 2025-04-08T14:20:25Z
author_association: CONTRIBUTOR
diff_hunk: @@ -142,8 +142,8 @@ class UtvidetBehandlingService(
             kompetanser = kompetanser.map { it.tilRestKompetanse() }.sortedByDescending { it.fom },
             totrinnskontroll = totrinnskontroll?.tilRestTotrinnskontroll(),
             aktivSettPåVent =
-                settPåVentService
-                    .finnAktivSettPåVentPåBehandling(behandlingId = behandlingId)
+                settPåVentRepository
+                    .findByBehandlingIdAndAktiv(behandlingId, true)
path: src/main/kotlin/no/nav/familie/ba/sak/kjerne/behandling/UtvidetBehandlingService.kt
user: login: MagnusTonnessen
body: Fikset det ved å lage en egen service som håndterer generering av brev
created_at: 2025-04-09T07:14:39Z
author_association: CONTRIBUTOR

PR comments:
user: login: stigebil
created_at: 2025-04-09T10:39:23Z
body: Ser ut som man må fikse SettPåVentServiceTest
author_association: CONTRIBUTOR
user: login: sonarqubecloud[bot]
created_at: 2025-04-09T10:47:30Z
body: ## [![Quality Gate Passed](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/QualityGateBadge/qg-passed-20px.png 'Quality Gate Passed')](https://sonarcloud.io/dashboard?id=navikt_familie-ba-sak&pullRequest=5217) **Quality Gate passed**  
Issues  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0 New issues](https://sonarcloud.io/project/issues?id=navikt_familie-ba-sak&pullRequest=5217&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/accepted-16px.png '') [0 Accepted issues](https://sonarcloud.io/project/issues?id=navikt_familie-ba-sak&pullRequest=5217&issueStatuses=ACCEPTED)

Measures  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=navikt_familie-ba-sak&pullRequest=5217&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [86.2% Coverage on New Code](https://sonarcloud.io/component_measures?id=navikt_familie-ba-sak&pullRequest=5217&metric=new_coverage&view=list)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0.0% Duplication on New Code](https://sonarcloud.io/component_measures?id=navikt_familie-ba-sak&pullRequest=5217&metric=new_duplicated_lines_density&view=list)  
  
[See analysis details on SonarQube Cloud](https://sonarcloud.io/dashboard?id=navikt_familie-ba-sak&pullRequest=5217)


author_association: NONE