Zum Hauptinhalt springen

Urlaubsanträge

Urlaubsanträge sind der Kern des Abwesenheitsmanagement-Workflows. Mitarbeiter reichen Anträge auf Freistellung ein, die dann einen Genehmigungsprozess durchlaufen. Das System verfolgt den gesamten Lebenszyklus von der Einreichung bis zur Genehmigung oder Ablehnung, mit automatischen Saldoaktualisierungen bei jedem Schritt.


Einen Urlaubsantrag Einreichen

Als Mitarbeiter (Portal)

  1. Navigieren Sie zu Urlaubsanträge in der Seitenleiste.
  2. Klicken Sie auf Erstellen.
  3. Wählen Sie den Urlaubstyp.
  4. Geben Sie das Startdatum und das Enddatum ein.
  5. Geben Sie die Anzahl der Tage ein (unterstützt halbe Tage, z.B. 0,5, 1,5).
  6. Fügen Sie optional einen Grund hinzu.
  7. Klicken Sie auf Speichern.

Das Mitarbeiterfeld wird automatisch auf den angemeldeten Mitarbeiter gesetzt — es erscheint nicht im Formular.

Als Administrator

Administratoren sehen dasselbe Formular, aber mit einem zusätzlichen Mitarbeiter-Feld zur Auswahl des betreffenden Mitarbeiters. Sie können auch das Feld Admin-Notizen ausfüllen (für Mitarbeiter verborgen).

Von der Mitarbeiter-Detailansicht

Administratoren können Urlaubsanträge direkt von der Detailseite eines Mitarbeiters aus erstellen, indem sie die Aktion Urlaubsantrag Erstellen verwenden. Der Mitarbeiter ist vorausgefüllt, und ein zusätzlicher Halbtag-Schalter ist für mehr Komfort verfügbar.


Validierungsregeln

Das System wendet mehrere Validierungsregeln an, wenn ein Urlaubsantrag eingereicht oder bearbeitet wird:

Tagevalidierung

Die Anzahl der Tage muss mit dem Datumsbereich übereinstimmen:

  • Volle Tage: Tage müssen gleich end_date - start_date + 1 sein
  • Halbe Tage: Tage müssen gleich (end_date - start_date + 1) * 0.5 sein

Jeder andere Wert wird mit einer Fehlermeldung abgelehnt.

Überschneidungserkennung

Das System prüft auf überschneidende Urlaubsanträge für denselben Mitarbeiter. Ein Antrag wird blockiert, wenn sein Datumsbereich sich mit einem bestehenden genehmigten oder ausstehenden Antrag überschneidet.

Zwei Datumsbereiche überschneiden sich, wenn: start_date_1 <= end_date_2 AND start_date_2 <= end_date_1

Bei der Bearbeitung eines bestehenden Antrags schließt die Überschneidungsprüfung den aktuellen Datensatz aus.


Antragsstatus

StatusBadgeBeschreibung
AusstehendGelbWartet auf Genehmigung. Saldo ist in pending_days reserviert.
GenehmigtGrünVon einem Vorgesetzten genehmigt. Tage von pending_days nach used_days verschoben.
AbgelehntRotVon einem Vorgesetzten abgelehnt. Tage aus pending_days entfernt.
StorniertGrauVom Mitarbeiter oder Administrator storniert. Tage wiederhergestellt.

Genehmigungsworkflow

Standardablauf

Mitarbeiter reicht Antrag ein
|
Status: Ausstehend
(pending_days erhöht)
|
Vorgesetzter prüft Antrag
|
+--- Genehmigen ---> Status: Genehmigt
| (pending_days -> used_days)
| Mitarbeiter benachrichtigt
|
+--- Ablehnen -----> Status: Abgelehnt
| (pending_days entfernt)
| Ablehnungsgrund erfasst
| Mitarbeiter benachrichtigt
|
+--- (Mitarbeiter) Stornieren --> Status: Storniert
(pending_days entfernt)

Automatische Genehmigung

Für Urlaubstypen, die für automatische Genehmigung konfiguriert sind (in Einstellungen > Urlaubsverwaltung):

