From c51b60ba932e7a3f653f151de0eb70a10bf0f51e Mon Sep 17 00:00:00 2001 From: matiasvinjevoll Date: Fri, 1 Oct 2021 13:59:25 +0200 Subject: [PATCH] =?UTF-8?q?Viser=20enten=20servicegruppe=20eller=20innsats?= =?UTF-8?q?gruppe+hovedm=C3=A5l=20Dersom=20servicegruppe=20fra=20Arena=20e?= =?UTF-8?q?r=20en=20innsatsgruppe,=20s=C3=A5=20vises=20innsatsgruppe+hoved?= =?UTF-8?q?m=C3=A5l=20fra=20vedtaksst=C3=B8tte.=20Hvis=20ikke,=20vises=20b?= =?UTF-8?q?are=20servicegruppe=20fra=20Arena.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: emildohlenhansen --- .../oppfolging/oppfolging-panel-innhold.tsx | 22 ++++++++++++++++--- .../innhold/ytelser/ytelser-panel-innhold.tsx | 14 +++++++++--- src/utils/arena-status-utils.ts | 15 ++++++++++++- 3 files changed, 44 insertions(+), 7 deletions(-) diff --git a/src/components/paneler/innhold/oppfolging/oppfolging-panel-innhold.tsx b/src/components/paneler/innhold/oppfolging/oppfolging-panel-innhold.tsx index 72c9649c..dd2057be 100644 --- a/src/components/paneler/innhold/oppfolging/oppfolging-panel-innhold.tsx +++ b/src/components/paneler/innhold/oppfolging/oppfolging-panel-innhold.tsx @@ -20,6 +20,7 @@ import { mapInnsatsgruppeTilTekst, mapServicegruppeTilTekst } from '../../../../utils/text-mapper'; +import { erInnsatsgruppe } from '../../../../utils/arena-status-utils'; const OppfolgingPanelInnhold = () => { const { fnr } = useAppStore(); @@ -46,16 +47,31 @@ const OppfolgingPanelInnhold = () => { const innsatsbehovData = hasData(innsatsbehov) ? innsatsbehov.data : null; const oppfolgingsstatusData = hasData(oppfolgingsstatus) ? oppfolgingsstatus.data : null; + + let servicegruppe = oppfolgingsstatusData?.servicegruppe; + let innsatsgruppe = innsatsbehovData?.innsatsgruppe; + let hovedmal = innsatsbehovData?.hovedmal; + // Vi bruker servicegruppe fra Arena som master for om vi skal vise servicegruppe eller innsatsgruppe + hovedmål: + // Hvis servicegruppe fra Arena er en innsatsgruppe, så viser vi innsatsgruppe + hovedmål fra vedtaksstøtte. + // Ellers viser vi bare servicegruppe fra Arena, siden det da har blitt satt en servicegruppe i Arena som er + // nyere enn innsagsgruppe + hovedmål fra vedtaksstøtte. + if (erInnsatsgruppe(oppfolgingsstatusData?.servicegruppe)) { + servicegruppe = undefined; + } else { + innsatsgruppe = undefined; + hovedmal = undefined; + } + return ( @@ -71,7 +87,7 @@ const OppfolgingPanelInnhold = () => { /> diff --git a/src/components/paneler/innhold/ytelser/ytelser-panel-innhold.tsx b/src/components/paneler/innhold/ytelser/ytelser-panel-innhold.tsx index 1e10834b..7b7ebaa9 100644 --- a/src/components/paneler/innhold/ytelser/ytelser-panel-innhold.tsx +++ b/src/components/paneler/innhold/ytelser/ytelser-panel-innhold.tsx @@ -4,13 +4,14 @@ import Grid from '../../../felles/grid'; import Vedtaksliste from './vedtaksliste'; import { VedtakType } from '../../../../rest/datatyper/ytelse'; import { VEDTAKSSTATUSER } from '../../../../utils/konstanter'; -import { useFetchInnsatsbehov, useFetchYtelser } from '../../../../rest/api'; +import { useFetchInnsatsbehov, useFetchOppfolgingsstatus, useFetchYtelser } from '../../../../rest/api'; import { Feilmelding, Laster, NoData } from '../../../felles/fetch'; import { isPending, hasError } from '@nutgaard/use-fetch'; import { hasData } from '../../../../rest/utils'; import { mapInnsatsgruppeTilTekst } from '../../../../utils/text-mapper'; import EMDASH from '../../../../utils/emdash'; import InformasjonsbolkEnkel from '../../../felles/informasjonsbolk-enkel'; +import { erInnsatsgruppe } from '../../../../utils/arena-status-utils'; const getVedtakForVisning = (vedtaksliste: VedtakType[]) => { return vedtaksliste.filter(vedtak => vedtak.status === VEDTAKSSTATUSER.iverksatt); @@ -19,9 +20,10 @@ const getVedtakForVisning = (vedtaksliste: VedtakType[]) => { const YtelserPanelInnhold = () => { const { fnr } = useAppStore(); const ytelser = useFetchYtelser(fnr); + const oppfolgingsstatus = useFetchOppfolgingsstatus(fnr); const innsatsbehov = useFetchInnsatsbehov(fnr); - if (isPending(ytelser) || isPending(innsatsbehov)) { + if (isPending(ytelser) || isPending(innsatsbehov) || isPending(oppfolgingsstatus)) { return ; } else if (hasError(ytelser)) { return ; @@ -32,12 +34,18 @@ const YtelserPanelInnhold = () => { const { vedtaksliste } = ytelser.data; const aktivVedtak = getVedtakForVisning(vedtaksliste); const innsatsbehovData = hasData(innsatsbehov) ? innsatsbehov.data : null; + const oppfolgingsstatusData = hasData(oppfolgingsstatus) ? oppfolgingsstatus.data : null; + + let innsatsgruppe = innsatsbehovData?.innsatsgruppe + if (!erInnsatsgruppe(oppfolgingsstatusData?.servicegruppe)) { + innsatsgruppe = undefined; + } return ( diff --git a/src/utils/arena-status-utils.ts b/src/utils/arena-status-utils.ts index 3bfd53aa..131e42e3 100644 --- a/src/utils/arena-status-utils.ts +++ b/src/utils/arena-status-utils.ts @@ -1,5 +1,18 @@ -import { OppfolgingsstatusData } from '../rest/datatyper/oppfolgingsstatus'; +import { OppfolgingsstatusData, Servicegruppe } from '../rest/datatyper/oppfolgingsstatus'; +import { OrNothing } from './felles-typer'; export function erBrukerSykmeldt(oppfolging: OppfolgingsstatusData): boolean { return oppfolging.formidlingsgruppe === 'IARBS' && oppfolging.servicegruppe === 'VURDI'; } + +export function erInnsatsgruppe(kvalifiseringsgruppe: OrNothing) { + switch (kvalifiseringsgruppe) { + case 'IKVAL': + case 'BATT': + case 'BFORM': + case 'VARIG': + return true; + default: + return false; + } +}