Skip to content

Commit 176f368

Browse files
Add new sakstyper: Begjæring om gjenopptak & begjæring om gjenopptak i Trygderetten
1 parent bf42fa4 commit 176f368

File tree

56 files changed

+930
-173
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

56 files changed

+930
-173
lines changed

frontend/src/components/admin/merkantil-task-list/merkantil-task-list.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -190,6 +190,8 @@ const TYPE_TO_PATH: Record<SaksTypeEnum, string> = {
190190
[SaksTypeEnum.ANKE_I_TRYGDERETTEN]: 'trygderettsankebehandling',
191191
[SaksTypeEnum.BEHANDLING_ETTER_TR_OPPHEVET]: 'behandling-etter-tr-opphevet',
192192
[SaksTypeEnum.OMGJØRINGSKRAV]: 'omgjøringskravbehandling',
193+
[SaksTypeEnum.BEGJÆRING_OM_GJENOPPTAK]: 'begjaering-om-gjenopptak-behandling',
194+
[SaksTypeEnum.BEGJÆRING_OM_GJENOPPTAK_I_TR]: 'begjaering-om-gjenopptak-i-tr-behandling',
193195
};
194196

195197
const toCopyLine = ({ typeId, behandlingId, reason }: Task) => `${getUrl(behandlingId, typeId)} - ${reason}`;

frontend/src/components/app/router.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,8 @@ export const Router = () => (
4747
<Route path="trygderettsankebehandling/:oppgaveId" element={<OppgavebehandlingPage />} />
4848
<Route path="behandling-etter-tr-opphevet/:oppgaveId" element={<OppgavebehandlingPage />} />
4949
<Route path="omgjøringskravbehandling/:oppgaveId" element={<OppgavebehandlingPage />} />
50+
<Route path="begjaering-om-gjenopptak-behandling/:oppgaveId" element={<OppgavebehandlingPage />} />
51+
<Route path="begjaering-om-gjenopptak-i-tr-behandling/:oppgaveId" element={<OppgavebehandlingPage />} />
5052
</Route>
5153

5254
<Route element={<ProtectedRoute roles={[Role.KABAL_INNSYN_EGEN_ENHET, Role.KABAL_KROL]} />}>

frontend/src/components/behandling/behandling.tsx

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import { BegjæringOmGjenopptakDetaljer } from '@app/components/behandling/behandlingsdetaljer/begjæring-om-gjenopptak-detaljer';
2+
import { BegjæringOmGjenopptakITrDetaljer } from '@app/components/behandling/behandlingsdetaljer/begjæring-om-gjenopptak-i-tr-detaljer';
13
import { BehandlingEtterTrOpphevetDetaljer } from '@app/components/behandling/behandlingsdetaljer/behandling-etter-tr-opphevet-detaljer';
24
import { BehandlingSection } from '@app/components/behandling/behandlingsdetaljer/behandling-section';
35
import { Omgjøringskravdetaljer } from '@app/components/behandling/behandlingsdetaljer/omgjøringskravdetaljer';
@@ -71,5 +73,9 @@ const Behandlingsdetaljer = () => {
7173
return <BehandlingEtterTrOpphevetDetaljer oppgavebehandling={oppgave} />;
7274
case SaksTypeEnum.OMGJØRINGSKRAV:
7375
return <Omgjøringskravdetaljer oppgavebehandling={oppgave} />;
76+
case SaksTypeEnum.BEGJÆRING_OM_GJENOPPTAK:
77+
return <BegjæringOmGjenopptakDetaljer oppgavebehandling={oppgave} />;
78+
case SaksTypeEnum.BEGJÆRING_OM_GJENOPPTAK_I_TR:
79+
return <BegjæringOmGjenopptakITrDetaljer oppgavebehandling={oppgave} />;
7480
}
7581
};

