Aller au contenu principal

Demandes de Congés

Les demandes de congés constituent le coeur du processus de gestion des absences. Les employés soumettent des demandes de temps libre, qui passent ensuite par un processus d'approbation. Le systeme suit le cycle de vie complet, de la soumission a l'approbation ou au rejet, avec des mises a jour automatiques du solde a chaque etape.


Soumettre une Demande de Congé

En tant qu'Employé (Portail)

  1. Accédez a Demandes de Congés depuis la barre latérale.
  2. Cliquez sur Créer.
  3. Sélectionnez le Type de Congé.
  4. Saisissez la Date de Début et la Date de Fin.
  5. Saisissez le nombre de Jours (supporte les demi-journées, ex. 0.5, 1.5).
  6. Ajoutez éventuellement un Motif.
  7. Cliquez sur Enregistrer.

Le champ Employé est automatiquement défini sur l'employé connecté — il n'apparait pas sur le formulaire.

En tant qu'Administrateur

Les administrateurs voient le meme formulaire, mais avec un champ Employé supplémentaire pour sélectionner l'employé concerné. Ils peuvent également remplir le champ Notes Administrateur (masqué pour les employés).

Depuis la Vue Détaillée de l'Employé

Les administrateurs peuvent créer des demandes de congés directement depuis la page détaillée d'un employé en utilisant l'action Créer une Demande de Congé. L'employé est pré-rempli, et un bouton Demi-Journée supplémentaire est disponible pour plus de commodité.


Regles de Validation

Le systeme applique plusieurs regles de validation lors de la soumission ou de la modification d'une demande de congé :

Validation des Jours

Le nombre de jours doit correspondre a la plage de dates :

  • Jours complets : Les jours doivent etre égaux a end_date - start_date + 1
  • Demi-journées : Les jours doivent etre égaux a (end_date - start_date + 1) * 0.5

Toute autre valeur est rejetée avec un message d'erreur.

Détection de Chevauchement

Le systeme vérifie les demandes de congés qui se chevauchent pour le meme employé. Une demande est bloquée si sa plage de dates chevauche une demande existante approuvée ou en attente.

Deux plages de dates se chevauchent si : start_date_1 <= end_date_2 AND start_date_2 <= end_date_1

Lors de la modification d'une demande existante, la vérification de chevauchement exclut l'enregistrement en cours.


Statuts des Demandes

StatutBadgeDescription
En attenteJauneEn attente d'approbation. Le solde est réservé dans pending_days.
ApprouvéVertApprouvé par un responsable. Les jours passent de pending_days a used_days.
RejetéRougeRejeté par un responsable. Les jours sont retirés de pending_days.
AnnuléGrisAnnulé par l'employé ou l'administrateur. Les jours sont restaurés.

Processus d'Approbation

Flux Standard

L'employé soumet la demande
|
Statut : En attente
(pending_days augmenté)
|
Le responsable examine la demande
|
+--- Approuver ---> Statut : Approuvé
| (pending_days -> used_days)
| Employé notifié
|
+--- Rejeter -----> Statut : Rejeté
| (pending_days supprimé)
| Motif de rejet enregistré
| Employé notifié
|
+--- (Employé) Annuler --> Statut : Annulé
(pending_days supprimé)

Flux d'Approbation Automatique

Pour les types de congés configurés pour l'approbation automatique (dans Parametres > Gestion des Congés) :

L'employé soumet la demande
|
L'observateur détecte la configuration d'approbation automatique
|
Statut : Approuvé immédiatement
(used_days augmenté)
Aucune notification envoyée au responsable

Parametres du Processus d'Approbation

Accédez a Parametres > Configuration GRH > Gestion des Congés pour configurer le processus :

ParametreOptionsPar défaut
Processus d'ApprobationNiveau Unique / Multi-Niveaux / Approbation AutomatiqueNiveau Unique
Types de Congés Auto-ApprouvésSélectionner des types de congés spécifiquesAucun

Approuver une Demande de Congé

Nécessite la permission approve leave requests.

  1. Accédez a Demandes de Congés ou ouvrez depuis la carte du tableau de bord des demandes en attente.
  2. Sélectionnez une ou plusieurs demandes en attente.
  3. Cliquez sur l'action Approuver.
  4. Ajoutez éventuellement des Notes Administrateur.
  5. Confirmez.

