This commit is contained in:
KONE SOREL 2025-12-23 15:51:55 +00:00
parent 62c5dafa1d
commit f824e02558
2 changed files with 83 additions and 25 deletions

View File

@ -13,13 +13,14 @@ class ControleurAccueil extends Controleur {
public function index() { public function index() {
// KPIs // KPIs
$kpis = [ $kpis = [
"assures" => 1256, "assures" => 1248,
"sinistres_count" => 78, "sinistres_count" => 92,
"sinistres_amount" => 42300, "sinistres_amount" => 48750000,
"cotisations" => 125600, "cotisations" => 162300000,
"solde" => 8750 "solde" => 12500000
]; ];
// Activité récente // Activité récente
$activities = [ $activities = [
["icon" => "fas fa-user-plus", "label" => "Nouveaux salariés ajoutés", "time" => "Il y a 1 heure"], ["icon" => "fas fa-user-plus", "label" => "Nouveaux salariés ajoutés", "time" => "Il y a 1 heure"],
@ -36,19 +37,31 @@ class ControleurAccueil extends Controleur {
]; ];
// Répartition sinistres // Répartition sinistres
$claimsBreakdown = [ $claimsLabels = [
"Hospitalisation" => 35, "Consultations",
"Dentaire" => 25, "Pharmacie",
"Optique" => 20, "Hospitalisation",
"Consultations" => 20 "Imagerie",
"Dentaire"
];
$claimsValues = [
22,
28,
30,
12,
8
]; ];
// Évolution cotisations // Évolution cotisations
$monthlyContributions = [ $months = ["Jan", "Fév", "Mar", "Avr", "Mai", "Juin"];
"Janv" => 115000, $monthlyCotisations = [
"Fév" => 120000, 24500000,
"Mars" => 129000, 25800000,
"Avril"=> 135000 26200000,
27500000,
28900000,
30000000
]; ];
$this->genererVue( $this->genererVue(
@ -57,8 +70,10 @@ class ControleurAccueil extends Controleur {
'kpis' => $kpis, 'kpis' => $kpis,
'activities' => $activities, 'activities' => $activities,
'alerts' => $alerts, 'alerts' => $alerts,
'claimsBreakdown' => $claimsBreakdown, 'claimsLabels' => $claimsLabels,
'monthlyContributions' => $monthlyContributions 'claimsValues' => $claimsValues,
'months' => $months,
'monthlyCotisations' => $monthlyCotisations
) )
); );
} }

View File

@ -9,18 +9,20 @@
</div> </div>
<div class="card"> <div class="card">
<h3><?= _('Sinistres')?></h3> <h3><?= _('Cotisations / Primes')?></h3>
<div class="value"><?= $kpis["sinistres_count"] ?> / <?= number_format($kpis["sinistres_amount"]) ?> €</div> <div class="value"><?= number_format($kpis["cotisations"]).' '.$_SESSION['devise_C'] ?></div>
</div> </div>
<div class="card"> <div class="card">
<h3><?= _('Cotisations')?></h3> <h3><?= _('Sinistres')?></h3>
<div class="value"><?= number_format($kpis["cotisations"]) ?></div> <div class="value"><?= $kpis["sinistres_count"] ?> / <?= number_format($kpis["sinistres_amount"]).' '.$_SESSION['devise_C'] ?></div>
</div> </div>
<div class="card"> <div class="card">
<h3><?= _('Solde à payer')?></h3> <h3><?= _('Solde à payer')?></h3>
<div class="value"><?= number_format($kpis["solde"]) ?> </div> <div class="value"><?= number_format($kpis["solde"]).' '.$_SESSION['devise_C'] ?> </div>
</div> </div>
</div> </div>
@ -56,13 +58,54 @@
<div class="grid-2"> <div class="grid-2">
<div class="card"> <div class="card">
<h3><?= _('Répartition des sinistres')?></h3> <h3><?= _('Répartition des sinistres')?></h3>
<div class="chart"><?= _('Graphique camembert')?></div> <div class="chart">
<canvas id="claimsPie"></canvas>
</div>
</div> </div>
<div class="card"> <div class="card">
<h3><?= _('>Évolution des cotisations') ?></h3> <h3><?= _('Évolution des cotisations / primes') ?></h3>
<div class="chart">Graphique courbe</div> <div class="chart">
<canvas id="cotisationLine"></canvas>
</div>
</div> </div>
</div> </div>
</div> </div>
<script>
// Répartition des sinistres
new Chart(document.getElementById('claimsPie'), {
type: 'doughnut',
data: {
labels: <?= json_encode($claimsLabels) ?>,
datasets: [{
data: <?= json_encode($claimsValues) ?>
}]
},
options: {
plugins: {
legend: { position: 'right' }
}
}
});
// Évolution des cotisations / primes
new Chart(document.getElementById('cotisationLine'), {
type: 'line',
data: {
labels: <?= json_encode($months) ?>,
datasets: [{
label: "Cotisations (FCFA)",
data: <?= json_encode($monthlyCotisations) ?>,
tension: 0.4,
fill: true
}]
},
options: {
scales: {
y: { beginAtZero: false }
}
}
});
</script>