Skip to content

feat(15-12b): le filet sous un bilan clos — rien ne s'écrit sous un exercice postérieur clos, bandeau de l'état hérité (closes #543) - #581

Merged
guycorbaz merged 12 commits into
mainfrom
story/15-12b-filet-sous-un-bilan-clos
Oct 9, 2026
Merged

guycorbaz merged 12 commits into
mainfrom
story/15-12b-filet-sous-un-bilan-clos

Conversation

@guycorbaz

@guycorbaz guycorbaz commented Oct 9, 2026 •

Copy link
Copy Markdown
Owner

closes #543

Ce qui change

Le filet. Plus rien ne s'écrit dans un exercice ouvert qui précède un exercice clos. Le refus LATER_FISCAL_YEAR_CLOSED est posé aux deux seuls points de passage du journal, ce qui couvre toutes les routes qui écrivent :

  • create_in_tx_inner couvre 19 routes, contre-passation comprise. Sa lecture se fait sans verrou, et la preuve écrite au doc-comment montre qu'un instantané ancien ne produit au pire qu'un refus de trop, jamais une acceptation de trop.
  • delete_in_tx, désormais sans condition, couvre la dévalidation d'une facture.

Le rapprochement par lot. Le refus va dans failed[] (réponse 200) sur ses trois voies (facture, ventilé et règle), avec un constructeur unique.

L'écran des exercices. Un bandeau signale l'état hérité, c'est-à-dire des données antérieures à la v0.13.0. Il donne la marche à suivre dans l'ordre que les gardes acceptent. La boîte de validation de facture se ferme sur ce code.

Le message. Il est élargi à la saisie : une écriture ne peut plus être enregistrée, modifiée ni supprimée, dans les 4 locales et dans le repli Rust.

Les angles morts. Ils sont assumés, écrits et fixés par un test :

Documentation à jour : manuels FR (texte et PDF), api-external.md et CHANGELOG [0.13.0].

Gate

Exécuté localement, sur l'état rebasé sur f8b2accd :

Revues

🤖 Generated with Claude Code

guycorbaz and others added 11 commits October 9, 2026 08:30
…sur main (fiches, prompts, registre par union)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…choix C-15-12b-1 à 3 (refs #543)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…efusées sous un exercice postérieur clos, trois voies du lot, bandeau de l'état hérité (refs #543)

- create_in_tx_inner : LATER_FISCAL_YEAR_CLOSED (lecture non verrouillante, C89/C100)
- delete_in_tx : lecture des postérieurs sans condition (dévalidation comprise, ex-C-15-8-29)
- reconciliation : later_fiscal_year_closed_failed_proposal, bras du mapper et branche de la règle
- message error-later-fiscal-year-closed élargi à la saisie (C-15-12b-1)
- écran des exercices : bandeau fiscal-year-out-of-order ; validation de facture : dialogue fermé
- angles morts assumés écrits et fixés : prédicteurs d'annulation (#568), statut des soldes (C-15-12b-2)
- tests : filet_bilan_clos (kesh-db), filet_bilan_clos_e2e, trois voies du lot, Vitest

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…lidation), api-external, CHANGELOG — plus de limite #543 (refs #543)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…bornes (refs #543)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…543)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…des tests dérivées de l'horloge, vue figée avant le verrou écrite, exceptions nommées, bandeau role=status, tests projectId et repli de saisie, CHANGELOG de la contre-passation, boutons offerts puis refusés au manuel, tables des AC 12/21 au record (refs #543)

Revue de code P1 (Sonnet ×3) : 0 au-dessus de LOW, 16 LOW (B 5, E 4, A 7).
B-1 = E-1 (message qui renvoie à une contre-passation refusable) suivi par #569 ;
E-2, E-4 écrits. Choix C-15-12b-4.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…2) — contrôlés aplatis (refs #543)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…gates sur l'état rebasé (backend 2993/2993, Vitest 1116/1116, E2E 246 / 10 attendus), statut done (refs #543)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…) — contrôlés aplatis (refs #543)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@guycorbaz
guycorbaz force-pushed the story/15-12b-filet-sous-un-bilan-clos branch from 13344ba to bf0c235 Compare October 9, 2026 07:18
…tes sur l'état rebasé (backend 3026/3026, Vitest 1139/1139, E2E 247 / 9 attendus) (refs #543)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@guycorbaz
guycorbaz force-pushed the story/15-12b-filet-sous-un-bilan-clos branch from bf0c235 to 2e47d29 Compare October 9, 2026 07:18
@guycorbaz
guycorbaz merged commit dc4bc58 into main Oct 9, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[bug] On peut écrire dans un exercice ouvert alors qu'un exercice postérieur est déjà clos — le bilan clos change en silence

1 participant