Ce qui se passe :

  • Le statut passe a Approuvé
  • approved_by est défini sur l'utilisateur actuel
  • approved_at est défini sur l'horodatage actuel
  • Solde de congés : pending_days diminue, used_days augmente
  • L'employé recoit une notification

Rejeter une Demande de Congé

Nécessite la permission approve leave requests.

  1. Sélectionnez une ou plusieurs demandes en attente.
  2. Cliquez sur l'action Rejeter.
  3. Saisissez un Motif de Rejet (obligatoire).
  4. Ajoutez éventuellement des Notes Administrateur.
  5. Confirmez.

Ce qui se passe :

  • Le statut passe a Rejeté
  • rejection_reason est enregistré et visible par l'employé
  • Solde de congés : pending_days diminue
  • L'employé recoit une notification

Annuler une Demande de Congé

Nécessite la permission cancel leave requests. Les employés et les administrateurs peuvent annuler les demandes.

  1. Sélectionnez une demande en attente ou approuvée.
  2. Cliquez sur l'action Annuler.
  3. Confirmez.

Ce qui se passe :

  • Le statut passe a Annulé
  • Si la demande était en attente : pending_days diminue
  • Si la demande était approuvée : used_days diminue (les jours sont restitués)
info

Seules les demandes en attente et approuvées peuvent etre annulées. Les demandes rejetées et déja annulées ne peuvent pas etre annulées.


Vues de Tableau

La liste des demandes de congés comprend quatre vues pré-configurées :

VueFiltre
Toutes les DemandesAucun filtre
Demandes en AttenteStatut = En attente
Demandes ApprouvéesStatut = Approuvé
Demandes RejetéesStatut = Rejeté

Filtres Disponibles

  • Statut — En attente, Approuvé, Rejeté, Annulé
  • Date de Début — plage de dates
  • Date de Fin — plage de dates
  • Jours — plage numérique

Notifications

Le systeme envoie des notifications par e-mail aux moments clés du cycle de vie de la demande de congé :

Lorsqu'une Demande est Soumise

Une notification est envoyée a tous les utilisateurs qui ont la permission approve leave requests. L'e-mail contient :

  • Nom et e-mail de l'employé
  • Type de congé, dates de début/fin, nombre total de jours
  • Motif (si fourni)
  • Lien pour consulter la demande

Lorsqu'un Statut de Demande Change

L'employé recoit une notification lorsque sa demande est approuvée, rejetée ou annulée. L'e-mail contient :

  • Type de congé, dates et nombre total de jours
  • Nouveau statut
  • Motif de rejet (si rejeté)
  • Nom de l'approbateur
  • Lien pour consulter la demande

Les modeles d'e-mail peuvent etre personnalisés depuis Parametres > Comptes E-mail > Modeles.


Cartes du Tableau de Bord

Le systeme de gestion des congés fournit trois cartes de tableau de bord :

CarteTypeDescription
Demandes de Congés par StatutGraphique camembertRépartition des demandes par statut
Demandes de Congés par TypeGraphique en barresNombre de demandes regroupées par type de congé
Demandes de Congés en AttenteTableauLes 15 dernieres demandes en attente nécessitant action

Processus d'Approbation et de Rejet

Le processus d'approbation des congés controle la facon dont les demandes passent de la soumission a la résolution. Le module GRH prend en charge trois modes de processus, configurables depuis la page des parametres.


Modes de Processus

Configurez le mode du processus dans Parametres > Configuration GRH > Gestion des Congés.

Niveau Unique (Par défaut)

Le processus le plus simple. Un utilisateur autorisé examine et approuve ou rejette la demande.

Employé -> Soumettre -> Responsable/RH Approuve ou Rejette -> Terminé

Tout utilisateur avec la permission approve leave requests peut approuver ou rejeter les demandes.

Multi-Niveaux

Les demandes passent par plusieurs étapes d'approbation. Adapté aux organisations qui nécessitent a la fois la validation du responsable direct et des RH.

Employé -> Soumettre -> Responsable Approuve -> RH Approuve -> Terminé

Approbation Automatique

