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 bc2c37a
Show file tree
Hide file tree
Showing 20 changed files with 312 additions and 131 deletions.
15 changes: 13 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 @@ -71,6 +71,7 @@ export interface AktivitetskravVurderingDTO {
status: AktivitetskravStatus;
beskrivelse: string | undefined;
arsaker: VurderingArsak[];
stansFom: Date | undefined;
frist: Date | undefined;
varsel: AktivitetskravVarselDTO | undefined;
}
Expand All @@ -88,8 +89,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 +106,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
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>
);
};
}

This file was deleted.

Loading

0 comments on commit bc2c37a

Please sign in to comment.