[#SIRH] Récap salaire: exclure les salariés sans contrat sur le mois

Le récap listait tous les employés sans filtrer le contrat: un salarié au
contrat terminé (ex. Marine, fin 26/02) apparaissait sur le récap de juin.
Ajout du filtre hasContractInRange (même règle que l'impression absences) sur
la période [from, to] du mois imprimé.

4 tests ajoutés. Vérifié sur données prod (Marine + 6 autres contrats terminés
exclus du mois de juin, 39 salariés contractés conservés).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-02 08:10:54 +02:00
parent 7886666812
commit 94cf8eb7a9
5 changed files with 76 additions and 2 deletions
+1
View File
@@ -63,6 +63,7 @@ Documents complementaires:
- masqué si aucun contrat à cette date (cas rarissime en vue jour puisque l'employé est alors déjà filtré)
- **Vue Jour (Heures) — contrat à la date affichée** : le mode de suivi (saisie d'heures vs cases de présence), le libellé de contrat et la logique de sauvegarde sont résolus selon la période de contrat valable à la date filtrée (champs `trackingMode`/`weeklyHours`/`contractType`/`contractName` portés par `WorkHourDayContext`, alimentés par `EmployeeContractResolver::resolveForEmployeeAndDate`), et non selon le contrat courant de l'employé. Un salarié passé 39h/35h → Forfait conserve donc la saisie d'heures sur ses dates antérieures à la bascule, et bascule en cases de présence à partir de la date de passage en forfait. La vue Semaine était déjà résolue par date.
- **Exports heures annuelles (par salarié et tous salariés)** : affichent **tous les jours sous contrat**, même vides ou non saisis, jusqu'à la date du jour ; seuls les jours hors contrat (avant embauche, après départ, suspension) sont omis. Les samedis et dimanches sont grisés (gris foncé), les jours fériés en bleu.
- **Récap salaire (export PDF mensuel)** : seuls les salariés ayant un contrat couvrant tout ou partie du mois imprimé apparaissent (filtre `hasContractInRange`). Un salarié dont le contrat est terminé avant le mois (ex. parti en février) n'est pas listé sur le récap des mois suivants.
## 4) Absences