Skip to content

Commit 25ecd5e

Browse files
committed
Bestillingsvisning alderspensjon, uforetrygd, afp-offentlig
1 parent 7e03236 commit 25ecd5e

7 files changed

Lines changed: 256 additions & 7 deletions

File tree

apps/dolly-frontend/src/main/js/src/components/bestilling/sammendrag/Bestillingsdata.tsx

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,9 @@ import { PensjonsgivendeInntekt } from '@/components/fagsystem/pensjon/bestillin
4040
import { GenerertPensjonsgivendeInntekt } from '@/components/fagsystem/pensjon/bestilling/GenerertPensjonsgivendeInntekt'
4141
import { Pensjonsavtale } from '@/components/fagsystem/pensjonsavtale/bestilling/Pensjonsavtale'
4242
import { Tjenestepensjon } from '@/components/fagsystem/tjenestepensjon/bestilling/Tjenestepensjon'
43+
import { Alderspensjon } from '@/components/fagsystem/alderspensjon/bestilling/Alderspensjon'
44+
import { Uforetrygd } from '@/components/fagsystem/uforetrygd/bestilling/Uforetrygd'
45+
import { AfpOffentlig } from '@/components/fagsystem/afpOffentlig/bestilling/AfpOffentlig'
4346

4447
export const BestillingTitle = styled.h4`
4548
margin: 5px 0 15px 0;
@@ -128,6 +131,9 @@ export const Bestillingsdata = ({ bestilling }: any) => {
128131
/>
129132
<Pensjonsavtale pensjon={bestilling.pensjonforvalter?.pensjonsavtale} />
130133
<Tjenestepensjon pensjon={bestilling.pensjonforvalter?.tp} />
134+
<Alderspensjon pensjon={bestilling.pensjonforvalter?.alderspensjon} />
135+
<Uforetrygd pensjon={bestilling.pensjonforvalter?.uforetrygd} />
136+
<AfpOffentlig pensjon={bestilling.pensjonforvalter?.afpOffentlig} />
131137
</>
132138
)
133139
}
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
import { isEmpty } from '@/components/fagsystem/pdlf/form/partials/utils'
2+
import { ErrorBoundary } from '@/components/ui/appError/ErrorBoundary'
3+
import { BestillingData, BestillingTitle } from '@/components/bestilling/sammendrag/Bestillingsdata'
4+
import { TitleValue } from '@/components/ui/titleValue/TitleValue'
5+
import { formatDate, showLabel } from '@/utils/DataFormatter'
6+
import { DollyFieldArray } from '@/components/ui/form/fieldArray/DollyFieldArray'
7+
import React from 'react'
8+
import { showTpNavn } from '@/components/fagsystem/afpOffentlig/visning/AfpOffentligVisning'
9+
import {
10+
AfpOffentligTypes,
11+
BeloepTypes,
12+
MocksvarTypes,
13+
} from '@/components/fagsystem/afpOffentlig/afpOffentligTypes'
14+
15+
type AfpOffentligProps = {
16+
pensjon: AfpOffentligTypes
17+
}
18+
19+
export const AfpOffentlig = ({ pensjon }: AfpOffentligProps) => {
20+
if (!pensjon || isEmpty(pensjon)) {
21+
return null
22+
}
23+
24+
return (
25+
<div className="person-visning">
26+
<ErrorBoundary>
27+
<BestillingTitle>AFP offentlig</BestillingTitle>
28+
<BestillingData>
29+
<TitleValue
30+
title="Direktekall"
31+
value={pensjon.direktekall?.map((tpId) => showTpNavn(tpId))?.join(', ')}
32+
size="xlarge"
33+
/>
34+
<DollyFieldArray header="AFP offentlig" data={pensjon?.mocksvar}>
35+
{(afpOffentlig: MocksvarTypes, idx: number) => (
36+
<React.Fragment key={idx}>
37+
<TitleValue title="TP-ordning" value={showTpNavn(afpOffentlig.tpId)} />
38+
<TitleValue
39+
title="Status AFP"
40+
value={showLabel('statusAfp', afpOffentlig.statusAfp)}
41+
/>
42+
<TitleValue title="Virkningsdato" value={formatDate(afpOffentlig.virkningsDato)} />
43+
<TitleValue title="Sist benyttet G" value={afpOffentlig.sistBenyttetG} />
44+
{afpOffentlig.belopsListe?.length > 0 && (
45+
<DollyFieldArray header="Beløp" data={afpOffentlig.belopsListe} nested>
46+
{(belop: BeloepTypes, idy: number) => (
47+
<React.Fragment key={idy}>
48+
<TitleValue title="F.o.m. dato" value={formatDate(belop.fomDato)} />
49+
<TitleValue title="Beløp" value={belop.belop} />
50+
</React.Fragment>
51+
)}
52+
</DollyFieldArray>
53+
)}
54+
</React.Fragment>
55+
)}
56+
</DollyFieldArray>
57+
</BestillingData>
58+
</ErrorBoundary>
59+
</div>
60+
)
61+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
export type AlderspensjonTypes = {
2+
kravFremsattDato: string
3+
iverksettelsesdato: string
4+
saksbehandler: string
5+
attesterer: string
6+
uttaksgrad: number
7+
navEnhetId: string
8+
relasjoner?: Array<{
9+
sumAvForvArbKapPenInntekt: string
10+
}>
11+
soknad: boolean
12+
}
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
import { isEmpty } from '@/components/fagsystem/pdlf/form/partials/utils'
2+
import { ErrorBoundary } from '@/components/ui/appError/ErrorBoundary'
3+
import { BestillingData, BestillingTitle } from '@/components/bestilling/sammendrag/Bestillingsdata'
4+
import { TitleValue } from '@/components/ui/titleValue/TitleValue'
5+
import { formatDate } from '@/utils/DataFormatter'
6+
import React from 'react'
7+
import { AlderspensjonTypes } from '@/components/fagsystem/alderspensjon/AlderspensjonTypes'
8+
import { useNavEnheter } from '@/utils/hooks/useNorg2'
9+
10+
type AlderspensjonProps = {
11+
pensjon?: AlderspensjonTypes
12+
}
13+
14+
export const Alderspensjon = ({ pensjon }: AlderspensjonProps) => {
15+
const { navEnheter } = useNavEnheter()
16+
17+
if (!pensjon || isEmpty(pensjon)) {
18+
return null
19+
}
20+
21+
const navEnhetLabel = navEnheter?.find(
22+
(enhet) => enhet.value === pensjon.navEnhetId?.toString(),
23+
)?.label
24+
25+
return (
26+
<div className="person-visning">
27+
<ErrorBoundary>
28+
<BestillingTitle>
29+
{'Alderspensjon: ' + (pensjon?.soknad ? 'Søknad' : 'Vedtak')}
30+
</BestillingTitle>
31+
<BestillingData>
32+
<TitleValue title="Krav fremsatt dato" value={formatDate(pensjon?.kravFremsattDato)} />
33+
<TitleValue title="Iverksettelsesdato" value={formatDate(pensjon?.iverksettelsesdato)} />
34+
<TitleValue title="Saksbehandler" value={pensjon?.saksbehandler} />
35+
<TitleValue title="Attesterer" value={pensjon?.attesterer} />
36+
<TitleValue title="Uttaksgrad" value={`${pensjon?.uttaksgrad}%`} />
37+
<TitleValue title="NAV-kontor" value={navEnhetLabel || pensjon?.navEnhetId} />
38+
<TitleValue
39+
title="Ektefelle/partners inntekt"
40+
value={pensjon?.relasjoner?.[0]?.sumAvForvArbKapPenInntekt}
41+
/>
42+
</BestillingData>
43+
</ErrorBoundary>
44+
</div>
45+
)
46+
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
export type UforetrygdTypes = {
2+
uforetidspunkt: string
3+
kravFremsattDato: string
4+
onsketVirkningsDato: string
5+
inntektForUforhet: number
6+
inntektEtterUforhet: number
7+
uforegrad: number
8+
minimumInntektForUforhetType: string
9+
saksbehandler: string
10+
attesterer: string
11+
navEnhetId: string
12+
barnetilleggDetaljer: BarnetilleggDetaljer
13+
}
14+
15+
export type BarnetilleggDetaljer = {
16+
barnetilleggType: string
17+
forventedeInntekterSoker: Array<ForventedeInntekterSokerOgEP>
18+
forventedeInntekterEP: Array<ForventedeInntekterSokerOgEP>
19+
}
20+
21+
export type ForventedeInntekterSokerOgEP = {
22+
datoFom: string
23+
datoTom: string
24+
inntektType: string
25+
belop: number
26+
}
Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
import { useNavEnheter } from '@/utils/hooks/useNorg2'
2+
import { isEmpty } from '@/components/fagsystem/pdlf/form/partials/utils'
3+
import { ErrorBoundary } from '@/components/ui/appError/ErrorBoundary'
4+
import { BestillingData, BestillingTitle } from '@/components/bestilling/sammendrag/Bestillingsdata'
5+
import { TitleValue } from '@/components/ui/titleValue/TitleValue'
6+
import { formatDate, oversettBoolean, showLabel } from '@/utils/DataFormatter'
7+
import React from 'react'
8+
import { DollyFieldArray } from '@/components/ui/form/fieldArray/DollyFieldArray'
9+
import {
10+
ForventedeInntekterSokerOgEP,
11+
UforetrygdTypes,
12+
} from '@/components/fagsystem/uforetrygd/UforetrygdTypes'
13+
14+
type UforetrygdProps = {
15+
pensjon: UforetrygdTypes
16+
}
17+
18+
export const Uforetrygd = ({ pensjon }: UforetrygdProps) => {
19+
const { navEnheter } = useNavEnheter()
20+
21+
if (!pensjon || isEmpty(pensjon)) {
22+
return null
23+
}
24+
25+
const navEnhetLabel = navEnheter?.find(
26+
(enhet) => enhet.value === pensjon.navEnhetId?.toString(),
27+
)?.label
28+
29+
return (
30+
<div className="person-visning">
31+
<ErrorBoundary>
32+
<BestillingTitle>Uføretrygd</BestillingTitle>
33+
<BestillingData>
34+
<TitleValue title="Uføretidspunkt" value={formatDate(pensjon?.uforetidspunkt)} />
35+
<TitleValue title="Krav fremsatt dato" value={formatDate(pensjon?.kravFremsattDato)} />
36+
<TitleValue
37+
title="Ønsket virkningsdato"
38+
value={formatDate(pensjon?.onsketVirkningsDato)}
39+
/>
40+
<TitleValue title="Inntekt før uførhet" value={pensjon?.inntektForUforhet} />
41+
<TitleValue title="Inntekt etter uførhet" value={pensjon?.inntektEtterUforhet} />
42+
<TitleValue
43+
title="Sats for minimum IFU"
44+
value={showLabel('minimumInntektForUforhetType', pensjon?.minimumInntektForUforhetType)}
45+
/>
46+
<TitleValue
47+
title="Uføregrad"
48+
value={pensjon?.uforegrad ? `${pensjon?.uforegrad}%` : null}
49+
/>
50+
<TitleValue title="Saksbehandler" value={pensjon?.saksbehandler} />
51+
<TitleValue title="Attesterer" value={pensjon?.attesterer} />
52+
<TitleValue title="NAV-kontor" value={navEnhetLabel || pensjon?.navEnhetId} />
53+
<TitleValue
54+
title="Har barnetillegg"
55+
value={oversettBoolean(pensjon?.barnetilleggDetaljer !== null)}
56+
/>
57+
<TitleValue
58+
title="Type barnetillegg"
59+
value={showLabel('barnetilleggType', pensjon?.barnetilleggDetaljer?.barnetilleggType)}
60+
/>
61+
{pensjon?.barnetilleggDetaljer?.forventedeInntekterSoker?.length > 0 && (
62+
<DollyFieldArray
63+
header="Forventede inntekter for søker"
64+
data={pensjon?.barnetilleggDetaljer?.forventedeInntekterSoker}
65+
nested
66+
>
67+
{(inntekt: ForventedeInntekterSokerOgEP, idx: number) => (
68+
<React.Fragment key={idx}>
69+
<TitleValue
70+
title="Type inntekt"
71+
value={showLabel('inntektType', inntekt?.inntektType)}
72+
/>
73+
<TitleValue title="Beløp" value={inntekt?.belop} />
74+
<TitleValue title="Dato fra" value={formatDate(inntekt?.datoFom)} />
75+
<TitleValue title="Dato til" value={formatDate(inntekt?.datoTom)} />
76+
</React.Fragment>
77+
)}
78+
</DollyFieldArray>
79+
)}
80+
{pensjon?.barnetilleggDetaljer?.forventedeInntekterEP?.length > 0 && (
81+
<DollyFieldArray
82+
header="Forventede inntekter for partner"
83+
data={pensjon?.barnetilleggDetaljer?.forventedeInntekterEP}
84+
nested
85+
>
86+
{(inntekt: ForventedeInntekterSokerOgEP, idx: number) => (
87+
<React.Fragment key={idx}>
88+
<TitleValue
89+
title="Type inntekt"
90+
value={showLabel('inntektType', inntekt?.inntektType)}
91+
/>
92+
<TitleValue title="Beløp" value={inntekt?.belop} />
93+
<TitleValue title="Dato fra" value={formatDate(inntekt?.datoFom)} />
94+
<TitleValue title="Dato til" value={formatDate(inntekt?.datoTom)} />
95+
</React.Fragment>
96+
)}
97+
</DollyFieldArray>
98+
)}
99+
</BestillingData>
100+
</ErrorBoundary>
101+
</div>
102+
)
103+
}

apps/dolly-frontend/src/main/js/src/components/fagsystem/uforetrygd/form/Form.tsx

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -49,8 +49,6 @@ export const UforetrygdForm = () => {
4949
formMethods.trigger(`${uforetrygdPath}`)
5050
}}
5151
/>
52-
</div>
53-
<div className="flexbox--flex-wrap">
5452
<FormTextInput
5553
name={`${uforetrygdPath}.inntektForUforhet`}
5654
label="Inntekt før uførhet"
@@ -61,16 +59,12 @@ export const UforetrygdForm = () => {
6159
label="Inntekt etter uførhet"
6260
type="number"
6361
/>
64-
</div>
65-
<BarnetilleggForm formMethods={formMethods} />
66-
<div className="flexbox--flex-wrap">
6762
<FormSelect
6863
name={`${uforetrygdPath}.minimumInntektForUforhetType`}
6964
label="Sats for minimum IFU"
7065
size="xlarge"
7166
options={Options('minimumInntektForUforhetType')}
7267
/>
73-
7468
<FormTextInput name={`${uforetrygdPath}.uforegrad`} label="Uføregrad" type="number" />
7569
<FormSelect
7670
options={randomSaksbehandlere}
@@ -85,10 +79,11 @@ export const UforetrygdForm = () => {
8579
<FormSelect
8680
name={`${uforetrygdPath}.navEnhetId`}
8781
label={'NAV-kontor'}
88-
size={'xxlarge'}
82+
size={'xlarge'}
8983
options={navEnheter}
9084
/>
9185
</div>
86+
<BarnetilleggForm formMethods={formMethods} />
9287
</Panel>
9388
</Vis>
9489
)

0 commit comments

Comments
 (0)