Skip to content

Commit

Permalink
Skal kunne se verdier på inaktive vilkårsvurderinger - førsteutkast (#…
Browse files Browse the repository at this point in the history
…1836)

* Skal kunne se verdier på inaktive vilkårsvurderinger - førsteutkast

* Forbedret navngivning etter PR-tilbakemelding
  • Loading branch information
charliemidtlyng authored Aug 16, 2024
1 parent 6b55e7d commit db4939e
Show file tree
Hide file tree
Showing 7 changed files with 402 additions and 1 deletion.
10 changes: 10 additions & 0 deletions src/frontend/api/behandling.ts
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,15 @@ const useBehandlingApi = () => {
});
};

const gjerFeilutbetalingInaktiveVilkårsvurderingerKall = (
behandlingId: string
): Promise<Ressurs<IFeilutbetalingVilkårsvurdering[]>> => {
return request<void, IFeilutbetalingVilkårsvurdering[]>({
method: 'GET',
url: `${behandlingerApiPrefix}/${behandlingId}/vilkarsvurdering/inaktiv`,
});
};

const sendInnFeilutbetalingVilkårsvurdering = (
behandlingId: string,
payload: VilkårdsvurderingStegPayload
Expand Down Expand Up @@ -201,6 +210,7 @@ const useBehandlingApi = () => {
fjernManuellBrevmottaker,
hentManuelleBrevmottakere,
kallAngreSendTilBeslutter,
gjerFeilutbetalingInaktiveVilkårsvurderingerKall,
};
};

Expand Down
13 changes: 13 additions & 0 deletions src/frontend/komponenter/Fagsak/BehandlingContainer.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@ import VedtakContainer from './Vedtak/VedtakContainer';
import VergeContainer from './Verge/VergeContainer';
import { VergeProvider } from './Verge/VergeContext';
import { FeilutbetalingVilkårsvurderingProvider } from './Vilkårsvurdering/FeilutbetalingVilkårsvurderingContext';
import HistoriskVilkårsvurderingContainer from './Vilkårsvurdering/historikk/HistoriskVilkårsvurderingContainer';
import { HistoriskVilkårsvurderingProvider } from './Vilkårsvurdering/historikk/HistoriskVilkårsvurderingContext';
import VilkårsvurderingContainer from './Vilkårsvurdering/VilkårsvurderingContainer';
import { useBehandling } from '../../context/BehandlingContext';
import { Behandlingstatus, IBehandling } from '../../typer/behandling';
Expand Down Expand Up @@ -143,6 +145,17 @@ const BehandlingContainer: React.FC<IProps> = ({ fagsak, behandling }) => {
</FeilutbetalingVilkårsvurderingProvider>
}
/>
<Route
path={BEHANDLING_KONTEKST_PATH + '/inaktiv-vilkaarsvurdering'}
element={
<HistoriskVilkårsvurderingProvider behandling={behandling}>
<HistoriskVilkårsvurderingContainer
behandling={behandling}
fagsak={fagsak}
/>
</HistoriskVilkårsvurderingProvider>
}
/>

<Route
path={BEHANDLING_KONTEKST_PATH + '/vedtak'}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
import * as React from 'react';

import { styled } from 'styled-components';

import { Alert, BodyLong, Heading, Loader, Select, VStack } from '@navikt/ds-react';
import { ASpacing3 } from '@navikt/ds-tokens/dist/tokens';
import { RessursStatus } from '@navikt/familie-typer';

import { useHistoriskVilkårsvurdering } from './HistoriskVilkårsvurderingContext';
import HistoriskVilkårsvurderingVisning from './HistoriskVilkårsvurderingVisning';
import { IBehandling } from '../../../../typer/behandling';
import { IFagsak } from '../../../../typer/fagsak';
import { formatterDatoOgTidstring } from '../../../../utils';

const Container = styled.div`
padding: ${ASpacing3};
`;

const MidtstiltContainer = styled(Container)`
text-align: center;
`;

interface IProps {
fagsak: IFagsak;
behandling: IBehandling;
}

