Gestion des absences — Hybride PRD+FSD¶
Code du module : ABSMGT Produit : Papillon HR Suite + ALTARYS ENTERPRISE HR Suite Périmètre pays : CI (Côte d'Ivoire) — MVP Version : 1.0 Date : 02/03/2026 Auteur : ANALYST (Claude Code)
PARTIE A Exigences du produit (PRD)¶
A.1 Résumé¶
Le problème¶
En Côte d'Ivoire, les entreprises gèrent les absences de leurs employés à l'aide de messages WhatsApp, de formulaires papier et de feuilles de calcul Excel. Cela entraîne :
- Risque de non-conformité : le Code du travail 2015 de la Côte d'Ivoire et la Convention collective interprofessionnelle (CCI 1977) imposent des règles spécifiques en matière d'accumulation des congés annuels (2,2 jours ouvrables/mois), de primes d'ancienneté, de protection de la maternité, de barèmes d'indemnisation des congés maladie et d'autorisations exceptionnelles. Le suivi manuel entraîne des erreurs dans les soldes de congés, le refus illégal des droits liés à la maternité et des retenues salariales incorrectes.
- Erreurs de paie : sans système reliant les absences à la paie, les retenues pour congés non payés, les transitions vers les congés maladie à demi-salaire et les demandes de remboursement CNPS pour maternité sont calculées manuellement, ce qui entraîne des paiements excédentaires ou insuffisants.
- Frustration des employés : les employés ne connaissent pas leur solde de congés, ne peuvent pas facilement vérifier l'état de leurs demandes et perdent souvent des jours de congé car les reports ne sont pas suivis.
- Cécité des responsables : pas de calendrier d'équipe, pas de visibilité sur qui est en congé et quand, aucun moyen de planifier la couverture.
La solution¶
Le module de gestion des absences (ABSMGT) offre :
- L'accumulation automatisée des congés basée sur les règles légales CI (2,2 jours ouvrables/mois + ancienneté + primes pour enfants), avec prise en charge de trois unités (jours ouvrables, jours calendaires, jours ouvrés)
- Des demandes de congés en libre-service avec fonctionnalité hors ligne (soumission automatique lors de la synchronisation)
- Workflow d'approbation basé sur l'unité organisationnelle (chaîne N+1 par Platform Vision)
- Tableaux d'indemnisation CCI complets pour les congés maladie (basés sur la catégorie + l'ancienneté)
- Création automatique des congés maternité (droit légal, aucune approbation nécessaire)
- Calendrier de l'équipe (respectant la vie privée : affiche uniquement les présences/absences)
- Suivi du solde basé sur le grand livre pour une auditabilité complète
- Intégration de la paie via LeaveApproved / LeaveCancelled Événements de l'application Spring
Contexte d'échelle¶
- Papillon HR Suite : Objectif principal. PME (2 à 350 employés) dans le secteur de la CI. Priorité au mobile, priorité au hors ligne, interface utilisateur en français.
- ALTARYS ENTERPRISE [ENTERPRISE UNIQUEMENT V2] : données denses, opérations par lots, délégation, planification avancée des congés à grande échelle. API conçue pour prendre en charge les deux dès le premier jour.
A.2 Personnages utilisateurs¶
P4a : Employé / Employee¶
- Utilisations : soumettre des demandes de congé, vérifier le solde, consulter le calendrier de l'équipe, télécharger des pièces justificatives
- Compétences numériques : faibles à moyennes
- Appareil : téléphone Android (entrée de gamme, connectivité intermittente)
- Préoccupation principale : « Combien de jours me reste-t-il ? Quand puis-je prendre mon congé ? »
- Contexte Papillon : peut être hors ligne lors de la soumission. Nécessite une simplicité absolue 3 clics pour demander un congé.
- Point faible : Envoie actuellement un SMS à son supérieur sur WhatsApp et attend plusieurs jours une réponse sans pouvoir suivre l'état d'avancement.
P2a : Responsable RH / HR Manager¶
- Utilisations : configurer les types de congés, gérer les soldes des employés, remplacer les accumulations, consulter les tableaux de bord, exporter des données
- Compétences numériques : moyennes
- Appareil : Principalement un ordinateur de bureau, un téléphone pour les approbations urgentes
- Préoccupation principale : « Les soldes de congés de tous les employés sont-ils corrects ? L'entreprise respecte-t-elle la législation en matière de CI ? »
- Contexte Papillon : souvent le conjoint du directeur général ou un employé de confiance. En transition depuis Excel. A besoin d'être accompagné.
- Contexte de l'entreprise [V2] : directeur des ressources humaines professionnel gérant une équipe. Ajustements groupés des soldes, délégation.
P1a : Manager / Approver¶
- Utilisations : Approuver/refuser les demandes de congés, consulter le calendrier de l'équipe, vérifier la couverture de l'équipe
- Compétences numériques : moyennes à élevées
- Appareil : ordinateur portable + téléphone (approbations en déplacement)
- Préoccupation principale : « Qui est en congé cette semaine ? Puis-je approuver cette demande sans que l'équipe se retrouve en sous-effectif ? »
P1b : Directeur général (DG) / Propriétaire de l'entreprise¶
- Utilisations : approbateur de secours, approbation de ses propres congés, aperçu des tableaux de bord
- Compétences numériques : Moyenne à élevée
- Appareil : ordinateur portable + téléphone
- Préoccupation principale : « Mes employés prennent-ils leurs congés légaux ? Sommes-nous en conformité ? »
- Contexte Papillon : dans les entreprises S1-S2 (2 à 12 employés), le DG EST à la fois le responsable des ressources humaines ET l'approbateur.
A.3 User stories¶
US-ABS-001 : Demande de congé annuel¶
En tant qu' employé, je souhaite soumettre une demande de congé annuel depuis mon téléphone (même hors ligne), afin de pouvoir planifier mes congés sans me rendre au service des ressources humaines.
Critères d'acceptation : - Étant donné que je suis un employé avec un compte actif, lorsque j'ouvre le module Absence, je vois mon solde de congés actuel (par type, en jours calendaires). - Étant donné que je remplis un formulaire de demande de congé hors ligne, lorsque la connexion est rétablie, la demande est automatiquement soumise à mon responsable pour approbation. - Étant donné que je soumets une demande, lorsque la date de début est inférieure à 15 jours à compter d'aujourd'hui, alors je vois un avertissement modéré concernant le délai de préavis de 15 jours, mais je peux tout de même soumettre ma demande. - Étant donné que je soumets une demande de congé annuel et que je n'ai PAS encore pris 14 jours consécutifs cette année, alors je vois un avertissement modéré concernant l'exigence légale minimale de 14 jours.
US-ABS-002 : Approuver/rejeter les congés¶
En tant que responsable, je souhaite approuver ou rejeter les demandes de congé d'un simple clic, afin que mon équipe puisse planifier rapidement ses congés.
Critères d'acceptation : - Lorsqu'une demande de congé est en attente, lorsque je la consulte, je vois alors : le nom de l'employé, le type de congé, les dates, le nombre de jours, le solde actuel de l'employé, le calendrier de l'équipe indiquant qui d'autre est en congé pendant cette période. - Si je rejette une demande, lorsque je soumets le rejet, je dois alors fournir une raison (champ de texte obligatoire). L'employé est informé de la raison. - Si le type de congé nécessite un document justificatif (congé maladie, maternité), lorsque le document n'est pas téléchargé, je ne peux pas approuver la demande: le bouton d'approbation est désactivé et une explication s'affiche.
US-ABS-003 : Afficher le calendrier de l'équipe¶
En tant que responsable, je souhaite voir un calendrier de l'équipe indiquant qui est en congé et quand, afin de pouvoir assurer une couverture adéquate.
Critères d'acceptation : - Étant donné que je suis manager, lorsque je consulte le calendrier de l'équipe, je vois toutes les absences de mes subordonnés directs pour le mois en cours. - Étant donné qu'un membre de l'équipe est en congé, lorsque je consulte le calendrier, je vois « Absent » (et non le type de congé) afin de protéger la vie privée. - Étant donné que je suis HR_MANAGER ou DG, lorsque je consulte le calendrier, alors je peux filtrer par service et voir tous les employés.
US-ABS-004 : Création automatique d'un congé maternité¶
En tant que responsable RH, je souhaite enregistrer une déclaration de maternité et que le système crée automatiquement le congé, afin que je n'aie pas à traiter la maternité comme une « demande » (il s'agit d'un droit légal).
Critères d'acceptation :
- Étant donné que je saisis une date prévue d'accouchement, lorsque j'enregistre la déclaration de maternité, le système crée alors un bloc de congé de 14 semaines (6 semaines avant la date prévue d'accouchement + 8 semaines après).
- Étant donné que le congé de maternité est créé, lorsque je le consulte, il affiche alors le statut AUTO_APPROVED : aucune étape d'approbation par le responsable n'est nécessaire.
- Étant donné que l'employée a d'autres congés approuvés qui chevauchent la période de maternité, lorsque le congé de maternité est créé, les jours de congé annuel qui se chevauchent sont alors recrédités sur le solde de l'employée.
US-ABS-005 : Congé maladie avec certificat¶
En tant qu' employé, je souhaite déclarer un congé maladie et télécharger mon certificat médical, afin que mon absence soit correctement enregistrée et que ma rémunération soit calculée selon le barème CCI.
Critères d'acceptation :
- Étant donné que je soumets une demande de congé maladie, lorsque je ne télécharge pas de certificat médical, la demande reste dans le statut PENDING_DOCUMENT : elle n'est pas envoyée pour approbation.
- Étant donné que je télécharge le certificat, lorsque je confirme, la demande passe au statut PENDING_APPROVAL et est envoyée à mon responsable.
- Étant donné que mon congé maladie est approuvé, lorsque la paie est traitée pour le mois, mon salaire est alors calculé selon le barème d'indemnisation CCI (salaire complet → demi-salaire → zéro salaire, en fonction de la catégorie et de l'ancienneté).
US-ABS-006 : Afficher le solde des congés¶
En tant qu' employé, je souhaite voir mon solde de congés actuel ventilé par type, afin de savoir combien de jours je peux prendre.
Critères d'acceptation : - Étant donné que j'ouvre le module Absence, lorsque je consulte mon solde, je vois alors les soldes pour chaque type de congé en jours calendaires (unité de déduction configurée par mon tenant). - Étant donné que je suis un nouvel employé avec moins de 12 mois d'ancienneté, lorsque je consulte mon solde, alors je vois mon solde accumulé avec une note : « Disponible après 12 mois de service » (sauf si le congé anticipé est configuré). - Étant donné que mon solde comprend des jours de prime d'ancienneté, lorsque je consulte la ventilation, je vois alors : accumulation de base + prime d'ancienneté + prime pour enfants = total.
US-ABS-007 : Permission exceptionnelle¶
En tant qu' employé, je souhaite demander une permission exceptionnelle pour un événement familial (mariage, naissance, décès), afin de pouvoir prendre mes jours de congé légaux avec rémunération.
Critères d'acceptation : - Étant donné que je sélectionne « Permission exceptionnelle » comme type de congé, lorsque je choisis le type d'événement (mariage, naissance, décès, etc.), le système préremplit alors le nombre de jours en fonction du minimum CCI pour CI. - Étant donné que le tenant a configuré des durées plus généreuses (supérieures au minimum CCI), lorsque je sélectionne le type d'événement, le système préremplit alors la durée du tenant. - Étant donné que le tenant tente de configurer une durée inférieure au minimum CCI, lorsqu'il enregistre, le système bloque alors avec : « La durée minimale légale (CCI) pour cet événement est de X jours. »
US-ABS-008 : Tableau de bord RH¶
En tant que responsable RH, je souhaite disposer d'un tableau de bord affichant les principaux indicateurs d'absence en un coup d'œil, afin de pouvoir surveiller la situation de l'entreprise en matière d'absences.
Critères d'acceptation : - Étant donné que je suis HR_MANAGER, lorsque j'ouvre le tableau de bord Absence, je vois alors : le calendrier des congés de l'équipe, le nombre d'approbations en attente (badge), le récapitulatif du solde de congés par employé, le taux d'absentéisme (%), les congés à venir cette semaine/ce mois-ci. - Étant donné que je clique sur le solde d'un employé, lorsque la vue détaillée s'ouvre, je vois alors le registre complet des accumulations, des déductions, des ajustements et des reports.
US-ABS-009 : Annuler un congé¶
En tant qu'employé, je souhaite d'annuler une demande de congé que j'ai soumise, afin de pouvoir modifier mes projets.
Critères d'acceptation : - Étant donné que ma demande de congé est EN ATTENTE D'APPROBATION, lorsque je l'annule, elle passe alors à ANNULÉE et disparaît de la file d'attente de l'approbateur. - Étant donné que mon congé est APPROUVÉ mais n'a pas encore commencé, lorsque je l'annule, les jours sont alors recrédités à mon solde. Le responsable et les RH en sont informés. - Étant donné que mon congé est APPROVED et a déjà commencé (je suis actuellement en congé), lorsque j'essaie de l'annuler, je ne peux pas le faire : je dois demander un retour anticipé auprès des RH.
US-ABS¶
-010 : Gestion des licenciements d'employés
En tant que système,
lorsqu' un événement EmployeeTerminated ou EmployeeOffboarded est reçu,
je souhaite annuler automatiquement les demandes de congé en attente et calculer le solde restant,
afin que le service de paie puisse calculer l'indemnité compensatrice de congés payés.
Critères d'acceptation :
- Étant donné qu'un employé est licencié, lorsque l'événement est reçu, toutes les demandes EN ATTENTE sont automatiquement annulées.
- Étant donné qu'un employé est licencié, lorsque l'événement est reçu, les congés futurs APPROUVÉS pendant la période de préavis sont conservés ; ceux postérieurs à la date effective du licenciement sont annulés.
- Étant donné qu'un employé est licencié, lorsque le solde est calculé, un événement LeaveBalanceSettlement est publié au service de la paie avec le solde restant en jours calendaires.
A.4 Exigences non fonctionnelles¶
| Exigence | Cible | Remarques |
|---|---|---|
| Temps de réponse | < 2 secondes pour la soumission d'une demande de congé sur 3G | Mobile-first, offline-first |
| Calcul du solde | < 500 ms pour le solde actuel de tout employé | Total mis en cache à partir du grand livre |
| Calendrier de l'équipe | < 1 seconde pour afficher la vue sur 30 jours d'une équipe de 50 personnes | Doit être rapide pour les responsables |
| Capacité hors ligne | Demandes de congés créées hors ligne, soumises automatiquement lors de la synchronisation | Les formulaires ne perdent jamais de données |
| Soumissions simultanées | Traitement des demandes simultanées du même employé (pour éviter les doubles réservations) | Verrouillage optimiste du solde de congés |
| Piste d'audit | Chaque modification du solde génère une entrée d'audit immuable | Basé sur le grand livre. intrinsèquement vérifiable |
| Isolation des données | Aucune fuite de données de congés entre les tenants | tenant_id sur chaque requête |
| Échelle | Prise en charge de plus de 100 000 tenants × 20 employés en moyenne × 12 mois de données de congés | Requêtes indexées, stratégie de partitionnement |
A.5 Portée du MVP¶
Dans le MVP (V1)¶
- Pays : CI uniquement
- Types de congés : 7 (annuel, maladie, maternité, paternité, permissions exceptionnelles, non rémunéré [suivi uniquement], absence injustifiée)
- Moteur de calcul : 2,2 j. ouvrables/mois + prime d'ancienneté + prime pour enfants
- Système à trois unités : Jours ouvrables (accumulation) → Jours calendaires (× 1,25, valeur par défaut CI) → Jours ouvrés (semaine de 5 jours, configurable)
- Approbation : Standard N+1 basé sur l'unité organisationnelle (selon la vision de la plateforme FR-PV-020 à FR-PV-024)
- Maternité : Création automatique (14 semaines, aucune approbation nécessaire). L'employeur paie 100 % et demande le remboursement à la CNPS.
- Congés maladie : Barèmes d'indemnisation CCI complets (par catégorie + ancienneté)
- Permissions exceptionnelles : CCI minimum comme seuil, le tenant peut configurer au-dessus
- Assistance demi-journée : demandes de demi-journée le matin/l'après-midi
- Pièces justificatives : requises avant l'approbation des congés maladie et maternité (blocage strict)
- Hors ligne :
Création complète de la demande hors ligne, soumission automatique lors de la synchronisation
- Tableau de bord : calendrier de l'équipe + approbations en attente + résumé du solde + taux d'absentéisme + congés à venir
- Notifications : 4 principales (soumission → approbateur, approbation → employé, rejet → employé, annulation → approbateur + RH)
- Modèle de solde : grand livre (basé sur les transactions)
- Report : configurable par tenant (expiration stricte à 12 mois | report partiel | illimité). Par défaut : strict.
- Période de référence : configurable (année civile | anniversaire de l'employé). Par défaut : année civile.
- Jours fériés : l'administrateur de la plateforme définit les valeurs par défaut CI (fixes + variables). Le tenant peut remplacer les dates variables.
- Calendrier de l'équipe : respect de la vie privée (affiche « Absent » et non le type de congé)
- Libre-service : affichage du solde, historique des demandes, soumission/annulation des demandes
- Intégration de la paie : Événements LeaveApproved, LeaveCancelled, LeaveBalanceSettlement
Hors MVP (V2+)¶
- [V2] Règles nationales BJ et CM - Types de congés, taux d'accumulation et jours fériés au Bénin et au Cameroun (mois 9)
- [V2] Calendrier de planification des congés à l'échelle de l'entreprise (règles de couverture des équipes, planification des congés)
- [V2] Registre des absences exportable (registre des absences pour l'inspection du travail)
- [V2] Avertissement de solde faible
- [V2] Rappel de retour de maternité notification (2 semaines avant la fin)
- [V2] Chaînes d'approbation à plusieurs niveaux (escalade basée sur le montant, basée sur le type)
- [V2] Délégation RH de l'autorité d'approbation
- [V2] Ajustements de solde par lots pour Enterprise
- [V2] Congé de formation
- [V2] Congé syndical
- [V2] Rapports et analyses avancés sur les absences
- [V2] Flux d'approbation spécifiques au type de congé (approbation automatique des congés maladie avec certificat, approbation automatique des congés maternité)
- [V2] Configuration des conventions collectives (conventions spécifiques à un secteur qui prévalent sur les CCI)
- [V2] Paternité 21 jours (lorsque les décrets d'application CI sont publiés)
- [ENTREPRISE UNIQUEMENT] Opérations groupées : création massive de congés, ajustements groupés du solde
- [ENTREPRISE UNIQUEMENT] Planification avancée des congés : règles de couverture, niveaux minimaux de personnel
- [ENTREPRISE UNIQUEMENT] Workflows de délégation : responsables RH gérant des sous-ensembles d'employés
- Les politiques de congés spécifiques à chaque pays au-delà de la CI sont en V2
- Calcul de l'allocation monétaire des congés (responsabilité de la paie)
- Applications mobiles natives (iOS/Android): PWA uniquement pour MVP
A.6 Questions en suspens¶
| # | Question | Priorité | Statut |
|---|---|---|---|
| OQ-ABS-01 | Exonération ITS des indemnités de maternité CNPS : la recherche juridique signale cela comme SOURCE INCONNUE. Confirmer si les indemnités de maternité versées par la CNPS sont réellement exonérées de l'ITS en CI, et identifier l'article spécifique du CGI. | 🟡 ÉLEVÉE | Non résolue : reportée à la paie PRD |
| OQ-ABS-02 | Format de numérotation de l'article 25.X du CCI : vérifier que le Code du travail 2015 de la CI (loi n° 2015-532) utilise bien une sous-numérotation décimale (art. 25.1, 25.2, etc.). Si le format réel est différent, toutes les références aux articles dans ce PRD doivent être remappées. | 🟢 MOYEN | Nécessite une vérification ponctuelle |
| OQ-ABS-03 | Loi n° 96-5 (jours fériés CI) : confirmer que cette loi de 1996 est toujours en vigueur. En particulier, le « 15 novembre : Journée Nationale de la Paix » a-t-il été ajouté par amendement ? | 🟢 MOYEN | Nécessite une vérification |
| OQ-ABS-04 | Statut actuel de la CCI 1977 : confirmer si la CCI 1977 est toujours la convention collective interprofessionnelle applicable en CI, ou si elle a été révisée/renégociée. Les indemnités de licenciement, les délais de préavis et les règles en matière de congés en dépendent. | 🟡 ÉLEVÉ | Nécessite une vérification |
| OQ-ABS-05 | Seuil pour la désignation d'un délégué du personnel : à partir de quel effectif en CI la désignation d'un délégué du personnel est-elle obligatoire ? Quel est l'impact sur la gestion des absences (par exemple, consultation sur la planification des congés) ? | 🟢 MOYEN | Pertinence V2 |
| OQ-ABS-06 | Accumulation des congés pendant la période d'essai : Il est confirmé que l'accumulation commence le premier jour et que 12 mois de service sont nécessaires pour prendre un congé. Mais le seuil de 12 mois s'applique-t-il par TYPE de congé ou globalement ? Un nouvel employé peut-il prendre un congé exceptionnel (par exemple, naissance d'un enfant) avant 12 mois ? | 🟡 ÉLEVÉ | Supposé oui (droit légal) : à vérifier |
| OQ-ABS-07 | Validation de la formule de conversion : le facteur 1,25 (ouvrables → calendaires) est confirmé par le client. Vérifier auprès des sources juridiques/pratiques CI : s'agit-il de 30/24 (jours calendaires / ouvrables par mois) ? | 🟢 MOYEN | Temporairement validé |
A.7 Temporairement validé¶
| # | Élément | Valeur actuelle | Risque | Action requise |
|---|---|---|---|---|
| TV-ABS-01 | Mécanisme de rémunération de maternité | L'employeur verse 100 % du salaire et demande le remboursement intégral à la CNPS. Coût net pour l'employeur = 0. | Confirmé par le client, mais la citation juridique est ambiguë (l'article 31 du CCI stipule que « l'employeur verse la moitié, la CNPS rembourse »). | Vérifier auprès de la CNPS CI ou d'un avocat spécialisé en droit du travail avant la mise en service. |
| TV-ABS-02 | Base de cotisation à la CNPS pendant le congé de maladie | Les cotisations CNPS sont calculées sur le montant effectivement versé (et non sur le salaire théorique complet). | Confirmé par le client. Les recherches juridiques indiquent que le congé maladie est « considéré comme une période d'emploi » pour la CNPS, mais restent ambiguës sur la base de cotisation. | Vérifier auprès de la CNPS CI. |
| TV-ABS-03 | Durée du congé paternité | 2 jours ouvrables (loi actuellement en vigueur). Système conçu avec un paramètre configurable pour passer à 21 jours lorsque les décrets d'application seront publiés. | Loi de 2023 adoptée, mais décrets non encore publiés en mars 2026. | Surveiller la publication des décrets d'application. Mettre à jour la configuration lorsqu'ils seront publiés. |
| TV-ABS-04 | Facteur de conversion ouvrables → calendaires | 1,25 (c'est-à-dire jours calendaires = jours ouvrables × 1,25) | Confirmé par le client. Mathématiquement cohérent avec le ratio 30/24. | Vérifier par rapport aux sources juridiques CI. |
| TV-ABS-05 | L'accumulation des congés se poursuit pendant le congé maladie/ maternité | Les congés annuels s'accumulent à raison de 2,2 jours ouvrables/mois pendant les congés maladie et maternité. | Confirmé par le client. Cohérent avec le principe « assimilé à un travail effectif » du droit du travail CI. | Vérifier l'article juridique CI spécifique. |
| TV-ABS-06 | Formule de retenue sur salaire | salaire mensuel / nombre de jours ouvrables du mois × nombre de jours d'absence. | Basé sur la pratique. la recherche juridique indique « Pas de formule légale imposée ». | Mis en œuvre tel quel. Signalé comme non vérifié. |
PARTIE B :Spécifications fonctionnelles (FSD)¶
B.1 Catalogue des types d'absence [TOUTES PORTÉES : CI]¶
Tableau de référence des types de congés¶
| Code | Nom (FR) | Rémunéré ? | Doit être déduit des jours accumulés ? | Document requis ? | Approbation ? | Impact sur le solde | Impact sur la paie |
|---|---|---|---|---|---|---|---|
ANNUAL |
Congé annuel | ✅ Oui (100 %) | ✅ Oui | ❌ Non | ✅ Approbation N+1 | Déduit du solde annuel | Congé payé (allocation de congé) |
MALADIE |
Congé maladie | ✅ Oui (tableau CCI) | ❌ Non | ✅ Certificat médical | ✅ Approbation N+1 | Compteur de congés maladie séparé | Salaire complet → demi-salaire → zéro (selon CCI) |
MATERNITÉ |
Congé maternité | ✅ Oui (100 %) | ❌ Non | ✅ Attestation médicale | ❌ Créé automatiquement | Aucun impact sur le solde | L'employeur paie 100 %, la CNPS rembourse |
PATERNITÉ |
Congé paternité | ✅ Oui (100 %) | ❌ Non | ✅ Acte de naissance | ✅ Approbation N+1 | Déduit des autorisations | Payé par l'employeur |
EXCEPTIONNEL |
Permission exceptionnelle | ✅ Oui (100 %) | ❌ Non | ✅ Justificatif | ✅ Approbation N+1 | Déduit du plafond de 10 jours/an | Payé par l'employeur |
NON RÉMUNÉRÉ |
Congé sans solde | ❌ Non | ❌ Non | ❌ Non | ✅ Approbation N+1 | Suivi uniquement (MVP) | Déduction : taux journalier complet × jours |
INJUSTIFIÉ |
Absence injustifiée | ❌ Non | ❌ Non | ❌ Non | ❌ Dossiers RH | Pas de solde (mesure disciplinaire) | Déduction + sanctions possibles |
Tableau détaillé des autorisations exceptionnelles [CI]¶
| Code événement | Nom de l'événement (FR) | Minimum CCI (CI) | Configurable ? | Total max/an |
|---|---|---|---|---|
MARRIAGE_SELF |
Mariage du salarié | 4 jours | ✅ Le titulaire peut augmenter | 10 j./an (tous événements confondus) |
MARRIAGE_CHILD |
Mariage d'un enfant | 2 jours | ✅ Le titulaire peut augmenter | 10 j./an |
BIRTH_CHILD |
Naissance d'un enfant | 2 jours | ✅ Le tenant peut augmenter | 10 j./an |
DEATH_SPOUSE |
Décès du conjoint | 5 jours | ✅ Le tenant peut augmenter | 10 j./an |
DEATH_CHILD |
Décès d'un enfant | 5 jours | ✅ Le tenant peut augmenter | 10 j./an |
DEATH_PARENT |
Décès père/mère | 5 jours | ✅ Le tenant peut augmenter | 10 j./an |
DEATH_SIBLING |
Décès frère/sœur | 2 jours | ✅ Le tenant peut augmenter | 10 j./an |
DEATH_IN_LAW |
Décès beau-père/belle-mère | 2 jours | ✅ Le tenant peut augmenter | 10 j./an |
MOVE |
Déménagement | 2 jours | ✅ Le tenant peut augmenter | 10 j./an |
FR-ABS-PERM-01 : SI un tenant tente de configurer une durée d'exceptionnelle inférieure au minimum CCI, ALORS le système DOIT bloquer l'enregistrement avec le message : « La durée minimale légale (CCI) pour cet événement est de {min_days} jours. »
FR-ABS-PERM-02 : SI le total des autorisations exceptionnelles prises au cours de la période de référence actuelle dépasse 10 jours, ALORS le système DOIT avertir le responsable des ressources humaines et bloquer la demande. Les jours supplémentaires au-delà de 10 doivent être traités comme des congés sans solde ou des congés annuels.
B.2 Règles fonctionnelles :Moteur d'accumulation des congés¶
Accumulation de base¶
FR-ABS-001 : Chaque salarié dont le statut est STATUT = ACTIF accumule des congés annuels à raison de 2,2 jours ouvrables par mois de service effectif. Il s'agit du taux CCI (plus favorable que le taux de 2 jours/mois prévu par le Code du travail).
FR-ABS-002 : L'unité d'accumulation est le jour ouvrable (semaine de 6 jours : du lundi au samedi). Il s'agit de l'unité de référence légale pour la CI.
FR-ABS-003 : À des fins d'affichage et de déduction, le système prend en charge TROIS unités : - Jours ouvrables (JO) : base légale d'accumulation. 1 mois = 2,2 JO. - Jours calendaires (JC) : JO × 1,25. Unité de déduction standard de la CI. 1 mois = 2,75 JC. - Jours ouvrés
(JOV) : équivalent à une semaine de 5 jours. JO × 5/6. 1 mois ≈ 1,83 JOV.
FR-ABS-004 : chaque tenant configure sa préférence en matière d'unité de déduction :
- SI tenant.leave_deduction_unit = JOURS_CALENDAIRES (par défaut pour CI) ALORS les soldes sont affichés et déduits en JC.
- IF tenant.leave_deduction_unit = JOURS_OUVRES ALORS les soldes sont affichés et déduits en JOV.
- IF tenant.leave_deduction_unit = JOURS_OUVRABLES ALORS les soldes sont affichés et déduits en JO.
- Le stockage interne est TOUJOURS en jours ouvrables (source de vérité). La conversion s'effectue au moment de l'affichage et de la déduction.
FR-ABS-005 : L'accumulation commence à partir de la date d'embauche de l'employé. Les congés s'accumulent à partir du premier jour, quelle que soit la période d'essai.
FR-ABS-006 : Un employé NE PEUT PAS prendre de congés annuels avant d'avoir accompli 12 mois de service continu auprès de son employeur actuel.
- SI employee.hire_date + 12 months > today ALORS l'action « Soumettre une demande de congés annuels » DOIT afficher : « Vos congés seront disponibles à partir du {hire_date + 12 months} ».
- Le solde accumulé est visible mais marqué comme « non disponible ».
- EXCEPTION : les permissions exceptionnelles (événements familiaux) sont disponibles dès le premier jour — elles constituent un droit distinct des congés annuels.
Jours de prime d'ancienneté [CI — CCI Art. 46]¶
FR-ABS-010 : En plus des 2,2 jours/mois de base, les employés bénéficient de jours de congés annuels supplémentaires en fonction de leur ancienneté auprès de leur employeur actuel :
| Ancienneté | Bonus (jours ouvrables/an) |
|---|---|
| 5 ans | +1 |
| 10 ans | +2 |
| 15 ans | +3 |
| 20 ans | +5 |
| 25 ans | +7 |
FR-ABS-011 : La prime d'ancienneté est calculée une fois par période de référence, sur la base de l'ancienneté de l'employé au DÉBUT de la période de référence. La prime est ajoutée sous la forme d'une transaction comptable unique au début de la période.
FR-ABS-012 : SI la tranche d'ancienneté de l'employé change au MILIEU de la période (par exemple, s'il atteint 10 ans en juin), ALORS la nouvelle prime est appliquée au DÉBUT de la période de référence SUIVANTE. Aucun ajustement n'est effectué au milieu de la période.
Jours de prime pour enfants [CI — CCI]¶
FR-ABS-013 : Les employés reçoivent +1 jour ouvrable par enfant de moins de 21 ans comme congé annuel supplémentaire.
FR-ABS-014 : Les données relatives aux enfants proviennent du profil de l'employé :
- SI le module HR Core est actif, les enfants sont lus à partir du profil de l'employé dans HR Core (date de naissance requise).
- SI HR Core n'est PAS actif, les enfants sont gérés directement dans le module Absence sous la forme d'un simple champ de comptage (number_of_children_under_21), défini manuellement par les RH.
FR-ABS-015 : La prime pour enfants est recalculée au DÉBUT de chaque période de référence. Un enfant qui atteint l'âge de 21 ans au cours de la période conserve sa prime pour cette période.
Accumulation pendant les absences¶
FR-ABS-016 : Accumulation des congés annuels (2,2 jours ouvrables/mois) SE POURSUIT pendant : - Congé maladie - Congé maternité - Congé paternité - Permissions exceptionnelles - Accident du travail
Ces périodes sont assimilées à du travail effectif pour le calcul de l'accumulation.
FR-ABS-017 : Accumulation des congés annuels EST SUSPENDUE pendant : - Congé sans solde - Absence injustifiée - Suspension disciplinaire (le cas échéant)
B.3 Règles fonctionnelles — Période de référence et report¶
Période de référence¶
FR-ABS-020 : Chaque tenant configure une période de référence pour l'accumulation et le report des congés :
- CALENDAR_YEAR (par défaut) : 1er janvier - 31 décembre
- ANNIVERSARY : en fonction de la date d'embauche de chaque employé (par exemple, embauché le 15 mars → période de référence du 15 mars au 14 mars de l'année suivante)
FR-ABS-021 : à la fin de chaque période de référence, le système : 1. Calcule le total des congés accumulés par l'employé pour la période (base + ancienneté + enfants) 2. Détermine les jours non pris de la période PRÉCÉDENTE 3. Applique la politique de report du tenant (FR-ABS-022) 4. Génère des transactions comptables pour : les nouveaux droits acquis, les jours expirés (le cas échéant), les jours reportés
Politique de report¶
FR-ABS-022 : Chaque tenant configure sa politique de report :
- STRICT_EXPIRY (par défaut — conformément à la législation CI) : Les congés non pris de la période de référence précédente expirent. Les jours perdus sont enregistrés comme EXPIRED dans le grand livre. Une notification d'avertissement est envoyée à l'employé 30 jours avant l'expiration.
- PARTIAL_CARRY_OVER : un maximum de N jours peut être reporté (N est configuré par le tenant). Le surplus expire.
- UNLIMITED : tous les jours non pris sont reportés indéfiniment.
FR-ABS-023 : Le paiement compensatoire en lieu et place des congés non pris est interdit pendant la durée du contrat de travail (art. 25.12 CT 2015). Le système NE DOIT PAS proposer de fonctionnalité de « paiement du solde de congés » pendant la durée du contrat de travail.
FR-ABS-024 : À la fin du contrat de travail (départ), le solde de congés restant DOIT être payé sous forme d'indemnité compensatrice de congés payés. Ceci est obligatoire selon la loi CI. Le module Absence calcule le solde et publie un événement LeaveBalanceSettlement à la Paie.
B.4 Règles fonctionnelles — Workflow de demande de congé¶
Création de la demande¶
FR-ABS-030 : Une demande de congé contient :
- employee_id, tenant_id (à partir du contexte de session)
- leave_type (à partir du catalogue : ANNUAL, SICK, MATERNITY, etc.)
- start_date, end_date (inclus)
- half_day_start (booléen : si vrai, l'employé travaille le matin et est absent l'après-midi de la date de début)
- half_day_end (booléen : si vrai, l'employé est absent le matin et travaille l'après-midi de la date de fin)
- event_type (uniquement pour les cas EXCEPTIONNELS — par exemple, MARRIAGE_SELF, DEATH_SPOUSE)
- reason (texte libre facultatif)
- supporting_document_id (obligatoire pour certains types de congés — voir B.1)
*FR-ABS-031 * : lors du calcul du nombre de jours de congé :
- SI aucune demi-journée ALORS number_of_days = jours ouvrables entre start_date et end_date (inclus), convertis en unité de déduction du tenant .
- SI demi_journée_début = vrai ALORS la date_début compte pour 0,5 jour.
- SI demi_journée_fin = vrai ALORS la date_fin compte pour 0,5 jour.
- Les jours fériés tombant pendant la période de congé sont EXCLUS du décompte (ils ne consomment pas de jours de congé et prolongent l'absence effective d'un jour chacun).
*FR-ABS-032 * : Le système calcule automatiquement number_of_days à partir de la plage de dates et du calendrier de travail du tenant. L'employé voit le total calculé avant de soumettre sa demande et peut l'ajuster.
Règles de validation¶
FR -ABS-040 : SI leave_type = ANNUAL ET employee.hire_date + 12 months > today ALORS bloquer la demande. Message : « Vous devez compléter 12 mois de service avant de prendre un congé annuel. »
FR-ABS-041 : SI leave_type = ANNUAL ET number_of_days > employee.annual_leave_balance ALORS bloquer la demande. Message : « Solde insuffisant. Votre solde disponible est de {balance} jours. »
FR-ABS-042 : IF leave_type = EXCEPTIONAL AND total_exceptional_taken_this_period + number_of_days > 10 THEN bloquer la demande. Message : « Vous avez atteint le plafond annuel de 10 jours de permissions exceptionnelles. »
FR-ABS-043 : SI start_date < today (demande rétroactive) ALORS autoriser la demande MAIS la marquer avec le drapeau is_retroactive = true à des fins d'audit.
FR-ABS-044 : SI date_début < aujourd'hui + 15 jours ALORS afficher un avertissement modéré : « Attention : le préavis légal est de 15 jours avant le début du congé. » La demande n'est PAS bloquée.
FR-ABS-045 : SI le salarié n'a PAS pris un bloc de ≥ 14 jours ouvrables consécutifs au cours de cette période de référence ET leave_type = ANNUAL ALORS afficher un avertissement : « Rappel : la loi impose un congé principal d'au moins 14 jours ouvrables consécutifs par an. » La demande n'est PAS bloquée.
FR-ABS-04 6 : SI la demande de congé chevauche un congé déjà approuvé, ALORS appliquer la règle de résolution des chevauchements : - SI la nouvelle demande concerne un congé MALADIE ou MATERNITÉ (priorité plus élevée), ALORS diviser automatiquement le congé existant : les jours qui se chevauchent sont convertis en nouveau type de congé, et les jours de congé annuel libérés sont recrédités sur le solde de l'employé. - SI la nouvelle demande concerne un congé ANNUEL ou EXCEPTIONNEL chevauchant un congé ANNUEL, bloquer : « Vous avez déjà un congé approuvé sur cette période. Veuillez l'annuler d'abord. »
Exigences en matière de documents¶
FR-ABS-050 : Pour les types de congés pour lesquels un document justificatif est REQUIS (voir tableau B.1) :
- SI supporting_document_id IS NULL ALORS la demande passe au statut PENDING_DOCUMENT au lieu de PENDING_APPROVAL.
- L'employé voit s'afficher : « Veuillez joindre le justificatif requis pour que votre demande soit transmise à votre responsable. »
- Une fois le document téléchargé, le statut passe à PENDING_APPROVAL.
FR-ABS-051 : Les pièces justificatives sont stockées via la fonctionnalité de pièce jointe de base de la plateforme (MinIO). SI la gestion avancée des documents (ADVDOC) est active, les documents bénéficient d'un système de gestion des versions et de conservation. SI ADVDOC n'est pas active, le téléchargement/chargement de base s'applique.
*FR-ABS-052
- : Le responsable (manager) peut voir : le type de congé, les dates, le nombre de jours, le solde de l'employé, le calendrier de l'équipe. Le responsable peut voir qu'un document a été téléchargé et son nom de fichier. Le responsable NE PEUT PAS voir le certificat médical ou le contenu du document — seuls HR_MANAGER et DG ont accès aux documents relatifs aux congés médicaux.
Workflow d'approbation¶
FR-ABS-060 : L'approbation des congés suit la chaîne basée sur les unités organisationnelles de Platform Vision (FR-PV-020 à FR-PV-024) :
1. L'employé soumet → la demande est transmise au manager_id de l'unité organisationnelle
2. S'il n'y a pas de responsable dans l'unité → la demande est transmise au propriétaire de l'entreprise (DG)
3. Si l'employé EST le responsable de l'unité → la demande est transmise au responsable de l'unité parent
4. Le DG approuve lui-même (statut = SELF_APPROVED, enregistré dans la piste d'audit)
FR-ABS-061* * : L'approbateur peut :
- APPROUVER : la demande passe à APPROVED. Le solde est déduit (transaction comptable). L'employé est informé. L'événement LeaveApproved est publié.
- REJETER** : la demande passe à REJECTED. L'approbateur DOIT fournir un motif de rejet (champ obligatoire). L'employé est informé du motif. Aucun impact sur le solde.
FR-ABS-062 : Le congé maternité n'est PAS soumis à un workflow d'approbation :
- Les RH créent une déclaration de maternité → le système crée un congé avec le statut AUTO_APPROVED
- Aucune étape d'approbation par le responsable
- L'employé et le responsable sont informés des dates du congé maternité
Annulation¶
FR-ABS-070 : SI le statut de la demande est PENDING_APPROVAL ou PENDING_DOCUMENT, ALORS l'employé peut annuler librement. Statut → CANCELLED_BY_EMPLOYEE. Aucun impact sur le solde (aucune déduction n'a été effectuée).
FR-ABS-071 : SI le statut de la demande est APPROVED ET start_date > today (le congé n'a pas encore commencé), ALORS l'employé peut annuler. Statut → CANCELLED_BY_EMPLOYEE. Le solde est recrédité (transaction comptable : CANCEL_CREDIT). Le responsable et les RH sont informés. Événement LeaveCancelled publié.
FR-ABS-072 : SI le statut de la demande est APPROVED ET start_date <= today (le congé est en cours), ALORS l'employé NE PEUT PAS l'annuler lui-même. Il doit demander un retour anticipé auprès des RH. Les RH peuvent modifier la date de fin et recréditer les jours non utilisés.
FR-ABS-073 : HR_MANAGER et DG peuvent annuler TOUT congé (y compris ceux en cours) au nom d'un employé. Une raison doit être fournie. L'employé en est informé.
B.5 Règles fonctionnelles — Indemnisation des congés maladie¶
[CI — CCI]
Tableaux d'indemnisation¶
FR-ABS-080 : La rémunération des congés maladie dans CI suit les tableaux d'indemnisation CCI, différenciés par catégorie d'employé et ancienneté :
Ouvriers & Employés¶
| Ancienneté | Période de rémunération intégrale | Période de demi-rémunération | Zéro rémunération après |
|---|---|---|---|
| < 1 an | 1 mois | 3 mois | 4 mois |
| 1 à 5 ans | 1 mois | 3 mois | 4 mois |
| 6 à 10 ans | 2 mois | 3 mois | 5 mois |
| 11 –15 ans | 3 mois | 3 mois | 6 mois |
| > 15 ans | 4 mois | 4 mois | 8 mois |
Cadres & Agents de Maîtrise¶
| Ancienneté | Période de salaire complet | Période de demi-salaire | Zéro salaire après |
|---|---|---|---|
| < 1 an | 1 mois | 3 mois | 4 mois |
| 1 à 5 ans | 2 mois | 3 mois | 5 mois |
| 6 à 10 ans | 3 mois | 4 mois | 7 mois |
| 11 à 15 ans | 4 mois | 4 mois | 8 mois |
| > 15 ans | 5 mois | 5 mois | 10 mois |
** FR-ABS-081** : le module Absence suit la phase dans laquelle se trouve actuellement l'employé (salaire complet / demi-salaire / sans salaire), en fonction du nombre cumulé de jours de congé maladie au cours de la période glissante de 12 mois. Ces informations sur la phase sont incluses dans la charge utile de l'événement LeaveApproved pour que la paie puisse calculer le salaire correct.
FR-ABS-082 : SI un employé épuise son indemnités de congé maladie (atteint la phase de salaire nul), ALORS le système alerte les RH. Le reste de l'absence n'est pas rémunéré. Cela peut déclencher des procédures de licenciement pour inaptitude (gérées par le module Gestion des employés, V2).
FR-ABS-083 : les cotisations CNPS pendant le congé maladie sont calculées sur le montant effectivement versé (par exemple, pendant le demi-salaire, les cotisations CNPS sont basées sur le montant du demi-salaire, et non sur le salaire complet).
B.6 Règles fonctionnelles — Congé maternité [CI]¶
** FR-ABS-090 : Le congé maternité est de 14 semaines** au total : 6 semaines avant la date prévue de l'accouchement + 8 semaines après.
FR-ABS-091 : Les RH créent une déclaration de maternité en saisissant : - L'identifiant de l'employée - La date prévue de l'accouchement (date présumée d'accouchement) - (Facultatif) La date réelle de l'accouchement (mise à jour après la naissance)
FR-ABS-092 : Une fois la déclaration de maternité enregistrée, le système :
1. Calcule la période de 14 semaines : start_date = expected_delivery_date - 42 days, end_date = expected_delivery_date + 56 days
2. Crée un enregistrement de congé avec le statut AUTO_APPROVED et le type MATERNITY
3. Vérifie s'il y a des chevauchements entre les congés approuvés → recrédite les jours de congé annuel qui se chevauchent
4. Informe l'employé et son responsable
5. Publie l'événement LeaveApproved avec leaveType = MATERNITY, isPaid = true, payRate = 100
FR-ABS-093 : SI la date d'accouchement réelle diffère de la date prévue, ALORS les RH peuvent mettre à jour la déclaration de maternité. Le système recalcule la période de 8 semaines après l'accouchement en fonction de la date réelle. La période avant l'accouchement reste inchangée.
FR-ABS-094 : Mécanisme de rémunération du congé de maternité [CI — validé temporairement TV-ABS-01] : - L'employeur verse 100 % du salaire de l'employée pendant son congé de maternité. - L'employeur demande ensuite le remboursement intégral à la CNPS. - Coût net pour l'employeur = 0 (après remboursement). - La demande de remboursement à la CNPS est suivie mais NON traitée par le module Absence — il s'agit d'un processus comptable/RH externe au système MVP.
FR-ABS-095 : La salariée est protégée contre le licenciement pendant TOUTE la période de maternité (6 semaines avant et 8 semaines après l'accouchement). Le système n'applique PAS cette règle directement — elle est appliquée par le module Gestion des employés. Cependant, le module Absence publie le statut MaternityLeaveActive que le module Gestion des employés peut vérifier.
B.7 Règles fonctionnelles — Jours fériés [CI]¶
Jours fériés fixes (CI)¶
FR-ABS-100 : Le système précharge les jours fériés fixes CI suivants :
| Date | Nom du jour férié (FR) |
|---|---|
| 1er janvier | Jour de l'An |
| 1er mai | Fête du Travail |
| 7 août | Fête de l'Indépendance |
| 15 août | Assomption |
| 1er novembre | Toussaint |
| 15 novembre | Journée Nationale de la Paix |
| 25 décembre | Noël |
| Lundi de Pâques | Lundi de Pâques (variable — fixé par le calendrier) |
| Jeudi de l'Ascension | Ascension (variable — fixé par le calendrier) |
| Lundi de Pentecôte | Pentecôte (variable — fixé par le calendrier) |
Jours fériés islamiques variables (CI)¶
FR-ABS-101 : Les 4 jours fériés islamiques suivants ont des dates variables fixées par observation :
| Code du jour férié | Nom du jour férié (FR) |
|---|---|
EID_FITR |
Fête de la fin du Ramadan (Aïd el-Fitr) |
EID_ADHA |
Fête du sacrifice (Aïd el-Adha / Tabaski) |
MAWLID |
Anniversaire du Prophète (Mawlid) |
LAYLAT_QADR |
Nuit du Destin (Laylat al-Qadr) |
FR-ABS-102 : Les dates variables des jours fériés sont gérées à deux niveaux : 1. L'administrateur de la plateforme définit chaque année les dates par défaut pour tous les tenants CI (saisies une seule fois, elles sont reprises par tous les tenants CI) 2. *L'administrateur du tenant
- peut remplacer certaines dates de jours fériés variables pour son entreprise (par exemple, si celle-ci observe une date différente)
FR-ABS-103 : SI un jour férié tombe un dimanche, ALORS le lundi suivant est considéré comme jour férié (règle de substitution selon la pratique CI).
Impact des jours fériés sur les congés¶
FR-ABS-104 : SI un jour férié tombe pendant la période de congé annuel d'un employé, ALORS ce jour férié n'est PAS compté comme un jour de congé. Le solde de congés n'est pas déduit pour ce jour. En pratique, le congé est prolongé d'un jour par jour férié qui le chevauche.
B.8 Règles fonctionnelles — Intégration de la paie¶
Événements publiés¶
FR-ABS-110 : le module Absence publie les événements d'application Spring suivants (utilisés par la paie) :
LeaveApproved¶
Publié lorsque : une demande de congé est approuvée (ou automatiquement approuvée pour un congé maternité).
{
employeeId: UUID,
tenantId: UUID,
leaveRequestId: UUID,
leaveType: « ANNUAL » | « SICK » | « MATERNITY » | « PATERNITY » | « EXCEPTIONAL » | “UNPAID” | « UNJUSTIFIED »,
startDate: LocalDate,
endDate: LocalDate, numberOfDays: BigDecimal, // en jours calendaires
isPaid: boolean,
payRate: BigDecimal, // 100, 50 ou 0 (pourcentage)
sickLeavePhase: « FULL_PAY » | « HALF_PAY » | « ZERO_PAY » | null, // uniquement pour SICK
halfDayStart : booléen,
halfDayEnd : booléen
}
LeaveCancelled¶
Publié lorsque : un congé approuvé est annulé.
{ employeeId : UUID,
tenantId : UUID,
leaveRequestId : UUID,
leaveType : chaîne,
startDate : LocalDate,
endDate : LocalDate,
numberOfDaysCredited : BigDecimal // jours à annuler dans la paie
}
LeaveBalanceSettlement¶
Publié lorsque : un employé est licencié et dispose d'un solde de congés restant.
{
employeeId: UUID,
tenantId: UUID,
remainingBalance: BigDecimal, // en jours calendaires
lastAccrualDate: LocalDate,
terminationDate: LocalDate
}
Événements consommés¶
FR-ABS-111 : le module Absence consomme les événements suivants :
| Événement | Publié par | Action |
|---|---|---|
EmployeeCreated |
Plan de contrôle | Initialiser le solde de congés (tous les types = 0). Commencer l'accumulation à partir de la date d'embauche. |
EmployeeTerminated |
Gestion des employés / CP | Annuler automatiquement les demandes en attente. Conserver les congés approuvés pendant la période de préavis. Calculer le solde restant. Publier LeaveBalanceSettlement. |
EmployeeOffboarded |
Gestion des employés | Identique à EmployeeTerminated— déclenche le règlement. |
EmployeeReassigned |
Gestion des employés | Mettre à jour la chaîne d'approbation pour toutes les demandes en attente (nouvelle unité organisationnelle = nouveau responsable). |
ManagerChanged |
Données organisationnelles et données de base | Mettre à jour le circuit d'approbation pour toutes les demandes en attente des employés concernés. |
Dépendances API (synchrones)¶
FR-ABS-112 : le module Absence appelle les API du plan de contrôle suivantes :
| Point de terminaison | Objectif |
|---|---|
GET /api/v1/cp/org-units/{id}/manager |
Déterminer l'approbateur d'une demande de congé |
GET /api/v1/cp/employees/{id} |
Récupérer les données de l'employé (catégorie, date d'embauche, ancienneté) pour le calcul des droits acquis |
GET /api/v1/cp/employees/{id}/children |
Récupérer le nombre d'enfants pour le calcul des primes (ou à partir du noyau RH si actif) |
GET /api/v1/cp/auth/permissions |
Vérifier les autorisations des utilisateurs pour l'application du RBAC |
B.9 Machine à états — Demande de congé¶
stateDiagram-v2
[*] --> DRAFT : L'employé crée hors ligne / enregistre un brouillon
DRAFT --> PENDING_DOCUMENT : Soumettre (document requis mais manquant)
DRAFT --> PENDING_APPROVAL : Soumettre (aucun document requis OU document joint)
PENDING_DOCUMENT --> PENDING_APPROVAL : Document téléchargé
PENDING_DOCUMENT --> CANCELLED_BY_EMPLOYEE : L'employé annule
PENDING_APPROVAL --> APPROVED : Le responsable approuve
PENDING_APPROVAL --> REJETÉ : Le responsable rejette (motif requis)
EN ATTENTE D'APPROBATION --> ANNULÉ PAR L'EMPLOYÉ : L'employé annule
APPROUVÉ --> ANNULÉ PAR L'EMPLOYÉ : L'employé annule (avant la date de début)
APPROVED --> CANCELLED_BY_HR : Les RH annulent (à tout moment, motif requis)
APPROVED --> IN_PROGRESS : Date de début atteinte (transition automatique)
IN_PROGRESS --> COMPLETED : Date de fin atteinte (transition automatique) EN COURS --> RETOUR ANTICIPÉ : Les RH enregistrent un retour anticipé
EN COURS --> ANNULÉ PAR LES RH : Les RH annulent le congé en cours
REJETÉ --> [*]
ANNULÉ PAR L'EMPLOYÉ --> [*] ANNULÉ_PAR_RH --> [*]
TERMINÉ --> [*]
RETOUR PRÉCOCE --> [*]
[*] --> APPROUVÉ_AUTOMATIQUEMENT : Déclaration de maternité par RH / Auto-approbation DG
APPROUVÉ_AUTOMATIQUEMENT --> EN_COURS : Date de début atteinte
AUTO_APPROVED --> CANCELLED_BY_HR : Annulation par les RH
Descriptions des statuts¶
| Statut | Description | Impact sur le solde |
|---|---|---|
DRAFT |
Enregistré hors ligne ou comme brouillon. Pas encore soumis. | Aucun |
PENDING_DOCUMENT |
Soumis mais document justificatif requis manquant. | Aucun |
EN ATTENTE D'APPROBATION |
Soumis et en attente de l'approbation du responsable. | Aucun (solde réservé mais non déduit) |
APPROUVÉ |
Approuvé par le responsable. Le congé est confirmé. | Solde déduit (transaction DEBIT dans le grand livre) |
AUTO_APPROVED |
Congé maternité ou auto-approbation DG. Aucune étape d'approbation manuelle. | Solde déduit (ou N/A pour le congé maternité) |
REJETÉ |
Rejeté par le responsable avec justification. | Aucun |
ANNULÉ_PAR_L'EMPLOYÉ |
L'employé a annulé la demande. | Si APPROUVÉ : solde recrédité (transaction CRÉDIT dans le grand livre) |
ANNULÉ_PAR_RH |
RH/DG a annulé la demande. | Si APPROUVÉE/EN_COURS : solde recrédité proportionnellement |
EN_COURS |
Le congé a commencé (date actuelle ≥ date_début). | Déjà déduit à APPROUVÉ |
TERMINÉ |
La période de congé est terminée. | Aucun impact supplémentaire |
EARLY_RETURN |
L'employé est revenu avant la date_de_fin. Les RH ont ajusté la date de fin. | Jours non utilisés recrédités |
B.10 Règles fonctionnelles — Grand livre des soldes¶
Types de transactions du grand livre¶
FR-ABS-120 : chaque modification du solde de congés est enregistrée comme une transaction immuable du grand livre :
| Type de transaction | Description | Signe du montant |
|---|---|---|
MONTHLY_ACCRUAL |
Accumulation mensuelle régulière (2,2 jours ouvrables) | + (crédit) |
SENIORITY_BONUS |
Prime d'ancienneté annuelle au début de la période | + (crédit) |
CHILDREN_BONUS |
Prime annuelle pour enfants au début de la période | + (crédit) |
LEAVE_DEBIT |
Jours déduits lorsque le congé est approuvé | – (débit) |
CANCEL_CREDIT |
Jours recrédités lorsque le congé est annulé | + (crédit) |
EARLY_RETURN_CREDIT |
Jours recrédités en cas de retour anticipé | + (crédit) |
OVERLAP_CREDIT |
Jours recrédités lorsqu'un congé prioritaire remplace un congé existant | +(crédit) |
CARRY_OVER |
Jours reportés de la période précédente | + (crédit) |
EXPIRY |
Jours expirés à la fin de la période de référence (politique de report) | – (débit) |
MANUAL_ADJUSTMENT |
Le service RH ajuste manuellement le solde (avec justification) | +/– |
SETTLEMENT |
Solde remis à zéro à la fin du contrat (solde restant envoyé à la paie) | – (débit) |
FR-ABS-121 : Chaque transaction comptable enregistre :
- id (UUID)
- tenant_id
- employee_id
- leave_type (ANNUAL, compteur SICK, compteur EXCEPTIONAL, etc.)
- transaction_type (à partir du tableau ci-dessus)
- amount (BigDecimal, en jours ouvrables — source de vérité)
- amount_calendaires (BigDecimal, calculé : montant × 1,25)
- amount_ouvres (BigDecimal, calculé : montant × 5/6)
- reference_id (FK vers leave_request ou adjustment — nullable)
- reason (texte — requis pour MANUAL_ADJUSTMENT, EXPIRY, SETTLEMENT)
- created_at (horodatage)
- created_by ( user_id)
FR-ABS-122 : Le solde actuel pour un employé/type_de_congé est calculé comme suit :
Pour des raisons de performance, un champ current_balance mis en cache est conservé dans le profil de congé de l'employé et mis à jour à chaque transaction. Le grand livre est la source de vérité — le solde mis en cache peut être recalculé à tout moment.
** FR-ABS-123 : Toutes les transactions du grand livre sont immuables** — aucune mise à jour, aucune suppression. Les corrections sont effectuées en ajoutant une nouvelle transaction d'annulation (par exemple, CANCEL_CREDIT pour annuler un LEAVE_DEBIT).
B.11 Tableau de décision — Exigences en matière de documents¶
| Type de congé | Document requis ? | Type de document | Blocage définitif ? | Date limite de téléchargement |
|---|---|---|---|---|
| ANNUEL | ❌ Non | — | — | — |
| MALADIE | ✅ Oui | Certificat médical | ✅ Oui — ne peut être approuvé sans | Avant approbation |
| MATERNITÉ | ✅ Oui | Attestation médicale (grossesse) | ✅ Oui — ne peut être créé sans | À la déclaration de maternité |
| PATERNITÉ | ✅ Oui | Acte de naissance | ||
| ✅ Oui — ne peut être approuvé sans | Avant approbation | |||
| EXCEPTIONNEL | ✅ Oui | Justificatif (certificat de mariage, certificat de décès, etc.) | ✅ Oui — ne peut être approuvé sans | Avant approbation |
| NON PAYÉ | ❌ Non | — | — | — |
| NON JUSTIFIÉ | ❌ Non | — | — | — |
B.12 Tableau décisionnel — Résolution des chevauchements¶
| Congé existant | Nouvelle demande | Résolution |
|---|---|---|
| ANNUEL (approuvé) | MALADIE | Répartition automatique : les jours qui se chevauchent deviennent des jours de MALADIE. Les jours annuels sont recrédités. |
| ANNUEL (approuvé) | MATERNITÉ | Répartition automatique : les jours qui se chevauchent deviennent des jours de MATERNITÉ. Les jours annuels sont recrédités. |
| ANNUEL (approuvé) | ANNUEL | Bloqué : « Vous avez déjà un congé approuvé sur cette période. » |
| ANNUEL (approuvé) | EXCEPTIONNEL | Bloqué : « Vous avez déjà un congé approuvé sur cette période. » |
| MALADIE (approuvé) | MATERNITÉ | Répartition automatique : les jours qui se chevauchent deviennent des jours de MATERNITÉ. Congés maladie ajustés. |
| MALADIE (approuvé) | ANNUEL | Bloqué. |
| MATERNITÉ (approuvé automatiquement) | Tout type | Bloqué : « Vous êtes en congé maternité sur cette période. » |
| Tout (EN ATTENTE) | Tout | Avertissement : « Vous avez une demande en attente sur cette période. » Autoriser la soumission. |
B.13 Exigences en matière de données¶
Entités clés¶
leave_type_config (Types de congés configurables par le tenant)¶
| Champ | Type | Nullable ? | Description |
|---|---|---|---|
id |
UUID | ❌ | Clé primaire |
tenant_id |
UUID | ❌ | Isolation du tenant |
code |
VARCHAR(20) | ❌ | ANNUAL, SICK, MATERNITY, etc. |
name_fr |
VARCHAR(100) | ❌ | Nom affiché en français |
is_paid |
BOOLEAN | ❌ | Indique si ce type de congé est rémunéré |
requires_document |
BOOLEAN | ❌ | Indique si un justificatif est requis |
requires_approval |
BOOLEAN | ❌ | Si l'approbation du responsable est nécessaire (faux pour le congé maternité) |
accrual_based |
BOOLEAN | ❌ | Si le solde est suivi (vrai pour les congés annuels, faux pour les congés maladie) |
max_days_per_year |
DECIMAL | ✅ | Plafond annuel(par exemple, 10 pour les permissions exceptionnelles) |
is_system |
BOOLEAN | ❌ | Vrai pour les types définis par le système (ne peuvent pas être supprimés) |
is_active |
BOOLEAN | ❌ | Suppression temporaire |
country_code |
VARCHAR(2) | ❌ | CI, BJ, CM — pour la prise en charge de plusieurs pays |
leave_request (Demandes de congés individuelles)¶
| Champ | Type | Nullable ? | Description |
|---|---|---|---|
id |
UUID | ❌ | Clé primaire |
tenant_id |
UUID | ❌ | Isolation des tenants |
employee_id |
UUID | ❌ | FK vers employee |
leave_type_code |
VARCHAR(20) | ❌ | FK vers leave_type_config.code |
event_type_code |
VARCHAR(30) | ✅ | Pour les CAS EXCEPTIONNELS : MARRIAGE_SELF, DEATH_SPOUSE, etc. |
start_date |
DATE | ❌ | Premier jour d'absence |
end_date |
DATE | ❌ | Dernier jour d'absence (inclus) |
half_day_start |
BOOLEAN | ❌ | Vrai = après-midi uniquement à la date de début |
half_day_end |
BOOLEAN | ❌ | Vrai = matin uniquement à la date de fin |
number_of_days |
DECIMAL | ❌ | Calculé : dans l'unité de déduction du tenant |
number_of_days_ouvrables |
DECIMAL | ❌ | Toujours stocké en jours ouvrables (source de vérité) |
status |
VARCHAR(30) | ❌ | Voir machine à états (B.9) |
reason |
TEXT | ✅ | Motif de la demande de congé de l'employé |
rejection_reason |
TEXT | ✅ | Motif du refus du responsable |
cancellation_reason |
TEXT | ✅ | Motif de l'annulation (obligatoire pour les annulations RH) |
approver_id |
UUID | ✅ | FK vers l'utilisateur — qui a approuvé/refusé |
is_retroactive |
BOOL EAN | ❌ | Vrai si start_date < date de soumission |
supporting_document_id |
UUID | ✅ | FK vers le document (MinIO) |
submitted_offline |
BOOLEAN | ❌ | Vrai si créé hors ligne et soumis automatiquement |
created_at |
TIMESTAMP | ❌ | |
updated_at |
TIMESTAMP | ❌ | |
created_by |
UUID | ❌ | FK vers l'utilisateur |
leave_balance_ledger (Registre des transactions)¶
Voir FR-ABS-121 pour la liste complète des champs.
leave_employee_profile (Configuration des congés par employé)¶
| Champ | Type | Nullable ? | Description |
|---|---|---|---|
id |
UUID | ❌ | Clé primaire |
tenant_id |
UUID | ❌ | Isolation des tenants |
employee_id |
UUID | ❌ | FK vers l'employé (unique par tenant) |
annual_balance_ouvrables |
DECIMAL | ❌ | Solde annuel actuel des congés annuels mis en cache (jours ouvrables) |
exceptional_days_used_this_period |
DECIMAL | ❌ | Compteur pour le plafond de 10 jours |
sick_days_current_rolling_12m |
DECIMAL | ❌ | Compteur des jours de congé maladie sur 12 mois glissants (pour la phase du tableau CCI) |
sick_leave_phase |
VARCHAR(20) | ✅ | FULL_PAY, HALF_PAY, ZERO_PAY — phase actuelle de congé maladie |
number_of_children_under_21 |
INTEGER | ❌ | Pour la prime pour enfants (si HR Core n'est pas actif) |
reference_period_start |
DATE | ❌ | Début de la période de référence actuelle |
last_accrual_date |
DATE | ✅ | Dernier mois pour lequel l'accumulation a été traitée |
public_holiday (Jours fériés par pays et par an)¶
| Champ | Type | Nullable ? | Description |
|---|---|---|---|
id |
UUID | ❌ | Clé primaire |
country_code |
VARCHAR(2) | ❌ | CI, BJ, CM |
year |
INTEGER | ❌ | Année civile |
date |
DATE | ❌ | Date du jour férié |
name_fr |
VARCHAR(100) | ❌ | Nom du jour férié |
holiday_code |
VARCHAR(30) | ❌ | EID_FITR, CHRISTMAS, etc. |
is_fixed |
BOOLEAN | ❌ | Vrai pour les jours fériés à date fixe |
| source | VARCHAR(20) | ❌ | PLATFORM (admin) ou TENANT (remplacement) |
| tenant_id | UUID | ✅ | NULL pour le niveau plateforme ; tenant_id pour la remplacement tenant |
exceptional_leave_config (Durées exceptionnelles des autorisations spécifiques au tenant)¶
| Champ | Type | Nullable ? | Description |
|---|---|---|---|
id |
UUID | ❌ | Clé primaire |
tenant_id |
UUID | ❌ | Isolation du tenant |
event_type_code |
VARCHAR(30) | ❌ | MARRIAGE_SELF, DEATH_SPOUSE, etc. |
duration_days |
DECIMAL | ❌ | Durée configurée par le tenant (doit être ≥ au minimum CCI) |
cci_minimum_days |
DECIMAL | ❌ | Minimum légal CCI (seuil imposé par le système) |
country_code |
VARCHAR(2) | ❌ | CI |
maternity_declaration (Suivi de maternité)¶
| Champ | Type | Nullable ? | Description |
|---|---|---|---|
id |
UUID | ❌ | Clé primaire |
tenant_id |
UUID | ❌ | Isolation des tenants |
employee_id |
UUID | ❌ | FK vers l'employé |
expected_delivery_date |
DATE | ❌ | Date présumée d'accouchement |
actual_delivery_date |
DATE | ✅ | Mise à jour après la naissance |
leave_request_id |
UUID | ❌ | FK vers la demande de congé créée automatiquement |
created_at |
TIMESTAMP | ❌ | |
created_by |
UUID | ❌ | RH qui a enregistré la déclaration |
B.14 Implications multi-tenants¶
FR-ABS-130 : TOUTES les requêtes de base de données dans le module Absence DOIVENT inclure tenant_id dans la clause WHERE. Aucune exception.
FR-ABS-131 : Les configurations de type de congé, les durées d'exception d'autorisation, les politiques de report et les remplacements de jours fériés sont à l'échelle du tenant. Chaque tenant dispose de sa propre copie issue des valeurs par défaut CI lors de la création du tenant.
FR-ABS-132 : Comportement multi-tenants par profil de base de données :
| Profil | Comportement |
|---|---|
| Base de données partagée | Tous les tenants dans une seule base de données. Colonne tenant_id dans chaque table. Isolation au niveau des lignes. |
| Schéma par tenant | Chaque tenant dispose de son propre schéma. tenant_id est toujours présent pour des raisons de cohérence, mais le schéma offre une isolation supplémentaire. |
| DB-per-tenant | Chaque tenant dispose de sa propre base de données. Connexion acheminée par tenant. |
| BYO-DB | Le tenant fournit sa propre base de données. Le schéma du module d'absence est migré vers sa base de données. |
FR-ABS-133 : Les configurations spécifiques au tenant (types de congés, durées de congés exceptionnels, politiques de report) sont initialisées avec les valeurs par défaut légales de CI lorsqu'un nouveau tenant CI est créé. Le tenant peut ensuite les personnaliser.
FR-ABS-134 : Les jours fériés au niveau de la plateforme (fixes + dates variables définies par l'administrateur de la plateforme ) sont stockés séparément des remplacements au niveau du tenant. La liste des jours fériés effectifs pour un tenant est la suivante : jours fériés de la plateforme + remplacements du tenant (les remplacements du tenant remplacent les valeurs par défaut de la plateforme pour le même holiday_code).
B.15 Dépendances entre modules¶
Dépendances sur d'autres modules (Absence CONSUME)¶
| Module | Type de dépendance | Ce dont Absence a besoin |
|---|---|---|
| Plan de contrôle | Rigide (doit exister) | Entité employé, hiérarchie des unités organisationnelles, résolution du responsable, autorisations RBAC, configuration du tenant |
| HR Core | Souple (amélioration facultative) | Si actif : données plus riches sur les employés (enfants avec date de naissance pour le calcul des primes). Si inactif : le module Absence gère directement le champ number_of_children_under_21. |
| Gestion des employés | Souple (événements uniquement) | Consomme les événements EmployeeTerminated, EmployeeOffboarded, EmployeeReassigned |
| Données organisationnelles et données de référence | Soft (événements uniquement) | Consomme l'événement ManagerChanged pour mettre à jour le circuit d'approbation |
| Gestion avancée des documents | Soft (amélioration facultative) | Si actif : les documents justificatifs bénéficient d'un contrôle de version et d'une conservation. Si non : téléchargement MinIO de base. |
Dépendances À PARTIR d'autres modules (Absence FOURNIT)¶
| Module | Type de dépendance | Ce que fournit Absence |
|---|---|---|
| Paie | Événements | Événements LeaveApproved, LeaveCancelled, LeaveBalanceSettlement avec charge utile complète (voir B.8) |
| Présence QR | Information | Les données d'absence peuvent être utilisées par Présence pour marquer automatiquement les absences prévues (intégration V2) |
PARTIE C — Contraintes et limites¶
C.1 Conformité réglementaire [CI]¶
Code du travail 2015 (loi n° 2015-532)¶
| Règle | Article | Mise en œuvre |
|---|---|---|
| Congés annuels : 2 jours/mois minimum | Art. 25.1 | Le système utilise le taux CCI (2,2 jours/mois, plus favorable) |
| Congés après 12 mois de service | Art.25.5 | FR-ABS-006 : blocage des congés annuels avant 12 mois |
| Minimum 14 jours consécutifs | Art. 25.6 | FR-ABS-045 : avertissement souple |
| L'employeur donne un préavis de 15 jours | Art. 25.7 | FR-ABS-044 : avertissement souple |
| Pas de paiement compensatoire pendant le contrat | Art. 25.12 | FR-ABS-023 : pas de fonctionnalité de paiement |
| Paiement obligatoire au départ | Art. 25.9 | FR-ABS-024 : événement de règlement à la Paie |
| Maternité : 14 semaines | Art. 23.X | FR-ABS-090 |
| Protection contre le licenciement pendant la maternité | Art. 23.X | FR-ABS-095 : statut publié dans la gestion des employés |
Convention Collective Interprofessionnelle (CCI 1977)¶
| Règle | Article | Mise en œuvre |
|---|---|---|
| Congés annuels : 2,2 j./mois (plus favorable) | CCI Art. 25 | FR-ABS -001 : taux d'accumulation de base |
| Primes d'ancienneté | CCI Art. 46 | FR-ABS-010 : tableau des primes d'ancienneté |
| Permissions exceptionnelles | CCI Art. 25 | B.1 : tableau complet des événements avec un plafond de 10 jours |
| Tableaux d'indemnisation des congés maladie | CCI Art. 28-29 | B.5 : tableaux CCI complets par catégorie et d'ancienneté |
CNPS (Caisse Nationale de Prévoyance Sociale)¶
| Règle | Mise en œuvre |
|---|---|
| Maternité : la CNPS rembourse l'employeur | FR-ABS-094 : suivi, mais processus de demande de remboursement CNPS hors du système pour MVP |
| Congés maladie Cotisations CNPS sur le salaire réel | FR-ABS-083 : base CNPS = montant réellement versé |
| Absences considérées comme des périodes d'emploi pour la CNPS | FR-ABS-016 : l'accumulation se poursuit pendant les absences autorisées |
C.2 Exigences de localisation¶
| Dimension | Valeur | Remarques |
|---|---|---|
| Langue principale | Français | Toutes les étiquettes de l'interface utilisateur, les messages d'erreur et les notifications en français |
| Format de la date | JJ/MM/AAAA | « 15/03/2026 » et non « 2026-03-15 » |
| Devise | XOF | 0 décimale. « 15 000 FCFA » et non « 15 000,00 FCFA » |
| Comptage des jours | Jours ouvrables comme base légale, avec conversion en jours calendaires/ouvrés | Voir FR-ABS-003 |
| Séparateur de milliers | Espace | « 1 000 » et non « 1,000 » |
| Clés i18n | Toutes les chaînes destinées aux utilisateurs sont externalisées | Prêt pour une future version en anglais (CM bilingue) |
| Conventions de nommage | Format « NOM Prénom » | Le nom de famille en majuscules est courant dans CI |
C.3 Exigences de sécurité¶
Autorisations RBAC (module Absence)¶
| Autorisation | EMPLOYÉ | RESPONSABLE | RESPONSABLE RH | DG |
|---|---|---|---|---|
| Afficher son propre solde | ✅ | ✅ | ✅ | ✅ |
| Soumettre une demande de congé | ✅ (propre) | ✅ (propre) | ✅ (propre + tout employé) | ✅ (propre, auto-approuvé) |
| Annuler sa propre demande | ✅ | ✅ | ✅ | ✅ |
| Afficher le calendrier de l'équipe | ❌ | ✅ (subordonnés directs) | ✅ (tous les employés) | ✅ (tous les employés) |
| Approuver/refuser les demandes | ❌ | ✅ (subordonnés directs) | ✅ (tout employé) | ✅ (tout employé) |
| Annuler les congés des autres | ❌ | ❌ | ✅ (avec justification) | ✅ (avec justification) |
| Remplacer le solde (ajustement manuel) | ❌ | ❌ | ✅ | ✅ |
| Configurer les types de congés | ❌ | ❌ | ✅ | ✅ |
| Configurer les jours fériés | ❌ | ❌ | ✅ | ✅ |
| Configurer la politique de report | ❌ | ❌ | ✅ | ✅ |
| Consulter les documents médicaux | ❌ | ❌ | ✅ | ✅ |
| Créer une déclaration de maternité | ❌ | ❌ | ✅ | ✅ |
| Consulter le tableau de bord des absences | ❌ | ✅ (équipe) | ✅ (tous) | ✅ (tous) |
Règles d'accès aux données¶
FR-ABS-140 : Le MANAGER peut voir le type de congé et les dates de ses subordonnés directs, mais NE PEUT PAS consulter les pièces justificatives (certificats médicaux, etc.). Seuls HR_MANAGER et DG peuvent consulter les documents téléchargés.
FR-ABS-141 : L'EMPLOYÉ ne peut voir que ses propres données de congé. Il peut consulter le calendrier de l'équipe, mais uniquement le statut de présence/absence (et non les types de congé des autres).
FR-ABS-142 : Tous les ajustements du solde de congés (MANUAL_ADJUSTMENT) nécessitent une justification et génèrent une entrée dans la piste d'audit visible par l'administrateur du tenant.
FR-ABS-143 : La piste d'audit du module Absence enregistre : - Chaque création, modification de statut ou annulation de demande de congé - Chaque ajustement de solde (manuel ou automatique) - Chaque modification de configuration (types de congés, jours fériés, politique de report) - Qui a fait quoi, quand, avec les valeurs avant/après
C.4 Hors champ d'application¶
Ce module ne gère PAS :
- Les calculs de paie — Le module Absence détermine les types de congés, les jours et les phases (salaire complet/demi-salaire/sans salaire). La paie calcule les retenues et indemnités financières réelles.
- Demandes de remboursement CNPS — Le remboursement CNPS pour maternité est un processus comptable/RH externe au système MVP.
- Licenciement pour inaptitude — Si un employé épuise ses congés maladie, le module Absence alerte les RH. Le processus de licenciement proprement dit relève de la responsabilité de la gestion des employés (V2).
- Configuration de la convention collective — MVP utilise la CCI 1977 comme base de référence. Les conventions sectorielles qui prévalent sur les règles de congé de la CCI sont en V2.
- Suivi du temps / présence — Absence enregistre les absences d'un employé. Il ne suit PAS les heures d'arrivée/de départ (module QR Attendance).
- Planification des congés à l'échelle de l'entreprise — Les règles de couverture, les niveaux minimaux de personnel et la planification basée sur le calendrier sont UNIQUEMENT DISPONIBLES POUR LES ENTREPRISES V2.
- Registre des absences exportable — Le registre officiel des absences pour l'exportation vers l'inspection du travail est V2.
- Règles nationales BJ et CM — Les types de congés, les taux d'accumulation et les jours fériés pour le Bénin et le Cameroun sont V2 (mois 9).
- Notifications par SMS — MVP utilise uniquement l'application et les e-mails. Les SMS sont disponibles sur toute la plateforme V2.
- Congé de formation / Congé syndical — Les types de congés de formation et syndicaux sont disponibles dans la version V2.
- Workflows d'approbation avancés — L'approbation automatique basée sur le type, l'escalade basée sur le montant et la délégation sont disponibles dans la version V2.
- Opérations par lots — La création massive de congés et les ajustements massifs de soldes sont disponibles UNIQUEMENT POUR ENTERPRISE V2.
- Accumulation de congés pour les stagiaires / journaliers — Certains types de contrats peuvent avoir des règles d'accumulation différentes. MVP suppose que tous les employés actifs accumulent des congés au taux CCI. Les règles spécifiques au type de contrat sont disponibles dans la version V2.
Fin de PRD+FSD Hybrid — Gestion des absences (ABSMGT) v1.0