Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Journalføring 2.0 journalpostinfo #2588

Merged
merged 4 commits into from
Oct 16, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 14 additions & 2 deletions src/frontend/App.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import { AppProvider, useApp } from './App/context/AppContext';
import { hentInnloggetBruker } from './App/api/saksbehandler';
import { ISaksbehandler } from './App/typer/saksbehandler';
import ErrorBoundary from './Felles/ErrorBoundary/ErrorBoundary';
import { TogglesProvider } from './App/context/TogglesContext';
import { TogglesProvider, useToggles } from './App/context/TogglesContext';
import { HeaderMedSøk } from './Felles/HeaderMedSøk/HeaderMedSøk';
import { BehandlingContainer } from './Komponenter/Behandling/BehandlingContainer';
import { OppgavebenkApp } from './Komponenter/Oppgavebenk/OppgavebenkApp';
Expand Down Expand Up @@ -36,6 +36,8 @@ import UlagretDataModal from './Felles/Visningskomponenter/UlagretDataModal';
import { loggBesøkEvent } from './App/utils/amplitude/amplitudeLoggEvents';
import { BesøkEvent } from './App/utils/amplitude/typer';
import Innloggingsfeilmelding from './Felles/Varsel/Innloggingsfeilmelding';
import { ToggleName } from './App/context/toggles';
import { JournalføringAppNy } from './Komponenter/Journalføring/Standard/JournalføringAppNy';

