diff --git a/apps/dolly-frontend/src/main/js/src/components/fagsystem/alderspensjon/visning/AlderspensjonVisning.tsx b/apps/dolly-frontend/src/main/js/src/components/fagsystem/alderspensjon/visning/AlderspensjonVisning.tsx index 2f0a9e561a5..0a78914053c 100644 --- a/apps/dolly-frontend/src/main/js/src/components/fagsystem/alderspensjon/visning/AlderspensjonVisning.tsx +++ b/apps/dolly-frontend/src/main/js/src/components/fagsystem/alderspensjon/visning/AlderspensjonVisning.tsx @@ -3,52 +3,69 @@ import { TitleValue } from '@/components/ui/titleValue/TitleValue' import React from 'react' import { erGyldig } from '@/components/transaksjonid/GyldigeBestillinger' import { formatDate } from '@/utils/DataFormatter' -import { DollyFieldArray } from '@/components/ui/form/fieldArray/DollyFieldArray' +import Loading from '@/components/ui/loading/Loading' +import { useBestilteMiljoer } from '@/utils/hooks/useBestilling' +import { ErrorBoundary } from '@/components/ui/appError/ErrorBoundary' +import { Alert } from '@navikt/ds-react' +import { MiljoTabs } from '@/components/ui/miljoTabs/MiljoTabs' -const DataVisning = ({ apBestilling }) => { +export const sjekkManglerApData = (apData) => { + return apData?.length < 1 || apData?.every((miljoData) => !miljoData.data) +} +const DataVisning = ({ data }) => { return ( <>
- - + +
) } -export const AlderspensjonVisning = ({ data }) => { - // Det er ikke mulig a hente tilbake AP-data, derfor viser vi kun bestillingsdata pa person - if (!data || data.length < 1) { - return null +export const AlderspensjonVisning = ({ data, loading, bestillingIdListe, tilgjengeligMiljoe }) => { + const { bestilteMiljoer } = useBestilteMiljoer(bestillingIdListe, 'PEN_AP') + + if (loading) { + return } - const bestillingerFiltrert = data.filter((bestilling) => !bestilling.erGjenopprettet) - if (bestillingerFiltrert?.length < 1) { + if (!data || data?.length < 1) { return null } + const manglerFagsystemdata = sjekkManglerApData(data) + + const miljoerMedData = data?.map((miljoData) => miljoData.data && miljoData.miljo) + const errorMiljoer = bestilteMiljoer?.filter((miljo) => !miljoerMedData?.includes(miljo)) + + const forsteMiljo = data.find((miljoData) => miljoData?.data)?.miljo + + const filteredData = + tilgjengeligMiljoe && data.filter((item) => item.miljo === tilgjengeligMiljoe) + return ( - <> - - {bestillingerFiltrert?.length === 1 ? ( - + + + {manglerFagsystemdata ? ( + + Fant ikke alderspensjon-data på person + ) : ( - - {(bestilling) => ( - - )} - + + + )} - + ) } @@ -58,6 +75,6 @@ AlderspensjonVisning.filterValues = (bestillinger, ident) => { } return bestillinger.filter( (bestilling: any) => - bestilling.data.pensjonforvalter?.alderspensjon && erGyldig(bestilling.id, 'PEN_AP', ident) + bestilling.data.pensjonforvalter?.alderspensjon && erGyldig(bestilling.id, 'PEN_AP', ident), ) } diff --git a/apps/dolly-frontend/src/main/js/src/pages/gruppe/PersonVisning/PersonVisning.tsx b/apps/dolly-frontend/src/main/js/src/pages/gruppe/PersonVisning/PersonVisning.tsx index 4cee94ef134..66df46bcef5 100644 --- a/apps/dolly-frontend/src/main/js/src/pages/gruppe/PersonVisning/PersonVisning.tsx +++ b/apps/dolly-frontend/src/main/js/src/pages/gruppe/PersonVisning/PersonVisning.tsx @@ -39,6 +39,7 @@ import { sjekkManglerPensjonData } from '@/components/fagsystem/pensjon/visning/ import { sjekkManglerAaregData } from '@/components/fagsystem/aareg/visning/Visning' import { useAmeldinger, useArbeidsforhold } from '@/utils/hooks/useOrganisasjoner' import { + useApData, useArbeidsplassencvData, useArenaData, useDokarkivData, @@ -61,7 +62,10 @@ import { harPoppBestilling, harTpBestilling, } from '@/utils/SjekkBestillingFagsystem' -import { AlderspensjonVisning } from '@/components/fagsystem/alderspensjon/visning/AlderspensjonVisning' +import { + AlderspensjonVisning, + sjekkManglerApData, +} from '@/components/fagsystem/alderspensjon/visning/AlderspensjonVisning' import { useOrganisasjonTilgang } from '@/utils/hooks/useBruker' import { ArbeidsplassenVisning } from '@/components/fagsystem/arbeidsplassen/visning/Visning' import _has from 'lodash/has' @@ -159,16 +163,19 @@ export default ({ const { loading: loadingArbeidsplassencvData, arbeidsplassencvData, - error: arbeidsplassencvError,} = useArbeidsplassencvData( - ident.ident, - harArbeidsplassenBestilling(bestillingerFagsystemer), - ) + error: arbeidsplassencvError, + } = useArbeidsplassencvData(ident.ident, harArbeidsplassenBestilling(bestillingerFagsystemer)) const { loading: loadingArenaData, arenaData } = useArenaData( ident.ident, harArenaBestilling(bestillingerFagsystemer), ) + const { loading: loadingApData, apData } = useApData( + ident.ident, + harApBestilling(bestillingerFagsystemer), + ) + const getGruppeIdenter = () => { return useAsync(async () => DollyApi.getGruppeById(gruppeId), [DollyApi.getGruppeById]) } @@ -200,6 +207,9 @@ export default ({ if (tpData && sjekkManglerTpData(tpData)) { return true } + if (apData && sjekkManglerApData(apData)) { + return true + } if (brregstub && sjekkManglerBrregData(brregstub)) { return true } @@ -383,11 +393,12 @@ export default ({ bestillingIdListe={bestillingIdListe} tilgjengeligMiljoe={tilgjengeligMiljoe} /> - {harApBestilling(bestillingerFagsystemer) && ( - - )} + { } } +export const useApData = (ident, harApBestilling) => { + const { data, isLoading, error } = useSWR( + harApBestilling ? `/dolly-backend/api/v1/transaksjonid?ident=${ident}&system=PEN_AP` : null, + fetcher, + ) + + const miljoData = data?.map((m) => { + return { data: m.transaksjonId, miljo: m.miljoe } + }) + + return { + apData: miljoData?.sort((a, b) => a.miljo?.localeCompare(b.miljo)), + loading: isLoading, + error: error, + } +} + export const useInstData = (ident, harInstBestilling) => { const { instEnvironments } = useInstEnvironments()