Skip to content

Commit 828b2be

Browse files
committed
debugger med
1 parent e552cd7 commit 828b2be

File tree

2 files changed

+3
-288
lines changed

2 files changed

+3
-288
lines changed
Original file line numberDiff line numberDiff line change
@@ -1,249 +1,11 @@
11
import React, { FunctionComponent, useContext, useState } from 'react';
2-
import { useNavigate, generatePath } from 'react-router-dom';
3-
import { Alert, RadioGroup, BodyShort, Heading, Label, ErrorMessage, TextField } from '@navikt/ds-react';
42

53
import './OpprettAvtaleArbeidsgiver.less';
64
import BEMHelper from '@/utils/bem';
7-
import Banner from '@/komponenter/Banner/Banner';
8-
import Dokumenttittel from '@/komponenter/Dokumenttittel';
9-
import EksternLenke from '@/komponenter/navigation/EksternLenke';
10-
import Innholdsboks from '@/komponenter/Innholdsboks/Innholdsboks';
11-
import LagreKnapp from '@/komponenter/LagreKnapp/LagreKnapp';
12-
import RadioPanel from '@/komponenter/radiopanel/RadioPanel';
13-
import TilbakeTilOversiktLenke from '@/AvtaleSide/TilbakeTilOversiktLenke/TilbakeTilOversiktLenke';
14-
import VerticalSpacer from '@/komponenter/layout/VerticalSpacer';
15-
import amplitude from '@/utils/amplitude';
16-
import useValidering from '@/komponenter/useValidering';
17-
import { Avtalerolle } from '@/OpprettAvtale/OpprettAvtaleVeileder/OpprettAvtaleVeileder';
18-
import { Feilkode, Feilmeldinger } from '@/types/feilkode';
19-
import { InnloggetBrukerContext } from '@/InnloggingBoundary/InnloggingBoundary';
20-
import { Path, basename } from '@/Router';
21-
import { TiltaksType } from '@/types/avtale';
22-
import { opprettAvtaleSomArbeidsgiver, opprettMentorAvtale } from '@/services/rest-service';
23-
import { setFnrBrukerOnChange, validatorer, validerFnr } from '@/utils/fnrUtils';
24-
import { storForbokstav } from '@/utils/stringUtils';
25-
import { tiltakstypeTekst } from '@/messages';
26-
import { useFeatureToggles } from '@/FeatureToggleProvider';
27-
import { validerOrgnr } from '@/utils/orgnrUtils';
28-
295
const cls = BEMHelper('opprett-avtale-arbeidsgiver');
306

