Maj dataTable
This commit is contained in:
parent
66309f6e58
commit
1b70a008ef
|
|
@ -434,7 +434,12 @@ function appliquerDataTable() {
|
|||
const instance = $table.DataTable(options);
|
||||
|
||||
setTimeout(() => {
|
||||
instance.columns.adjust().responsive.recalc();
|
||||
if (instance) {
|
||||
instance.columns.adjust(); // recalcul des colonnes
|
||||
if (instance.responsive) {
|
||||
instance.responsive.recalc(); // recalcul responsive si dispo
|
||||
}
|
||||
}
|
||||
}, 100);
|
||||
});
|
||||
}
|
||||
|
|
|
|||
|
|
@ -216,45 +216,51 @@
|
|||
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);
|
||||
// --- Logo ---
|
||||
const logo = new Image();
|
||||
logo.src = '/images/logo.png'; // chemin vers ton logo
|
||||
logo.onload = function() {
|
||||
pdf.addImage(logo, 'PNG', 150, 5, 40, 20);
|
||||
|
||||
// --- 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);
|
||||
// --- Titre principal ---
|
||||
pdf.setFontSize(18);
|
||||
pdf.text("Tableau de bord", 10, 20);
|
||||
|
||||
// --- 3. Graphiques ---
|
||||
function addChartToPdf(canvasId, title, yOffset) {
|
||||
// --- KPIs ---
|
||||
pdf.setFontSize(12);
|
||||
pdf.text("Total Contrats : <?= format_N($kpis['nbPolice']) ?>", 10, 35);
|
||||
pdf.text("Total Assurés :", 10, 42);
|
||||
pdf.text(" Salariés : <?= format_N($kpis['nbAdherent']) ?>", 10, 49);
|
||||
pdf.text(" Ayants droits : <?= format_N($kpis['nbDependant']) ?>", 10, 56);
|
||||
pdf.text("Primes :", 10, 66);
|
||||
pdf.text(" TTC : <?= format_N($kpis['primeTtc']).' '.$_SESSION['devise_C'] ?>", 10, 73);
|
||||
pdf.text(" Nette Stat : <?= format_N($kpis['primeNetteStat']).' '.$_SESSION['devise_C'] ?>", 10, 80);
|
||||
pdf.text("Sinistres :", 10, 90);
|
||||
pdf.text(" Nombre : <?= format_N($kpis['nbSinistres']) ?>", 10, 97);
|
||||
pdf.text(" Montant : <?= format_N($kpis['montantApayer']).' '.$_SESSION['devise_C'] ?>", 10, 104);
|
||||
pdf.text(" Rapport S/P : <?= $kpis['rapportSp'].'%' ?>", 10, 111);
|
||||
|
||||
// --- Graphiques ---
|
||||
addChartToPdf(pdf, 'claimsPie', 'Sinistres par garantie', 125);
|
||||
addChartToPdf(pdf, 'claimsLine', 'Évolution des sinistres par mois', 200);
|
||||
|
||||
// Nouvelle page pour le dernier graphique
|
||||
pdf.addPage();
|
||||
addChartToPdf(pdf, 'lossRatioBar', 'Sinistralité (%)', 20);
|
||||
|
||||
// --- Sauvegarde ---
|
||||
pdf.save('Tableau_de_bord.pdf');
|
||||
};
|
||||
|
||||
function addChartToPdf(pdf, canvasId, title, startY) {
|
||||
const canvas = document.getElementById(canvasId);
|
||||
const imgData = canvas.toDataURL('image/png', 1.0);
|
||||
pdf.setFontSize(14);
|
||||
pdf.text(title, 10, yOffset);
|
||||
pdf.addImage(imgData, 'PNG', 10, yOffset + 5, 180, 80);
|
||||
pdf.text(title, 10, startY);
|
||||
pdf.addImage(imgData, 'PNG', 10, startY + 5, 180, 60);
|
||||
}
|
||||
|
||||
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'), {
|
||||
|
|
|
|||
|
|
@ -609,7 +609,7 @@ console.groupEnd();
|
|||
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>
|
||||
|
||||
<!-- Application Scripts -->
|
||||
<script src="/Js/fonctions.js?ver=2025.12.25.05"></script>
|
||||
<script src="/Js/fonctions.js?ver=2025.12.25.06"></script>
|
||||
|
||||
<?php if (est_anglophone()): ?>
|
||||
<script src="/Js/datepicker-eng.js"></script>
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user