Aller au contenu

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

  1. Ouvrez Congés dans le menu latéral (/dashboard/leaves).
  2. 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.).
  3. 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.
  4. Utilisez les filtres (type de congé, statut, année) en haut de la liste pour retrouver une demande précise.
  5. 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é).
  6. 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

  1. Cliquez sur Nouvelle demande (/dashboard/leaves/new). Un assistant en 5 étapes s'ouvre.
  2. Étape 1 — Type de congé : sélectionnez le type (congés payés, RTT, sans solde, maladie…). Chaque type affiche votre solde disponible.
  3. É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.
  4. Étape 3 — Détails : ajoutez un motif (facultatif ou obligatoire selon le type) et joignez un justificatif si nécessaire (arrêt maladie, etc.).
  5. É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é).
  6. Étape 5 — Confirmation : validez l'envoi. La demande passe en statut PENDING (en attente) et une notification part vers le ou les approbateurs.
  7. 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

  1. Dans la liste Mes demandes, dépliez la demande à annuler.
  2. Le lien Annuler n'apparaît que si la demande est encore à l'état DRAFT (brouillon) ou PENDING (en attente) — une demande déjà approuvée ne peut plus être annulée depuis cet écran.
  3. Confirmez dans la boîte de dialogue qui s'affiche.

Consulter le calendrier d'équipe

  1. 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 via LeaveRequestStatus : DRAFT, PENDING_*, APPROVED, REJECTED, CANCELLED), LeaveBalance, LeaveBalanceAdjustment, LeaveType, LeavePolicy (mode d'acquisition AccrualMode, impact salarial SalaryImpact).
  • Calcul des jours ouvrés : FrenchPublicHolidayCalendar / interface PublicHolidayCalendar exclut 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 DTO ApprovalStepDto affiché 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.

Voir aussi