Aller au contenu

Approbations

À quoi ça sert

Cet espace regroupe toutes les demandes de votre équipe en attente de votre décision — congés, réservations de salles, notes de frais, objectifs et autres demandes soumises au circuit de validation — pour que vous puissiez les approuver ou les refuser sans naviguer entre les modules.

Prérequis

Prérequis

  • Modules sous licence : HR
  • Permissions : leave.approve, leave.manage, booking.manage, accounting.expense.manage, evaluation.objective.approve
  • Rôles : MANAGER, HR_MANAGER, ORG_ADMIN

Comment ça marche

Vue d'ensemble cross-module (tableau de bord)

  1. Depuis le tableau de bord (/dashboard), la carte statistique « Approbations en attente » vous indique en un coup d'œil le nombre total de demandes à traiter.
  2. La page Approbations (/dashboard/approvals) liste, toutes catégories confondues, les demandes en attente : congés, réservations de ressources, notes de frais, objectifs, offres d'embauche, demandes d'achat, onboarding/offboarding — chaque ligne précise le module d'origine, le demandeur et la date.
  3. Cliquez sur une ligne pour être redirigé directement vers l'écran de traitement du module concerné (la décision elle-même se prend toujours dans le module d'origine, cette page ne fait qu'agréger la visibilité).

Traiter les demandes de congé

  1. Ouvrez Approbations des congés (/dashboard/leaves/approvals). L'écran est divisé en deux : à gauche la liste des demandes en attente, à droite le détail de la demande sélectionnée.
  2. Triez la liste par date la plus ancienne, par employé ou par urgence (proximité de la date de début) via le sélecteur de tri en haut de la liste.
  3. Cochez une ou plusieurs demandes pour déclencher une approbation groupée (« Tout sélectionner » disponible), ou traitez une demande individuellement avec les boutons rapides d'approbation/refus qui apparaissent au survol de chaque ligne.
  4. Un raccourci clavier est disponible sur la liste : j/k pour naviguer entre les demandes, a pour approuver la demande sélectionnée, r pour la refuser.
  5. Chaque approbation/refus ouvre une fenêtre de confirmation où vous pouvez ajouter un commentaire — celui-ci est visible par le collaborateur.
  6. Le panneau de détail affiche la chaîne d'approbation complète (les différents niveaux de validation déjà franchis ou restants) ainsi que le motif et le justificatif joint par le collaborateur.
  7. Le calendrier d'équipe (accessible depuis la page congés) vous permet de visualiser les absences déjà validées avant de statuer sur une nouvelle demande, afin d'éviter les conflits de disponibilité.
  8. En cas d'absence prolongée, utilisez la délégation pour transférer vos approbations de congés à un autre manager le temps de votre indisponibilité.

Traiter les réservations de salles nécessitant validation

  1. Les ressources qui ne sont pas en « Accès instantané » génèrent une réservation au statut En attente, visible depuis la page de gestion des réservations.
  2. Approuvez, refusez, ou annulez d'office (« annulation admin ») une réservation ; les statistiques d'occupation des salles sont également accessibles depuis cet espace.

Traiter les notes de frais

  1. Depuis Notes de frais (/dashboard/accounting/expense-claims), ouvrez l'onglet Gestion (visible si vous détenez accounting.expense.manage).
  2. Les notes au statut Soumise affichent des boutons d'approbation/refus rapides.
  3. Une fois approuvée par le manager, la note passe en Attente de paiement puis en Remboursée une fois le virement/versement en espèces confirmé via le formulaire dédié (mode de paiement + note).

