Skip to content

Commit

Permalink
Lagd en hook som henter en lite med grunnbeløpsperioder. Disse blir b…
Browse files Browse the repository at this point in the history
…rukt for å sette seks G.
  • Loading branch information
gunnsteingarmo committed Oct 10, 2023
1 parent 7ec540c commit 80d49a8
Show file tree
Hide file tree
Showing 3 changed files with 64 additions and 21 deletions.
37 changes: 37 additions & 0 deletions src/frontend/App/hooks/felles/useHentGrunbelø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øpOgAntallGrunnlø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,
};
};
16 changes: 12 additions & 4 deletions 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øpOgAntallGrunnløpsperioderTilbakeITid } from './felles/useHentGrunbeløpsperioder';

export enum EBehandlingFlettefelt {
fomdatoInnvilgelseForstegangsbehandling = 'fomdatoInnvilgelseForstegangsbehandling',
Expand Down Expand Up @@ -61,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øpOgAntallGrunnløpsperioderTilbakeITid(1);

const leggTilNyeFlettefelt = (nyeFlettefelt: FlettefeltStore) => {
settFlettefeltStore((prevState) => ({
Expand All @@ -75,7 +78,11 @@ export const useVerdierForBrev = (
leggTilNyeFlettefelt
);

const G = 118620; // Grunnbeløpet (G) per 1. mai 2023 er 118 620 kroner.
useEffect(() => {
hentGrunnbeløpsperioderCallback();
}, [hentGrunnbeløpsperioderCallback]);

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

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

if (innholderBeløpsperioderForOvergangsstønad(beløpsperioder.data)) {
const inntektsgrunnlag =
beløpsperioder.data[beløpsperioder.data.length - 1].beregningsgrunnlag.inntekt;
Expand Down Expand Up @@ -123,12 +131,12 @@ export const useVerdierForBrev = (
[EBehandlingFlettefelt.fomdatoInnvilgelse]: fraDato,
[EBehandlingFlettefelt.fomdatoInnvilgelseBarnetilsyn]: fraDato,
[EBehandlingFlettefelt.tomdatoInnvilgelseBarnetilsyn]: tilDato,
[EBehandlingFlettefelt.seksGangerGrunnbelop]: SEKS_G,
[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øpOgAntallGrunnløpsperioderTilbakeITid } from '../../../../App/hooks/felles/useHentGrunbelø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øpOgAntallGrunnløpsperioderTilbakeITid(4);

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 80d49a8

Please sign in to comment.