diff --git a/apps/etterlatte-behandling/src/main/kotlin/behandling/BehandlingFactory.kt b/apps/etterlatte-behandling/src/main/kotlin/behandling/BehandlingFactory.kt index fb2b50a9c4..0de09aef06 100644 --- a/apps/etterlatte-behandling/src/main/kotlin/behandling/BehandlingFactory.kt +++ b/apps/etterlatte-behandling/src/main/kotlin/behandling/BehandlingFactory.kt @@ -186,6 +186,17 @@ class BehandlingFactory( ): BehandlingOgOppgave { logger.info("Starter behandling i sak $sakId") val prosessType = Prosesstype.MANUELL + val harBehandlingUnderbehandling = + request.alleBehandlingerISak.filter { behandling -> + BehandlingStatus.underBehandling().find { it == behandling.status } != null + } + if (harBehandlingUnderbehandling.isNotEmpty()) { + throw UgyldigForespoerselException( + "HAR_AAPEN_BEHANDLING", + "Sak $sakId har allerede en åpen " + + "behandling. Denne må avbrytes eller ferdigbehandles før ny behandling kan opprettes.", + ) + } return if (request.harIverksattBehandling()) { if (kilde == Vedtaksloesning.PESYS || kilde == Vedtaksloesning.GJENOPPRETTA) { throw ManuellMigreringHarEksisterendeIverksattBehandling() @@ -210,17 +221,6 @@ class BehandlingFactory( ).oppdater() .let { BehandlingOgOppgave(it, null) } } else { - val harBehandlingUnderbehandling = - request.alleBehandlingerISak.filter { behandling -> - BehandlingStatus.underBehandling().find { it == behandling.status } != null - } - if (harBehandlingUnderbehandling.isNotEmpty()) { - throw UgyldigForespoerselException( - "HAR_AAPEN_BEHANDLING", - "Sak $sakId har allerede en åpen " + - "behandling. Denne må avbrytes eller ferdigbehandles før ny behandling kan opprettes.", - ) - } val behandling = opprettFoerstegangsbehandling( harBehandlingUnderbehandling, @@ -460,10 +460,10 @@ class BehandlingFactory( prosessType: Prosesstype, ): Behandling { if (behandlingerUnderBehandling.isNotEmpty()) { - behandlingerUnderBehandling.forEach { - behandlingDao.lagreStatus(it.id, BehandlingStatus.AVBRUTT, LocalDateTime.now()) - oppgaveService.avbrytAapneOppgaverMedReferanse(it.id.toString()) - } + throw InternfeilException( + "Det skal ikke være mulig å komme til opprettelse av førstegangsbehandling med " + + "åpne behandlinger i saken.", + ) } return OpprettBehandling(