feat: v3 — refonte thème + avancement physique + exports conformes cibles
- index.html: refonte complète thème dark gradient (top-header + slide-nav, 9 vues) - calc.js: ajout resultatPhysique(), avancement physique partout - routes/pilotage.js: catégories Normal/Sous Avancement/Dépassement/Non déterminé - services/export-xlsx.js: rapport complet multi-feuilles (Situation + Pilotage) - routes/export.js: XLSX/PPTX/DOCX — sortie unique complète Zone Sud - PPTX: 5 slides (couverture, synthèse, alertes, pilotage, par région) - DOCX: rapport structuré (couverture, KPIs, alertes, par région, pilotage) - services/export-pdf.js: colonnes avancement physique uniquement Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 4.6
parent
88a0dbe6d2
commit
8d901da125
@@ -187,9 +187,10 @@ function generateEnService(data) {
|
||||
return pdfToBuffer(doc, d => {
|
||||
header(d, 'Marchés en Service — RLA', `${data.count||0} marché(s) actif(s)`);
|
||||
table(d, { title:'Liste des Marchés en Service',
|
||||
headers:['Réf.','Projet','Région','Entrepreneur','Montant','Taux Phy.','Taux Fin.','Date Fin','Alerte'],
|
||||
colWidths:[60,140,65,115,90,50,50,65,55],
|
||||
rows: (data.items||[]).map(r=>[r.ref,r.projet,r.region,r.entrepreneur,r.montant,r.taux_phy,r.taux_fin,r.date_fin,NL(r.niveau_alerte)]) });
|
||||
headers:['Réf.','Projet','Région','Entrepreneur','Montant Max','Période','Avt. Phy.','Délai Rest.','Alerte'],
|
||||
colWidths:[65,140,65,110,90,90,55,55,60],
|
||||
rows: (data.items||[]).map(r=>[r.ref,r.projet,r.region,r.entrepreneur,r.montant,
|
||||
`${r.date_debut||'—'} → ${r.date_fin||'—'}`,r.taux_phy,r.delai_restant??'—',NL(r.niveau_alerte)]) });
|
||||
footer(d, 1);
|
||||
});
|
||||
}
|
||||
@@ -199,9 +200,10 @@ function generateEnCours(data) {
|
||||
return pdfToBuffer(doc, d => {
|
||||
header(d, 'Marchés en Cours — RLA', `${data.count||0} marché(s) en cours`);
|
||||
table(d, { title:'Liste des Marchés en Cours',
|
||||
headers:['Réf.','Projet','Région','Entrepreneur','Montant','Taux Phy.','Taux Fin.','Date Fin','Niveau Avt.'],
|
||||
colWidths:[60,135,65,115,90,50,50,65,60],
|
||||
rows: (data.items||[]).map(r=>[r.ref,r.projet,r.region,r.entrepreneur,r.montant,r.taux_phy,r.taux_fin,r.date_fin,r.niveau_avancement]) });
|
||||
headers:['Réf.','Projet','Région','Entrepreneur','Montant Max','Période','Avt. Phy.','Niveau Avt.'],
|
||||
colWidths:[65,140,65,110,90,90,60,70],
|
||||
rows: (data.items||[]).map(r=>[r.ref,r.projet,r.region,r.entrepreneur,r.montant,
|
||||
`${r.date_debut||'—'} → ${r.date_fin||'—'}`,r.taux_phy,r.niveau_avancement||'—']) });
|
||||
footer(d, 1);
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user