Traiter les objectifs

  1. Depuis la fiche d'un objectif d'un collaborateur (voir Performance de l'équipe), utilisez l'action Non atteint pour statuer formellement sur un objectif qui n'a pas été rempli à l'échéance.

Qui peut faire quoi

Permission requise Rôles concernés
leave.approve MANAGER, HR_MANAGER, ORG_ADMIN
leave.manage MANAGER, HR_MANAGER, ORG_ADMIN
booking.manage MANAGER, HR_MANAGER, ORG_ADMIN
accounting.expense.manage MANAGER, HR_MANAGER, ORG_ADMIN
evaluation.objective.approve MANAGER, HR_MANAGER, ORG_ADMIN
Permission Portée
leave.approve Approuver, refuser, déléguer les demandes de congé
leave.manage Accès étendu RH aux congés de tous les collaborateurs (au-delà de son équipe directe) et à l'agrégation cross-module du tableau de bord
booking.manage Approuver/refuser/annuler les réservations de ressources
accounting.expense.manage Approuver, refuser, planifier le paiement et marquer comme remboursées les notes de frais
evaluation.objective.approve Statuer sur un objectif (dont l'action « Non atteint »)

Détails techniques

Détails techniques
  • Agrégation cross-module : app.jigi.dashboard, DashboardController.getPendingApprovals (GET /dashboard/pending-approvals, leave.manage), types de module agrégés côté frontend via MODULE_LABEL_KEYS (LEAVE_REQUEST, RESOURCE_BOOKING, OFFER_LETTER, JOB_REQUISITION, EMPLOYEE_OFFBOARDING, EMPLOYEE_ONBOARDING, PURCHASE_REQUEST, OBJECTIVE). Chaque décision réelle reste effectuée par le contrôleur du module propriétaire — il n'existe pas d'endpoint générique unique d'approbation, le moteur app.jigi.workflow orchestre les étapes en interne mais chaque module expose ses propres actions d'approbation.
  • Congés : app.jigi.hr.leave.controller.LeaveApprovalController — GET /hr/leaves/pending-approvals (paginé, tri oldest/employee/urgency), POST /{id}/approve, POST /{id}/reject, POST /{id}/delegate/{delegateId}, GET /team-calendar, GET /pending-approvals/count. Frontend : frontend/src/components/hr/leave/ApprovalQueue.tsx (liste virtualisée, sélection groupée, raccourcis clavier j/k/a/r), page /dashboard/leaves/approvals.
  • Réservations : app.jigi.booking.controller.BookingController — POST /{id}/approve, /reject, /admin-cancel, GET /stats (toutes booking.manage).
  • Notes de frais : app.jigi.accounting.expense.controller.ExpenseClaimController — POST /{id}/approve, /reject, /schedule-payment, /mark-reimbursed (toutes accounting.expense.manage).
  • Objectifs : app.jigi.hr.appraisal.objective.controller.ObjectiveController — POST /{id}/not-achieved (evaluation.objective.approve).
  • Statuts génériques du moteur de workflow : app.jigi.workflow.domain.StepStatus — PENDING, APPROVED, REJECTED, SKIPPED, TIMED_OUT, NOTIFIED.

Cas d'erreur et FAQ

J'ai approuvé une demande de congé par erreur, puis-je annuler ? Non, l'approbation n'est pas réversible depuis l'interface manager ; contactez votre RH pour une correction manuelle.

Pourquoi ne vois-je pas les notes de frais de mon équipe dans l'onglet Gestion ? Vérifiez que vous détenez bien la permission accounting.expense.manage — l'onglet « Gestion » n'apparaît que dans ce cas, sinon seul l'onglet « Mes notes » (vos propres notes) est visible.

À quoi sert le raccourci clavier sur la page des approbations de congés ? Il permet de traiter rapidement un grand nombre de demandes : j/k pour changer de demande sélectionnée, a pour approuver, r pour refuser, sans quitter le clavier.

Puis-je approuver plusieurs congés en une seule action ? Oui, cochez les demandes concernées dans la liste puis utilisez le bouton d'approbation groupée ; une confirmation vous sera demandée avant validation définitive.

Que se passe-t-il si je pars en congé sans avoir délégué mes approbations ? Les demandes restent en attente jusqu'à votre retour ou jusqu'à ce qu'un administrateur RH les réattribue manuellement — pensez à utiliser la délégation avant un départ prolongé.

Voir aussi