Skip to content

Commit

Permalink
Merge pull request #3412 from navikt/bugfix/sjekk-arbeidsgiverident
Browse files Browse the repository at this point in the history
Bugfix/sjekk arbeidsgiverident
  • Loading branch information
betsytraran authored Feb 9, 2024
2 parents 2de2e1d + d00c435 commit f3edff5
Show file tree
Hide file tree
Showing 4 changed files with 84 additions and 76 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -1228,23 +1228,23 @@ const mapInntektStub = (bestillingData, data) => {
obj('Opplysningspliktig (orgnr/id)', inntektsinfo.opplysningspliktig),
obj(
'Antall registrerte inntekter',
inntektsinfo.inntektsliste && inntektsinfo.inntektsliste.length,
inntektsinfo.inntektsliste && inntektsinfo.inntektsliste?.length,
),
obj(
'Antall registrerte fradrag',
inntektsinfo.fradragsliste && inntektsinfo.fradragsliste.length,
inntektsinfo.fradragsliste && inntektsinfo.fradragsliste?.length,
),
obj(
'Antall registrerte forskuddstrekk',
inntektsinfo.forskuddstrekksliste && inntektsinfo.forskuddstrekksliste.length,
inntektsinfo.forskuddstrekksliste && inntektsinfo.forskuddstrekksliste?.length,
),
obj(
'Antall registrerte arbeidsforhold',
inntektsinfo.arbeidsforholdsliste && inntektsinfo.arbeidsforholdsliste.length,
inntektsinfo.arbeidsforholdsliste && inntektsinfo.arbeidsforholdsliste?.length,
),
obj(
'Antall registrerte inntektsendringer (historikk)',
inntektsinfo.historikk && inntektsinfo.historikk.length,
inntektsinfo.historikk && inntektsinfo.historikk?.length,
),
])
})
Expand Down Expand Up @@ -1467,7 +1467,7 @@ const mapSykemelding = (bestillingData, data) => {
obj(
'Antall registrerte bidiagnoser',
sykemeldingKriterier.detaljertSykemelding.biDiagnoser &&
sykemeldingKriterier.detaljertSykemelding.biDiagnoser.length,
sykemeldingKriterier.detaljertSykemelding.biDiagnoser?.length,
),
obj(
'Helsepersonell navn',
Expand Down Expand Up @@ -1497,7 +1497,7 @@ const mapSykemelding = (bestillingData, data) => {
),
obj(
'Antall registrerte perioder',
sykemeldingKriterier.detaljertSykemelding.perioder.length,
sykemeldingKriterier.detaljertSykemelding.perioder?.length,
),
obj(
'Tiltak fra NAV',
Expand Down Expand Up @@ -1540,7 +1540,7 @@ const mapBrregstub = (bestillingData, data) => {
obj('Registreringsdato', formatDate(enhet.registreringsdato)),
obj('Organisasjonsnummer', enhet.orgNr),
obj('Foretaksnavn', enhet.foretaksNavn.navn1),
obj('Antall registrerte personroller', enhet.personroller && enhet.personroller.length),
obj('Antall registrerte personroller', enhet.personroller && enhet.personroller?.length),
])
})

