Skip to content
This repository has been archived by the owner on May 15, 2024. It is now read-only.

Commit

Permalink
Merge pull request #347 from navikt/vise-endring-i-situasjon-i-regist…
Browse files Browse the repository at this point in the history
…rering-panel

Vise endring i situasjon i registrering-panel
  • Loading branch information
JulieHillRoa authored Sep 18, 2023
2 parents 839f04f + 8ad848f commit 31b3737
Show file tree
Hide file tree
Showing 7 changed files with 268 additions and 7 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
import { Sporsmal } from '../../../../rest/datatyper/registreringsData';
import { EndringIRegistreringsdata } from '../../../../rest/datatyper/EndringIRegistreringdata';

export const permittertTekster: { [key: string]: string } = {
TILBAKE_TIL_JOBB: 'Jeg skal tilbake i jobb hos min nåværende arbeidsgiver',
OPPSIGELSE: 'Jeg har blitt sagt opp av arbeidsgiver',
ENDRET_PERMITTERINGSPROSENT: ' Arbeidsgiver har endret permitteringen min',
NY_JOBB: 'Jeg skal begynne å jobbe hos en annen arbeidsgiver',
MIDLERTIDIG_JOBB: 'Jeg har fått midlertidig jobb hos en annen arbeidsgiver',
KONKURS: 'Arbeidsgiveren min er konkurs',
SAGT_OPP: 'Jeg har sagt opp jobben min',
ANNET: 'Ingen av situasjonene passer for meg'
};

export const mapEndretSvarFraRegistrering = (
sporsmal: Sporsmal,
endringerIRegistreringsData: EndringIRegistreringsdata | undefined
) => {
if (!endringerIRegistreringsData || !endringerIRegistreringsData.erBesvarelsenEndret) {
return sporsmal;
}

if (sporsmal.sporsmalId === 'dinSituasjon' && !!endringerIRegistreringsData.besvarelse?.dinSituasjon?.endretAv) {
return {
...sporsmal,
svar: endringerIRegistreringsData.besvarelse?.dinSituasjon.verdi
? permittertTekster[endringerIRegistreringsData.besvarelse?.dinSituasjon.verdi]
: '',
endretAv: endringerIRegistreringsData.besvarelse?.dinSituasjon.endretAv,
endretDato: endringerIRegistreringsData.besvarelse?.dinSituasjon.endretTidspunkt
} as Sporsmal;
}

return sporsmal;
};
Original file line number Diff line number Diff line change
Expand Up @@ -7,16 +7,21 @@ import { JobbetSammenhengende } from './jobbetsammenhengende';
import PersonverninformasjonUtskrift from './personverninformasjon-utskrift';
import { ForeslattProfilering } from './foreslatt-profilering';
import Show from '../../../felles/show';
import { fetchRegistrering } from '../../../../rest/api';
import { fetchEnringIRegistreringsdata, fetchRegistrering } from '../../../../rest/api';
import { Feilmelding, Laster, NoData } from '../../../felles/fetch';
import { RegistreringsData } from '../../../../rest/datatyper/registreringsData';
import { isNotStartedOrPending, isRejected, usePromise } from '../../../../utils/use-promise';
import { EndringIRegistreringsdata } from '../../../../rest/datatyper/EndringIRegistreringdata';

