Skip to content

Commit

Permalink
Flytt status til backend for tilsagn
Browse files Browse the repository at this point in the history
  • Loading branch information
sndrem committed Dec 3, 2024
1 parent 0b45fbf commit 2936e28
Show file tree
Hide file tree
Showing 7 changed files with 227 additions and 23 deletions.
7 changes: 7 additions & 0 deletions frontend/mr-admin-flate/src/mocks/fixtures/mock_tilsagn.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import {
TilsagnAvvisningAarsak,
TilsagnBesluttelseStatus,
TilsagnDto,
TilsagnStatus,
} from "@mr/api-client";
import { mockArrangorer } from "./mock_arrangorer";
import { mockTiltaksgjennomforinger } from "./mock_tiltaksgjennomforinger";
Expand All @@ -28,6 +29,7 @@ export const mockTilsagn: TilsagnDto[] = [
antallPlasser: mockTiltaksgjennomforinger[0].antallPlasser || 15,
},
opprettetAv: "B123456",
status: TilsagnStatus.TIL_GODKJENNING,
},
{
arrangor: mockArrangorer.data[0],
Expand All @@ -48,6 +50,7 @@ export const mockTilsagn: TilsagnDto[] = [
antallPlasser: mockTiltaksgjennomforinger[0].antallPlasser || 15,
},
opprettetAv: "F123456",
status: TilsagnStatus.TIL_GODKJENNING,
},
{
arrangor: mockArrangorer.data[0],
Expand All @@ -68,6 +71,7 @@ export const mockTilsagn: TilsagnDto[] = [
antallPlasser: mockTiltaksgjennomforinger[0].antallPlasser || 15,
},
opprettetAv: "F123456",
status: TilsagnStatus.TIL_GODKJENNING,
},
{
arrangor: mockArrangorer.data[0],
Expand All @@ -94,6 +98,7 @@ export const mockTilsagn: TilsagnDto[] = [
tidspunkt: "2024-01-10",
status: TilsagnBesluttelseStatus.GODKJENT,
},
status: TilsagnStatus.GODKJENT,
},
{
arrangor: mockArrangorer.data[0],
Expand All @@ -115,6 +120,7 @@ export const mockTilsagn: TilsagnDto[] = [
},
opprettetAv: "F123456",
annullertTidspunkt: "2024-05-10",
status: TilsagnStatus.ANNULERT,
},
{
arrangor: mockArrangorer.data[0],
Expand Down Expand Up @@ -143,5 +149,6 @@ export const mockTilsagn: TilsagnDto[] = [
aarsaker: [TilsagnAvvisningAarsak.FEIL_ANTALL_PLASSER, TilsagnAvvisningAarsak.FEIL_ANNET],
forklaring: "Du må fikse antall plasser. Det skal være 25 plasser.",
},
status: TilsagnStatus.RETURNERT,
},
];
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
.annulert_tag {
text-decoration: line-through;
background-color: white;
color: var(--a-text-danger);
border-color: var(--a-text-danger);
}
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
import { formaterDato } from "@/utils/Utils";
import { TilsagnBesluttelseStatus, TilsagnDto } from "@mr/api-client";
import { TilsagnBesluttelseStatus, TilsagnDto, TilsagnStatus } from "@mr/api-client";
import { formaterNOK } from "@mr/frontend-common/utils/utils";
import { HelpText, HStack, SortState, Table, Tag } from "@navikt/ds-react";
import { TableColumnHeader } from "@navikt/ds-react/Table";
import { useState } from "react";
import { Link, useParams } from "react-router-dom";
import styles from "./Tilsagnstabell.module.scss";

