radiantrh/Controleur/ControleurAccueil.php
2025-12-26 11:52:53 +00:00

88 lines
3.1 KiB
PHP
Executable File

<?php
require_once 'Framework/Controleur.php';
require_once 'Modele/Menuvueutilisateur.php';
require_once 'Modele/Synthese.php';
class ControleurAccueil extends Controleur {
private $menuvue;
private $synthese;
public function __construct() {
$this->menuvue = new Menuvueutilisateur();
$this->menuvue->getMenuVue('Accueil');
$this->synthese = new Synthese();
}
public function index() {
// KPIs
$kpis = $this->synthese->getKpis();
// Activité récente
$activities = [
["icon" => "fas fa-user-plus", "label" => "Nouveaux salariés ajoutés", "time" => "Il y a 1 heure"],
["icon" => "fas fa-sign-out-alt", "label" => "5 départs validés", "time" => "Il y a 2 heures"],
["icon" => "fas fa-pause-circle", "label" => "3 contrats suspendus", "time" => "Il y a 3 jours"],
["icon" => "fas fa-file-invoice", "label" => "Facture de février réglée", "time" => "Il y a 3 jours"]
];
// Alertes
$alerts = [
"Plafond de remboursement atteint",
"Paiement en retard de 4 520 €",
"Documents manquants pour 2 dossiers"
];
// Répartition sinistres
$claims = $this->synthese->getClaims();
$tabclaims = [
'claimsLabels' => array_column($claims, 'claimsLabels'),
'claimsValues' => array_column($claims, 'claimsValues')
];
$dataTabClaims = json_encode($tabclaims, JSON_NUMERIC_CHECK);
// Evolution des sinistres par mois
$claimsMonth = $this->synthese->getClaimsMonth();
$claimsSingleMonth = $this->synthese->getClaimsSingleMonth();
$tabclaimsMonth = [
'months' => array_column($claimsMonth, 'months'),
'monthlyClaims' => array_column($claimsMonth, 'monthlyClaims'),
'singleClaims' => array_column($claimsSingleMonth, 'singleClaims')
];
$dataTabClaimsMonth = json_encode($tabclaimsMonth, JSON_NUMERIC_CHECK);
// SINISTRALITÉ
$claimsLossRatio = $this->synthese->getClaimsLossRatio();
$tabLossRatio = [
'lossRatioLabels' => array_column($claimsLossRatio, 'months'),
'lossRatioValues' => array_column($claimsLossRatio, 'ratio')
];
$dataLossRatio = json_encode($tabLossRatio, JSON_NUMERIC_CHECK);
//$lossRatioLabels = ["Jan", "Fév", "Mar", "Avr", "Mai", "Juin"];
//$lossRatioValues = [62, 68, 71, 65, 73, 69]; // %
// Polices
$polices = $this->synthese->getPolices();
$this->genererVue(
array
(
'kpis' => $kpis,
'polices' => $polices,
'activities' => $activities,
'alerts' => $alerts,
'dataTabClaims' => $dataTabClaims,
'dataTabClaimsMonth' => $dataTabClaimsMonth,
'dataLossRatio' => $dataLossRatio
)
);
}
}