Skip to content

Commit

Permalink
Merge pull request #3523 from navikt/feature/tilpasninger-paa-foedsel
Browse files Browse the repository at this point in the history
Feature/tilpasninger paa foedsel
  • Loading branch information
betsytraran authored Jun 19, 2024
2 parents 046f15c + fdbd94f commit 329613b
Show file tree
Hide file tree
Showing 22 changed files with 423 additions and 90 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -180,6 +180,43 @@ const mapFoedsel = (foedsel, data) => {
}
}

const mapFoedested = (foedested, data) => {
if (foedested) {
const foedestedData = {
header: 'Fødested',
itemRows: foedested.map((item, idx) => {
return isEmpty(item, ['kilde', 'master'])
? [obj('Fødested', ingenVerdierSatt)]
: [
{ numberHeader: `Fødested ${idx + 1}` },
obj('Fødested', item.foedested),
obj('Fødekommune', item.foedekommune, AdresseKodeverk.Kommunenummer),
obj('Fødeland', item.foedeland, AdresseKodeverk.InnvandretUtvandretLand),
]
}),
}
data.push(foedestedData)
}
}

const mapFoedselsdato = (foedselsdato, data) => {
if (foedselsdato) {
const foedselsdatoData = {
header: 'Fødselsdato',
itemRows: foedselsdato.map((item, idx) => {
return isEmpty(item, ['kilde', 'master'])
? [obj('Fødselsdato', ingenVerdierSatt)]
: [
{ numberHeader: `Fødselsdato ${idx + 1}` },
obj('Fødselsdato', formatDate(item.foedselsdato)),
obj('Fødselsår', item.foedselsaar),
]
}),
}
data.push(foedselsdatoData)
}
}

