📋 Release Notes

Sprint S66

Registre Carnivores Domestiques · Fix crash clients · Migration GED · Validation 20/20 routes

📅 07 avril 2026 🔀 4 commits 📄 ~3 900 lignes custom-routes.ts 🖥️ 115 pages UI 🔌 ~159 routes API
4
Routes Registre C.D.
3
Pages métiers nouvelles
57
Entrées GED migrées
20/20
Routes validées
91
Score global /100
Validation scan routes 20/20 ROUGE

20/20 routes opérationnelles confirmées

/api/achats/bon-a-payer → la vraie route est /api/achats/:id/bon-a-payer — comportement 404 sur ID absent attendu ✅
/api/portail/notifications → 401 attendu (token requis) ✅

📁 Migration GED Filesystem ORANGE

57 entrées insérées dans micro_logiciel.ged_fichier

Fichier original comportait SCT_ID (colonne inexistante). Corrigé via migration_ged_fixed.sql sans SCT_ID, ENT_ID par défaut = 1.

Modules GED alimentés

  • Editions, Widgets, Animaux, Séances, Devis, Factures, Clients
  • Volume Docker monté : C:\AnimGest_GED:/app/ged_new
🔧 Fix crash clients/[id] ROUGE

React error #310 (Rules of Hooks) — résolu

Cause : 4 useState portail (portailModal, portailEmail, portailSaving, portailDone) déclarés aux lignes 248-251, après 2 return conditionnels.
Fix : remontés avec les autres useState en ligne 203 via patch_clients_id.py.
Validé : /app/clients/1 affiche "Deneuve, Catherine" sans erreur console ✅

🐾 Registre Carnivores Domestiques ROUGE

Base réglementaire — Arrêté du 30 juin 1992 modifié

Obligation de tenue d'un registre des entrées et sorties pour les établissements détenant des carnivores domestiques (chiens, chats, furets). Métiers concernés : Pet-Sitter, Pension/Chenil, Élevage.

BDD — Table registre_carnivores

ColonneTypeDescription
RC_IDINT PKIdentifiant unique
ANI_IDINT FKLien animal (table animal)
TIE_IDINT FKLien propriétaire (table tiers)
RC_ESPECEENUMCHIEN / CHAT / FURET
RC_NUM_IDENTIFICATIONVARCHARNuméro puce ou tatouage I-CAD
RC_DATE_ENTREEDATETIMEDate entrée (obligatoire J0)
RC_DATE_SORTIEDATETIMEDate sortie (72h max)
RC_STATUTENUMPRESENT / SORTI / DECEDE
RC_METIERVARCHARPET_SITTER / PENSION_CHENIL / ELEVEUR
RC_PROVENANCEVARCHARNom + adresse cédant
RC_DESTINATAIREVARCHARNom + adresse destinataire
RC_MOTIF_SORTIEENUMCESSION / RETOUR / DECES / AUTRE

4 routes API — instance.use()

GET /registre-carnivores GET /registre-carnivores/:id POST /registre-carnivores PUT /registre-carnivores/:id

Filtres GET : ?metier= ?statut= ?espece= ?search= — PUT avec date_sortie → auto-SORTI

Frontend — 3 pages + composant partagé RegistreCarnivorePage.tsx

✅ /app/pet-sitter/registre-carnivores ✅ /app/pension/registre-carnivores ✅ /app/elevage/registre-carnivores
  • Liste chronologique + filtres espèce/statut/recherche
  • KPIs : Présents / Sortis / Total
  • Panneau latéral détail + sortie rapide
  • Modal création complète (animal + santé + propriétaire + entrée)
  • Puce formatée XXX-XXX-XXX-XXX-XXX

⚠️ Bug résiduel corrigé en S67

Sous-requête utilisait FROM animaux → table inexistante. Corrigée en FROM animal + fix TIE_NOM → TIE_RAISON_SOCIALE (2 occurrences). Sidebars Pet-Sitter / Pension / Élevage patchées avec lien "Registre C.D."

📊 Scores qualité S66
90
Backend
S65 : 90/100
→ stable
91
Frontend
S65 : 89/100
↑ +2
91
BDD
S65 : 90/100
↑ +1
91
Global
S65 : 90/100
↑ +1
Routes API : ~159 · Pages UI : 115 · Eliot tools : 13 · Registre sanitaire : 2 métiers · Registre C.D. : 3 métiers
🔀 Commits S66
S66-aValidation scan 20/20 + migration GED 57 entrées
S66-bFix crash clients/[id] — useState hooks hors ordre (patch_clients_id.py)
S66-cRegistre Carnivores Domestiques — table BDD + 4 routes + 3 pages TSX
S66-dFix FROM animaux→animal + TIE_NOM→TIE_RAISON_SOCIALE + sidebars Registre C.D.
🔧 Dette technique — S67

🟠 ORANGE

  • Valider ouverture modal portail depuis fiche client /app/clients/[id]
  • Drag & Drop agenda — instance.use('/seances/:id') en place — tester persistance
  • Supprimer micro_logiciel_ged — après validation GED complète

🟡 JAUNE

  • Pages BL/BR/DAF achat — TSX générés, non déployés (routes API OK)
  • SQL tables bl_achat + br_achat — à exécuter en HeidiSQL
  • Export CSV règlements — bouton absent dans reglements/page.tsx
  • JSDoc 4 fichiers restants (133/137)
  • ~100 app.use() restants — migration progressive
  • Docs GitHub Pages S66 — roadmap, API reference, changelog
  • Sidebar pet-sitter + pension Registre C.D. — vérifier ancres