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+Tage—nimmt ab
Antrag genehmigen-Tage+Tageunverändert
Antrag ablehnen-Tage—nimmt zu
Stornieren (war ausstehend)-Tage—nimmt 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.