const Innhold = styled(BodyLong)`
margin-top: 2rem;
Expand Down Expand Up @@ -78,6 +80,7 @@ const AppRoutes: React.FC<{ innloggetSaksbehandler: ISaksbehandler }> = ({
innloggetSaksbehandler,
}) => {
const { autentisert } = useApp();
const { toggles } = useToggles();

const router = createBrowserRouter(
createRoutesFromElements(
Expand All @@ -92,7 +95,16 @@ const AppRoutes: React.FC<{ innloggetSaksbehandler: ISaksbehandler }> = ({
/>
<Route path="/behandling/:behandlingId/*" element={<BehandlingContainer />} />
<Route path="/oppgavebenk" element={<OppgavebenkApp />} />
<Route path="/journalfor" element={<JournalføringApp />} />
<Route
path="/journalfor"
element={
toggles[ToggleName.visNyJournalføring] ? (
<JournalføringAppNy />
) : (
<JournalføringApp />
)
}
/>
<Route path="/journalfor-klage" element={<JournalføringKlageApp />} />
<Route path="/admin/*" element={<AdminApp />} />
<Route path="/fagsak/:fagsakId" element={<FagsakTilFagsakPersonRedirect />} />
Expand Down
10 changes: 5 additions & 5 deletions src/frontend/App/hooks/useHentJournalpost.ts
Original file line number Diff line number Diff line change
@@ -1,20 +1,20 @@
import { byggHenterRessurs, byggTomRessurs, Ressurs } from '../typer/ressurs';
import { useApp } from '../context/AppContext';
import { useCallback, useMemo, useState } from 'react';
import { IJojurnalpostResponse } from '../typer/journalføring';
import { IJournalpostResponse } from '../typer/journalføring';
import { AxiosRequestConfig } from 'axios';
import { OrNothing } from './felles/useSorteringState';

interface HentJournalpostResponse {
hentJournalPost: () => void;
journalResponse: Ressurs<IJojurnalpostResponse>;
journalResponse: Ressurs<IJournalpostResponse>;
}

export const useHentJournalpost = (
journalpostIdParam: OrNothing<string>
): HentJournalpostResponse => {
const { axiosRequest } = useApp();
const [journalResponse, settJournalResponse] = useState<Ressurs<IJojurnalpostResponse>>(
const [journalResponse, settJournalResponse] = useState<Ressurs<IJournalpostResponse>>(
byggTomRessurs()
);

Expand All @@ -28,8 +28,8 @@ export const useHentJournalpost = (

const hentJournalPost = useCallback(() => {
settJournalResponse(byggHenterRessurs());
axiosRequest<IJojurnalpostResponse, null>(hentJournalpostConfig).then(
(res: Ressurs<IJojurnalpostResponse>) => settJournalResponse(res)
axiosRequest<IJournalpostResponse, null>(hentJournalpostConfig).then(
(res: Ressurs<IJournalpostResponse>) => settJournalResponse(res)
);
}, [axiosRequest, hentJournalpostConfig]);

Expand Down
29 changes: 28 additions & 1 deletion src/frontend/App/hooks/useJournalføringState.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,9 @@ import { useApp } from '../context/AppContext';
import { Behandlingstype } from '../typer/behandlingstype';
import { UstrukturertDokumentasjonType } from '../../Komponenter/Journalføring/Standard/VelgUstrukturertDokumentasjonType';
import { EVilkårsbehandleBarnValg } from '../typer/vilkårsbehandleBarnValg';
import { DokumentTitler } from '../typer/journalføring';
import { DokumentTitler, IJournalpostResponse } from '../typer/journalføring';
import { Journalføringsårsak } from '../../Komponenter/Journalføring/Felles/utils';
import { behandlingstemaTilStønadstype, Stønadstype } from '../typer/behandlingstema';

export interface BehandlingRequest {
behandlingsId?: string;
Expand Down Expand Up @@ -45,12 +47,27 @@ export interface JournalføringStateRequest {
settUstrukturertDokumentasjonType: Dispatch<SetStateAction<UstrukturertDokumentasjonType>>;
vilkårsbehandleNyeBarn: EVilkårsbehandleBarnValg;
settVilkårsbehandleNyeBarn: Dispatch<SetStateAction<EVilkårsbehandleBarnValg>>;
journalføringsårsak: Journalføringsårsak;
settJournalføringsårsak: Dispatch<SetStateAction<Journalføringsårsak>>;
stønadstype: Stønadstype | undefined;
settStønadstype: Dispatch<SetStateAction<Stønadstype | undefined>>;
}

export const useJournalføringState = (
journalResponse: IJournalpostResponse,
oppgaveId: string,
journalpostId: string
): JournalføringStateRequest => {
const utledJournalføringsårsak = () => {
if (journalResponse.harStrukturertSøknad) {
return Journalføringsårsak.DIGITAL_SØKNAD;
} else if (journalResponse.journalpost.tittel.includes('Ettersending')) {
return Journalføringsårsak.ETTERSENDING;
} else {
return Journalføringsårsak.IKKE_VALGT;
}
};

const { axiosRequest, innloggetSaksbehandler } = useApp();
const [fagsakId, settFagsakId] = useState<string>('');
const [behandling, settBehandling] = useState<BehandlingRequest>();
Expand All @@ -63,6 +80,12 @@ export const useJournalføringState = (
const [vilkårsbehandleNyeBarn, settVilkårsbehandleNyeBarn] = useState<EVilkårsbehandleBarnValg>(
EVilkårsbehandleBarnValg.IKKE_VALGT
);
const [journalføringsårsak, settJournalføringsårsak] = useState<Journalføringsårsak>(
utledJournalføringsårsak()
);
const [stønadstype, settStønadstype] = useState<Stønadstype | undefined>(
behandlingstemaTilStønadstype(journalResponse.journalpost.behandlingstema)
);

useEffect(() => {
settBehandling(undefined);
Expand Down Expand Up @@ -113,5 +136,9 @@ export const useJournalføringState = (
settUstrukturertDokumentasjonType,
vilkårsbehandleNyeBarn,
settVilkårsbehandleNyeBarn,
journalføringsårsak,
settJournalføringsårsak,
stønadstype,
settStønadstype,
};
};
15 changes: 15 additions & 0 deletions src/frontend/App/typer/behandlingstema.ts
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,21 @@ export const behandlingstemaTilStønadstype = (
}
};

// TODO: Usikker på denne - kan man få noe annet enn Enslig forsørger?
export const behandlingstemaTilTemaTekst = (
behandlingstema: Behandlingstema | undefined
): string | undefined => {
switch (behandlingstema) {
case 'ab0071':
case 'ab0177':
case 'ab0028':
case 'ab0007':
return 'Enslig forsørger';
default:
return undefined;
}
};

export const oppgaveBehandlingstypeTilTekst: Record<OppgaveBehandlingstype, string> = {
ae0161: 'Tilbakekreving',
ae0058: 'Klage',
Expand Down
2 changes: 1 addition & 1 deletion src/frontend/App/typer/journalføring.ts
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ export const avsenderMottakerIdTypeTilTekst: Record<AvsenderMottakerIdType, stri
NULL: '',
};

export interface IJojurnalpostResponse {
export interface IJournalpostResponse {
journalpost: IJournalpost;
personIdent: string;
navn: string;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ import {
lagreTilLocalStorage,
oppgaveRequestKey,
} from '../../Oppgavebenk/oppgavefilterStorage';
import { IJojurnalpostResponse, journalstatusTilTekst } from '../../../App/typer/journalføring';
import { IJournalpostResponse, journalstatusTilTekst } from '../../../App/typer/journalføring';
import { formaterIsoDatoTid } from '../../../App/utils/formatter';
import { UtledEllerVelgFagsak } from '../Felles/UtledEllerVelgFagsak';
import { AlertError, AlertWarning } from '../../../Felles/Visningskomponenter/Alerts';
Expand Down Expand Up @@ -73,7 +73,7 @@ export const JournalføringAdmin: React.FC = () => {
navigate('/oppgavebenk');
};

const sendInn = (journalpostResponse: IJojurnalpostResponse, fagsakId: string) => {
const sendInn = (journalpostResponse: IJournalpostResponse, fagsakId: string) => {
settFeilmelding('');
if (!nyBehandlingstype) {
settFeilmelding('Har ikke fått satt riktig behandlingstype');
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { IJojurnalpostResponse } from '../../../App/typer/journalføring';
import { IJournalpostResponse } from '../../../App/typer/journalføring';
import { JournalføringStateRequest } from '../../../App/hooks/useJournalføringState';
import {
harTittelForAlleDokumenter,
Expand All @@ -12,7 +12,7 @@ import { EVilkårsbehandleBarnValg } from '../../../App/typer/vilkårsbehandleBa
import { JournalføringKlageStateRequest } from '../../../App/hooks/useJournalføringKlageState';

export const validerJournalføringState = (
journalResponse: IJojurnalpostResponse,
journalResponse: IJournalpostResponse,
journalpostState: JournalføringStateRequest,
erAlleBehandlingerFerdigstilte: boolean
): string | undefined => {
Expand Down Expand Up @@ -46,7 +46,7 @@ export const validerJournalføringState = (
};

export const validerJournalføringKlageState = (
journalResponse: IJojurnalpostResponse,
journalResponse: IJournalpostResponse,
journalpostState: JournalføringKlageStateRequest
): string | undefined => {
if (!journalpostState.behandling) {
Expand All @@ -68,7 +68,7 @@ export const validerJournalføringKlageState = (
};

const erUstrukturertSøknadOgManglerDokumentasjonsType = (
journalResponse: IJojurnalpostResponse,
journalResponse: IJournalpostResponse,
ustrukturertDokumentasjonType: UstrukturertDokumentasjonType | undefined
) =>
!journalResponse.harStrukturertSøknad &&
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import { useQueryParams } from '../../../App/hooks/felles/useQueryParams';
import { JOURNALPOST_QUERY_STRING, OPPGAVEID_QUERY_STRING } from './utils';
import { useHentJournalpost } from '../../../App/hooks/useHentJournalpost';
import DataViewer from '../../../Felles/DataViewer/DataViewer';
import { IJojurnalpostResponse } from '../../../App/typer/journalføring';
import { IJournalpostResponse } from '../../../App/typer/journalføring';
import styled from 'styled-components';

export const SideLayout = styled.div``;
Expand Down Expand Up @@ -38,7 +38,7 @@ export const FlexKnapper = styled.div`