Expand Down Expand Up @@ -1825,7 +1825,7 @@ const mapUdiStub = (bestillingData, data) => {
obj('Arbeidsadgang til dato', formatDate(_.get(arbeidsadgangKriterier, 'periode.til'))),
obj('Hjemmel', _.get(arbeidsadgangKriterier, 'hjemmel')),
obj('Forklaring', _.get(arbeidsadgangKriterier, 'forklaring')),
obj('Alias', aliaserListe.length > 0 && aliaserListe),
obj('Alias', aliaserListe?.length > 0 && aliaserListe),
obj('Flyktningstatus', oversettBoolean(udiStubKriterier.flyktning)),
obj(
'Asylsøker',
Expand Down Expand Up @@ -1858,9 +1858,9 @@ const mapPensjon = (bestillingData, data, navEnheter) => {
data.push(pensjonforvalterPopp)
}

if (pensjonKriterier.tp && pensjonKriterier.tp.length > 0) {
if (pensjonKriterier.tp && pensjonKriterier.tp?.length > 0) {
const hentTpOrdningNavn = (tpnr) => {
if (Options('tpOrdninger').length) {
if (Options('tpOrdninger')?.length) {
return Options('tpOrdninger').find((ordning) => ordning.value === tpnr)?.label
}
return tpnr
Expand Down Expand Up @@ -1983,27 +1983,27 @@ const mapInntektsmelding = (bestillingData, data) => {
obj('Første fraværsdag', formatDate(inntekt.arbeidsforhold.foersteFravaersdag)),
obj(
'Avtalte ferier',
inntekt.arbeidsforhold.avtaltFerieListe && inntekt.arbeidsforhold.avtaltFerieListe.length,
inntekt.arbeidsforhold.avtaltFerieListe && inntekt.arbeidsforhold.avtaltFerieListe?.length,
),
//Refusjon
obj('Refusjonsbeløp per måned', inntekt.refusjon.refusjonsbeloepPrMnd),
obj('Opphørsdato refusjon', formatDate(inntekt.refusjon.refusjonsopphoersdato)),
obj(
'Endringer i refusjon',
_.has(inntekt, 'refusjon.endringIRefusjonListe') &&
inntekt.refusjon.endringIRefusjonListe.length,
inntekt.refusjon.endringIRefusjonListe?.length,
),
//Omsorg
obj('Har utbetalt pliktige dager', _.get(inntekt, 'omsorgspenger.harUtbetaltPliktigeDager')),
obj(
'Fraværsperioder',
_.has(inntekt, 'omsorgspenger.fravaersPerioder') &&
inntekt.omsorgspenger.fravaersPerioder.length,
inntekt.omsorgspenger.fravaersPerioder?.length,
),
obj(
'Delvis fravær',
_.has(inntekt, 'omsorgspenger.delvisFravaersListe') &&
inntekt.omsorgspenger.delvisFravaersListe.length,
inntekt.omsorgspenger.delvisFravaersListe?.length,
),
//Sykepenger
obj('Brutto utbetalt', _.get(inntekt, 'sykepengerIArbeidsgiverperioden.bruttoUtbetalt')),
Expand All @@ -2019,20 +2019,24 @@ const mapInntektsmelding = (bestillingData, data) => {
obj(
'Arbeidsgiverperioder',
_.has(inntekt, 'sykepengerIArbeidsgiverperioden.arbeidsgiverperiodeListe') &&
inntekt.sykepengerIArbeidsgiverperioden.arbeidsgiverperiodeListe.length,
inntekt.sykepengerIArbeidsgiverperioden.arbeidsgiverperiodeListe?.length,
),
//Foreldrepenger
obj('Startdato foreldrepenger', formatDate(inntekt.startdatoForeldrepengeperiode)),
//Pleiepenger
obj('Pleiepengerperioder', inntekt.pleiepengerPerioder && inntekt.pleiepengerPerioder.length),
obj(
'Pleiepengerperioder',
inntekt.pleiepengerPerioder && inntekt.pleiepengerPerioder?.length,
),
//Naturalytelse
obj(
'Gjenopptagelse Naturalytelse',
inntekt.gjenopptakelseNaturalytelseListe && inntekt.gjenopptakelseNaturalytelseListe.length,
inntekt.gjenopptakelseNaturalytelseListe &&
inntekt.gjenopptakelseNaturalytelseListe?.length,
),
obj(
'Opphør av Naturalytelse',
inntekt.opphoerAvNaturalytelseListe && inntekt.opphoerAvNaturalytelseListe.length,
inntekt.opphoerAvNaturalytelseListe && inntekt.opphoerAvNaturalytelseListe?.length,
),
]),
})
Expand Down Expand Up @@ -2067,7 +2071,7 @@ const mapDokarkiv = (bestillingData, data) => {
obj('Sakstype', showLabel('sakstype', dokarkivKriterier.sak?.sakstype)),
obj('Fagsaksystem', showLabel('fagsaksystem', dokarkivKriterier.sak?.fagsaksystem)),
obj('Fagsak-ID', dokarkivKriterier.sak?.fagsakId),
obj('Antall vedlegg', dokarkivKriterier.dokumenter.length),
obj('Antall vedlegg', dokarkivKriterier.dokumenter?.length),
],
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
import React, { useState } from 'react'
import React, { useEffect, useState } from 'react'
import { useBoolean } from 'react-use'
import * as _ from 'lodash-es'
import Icon from '@/components/ui/icon/Icon'
import Loading from '@/components/ui/loading/Loading'
import { DollyTextInput } from '@/components/ui/form/inputs/textInput/TextInput'
import { PdlforvalterApi } from '@/service/Api'
import { useFormikContext } from 'formik'
import { useNaviger } from '@/utils/hooks/useNaviger'

type ArbeidsgiverIdentProps = {
path: string
Expand All @@ -15,48 +15,54 @@ type ArbeidsgiverIdentProps = {
export const ArbeidsgiverIdent = ({ path, isDisabled }: ArbeidsgiverIdentProps) => {
const formikBag = useFormikContext()
const [error, setError] = useState(null)
const [personnummer, setPersonnummer] = useState(_.get(formikBag.values, path))
const [success, setSuccess] = useBoolean(false)
const [loading, setLoading] = useBoolean(false)
const [personnummer, setPersonnummer] = useState(_.get(formikBag.values, path))
const { result, loading: loadingNaviger, error: errorNaviger } = useNaviger(personnummer)

useEffect(() => {
if (personnummer) {
if (result?.identNavigerTil) {
setSuccess(true)
setError(null)
} else {
setError('Fant ikke arbeidsgiver-ident')
}
}
}, [result, errorNaviger])

useEffect(() => {
if (error) {
formikBag.setFieldError(path, error)
} else {
formikBag.setFieldError(path, undefined)
}
}, [error, formikBag.errors, personnummer])

const handleChange = (event: React.ChangeEvent<any>) => {
event.preventDefault()
setError(null)
setSuccess(false)

const personnr = event.target.value

// TODO: move to frontend validation
formikBag.setFieldValue(`${path}`, personnr)
if (personnr.match(/^\d{11}$/) != null) {
handleManualPersonnrChange(personnr)
setPersonnummer(personnr)
} else {
setError('Ident må være et tall med 11 siffer')
formikBag.setFieldValue(`${path}`, '')
}
}

const handleManualPersonnrChange = (personnr: string) => {
setLoading(true)

PdlforvalterApi.getPersoner([personnr])
.then((response: any) => {
if (!response?.data || response?.data?.length < 1) {
setError('Fant ikke arbeidsgiver-ident')
setLoading(false)
formikBag.setFieldValue(`${path}`, '')
return
}

setError(null)
setSuccess(true)
setLoading(false)
setPersonnummer(personnr)

formikBag.setFieldValue(`${path}`, personnr)
})
.catch(() => setError('Fant ikke arbeidsgiver-ident'))
const getFeilmelding = () => {
if (error) {
return {
feilmelding: error,
}
} else if (!_.get(formikBag.values, path)) {
return { feilmelding: 'Feltet er påkrevd' }
}
return null
}

const feilmelding = getFeilmelding()

return (
<div>
<DollyTextInput
Expand All @@ -65,20 +71,16 @@ export const ArbeidsgiverIdent = ({ path, isDisabled }: ArbeidsgiverIdentProps)
defaultValue={personnummer}
label={'Arbeidsgiver ident'}
onBlur={handleChange}
isDisabled={loading || isDisabled}
feil={
error && {
feilmelding: error,
}
}
isDisabled={loadingNaviger || isDisabled}
feil={feilmelding}
/>
{success && (
<div className="flexbox" style={{ marginTop: '-5px' }}>
<Icon size={22} kind="feedback-check-circle" style={{ marginRight: '10px' }} /> Ident
funnet
</div>
)}
{loading && <Loading label="Sjekker arbeidsgiver ident." />}
{loadingNaviger && <Loading label="Sjekker arbeidsgiver-ident" />}
</div>
)
}
Loading

0 comments on commit f3edff5

Please sign in to comment.