3.5 KiB
3.5 KiB
03 — Compter les jours déclarés dans les règles de période
What to build: Une règle TIME_WINDOW reconnaît les jours non travaillés déjà déclarés de type compatible et ne demande au calcul que les congés supplémentaires nécessaires. Le résultat explique ces contributions sans leur attribuer un débit de solde.
Blocked by:
- 01 — Saisir, sauvegarder et figer les jours déjà posés (#61).
Status: ready-for-agent
GitLab: #63
Source : issue #13, entretien et spécification de développement. Respecter les quantités, fenêtres inclusives, obligations conjointes, priorités et contributions partagées du glossaire, ainsi que l’ADR 0007.
- Dans une semaine ordinaire, avec quatre CP restants, un mercredi déclaré CP et une obligation de cinq CP du lundi au vendredi, le calcul ajoute quatre CP et débite uniquement ces quatre jours.
- Les déclarations compatibles contribuent aux obligations exactes et aux préférences demandant jusqu’à une quantité donnée, dans l’intersection entre la fenêtre inclusive de la règle et l’horizon soumis. Une déclaration extérieure à ces limites ne contribue pas à la règle.
- CP, RTT et Autre satisfont uniquement leur type ou ANY. Un RTT déclaré ne satisfait pas une demande de CP ; le calcul conserve sa date et son type et cherche d’autres jours disponibles si la règle le demande.
- Une règle entièrement satisfaite par les déclarations n’ajoute aucun placement pour elle. Une règle partiellement satisfaite ne provoque aucun nouveau débit pour les jours déclarés.
- Un même jour déclaré peut contribuer à plusieurs règles compatibles, y compris des obligations et préférences simultanées. La satisfaction conjointe des obligations et l’ordre des préférences restent ceux du planificateur existant.
- Si les déclarations compatibles dépassent la quantité d’une obligation exacte, seules les contributions nécessaires à cette quantité sont attribuées à la règle ; toutes les dates et tous les types déclarés restent fixes. Par exemple, trois CP déclarés dans une fenêtre exigeant deux CP satisfont la règle sans nouveau placement ni suppression d’une déclaration.
- Le résultat et ses explications distinguent les contributions des déclarations de celles des placements consommant un solde. La trace originale ne présente aucun débit fictif. Une comparaison déplace seulement le placement choisi et conserve les déclarations et les obligations satisfaites du calcul d’origine.
- Une demande valide mais conjointement impossible reste un conflit de planification expliqué ; une entrée malformée reste une entrée invalide. Des déclarations de type incompatible ne sont pas transformées pour satisfaire une obligation, y compris dans un plan valide retenu à l’annulation.
- Les tests de comportement couvrent le cas cinq CP dont un déclaré, une règle entièrement satisfaite sans solde, les trois types et ANY, le partage entre règles, les fenêtres inclusives, les conflits typés, les contributions en surplus et les explications/comparaisons conservant le contexte soumis.
Le traitement des déclarations en surplus a été confirmé pendant le découpage : attribuer à l’obligation sa quantité demandée et conserver toutes les dates déclarées.