Congés & absences¶
À quoi ça sert¶
Ce module vous permet de poser une demande de congé ou d'absence, de consulter votre solde par type de congé et de suivre la demande jusqu'à sa validation par votre manager.
Prérequis¶
Prérequis
- Modules sous licence :
LEAVE - Permissions :
leave.create,leave.approve,leave.manage,config.manage - Rôles :
EMPLOYEE,MANAGER,HR_MANAGER,ORG_ADMIN
Comment ça marche¶
Consulter mes demandes et mon solde¶
- Ouvrez Congés dans le menu latéral (
/dashboard/leaves). - En haut de page, les cartes de solde (
LeaveBalanceCards) affichent, pour l'année sélectionnée, le nombre de jours restants par type de congé (congés payés, RTT, maladie, etc.). - La liste Mes demandes affiche chacune de vos demandes : type de congé, dates de début/fin, nombre de jours ouvrés, statut (badge coloré) et date de soumission.
- Utilisez les filtres (type de congé, statut, année) en haut de la liste pour retrouver une demande précise.
- Cliquez sur une ligne pour la déplier : vous verrez le motif saisi, un lien vers le justificatif éventuellement joint, et la chaîne d'approbation (qui doit valider, qui a déjà validé).
- Le bouton Exporter en CSV télécharge la liste actuellement affichée (utile pour un suivi personnel ou une demande RH).
Poser une nouvelle demande¶
- Cliquez sur Nouvelle demande (
/dashboard/leaves/new). Un assistant en 5 étapes s'ouvre. - Étape 1 — Type de congé : sélectionnez le type (congés payés, RTT, sans solde, maladie…). Chaque type affiche votre solde disponible.
- Étape 2 — Dates : choisissez la date de début et de fin. Le système calcule automatiquement le nombre de jours ouvrés en excluant les week-ends et jours fériés.
- Étape 3 — Détails : ajoutez un motif (facultatif ou obligatoire selon le type) et joignez un justificatif si nécessaire (arrêt maladie, etc.).
- Étape 4 — Récapitulatif : l'assistant affiche un résumé complet (dates, jours décomptés, impact sur le solde) ainsi que la chaîne d'approbation prévue (votre manager, puis éventuellement les RH selon le workflow configuré).
- Étape 5 — Confirmation : validez l'envoi. La demande passe en statut
PENDING(en attente) et une notification part vers le ou les approbateurs. - Vous pouvez suivre l'avancement dans la liste Mes demandes : le badge de statut évolue (en attente → approuvé / rejeté) au fil des étapes de validation.
Annuler une demande¶
- Dans la liste Mes demandes, dépliez la demande à annuler.
- Le lien Annuler n'apparaît que si la demande est encore à l'état
DRAFT(brouillon) ouPENDING(en attente) — une demande déjà approuvée ne peut plus être annulée depuis cet écran. - Confirmez dans la boîte de dialogue qui s'affiche.
Consulter le calendrier d'équipe¶
- Depuis le sous-menu Congés, ouvrez Calendrier (
/dashboard/leaves/calendar) pour visualiser les absences de votre équipe sous forme de calendrier partagé, utile pour planifier vos propres congés en tenant compte des absences déjà posées par vos collègues.
Qui peut faire quoi¶
| Permission requise | Rôles concernés |
|---|---|
leave.create |
EMPLOYEE, MANAGER, HR_MANAGER, ORG_ADMIN |
leave.approve |
EMPLOYEE, MANAGER, HR_MANAGER, ORG_ADMIN |
leave.manage |
EMPLOYEE, MANAGER, HR_MANAGER, ORG_ADMIN |
config.manage |
EMPLOYEE, MANAGER, HR_MANAGER, ORG_ADMIN |
| Action | Permission requise | Qui l'a typiquement |
|---|---|---|
| Créer / consulter / annuler ses propres demandes | leave.create |
Tout employé |
| Approuver ou rejeter une demande d'un collaborateur | leave.approve |
Managers |
| Administrer les types de congé, politiques, soldes de toute l'entreprise | leave.manage |
RH / Admin société |
| Configurer les règles avancées (workflows, imports) | config.manage |
Admin société |
Détails techniques¶
Détails techniques
- Backend : module
app.jigi.hr.leave.LeaveRequestController(/hr/leaves,leave.create) : création, consultation, annulation des demandes.LeaveApprovalController(leave.approve) : approbation / rejet.LeaveAdminController/LeaveConfigController(leave.manage/config.manage) : types, politiques, soldes, rollovers.
- Entités :
LeaveRequest(statut viaLeaveRequestStatus:DRAFT,PENDING_*,APPROVED,REJECTED,CANCELLED),LeaveBalance,LeaveBalanceAdjustment,LeaveType,LeavePolicy(mode d'acquisitionAccrualMode, impact salarialSalaryImpact). - Calcul des jours ouvrés :
FrenchPublicHolidayCalendar/ interfacePublicHolidayCalendarexclut automatiquement les jours fériés français du décompte. - Workflow d'approbation : chaque demande crée une instance dans le moteur de workflow générique (
app.jigi.workflow), matérialisée dans le DTOApprovalStepDtoaffiché dans la chaîne d'approbation. - Migration :
V101__hr_leave.sql(tables de base),V115__rh38_39_leave_engine_conventions.sql,V106__hr_leave_add_document_url.sql(pièce jointe). - Frontend :
frontend/src/app/(dashboard)/dashboard/leaves/page.tsx(liste),.../leaves/new/page.tsx+LeaveWizard(assistant 5 étapes : type, dates, détails, récapitulatif, confirmation),.../leaves/calendar/page.tsx,.../leaves/balances/page.tsx.
Cas d'erreur et FAQ¶
Puis-je poser un congé pour une demi-journée ? Cela dépend du paramétrage du type de congé par votre RH ; si l'option est activée, l'étape « Dates » de l'assistant proposera un choix matin/après-midi.
Mon solde affiché est-il déjà déduit des demandes en attente ?
Oui, une demande PENDING réserve déjà les jours correspondants dans le calcul de votre solde disponible, afin d'éviter les doubles demandes.
J'ai posé un congé par erreur, comment l'annuler ? Dépliez la demande dans « Mes demandes » et cliquez sur Annuler, tant qu'elle n'a pas encore été validée par votre manager.
Ma demande est bloquée en « en attente » depuis plusieurs jours. Consultez la chaîne d'approbation dans le détail de la demande pour voir qui doit encore valider, et relancez directement cette personne.
Puis-je joindre un arrêt de travail à ma demande ? Oui, à l'étape « Détails » de l'assistant de création, un champ de dépôt de fichier est disponible ; le document reste consultable depuis le détail de la demande.