Skip to content

Commit

Permalink
IS-1801: Innstilling om stans vurdering aktivitetskrav
Browse files Browse the repository at this point in the history
  • Loading branch information
vetlesolgaard committed Feb 14, 2025
1 parent 520e9b0 commit 00e43b6
Show file tree
Hide file tree
Showing 26 changed files with 409 additions and 142 deletions.
16 changes: 14 additions & 2 deletions src/data/aktivitetskrav/aktivitetskravTypes.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@ export enum AktivitetskravStatus {
OPPFYLT = "OPPFYLT",
AUTOMATISK_OPPFYLT = "AUTOMATISK_OPPFYLT",
FORHANDSVARSEL = "FORHANDSVARSEL",
STANS = "STANS",
IKKE_OPPFYLT = "IKKE_OPPFYLT",
INNSTILLING_OM_STANS = "INNSTILLING_OM_STANS",
IKKE_AKTUELL = "IKKE_AKTUELL",
LUKKET = "LUKKET",
}
Expand Down Expand Up @@ -47,6 +47,7 @@ export enum VarselType {
UNNTAK = "UNNTAK",
OPPFYLT = "OPPFYLT",
IKKE_AKTUELL = "IKKE_AKTUELL",
INNSTILLING_OM_STANS = "INNSTILLING_OM_STANS",
}

