Module AC Avoir Client complet · PDF BL/BR/DAF/AC · Eliot tool 22 · 1791 colonnes BDD commentées
docs-changelog.html — onglet S73 ajouté actif, nav-badge S7306-roadmap.html — S74 en cours, S73 livré, tâches ORANGE S74 à jour20-pilotage-projet.html — bloc S73 injecté dans historique, scores BDD 93/100✅ Commit a0cb396
Guard R-26 sur GET /avoir-client liste pour rejeter les sous-chemins. Guard R-32 sur GET /avoir-client/:id avec filtre urlParts.length === 2 — empêche l'interception de /:id/lignes.
PUT /avoir-client/:id — mise à jourWhitelist 6 champs : AVC_STATUT, AVC_MOTIF, AVC_TOTAL_HT, AVC_TOTAL_TTC, AVC_DATE_EMISSION, AVC_COMMENTAIRE. Pattern _readBody() obligatoire.
/:id (R-26)Insertion d'une ligne déclenche les triggers MariaDB qui recalculent AVC_TOTAL_HT et AVC_TOTAL_TTC automatiquement.
/app/avoir-client/[id]/page.tsx — NOUVEAUavoir_client_ligneFAC_NUM)srcDoc (à aligner S75)/app/avoir-client — AVC_NUMERO cliquableChaque numéro AC-AAAA-XXXX est maintenant un lien vers /app/avoir-client/[id]. Suite BL → BR → DAF → AC complète ✅
✅ Commit 5e56674
avoir_client_ligne créée via HeidiSQLACL_ID INT AUTO_INCREMENT PRIMARY KEYAVC_ID INT NOT NULL — Relation avoir_clientACL_DESIGNATION VARCHAR(255) NOT NULLACL_QTE DECIMAL(10,2) DEFAULT 1.00ACL_PU_HT DECIMAL(10,2) DEFAULT 0.00ACL_TVA_TAUX DECIMAL(5,2) DEFAULT 20.00ACL_TOTAL_HT · ACL_TOTAL_TTC · ACL_CREE_LE DATETIMEtrg_acl_after_insert — recalcul à l'ajout d'une lignetrg_acl_after_update — recalcul à la modificationtrg_acl_after_delete — recalcul à la suppressionChaque trigger met à jour AVC_TOTAL_HT et AVC_TOTAL_TTC dans avoir_client par somme des lignes.
ACL_ID=1, AVC_ID=1 — Remboursement consultation comportementale — 85€ HT / 102€ TTC
#4F46E5#F59E0B#8B5CF6avoir_client_ligne + totaux · accent vert #10B981Pages BL/BR/DAF/[id] : bouton 🖨️ PDF → modal <iframe src="/api/editions/..."> (pattern standard R-23).
Page AC/[id] : modal srcDoc (fetch HTML inline) — à aligner sur src URL en S75.
f.FAC_NUMCorrection f.FAC_NUMERO → f.FAC_NUM dans les jointures facture des routes PDF (règle R-27).
✅ Commits 62fc49f + 16fbcfd
get_avoirs_client — 22e tool de la boucle agentiquestatut (BROUILLON · EMIS · REMBOURSE · ANNULE) + tie_idtotal, total_ttc, avoirs[],{ en début de ligne)"liste moi les avoirs client" + métier COMPORTEMENTALISTE → retourne AC-2604-0001, Catherine Deneuve, 85€ HT, statut EMIS.
✅ Commit 16fbcfd
1791 colonnes commentées via ALTER TABLE MODIFY COLUMN ... COMMENT '...'. Dette technique BDD soldée — score passe de 93 → 98/100.
Relation table_liee - description attendueIdentifiant unique de l enregistrement [table]DEFAULT NULL (keyword SQL) — jamais DEFAULT 'NULL' (string littérale) sur nullable| Hash | Conv | Description |
|---|---|---|
| a0cb396 | Conv1 | docs(S74): fix docs-changelog + roadmap + pilotage — patches S73 non pris |
| 5e56674 | Conv1 | feat(S74): module AC avoir_client — guards + PUT + routes lignes + page [id] + lien liste |
| 62fc49f | Conv2 | feat(S74): routes PDF editions BL/BR/DAF/AC + boutons modal srcdoc |
| 16fbcfd | Conv1 | feat(S74): Eliot tool get_avoirs_client (tool 22) + route PDF AC avec lignes |
Routes API : ~189 (+8) · Pages UI : 121 (+1) · Eliot tools : 22 (+1) · JSDoc : 240/240 ✅ · app.use() : 0 · Colonnes BDD : 1791/1791 ✅
Aucun ROUGE ni ORANGE — uniquement des items JAUNE.
| Item | Priorité | Action |
|---|---|---|
Modal PDF AC — aligner sur pattern src URL |
JAUNE | Remplacer srcDoc par <iframe src="/api/editions/avoir-client/:id"> |
| Tarification UI — 3 méthodes sur le devis | JAUNE | COEF_FG+MARGE · COEF_VTE · PRIX_DIRECT — colonnes BDD et routes présentes depuis S64 |
Vue Carte /app/clients |
JAUNE | Réactiver géocodage + Leaflet — conditionnel accès réseau externe (WireGuard VPN ?) |
Supprimer micro_logiciel_ged |
JAUNE | Après validation GED complète |