Skip to content

Commit 09bea6d

Browse files
authored
Merge pull request #5336 from navikt/feature/roller-okonomi
Feature/roller okonomi
2 parents df2905e + dedda43 commit 09bea6d

File tree

17 files changed

+359
-240
lines changed

17 files changed

+359
-240
lines changed

frontend/frontend-common/components/varsel/VarselModal.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import {
99
} from "@navikt/aksel-icons";
1010

1111
interface Props {
12-
modalRef: RefObject<HTMLDialogElement | null>;
12+
modalRef?: RefObject<HTMLDialogElement | null>;
1313
open?: boolean;
1414
handleClose: () => void;
1515
headingIconType?: "warning" | "error" | "info";

frontend/mr-admin-flate/src/components/utbetaling/DelutbetalingRow.tsx

+8-16
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,9 @@ import {
55
Besluttelse,
66
DelutbetalingDto,
77
DelutbetalingStatus,
8-
NavAnsatt,
9-
NavAnsattRolle,
108
ProblemDetail,
119
TilsagnDto,
12-
Totrinnskontroll,
10+
TotrinnskontrollDto,
1311
} from "@mr/api-client-v2";
1412
import { formaterNOK } from "@mr/frontend-common/utils/utils";
1513
import { Alert, Button, Checkbox, HStack, Table } from "@navikt/ds-react";
@@ -20,23 +18,17 @@ import { AarsakerOgForklaringModal } from "../modal/AarsakerOgForklaringModal";
2018
import { DelutbetalingTag } from "./DelutbetalingTag";
2119

2220
interface Props {
23-
ansatt: NavAnsatt;
2421
tilsagn: TilsagnDto;
2522
delutbetaling: DelutbetalingDto;
26-
opprettelse: Totrinnskontroll;
23+
opprettelse: TotrinnskontrollDto;
2724
}
2825

29-
export function DelutbetalingRow({ ansatt, tilsagn, delutbetaling, opprettelse }: Props) {
26+
export function DelutbetalingRow({ tilsagn, delutbetaling, opprettelse }: Props) {
3027
const [avvisModalOpen, setAvvisModalOpen] = useState(false);
3128
const queryClient = useQueryClient();
3229

3330
const besluttMutation = useBesluttDelutbetaling(delutbetaling.id);
3431

35-
const kanBeslutte =
36-
delutbetaling.status === DelutbetalingStatus.TIL_GODKJENNING &&
37-
ansatt.roller.includes(NavAnsattRolle.ATTESTANT_UTBETALING) &&
38-
opprettelse.behandletAv !== ansatt.navIdent;
39-
4032
const godkjentUtbetaling = [DelutbetalingStatus.GODKJENT, DelutbetalingStatus.UTBETALT].includes(
4133
delutbetaling.status,
4234
);
@@ -60,15 +52,15 @@ export function DelutbetalingRow({ ansatt, tilsagn, delutbetaling, opprettelse }
6052
flere utbetalinger fra tilsagnet
6153
</Alert>
6254
);
63-
} else if (godkjentUtbetaling) {
55+
} else {
6456
return (
6557
<HStack gap="4">
6658
<Metadata horizontal header="Behandlet av" verdi={opprettelse.behandletAv} />
67-
<Metadata horizontal header="Besluttet av" verdi={opprettelse.besluttetAv} />
59+
{opprettelse.type === "BESLUTTET" && (
60+
<Metadata horizontal header="Besluttet av" verdi={opprettelse.besluttetAv} />
61+
)}
6862
</HStack>
6963
);
70-
} else {
71-
return null;
7264
}
7365
}
7466

@@ -93,7 +85,7 @@ export function DelutbetalingRow({ ansatt, tilsagn, delutbetaling, opprettelse }
9385
<DelutbetalingTag status={delutbetaling.status} />
9486
</Table.DataCell>
9587
<Table.DataCell>
96-
{kanBeslutte && (
88+
{opprettelse.kanBesluttes && (
9789
<HStack gap="4">
9890
<Button
9991
size="small"

frontend/mr-admin-flate/src/components/utbetaling/OpprettDelutbetalingRow.tsx

+5-4
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
import { formaterPeriodeSlutt, formaterPeriodeStart, tilsagnTypeToString } from "@/utils/Utils";
22
import {
3+
Besluttelse,
4+
DelutbetalingStatus,
35
TilsagnDto,
46
TilsagnStatus,
5-
Totrinnskontroll,
6-
DelutbetalingStatus,
7+
TotrinnskontrollDto,
78
} from "@mr/api-client-v2";
89
import { Alert, Checkbox, Table, TextField } from "@navikt/ds-react";
910
import { useState } from "react";
@@ -18,7 +19,7 @@ interface Props {
1819
tilsagn: TilsagnDto;
1920
belop: number;
2021
gjorOppTilsagn: boolean;
21-
opprettelse?: Totrinnskontroll;
22+
opprettelse?: TotrinnskontrollDto;
2223
status?: DelutbetalingStatus;
2324
kanRedigere: boolean;
2425
onDelutbetalingChange: (d: NyDelutbetaling) => void;
@@ -60,7 +61,7 @@ export function OpprettDelutbetalingRow({
6061
key={tilsagn.id}
6162
content={
6263
<>
63-
{opprettelse && (
64+
{opprettelse?.type === "BESLUTTET" && opprettelse.besluttelse === Besluttelse.AVVIST && (
6465
<AvvistAlert
6566
entitet="utbetalingen"
6667
header="Utbetaling returnert"

frontend/mr-admin-flate/src/mocks/endpoints/tilsagnHandler.ts

+44-54
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import {
2+
Besluttelse,
23
GetForhandsgodkjenteSatserResponse,
34
TilsagnAvvisningAarsak,
45
TilsagnDefaults,
@@ -7,6 +8,8 @@ import {
78
TilsagnRequest,
89
TilsagnStatus,
910
TilsagnTilAnnulleringAarsak,
11+
TotrinnskontrollBesluttetDto,
12+
TotrinnskontrollTilBeslutningDto,
1013
} from "@mr/api-client-v2";
1114
import { http, HttpResponse, PathParams } from "msw";
1215
import { mockTilsagn } from "../fixtures/mock_tilsagn";
@@ -74,36 +77,55 @@ export const tilsagnHandlers = [
7477
}),
7578
];
7679

80+
const tilBeslutning: TotrinnskontrollTilBeslutningDto = {
81+
type: "TIL_BESLUTNING",
82+
behandletAv: "B123456",
83+
behandletTidspunkt: "2024-01-01T22:00:00",
84+
aarsaker: [],
85+
kanBesluttes: true,
86+
};
87+
88+
const godkjent: TotrinnskontrollBesluttetDto = {
89+
type: "BESLUTTET",
90+
behandletAv: "B123456",
91+
behandletTidspunkt: "2024-01-01T22:00:00",
92+
besluttetAv: "F123456",
93+
besluttetTidspunkt: "2024-01-01T22:00:00",
94+
aarsaker: [],
95+
kanBesluttes: false,
96+
besluttelse: Besluttelse.GODKJENT,
97+
};
98+
99+
const avvist: TotrinnskontrollBesluttetDto = {
100+
type: "BESLUTTET",
101+
behandletAv: "B123456",
102+
behandletTidspunkt: "2024-01-01T22:00:00",
103+
besluttetAv: "F123456",
104+
besluttetTidspunkt: "2024-01-01T22:00:00",
105+
aarsaker: [],
106+
kanBesluttes: false,
107+
besluttelse: Besluttelse.AVVIST,
108+
};
109+
77110
function toTilsagnDetaljerDto(tilsagn: TilsagnDto): TilsagnDetaljerDto {
78111
switch (tilsagn.status) {
79112
case TilsagnStatus.TIL_GODKJENNING:
80113
return {
81114
tilsagn,
82-
opprettelse: {
83-
behandletAv: "B123456",
84-
behandletTidspunkt: "2024-01-01T22:00:00",
85-
},
115+
opprettelse: tilBeslutning,
86116
};
87117

88118
case TilsagnStatus.GODKJENT:
89119
return {
90120
tilsagn,
91-
opprettelse: {
92-
behandletAv: "B123456",
93-
behandletTidspunkt: "2024-01-01T22:00:00",
94-
besluttetAv: "F123456",
95-
besluttetTidspunkt: "2024-01-01T22:00:00",
96-
},
121+
opprettelse: godkjent,
97122
};
98123

99124
case TilsagnStatus.RETURNERT:
100125
return {
101126
tilsagn,
102127
opprettelse: {
103-
behandletAv: "B123456",
104-
behandletTidspunkt: "2024-01-09",
105-
besluttetAv: "N12345",
106-
besluttetTidspunkt: "2024-01-10",
128+
...avvist,
107129
aarsaker: [TilsagnAvvisningAarsak.FEIL_ANTALL_PLASSER, TilsagnAvvisningAarsak.FEIL_ANNET],
108130
forklaring: "Du må fikse antall plasser. Det skal være 25 plasser.",
109131
},
@@ -112,15 +134,9 @@ function toTilsagnDetaljerDto(tilsagn: TilsagnDto): TilsagnDetaljerDto {
112134
case TilsagnStatus.TIL_ANNULLERING:
113135
return {
114136
tilsagn,
115-
opprettelse: {
116-
behandletAv: "B123456",
117-
behandletTidspunkt: "2024-01-01T22:00:00",
118-
besluttetAv: "F123456",
119-
besluttetTidspunkt: "2024-01-01T22:00:00",
120-
},
137+
opprettelse: godkjent,
121138
annullering: {
122-
behandletAv: "B123456",
123-
behandletTidspunkt: "2024-01-01T22:00:00",
139+
...tilBeslutning,
124140
aarsaker: [
125141
TilsagnTilAnnulleringAarsak.FEIL_REGISTRERING,
126142
TilsagnTilAnnulleringAarsak.FEIL_ANNET,
@@ -132,55 +148,29 @@ function toTilsagnDetaljerDto(tilsagn: TilsagnDto): TilsagnDetaljerDto {
132148
case TilsagnStatus.ANNULLERT:
133149
return {
134150
tilsagn,
135-
opprettelse: {
136-
behandletAv: "B123456",
137-
behandletTidspunkt: "2024-01-01T22:00:00",
138-
besluttetAv: "F123456",
139-
besluttetTidspunkt: "2024-01-01T22:00:00",
140-
},
151+
opprettelse: godkjent,
141152
annullering: {
142-
behandletAv: "B123456",
143-
behandletTidspunkt: "2024-01-01T22:00:00",
153+
...godkjent,
144154
aarsaker: [
145155
TilsagnTilAnnulleringAarsak.FEIL_REGISTRERING,
146156
TilsagnTilAnnulleringAarsak.FEIL_ANNET,
147157
],
148158
forklaring: "Du må fikse antall plasser. Det skal være 25 plasser.",
149-
besluttetAv: "F123456",
150-
besluttetTidspunkt: "2024-01-01T22:00:00",
151159
},
152160
};
153161

154162
case TilsagnStatus.TIL_OPPGJOR:
155163
return {
156164
tilsagn,
157-
opprettelse: {
158-
behandletAv: "B123456",
159-
behandletTidspunkt: "2024-01-01T22:00:00",
160-
besluttetAv: "F123456",
161-
besluttetTidspunkt: "2024-01-01T22:00:00",
162-
},
163-
tilOppgjor: {
164-
behandletAv: "B123456",
165-
behandletTidspunkt: "2024-01-01T22:00:00",
166-
},
165+
opprettelse: godkjent,
166+
tilOppgjor: tilBeslutning,
167167
};
168168

169169
case TilsagnStatus.OPPGJORT:
170170
return {
171171
tilsagn,
172-
opprettelse: {
173-
behandletAv: "B123456",
174-
behandletTidspunkt: "2024-01-01T22:00:00",
175-
besluttetAv: "F123456",
176-
besluttetTidspunkt: "2024-01-01T22:00:00",
177-
},
178-
tilOppgjor: {
179-
behandletAv: "B123456",
180-
behandletTidspunkt: "2024-01-01T22:00:00",
181-
besluttetAv: "F123456",
182-
besluttetTidspunkt: "2024-01-01T22:00:00",
183-
},
172+
opprettelse: godkjent,
173+
tilOppgjor: godkjent,
184174
};
185175
}
186176
}

frontend/mr-admin-flate/src/pages/gjennomforing/tilsagn/AarsakerAlert.tsx

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
import {
22
TilsagnAvvisningAarsak,
33
TilsagnTilAnnulleringAarsak,
4-
Totrinnskontroll,
4+
TotrinnskontrollDto,
55
} from "@mr/api-client-v2";
66
import { Alert, Heading } from "@navikt/ds-react";
7-
import { formaterDato, tilsagnAarsakTilTekst } from "../../../utils/Utils";
7+
import { formaterDato, tilsagnAarsakTilTekst } from "@/utils/Utils";
88

9-
export function TilAnnulleringAlert({ annullering }: { annullering: Totrinnskontroll }) {
9+
export function TilAnnulleringAlert({ annullering }: { annullering: TotrinnskontrollDto }) {
1010
const aarsaker =
1111
annullering.aarsaker?.map((aarsak) =>
1212
tilsagnAarsakTilTekst(aarsak as TilsagnTilAnnulleringAarsak),
@@ -34,7 +34,7 @@ export function TilAnnulleringAlert({ annullering }: { annullering: Totrinnskont
3434
);
3535
}
3636

37-
export function TilOppgjorAlert({ oppgjor }: { oppgjor: Totrinnskontroll }) {
37+
export function TilOppgjorAlert({ oppgjor }: { oppgjor: TotrinnskontrollDto }) {
3838
const aarsaker =
3939
oppgjor.aarsaker?.map((aarsak) =>
4040
tilsagnAarsakTilTekst(aarsak as TilsagnTilAnnulleringAarsak),

frontend/mr-admin-flate/src/pages/gjennomforing/tilsagn/TilsagnTag.tsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
import { TilsagnStatus, TilsagnTilAnnulleringAarsak, Totrinnskontroll } from "@mr/api-client-v2";
1+
import { TilsagnStatus, TilsagnTilAnnulleringAarsak, TotrinnskontrollDto } from "@mr/api-client-v2";
22
import { BodyLong, List, Tag, VStack } from "@navikt/ds-react";
33
import { useState } from "react";
44
import { tilsagnAarsakTilTekst } from "@/utils/Utils";
55

66
interface Props {
77
status: TilsagnStatus;
88
expandable?: boolean;
9-
annullering?: Totrinnskontroll;
9+
annullering?: TotrinnskontrollDto;
1010
}
1111

1212
export function TilsagnTag(props: Props) {

0 commit comments

Comments
 (0)