const mapInnflytting = (innflytting, data) => {
if (innflytting) {
const innflyttingData = {
Expand Down Expand Up @@ -2200,6 +2237,8 @@ export function mapBestillingData(bestillingData, bestillingsinformasjon, firstI
if (pdldataKriterier) {
const {
foedsel,
foedested,
foedselsdato,
kjoenn,
navn,
telefonnummer,
Expand All @@ -2226,6 +2265,8 @@ export function mapBestillingData(bestillingData, bestillingsinformasjon, firstI
} = pdldataKriterier

mapFoedsel(foedsel, data)
mapFoedested(foedested, data)
mapFoedselsdato(foedselsdato, data)
mapInnflytting(innflytting, data)
mapUtflytting(utflytting, data)
mapKjoenn(kjoenn, data)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,8 @@ import { Attributt, AttributtKategori } from '../Attributt'
import { BestillingsveilederContext } from '@/components/bestillingsveileder/BestillingsveilederContext'
import {
getInitialDoedsfall,
getInitialFoedsel,
getInitialFoedested,
getInitialFoedselsdato,
getInitialKjoenn,
getInitialNavn,
getInitialStatsborgerskap,
Expand Down Expand Up @@ -84,7 +85,8 @@ export const PersoninformasjonPanel = ({ stateModifier, testnorgeIdent }) => {
iconType={'personinformasjon'}
>
<AttributtKategori title="Alder" attr={sm.attrs}>
<Attributt attr={sm.attrs.foedsel} />
<Attributt attr={sm.attrs.foedested} />
<Attributt attr={sm.attrs.foedselsdato} />
<Attributt attr={sm.attrs.doedsdato} />
</AttributtKategori>
<AttributtKategori title="Nasjonalitet" attr={sm.attrs}>
Expand Down Expand Up @@ -129,7 +131,8 @@ export const PersoninformasjonPanel = ({ stateModifier, testnorgeIdent }) => {
>
<AttributtKategori title="Alder" attr={sm.attrs}>
<Attributt attr={sm.attrs.alder} vis={!opprettFraEksisterende && !leggTil} />
<Attributt attr={sm.attrs.foedsel} />
<Attributt attr={sm.attrs.foedested} />
<Attributt attr={sm.attrs.foedselsdato} />
<Attributt attr={sm.attrs.doedsdato} />
</AttributtKategori>

Expand Down Expand Up @@ -206,7 +209,8 @@ PersoninformasjonPanel.initialValues = ({ set, opts, setMulti, del, has }) => {
alder: 'pdldata.opprettNyPerson.alder',
foedtEtter: 'pdldata.opprettNyPerson.foedtEtter',
foedtFoer: 'pdldata.opprettNyPerson.foedtFoer',
foedsel: 'pdldata.person.foedsel',
foedested: 'pdldata.person.foedested',
foedselsdato: 'pdldata.person.foedselsdato',
doedsfall: 'pdldata.person.doedsfall',
statsborgerskap: 'pdldata.person.statsborgerskap',
innflytting: 'pdldata.person.innflytting',
Expand Down Expand Up @@ -244,11 +248,17 @@ PersoninformasjonPanel.initialValues = ({ set, opts, setMulti, del, has }) => {
add: () => setMulti([paths.alder, null], [paths.foedtEtter, null], [paths.foedtFoer, null]),
remove: () => del([paths.alder, paths.foedtEtter, paths.foedtFoer]),
},
foedsel: {
label: 'Fødsel',
checked: has(paths.foedsel),
add: () => set(paths.foedsel, [getInitialFoedsel(initMaster)]),
remove: () => del([paths.foedsel]),
foedested: {
label: 'Fødested',
checked: has(paths.foedested),
add: () => set(paths.foedested, [getInitialFoedested(initMaster)]),
remove: () => del([paths.foedested]),
},
foedselsdato: {
label: 'Fødselsdato',
checked: has(paths.foedselsdato),
add: () => set(paths.foedselsdato, [getInitialFoedselsdato(initMaster)]),
remove: () => del([paths.foedselsdato]),
},
doedsdato: {
label: 'Dødsdato',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -74,10 +74,15 @@ export const AlderspensjonForm = () => {
const { harAlder, alderNyPerson, foedtFoer, harGyldigAlder } = sjekkAlderFelt()

const alderLeggTilPerson = getAlder(
_get(opts, 'personFoerLeggTil.pdl.hentPerson.foedsel[0].foedselsdato'),
_get(opts, 'personFoerLeggTil.pdl.hentPerson.foedselsdato[0].foedselsdato') ||
_get(opts, 'personFoerLeggTil.pdl.hentPerson.foedsel[0].foedselsdato'),
)

const alderImportertPerson = opts?.importPersoner?.map((person) =>
getAlder(_get(person, 'data.hentPerson.foedsel[0].foedselsdato')),
getAlder(
_get(person, 'data.hentPerson.foedselsdato[0].foedselsdato') ||
_get(person, 'data.hentPerson.foedsel[0].foedselsdato'),
),
)

const harUgyldigFoedselsaar = () => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,28 +17,28 @@ export const getFoedselsdatoer = (values) => {
const personFoerLeggTil = values?.personFoerLeggTil
const importPersoner = values?.importPersoner

if (values?.pdldata?.person?.foedsel?.[0]?.foedselsdato) {
return [values.pdldata.person.foedsel[0].foedselsdato]
} else if (values?.pdldata?.person?.foedselsdato?.[0]?.foedselsdato) {
if (values?.pdldata?.person?.foedselsdato?.[0]?.foedselsdato) {
return [values.pdldata.person.foedselsdato[0].foedselsdato]
} else if (personFoerLeggTil?.pdlforvalter?.person?.foedsel) {
const foedselsdatoer = personFoerLeggTil.pdlforvalter.person.foedsel
} else if (values?.pdldata?.person?.foedsel?.[0]?.foedselsdato) {
return [values.pdldata.person.foedsel[0].foedselsdato]
} else if (personFoerLeggTil?.pdlforvalter?.person?.foedselsdato) {
const foedselsdatoer = personFoerLeggTil.pdlforvalter.person.foedselsdato
.map((foedsel) => foedsel.foedselsdato)
.sort((a, b) => new Date(b) - new Date(a))
return [foedselsdatoer?.[0]]
} else if (personFoerLeggTil?.pdlforvalter?.person?.foedselsdato) {
const foedselsdatoer = personFoerLeggTil.pdlforvalter.person.foedselsdato
} else if (personFoerLeggTil?.pdlforvalter?.person?.foedsel) {
const foedselsdatoer = personFoerLeggTil.pdlforvalter.person.foedsel
.map((foedsel) => foedsel.foedselsdato)
.sort((a, b) => new Date(b) - new Date(a))
return [foedselsdatoer?.[0]]
} else if (personFoerLeggTil?.pdl) {
const pdlPerson = personFoerLeggTil.pdl.hentPerson || personFoerLeggTil.pdl.person
return [pdlPerson?.foedsel?.[0]?.foedselsdato || pdlPerson?.foedselsdato?.[0]?.foedselsdato]
return [pdlPerson?.foedselsdato?.[0]?.foedselsdato || pdlPerson?.foedsel?.[0]?.foedselsdato]
} else if (importPersoner) {
return importPersoner.map(
(person) =>
person?.data?.hentPerson?.foedsel?.[0]?.foedselsdato ||
person?.data?.hentPerson?.foedselsdato?.[0]?.foedselsdato,
person?.data?.hentPerson?.foedselsdato?.[0]?.foedselsdato ||
person?.data?.hentPerson?.foedsel?.[0]?.foedselsdato,
)
}
return []
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,6 @@ export const PdlVisning = ({

const { hentPerson, hentIdenter, hentGeografiskTilknytning, ident } = pdlData
const {
foedsel,
telefonnummer,
vergemaalEllerFremtidsfullmakt,
tilrettelagtKommunikasjon,
Expand Down Expand Up @@ -82,7 +81,7 @@ export const PdlVisning = ({
tpsMessagingLoading={loading?.tpsMessaging}
/>
<IdentInfo pdlResponse={hentIdenter} />
<Foedsel data={foedsel} erPdlVisning />
<Foedsel data={hentPerson} erPdlVisning />
<Doedsfall data={doedsfall} erPdlVisning />
<GeografiskTilknytning data={hentGeografiskTilknytning} />
<PdlNasjonalitet data={hentPerson} />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@ export type PersonData = {
navn?: Array<Navn>
kjoenn?: Array<Kjoenn>
foedsel?: Array<FoedselData>
foedselsdato?: Array<FoedselsdatoData>
foedested?: Array<FoedestedData>
statsborgerskap?: Array<StatsborgerskapData>
adressebeskyttelse?: Array<AdressebeskyttelseData>
sivilstand?: Array<SivilstandData>
Expand Down Expand Up @@ -55,6 +57,21 @@ export type FoedselData = {
id?: number
}

export type FoedselsdatoData = {
foedselsdato: string
foedselsaar: number
metadata: Metadata
id?: number
}

export type FoedestedData = {
foedested: string
foedekommune: string
foedeland: string
metadata: Metadata
id?: number
}

export type DoedsfallData = {
doedsdato: string
metadata: Metadata
Expand Down Expand Up @@ -102,6 +119,7 @@ export type SivilstandData = {

export type Metadata = {
historisk: boolean
master?: string
}

export enum Rolle {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -202,6 +202,21 @@ export const getInitialFoedsel = (master = 'FREG') => ({
master: master,
})

export const getInitialFoedested = (master = 'FREG') => ({
foedekommune: null as unknown as string,
foedeland: null as unknown as string,
foedested: null as unknown as string,
kilde: 'Dolly',
master: master,
})

export const getInitialFoedselsdato = (master = 'FREG') => ({
foedselsaar: null as unknown as number,
foedselsdato: null as unknown as string,
kilde: 'Dolly',
master: master,
})

export const initialOrganisasjon = {
organisasjonsnummer: null as unknown as string,
organisasjonsnavn: null as unknown as string,
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
import { FormDollyFieldArray } from '@/components/ui/form/fieldArray/DollyFieldArray'
import { AvansertForm } from '@/components/fagsystem/pdlf/form/partials/avansert/AvansertForm'
import { getInitialFoedested } from '@/components/fagsystem/pdlf/form/initialValues'
import { FormTextInput } from '@/components/ui/form/inputs/textInput/TextInput'
import { AdresseKodeverk } from '@/config/kodeverk'
import { FormSelect } from '@/components/ui/form/inputs/select/Select'
import { SelectedValue } from '@/components/fagsystem/pdlf/PdlTypes'
import { useContext } from 'react'
import { BestillingsveilederContext } from '@/components/bestillingsveileder/BestillingsveilederContext'
import { UseFormReturn } from 'react-hook-form/dist/types'

type FoedestedTypes = {
formMethods: UseFormReturn
path?: string
}

export const FoedestedForm = ({ formMethods, path }: FoedestedTypes) => {
const opts = useContext(BestillingsveilederContext)

const handleLandChange = (selected: SelectedValue, foededtedPath: string) => {
formMethods.setValue(`${foededtedPath}.foedeland`, selected?.value || null)
if (selected?.value !== 'NOR') {
formMethods.setValue(`${foededtedPath}.foedekommune`, null)
}
formMethods.trigger()
}

return (
<>
<FormTextInput name={`${path}.foedested`} label="Fødested" />
<FormSelect
name={`${path}.foedekommune`}
label="Fødekommune"
kodeverk={AdresseKodeverk.Kommunenummer2024}
size="large"
isDisabled={
formMethods.watch(`${path}.foedeland`) !== 'NOR' &&
formMethods.watch(`${path}.foedeland`) !== null
}
/>
<FormSelect
name={`${path}.foedeland`}
label="Fødeland"
onChange={(selected: SelectedValue) => handleLandChange(selected, path)}
kodeverk={AdresseKodeverk.InnvandretUtvandretLand}
size="large"
/>
<AvansertForm
path={path}
kanVelgeMaster={opts?.identMaster !== 'PDL' && opts?.identtype !== 'NPID'}
/>
</>
)
}

export const Foedested = ({ formMethods }: FoedestedTypes) => {
const opts = useContext(BestillingsveilederContext)

return (
<div className="flexbox--flex-wrap" style={{ marginBottom: '10px' }}>
<FormDollyFieldArray
name={'pdldata.person.foedested'}
header="Fødested"
newEntry={getInitialFoedested(
opts?.identMaster === 'PDL' || opts?.identtype === 'NPID' ? 'PDL' : 'FREG',
)}
canBeEmpty={false}
>
{(path: string, _idx: number) => {
return <FoedestedForm formMethods={formMethods} path={path} />
}}
</FormDollyFieldArray>
</div>
)
}
Loading

0 comments on commit 329613b

Please sign in to comment.