export interface JournalføringAppProps {
oppgaveId: string;
journalResponse: IJojurnalpostResponse;
journalResponse: IJournalpostResponse;
}

interface JournalføringAppSide {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { Heading } from '@navikt/ds-react';
import React from 'react';
import { IJojurnalpostResponse } from '../../../App/typer/journalføring';
import { IJournalpostResponse } from '../../../App/typer/journalføring';
import styled from 'styled-components';
import { lagJournalføringKlageUrl, lagJournalføringUrl } from './utils';
import { Link } from 'react-router-dom';
Expand All @@ -12,7 +12,7 @@ const Container = styled.div`
`;

const JournalpostTittelOgLenke: React.FC<{
journalResponse: IJojurnalpostResponse;
journalResponse: IJournalpostResponse;
oppgaveId: string;
fra: 'klage' | 'vanlig';
}> = ({ journalResponse, oppgaveId, fra }) => {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import React, { useEffect, useState } from 'react';
import { IJojurnalpostResponse } from '../../../App/typer/journalføring';
import { IJournalpostResponse } from '../../../App/typer/journalføring';
import {
behandlingstemaTilStønadstype,
Stønadstype,
Expand All @@ -16,7 +16,7 @@ const DivMedBottomPadding = styled.div`
`;

export const UtledEllerVelgFagsak: React.FC<{
journalResponse: IJojurnalpostResponse;
journalResponse: IJournalpostResponse;
hentFagsak: (personIdent: string, stønadstype: Stønadstype) => void;
}> = ({ journalResponse, hentFagsak }) => {
{
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { IJojurnalpostResponse } from '../../../App/typer/journalføring';
import { IJournalpostResponse } from '../../../App/typer/journalføring';
import {
behandlingstemaTilStønadstype,
Stønadstype,
Expand All @@ -9,7 +9,7 @@ import { Select } from '@navikt/ds-react';
import styled from 'styled-components';

export function VelgFagsakForIkkeSøknad(props: {
journalResponse: IJojurnalpostResponse;
journalResponse: IJournalpostResponse;
hentFagsak: (personIdent: string, stønadstype: Stønadstype) => void;
}) {
const { journalResponse, hentFagsak } = props;
Expand Down
27 changes: 25 additions & 2 deletions src/frontend/Komponenter/Journalføring/Felles/utils.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { DokumentTitler, IJojurnalpostResponse } from '../../../App/typer/journalføring';
import { DokumentTitler, IJournalpostResponse } from '../../../App/typer/journalføring';
import { Behandlingstema, behandlingstemaTilTekst } from '../../../App/typer/behandlingstema';
import { Behandling, BehandlingResultat } from '../../../App/typer/fagsak';
import { Behandlingstype } from '../../../App/typer/behandlingstype';
Expand All @@ -20,7 +20,7 @@ export const lagJournalføringUrl = (journalpostId: string, oppgaveId: string |
};

export const harTittelForAlleDokumenter = (
journalResponse: IJojurnalpostResponse,
journalResponse: IJournalpostResponse,
dokumentTitler?: DokumentTitler
) =>
journalResponse.journalpost.dokumenter
Expand Down Expand Up @@ -104,3 +104,26 @@ export const harValgtNyBehandling = (behandling: BehandlingRequest | undefined):
export const harValgtNyKlageBehandling = (
behandling: BehandlingKlageRequest | undefined
): boolean => behandling !== undefined && behandling.behandlingId === undefined;

export enum Journalføringsårsak {
PAPIRSØKNAD = 'PAPIRSØKNAD',
ETTERSENDING = 'ETTERSENDING',
KLAGE = 'KLAGE',
DIGITAL_SØKNAD = 'DIGITAL_SØKNAD',
IKKE_VALGT = 'IKKE_VALGT',
}

export const journalføringsårsakTilTekst: Record<Journalføringsårsak, string> = {
PAPIRSØKNAD: 'Papirsøknad',
ETTERSENDING: 'Ettersending',
KLAGE: 'Klage',
DIGITAL_SØKNAD: 'Digital søknad',
IKKE_VALGT: 'Ikke valgt',
};

export const valgbareJournalføringsårsaker = [
Journalføringsårsak.IKKE_VALGT,
Journalføringsårsak.ETTERSENDING,
Journalføringsårsak.KLAGE,
Journalføringsårsak.PAPIRSØKNAD,
];
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ const JournalføringAppContent: React.FC<JournalføringAppProps> = ({
const journalpostId = journalResponse.journalpost.journalpostId;

const journalpostState: JournalføringStateRequest = useJournalføringState(
journalResponse,
oppgaveId,
journalpostId
);
Expand Down
Loading