valider
This commit is contained in:
parent
6b639c2323
commit
68910f3853
|
|
@ -862,6 +862,20 @@ body.sidebar-collapsed .nav-bar {
|
||||||
padding: 1rem !important;
|
padding: 1rem !important;
|
||||||
font-size: 9pt;
|
font-size: 9pt;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.chart-container {
|
||||||
|
height: 60vh;
|
||||||
|
}
|
||||||
|
|
||||||
|
.card-header {
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: flex-start !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-export {
|
||||||
|
margin-top: 0.5rem;
|
||||||
|
align-self: flex-end;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Écrans larges : mêmes insets pour nav-tabs et content-area */
|
/* Écrans larges : mêmes insets pour nav-tabs et content-area */
|
||||||
|
|
@ -1432,3 +1446,19 @@ li i { margin-right:10px; color:#007bff; }
|
||||||
border-radius: 8px;
|
border-radius: 8px;
|
||||||
background-color: white;
|
background-color: white;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Styles communs pour tous les graphiques */
|
||||||
|
.chart-container {
|
||||||
|
position: relative;
|
||||||
|
width: 100%;
|
||||||
|
min-height: 300px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.legend-text {
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-export {
|
||||||
|
padding: 0.25rem 0.5rem;
|
||||||
|
font-size: 0.75rem;
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -203,8 +203,34 @@ class ControleurFichebeneficiaire extends Controleur
|
||||||
|
|
||||||
$limite_adherent = $this->garantieadherent->getLimitesAdherent($idAdherent);
|
$limite_adherent = $this->garantieadherent->getLimitesAdherent($idAdherent);
|
||||||
|
|
||||||
$this->genererVue(array('beneficiaire' => $beneficiaire, 'message' => $message, 'nouveau_fichier' => $nouveau_fichier,
|
$prestationsParMois = $this->beneficiaire->getPrestationsmensuelles($idBeneficiaire);
|
||||||
'garantieadherents' => $garantieadherents, 'limite_beneficiaire' => $limite_beneficiaire, 'limite_adherent' => $limite_adherent));
|
|
||||||
|
// Extraction directe des colonnes avec array_column
|
||||||
|
$tabConsoParMois = [
|
||||||
|
'mois' => array_column($prestationsParMois, 'mois'),
|
||||||
|
'consos' => array_column($prestationsParMois, 'consommationBeneficiaire')
|
||||||
|
];
|
||||||
|
|
||||||
|
$tabConsoParGaranties = [
|
||||||
|
'garanties' => array_column($garantieadherents, 'codeGarantie'),
|
||||||
|
'depenses' => array_column($garantieadherents, 'consommation'),
|
||||||
|
'plafonds' => array_column($garantieadherents, 'plafond')
|
||||||
|
];
|
||||||
|
|
||||||
|
// Encodage JSON
|
||||||
|
$dataConsoParMois = json_encode($tabConsoParMois, JSON_NUMERIC_CHECK);
|
||||||
|
$dataConsoParGaranties = json_encode($tabConsoParGaranties, JSON_NUMERIC_CHECK);
|
||||||
|
|
||||||
|
$this->genererVue(array(
|
||||||
|
'beneficiaire' => $beneficiaire,
|
||||||
|
'message' => $message,
|
||||||
|
'nouveau_fichier' => $nouveau_fichier,
|
||||||
|
'garantieadherents' => $garantieadherents,
|
||||||
|
'limite_beneficiaire' => $limite_beneficiaire,
|
||||||
|
'limite_adherent' => $limite_adherent,
|
||||||
|
'dataConsoParMois' => $dataConsoParMois,
|
||||||
|
'dataConsoParGaranties' => $dataConsoParGaranties
|
||||||
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
public function supprimer() {
|
public function supprimer() {
|
||||||
|
|
|
||||||
|
|
@ -1645,4 +1645,17 @@ class Beneficiaire extends Modele {
|
||||||
return $resultat->fetch(PDO::FETCH_ASSOC);
|
return $resultat->fetch(PDO::FETCH_ASSOC);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function getPrestationsmensuelles($idBeneficiaire){
|
||||||
|
|
||||||
|
if (isset($_SESSION['lang']) && $_SESSION['lang']=="en_US"){
|
||||||
|
$sql = 'call prestations_mensuelles_beneficiaire_eng(?)';
|
||||||
|
}else{
|
||||||
|
$sql = 'call prestations_mensuelles_beneficiaire(?)';
|
||||||
|
}
|
||||||
|
|
||||||
|
$resultat = $this->executerRequete($sql, array($idBeneficiaire));
|
||||||
|
|
||||||
|
return $resultat->fetchAll(PDO::FETCH_ASSOC);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
@ -326,5 +326,47 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<!-- Responsive Area Chart -->
|
||||||
|
<div class="row mt-4">
|
||||||
|
<div class="col-12 mb-4">
|
||||||
|
<div class="card shadow h-100">
|
||||||
|
<div class="card-header py-3 d-flex flex-column flex-md-row justify-content-between align-items-center">
|
||||||
|
<h6 class="m-0 font-weight-bold text-primary"><?= _("Dépenses mensuelles") ?></h6>
|
||||||
|
<div class="mt-2 mt-md-0">
|
||||||
|
<button type="button" id="exportTrendBtn" class="btn btn-sm btn-danger mr-2">
|
||||||
|
<i class="fas fa-download"></i> PDF
|
||||||
|
</button>
|
||||||
|
<small class="text-muted"><?= _("Évolution sur 12 mois") ?></small>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="card-body">
|
||||||
|
<div class="chart-container" style="position: relative; height:300px; width:100%">
|
||||||
|
<canvas id="expenseTrendChart"></canvas>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- Bar Chart Section -->
|
||||||
|
<div class="row mt-4">
|
||||||
|
<div class="col-12 mb-4">
|
||||||
|
<div class="card shadow h-100">
|
||||||
|
<div class="card-header py-3 d-flex justify-content-between align-items-center">
|
||||||
|
<h6 class="m-0 font-weight-bold text-primary"><?= _("Dépenses par garantie") ?></h6>
|
||||||
|
<button type="button" id="exportBarBtn" class="btn btn-sm btn-danger">
|
||||||
|
<i class="fas fa-download"></i> PDF
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
<div class="card-body">
|
||||||
|
<div class="chart-container" style="position: relative; height:400px; width:100%">
|
||||||
|
<canvas id="depensesChart"></canvas>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<?php include 'faceebene/ebenetraitementimage.php'; ?>
|
<?php include 'faceebene/ebenetraitementimage.php'; ?>
|
||||||
|
|
|
||||||
|
|
@ -126,7 +126,7 @@ $photoAssureCrypte = $_SESSION['photoAssureCrypte'];
|
||||||
<link rel="manifest" href="<?= $racineWeb ?>manifest.json">
|
<link rel="manifest" href="<?= $racineWeb ?>manifest.json">
|
||||||
|
|
||||||
<!-- 4. VOS STYLES PERSONNALISÉS (en dernier pour qu'ils dominent) -->
|
<!-- 4. VOS STYLES PERSONNALISÉS (en dernier pour qu'ils dominent) -->
|
||||||
<link href="<?= $racineWeb ?>Bootstrap_new/css/style_office.css?ver=2026.01.12.00" rel="stylesheet">
|
<link href="<?= $racineWeb ?>Bootstrap_new/css/style_office.css?ver=2026.01.12.01" rel="stylesheet">
|
||||||
<link href="<?= $racineWeb ?>Bootstrap_new/css/ux_enhancements.css?ver=2025.12.21.02" rel="stylesheet">
|
<link href="<?= $racineWeb ?>Bootstrap_new/css/ux_enhancements.css?ver=2025.12.21.02" rel="stylesheet">
|
||||||
|
|
||||||
<!-- Charts -->
|
<!-- Charts -->
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user