Toutes les demandes de congés sont automatiquement approuvées lors de la soumission. Aucune revue humaine n'est nécessaire.

Employé -> Soumettre -> Approuvé Automatiquement -> Terminé

astuce

Vous pouvez combiner les modes de processus avec le parametre Types de Congés Auto-Approuvés pour approuver automatiquement certains types (ex. Télétravail) tout en exigeant l'approbation pour d'autres (ex. Congé Annuel).


Approbation Automatique pour des Types de Congés Spécifiques

Plutot que d'approuver automatiquement toutes les demandes, vous pouvez sélectionner des types de congés spécifiques qui contournent l'approbation :

  1. Allez dans Parametres > Configuration GRH > Gestion des Congés.
  2. Dans Types de Congés Auto-Approuvés, sélectionnez les types (ex. Télétravail, Congé Compensatoire).
  3. Enregistrez.

Lorsqu'un employé soumet une demande pour un type de congé auto-approuvé :

  • Le statut est immédiatement défini sur Approuvé.
  • Le solde de congés est mis a jour (used_days augmenté directement, pas d'étape pending_days).
  • Aucune notification n'est envoyée aux responsables.
  • L'employé ne recoit pas de notification d'approbation (car c'est instantané).

Les demandes pour les types de congés non auto-approuvés suivent le processus d'approbation standard, quel que soit ce parametre.


Mises a Jour du Solde par Action

ActionJours en AttenteJours UtilisésJours Disponibles
Soumettre une demande+joursdiminue
Approuver une demande-jours+joursinchangé
Rejeter une demande-joursaugmente
Annuler (était en attente)-joursaugmente
Annuler (était approuvé)-joursaugmente

Qui Peut Approuver

Les actions d'approbation sont controlées par la permission approve leave requests. Cette permission doit etre explicitement accordée a un role — elle n'est pas incluse dans le role Employé par défaut.

Roles typiques qui devraient avoir cette permission :

  • Responsable RH
  • Chef de Département
  • Chef d'Équipe
  • Tout role d'administrateur

Les super administrateurs peuvent toujours approuver les demandes (contourné via Gate::before).


Motifs de Rejet

Lors du rejet d'une demande de congé, un Motif de Rejet est obligatoire. Ce motif est :

  • Stocké sur l'enregistrement de la demande de congé
  • Visible par l'employé dans la vue détaillée de sa demande
  • Inclus dans l'e-mail de notification de changement de statut

Les administrateurs peuvent également ajouter des Notes Administrateur lors de l'approbation ou du rejet. Les notes administrateur ne sont visibles que par les autres administrateurs, jamais par l'employé.


Annuler une Demande de Congé

Les employés et les administrateurs peuvent annuler les demandes de congés qui sont en statut En attente ou Approuvé. L'annulation restaure les jours de congés consommés ou réservés dans le solde de l'employé.


Qui Peut Annuler

L'annulation nécessite la permission cancel leave requests. Par défaut, les employés ont cette permission et peuvent annuler leurs propres demandes.

UtilisateurPeut Annuler les SiennesPeut Annuler Celles des Autres
EmployéOui (avec permission)Non (la portée des données empeche de voir les autres)
AdministrateurOuiOui (s'il a la permission)
Super AdminOuiOui (contourne toutes les vérifications)

Comment Annuler

  1. Accédez a Demandes de Congés.
  2. Trouvez la demande a annuler (doit etre En attente ou Approuvé).
  3. Cliquez sur l'action Annuler le Congé (affichée en ligne dans la colonne des actions).
  4. Confirmez l'annulation.

Ce Qui Se Passe Lors de l'Annulation

Annulation d'une Demande en Attente

Avant : pending_days = 5, used_days = 10, available_days = 3 Annulation d'une demande de 2 jours en attente Apres : pending_days = 3, used_days = 10, available_days = 5

  • pending_days diminue du nombre de jours de la demande
  • available_days augmente en conséquence
  • Le statut de la demande passe a Annulé

Annulation d'une Demande Approuvée

Avant : pending_days = 3, used_days = 12, available_days = 3 Annulation d'une demande approuvée de 2 jours Apres : pending_days = 3, used_days = 10, available_days = 5

  • used_days diminue du nombre de jours de la demande
  • available_days augmente en conséquence
  • Le statut de la demande passe a Annulé

Restrictions

  • Les demandes rejetées ne peuvent pas etre annulées (elles sont déja résolues).
  • Les demandes déja annulées ne peuvent pas etre annulées a nouveau.
  • Le bouton d'action Annuler n'apparait que pour les demandes en statut En attente ou Approuvé.

Validation de Chevauchement

Le module GRH empeche les employés de soumettre des demandes de congés qui chevauchent leurs demandes approuvées ou en attente existantes. Cela garantit un suivi précis des congés et empeche la double réservation de temps libre.


Comment Ca Fonctionne

Lorsqu'une demande de congé est créée ou mise a jour, le systeme vérifie les chevauchements de plages de dates :

  1. Interroge toutes les demandes de congés du meme employé.
  2. Filtre uniquement les demandes approuvées et en attente (les rejetées et annulées sont ignorées).
  3. Lors de la modification, exclut la demande en cours de la vérification.
  4. Teste le chevauchement avec la formule : existing_start <= new_end AND new_start <= existing_end.

Si un chevauchement est trouvé, la demande est rejetée avec une erreur de validation.


Exemples

Bloqué (Chevauchement)

Demande ExistanteNouvelle DemandeRésultat
10-12 Jan (Approuvé)11-14 JanBloqué — chevauchement les 11-12 Jan
15-15 Jan (En attente)15-15 JanBloqué — meme date exacte
1-31 Jan (Approuvé)10-10 JanBloqué — contenu dans la plage existante

Autorisé (Pas de Chevauchement)

Demande ExistanteNouvelle DemandeRésultat
10-12 Jan (Approuvé)13-15 JanAutorisé — adjacent mais sans chevauchement
10-12 Jan (Rejeté)10-12 JanAutorisé — les demandes rejetées sont ignorées
10-12 Jan (Annulé)10-12 JanAutorisé — les demandes annulées sont ignorées

Chevauchement Inter-Types

La validation de chevauchement s'applique a tous les types de congés. Un employé ne peut pas avoir de demandes de Congé Annuel et de Congé Maladie qui se chevauchent — les dates ne doivent pas entrer en conflit quel que soit le type de congé.


Report de Congés

Le report de congés permet de reporter les jours de congés non utilisés d'un exercice fiscal au suivant. Cette fonctionnalité est configurable au niveau global (parametres) et au niveau de chaque type de congé.


Comment Fonctionne le Report

A la fin de chaque exercice fiscal, le systeme traite le report pour tous les employés :

  1. Pour le solde de congés de chaque employé de l'année qui se termine :
    • Vérifie si le type de congé a le Report activé.
    • Calcule les jours non utilisés : total_days - used_days - pending_days.
    • Applique le plafond de report (le moindre entre les Jours de Report Maximum du type de congé et le parametre global Jours de Report Maximum).
    • Crée ou met a jour le solde de congés de l'année suivante avec les Jours Reportés.
  2. Les jours reportés ont une expiration basée sur le parametre Expiration du Report.

Configuration

Parametres Globaux

Accédez a Parametres > Configuration GRH > Gestion des Congés :

ParametrePar défautDescription
Report ActivéOuiInterrupteur principal pour la fonctionnalité de report
Jours de Report Maximum10Plafond global des jours reportés pour tous les types de congés
Expiration du Report (mois)3Les jours reportés expirent ce nombre de mois apres le début du nouvel exercice

Parametres par Type de Congé

Chaque type de congé a sa propre configuration de report :

ChampDescription
ReportActiver/désactiver le report pour ce type de congé spécifique
Jours de Report MaximumNombre maximum de jours pouvant etre reportés pour ce type

Le plafond effectif de report est le moindre entre la limite du type de congé et la limite globale.

Exemple : Le type de congé autorise 10 jours de report, mais le maximum global est de 5. Seuls 5 jours seront reportés.


Traitement du Report

Le report est traité automatiquement via une commande planifiée qui s'exécute le premier jour du mois de début de l'exercice fiscal :

php artisan hrm:process-leave-carryover

Expiration du Report

Les jours reportés ne sont pas permanents — ils expirent apres une période configurable. Une fois expirés, ils ne sont plus comptabilisés dans le solde disponible.