Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bugfix/sjekk arbeidsgiverident #3412

Merged
merged 5 commits into from
Feb 9, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
Loading