Mitarbeiter reicht Antrag ein
|
Observer erkennt Auto-Genehmigungs-Konfiguration
|
Status: Sofort genehmigt
(used_days erhöht)
Keine Benachrichtigung an Vorgesetzten

Einstellungen des Genehmigungsworkflows

Navigieren Sie zu Einstellungen > HRM-Konfiguration > Urlaubsverwaltung, um den Workflow zu konfigurieren:

EinstellungOptionenStandard
GenehmigungsworkflowEinzelstufe / Mehrstufig / Automatische GenehmigungEinzelstufe
Auto-Genehmigte UrlaubstypenBestimmte Urlaubstypen auswählenKeine

Einen Urlaubsantrag Genehmigen

Erfordert die Berechtigung approve leave requests.

  1. Navigieren Sie zu Urlaubsanträge oder öffnen Sie von der Dashboard-Karte für ausstehende Anträge.
  2. Wählen Sie einen oder mehrere ausstehende Anträge.
  3. Klicken Sie auf die Aktion Genehmigen.
  4. Fügen Sie optional Admin-Notizen hinzu.
  5. Bestätigen Sie.

Was passiert:

  • Status wechselt zu Genehmigt
  • approved_by wird auf den aktuellen Benutzer gesetzt
  • approved_at wird auf den aktuellen Zeitstempel gesetzt
  • Urlaubssaldo: pending_days nimmt ab, used_days nimmt zu
  • Mitarbeiter erhält eine Benachrichtigung

Einen Urlaubsantrag Ablehnen

Erfordert die Berechtigung approve leave requests.

  1. Wählen Sie einen oder mehrere ausstehende Anträge.
  2. Klicken Sie auf die Aktion Ablehnen.
  3. Geben Sie einen Ablehnungsgrund ein (erforderlich).
  4. Fügen Sie optional Admin-Notizen hinzu.
  5. Bestätigen Sie.

Was passiert:

  • Status wechselt zu Abgelehnt
  • rejection_reason wird erfasst und ist für den Mitarbeiter sichtbar
  • Urlaubssaldo: pending_days nimmt ab
  • Mitarbeiter erhält eine Benachrichtigung

Einen Urlaubsantrag Stornieren

Erfordert die Berechtigung cancel leave requests. Sowohl Mitarbeiter als auch Administratoren können Anträge stornieren.

  1. Wählen Sie einen ausstehenden oder genehmigten Antrag.
  2. Klicken Sie auf die Aktion Stornieren.
  3. Bestätigen Sie.

Was passiert:

  • Status wechselt zu Storniert
  • Wenn der Antrag ausstehend war: pending_days nimmt ab
  • Wenn der Antrag genehmigt war: used_days nimmt ab (Tage werden zurückgegeben)
info

Nur ausstehende und genehmigte Anträge können storniert werden. Abgelehnte und bereits stornierte Anträge können nicht storniert werden.


Tabellenansichten

Die Urlaubsantragsliste enthält vier vorkonfigurierte Ansichten:

AnsichtFilter
Alle UrlaubsanträgeKein Filter
Ausstehende AnträgeStatus = Ausstehend
Genehmigte AnträgeStatus = Genehmigt
Abgelehnte AnträgeStatus = Abgelehnt

Verfügbare Filter

  • Status — Ausstehend, Genehmigt, Abgelehnt, Storniert
  • Startdatum — Datumsbereich
  • Enddatum — Datumsbereich
  • Tage — Zahlenbereich

Benachrichtigungen

Das System sendet E-Mail-Benachrichtigungen an wichtigen Punkten im Lebenszyklus des Urlaubsantrags:

Wenn ein Antrag Eingereicht Wird

Eine Benachrichtigung wird an alle Benutzer gesendet, die die Berechtigung approve leave requests haben. Die E-Mail enthält:

  • Name und E-Mail des Mitarbeiters
  • Urlaubstyp, Start-/Enddaten, Gesamttage
  • Grund (falls angegeben)
  • Link zur Anzeige des Antrags

Wenn Sich der Antragsstatus Ändert