export interface AktivitetskravDTO {
Expand All @@ -71,6 +72,7 @@ export interface AktivitetskravVurderingDTO {
status: AktivitetskravStatus;
beskrivelse: string | undefined;
arsaker: VurderingArsak[];
stansFom: Date | undefined;
frist: Date | undefined;
varsel: AktivitetskravVarselDTO | undefined;
}
Expand All @@ -88,8 +90,11 @@ export type VurderingArsak =
| OppfyltVurderingArsak
| IkkeAktuellArsak;

export interface CreateAktivitetskravVurderingDTO {
export interface NewVurderingDTO {
status: AktivitetskravStatus;
}

export interface CreateAktivitetskravVurderingDTO extends NewVurderingDTO {
beskrivelse?: string;
arsaker: VurderingArsak[];
document?: DocumentComponentDto[];
Expand All @@ -102,6 +107,13 @@ export interface SendForhandsvarselDTO {
frist: Date;
}

export interface InnstillingOmStansVurderingDTO extends NewVurderingDTO {
status: AktivitetskravStatus.INNSTILLING_OM_STANS;
stansFom: Date;
beskrivelse: string;
document: DocumentComponentDto[];
}

export interface NewAktivitetskravDTO {
previousAktivitetskravUuid: string;
}
7 changes: 3 additions & 4 deletions src/data/aktivitetskrav/useVurderAktivitetskrav.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { useMutation, useQueryClient } from "@tanstack/react-query";
import { ISAKTIVITETSKRAV_ROOT } from "@/apiConstants";
import { CreateAktivitetskravVurderingDTO } from "@/data/aktivitetskrav/aktivitetskravTypes";
import { NewVurderingDTO } from "@/data/aktivitetskrav/aktivitetskravTypes";
import { post } from "@/api/axios";
import { aktivitetskravQueryKeys } from "@/data/aktivitetskrav/aktivitetskravQueryHooks";
import { useValgtPersonident } from "@/hooks/useValgtBruker";
Expand All @@ -9,9 +9,8 @@ export const useVurderAktivitetskrav = (aktivitetskravUuid: string) => {
const personident = useValgtPersonident();
const queryClient = useQueryClient();
const path = `${ISAKTIVITETSKRAV_ROOT}/aktivitetskrav/${aktivitetskravUuid}/vurder`;
const postVurderAktivitetskrav = (
vurdering: CreateAktivitetskravVurderingDTO
) => post(path, vurdering, personident);
const postVurderAktivitetskrav = (vurdering: NewVurderingDTO) =>
post(path, vurdering, personident);

return useMutation({
mutationFn: postVurderAktivitetskrav,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,11 +29,19 @@ type VurderingDocumentValues = {
arsak: VurderingArsak;
};

export const useAktivitetskravVarselDocument = (): {
type InnstillingOmStansDocumentValues = {
stansDato: Date;
begrunnelse: string;
};

export const useAktivitetskravVurderingDocument = (): {
getForhandsvarselDocument(
values: ForhandsvarselDocumentValues
): DocumentComponentDto[];
getVurderingDocument(values: VurderingDocumentValues): DocumentComponentDto[];
innstillingOmStansDocument(
values: InnstillingOmStansDocumentValues
): DocumentComponentDto[];
} => {
const { getHilsen, getIntroGjelder, getVurdertAv } = useDocumentComponents();

Expand Down Expand Up @@ -107,9 +115,34 @@ export const useAktivitetskravVarselDocument = (): {
return documentComponents;
};

function innstillingOmStansDocument({
stansDato,
begrunnelse,
}: InnstillingOmStansDocumentValues): DocumentComponentDto[] {
const texts = {
title: "Nav har stanset sykepengene dine",
stansetSykepenger: (dato: string) =>
`Nav har stanset sykepengene dine fra og med ${dato}.`,
pliktTilAktivitet:
"For å få sykepenger har du plikt til å være i arbeidsrettet aktivitet innen 8 uker.",
folketrygdloven:
"Vi har brukt folketrygdloven § 8-8 andre ledd når vi har behandlet saken din.",
};
const stansDatoText = tilDatoMedManedNavn(stansDato);
return [
createHeaderH1(texts.title),
createParagraph(texts.stansetSykepenger(stansDatoText)),
createParagraph(texts.pliktTilAktivitet),
createParagraph(begrunnelse),
createParagraph(texts.folketrygdloven),
getVurdertAv(),
];
}

return {
getForhandsvarselDocument,
getVurderingDocument,
innstillingOmStansDocument,
};
};
const getVurderingText = (type: VarselType, arsak: VurderingArsak): string => {
Expand All @@ -128,6 +161,9 @@ const getVurderingText = (type: VarselType, arsak: VurderingArsak): string => {
case VarselType.FORHANDSVARSEL_STANS_AV_SYKEPENGER: {
throw new Error("use getForhandsvarselDocument");
}
case VarselType.INNSTILLING_OM_STANS: {
throw new Error("use innstillingOmStansDocument");
}
}
};

Expand All @@ -143,5 +179,8 @@ const getVedtakText = (type: VarselType) => {
case VarselType.FORHANDSVARSEL_STANS_AV_SYKEPENGER: {
throw new Error("use getForhandsvarselDocument");
}
case VarselType.INNSTILLING_OM_STANS: {
throw new Error("use innstillingOmStansDocument");
}
}
};
6 changes: 5 additions & 1 deletion src/mocks/isaktivitetskrav/aktivitetskravMock.ts
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ const aktivitetskravUnntak: AktivitetskravDTO = {
beskrivelse:
"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.",
arsaker: [UnntakVurderingArsak.MEDISINSKE_GRUNNER],
stansFom: undefined,
frist: undefined,
varsel: undefined,
},
Expand All @@ -59,6 +60,7 @@ const aktivitetskravOppfylt: AktivitetskravDTO = {
beskrivelse:
"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.",
arsaker: [OppfyltVurderingArsak.FRISKMELDT],
stansFom: undefined,
frist: undefined,
varsel: undefined,
},
Expand All @@ -72,6 +74,7 @@ const aktivitetskravOppfylt: AktivitetskravDTO = {
AvventVurderingArsak.OPPFOLGINGSPLAN_ARBEIDSGIVER,
AvventVurderingArsak.INFORMASJON_BEHANDLER,
],
stansFom: undefined,
frist: undefined,
varsel: undefined,
},
Expand Down Expand Up @@ -190,11 +193,12 @@ const aktivitetskravForhandsvarsel: AktivitetskravDTO = {
status: AktivitetskravStatus.FORHANDSVARSEL,
beskrivelse: begrunnelse,
arsaker: [],
stansFom: undefined,
frist: undefined,
varsel: {
uuid: varselUuid,
createdAt: daysFromToday(-2),
svarfrist: daysFromToday(19),
svarfrist: daysFromToday(-2),
document: getForhandsvarselDocument(begrunnelse, daysFromToday(1)),
},
},
Expand Down
51 changes: 40 additions & 11 deletions src/mocks/isaktivitetskrav/mockIsaktivitetskrav.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ import {
AktivitetskravStatus,
AktivitetskravVurderingDTO,
CreateAktivitetskravVurderingDTO,
InnstillingOmStansVurderingDTO,
NewVurderingDTO,
SendForhandsvarselDTO,
} from "@/data/aktivitetskrav/aktivitetskravTypes";
import { daysFromToday } from "../../../test/testUtils";
Expand All @@ -25,20 +27,12 @@ export const mockIsaktivitetskrav = [
http.get(`${ISAKTIVITETSKRAV_ROOT}/aktivitetskrav/historikk`, () => {
return HttpResponse.json(aktivitetskravHistorikk);
}),
http.post<object, CreateAktivitetskravVurderingDTO>(
http.post<object, NewVurderingDTO>(
`${ISAKTIVITETSKRAV_ROOT}/aktivitetskrav/:aktivitetskravUuid/vurder`,
async ({ request }) => {
const body = await request.json();
const newVurdering: AktivitetskravVurderingDTO = {
uuid: generateUUID(),
status: body.status,
arsaker: [...body.arsaker],
beskrivelse: body.beskrivelse,
createdAt: new Date(),
createdBy: VEILEDER_DEFAULT.ident,
frist: undefined,
varsel: undefined,
};
const newVurdering: AktivitetskravVurderingDTO =
toAktivitetskravVurderingDTO(body);
let firstAktivitetskrav = mockAktivitetskrav.shift() as AktivitetskravDTO;
firstAktivitetskrav = {
...firstAktivitetskrav,
Expand Down Expand Up @@ -79,6 +73,7 @@ export const mockIsaktivitetskrav = [
beskrivelse: body.fritekst,
createdAt: new Date(),
createdBy: VEILEDER_DEFAULT.ident,
stansFom: undefined,
frist: daysFromToday(21),
varsel: forhandsvarsel,
};
Expand All @@ -103,3 +98,37 @@ export const mockIsaktivitetskrav = [
}
),
];

export function toAktivitetskravVurderingDTO(
newVurdering: NewVurderingDTO
): AktivitetskravVurderingDTO {
switch (newVurdering.status) {
case AktivitetskravStatus.INNSTILLING_OM_STANS:
const newInnstillingOmStansVurdering =
newVurdering as InnstillingOmStansVurderingDTO;
return {
uuid: generateUUID(),
status: newInnstillingOmStansVurdering.status,
arsaker: [],
beskrivelse: newInnstillingOmStansVurdering.beskrivelse,
createdAt: new Date(),
createdBy: VEILEDER_DEFAULT.ident,
stansFom: newInnstillingOmStansVurdering.stansFom,
frist: undefined,
varsel: undefined,
};
default:
const newVurderingDTO = newVurdering as CreateAktivitetskravVurderingDTO;
return {
uuid: generateUUID(),
status: newVurderingDTO.status,
arsaker: [...newVurderingDTO.arsaker],
beskrivelse: newVurderingDTO.beskrivelse,
createdAt: new Date(),
createdBy: VEILEDER_DEFAULT.ident,
stansFom: undefined,
frist: undefined,
varsel: undefined,
};
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ const texts = {
const isRelevantForHistorikk = (vurdering: AktivitetskravVurderingDTO) =>
vurdering.status === AktivitetskravStatus.OPPFYLT ||
vurdering.status === AktivitetskravStatus.UNNTAK ||
vurdering.status === AktivitetskravStatus.STANS ||
vurdering.status === AktivitetskravStatus.INNSTILLING_OM_STANS ||
vurdering.status === AktivitetskravStatus.IKKE_OPPFYLT ||
vurdering.status === AktivitetskravStatus.FORHANDSVARSEL ||
vurdering.status === AktivitetskravStatus.AVVENT ||
Expand Down Expand Up @@ -70,12 +70,12 @@ const headerPrefix = (status: AktivitetskravStatus): string => {
case AktivitetskravStatus.UNNTAK: {
return capitalizeWord(status);
}
case AktivitetskravStatus.STANS: {
return "Innstilling om stopp";
}
case AktivitetskravStatus.IKKE_OPPFYLT: {
return "Ikke oppfylt";
}
case AktivitetskravStatus.INNSTILLING_OM_STANS: {
return "Innstilling om stans";
}
case AktivitetskravStatus.FORHANDSVARSEL: {
return "Forhåndsvarsel";
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ type AktivitetskravStatusSuccess =
| AktivitetskravStatus.OPPFYLT
| AktivitetskravStatus.UNNTAK
| AktivitetskravStatus.IKKE_OPPFYLT
| AktivitetskravStatus.INNSTILLING_OM_STANS
| AktivitetskravStatus.IKKE_AKTUELL;

export const useAktivitetskravNotificationAlert = () => {
Expand All @@ -25,6 +26,9 @@ export const useAktivitetskravNotificationAlert = () => {
case AktivitetskravStatus.IKKE_OPPFYLT: {
return `Det er vurdert at aktivitetskravet ikke er oppfylt for ${brukersNavn} ${today}.`;
}
case AktivitetskravStatus.INNSTILLING_OM_STANS: {
return `Det er vurdert innstilling om stans for aktivitetskravet for ${brukersNavn} ${today}.`;
}
case AktivitetskravStatus.IKKE_AKTUELL: {
return `Det er vurdert at aktivitetskravet ikke er aktuelt for ${brukersNavn} ${today}.`;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,13 +19,13 @@ const texts = {
"Fristen er gått ut og aktivitetskravet må vurderes.",
};

interface AktivitetskravVurderingAlertProps {
interface Props {
vurdering: AktivitetskravVurderingDTO;
}

export const AktivitetskravVurderingAlert = ({
export function AktivitetskravVurderingAlert({
vurdering,
}: AktivitetskravVurderingAlertProps): ReactElement | null => {
}: Props): ReactElement | null {
const { status, beskrivelse, arsaker, frist, createdAt } = vurdering;
const vurderingDato = tilLesbarDatoMedArUtenManedNavn(createdAt);

Expand Down Expand Up @@ -68,4 +68,4 @@ export const AktivitetskravVurderingAlert = ({
throw new Error(`Not supported`);
}
}
};
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,15 @@ const texts = {
merInfo: "Husk å sjekke Gosys og Modia for mer informasjon før du vurderer. ",
};

interface ForhandsvarselOppsummeringProps {
interface Props {
varsel: AktivitetskravVarselDTO;
beskrivelse: string | undefined;
}

export const ForhandsvarselOppsummering = ({
export default function ForhandsvarselOppsummering({
varsel,
beskrivelse,
}: ForhandsvarselOppsummeringProps) => {
}: Props) {
const fristDato = tilLesbarDatoMedArUtenManedNavn(varsel.svarfrist);

return (
Expand All @@ -38,4 +38,4 @@ export const ForhandsvarselOppsummering = ({
<BodyShort>{texts.merInfo}</BodyShort>
</Panel>
);
};
}
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ import {
import { useAktivitetskravNotificationAlert } from "@/sider/aktivitetskrav/useAktivitetskravNotificationAlert";
import { useForm } from "react-hook-form";
import { VurderAktivitetskravSkjemaProps } from "@/sider/aktivitetskrav/vurdering/vurderAktivitetskravSkjemaTypes";
import { useAktivitetskravVarselDocument } from "@/hooks/aktivitetskrav/useAktivitetskravVarselDocument";
import { useAktivitetskravVurderingDocument } from "@/hooks/aktivitetskrav/useAktivitetskravVurderingDocument";
import { ikkeAktuellVurderingArsakTexts } from "@/data/aktivitetskrav/aktivitetskravTexts";
import * as Amplitude from "@/utils/amplitude";
import { EventType } from "@/utils/amplitude";
Expand Down Expand Up @@ -62,7 +62,7 @@ export const IkkeAktuellAktivitetskravSkjema = ({
setModalOpen,
}: IkkeAktuellAktivitetskravSkjemaProps) => {
const vurderAktivitetskrav = useVurderAktivitetskrav(aktivitetskravUuid);
const { getVurderingDocument } = useAktivitetskravVarselDocument();
const { getVurderingDocument } = useAktivitetskravVurderingDocument();
const { displayNotification } = useAktivitetskravNotificationAlert();

const {
Expand Down
Loading

0 comments on commit 00e43b6

Please sign in to comment.