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)
- Accédez a Demandes de Congés depuis la barre latérale.
- Cliquez sur Créer.
- Sélectionnez le Type de Congé.
- Saisissez la Date de Début et la Date de Fin.
- Saisissez le nombre de Jours (supporte les demi-journées, ex. 0.5, 1.5).
- Ajoutez éventuellement un Motif.
- 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
| Statut | Badge | Description |
|---|---|---|
| En attente | Jaune | En attente d'approbation. Le solde est réservé dans pending_days. |
| Approuvé | Vert | Approuvé par un responsable. Les jours passent de pending_days a used_days. |
| Rejeté | Rouge | Rejeté par un responsable. Les jours sont retirés de pending_days. |
| Annulé | Gris | Annulé 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 :
| Parametre | Options | Par défaut |
|---|---|---|
| Processus d'Approbation | Niveau Unique / Multi-Niveaux / Approbation Automatique | Niveau Unique |
| Types de Congés Auto-Approuvés | Sélectionner des types de congés spécifiques | Aucun |
Approuver une Demande de Congé
Nécessite la permission approve leave requests.
- Accédez a Demandes de Congés ou ouvrez depuis la carte du tableau de bord des demandes en attente.
- Sélectionnez une ou plusieurs demandes en attente.
- Cliquez sur l'action Approuver.
- Ajoutez éventuellement des Notes Administrateur.
- Confirmez.
Ce qui se passe :
- Le statut passe a Approuvé
approved_byest défini sur l'utilisateur actuelapproved_atest défini sur l'horodatage actuel- Solde de congés :
pending_daysdiminue,used_daysaugmente - L'employé recoit une notification
Rejeter une Demande de Congé
Nécessite la permission approve leave requests.
- Sélectionnez une ou plusieurs demandes en attente.
- Cliquez sur l'action Rejeter.
- Saisissez un Motif de Rejet (obligatoire).
- Ajoutez éventuellement des Notes Administrateur.
- Confirmez.
Ce qui se passe :
- Le statut passe a Rejeté
rejection_reasonest enregistré et visible par l'employé- Solde de congés :
pending_daysdiminue - 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.
- Sélectionnez une demande en attente ou approuvée.
- Cliquez sur l'action Annuler.
- Confirmez.
Ce qui se passe :
- Le statut passe a Annulé
- Si la demande était en attente :
pending_daysdiminue - Si la demande était approuvée :
used_daysdiminue (les jours sont restitués)
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 :
| Vue | Filtre |
|---|---|
| Toutes les Demandes | Aucun filtre |
| Demandes en Attente | Statut = En attente |
| Demandes Approuvées | Statut = Approuvé |
| Demandes Rejetées | Statut = 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 :
| Carte | Type | Description |
|---|---|---|
| Demandes de Congés par Statut | Graphique camembert | Répartition des demandes par statut |
| Demandes de Congés par Type | Graphique en barres | Nombre de demandes regroupées par type de congé |
| Demandes de Congés en Attente | Tableau | Les 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é
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 :
- Allez dans Parametres > Configuration GRH > Gestion des Congés.
- Dans Types de Congés Auto-Approuvés, sélectionnez les types (ex. Télétravail, Congé Compensatoire).
- 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_daysaugmenté directement, pas d'étapepending_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
| Action | Jours en Attente | Jours Utilisés | Jours Disponibles |
|---|---|---|---|
| Soumettre une demande | +jours | — | diminue |
| Approuver une demande | -jours | +jours | inchangé |
| Rejeter une demande | -jours | — | augmente |
| Annuler (était en attente) | -jours | — | augmente |
| Annuler (était approuvé) | — | -jours | augmente |
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.
| Utilisateur | Peut Annuler les Siennes | Peut Annuler Celles des Autres |
|---|---|---|
| Employé | Oui (avec permission) | Non (la portée des données empeche de voir les autres) |
| Administrateur | Oui | Oui (s'il a la permission) |
| Super Admin | Oui | Oui (contourne toutes les vérifications) |
Comment Annuler
- Accédez a Demandes de Congés.
- Trouvez la demande a annuler (doit etre En attente ou Approuvé).
- Cliquez sur l'action Annuler le Congé (affichée en ligne dans la colonne des actions).
- 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_daysdiminue du nombre de jours de la demandeavailable_daysaugmente 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_daysdiminue du nombre de jours de la demandeavailable_daysaugmente 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 :
- Interroge toutes les demandes de congés du meme employé.
- Filtre uniquement les demandes approuvées et en attente (les rejetées et annulées sont ignorées).
- Lors de la modification, exclut la demande en cours de la vérification.
- 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 Existante | Nouvelle Demande | Résultat |
|---|---|---|
| 10-12 Jan (Approuvé) | 11-14 Jan | Bloqué — chevauchement les 11-12 Jan |
| 15-15 Jan (En attente) | 15-15 Jan | Bloqué — meme date exacte |
| 1-31 Jan (Approuvé) | 10-10 Jan | Bloqué — contenu dans la plage existante |
Autorisé (Pas de Chevauchement)
| Demande Existante | Nouvelle Demande | Résultat |
|---|---|---|
| 10-12 Jan (Approuvé) | 13-15 Jan | Autorisé — adjacent mais sans chevauchement |
| 10-12 Jan (Rejeté) | 10-12 Jan | Autorisé — les demandes rejetées sont ignorées |
| 10-12 Jan (Annulé) | 10-12 Jan | Autorisé — 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 :
- 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.
- 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 :
| Parametre | Par défaut | Description |
|---|---|---|
| Report Activé | Oui | Interrupteur principal pour la fonctionnalité de report |
| Jours de Report Maximum | 10 | Plafond global des jours reportés pour tous les types de congés |
| Expiration du Report (mois) | 3 | Les 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 :
| Champ | Description |
|---|---|
| Report | Activer/désactiver le report pour ce type de congé spécifique |
| Jours de Report Maximum | Nombre 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.