Skip to content

Commit

Permalink
Remove navArbeidsforholdPeriode field and related logic.
Browse files Browse the repository at this point in the history
#deploy-test-frontend

Removed the navArbeidsforholdPeriode field from arbeidsforholdForm and initialValues. Updated ArbeidsforholdToggle to prevent unnecessary toggle display and simplified redundant logic checks in Monthpicker.
  • Loading branch information
krharum committed Sep 30, 2024
1 parent c5d7fa3 commit f570bbb
Show file tree
Hide file tree
Showing 4 changed files with 88 additions and 168 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@ export const initialForenkletOppgjoersordningOrg = {
yrke: '',
},
arbeidsforholdstype: 'ordinaertArbeidsforhold',
navArbeidsforholdPeriode: null,
}

export const initialForenkletOppgjoersordningPers = {
Expand All @@ -32,7 +31,6 @@ export const initialForenkletOppgjoersordningPers = {
yrke: '',
},
arbeidsforholdstype: 'ordinaertArbeidsforhold',
navArbeidsforholdPeriode: null,
}

export const initialArbeidsforholdOrg = {
Expand All @@ -55,7 +53,6 @@ export const initialArbeidsforholdOrg = {
arbeidstidsordning: 'ikkeSkift',
avtaltArbeidstimerPerUke: 37.5,
},
navArbeidsforholdPeriode: undefined,
antallTimerForTimeloennet: [],
utenlandsopphold: [],
permisjon: [],
Expand All @@ -82,7 +79,6 @@ export const initialArbeidsforholdPers = {
arbeidstidsordning: 'ikkeSkift',
avtaltArbeidstimerPerUke: 37.5,
},
navArbeidsforholdPeriode: null,
}

