Skip to content

Commit

Permalink
Merge branch 'master' into feature/local-db-apps
Browse files Browse the repository at this point in the history
  • Loading branch information
rfc3092 committed Oct 2, 2024
2 parents bb20f1f + a868383 commit edaa575
Show file tree
Hide file tree
Showing 15 changed files with 187 additions and 178 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,4 @@ public static void main(String[] args) {

SpringApplication.run(DollyBackendApplicationStarter.class, args);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -133,8 +133,17 @@ private Flux<String> doInsertOrUpdate(ArbeidsforholdRespons response, List<Arbei
return aaregConsumer.opprettArbeidsforhold(entry, miljoe, token);
}),
Flux.fromIterable(eksistens.getEksisterendeArbeidsforhold())
.filter(arbeidsforhold -> eksistens.getUbestemmeligArbeidsforhold().stream()
.noneMatch(ubestemmelig -> isEqualArbeidsforhold(ubestemmelig, arbeidsforhold)))
.flatMap(eksisterende -> appendArbeidsforholdId(response, eksisterende)
.flatMap(arbeidsforhold -> aaregConsumer.endreArbeidsforhold(arbeidsforhold, miljoe, token))))
.flatMap(arbeidsforhold -> aaregConsumer.endreArbeidsforhold(arbeidsforhold, miljoe, token))),
Flux.fromIterable(eksistens.getUbestemmeligArbeidsforhold())
.map(ubestemmelig -> ArbeidsforholdRespons.builder()
.miljo(miljoe)
.build())
.reduce(Flux.empty(), (a, b) -> Flux.just(b))
.flatMap(Flux::next)
.map(t -> (ArbeidsforholdRespons) t))
.map(reply -> decodeStatus(miljoe, reply));
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,4 +16,5 @@ public class ArbeidsforholdEksistens {

private List<Arbeidsforhold> nyeArbeidsforhold;
private List<Arbeidsforhold> eksisterendeArbeidsforhold;
private List<Arbeidsforhold> ubestemmeligArbeidsforhold;
}
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,12 @@ public static ArbeidsforholdEksistens doEksistenssjekk(ArbeidsforholdRespons res
.anyMatch(response1 -> isEqualArbeidsforhold(response1, arbeidsforhold))
&& (isTrue(arbeidsforhold.getIsOppdatering()) || !isOpprettEndre))
.toList())
.ubestemmeligArbeidsforhold(request.stream()
.filter(arbeidsforhold -> response.getEksisterendeArbeidsforhold().stream()
.filter(response1 -> isEqualArbeidsforhold(response1, arbeidsforhold) &&
isNull(arbeidsforhold.getArbeidsforholdId()) && !isOpprettEndre)
.count() > 1L)
.toList())
.build();
}

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
-----------------------------
-- A L T E R T A B L E S --
-----------------------------

alter table bestilling_progress
add column fullmakt_status varchar(1000);
Original file line number Diff line number Diff line change
Expand Up @@ -1057,7 +1057,7 @@ export const arbeidsforholdVisning = (arbeidsforhold, i, harAmelding, aaregKrite
},
obj('Orgnummer', arbeidsforhold.arbeidsgiver?.orgnummer),
obj('Arbeidsgiver ident', arbeidsforhold.arbeidsgiver?.ident),
obj('Arbeidsforhold-ID', arbeidsforhold.arbeidsforholdID),
obj('Arbeidsforhold-ID', arbeidsforhold.arbeidsforholdId),
obj('Ansatt fra', formatDate(arbeidsforhold.ansettelsesPeriode?.fom)),
obj('Ansatt til', formatDate(arbeidsforhold.ansettelsesPeriode?.tom)),
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ export type Amelding = {
}

type Arbeidsforhold = {
arbeidsforholdID: string
arbeidsforholdId: string
}