interface Props {
tilsagn: TilsagnDto[];
Expand Down Expand Up @@ -43,33 +44,45 @@ export function Tilsagnstabell({ tilsagn }: Props) {
return 0;
}

function TilsagnStatus(props: { tilsagn: TilsagnDto }) {
function TilsagnStatusTag(props: { tilsagn: TilsagnDto }) {
const { tilsagn } = props;
const { status } = tilsagn;

if (tilsagn.besluttelse) {
return (
<>
<Tag
variant={
tilsagn.besluttelse.status === TilsagnBesluttelseStatus.GODKJENT
? "success"
: "warning"
}
>
switch (status) {
case TilsagnStatus.GODKJENT:
return tilsagn.besluttelse ? (
<Tag variant="success">
<HStack justify={"space-between"} gap="2" align={"center"}>
{besluttelseTilTekst(tilsagn.besluttelse.status)}{" "}
Godkjent
<HelpText>
{besluttelseTilTekst(tilsagn.besluttelse.status)} den{" "}
{formaterDato(tilsagn.besluttelse.tidspunkt)} av {tilsagn.besluttelse.navIdent}
</HelpText>
</HStack>
</Tag>
</>
);
} else if (tilsagn.annullertTidspunkt) {
return <Tag variant="neutral"> Annullert</Tag>;
} else {
return <Tag variant="info">Til beslutning</Tag>;
) : null;
case TilsagnStatus.RETURNERT:
return tilsagn.besluttelse ? (
<Tag variant="error">
<HStack justify={"space-between"} gap="2" align={"center"}>
Returnert
<HelpText>
{besluttelseTilTekst(tilsagn.besluttelse.status)} den{" "}
{formaterDato(tilsagn.besluttelse.tidspunkt)} av {tilsagn.besluttelse.navIdent}
</HelpText>
</HStack>
</Tag>
) : null;
case TilsagnStatus.OPPGJORT:
return <Tag variant="neutral">Oppgjort</Tag>;
case TilsagnStatus.ANNULERT:
return (
<Tag variant="neutral" className={styles.annulert_tag}>
Annullert
</Tag>
);
case TilsagnStatus.TIL_GODKJENNING:
return <Tag variant="alt1">Til godkjenning</Tag>;
}
}

Expand Down Expand Up @@ -104,7 +117,9 @@ export function Tilsagnstabell({ tilsagn }: Props) {
<TableColumnHeader sortKey="beregning.belop" sortable>
Beløp
</TableColumnHeader>
<TableColumnHeader>Status</TableColumnHeader>
<TableColumnHeader sortKey={"status"} sortable>
Status
</TableColumnHeader>
<TableColumnHeader></TableColumnHeader>
</Table.Row>
</Table.Header>
Expand All @@ -120,7 +135,7 @@ export function Tilsagnstabell({ tilsagn }: Props) {
<Table.DataCell>{tiltaksgjennomforing.antallPlasser}</Table.DataCell>
<Table.DataCell>{formaterNOK(beregning.belop)}</Table.DataCell>
<Table.DataCell>
<TilsagnStatus tilsagn={tilsagn} />
<TilsagnStatusTag tilsagn={tilsagn} />
</Table.DataCell>

<Table.DataCell>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -203,7 +203,8 @@ class TilsagnRepository(private val db: Database) {
besluttet_av = :nav_ident,
besluttet_tidspunkt = :tidspunkt,
avvist_aarsaker = :avvist_aarsak::avvist_aarsak_type[],
avvist_forklaring = :avvist_forklaring
avvist_forklaring = :avvist_forklaring,
annullert_tidspunkt = null
where id = :id::uuid
""".trimIndent()

Expand Down Expand Up @@ -246,6 +247,7 @@ class TilsagnRepository(private val db: Database) {
arrayOrNull<String>("avvist_aarsaker")?.toList()?.map { AvvistTilsagnAarsak.valueOf(it) }
val avvistForklaring = stringOrNull("avvist_forklaring")
val besluttelse = stringOrNull("besluttelse")
val annullertTidspunkt = localDateTimeOrNull("annullert_tidspunkt")

return TilsagnDto(
id = uuid("id"),
Expand All @@ -266,7 +268,7 @@ class TilsagnRepository(private val db: Database) {
beslutternavn = string("beslutternavn"),
)
},
annullertTidspunkt = localDateTimeOrNull("annullert_tidspunkt"),
annullertTidspunkt = annullertTidspunkt,
lopenummer = int("lopenummer"),
kostnadssted = NavEnhetDbo(
enhetsnummer = string("kostnadssted"),
Expand All @@ -282,9 +284,24 @@ class TilsagnRepository(private val db: Database) {
slettet = boolean("arrangor_slettet"),
),
beregning = Json.decodeFromString<Prismodell.TilsagnBeregning>(string("beregning")),
status = utledStatus(besluttelse, annullertTidspunkt)
)
}

private fun utledStatus(besluttelse: String?, annullertTidspunkt: LocalDateTime?,): TilsagnDto.TilsagnStatus {

if(annullertTidspunkt != null) {
return TilsagnDto.TilsagnStatus.ANNULERT
}

return when (besluttelse) {
"GODKJENT" -> TilsagnDto.TilsagnStatus.GODKJENT
"AVVIST" -> TilsagnDto.TilsagnStatus.RETURNERT
null -> TilsagnDto.TilsagnStatus.TIL_GODKJENNING
else -> TilsagnDto.TilsagnStatus.OPPGJORT
}
}

private fun Row.toArrangorflateTilsagn(): ArrangorflateTilsagn {
return ArrangorflateTilsagn(
id = uuid("id"),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ data class TilsagnDto(
val arrangor: Arrangor,
val besluttelse: Besluttelse?,
val tiltaksgjennomforing: Tiltaksgjennomforing,
val status: TilsagnStatus,
) {
@Serializable
data class Arrangor(
Expand Down Expand Up @@ -56,4 +57,13 @@ data class TilsagnDto(
val id: UUID,
val antallPlasser: Int,
)

@Serializable
enum class TilsagnStatus {
TIL_GODKJENNING,
GODKJENT,
RETURNERT,
ANNULERT,
OPPGJORT
}
}
12 changes: 12 additions & 0 deletions mulighetsrommet-api/src/main/resources/web/openapi.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4824,6 +4824,8 @@ components:
required:
- id
- antallPlasser
status:
$ref: "#/components/schemas/TilsagnStatus"
required:
- id
- tiltaksgjennomforingId
Expand All @@ -4836,6 +4838,16 @@ components:
- lopenummer
- opprettetAv
- tiltaksgjennomforing
- status

TilsagnStatus:
type: string
enum:
- TIL_GODKJENNING
- GODKJENT
- RETURNERT
- ANNULERT
- OPPGJORT

TilsagnBesluttelseDto:
type: object
Expand Down
Loading

0 comments on commit 2936e28

Please sign in to comment.