Skip to content

Commit

Permalink
Gi saksbehandler valg ved ferdigstilt oppgave (#4562)
Browse files Browse the repository at this point in the history
  • Loading branch information
Watercolours authored Apr 19, 2024
1 parent 065a419 commit 56d1a02
Show file tree
Hide file tree
Showing 5 changed files with 55 additions and 38 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,14 @@ import { Alert, BodyLong, Button, Heading, Link } from '@navikt/ds-react'
import { useJournalfoeringOppgave } from '~components/person/journalfoeringsoppgave/useJournalfoeringOppgave'
import { FlexRow } from '~shared/styled'
import AvbrytBehandleJournalfoeringOppgave from '~components/person/journalfoeringsoppgave/AvbrytBehandleJournalfoeringOppgave'
import { useNavigate } from 'react-router-dom'
import { Navigate, useNavigate } from 'react-router-dom'
import { FormWrapper } from '~components/person/journalfoeringsoppgave/BehandleJournalfoeringOppgave'
import FerdigstillOppgaveModal from '~components/person/journalfoeringsoppgave/ferdigstilloppgave/FerdigstillOppgaveModal'
import { Journalstatus } from '~shared/types/Journalpost'
import { PersonOversiktFane } from '~components/person/Person'
import { ExternalLinkIcon } from '@navikt/aksel-icons'
import { erOppgaveRedigerbar } from '~shared/types/oppgave'
import React from 'react'

export default function FerdigstillOppgave() {
const { journalpost, oppgave } = useJournalfoeringOppgave()
Expand All @@ -16,9 +18,8 @@ export default function FerdigstillOppgave() {

const tilbake = () => navigate('../', { relative: 'path' })

if (!oppgave) {
tilbake()
return null
if (!oppgave || !erOppgaveRedigerbar(oppgave.status)) {
return <Navigate to="../" relative="path" />
}

const journalpostErFerdigstilt =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,14 +15,6 @@ export default function FerdigstillOppgaveModal({ oppgave }: { oppgave: OppgaveD

const [ferdigstillOppgaveStatus, apiFerdigstillOppgave] = useApiCall(ferdigstillOppgave)

const ferdigstill = () => {
apiFerdigstillOppgave(oppgave.id, () => {
setTimeout(() => {
navigate(`/`)
}, 5000)
})
}

return (
<>
<Button variant="primary" onClick={() => setOpen(true)}>
Expand All @@ -41,13 +33,30 @@ export default function FerdigstillOppgaveModal({ oppgave }: { oppgave: OppgaveD
</BodyLong>

{isSuccess(ferdigstillOppgaveStatus) ? (
<Alert variant="success">Oppgaven er nå ferdigstilt. Du blir straks sendt tilbake til oppgavelisten.</Alert>
<>
<Alert variant="success">Oppgaven er nå ferdigstilt!</Alert>

<br />

<FlexRow justify="center">
<Button variant="secondary" onClick={() => navigate('/')}>
Gå til oppgavelisten
</Button>
<Button variant="primary" onClick={() => navigate(`/person/${oppgave.fnr}`)}>
Gå til sakoversikten
</Button>
</FlexRow>
</>
) : (
<FlexRow justify="center">
<Button variant="secondary" onClick={() => setOpen(false)} disabled={isPending(ferdigstillOppgaveStatus)}>
Nei, avbryt
</Button>
<Button variant="primary" onClick={ferdigstill} loading={isPending(ferdigstillOppgaveStatus)}>
<Button
variant="primary"
onClick={() => apiFerdigstillOppgave(oppgave.id)}
loading={isPending(ferdigstillOppgaveStatus)}
>
Ja, ferdigstill
</Button>
</FlexRow>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import { NyBehandlingRequest } from '~shared/types/IDetaljertBehandling'
import { useNavigate } from 'react-router-dom'
import { FlexRow } from '~shared/styled'

import { isFailure, isPending, isSuccess } from '~shared/api/apiUtils'
import { isPending, isSuccess, mapFailure } from '~shared/api/apiUtils'
import { OppgaveDTO } from '~shared/types/oppgave'

interface ModalProps {
Expand All @@ -30,11 +30,7 @@ export default function FullfoerOppgaveModal({ oppgave, behandlingBehov }: Modal
mottattDato: behandlingBehov!!.mottattDato!!.replace('Z', ''),
},
() => {
apiFerdigstillOppgave(oppgave.id, () => {
setTimeout(() => {
navigate('/')
}, 5000)
})
apiFerdigstillOppgave(oppgave.id)
}
)
}
Expand All @@ -60,9 +56,20 @@ export default function FullfoerOppgaveModal({ oppgave, behandlingBehov }: Modal
</BodyLong>

{isSuccess(opprettBehandlingStatus) && isSuccess(ferdigstillOppgaveStatus) ? (
<Alert variant="success">
Behandling opprettet for bruker med fødselsnummer {oppgave.fnr}. Du blir straks sendt til oppgavebenken.
</Alert>
<>
<Alert variant="success">Behandling opprettet for bruker med fødselsnummer {oppgave.fnr}</Alert>

<br />

<FlexRow justify="center">
<Button variant="secondary" onClick={() => navigate('/')}>
Gå til oppgavelisten
</Button>
<Button variant="primary" onClick={() => navigate(`/person/${oppgave.fnr}`)}>
Gå til sakoversikten
</Button>
</FlexRow>
</>
) : (
<FlexRow justify="center">
<Button
Expand All @@ -81,16 +88,16 @@ export default function FullfoerOppgaveModal({ oppgave, behandlingBehov }: Modal
</Button>
</FlexRow>
)}
{isFailure(opprettBehandlingStatus) && (
{mapFailure(opprettBehandlingStatus, (error) => (
<Modal.Footer>
<Alert variant="error">Det oppsto en feil ved oppretting av behandlingen.</Alert>
<Alert variant="error">{error.detail || 'Det oppsto en feil ved oppretting av behandlingen.'}</Alert>
</Modal.Footer>
)}
{isFailure(ferdigstillOppgaveStatus) && (
))}
{mapFailure(ferdigstillOppgaveStatus, (error) => (
<Modal.Footer>
<Alert variant="error">Det oppsto en feil ved lukking av oppgaven.</Alert>
<Alert variant="error">{error.detail || 'Det oppsto en feil ved lukking av oppgaven'}</Alert>
</Modal.Footer>
)}
))}
</Modal.Body>
</Modal>
</>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ import { FormProvider, useForm } from 'react-hook-form'
import { ControlledDatoVelger } from '~shared/components/datoVelger/ControlledDatoVelger'
import { settNyBehandlingRequest } from '~store/reducers/JournalfoeringOppgaveReducer'
import { useAppDispatch } from '~store/Store'
import { erOppgaveRedigerbar } from '~shared/types/oppgave'

export interface NyBehandlingSkjema {
spraak: Spraak | null
Expand All @@ -33,7 +34,7 @@ export default function OpprettNyBehandling() {
const dispatch = useAppDispatch()
const navigate = useNavigate()

if (!oppgave) {
if (!oppgave || !erOppgaveRedigerbar(oppgave.status)) {
return <Navigate to="../" relative="path" />
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { Alert, Button, Detail, Heading, Tag } from '@navikt/ds-react'
import { useJournalfoeringOppgave } from '~components/person/journalfoeringsoppgave/useJournalfoeringOppgave'
import AvbrytBehandleJournalfoeringOppgave from '~components/person/journalfoeringsoppgave/AvbrytBehandleJournalfoeringOppgave'
import { useNavigate } from 'react-router-dom'
import { Navigate, useNavigate } from 'react-router-dom'
import { Info } from '~components/behandling/soeknadsoversikt/Info'
import { SakType } from '~shared/types/sak'
import { formaterSakstype, formaterSpraak, formaterStringDato } from '~utils/formattering'
Expand All @@ -11,6 +11,7 @@ import FullfoerOppgaveModal from '~components/person/journalfoeringsoppgave/nybe
import { FlexRow } from '~shared/styled'
import { gyldigBehandlingRequest } from '~components/person/journalfoeringsoppgave/nybehandling/validator'
import React from 'react'
import { erOppgaveRedigerbar } from '~shared/types/oppgave'

export default function OppsummeringOppgavebehandling() {
const { journalpost, oppgave, nyBehandlingRequest, sakMedBehandlinger } = useJournalfoeringOppgave()
Expand All @@ -19,13 +20,11 @@ export default function OppsummeringOppgavebehandling() {

const tilbake = () => navigate('../', { relative: 'path' })

if (
!journalpost ||
!nyBehandlingRequest ||
!oppgave ||
!sakMedBehandlinger ||
!gyldigBehandlingRequest(nyBehandlingRequest)
) {
if (!oppgave || !erOppgaveRedigerbar(oppgave?.status)) {
return <Navigate to="../" relative="path" />
}

if (!journalpost || !nyBehandlingRequest || !sakMedBehandlinger || !gyldigBehandlingRequest(nyBehandlingRequest)) {
return <Alert variant="error">Noe data i journalføringen eller behandlingen er feil</Alert>
}

Expand Down

0 comments on commit 56d1a02

Please sign in to comment.