const HistoriskVilkårsvurderingContainer: React.FC<IProps> = () => {
const {
feilutbetalingInaktiveVilkårsvurderinger,
skjemaData,
settFeilutbetalingInaktivVilkårsvurdering,
} = useHistoriskVilkårsvurdering();

switch (feilutbetalingInaktiveVilkårsvurderinger?.status) {
case RessursStatus.SUKSESS: {
return (
<Container>
<VStack gap="5">
<Heading level="2" size="small">
Tidligere vilkårsvurderinger på denne behandlingen
</Heading>
<Select
onChange={e => {
const valgtVurdering =
feilutbetalingInaktiveVilkårsvurderinger.data.find(
vurdering => vurdering.opprettetTid === e.target.value
);
settFeilutbetalingInaktivVilkårsvurdering(valgtVurdering);
}}
label={'Velg versjon'}
>
<option>Velg</option>
{feilutbetalingInaktiveVilkårsvurderinger.data
.reverse()
.map((vurdering, index) => {
return (
vurdering.opprettetTid && (
<option value={vurdering.opprettetTid} key={index}>
Endret{' '}
{formatterDatoOgTidstring(vurdering.opprettetTid)}
</option>
)
);
})}
</Select>
{skjemaData && skjemaData.length > 0 && (
<HistoriskVilkårsvurderingVisning perioder={skjemaData} />
)}
</VStack>
</Container>
);
}
case RessursStatus.HENTER:
return (
<MidtstiltContainer>
<BodyLong spacing>Henting av feilutbetalingen tar litt tid.</BodyLong>
<Loader
size="2xlarge"
title="henter..."
transparent={false}
variant="neutral"
/>
</MidtstiltContainer>
);
case RessursStatus.FEILET:
case RessursStatus.FUNKSJONELL_FEIL:
return (
<Alert
children={feilutbetalingInaktiveVilkårsvurderinger.frontendFeilmelding}
variant="error"
/>
);
}
};

export default HistoriskVilkårsvurderingContainer;
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
import * as React from 'react';

import { AxiosError } from 'axios';
import createUseContext from 'constate';

import {
byggFeiletRessurs,
byggHenterRessurs,
byggTomRessurs,
type Ressurs,
} from '@navikt/familie-typer';

import { useBehandlingApi } from '../../../../api/behandling';
import { IBehandling } from '../../../../typer/behandling';
import { IFeilutbetalingVilkårsvurdering } from '../../../../typer/feilutbetalingtyper';
import { sorterFeilutbetaltePerioder } from '../../../../utils';
import { VilkårsvurderingPeriodeSkjemaData } from '../typer/feilutbetalingVilkårsvurdering';

interface IProps {
behandling: IBehandling;
}

const [HistoriskVilkårsvurderingProvider, useHistoriskVilkårsvurdering] = createUseContext(
({ behandling }: IProps) => {
const [
feilutbetalingInaktiveVilkårsvurderinger,
settFeilutbetalingInaktiveVilkårsvurderinger,
] = React.useState<Ressurs<IFeilutbetalingVilkårsvurdering[]>>(byggTomRessurs);

const [skjemaData, settSkjemaData] = React.useState<VilkårsvurderingPeriodeSkjemaData[]>(
[]
);

React.useEffect(() => {
hentFeilutbetalingVilkårsvurdering();
}, [behandling]);

const settFeilutbetalingInaktivVilkårsvurdering = (
feilutbetalingInaktivVilkårsvurdering?: IFeilutbetalingVilkårsvurdering
) => {
if (feilutbetalingInaktivVilkårsvurdering) {
const perioder = feilutbetalingInaktivVilkårsvurdering.perioder;
const sortertePerioder = sorterFeilutbetaltePerioder(perioder);
const skjemaPerioder = sortertePerioder.map((fuFP, index) => {
const skjemaPeriode: VilkårsvurderingPeriodeSkjemaData = {
index: `idx_fpsd_inaktiv_${index}`,
...fuFP,
};
return skjemaPeriode;
});

settSkjemaData(skjemaPerioder);
}
};

const { gjerFeilutbetalingInaktiveVilkårsvurderingerKall } = useBehandlingApi();

const hentFeilutbetalingVilkårsvurdering = (): void => {
settFeilutbetalingInaktiveVilkårsvurderinger(byggHenterRessurs());
gjerFeilutbetalingInaktiveVilkårsvurderingerKall(behandling.behandlingId)
.then((respons: Ressurs<IFeilutbetalingVilkårsvurdering[]>) => {
settFeilutbetalingInaktiveVilkårsvurderinger(respons);
})
.catch((error: AxiosError) => {
console.log('Error ved henting av vilkårsvurdering: ', error);
settFeilutbetalingInaktiveVilkårsvurderinger(
byggFeiletRessurs(
'Ukjent feil ved henting av vilkårsvurdering-perioder for behandling'
)
);
});
};

return {
feilutbetalingInaktiveVilkårsvurderinger,
settFeilutbetalingInaktivVilkårsvurdering,
skjemaData,
};
}
);

export { HistoriskVilkårsvurderingProvider, useHistoriskVilkårsvurdering };
Loading

0 comments on commit db4939e

Please sign in to comment.