Der Mitarbeiter erhält eine Benachrichtigung, wenn sein Antrag genehmigt, abgelehnt oder storniert wird. Die E-Mail enthält:

  • Urlaubstyp, Daten und Gesamttage
  • Neuer Status
  • Ablehnungsgrund (falls abgelehnt)
  • Name des Genehmigenden
  • Link zur Anzeige des Antrags

E-Mail-Vorlagen können unter Einstellungen > E-Mail-Konten > Vorlagen angepasst werden.


Dashboard-Karten

Das Urlaubsverwaltungssystem bietet drei Dashboard-Karten:

KarteTypBeschreibung
Urlaubsanträge nach StatusKreisdiagrammVerteilung der Anträge nach Status
Urlaubsanträge nach TypBalkendiagrammAnzahl der Anträge gruppiert nach Urlaubstyp
Ausstehende UrlaubsanträgeTabelleDie 15 neuesten ausstehenden Anträge, die Aktion erfordern

Genehmigungs- und Ablehnungsworkflow

Der Urlaubsgenehmigungsworkflow steuert, wie Urlaubsanträge von der Einreichung zur Lösung gelangen. Das HRM-Modul unterstützt drei Workflow-Modi, die von der Einstellungsseite aus konfiguriert werden können.


Workflow-Modi

Konfigurieren Sie den Workflow-Modus unter Einstellungen > HRM-Konfiguration > Urlaubsverwaltung.

Einzelstufe (Standard)

Der einfachste Workflow. Ein autorisierter Benutzer prüft und genehmigt oder lehnt den Antrag ab.

Mitarbeiter -> Einreichen -> Vorgesetzter/HR Genehmigt oder Lehnt ab -> Fertig

Jeder Benutzer mit der Berechtigung approve leave requests kann Anträge genehmigen oder ablehnen.

Mehrstufig

Anträge durchlaufen mehrere Genehmigungsstufen. Dies eignet sich für Organisationen, die sowohl die Genehmigung des direkten Vorgesetzten als auch der HR-Abteilung erfordern.

Mitarbeiter -> Einreichen -> Vorgesetzter Genehmigt -> HR Genehmigt -> Fertig

Automatische Genehmigung

Alle Urlaubsanträge werden bei der Einreichung automatisch genehmigt. Keine menschliche Überprüfung erforderlich.

Mitarbeiter -> Einreichen -> Automatisch Genehmigt -> Fertig

tipp

Sie können Workflow-Modi mit der Einstellung Auto-Genehmigte Urlaubstypen kombinieren, um bestimmte Typen (z.B. Homeoffice) automatisch zu genehmigen, während für andere (z.B. Jahresurlaub) eine Genehmigung erforderlich ist.


Automatische Genehmigung für Bestimmte Urlaubstypen

Anstatt alle Anträge automatisch zu genehmigen, können Sie bestimmte Urlaubstypen auswählen, die die Genehmigung umgehen:

  1. Gehen Sie zu Einstellungen > HRM-Konfiguration > Urlaubsverwaltung.
  2. Wählen Sie unter Auto-Genehmigte Urlaubstypen die Typen aus (z.B. Homeoffice, Freizeitausgleich).
  3. Speichern Sie.

Wenn ein Mitarbeiter einen Antrag für einen automatisch genehmigten Urlaubstyp einreicht:

  • Der Status wird sofort auf Genehmigt gesetzt.
  • Der Urlaubssaldo wird aktualisiert (used_days wird direkt erhöht, kein pending_days-Schritt).
  • Keine Benachrichtigung wird an Vorgesetzte gesendet.
  • Der Mitarbeiter erhält keine Genehmigungsbenachrichtigung (da es sofort erfolgt).

Anträge für nicht automatisch genehmigte Urlaubstypen folgen dem Standard-Genehmigungsworkflow, unabhängig von dieser Einstellung.


Saldoaktualisierungen nach Aktion

AktionAusstehende TageVerwendete TageVerfügbare Tage
Antrag einreichen+Tagenimmt ab
Antrag genehmigen-Tage+Tageunverändert
Antrag ablehnen-Tagenimmt zu
Stornieren (war ausstehend)-Tagenimmt zu
Stornieren (war genehmigt)-Tagenimmt zu

Wer Kann Genehmigen