317
const OpprettAvtaleArbeidsgiver: FunctionComponent = () => {
32-
const [deltakerFnr, setDeltakerFnr] = useState('');
33-
const [mentorFnr, setMentorFnr] = useState('');
34-
const [uyldigAvtaletype, setUyldigAvtaletype] = useState(false);
35-
const [valgtTiltaksType, setTiltaksType] = useState<TiltaksType | undefined>(undefined);
36-
const innloggetBruker = useContext(InnloggetBrukerContext);
37-
const navigate = useNavigate();
38-
const { arbeidstreningReadonly, vtaoTiltakToggle } = useFeatureToggles();
39-
40-
const [deltakerFnrFeil, setDeltakerFnrFeil, validerDeltakerFnr] = useValidering(
41-
deltakerFnr,
42-
validatorer('Deltaker', mentorFnr),
43-
);
44-
const [mentorFnrFeil, setMentorFnrFeil, validerMentorFnr] = useValidering(
45-
mentorFnr,
46-
validatorer('Mentor', deltakerFnr),
47-
);
48-
49-
const setFeilmelding = (melding: Feilkode) => {
50-
if (melding === 'SOMMERJOBB_FOR_GAMMEL') {
51-
setDeltakerFnrFeil(Feilmeldinger.SOMMERJOBB_FOR_GAMMEL);
52-
}
53-
};
54-
55-
const opprettAvtaleKlikk = async () => {
56-
let valgtAvtaleType = false;
57-
let feilDeltakerFNR = '';
58-
let feilBedriftNr = '';
59-
let feilMentorFNR = '';
60-
61-
if (!valgtTiltaksType) {
62-
valgtAvtaleType = true;
63-
}
64-
if (!validerFnr(deltakerFnr)) {
65-
feilDeltakerFNR = Feilmeldinger.UGYLDIG_FØDSELSNUMMER;
66-
}
67-
if (!validerOrgnr(valgtBedriftNr)) {
68-
feilBedriftNr = Feilmeldinger.UGYLDIG_VIRKSOMHETSNUMMER;
69-
}
70-
if (!validerMentorFnr()) {
71-
feilMentorFNR = Feilmeldinger.UGYLDIG_FØDSELSNUMMER;
72-
}
73-
74-
if (feilBedriftNr.length === 0 && feilDeltakerFNR.length === 0 && valgtTiltaksType) {
75-
if (valgtTiltaksType === 'MENTOR') {
76-
if (deltakerFnr !== mentorFnr && feilMentorFNR.length === 0) {
77-
const mentorAvtale = await opprettMentorAvtale(
78-
deltakerFnr,
79-
mentorFnr,
80-
valgtBedriftNr,
81-
valgtTiltaksType,
82-
Avtalerolle.ARBEIDSGIVER,
83-
);
84-
amplitude.logEvent('#tiltak-avtale-opprettet', { tiltakstype: valgtTiltaksType });
85-
navigate(generatePath(Path.AVTALE_STEG, { avtaleId: mentorAvtale.id, steg: 'kontaktinformasjon' }));
86-
return;
87-
}
88-
return;
89-
}
90-
const avtale = await opprettAvtaleSomArbeidsgiver(deltakerFnr, valgtBedriftNr, valgtTiltaksType);
91-
amplitude.logEvent('#tiltak-avtale-opprettet-arbeidsgiver', { tiltakstype: valgtTiltaksType });
92-
navigate({
93-
pathname: generatePath(Path.AVTALE_STEG, { avtaleId: avtale.id, steg: 'kontaktinformasjon' }),
94-
search: window.location.search,
95-
});
96-
return;
97-
}
98-
setUyldigAvtaletype(valgtAvtaleType);
99-
setDeltakerFnrFeil(feilDeltakerFNR);
100-
};
101-
102-
const valgtBedriftNr = new URLSearchParams(window.location.search).get('bedrift')!;
103-
const valgtBedriftNavn = innloggetBruker.altinnOrganisasjoner.find(
104-
(org) => org.OrganizationNumber === valgtBedriftNr,
105-
)?.Name;
106-
return (
107-
<>
108-
<Dokumenttittel tittel="Opprett avtale" />
109-
<Banner tekst="Opprett avtale" />
110-
<div className={cls.className}>
111-
{arbeidstreningReadonly && (
112-
<>
113-
<Alert variant={'warning'}>
114-
Migrering fra Arena pågår. Avtale om arbeidstrening kan ikke opprettes mens migrering pågår.
115-
Forsøk igjen om et par timer.
116-
</Alert>
117-
<VerticalSpacer rem={1} />
118-
</>
119-
)}
120-
<Innholdsboks>
121-
<Heading level="2" size="medium">
122-
Før du oppretter en avtale
123-
</Heading>
124-
<BodyShort size="small">
125-
Er det første gang du skal opprette en avtale bør du lese gjennom {''}
126-
<EksternLenke href={`${basename}${Path.INFORMASJONSSIDE}`}>
127-
introduksjon til hvordan løsningen fungerer {''}
128-
</EksternLenke>
129-
og vite om{' '}
130-
<EksternLenke
131-
onClick={() => amplitude.logEvent('#tiltak-arbeidsgiver-alle-tiltak-link-apnet')}
132-
href="https://www.nav.no/arbeidsgiver/inkludere"
133-
>
134-
de ulike støtteordningene.
135-
</EksternLenke>
136-
</BodyShort>
137-
</Innholdsboks>
138-
<Innholdsboks className={cls.element('innholdsboks')}>
139-
<Heading level="2" size="medium" className={cls.element('innholdstittel')}>
140-
Velg type avtale
141-
</Heading>
142-
<VerticalSpacer rem={1} />
143-
<BodyShort size="small">
144-
Du kan kun opprette tiltaktstyper du har tilgang til i virksomheten du har valgt.
145-
</BodyShort>
146-
<VerticalSpacer rem={1} />
147-
<div>
148-
<RadioGroup legend="" className={cls.element('tiltakstype-wrapper')}>
149-
{innloggetBruker.tilganger[valgtBedriftNr]
150-
.filter((tiltakType) => (tiltakType === 'VTAO' ? vtaoTiltakToggle : true))
151-
.map((tiltakType) => {
152-
return (
153-
<RadioPanel
154-
key={tiltakType}
155-
name="tiltakstype"
156-
value={tiltakType}
157-
checked={valgtTiltaksType === tiltakType}
158-
onChange={() => {
159-
setTiltaksType(tiltakType);
160-
setUyldigAvtaletype(false);
161-
}}
162-
disabled={arbeidstreningReadonly && tiltakType === 'ARBEIDSTRENING'}
163-
>
164-
{storForbokstav(tiltakstypeTekst[tiltakType])}
165-
</RadioPanel>
166-
);
167-
})}
168-
</RadioGroup>
169-
</div>
170-
{uyldigAvtaletype && <ErrorMessage>{Feilmeldinger.UGYLDIG_AVTALETYPE}</ErrorMessage>}
171-
</Innholdsboks>
172-
<Innholdsboks className={cls.element('innholdsboks')}>
173-
<Heading level="2" size="medium" className={cls.element('innholdstittel')}>
174-
Hvem skal inngå i avtalen
175-
</Heading>
176-
<VerticalSpacer rem={1} />
177-
<Alert variant="info">
178-
I feltet “Opprettes på bedrift” er det viktig at virksomhetsnummeret er det samme som der det
179-
blir registrert inntekt for deltaker i A-meldingen.
180-
</Alert>
181-
<VerticalSpacer rem={1} />
182-
<TextField
183-
className="typo-element"
184-
label="Deltakers fødselsnummer"
185-
value={deltakerFnr}
186-
width={'L'}
187-
onChange={(event) => setFnrBrukerOnChange(event, setDeltakerFnr, setDeltakerFnrFeil)}
188-
onBlur={validerDeltakerFnr}
189-
error={deltakerFnrFeil}
190-
/>
191-
<VerticalSpacer rem={1} />
192-
<TextField
193-
className="typo-element"
194-
width={'L'}
195-
label="Opprettes på bedrift"
196-
description="Virksomhetsnummeret må være det samme som der det blir registrert inntekt for deltaker i A-meldingen."
197-
value={`${valgtBedriftNavn} (${valgtBedriftNr})`}
198-
readOnly={true}
199-
/>
200-
<VerticalSpacer rem={1} />
201-
{valgtTiltaksType === 'MENTOR' && (
202-
<>
203-
<TextField
204-
className="typo-element"
205-
label="Mentors fødselsnummer"
206-
value={mentorFnr}
207-
width={'M'}
208-
onChange={(event) => setFnrBrukerOnChange(event, setMentorFnr, setMentorFnrFeil)}
209-
onBlur={validerMentorFnr}
210-
error={mentorFnrFeil}
211-
/>
212-
<BodyShort size="small">
213-
Du kan kun opprette tiltaktstyper du har tilgang til i virksomheten du har valgt.
214-
</BodyShort>
215-
{uyldigAvtaletype && <ErrorMessage>{Feilmeldinger.UGYLDIG_AVTALETYPE}</ErrorMessage>}
216-
</>
217-
)}
218-
</Innholdsboks>
219-
220-
<Alert variant="info">
221-
<Label>Dette skjer etter at du har opprettet avtalen</Label>
222-
<BodyShort size="small">
223-
<ul>
224-
<li>Du kan begynne å fylle ut avtalen.</li>
225-
<li>
226-
Avtalen blir tilgjengelig for veilederne på NAV kontoret til deltakeren. Når avtalen har
227-
blitt fordelt til en veileder vil du se kontaktinformasjonen til denne veilederen inne i
228-
avtalen.
229-
</li>
230-
</ul>
231-
</BodyShort>
232-
</Alert>
233-
234-
<div className={cls.element('knappRad')}>
235-
<LagreKnapp
236-
lagre={opprettAvtaleKlikk}
237-
setFeilmelding={setFeilmelding}
238-
className="opprett-avtale__knapp"
239-
>
240-
Opprett avtale
241-
</LagreKnapp>
242-
<TilbakeTilOversiktLenke />
243-
</div>
244-
</div>
245-
</>
246-
);
8+
return <>opprett som Arbeidsgiver</>;
2479
};
24810

