Skip to content

Commit

Permalink
Dynamisk g vedtaksbrev (#2587)
Browse files Browse the repository at this point in the history
Lagd en hook som henter en liste med grunnbeløpsperioder. Disse blir brukt for å sette seks G i frontend og Sanity.
  • Loading branch information
gunnsteingarmo authored Oct 17, 2023
1 parent 9139ed7 commit 14795a9
Show file tree
Hide file tree
Showing 3 changed files with 65 additions and 18 deletions.
37 changes: 37 additions & 0 deletions src/frontend/App/hooks/felles/useHentGrunnbeløpsperioder.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
import { Ressurs } from '@navikt/familie-typer';
import { useCallback, useState } from 'react';
import { useApp } from '../../context/AppContext';
import { RessursStatus } from '../../typer/ressurs';

type GrunnbeløpData = {
periode: { fom: string; tom: string };
grunnbeløp: number;
grunnbeløpPerMåned: number;
gjennomsnittPerÅr: number;
seksGangerGrunnbeløp: number;
seksGangerGrunnbeløpPerMåned: number;
};

const tomGrunnbeløpsdata: GrunnbeløpData[] = [];

export const useHentNyesteGrunnbeløpOgAntallGrunnbeløpsperioderTilbakeITid = (antall: number) => {
const { axiosRequest } = useApp();

const [grunnbeløpsperioder, settGrunnbeløpsperioder] =
useState<GrunnbeløpData[]>(tomGrunnbeløpsdata);

const hentGrunnbeløpsperioderCallback = useCallback(() => {
axiosRequest<GrunnbeløpData[], { antall: number }>({
method: 'GET',
url: `/familie-ef-sak/api/beregning/grunnbelopForPerioder`,
params: { antall },
}).then((res: Ressurs<GrunnbeløpData[]>) => {
res.status === RessursStatus.SUKSESS && settGrunnbeløpsperioder(res.data);
});
}, [axiosRequest, antall]);

return {
grunnbeløpsperioder,
hentGrunnbeløpsperioderCallback,
};
};
14 changes: 13 additions & 1 deletion src/frontend/App/hooks/useVerdierForBrev.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import { IBeløpsperiode, IBeregningsperiodeBarnetilsyn } from '../typer/vedtak'
import { Behandling } from '../typer/fagsak';
import { useInntektsendringAvslagFlettefelt } from './useInntektsendringAvslagFlettefelt';
import { Ressurs, RessursStatus } from '../typer/ressurs';
import { useHentNyesteGrunnbeløpOgAntallGrunnbeløpsperioderTilbakeITid } from './felles/useHentGrunnbeløpsperioder';

export enum EBehandlingFlettefelt {
fomdatoInnvilgelseForstegangsbehandling = 'fomdatoInnvilgelseForstegangsbehandling',
Expand All @@ -12,6 +13,7 @@ export enum EBehandlingFlettefelt {
tomdatoInnvilgelse = 'tomdatoInnvilgelse',
fomdatoInnvilgelseBarnetilsyn = 'fomdatoInnvilgelseBarnetilsyn',
tomdatoInnvilgelseBarnetilsyn = 'tomdatoInnvilgelseBarnetilsyn',
seksGangerGrunnbelop = 'seksGangerGrunnbelop',
fomdatoRevurderingBT = 'fomdatoRevurderingBT',
tomdatoRevurderingBT = 'tomdatoRevurderingBT',
belopInntektPlussTiProsentv2 = 'belopInntektPlussTiProsentv2', // Innvilgelse 10% økning
Expand Down Expand Up @@ -60,6 +62,8 @@ export const useVerdierForBrev = (
const [flettefeltStore, settFlettefeltStore] = useState<FlettefeltStore>({});
const [valgfeltStore, settValgfeltStore] = useState<ValgfeltStore>({});
const [delmalStore, settDelmalStore] = useState<DelmalStore>([]);
const { grunnbeløpsperioder, hentGrunnbeløpsperioderCallback } =
useHentNyesteGrunnbeløpOgAntallGrunnbeløpsperioderTilbakeITid(1);

const leggTilNyeFlettefelt = (nyeFlettefelt: FlettefeltStore) => {
settFlettefeltStore((prevState) => ({
Expand All @@ -74,6 +78,12 @@ export const useVerdierForBrev = (
leggTilNyeFlettefelt
);

useEffect(() => {
hentGrunnbeløpsperioderCallback();
}, [hentGrunnbeløpsperioderCallback]);

const seksGangerGrunnbeløpTall = grunnbeløpsperioder[0]?.seksGangerGrunnbeløp;

useEffect(() => {
if (
beløpsperioder &&
Expand All @@ -85,6 +95,7 @@ export const useVerdierForBrev = (
beløpsperioder.data[beløpsperioder.data.length - 1].periode.tildato
);
const fraDato = formaterIsoDato(beløpsperioder.data[0].periode.fradato);
const seksGangerGrunnbeløp = seksGangerGrunnbeløpTall?.toLocaleString('nb-NO');

if (innholderBeløpsperioderForOvergangsstønad(beløpsperioder.data)) {
const inntektsgrunnlag =
Expand Down Expand Up @@ -120,11 +131,12 @@ export const useVerdierForBrev = (
[EBehandlingFlettefelt.fomdatoInnvilgelse]: fraDato,
[EBehandlingFlettefelt.fomdatoInnvilgelseBarnetilsyn]: fraDato,
[EBehandlingFlettefelt.tomdatoInnvilgelseBarnetilsyn]: tilDato,
[EBehandlingFlettefelt.seksGangerGrunnbelop]: seksGangerGrunnbeløp,
[EBehandlingFlettefelt.fomdatoRevurderingBT]: fraDato,
[EBehandlingFlettefelt.tomdatoRevurderingBT]: tilDato,
});
}
}, [beløpsperioder]);
}, [beløpsperioder, seksGangerGrunnbeløpTall]);

useEffect(() => {
settFlettefeltForAvslagMindreInntektsøkning();
Expand Down
Original file line number Diff line number Diff line change
@@ -1,40 +1,38 @@
import React, { FC } from 'react';
import React, { FC, useEffect } from 'react';
import { formaterTallMedTusenSkille } from '../../../../App/utils/formatter';
import TabellVisning from '../../Tabell/TabellVisning';
import { VilkårInfoIkon } from '../../Vilkårpanel/VilkårInformasjonKomponenter';
import { useHentNyesteGrunnbeløpOgAntallGrunnbeløpsperioderTilbakeITid } from '../../../../App/hooks/felles/useHentGrunnbeløpsperioder';

export const GrunnbeløpInfo: FC = () => {
const grunnbeløpGanger6 = [
{
fra: '01.05.2023',
grunnbeløpÅr: 711720,
grunnbeløpMåned: 59310,
},
{
fra: '01.05.2022',
grunnbeløpÅr: 668862,
grunnbeløpMåned: 55739,
},
];
const { grunnbeløpsperioder, hentGrunnbeløpsperioderCallback } =
useHentNyesteGrunnbeløpOgAntallGrunnbeløpsperioderTilbakeITid(2);

useEffect(() => {
hentGrunnbeløpsperioderCallback();
}, [hentGrunnbeløpsperioderCallback]);

return (
<div>
<TabellVisning
ikon={VilkårInfoIkon.PENGESEKK}
tittel="6 ganger grunnbeløpet"
verdier={grunnbeløpGanger6}
verdier={grunnbeløpsperioder}
minimerKolonnebredde={true}
kolonner={[
{
overskrift: 'Fra',
tekstVerdi: (d) => d.fra,
tekstVerdi: (d) => d.periode.fom,
},
{
overskrift: '6G (år)',
tekstVerdi: (d) => `${formaterTallMedTusenSkille(d.grunnbeløpÅr)} kr`,
tekstVerdi: (d) =>
`${formaterTallMedTusenSkille(d.seksGangerGrunnbeløp)} kr`,
},
{
overskrift: '6G (måned)',
tekstVerdi: (d) => `${formaterTallMedTusenSkille(d.grunnbeløpMåned)} kr`,
tekstVerdi: (d) =>
`${formaterTallMedTusenSkille(d.seksGangerGrunnbeløpPerMåned)} kr`,
},
]}
/>
Expand Down

0 comments on commit 14795a9

Please sign in to comment.