Skip to content

Commit

Permalink
Improve "ForelderBarnRelasjon" form and related validation rules
Browse files Browse the repository at this point in the history
#delploy-test-frontend

The commit involves several changes related to the "ForelderBarnRelasjon" form component. Firstly, an alert was introduced when age difference of existing person is not adequately set. Secondly, updates were made to the "ForelderBarnRelasjonForm" component to include the "ident" property. Also, relevant validation rules were added to fields in various form components. Text strings were simplified by grouping similar field names together. For instance, in "KontaktDoedsbo", "Identifikasjon" and others. Lastly, a required 'ansvarlig' test was added to handle the condition when 'ansvarlig' field is 'ANDRE'.
  • Loading branch information
krharum committed Jun 10, 2024
1 parent 429ff3f commit ccad3bf
Show file tree
Hide file tree
Showing 6 changed files with 47 additions and 36 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -29,19 +29,18 @@ export const FamilierelasjonPanel = ({ stateModifier, formValues }) => {
const tekstTestNorgeFlere = 'Funksjonen er kun tilgjengelig per individ, ikke for gruppe'
const leggTilPaaGruppe = !!opts?.leggTilPaaGruppe
const tekstLeggTilPaaGruppe =
'Støttes ikke for "legg-til-på-alle" i grupper som inneholder personer fra Test-Norge'
'Støttes ikke for "legg tilalle" i grupper som inneholder personer fra Test-Norge'

const getIgnoreKeys = () => {
var ignoreKeys = []
let ignoreKeys = []
if (testNorgePerson || npidPerson) {
ignoreKeys.push('foreldreansvar', 'doedfoedtBarn')
}
if (
(ukjentGruppe && (testNorgePerson || npidPerson)) ||
(leggTilPaaGruppe && harTestnorgeIdenter)
) {
ignoreKeys.push('sivilstand', 'barnForeldre')
ignoreKeys.push('foreldreansvar', 'doedfoedtBarn')
ignoreKeys.push('sivilstand', 'barnForeldre', 'foreldreansvar', 'doedfoedtBarn')
}
return ignoreKeys
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,17 +22,18 @@ export const IdentifikasjonPanel = ({ stateModifier, formValues }) => {
const harTestnorgeIdenter = identer?.filter((ident) => ident.master === 'PDL').length > 0
const leggTilPaaGruppe = !!opts?.leggTilPaaGruppe
const tekstLeggTilPaaGruppe =
'Støttes ikke for "legg-til-på-alle" i grupper som inneholder personer fra Test-Norge'
'Støttes ikke for "legg tilalle" i grupper som inneholder personer fra Test-Norge'

const getIgnoreKeys = () => {
var ignoreKeys = []
let ignoreKeys = []
if (harNpid) {
ignoreKeys.push('falskIdentitet')
}
if (harTestnorgeIdenter && leggTilPaaGruppe) {
ignoreKeys.push('falskIdentitet')
ignoreKeys.push('utenlandskIdentifikasjonsnummer')
ignoreKeys.push('nyident')
ignoreKeys.push('falskIdentitet', 'utenlandskIdentifikasjonsnummer', 'nyident')
}
if (erTestnorgePerson) {
ignoreKeys.push('falskIdentitet', 'nyident')
}
return ignoreKeys
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ export const KontaktDoedsboPanel = ({ stateModifier, formValues }) => {
const npidPerson = opts?.identtype === 'NPID'
const leggTilPaaGruppe = !!opts?.leggTilPaaGruppe
const tekstLeggTilPaaGruppe =
'Støttes ikke for "legg-til-på-alle" i grupper som inneholder personer fra Test-Norge'
'Støttes ikke for "legg tilalle" i grupper som inneholder personer fra Test-Norge'

const getIgnoreKeys = () => {
if (npidPerson || (harTestnorgeIdenter && leggTilPaaGruppe)) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@ const ignoreKeysTestnorge = [
'utvandretTilLand',
'identtype',
'vergemaal',
'tilrettelagtKommunikasjon',
]

const utvandret = 'utvandretTilLand'
Expand All @@ -47,21 +46,18 @@ export const PersoninformasjonPanel = ({ stateModifier, testnorgeIdent }) => {
const tekstFlerePersoner = 'Funksjonen er kun tilgjengelig per individ, ikke for gruppe'
const leggTilPaaGruppe = !!opts?.leggTilPaaGruppe
const tekstLeggTilPaaGruppe =
'Støttes ikke for "legg-til-på-alle" i grupper som inneholder personer fra Test-Norge'
'Støttes ikke for "legg tilalle" i grupper som inneholder personer fra Test-Norge'

const harFnr = opts.identtype === 'FNR'
// Noen egenskaper kan ikke endres når personen opprettes fra eksisterende eller videreføres med legg til

const getIgnoreKeys = () => {
var ignoreKeys = testnorgeIdent ? [...ignoreKeysTestnorge] : ['identtype']
let ignoreKeys = testnorgeIdent ? [...ignoreKeysTestnorge] : ['identtype']
if (
(testnorgeIdent && (ukjentGruppe || opts?.antall > 1)) ||
(harTestnorgeIdenter && leggTilPaaGruppe)
) {
ignoreKeys.push('fullmakt')
ignoreKeys.push('vergemaal')
ignoreKeys.push('innvandretFraLand')
ignoreKeys.push('utvandretTilLand')
ignoreKeys.push('fullmakt', 'vergemaal', 'innvandretFraLand', 'utvandretTilLand')
}
if (sm.attrs.utenlandskBankkonto.checked) {
ignoreKeys.push('norskBankkonto')
Expand All @@ -72,8 +68,7 @@ export const PersoninformasjonPanel = ({ stateModifier, testnorgeIdent }) => {
ignoreKeys.push(utvandret)
}
if (!harFnr) {
ignoreKeys.push('innvandretFraLand')
ignoreKeys.push('vergemaal')
ignoreKeys.push('innvandretFraLand', 'vergemaal')
}
return ignoreKeys
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,15 @@ import { PdlNyPerson } from '@/components/fagsystem/pdlf/form/partials/pdlPerson
import { Alert, ToggleGroup } from '@navikt/ds-react'
import { UseFormReturn } from 'react-hook-form/dist/types'
import { BestillingsveilederContext } from '@/components/bestillingsveileder/BestillingsveilederContext'
import StyledAlert from '@/components/ui/alert/StyledAlert'

interface ForelderForm {
formMethods: UseFormReturn
path?: string
idx?: number
eksisterendeNyPerson?: any
identtype?: string
ident?: string
}

type Target = {
Expand All @@ -45,6 +47,7 @@ export const ForelderBarnRelasjonForm = ({
idx,
eksisterendeNyPerson = null,
identtype,
ident,
}: ForelderForm) => {
const opts = useContext(BestillingsveilederContext)

Expand Down Expand Up @@ -173,7 +176,15 @@ export const ForelderBarnRelasjonForm = ({
}
/>
</div>

{identMaster === 'PDLF' &&
getForelderBarnType() === 'EKSISTERENDE' &&
!ident &&
!formMethods.getValues().pdldata?.opprettNyPerson?.alder && (
<StyledAlert variant={'warning'} size={'small'}>
Ved "Eksisterende person" må alder oppgis på hovedpersonen: Gå tilbake til "Velg
egenskaper", huk av for alder og sett en verdi så aldersforskjell blir minst 18 år.
</StyledAlert>
)}
{(testnorgePerson || getForelderBarnType() === TypeAnsvarlig.EKSISTERENDE) && (
<PdlEksisterendePerson
eksisterendePersonPath={`${path}.relatertPerson`}
Expand Down Expand Up @@ -227,7 +238,7 @@ export const ForelderBarnRelasjonForm = ({
}

export const ForelderBarnRelasjon = ({ formMethods }: ForelderForm) => {
const { identtype, identMaster } = useContext(BestillingsveilederContext)
const { identtype, identMaster, personFoerLeggTil } = useContext(BestillingsveilederContext)
const initiellMaster = identMaster === 'PDL' || identtype === 'NPID' ? 'PDL' : 'FREG'

return (
Expand All @@ -238,7 +249,14 @@ export const ForelderBarnRelasjon = ({ formMethods }: ForelderForm) => {
canBeEmpty={false}
>
{(path: string, idx: number) => {
return <ForelderBarnRelasjonForm formMethods={formMethods} path={path} idx={idx} />
return (
<ForelderBarnRelasjonForm
formMethods={formMethods}
path={path}
idx={idx}
ident={personFoerLeggTil?.pdl?.ident}
/>
)
}}
</FormDollyFieldArray>
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -84,18 +84,6 @@ const testForeldreansvar = (val: Yup.StringSchema<string, Yup.AnyObject>) => {
feilmelding = 'Partner er ikke forelder'
}
}
if (selected === 'ANDRE') {
let isOK = true
testContext?.from
?.find((ansvar) => ansvar.value.foreldreansvar?.length > 0)
?.value.foreldreansvar.filter(
(ansvar) => ansvar.typeAnsvarlig === 'EKSISTERENDE' && !ansvar.ansvarlig,
)
.map(() => (isOK = false))
if (!isOK) {
feilmelding = 'Ansvarlig person må velges'
}
}
return feilmelding ? testContext.createError({ message: feilmelding }) : true
})
}
Expand Down Expand Up @@ -220,7 +208,7 @@ export const sivilstand = Yup.object({
testcontext.parent.type !== 'REGISTRERT_PARTNER' &&
testcontext.parent.type !== 'SEPARERT_PARTNER' &&
testcontext.parent.type !== 'SAMBOER') ||
testcontext.options.context.identMaster !== 'PDL'
testcontext.options.context?.identMaster !== 'PDL'
)
})
.nullable(),
Expand Down Expand Up @@ -267,7 +255,7 @@ export const forelderBarnRelasjon = Yup.object().shape(
relatertPersonsRolle: requiredString,
relatertPerson: Yup.string()
.test('er-testnorge-paakrevd', 'Person fra Testnorge er påkrevd', (value, testcontext) => {
return testcontext.options.context.identMaster !== 'PDL' || value
return testcontext.options.context?.identMaster !== 'PDL' || value
})
.test(
'er-eksisterende-paakrevd',
Expand Down Expand Up @@ -323,6 +311,16 @@ export const foreldreansvar = Yup.object({
ansvar: testForeldreansvar(requiredString),
gyldigFraOgMed: testDatoFom(Yup.mixed().nullable(), 'gyldigTilOgMed'),
gyldigTilOgMed: testDatoTom(Yup.mixed().nullable(), 'gyldigFraOgMed'),
ansvarlig: Yup.string()
.test('ansvarlig-andre-paakrevd', 'Ansvarlig person må velges', (value, testcontext) => {
return (
!!value ||
testcontext.parent?.ansvar !== 'ANDRE' ||
testcontext.parent?.ansvarligUtenIdentifikator ||
testcontext.parent?.nyAnsvarlig
)
})
.nullable(),
})

export const foreldreansvarForBarn = Yup.object({
Expand Down

0 comments on commit ccad3bf

Please sign in to comment.