Genehmigungsaktionen werden durch die Berechtigung approve leave requests gesteuert. Diese Berechtigung muss einer Rolle explizit gewährt werden — sie ist nicht in der Standard-Mitarbeiterrolle enthalten.

Typische Rollen, die diese Berechtigung haben sollten:

  • HR-Manager
  • Abteilungsleiter
  • Teamleiter
  • Jede Administratorrolle

Super-Administratoren können Anträge immer genehmigen (umgangen über Gate::before).


Ablehnungsgründe

Bei der Ablehnung eines Urlaubsantrags ist ein Ablehnungsgrund erforderlich. Dieser Grund wird:

  • Im Urlaubsantragsdatensatz gespeichert
  • Dem Mitarbeiter in der Detailansicht seines Urlaubsantrags angezeigt
  • In die E-Mail-Benachrichtigung über die Statusänderung aufgenommen

Administratoren können auch Admin-Notizen während der Genehmigung oder Ablehnung hinzufügen. Admin-Notizen sind nur für andere Administratoren sichtbar, niemals für den Mitarbeiter.


Einen Urlaubsantrag Stornieren

Mitarbeiter und Administratoren können Urlaubsanträge stornieren, die den Status Ausstehend oder Genehmigt haben. Die Stornierung stellt die verbrauchten oder reservierten Urlaubstage im Saldo des Mitarbeiters wieder her.


Wer Kann Stornieren

Die Stornierung erfordert die Berechtigung cancel leave requests. Standardmäßig haben Mitarbeiter diese Berechtigung und können ihre eigenen Anträge stornieren.

BenutzerKann Eigene StornierenKann Andere Stornieren
MitarbeiterJa (mit Berechtigung)Nein (Datenbeschränkung verhindert Einsicht anderer)
AdministratorJaJa (wenn Berechtigung vorhanden)
Super AdminJaJa (umgeht alle Prüfungen)

Wie Man Storniert

  1. Navigieren Sie zu Urlaubsanträge.
  2. Finden Sie den zu stornierenden Antrag (muss Ausstehend oder Genehmigt sein).
  3. Klicken Sie auf die Aktion Urlaub Stornieren (inline in der Aktionsspalte angezeigt).
  4. Bestätigen Sie die Stornierung.

Was Bei der Stornierung Passiert

Stornierung eines Ausstehenden Antrags

Vorher: pending_days = 5, used_days = 10, available_days = 3 Stornierung eines 2-tägigen ausstehenden Antrags Nachher: pending_days = 3, used_days = 10, available_days = 5

  • pending_days nimmt um die Tage des Antrags ab
  • available_days erhöht sich entsprechend
  • Der Antragsstatus wechselt zu Storniert

Stornierung eines Genehmigten Antrags

Vorher: pending_days = 3, used_days = 12, available_days = 3 Stornierung eines 2-tägigen genehmigten Antrags Nachher: pending_days = 3, used_days = 10, available_days = 5

  • used_days nimmt um die Tage des Antrags ab
  • available_days erhöht sich entsprechend
  • Der Antragsstatus wechselt zu Storniert

Einschränkungen

  • Abgelehnte Anträge können nicht storniert werden (sie sind bereits abgeschlossen).
  • Bereits stornierte Anträge können nicht erneut storniert werden.
  • Die Stornieren-Schaltfläche erscheint nur für Anträge im Status Ausstehend oder Genehmigt.

Überschneidungsvalidierung

Das HRM-Modul verhindert, dass Mitarbeiter Urlaubsanträge einreichen, die sich mit ihren bestehenden genehmigten oder ausstehenden Anträgen überschneiden. Dies gewährleistet eine genaue Urlaubsverfolgung und verhindert Doppelbuchungen von Freizeit.


Wie Es Funktioniert

Wenn ein Urlaubsantrag erstellt oder aktualisiert wird, prüft das System auf überschneidende Datumsbereiche:

  1. Fragt alle Urlaubsanträge für denselben Mitarbeiter ab.
  2. Filtert nur auf genehmigte und ausstehende Anträge (abgelehnte und stornierte werden ignoriert).
  3. Schließt bei der Bearbeitung den aktuellen Antrag von der Prüfung aus.
  4. Testet auf Überschneidung mit der Formel: existing_start <= new_end AND new_start <= existing_end.

