Skip to content

Commit

Permalink
Vise kontantstøtteperioder under vedtak og beregning for barnetilsyn (#…
Browse files Browse the repository at this point in the history
…2988)

* Skal vise evt tidligere kontantstøtteperioder i vedtak og beregning for barnetilsyn

* viser "nå" hvis perioden er løpende

* tomMåned for KsPeriode skal være non-nullable

* Skal allikevel ha tomMåned nullable for KsPeriode da infotrygdperioder kan være null her

* Skal vise tomt felt hvis tomMåned er null

* Fjerner harKontantstøttePerioder og gjør kontantstøtteperioder non-nullable for bedre håndtering

* Fjerner harKontantstøttePerioder ifm KontantstøtteAlert siden dette kan utledes av listen av perioder

* Update src/frontend/Komponenter/Behandling/VedtakOgBeregning/Barnetilsyn/InnvilgeVedtak/KontantstøtteAlert.tsx

* Skal vise når kontantstøtteperioder fra KS er hentet for å kunne lese kontekst bedre

---------

Co-authored-by: Viktor Solberg <viktor.grondalen.solberg@nav.no>
  • Loading branch information
throndi and ViktorGSolberg authored Feb 5, 2025
1 parent a868bb9 commit b97b131
Show file tree
Hide file tree
Showing 6 changed files with 153 additions and 18 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -27,10 +27,17 @@ export interface IVilkårGrunnlag {
adresseopplysninger?: IAdresseopplysninger;
dokumentasjon?: IDokumentasjonGrunnlag;
harAvsluttetArbeidsforhold: boolean;
harKontantstøttePerioder?: boolean;
harKontantstøttePerioder?: boolean; // gjelder historiske behandlinger
kontantstøttePerioder: KontantstøttePeriode[];
behandlingOpprettet?: string;
}

export interface KontantstøttePeriode {
fomMåned: string;
tomMåned?: string;
kilde: string;
}

