[DTP-Worker 20260812_113134] vérif · classe « percent==100 ⟺ ok » PROUVÉE FERMÉE sur les 4 conditions du gate financement (cross-module: seul module à champ percent) + durcissement anti-récurrence des 2 conditions à domaine borné (documents≤13/autorisations=4 ≪ seuil 2000) → commentaires purs · rebuild byte-identique · sans fix · sans gate
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -126,6 +126,15 @@ def _cond_documents(dossier: dict, cfg: GateConfig) -> dict:
|
||||
if statut in cfg.statuts_recevables:
|
||||
validated += 1
|
||||
total = len(required_ids)
|
||||
# Contrairement à _cond_apport (ratio USD *continu*, cf. fix 093114) et à
|
||||
# l'agrégat (moyenne de 4, cf. fix 110124), AUCUN plafond « non ok → 99.9 »
|
||||
# n'est requis ici : le dénominateur est la liste de documents du contrat
|
||||
# (≤ 13 is_required), un domaine BORNÉ. round1 ne peut remonter à
|
||||
# [99.95 %, 100 %[ par le bas qu'à partir de total ≥ 2000 (car
|
||||
# (total-1)/total ≥ 0.9995) — inatteignable pour une liste de documents.
|
||||
# Donc ok=False ⟹ percent < 100 tient déjà : l'invariant d'affichage
|
||||
# percent == 100.0 ⟺ ok est préservé sans garde. (même logique que les 3
|
||||
# sites `:g`-domaine-borné · ne pas ajouter de plafond redondant · #5)
|
||||
pct = _round1((validated / total * 100.0) if total > 0 else 100.0)
|
||||
return {
|
||||
"ok": validated == total,
|
||||
@@ -144,6 +153,10 @@ def _cond_autorisations(dossier: dict, cfg: GateConfig) -> dict:
|
||||
if (by_id.get(aid) or {}).get("signature_date"):
|
||||
signed += 1
|
||||
total = len(required_ids)
|
||||
# Domaine BORNÉ (4 autorisations au contrat), a fortiori inférieur au seuil
|
||||
# total ≥ 2000 requis pour que round1 remonte à [99.95 %, 100 %[ par le bas :
|
||||
# pas de plafond « non ok → 99.9 » nécessaire ici (cf. note _cond_documents).
|
||||
# L'invariant percent == 100.0 ⟺ ok tient sans garde. (ne pas ajouter · #5)
|
||||
pct = _round1((signed / total * 100.0) if total > 0 else 100.0)
|
||||
return {"ok": signed == total, "total": total, "signed": signed, "percent": pct}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user