Les jours non travaillés déclarés participent aux motifs de règles autour des jours fériés et peuvent générer des droits acquis utilisables plus tard dans le plan, sans ajouter une seconde fois les droits déjà disponibles dans les soldes de l’entreprise.
issue #13, entretien et spécification de développement. Respecter les occurrences et modes IF_THEN, les droits acquis et l’ordre des objectifs du glossaire, ainsi que les ADR sur les artefacts du même calcul et l’ADR 0007.
Acceptance criteria
Les motifs IF_THEN utilisent les véritables jours fériés français nationaux et les modes before, after, around et auto existants. Une déclaration ne crée pas une occurrence de jour férié et ne permet pas de déplacer le motif hors de ses limites admissibles.
Une déclaration compatible occupe sa position normale dans le motif et réduit le nombre de nouveaux placements nécessaires. Une déclaration incompatible ne peut être retypée ou déplacée, ni être sautée pour reporter la position demandée sur un jour plus éloigné. Les obligations restent obligatoires pour chaque occurrence ; les préférences conservent leur exigence de motif complet et leurs priorités.
Un motif peut être entièrement déclaré ou combiner déclarations et nouveaux placements. Une même déclaration peut contribuer à ce motif et à une règle TIME_WINDOW compatible ; seuls les nouveaux placements consomment des soldes.
Chaque occurrence satisfaite d’une règle qui génère des congés peut produire son droit acquis, qu’elle soit satisfaite par des déclarations, des placements ou les deux. Un droit n’est ajouté qu’une fois par occurrence de cette règle dans le calcul.
Sa disponibilité est le lendemain de la fin de la période de repos génératrice complète, y compris ses déclarations et jours adjacents ; son expiration reste un an après sa disponibilité. Une prolongation de la période impose de réévaluer ces bornes et de conserver uniquement un plan dont les placements financés restent compatibles.
Le calcul capture une seule fois la date du jour en Europe/Paris à son lancement. Le chemin direct, le worker, le résultat et ses artefacts utilisent cette même date. Il n’existe aucune date de relevé supplémentaire à saisir ou à conserver comme paramètre utilisateur.
Un droit disponible aujourd’hui ou auparavant est supposé déjà inclus dans les soldes reportés et n’y est pas ajouté à nouveau. Seuls les droits disponibles strictement après cette date sont ajoutés. Cette limite s’applique aussi aux droits générés par des placements seuls, sans empêcher les règles de reconnaître des occurrences passées.
Un droit futur peut financer des placements ultérieurs compatibles, notamment la partie restante d’une obligation TIME_WINDOW comportant déjà une déclaration. Il ne peut financer un placement avant sa disponibilité, après son expiration ou avant la fin de sa période génératrice.
Le résultat, les explications stables, la trace originale et les comparaisons rendent compréhensibles les contributions fixes et l’origine des droits acquis. Une édition ultérieure, un changement de date du jour ou une livraison tardive des artefacts ne change ni la date de référence ni les déclarations du calcul affiché. Les comparaisons conservent la provenance des droits et les contraintes de disponibilité.
Une annulation conserve les déclarations et droits cohérents du meilleur plan valide trouvé. Une demande valide impossible du fait des types, motifs ou disponibilités reste un conflit expliqué, distinct d’une entrée invalide et d’un calcul interrompu.
Les tests de comportement utilisent une horloge fixée et couvrent les motifs déclarés et mixtes, les types et ANY, le partage entre familles de règles, les disponibilités hier/aujourd’hui/demain, un lancement près du changement de date en Europe/Paris, une période génératrice prolongée et une chaîne de financement. Les scénarios existants sur des horizons historiques conservent des attentes indépendantes du jour d’exécution.
La vérification intégrée soumet ces données depuis le calendrier, compare le chemin direct et le worker, puis consulte les explications, la trace et une comparaison après une édition des saisies ou une livraison tardive. Elle couvre aussi un plan interrompu avec des déclarations et des droits acquis.
Ce ticket termine le parcours de #13 : des CP déjà posés autour d’un jour férié génèrent un droit encore futur, qui finance le complément d’une règle de période tout en conservant toutes les dates déclarées.
Blocked by
#62 — Optimiser les périodes de repos autour des jours déclarés.
#63 — Compter les jours déclarés dans les règles de période.
Blocked by: #62, #63
## Parent
[#13](https://gitlab.nessar.fr/nessar/vac-optimizer/-/work_items/13)
## What to build
Les jours non travaillés déclarés participent aux motifs de règles autour des jours fériés et peuvent générer des droits acquis utilisables plus tard dans le plan, sans ajouter une seconde fois les droits déjà disponibles dans les soldes de l’entreprise.
[issue #13](https://gitlab.nessar.fr/nessar/vac-optimizer/-/work_items/13), entretien et spécification de développement. Respecter les occurrences et modes IF_THEN, les droits acquis et l’ordre des objectifs du glossaire, ainsi que les ADR sur les artefacts du même calcul et l’ADR 0007.
## Acceptance criteria
- [ ] Les motifs IF_THEN utilisent les véritables jours fériés français nationaux et les modes before, after, around et auto existants. Une déclaration ne crée pas une occurrence de jour férié et ne permet pas de déplacer le motif hors de ses limites admissibles.
- [ ] Une déclaration compatible occupe sa position normale dans le motif et réduit le nombre de nouveaux placements nécessaires. Une déclaration incompatible ne peut être retypée ou déplacée, ni être sautée pour reporter la position demandée sur un jour plus éloigné. Les obligations restent obligatoires pour chaque occurrence ; les préférences conservent leur exigence de motif complet et leurs priorités.
- [ ] Un motif peut être entièrement déclaré ou combiner déclarations et nouveaux placements. Une même déclaration peut contribuer à ce motif et à une règle TIME_WINDOW compatible ; seuls les nouveaux placements consomment des soldes.
- [ ] Chaque occurrence satisfaite d’une règle qui génère des congés peut produire son droit acquis, qu’elle soit satisfaite par des déclarations, des placements ou les deux. Un droit n’est ajouté qu’une fois par occurrence de cette règle dans le calcul.
- [ ] Sa disponibilité est le lendemain de la fin de la période de repos génératrice complète, y compris ses déclarations et jours adjacents ; son expiration reste un an après sa disponibilité. Une prolongation de la période impose de réévaluer ces bornes et de conserver uniquement un plan dont les placements financés restent compatibles.
- [ ] Le calcul capture une seule fois la date du jour en Europe/Paris à son lancement. Le chemin direct, le worker, le résultat et ses artefacts utilisent cette même date. Il n’existe aucune date de relevé supplémentaire à saisir ou à conserver comme paramètre utilisateur.
- [ ] Un droit disponible aujourd’hui ou auparavant est supposé déjà inclus dans les soldes reportés et n’y est pas ajouté à nouveau. Seuls les droits disponibles strictement après cette date sont ajoutés. Cette limite s’applique aussi aux droits générés par des placements seuls, sans empêcher les règles de reconnaître des occurrences passées.
- [ ] Un droit futur peut financer des placements ultérieurs compatibles, notamment la partie restante d’une obligation TIME_WINDOW comportant déjà une déclaration. Il ne peut financer un placement avant sa disponibilité, après son expiration ou avant la fin de sa période génératrice.
- [ ] Le résultat, les explications stables, la trace originale et les comparaisons rendent compréhensibles les contributions fixes et l’origine des droits acquis. Une édition ultérieure, un changement de date du jour ou une livraison tardive des artefacts ne change ni la date de référence ni les déclarations du calcul affiché. Les comparaisons conservent la provenance des droits et les contraintes de disponibilité.
- [ ] Une annulation conserve les déclarations et droits cohérents du meilleur plan valide trouvé. Une demande valide impossible du fait des types, motifs ou disponibilités reste un conflit expliqué, distinct d’une entrée invalide et d’un calcul interrompu.
- [ ] Les tests de comportement utilisent une horloge fixée et couvrent les motifs déclarés et mixtes, les types et ANY, le partage entre familles de règles, les disponibilités hier/aujourd’hui/demain, un lancement près du changement de date en Europe/Paris, une période génératrice prolongée et une chaîne de financement. Les scénarios existants sur des horizons historiques conservent des attentes indépendantes du jour d’exécution.
- [ ] La vérification intégrée soumet ces données depuis le calendrier, compare le chemin direct et le worker, puis consulte les explications, la trace et une comparaison après une édition des saisies ou une livraison tardive. Elle couvre aussi un plan interrompu avec des déclarations et des droits acquis.
Ce ticket termine le parcours de #13 : des CP déjà posés autour d’un jour férié génèrent un droit encore futur, qui finance le complément d’une règle de période tout en conservant toutes les dates déclarées.
## Blocked by
- [#62](https://gitlab.nessar.fr/nessar/vac-optimizer/-/work_items/62) — Optimiser les périodes de repos autour des jours déclarés.
- [#63](https://gitlab.nessar.fr/nessar/vac-optimizer/-/work_items/63) — Compter les jours déclarés dans les règles de période.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Blocked by: #62, #63
Parent
#13
What to build
Les jours non travaillés déclarés participent aux motifs de règles autour des jours fériés et peuvent générer des droits acquis utilisables plus tard dans le plan, sans ajouter une seconde fois les droits déjà disponibles dans les soldes de l’entreprise.
issue #13, entretien et spécification de développement. Respecter les occurrences et modes IF_THEN, les droits acquis et l’ordre des objectifs du glossaire, ainsi que les ADR sur les artefacts du même calcul et l’ADR 0007.
Acceptance criteria
Ce ticket termine le parcours de #13 : des CP déjà posés autour d’un jour férié génèrent un droit encore futur, qui finance le complément d’une règle de période tout en conservant toutes les dates déclarées.
Blocked by
mentioned in issue #67
mentioned in commit
9851edf906Preserved GitLab #64 history: source attribution, exact timestamps, discussion grouping and review positions. Historical diff snapshots: 0; visible source notes: 2.
gitlab-35-issue-64.md (SHA-256
fa93b18d50386926c90d9c742a21684281cf97bb82cf3a0ecc10cedec8bd3047)gitlab-35-issue-64.json (SHA-256
c5db0635d75737f79fc6d1391dc51f8b5f4a61e2c4330da1f7e01fc94bb8aaf7)Old CI job execution and reports are omitted. Original source files and rollback backups remain protected.