24911
export default OpprettAvtaleArbeidsgiver;

src/Router/Router.tsx

+2-49
Original file line numberDiff line numberDiff line change
@@ -58,25 +58,11 @@ const router = createBrowserRouter(
5858
},
5959
{
6060
path: Path.OVERSIKT,
61-
element: (
62-
<FeilVarselProvider>
63-
<InnloggingBoundary>
64-
<FeatureToggleProvider>
65-
<RedirectEtterLogin>
66-
<AlleredeOpprettetAvtaleProvider>
67-
<NotifikasjonWidgetProvider>
68-
<Outlet />
69-
</NotifikasjonWidgetProvider>
70-
</AlleredeOpprettetAvtaleProvider>
71-
</RedirectEtterLogin>
72-
</FeatureToggleProvider>
73-
</InnloggingBoundary>
74-
</FeilVarselProvider>
75-
),
61+
element: <Outlet />,
7662
children: [
7763
{
7864
path: Path.OVERSIKT,
79-
element: <Oversikt />,
65+
element: <h1>Oversikt</h1>,
8066
},
8167
{
8268
path: Path.OPPRETT_AVTALE,
@@ -86,39 +72,6 @@ const router = createBrowserRouter(
8672
path: Path.OPPRETT_AVTALE_ARBEIDSGIVER,
8773
element: <OpprettAvtaleArbeidsgiver />,
8874
},
89-
{
90-
path: Path.AVTALE,
91-
element: (
92-
<AvtaleProvider>
93-
<AvtaleFetcher>
94-
<Outlet />
95-
</AvtaleFetcher>
96-
</AvtaleProvider>
97-
),
98-
errorElement: <AvtaleRouteError />,
99-
children: [
100-
{
101-
path: Path.AVTALE,
102-
element: <AvtaleSide />,
103-
},
104-
{
105-
path: Path.AVTALE_STEG,
106-
element: <AvtaleSide />,
107-
},
108-
{
109-
path: Path.AVTALE_BESLUTTER,
110-
element: <BeslutterSide />,
111-
},
112-
{
113-
path: Path.AVTALE_BESLUTTER_TILSKUDDSPERIODE,
114-
element: <BeslutterSide />,
115-
},
116-
{
117-
path: Path.AVTALE_SLETT,
118-
element: <Slettemerk />,
119-
},
120-
],
121-
},
12275
],
12376
},
12477
],

0 commit comments

Comments
 (0)