Wenn eine Überschneidung gefunden wird, wird der Antrag mit einem Validierungsfehler abgelehnt.


Beispiele

Blockiert (Überschneidung)

Bestehender AntragNeuer AntragErgebnis
10.–12. Jan (Genehmigt)11.–14. JanBlockiert — Überschneidung am 11.–12. Jan
15.–15. Jan (Ausstehend)15.–15. JanBlockiert — exakt gleiches Datum
1.–31. Jan (Genehmigt)10.–10. JanBlockiert — innerhalb des bestehenden Bereichs

Erlaubt (Keine Überschneidung)

Bestehender AntragNeuer AntragErgebnis
10.–12. Jan (Genehmigt)13.–15. JanErlaubt — benachbart aber ohne Überschneidung
10.–12. Jan (Abgelehnt)10.–12. JanErlaubt — abgelehnte Anträge werden ignoriert
10.–12. Jan (Storniert)10.–12. JanErlaubt — stornierte Anträge werden ignoriert

Typübergreifende Überschneidung

Die Überschneidungsvalidierung gilt für alle Urlaubstypen. Ein Mitarbeiter kann keine überschneidenden Jahresurlaub- und Krankheitsurlaub-Anträge haben — die Daten dürfen nicht in Konflikt stehen, unabhängig vom Urlaubstyp.


Urlaubsübertrag

Der Urlaubsübertrag ermöglicht es, nicht genutzte Urlaubstage eines Geschäftsjahres auf das nächste zu übertragen. Diese Funktion ist sowohl auf globaler Ebene (Einstellungen) als auch auf der Ebene des einzelnen Urlaubstyps konfigurierbar.


Wie der Übertrag Funktioniert

Am Ende jedes Geschäftsjahres verarbeitet das System den Übertrag für alle Mitarbeiter:

  1. Für den Urlaubssaldo jedes Mitarbeiters des endenden Jahres:
    • Prüft, ob der Urlaubstyp Übertrag aktiviert hat.
    • Berechnet ungenutzte Tage: total_days - used_days - pending_days.
    • Wendet die Übertragsobergrenze an (der kleinere Wert aus den Max. Übertragstagen des Urlaubstyps und der globalen Einstellung Max. Übertragstage).
    • Erstellt oder aktualisiert den Urlaubssaldo des nächsten Jahres mit den Übertragenen Tagen.
  2. Übertragene Tage haben ein Ablaufdatum basierend auf der Einstellung Übertragsablauf.

Konfiguration

Globale Einstellungen

Navigieren Sie zu Einstellungen > HRM-Konfiguration > Urlaubsverwaltung:

EinstellungStandardBeschreibung
Übertrag AktiviertJaHauptschalter für die Übertragsfunktion
Max. Übertragstage10Globale Obergrenze für übertragene Tage über alle Urlaubstypen
Übertragsablauf (Monate)3Übertragene Tage verfallen nach dieser Anzahl Monaten im neuen Geschäftsjahr

Einstellungen pro Urlaubstyp

Jeder Urlaubstyp hat seine eigene Übertragskonfiguration:

FeldBeschreibung
ÜbertragÜbertrag für diesen spezifischen Urlaubstyp aktivieren/deaktivieren
Max. ÜbertragstageMaximale Tage, die für diesen Typ übertragen werden können

Die effektive Übertragsobergrenze ist der kleinere Wert aus der Urlaubstyp-Grenze und der globalen Grenze.

Beispiel: Der Urlaubstyp erlaubt 10 Tage Übertrag, aber das globale Maximum ist 5. Nur 5 Tage werden übertragen.


Übertragsverarbeitung

Der Übertrag wird automatisch über einen geplanten Befehl verarbeitet, der am ersten Tag des Geschäftsjahres-Startmonats ausgeführt wird:

php artisan hrm:process-leave-carryover

Übertragsablauf

Übertragene Tage sind nicht permanent — sie verfallen nach einem konfigurierbaren Zeitraum. Nach dem Ablauf werden sie nicht mehr im verfügbaren Saldo gezählt.