Export tableau de bord

This commit is contained in:
KONE SOREL 2025-12-25 14:21:14 +00:00
parent c6e37f1d5f
commit 66309f6e58

View File

@ -174,7 +174,7 @@
<!-- Bouton Export PDF -->
<div class="text-end my-3">
<button id="exportPdfBtn" class="btn btn-danger">
<i class="fas fa-file-pdf"></i> <?= _('Exporter tous les graphiques en PDF') ?>
<i class="fas fa-file-pdf"></i> <?= _('Exporter le tableau de bord en PDF') ?>
</button>
</div>
@ -216,6 +216,25 @@
const { jsPDF } = window.jspdf;
const pdf = new jsPDF('p', 'mm', 'a4');
// --- 1. Titre principal ---
pdf.setFontSize(18);
pdf.text("Tableau de bord - Synthèse", 10, 15);
// --- 2. KPIs ---
pdf.setFontSize(12);
pdf.text("Total Contrats : <?= format_N($kpis['nbPolice']) ?>", 10, 30);
pdf.text("Total Assurés :", 10, 40);
pdf.text(" Salariés : <?= format_N($kpis['nbAdherent']) ?>", 10, 47);
pdf.text(" Ayants droits : <?= format_N($kpis['nbDependant']) ?>", 10, 54);
pdf.text("Primes :", 10, 64);
pdf.text(" TTC : <?= format_N($kpis['primeTtc']).' '.$_SESSION['devise_C'] ?>", 10, 71);
pdf.text(" Nette Stat : <?= format_N($kpis['primeNetteStat']).' '.$_SESSION['devise_C'] ?>", 10, 78);
pdf.text("Sinistres :", 10, 88);
pdf.text(" Nombre : <?= format_N($kpis['nbSinistres']) ?>", 10, 95);
pdf.text(" Montant : <?= format_N($kpis['montantApayer']).' '.$_SESSION['devise_C'] ?>", 10, 102);
pdf.text(" Rapport S/P : <?= $kpis['rapportSp'].'%' ?>", 10, 109);
// --- 3. Graphiques ---
function addChartToPdf(canvasId, title, yOffset) {
const canvas = document.getElementById(canvasId);
const imgData = canvas.toDataURL('image/png', 1.0);
@ -224,13 +243,18 @@
pdf.addImage(imgData, 'PNG', 10, yOffset + 5, 180, 80);
}
addChartToPdf('claimsPie', 'Sinistres par garantie', 20);
addChartToPdf('claimsLine', 'Évolution des sinistres par mois', 120);
addChartToPdf('lossRatioBar', 'Sinistralité (%)', 220);
addChartToPdf('claimsPie', 'Sinistres par garantie', 120);
addChartToPdf('claimsLine', 'Évolution des sinistres par mois', 220);
// --- 4. Nouvelle page pour le dernier graphique ---
pdf.addPage();
addChartToPdf('lossRatioBar', 'Sinistralité (%)', 20);
// --- 5. Sauvegarde ---
pdf.save('Tableau_de_bord.pdf');
});
// Sinistres par garantie
const dataClaims = <?= $dataTabClaims ?>;
new Chart(document.getElementById('claimsPie'), {