Skip to content

Commit

Permalink
Merge pull request #3265 from navikt/feature/ap-miljoevisning-med-tra…
Browse files Browse the repository at this point in the history
…nsaksjonid

Feature/ap miljoevisning med transaksjonid
  • Loading branch information
betsytraran authored Sep 5, 2023
2 parents d7c3dbc + dc42ae5 commit 4101bc8
Show file tree
Hide file tree
Showing 3 changed files with 82 additions and 37 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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 (
<>
<div className="person-visning_content">
<TitleValue
title="Iverksettelsesdato"
value={formatDate(apBestilling.iverksettelsesdato)}
/>
<TitleValue title="Uttaksgrad" value={`${apBestilling.uttaksgrad}%`} />
<TitleValue title="Iverksettelsesdato" value={formatDate(data?.iverksettelsesdato)} />
<TitleValue title="Uttaksgrad" value={`${data?.uttaksgrad}%`} />
<TitleValue
title="Ektefelle/partners inntekt"
value={apBestilling.relasjoner?.[0]?.sumAvForvArbKapPenInntekt}
value={data?.relasjoner?.[0]?.sumAvForvArbKapPenInntekt}
/>
</div>
</>
)
}

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 <Loading label="Laster alderspensjon-data" />
}

const bestillingerFiltrert = data.filter((bestilling) => !bestilling.erGjenopprettet)
if (bestillingerFiltrert?.length < 1) {
if (!data) {
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 (
<>
<SubOverskrift label="Alderspensjon" iconKind="pensjon" />
{bestillingerFiltrert?.length === 1 ? (
<DataVisning
apBestilling={bestillingerFiltrert[0]?.data?.pensjonforvalter?.alderspensjon}
/>
<ErrorBoundary>
<SubOverskrift label="Alderspensjon" iconKind="pensjon" isWarning={manglerFagsystemdata} />
{manglerFagsystemdata ? (
<Alert variant={'warning'} size={'small'} inline style={{ marginBottom: '20px' }}>
Fant ikke alderspensjon-data på person
</Alert>
) : (
<DollyFieldArray data={bestillingerFiltrert} nested>
{(bestilling) => (
<DataVisning apBestilling={bestilling.data?.pensjonforvalter?.alderspensjon} />
)}
</DollyFieldArray>
<MiljoTabs
bestilteMiljoer={bestilteMiljoer}
errorMiljoer={errorMiljoer}
forsteMiljo={forsteMiljo}
data={filteredData ? filteredData : data}
>
<DataVisning />
</MiljoTabs>
)}
</>
</ErrorBoundary>
)
}

Expand All @@ -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),
)
}
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand All @@ -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'
Expand Down Expand Up @@ -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])
}
Expand Down Expand Up @@ -200,6 +207,9 @@ export default ({
if (tpData && sjekkManglerTpData(tpData)) {
return true
}
if (apData && sjekkManglerApData(apData)) {
return true
}
if (brregstub && sjekkManglerBrregData(brregstub)) {
return true
}
Expand Down Expand Up @@ -383,11 +393,12 @@ export default ({
bestillingIdListe={bestillingIdListe}
tilgjengeligMiljoe={tilgjengeligMiljoe}
/>
{harApBestilling(bestillingerFagsystemer) && (
<AlderspensjonVisning
data={AlderspensjonVisning.filterValues(bestillingListe, ident.ident)}
/>
)}
<AlderspensjonVisning
data={apData}
loading={loadingApData}
bestillingIdListe={bestillingIdListe}
tilgjengeligMiljoe={tilgjengeligMiljoe}
/>
<ArenaVisning
data={arenaData}
bestillingIdListe={bestillingIdListe}
Expand Down
17 changes: 17 additions & 0 deletions apps/dolly-frontend/src/main/js/src/utils/hooks/useFagsystemer.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,23 @@ export const useTpData = (ident, harTpBestilling) => {
}
}

export const useApData = (ident, harApBestilling) => {
const { data, isLoading, error } = useSWR<any, Error>(
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()

Expand Down

0 comments on commit 4101bc8

Please sign in to comment.