export type KodeverkValue = {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ export const initialForenkletOppgjoersordningOrg = {
arbeidsavtale: {
yrke: '',
},
navArbeidsforholdPeriode: null,
arbeidsforholdstype: 'ordinaertArbeidsforhold',
}

export const initialForenkletOppgjoersordningPers = {
Expand All @@ -30,11 +30,11 @@ export const initialForenkletOppgjoersordningPers = {
arbeidsavtale: {
yrke: '',
},
navArbeidsforholdPeriode: null,
arbeidsforholdstype: 'ordinaertArbeidsforhold',
}

export const initialArbeidsforholdOrg = {
arbeidsforholdstype: '',
arbeidsforholdstype: 'ordinaertArbeidsforhold',
arbeidsgiver: {
aktoertype: 'ORG',
orgnummer: '',
Expand All @@ -53,7 +53,6 @@ export const initialArbeidsforholdOrg = {
arbeidstidsordning: 'ikkeSkift',
avtaltArbeidstimerPerUke: 37.5,
},
navArbeidsforholdPeriode: undefined,
antallTimerForTimeloennet: [],
utenlandsopphold: [],
permisjon: [],
Expand All @@ -65,7 +64,7 @@ export const initialArbeidsforholdPers = {
aktoertype: 'PERS',
ident: '',
},
arbeidsforholdID: '',
arbeidsforholdId: '',
ansettelsesPeriode: {
fom: subYears(new Date(), 20),
tom: null,
Expand All @@ -80,7 +79,6 @@ export const initialArbeidsforholdPers = {
arbeidstidsordning: 'ikkeSkift',
avtaltArbeidstimerPerUke: 37.5,
},
navArbeidsforholdPeriode: null,
}

export const initialPeriode = {
Expand Down Expand Up @@ -112,18 +110,18 @@ export const initialAmelding = [
]

export const initialValues = {
arbeidsforholdstype: '',
arbeidsforholdstype: 'ordinaertArbeidsforhold',
genererPeriode: initialPeriode,
amelding: initialAmelding,
}

export const initialAaregOrg = {
arbeidsforholdstype: '',
arbeidsforholdstype: 'ordinaertArbeidsforhold',
...initialArbeidsforholdOrg,
}

export const initialAaregPers = {
arbeidsforholdstype: '',
arbeidsforholdstype: 'ordinaertArbeidsforhold',
...initialArbeidsforholdPers,
}

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)

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,
})
}
})
}
})

type Ansettelsesperiode = {
fom?: string
tom?: string
sluttaarsak?: string
return copy
}

export const ArbeidsforholdForm = ({
Expand All @@ -61,23 +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 harGjortFormEndringer = () => {
if (watch('aareg').length > 1) {
return true
Expand All @@ -88,30 +110,19 @@ 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 erLaastArbeidsforhold =
(arbeidsgiverType === ArbeidsgiverTyper.felles ||
arbeidsgiverType === ArbeidsgiverTyper.fritekst) &&
arbeidsforholdIndex < tidligereAaregBestillinger?.length
const { setError, watch, getValues, setValue, trigger } = useFormContext()

const tidligereAaregdata = hentStoersteArregdata()

const erLaastArbeidsforhold = arbeidsforholdIndex < tidligereAaregdata?.length

useEffect(() => {
if (_.isEmpty(tidligereAaregBestillinger) || harGjortFormEndringer()) {
if (_.isEmpty(tidligereAaregdata) || harGjortFormEndringer()) {
return
}
setValue(
'aareg',
tidligereAaregBestillinger?.map((aaregBestilling) => {
tidligereAaregdata?.map((aaregBestilling) => {
aaregBestilling.isOppdatering = true
return aaregBestilling
}),
Expand Down Expand Up @@ -213,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 @@ -292,6 +290,11 @@ export const ArbeidsforholdForm = ({
isDisabled={erLaastArbeidsforhold}
/>
)}
<FormTextInput
label="Arbeidsforhold ID"
name={`${path}.arbeidsforholdId`}
isDisabled={true}
/>
<FormDatepicker
name={`${path}.ansettelsesPeriode.fom`}
label="Ansatt fra"
Expand All @@ -310,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
Loading

0 comments on commit edaa575

Please sign in to comment.