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/toggle i fieldarray #3671

Draft
wants to merge 12 commits into
base: master
Choose a base branch
from
Original file line number Diff line number Diff line change
Expand Up @@ -1588,7 +1588,7 @@ const mapBrregstub = (bestillingData, data) => {
obj('Rolle', enhet.rolle),
obj('Registreringsdato', formatDate(enhet.registreringsdato)),
obj('Organisasjonsnummer', enhet.orgNr),
obj('Foretaksnavn', enhet.foretaksNavn.navn1),
obj('Foretaksnavn', enhet.foretaksNavn?.navn1),
obj('Antall registrerte personroller', enhet.personroller && enhet.personroller?.length),
])
})
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import {
getInitialForeldreansvar,
getInitialSivilstand,
initialDoedfoedtBarn,
initialPdlPerson,
} from '@/components/fagsystem/pdlf/form/initialValues'
import { harValgtAttributt } from '@/components/ui/form/formUtils'
import { relasjonerAttributter } from '@/components/fagsystem/pdlf/form/partials/familierelasjoner/Familierelasjoner'
Expand Down Expand Up @@ -133,7 +134,42 @@ FamilierelasjonPanel.initialValues = ({ set, opts, del, has }: any) => {
label: 'Sivilstand (har partner)',
checked: has('pdldata.person.sivilstand'),
add() {
set('pdldata.person.sivilstand', [getInitialSivilstand(initialMaster)])
// set('pdldata.person.sivilstand', [getInitialSivilstand(initialMaster)])
//TODO: Settes tilbake naar ferdig med testing
set('pdldata.person.sivilstand', [
{
type: 'GIFT',
sivilstandsdato: '2010-11-08T00:00:00',
bekreftelsesdato: null,
borIkkeSammen: false,
nyRelatertPerson: {
identtype: 'FNR',
kjoenn: 'KVINNE',
foedtEtter: null,
foedtFoer: null,
alder: null,
syntetisk: true,
nyttNavn: {
hasMellomnavn: false,
},
statsborgerskapLandkode: 'MDA',
gradering: null,
},
kilde: 'Dolly',
master: 'FREG',
eksisterendePerson: false,
},
{
type: 'GIFT',
sivilstandsdato: '2020-11-10T00:00:00',
relatertVedSivilstand: '22488522675',
bekreftelsesdato: null,
borIkkeSammen: false,
kilde: 'Dolly',
master: 'FREG',
eksisterendePerson: true,
},
])
},
remove() {
del('pdldata.person.sivilstand')
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,12 @@ 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'

const ToggleArbeidsgiver = styled(ToggleGroup)`
display: grid;
grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
background-color: #ffffff;
`

const DisabledToggleArbeidsgiver = styled(ToggleGroup)`
Expand All @@ -40,10 +42,6 @@ const DisabledToggleArbeidsgiver = styled(ToggleGroup)`
}
`

const StyledAlert = styled(Alert)`
margin-top: 10px;
`

type ArbeidsforholdToggleProps = {
path: string
idx: number
Expand Down Expand Up @@ -95,26 +93,7 @@ export const ArbeidsforholdToggle = ({

useEffect(() => {
setTypeArbeidsgiver(getArbeidsgiverType())
}, [fasteOrganisasjoner, brukerOrganisasjoner])

const toggleValues = [
{
value: ArbeidsgiverTyper.egen,
label: 'Egen organisasjon',
},
{
value: ArbeidsgiverTyper.felles,
label: 'Felles organisasjoner',
},
{
value: ArbeidsgiverTyper.fritekst,
label: 'Skriv inn org.nr.',
},
{
value: ArbeidsgiverTyper.privat,
label: 'Privat arbeidsgiver',
},
]
}, [fasteOrganisasjoner, brukerOrganisasjoner, formMethods.watch('aareg')?.length])

const handleToggleChange = (value: ArbeidsgiverTyper) => {
setTypeArbeidsgiver(value)
Expand Down Expand Up @@ -146,15 +125,6 @@ export const ArbeidsforholdToggle = ({
}
}

const warningMessage = (
<StyledAlert variant={'warning'}>
Du har ingen egne organisasjoner, og kan derfor ikke sende inn A-meldinger for person. For å
lage dine egne organisasjoner trykk {<a href="/organisasjoner">her</a>}. For å opprette person
med arbeidsforhold i felles organisasjoner eller andre arbeidsgivere, velg en annen kategori
ovenfor.
</StyledAlert>
)

if (loadingOrganisasjoner) {
return <Loading label="Laster organisasjoner ..." />
}
Expand All @@ -174,7 +144,7 @@ export const ArbeidsforholdToggle = ({
key={idx}
title={'Kan ikke endre arbeidsgivertype på eksisterende arbeidsforhold'}
>
{toggleValues.map((type) => (
{arbeidsgiverToggleValues.map((type) => (
<ToggleGroup.Item key={type.value} value={type.value}>
{type.label}
</ToggleGroup.Item>
Expand All @@ -189,37 +159,37 @@ export const ArbeidsforholdToggle = ({
fill
key={idx}
>
{toggleValues.map((type) => (
{arbeidsgiverToggleValues.map((type) => (
<ToggleGroup.Item key={type.value} value={type.value}>
{type.label}
</ToggleGroup.Item>
))}
</ToggleArbeidsgiver>
)}
<div className="flexbox--full-width">
{typeArbeidsgiver === ArbeidsgiverTyper.felles && (
<div title={title}>
<OrganisasjonMedArbeidsforholdSelect
path={`${path}.arbeidsgiver.orgnummer`}
label={'Organisasjonsnummer'}
afterChange={() => checkAktiveArbeidsforhold()}
isDisabled={erLaastArbeidsforhold}
placeholder={'Velg organisasjon ...'}
/>
</div>
)}
{typeArbeidsgiver === ArbeidsgiverTyper.egen && (
<div className="flex-box" title={title}>
<EgneOrganisasjoner
path={`${path}.arbeidsgiver.orgnummer`}
handleChange={(selected: any) =>
formMethods.setValue(`${path}.arbeidsgiver.orgnummer`, selected?.value)
}
warningMessage={warningMessage}
filterValidEnhetstyper={true}
isDisabled={erLaastArbeidsforhold}
/>
</div>
)}
{typeArbeidsgiver === ArbeidsgiverTyper.felles && (
<div title={title}>
<OrganisasjonMedArbeidsforholdSelect
path={`${path}.arbeidsgiver.orgnummer`}
label={'Organisasjonsnummer'}
afterChange={() => checkAktiveArbeidsforhold()}
isDisabled={erLaastArbeidsforhold}
/>
</div>
)}
{typeArbeidsgiver === ArbeidsgiverTyper.fritekst && (
<FormTextInput
name={`${path}.arbeidsgiver.orgnummer`}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ 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'

interface OrgProps {
path: string
Expand Down Expand Up @@ -155,21 +156,21 @@ export const EgneOrganisasjoner = ({
return (
<>
{error && (
<Alert variant={'warning'}>
<StyledAlert variant={'warning'} size={'small'} style={{ margin: '10px 0' }}>
Noe gikk galt med henting av egne organisasjoner! Prøv på nytt, velg et annet alternativ
eller kontakt Team Dolly ved vedvarende feil.
</Alert>
</StyledAlert>
)}
{!harEgneOrganisasjoner &&
!loading &&
!error &&
(warningMessage ? (
warningMessage
) : (
<Alert variant={'warning'}>
<StyledAlert variant={'warning'} size={'small'} style={{ margin: '10px 0' }}>
Du har ingen egne organisasjoner. For å lage dine egne organisasjoner trykk{' '}
<a href="/organisasjoner">her</a>.
</Alert>
</StyledAlert>
))}
{!error && (
<EgneOrgSelect
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import { SelectOptionsOppslag } from '@/service/SelectOptionsOppslag'
import { PersonrollerForm } from '@/components/fagsystem/brregstub/form/partials/personrollerForm'
import { OrgnrToggle } from '@/components/fagsystem/brregstub/form/partials/orgnrToggle'
import { SelectOptionsFormat } from '@/service/SelectOptionsFormat'
import React from 'react'

const initialValues = {
rolle: '',
Expand Down Expand Up @@ -47,7 +48,6 @@ export const EnheterForm = ({ formMethods }) => {
} else if (currentValues.hasOwnProperty('postAdresse')) {
delete currentValues['postAdresse']
}

formMethods.setValue(path, currentValues)
formMethods.trigger(path)
}
Expand All @@ -60,7 +60,7 @@ export const EnheterForm = ({ formMethods }) => {
canBeEmpty={false}
>
{(path) => (
<>
<React.Fragment key={path}>
<FormSelect
name={`${path}.rolle`}
label="Rolle"
Expand All @@ -72,7 +72,7 @@ export const EnheterForm = ({ formMethods }) => {
<FormDatepicker name={`${path}.registreringsdato`} label="Registreringsdato" />
<OrgnrToggle path={path} formMethods={formMethods} setEnhetsinfo={setEnhetsinfo} />
<PersonrollerForm formMethods={formMethods} path={path} />
</>
</React.Fragment>
)}
</FormDollyFieldArray>
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,19 +32,22 @@ export const OrganisasjonTextSelect = ({
setEnhetsinfo,
}: OrgnanisasjonTextSelectProps) => {
const formMethods = useFormContext()
//TODO: Trenger vi ikke error? Sjekk naar master er tatt inn
const [error, setError] = useState(null)
const [success, setSuccess] = useBoolean(false)
const [loading, setLoading] = useBoolean(false)
const [environment, setEnvironment] = useState(null)
const [orgnummer, setOrgnummer] = useState(formMethods.watch(path) || null)

const parentPath = path.substring(0, path.lastIndexOf('.'))

const handleChange = (org: string, miljoe: string) => {
if (!org || !miljoe) {
return
}
setError(null)
setLoading(true)
setSuccess(false)
formMethods.setValue(`${parentPath}.organisasjonMiljoe`, miljoe)
OrgserviceApi.getOrganisasjonInfo(org, miljoe)
.then((response) => {
const orgInfo = {
Expand All @@ -54,7 +57,7 @@ export const OrganisasjonTextSelect = ({
forretningsAdresse: mapAdresse(response.data.forretningsadresser),
postAdresse: mapAdresse(response.data.postadresse),
}
setEnhetsinfo(orgInfo, path)
setEnhetsinfo(orgInfo, parentPath)
setLoading(false)
setSuccess(true)
})
Expand All @@ -67,21 +70,20 @@ export const OrganisasjonTextSelect = ({
return (
<OrganisasjonMedMiljoeSelect
path={path}
environment={environment}
parentPath={parentPath}
miljoeOptions={aktiveMiljoer}
error={error}
success={success}
loading={loading}
onTextBlur={(event) => {
if (!_.isEmpty(event?.target?.value)) {
setOrgnummer(event.target.value)
handleChange(event.target.value, environment)
handleChange(event.target.value, formMethods.watch(`${parentPath}.organisasjonMiljoe`))
}
}}
onMiljoeChange={(event) => {
setEnvironment(event.value)
handleChange(orgnummer, event.value)
}}
formMethods={formMethods}
/>
)
}
Loading