From 2b0603df55fab76616c33ac5f3ce6798e8c163a1 Mon Sep 17 00:00:00 2001 From: Betsy Carina Traran Date: Mon, 7 Oct 2024 10:48:51 +0200 Subject: [PATCH 01/16] Yrkesskade i sykdom-panel --- .../stegVelger/steg/steg1/paneler/Sykdom.tsx | 25 +++++++++++++------ .../fagsystem/yrkesskader/initialValues.tsx | 18 +++++++++++++ .../src/main/js/src/service/SelectOptions.tsx | 3 +++ 3 files changed, 39 insertions(+), 7 deletions(-) create mode 100644 apps/dolly-frontend/src/main/js/src/components/fagsystem/yrkesskader/initialValues.tsx diff --git a/apps/dolly-frontend/src/main/js/src/components/bestillingsveileder/stegVelger/steg/steg1/paneler/Sykdom.tsx b/apps/dolly-frontend/src/main/js/src/components/bestillingsveileder/stegVelger/steg/steg1/paneler/Sykdom.tsx index 3575e039409..d43584c21cb 100644 --- a/apps/dolly-frontend/src/main/js/src/components/bestillingsveileder/stegVelger/steg/steg1/paneler/Sykdom.tsx +++ b/apps/dolly-frontend/src/main/js/src/components/bestillingsveileder/stegVelger/steg/steg1/paneler/Sykdom.tsx @@ -4,17 +4,17 @@ import { harValgtAttributt } from '@/components/ui/form/formUtils' import { sykdomAttributt } from '@/components/fagsystem/sykdom/form/Form' import { useContext } from 'react' import { BestillingsveilederContext } from '@/components/bestillingsveileder/BestillingsveilederContext' +import { initialYrkesskade } from '@/components/fagsystem/yrkesskader/initialValues' export const SykdomPanel = ({ stateModifier, formValues }: any) => { const sm = stateModifier(SykdomPanel.initialValues) const opts = useContext(BestillingsveilederContext) - const harGyldigSykemeldingBestilling = opts?.tidligereBestillinger?.some( - (bestilling) => - bestilling.status?.some( - (status) => - status.id === 'SYKEMELDING' && status.statuser?.some((item) => item?.melding === 'OK'), - ), + const harGyldigSykemeldingBestilling = opts?.tidligereBestillinger?.some((bestilling) => + bestilling.status?.some( + (status) => + status.id === 'SYKEMELDING' && status.statuser?.some((item) => item?.melding === 'OK'), + ), ) return ( @@ -32,12 +32,13 @@ export const SykdomPanel = ({ stateModifier, formValues }: any) => { disabled={harGyldigSykemeldingBestilling} title={harGyldigSykemeldingBestilling ? 'Personen har allerede sykemelding' : null} /> + ) } -SykdomPanel.heading = 'Sykdom' +SykdomPanel.heading = 'Sykdom og skade' SykdomPanel.initialValues = ({ set, del, has }: any) => ({ sykemelding: { @@ -56,4 +57,14 @@ SykdomPanel.initialValues = ({ set, del, has }: any) => ({ del('sykemelding') }, }, + yrkesskader: { + label: 'Har yrkesskade', + checked: has('yrkesskader'), + add() { + set('yrkesskader', [initialYrkesskade]) + }, + remove() { + del('yrkesskader') + }, + }, }) diff --git a/apps/dolly-frontend/src/main/js/src/components/fagsystem/yrkesskader/initialValues.tsx b/apps/dolly-frontend/src/main/js/src/components/fagsystem/yrkesskader/initialValues.tsx new file mode 100644 index 00000000000..7f28522d5a5 --- /dev/null +++ b/apps/dolly-frontend/src/main/js/src/components/fagsystem/yrkesskader/initialValues.tsx @@ -0,0 +1,18 @@ +export const initialYrkesskadePeriode = { + fra: null, + til: null, +} + +export const initialYrkesskade = { + skadelidtIdentifikator: '', + rolletype: '', + innmelderIdentifikator: '', + innmelderrolle: '', + klassifisering: '', + paaVegneAv: '', + tidstype: '', + skadetidspunkt: null, + perioder: [initialYrkesskadePeriode], + referanse: '', + ferdigstillSak: '', +} diff --git a/apps/dolly-frontend/src/main/js/src/service/SelectOptions.tsx b/apps/dolly-frontend/src/main/js/src/service/SelectOptions.tsx index 4e1c20b7de5..180c135fad3 100644 --- a/apps/dolly-frontend/src/main/js/src/service/SelectOptions.tsx +++ b/apps/dolly-frontend/src/main/js/src/service/SelectOptions.tsx @@ -844,6 +844,9 @@ const selectOptions = { { value: 'BANKKONTO', label: 'Bankkonto' }, { value: 'BANKKONTO_NORGE', label: 'Norsk bankkonto' }, { value: 'BANKKONTO_UTLAND', label: 'Utenlandsk bankkonto' }, + // TODO: Legg inn skattekort + // TODO: Legg inn yrkesskade + // TODO: Legg inn flere register??? ], } From f25c1facaea97c871903ea04867ddf81fdfc9b27 Mon Sep 17 00:00:00 2001 From: Betsy Carina Traran Date: Tue, 8 Oct 2024 10:40:50 +0200 Subject: [PATCH 02/16] Yrkesskade form foerste utkast --- .../stegVelger/steg/steg1/paneler/Sykdom.tsx | 5 +- .../stegVelger/steg/steg2/Steg2.tsx | 2 + .../components/bestillingsveileder/utils.tsx | 1 + .../fagsystem/yrkesskader/form/Form.tsx | 177 ++++++++++++++++++ .../fagsystem/yrkesskader/initialValues.tsx | 4 +- .../js/src/components/ui/form/formUtils.tsx | 1 + .../src/main/js/src/service/SelectOptions.tsx | 19 ++ 7 files changed, 205 insertions(+), 4 deletions(-) create mode 100644 apps/dolly-frontend/src/main/js/src/components/fagsystem/yrkesskader/form/Form.tsx diff --git a/apps/dolly-frontend/src/main/js/src/components/bestillingsveileder/stegVelger/steg/steg1/paneler/Sykdom.tsx b/apps/dolly-frontend/src/main/js/src/components/bestillingsveileder/stegVelger/steg/steg1/paneler/Sykdom.tsx index d43584c21cb..7ce326579ab 100644 --- a/apps/dolly-frontend/src/main/js/src/components/bestillingsveileder/stegVelger/steg/steg1/paneler/Sykdom.tsx +++ b/apps/dolly-frontend/src/main/js/src/components/bestillingsveileder/stegVelger/steg/steg1/paneler/Sykdom.tsx @@ -5,6 +5,7 @@ import { sykdomAttributt } from '@/components/fagsystem/sykdom/form/Form' import { useContext } from 'react' import { BestillingsveilederContext } from '@/components/bestillingsveileder/BestillingsveilederContext' import { initialYrkesskade } from '@/components/fagsystem/yrkesskader/initialValues' +import { yrkesskaderAttributt } from '@/components/fagsystem/yrkesskader/form/Form' export const SykdomPanel = ({ stateModifier, formValues }: any) => { const sm = stateModifier(SykdomPanel.initialValues) @@ -24,7 +25,7 @@ export const SykdomPanel = ({ stateModifier, formValues }: any) => { checkAttributeArray={() => sm.batchAdd(harGyldigSykemeldingBestilling ? ['sykemelding'] : [])} uncheckAttributeArray={sm.batchRemove} iconType="sykdom" - startOpen={harValgtAttributt(formValues, [sykdomAttributt])} + startOpen={harValgtAttributt(formValues, [sykdomAttributt, yrkesskaderAttributt])} > ({ }, }, yrkesskader: { - label: 'Har yrkesskade', + label: 'Har yrkesskader', checked: has('yrkesskader'), add() { set('yrkesskader', [initialYrkesskade]) diff --git a/apps/dolly-frontend/src/main/js/src/components/bestillingsveileder/stegVelger/steg/steg2/Steg2.tsx b/apps/dolly-frontend/src/main/js/src/components/bestillingsveileder/stegVelger/steg/steg2/Steg2.tsx index b742fc3c344..7576fcea519 100644 --- a/apps/dolly-frontend/src/main/js/src/components/bestillingsveileder/stegVelger/steg/steg2/Steg2.tsx +++ b/apps/dolly-frontend/src/main/js/src/components/bestillingsveileder/stegVelger/steg/steg2/Steg2.tsx @@ -27,6 +27,7 @@ import { useFormContext } from 'react-hook-form' import { SkattekortForm } from '@/components/fagsystem/skattekort/form/Form' import { PensjonsavtaleForm } from '@/components/fagsystem/pensjonsavtale/form/Form' import { AfpOffentligForm } from '@/components/fagsystem/afpOffentlig/form/Form' +import { YrkesskaderForm } from '@/components/fagsystem/yrkesskader/form/Form' const gruppeNavn = (gruppe) => {gruppe.navn} @@ -81,6 +82,7 @@ export const Steg2 = () => { + diff --git a/apps/dolly-frontend/src/main/js/src/components/bestillingsveileder/utils.tsx b/apps/dolly-frontend/src/main/js/src/components/bestillingsveileder/utils.tsx index 7cab3240fab..cc018c30744 100644 --- a/apps/dolly-frontend/src/main/js/src/components/bestillingsveileder/utils.tsx +++ b/apps/dolly-frontend/src/main/js/src/components/bestillingsveileder/utils.tsx @@ -73,6 +73,7 @@ export const rootPaths = [ 'dokarkiv', 'medl', 'sykemelding', + 'yrkesskader', 'organisasjon', 'skattekort', ] diff --git a/apps/dolly-frontend/src/main/js/src/components/fagsystem/yrkesskader/form/Form.tsx b/apps/dolly-frontend/src/main/js/src/components/fagsystem/yrkesskader/form/Form.tsx new file mode 100644 index 00000000000..65eb2e91a33 --- /dev/null +++ b/apps/dolly-frontend/src/main/js/src/components/fagsystem/yrkesskader/form/Form.tsx @@ -0,0 +1,177 @@ +import { useFormContext } from 'react-hook-form' +import React from 'react' +import { Vis } from '@/components/bestillingsveileder/VisAttributt' +import Panel from '@/components/ui/panel/Panel' +import { erForsteEllerTest, panelError } from '@/components/ui/form/formUtils' +import { + initialYrkesskade, + initialYrkesskadePeriode, +} from '@/components/fagsystem/yrkesskader/initialValues' +import { FormSelect } from '@/components/ui/form/inputs/select/Select' +import { FormDollyFieldArray } from '@/components/ui/form/fieldArray/DollyFieldArray' +import { PdlEksisterendePerson } from '@/components/fagsystem/pdlf/form/partials/pdlPerson/PdlEksisterendePerson' +import { SelectOptionsManager as Options } from '@/service/SelectOptions' +import { FormDateTimepicker } from '@/components/ui/form/inputs/timepicker/Timepicker' +import { FormDatepicker } from '@/components/ui/form/inputs/datepicker/Datepicker' +import { FormTextInput } from '@/components/ui/form/inputs/textInput/TextInput' +import { OrganisasjonMedArbeidsforholdSelect } from '@/components/organisasjonSelect' + +export const yrkesskaderAttributt = 'yrkesskader' + +export const YrkesskaderForm = () => { + const formMethods = useFormContext() + + // TODO: Krav om arbeidsgiver dersom innmelderrolle === virksomhetsrepresentant + + return ( + + + + {(path: string, idx: number) => { + return ( + + {/*skadelidtIdentifikator: '', //TODO: Blir satt av BE?*/} + + {/*rolletype: '',*/} + + + {/*innmelderIdentifikator: '',*/} + {formMethods.watch(`${path}.innmelderrolle`) === 'vergeOgForesatt' && ( + + )} + + {/*innmelderrolle: '',*/} + + + {/*klassifisering: '',*/} + + + {/*paaVegneAv: '', //TODO: Lag denne*/} + {formMethods.watch(`${path}.innmelderrolle`) === 'virksomhetsrepresentant' && ( + + )} + + {/*tidstype: '',*/} + + + {/*skadetidspunkt: null,*/} + {formMethods.watch(`${path}.tidstype`) === 'tidspunkt' && ( + + )} + + {/*perioder: [initialYrkesskadePeriode],*/} + {formMethods.watch(`${path}.tidstype`) === 'periode' && ( + + {(periodePath: string, periodeIdx: number) => { + return ( + + + + + ) + }} + + )} + + {/*referanse: '',*/} + + + {/*ferdigstillSak: '',*/} + + + ) + }} + + + + ) +} + +YrkesskaderForm.validation = {} diff --git a/apps/dolly-frontend/src/main/js/src/components/fagsystem/yrkesskader/initialValues.tsx b/apps/dolly-frontend/src/main/js/src/components/fagsystem/yrkesskader/initialValues.tsx index 7f28522d5a5..9a8643de6e1 100644 --- a/apps/dolly-frontend/src/main/js/src/components/fagsystem/yrkesskader/initialValues.tsx +++ b/apps/dolly-frontend/src/main/js/src/components/fagsystem/yrkesskader/initialValues.tsx @@ -7,8 +7,8 @@ export const initialYrkesskade = { skadelidtIdentifikator: '', rolletype: '', innmelderIdentifikator: '', - innmelderrolle: '', - klassifisering: '', + innmelderrolle: 'virksomhetsrepresentant', + klassifisering: 'MANUELL', paaVegneAv: '', tidstype: '', skadetidspunkt: null, diff --git a/apps/dolly-frontend/src/main/js/src/components/ui/form/formUtils.tsx b/apps/dolly-frontend/src/main/js/src/components/ui/form/formUtils.tsx index f8b1a54667c..432e6e6c9d3 100644 --- a/apps/dolly-frontend/src/main/js/src/components/ui/form/formUtils.tsx +++ b/apps/dolly-frontend/src/main/js/src/components/ui/form/formUtils.tsx @@ -78,6 +78,7 @@ const getValgteAttributter = (values) => { 'pensjonforvalter.afpOffentlig', 'arenaforvalter', 'sykemelding', + 'yrkesskader', 'brregstub', 'instdata', 'krrstub', diff --git a/apps/dolly-frontend/src/main/js/src/service/SelectOptions.tsx b/apps/dolly-frontend/src/main/js/src/service/SelectOptions.tsx index 180c135fad3..31c34d01879 100644 --- a/apps/dolly-frontend/src/main/js/src/service/SelectOptions.tsx +++ b/apps/dolly-frontend/src/main/js/src/service/SelectOptions.tsx @@ -818,6 +818,25 @@ const selectOptions = { { value: 'Tysk', label: 'Tysk' }, ], + // Yrkesskader: + klassifisering: [ + { value: 'BAGATELLMESSIGE_SKADER', label: 'Bagatellmessige skader' }, + { value: 'MANUELL', label: 'Manuell' }, + { value: 'IMPORT', label: 'Import' }, + ], + + tidstype: [ + { value: 'tidspunkt', label: 'Tidspunkt (skade)' }, + { value: 'periode', label: 'Periode (sykdom)' }, + { value: 'ukjent', label: 'Ukjent' }, + ], + + ferdigstillSak: [ + { value: 'GODKJENT', label: 'Godkjent' }, + { value: 'AVSLAG', label: 'Avslag' }, + ], + + // Dolly-soek: registerTyper: [ { value: 'AAREG', label: 'Arbeidsforhold (Aareg)' }, { value: 'SIGRUN_LIGNET', label: 'Sigrun lignet inntekt' }, From bb6ba091ca9de9929a9ecca57e0a7f786db8d2ce Mon Sep 17 00:00:00 2001 From: Betsy Carina Traran Date: Tue, 8 Oct 2024 12:44:54 +0200 Subject: [PATCH 03/16] Bestillingsvisning --- .../kriterier/BestillingKriterieMapper.tsx | 31 ++++++++++++++++++- .../fagsystem/yrkesskader/initialValues.tsx | 2 +- 2 files changed, 31 insertions(+), 2 deletions(-) diff --git a/apps/dolly-frontend/src/main/js/src/components/bestilling/sammendrag/kriterier/BestillingKriterieMapper.tsx b/apps/dolly-frontend/src/main/js/src/components/bestilling/sammendrag/kriterier/BestillingKriterieMapper.tsx index 64bde954c53..71d28bd3c5f 100644 --- a/apps/dolly-frontend/src/main/js/src/components/bestilling/sammendrag/kriterier/BestillingKriterieMapper.tsx +++ b/apps/dolly-frontend/src/main/js/src/components/bestilling/sammendrag/kriterier/BestillingKriterieMapper.tsx @@ -4,6 +4,7 @@ import { arrayToString, codeToNorskLabel, formatDate, + formatDateTime, formatDateTimeWithSeconds, formatDateToYear, omraaderArrayToString, @@ -1270,7 +1271,7 @@ const mapInntektStub = (bestillingData, data) => { inntektStub.itemRows.push([ { numberHeader: `Inntektsinformasjon ${i + 1}` }, obj('År/måned', inntektsinfo.sisteAarMaaned), - obj('Rapporteringstidspunkt', inntektsinfo.rapporteringsdato), + obj('Rapporteringstidspunkt', formatDateTime(inntektsinfo.rapporteringsdato)), obj('Generer antall måneder', inntektsinfo.antallMaaneder), obj('Virksomhet (orgnr/id)', inntektsinfo.virksomhet), obj('Opplysningspliktig (orgnr/id)', inntektsinfo.opplysningspliktig), @@ -1572,6 +1573,33 @@ const mapSykemelding = (bestillingData, data) => { } } +const mapYrkesskader = (bestillingData, data) => { + const yrkesskadeKriterier = bestillingData.yrkesskader + + const mapYrkesskadeKriterier = () => ({ + header: 'Yrkesskader', + itemRows: yrkesskadeKriterier.map((yrkesskade, i) => [ + { + numberHeader: `Yrkesskade ${i + 1}`, + }, + // obj('Skadelidt identifikator', yrkesskade.skadelidtIdentifikator), + obj('Rolletype', yrkesskade.rolletype), //TODO: kodeverk + obj('Innmelder', yrkesskade.innmelderIdentifikator), + obj('Innmelder rolle', yrkesskade.innmelderrolle), //TODO: kodeverk + obj('Klassifisering', showLabel('klassifisering', yrkesskade.klassifisering)), + obj('På vegne av', yrkesskade.paaVegneAv), + obj('Tidstype', showLabel('tidstype', yrkesskade.tidstype)), + obj('Skadetidspunkt', formatDateTime(yrkesskade.skadetidspunkt)), + obj('Antall perioder', yrkesskade.perioder?.length), + obj('Referanse', yrkesskade.referanse), + obj('Ferdigstill sak', showLabel('ferdigstillSak', yrkesskade.ferdigstillSak)), + // TODO: Fix rekkefølge + ]), + }) + + data.push(mapYrkesskadeKriterier()) +} + const mapBrregstub = (bestillingData, data) => { const brregstubKriterier = bestillingData.brregstub @@ -2431,6 +2459,7 @@ export function mapBestillingData(bestillingData, bestillingsinformasjon, firstI mapPensjon(bestillingData, data, navEnheter) mapArena(bestillingData, data) mapSykemelding(bestillingData, data) + mapYrkesskader(bestillingData, data) mapBrregstub(bestillingData, data) mapInst(bestillingData, data) mapKrr(bestillingData, data) diff --git a/apps/dolly-frontend/src/main/js/src/components/fagsystem/yrkesskader/initialValues.tsx b/apps/dolly-frontend/src/main/js/src/components/fagsystem/yrkesskader/initialValues.tsx index 9a8643de6e1..50ac42b62ee 100644 --- a/apps/dolly-frontend/src/main/js/src/components/fagsystem/yrkesskader/initialValues.tsx +++ b/apps/dolly-frontend/src/main/js/src/components/fagsystem/yrkesskader/initialValues.tsx @@ -4,7 +4,7 @@ export const initialYrkesskadePeriode = { } export const initialYrkesskade = { - skadelidtIdentifikator: '', + // skadelidtIdentifikator: '', rolletype: '', innmelderIdentifikator: '', innmelderrolle: 'virksomhetsrepresentant', From 3664619fbf91fec53032b058d8d6b7ca4efd82f4 Mon Sep 17 00:00:00 2001 From: Betsy Carina Traran Date: Tue, 8 Oct 2024 13:41:25 +0200 Subject: [PATCH 04/16] Org-toggle paa vegne av --- .../form/partials/orgnrToogle.tsx | 13 ++-- .../fagsystem/yrkesskader/form/Form.tsx | 60 +++++++++---------- .../fagsystem/yrkesskader/initialValues.tsx | 2 +- 3 files changed, 40 insertions(+), 35 deletions(-) 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 d4ec46351d6..83590fb941f 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 @@ -12,9 +12,14 @@ import { ORGANISASJONSTYPE_TOGGLE } from '@/components/fagsystem/inntektstub/for interface OrgnrToggleProps { path: string formMethods: UseFormReturn + label?: string } -export const OrgnrToggle = ({ path, formMethods }: OrgnrToggleProps) => { +export const OrgnrToggle = ({ + path, + formMethods, + label = 'Arbeidsgiver (orgnr)', +}: OrgnrToggleProps) => { const [inputType, setInputType] = useState( sessionStorage.getItem(ORGANISASJONSTYPE_TOGGLE) || inputValg.fraFellesListe, ) @@ -40,7 +45,7 @@ export const OrgnrToggle = ({ path, formMethods }: OrgnrToggleProps) => { {inputType === inputValg.fraFellesListe && ( @@ -48,7 +53,7 @@ export const OrgnrToggle = ({ path, formMethods }: OrgnrToggleProps) => { {inputType === inputValg.fraEgenListe && ( { /> )} {inputType === inputValg.skrivSelv && ( - + )} ) diff --git a/apps/dolly-frontend/src/main/js/src/components/fagsystem/yrkesskader/form/Form.tsx b/apps/dolly-frontend/src/main/js/src/components/fagsystem/yrkesskader/form/Form.tsx index 65eb2e91a33..36f99a61546 100644 --- a/apps/dolly-frontend/src/main/js/src/components/fagsystem/yrkesskader/form/Form.tsx +++ b/apps/dolly-frontend/src/main/js/src/components/fagsystem/yrkesskader/form/Form.tsx @@ -14,7 +14,7 @@ import { SelectOptionsManager as Options } from '@/service/SelectOptions' import { FormDateTimepicker } from '@/components/ui/form/inputs/timepicker/Timepicker' import { FormDatepicker } from '@/components/ui/form/inputs/datepicker/Datepicker' import { FormTextInput } from '@/components/ui/form/inputs/textInput/TextInput' -import { OrganisasjonMedArbeidsforholdSelect } from '@/components/organisasjonSelect' +import { OrgnrToggle } from '@/components/fagsystem/inntektsmelding/form/partials/orgnrToogle' export const yrkesskaderAttributt = 'yrkesskader' @@ -40,7 +40,7 @@ export const YrkesskaderForm = () => { {(path: string, idx: number) => { return ( - {/*skadelidtIdentifikator: '', //TODO: Blir satt av BE?*/} + {/*skadelidtIdentifikator: '', //TODO: Blir satt av BE*/} {/*rolletype: '',*/} { size="xlarge" /> - {/*innmelderIdentifikator: '',*/} - {formMethods.watch(`${path}.innmelderrolle`) === 'vergeOgForesatt' && ( - - )} - {/*innmelderrolle: '',*/} { size="large" /> + {/*innmelderIdentifikator: '',*/} + {formMethods.watch(`${path}.innmelderrolle`) === 'vergeOgForesatt' && ( + + )} + + {/*paaVegneAv: '',*/} + {formMethods.watch(`${path}.innmelderrolle`) === 'virksomhetsrepresentant' && ( + + )} + {/*klassifisering: '',*/} { size="large" /> - {/*paaVegneAv: '', //TODO: Lag denne*/} - {formMethods.watch(`${path}.innmelderrolle`) === 'virksomhetsrepresentant' && ( - - )} + {/*referanse: '',*/} + + + {/*ferdigstillSak: '',*/} + {/*tidstype: '',*/} { }} )} - - {/*referanse: '',*/} - - - {/*ferdigstillSak: '',*/} - ) }} diff --git a/apps/dolly-frontend/src/main/js/src/components/fagsystem/yrkesskader/initialValues.tsx b/apps/dolly-frontend/src/main/js/src/components/fagsystem/yrkesskader/initialValues.tsx index 50ac42b62ee..29c3f0dd42b 100644 --- a/apps/dolly-frontend/src/main/js/src/components/fagsystem/yrkesskader/initialValues.tsx +++ b/apps/dolly-frontend/src/main/js/src/components/fagsystem/yrkesskader/initialValues.tsx @@ -5,7 +5,7 @@ export const initialYrkesskadePeriode = { export const initialYrkesskade = { // skadelidtIdentifikator: '', - rolletype: '', + rolletype: 'arbeidstaker', innmelderIdentifikator: '', innmelderrolle: 'virksomhetsrepresentant', klassifisering: 'MANUELL', From ae078264298f6c7b86e4a54b3a5a74ed9b8d0c28 Mon Sep 17 00:00:00 2001 From: Betsy Carina Traran Date: Tue, 8 Oct 2024 14:27:26 +0200 Subject: [PATCH 05/16] Changehandling --- .../fagsystem/yrkesskader/form/Form.tsx | 24 ++++++++++++++----- 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/apps/dolly-frontend/src/main/js/src/components/fagsystem/yrkesskader/form/Form.tsx b/apps/dolly-frontend/src/main/js/src/components/fagsystem/yrkesskader/form/Form.tsx index 36f99a61546..402b8a917bf 100644 --- a/apps/dolly-frontend/src/main/js/src/components/fagsystem/yrkesskader/form/Form.tsx +++ b/apps/dolly-frontend/src/main/js/src/components/fagsystem/yrkesskader/form/Form.tsx @@ -21,7 +21,21 @@ export const yrkesskaderAttributt = 'yrkesskader' export const YrkesskaderForm = () => { const formMethods = useFormContext() - // TODO: Krav om arbeidsgiver dersom innmelderrolle === virksomhetsrepresentant + const handleChangeInnmelderrolle = (value, path) => { + formMethods.setValue(`${path}.innmelderrolle`, value?.value) + formMethods.setValue(`${path}.innmelderIdentifikator`, '') + formMethods.setValue(`${path}.paaVegneAv`, '') + formMethods.trigger(path) + } + + const handleChangeTidstype = (value, path) => { + formMethods.setValue(`${path}.tidstype`, value?.value) + formMethods.setValue(`${path}.skadetidspunkt`, null) + formMethods.setValue(`${path}.perioder`, [initialYrkesskadePeriode]) + formMethods.trigger(path) + } + + // TODO: Krav om arbeidsgiver dersom innmelderrolle === virksomhetsrepresentant??? return ( @@ -40,7 +54,7 @@ export const YrkesskaderForm = () => { {(path: string, idx: number) => { return ( - {/*skadelidtIdentifikator: '', //TODO: Blir satt av BE*/} + {/*skadelidtIdentifikator: '', // Blir satt av BE*/} {/*rolletype: '',*/} { ]} //TODO: Bruk kodeverk innmelderrolle // kodeverk={null} - //TODO: onChange for å nullstille innmelderIdentifikator og paavegneAv - // onChange={} + onChange={(value) => handleChangeInnmelderrolle(value, path)} size="large" /> @@ -121,8 +134,7 @@ export const YrkesskaderForm = () => { label="Tidstype" options={Options('tidstype')} size="medium" - //TODO: onChange for å nullstille skadetidspunkt og perioder - // onChange={} + onChange={(value) => handleChangeTidstype(value, path)} /> {/*skadetidspunkt: null,*/} From 3a2c72b9397f21badb667deded52f22a756f5d18 Mon Sep 17 00:00:00 2001 From: Betsy Carina Traran Date: Tue, 8 Oct 2024 14:36:44 +0200 Subject: [PATCH 06/16] Fix rekkefolge bestilling --- .../sammendrag/kriterier/BestillingKriterieMapper.tsx | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/apps/dolly-frontend/src/main/js/src/components/bestilling/sammendrag/kriterier/BestillingKriterieMapper.tsx b/apps/dolly-frontend/src/main/js/src/components/bestilling/sammendrag/kriterier/BestillingKriterieMapper.tsx index 71d28bd3c5f..076a40e5ad5 100644 --- a/apps/dolly-frontend/src/main/js/src/components/bestilling/sammendrag/kriterier/BestillingKriterieMapper.tsx +++ b/apps/dolly-frontend/src/main/js/src/components/bestilling/sammendrag/kriterier/BestillingKriterieMapper.tsx @@ -1584,16 +1584,15 @@ const mapYrkesskader = (bestillingData, data) => { }, // obj('Skadelidt identifikator', yrkesskade.skadelidtIdentifikator), obj('Rolletype', yrkesskade.rolletype), //TODO: kodeverk + obj('Innmelderrolle', yrkesskade.innmelderrolle), //TODO: kodeverk obj('Innmelder', yrkesskade.innmelderIdentifikator), - obj('Innmelder rolle', yrkesskade.innmelderrolle), //TODO: kodeverk - obj('Klassifisering', showLabel('klassifisering', yrkesskade.klassifisering)), obj('På vegne av', yrkesskade.paaVegneAv), + obj('Klassifisering', showLabel('klassifisering', yrkesskade.klassifisering)), + obj('Referanse', yrkesskade.referanse), + obj('Ferdigstill sak', showLabel('ferdigstillSak', yrkesskade.ferdigstillSak)), obj('Tidstype', showLabel('tidstype', yrkesskade.tidstype)), obj('Skadetidspunkt', formatDateTime(yrkesskade.skadetidspunkt)), obj('Antall perioder', yrkesskade.perioder?.length), - obj('Referanse', yrkesskade.referanse), - obj('Ferdigstill sak', showLabel('ferdigstillSak', yrkesskade.ferdigstillSak)), - // TODO: Fix rekkefølge ]), }) From 8ed513909c69fd3ba525ca08f752a70417db71c6 Mon Sep 17 00:00:00 2001 From: Betsy Carina Traran Date: Thu, 10 Oct 2024 10:19:19 +0200 Subject: [PATCH 07/16] Smaafix --- .../src/main/js/package-lock.json | 33 ------------------- .../fagsystem/yrkesskader/form/Form.tsx | 4 +-- .../fagsystem/yrkesskader/initialValues.tsx | 10 +++--- 3 files changed, 7 insertions(+), 40 deletions(-) diff --git a/apps/dolly-frontend/src/main/js/package-lock.json b/apps/dolly-frontend/src/main/js/package-lock.json index 2c755c1db70..82a2894dee4 100644 --- a/apps/dolly-frontend/src/main/js/package-lock.json +++ b/apps/dolly-frontend/src/main/js/package-lock.json @@ -53,7 +53,6 @@ "@navikt/ds-css": "^7.1.0", "@navikt/ds-icons": "^3.4.3", "@navikt/ds-react": "^7.1.0", - "@playwright/experimental-ct-react": "^1.47.2", "@playwright/test": "^1.44.1", "@redux-devtools/extension": "^3.3.0", "@reduxjs/toolkit": "^2.2.1", @@ -1992,38 +1991,6 @@ "node": ">=14" } }, - "node_modules/@playwright/experimental-ct-core": { - "version": "1.47.2", - "resolved": "https://registry.npmjs.org/@playwright/experimental-ct-core/-/experimental-ct-core-1.47.2.tgz", - "integrity": "sha512-aTR254jpS7mpuX8Od6vt9zOOmeuZ1PPI8aaT3vxb8lOtRWoq/XsCsnlxu3eWInbDsiYyAEcxPsiGLU9PXgC4LQ==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "playwright": "1.47.2", - "playwright-core": "1.47.2", - "vite": "^5.2.8" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@playwright/experimental-ct-react": { - "version": "1.47.2", - "resolved": "https://registry.npmjs.org/@playwright/experimental-ct-react/-/experimental-ct-react-1.47.2.tgz", - "integrity": "sha512-taWSdPhbdXl6dsC2RmlfGoOy9moeBxMdV7j4n/IEXfzMWu7GshUR9kAESg3QsV03i1vU8kTX5Ko28Yt3ISnk4w==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@playwright/experimental-ct-core": "1.47.2", - "@vitejs/plugin-react": "^4.2.1" - }, - "bin": { - "playwright": "cli.js" - }, - "engines": { - "node": ">=18" - } - }, "node_modules/@playwright/test": { "version": "1.47.2", "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.47.2.tgz", diff --git a/apps/dolly-frontend/src/main/js/src/components/fagsystem/yrkesskader/form/Form.tsx b/apps/dolly-frontend/src/main/js/src/components/fagsystem/yrkesskader/form/Form.tsx index 402b8a917bf..2469d07237a 100644 --- a/apps/dolly-frontend/src/main/js/src/components/fagsystem/yrkesskader/form/Form.tsx +++ b/apps/dolly-frontend/src/main/js/src/components/fagsystem/yrkesskader/form/Form.tsx @@ -23,8 +23,8 @@ export const YrkesskaderForm = () => { const handleChangeInnmelderrolle = (value, path) => { formMethods.setValue(`${path}.innmelderrolle`, value?.value) - formMethods.setValue(`${path}.innmelderIdentifikator`, '') - formMethods.setValue(`${path}.paaVegneAv`, '') + formMethods.setValue(`${path}.innmelderIdentifikator`, null) + formMethods.setValue(`${path}.paaVegneAv`, null) formMethods.trigger(path) } diff --git a/apps/dolly-frontend/src/main/js/src/components/fagsystem/yrkesskader/initialValues.tsx b/apps/dolly-frontend/src/main/js/src/components/fagsystem/yrkesskader/initialValues.tsx index 29c3f0dd42b..2a5ec89801e 100644 --- a/apps/dolly-frontend/src/main/js/src/components/fagsystem/yrkesskader/initialValues.tsx +++ b/apps/dolly-frontend/src/main/js/src/components/fagsystem/yrkesskader/initialValues.tsx @@ -6,13 +6,13 @@ export const initialYrkesskadePeriode = { export const initialYrkesskade = { // skadelidtIdentifikator: '', rolletype: 'arbeidstaker', - innmelderIdentifikator: '', + innmelderIdentifikator: null, innmelderrolle: 'virksomhetsrepresentant', klassifisering: 'MANUELL', - paaVegneAv: '', - tidstype: '', + paaVegneAv: null, + tidstype: null, skadetidspunkt: null, perioder: [initialYrkesskadePeriode], - referanse: '', - ferdigstillSak: '', + referanse: null, + ferdigstillSak: null, } From f8a7e121adc497e0c69d0dd57fd9586da21451d8 Mon Sep 17 00:00:00 2001 From: Betsy Carina Traran Date: Fri, 11 Oct 2024 11:28:24 +0200 Subject: [PATCH 08/16] Infotekster og tilpasninger av form --- .../fagsystem/yrkesskader/form/Form.tsx | 326 ++++++++++-------- .../fagsystem/yrkesskader/initialValues.tsx | 4 +- 2 files changed, 188 insertions(+), 142 deletions(-) diff --git a/apps/dolly-frontend/src/main/js/src/components/fagsystem/yrkesskader/form/Form.tsx b/apps/dolly-frontend/src/main/js/src/components/fagsystem/yrkesskader/form/Form.tsx index 2469d07237a..7ab97945b64 100644 --- a/apps/dolly-frontend/src/main/js/src/components/fagsystem/yrkesskader/form/Form.tsx +++ b/apps/dolly-frontend/src/main/js/src/components/fagsystem/yrkesskader/form/Form.tsx @@ -15,18 +15,19 @@ import { FormDateTimepicker } from '@/components/ui/form/inputs/timepicker/Timep import { FormDatepicker } from '@/components/ui/form/inputs/datepicker/Datepicker' import { FormTextInput } from '@/components/ui/form/inputs/textInput/TextInput' import { OrgnrToggle } from '@/components/fagsystem/inntektsmelding/form/partials/orgnrToogle' +import StyledAlert from '@/components/ui/alert/StyledAlert' export const yrkesskaderAttributt = 'yrkesskader' export const YrkesskaderForm = () => { const formMethods = useFormContext() - const handleChangeInnmelderrolle = (value, path) => { - formMethods.setValue(`${path}.innmelderrolle`, value?.value) - formMethods.setValue(`${path}.innmelderIdentifikator`, null) - formMethods.setValue(`${path}.paaVegneAv`, null) - formMethods.trigger(path) - } + // const handleChangeInnmelderrolle = (value, path) => { + // formMethods.setValue(`${path}.innmelderrolle`, value?.value) + // formMethods.setValue(`${path}.innmelderIdentifikator`, null) + // formMethods.setValue(`${path}.paaVegneAv`, null) + // formMethods.trigger(path) + // } const handleChangeTidstype = (value, path) => { formMethods.setValue(`${path}.tidstype`, value?.value) @@ -35,7 +36,43 @@ export const YrkesskaderForm = () => { formMethods.trigger(path) } - // TODO: Krav om arbeidsgiver dersom innmelderrolle === virksomhetsrepresentant??? + const manglerVergeEllerForelder = () => { + // TODO: Sjekk personFoerLeggTil og importPersoner (og ander??) + const vergemaal = formMethods.watch('pdldata.person.vergemaal') + const forelder = formMethods + .watch('pdldata.person.forelderBarnRelasjon') + ?.filter((relasjon) => relasjon?.relatertPersonsRolle === 'FORELDER') + const harInnmelderrolleVergeOgForesatt = formMethods + .watch('yrkesskader') + ?.some((yrkesskade) => yrkesskade?.innmelderrolle === 'vergeOgForesatt') + return ( + harInnmelderrolleVergeOgForesatt && + (!vergemaal || vergemaal?.length < 1) && + (!forelder || forelder?.length < 1) + ) + } + + const hjelpetekst = ( + <> +

+ Det er kun rolletyper som blir rutet til KOMPYS som vil få opprettet en synlig sak. Saker + som går til GOSYS må manuelt behandles før de kan dukke opp i Infotrygd og deretter dukke + opp i saksliste. +

+

Foreløpige kriterier for ruting til Kompys er:

+
    +
  • Det må være bagatellmessige skader.
  • +
  • Bruker kan ikke ha en eksisterende sak.
  • +
  • + Bruker kan ikke ha en potensiell innkommende sak/oppgave/behandling (sjekkes i Joark). +
  • +
  • + Rolletype er elevEllerStudent, vernepliktigIFoerstegangstjenesten eller + vernepliktigIRepetisjonstjeneste (utvides stadig støtte for flere rolletyper). +
  • +
+ + ) return ( @@ -44,143 +81,152 @@ export const YrkesskaderForm = () => { hasErrors={panelError(yrkesskaderAttributt)} iconType="sykdom" startOpen={erForsteEllerTest(formMethods.getValues(), [yrkesskaderAttributt])} + informasjonstekst={hjelpetekst} > - - {(path: string, idx: number) => { - return ( - - {/*skadelidtIdentifikator: '', // Blir satt av BE*/} - - {/*rolletype: '',*/} - - - {/*innmelderrolle: '',*/} - handleChangeInnmelderrolle(value, path)} - size="large" - /> - - {/*innmelderIdentifikator: '',*/} - {formMethods.watch(`${path}.innmelderrolle`) === 'vergeOgForesatt' && ( - + {manglerVergeEllerForelder() && ( + + Person må ha verge, eller forelder dersom alder er 5-17 år. Dette kan legges til ved å + huke av for "Vergemål" eller "Har barn/foreldre" på forrige side. + + )} + + {(path: string, idx: number) => { + return ( + + {/*skadelidtIdentifikator: '', // Blir satt av BE*/} + + {/*rolletype: '',*/} + - )} - - {/*paaVegneAv: '',*/} - {formMethods.watch(`${path}.innmelderrolle`) === 'virksomhetsrepresentant' && ( - handleChangeInnmelderrolle(value, path)} + size="large" /> - )} - - {/*klassifisering: '',*/} - - - {/*referanse: '',*/} - - - {/*ferdigstillSak: '',*/} - - - {/*tidstype: '',*/} - handleChangeTidstype(value, path)} - /> - - {/*skadetidspunkt: null,*/} - {formMethods.watch(`${path}.tidstype`) === 'tidspunkt' && ( - */} + {/*)}*/} + + {/*paaVegneAv: '',*/} + {/*{formMethods.watch(`${path}.innmelderrolle`) === 'virksomhetsrepresentant' && (*/} + {/* */} + {/*)}*/} + + {/*klassifisering: '',*/} + - )} - - {/*perioder: [initialYrkesskadePeriode],*/} - {formMethods.watch(`${path}.tidstype`) === 'periode' && ( - - {(periodePath: string, periodeIdx: number) => { - return ( - - - - - ) - }} - - )} - - ) - }} - + + {/*referanse: '',*/} + + + {/*ferdigstillSak: '',*/} + + + {/*tidstype: '',*/} + handleChangeTidstype(value, path)} + /> + + {/*skadetidspunkt: null,*/} + {formMethods.watch(`${path}.tidstype`) === 'tidspunkt' && ( + + )} + + {/*perioder: [initialYrkesskadePeriode],*/} + {formMethods.watch(`${path}.tidstype`) === 'periode' && ( + + {(periodePath: string, periodeIdx: number) => { + return ( + + + + + ) + }} + + )} + + ) + }} + + ) diff --git a/apps/dolly-frontend/src/main/js/src/components/fagsystem/yrkesskader/initialValues.tsx b/apps/dolly-frontend/src/main/js/src/components/fagsystem/yrkesskader/initialValues.tsx index 2a5ec89801e..39fe650d58e 100644 --- a/apps/dolly-frontend/src/main/js/src/components/fagsystem/yrkesskader/initialValues.tsx +++ b/apps/dolly-frontend/src/main/js/src/components/fagsystem/yrkesskader/initialValues.tsx @@ -6,10 +6,10 @@ export const initialYrkesskadePeriode = { export const initialYrkesskade = { // skadelidtIdentifikator: '', rolletype: 'arbeidstaker', - innmelderIdentifikator: null, + // innmelderIdentifikator: null, innmelderrolle: 'virksomhetsrepresentant', klassifisering: 'MANUELL', - paaVegneAv: null, + // paaVegneAv: null, tidstype: null, skadetidspunkt: null, perioder: [initialYrkesskadePeriode], From 36b4297c14b2ed62f0ecb3ebe96c4c4df2f4d933 Mon Sep 17 00:00:00 2001 From: Betsy Carina Traran Date: Fri, 11 Oct 2024 19:20:44 +0200 Subject: [PATCH 09/16] Visning av yrkesskade-data paa person --- .../kriterier/BestillingKriterieMapper.tsx | 4 +- .../fagsystem/yrkesskader/form/Form.tsx | 2 + .../fagsystem/yrkesskader/initialValues.tsx | 2 +- .../visning/YrkesskaderVisning.tsx | 79 +++++++++++++++++++ .../gruppe/PersonVisning/PersonVisning.tsx | 15 ++++ .../js/src/utils/SjekkBestillingFagsystem.tsx | 10 +++ 6 files changed, 109 insertions(+), 3 deletions(-) create mode 100644 apps/dolly-frontend/src/main/js/src/components/fagsystem/yrkesskader/visning/YrkesskaderVisning.tsx diff --git a/apps/dolly-frontend/src/main/js/src/components/bestilling/sammendrag/kriterier/BestillingKriterieMapper.tsx b/apps/dolly-frontend/src/main/js/src/components/bestilling/sammendrag/kriterier/BestillingKriterieMapper.tsx index 076a40e5ad5..4b2b8fe5016 100644 --- a/apps/dolly-frontend/src/main/js/src/components/bestilling/sammendrag/kriterier/BestillingKriterieMapper.tsx +++ b/apps/dolly-frontend/src/main/js/src/components/bestilling/sammendrag/kriterier/BestillingKriterieMapper.tsx @@ -1585,8 +1585,8 @@ const mapYrkesskader = (bestillingData, data) => { // obj('Skadelidt identifikator', yrkesskade.skadelidtIdentifikator), obj('Rolletype', yrkesskade.rolletype), //TODO: kodeverk obj('Innmelderrolle', yrkesskade.innmelderrolle), //TODO: kodeverk - obj('Innmelder', yrkesskade.innmelderIdentifikator), - obj('På vegne av', yrkesskade.paaVegneAv), + // obj('Innmelder', yrkesskade.innmelderIdentifikator), + // obj('På vegne av', yrkesskade.paaVegneAv), obj('Klassifisering', showLabel('klassifisering', yrkesskade.klassifisering)), obj('Referanse', yrkesskade.referanse), obj('Ferdigstill sak', showLabel('ferdigstillSak', yrkesskade.ferdigstillSak)), diff --git a/apps/dolly-frontend/src/main/js/src/components/fagsystem/yrkesskader/form/Form.tsx b/apps/dolly-frontend/src/main/js/src/components/fagsystem/yrkesskader/form/Form.tsx index 7ab97945b64..d5e2fd5976e 100644 --- a/apps/dolly-frontend/src/main/js/src/components/fagsystem/yrkesskader/form/Form.tsx +++ b/apps/dolly-frontend/src/main/js/src/components/fagsystem/yrkesskader/form/Form.tsx @@ -95,6 +95,8 @@ export const YrkesskaderForm = () => { header={'Yrkesskade'} newEntry={initialYrkesskade} canBeEmpty={false} + // maxEntries={1} + //TODO: Bare 1 yrkesskade per person??? > {(path: string, idx: number) => { return ( diff --git a/apps/dolly-frontend/src/main/js/src/components/fagsystem/yrkesskader/initialValues.tsx b/apps/dolly-frontend/src/main/js/src/components/fagsystem/yrkesskader/initialValues.tsx index 39fe650d58e..f4f818ef2b4 100644 --- a/apps/dolly-frontend/src/main/js/src/components/fagsystem/yrkesskader/initialValues.tsx +++ b/apps/dolly-frontend/src/main/js/src/components/fagsystem/yrkesskader/initialValues.tsx @@ -12,7 +12,7 @@ export const initialYrkesskade = { // paaVegneAv: null, tidstype: null, skadetidspunkt: null, - perioder: [initialYrkesskadePeriode], + perioder: null, referanse: null, ferdigstillSak: null, } diff --git a/apps/dolly-frontend/src/main/js/src/components/fagsystem/yrkesskader/visning/YrkesskaderVisning.tsx b/apps/dolly-frontend/src/main/js/src/components/fagsystem/yrkesskader/visning/YrkesskaderVisning.tsx new file mode 100644 index 00000000000..01c4315ea7d --- /dev/null +++ b/apps/dolly-frontend/src/main/js/src/components/fagsystem/yrkesskader/visning/YrkesskaderVisning.tsx @@ -0,0 +1,79 @@ +import React from 'react' +import { Alert } from '@navikt/ds-react' +import Loading from '@/components/ui/loading/Loading' +import SubOverskrift from '@/components/ui/subOverskrift/SubOverskrift' +import { DollyFieldArray } from '@/components/ui/form/fieldArray/DollyFieldArray' +import { TitleValue } from '@/components/ui/titleValue/TitleValue' +import { formatDateTime, showLabel, formatDate } from '@/utils/DataFormatter' + +export const sjekkManglerYrkesskadeData = (yrkesskadeData) => { + return !yrkesskadeData || yrkesskadeData?.length < 1 +} + +export const YrkesskaderVisning = ({ data, loading }) => { + if (loading) { + return + } + + if (!data) { + return null + } + + const manglerFagsystemData = sjekkManglerYrkesskadeData(data) + + return ( +
+ + {manglerFagsystemData ? ( + + Fant ikke yrkesskade-data på person + + ) : ( +
+ + {(yrkesskade, idx) => { + return ( + + + {/*//TODO: kodeverk*/} + + {/*//TODO: kodeverk*/} + + + + + + + + + {(periode, periodeIdx) => ( + + + + + )} + + + ) + }} + +
+ )} +
+ ) +} diff --git a/apps/dolly-frontend/src/main/js/src/pages/gruppe/PersonVisning/PersonVisning.tsx b/apps/dolly-frontend/src/main/js/src/pages/gruppe/PersonVisning/PersonVisning.tsx index f7ab1421258..107ede10771 100644 --- a/apps/dolly-frontend/src/main/js/src/pages/gruppe/PersonVisning/PersonVisning.tsx +++ b/apps/dolly-frontend/src/main/js/src/pages/gruppe/PersonVisning/PersonVisning.tsx @@ -67,6 +67,7 @@ import { harTpBestilling, harUdistubBestilling, harUforetrygdBestilling, + harYrkesskaderBestilling, } from '@/utils/SjekkBestillingFagsystem' import { AlderspensjonVisning, @@ -99,6 +100,10 @@ import { SkattekortVisning } from '@/components/fagsystem/skattekort/visning/Vis import { PensjonsavtaleVisning } from '@/components/fagsystem/pensjonsavtale/visning/PensjonsavtaleVisning' import { useMockOppsett } from '@/utils/hooks/usePensjon' import { AfpOffentligVisning } from '@/components/fagsystem/afpOffentlig/visning/AfpOffentligVisning' +import { + sjekkManglerYrkesskadeData, + YrkesskaderVisning, +} from '@/components/fagsystem/yrkesskader/visning/YrkesskaderVisning' const getIdenttype = (ident) => { if (parseInt(ident.charAt(0)) > 3) { @@ -246,6 +251,12 @@ export default ({ const sykemeldingBestilling = SykemeldingVisning.filterValues(bestillingListe, ident.ident) + const { loading: loadingYrkesskadeData, data: yrkesskadeData } = useTransaksjonIdData( + ident.ident, + 'YRKESSKADE', + harYrkesskaderBestilling(bestillingerFagsystemer), + ) + const { loading: loadingInntektsmeldingData, data: inntektsmeldingData } = useTransaksjonIdData( ident.ident, 'INNTKMELD', @@ -312,6 +323,9 @@ export default ({ ) { return true } + if (yrkesskadeData && sjekkManglerYrkesskadeData(yrkesskadeData)) { + return true + } return false } @@ -539,6 +553,7 @@ export default ({ harSykemeldingBestilling(bestillingerFagsystemer) ? sykemeldingBestilling : null } /> + { return sykemelding } +export const harYrkesskaderBestilling = (bestillingerFagsystemer) => { + let yrkesskader = false + bestillingerFagsystemer?.forEach((i) => { + if (i?.yrkesskader) { + yrkesskader = true + } + }) + return yrkesskader +} + export const harInntektsmeldingBestilling = (bestillingerFagsystemer) => { let inntektsmelding = false bestillingerFagsystemer?.forEach((i) => { From a475bd6ca2006db436c34f79ad518ab5746629c3 Mon Sep 17 00:00:00 2001 From: Betsy Carina Traran Date: Mon, 14 Oct 2024 13:39:47 +0200 Subject: [PATCH 10/16] Forsoek paa aa hente kodeverk --- apps/dolly-frontend/config.idporten.yml | 1 + apps/dolly-frontend/config.test.yml | 1 + apps/dolly-frontend/config.unstable.yml | 1 + apps/dolly-frontend/config.yml | 1 + .../src/main/js/proxy-routes.json | 5 +++++ .../visning/YrkesskaderVisning.tsx | 4 ++++ .../main/js/src/utils/hooks/useYrkesskade.tsx | 21 +++++++++++++++++++ .../src/main/resources/application.yml | 5 +++++ 8 files changed, 39 insertions(+) create mode 100644 apps/dolly-frontend/src/main/js/src/utils/hooks/useYrkesskade.tsx diff --git a/apps/dolly-frontend/config.idporten.yml b/apps/dolly-frontend/config.idporten.yml index fac21c7597c..26a1b76de43 100644 --- a/apps/dolly-frontend/config.idporten.yml +++ b/apps/dolly-frontend/config.idporten.yml @@ -56,6 +56,7 @@ spec: - application: testnav-varslinger-service - application: testnorge-profil-api - application: testnorge-tilbakemelding-api + - application: testnav-yrkesskade-proxy external: - host: testnav-pensjon-testdata-facade-proxy.dev-fss-pub.nais.io - host: testnav-sigrunstub-proxy.dev-fss-pub.nais.io diff --git a/apps/dolly-frontend/config.test.yml b/apps/dolly-frontend/config.test.yml index 1844b03a0b1..ab094b75d80 100644 --- a/apps/dolly-frontend/config.test.yml +++ b/apps/dolly-frontend/config.test.yml @@ -62,6 +62,7 @@ spec: - application: testnav-levende-arbeidsforhold-ansettelse - application: testnav-levende-arbeidsforhold-scheduler - application: testnav-skattekort-service + - application: testnav-yrkesskade-proxy external: - host: testnav-pensjon-testdata-facade-proxy.dev-fss-pub.nais.io - host: testnav-sigrunstub-proxy.dev-fss-pub.nais.io diff --git a/apps/dolly-frontend/config.unstable.yml b/apps/dolly-frontend/config.unstable.yml index 5a24b4f9360..ce2e6f9d8a8 100644 --- a/apps/dolly-frontend/config.unstable.yml +++ b/apps/dolly-frontend/config.unstable.yml @@ -55,6 +55,7 @@ spec: - application: testnorge-profil-api-dev - application: testnorge-tilbakemelding-api - application: testnav-skattekort-service + - application: testnav-yrkesskade-proxy external: - host: testnav-pensjon-testdata-facade-proxy.dev-fss-pub.nais.io - host: testnav-sigrunstub-proxy.dev-fss-pub.nais.io diff --git a/apps/dolly-frontend/config.yml b/apps/dolly-frontend/config.yml index 5f7d016f3a5..9dafd8ea194 100644 --- a/apps/dolly-frontend/config.yml +++ b/apps/dolly-frontend/config.yml @@ -66,6 +66,7 @@ spec: - application: testnorge-tilbakemelding-api - application: testnav-levende-arbeidsforhold-ansettelse - application: testnav-levende-arbeidsforhold-scheduler + - application: testnav-yrkesskade-proxy external: - host: testnav-pensjon-testdata-facade-proxy.dev-fss-pub.nais.io diff --git a/apps/dolly-frontend/src/main/js/proxy-routes.json b/apps/dolly-frontend/src/main/js/proxy-routes.json index 859caa2d6c0..ac756604110 100644 --- a/apps/dolly-frontend/src/main/js/proxy-routes.json +++ b/apps/dolly-frontend/src/main/js/proxy-routes.json @@ -243,5 +243,10 @@ "target": "http://localhost:8020", "changeOrigin": true, "secure": false + }, + "/testnav-yrkesskade-proxy": { + "target": "http://localhost:8020", + "changeOrigin": true, + "secure": false } } \ No newline at end of file diff --git a/apps/dolly-frontend/src/main/js/src/components/fagsystem/yrkesskader/visning/YrkesskaderVisning.tsx b/apps/dolly-frontend/src/main/js/src/components/fagsystem/yrkesskader/visning/YrkesskaderVisning.tsx index 01c4315ea7d..60443bd9ebd 100644 --- a/apps/dolly-frontend/src/main/js/src/components/fagsystem/yrkesskader/visning/YrkesskaderVisning.tsx +++ b/apps/dolly-frontend/src/main/js/src/components/fagsystem/yrkesskader/visning/YrkesskaderVisning.tsx @@ -5,6 +5,7 @@ import SubOverskrift from '@/components/ui/subOverskrift/SubOverskrift' import { DollyFieldArray } from '@/components/ui/form/fieldArray/DollyFieldArray' import { TitleValue } from '@/components/ui/titleValue/TitleValue' import { formatDateTime, showLabel, formatDate } from '@/utils/DataFormatter' +import { useYrkesskadeKodeverk } from '@/utils/hooks/useYrkesskade' export const sjekkManglerYrkesskadeData = (yrkesskadeData) => { return !yrkesskadeData || yrkesskadeData?.length < 1 @@ -21,6 +22,9 @@ export const YrkesskaderVisning = ({ data, loading }) => { const manglerFagsystemData = sjekkManglerYrkesskadeData(data) + const { kodeverkData, loading: yrkesskadeLoading, error } = useYrkesskadeKodeverk('ROLLETYPE') + console.log('kodeverkData: ', kodeverkData) //TODO - SLETT MEG + return (
diff --git a/apps/dolly-frontend/src/main/js/src/utils/hooks/useYrkesskade.tsx b/apps/dolly-frontend/src/main/js/src/utils/hooks/useYrkesskade.tsx new file mode 100644 index 00000000000..0ce42cd0db1 --- /dev/null +++ b/apps/dolly-frontend/src/main/js/src/utils/hooks/useYrkesskade.tsx @@ -0,0 +1,21 @@ +import useSWR from 'swr' +import { fetcher } from '@/api' + +const baseUrl = '/testnav-yrkesskade-proxy' +const getKodeverkUrl = (kodeverktype) => `${baseUrl}/api/v1/kodeverk/${kodeverktype}` + +export const useYrkesskadeKodeverk = (kodeverktype) => { + const { data, isLoading, error } = useSWR( + getKodeverkUrl(kodeverktype), + fetcher, + // [getKodeverkUrl(kodeverktype)], + // (url) => fetcher(url), + ) + console.log('data: ', data) //TODO - SLETT MEG + + return { + kodeverkData: data, + loading: isLoading, + error: error, + } +} diff --git a/apps/dolly-frontend/src/main/resources/application.yml b/apps/dolly-frontend/src/main/resources/application.yml index 9a9fd54cbd5..842a8da0a4c 100644 --- a/apps/dolly-frontend/src/main/resources/application.yml +++ b/apps/dolly-frontend/src/main/resources/application.yml @@ -233,6 +233,11 @@ consumers: namespace: dolly name: testnav-levende-arbeidsforhold-scheduler url: http://testnav-levende-arbeidsforhold-scheduler.dolly.svc.cluster.local + testnav-yrkesskade-proxy: + cluster: dev-gcp + namespace: dolly + name: testnav-yrkesskade-proxy + url: https://testnav-yrkesskade-proxy.dolly.svc.cluster.local management: endpoints: From efbf2d101fb321e8a08bf9d1961d8f2485ea7a6d Mon Sep 17 00:00:00 2001 From: Betsy Carina Traran Date: Tue, 15 Oct 2024 10:45:14 +0200 Subject: [PATCH 11/16] Validering og div fix --- .../kriterier/BestillingKriterieMapper.tsx | 43 ++++++++++--------- .../stegVelger/steg/steg2/DollyValidation.tsx | 2 + .../fagsystem/yrkesskader/form/Form.tsx | 4 +- .../fagsystem/yrkesskader/form/validation.tsx | 20 +++++++++ .../visning/YrkesskaderVisning.tsx | 18 ++++---- .../main/js/src/utils/hooks/useYrkesskade.tsx | 7 +-- 6 files changed, 58 insertions(+), 36 deletions(-) create mode 100644 apps/dolly-frontend/src/main/js/src/components/fagsystem/yrkesskader/form/validation.tsx diff --git a/apps/dolly-frontend/src/main/js/src/components/bestilling/sammendrag/kriterier/BestillingKriterieMapper.tsx b/apps/dolly-frontend/src/main/js/src/components/bestilling/sammendrag/kriterier/BestillingKriterieMapper.tsx index 4b2b8fe5016..87fe834f1d0 100644 --- a/apps/dolly-frontend/src/main/js/src/components/bestilling/sammendrag/kriterier/BestillingKriterieMapper.tsx +++ b/apps/dolly-frontend/src/main/js/src/components/bestilling/sammendrag/kriterier/BestillingKriterieMapper.tsx @@ -1576,27 +1576,28 @@ const mapSykemelding = (bestillingData, data) => { const mapYrkesskader = (bestillingData, data) => { const yrkesskadeKriterier = bestillingData.yrkesskader - const mapYrkesskadeKriterier = () => ({ - header: 'Yrkesskader', - itemRows: yrkesskadeKriterier.map((yrkesskade, i) => [ - { - numberHeader: `Yrkesskade ${i + 1}`, - }, - // obj('Skadelidt identifikator', yrkesskade.skadelidtIdentifikator), - obj('Rolletype', yrkesskade.rolletype), //TODO: kodeverk - obj('Innmelderrolle', yrkesskade.innmelderrolle), //TODO: kodeverk - // obj('Innmelder', yrkesskade.innmelderIdentifikator), - // obj('På vegne av', yrkesskade.paaVegneAv), - obj('Klassifisering', showLabel('klassifisering', yrkesskade.klassifisering)), - obj('Referanse', yrkesskade.referanse), - obj('Ferdigstill sak', showLabel('ferdigstillSak', yrkesskade.ferdigstillSak)), - obj('Tidstype', showLabel('tidstype', yrkesskade.tidstype)), - obj('Skadetidspunkt', formatDateTime(yrkesskade.skadetidspunkt)), - obj('Antall perioder', yrkesskade.perioder?.length), - ]), - }) - - data.push(mapYrkesskadeKriterier()) + if (yrkesskadeKriterier) { + const mapYrkesskadeKriterier = () => ({ + header: 'Yrkesskader', + itemRows: yrkesskadeKriterier.map((yrkesskade, i) => [ + { + numberHeader: `Yrkesskade ${i + 1}`, + }, + // obj('Skadelidt identifikator', yrkesskade.skadelidtIdentifikator), + obj('Rolletype', yrkesskade.rolletype), //TODO: kodeverk + obj('Innmelderrolle', yrkesskade.innmelderrolle), //TODO: kodeverk + // obj('Innmelder', yrkesskade.innmelderIdentifikator), + // obj('På vegne av', yrkesskade.paaVegneAv), + obj('Klassifisering', showLabel('klassifisering', yrkesskade.klassifisering)), + obj('Referanse', yrkesskade.referanse), + obj('Ferdigstill sak', showLabel('ferdigstillSak', yrkesskade.ferdigstillSak)), + obj('Tidstype', showLabel('tidstype', yrkesskade.tidstype)), + obj('Skadetidspunkt', formatDateTime(yrkesskade.skadetidspunkt)), + obj('Antall perioder', yrkesskade.perioder?.length), + ]), + }) + data.push(mapYrkesskadeKriterier()) + } } const mapBrregstub = (bestillingData, data) => { diff --git a/apps/dolly-frontend/src/main/js/src/components/bestillingsveileder/stegVelger/steg/steg2/DollyValidation.tsx b/apps/dolly-frontend/src/main/js/src/components/bestillingsveileder/stegVelger/steg/steg2/DollyValidation.tsx index 9fad3f3d878..e719937fb4b 100644 --- a/apps/dolly-frontend/src/main/js/src/components/bestillingsveileder/stegVelger/steg/steg2/DollyValidation.tsx +++ b/apps/dolly-frontend/src/main/js/src/components/bestillingsveileder/stegVelger/steg/steg2/DollyValidation.tsx @@ -22,6 +22,7 @@ import { MiljoVelger } from '@/components/miljoVelger/MiljoVelger' import { MalForm } from '@/components/bestillingsveileder/stegVelger/steg/steg3/MalForm' import { VelgGruppe } from '@/components/bestillingsveileder/stegVelger/steg/steg3/VelgGruppe' import { SkattekortForm } from '@/components/fagsystem/skattekort/form/Form' +import { YrkesskaderForm } from '@/components/fagsystem/yrkesskader/form/Form' export const DollyValidation = Yup.object({ ...PdlfForm.validation, @@ -33,6 +34,7 @@ export const DollyValidation = Yup.object({ ...InntektsmeldingForm.validation, ...SkattekortForm.validation, ...SykdomForm.validation, + ...YrkesskaderForm.validation, ...BrregstubForm.validation, ...InstForm.validation, ...KrrstubForm.validation, diff --git a/apps/dolly-frontend/src/main/js/src/components/fagsystem/yrkesskader/form/Form.tsx b/apps/dolly-frontend/src/main/js/src/components/fagsystem/yrkesskader/form/Form.tsx index d5e2fd5976e..7d65bf05d50 100644 --- a/apps/dolly-frontend/src/main/js/src/components/fagsystem/yrkesskader/form/Form.tsx +++ b/apps/dolly-frontend/src/main/js/src/components/fagsystem/yrkesskader/form/Form.tsx @@ -16,6 +16,7 @@ import { FormDatepicker } from '@/components/ui/form/inputs/datepicker/Datepicke import { FormTextInput } from '@/components/ui/form/inputs/textInput/TextInput' import { OrgnrToggle } from '@/components/fagsystem/inntektsmelding/form/partials/orgnrToogle' import StyledAlert from '@/components/ui/alert/StyledAlert' +import { validation } from '@/components/fagsystem/yrkesskader/form/validation' export const yrkesskaderAttributt = 'yrkesskader' @@ -136,6 +137,7 @@ export const YrkesskaderForm = () => { // kodeverk={null} // onChange={(value) => handleChangeInnmelderrolle(value, path)} size="large" + isClearable={false} /> {/*innmelderIdentifikator: '',*/} @@ -234,4 +236,4 @@ export const YrkesskaderForm = () => { ) } -YrkesskaderForm.validation = {} +YrkesskaderForm.validation = validation diff --git a/apps/dolly-frontend/src/main/js/src/components/fagsystem/yrkesskader/form/validation.tsx b/apps/dolly-frontend/src/main/js/src/components/fagsystem/yrkesskader/form/validation.tsx new file mode 100644 index 00000000000..d2a0f005a52 --- /dev/null +++ b/apps/dolly-frontend/src/main/js/src/components/fagsystem/yrkesskader/form/validation.tsx @@ -0,0 +1,20 @@ +import { ifPresent, requiredString } from '@/utils/YupValidations' +import * as Yup from 'yup' + +export const validation = { + yrkesskader: ifPresent( + '$yrkesskader', + Yup.array().of( + Yup.object({ + rolletype: Yup.string().nullable(), + innmelderrolle: requiredString, + klassifisering: Yup.string().nullable(), + referanse: Yup.string().nullable(), + ferdigstillSak: Yup.string().nullable(), + tidstype: Yup.string().nullable(), + // skadetidspunkt: null, + // perioder: null, + }), + ), + ), +} diff --git a/apps/dolly-frontend/src/main/js/src/components/fagsystem/yrkesskader/visning/YrkesskaderVisning.tsx b/apps/dolly-frontend/src/main/js/src/components/fagsystem/yrkesskader/visning/YrkesskaderVisning.tsx index 60443bd9ebd..e0977ffe363 100644 --- a/apps/dolly-frontend/src/main/js/src/components/fagsystem/yrkesskader/visning/YrkesskaderVisning.tsx +++ b/apps/dolly-frontend/src/main/js/src/components/fagsystem/yrkesskader/visning/YrkesskaderVisning.tsx @@ -64,14 +64,16 @@ export const YrkesskaderVisning = ({ data, loading }) => { title="Skadetidspunkt" value={formatDateTime(yrkesskade?.data?.skadetidspunkt)} /> - - {(periode, periodeIdx) => ( - - - - - )} - + {yrkesskade?.data?.perioder?.length > 0 && ( + + {(periode, periodeIdx) => ( + + + + + )} + + )} ) }} diff --git a/apps/dolly-frontend/src/main/js/src/utils/hooks/useYrkesskade.tsx b/apps/dolly-frontend/src/main/js/src/utils/hooks/useYrkesskade.tsx index 0ce42cd0db1..117c1094d92 100644 --- a/apps/dolly-frontend/src/main/js/src/utils/hooks/useYrkesskade.tsx +++ b/apps/dolly-frontend/src/main/js/src/utils/hooks/useYrkesskade.tsx @@ -5,12 +5,7 @@ const baseUrl = '/testnav-yrkesskade-proxy' const getKodeverkUrl = (kodeverktype) => `${baseUrl}/api/v1/kodeverk/${kodeverktype}` export const useYrkesskadeKodeverk = (kodeverktype) => { - const { data, isLoading, error } = useSWR( - getKodeverkUrl(kodeverktype), - fetcher, - // [getKodeverkUrl(kodeverktype)], - // (url) => fetcher(url), - ) + const { data, isLoading, error } = useSWR(getKodeverkUrl(kodeverktype), fetcher) console.log('data: ', data) //TODO - SLETT MEG return { From 24d3b4bdc21089b0adf94ed6b217875992c193c8 Mon Sep 17 00:00:00 2001 From: Betsy Carina Traran Date: Tue, 15 Oct 2024 15:54:21 +0200 Subject: [PATCH 12/16] Fix hent kodeverk + vis kodeverkdata --- .../web/DollyFrontendApplicationStarter.java | 1 + .../no/nav/dolly/web/config/Consumers.java | 1 + .../kriterier/BestillingKriterieMapper.tsx | 7 +- .../fagsystem/yrkesskader/form/Form.tsx | 88 +++++-------------- .../visning/YrkesskaderVisning.tsx | 30 +++++-- .../main/js/src/utils/hooks/useYrkesskade.tsx | 3 +- .../src/main/resources/application-local.yml | 4 +- 7 files changed, 52 insertions(+), 82 deletions(-) diff --git a/apps/dolly-frontend/src/main/java/no/nav/dolly/web/DollyFrontendApplicationStarter.java b/apps/dolly-frontend/src/main/java/no/nav/dolly/web/DollyFrontendApplicationStarter.java index 0a48ab5f5eb..82c5cb21190 100644 --- a/apps/dolly-frontend/src/main/java/no/nav/dolly/web/DollyFrontendApplicationStarter.java +++ b/apps/dolly-frontend/src/main/java/no/nav/dolly/web/DollyFrontendApplicationStarter.java @@ -85,6 +85,7 @@ public RouteLocator customRouteLocator(RouteLocatorBuilder builder) { .route(createRoute(consumers.getTestnavSkattekortService())) .route(createRoute(consumers.getTestnavLevendeArbeidsforholdAnsettelse(), "testnav-levende-arbeidsforhold-ansettelse")) .route(createRoute(consumers.getTestnavLevendeArbeidsforholdScheduler(), "testnav-levende-arbeidsforhold-scheduler")) + .route(createRoute(consumers.getTestnavYrkesskadeProxy())) .build(); } diff --git a/apps/dolly-frontend/src/main/java/no/nav/dolly/web/config/Consumers.java b/apps/dolly-frontend/src/main/java/no/nav/dolly/web/config/Consumers.java index 8a8efa1a7f4..bdd38964ada 100644 --- a/apps/dolly-frontend/src/main/java/no/nav/dolly/web/config/Consumers.java +++ b/apps/dolly-frontend/src/main/java/no/nav/dolly/web/config/Consumers.java @@ -65,5 +65,6 @@ public class Consumers { private ServerProperties testnavSkattekortService; private ServerProperties testnavLevendeArbeidsforholdAnsettelse; private ServerProperties testnavLevendeArbeidsforholdScheduler; + private ServerProperties testnavYrkesskadeProxy; } diff --git a/apps/dolly-frontend/src/main/js/src/components/bestilling/sammendrag/kriterier/BestillingKriterieMapper.tsx b/apps/dolly-frontend/src/main/js/src/components/bestilling/sammendrag/kriterier/BestillingKriterieMapper.tsx index 87fe834f1d0..97fb34a7bf1 100644 --- a/apps/dolly-frontend/src/main/js/src/components/bestilling/sammendrag/kriterier/BestillingKriterieMapper.tsx +++ b/apps/dolly-frontend/src/main/js/src/components/bestilling/sammendrag/kriterier/BestillingKriterieMapper.tsx @@ -1583,11 +1583,8 @@ const mapYrkesskader = (bestillingData, data) => { { numberHeader: `Yrkesskade ${i + 1}`, }, - // obj('Skadelidt identifikator', yrkesskade.skadelidtIdentifikator), - obj('Rolletype', yrkesskade.rolletype), //TODO: kodeverk - obj('Innmelderrolle', yrkesskade.innmelderrolle), //TODO: kodeverk - // obj('Innmelder', yrkesskade.innmelderIdentifikator), - // obj('På vegne av', yrkesskade.paaVegneAv), + obj('Rolletype', codeToNorskLabel(yrkesskade.rolletype)), + obj('Innmelderrolle', codeToNorskLabel(yrkesskade.innmelderrolle)), obj('Klassifisering', showLabel('klassifisering', yrkesskade.klassifisering)), obj('Referanse', yrkesskade.referanse), obj('Ferdigstill sak', showLabel('ferdigstillSak', yrkesskade.ferdigstillSak)), diff --git a/apps/dolly-frontend/src/main/js/src/components/fagsystem/yrkesskader/form/Form.tsx b/apps/dolly-frontend/src/main/js/src/components/fagsystem/yrkesskader/form/Form.tsx index 7d65bf05d50..581cc8c2d95 100644 --- a/apps/dolly-frontend/src/main/js/src/components/fagsystem/yrkesskader/form/Form.tsx +++ b/apps/dolly-frontend/src/main/js/src/components/fagsystem/yrkesskader/form/Form.tsx @@ -9,27 +9,19 @@ import { } from '@/components/fagsystem/yrkesskader/initialValues' import { FormSelect } from '@/components/ui/form/inputs/select/Select' import { FormDollyFieldArray } from '@/components/ui/form/fieldArray/DollyFieldArray' -import { PdlEksisterendePerson } from '@/components/fagsystem/pdlf/form/partials/pdlPerson/PdlEksisterendePerson' import { SelectOptionsManager as Options } from '@/service/SelectOptions' import { FormDateTimepicker } from '@/components/ui/form/inputs/timepicker/Timepicker' import { FormDatepicker } from '@/components/ui/form/inputs/datepicker/Datepicker' import { FormTextInput } from '@/components/ui/form/inputs/textInput/TextInput' -import { OrgnrToggle } from '@/components/fagsystem/inntektsmelding/form/partials/orgnrToogle' import StyledAlert from '@/components/ui/alert/StyledAlert' import { validation } from '@/components/fagsystem/yrkesskader/form/validation' +import { useYrkesskadeKodeverk } from '@/utils/hooks/useYrkesskade' export const yrkesskaderAttributt = 'yrkesskader' export const YrkesskaderForm = () => { const formMethods = useFormContext() - // const handleChangeInnmelderrolle = (value, path) => { - // formMethods.setValue(`${path}.innmelderrolle`, value?.value) - // formMethods.setValue(`${path}.innmelderIdentifikator`, null) - // formMethods.setValue(`${path}.paaVegneAv`, null) - // formMethods.trigger(path) - // } - const handleChangeTidstype = (value, path) => { formMethods.setValue(`${path}.tidstype`, value?.value) formMethods.setValue(`${path}.skadetidspunkt`, null) @@ -53,6 +45,23 @@ export const YrkesskaderForm = () => { ) } + const { kodeverkData: kodeverkRolletype } = useYrkesskadeKodeverk('ROLLETYPE') + const { kodeverkData: kodeverkInnmelderrolletype } = useYrkesskadeKodeverk('INNMELDERROLLETYPE') + + const rolletypeOptions = + kodeverkRolletype && + Object.values(kodeverkRolletype)?.map((option) => ({ + value: option?.kode, + label: option?.verdi, + })) + + const innmelderrolletypeOptions = + kodeverkInnmelderrolletype && + Object.values(kodeverkInnmelderrolletype)?.map((option) => ({ + value: option?.kode, + label: option?.verdi, + })) + const hjelpetekst = ( <>

@@ -96,88 +105,35 @@ export const YrkesskaderForm = () => { header={'Yrkesskade'} newEntry={initialYrkesskade} canBeEmpty={false} - // maxEntries={1} - //TODO: Bare 1 yrkesskade per person??? > {(path: string, idx: number) => { return ( - {/*skadelidtIdentifikator: '', // Blir satt av BE*/} - - {/*rolletype: '',*/} - - {/*innmelderrolle: '',*/} handleChangeInnmelderrolle(value, path)} + options={innmelderrolletypeOptions} size="large" isClearable={false} /> - - {/*innmelderIdentifikator: '',*/} - {/*{formMethods.watch(`${path}.innmelderrolle`) === 'vergeOgForesatt' && (*/} - {/* */} - {/*)}*/} - - {/*paaVegneAv: '',*/} - {/*{formMethods.watch(`${path}.innmelderrolle`) === 'virksomhetsrepresentant' && (*/} - {/* */} - {/*)}*/} - - {/*klassifisering: '',*/} - - {/*referanse: '',*/} - - {/*ferdigstillSak: '',*/} - - {/*tidstype: '',*/} { size="medium" onChange={(value) => handleChangeTidstype(value, path)} /> - - {/*skadetidspunkt: null,*/} {formMethods.watch(`${path}.tidstype`) === 'tidspunkt' && ( { // onChange={} /> )} - - {/*perioder: [initialYrkesskadePeriode],*/} {formMethods.watch(`${path}.tidstype`) === 'periode' && ( { return !yrkesskadeData || yrkesskadeData?.length < 1 } +const showKodeverkLabel = (kodeverkData, value) => { + if (!kodeverkData) { + return value + } + if (!value) { + return null + } + return kodeverkData[value]?.verdi +} + export const YrkesskaderVisning = ({ data, loading }) => { if (loading) { return @@ -22,8 +32,9 @@ export const YrkesskaderVisning = ({ data, loading }) => { const manglerFagsystemData = sjekkManglerYrkesskadeData(data) - const { kodeverkData, loading: yrkesskadeLoading, error } = useYrkesskadeKodeverk('ROLLETYPE') - console.log('kodeverkData: ', kodeverkData) //TODO - SLETT MEG + const { kodeverkData: kodeverkDataRolletype } = useYrkesskadeKodeverk('ROLLETYPE') + const { kodeverkData: kodeverkDataInnmelderrolletype } = + useYrkesskadeKodeverk('INNMELDERROLLETYPE') return (

@@ -38,10 +49,17 @@ export const YrkesskaderVisning = ({ data, loading }) => { {(yrkesskade, idx) => { return ( - - {/*//TODO: kodeverk*/} - - {/*//TODO: kodeverk*/} + + `${baseUrl}/api/v1/kodeverk/${kodeverkt export const useYrkesskadeKodeverk = (kodeverktype) => { const { data, isLoading, error } = useSWR(getKodeverkUrl(kodeverktype), fetcher) - console.log('data: ', data) //TODO - SLETT MEG return { - kodeverkData: data, + kodeverkData: data?.kodeverk, loading: isLoading, error: error, } diff --git a/apps/dolly-frontend/src/main/resources/application-local.yml b/apps/dolly-frontend/src/main/resources/application-local.yml index f60d5b79093..2ce7060a052 100644 --- a/apps/dolly-frontend/src/main/resources/application-local.yml +++ b/apps/dolly-frontend/src/main/resources/application-local.yml @@ -81,4 +81,6 @@ consumers: testnav-levende-arbeidsforhold-ansettelse: url: https://testnav-levende-arbeidsforhold-ansettelse.intern.dev.nav.no testnav-levende-arbeidsforhold-scheduler: - url: https://testnav-levende-arbeidsforhold-scheduler.intern.dev.nav.no \ No newline at end of file + url: https://testnav-levende-arbeidsforhold-scheduler.intern.dev.nav.no + testnav-yrkesskade-proxy: + url: https://testnav-yrkesskade-proxy.intern.dev.nav.no \ No newline at end of file From ad2702b1bef1b5a8ffe22a2217b08342a1735fdf Mon Sep 17 00:00:00 2001 From: Betsy Carina Traran Date: Tue, 15 Oct 2024 17:32:52 +0200 Subject: [PATCH 13/16] Validation ferdig + fix changehandling --- .../fagsystem/yrkesskader/form/Form.tsx | 8 ++++++-- .../fagsystem/yrkesskader/form/validation.tsx | 15 +++++++++++++-- .../fagsystem/yrkesskader/initialValues.tsx | 3 --- 3 files changed, 19 insertions(+), 7 deletions(-) diff --git a/apps/dolly-frontend/src/main/js/src/components/fagsystem/yrkesskader/form/Form.tsx b/apps/dolly-frontend/src/main/js/src/components/fagsystem/yrkesskader/form/Form.tsx index 581cc8c2d95..d684505a673 100644 --- a/apps/dolly-frontend/src/main/js/src/components/fagsystem/yrkesskader/form/Form.tsx +++ b/apps/dolly-frontend/src/main/js/src/components/fagsystem/yrkesskader/form/Form.tsx @@ -23,9 +23,13 @@ export const YrkesskaderForm = () => { const formMethods = useFormContext() const handleChangeTidstype = (value, path) => { - formMethods.setValue(`${path}.tidstype`, value?.value) + formMethods.setValue(`${path}.tidstype`, value?.value || null) formMethods.setValue(`${path}.skadetidspunkt`, null) - formMethods.setValue(`${path}.perioder`, [initialYrkesskadePeriode]) + if (value?.value === 'periode') { + formMethods.setValue(`${path}.perioder`, [initialYrkesskadePeriode]) + } else { + formMethods.setValue(`${path}.perioder`, null) + } formMethods.trigger(path) } diff --git a/apps/dolly-frontend/src/main/js/src/components/fagsystem/yrkesskader/form/validation.tsx b/apps/dolly-frontend/src/main/js/src/components/fagsystem/yrkesskader/form/validation.tsx index d2a0f005a52..346f9196c40 100644 --- a/apps/dolly-frontend/src/main/js/src/components/fagsystem/yrkesskader/form/validation.tsx +++ b/apps/dolly-frontend/src/main/js/src/components/fagsystem/yrkesskader/form/validation.tsx @@ -12,8 +12,19 @@ export const validation = { referanse: Yup.string().nullable(), ferdigstillSak: Yup.string().nullable(), tidstype: Yup.string().nullable(), - // skadetidspunkt: null, - // perioder: null, + skadetidspunkt: Yup.mixed().when('tidstype', { + is: (tidstype: string) => tidstype === 'tidspunkt', + then: () => requiredString, + otherwise: () => Yup.mixed().notRequired(), + }), + perioder: Yup.array() + .of( + Yup.object({ + fra: ifPresent('$fra', requiredString), + til: ifPresent('$til', requiredString), + }), + ) + .nullable(), }), ), ), diff --git a/apps/dolly-frontend/src/main/js/src/components/fagsystem/yrkesskader/initialValues.tsx b/apps/dolly-frontend/src/main/js/src/components/fagsystem/yrkesskader/initialValues.tsx index f4f818ef2b4..78bb217364c 100644 --- a/apps/dolly-frontend/src/main/js/src/components/fagsystem/yrkesskader/initialValues.tsx +++ b/apps/dolly-frontend/src/main/js/src/components/fagsystem/yrkesskader/initialValues.tsx @@ -4,12 +4,9 @@ export const initialYrkesskadePeriode = { } export const initialYrkesskade = { - // skadelidtIdentifikator: '', rolletype: 'arbeidstaker', - // innmelderIdentifikator: null, innmelderrolle: 'virksomhetsrepresentant', klassifisering: 'MANUELL', - // paaVegneAv: null, tidstype: null, skadetidspunkt: null, perioder: null, From 49f61618be1eb58f28aeb91f6ff03bc7ec40c893 Mon Sep 17 00:00:00 2001 From: Betsy Carina Traran Date: Wed, 16 Oct 2024 12:09:49 +0200 Subject: [PATCH 14/16] Sjekk vergemaal og forelder paa eksisterende person --- .../fagsystem/yrkesskader/form/Form.tsx | 51 ++++++++++++------- 1 file changed, 34 insertions(+), 17 deletions(-) diff --git a/apps/dolly-frontend/src/main/js/src/components/fagsystem/yrkesskader/form/Form.tsx b/apps/dolly-frontend/src/main/js/src/components/fagsystem/yrkesskader/form/Form.tsx index d684505a673..f161fc2e45f 100644 --- a/apps/dolly-frontend/src/main/js/src/components/fagsystem/yrkesskader/form/Form.tsx +++ b/apps/dolly-frontend/src/main/js/src/components/fagsystem/yrkesskader/form/Form.tsx @@ -1,5 +1,5 @@ import { useFormContext } from 'react-hook-form' -import React from 'react' +import React, { useContext } from 'react' import { Vis } from '@/components/bestillingsveileder/VisAttributt' import Panel from '@/components/ui/panel/Panel' import { erForsteEllerTest, panelError } from '@/components/ui/form/formUtils' @@ -16,11 +16,13 @@ import { FormTextInput } from '@/components/ui/form/inputs/textInput/TextInput' import StyledAlert from '@/components/ui/alert/StyledAlert' import { validation } from '@/components/fagsystem/yrkesskader/form/validation' import { useYrkesskadeKodeverk } from '@/utils/hooks/useYrkesskade' +import { BestillingsveilederContext } from '@/components/bestillingsveileder/BestillingsveilederContext' export const yrkesskaderAttributt = 'yrkesskader' export const YrkesskaderForm = () => { const formMethods = useFormContext() + const opts = useContext(BestillingsveilederContext) const handleChangeTidstype = (value, path) => { formMethods.setValue(`${path}.tidstype`, value?.value || null) @@ -33,15 +35,40 @@ export const YrkesskaderForm = () => { formMethods.trigger(path) } - const manglerVergeEllerForelder = () => { - // TODO: Sjekk personFoerLeggTil og importPersoner (og ander??) - const vergemaal = formMethods.watch('pdldata.person.vergemaal') - const forelder = formMethods + const getVergemaal = () => { + const vergemaalForm = formMethods.watch('pdldata.person.vergemaal') + const vergemaalImport = opts?.importPersoner?.flatMap( + (person) => person?.data?.hentPerson?.vergemaalEllerFremtidsfullmakt, + ) + const vergemaalLeggTil = + opts?.personFoerLeggTil?.pdl?.hentPerson?.vergemaalEllerFremtidsfullmakt || + opts?.personFoerLeggTil?.pdlforvalter?.person?.vergemaal + + return vergemaalForm || vergemaalImport || vergemaalLeggTil + } + + const getForelder = () => { + const forelderForm = formMethods .watch('pdldata.person.forelderBarnRelasjon') ?.filter((relasjon) => relasjon?.relatertPersonsRolle === 'FORELDER') + const forelderImport = opts?.importPersoner + ?.flatMap((person) => person?.data?.hentPerson?.forelderBarnRelasjon) + ?.filter((relasjon) => relasjon?.minRolleForPerson === 'BARN') + const forelderLeggTil = ( + opts?.personFoerLeggTil?.pdl?.hentPerson?.forelderBarnRelasjon || + opts?.personFoerLeggTil?.pdlforvalter?.person?.forelderBarnRelasjon + )?.filter((relasjon) => relasjon?.minRolleForPerson === 'BARN') + + return forelderForm || forelderImport || forelderLeggTil + } + + const manglerVergeEllerForelder = () => { + const vergemaal = getVergemaal() + const forelder = getForelder() const harInnmelderrolleVergeOgForesatt = formMethods .watch('yrkesskader') ?.some((yrkesskade) => yrkesskade?.innmelderrolle === 'vergeOgForesatt') + return ( harInnmelderrolleVergeOgForesatt && (!vergemaal || vergemaal?.length < 1) && @@ -165,18 +192,8 @@ export const YrkesskaderForm = () => { {(periodePath: string, periodeIdx: number) => { return ( - - + + ) }} From dd3be6463ea88c09da5ba60b869c47497bb52323 Mon Sep 17 00:00:00 2001 From: Betsy Carina Traran Date: Wed, 16 Oct 2024 14:29:37 +0200 Subject: [PATCH 15/16] Lagt til nye soekekriterier --- .../src/main/js/src/service/SelectOptions.tsx | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/apps/dolly-frontend/src/main/js/src/service/SelectOptions.tsx b/apps/dolly-frontend/src/main/js/src/service/SelectOptions.tsx index 31c34d01879..4c03d911f02 100644 --- a/apps/dolly-frontend/src/main/js/src/service/SelectOptions.tsx +++ b/apps/dolly-frontend/src/main/js/src/service/SelectOptions.tsx @@ -843,15 +843,19 @@ const selectOptions = { { value: 'SIGRUN_PENSJONSGIVENDE', label: 'Sigrun pensjonsgivende inntekt' }, { value: 'INNTK', label: 'A-ordningen (Inntektstub)' }, { value: 'INNTKMELD', label: 'Inntektsmelding (fra Altinn)' }, + { value: 'SKATTEKORT', label: 'Skattekort (SOKOS)' }, { value: 'ARBEIDSPLASSENCV', label: 'Arbeidsplassen (CV)' }, { value: 'PEN_INNTEKT', label: 'Pensjonsgivende inntekt (POPP)' }, { value: 'PEN_TP', label: 'Tjenestepensjon (TP)' }, { value: 'PEN_AP', label: 'Alderspensjon' }, { value: 'PEN_UT', label: 'Uføretrygd' }, + { value: 'PEN_AFP_OFFENTLIG', label: 'AFP offentlig' }, + { value: 'PEN_PENSJONSAVTALE', label: 'Pensjonsavtale' }, { value: 'ARENA_AAP', label: 'Arena AAP-vedtak' }, { value: 'ARENA_AAP115', label: 'Arena 11.5-vedtak' }, { value: 'ARENA_DAGP', label: 'Arena dagpengevedtak' }, { value: 'SYKEMELDING', label: 'Sykemelding' }, + { value: 'YRKESSKADE', label: 'Yrkesskade' }, { value: 'BRREGSTUB', label: 'Brønnøysundregistrene' }, { value: 'INST', label: 'Institusjonsopphold' }, { value: 'KRRSTUB', label: 'Kontakt- og reservasjonsregisteret' }, @@ -863,9 +867,6 @@ const selectOptions = { { value: 'BANKKONTO', label: 'Bankkonto' }, { value: 'BANKKONTO_NORGE', label: 'Norsk bankkonto' }, { value: 'BANKKONTO_UTLAND', label: 'Utenlandsk bankkonto' }, - // TODO: Legg inn skattekort - // TODO: Legg inn yrkesskade - // TODO: Legg inn flere register??? ], } From 38cb1fd20571960fbfbda14d5cbd7e4fdb03b416 Mon Sep 17 00:00:00 2001 From: Betsy Carina Traran Date: Wed, 16 Oct 2024 19:25:42 +0200 Subject: [PATCH 16/16] Opprydning + types --- .../yrkesskader/YrkesskaderTypes.tsx | 21 +++++++++++++++ .../fagsystem/yrkesskader/form/Form.tsx | 27 ++++++++++--------- .../visning/YrkesskaderVisning.tsx | 20 ++++++++++---- 3 files changed, 50 insertions(+), 18 deletions(-) create mode 100644 apps/dolly-frontend/src/main/js/src/components/fagsystem/yrkesskader/YrkesskaderTypes.tsx diff --git a/apps/dolly-frontend/src/main/js/src/components/fagsystem/yrkesskader/YrkesskaderTypes.tsx b/apps/dolly-frontend/src/main/js/src/components/fagsystem/yrkesskader/YrkesskaderTypes.tsx new file mode 100644 index 00000000000..cf12854661a --- /dev/null +++ b/apps/dolly-frontend/src/main/js/src/components/fagsystem/yrkesskader/YrkesskaderTypes.tsx @@ -0,0 +1,21 @@ +export type YrkesskadePeriodeTypes = { + fra: string + til: string +} + +export type YrkesskadeTypes = { + rolletype: string + innmelderrolle: string + innmelderIdentifikator: string + paaVegneAv: string + klassifisering?: string + tidstype?: string + skadetidspunkt?: string + perioder: Array + referanse?: string + ferdigstillSak?: string +} + +export type YrkesskaderTypes = { + yrkesskader: Array +} diff --git a/apps/dolly-frontend/src/main/js/src/components/fagsystem/yrkesskader/form/Form.tsx b/apps/dolly-frontend/src/main/js/src/components/fagsystem/yrkesskader/form/Form.tsx index f161fc2e45f..9bf93216568 100644 --- a/apps/dolly-frontend/src/main/js/src/components/fagsystem/yrkesskader/form/Form.tsx +++ b/apps/dolly-frontend/src/main/js/src/components/fagsystem/yrkesskader/form/Form.tsx @@ -17,14 +17,15 @@ import StyledAlert from '@/components/ui/alert/StyledAlert' import { validation } from '@/components/fagsystem/yrkesskader/form/validation' import { useYrkesskadeKodeverk } from '@/utils/hooks/useYrkesskade' import { BestillingsveilederContext } from '@/components/bestillingsveileder/BestillingsveilederContext' +import { YrkesskadeTypes } from '@/components/fagsystem/yrkesskader/YrkesskaderTypes' export const yrkesskaderAttributt = 'yrkesskader' export const YrkesskaderForm = () => { const formMethods = useFormContext() - const opts = useContext(BestillingsveilederContext) + const opts: any = useContext(BestillingsveilederContext) - const handleChangeTidstype = (value, path) => { + const handleChangeTidstype = (value: any, path: string) => { formMethods.setValue(`${path}.tidstype`, value?.value || null) formMethods.setValue(`${path}.skadetidspunkt`, null) if (value?.value === 'periode') { @@ -38,7 +39,7 @@ export const YrkesskaderForm = () => { const getVergemaal = () => { const vergemaalForm = formMethods.watch('pdldata.person.vergemaal') const vergemaalImport = opts?.importPersoner?.flatMap( - (person) => person?.data?.hentPerson?.vergemaalEllerFremtidsfullmakt, + (person: any) => person?.data?.hentPerson?.vergemaalEllerFremtidsfullmakt, ) const vergemaalLeggTil = opts?.personFoerLeggTil?.pdl?.hentPerson?.vergemaalEllerFremtidsfullmakt || @@ -50,14 +51,14 @@ export const YrkesskaderForm = () => { const getForelder = () => { const forelderForm = formMethods .watch('pdldata.person.forelderBarnRelasjon') - ?.filter((relasjon) => relasjon?.relatertPersonsRolle === 'FORELDER') + ?.filter((relasjon: any) => relasjon?.relatertPersonsRolle === 'FORELDER') const forelderImport = opts?.importPersoner - ?.flatMap((person) => person?.data?.hentPerson?.forelderBarnRelasjon) - ?.filter((relasjon) => relasjon?.minRolleForPerson === 'BARN') + ?.flatMap((person: any) => person?.data?.hentPerson?.forelderBarnRelasjon) + ?.filter((relasjon: any) => relasjon?.minRolleForPerson === 'BARN') const forelderLeggTil = ( opts?.personFoerLeggTil?.pdl?.hentPerson?.forelderBarnRelasjon || opts?.personFoerLeggTil?.pdlforvalter?.person?.forelderBarnRelasjon - )?.filter((relasjon) => relasjon?.minRolleForPerson === 'BARN') + )?.filter((relasjon: any) => relasjon?.minRolleForPerson === 'BARN') return forelderForm || forelderImport || forelderLeggTil } @@ -67,7 +68,7 @@ export const YrkesskaderForm = () => { const forelder = getForelder() const harInnmelderrolleVergeOgForesatt = formMethods .watch('yrkesskader') - ?.some((yrkesskade) => yrkesskade?.innmelderrolle === 'vergeOgForesatt') + ?.some((yrkesskade: YrkesskadeTypes) => yrkesskade?.innmelderrolle === 'vergeOgForesatt') return ( harInnmelderrolleVergeOgForesatt && @@ -81,14 +82,14 @@ export const YrkesskaderForm = () => { const rolletypeOptions = kodeverkRolletype && - Object.values(kodeverkRolletype)?.map((option) => ({ + Object.values(kodeverkRolletype)?.map((option: any) => ({ value: option?.kode, label: option?.verdi, })) const innmelderrolletypeOptions = kodeverkInnmelderrolletype && - Object.values(kodeverkInnmelderrolletype)?.map((option) => ({ + Object.values(kodeverkInnmelderrolletype)?.map((option: any) => ({ value: option?.kode, label: option?.verdi, })) @@ -120,8 +121,10 @@ export const YrkesskaderForm = () => { <> @@ -170,15 +173,13 @@ export const YrkesskaderForm = () => { label="Tidstype" options={Options('tidstype')} size="medium" - onChange={(value) => handleChangeTidstype(value, path)} + onChange={(value: any) => handleChangeTidstype(value, path)} /> {formMethods.watch(`${path}.tidstype`) === 'tidspunkt' && ( )} {formMethods.watch(`${path}.tidstype`) === 'periode' && ( diff --git a/apps/dolly-frontend/src/main/js/src/components/fagsystem/yrkesskader/visning/YrkesskaderVisning.tsx b/apps/dolly-frontend/src/main/js/src/components/fagsystem/yrkesskader/visning/YrkesskaderVisning.tsx index c7d26986bea..c127eccdf20 100644 --- a/apps/dolly-frontend/src/main/js/src/components/fagsystem/yrkesskader/visning/YrkesskaderVisning.tsx +++ b/apps/dolly-frontend/src/main/js/src/components/fagsystem/yrkesskader/visning/YrkesskaderVisning.tsx @@ -6,12 +6,22 @@ import { DollyFieldArray } from '@/components/ui/form/fieldArray/DollyFieldArray import { TitleValue } from '@/components/ui/titleValue/TitleValue' import { formatDateTime, showLabel, formatDate } from '@/utils/DataFormatter' import { useYrkesskadeKodeverk } from '@/utils/hooks/useYrkesskade' +import { + YrkesskadePeriodeTypes, + YrkesskaderTypes, + YrkesskadeTypes, +} from '@/components/fagsystem/yrkesskader/YrkesskaderTypes' -export const sjekkManglerYrkesskadeData = (yrkesskadeData) => { +type YrkesskaderVisningProps = { + data: YrkesskaderTypes + loading: boolean +} + +export const sjekkManglerYrkesskadeData = (yrkesskadeData: any) => { return !yrkesskadeData || yrkesskadeData?.length < 1 } -const showKodeverkLabel = (kodeverkData, value) => { +const showKodeverkLabel = (kodeverkData: any, value: string) => { if (!kodeverkData) { return value } @@ -21,7 +31,7 @@ const showKodeverkLabel = (kodeverkData, value) => { return kodeverkData[value]?.verdi } -export const YrkesskaderVisning = ({ data, loading }) => { +export const YrkesskaderVisning = ({ data, loading }: YrkesskaderVisningProps) => { if (loading) { return } @@ -46,7 +56,7 @@ export const YrkesskaderVisning = ({ data, loading }) => { ) : (
- {(yrkesskade, idx) => { + {(yrkesskade: { data: YrkesskadeTypes }, idx: number) => { return ( { /> {yrkesskade?.data?.perioder?.length > 0 && ( - {(periode, periodeIdx) => ( + {(periode: YrkesskadePeriodeTypes, periodeIdx: number) => (