diff --git a/frontend/src/pages/OnOffboardingPage.jsx b/frontend/src/pages/OnOffboardingPage.jsx index 4194411..dc292ca 100644 --- a/frontend/src/pages/OnOffboardingPage.jsx +++ b/frontend/src/pages/OnOffboardingPage.jsx @@ -416,6 +416,12 @@ const OnOffboardingPage = () => { }; const completeOn = async () => { + const relevantProcesses = onProcesses.filter(p => !editingOn?.department || p.department_name === editingOn.department); + const unchecked = relevantProcesses.filter(p => !onForm.checklist_data[`proc_${p.id}`]); + if (unchecked.length > 0) { + toast.error(`Noch ${unchecked.length} Aufgabe(n) offen — bitte zuerst alle Punkte abhaken.`); + return; + } try { await onboardingService.update(editingOn.id, { status: 'completed', checklist_data: onForm.checklist_data, notes: onForm.notes, completion_date: today() }); toast.success('Onboarding abgeschlossen!'); @@ -513,6 +519,14 @@ const OnOffboardingPage = () => { }; const completeOff = async () => { + const relevantProcesses = offProcesses.filter((p, i, arr) => + arr.findIndex(x => x.responsible_team === p.responsible_team && x.title === p.title) === i + ); + const unchecked = relevantProcesses.filter(p => !offForm.checklist_data[`proc_${p.id}`]); + if (unchecked.length > 0) { + toast.error(`Noch ${unchecked.length} Aufgabe(n) offen — bitte zuerst alle Punkte abhaken.`); + return; + } try { await offboardingService.update(editingOff.id, { status: 'completed', checklist_data: offForm.checklist_data, notes: offForm.notes, completion_date: today() }); toast.success('Offboarding abgeschlossen!');