docs(absences) : aide /help du module + revue de conformité légale

- frontend/content/help/06-absences.md : nouveau chapitre d'aide « Absences »
  (poser une demande, lecture des soldes, mode de décompte des CP, ajout d'un
  salarié — nouveau ou déjà présent via le solde initial). Enregistré dans help.vue.
- revue de conformité (Syntec/RGPD) du module absences : rapport d'audit avec
  constats légaux et RGPD + recommandations.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Matthieu
2026-05-22 14:29:01 +02:00
parent 11fdf8d1bf
commit 4858f73d07
3 changed files with 188 additions and 0 deletions

View File

@@ -0,0 +1,72 @@
# Absences
Le module **Absences** gère les congés des salariés : demande, validation, et suivi des soldes de congés payés (CP) et des congés pour événements (mariage/PACS, décès, congé parental, maladie).
Il y a deux espaces :
- **Mes absences** (`/absences`) — accessible à tout salarié : poser une demande et consulter ses soldes.
- **Absences équipe** (`/team-absences`) — réservé aux **administrateurs** : valider les demandes, voir le calendrier d'équipe, ajuster les soldes et gérer la fiche RH des salariés.
> 🛡️ La gestion des salariés (onglet *Employés*) et la validation des demandes sont aujourd'hui réservées au rôle **ROLE_ADMIN**.
## Poser une demande (tout salarié)
Depuis **Mes absences** → bouton *Nouvelle demande* :
1. **Type** : Congés payés, Mariage/PACS, Congé parental, Décès, ou Maladie.
2. **Dates** : début et fin. Une **demi-journée** (matin / après-midi) peut être posée sur le premier ou le dernier jour (décompte 0,5).
3. **Motif** (optionnel) et **justificatif** (selon le type).
La demande passe au statut **En attente**. Les jours sont immédiatement **réservés** dans le solde « en attente » pour éviter de poser deux fois les mêmes congés. Un administrateur valide ou refuse ensuite la demande.
## Lire ses soldes
Chaque solde de CP se lit sur une **période de référence** (par défaut **1er juin → 31 mai**) et se décompose en :
| Bucket | Signification |
|---|---|
| **Acquis (N-1)** | Jours déjà acquis sur la période précédente, **disponibles** maintenant |
| **En cours d'acquisition (N)** | Jours qui s'accumulent ce mois-ci, disponibles à la prochaine période |
| **En attente** | Jours réservés par des demandes non encore validées |
| **Pris** | Jours de demandes validées |
Le **disponible** = acquis + acquis-en-cours en attente pris.
## Comment les congés payés sont comptés
L'acquisition est **mensuelle**, créditée par une tâche planifiée (commande `app:accrue-leave`, lancée par un cron en début de mois) :
```
acquisition mensuelle = (jours de CP annuels ÷ 12) × quotité de travail
```
Pour un temps plein à **25 jours/an**, cela fait **≈ 2,08 jour/mois** crédités dans « en cours d'acquisition (N) ». À chaque changement de période de référence, le « en cours (N) » bascule automatiquement en « acquis (N-1) ».
Le décompte d'une absence ne compte que les **jours ouvrés** (lundi→vendredi) ; les week-ends sont ignorés. Les arrêts **maladie** ne sont pas déduits du solde de CP.
## Ajouter un salarié
> Aujourd'hui réalisé par un **administrateur** depuis **Absences équipe → onglet *Employés* → *Ajouter / Modifier***.
Cocher *Employé* sur la fiche d'un utilisateur l'intègre à la gestion des absences. La fiche RH demande :
| Champ | Rôle | Valeur typique |
|---|---|---|
| **Date d'embauche** | Début du contrat | date réelle |
| **Type de contrat** | CDI, CDD, Stage, Alternance, Autre | — |
| **Quotité de travail** | Temps plein = `1.0`, mi-temps = `0.5` | `1.0` |
| **CP annuels** | Jours de CP acquis par an | `25` |
| **Début de période de référence** | Format `MM-JJ` | `06-01` |
| **Solde initial de CP** | Jours déjà acquis et disponibles à l'activation | voir ci-dessous |
### Nouveau salarié qui arrive
Renseigner date d'embauche, contrat, quotité, `25` CP annuels et `06-01` de période. Laisser le **solde initial à `0`** : le salarié commence à acquérir ses CP au prochain passage mensuel.
### Salarié déjà présent avant l'activation du module
C'est le **solde initial de CP** qui sert à reprendre l'existant. Y saisir le **nombre de jours de CP déjà acquis et disponibles** par le salarié au moment où on active le module.
Au premier calcul mensuel, cette valeur amorce le bucket **« acquis (N-1) »** (donc immédiatement disponible), puis l'acquisition normale (~2,08 j/mois) reprend par-dessus. Les salariés déjà présents sont ainsi « comptés » sans repartir de zéro — il suffit de connaître leur solde de départ (depuis l'ancien suivi : tableur, fiches de paie, etc.).
> 💡 En cas d'erreur de reprise, un administrateur peut **ajuster un solde** à la main depuis l'onglet *Soldes* (régularisation).