const RegistreringPanelInnhold = (): React.ReactElement => {
const { fnr } = useAppStore();

const registrering = usePromise<AxiosResponse<RegistreringsData>>(() => fetchRegistrering(fnr));

const endringIRegistreringdata = usePromise<AxiosResponse<EndringIRegistreringsdata>>(() =>
fetchEnringIRegistreringsdata(fnr)
);

if (isNotStartedOrPending(registrering)) {
return <Laster midtstilt={true} />;
} else if (isRejected(registrering)) {
Expand All @@ -26,11 +31,15 @@ const RegistreringPanelInnhold = (): React.ReactElement => {
}

const { registrering: brukerRegistrering, type } = registrering.result.data;
const endringIRegistreringdataBesvarelse = endringIRegistreringdata.result?.data;

return (
<>
<Header registrering={brukerRegistrering} />
<SporsmalsListe registrering={brukerRegistrering} />
<SporsmalsListe
registrering={brukerRegistrering}
endringerIRegistreringsData={endringIRegistreringdataBesvarelse}
/>
<JobbetSammenhengende registrering={brukerRegistrering} />
<Show if={brukerRegistrering && brukerRegistrering.manueltRegistrertAv != null}>
<PersonverninformasjonUtskrift type={type} />
Expand Down
30 changes: 25 additions & 5 deletions src/components/paneler/innhold/registrering/sporsmolvisning.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,14 @@ import { BodyShort } from '@navikt/ds-react';
import { Registrering, Sporsmal } from '../../../../rest/datatyper/registreringsData';
import FloatGrid from '../../../felles/float-grid';
import Informasjonsbolk from '../../../felles/informasjonsbolk';
import { visEmdashHvisNull } from '../../../../utils';
import { formaterDato, formateStringInUpperAndLowerCase, visEmdashHvisNull } from '../../../../utils';
import { EndringIRegistreringsdata } from '../../../../rest/datatyper/EndringIRegistreringdata';
import { mapEndretSvarFraRegistrering } from './mapEndretSvarFraRegistrering';

export function SporsmalsListe(props: { registrering?: Registrering }) {
export function SporsmalsListe(props: {
registrering?: Registrering;
endringerIRegistreringsData?: EndringIRegistreringsdata;
}) {
if (!props.registrering || !props.registrering.teksterForBesvarelse) {
return null;
}
Expand All @@ -13,15 +18,30 @@ export function SporsmalsListe(props: { registrering?: Registrering }) {

return (
<FloatGrid columns={2} gap={8}>
{sporsmaal.map(sporsmalvisning)}
{sporsmaal
.map(s => mapEndretSvarFraRegistrering(s, props.endringerIRegistreringsData))
.map(sporsmalvisning)}
</FloatGrid>
);
}

function sporsmalvisning(sporsmal: Sporsmal) {
return (
<Informasjonsbolk header={sporsmal.sporsmal} headerTypo="element" key={sporsmal.sporsmalId}>
<BodyShort className="underinformasjon">{visEmdashHvisNull(sporsmal.svar)}</BodyShort>
<Informasjonsbolk
className="underinformasjon"
header={sporsmal.sporsmal}
headerTypo="element"
key={sporsmal.sporsmalId}
>
<BodyShort>{visEmdashHvisNull(sporsmal.svar)}</BodyShort>
{sporsmal.endretDato && (
<BodyShort className="italic-gra">{`Endret: ${formaterDato(sporsmal.endretDato)}`}</BodyShort>
)}
{sporsmal.endretAv && (
<BodyShort className="italic-gra">{`Endret av: ${formateStringInUpperAndLowerCase(
sporsmal.endretAv
)}`}</BodyShort>
)}
</Informasjonsbolk>
);
}
88 changes: 88 additions & 0 deletions src/mock/api/veilarbperson.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import { AktorId } from '../../rest/datatyper/aktor-id';
import { Gradering, PersonaliaV2Info, RelasjonsBosted } from '../../rest/datatyper/personaliav2';
import { VergemaalEllerFullmaktOmfangType, VergeOgFullmaktData, Vergetype } from '../../rest/datatyper/vergeOgFullmakt';
import { TilrettelagtKommunikasjonData } from '../../rest/datatyper/tilrettelagtKommunikasjon';
import { EndringIRegistreringsdata } from '../../rest/datatyper/EndringIRegistreringdata';
import { RegistreringsData } from '../../rest/datatyper/registreringsData';

const aktorId: AktorId = {
Expand Down Expand Up @@ -572,6 +573,90 @@ const mockTilrettelagtKommunikasjon: TilrettelagtKommunikasjonData = {
tegnspraak: null
};

const mockEndringIRegistreringsData: EndringIRegistreringsdata = {
registreringsId: 10004400,
besvarelse: {
utdanning: {
verdi: 'HOYERE_UTDANNING_1_TIL_4',
gjelderFraDato: null,
gjelderTilDato: null,
endretAv: null,
endretTidspunkt: null
},
utdanningBestatt: {
verdi: 'JA',
gjelderFraDato: null,
gjelderTilDato: null,
endretAv: null,
endretTidspunkt: null
},
utdanningGodkjent: {
verdi: 'JA',
gjelderFraDato: null,
gjelderTilDato: null,
endretAv: null,
endretTidspunkt: null
},
helseHinder: {
verdi: 'NEI',
gjelderFraDato: null,
gjelderTilDato: null,
endretAv: null,
endretTidspunkt: null
},
andreForhold: {
verdi: 'NEI',
gjelderFraDato: null,
gjelderTilDato: null,
endretAv: null,
endretTidspunkt: null
},
sisteStilling: {
verdi: 'INGEN_SVAR',
gjelderFraDato: null,
gjelderTilDato: null,
endretAv: null,
endretTidspunkt: null
},
dinSituasjon: {
verdi: 'OPPSIGELSE',
tilleggsData: {
forsteArbeidsdagDato: null,
sisteArbeidsdagDato: '2023-07-31',
oppsigelseDato: '2023-07-19',
gjelderFraDato: null,
permitteringsProsent: null,
stillingsProsent: null,
permitteringForlenget: null,
harNyJobb: null
},
gjelderFraDato: null,
gjelderTilDato: null,
endretAv: 'BRUKER',
endretTidspunkt: '2023-07-18T11:24:03.136693338'
},
fremtidigSituasjon: {
verdi: null,
gjelderFraDato: null,
gjelderTilDato: null,
endretAv: null,
endretTidspunkt: null
},
tilbakeIArbeid: {
verdi: null,
gjelderFraDato: null,
gjelderTilDato: null,
endretAv: null,
endretTidspunkt: null
}
},
endretAv: 'BRUKER',
endretTidspunkt: '2023-07-18T11:24:03.158629',
registreringsTidspunkt: '2023-07-17T11:27:25.299658',
opprettetAv: 'BRUKER',
erBesvarelsenEndret: true
};

const ordinaerRegistering: RegistreringsData = {
type: 'ORDINAER',
registrering: {
Expand Down Expand Up @@ -696,5 +781,8 @@ export const veilarbpersonHandlers: RequestHandler[] = [
}),
rest.get('/veilarbperson/api/v2/person/tolk', (req, res, ctx) => {
return res(ctx.delay(500), ctx.json(mockTilrettelagtKommunikasjon));
}),
rest.post('/veilarbperson/api/person/registrering/endringer', (req, res, ctx) => {
return res(ctx.delay(500), ctx.json(mockEndringIRegistreringsData));
})
];
4 changes: 4 additions & 0 deletions src/rest/api.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,10 @@ export const fetchRegistrering = (fnr: string) => {
return axiosInstance.get(`/veilarbperson/api/person/registrering?fnr=${fnr}`);
};

export const fetchEnringIRegistreringsdata = (fnr: string) => {
return axiosInstance.post(`/veilarbperson/api/person/registrering/endringer`, { fodselsnummer: fnr });
};

export const fetchCvOgJobbonsker = (fnr: string) => {
return axiosInstance.get(`/veilarbperson/api/person/cv_jobbprofil?fnr=${fnr}`);
};
Expand Down
103 changes: 103 additions & 0 deletions src/rest/datatyper/EndringIRegistreringdata.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
interface Utdanning {
verdi: string | null;
gjelderFraDato: string | null;
gjelderTilDato: string | null;
endretAv: string | null;
endretTidspunkt: string | null;
}

interface UtdanningBestatt {
verdi: string | null;
gjelderFraDato: string | null;
gjelderTilDato: string | null;
endretAv: string | null;
endretTidspunkt: string | null;
}

interface UtdanningGodkjent {
verdi: string | null;
gjelderFraDato: string | null;
gjelderTilDato: string | null;
endretAv: string | null;
endretTidspunkt: string | null;
}

interface HelseHinder {
verdi: string | null;
gjelderFraDato: string | null;
gjelderTilDato: string | null;
endretAv: string | null;
endretTidspunkt: string | null;
}

interface AndreForhold {
verdi: string | null;
gjelderFraDato: string | null;
gjelderTilDato: string | null;
endretAv: string | null;
endretTidspunkt: string | null;
}

interface SisteStilling {
verdi: string | null;
gjelderFraDato: string | null;
gjelderTilDato: string | null;
endretAv: string | null;
endretTidspunkt: string | null;
}

interface DinSituasjonTilleggsdata {
forsteArbeidsdagDato: string | null;
sisteArbeidsdagDato: string | null;
oppsigelseDato: string | null;
gjelderFraDato: string | null;
permitteringsProsent: string | null;
stillingsProsent: string | null;
permitteringForlenget: string | null;
harNyJobb: string | null;
}
interface DinSituasjon {
verdi: string | null;
tilleggsData: DinSituasjonTilleggsdata | null;
gjelderFraDato: string | null;
gjelderTilDato: string | null;
endretAv: string | null;
endretTidspunkt: string | null;
}
interface FremtidigSituasjon {
verdi: string | null;
gjelderFraDato: string | null;
gjelderTilDato: string | null;
endretAv: string | null;
endretTidspunkt: string | null;
}

interface TilbakeIArbeid {
verdi: string | null;
gjelderFraDato: string | null;
gjelderTilDato: string | null;
endretAv: string | null;
endretTidspunkt: string | null;
}

export interface Besvarelse {
utdanning: Utdanning;
utdanningBestatt: UtdanningBestatt;
utdanningGodkjent: UtdanningGodkjent;
helseHinder: HelseHinder;
andreForhold: AndreForhold;
sisteStilling: SisteStilling;
dinSituasjon: DinSituasjon;
fremtidigSituasjon: FremtidigSituasjon;
tilbakeIArbeid: TilbakeIArbeid;
}

export interface EndringIRegistreringsdata {
registreringsId: number | null;
besvarelse: Besvarelse | null;
endretAv: string | null;
endretTidspunkt: string | null;
registreringsTidspunkt: string | null;
opprettetAv: string | null;
erBesvarelsenEndret: boolean | null;
}
2 changes: 2 additions & 0 deletions src/rest/datatyper/registreringsData.ts
Original file line number Diff line number Diff line change
Expand Up @@ -39,4 +39,6 @@ export interface Sporsmal {
sporsmalId: string;
sporsmal: string;
svar: string;
endretAv?: string;
endretDato?: string;
}

0 comments on commit 31b3737

Please sign in to comment.