Skip to content

Commit 6b0065c

Browse files
committed
debugger med
1 parent 828b2be commit 6b0065c

File tree

1 file changed

+147
-1
lines changed

1 file changed

+147
-1
lines changed

src/OpprettAvtale/OpprettAvtaleVeileder/OpprettAvtaleVeileder.tsx

+147-1
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,153 @@ export enum Avtalerolle {
4242
}
4343

4444
const OpprettAvtaleVeileder: FunctionComponent = () => {
45-
return <div className={cls.className}>Opprett Avtale som Veileder</div>;
45+
const [deltakerFnr, setDeltakerFnr] = useState<string>('');
46+
const [mentorFnr, setMentorFnr] = useState<string>('');
47+
const [ugyldigAvtaletype, setUgyldigAvtaletype] = useState<boolean>(false);
48+
const [bedriftNr, setBedriftNr] = useState<string>('');
49+
const [bedriftNavn, setBedriftNavn] = useState<string>('');
50+
const [valgtTiltaksType, setTiltaksType] = useState<TiltaksType | undefined>();
51+
const [modalIsOpen, setModalIsOpen] = useState<boolean>(false);
52+
const { alleredeRegistrertAvtale, setAlleredeRegistrertAvtale } = useContext(AlleredeOpprettetAvtaleContext);
53+
const { arbeidstreningReadonly } = useFeatureToggles();
54+
const visVarsel = useContext(FeilVarselContext);
55+
56+
const navigate = useNavigate();
57+
58+
const [deltakerFnrFeil, setDeltakerFnrFeil, validerDeltakerFnr] = useValidering(
59+
deltakerFnr,
60+
validatorer('Deltaker', mentorFnr),
61+
);
62+
const [mentorFnrFeil, setMentorFnrFeil, validerMentorFnr] = useValidering(
63+
mentorFnr,
64+
validatorer('Mentor', deltakerFnr),
65+
);
66+
67+
const [bedriftNrFeil, setBedriftNrFeil, validerBedriftNr] = useValidering(bedriftNr, [
68+
(verdi) => {
69+
if (!verdi) return 'Virksomhetsnummer er påkrevd';
70+
},
71+
(verdi) => {
72+
if (!validerOrgnr(verdi)) return 'Ugyldig virksomhetsnummer';
73+
},
74+
]);
75+
76+
const orgnrOnChange = (event: ChangeEvent<HTMLInputElement>): void => {
77+
const verdi = event.target.value.replace(/\D/g, '');
78+
if (/^\d{0,9}$/.test(verdi)) {
79+
setBedriftNr(verdi);
80+
setBedriftNrFeil(undefined);
81+
setBedriftNavn('');
82+
}
83+
};
84+
85+
const orgnrOnBlur = (): void => {
86+
if (validerBedriftNr()) {
87+
hentBedriftBrreg(bedriftNr)
88+
.then((response) => {
89+
setBedriftNavn(response.bedriftNavn);
90+
setBedriftNrFeil(undefined);
91+
})
92+
.catch((error) => {
93+
setBedriftNavn('');
94+
handterFeil(error, (feilmelding) => setBedriftNrFeil(feilmelding));
95+
})
96+
.catch((error: Error) => {
97+
setBedriftNrFeil('Det oppstod en uventet feil');
98+
console.error(
99+
`Det oppstod en uventet feil ved henting av virksomhetsnummer ${
100+
bedriftNr ? bedriftNr : ''
101+
} med feilmelding: `,
102+
error,
103+
);
104+
});
105+
} else {
106+
setBedriftNavn('');
107+
}
108+
};
109+
110+
const setFeilmelding = (melding: Feilkode) => {
111+
if (melding === 'SOMMERJOBB_FOR_GAMMEL') {
112+
setDeltakerFnrFeil(Feilmeldinger.SOMMERJOBB_FOR_GAMMEL);
113+
}
114+
};
115+
116+
const opprettAvtaleKlikk = async () => {
117+
let valgtAvtaleType = false;
118+
let feilDeltakerFNR = '';
119+
let feilBedriftNr = '';
120+
let feilMentorFNR = '';
121+
122+
if (!valgtTiltaksType) {
123+
valgtAvtaleType = true;
124+
}
125+
if (!validerFnr(deltakerFnr)) {
126+
feilDeltakerFNR = Feilmeldinger.UGYLDIG_FØDSELSNUMMER;
127+
}
128+
if (!validerOrgnr(bedriftNr)) {
129+
feilBedriftNr = Feilmeldinger.UGYLDIG_VIRKSOMHETSNUMMER;
130+
}
131+
if (!validerMentorFnr()) {
132+
feilMentorFNR = Feilmeldinger.UGYLDIG_FØDSELSNUMMER;
133+
}
134+
if (feilBedriftNr.length === 0 && feilDeltakerFNR.length === 0 && valgtTiltaksType) {
135+
if (valgtTiltaksType === 'MENTOR') {
136+
if (deltakerFnr !== mentorFnr && feilMentorFNR.length === 0) {
137+
const mentorAvtale = await opprettMentorAvtale(
138+
deltakerFnr,
139+
mentorFnr,
140+
bedriftNr,
141+
valgtTiltaksType,
142+
Avtalerolle.VEILEDER,
143+
);
144+
amplitude.logEvent('#tiltak-avtale-opprettet', { tiltakstype: valgtTiltaksType });
145+
navigate(generatePath(Path.AVTALE_STEG, { avtaleId: mentorAvtale.id, steg: 'kontaktinformasjon' }));
146+
return;
147+
}
148+
return;
149+
}
150+
const avtale = await opprettAvtaleSomVeileder(deltakerFnr, bedriftNr, valgtTiltaksType);
151+
amplitude.logEvent('#tiltak-avtale-opprettet', { tiltakstype: valgtTiltaksType });
152+
navigate(generatePath(Path.AVTALE_STEG, { avtaleId: avtale.id, steg: 'kontaktinformasjon' }));
153+
return;
154+
}
155+
156+
setUgyldigAvtaletype(valgtAvtaleType);
157+
setBedriftNrFeil(feilBedriftNr);
158+
setDeltakerFnrFeil(feilDeltakerFNR);
159+
};
160+
161+
const sjekkOmAvtaleErOpprettet = async () => {
162+
if (deltakerFnr.length === 11 && bedriftNr.length === 9 && valgtTiltaksType) {
163+
try {
164+
const listeAvtalerDeltakerAlleredeRegistrert: AlleredeRegistrertAvtale[] | [] =
165+
await sjekkOmDeltakerAlleredeErRegistrertPaaTiltak(deltakerFnr, valgtTiltaksType, null, null, null);
166+
if (listeAvtalerDeltakerAlleredeRegistrert.length > 0) {
167+
setAlleredeRegistrertAvtale({
168+
...alleredeRegistrertAvtale,
169+
avtaler: listeAvtalerDeltakerAlleredeRegistrert,
170+
deltaker: deltakerFnr,
171+
});
172+
}
173+
} catch (error) {
174+
console.error(error);
175+
}
176+
}
177+
};
178+
179+
useEffect(() => {
180+
sjekkOmAvtaleErOpprettet();
181+
// eslint-disable-next-line
182+
}, [valgtTiltaksType, deltakerFnr, bedriftNr]);
183+
184+
return (
185+
<div className={cls.className}>
186+
<Dokumenttittel tittel="Opprett avtale" />
187+
<Heading size="large" className={cls.element('innholdstittel')}>
188+
Opprett avtale
189+
</Heading>
190+
</div>
191+
);
46192
};
47193

48194
export default OpprettAvtaleVeileder;

0 commit comments

Comments
 (0)