diff --git a/apps/dolly-frontend/src/main/js/src/components/fagsystem/aareg/form/Form.tsx b/apps/dolly-frontend/src/main/js/src/components/fagsystem/aareg/form/Form.tsx index 9818ee2c45f..9b438bfbfb7 100644 --- a/apps/dolly-frontend/src/main/js/src/components/fagsystem/aareg/form/Form.tsx +++ b/apps/dolly-frontend/src/main/js/src/components/fagsystem/aareg/form/Form.tsx @@ -10,7 +10,7 @@ import { ArbeidsforholdForm } from '@/components/fagsystem/aareg/form/partials/a import React from 'react' import { useDollyFasteDataOrganisasjoner, useOrganisasjoner } from '@/utils/hooks/useOrganisasjoner' import { useCurrentBruker } from '@/utils/hooks/useBruker' -import { getEgneOrganisasjoner } from '@/components/fagsystem/brregstub/form/partials/EgneOrganisasjoner' +import { getEgneOrganisasjoner } from '@/utils/EgneOrganisasjoner' export const aaregAttributt = 'aareg' diff --git a/apps/dolly-frontend/src/main/js/src/components/fagsystem/aareg/form/partials/arbeidsforholdToggle.tsx b/apps/dolly-frontend/src/main/js/src/components/fagsystem/aareg/form/partials/arbeidsforholdToggle.tsx index ad36a83f1c6..df1df4f056e 100644 --- a/apps/dolly-frontend/src/main/js/src/components/fagsystem/aareg/form/partials/arbeidsforholdToggle.tsx +++ b/apps/dolly-frontend/src/main/js/src/components/fagsystem/aareg/form/partials/arbeidsforholdToggle.tsx @@ -4,7 +4,7 @@ import { Alert, ToggleGroup } from '@navikt/ds-react' import { initialArbeidsgiverOrg, initialArbeidsgiverPers } from '../initialValues' import { ArbeidsgiverTyper } from '@/components/fagsystem/aareg/AaregTypes' import { useFormContext } from 'react-hook-form' -import { EgneOrganisasjoner } from '@/components/fagsystem/brregstub/form/partials/EgneOrganisasjoner' +import { EgneOrganisasjoner } from '@/utils/EgneOrganisasjoner' import Loading from '@/components/ui/loading/Loading' import { OrganisasjonMedArbeidsforholdSelect } from '@/components/organisasjonSelect' import { FormTextInput } from '@/components/ui/form/inputs/textInput/TextInput' @@ -12,7 +12,7 @@ import { ArbeidsgiverIdent } from '@/components/fagsystem/aareg/form/partials/ar import _ from 'lodash' import { BestillingsveilederContext } from '@/components/bestillingsveileder/BestillingsveilederContext' import { hentAaregEksisterendeData } from '@/components/fagsystem/aareg/form/utils' -import { arbeidsgiverToggleValues } from '@/components/fagsystem/utils' +import { arbeidsgiverToggleValues } from '@/utils/OrgUtils' const ToggleArbeidsgiver = styled(ToggleGroup)` display: grid; diff --git a/apps/dolly-frontend/src/main/js/src/components/fagsystem/brregstub/form/partials/OrgMiljoeInfoVisning.tsx b/apps/dolly-frontend/src/main/js/src/components/fagsystem/brregstub/form/partials/OrgMiljoeInfoVisning.tsx deleted file mode 100644 index 90c3fc9a2f9..00000000000 --- a/apps/dolly-frontend/src/main/js/src/components/fagsystem/brregstub/form/partials/OrgMiljoeInfoVisning.tsx +++ /dev/null @@ -1,36 +0,0 @@ -import React from 'react' -import Icon from '@/components/ui/icon/Icon' -import Loading from '@/components/ui/loading/Loading' - -type Props = { - miljoer: string[] - loading?: boolean - error?: boolean -} - -export const OrgMiljoeInfoVisning = ({ miljoer, loading = false, error = false }: Props) => { - const harMiljoe = miljoer.length > 0 - return ( -
- {loading && } - {!loading && error && ( -
- - Feil oppsto i henting av organisasjon info -
- )} - {!loading && !error && ( -
- - {harMiljoe - ? 'Organisasjon funnet i miljø: ' + miljoer - : 'Fant ikke organisasjon i noen miljø'} -
- )} -
- ) -} diff --git a/apps/dolly-frontend/src/main/js/src/components/fagsystem/brregstub/form/partials/orgnrToggle.tsx b/apps/dolly-frontend/src/main/js/src/components/fagsystem/brregstub/form/partials/orgnrToggle.tsx index ae43d7c9560..c0c24fd5ec6 100644 --- a/apps/dolly-frontend/src/main/js/src/components/fagsystem/brregstub/form/partials/orgnrToggle.tsx +++ b/apps/dolly-frontend/src/main/js/src/components/fagsystem/brregstub/form/partials/orgnrToggle.tsx @@ -1,10 +1,7 @@ import React, { useEffect, useState } from 'react' import { OrganisasjonTextSelect } from '@/components/fagsystem/brregstub/form/partials/organisasjonTextSelect' import { OrganisasjonToggleGruppe } from '@/components/organisasjonSelect/OrganisasjonToggleGruppe' -import { - EgneOrganisasjoner, - getEgneOrganisasjoner, -} from '@/components/fagsystem/brregstub/form/partials/EgneOrganisasjoner' +import { EgneOrganisasjoner, getEgneOrganisasjoner } from '@/utils/EgneOrganisasjoner' import { useDollyEnvironments } from '@/utils/hooks/useEnvironments' import { OrganisasjonLoader } from '@/components/organisasjonSelect/OrganisasjonLoader' import { UseFormReturn } from 'react-hook-form/dist/types' @@ -12,7 +9,7 @@ import { useCurrentBruker } from '@/utils/hooks/useBruker' import { useDollyFasteDataOrganisasjoner, useOrganisasjoner } from '@/utils/hooks/useOrganisasjoner' import { ArbeidsgiverTyper } from '@/components/fagsystem/aareg/AaregTypes' import Loading from '@/components/ui/loading/Loading' -import { getOrgType } from '@/components/fagsystem/utils' +import { getOrgType } from '@/utils/OrgUtils' interface OrgnrToggleProps { path: string diff --git a/apps/dolly-frontend/src/main/js/src/components/fagsystem/inntektsmelding/form/partials/orgnrToogle.tsx b/apps/dolly-frontend/src/main/js/src/components/fagsystem/inntektsmelding/form/partials/orgnrToogle.tsx index b0e92fc3d88..6da3a2b81bd 100644 --- a/apps/dolly-frontend/src/main/js/src/components/fagsystem/inntektsmelding/form/partials/orgnrToogle.tsx +++ b/apps/dolly-frontend/src/main/js/src/components/fagsystem/inntektsmelding/form/partials/orgnrToogle.tsx @@ -2,16 +2,13 @@ import React, { useEffect, useState } from 'react' import { OrganisasjonMedArbeidsforholdSelect } from '@/components/organisasjonSelect' import { FormTextInput } from '@/components/ui/form/inputs/textInput/TextInput' import { OrganisasjonToggleGruppe } from '@/components/organisasjonSelect/OrganisasjonToggleGruppe' -import { - EgneOrganisasjoner, - getEgneOrganisasjoner, -} from '@/components/fagsystem/brregstub/form/partials/EgneOrganisasjoner' +import { EgneOrganisasjoner, getEgneOrganisasjoner } from '@/utils/EgneOrganisasjoner' import { UseFormReturn } from 'react-hook-form/dist/types' import { useCurrentBruker } from '@/utils/hooks/useBruker' import { useDollyFasteDataOrganisasjoner, useOrganisasjoner } from '@/utils/hooks/useOrganisasjoner' import { ArbeidsgiverTyper } from '@/components/fagsystem/aareg/AaregTypes' import Loading from '@/components/ui/loading/Loading' -import { getOrgType } from '@/components/fagsystem/utils' +import { getOrgType } from '@/utils/OrgUtils' interface OrgnrToggleProps { path: string diff --git a/apps/dolly-frontend/src/main/js/src/components/fagsystem/inntektstub/form/partials/virksomhetToggle.tsx b/apps/dolly-frontend/src/main/js/src/components/fagsystem/inntektstub/form/partials/virksomhetToggle.tsx index 724ea47d0ab..f86a8ad4db4 100644 --- a/apps/dolly-frontend/src/main/js/src/components/fagsystem/inntektstub/form/partials/virksomhetToggle.tsx +++ b/apps/dolly-frontend/src/main/js/src/components/fagsystem/inntektstub/form/partials/virksomhetToggle.tsx @@ -3,10 +3,7 @@ import styled from 'styled-components' import { ToggleGroup } from '@navikt/ds-react' import { ArbeidsgiverTyper } from '@/components/fagsystem/aareg/AaregTypes' import { useFormContext } from 'react-hook-form' -import { - EgneOrganisasjoner, - getEgneOrganisasjoner, -} from '@/components/fagsystem/brregstub/form/partials/EgneOrganisasjoner' +import { EgneOrganisasjoner, getEgneOrganisasjoner } from '@/utils/EgneOrganisasjoner' import Loading from '@/components/ui/loading/Loading' import { OrganisasjonMedArbeidsforholdSelect } from '@/components/organisasjonSelect' import { FormTextInput } from '@/components/ui/form/inputs/textInput/TextInput' @@ -19,11 +16,7 @@ import { import { OrganisasjonMedMiljoeSelect } from '@/components/organisasjonSelect/OrganisasjonMedMiljoeSelect' import { useBoolean } from 'react-use' import { useDollyEnvironments } from '@/utils/hooks/useEnvironments' -import { - arbeidsgiverToggleValues, - getOrgType, - handleManualOrgChange, -} from '@/components/fagsystem/utils' +import { arbeidsgiverToggleValues, getOrgType, handleManualOrgChange } from '@/utils/OrgUtils' const ToggleArbeidsgiver = styled(ToggleGroup)` display: grid; diff --git a/apps/dolly-frontend/src/main/js/src/components/fagsystem/skattekort/form/ArbeidsgiverToggle.tsx b/apps/dolly-frontend/src/main/js/src/components/fagsystem/skattekort/form/ArbeidsgiverToggle.tsx index 4fcaa4d3b1a..9c385ccbb65 100644 --- a/apps/dolly-frontend/src/main/js/src/components/fagsystem/skattekort/form/ArbeidsgiverToggle.tsx +++ b/apps/dolly-frontend/src/main/js/src/components/fagsystem/skattekort/form/ArbeidsgiverToggle.tsx @@ -9,18 +9,15 @@ import { useFasteDataOrganisasjon, useOrganisasjoner, } from '@/utils/hooks/useOrganisasjoner' -import { - EgneOrganisasjoner, - getEgneOrganisasjoner, -} from '@/components/fagsystem/brregstub/form/partials/EgneOrganisasjoner' +import { EgneOrganisasjoner, getEgneOrganisasjoner } from '@/utils/EgneOrganisasjoner' import { ArbeidsgiverTyper } from '@/components/fagsystem/aareg/AaregTypes' import { useDollyEnvironments } from '@/utils/hooks/useEnvironments' import { useBoolean } from 'react-use' import Loading from '@/components/ui/loading/Loading' -import { arbeidsgiverToggleValues, handleManualOrgChange } from '@/components/fagsystem/utils' import { OrganisasjonMedArbeidsforholdSelect } from '@/components/organisasjonSelect' import { OrganisasjonMedMiljoeSelect } from '@/components/organisasjonSelect/OrganisasjonMedMiljoeSelect' import styled from 'styled-components' +import { arbeidsgiverToggleValues, handleManualOrgChange } from '@/utils/OrgUtils' const ToggleArbeidsgiver = styled(ToggleGroup)` display: grid; diff --git a/apps/dolly-frontend/src/main/js/src/components/fagsystem/utils.tsx b/apps/dolly-frontend/src/main/js/src/components/fagsystem/utils.tsx index 96703ccb2d3..466901b1772 100644 --- a/apps/dolly-frontend/src/main/js/src/components/fagsystem/utils.tsx +++ b/apps/dolly-frontend/src/main/js/src/components/fagsystem/utils.tsx @@ -1,8 +1,6 @@ import _ from 'lodash' import { isAfter, isBefore, isEqual } from 'date-fns' import { Relasjon } from '@/components/fagsystem/pdlf/PdlTypes' -import { ArbeidsgiverTyper } from '@/components/fagsystem/aareg/AaregTypes' -import { OrgserviceApi } from '@/service/Api' export const testDatoFom = (val, tomPath, feilmelding = 'Dato må være før til-dato') => { return val.test('is-before-tom', feilmelding, (value, testContext) => { @@ -49,88 +47,3 @@ export const getRandomValue = (liste: Array) => { const random = Math.floor(Math.random() * liste.length) //NOSONAR not used in secure contexts return liste[random] } - -//TODO: Hente ut alle org-relaterte greier i en egen fil? -export const arbeidsgiverToggleValues = [ - { - value: ArbeidsgiverTyper.felles, - label: 'Felles organisasjoner', - }, - { - value: ArbeidsgiverTyper.egen, - label: 'Egen organisasjon', - }, - { - value: ArbeidsgiverTyper.fritekst, - label: 'Skriv inn org.nr.', - }, - { - value: ArbeidsgiverTyper.privat, - label: 'Privat arbeidsgiver', - }, -] - -export const handleManualOrgChange = ( - org: string, - miljo: string, - formMethods, - path, - setLoading, - setSuccess, - organisasjon, - opplysningspliktigPath, -) => { - const validEnhetstyper = ['BEDR', 'AAFY'] - if (!org || !miljo) { - return - } - formMethods.clearErrors(path) - setLoading(true) - setSuccess(false) - OrgserviceApi.getOrganisasjonInfo(org, miljo) - .then((response: { data: { enhetType: string; juridiskEnhet: any; orgnummer: any } }) => { - setLoading(false) - if (!validEnhetstyper.includes(response.data.enhetType)) { - formMethods.setError(path, { message: 'Organisasjonen må være av type BEDR eller AAFY' }) - return - } - if (!response.data.juridiskEnhet) { - if (organisasjon?.overenhet) { - opplysningspliktigPath && - formMethods.setValue(`${opplysningspliktigPath}`, organisasjon.overenhet) - } else { - formMethods.setError(path, { message: 'Organisasjonen mangler juridisk enhet' }) - return - } - } - setSuccess(true) - opplysningspliktigPath && - response.data.juridiskEnhet && - formMethods.setValue(`${opplysningspliktigPath}`, response.data.juridiskEnhet) - formMethods.setValue(`${path}`, response.data.orgnummer) - }) - .catch(() => { - setLoading(false) - formMethods.setError(path, { message: 'Fant ikke organisasjonen i ' + miljo }) - }) -} - -export const getOrgType = (orgnr: string, fasteOrganisasjoner: any, egneOrganisasjoner: any) => { - if ( - !orgnr || - orgnr === '' || - fasteOrganisasjoner - ?.map((organisasjon: any) => organisasjon?.orgnummer) - ?.some((org: string) => org === orgnr) - ) { - return ArbeidsgiverTyper.felles - } else if ( - egneOrganisasjoner - ?.map((organisasjon: any) => organisasjon?.orgnr) - ?.some((org: string) => org === orgnr) - ) { - return ArbeidsgiverTyper.egen - } else { - return ArbeidsgiverTyper.fritekst - } -} diff --git a/apps/dolly-frontend/src/main/js/src/components/searchField/SearchField.less b/apps/dolly-frontend/src/main/js/src/components/searchField/SearchField.less index cae6c004a03..58ff1da5d80 100644 --- a/apps/dolly-frontend/src/main/js/src/components/searchField/SearchField.less +++ b/apps/dolly-frontend/src/main/js/src/components/searchField/SearchField.less @@ -16,7 +16,7 @@ } svg { - position: absolute; + position: inherit; top: 6px; right: 8px; } diff --git a/apps/dolly-frontend/src/main/js/src/components/fagsystem/brregstub/form/partials/EgneOrganisasjoner.tsx b/apps/dolly-frontend/src/main/js/src/utils/EgneOrganisasjoner.tsx similarity index 86% rename from apps/dolly-frontend/src/main/js/src/components/fagsystem/brregstub/form/partials/EgneOrganisasjoner.tsx rename to apps/dolly-frontend/src/main/js/src/utils/EgneOrganisasjoner.tsx index 8723fd96f77..5767d62cf6a 100644 --- a/apps/dolly-frontend/src/main/js/src/components/fagsystem/brregstub/form/partials/EgneOrganisasjoner.tsx +++ b/apps/dolly-frontend/src/main/js/src/utils/EgneOrganisasjoner.tsx @@ -6,9 +6,10 @@ import { useCurrentBruker } from '@/utils/hooks/useBruker' import { EgneOrgSelect } from '@/components/ui/form/inputs/select/EgneOrgSelect' import { useOrganisasjoner } from '@/utils/hooks/useOrganisasjoner' import { OrgforvalterApi } from '@/service/Api' -import { OrgMiljoeInfoVisning } from '@/components/fagsystem/brregstub/form/partials/OrgMiljoeInfoVisning' import { useFormContext } from 'react-hook-form' import StyledAlert from '@/components/ui/alert/StyledAlert' +import Loading from '@/components/ui/loading/Loading' +import Icon from '@/components/ui/icon/Icon' interface OrgProps { path: string @@ -19,6 +20,12 @@ interface OrgProps { isDisabled?: boolean } +type Props = { + miljoer: string[] + loading?: boolean + error?: boolean +} + const getAdresseWithAdressetype = (adresser: Adresse[], adressetype: string) => { if (!adresser || adresser.length === 0) { return [] @@ -62,6 +69,33 @@ const getJuridiskEnhet = (orgnr: string, enheter: Organisasjon[]) => { return '' } +const OrgMiljoeInfoVisning = ({ miljoer, loading = false, error = false }: Props) => { + const harMiljoe = miljoer.length > 0 + return ( +
+ {loading && } + {!loading && error && ( +
+ + Feil oppsto i henting av organisasjon info +
+ )} + {!loading && !error && ( +
+ + {harMiljoe + ? 'Organisasjon funnet i miljø: ' + miljoer + : 'Fant ikke organisasjon i noen miljø'} +
+ )} +
+ ) +} + export const getEgneOrganisasjoner = (organisasjoner: Organisasjon[] | undefined) => { if (!organisasjoner) { return [] diff --git a/apps/dolly-frontend/src/main/js/src/utils/OrgUtils.tsx b/apps/dolly-frontend/src/main/js/src/utils/OrgUtils.tsx new file mode 100644 index 00000000000..24d9379bcb9 --- /dev/null +++ b/apps/dolly-frontend/src/main/js/src/utils/OrgUtils.tsx @@ -0,0 +1,86 @@ +import { ArbeidsgiverTyper } from '@/components/fagsystem/aareg/AaregTypes' +import { OrgserviceApi } from '@/service/Api' + +export const arbeidsgiverToggleValues = [ + { + value: ArbeidsgiverTyper.felles, + label: 'Felles organisasjoner', + }, + { + value: ArbeidsgiverTyper.egen, + label: 'Egen organisasjon', + }, + { + value: ArbeidsgiverTyper.fritekst, + label: 'Skriv inn org.nr.', + }, + { + value: ArbeidsgiverTyper.privat, + label: 'Privat arbeidsgiver', + }, +] + +export const getOrgType = (orgnr: string, fasteOrganisasjoner: any, egneOrganisasjoner: any) => { + if ( + !orgnr || + orgnr === '' || + fasteOrganisasjoner + ?.map((organisasjon: any) => organisasjon?.orgnummer) + ?.some((org: string) => org === orgnr) + ) { + return ArbeidsgiverTyper.felles + } else if ( + egneOrganisasjoner + ?.map((organisasjon: any) => organisasjon?.orgnr) + ?.some((org: string) => org === orgnr) + ) { + return ArbeidsgiverTyper.egen + } else { + return ArbeidsgiverTyper.fritekst + } +} + +export const handleManualOrgChange = ( + org: string, + miljo: string, + formMethods, + path, + setLoading, + setSuccess, + organisasjon, + opplysningspliktigPath, +) => { + const validEnhetstyper = ['BEDR', 'AAFY'] + if (!org || !miljo) { + return + } + formMethods.clearErrors(path) + setLoading(true) + setSuccess(false) + OrgserviceApi.getOrganisasjonInfo(org, miljo) + .then((response: { data: { enhetType: string; juridiskEnhet: any; orgnummer: any } }) => { + setLoading(false) + if (!validEnhetstyper.includes(response.data.enhetType)) { + formMethods.setError(path, { message: 'Organisasjonen må være av type BEDR eller AAFY' }) + return + } + if (!response.data.juridiskEnhet) { + if (organisasjon?.overenhet) { + opplysningspliktigPath && + formMethods.setValue(`${opplysningspliktigPath}`, organisasjon.overenhet) + } else { + formMethods.setError(path, { message: 'Organisasjonen mangler juridisk enhet' }) + return + } + } + setSuccess(true) + opplysningspliktigPath && + response.data.juridiskEnhet && + formMethods.setValue(`${opplysningspliktigPath}`, response.data.juridiskEnhet) + formMethods.setValue(`${path}`, response.data.orgnummer) + }) + .catch(() => { + setLoading(false) + formMethods.setError(path, { message: 'Fant ikke organisasjonen i ' + miljo }) + }) +}