From 3f3be0d6c65312b27afea1603cd3a086bbeacb61 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Odd=20Andreas=20S=C3=B8rs=C3=A6ther?= Date: Wed, 15 Jan 2025 13:45:43 +0100 Subject: [PATCH] Hent reell sats fra backend MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Vi hadde fortsatt hardkodede beløp for VTAO-sats i frontend, uten noen måte å hente oppdatert beløp på. Innfører derfor et nytt api-endepunkt for henting av sats, og bruker denne i BeregningVtaoTilskuddSteg. For å unngå forvirring ved etterregistrering og lignende merker vi tidligere tilskuddsperioder med en liten annotasjon som sier at de har en annen sats enn den som er synlig. --- package-lock.json | 3 ++ package.json | 1 + .../BeregningVTAOTilskuddSteg.tsx | 38 ++++++++++++------- .../VisningTilskuddsperioderTabellVtao.tsx | 38 ++++++++++++++----- .../VisningTilskuddsperioderVtao.tsx | 3 +- src/services/rest-service.ts | 5 +++ 6 files changed, 63 insertions(+), 25 deletions(-) diff --git a/package-lock.json b/package-lock.json index 156163f9..79c37d4e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -20,6 +20,7 @@ "axios": "1.7.7", "axios-retry": "4.5.0", "classnames": "^2.5.1", + "date-fns": "^3.6.0", "lodash.debounce": "^4.0.8", "lodash.isequal": "^4.5.0", "lodash.sortby": "^4.7.0", @@ -4447,6 +4448,7 @@ "version": "3.6.0", "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-3.6.0.tgz", "integrity": "sha512-fRHTG8g/Gif+kSh50gaGEdToemgfj74aRX3swtiouboip5JDLAyDE9F11nHMIcvOaXeOC6D7SpNhi7uFyB7Uww==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/kossnocorp" @@ -7562,6 +7564,7 @@ "version": "8.10.0", "resolved": "https://registry.npmjs.org/react-day-picker/-/react-day-picker-8.10.0.tgz", "integrity": "sha512-mz+qeyrOM7++1NCb1ARXmkjMkzWVh2GL9YiPbRjKe0zHccvekk4HE+0MPOZOrosn8r8zTHIIeOUXTmXRqmkRmg==", + "license": "MIT", "funding": { "type": "individual", "url": "https://github.com/sponsors/gpbl" diff --git a/package.json b/package.json index bd9a5e06..ff67aafb 100644 --- a/package.json +++ b/package.json @@ -32,6 +32,7 @@ "axios": "1.7.7", "axios-retry": "4.5.0", "classnames": "^2.5.1", + "date-fns": "^3.6.0", "lodash.debounce": "^4.0.8", "lodash.isequal": "^4.5.0", "lodash.sortby": "^4.7.0", diff --git a/src/AvtaleSide/steg/BeregningTilskudd/BeregningVTAOTilskuddSteg.tsx b/src/AvtaleSide/steg/BeregningTilskudd/BeregningVTAOTilskuddSteg.tsx index eb6494c1..7ae737ad 100644 --- a/src/AvtaleSide/steg/BeregningTilskudd/BeregningVTAOTilskuddSteg.tsx +++ b/src/AvtaleSide/steg/BeregningTilskudd/BeregningVTAOTilskuddSteg.tsx @@ -1,27 +1,37 @@ import { AvtaleContext } from '@/AvtaleProvider'; -import { InnloggetBrukerContext } from '@/InnloggingBoundary/InnloggingBoundary'; import SkjemaTittel from '@/komponenter/form/SkjemaTittel'; import Innholdsboks from '@/komponenter/Innholdsboks/Innholdsboks'; import LagreKnapp from '@/komponenter/LagreKnapp/LagreKnapp'; import VerticalSpacer from '@/komponenter/layout/VerticalSpacer'; import BEMHelper from '@/utils/bem'; import { Column, Row } from '@/komponenter/NavGrid/Grid'; -import { BodyShort, Heading, TextField } from '@navikt/ds-react'; -import { FunctionComponent, useContext } from 'react'; -import VisningTilskuddsperioder from '@/AvtaleSide/steg/BeregningTilskudd/visningTilskuddsperioder/VisningTilskuddsperioder'; +import { BodyShort, Heading } from '@navikt/ds-react'; +import { FunctionComponent, useContext, useEffect, useState } from 'react'; import HenteKontonummer from '@/komponenter/form/henteKontornummer/HenteKontonummer'; import './BeregningTilskuddSteg.less'; import AvtaleStatus from '@/AvtaleSide/AvtaleStatus/AvtaleStatus'; import VisueltDisabledInputFelt from '@/komponenter/VisueltDisabledInputFelt/VisueltDisabledInputFelt'; import VisningTilskuddsperioderVtao from './visningTilskuddsperioder/VisningTilskuddsperioderVtao'; +import { hentVtaoSats } from '@/services/rest-service'; +import { formaterPenger } from '@/utils/PengeUtils'; +import { format } from 'date-fns'; const cls = BEMHelper('beregningTilskuddSteg'); -const BeregningTilskuddSteg: FunctionComponent = () => { - const innloggetBruker = useContext(InnloggetBrukerContext); - +const BeregningVTAOTilskuddSteg: FunctionComponent = () => { const { avtale, lagreAvtale } = useContext(AvtaleContext); + const [sats, setSats] = useState<{ aar: number; belop: number }>({ aar: NaN, belop: NaN }); + + const satsBelop = isNaN(sats.belop) ? '...' : formaterPenger(sats.belop); + const satsAar = isNaN(sats.aar) ? '...' : sats.aar; + + useEffect(() => { + hentVtaoSats(format(new Date(avtale.opprettetTidspunkt), 'yyyy-MM-dd')).then((data) => { + setSats(data); + }); + }, [avtale]); + return ( <> @@ -31,19 +41,19 @@ const BeregningTilskuddSteg: FunctionComponent = () => { Hvor mye dekker tilskuddet? - Arbeidsgiveren får et tilskudd fra NAV for varig tilrettelagt arbeid. Tilskuddssatsen er 6 808 - kroner per måned. Satsen settes årlig av departementet og avtale- og refusjonsløsningen vil - automatisk oppdateres når det kommer nye satser. + Arbeidsgiveren får et tilskudd fra NAV for varig tilrettelagt arbeid. Tilskuddssatsen er {satsBelop}{' '} + per måned. Satsen settes årlig av departementet og avtale- og refusjonsløsningen vil automatisk + oppdateres når det kommer nye satser.
- + @@ -58,4 +68,4 @@ const BeregningTilskuddSteg: FunctionComponent = () => { ); }; -export default BeregningTilskuddSteg; +export default BeregningVTAOTilskuddSteg; diff --git a/src/AvtaleSide/steg/BeregningTilskudd/visningTilskuddsperioder/VisningTilskuddsperioderTabellVtao.tsx b/src/AvtaleSide/steg/BeregningTilskudd/visningTilskuddsperioder/VisningTilskuddsperioderTabellVtao.tsx index c00f6d36..cedb5fb7 100644 --- a/src/AvtaleSide/steg/BeregningTilskudd/visningTilskuddsperioder/VisningTilskuddsperioderTabellVtao.tsx +++ b/src/AvtaleSide/steg/BeregningTilskudd/visningTilskuddsperioder/VisningTilskuddsperioderTabellVtao.tsx @@ -1,4 +1,4 @@ -import React, { useContext, useState } from 'react'; +import React, { useContext, useEffect, useState } from 'react'; import { BodyShort, Label } from '@navikt/ds-react'; import { TilskuddsPeriode } from '@/types/avtale'; import { formatterDato, NORSK_DATO_FORMAT } from '@/utils/datoUtils'; @@ -25,6 +25,10 @@ const VisningTilskuddsperioderTabellVtao: React.FC = ({ className }: const { startIndexVisning, sluttIndexVisning } = getIndexVisningForTilskuddsperiode(avtale, visAllePerioder); const cls = BEMHelper(className); const sistePeriode = avtale.tilskuddPeriode.at(antallAktiveTilskuddsperioder(avtale) - 1); + const sistePeriodeAar = sistePeriode ? moment(sistePeriode?.startDato).year() : undefined; + const sistePeriodeErITidligereAar = sistePeriodeAar + ? sistePeriodeAar < moment(avtale.opprettetTidspunkt).year() + : false; return (
@@ -38,13 +42,22 @@ const VisningTilskuddsperioderTabellVtao: React.FC = ({ className }: .filter((p: TilskuddsPeriode) => p.aktiv) .slice(startIndexVisning, sluttIndexVisning) .map((periode: TilskuddsPeriode, index: number) => { + const periodeAar = moment(periode.startDato).year(); + const erITidligereAar = periodeAar < moment(avtale.opprettetTidspunkt).year(); return (
- - {formatterDato(periode.startDato, NORSK_DATO_FORMAT)} -{' '} - {formatterDato(periode.sluttDato, NORSK_DATO_FORMAT)} - +
+ + {formatterDato(periode.startDato, NORSK_DATO_FORMAT)} -{' '} + {formatterDato(periode.sluttDato, NORSK_DATO_FORMAT)} + + {erITidligereAar && ( + + Sats for {periodeAar} + + )} +
{innloggetBruker.erNavAnsatt && ( @@ -66,10 +79,17 @@ const VisningTilskuddsperioderTabellVtao: React.FC = ({ className }: ...
- - {formatterDato(sistePeriode.startDato, NORSK_DATO_FORMAT)} -{' '} - {formatterDato(sistePeriode.sluttDato, NORSK_DATO_FORMAT)} - +
+ + {formatterDato(sistePeriode.startDato, NORSK_DATO_FORMAT)} -{' '} + {formatterDato(sistePeriode.sluttDato, NORSK_DATO_FORMAT)} + + {sistePeriodeErITidligereAar && ( + + Sats for {sistePeriodeAar} + + )} +
{innloggetBruker.erNavAnsatt && ( diff --git a/src/AvtaleSide/steg/BeregningTilskudd/visningTilskuddsperioder/VisningTilskuddsperioderVtao.tsx b/src/AvtaleSide/steg/BeregningTilskudd/visningTilskuddsperioder/VisningTilskuddsperioderVtao.tsx index a4d6d31a..a94f26a7 100644 --- a/src/AvtaleSide/steg/BeregningTilskudd/visningTilskuddsperioder/VisningTilskuddsperioderVtao.tsx +++ b/src/AvtaleSide/steg/BeregningTilskudd/visningTilskuddsperioder/VisningTilskuddsperioderVtao.tsx @@ -1,6 +1,6 @@ import { AvtaleContext } from '@/AvtaleProvider'; import BEMHelper from '@/utils/bem'; -import { BodyShort, Label } from '@navikt/ds-react'; +import { Label } from '@navikt/ds-react'; import { FunctionComponent, useContext } from 'react'; import './visningTilskuddsperioder.less'; import VerticalSpacer from '@/komponenter/layout/VerticalSpacer'; @@ -15,7 +15,6 @@ const VisningTilskuddsperioderVtao: FunctionComponent = () => { - (2024 - satser)
diff --git a/src/services/rest-service.ts b/src/services/rest-service.ts index d82f2a10..06742b6d 100644 --- a/src/services/rest-service.ts +++ b/src/services/rest-service.ts @@ -579,3 +579,8 @@ export const justerArenaMigreringsdatoDryRun = async (avtale: Avtale, migrerings const response = await api.post(`/avtaler/${avtale.id}/juster-arena-migreringsdato/dry-run`, { migreringsdato }); return response.data; }; +export const hentVtaoSats = async (forDato?: string): Promise<{ aar: number; belop: number }> => { + const queryParams = new URLSearchParams(removeEmpty({ forDato })); + const response = await api.get(`/satser/vtao?${queryParams}`); + return response.data; +};