frontend/src/components/behandling/behandlingsdetaljer/ankebehandlingsdetaljer.tsx

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -58,12 +58,10 @@ export const Ankebehandlingsdetaljer = ({ oppgavebehandling }: Props) => {
5858
<Ytelse ytelseId={ytelseId} />
5959
</BehandlingSection>
6060

61-
<BehandlingSection label="Klagebehandling fullført av">
62-
<PreviousSaksbehandler
63-
previousSaksbehandler={oppgavebehandling.previousSaksbehandler}
64-
type={SaksTypeEnum.ANKE}
65-
/>
66-
</BehandlingSection>
61+
<PreviousSaksbehandler
62+
previousSaksbehandler={oppgavebehandling.previousSaksbehandler}
63+
type={SaksTypeEnum.ANKE}
64+
/>
6765

6866
<Saksnummer saksnummer={saksnummer} />
6967

Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
import { BehandlingSection } from '@app/components/behandling/behandlingsdetaljer/behandling-section';
2+
import { ExtraUtfall } from '@app/components/behandling/behandlingsdetaljer/extra-utfall';
3+
import { ForlengetBehandlingstid } from '@app/components/behandling/behandlingsdetaljer/forlenget-behandlingstid/forlenget-behandlingstid';
4+
import { Gosys } from '@app/components/behandling/behandlingsdetaljer/gosys';
5+
import { Innsendingshjemmel } from '@app/components/behandling/behandlingsdetaljer/innsendingshjemmel';
6+
import { Klager } from '@app/components/behandling/behandlingsdetaljer/klager';
7+
import { Lovhjemmel } from '@app/components/behandling/behandlingsdetaljer/lovhjemmel/lovhjemmel';
8+
import { MottattDato } from '@app/components/behandling/behandlingsdetaljer/mottatt-klageinstans';
9+
import { PreviousSaksbehandler } from '@app/components/behandling/behandlingsdetaljer/previous-saksbehandler';
10+
import { Saksnummer } from '@app/components/behandling/behandlingsdetaljer/saksnummer';
11+
import { Tilbakekreving } from '@app/components/behandling/behandlingsdetaljer/tilbakekreving';
12+
import { UtfallResultat } from '@app/components/behandling/behandlingsdetaljer/utfall-resultat';
13+
import { Ytelse } from '@app/components/behandling/behandlingsdetaljer/ytelse';
14+
import { StyledBehandlingSection } from '@app/components/behandling/styled-components';
15+
import { BEHANDLING_PANEL_DOMAIN } from '@app/components/gosys/beskrivelse/domain';
16+
import { GrafanaDomainProvider } from '@app/components/grafana-domain-context/grafana-domain-context';
17+
import { Fullmektig } from '@app/components/part/fullmektig/fullmektig';
18+
import { Type } from '@app/components/type/type';
19+
import { useUpdateKlagerMutation } from '@app/redux-api/oppgaver/mutations/behandling';
20+
import { SaksTypeEnum } from '@app/types/kodeverk';
21+
import type { IOppgavebehandling } from '@app/types/oppgavebehandling/oppgavebehandling';
22+
import { Heading, VStack } from '@navikt/ds-react';
23+
24+
interface Props {
25+
oppgavebehandling: IOppgavebehandling;
26+
}
27+
28+
export const BegjæringOmGjenopptakDetaljer = ({ oppgavebehandling }: Props) => {
29+
const [updateKlager, { isLoading: klagerIsLoading }] = useUpdateKlagerMutation();
30+
31+
const { typeId, fraNAVEnhetNavn, fraNAVEnhet, resultat, ytelseId, prosessfullmektig, saksnummer, id } =
32+
oppgavebehandling;
33+
34+
const { utfallId, extraUtfallIdSet } = resultat;
35+
36+
return (
37+
<GrafanaDomainProvider domain={BEHANDLING_PANEL_DOMAIN}>
38+
<StyledBehandlingSection>
39+
<Heading level="1" size="medium" spacing>
40+
Behandling
41+
</Heading>
42+
43+
<VStack gap="4">
44+
<Klager
45+
klager={oppgavebehandling.klager}
46+
onChange={(klager) => updateKlager({ klager, oppgaveId: oppgavebehandling.id })}
47+
isLoading={klagerIsLoading}
48+
typeId={typeId}
49+
/>
50+
51+
<Fullmektig part={prosessfullmektig} />
52+
53+
<BehandlingSection label="Type">
54+
<Type type={typeId} />
55+
</BehandlingSection>
56+
57+
<BehandlingSection label="Ytelse">
58+
<Ytelse ytelseId={ytelseId} />
59+
</BehandlingSection>
60+
61+
<PreviousSaksbehandler
62+
previousSaksbehandler={oppgavebehandling.previousSaksbehandler}
63+
type={SaksTypeEnum.BEGJÆRING_OM_GJENOPPTAK}
64+
/>
65+
66+
<Saksnummer saksnummer={saksnummer} />
67+
68+
<Innsendingshjemmel oppgavebehandling={oppgavebehandling} />
69+
70+
<ForlengetBehandlingstid oppgavebehandling={oppgavebehandling}>
71+
<MottattDato />
72+
</ForlengetBehandlingstid>
73+
74+
<BehandlingSection label="Behandlet av">
75+
{fraNAVEnhetNavn} &mdash; {fraNAVEnhet}
76+
</BehandlingSection>
77+
78+
<MottattDato />
79+
80+
<Gosys oppgavebehandling={oppgavebehandling} />
81+
82+
<UtfallResultat utfall={utfallId} oppgaveId={id} extraUtfallIdSet={extraUtfallIdSet} typeId={typeId} />
83+
84+
<ExtraUtfall utfallIdSet={extraUtfallIdSet} mainUtfall={utfallId} oppgaveId={id} typeId={typeId} />
85+
86+
<Lovhjemmel />
87+
88+
<Tilbakekreving />
89+
</VStack>
90+
</StyledBehandlingSection>
91+
</GrafanaDomainProvider>
92+
);
93+
};
Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
import { BehandlingSection } from '@app/components/behandling/behandlingsdetaljer/behandling-section';
2+
import { Gosys } from '@app/components/behandling/behandlingsdetaljer/gosys';
3+
import { Innsendingshjemmel } from '@app/components/behandling/behandlingsdetaljer/innsendingshjemmel';
4+
import { KjennelseMottatt } from '@app/components/behandling/behandlingsdetaljer/kjennelse-mottatt';
5+
import { OrgWarning } from '@app/components/behandling/behandlingsdetaljer/klager';
6+
import { Lovhjemmel } from '@app/components/behandling/behandlingsdetaljer/lovhjemmel/lovhjemmel';
7+
import { PreviousSaksbehandler } from '@app/components/behandling/behandlingsdetaljer/previous-saksbehandler';
8+
import { Saksnummer } from '@app/components/behandling/behandlingsdetaljer/saksnummer';
9+
import { SendtTilTrygderetten } from '@app/components/behandling/behandlingsdetaljer/sendt-til-trygderetten';
10+
import { Tilbakekreving } from '@app/components/behandling/behandlingsdetaljer/tilbakekreving';
11+
import { UtfallResultat } from '@app/components/behandling/behandlingsdetaljer/utfall-resultat';
12+
import { Ytelse } from '@app/components/behandling/behandlingsdetaljer/ytelse';
13+
import { StyledBehandlingSection } from '@app/components/behandling/styled-components';
14+
import { BEHANDLING_PANEL_DOMAIN } from '@app/components/gosys/beskrivelse/domain';
15+
import { GrafanaDomainProvider } from '@app/components/grafana-domain-context/grafana-domain-context';
16+
import { Fullmektig } from '@app/components/part/fullmektig/fullmektig';
17+
import { Type } from '@app/components/type/type';
18+
import { SaksTypeEnum } from '@app/types/kodeverk';
19+
import type { IBegjæringOmGjenopptakITRBehandling } from '@app/types/oppgavebehandling/oppgavebehandling';
20+
import { Heading, VStack } from '@navikt/ds-react';
21+
22+
interface Props {
23+
oppgavebehandling: IBegjæringOmGjenopptakITRBehandling;
24+
}
25+
26+
export const BegjæringOmGjenopptakITrDetaljer = ({ oppgavebehandling }: Props) => {
27+
const { typeId, resultat, ytelseId, prosessfullmektig, saksnummer, id } = oppgavebehandling;
28+
29+
const { utfallId, extraUtfallIdSet } = resultat;
30+
31+
return (
32+
<GrafanaDomainProvider domain={BEHANDLING_PANEL_DOMAIN}>
33+
<StyledBehandlingSection>
34+
<Heading level="1" size="medium" spacing>
35+
Behandling
36+
</Heading>
37+
<VStack gap="4">
38+
<BehandlingSection label="Den ankende part">
39+
<VStack gap="2">
40+
{oppgavebehandling.klager.name ?? 'Navn mangler'}
41+
<OrgWarning identifikator={oppgavebehandling.klager.identifikator} label="ankende part" />
42+
</VStack>
43+
</BehandlingSection>
44+
45+
<Fullmektig part={prosessfullmektig} />
46+
47+
<BehandlingSection label="Type">
48+
<Type type={typeId} />
49+
</BehandlingSection>
50+
51+
<BehandlingSection label="Ytelse">
52+
<Ytelse ytelseId={ytelseId} />
53+
</BehandlingSection>
54+
55+
<PreviousSaksbehandler
56+
previousSaksbehandler={oppgavebehandling.previousSaksbehandler}
57+
type={SaksTypeEnum.BEGJÆRING_OM_GJENOPPTAK_I_TR}
58+
/>
59+
60+
<Saksnummer saksnummer={saksnummer} />
61+
62+
<Innsendingshjemmel oppgavebehandling={oppgavebehandling} />
63+
64+
<SendtTilTrygderetten />
65+
66+
<KjennelseMottatt />
67+
68+
<Gosys oppgavebehandling={oppgavebehandling} />
69+
70+
<UtfallResultat utfall={utfallId} oppgaveId={id} extraUtfallIdSet={extraUtfallIdSet} typeId={typeId} />
71+
72+
<Lovhjemmel />
73+
74+
<Tilbakekreving />
75+
</VStack>
76+
</StyledBehandlingSection>
77+
</GrafanaDomainProvider>
78+
);
79+
};

frontend/src/components/behandling/behandlingsdetaljer/kjennelse-mottatt.tsx

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,17 +9,19 @@ import { useValidationError } from '@app/hooks/use-validation-error';
99
import { useSetKjennelseMottattMutation } from '@app/redux-api/oppgaver/mutations/behandling-dates';
1010
import { SaksTypeEnum } from '@app/types/kodeverk';
1111
import { subDays } from 'date-fns';
12+
import { useState } from 'react';
1213

1314
const ID = 'kjennelse-mottatt';
1415

1516
export const KjennelseMottatt = () => {
1617
const canEdit = useCanEditBehandling();
1718
const { data } = useOppgave();
1819
const error = useValidationError('kjennelseMottatt');
20+
const [localError, setLocalError] = useState<string | null>(null);
1921
const label = useFieldName('kjennelseMottatt');
2022
const [setKjennelseMottatt] = useSetKjennelseMottattMutation();
2123

22-
if (data?.typeId !== SaksTypeEnum.ANKE_I_TRYGDERETTEN) {
24+
if (data?.typeId !== SaksTypeEnum.ANKE_I_TRYGDERETTEN && data?.typeId !== SaksTypeEnum.BEGJÆRING_OM_GJENOPPTAK_I_TR) {
2325
return null;
2426
}
2527

@@ -30,9 +32,23 @@ export const KjennelseMottatt = () => {
3032
}
3133

3234
const onChange = (kjennelseMottatt: string | null) => {
33-
if (kjennelseMottatt !== value) {
34-
setKjennelseMottatt({ oppgaveId: data.id, kjennelseMottatt, typeId: data.typeId });
35+
setLocalError(null);
36+
37+
if (kjennelseMottatt === value) {
38+
return;
39+
}
40+
41+
if (kjennelseMottatt === null) {
42+
return setKjennelseMottatt({ oppgaveId: data.id, kjennelseMottatt, typeId: data.typeId });
3543
}
44+
45+
const sendtTilTrygderetten = data.sendtTilTrygderetten?.split('T')[0] ?? null;
46+
47+
if (sendtTilTrygderetten !== null && sendtTilTrygderetten >= kjennelseMottatt) {
48+
setLocalError('Kjennelse mottatt må være etter Sendt til Trygderetten.');
49+
}
50+
51+
setKjennelseMottatt({ oppgaveId: data.id, kjennelseMottatt, typeId: data.typeId });
3652
};
3753

3854
return (
@@ -42,7 +58,7 @@ export const KjennelseMottatt = () => {
4258
disabled={!canEdit}
4359
onChange={onChange}
4460
value={value}
45-
error={error}
61+
error={localError || error}
4662
id={ID}
4763
size="small"
4864
centuryThreshold={CURRENT_YEAR_IN_CENTURY}

frontend/src/components/behandling/behandlingsdetaljer/klager.tsx

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,5 +56,10 @@ const getLabel = (typeId: SaksTypeEnum): [string, string] => {
5656
return ['Opprinnelig klager / ankende part', 'opprinnelig klager / ankende part'];
5757
case SaksTypeEnum.OMGJØRINGSKRAV:
5858
return ['Den som krever omgjøring', 'den som krever omgjøring'];
59+
case SaksTypeEnum.BEGJÆRING_OM_GJENOPPTAK:
60+
case SaksTypeEnum.BEGJÆRING_OM_GJENOPPTAK_I_TR:
61+
return ['Den som begjærer gjenopptak', 'den som begjærer gjenopptak'];
62+
default:
63+
return ['Klager', 'klager'];
5964
}
6065
};

frontend/src/components/behandling/behandlingsdetaljer/mottatt-klageinstans.tsx

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,11 @@ export const MottattDato = () => {
1919
const label = useFieldName('mottattKlageinstans');
2020
const [setMottattKlageinstans] = useSetMottattKlageinstansMutation();
2121

22-
if (data?.typeId !== SaksTypeEnum.ANKE && data?.typeId !== SaksTypeEnum.OMGJØRINGSKRAV) {
22+
if (
23+
data?.typeId !== SaksTypeEnum.ANKE &&
24+
data?.typeId !== SaksTypeEnum.OMGJØRINGSKRAV &&
25+
data?.typeId !== SaksTypeEnum.BEGJÆRING_OM_GJENOPPTAK
26+
) {
2327
return null;
2428
}
2529

frontend/src/components/behandling/behandlingsdetaljer/omgjøringskravdetaljer.tsx

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -63,12 +63,10 @@ export const Omgjøringskravdetaljer = ({ oppgavebehandling }: Props) => {
6363
<Ytelse ytelseId={ytelseId} />
6464
</BehandlingSection>
6565

66-
<BehandlingSection label="Behandlingen som kreves omgjort er tidligere fullført av">
67-
<PreviousSaksbehandler
68-
previousSaksbehandler={oppgavebehandling.previousSaksbehandler}
69-
type={SaksTypeEnum.OMGJØRINGSKRAV}
70-
/>
71-
</BehandlingSection>
66+
<PreviousSaksbehandler
67+
previousSaksbehandler={oppgavebehandling.previousSaksbehandler}
68+
type={SaksTypeEnum.OMGJØRINGSKRAV}
69+
/>
7270

7371
<Saksnummer saksnummer={saksnummer} />
7472

0 commit comments

Comments
 (0)