export const initialPeriode = {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import React, { useContext, useEffect, useState } from 'react'
import React, { useContext, useEffect } from 'react'
import { FormSelect } from '@/components/ui/form/inputs/select/Select'
import { FormTextInput } from '@/components/ui/form/inputs/textInput/TextInput'
import { FormDatepicker } from '@/components/ui/form/inputs/datepicker/Datepicker'
Expand All @@ -23,34 +23,73 @@ import { isDate } from 'date-fns'
import { EgneOrganisasjoner } from '@/components/fagsystem/brregstub/form/partials/EgneOrganisasjoner'
import { BestillingsveilederContext } from '@/components/bestillingsveileder/BestillingsveilederContext'
import _ from 'lodash'
import { Monthpicker } from '@/components/ui/form/inputs/monthpicker/Monthpicker'
import { fixTimezone } from '@/components/ui/form/formUtils'
import { useFormContext } from 'react-hook-form'

type Arbeidsforhold = {
isOppdatering?: boolean
type?: string
ansettelsesPeriode?: Ansettelsesperiode
antallTimerForTimeloennet?: Array<unknown>
arbeidsavtaler?: Array<unknown>
arbeidsgiver?: ArbeidsgiverProps
fartoy?: any
permisjonPermitteringer?: Array<unknown>
utenlandsopphold?: Array<unknown>
arbeidsforholdId?: string
navArbeidsforholdPeriode?: Date
}
export const hentStoersteArregdata = () => {
const { personFoerLeggTil } = useContext(BestillingsveilederContext)
if (_.isEmpty(personFoerLeggTil?.aareg)) {
return null
}

type ArbeidsgiverProps = {
type?: string
orgnummer?: string
offentligIdent?: string
}
let stoersteAaregdata: any = []
personFoerLeggTil?.aareg?.forEach((aareg: any) => {
if (aareg.data?.length > stoersteAaregdata.length) {
stoersteAaregdata = aareg?.data
}
})

stoersteAaregdata.sort((a: any, b: any) => a.arbeidsforholdId.localeCompare(b.arbeidsforholdId))

let copy = structuredClone(stoersteAaregdata)

type Ansettelsesperiode = {
fom?: string
tom?: string
sluttaarsak?: string
copy.forEach((aareg: any) => {
aareg.arbeidsgiver['orgnummer'] = aareg?.arbeidsgiver?.organisasjonsnummer
aareg.arbeidsgiver['aktoertype'] = aareg.arbeidsgiver?.type === 'Organisasjon' ? 'ORG' : 'PERS'
aareg.arbeidsgiver['ident'] = aareg?.arbeidsgiver?.offentligIdent
aareg['arbeidsforholdstype'] = aareg.type
aareg['arbeidsavtale'] = aareg.arbeidsavtaler?.[0]
aareg.arbeidsavtale['avtaltArbeidstimerPerUke'] = Number(
aareg.arbeidsavtaler?.[0]?.antallTimerPrUke,
)
aareg['arbeidsavtaler'] = undefined
aareg['ansettelsesPeriode'] = {}
aareg.ansettelsesPeriode['fom'] = aareg.ansettelsesperiode?.periode?.fom
aareg.ansettelsesPeriode['tom'] = aareg.ansettelsesperiode?.periode?.tom
aareg.ansettelsesPeriode['sluttaarsak'] = aareg.ansettelsesperiode?.sluttaarsak
aareg.ansettelsesperiode = undefined
if (aareg.utenlandsopphold) {
aareg.utenlandsopphold.forEach((opphold: any) => (opphold['land'] = opphold.landkode))
}
if (aareg.type === 'maritimtArbeidsforhold') {
aareg['fartoy'] = []
aareg.fartoy.push({
fartsomraade: aareg.arbeidsavtale?.fartsomraade,
skipsregister: aareg.arbeidsavtale.skipsregister,
skipstype: aareg.arbeidsavtale?.skipstype,
})
}
aareg['permisjon'] = []
aareg['permittering'] = []
if (aareg.permisjonPermitteringer) {
aareg.permisjonPermitteringer.forEach((permisjonPermittering: any) => {
if (permisjonPermittering.type === 'permittering') {
aareg.permittering.push({
permitteringsPeriode: permisjonPermittering.periode,
permitteringsprosent: permisjonPermittering.prosent,
})
} else {
aareg.permisjon.push({
permisjonsPeriode: permisjonPermittering.periode,
permisjonsprosent: permisjonPermittering.prosent,
permisjon: permisjonPermittering.type,
})
}
})
}
})

return copy
}

export const ArbeidsforholdForm = ({
Expand All @@ -61,83 +100,6 @@ export const ArbeidsforholdForm = ({
arbeidsgiverType,
warningMessage,
}) => {
const hentUnikeAaregBestillinger = (bestillinger) => {
if (_.isEmpty(bestillinger) || ameldingIndex) {
return null
}

const aaregBestillinger = bestillinger
?.filter((bestilling) => bestilling?.data?.aareg)
?.flatMap((bestilling) => bestilling.data?.aareg)
?.filter((bestilling) => _.isEmpty(bestilling?.amelding))

return _.uniqWith(
aaregBestillinger,
(best1: Arbeidsforhold, best2) =>
best1?.arbeidsgiver?.orgnummer === best2?.arbeidsgiver?.orgnummer,
)
}

const hentStoersteArregdata = () => {
const { personFoerLeggTil } = useContext(BestillingsveilederContext)
if (_.isEmpty(personFoerLeggTil?.aareg) || ameldingIndex) {
return null
}

let stoersteAaregdata: any = []
personFoerLeggTil?.aareg?.forEach((aareg: any) => {
if (aareg.data?.length > stoersteAaregdata.length) {
stoersteAaregdata = aareg?.data
}
})

stoersteAaregdata.sort((a: any, b: any) => a.arbeidsforholdId.localeCompare(b.arbeidsforholdId))

let copy = structuredClone(stoersteAaregdata)

copy.forEach((aareg: any) => {
aareg.arbeidsgiver['orgnummer'] = aareg?.arbeidsgiver?.organisasjonsnummer
aareg.arbeidsgiver['aktoertype'] =
aareg.arbeidsgiver?.type === 'Organisasjon' ? 'ORG' : 'PERS'
aareg.arbeidsgiver['ident'] = aareg?.arbeidsgiver?.offentligIdent
aareg['arbeidsforholdstype'] = aareg.type
aareg['arbeidsavtale'] = aareg.arbeidsavtaler?.[0]
aareg.arbeidsavtale['avtaltArbeidstimerPerUke'] = Number(
aareg.arbeidsavtaler?.[0]?.antallTimerPrUke,
)
aareg['arbeidsavtaler'] = undefined
aareg['ansettelsesPeriode'] = {}
aareg.ansettelsesPeriode['fom'] = aareg.ansettelsesperiode?.periode?.fom
aareg.ansettelsesPeriode['tom'] = aareg.ansettelsesperiode?.periode?.tom
aareg.ansettelsesPeriode['sluttaarsak'] = aareg.ansettelsesperiode?.sluttaarsak
aareg.ansettelsesperiode = undefined
// aareg['navArbeidsforholdPeriode'] = {}
if (aareg.utenlandsopphold) {
aareg.utenlandsopphold.forEach((opphold: any) => (opphold['land'] = opphold.landkode))
}
aareg['permisjon'] = []
aareg['permittering'] = []
if (aareg.permisjonPermitteringer) {
aareg.permisjonPermitteringer.forEach((permisjonPermittering: any) => {
if (permisjonPermittering.type === 'permittering') {
aareg.permittering.push({
permitteringsPeriode: permisjonPermittering.periode,
permitteringsprosent: permisjonPermittering.prosent,
})
} else {
aareg.permisjon.push({
permisjonsPeriode: permisjonPermittering.periode,
permisjonsprosent: permisjonPermittering.prosent,
permisjon: permisjonPermittering.type,
})
}
})
}
})

return copy
}

const harGjortFormEndringer = () => {
if (watch('aareg').length > 1) {
return true
Expand All @@ -148,22 +110,10 @@ export const ArbeidsforholdForm = ({
)
}

const { setError, watch, control, getValues, setValue, trigger, resetField } = useFormContext()
const eksisterendeArbeidsforholdPeriode = watch(`${path}.navArbeidsforholdPeriode`)
const [navArbeidsforholdPeriode, setNavArbeidsforholdPeriode] = useState(
eksisterendeArbeidsforholdPeriode
? new Date(
eksisterendeArbeidsforholdPeriode.year,
eksisterendeArbeidsforholdPeriode.monthValue,
)
: null,
)
const { tidligereBestillinger }: any = useContext(BestillingsveilederContext)
// const tidligereAaregBestillinger = hentUnikeAaregBestillinger(tidligereBestillinger)
const { setError, watch, getValues, setValue, trigger } = useFormContext()

console.log('tideligereAaregBestillinger', hentUnikeAaregBestillinger(tidligereBestillinger))
const tidligereAaregdata = hentStoersteArregdata()
console.log('tidligereAaregdata', tidligereAaregdata)

const erLaastArbeidsforhold = arbeidsforholdIndex < tidligereAaregdata?.length

useEffect(() => {
Expand Down Expand Up @@ -274,19 +224,6 @@ export const ArbeidsforholdForm = ({
}
}

useEffect(() => {
setValue(
`${path}.navArbeidsforholdPeriode`,
navArbeidsforholdPeriode
? {
year: navArbeidsforholdPeriode.getFullYear(),
monthValue: navArbeidsforholdPeriode.getMonth(),
}
: undefined,
)
trigger()
}, [navArbeidsforholdPeriode])

const checkAktiveArbeidsforhold = () => {
const aaregValues = getValues('aareg')
const aktiveArbeidsforhold = aaregValues.map((arbeidsforhold) => {
Expand Down Expand Up @@ -376,14 +313,6 @@ export const ArbeidsforholdForm = ({
onChange={onChangeLenket('ansettelsesPeriode.sluttaarsak')}
isDisabled={!_.get(getValues(), `${path}.ansettelsesPeriode.tom`)}
/>
<Monthpicker
name={`${path}.navArbeidsforholdPeriode`}
date={navArbeidsforholdPeriode}
label="NAV arbeidsforholdsperiode"
onChange={setNavArbeidsforholdPeriode}
value={navArbeidsforholdPeriode}
isClearable={true}
/>
{arbeidsforholdstype === 'forenkletOppgjoersordning' && (
<FormSelect
value={watch(`${path}.arbeidsavtale.yrke`)}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ import {
import { ArbeidsgiverTyper } from '@/components/fagsystem/aareg/AaregTypes'
import { useDollyFasteDataOrganisasjoner } from '@/utils/hooks/useOrganisasjoner'
import { useFormContext } from 'react-hook-form'
import { hentStoersteArregdata } from '@/components/fagsystem/aareg/form/partials/arbeidsforholdForm'

const ToggleArbeidsgiver = styled(ToggleGroup)`
display: grid;
Expand All @@ -24,18 +25,19 @@ const StyledAlert = styled(Alert)`
margin-top: 10px;
`
export const ArbeidsforholdToggle = (): ReactElement => {
let aaregdata = hentStoersteArregdata()

const formMethods = useFormContext()
const { organisasjoner } = useDollyFasteDataOrganisasjoner(true)

const getArbeidsgiverType = () => {
const orgnummer = formMethods.watch('aareg[0].arbeidsgiver.orgnummer')
if (formMethods.watch('aareg[0].amelding[0]') || formMethods.watch('aareg[0].arbeidsforhold')) {
const orgnr = aaregdata?.[0].arbeidsgiver?.orgnummer
if (aaregdata?.[0].amelding?.[0]) {
return ArbeidsgiverTyper.egen
} else if (formMethods.watch('aareg[0].arbeidsgiver.aktoertype') === 'PERS') {
} else if (aaregdata?.[0].arbeidsgiver?.aktoertype === 'PERS') {
return ArbeidsgiverTyper.privat
} else if (
!orgnummer ||
organisasjoner.map((organisasjon) => organisasjon.orgnummer).some((org) => org === orgnummer)
!orgnr ||
organisasjoner.map((organisasjon) => organisasjon.orgnummer).some((org) => org === orgnr)
) {
return ArbeidsgiverTyper.felles
} else {
Expand Down Expand Up @@ -66,6 +68,7 @@ export const ArbeidsforholdToggle = (): ReactElement => {

const handleToggleChange = (value: ArbeidsgiverTyper) => {
setTypeArbeidsgiver(value)

if (value === ArbeidsgiverTyper.privat) {
formMethods.resetField('aareg', { defaultValue: [initialAaregPers] })
} else if (value === ArbeidsgiverTyper.felles || value === ArbeidsgiverTyper.fritekst) {
Expand All @@ -87,17 +90,19 @@ export const ArbeidsforholdToggle = (): ReactElement => {

return (
<div className="toggle--wrapper">
<ToggleArbeidsgiver
onChange={(value: ArbeidsgiverTyper) => handleToggleChange(value)}
value={typeArbeidsgiver}
size={'small'}
>
{toggleValues.map((type) => (
<ToggleGroup.Item key={type.value} value={type.value}>
{type.label}
</ToggleGroup.Item>
))}
</ToggleArbeidsgiver>
{!aaregdata?.[0].arbeidsgiver?.orgnummer && !aaregdata?.[0].arbeidsgiver?.ident && (
<ToggleArbeidsgiver
onChange={(value: ArbeidsgiverTyper) => handleToggleChange(value)}
value={typeArbeidsgiver}
size={'small'}
>
{toggleValues.map((type) => (
<ToggleGroup.Item key={type.value} value={type.value}>
{type.label}
</ToggleGroup.Item>
))}
</ToggleArbeidsgiver>
)}
{typeArbeidsgiver === ArbeidsgiverTyper.egen ? (
<>
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,19 +26,9 @@ export const Monthpicker = ({
minDate = null,
maxDate = null,
placeholder = null,
...props
}: MonthpickerProps) => {
const formMethods = useFormContext()
const val = formMethods.watch(name)

function getEksisterendeVerdi() {
if (name.includes('navArbeidsforholdPeriode')) {
return val?.year ? new Date(val?.year, val?.monthValue) : null
}
return val
}

const eksisterendeVerdi = getEksisterendeVerdi()
const eksisterendeVerdi = formMethods.watch(name)

const formattedDate =
eksisterendeVerdi instanceof Date
Expand Down

0 comments on commit f570bbb

Please sign in to comment.