3.8 KiB
3.8 KiB
01 — Saisir, sauvegarder et figer les jours déjà posés
What to build: L’utilisateur déclare ses jours non travaillés directement dans le calendrier, les retrouve après rechargement et obtient un calcul qui garde ces dates et types fixes sans débiter à nouveau ses soldes restants.
Blocked by: None — can start immediately.
Status: ready-for-agent
GitLab: #61
Source : issue #13, entretien et spécification de développement. Respecter le glossaire du domaine et les ADR 0002, 0005, 0006 et 0007.
- Un mode explicite « Saisir les jours déjà posés » présente l’horizon actuellement choisi et permet de sélectionner CP, RTT ou Autre. Autre couvre toutes les autres raisons de ne pas travailler ; ANY reste uniquement un sélecteur de règle.
- Un clic sur une date admissible ajoute le type sélectionné ; un deuxième clic avec ce type supprime la déclaration ; un clic avec un autre type la remplace. Une date porte au maximum une déclaration.
- Seuls les jours du lundi au vendredi hors jours fériés français nationaux sont admissibles. Les commandes et les cases sont utilisables au clavier ; le type et le marquage immédiat « Déjà posé » sont accessibles aux lecteurs d’écran et reconnaissables sans la seule couleur.
- Les déclarations sont sauvegardées automatiquement dans le navigateur, indépendamment des soldes et de l’horizon, puis restaurées avant le calcul initial. En l’absence de déclarations sauvegardées, la liste est vide. Changer d’horizon conserve les dates hors de la période affichée et leurs types.
- Ajouter, supprimer ou remplacer une déclaration ne modifie aucune quantité de solde. Une déclaration n’exige pas de solde source et ne devient pas un placement consommant un droit.
- Les clics de saisie ne lancent pas de calcul. Calculer soumet les déclarations avec les autres saisies ; en consultation, le résultat précédent conserve son horizon et ses déclarations jusqu’au résultat du nouveau calcul. Modifier les saisies après soumission ne change pas le contexte de ce calcul.
- Le chemin de calcul direct et le worker utilisent les mêmes déclarations. Aucun nouveau placement, déplacement d’optimisation ou déplacement hypothétique ne peut occuper une date déclarée ; aucune déclaration ne peut être déplacée, supprimée ou retypée par ces opérations.
- Le calendrier de consultation identifie les déclarations du résultat comme des saisies utilisateur, avec leur type et sans débit ni décision d’optimisation fictifs. Les explications, la trace originale et les comparaisons des nouveaux placements conservent les données du calcul qui les a produits.
- Une annulation avec un meilleur plan valide conserve ses déclarations fixes ; une annulation sans plan conserve le résultat incomplet existant. Les données malformées relèvent d’une entrée invalide, et une requête sans déclaration conserve le comportement existant.
- Les tests de comportement couvrent les trois opérations de saisie, l’accessibilité, les dates interdites, la restauration et la conservation hors horizon, l’absence de modification des soldes, la soumission explicite et l’immuabilité du résultat. Un scénario de planification sans règle vérifie l’absence de chevauchement par le chemin direct et le worker, y compris dans un plan annulé et une comparaison de date.
Les périodes de repos et les contributions aux règles seront ajoutées par les tickets suivants. Ce ticket est démontrable avec des règles désactivées : déclarer une date, calculer des congés restants, constater qu’elle reste fixe et ne reçoit aucun nouveau placement, puis recharger la page.