Skip to content

Commit

Permalink
Merge branch 'master' into dynamisk-g-vedtaksbrev
Browse files Browse the repository at this point in the history
  • Loading branch information
gunnsteingarmo committed Oct 17, 2023
2 parents e3d1b8e + 9139ed7 commit 3600dd1
Show file tree
Hide file tree
Showing 21 changed files with 369 additions and 29 deletions.
1 change: 1 addition & 0 deletions build_n_deploy/webpack/webpack.common.js
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@ const common = {
template: path.join(process.cwd(), 'src/frontend/index.html'),
inject: 'body',
alwaysWriteToDisk: true,
favicon: path.join(process.cwd(), '/src/frontend/favicon.ico'),
}),
new ForkTsCheckerWebpackPlugin({
async: true,
Expand Down
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 @@ -13,10 +13,14 @@ import {
} from '../../../App/typer/vedtak';
import { nåværendeÅrOgMånedFormatert } from '../Sanksjon/utils';
import { BodyShortSmall } from '../../../Felles/Visningskomponenter/Tekster';
import { Heading } from '@navikt/ds-react';
import { Heading, Alert } from '@navikt/ds-react';

const SimuleringsContainer = styled.div`
margin: 2rem;
display: flex;
flex-direction: column;
gap: 1rem;
width: fit-content;
`;

const Seksjon = styled.div`
Expand All @@ -27,6 +31,10 @@ const TekstMedMargin = styled(BodyShortSmall)`
margin-top: 1rem;
`;

const StyledAlert = styled(Alert)`
max-width: 60rem;
`;

const mapSimuleringstabellRader = (
simuleringsresultat: ISimulering,
år: number
Expand Down Expand Up @@ -68,9 +76,23 @@ const SimuleringTabellWrapper: React.FC<{
return simuleringsresultat.feilutbetaling > 0;
}

function positivSumAvManuellePosteringer(simuleringsresultat: ISimulering) {
return (
simuleringsresultat.sumManuellePosteringer !== null &&
simuleringsresultat.sumManuellePosteringer !== undefined &&
simuleringsresultat.sumManuellePosteringer > 0
);
}

return (
<SimuleringsContainer>
<SimuleringOversikt simulering={simuleringsresultat} />
{positivSumAvManuellePosteringer(simuleringsresultat) && (
<StyledAlert variant={'warning'}>
Det finnes manuelle posteringer tilknyttet tidligere behandling.
Simuleringsbildet kan derfor være ufullstendig.
</StyledAlert>
)}
<SimuleringTabell
perioder={simuleringTabellRader}
årsvelger={{ valgtÅr: år, settÅr: settÅr, muligeÅr: muligeÅr }}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ export interface ISimulering {
forfallsdatoNestePeriode: string;
tidSimuleringHentet: string;
tomSisteUtbetaling: string;
sumManuellePosteringer?: number;
}

export interface ISimuleringPeriode {
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,
];
Loading

0 comments on commit 3600dd1

Please sign in to comment.