export interface IPersonalia {
personIdent: string;
navn: INavn;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ import { AlertError } from '../../../../../Felles/Visningskomponenter/Alerts';
import HovedKnapp, { Knapp } from '../../../../../Felles/Knapper/HovedKnapp';
import { CalculatorIcon } from '@navikt/aksel-icons';
import { ModalState } from '../../../Modal/NyEierModal';
import { KontantstøttePeriode } from '../../../Inngangsvilkår/vilkår';

export type InnvilgeVedtakForm = {
utgiftsperioder: IUtgiftsperiode[];
Expand Down Expand Up @@ -99,14 +100,18 @@ export const InnvilgeBarnetilsyn: React.FC<{
barn: IBarnMedSamvær[];
settResultatType: (val: EBehandlingResultat | undefined) => void;
låsFraDatoFørsteRad: boolean;
harKontantstøttePerioder: boolean | undefined;
harKontantstøttePerioder?: boolean;
kontantstøttePerioderFraGrunnlagsdata: KontantstøttePeriode[];
registeropplysningerOpprettetTid: string;
}> = ({
lagretVedtak,
behandling,
barn,
settResultatType,
låsFraDatoFørsteRad,
harKontantstøttePerioder,
kontantstøttePerioderFraGrunnlagsdata,
registeropplysningerOpprettetTid,
}) => {
const lagretInnvilgetVedtak =
lagretVedtak?._type === IVedtakType.InnvilgelseBarnetilsyn ||
Expand Down Expand Up @@ -315,6 +320,8 @@ export const InnvilgeBarnetilsyn: React.FC<{
valideringsfeil={formState.errors}
harKontantstøttePerioder={harKontantstøttePerioder}
kontantstøtteBegrunnelse={kontantstøtteBegrunnelseState}
kontantstøttePerioderFraGrunnlagsdata={kontantstøttePerioderFraGrunnlagsdata}
registeropplysningerOpprettetTid={registeropplysningerOpprettetTid}
/>
<TilleggsstønadValg
erLesevisning={!behandlingErRedigerbar}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,15 +13,26 @@ import {
oppdaterVedtakMedEndretKey,
oppdaterVedtakMedInitPeriodeOgOpphørshulll,
} from '../Felles/utils';
import { KontantstøttePeriode } from '../../../Inngangsvilkår/vilkår';

// TODO backend må returnere InnvilgelseBarnetilsynUtenUtbetaling ?
export const InnvilgeVedtak: FC<{
behandling: Behandling;
lagretVedtak?: IvedtakForBarnetilsyn;
barn: IBarnMedSamvær[];
settResultatType: (val: EBehandlingResultat | undefined) => void;
harKontantstøttePerioder: boolean | undefined;
}> = ({ behandling, lagretVedtak, barn, settResultatType, harKontantstøttePerioder }) => {
harKontantstøttePerioder?: boolean;
kontantstøttePerioderFraGrunnlagsdata: KontantstøttePeriode[];
registeropplysningerOpprettetTid: string;
}> = ({
behandling,
lagretVedtak,
barn,
settResultatType,
harKontantstøttePerioder,
kontantstøttePerioderFraGrunnlagsdata,
registeropplysningerOpprettetTid,
}) => {
const { axiosRequest, settIkkePersistertKomponent } = useApp();
const { behandlingErRedigerbar } = useBehandling();

Expand Down Expand Up @@ -85,6 +96,8 @@ export const InnvilgeVedtak: FC<{
settResultatType={settResultatType}
låsFraDatoFørsteRad={!!revurderesFra}
harKontantstøttePerioder={harKontantstøttePerioder}
kontantstøttePerioderFraGrunnlagsdata={kontantstøttePerioderFraGrunnlagsdata}
registeropplysningerOpprettetTid={registeropplysningerOpprettetTid}
/>
)}
</>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,27 +1,120 @@
import React from 'react';
import React, { useState } from 'react';
import styled from 'styled-components';
import { Alert } from '@navikt/ds-react';
import { Alert, Button } from '@navikt/ds-react';
import { ChevronDownIcon, ChevronUpIcon } from '@navikt/aksel-icons';
import { KontantstøttePeriode } from '../../../Inngangsvilkår/vilkår';
import { BodyShortSmall } from '../../../../../Felles/Visningskomponenter/Tekster';
import { formaterIsoDato, formaterIsoMånedÅr } from '../../../../../App/utils/formatter';

const AlertStripe = styled(Alert)`
margin-top: 1rem;
margin-top: 0.5rem;
margin-bottom: 0.5rem;
padding: 1rem;
`;

const InnholdContainer = styled.ul`
margin-left: 1rem;
padding-left: 0.5rem;
margin-bottom: 1rem;
`;

const StyledButton = styled(Button)`
margin-left: 1rem;
padding-left: 0.5rem;
padding-top: 0.2rem;
padding-bottom: 0.2rem;
`;

interface Props {
harKontantstøttePerioder?: boolean;
kontantstøttePerioderFraGrunnlagsdata: KontantstøttePeriode[];
registeropplysningerOpprettetTid: string;
}
export const KontantstøtteAlert: React.FC<Props> = ({ harKontantstøttePerioder }) => {
if (harKontantstøttePerioder === null || harKontantstøttePerioder === undefined) {
return null;

const utledKontantstøtteperioderAlertTekst = (
kontantstøttePerioderFraGrunnlagsdata: KontantstøttePeriode[],
registeropplysningerOpprettetTid: string,
harKontantstøttePerioder?: boolean
): string => {
if (!harKontantstøttePerioder && kontantstøttePerioderFraGrunnlagsdata.length === 0) {
return `Bruker har verken fått eller får kontantstøtte (oppdatert ${formaterIsoDato(
registeropplysningerOpprettetTid
)})`;
}
if (kontantstøttePerioderFraGrunnlagsdata.length > 0) {
return `Brukers kontantstøtteperioder (hentet ${formaterIsoDato(
registeropplysningerOpprettetTid
)})`;
}
return 'Bruker har eller har fått kontantstøtte';
};

const kontantstøtteKilde = (kilde: string): string => {
return kilde.toLowerCase().includes('ks_sak') ? 'KS sak' : kilde.toLowerCase();
};

export const KontantstøtteAlert: React.FC<Props> = ({
harKontantstøttePerioder,
kontantstøttePerioderFraGrunnlagsdata,
registeropplysningerOpprettetTid,
}) => {
const [ekspandert, settEkspandert] = useState(false);
const harFlereKontantstøttePerioder = kontantstøttePerioderFraGrunnlagsdata.length > 1;

return (
<>
<AlertStripe variant={harKontantstøttePerioder ? 'warning' : 'info'} size={'small'}>
{harKontantstøttePerioder
? 'Bruker har eller har fått kontantstøtte.'
: 'Bruker har verken fått eller får kontantstøtte.'}
</AlertStripe>
</>
<AlertStripe variant="info">
{utledKontantstøtteperioderAlertTekst(
kontantstøttePerioderFraGrunnlagsdata,
registeropplysningerOpprettetTid,
harKontantstøttePerioder
)}
{kontantstøttePerioderFraGrunnlagsdata.length > 0 && (
<>
<InnholdContainer>
<li>
<BodyShortSmall>
{formaterIsoMånedÅr(
kontantstøttePerioderFraGrunnlagsdata[0].fomMåned
)}{' '}
-{' '}
{kontantstøttePerioderFraGrunnlagsdata[0].tomMåned
? formaterIsoMånedÅr(
kontantstøttePerioderFraGrunnlagsdata[0].tomMåned
)
: ''}{' '}
{'(kilde: ' +
kontantstøtteKilde(
kontantstøttePerioderFraGrunnlagsdata[0].kilde
) +
')'}
</BodyShortSmall>
</li>
{harFlereKontantstøttePerioder &&
ekspandert &&
kontantstøttePerioderFraGrunnlagsdata.slice(1).map((periode, index) => (
<li key={index}>
<BodyShortSmall>
{formaterIsoMånedÅr(periode.fomMåned)} -{' '}
{periode.tomMåned
? formaterIsoMånedÅr(periode.tomMåned)
: ''}{' '}
{'(kilde: ' + kontantstøtteKilde(periode.kilde) + ')'}
</BodyShortSmall>
</li>
))}
</InnholdContainer>
{harFlereKontantstøttePerioder && (
<StyledButton
variant="tertiary"
icon={ekspandert ? <ChevronUpIcon /> : <ChevronDownIcon />}
iconPosition="right"
onClick={() => settEkspandert((prev) => !prev)}
>
{ekspandert ? 'Skjul perioder' : 'Se flere perioder'}
</StyledButton>
)}
</>
)}
</AlertStripe>
);
};
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ import { useBehandling } from '../../../../../App/context/BehandlingContext';
import { AGray50 } from '@navikt/ds-tokens/dist/tokens';
import { KontantstøtteAlert } from './KontantstøtteAlert';
import JaNeiRadioGruppe from '../../Felles/JaNeiRadioGruppe';
import { KontantstøttePeriode } from '../../../Inngangsvilkår/vilkår';
import { EnsligTextArea } from '../../../../../Felles/Input/TekstInput/EnsligTextArea';

const Container = styled.div`
Expand Down Expand Up @@ -65,6 +66,8 @@ interface Props {
valideringsfeil: FormErrors<InnvilgeVedtakForm>;
harKontantstøttePerioder?: boolean;
kontantstøtteBegrunnelse: FieldState;
kontantstøttePerioderFraGrunnlagsdata: KontantstøttePeriode[];
registeropplysningerOpprettetTid: string;
}

export const tomKontantstøtteRad = (): IPeriodeMedBeløp => ({
Expand All @@ -82,6 +85,8 @@ const KontantstøtteValg: React.FC<Props> = ({
valideringsfeil,
harKontantstøttePerioder,
kontantstøtteBegrunnelse,
kontantstøttePerioderFraGrunnlagsdata,
registeropplysningerOpprettetTid,
}) => {
const { settIkkePersistertKomponent } = useApp();
const { åpenHøyremeny } = useBehandling();
Expand Down Expand Up @@ -130,7 +135,11 @@ const KontantstøtteValg: React.FC<Props> = ({
Kontantstøtte
</Heading>
<AlertOgRadioknappWrapper>
<KontantstøtteAlert harKontantstøttePerioder={harKontantstøttePerioder} />
<KontantstøtteAlert
harKontantstøttePerioder={harKontantstøttePerioder}
kontantstøttePerioderFraGrunnlagsdata={kontantstøttePerioderFraGrunnlagsdata}
registeropplysningerOpprettetTid={registeropplysningerOpprettetTid}
/>

<JaNeiRadioGruppe
error={valideringsfeil?.harKontantstøtte}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,12 @@ const VedtakOgBeregningBarnetilsyn: FC<VedtakOgBeregningProps> = ({
harKontantstøttePerioder={
vilkår.grunnlag.harKontantstøttePerioder
}
kontantstøttePerioderFraGrunnlagsdata={
vilkår.grunnlag.kontantstøttePerioder
}
registeropplysningerOpprettetTid={
vilkår.grunnlag.registeropplysningerOpprettetTid
}
/>
);
case EBehandlingResultat.AVSLÅ:
Expand Down

0 comments on commit b97b131

Please sign in to comment.