Merge branch 'main' of git.ebene.ovh:ebene/radiantrh
This commit is contained in:
commit
cb0eaafb2e
|
|
@ -87,133 +87,122 @@ class ControleurAjaximporterlisteassure extends Controleurrequete
|
|||
|
||||
public function importermodele()
|
||||
{
|
||||
$idAvenant = $this->requete->getParametreFormulaire("idAvenant");
|
||||
$cheminFichier = $this->requete->getParametreFormulaire("cheminFichier");
|
||||
$idAvenant = $this->requete->getParametreFormulaire("idAvenant");
|
||||
$cheminFichier = $this->requete->getParametreFormulaire("cheminFichier");
|
||||
|
||||
$_SESSION['idAvenant_C'] = $idAvenant;
|
||||
|
||||
$this->beneficiaire->initIinsererLigneModeleAssure();
|
||||
|
||||
$dataXLS = array();
|
||||
|
||||
$fichier = "Temp/import/".$cheminFichier;
|
||||
|
||||
if (!file_exists($fichier))
|
||||
{
|
||||
$this->genererVueAjax(array('message_erreur_excel' => "Fichier introubable sur le serveur !", 'succes_impot_execl' => "0"));
|
||||
// 1. Vérification du fichier
|
||||
if (!file_exists($fichier)) {
|
||||
$this->genererVueAjax(array(
|
||||
'message_erreur_excel' => "Erreur : Fichier introuvable sur le serveur !",
|
||||
'succes_impot_execl' => "0"
|
||||
));
|
||||
exit();
|
||||
}
|
||||
|
||||
/*
|
||||
$docXLS = new PHPExcel_Reader_Excel2007();
|
||||
|
||||
$Excel = $docXLS->load($fichier);
|
||||
|
||||
$Excel->setActiveSheetIndex(0);
|
||||
|
||||
$feuille=$Excel->getActiveSheet();
|
||||
*/
|
||||
|
||||
$docXLS = new \PhpOffice\PhpSpreadsheet\Reader\Xlsx();
|
||||
$Excel = $docXLS->load($fichier);
|
||||
$feuille = $Excel->getSheet($Excel->getFirstSheetIndex());
|
||||
|
||||
|
||||
$derniereLigne = $feuille->getHighestRow();
|
||||
$derniereColonne = $feuille->getHighestColumn();
|
||||
|
||||
$tableauExcel = $feuille->toArray(null, true, true, true);
|
||||
|
||||
for ($i = 2; $i <= $derniereLigne; $i++)
|
||||
{
|
||||
$categorie = trim($tableauExcel[$i]['A']);
|
||||
$numeroAdherent = trim($tableauExcel[$i]['B']);
|
||||
|
||||
$noFamille = trim($tableauExcel[$i]['C']);
|
||||
if ($noFamille<=" ")
|
||||
try {
|
||||
$docXLS = new \PhpOffice\PhpSpreadsheet\Reader\Xlsx();
|
||||
$Excel = $docXLS->load($fichier);
|
||||
$feuille = $Excel->getSheet($Excel->getFirstSheetIndex());
|
||||
|
||||
$derniereLigne = $feuille->getHighestRow();
|
||||
$tableauExcel = $feuille->toArray(null, true, true, true);
|
||||
|
||||
// 2. Boucle de validation et insertion
|
||||
for ($i = 2; $i <= $derniereLigne; $i++)
|
||||
{
|
||||
$noFamille = "0";
|
||||
$categorie = trim($tableauExcel[$i]['A']);
|
||||
$numeroAdherent = trim($tableauExcel[$i]['B']);
|
||||
|
||||
$noFamille = trim($tableauExcel[$i]['C']);
|
||||
if ($noFamille<=" ")
|
||||
{
|
||||
$noFamille = "0";
|
||||
}
|
||||
|
||||
$nom = trim($tableauExcel[$i]['D']);
|
||||
$prenoms = trim($tableauExcel[$i]['E']);
|
||||
|
||||
$codeLienParente = trim($tableauExcel[$i]['F']);
|
||||
|
||||
$codeNaturePiece = trim($tableauExcel[$i]['G']);
|
||||
$numeroPiece = trim($tableauExcel[$i]['H']);
|
||||
$sexe = trim($tableauExcel[$i]['I']);
|
||||
$codeGroupeSanguin = trim($tableauExcel[$i]['J']);
|
||||
$dateNaissance = trim($tableauExcel[$i]['K']);
|
||||
$telephonePortable = trim($tableauExcel[$i]['L']);
|
||||
$email = trim($tableauExcel[$i]['M']);
|
||||
|
||||
$nomComplet = $nom . " " . $prenoms;
|
||||
|
||||
|
||||
// Validation Catégorie
|
||||
if ( (trim($tableauExcel[$i]['A']) <= " ") && ($codeLienParente == "A")) {
|
||||
$this->renvoyerErreurImport("Ligne $i : $nomComplet => Pas de catégorie !");
|
||||
}
|
||||
|
||||
// Validation Lien de parenté
|
||||
if (!in_array($codeLienParente, array("A", "C", "E", "O"))) {
|
||||
$this->renvoyerErreurImport("Ligne $i : $nomComplet => Lien de parenté '$codeLienParente' invalide !");
|
||||
}
|
||||
|
||||
// Validation Sexe
|
||||
if (!in_array($sexe, array("M", "F"))) {
|
||||
$this->renvoyerErreurImport("Ligne $i : $nomComplet => Genre '$sexe' invalide !");
|
||||
}
|
||||
|
||||
// Insertion en base temporaire
|
||||
$this->beneficiaire->insererLigneModeleAssure($idAvenant, $categorie, $numeroAdherent,
|
||||
$noFamille, $nom, $prenoms, $codeLienParente, $codeNaturePiece, $numeroPiece, $sexe,
|
||||
$codeGroupeSanguin, $dateNaissance, $telephonePortable, $email);
|
||||
}
|
||||
|
||||
$nom = trim($tableauExcel[$i]['D']);
|
||||
$prenoms = trim($tableauExcel[$i]['E']);
|
||||
|
||||
$codeLienParente = trim($tableauExcel[$i]['F']);
|
||||
$this->beneficiaire->gererIncorporationSurFamExistante();
|
||||
|
||||
$codeNaturePiece = trim($tableauExcel[$i]['G']);
|
||||
$numeroPiece = trim($tableauExcel[$i]['H']);
|
||||
$sexe = trim($tableauExcel[$i]['I']);
|
||||
$codeGroupeSanguin = trim($tableauExcel[$i]['J']);
|
||||
$dateNaissance = trim($tableauExcel[$i]['K']);
|
||||
$telephonePortable = trim($tableauExcel[$i]['L']);
|
||||
$email = trim($tableauExcel[$i]['M']);
|
||||
|
||||
$nomComplet = $nom . " " . $prenoms;
|
||||
|
||||
if ( ($categorie<=" ") && ($codeLienParente=="A"))
|
||||
{
|
||||
$this->genererVueAjax(array('message_erreur_excel' => $nomComplet . " => Pas de catégorie!", 'succes_impot_execl' => "0"));
|
||||
exit();
|
||||
}
|
||||
|
||||
$liste_liens = array("A", "C", "E", "O");
|
||||
if (!in_array($codeLienParente, $liste_liens))
|
||||
{
|
||||
$this->genererVueAjax(array('message_erreur_excel' => $nomComplet . " => Revoir lien de parenté!", 'succes_impot_execl' => "0"));
|
||||
exit();
|
||||
}
|
||||
// 3. Vérifications métier post-import
|
||||
$this->verifierContraintesMetier();
|
||||
|
||||
$liste_sexes = array("M", "F");
|
||||
if (!in_array($sexe, $liste_sexes))
|
||||
{
|
||||
$this->genererVueAjax(array('message_erreur_excel' => $nomComplet . " => Revoir le sexe!", 'succes_impot_execl' => "0"));
|
||||
exit();
|
||||
}
|
||||
// 4. SUCCÈS FINAL
|
||||
$this->genererVueAjax(array(
|
||||
'message_erreur_excel' => "Fichier analysé avec succès ! Préparation de l'incorporation...",
|
||||
'succes_impot_execl' => "1"
|
||||
));
|
||||
|
||||
// Penser à gérer les erreurs de date
|
||||
|
||||
$this->beneficiaire->insererLigneModeleAssure($idAvenant, $categorie, $numeroAdherent,
|
||||
$noFamille, $nom, $prenoms, $codeLienParente, $codeNaturePiece, $numeroPiece, $sexe,
|
||||
$codeGroupeSanguin, $dateNaissance, $telephonePortable, $email);
|
||||
|
||||
/*
|
||||
echo "Ligne ". $i . " => OK";
|
||||
echo "<BR>";
|
||||
*/
|
||||
} catch (Exception $e) {
|
||||
$this->renvoyerErreurImport("Erreur lors de la lecture du fichier : " . $e->getMessage());
|
||||
}
|
||||
|
||||
$this->beneficiaire->gererIncorporationSurFamExistante();
|
||||
|
||||
// Vérification de certaines erreurs :
|
||||
// 1 => Si nouvelle famille sans Adhérent
|
||||
$noFamilleSansAdherent = $this->beneficiaire->getadhimpfamillesansadherent();
|
||||
if ($noFamilleSansAdherent>"0")
|
||||
{
|
||||
$this->genererVueAjax(array('message_erreur_excel' => "Famille " . $noFamilleSansAdherent . " => Adherent Principal manquant !", 'succes_impot_execl' => "0"));
|
||||
exit();
|
||||
}
|
||||
|
||||
// 2 => Si plus d'1 Adhérent dans une même famille
|
||||
$noFamillePlusieursAdherent = $this->beneficiaire->getadhimpfamilleplusieursadherent();
|
||||
if ($noFamillePlusieursAdherent>"0")
|
||||
{
|
||||
$this->genererVueAjax(array('message_erreur_excel' => "Famille " . $noFamillePlusieursAdherent . " => Plusieurs Adherents Principaux !", 'succes_impot_execl' => "0"));
|
||||
exit();
|
||||
}
|
||||
|
||||
// 3 => Incorporation sur une ancienne famille introuvable dans la police
|
||||
$noFamilleExistantSansAdherent = $this->beneficiaire->getadhimpfamilleexistantsansadherent();
|
||||
if ($noFamilleExistantSansAdherent>"0")
|
||||
{
|
||||
$this->genererVueAjax(array('message_erreur_excel' => "Famille " . $noFamilleExistantSansAdherent . " => Ancienne famille introuvable !", 'succes_impot_execl' => "0"));
|
||||
exit();
|
||||
}
|
||||
|
||||
$this->genererVueAjax(array('message_erreur_excel' => "Fichier temporaire extrait du serveur avec succes!", 'succes_impot_execl' => "1"));
|
||||
|
||||
exit();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Helper pour uniformiser les sorties d'erreur
|
||||
*/
|
||||
private function renvoyerErreurImport($message) {
|
||||
$this->genererVueAjax(array(
|
||||
'message_erreur_excel' => $message,
|
||||
'succes_impot_execl' => "0"
|
||||
));
|
||||
exit();
|
||||
}
|
||||
|
||||
/**
|
||||
* Regroupe vos vérifications de cohérence famille
|
||||
*/
|
||||
private function verifierContraintesMetier() {
|
||||
$err1 = $this->beneficiaire->getadhimpfamillesansadherent();
|
||||
if ($err1 > "0") $this->renvoyerErreurImport("Famille $err1 => Adhérent Principal (A) manquant !");
|
||||
|
||||
$err2 = $this->beneficiaire->getadhimpfamilleplusieursadherent();
|
||||
if ($err2 > "0") $this->renvoyerErreurImport("Famille $err2 => Plusieurs Adhérents Principaux détectés !");
|
||||
|
||||
$err3 = $this->beneficiaire->getadhimpfamilleexistantsansadherent();
|
||||
if ($err3 > "0") $this->renvoyerErreurImport("Famille $err3 => Ancienne famille introuvable dans cette police !");
|
||||
}
|
||||
|
||||
//
|
||||
public function traiterlignesimportees()
|
||||
{
|
||||
|
|
|
|||
278
Js/fonctions.js
278
Js/fonctions.js
|
|
@ -199,6 +199,8 @@ function alert_ebene(p_msg, p_msg_eng) {
|
|||
});
|
||||
}
|
||||
*/
|
||||
|
||||
/*
|
||||
function alert_ebene(p_msg, p_msg_eng)
|
||||
{
|
||||
codeLangue = $("#codeLangue").val();
|
||||
|
|
@ -212,6 +214,45 @@ function alert_ebene(p_msg, p_msg_eng)
|
|||
alert(p_msg);
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
function alert_ebene(msgFr, msgEn) {
|
||||
const codeLangue = document.querySelector("#codeLangue")?.value || "fr_FR";
|
||||
const message = (codeLangue === "en_US") ? msgEn : msgFr;
|
||||
|
||||
// Bloquant : l'utilisateur doit cliquer sur OK
|
||||
window.alert(message);
|
||||
}
|
||||
|
||||
/*
|
||||
function alert_ebene(p_msg, p_msg_eng) {
|
||||
const codeLangue = document.querySelector("#codeLangue")?.value || "fr_FR";
|
||||
const message = (codeLangue === "en_US") ? p_msg_eng : p_msg;
|
||||
|
||||
return Swal.fire({
|
||||
text: message,
|
||||
icon: 'info',
|
||||
confirmButtonText: (codeLangue === "en_US") ? 'OK' : 'D\'accord'
|
||||
}).then(() => {
|
||||
// Ici tu mets l'action suivante, elle ne s'exécute qu'après clic sur OK
|
||||
console.log("Utilisateur a validé le message");
|
||||
});
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
function alert_ebene(msgFr, msgEn) {
|
||||
const codeLangue = document.querySelector("#codeLangue")?.value || "fr_FR";
|
||||
const message = (codeLangue === "en_US") ? msgEn : msgFr;
|
||||
|
||||
return Swal.fire({
|
||||
text: message,
|
||||
icon: 'info',
|
||||
confirmButtonText: (codeLangue === "en_US") ? 'OK' : 'D\'accord'
|
||||
});
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
|
|
@ -1397,7 +1438,7 @@ function enregistrer_avenant()
|
|||
alert_ebene(v_msg, v_msgEng);
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
motifavenant=$("#motifavenant").val();
|
||||
|
||||
|
|
@ -1489,7 +1530,7 @@ function recapituler_retrait()
|
|||
oTable.destroy();
|
||||
|
||||
setTimeout(function() {
|
||||
appliquerDataTable();
|
||||
appliquerDataTable('.tabliste');
|
||||
}, 500);
|
||||
},
|
||||
error: function(data) {
|
||||
|
|
@ -2552,6 +2593,8 @@ function init_importer_modele_assure() {
|
|||
* ETAPE 3 (Action) : Liaison du fichier à l'avenant choisi
|
||||
*/
|
||||
function importer_modele_assure(idAvenant) {
|
||||
debugger;
|
||||
|
||||
// On re-vérifie la présence du fichier par sécurité
|
||||
var cheminFichier = $("#cheminFichier").val();
|
||||
if (!cheminFichier || cheminFichier === "") {
|
||||
|
|
@ -2574,23 +2617,28 @@ function importer_modele_assure(idAvenant) {
|
|||
type: 'POST',
|
||||
data: donnees,
|
||||
success: function(data) {
|
||||
// Le serveur doit retourner un flag de succès dans le HTML
|
||||
// ex: <input type="hidden" id="succes_impot_execl" value="1">
|
||||
$("#div_erreur_excel").html(data);
|
||||
|
||||
var isSuccess = $("#succes_impot_execl").val();
|
||||
|
||||
maj_etape_3_import_assures();
|
||||
/*
|
||||
if (isSuccess === "1") {
|
||||
alert_ebene("Liaison réussie ! Passage au traitement...", "Link successful! Moving to processing...");
|
||||
maj_etape_3_import_assures();
|
||||
} else {
|
||||
div_export.empty(); // On vide le spinner pour laisser voir l'erreur
|
||||
alert_ebene("Le fichier contient des erreurs de format.", "The file contains formatting errors.");
|
||||
}
|
||||
*/
|
||||
},
|
||||
debugger;
|
||||
// 1. On injecte d'abord le contenu dans le div
|
||||
$("#div_erreur_excel").html(data);
|
||||
|
||||
// 2. On cherche l'input spécifiquement DANS le contenu qu'on vient de recevoir
|
||||
// On utilise .find() si l'input est à l'intérieur d'un div,
|
||||
// ou .filter() s'il est à la racine du HTML renvoyé.
|
||||
var isSuccess = $(data).filter("#succes_impot_execl").val() || $(data).find("#succes_impot_execl").val();
|
||||
|
||||
console.log("Valeur détectée :", isSuccess); // Pour votre débogage
|
||||
|
||||
if (isSuccess === "1") {
|
||||
alert_ebene("Opération terminée avec succès!", "Operation completed successfully!");
|
||||
// On attend un tout petit peu que le DOM soit stable avant de passer à la suite
|
||||
setTimeout(function(){
|
||||
maj_etape_3_import_assures();
|
||||
}, 500);
|
||||
} else {
|
||||
div_export.html(''); // On cache le spinner
|
||||
// Le message d'erreur est déjà affiché par $("#div_erreur_excel").html(data)
|
||||
}
|
||||
},
|
||||
error: function() {
|
||||
alert_ebene("Erreur technique lors de l'importation.", "Technical error during import.");
|
||||
}
|
||||
|
|
@ -2897,21 +2945,23 @@ function ajouter_sans_college_adherent_importe_college()
|
|||
v_msg="Attention! Confirmez-vous cette opération?";
|
||||
v_msgEng="Warning! Do you confirm this operation?";
|
||||
|
||||
if(confirm_ebene(v_msg, v_msgEng))
|
||||
{
|
||||
$.ajax({
|
||||
url: $("#racineWeb").val()+"Ajaximporterlisteassure/ajoutersanscollegeadherentaucollege/",
|
||||
type: 'POST',
|
||||
data: donnees,
|
||||
success: function(data) {
|
||||
},
|
||||
error: function(data) {
|
||||
},
|
||||
complete: function() {
|
||||
afficher_adherent_importee();
|
||||
}
|
||||
});
|
||||
confirm_ebene(v_msg, v_msgEng).then(isConfirmed => {
|
||||
if (isConfirmed) {
|
||||
$.ajax({
|
||||
url: $("#racineWeb").val()+"Ajaximporterlisteassure/ajoutersanscollegeadherentaucollege/",
|
||||
type: 'POST',
|
||||
data: donnees,
|
||||
success: function(data) {
|
||||
},
|
||||
error: function(data) {
|
||||
},
|
||||
complete: function() {
|
||||
afficher_adherent_importee();
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -2933,21 +2983,22 @@ function retirer_tous_adherent_importe_college()
|
|||
v_msg="Attention, cela va vider ce collège! Confirmez-vous?";
|
||||
v_msgEng="Attention, this will empty this college! Do you confirm?";
|
||||
|
||||
if(confirm_ebene(v_msg, v_msgEng))
|
||||
{
|
||||
$.ajax({
|
||||
url: $("#racineWeb").val()+"Ajaximporterlisteassure/retirertousadherentaucollege/",
|
||||
type: 'POST',
|
||||
data: donnees,
|
||||
success: function(data) {
|
||||
},
|
||||
error: function(data) {
|
||||
},
|
||||
complete: function() {
|
||||
afficher_adherent_importee();
|
||||
}
|
||||
});
|
||||
confirm_ebene(v_msg, v_msgEng).then(isConfirmed => {
|
||||
if (isConfirmed) {
|
||||
$.ajax({
|
||||
url: $("#racineWeb").val()+"Ajaximporterlisteassure/retirertousadherentaucollege/",
|
||||
type: 'POST',
|
||||
data: donnees,
|
||||
success: function(data) {
|
||||
},
|
||||
error: function(data) {
|
||||
},
|
||||
complete: function() {
|
||||
afficher_adherent_importee();
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function incorporer_assures_inmportes()
|
||||
|
|
@ -3206,8 +3257,17 @@ function afficher_beneficiare_prime_adherent()
|
|||
donnees_retour = "";
|
||||
donnees = 'debutPeriode='+debutPeriode+"&finPeriode="+finPeriode;
|
||||
|
||||
$("#div_detail_requete").html('<div style="padding-top:80px;"><img src="Bootstrap/images/loading.gif"/> <span style="font-size:15pt;">' + 'Veuillez patienter... / Please wait...' + '</span></div>');
|
||||
|
||||
$("#div_detail_requete").html(`
|
||||
<div class="d-flex flex-column align-items-center justify-content-center" style="padding-top:80px;">
|
||||
<div class="spinner-border text-primary" role="status" style="width:3rem; height:3rem;">
|
||||
<span class="visually-hidden">Loading...</span>
|
||||
</div>
|
||||
<span class="mt-3 fs-5 fw-bold">
|
||||
Veuillez patienter... / Please wait...
|
||||
</span>
|
||||
</div>
|
||||
`);
|
||||
|
||||
$.ajax({
|
||||
url: $("#racineWeb").val()+"Ajaxbeneficiaireprimeadherent/",
|
||||
type : 'post',
|
||||
|
|
@ -3230,7 +3290,16 @@ function rapport_sp_police()
|
|||
|
||||
function sinistres_a_prime_police()
|
||||
{
|
||||
$("#div_detail_sp").html('<div style="padding-top:80px;"><img src="Bootstrap/images/loading.gif"/> <span style="font-size:15pt;">' + 'Veuillez patienter... / Please wait...' + '</span></div>');
|
||||
$("#div_detail_sp").html(`
|
||||
<div class="d-flex flex-column align-items-center justify-content-center" style="padding-top:80px;">
|
||||
<div class="spinner-border text-primary" role="status" style="width:3rem; height:3rem;">
|
||||
<span class="visually-hidden">Loading...</span>
|
||||
</div>
|
||||
<span class="mt-3 fs-5 fw-bold">
|
||||
Veuillez patienter... / Please wait...
|
||||
</span>
|
||||
</div>
|
||||
`);
|
||||
|
||||
$.ajax({
|
||||
url: $("#racineWeb").val()+"Ajaxsppolice/police/",
|
||||
|
|
@ -3247,7 +3316,16 @@ function sinistres_a_prime_police()
|
|||
|
||||
function sinistres_a_prime_categorie()
|
||||
{
|
||||
$("#div_detail_sp").html('<div style="padding-top:80px;"><img src="Bootstrap/images/loading.gif"/> <span style="font-size:15pt;">' + 'Veuillez patienter... / Please wait...' + '</span></div>');
|
||||
$("#div_detail_sp").html(`
|
||||
<div class="d-flex flex-column align-items-center justify-content-center" style="padding-top:80px;">
|
||||
<div class="spinner-border text-primary" role="status" style="width:3rem; height:3rem;">
|
||||
<span class="visually-hidden">Loading...</span>
|
||||
</div>
|
||||
<span class="mt-3 fs-5 fw-bold">
|
||||
Veuillez patienter... / Please wait...
|
||||
</span>
|
||||
</div>
|
||||
`);
|
||||
|
||||
$.ajax({
|
||||
url: $("#racineWeb").val()+"Ajaxsppolice/categorie/",
|
||||
|
|
@ -3265,7 +3343,16 @@ function sinistres_a_prime_categorie()
|
|||
|
||||
function sinistres_a_prime_college()
|
||||
{
|
||||
$("#div_detail_sp").html('<div style="padding-top:80px;"><img src="Bootstrap/images/loading.gif"/> <span style="font-size:15pt;">' + 'Veuillez patienter... / Please wait...' + '</span></div>');
|
||||
$("#div_detail_sp").html(`
|
||||
<div class="d-flex flex-column align-items-center justify-content-center" style="padding-top:80px;">
|
||||
<div class="spinner-border text-primary" role="status" style="width:3rem; height:3rem;">
|
||||
<span class="visually-hidden">Loading...</span>
|
||||
</div>
|
||||
<span class="mt-3 fs-5 fw-bold">
|
||||
Veuillez patienter... / Please wait...
|
||||
</span>
|
||||
</div>
|
||||
`);
|
||||
|
||||
$.ajax({
|
||||
url: $("#racineWeb").val()+"Ajaxsppolice/college/",
|
||||
|
|
@ -3285,10 +3372,17 @@ function requetes_synthese_consommation_police()
|
|||
{
|
||||
v_url = $("#racineWeb").val()+"Ajaxsyntheseconsopolice/";
|
||||
|
||||
$("#div_detail_exp").html('');
|
||||
$("#div_detail_sp").html(`
|
||||
<div class="d-flex flex-column align-items-center justify-content-center" style="padding-top:80px;">
|
||||
<div class="spinner-border text-primary" role="status" style="width:3rem; height:3rem;">
|
||||
<span class="visually-hidden">Loading...</span>
|
||||
</div>
|
||||
<span class="mt-3 fs-5 fw-bold">
|
||||
Veuillez patienter... / Please wait...
|
||||
</span>
|
||||
</div>
|
||||
`);
|
||||
|
||||
$("#div_detail_sp").html('<div style="padding-top:80px;"><img src="Bootstrap/images/loading.gif"/> <span style="font-size:15pt;">' + 'Veuillez patienter... / Please wait...' + '</span></div>');
|
||||
|
||||
$.ajax({
|
||||
url: v_url,
|
||||
type : 'post',
|
||||
|
|
@ -3311,7 +3405,16 @@ function requetes_synthese_consommation_police_export()
|
|||
{
|
||||
v_url = $("#racineWeb").val()+"Ajaxsyntheseconsopolice/exportxls/";
|
||||
|
||||
$("#div_detail_exp").html('<div style="padding-top:80px;"><img src="Bootstrap/images/loading.gif"/> <span style="font-size:15pt;">' + 'Veuillez patienter... / Please wait...' + '</span></div>');
|
||||
$("#div_detail_exp").html(`
|
||||
<div class="d-flex flex-column align-items-center justify-content-center" style="padding-top:80px;">
|
||||
<div class="spinner-border text-primary" role="status" style="width:3rem; height:3rem;">
|
||||
<span class="visually-hidden">Loading...</span>
|
||||
</div>
|
||||
<span class="mt-3 fs-5 fw-bold">
|
||||
Veuillez patienter... / Please wait...
|
||||
</span>
|
||||
</div>
|
||||
`);
|
||||
|
||||
$.ajax({
|
||||
url: v_url,
|
||||
|
|
@ -3337,8 +3440,17 @@ function lister_ged_police()
|
|||
|
||||
donnees = 'd1='+d1+'&d2='+d2+'&nomOrigine='+nomOrigine;
|
||||
|
||||
$("#div_ged").html('<div style="padding-top:80px;"><img src="Bootstrap/images/loading.gif"/> <span style="font-size:15pt;">' + 'Veuillez patienter... / Please wait...' + '</span></div>');
|
||||
|
||||
$("#div_ged").html(`
|
||||
<div class="d-flex flex-column align-items-center justify-content-center" style="padding-top:80px;">
|
||||
<div class="spinner-border text-primary" role="status" style="width:3rem; height:3rem;">
|
||||
<span class="visually-hidden">Loading...</span>
|
||||
</div>
|
||||
<span class="mt-3 fs-5 fw-bold">
|
||||
Veuillez patienter... / Please wait...
|
||||
</span>
|
||||
</div>
|
||||
`);
|
||||
|
||||
$.ajax({
|
||||
url: $("#racineWeb").val()+"Ajaxlistegedpolice/",
|
||||
type : 'post',
|
||||
|
|
@ -3377,7 +3489,17 @@ function imprimer_liste_assures_date()
|
|||
donnees = 'dateAnalyse='+dateAnalyse;
|
||||
|
||||
var div_export = $('#div_export_assures');
|
||||
div_export.html('<div style="padding-top:80px;"><img src="Bootstrap/images/loading.gif"/> <span style="font-size:15pt;">' + 'Veuillez patienter... / Please wait...' + '</span></div>');
|
||||
|
||||
div_export.html(`
|
||||
<div class="d-flex flex-column align-items-center justify-content-center" style="padding-top:80px;">
|
||||
<div class="spinner-border text-primary" role="status" style="width:3rem; height:3rem;">
|
||||
<span class="visually-hidden">Loading...</span>
|
||||
</div>
|
||||
<span class="mt-3 fs-5 fw-bold">
|
||||
Veuillez patienter... / Please wait...
|
||||
</span>
|
||||
</div>
|
||||
`);
|
||||
|
||||
$.ajax({
|
||||
url: $("#racineWeb").val()+"Ajaximprimerlisteassure/",
|
||||
|
|
@ -3420,7 +3542,17 @@ function exporter_liste_assures_date()
|
|||
donnees = 'dateAnalyse='+dateAnalyse;
|
||||
|
||||
var div_export = $('#div_exporter_liste_assures');
|
||||
div_export.html('<div style="padding-top:80px;"><img src="Bootstrap/images/loading.gif"/> <span style="font-size:15pt;">' + 'Veuillez patienter... / Please wait...' + '</span></div>');
|
||||
|
||||
div_export.html(`
|
||||
<div class="d-flex flex-column align-items-center justify-content-center" style="padding-top:80px;">
|
||||
<div class="spinner-border text-primary" role="status" style="width:3rem; height:3rem;">
|
||||
<span class="visually-hidden">Loading...</span>
|
||||
</div>
|
||||
<span class="mt-3 fs-5 fw-bold">
|
||||
Veuillez patienter... / Please wait...
|
||||
</span>
|
||||
</div>
|
||||
`);
|
||||
|
||||
$.ajax({
|
||||
url: $("#racineWeb").val()+"Ajaxexporterlisteassure/",
|
||||
|
|
@ -3464,7 +3596,16 @@ function liste_mouvemements_assures()
|
|||
donnees += '&valide='+valide;
|
||||
donnees += '&debut='+debut+'&fin='+fin;
|
||||
|
||||
$("#div_mvt").html('<div style="padding-top:80px;"><img src="Bootstrap/images/loading.gif"/> <span style="font-size:15pt;">' + 'Veuillez patienter... / Please wait...' + '</span></div>');
|
||||
$("#div_mvt").html(`
|
||||
<div class="d-flex flex-column align-items-center justify-content-center" style="padding-top:80px;">
|
||||
<div class="spinner-border text-primary" role="status" style="width:3rem; height:3rem;">
|
||||
<span class="visually-hidden">Loading...</span>
|
||||
</div>
|
||||
<span class="mt-3 fs-5 fw-bold">
|
||||
Veuillez patienter... / Please wait...
|
||||
</span>
|
||||
</div>
|
||||
`);
|
||||
|
||||
$.ajax({
|
||||
url: $("#racineWeb").val()+"Ajaxmouvementassure/",
|
||||
|
|
@ -3474,8 +3615,23 @@ function liste_mouvemements_assures()
|
|||
},
|
||||
success: function(data) {
|
||||
$("#div_mvt").html(data);
|
||||
appliquerDataTable('.tabliste');
|
||||
},
|
||||
complete: function() {
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function retour_fiche_police()
|
||||
{
|
||||
|
||||
idPolice=$("#idPolice_C" ).val();
|
||||
|
||||
if (idPolice>"")
|
||||
{
|
||||
window.location.assign($("#racineWeb" ).val()+"Fichepolice/");
|
||||
}else{
|
||||
window.location.assign($("#racineWeb" ).val()+"Accueil/");
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -10,8 +10,10 @@ class Mouvementassure extends Modele {
|
|||
|
||||
$sql = 'call sp_get_mouvementassures(?, ?, ?, ?, ?)';
|
||||
|
||||
// var_dump(array($codeSensMouvement, $valide, $debut, $fin));
|
||||
// exit();
|
||||
/*
|
||||
var_dump(array($_SESSION['idPolice_C'], $codeSensMouvement, $valide, $debut, $fin));
|
||||
exit();
|
||||
*/
|
||||
|
||||
$resultat = $this->executerRequete($sql, array($_SESSION['idPolice_C'], $codeSensMouvement, $valide, $debut, $fin));
|
||||
|
||||
|
|
|
|||
|
|
@ -1,102 +1,133 @@
|
|||
<div id="div_adherents_importes">
|
||||
<div id="div_adherents_importes" class="animate__animated animate__fadeIn">
|
||||
<div class="row g-4">
|
||||
|
||||
<div id="div_adherents_importes_1" class="col-lg-6">
|
||||
<div class="card shadow-sm border-warning h-100">
|
||||
<div class="card-header bg-warning text-dark py-3 d-flex justify-content-between align-items-center">
|
||||
<h6 class="mb-0 fw-bold"><i class="fas fa-exclamation-triangle me-2"></i><?= _("Familles hors du collège") ?></h6>
|
||||
<span class="badge bg-dark"><?= count($adherents) ?></span>
|
||||
</div>
|
||||
|
||||
<div class="card-body p-2 bg-light">
|
||||
<div class="row g-2 mb-3">
|
||||
<div class="col-6">
|
||||
<button type="button" class="btn btn-primary btn-sm w-100 fw-bold shadow-sm" onclick="ajouter_tous_adherent_importe_college();">
|
||||
<?= _("Tout ajouter") ?> <i class="fas fa-angle-double-right ms-1"></i>
|
||||
</button>
|
||||
</div>
|
||||
<div class="col-6">
|
||||
<button type="button" class="btn btn-outline-warning btn-sm w-100 fw-bold shadow-sm text-dark bg-white" onclick="ajouter_sans_college_adherent_importe_college();">
|
||||
<?= _("Lier les 'Sans Collège'") ?> <i class="fas fa-link ms-1"></i>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div id="div_adherents_importes_1" class="col-xs-6" >
|
||||
<legend> <?= _("Familles hors du collège") ?> </legend>
|
||||
<table class="table table-striped table-bordered table-hover table-condensed table-responsive" style="font-size:8pt;">
|
||||
<thead>
|
||||
<tr>
|
||||
|
||||
<th colspan="3" style='text-align:center'> <?= _("Catégoerie ou Collège") ?> </th>
|
||||
<th colspan="2" style='text-align:center'> <?= _("No Famille") ?> </th>
|
||||
<th colspan="2" style='text-align:center'> <?= _("Familles") ?> </th>
|
||||
|
||||
<th style='text-align:center'> => </th>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<th colspan="3"> <button type="button" style="font-size:10pt;" class="form-control btn btn-primary" onclick="javascript:ajouter_tous_adherent_importe_college();" > <?= _("Ajouter tous") . " ==>" ?> </button> </th>
|
||||
<div class="table-responsive scroll-area">
|
||||
<table class="table table-sm table-hover align-middle bg-white border mb-0" style="font-size: 0.78rem;">
|
||||
<thead class="table-dark sticky-top">
|
||||
<tr>
|
||||
<th><?= _("Cat/Prod") ?></th>
|
||||
<th class="text-center"><?= _("Fam/Adh") ?></th>
|
||||
<th><?= _("Bénéficiaire") ?></th>
|
||||
<th class="text-center">Action</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php foreach ($adherents as $adherent):
|
||||
$idBenef = $adherent['idBeneficiairemodel'];
|
||||
?>
|
||||
<tr>
|
||||
<td>
|
||||
<div class="fw-bold"><?= $this->nettoyer($adherent['categorie']) ?></div>
|
||||
<div class="small <?= ($adherent['idCollege'] <= 0) ? 'text-danger fw-bold' : 'text-muted' ?>">
|
||||
<?= $this->nettoyer($adherent['codeProduit']) ?: 'N/A' ?>
|
||||
</div>
|
||||
</td>
|
||||
<td class="text-center">
|
||||
<span class="badge bg-light text-dark border fw-normal"><?= $this->nettoyer($adherent['noFamille']) ?></span>
|
||||
<div class="x-small text-muted mt-1"><?= $this->nettoyer($adherent['numeroAdherent']) ?></div>
|
||||
</td>
|
||||
<td>
|
||||
<div class="fw-bold text-uppercase"><?= $this->nettoyer($adherent['nom']) ?></div>
|
||||
<div class="text-muted small"><?= $this->nettoyer($adherent['prenoms']) ?></div>
|
||||
</td>
|
||||
<td class="text-center">
|
||||
<button class="btn btn-info btn-sm text-white px-2 py-0" onclick="ajouter_un_adherent_importe_college('<?=$idBenef?>');">
|
||||
<i class="fas fa-chevron-right"></i>
|
||||
</button>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endforeach; ?>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<th colspan="2"> </th>
|
||||
<div id="div_adherents_importes_2" class="col-lg-6">
|
||||
<div class="card shadow-sm border-success h-100">
|
||||
<div class="card-header bg-success text-white py-3 d-flex justify-content-between align-items-center">
|
||||
<h6 class="mb-0 fw-bold"><i class="fas fa-check-circle me-2"></i><?= _("Membres affectés au collège") ?></h6>
|
||||
<span class="badge bg-white text-success"><?= count($adherents_college) ?></span>
|
||||
</div>
|
||||
|
||||
<th colspan="3"> <button type="button" style="font-size:10pt;" class="form-control btn btn-warning" onclick="javascript:ajouter_sans_college_adherent_importe_college();" > <?= _("Ajouter les sans collèges"). " ==>" ?> </button> </th>
|
||||
</tr>
|
||||
|
||||
</thead>
|
||||
<div class="card-body p-2 bg-light">
|
||||
<div class="mb-3">
|
||||
<button type="button" class="btn btn-danger btn-sm w-100 fw-bold shadow-sm" onclick="retirer_tous_adherent_importe_college();">
|
||||
<i class="fas fa-angle-double-left me-1"></i> <?= _("Vider le collège sélectionné") ?>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<tbody>
|
||||
<?php foreach ($adherents as $adherent):
|
||||
$idBeneficiairemodel = $adherent['idBeneficiairemodel'];
|
||||
$idCollege = $adherent['idCollege'];
|
||||
?>
|
||||
<div class="table-responsive scroll-area">
|
||||
<table class="table table-sm table-hover align-middle bg-white border mb-0" style="font-size: 0.78rem;">
|
||||
<thead class="table-secondary sticky-top">
|
||||
<tr>
|
||||
<th class="text-center">Retirer</th>
|
||||
<th><?= _("Cat/Collège") ?></th>
|
||||
<th class="text-center"><?= _("Fam/Adh") ?></th>
|
||||
<th><?= _("Bénéficiaire") ?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php foreach ($adherents_college as $adh_c):
|
||||
$idBenefC = $adh_c['idBeneficiairemodel'];
|
||||
?>
|
||||
<tr>
|
||||
<td class="text-center">
|
||||
<button class="btn btn-outline-danger btn-sm py-0 px-2" onclick="retirer_un_adherent_importe_college('<?=$idBenefC?>');">
|
||||
<i class="fas fa-chevron-left"></i>
|
||||
</button>
|
||||
</td>
|
||||
<td>
|
||||
<div class="fw-bold"><?= $this->nettoyer($adh_c['categorie']) ?></div>
|
||||
<div class="text-success small"><?= $this->nettoyer($adh_c['libelleCollege']) ?></div>
|
||||
</td>
|
||||
<td class="text-center">
|
||||
<span class="badge bg-light text-dark border fw-normal"><?= $this->nettoyer($adh_c['noFamille']) ?></span>
|
||||
</td>
|
||||
<td>
|
||||
<div class="fw-bold text-uppercase small"><?= $this->nettoyer($adh_c['nom']) ?> <?= $this->nettoyer($adh_c['prenoms']) ?></div>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endforeach; ?>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<tr valign="top">
|
||||
|
||||
<td align='center'><?= $this->nettoyer($adherent['categorie']) ?></td>
|
||||
|
||||
<?php if ($idCollege>'0'): ?>
|
||||
<td align='center'><?= $this->nettoyer($adherent['libelleCollege']) ?></td>
|
||||
<td align='center'><?= $this->nettoyer($adherent['codeProduit']) ?></td>
|
||||
<?php else : ?>
|
||||
<td align='center' style="background-color: yellow;"><?= $this->nettoyer($adherent['libelleCollege']) ?></td>
|
||||
<td align='center' style="background-color: yellow;"><?= $this->nettoyer($adherent['codeProduit']) ?></td>
|
||||
<?php endif; ?>
|
||||
|
||||
|
||||
<td align='center'><?= $this->nettoyer($adherent['numeroAdherent']) ?></td>
|
||||
<td align='center'><?= $this->nettoyer($adherent['noFamille']) ?></td>
|
||||
|
||||
<td><?= $this->nettoyer($adherent['nom']) ?></td>
|
||||
<td><?= $this->nettoyer($adherent['prenoms']) ?></td>
|
||||
|
||||
<td align='center'> <input type="button" value="=>" onClick="javascript:ajouter_un_adherent_importe_college('<?=$idBeneficiairemodel?>');" ></td>
|
||||
</tr>
|
||||
<?php endforeach; ?>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="div_adherents_importes_2" class="col-xs-6" >
|
||||
<legend> <?= _("Familles du collège") ?> </legend>
|
||||
<table class="table table-striped table-bordered table-hover table-condensed table-responsive" style="font-size:8pt;">
|
||||
<thead>
|
||||
<tr>
|
||||
|
||||
<th style='text-align:center'> <= </th>
|
||||
|
||||
<th colspan="3" style='text-align:center'> <?= _("Catégoerie ou Collège") ?> </th>
|
||||
<th colspan="2" style='text-align:center'> <?= _("No Famille") ?> </th>
|
||||
<th colspan="2" style='text-align:center'> <?= _("Familles") ?> </th>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="8"> <button type="button" style="font-size:10pt;" class="form-control btn btn-danger" onclick="javascript:retirer_tous_adherent_importe_college();" > <?= "<== " . _("Retirer tous les membres de ce collège") ?> </button> </td>
|
||||
</tr>
|
||||
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
<?php foreach ($adherents_college as $adherent_college):
|
||||
$idBeneficiairemodel=$adherent_college['idBeneficiairemodel'];
|
||||
$idCollege=$adherent_college['idCollege'];
|
||||
?>
|
||||
<tr valign="top">
|
||||
<td align='center'> <input type="button" value="<=" onClick="javascript:retirer_un_adherent_importe_college('<?=$idBeneficiairemodel?>');" ></td>
|
||||
|
||||
<td align='center'><?= $this->nettoyer($adherent_college['categorie']) ?></td>
|
||||
<td align='center'><?= $this->nettoyer($adherent_college['libelleCollege']) ?></td>
|
||||
<td align='center'><?= $this->nettoyer($adherent_college['codeProduit']) ?></td>
|
||||
|
||||
<td align='center'><?= $this->nettoyer($adherent_college['numeroAdherent']) ?></td>
|
||||
<td align='center'><?= $this->nettoyer($adherent_college['noFamille']) ?></td>
|
||||
|
||||
<td><?= $this->nettoyer($adherent_college['nom']) ?></td>
|
||||
<td><?= $this->nettoyer($adherent_college['prenoms']) ?></td>
|
||||
</tr>
|
||||
<?php endforeach; ?>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<style>
|
||||
.scroll-area {
|
||||
height: 450px;
|
||||
overflow-y: auto;
|
||||
border-radius: 4px;
|
||||
}
|
||||
.sticky-top { z-index: 10; }
|
||||
.x-small { font-size: 0.7rem; }
|
||||
.table-sm td { padding: 8px 4px; }
|
||||
</style>
|
||||
|
|
@ -1,4 +1,9 @@
|
|||
<div id="div_erreur_excel" class="alert alert-danger" >
|
||||
<H4> <?= $message_erreur_excel ?> </H4>
|
||||
<input class="sr-only" type="text" id="succes_impot_execl" name="succes_impot_execl" value="<?= $succes_impot_execl ?>">
|
||||
<div class="alert <?= ($succes_impot_execl == '1') ? 'alert-success' : 'alert-danger' ?> shadow-sm border-0 d-flex align-items-center">
|
||||
<i class="fas <?= ($succes_impot_execl == '1') ? 'fa-check-circle' : 'fa-exclamation-triangle' ?> fa-2x me-3"></i>
|
||||
<div>
|
||||
<h6 class="alert-heading mb-1 fw-bold"><?= ($succes_impot_execl == '1') ? _("Analyse réussie") : _("Erreur d'analyse") ?></h6>
|
||||
<span><?= $message_erreur_excel ?></span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<input type="hidden" id="succes_impot_execl" value="<?= $succes_impot_execl ?>">
|
||||
|
|
@ -1,32 +1,66 @@
|
|||
<legend> <?= _("Sélectionner un avenant pour importation OLD") ?> </legend>
|
||||
<div class="mt-4 animate__animated animate__fadeIn">
|
||||
<div class="alert alert-primary d-flex align-items-center mb-3 shadow-sm border-0">
|
||||
<i class="fas fa-info-circle fa-lg me-3"></i>
|
||||
<div>
|
||||
<strong><?= _("Étape 3 :") ?></strong> <?= _("Veuillez sélectionner l'avenant auquel ces nouveaux assurés seront rattachés.") ?>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<table class="table table-striped table-bordered table-hover table-condensed table-responsive" style="font-size:10pt;">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style='text-align:center' > <?= _("Numéro") ?> </th>
|
||||
<th style='text-align:center'> <?= _("Effet") ?> </th>
|
||||
<th> <?= _("Libellé") ?> </th>
|
||||
<th> <?= _("Commentaires") ?> </th>
|
||||
<th> <?= _("Producteur") ?> </th>
|
||||
<th style='text-align:center'> <?= _("Saisie") ?> </th>
|
||||
<th style='text-align:center'> <?= _("Importer...") ?> </th>
|
||||
</tr>
|
||||
</thead>
|
||||
<div class="table-responsive rounded shadow-sm border">
|
||||
<table class="table table-hover align-middle mb-0" style="font-size: 0.9rem;">
|
||||
<thead class="table-light text-muted">
|
||||
<tr>
|
||||
<th class="text-center py-3" width="10%"><?= _("N° Avenant") ?></th>
|
||||
<th class="text-center" width="12%"><?= _("Date Effet") ?></th>
|
||||
<th width="20%"><?= _("Mouvement") ?></th>
|
||||
<th width="25%"><?= _("Motif / Commentaires") ?></th>
|
||||
<th width="15%"><?= _("Auteur") ?></th>
|
||||
<th class="text-center" width="18%"><?= _("Action") ?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php foreach ($avenants as $avenant):
|
||||
$idAvenant = $avenant['idAvenant'];
|
||||
?>
|
||||
<tr class="transition-row">
|
||||
<td class="text-center fw-bold text-primary">
|
||||
<?= $this->nettoyer($avenant['numeroAvenant']) ?>
|
||||
</td>
|
||||
<td class="text-center">
|
||||
<span class="badge bg-light text-dark border fw-bold px-2 py-1">
|
||||
<?= dateLang($this->nettoyer($avenant['dateEffet'])) ?>
|
||||
</span>
|
||||
</td>
|
||||
<td>
|
||||
<div class="fw-bold"><?= $this->nettoyer($avenant['libelleAvenant']) ?></div>
|
||||
<div class="text-muted x-small" style="font-size: 0.75rem;">
|
||||
<i class="far fa-clock me-1"></i>Saisie le <?= dateheureLang($this->nettoyer($avenant['dateSysteme'])) ?>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<div class="text-muted small italic text-truncate" style="max-width: 250px;" title="<?= $this->nettoyer($avenant['motifavenant']) ?>">
|
||||
<?= $this->nettoyer($avenant['motifavenant']) ?: '-' ?>
|
||||
</div>
|
||||
</td>
|
||||
<td class="small">
|
||||
<i class="fas fa-user-edit me-1 text-secondary"></i> <?= $this->nettoyer($avenant['utilisateur']) ?>
|
||||
</td>
|
||||
<td class="text-center">
|
||||
<button type="button"
|
||||
class="btn btn-info btn-sm px-3 shadow-sm text-white fw-bold w-100"
|
||||
onclick="importer_modele_assure(<?= $idAvenant ?>);">
|
||||
<i class="fas fa-file-import me-1"></i> <?= _("Lancer l'import") ?>
|
||||
</button>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endforeach; ?>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<tbody>
|
||||
<?php
|
||||
foreach ($avenants as $avenant):
|
||||
$idAvenant = $avenant['idAvenant'];
|
||||
?>
|
||||
<tr valign="top">
|
||||
<td align='center'><?= $this->nettoyer($avenant['numeroAvenant']) ?></td>
|
||||
<td align='center'><?= dateLang($this->nettoyer($avenant['dateEffet'])) ?></td>
|
||||
<td><?= $this->nettoyer($avenant['libelleAvenant']) ?></td>
|
||||
<td><?= $this->nettoyer($avenant['motifavenant']) ?></td>
|
||||
<td><?= $this->nettoyer($avenant['utilisateur']) ?></td>
|
||||
<td align='center'><?= dateheureLang($this->nettoyer($avenant['dateSysteme'])) ?></td>
|
||||
<td> <button style='font-size:10pt;' type="button" class="form-control btn btn-info" onclick="javascript:importer_modele_assure(<?= $idAvenant ?>);"> <?= _("Importer...") ?> </button> </td>
|
||||
</tr>
|
||||
<?php endforeach; ?>
|
||||
</tbody>
|
||||
</table>
|
||||
<style>
|
||||
.transition-row { transition: all 0.2s ease; }
|
||||
.transition-row:hover { background-color: rgba(13, 202, 240, 0.05) !important; }
|
||||
.italic { font-style: italic; }
|
||||
</style>
|
||||
|
|
@ -1,39 +1,42 @@
|
|||
<div id="div_ged">
|
||||
<?php if((isset($msgErreur)) && ($msgErreur>" ")) : ?>
|
||||
<INPUT style='font-size:14pt; color:red; text-align:center;' class="form-control" type="text" value="<?= $msgErreur ?>" readonly >
|
||||
<?php endif; ?>
|
||||
|
||||
<table class="table table-striped table-bordered table-hover table-condensed table-responsive" style="font-size:7pt;">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style='text-align:center'> Date </th>
|
||||
<th style='text-align:center'> Src </th>
|
||||
<th> <?= _("Souscripteur") ?> </th>
|
||||
<th style='text-align:center'> <?= _("Police") ?> </th>
|
||||
<th> <?= _("Prestataire") ?> </th>
|
||||
<th> <?= _("Adhérent") ?> </th>
|
||||
<th style='text-align:center' colspan="2"> <?= _("Bénéficiaire") ?> </th>
|
||||
<th> Document </th>
|
||||
<th style='text-align:center'> <?= _("Télécharger") ?> </th>
|
||||
<div id="div_ged" class="table-responsive">
|
||||
<table class="table table-hover align-middle mb-0" style="font-size:0.85rem;">
|
||||
<thead class="bg-light text-muted">
|
||||
<tr>
|
||||
<th class="ps-3"><?= _("Date") ?></th>
|
||||
<th><?= _("Source") ?></th>
|
||||
<th><?= _("Police / Bénéficiaire") ?></th>
|
||||
<th><?= _("Document") ?></th>
|
||||
<th class="text-center pe-3"><?= _("Action") ?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
<?php foreach ($geds as $ged):
|
||||
$idGed=$this->nettoyer($ged['idGed']);
|
||||
<?php foreach ($geds as $ged):
|
||||
$cheminFichier = $this->nettoyer($ged['cheminFichier']);
|
||||
?>
|
||||
<tr valign="top">
|
||||
<td align='center'><?= dateheureLang($this->nettoyer($ged['dateSysteme'])) ?></td>
|
||||
<td align='center'><?= $this->nettoyer($ged['source']) ?></td>
|
||||
<td><?= $this->nettoyer($ged['souscripteur']) ?></td>
|
||||
<td align='center'><?= $this->nettoyer($ged['numeroPolice']) ?></td>
|
||||
<td><?= $this->nettoyer($ged['prestataire']) ?></td>
|
||||
<td><?= $this->nettoyer($ged['adherent']) ?></td>
|
||||
<td align='center'><?= $this->nettoyer($ged['numeroBeneficiaire']) ?></td>
|
||||
<td><?= $this->nettoyer($ged['beneficiaire']) ?></td>
|
||||
<td><?= $this->nettoyer($ged['nomOrigine']) ?></td>
|
||||
<td align="center">
|
||||
<a style="font-size:8pt;" href="<?= $cheminFichier ?>" target="_blank" > <?= _("Télécharger") ?> </a>
|
||||
<tr>
|
||||
<td class="ps-3">
|
||||
<div class="fw-bold"><?= dateheureLang($this->nettoyer($ged['dateSysteme'])) ?></div>
|
||||
<div class="text-muted x-small"><?= $this->nettoyer($ged['souscripteur']) ?></div>
|
||||
</td>
|
||||
<td>
|
||||
<span class="badge bg-secondary-subtle text-secondary"><?= $this->nettoyer($ged['source']) ?></span>
|
||||
</td>
|
||||
<td>
|
||||
<div class="small"><i class="fas fa-file-contract me-1 opacity-50"></i> <?= $this->nettoyer($ged['numeroPolice']) ?></div>
|
||||
<div class="fw-bold text-primary">
|
||||
<?= $this->nettoyer($ged['numeroBeneficiaire']) ?> - <?= $this->nettoyer($ged['beneficiaire']) ?>
|
||||
</div>
|
||||
<div class="x-small text-muted italic"><?= $this->nettoyer($ged['adherent']) ?></div>
|
||||
</td>
|
||||
<td>
|
||||
<div class="text-truncate" style="max-width: 200px;" title="<?= $this->nettoyer($ged['nomOrigine']) ?>">
|
||||
<i class="far fa-file-pdf text-danger me-1"></i> <?= $this->nettoyer($ged['nomOrigine']) ?>
|
||||
</div>
|
||||
</td>
|
||||
<td class="text-center pe-3">
|
||||
<a href="<?= $cheminFichier ?>" target="_blank" class="btn btn-sm btn-outline-primary rounded-pill px-3">
|
||||
<i class="fas fa-download me-1"></i> <?= _("Ouvrir") ?>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endforeach; ?>
|
||||
|
|
|
|||
|
|
@ -1,43 +1,92 @@
|
|||
<table class="table table-striped table-bordered table-condensed table-responsive" style="font-size:8pt;">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style='text-align:center'> <?= _("Date Effet") ?> </th>
|
||||
<th style='text-align:center'> Mvt </th>
|
||||
<th style='text-align:center'> <?= _("Uilisateur") ?> </th>
|
||||
<th style='text-align:center'> <?= _("Adhérent") ?> </th>
|
||||
<th style='text-align:center'> <?= _("Bénéficiaire") ?> </th>
|
||||
<th style='text-align:center'> <?= _("Matricule") ?> </th>
|
||||
<th style='text-align:center'> <?= _("Lien") ?> </th>
|
||||
<th style='text-align:center'> <?= _("Saisie") ?> </th>
|
||||
<th style='text-align:center'> <?= _("Validé") ?> </th>
|
||||
<th style='text-align:center'> <?= _("Validation") ?> </th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
<?php foreach ($mouvementassures as $mvt):
|
||||
$idMvt = $this->nettoyer($mvt['id']);
|
||||
$valide = $this->nettoyer($mvt['valide']);
|
||||
$libelleSensMouvement = est_anglophone() ? $mvt['libelleSensMouvementEng'] : $mvt['libelleSensMouvement'];
|
||||
?>
|
||||
<tr valign="top">
|
||||
<td align='center'> <?= dateLang($this->nettoyer($mvt['dateEffet']), $_SESSION['lang']) ?> </td>
|
||||
|
||||
<td align='center'><?= $libelleSensMouvement ?></td>
|
||||
<td align='center'><?= $this->nettoyer($mvt['codeUtilisateur']) ?></td>
|
||||
<td><?= $this->nettoyer($mvt['adherent']) ?></td>
|
||||
<td><?= $this->nettoyer($mvt['beneficiaire']) ?></td>
|
||||
<td align='center'><?= $this->nettoyer($mvt['numeroBeneficiaire']) ?></td>
|
||||
<td align='center'><?= $this->nettoyer($mvt['codeLienParente']) ?></td>
|
||||
<td align='center'><?= dateheureLang($this->nettoyer($mvt['dateSysteme'])) ?></td>
|
||||
<?php if ($valide=="1"): ?>
|
||||
<td align='center'> <input type="checkbox" checked disabled></td>
|
||||
<?php else: ?>
|
||||
<td align='center'> <input type="checkbox" disabled></td>
|
||||
<?php endif; ?>
|
||||
<td align='center'><?= dateheureLang($this->nettoyer($mvt['dateValidation'])) ?></td>
|
||||
<td align='center'><?= $this->nettoyer($mvt['userValidation']) ?></td>
|
||||
</tr>
|
||||
<?php endforeach; ?>
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="table-responsive shadow-sm rounded border animate__animated animate__fadeIn">
|
||||
<table class="table table-hover align-middle mb-0 tabliste compact" style="font-size: 0.85rem;">
|
||||
<thead class="table-light text-secondary">
|
||||
<tr>
|
||||
<th class="text-center border-0 py-3"><?= _("Date Effet") ?></th>
|
||||
<th class="text-center border-0"><?= _("Mvt") ?></th>
|
||||
<th class="border-0"><?= _("Bénéficiaire / Matricule") ?></th>
|
||||
<th class="border-0"><?= _("Adhérent") ?></th>
|
||||
<th class="text-center border-0"><?= _("Lien") ?></th>
|
||||
<th class="text-center border-0"><?= _("Saisie / Par") ?></th>
|
||||
<th class="text-center border-0"><?= _("Statut") ?></th>
|
||||
<th class="text-center border-0"><?= _("Validation") ?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
<?php foreach ($mouvementassures as $mvt):
|
||||
$idMvt = $this->nettoyer($mvt['id']);
|
||||
$valide = $this->nettoyer($mvt['valide']);
|
||||
$sensMvt = $mvt['sensMouvement']; // On suppose que '0' = Entrée, '1' = Sortie
|
||||
|
||||
$libelleSensMouvement = est_anglophone() ? $mvt['libelleSensMouvementEng'] : $mvt['libelleSensMouvement'];
|
||||
|
||||
//var_dump($codeMvt, $libelleSensMouvement);
|
||||
?>
|
||||
<tr>
|
||||
<td class="text-center fw-bold text-dark">
|
||||
<?= dateLang($this->nettoyer($mvt['dateEffet']), $_SESSION['lang']) ?>
|
||||
</td>
|
||||
|
||||
<td class="text-center">
|
||||
<?php if ($sensMvt == '1'): // Entrée ?>
|
||||
<span class="badge rounded-pill bg-success-subtle text-success border border-success-subtle px-3">
|
||||
<i class="fas fa-sign-in-alt me-1"></i> <?= $libelleSensMouvement ?>
|
||||
</span>
|
||||
<?php else: // Sortie ?>
|
||||
<span class="badge rounded-pill bg-danger-subtle text-danger border border-danger-subtle px-3">
|
||||
<i class="fas fa-sign-out-alt me-1"></i> <?= $libelleSensMouvement ?>
|
||||
</span>
|
||||
<?php endif; ?>
|
||||
</td>
|
||||
|
||||
<td>
|
||||
<div class="fw-bold text-uppercase"><?= $this->nettoyer($mvt['beneficiaire']) ?></div>
|
||||
<div class="text-muted x-small"><i class="fas fa-id-card me-1"></i><?= $this->nettoyer($mvt['numeroBeneficiaire']) ?></div>
|
||||
</td>
|
||||
|
||||
<td class="small">
|
||||
<i class="fas fa-user-tie text-secondary me-1"></i> <?= $this->nettoyer($mvt['adherent']) ?>
|
||||
</td>
|
||||
|
||||
<td class="text-center">
|
||||
<span class="badge bg-light text-secondary border"><?= $this->nettoyer($mvt['codeLienParente']) ?></span>
|
||||
</td>
|
||||
|
||||
<td class="text-center">
|
||||
<div class="small"><?= dateheureLang($this->nettoyer($mvt['dateSysteme'])) ?></div>
|
||||
<div class="x-small text-muted fw-bold"><?= $this->nettoyer($mvt['codeUtilisateur']) ?></div>
|
||||
</td>
|
||||
|
||||
<td class="text-center">
|
||||
<?php if ($valide == "1"): ?>
|
||||
<span class="text-success shadow-sm" title="<?= _('Validé') ?>">
|
||||
<i class="fas fa-check-circle fa-lg"></i>
|
||||
</span>
|
||||
<?php else: ?>
|
||||
<span class="text-warning opacity-50" title="<?= _('En attente') ?>">
|
||||
<i class="fas fa-clock fa-lg"></i>
|
||||
</span>
|
||||
<?php endif; ?>
|
||||
</td>
|
||||
|
||||
<td class="text-center small">
|
||||
<?php if ($valide == "1"): ?>
|
||||
<div class="fw-bold text-dark"><?= $this->nettoyer($mvt['userValidation']) ?></div>
|
||||
<div class="x-small text-muted"><?= dateheureLang($this->nettoyer($mvt['dateValidation'])) ?></div>
|
||||
<?php else: ?>
|
||||
<span class="text-muted italic small"><?= _("En attente")?></span>
|
||||
<?php endif; ?>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endforeach; ?>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<style>
|
||||
.x-small { font-size: 0.7rem; }
|
||||
.italic { font-style: italic; }
|
||||
.bg-success-subtle { background-color: #d1e7dd; }
|
||||
.bg-danger-subtle { background-color: #f8d7da; }
|
||||
</style>
|
||||
|
|
@ -1,31 +1,65 @@
|
|||
<div id="div_detail_sp">
|
||||
<div id="div_detail_sp" class="animate__animated animate__fadeIn">
|
||||
|
||||
<div class="d-flex align-items-center bg-primary text-light p-3 rounded-top shadow-sm">
|
||||
<i class="fas fa-layer-group me-3"></i>
|
||||
<h6 class="mb-0 fw-bold text-uppercase"><?= _("Analyse du Rapport S / P par Catégorie") ?></h6>
|
||||
</div>
|
||||
|
||||
<input style='text-align:center; font-size:11pt; background-color:blue;color:white;' class="form-control" type="text" value="<?= _("RAPPORT S / P POLICE PAR CATEGORIE") ?>" disabled >
|
||||
<div class="card border-0 shadow-sm rounded-0 rounded-bottom">
|
||||
<div class="table-responsive">
|
||||
<table class="table table-hover align-middle mb-0 text-center" style="font-size: 0.9rem;">
|
||||
<thead class="bg-light text-muted small fw-bold">
|
||||
<tr>
|
||||
<th class="py-3" width="10%"><?= _("Produit") ?></th>
|
||||
<th width="18%"><?= _("Primes Totales") ?></th>
|
||||
<th width="18%"><?= _("Primes Acquises") ?></th>
|
||||
<th width="18%"><?= _("Consommations") ?></th>
|
||||
<th width="18%"><?= _("S/P (Acquis)") ?></th>
|
||||
<th width="18%"><?= _("S/P Global") ?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<table class="table table-responsive table-condensed" style='font-size:10pt; text-align:center'>
|
||||
<thead>
|
||||
<tr>
|
||||
<th width="10%" style='text-align:center'>Cat</th>
|
||||
<th width="18%" style='text-align:center'> <?= _("Primes Totales") ?> </th>
|
||||
<th width="18%" style='text-align:center'> <?= _("Primes Acquises") ?> </th>
|
||||
<th width="18%" style='text-align:center'> <?= _("Consommations") ?> </th>
|
||||
<th width="18%" style='text-align:center'> <?= _("Rapport S/P") ?> </th>
|
||||
<th width="18%" style='text-align:center'> <?= _("S/P Global") ?> </th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php foreach ($sppolices as $sppolice):
|
||||
// Logique de couleur pour le ratio
|
||||
$ratio = (float)str_replace(',', '.', $sppolice['rapportsp']);
|
||||
$statusClass = ($ratio >= 100) ? 'text-danger fw-bold' : (($ratio >= 75) ? 'text-warning fw-bold' : 'text-success fw-bold');
|
||||
$progressColor = ($ratio >= 100) ? 'bg-danger' : (($ratio >= 75) ? 'bg-warning' : 'bg-success');
|
||||
?>
|
||||
<tr>
|
||||
<td>
|
||||
<span class="badge bg-secondary-subtle text-dark border px-3 py-2"><?= $this->nettoyer($sppolice['codeProduit']) ?></span>
|
||||
</td>
|
||||
|
||||
<tbody>
|
||||
<?php foreach ($sppolices as $sppolice):
|
||||
?>
|
||||
<tr valign="top">
|
||||
<td> <?= $this->nettoyer($sppolice['codeProduit']) ?> </td>
|
||||
<td> <?= format_N($this->nettoyer($sppolice['primestat'])) ?> </td>
|
||||
<td> <?= format_N($this->nettoyer($sppolice['prime_acquise'])) ?> </td>
|
||||
<td> <?= format_N($this->nettoyer($sppolice['consommation'])) ?> </td>
|
||||
<td> <?= $this->nettoyer($sppolice['rapportsp']) ?> </td>
|
||||
<td> <?= $this->nettoyer($sppolice['rapportspgeneral']) ?> </td>
|
||||
</tr>
|
||||
<?php endforeach; ?>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<td class="text-muted"><?= format_N($this->nettoyer($sppolice['primestat'])) ?></td>
|
||||
<td class="fw-semibold text-dark"><?= format_N($this->nettoyer($sppolice['prime_acquise'])) ?></td>
|
||||
|
||||
<td class="text-danger fw-semibold">
|
||||
<?= format_N($this->nettoyer($sppolice['consommation'])) ?>
|
||||
</td>
|
||||
|
||||
<td>
|
||||
<div class="<?= $statusClass ?> mb-1 fs-6">
|
||||
<?= $this->nettoyer($sppolice['rapportsp']) ?> %
|
||||
</div>
|
||||
<div class="progress mx-auto" style="height: 4px; width: 60px;">
|
||||
<div class="progress-bar <?= $progressColor ?>" role="progressbar" style="width: <?= min($ratio, 100) ?>%"></div>
|
||||
</div>
|
||||
</td>
|
||||
|
||||
<td class="text-muted small">
|
||||
<?= $this->nettoyer($sppolice['rapportspgeneral']) ?> %
|
||||
</td>
|
||||
</tr>
|
||||
<?php endforeach; ?>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<style>
|
||||
.bg-secondary-subtle { background-color: #f8f9fa; }
|
||||
.table-hover tbody tr:hover { background-color: rgba(13, 110, 253, 0.02); }
|
||||
.progress { background-color: #e9ecef; border-radius: 10px; }
|
||||
</style>
|
||||
|
|
@ -1,32 +1,72 @@
|
|||
<div id="div_detail_sp">
|
||||
<div id="div_detail_sp" class="animate__animated animate__fadeIn">
|
||||
|
||||
<div class="d-flex align-items-center bg-indigo text-light p-3 rounded-top shadow-sm">
|
||||
<i class="fas fa-users-cog me-3"></i>
|
||||
<h6 class="mb-0 fw-bold text-uppercase"><?= _("Analyse S / P détaillée par Collège") ?></h6>
|
||||
</div>
|
||||
|
||||
<input style='text-align:center; font-size:11pt; background-color:blue;color:white;' class="form-control" type="text" value="<?= _("RAPPORT S / P POLICE PAR COLEGGE") ?>" disabled >
|
||||
<div class="card border-0 shadow-sm rounded-0 rounded-bottom">
|
||||
<div class="table-responsive">
|
||||
<table class="table table-hover align-middle mb-0" style="font-size: 0.88rem;">
|
||||
<thead class="bg-light text-muted small fw-bold text-center">
|
||||
<tr>
|
||||
<th class="py-3 text-start ps-3" colspan="2"><?= _("Identification du Collège") ?></th>
|
||||
<th><?= _("Primes Totales") ?></th>
|
||||
<th><?= _("Primes Acquises") ?></th>
|
||||
<th><?= _("Consommations") ?></th>
|
||||
<th width="15%"><?= _("Ratio S/P (Acquis)") ?></th>
|
||||
<th width="12%"><?= _("S/P Global") ?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<table class="table table-responsive table-condensed" style='font-size:10pt; text-align:center'>
|
||||
<thead>
|
||||
<tr>
|
||||
<th colspan="2" width="20%" style='text-align:center'> <?= _("Collège") ?> </th>
|
||||
<th width="16%" style='text-align:center'> <?= _("Primes Totales") ?> </th>
|
||||
<th width="16%" style='text-align:center'> <?= _("Primes Acquises") ?> </th>
|
||||
<th width="16%" style='text-align:center'> <?= _("Consommations") ?> </th>
|
||||
<th width="16%" style='text-align:center'> <?= _("Rapport S/P") ?> </th>
|
||||
<th width="16%" style='text-align:center'> <?= _("S/P Global") ?> </th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php foreach ($sppolices as $sppolice):
|
||||
$ratio = (float)str_replace(',', '.', $sppolice['rapportsp']);
|
||||
|
||||
// Logique d'alerte visuelle
|
||||
$bgRatio = 'bg-success';
|
||||
$textRatio = 'text-success';
|
||||
if ($ratio >= 100) { $bgRatio = 'bg-danger'; $textRatio = 'text-danger'; }
|
||||
elseif ($ratio >= 80) { $bgRatio = 'bg-warning'; $textRatio = 'text-warning'; }
|
||||
?>
|
||||
<tr class="text-center">
|
||||
<td class="text-start ps-3" width="8%">
|
||||
<span class="badge bg-indigo-subtle text-indigo border border-indigo-subtle"><?= $this->nettoyer($sppolice['codeProduit']) ?></span>
|
||||
</td>
|
||||
|
||||
<td class="text-start fw-bold">
|
||||
<?= $this->nettoyer($sppolice['libelleCollege']) ?>
|
||||
</td>
|
||||
|
||||
<tbody>
|
||||
<?php foreach ($sppolices as $sppolice):
|
||||
?>
|
||||
<tr valign="top">
|
||||
<td> <?= $this->nettoyer($sppolice['codeProduit']) ?> </td>
|
||||
<td> <?= $this->nettoyer($sppolice['libelleCollege']) ?> </td>
|
||||
<td> <?= format_N($this->nettoyer($sppolice['primestat'])) ?> </td>
|
||||
<td> <?= format_N($this->nettoyer($sppolice['prime_acquise'])) ?> </td>
|
||||
<td> <?= format_N($this->nettoyer($sppolice['consommation'])) ?> </td>
|
||||
<td> <?= $this->nettoyer($sppolice['rapportsp']) ?> </td>
|
||||
<td> <?= $this->nettoyer($sppolice['rapportspgeneral']) ?> </td>
|
||||
</tr>
|
||||
<?php endforeach; ?>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<td class="text-muted small"><?= format_N($this->nettoyer($sppolice['primestat'])) ?></td>
|
||||
<td class="fw-semibold text-dark"><?= format_N($this->nettoyer($sppolice['prime_acquise'])) ?></td>
|
||||
<td class="text-danger fw-semibold"><?= format_N($this->nettoyer($sppolice['consommation'])) ?></td>
|
||||
|
||||
<td>
|
||||
<div class="d-flex align-items-center justify-content-center">
|
||||
<span class="me-2 <?= $textRatio ?> fw-bold"><?= $this->nettoyer($sppolice['rapportsp']) ?>%</span>
|
||||
<div class="progress flex-grow-1 d-none d-lg-flex" style="height: 6px; max-width: 50px;">
|
||||
<div class="progress-bar <?= $bgRatio ?>" role="progressbar" style="width: <?= min($ratio, 100) ?>%"></div>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
|
||||
<td class="text-muted italic small">
|
||||
<?= $this->nettoyer($sppolice['rapportspgeneral']) ?>%
|
||||
</td>
|
||||
</tr>
|
||||
<?php endforeach; ?>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<style>
|
||||
.bg-indigo { background-color: #6610f2; }
|
||||
.text-indigo { color: #6610f2; }
|
||||
.bg-indigo-subtle { background-color: #e0d1ff; }
|
||||
.border-indigo-subtle { border-color: #c2a6ff !important; }
|
||||
.italic { font-style: italic; }
|
||||
.table-hover tbody tr:hover { background-color: #f8f9ff; }
|
||||
</style>
|
||||
|
|
@ -1,26 +1,79 @@
|
|||
<div id="div_detail_sp">
|
||||
<div id="div_detail_sp" class="animate__animated animate__fadeIn">
|
||||
<div class="alert alert-dark border-0 shadow-sm d-flex justify-content-between align-items-center py-2 px-3 mb-4">
|
||||
<h6 class="mb-0 fw-bold text-uppercase small text-dark">
|
||||
<i class="fas fa-microscope me-2"></i><?= _("Analyse détaillée : Police Entière") ?>
|
||||
</h6>
|
||||
<span class="badge bg-white text-dark small"><?= date('d/m/Y H:i') ?></span>
|
||||
</div>
|
||||
|
||||
<input style='text-align:center; font-size:11pt; background-color:blue;color:white;' class="form-control" type="text" value="<?= _("RAPPORT S / P POLICE ENTIERE") ?>" disabled >
|
||||
<div class="row g-3 mb-4">
|
||||
<div class="col-md-4">
|
||||
<div class="card h-100 border-0 shadow-sm bg-white">
|
||||
<div class="card-body text-center">
|
||||
<div class="text-muted small fw-bold text-uppercase mb-2"><?= _("Primes Totales (Stat)") ?></div>
|
||||
<h4 class="fw-bold mb-0 text-dark"><?= format_N($this->nettoyer($sppolice['primestat'])) ?></h4>
|
||||
<div class="x-small text-muted mt-1 italic"><?= _("Volume global") ?></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<table class="table table-responsive table-condensed" style='font-size:10pt; text-align:center'>
|
||||
<thead>
|
||||
<tr>
|
||||
<th width="20%" style='text-align:center'> <?= _("Primes Totales") ?> </th>
|
||||
<th width="20%" style='text-align:center'> <?= _("Primes Acquises") ?> </th>
|
||||
<th width="20%" style='text-align:center'> <?= _("Consommations") ?> </th>
|
||||
<th width="20%" style='text-align:center'> <?= _("Rapport S/P") ?> </th>
|
||||
<th width="20%" style='text-align:center'> <?= _("S/P Global") ?> </th>
|
||||
</tr>
|
||||
</thead>
|
||||
<div class="col-md-4">
|
||||
<div class="card h-100 border-0 shadow-sm bg-white border-bottom border-primary border-4">
|
||||
<div class="card-body text-center">
|
||||
<div class="text-primary small fw-bold text-uppercase mb-2"><?= _("Primes Acquises") ?></div>
|
||||
<h4 class="fw-bold mb-0"><?= format_N($this->nettoyer($sppolice['prime_acquise'])) ?></h4>
|
||||
<div class="x-small text-muted mt-1"><?= _("Quote-part au prorata") ?></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<tbody>
|
||||
<tr>
|
||||
<td> <?= format_N($this->nettoyer($sppolice['primestat'])) ?> </td>
|
||||
<td> <?= format_N($this->nettoyer($sppolice['prime_acquise'])) ?> </td>
|
||||
<td> <?= format_N($this->nettoyer($sppolice['consommation'])) ?> </td>
|
||||
<td> <?= $this->nettoyer($sppolice['rapportsp']) ?> </td>
|
||||
<td> <?= $this->nettoyer($sppolice['rapportspgeneral']) ?> </td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<div class="card h-100 border-0 shadow-sm bg-white border-bottom border-danger border-4">
|
||||
<div class="card-body text-center">
|
||||
<div class="text-danger small fw-bold text-uppercase mb-2"><?= _("Consommations") ?></div>
|
||||
<h4 class="fw-bold mb-0 text-danger"><?= format_N($this->nettoyer($sppolice['consommation'])) ?></h4>
|
||||
<div class="x-small text-muted mt-1"><?= _("Sinistres payés + Provisions") ?></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row g-3">
|
||||
<div class="col-md-6">
|
||||
<?php
|
||||
$sp_acquis = (float)str_replace(',', '.', $sppolice['rapportsp']);
|
||||
$color_acquis = $sp_acquis > 80 ? 'danger' : ($sp_acquis > 60 ? 'warning' : 'success');
|
||||
?>
|
||||
<div class="card border-0 shadow-sm bg-<?= $color_acquis ?> text-dark">
|
||||
<div class="card-body d-flex align-items-center">
|
||||
<div class="flex-grow-1">
|
||||
<h6 class="small fw-bold text-uppercase opacity-75"><?= _("Rapport S/P (Acquises)") ?></h6>
|
||||
<h2 class="fw-bold mb-0"><?= $this->nettoyer($sppolice['rapportsp']) ?> %</h2>
|
||||
</div>
|
||||
<div class="fs-1 opacity-25">
|
||||
<i class="fas fa-chart-pie"></i>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-6">
|
||||
<div class="card border-0 shadow-sm bg-secondary text-dark">
|
||||
<div class="card-body d-flex align-items-center">
|
||||
<div class="flex-grow-1">
|
||||
<h6 class="small fw-bold text-uppercase opacity-75"><?= _("S/P Global (Stat)") ?></h6>
|
||||
<h2 class="fw-bold mb-0"><?= $this->nettoyer($sppolice['rapportspgeneral']) ?> %</h2>
|
||||
</div>
|
||||
<div class="fs-1 opacity-25">
|
||||
<i class="fas fa-percentage"></i>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<style>
|
||||
.x-small { font-size: 0.75rem; }
|
||||
.italic { font-style: italic; }
|
||||
</style>
|
||||
|
|
@ -1,63 +1,142 @@
|
|||
<div id="div_detail_sp">
|
||||
<table class="table table-striped table-bordered table-hover table-condensed table-responsive" style="font-size:7pt;">
|
||||
<thead>
|
||||
<tr>
|
||||
<th rowspan="2" colspan="2" style='text-align:center'> <?= _("Adhérent") ?> </th>
|
||||
<?php
|
||||
$this->titre = "INTER-SANTE - Synthèse Consommations";
|
||||
// Initialisation des totaux pour le footer
|
||||
$totStat = $totTtc = $totAll = 0;
|
||||
$natures = ['OUT', 'INP', 'OPT', 'MON', 'DEN', 'FUN'];
|
||||
$totPlafonds = array_fill_keys($natures, 0);
|
||||
$totConsos = array_fill_keys($natures, 0);
|
||||
?>
|
||||
|
||||
<th colspan="2" style='text-align:center'> <?= _("Primes") ?> </th>
|
||||
<style>
|
||||
/* --- STYLES ÉCRAN --- */
|
||||
.nowrap { white-space: nowrap !important; }
|
||||
|
||||
.table-responsive-custom {
|
||||
overflow: auto;
|
||||
max-height: 70vh;
|
||||
border: 1px solid #dee2e6;
|
||||
background: white;
|
||||
}
|
||||
|
||||
<th colspan="6" style='text-align:center'> <?= _("Plafonds") ?> </th>
|
||||
/* Colonne Nom figée à gauche */
|
||||
.sticky-col {
|
||||
position: sticky;
|
||||
left: 0;
|
||||
z-index: 5;
|
||||
background-color: #f8f9fa !important;
|
||||
border-right: 2px solid #dee2e6 !important;
|
||||
}
|
||||
|
||||
<th colspan="7" style='text-align:center'> <?= _("Consommations") ?> </th>
|
||||
</tr>
|
||||
/* En-tête figé en haut */
|
||||
.sticky-header {
|
||||
position: sticky;
|
||||
top: 0;
|
||||
z-index: 10;
|
||||
}
|
||||
|
||||
<tr>
|
||||
|
||||
<th style='text-align:center'> Stat </th>
|
||||
<th style='text-align:center'> <?= _("TTC") ?> </th>
|
||||
|
||||
<th style='text-align:center'> OUT </th>
|
||||
<th style='text-align:center'> INP </th>
|
||||
<th style='text-align:center'> OPT </th>
|
||||
<th style='text-align:center'> MON </th>
|
||||
<th style='text-align:center'> DEN </th>
|
||||
<th style='text-align:center'> FUN </th>
|
||||
|
||||
<th style='text-align:center'> OUT </th>
|
||||
<th style='text-align:center'> INP </th>
|
||||
<th style='text-align:center'> OPT </th>
|
||||
<th style='text-align:center'> MON </th>
|
||||
<th style='text-align:center'> DEN </th>
|
||||
<th style='text-align:center'> FUN </th>
|
||||
<th style='text-align:center'> ALL </th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php foreach ($conommations as $conommation): ?>
|
||||
<tr valign="top">
|
||||
<td><?= $this->nettoyer($conommation['nomAdherent']) ?></td>
|
||||
<td align='center'><?= $this->nettoyer($conommation['numeroAdherent']) ?></td>
|
||||
|
||||
<td align='center'><?= format_N($this->nettoyer($conommation['primeStat'])) ?></td>
|
||||
<td align='center'><?= format_N($this->nettoyer($conommation['primeTtc'])) ?></td>
|
||||
|
||||
<td align='center'><?= format_N($this->nettoyer($conommation['plafond_OUT'])) ?></td>
|
||||
<td align='center'><?= format_N($this->nettoyer($conommation['plafond_INP'])) ?></td>
|
||||
<td align='center'><?= format_N($this->nettoyer($conommation['plafond_OPT'])) ?></td>
|
||||
<td align='center'><?= format_N($this->nettoyer($conommation['plafond_MON'])) ?></td>
|
||||
<td align='center'><?= format_N($this->nettoyer($conommation['plafond_DEN'])) ?></td>
|
||||
<td align='center'><?= format_N($this->nettoyer($conommation['plafond_FUN'])) ?></td>
|
||||
|
||||
<td align='center'><?= format_N($this->nettoyer($conommation['consommation_OUT'])) ?></td>
|
||||
<td align='center'><?= format_N($this->nettoyer($conommation['consommation_INP'])) ?></td>
|
||||
<td align='center'><?= format_N($this->nettoyer($conommation['consommation_OPT'])) ?></td>
|
||||
<td align='center'><?= format_N($this->nettoyer($conommation['consommation_MON'])) ?></td>
|
||||
<td align='center'><?= format_N($this->nettoyer($conommation['consommation_DEN'])) ?></td>
|
||||
<td align='center'><?= format_N($this->nettoyer($conommation['consommation_FUN'])) ?></td>
|
||||
/* --- STYLES IMPRESSION PDF --- */
|
||||
@media print {
|
||||
@page { size: A4 landscape; margin: 10mm; }
|
||||
body * { visibility: hidden; }
|
||||
#section-to-print, #section-to-print * { visibility: visible; }
|
||||
#section-to-print {
|
||||
position: absolute;
|
||||
left: 0; top: 0; width: 100%;
|
||||
}
|
||||
.no-print { display: none !important; }
|
||||
.table-responsive-custom { overflow: visible !important; max-height: none !important; }
|
||||
.sticky-col { position: static !important; background-color: white !important; }
|
||||
table { font-size: 7pt !important; width: 100% !important; }
|
||||
.nowrap { white-space: nowrap !important; }
|
||||
body { -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important; }
|
||||
}
|
||||
</style>
|
||||
|
||||
<td align='center'><?= format_N($this->nettoyer($conommation['consommation_ALL'])) ?></td>
|
||||
</tr>
|
||||
<?php endforeach; ?>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="container-fluid py-3" id="main-container">
|
||||
|
||||
<div id="section-to-print">
|
||||
|
||||
<div class="d-none d-print-block mb-3 border-bottom pb-2">
|
||||
<h3 class="text-uppercase"><?= _("Synthèse des Consommations Adhérents") ?></h3>
|
||||
<p>Police: <b><?= $_SESSION['numeroPolice_C'] ?></b> | Date: <?= date('d/m/Y H:i') ?></p>
|
||||
</div>
|
||||
|
||||
<div id="div_detail_sp" class="table-responsive-custom shadow-sm rounded">
|
||||
<table class="table table-sm table-hover align-middle mb-0" style="font-size: 0.75rem;">
|
||||
<thead class="text-white sticky-header">
|
||||
<tr class="bg-dark text-center">
|
||||
<th colspan="2" class="py-2 sticky-col bg-dark"><?= _("Bénéficiaire") ?></th>
|
||||
<th colspan="2" class="bg-primary bg-opacity-75"><?= _("Primes") ?></th>
|
||||
<th colspan="6" class="bg-info bg-opacity-50 text-dark"><?= _("Plafonds") ?></th>
|
||||
<th colspan="7" class="bg-danger bg-opacity-75"><?= _("Consommations") ?></th>
|
||||
</tr>
|
||||
<tr class="bg-light text-dark small text-center border-bottom">
|
||||
<th class="sticky-col bg-light"><?= _("Nom & Prénoms") ?></th>
|
||||
<th class="border-end">N° Adh</th>
|
||||
<th>Stat</th>
|
||||
<th class="border-end">TTC</th>
|
||||
<?php foreach ($natures as $n): ?><th><?= $n ?></th><?php endforeach; ?>
|
||||
<?php foreach ($natures as $n): ?><th class="border-start border-white"><?= $n ?></th><?php endforeach; ?>
|
||||
<th class="bg-dark text-white fw-bold">TOTAL</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
<?php foreach ($conommations as $conso):
|
||||
// Cumul des totaux
|
||||
$totStat += (float)$conso['primeStat'];
|
||||
$totTtc += (float)$conso['primeTtc'];
|
||||
$totAll += (float)$conso['consommation_ALL'];
|
||||
?>
|
||||
<tr class="text-center">
|
||||
<td class="text-start ps-2 sticky-col fw-bold text-uppercase"><?= $this->nettoyer($conso['nomAdherent']) ?></td>
|
||||
<td class="border-end text-muted small"><?= $this->nettoyer($conso['numeroAdherent']) ?></td>
|
||||
|
||||
<td class="nowrap"><?= format_N($conso['primeStat']) ?></td>
|
||||
<td class="nowrap border-end fw-semibold"><?= format_N($conso['primeTtc']) ?></td>
|
||||
|
||||
<?php foreach ($natures as $n):
|
||||
$totPlafonds[$n] += (float)$conso['plafond_'.$n];
|
||||
?>
|
||||
<td class="nowrap text-muted"><?= format_N($conso['plafond_'.$n]) ?></td>
|
||||
<?php endforeach; ?>
|
||||
|
||||
<?php foreach ($natures as $n):
|
||||
$totConsos[$n] += (float)$conso['consommation_'.$n];
|
||||
?>
|
||||
<td class="nowrap bg-danger bg-opacity-10 text-danger fw-medium border-start border-white">
|
||||
<?= format_N($conso['consommation_'.$n]) ?>
|
||||
</td>
|
||||
<?php endforeach; ?>
|
||||
|
||||
<td class="nowrap bg-dark text-white fw-bold"><?= format_N($conso['consommation_ALL']) ?></td>
|
||||
</tr>
|
||||
<?php endforeach; ?>
|
||||
</tbody>
|
||||
|
||||
<tfoot class="bg-warning bg-opacity-10 fw-bold border-top border-dark text-center shadow-lg sticky-bottom">
|
||||
<tr>
|
||||
<td colspan="2" class="text-end pe-3 bg-dark text-white"><?= _("TOTAL GÉNÉRAL") ?> :</td>
|
||||
<td class="nowrap bg-primary bg-opacity-25"><?= format_N($totStat) ?></td>
|
||||
<td class="nowrap bg-primary bg-opacity-25 border-end border-dark"><?= format_N($totTtc) ?></td>
|
||||
<?php foreach ($natures as $n): ?><td class="nowrap bg-info bg-opacity-25"><?= format_N($totPlafonds[$n]) ?></td><?php endforeach; ?>
|
||||
<?php foreach ($natures as $n): ?><td class="nowrap bg-danger bg-opacity-25 text-danger border-start border-white"><?= format_N($totConsos[$n]) ?></td><?php endforeach; ?>
|
||||
<td class="nowrap bg-dark text-warning fw-bolder fs-6 border-start border-white"><?= format_N($totAll) ?></td>
|
||||
</tr>
|
||||
</tfoot>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
// Script pour s'assurer que le scroll est fluide et les colonnes figées bien alignées
|
||||
document.addEventListener('DOMContentLoaded', function() {
|
||||
const tableCont = document.querySelector('.table-responsive-custom');
|
||||
if(tableCont) {
|
||||
tableCont.addEventListener('scroll', function() {
|
||||
// Optionnel : ajouter une ombre sur la colonne figée lors du scroll
|
||||
});
|
||||
}
|
||||
});
|
||||
</script>
|
||||
|
|
@ -1,89 +1,125 @@
|
|||
<?php
|
||||
$this->titre = "INTER-SANTE - GED Police";
|
||||
<?php $this->titre = "INTER-SANTE - GED Police"; ?>
|
||||
|
||||
/*
|
||||
var_dump
|
||||
(
|
||||
array(
|
||||
"cheminGed" => $_SESSION['cheminGed'],
|
||||
"lienRh" => $_SESSION['lienRh_C'],
|
||||
"dossierGed" => $_SESSION['dossierGed'],
|
||||
)
|
||||
);
|
||||
*/
|
||||
?>
|
||||
<div id="div_police" class="container-fluid py-4 animate__animated animate__fadeIn">
|
||||
<h1 class="text-primary"><i class="fas fa-folder-open me-2"></i></i> <?= _("Gestion Électronique des Documents (GED)") ?></h1>
|
||||
|
||||
<legend> <?= _("GED Police => Limité à 50 documents => Filtrer sur période pour obtenir le résultat souhaité") ?> </legend>
|
||||
<div class="card-header d-flex justify-content-between align-items-center py-1">
|
||||
<h4 class="fw-bold text-secondary mb-0">
|
||||
<?= _("Police") ?> :
|
||||
<span class="text-primary"><?= $this->nettoyer($_SESSION['numeroPolice_C']) ?></span>
|
||||
</h4>
|
||||
<span class="badge bg-info-subtle text-dark border border-info-subtle px-3 py-2">
|
||||
<i class="fas fa-info-circle me-1"></i> <?= _("Limité aux 50 derniers documents") ?>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
|
||||
<form enctype="multipart/form-data" action="Gedpolice" method="post">
|
||||
<table class="table table-responsive table-condensed" style='font-size:10pt;'>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td width="7%" > <?= _("Période du") ?> </td>
|
||||
<td width="15%" ><INPUT style='text-align:center; font-size:10pt;' class="form-control datepicker" TYPE="text" id="d1" NAME="d1" value="<?= dateLang($_SESSION['dUneSemaineAvant_C'], $_SESSION['lang']) ?>" required></td>
|
||||
<?php if((isset($msgErreur)) && ($msgErreur > " ")) : ?>
|
||||
<div class="alert alert-danger shadow-sm d-flex align-items-center" role="alert">
|
||||
<i class="fas fa-exclamation-triangle me-2 fs-4"></i>
|
||||
<div><?= $msgErreur ?></div>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
|
||||
<td width="7%" align="center" > <?= _("au") ?> </td>
|
||||
<td width="15%" ><INPUT style='text-align:center; font-size:10pt;' class="form-control datepicker" TYPE="text" id="d2" NAME="d2" value="<?= dateCouranteLang($_SESSION['lang']) ?>" required></td>
|
||||
<div class="row g-4 mt-1">
|
||||
<div class="col-xl-4">
|
||||
<div class="card shadow-sm border-0 h-100">
|
||||
<div class="card-header bg-white py-3">
|
||||
<h6 class="mb-0 fw-bold"><i class="fas fa-filter me-2"></i><?= _("Actions & Filtres") ?></h6>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div class="mb-4">
|
||||
<label class="form-label small fw-bold text-muted text-uppercase"><?= _("Période de recherche") ?></label>
|
||||
<div class="input-group mb-2">
|
||||
<span class="input-group-text small"><?= _("Du") ?></span>
|
||||
<input type="text" id="d1" name="d1" class="form-control datepicker text-center"
|
||||
value="<?= dateLang($_SESSION['dUneSemaineAvant_C'], $_SESSION['lang']) ?>" required>
|
||||
</div>
|
||||
<div class="input-group mb-3">
|
||||
<span class="input-group-text small"><?= _("Au") ?></span>
|
||||
<input type="text" id="d2" name="d2" class="form-control datepicker text-center"
|
||||
value="<?= dateCouranteLang($_SESSION['lang']) ?>" required>
|
||||
</div>
|
||||
|
||||
<label class="form-label small fw-bold text-muted text-uppercase"><?= _("Nom du document") ?></label>
|
||||
<input type="text" id="nomOrigine" name="nomOrigine" class="form-control mb-3" placeholder="Ex: Contrat...">
|
||||
|
||||
<button type="button" class="btn btn-primary w-100 fw-bold" onclick="lister_ged_police();">
|
||||
<i class="fas fa-sync-alt me-2"></i><?= _("Actualiser la liste") ?>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<td align="center" width="4%" > Doc </td>
|
||||
<td colspan="1"> <INPUT style='font-size:10pt;' class="form-control" type="text" id="nomOrigine" name="nomOrigine" > </td>
|
||||
<hr class="text-muted opacity-25">
|
||||
|
||||
<td width="2%"> </td>
|
||||
<td > <button style='font-size:10pt;' type="button" class="form-control btn btn-primary" onclick="javascript:lister_ged_police();"><?= _("Actualiser...") ?></button> </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td> <?= _("Document") ?> </td>
|
||||
<td colspan="5"> <input style="font-size: 15px; height: 40px" class="form-control btn btn-info" name="fichier_upload" type="file" id="fichier_upload" /> </td>
|
||||
<form enctype="multipart/form-data" action="Gedpolice" method="post" class="mt-4">
|
||||
<label class="form-label small fw-bold text-muted text-uppercase"><?= _("Nouveau document") ?></label>
|
||||
<div class="mb-3">
|
||||
<input class="form-control" name="fichier_upload" type="file" id="fichier_upload" required>
|
||||
<div class="form-text x-small"><?= _("Sélectionnez un fichier pour l'ajouter à cette police.") ?></div>
|
||||
</div>
|
||||
<button type="submit" name="submit" class="btn btn-success w-100 fw-bold">
|
||||
<i class="fas fa-cloud-upload-alt me-2"></i><?= _("Envoyer le fichier") ?>
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<td> </td>
|
||||
<td> <input style='font-size:10pt;' class="form-control btn btn-primary" type="submit" name="submit" value="<?= _("Envoyer") ?>" /> </td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</form>
|
||||
<div class="col-xl-8">
|
||||
<div class="card shadow-sm border-0 h-100">
|
||||
<div id="div_ged" class="table-responsive">
|
||||
<table class="table table-hover align-middle mb-0" style="font-size:0.85rem;">
|
||||
<thead class="bg-light text-muted">
|
||||
<tr>
|
||||
<th class="ps-3"><?= _("Date") ?></th>
|
||||
<th><?= _("Source") ?></th>
|
||||
<th><?= _("Police / Bénéficiaire") ?></th>
|
||||
<th><?= _("Document") ?></th>
|
||||
<th class="text-center pe-3"><?= _("Action") ?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php foreach ($geds as $ged):
|
||||
$cheminFichier = $this->nettoyer($ged['cheminFichier']);
|
||||
?>
|
||||
<tr>
|
||||
<td class="ps-3">
|
||||
<div class="fw-bold"><?= dateheureLang($this->nettoyer($ged['dateSysteme'])) ?></div>
|
||||
<div class="text-muted x-small"><?= $this->nettoyer($ged['souscripteur']) ?></div>
|
||||
</td>
|
||||
<td>
|
||||
<span class="badge bg-secondary-subtle text-secondary"><?= $this->nettoyer($ged['source']) ?></span>
|
||||
</td>
|
||||
<td>
|
||||
<div class="small"><i class="fas fa-file-contract me-1 opacity-50"></i> <?= $this->nettoyer($ged['numeroPolice']) ?></div>
|
||||
<div class="fw-bold text-primary">
|
||||
<?= $this->nettoyer($ged['numeroBeneficiaire']) ?> - <?= $this->nettoyer($ged['beneficiaire']) ?>
|
||||
</div>
|
||||
<div class="x-small text-muted italic"><?= $this->nettoyer($ged['adherent']) ?></div>
|
||||
</td>
|
||||
<td>
|
||||
<div class="text-truncate" style="max-width: 200px;" title="<?= $this->nettoyer($ged['nomOrigine']) ?>">
|
||||
<i class="far fa-file-pdf text-danger me-1"></i> <?= $this->nettoyer($ged['nomOrigine']) ?>
|
||||
</div>
|
||||
</td>
|
||||
<td class="text-center pe-3">
|
||||
<a href="<?= $cheminFichier ?>" target="_blank" class="btn btn-sm btn-outline-primary rounded-pill px-3">
|
||||
<i class="fas fa-download me-1"></i> <?= _("Ouvrir") ?>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endforeach; ?>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="div_ged">
|
||||
<?php if((isset($msgErreur)) && ($msgErreur>" ")) : ?>
|
||||
<INPUT style='font-size:14pt; color:red; text-align:center;' class="form-control" type="text" value="<?= $msgErreur ?>" readonly >
|
||||
<?php endif; ?>
|
||||
|
||||
<table class="table table-striped table-bordered table-hover table-condensed table-responsive" style="font-size:7pt;">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style='text-align:center'> Date </th>
|
||||
<th style='text-align:center'> Src </th>
|
||||
<th> <?= _("Souscripteur") ?> </th>
|
||||
<th style='text-align:center'> <?= _("Police") ?> </th>
|
||||
<th> <?= _("Prestataire") ?> </th>
|
||||
<th> <?= _("Adhérent") ?> </th>
|
||||
<th style='text-align:center' colspan="2"> <?= _("Bénéficiaire") ?> </th>
|
||||
<th> Document </th>
|
||||
<th style='text-align:center'> <?= _("Télécharger") ?> </th>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
<?php foreach ($geds as $ged):
|
||||
$idGed=$this->nettoyer($ged['idGed']);
|
||||
$cheminFichier = $this->nettoyer($ged['cheminFichier']);
|
||||
?>
|
||||
<tr valign="top">
|
||||
<td align='center'><?= dateheureLang($this->nettoyer($ged['dateSysteme'])) ?></td>
|
||||
<td align='center'><?= $this->nettoyer($ged['source']) ?></td>
|
||||
<td><?= $this->nettoyer($ged['souscripteur']) ?></td>
|
||||
<td align='center'><?= $this->nettoyer($ged['numeroPolice']) ?></td>
|
||||
<td><?= $this->nettoyer($ged['prestataire']) ?></td>
|
||||
<td><?= $this->nettoyer($ged['adherent']) ?></td>
|
||||
<td align='center'><?= $this->nettoyer($ged['numeroBeneficiaire']) ?></td>
|
||||
<td><?= $this->nettoyer($ged['beneficiaire']) ?></td>
|
||||
<td><?= $this->nettoyer($ged['nomOrigine']) ?></td>
|
||||
<td align="center">
|
||||
<a style="font-size:8pt;" href="<?= $cheminFichier ?>" target="_blank" > <?= _("Télécharger") ?> </a>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endforeach; ?>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<style>
|
||||
.x-small { font-size: 0.75rem; }
|
||||
.italic { font-style: italic; }
|
||||
.table-responsive { max-height: 700px; overflow-y: auto; }
|
||||
.bg-warning-subtle { background-color: #fff3cd !important; }
|
||||
</style>
|
||||
|
|
@ -1,5 +1,7 @@
|
|||
<?php
|
||||
$etatPolice = $this->nettoyer($police['etatPolice']);
|
||||
$codeEtat = $this->nettoyer($police['codeEtatPolice']);
|
||||
|
||||
?>
|
||||
<div id="div_liste_adherent" class="container-fluid py-1 animate__animated animate__fadeIn">
|
||||
<input type="hidden" id="etape2" value="<?= $fichierimport['etape2'] ?>">
|
||||
|
|
@ -20,9 +22,9 @@
|
|||
</div>
|
||||
<div class="col-md-2 text-center border-start">
|
||||
<h6 class="text-muted small fw-bold mb-1 text-uppercase"><?= _("État") ?></h6>
|
||||
<?php if($etatPolice == "EC"):?>
|
||||
<?php if($codeEtat == "EC"):?>
|
||||
<span class="badge bg-success px-3"><?= $etatPolice ?></span>
|
||||
<?php elseif($etatPolice == "SU"):?>
|
||||
<?php elseif($codeEtat == "SU"):?>
|
||||
<span class="badge bg-warning px-3"><?= $etatPolice ?></span>
|
||||
<?php else:?>
|
||||
<span class="badge bg-danger px-3"><?= $etatPolice ?></span>
|
||||
|
|
|
|||
|
|
@ -1,20 +1,51 @@
|
|||
<?php $this->titre = "INTER-SANTE - Lier collèges"; ?>
|
||||
<div id="div_liste_adherent" class="container-fluid py-4 animate__animated animate__fadeIn">
|
||||
|
||||
<h1 class="text-primary"><i class="fas fa-link me-2 me-2"></i></i> <?= _("Association des assurés aux collèges") ?></h1>
|
||||
|
||||
<legend> <?= _("Lier les assurés importés à un collège") ?> </legend>
|
||||
<div class="card shadow-sm border-0 mb-4">
|
||||
<div class="card-body bg-light-subtle">
|
||||
<div class="row align-items-center">
|
||||
<div class="col-md-3">
|
||||
<label class="form-label small fw-bold text-muted text-uppercase"><?= _("Choisir le collège cible") ?></label>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<div class="input-group">
|
||||
<span class="input-group-text bg-white border-primary-subtle text-primary">
|
||||
<i class="fas fa-university"></i>
|
||||
</span>
|
||||
<select class="form-select border-primary-subtle fw-bold"
|
||||
id="idCollege"
|
||||
name="idCollege"
|
||||
required
|
||||
autofocus
|
||||
onchange="afficher_adherent_importee();">
|
||||
<?php liste_options($college, ""); ?>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
<div id="statut_selection" class="small text-muted italic">
|
||||
<i class="fas fa-info-circle me-1"></i> <?= _("Sélectionnez un collège pour voir les assurés correspondants.") ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<table class="table table-condensed table-responsive" style="font-size:10pt;" >
|
||||
<tbody>
|
||||
<tr>
|
||||
|
||||
<td width="15%" > <?= _("Collège") ?> </td>
|
||||
<td>
|
||||
<SELECT style="font-size:10pt;" class="form-control" id="idCollege" NAME="idCollege" required autofocus onChange="afficher_adherent_importee();" >
|
||||
<?php liste_options($college,""); ?>
|
||||
</SELECT>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<div id="div_adherents_importes" class="min-vh-25">
|
||||
<div class="text-center py-5 text-muted">
|
||||
<i class="fas fa-arrow-up fa-2x mb-3 animate__animated animate__bounce animate__infinite"></i>
|
||||
<p><?= _("En attente de sélection du collège...") ?></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="div_adherents_importes">
|
||||
</div>
|
||||
<style>
|
||||
.min-vh-25 { min-height: 250px; }
|
||||
.italic { font-style: italic; }
|
||||
/* Effet focus sur le select */
|
||||
.form-select:focus {
|
||||
border-color: #0d6efd;
|
||||
box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.15);
|
||||
}
|
||||
</style>
|
||||
|
|
@ -1,118 +1,151 @@
|
|||
<?php
|
||||
$this->titre = "INTER-SANTE - Liste Assurés Importés";
|
||||
?>
|
||||
<?php $this->titre = "INTER-SANTE - " . _("Validation Importation"); ?>
|
||||
|
||||
<script type="text/javascript">
|
||||
<div id="div_liste_adherent" class="container-fluid py-1 animate__animated animate__fadeIn">
|
||||
|
||||
<h1 class="text-primary"><i class="fas fa-user-check me-2"></i></i> <?= _("Importer les assurés") ?></h1>
|
||||
|
||||
</script>
|
||||
<div class="row g-3 mb-4">
|
||||
<div class="col-md-4">
|
||||
<div class="card shadow-sm border-0 bg-primary text-dark">
|
||||
<div class="card-body">
|
||||
<h6 class="text-dark small fw-bold text-uppercase"><?= _("Volume Importé") ?></h6>
|
||||
<div class="d-flex align-items-center">
|
||||
<h2 class="mb-0 fw-bold"><?= $nb_ligne_ass ?></h2>
|
||||
<span class="ms-2 small"><?= _("lignes totales") ?></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<div class="card shadow-sm border-0 <?= ($nb_adh > 0) ? 'bg-warning text-dark' : 'bg-success text-dark' ?>">
|
||||
<div class="card-body">
|
||||
<h6 class="small fw-bold text-uppercase"><?= _("Alertes Données") ?></h6>
|
||||
<div class="d-flex align-items-center">
|
||||
<h2 class="mb-0 fw-bold"><?= $nb_adh ?></h2>
|
||||
<span class="ms-2 small"><?= _("sans collège / catégorie") ?></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<div class="card shadow-sm border-0 bg-dark text-dark">
|
||||
<div class="card-body">
|
||||
<h6 class="text-dark-50 small fw-bold text-uppercase"><?= _("Total TTC") ?></h6>
|
||||
<div class="d-flex align-items-center">
|
||||
<h2 class="mb-0 fw-bold"><?= format_N($dbeneficiaires_total['primeTtcTotal']) ?></h2>
|
||||
<span class="ms-2 small text-dark-50">FCFA</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<input class="sr-only" type="text" id="nb_adh" name="nb_adh" value="<?= $nb_adh ?>">
|
||||
<input class="sr-only" type="text" id="nb_ligne_ass" name="nb_ligne_ass" value="<?= $nb_ligne_ass ?>">
|
||||
<div class="card shadow-sm border-0 mb-4">
|
||||
<div class="card-body p-0">
|
||||
<div class="table-responsive">
|
||||
<table class="table table-sm mb-0 text-center fw-bold small">
|
||||
<thead class="bg-light">
|
||||
<tr>
|
||||
<th class="py-2"><?= _("Total HT") ?></th>
|
||||
<th class="py-2 text-primary"><?= (isset($_SESSION['composanteprime']['Taxes'])) ? $_SESSION['composanteprime']['Taxes'] : _("Taxes") ?></th>
|
||||
<th class="py-2 text-info"><?= (isset($_SESSION['composanteprime']['Cartes'])) ? $_SESSION['composanteprime']['Cartes'] : _("Cartes") ?></th>
|
||||
<th class="py-2 bg-dark text-white border-dark"><?= _("TOTAL TTC") ?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="fs-5"><?= format_N($dbeneficiaires_total['primeHtTotal']) ?></td>
|
||||
<td class="fs-5 text-primary"><?= format_N($dbeneficiaires_total['taxeTotal']) ?></td>
|
||||
<td class="fs-5 text-info"><?= format_N($dbeneficiaires_total['fraisCarteTotal']) ?></td>
|
||||
<td class="fs-5 bg-dark text-white border-dark"><?= format_N($dbeneficiaires_total['primeTtcTotal']) ?></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<legend> <?= _("Liste Assurés Importés") . " => " . _("Lignes Totales") . " => " . $nb_ligne_ass . " => " . _("Lignes sans collège") . " => " . $nb_adh ?> </legend>
|
||||
<div id="div_liste_assure_importe" class="card shadow-sm border-0">
|
||||
<div class="card-header bg-white py-3 d-flex justify-content-between align-items-center">
|
||||
<h5 class="mb-0 fw-bold text-secondary"><i class="fas fa-users me-2"></i><?= _("Détail des bénéficiaires") ?></h5>
|
||||
<div class="btn-group">
|
||||
<button class="btn btn-sm btn-outline-secondary" onclick="exportExcel()">Excel</button>
|
||||
<button class="btn btn-sm btn-outline-secondary" onclick="exportPdf()">PDF</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="card-body p-0">
|
||||
<?php if ($nb_ligne_ass > 0): ?>
|
||||
<div class="table-responsive">
|
||||
<table class="table table-hover align-middle mb-0" style="font-size: 0.82rem;">
|
||||
<thead class="table-light">
|
||||
<tr class="text-muted small">
|
||||
<th class="ps-3"><?= _("Cat/Collège/Produit") ?></th>
|
||||
<th class="text-center"><?= _("N° Fam/Adh") ?></th>
|
||||
<th><?= _("Identité") ?></th>
|
||||
<th class="text-center"><?= _("Lien/Sexe") ?></th>
|
||||
<th class="text-center"><?= _("Dates") ?></th>
|
||||
<th class="text-end"><?= _("Prime HT") ?></th>
|
||||
<th class="text-end"><?= _("TTC") ?></th>
|
||||
<th class="pe-3 text-center"><?= _("Action") ?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php foreach ($beneficiaires as $beneficiaire):
|
||||
$hasError = ($beneficiaire['idCollege'] <= 0);
|
||||
?>
|
||||
<tr class="<?= $hasError ? 'table-warning' : '' ?>">
|
||||
<td class="ps-3">
|
||||
<div class="fw-bold"><?= $this->nettoyer($beneficiaire['categorie']) ?></div>
|
||||
<div class="small <?= $hasError ? 'text-danger fw-bold' : 'text-muted' ?>">
|
||||
<?= $this->nettoyer($beneficiaire['libelleCollege']) ?: _("Collège manquant") ?>
|
||||
<span class="mx-1">|</span> <?= $this->nettoyer($beneficiaire['codeProduit']) ?>
|
||||
</div>
|
||||
</td>
|
||||
<td class="text-center">
|
||||
<div class="badge bg-light text-dark border small fw-normal"><?= $this->nettoyer($beneficiaire['noFamille']) ?></div>
|
||||
<div class="x-small text-muted mt-1"><?= $this->nettoyer($beneficiaire['numeroAdherent']) ?></div>
|
||||
</td>
|
||||
<td>
|
||||
<div class="fw-bold text-uppercase"><?= $this->nettoyer($beneficiaire['nom']) ?></div>
|
||||
<div class="small text-muted"><?= $this->nettoyer($beneficiaire['prenoms']) ?></div>
|
||||
</td>
|
||||
<td class="text-center">
|
||||
<span class="badge bg-info-subtle text-info border border-info-subtle mb-1"><?= $this->nettoyer($beneficiaire['codeLienParente']) ?></span>
|
||||
<div class="fw-bold small"><?= $this->nettoyer($beneficiaire['sexe']) ?></div>
|
||||
</td>
|
||||
<td class="text-center">
|
||||
<div class="small text-muted"><?= _("Né le") ?> <?= dateLang($this->nettoyer($beneficiaire['dateNaissance'])) ?></div>
|
||||
<div class="small fw-bold text-primary"><?= _("Effet") ?> <?= dateLang($this->nettoyer($beneficiaire['dateEffet'])) ?></div>
|
||||
</td>
|
||||
<td class="text-end fw-bold"><?= format_N($this->nettoyer($beneficiaire['primeHt'])) ?></td>
|
||||
<td class="text-end fw-bold text-dark"><?= format_N($this->nettoyer($beneficiaire['primeTtc'])) ?></td>
|
||||
<td class="text-center pe-3">
|
||||
<button class="btn btn-sm btn-link text-primary p-0"><i class="fas fa-edit"></i></button>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endforeach; ?>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<?php else : ?>
|
||||
<div class="text-center py-5">
|
||||
<i class="fas fa-folder-open fa-3x text-muted mb-3"></i>
|
||||
<h4 class="text-muted"><?= _("AUCUNE DONNÉE À AFFICHER") ?></h4>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id ="div_liste_assure_importe">
|
||||
<input class="sr-only" type="text" id="nb_adh" value="<?= $nb_adh ?>">
|
||||
<input class="sr-only" type="text" id="nb_ligne_ass" value="<?= $nb_ligne_ass ?>">
|
||||
<input class="sr-only" type="text" id="primeTtcTotal" value="<?= $this->nettoyer($dbeneficiaires_total['primeTtcTotal']) ?>">
|
||||
|
||||
<?php if ($nb_ligne_ass>'0'): ?>
|
||||
|
||||
<input class="sr-only" type="text" id="primeTtcTotal" name="primeTtcTotal" value="<?= $this->nettoyer($dbeneficiaires_total['primeTtcTotal']) ?>">
|
||||
<div id="div_export_a"></div>
|
||||
|
||||
<table class="table table-striped table-bordered table-hover table-condensed table-responsive" style="font-size:8pt;">
|
||||
<thead>
|
||||
|
||||
<tr>
|
||||
<td colspan="11" style='text-align:center'> <?= format_N($this->nettoyer($dbeneficiaires_total['nbLigne'])) ?> <?= _("Lignes au total") ?> </td>
|
||||
|
||||
<td align='center'><?= format_N($this->nettoyer($dbeneficiaires_total['primeHtTotal'])) ?></td>
|
||||
<td align='center'><?= format_N($this->nettoyer($dbeneficiaires_total['taxeTotal'])) ?></td>
|
||||
<td align='center'><?= format_N($this->nettoyer($dbeneficiaires_total['fraisCarteTotal'])) ?></td>
|
||||
<td align='center'><?= format_N($this->nettoyer($dbeneficiaires_total['primeTtcTotal'])) ?></td>
|
||||
<td align='center'><?= format_N($this->nettoyer($dbeneficiaires_total['primeNetteStatTotal'])) ?></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<th colspan="3" style='text-align:center'> <?= _("Catégoerie ou Collège") ?> </th>
|
||||
<th colspan="2" style='text-align:center'> <?= _("No Famille") ?> </th>
|
||||
<th> <?= _("Nom") ?> </th>
|
||||
<th> <?= _("Prénoms") ?> </th>
|
||||
<th style='text-align:center'> <?= _("Lien Parenté") ?> </th>
|
||||
<th style='text-align:center'>Sex</th>
|
||||
<th style='text-align:center'> <?= _("Naissance") ?> </th>
|
||||
<th style='text-align:center'> <?= _("Effet") ?> </th>
|
||||
|
||||
<th style='text-align:center'> <?= _("Prime HT") ?> </th>
|
||||
<th style='text-align:center'> <?= (isset($_SESSION['composanteprime']['Taxes'])) ? _($_SESSION['composanteprime']['Taxes']) : _("Taxes") ?> </th>
|
||||
<th style='text-align:center'>
|
||||
<?php
|
||||
if(isset($_SESSION['composanteprime']['Cartes']))
|
||||
{
|
||||
echo _($_SESSION['composanteprime']['Cartes']);
|
||||
}
|
||||
else
|
||||
{
|
||||
echo _("Cartes");
|
||||
}
|
||||
?>
|
||||
</th>
|
||||
<th style='text-align:center'> <?= _("TTC") ?> </th>
|
||||
<th style='text-align:center'>Stat</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tfoot>
|
||||
<tr>
|
||||
<td colspan="11" style='text-align:center'> <?= format_N($this->nettoyer($dbeneficiaires_total['nbLigne'])) ?> <?= _("Lignes au total") ?> </td>
|
||||
|
||||
<td align='center'><?= format_N($this->nettoyer($dbeneficiaires_total['primeHtTotal'])) ?></td>
|
||||
<td align='center'><?= format_N($this->nettoyer($dbeneficiaires_total['taxeTotal'])) ?></td>
|
||||
<td align='center'><?= format_N($this->nettoyer($dbeneficiaires_total['fraisCarteTotal'])) ?></td>
|
||||
<td align='center'><?= format_N($this->nettoyer($dbeneficiaires_total['primeTtcTotal'])) ?></td>
|
||||
<td align='center'><?= format_N($this->nettoyer($dbeneficiaires_total['primeNetteStatTotal'])) ?></td>
|
||||
</tr>
|
||||
</tfoot>
|
||||
|
||||
<tbody>
|
||||
<?php foreach ($beneficiaires as $beneficiaire):
|
||||
$idBeneficiairemodel=$beneficiaire['idBeneficiairemodel'];
|
||||
$idCollege=$beneficiaire['idCollege'];
|
||||
?>
|
||||
<td align='center'><?= $this->nettoyer($beneficiaire['categorie']) ?></td>
|
||||
|
||||
<?php if ($idCollege>'0'): ?>
|
||||
<td align='center'><?= $this->nettoyer($beneficiaire['libelleCollege']) ?></td>
|
||||
<td align='center'><?= $this->nettoyer($beneficiaire['codeProduit']) ?></td>
|
||||
<?php else : ?>
|
||||
<td align='center' style="background-color: yellow;"><?= $this->nettoyer($beneficiaire['libelleCollege']) ?></td>
|
||||
<td align='center' style="background-color: yellow;"><?= $this->nettoyer($beneficiaire['codeProduit']) ?></td>
|
||||
<?php endif; ?>
|
||||
|
||||
<td align='center'><?= $this->nettoyer($beneficiaire['numeroAdherent']) ?></td>
|
||||
<td align='center'><?= $this->nettoyer($beneficiaire['noFamille']) ?></td>
|
||||
<td><?= $this->nettoyer($beneficiaire['nom']) ?></td>
|
||||
<td><?= $this->nettoyer($beneficiaire['prenoms']) ?></td>
|
||||
<td align='center'><?= $this->nettoyer($beneficiaire['codeLienParente']) ?></td>
|
||||
<td align='center'><?= $this->nettoyer($beneficiaire['sexe']) ?></td>
|
||||
<td align='center'><?= dateLang($this->nettoyer($beneficiaire['dateNaissance'])) ?></td>
|
||||
<td align='center'><?= dateLang($this->nettoyer($beneficiaire['dateEffet'])) ?></td>
|
||||
|
||||
<td align='center'><?= format_N($this->nettoyer($beneficiaire['primeHt'])) ?></td>
|
||||
<td align='center'><?= format_N($this->nettoyer($beneficiaire['taxe'])) ?></td>
|
||||
<td align='center'><?= format_N($this->nettoyer($beneficiaire['fraisCarte'])) ?></td>
|
||||
<td align='center'><?= format_N($this->nettoyer($beneficiaire['primeTtc'])) ?></td>
|
||||
<td align='center'><?= format_N($this->nettoyer($beneficiaire['primeNetteStat'])) ?></td>
|
||||
</tr>
|
||||
<?php endforeach; ?>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<?php else : ?>
|
||||
<div class="alert alert-danger" style="height:30px; padding:5px;" >
|
||||
<H4> <?= _("FICHIER IMPORTATION VIDE!") ?> </H4>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
|
||||
</div>
|
||||
|
||||
<div id ="div_export_a">
|
||||
</div>
|
||||
|
||||
<style>
|
||||
.x-small { font-size: 0.7rem; }
|
||||
.table-warning { background-color: #fff3cd !important; }
|
||||
.table-hover tbody tr:hover { background-color: rgba(0,0,0,.03) !important; }
|
||||
</style>
|
||||
|
|
@ -1,35 +1,63 @@
|
|||
<?php
|
||||
$this->titre = "Intersanté - Mouvements sur les assurés";
|
||||
?>
|
||||
<?php $this->titre = "Intersanté - Mouvements sur les assurés"; ?>
|
||||
|
||||
<input class="form-control" style="text-align: center; font-size:10pt;" type="text" id="nbligne" name="nbligne" value="ENTREES SORTIE DES ASSURES" readonly>
|
||||
<table class="table table-responsive table-condensed" style='font-size:10pt;'>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td width="10%"> Période du </td>
|
||||
<td width="15%"> <INPUT style='text-align:center; font-size:10pt;' class="form-control datepicker" TYPE="text" id="debut" NAME="debut" value="<?= $_SESSION['dUneSemaineAvantFr_C'] ?>" required </td>
|
||||
<div id="div_liste_adherent" class="container-fluid py-1 animate__animated animate__fadeIn">
|
||||
|
||||
<h1 class="text-primary"><i class="fas fa-exchange-alt me-2"></i></i> <?= _("Entrées & Sorties des Assurés") ?></h1>
|
||||
|
||||
<td width="5%" align="center"> au </td>
|
||||
<td width="15%"> <INPUT style='text-align:center; font-size:10pt;' class="form-control datepicker" TYPE="text" id="fin" NAME="fin" value="<?= dateCouranteLang($_SESSION['lang']) ?>" required> </td>
|
||||
|
||||
<td width="5%" align="center"> Etat</td>
|
||||
<td>
|
||||
<SELECT class="form-control" id="codeSensMouvement" NAME="codeSensMouvement" style='font-size:10pt;'>
|
||||
<?php liste_options_consultation($sensmouvement, ""); ?>
|
||||
</SELECT>
|
||||
</td>
|
||||
<div class="card shadow-sm border-0 mb-4">
|
||||
<div class="card-body bg-light">
|
||||
<div class="row g-3 align-items-end">
|
||||
|
||||
<div class="col-md-5">
|
||||
<label class="form-label small fw-bold text-uppercase"><?= _("Période de recherche") ?></label>
|
||||
<div class="input-group">
|
||||
<span class="input-group-text bg-white small"><?= _("Du") ?></span>
|
||||
<input type="text" id="debut" name="debut"
|
||||
class="form-control datepicker text-center fw-bold"
|
||||
value="<?= $_SESSION['dUneSemaineAvantFr_C'] ?>" required>
|
||||
<span class="input-group-text bg-white small"><?= _("au") ?></span>
|
||||
<input type="text" id="fin" name="fin"
|
||||
class="form-control datepicker text-center fw-bold"
|
||||
value="<?= dateCouranteLang($_SESSION['lang']) ?>" required>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<td align="center"> <?= _("Validé?") ?> </td>
|
||||
<td>
|
||||
<SELECT style="font-size:10pt;" class="form-control" id="valide" NAME="valide" >
|
||||
<?php liste_options_consultation($mvt_valide, ""); ?>
|
||||
</SELECT>
|
||||
</td>
|
||||
|
||||
<td> </td>
|
||||
<td> <button style='font-size:10pt;' type="button" class="form-control btn btn-primary" onclick="javascript:liste_mouvemements_assures();">Actualiser...</button> </td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="col-md-2">
|
||||
<label class="form-label small fw-bold text-uppercase"><?= _("Sens / État") ?></label>
|
||||
<select class="form-select fw-bold border-info-subtle" id="codeSensMouvement" name="codeSensMouvement">
|
||||
<?php liste_options_consultation($sensmouvement, ""); ?>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div id="div_mvt"> </div>
|
||||
<div class="col-md-3">
|
||||
<label class="form-label small fw-bold text-uppercase"><?= _("Statut Validation") ?></label>
|
||||
<select class="form-select fw-bold" id="valide" name="valide">
|
||||
<?php liste_options_consultation($mvt_valide, ""); ?>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="col-md-2">
|
||||
<div class="d-grid d-md-flex justify-content-md-end">
|
||||
<button type="button" class="btn btn-primary px-4 shadow-sm fw-bold" onclick="liste_mouvemements_assures();">
|
||||
<i class="fas fa-sync-alt me-2"></i>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="div_mvt" class="min-vh-50 rounded bg-white p-2 shadow-sm border">
|
||||
<div class="text-center py-5 text-muted">
|
||||
<i class="fas fa-search fa-3x mb-3 opacity-25"></i>
|
||||
<p class="fs-5"><?= _("Cliquez sur 'Actualiser' pour charger les mouvements") ?></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<style>
|
||||
.min-vh-50 { min-height: 50vh; }
|
||||
.datepicker { cursor: pointer !important; background-color: #fff !important; }
|
||||
.form-select, .form-control { border-radius: 6px; }
|
||||
.input-group-text { border-radius: 6px; color: #6c757d; }
|
||||
</style>
|
||||
|
|
@ -1,58 +1,87 @@
|
|||
<div id="div_liste_adherent" class="container-fluid animate__animated animate__fadeIn">
|
||||
|
||||
<h1 class="text-primary"><i class="fas fa-file-invoice-dollar me-2"></i></i> <?= _("Primes non facturées") ?></h1>
|
||||
|
||||
<legend> <?= _("PRIMES NON FACTUREES DE LA POLICE") . " : " . $this->nettoyer($_SESSION['numeroPolice_C'])?> </legend>
|
||||
<div class="card-header d-flex justify-content-between align-items-center py-3">
|
||||
<h4 class="fw-bold text-secondary mb-0">
|
||||
<?= _("POLICE") ?> : <span class="badge bg-white text-primary ms-2"><?= $this->nettoyer($_SESSION['numeroPolice_C']) ?></span>
|
||||
</h4>
|
||||
</div>
|
||||
|
||||
<table class="table table-responsive table-condensed" style='font-size:10pt; text-align:center'>
|
||||
<thead>
|
||||
<tr>
|
||||
<td style='text-align:center'> Total </td>
|
||||
<td align='center'><?= format_N($this->nettoyer($ente_nonfacture['nbLignesTotal'])) ?></td>
|
||||
<td align='center'><?= format_N($this->nettoyer($ente_nonfacture['primeHtTotal'])) ?></td>
|
||||
<td align='center'><?= format_N($this->nettoyer($ente_nonfacture['taxeTotal'])) ?></td>
|
||||
<td align='center'><?= format_N($this->nettoyer($ente_nonfacture['fraisCarteTotal'])) ?></td>
|
||||
<td align='center'><?= format_N($this->nettoyer($ente_nonfacture['primeTtcTotal'])) ?></td>
|
||||
</tr>
|
||||
<div class="row g-3 mb-4">
|
||||
<div class="col-md-3">
|
||||
<div class="card shadow-sm border-0 bg-light">
|
||||
<div class="card-body py-3">
|
||||
<h6 class="text-muted small fw-bold text-uppercase mb-1"><?= _("Volume Total") ?></h6>
|
||||
<h6 class="mb-0 fw-bold"><?= format_N($ente_nonfacture['nbLignesTotal']) ?> <span class="small fw-normal text-muted fs-6"><?= _("Lignes") ?></span></h6>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
<div class="card shadow-sm border-0 bg-light">
|
||||
<div class="card-body py-3">
|
||||
<h6 class="text-muted small fw-bold text-uppercase mb-1"><?= _("Total HT") ?></h6>
|
||||
<h6 class="mb-0 fw-bold text-dark"><?= format_N($ente_nonfacture['primeHtTotal']) ?></h6>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
<div class="card shadow-sm border-0 bg-light border-start border-info border-4">
|
||||
<div class="card-body py-3">
|
||||
<h6 class="text-muted small fw-bold text-uppercase mb-1"><?= _("Taxes & Frais") ?></h6>
|
||||
<h6 class="mb-0 fw-bold text-info"><?= format_N($ente_nonfacture['taxeTotal'] + $ente_nonfacture['fraisCarteTotal']) ?></h6>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
<div class="card shadow-sm border-0 bg-dark text-dark">
|
||||
<div class="card-body py-3">
|
||||
<h6 class="text-dark-50 small fw-bold text-uppercase mb-1"><?= _("Total TTC") ?></h6>
|
||||
<h6 class="mb-0 fw-bold"><?= format_N($ente_nonfacture['primeTtcTotal']) ?></h6>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<tr>
|
||||
<th style='text-align:center'> <?= _("Date Effet") ?> </th>
|
||||
<th style='text-align:center'> <?= _("Nb Lignes") ?> </th>
|
||||
<th style='text-align:center'> <?= _("Prime HT") ?> </th>
|
||||
<th style='text-align:center'> <?= (isset($_SESSION['composanteprime']['Taxes'])) ? _($_SESSION['composanteprime']['Taxes']) : _("Taxes") ?> </th>
|
||||
<th style='text-align:center'>
|
||||
<?php
|
||||
if(isset($_SESSION['composanteprime']['Cartes']))
|
||||
{
|
||||
echo _($_SESSION['composanteprime']['Cartes']);
|
||||
}
|
||||
else
|
||||
{
|
||||
echo _("Cartes");
|
||||
}
|
||||
?>
|
||||
</th>
|
||||
<th style='text-align:center'> <?= _("Prime TTC") ?> </th>
|
||||
</tr>
|
||||
</thead>
|
||||
<div class="card shadow-sm border-0 overflow-hidden">
|
||||
<div class="table-responsive">
|
||||
<table class="table table-hover align-middle mb-0">
|
||||
<thead class="bg-secondary text-white">
|
||||
<tr>
|
||||
<th class="ps-3 py-3 fw-normal"><?= _("Date Effet") ?></th>
|
||||
<th class="text-center fw-normal"><?= _("Nb Lignes") ?></th>
|
||||
<th class="text-end fw-normal"><?= _("Prime HT") ?></th>
|
||||
<th class="text-end fw-normal"><?= (isset($_SESSION['composanteprime']['Taxes'])) ? _($_SESSION['composanteprime']['Taxes']) : _("Taxes") ?></th>
|
||||
<th class="text-end fw-normal">
|
||||
<?= (isset($_SESSION['composanteprime']['Cartes'])) ? _($_SESSION['composanteprime']['Cartes']) : _("Cartes") ?>
|
||||
</th>
|
||||
<th class="pe-3 text-end fw-bold"><?= _("Prime TTC") ?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php foreach ($nonfactures as $nonfacture): ?>
|
||||
<tr>
|
||||
<td class="ps-3 fw-bold text-primary">
|
||||
<i class="far fa-calendar-alt me-2 text-muted"></i>
|
||||
<?= dateLang($this->nettoyer($nonfacture['dateEffet'])) ?>
|
||||
</td>
|
||||
<td class="text-center">
|
||||
<span class="badge bg-light text-dark border"><?= format_N($nonfacture['nbLignes']) ?></span>
|
||||
</td>
|
||||
<td class="text-end fw-semibold"><?= format_N($nonfacture['primeHt']) ?></td>
|
||||
<td class="text-end text-muted small"><?= format_N($nonfacture['taxe']) ?></td>
|
||||
<td class="text-end text-muted small"><?= format_N($nonfacture['fraisCarte']) ?></td>
|
||||
<td class="pe-3 text-end fw-bold text-dark fs-6"><?= format_N($nonfacture['primeTtc']) ?></td>
|
||||
</tr>
|
||||
<?php endforeach; ?>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<tfoot>
|
||||
<tr>
|
||||
<td style='text-align:center'> Total </td>
|
||||
<td align='center'><?= format_N($this->nettoyer($ente_nonfacture['nbLignesTotal'])) ?></td>
|
||||
<td align='center'><?= format_N($this->nettoyer($ente_nonfacture['primeHtTotal'])) ?></td>
|
||||
<td align='center'><?= format_N($this->nettoyer($ente_nonfacture['taxeTotal'])) ?></td>
|
||||
<td align='center'><?= format_N($this->nettoyer($ente_nonfacture['fraisCarteTotal'])) ?></td>
|
||||
<td align='center'><?= format_N($this->nettoyer($ente_nonfacture['primeTtcTotal'])) ?></td>
|
||||
</tr>
|
||||
</tfoot>
|
||||
<tbody>
|
||||
<?php foreach ($nonfactures as $nonfacture):?>
|
||||
<tr>
|
||||
<td> <?= dateLang($this->nettoyer($nonfacture['dateEffet'])) ?> </td>
|
||||
<td> <?= format_N($this->nettoyer($nonfacture['nbLignes'])) ?> </td>
|
||||
<td> <?= format_N($this->nettoyer($nonfacture['primeHt'])) ?> </td>
|
||||
<td> <?= format_N($this->nettoyer($nonfacture['taxe'])) ?> </td>
|
||||
<td> <?= format_N($this->nettoyer($nonfacture['fraisCarte'])) ?> </td>
|
||||
<td> <?= format_N($this->nettoyer($nonfacture['primeTtc'])) ?> </td>
|
||||
</tr>
|
||||
<?php endforeach; ?>
|
||||
</tbody>
|
||||
</table>
|
||||
<style>
|
||||
.bg-primary-subtle { background-color: #e7f1ff; }
|
||||
.table thead th { font-size: 0.85rem; text-transform: uppercase; letter-spacing: 0.5px; }
|
||||
.table tbody td { font-size: 0.9rem; border-bottom: 1px solid #f0f0f0; }
|
||||
</style>
|
||||
|
|
@ -1,40 +1,100 @@
|
|||
<?php $this->titre = "INTER-SANTE - Rapport S/P police"; ?>
|
||||
|
||||
<legend> <?= _("Rapport S / P de la police") . " : " . $this->nettoyer($_SESSION['numeroPolice_C'])?> </legend>
|
||||
<div id="div_police" class="container-fluid py-4 animate__animated animate__fadeIn">
|
||||
|
||||
<h1 class="text-primary"><i class="fas fa-chart-line me-2"></i></i> <?= _("Rapport S / P") ?></h1>
|
||||
|
||||
<table class="table table-responsive table-condensed" style='font-size:10pt; text-align:center'>
|
||||
<thead>
|
||||
<tr>
|
||||
<th width="20%" style='text-align:center'> <?= _("Date Effet") ?> </th>
|
||||
<th width="20%" style='text-align:center'> <?= _("Date Echéance") ?> </th>
|
||||
<th width="20%" style='text-align:center'> <?= _("Durée Acquise") ?> </th>
|
||||
<th width="20%" style='text-align:center'> <?= _("Ratio Acquise") ?> </th>
|
||||
<th width="20%" style='text-align:center'> <?= _("Durée Contrat") ?> </th>
|
||||
</tr>
|
||||
</thead>
|
||||
<div class="card-header d-flex justify-content-between align-items-center py-1">
|
||||
<h4 class="fw-bold text-secondary mb-0">
|
||||
<?= _("Police") ?> :
|
||||
<span class="text-primary"><?= $this->nettoyer($_SESSION['numeroPolice_C']) ?></span>
|
||||
</h4>
|
||||
<div class="badge bg-dark px-3 py-2 fs-6">
|
||||
<?= _("Durée Contrat") ?> : <?= $this->nettoyer($sppoliceentete['dureePolice']) ?> <?= _("jours") ?>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<tbody>
|
||||
<div class="row g-3 mb-4 text-center">
|
||||
<div class="col-md-4">
|
||||
<div class="card shadow-sm border-0 h-100">
|
||||
<div class="card-body">
|
||||
<h6 class="text-muted small fw-bold text-uppercase"><?= _("Période du Contrat") ?></h6>
|
||||
<div class="d-flex justify-content-around align-items-center mt-2">
|
||||
<div>
|
||||
<div class="small text-muted"><?= _("Effet") ?></div>
|
||||
<div class="fw-bold"><?= dateLang($this->nettoyer($sppoliceentete['dateEffet'])) ?></div>
|
||||
</div>
|
||||
<i class="fas fa-arrow-right text-light"></i>
|
||||
<div>
|
||||
<div class="small text-muted"><?= _("Échéance") ?></div>
|
||||
<div class="fw-bold"><?= dateLang($this->nettoyer($sppoliceentete['dateEcheance'])) ?></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<tr>
|
||||
<td> <?= dateLang($this->nettoyer($sppoliceentete['dateEffet'])) ?> </td>
|
||||
<td> <?= dateLang($this->nettoyer($sppoliceentete['dateEcheance'])) ?> </td>
|
||||
<td> <?= $this->nettoyer($sppoliceentete['duree_acquise']) ?> </td>
|
||||
<td> <?= $this->nettoyer($sppoliceentete['ratio_acquise']) ?> </td>
|
||||
<td> <?= $this->nettoyer($sppoliceentete['dureePolice']) ?> </td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="col-md-4">
|
||||
<div class="card shadow-sm border-0 h-100 border-start border-info border-4">
|
||||
<div class="card-body">
|
||||
<h6 class="text-muted small fw-bold text-uppercase"><?= _("Durée Acquise") ?></h6>
|
||||
<h3 class="fw-bold mb-0 mt-2 text-info"><?= $this->nettoyer($sppoliceentete['duree_acquise']) ?></h3>
|
||||
<span class="text-muted small"><?= _("jours écoulés") ?></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<table class="table table-responsive table-condensed" style='font-size:10pt;' >
|
||||
<tbody>
|
||||
<tr>
|
||||
<td> <button type="button" style="font-size:10pt;" class="form-control btn btn-primary" onclick="javascript:sinistres_a_prime_police();" > <?= _("Police entière...") ?> </button> </td>
|
||||
<td> <button type="button" style="font-size:10pt;" class="form-control btn btn-primary" onclick="javascript:sinistres_a_prime_categorie();" > <?= _("Par Catégorie...") ?> </button> </td>
|
||||
<td> <button type="button" style="font-size:10pt;" class="form-control btn btn-primary" onclick="javascript:sinistres_a_prime_college();" > <?= _("Par Collège...") ?> </button> </td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="col-md-4">
|
||||
<?php
|
||||
$ratio = (float)$this->nettoyer($sppoliceentete['ratio_acquise']);
|
||||
$color = $ratio > 100 ? 'danger' : ($ratio > 70 ? 'warning' : 'success');
|
||||
?>
|
||||
<div class="card shadow-sm border-0 h-100 bg-<?= $color ?> text-dark">
|
||||
<div class="card-body">
|
||||
<h6 class="text-dark-50 small fw-bold text-uppercase"><?= _("Ratio de Temps Écoule (Prorata)") ?></h6>
|
||||
<div class="d-flex align-items-center justify-content-center mt-2">
|
||||
<h2 class="fw-bold mb-0 me-3"><?= number_format($ratio, 2) ?> %</h2>
|
||||
<div class="progress w-10 bg-white bg-opacity-25" style="height: 10px;">
|
||||
<div class="progress-bar bg-white" role="progressbar" style="width: <?= $ratio ?>%"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="div_detail_sp">
|
||||
|
||||
</div>
|
||||
<div class="card shadow-sm border-0 mb-4">
|
||||
<div class="card-body p-2 bg-light">
|
||||
<div class="row g-2">
|
||||
<div class="col-md-4">
|
||||
<button type="button" class="btn btn-primary w-100 fw-bold shadow-sm py-2" onclick="sinistres_a_prime_police();">
|
||||
<i class="fas fa-file-contract me-2"></i> <?= _("Vue Police entière") ?>
|
||||
</button>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<button type="button" class="btn btn-info w-100 fw-bold shadow-sm py-2" onclick="sinistres_a_prime_categorie();">
|
||||
<i class="fas fa-layer-group me-2"></i> <?= _("Analyse par Catégorie") ?>
|
||||
</button>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<button type="button" class="btn btn-secondary w-100 fw-bold shadow-sm py-2" onclick="sinistres_a_prime_college();">
|
||||
<i class="fas fa-users-cog me-2"></i> <?= _("Analyse par Collège") ?>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="div_detail_sp" class="rounded min-vh-25 shadow-inner bg-white p-3 border">
|
||||
<div class="text-center py-5 text-muted">
|
||||
<i class="fas fa-chart-bar fa-3x mb-3 opacity-25"></i>
|
||||
<p><?= _("Sélectionnez un niveau d'analyse pour afficher les détails du S/P") ?></p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<style>
|
||||
.shadow-inner { box-shadow: inset 0 2px 4px 0 rgba(0, 0, 0, 0.06); }
|
||||
.min-vh-25 { min-height: 250px; }
|
||||
</style>
|
||||
|
|
@ -1,49 +1,83 @@
|
|||
<?php
|
||||
// $this->titre = "INTER-SANTE - SYNTHESE CONSOMMATIONS DE LA POLICE";
|
||||
?>
|
||||
|
||||
<legend> <?= _("SYNTHESE CONSOMMATIONS DE LA POLICE") . " : " . $this->nettoyer($_SESSION['numeroPolice_C'])?> </legend>
|
||||
|
||||
<table class="table table-responsive table-condensed" style='font-size:10pt; text-align:center'>
|
||||
<thead>
|
||||
<tr>
|
||||
<th width="20%" style='text-align:center'> <?= _("Date Effet") ?> </th>
|
||||
<th width="20%" style='text-align:center'> <?= _("Date Echéance") ?> </th>
|
||||
<th width="20%" style='text-align:center'> <?= _("Durée Acquise") ?> </th>
|
||||
<th width="20%" style='text-align:center'> <?= _("Ratio Acquise") ?> </th>
|
||||
<th width="20%" style='text-align:center'> <?= _("Durée Contrat") ?> </th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
|
||||
<tr>
|
||||
<td> <?= dateLang($this->nettoyer($sppoliceentete['dateEffet'])) ?> </td>
|
||||
<td> <?= dateLang($this->nettoyer($sppoliceentete['dateEcheance'])) ?> </td>
|
||||
<td> <?= $this->nettoyer($sppoliceentete['duree_acquise']) ?> </td>
|
||||
<td> <?= $this->nettoyer($sppoliceentete['ratio_acquise']) ?> </td>
|
||||
<td> <?= $this->nettoyer($sppoliceentete['dureePolice']) ?> </td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<table class="table table-responsive table-condensed" style='font-size:10pt;' >
|
||||
<tbody>
|
||||
<tr>
|
||||
<td> <button style='font-size:10pt;' type="button" class="form-control btn btn-primary" onclick="javascript:requetes_synthese_consommation_police();"> <?= _("Afficher résultats")."..." ?> </button> </td>
|
||||
|
||||
|
||||
<td width="10%" > </td>
|
||||
|
||||
<td> <button style='font-size:10pt;' type="button" class="form-control btn btn-primary" onclick="javascript:requetes_synthese_consommation_police_export();"> <?= _("Exporter vers Excel...") ?> </button> </td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<div id="div_detail_exp">
|
||||
<div id="div_police" class="container-fluid py-4 animate__animated animate__fadeIn">
|
||||
|
||||
</div>
|
||||
<h1 class="text-primary"><i class="fas fa-microscope me-2"></i><?= _('Synthèse des Consommations') ?></h1>
|
||||
|
||||
<div id="div_detail_sp">
|
||||
|
||||
</div>
|
||||
<div class="card-header d-flex justify-content-between align-items-center py-3">
|
||||
<h4 class="fw-bold text-secondary mb-0">
|
||||
<?= _("POLICE") ?> : <span class="badge bg-white text-primary ms-2"><?= $this->nettoyer($_SESSION['numeroPolice_C']) ?></span>
|
||||
</h4>
|
||||
</div>
|
||||
|
||||
<div class="row g-3 mb-1 mt-1">
|
||||
<div class="col-md-4">
|
||||
<div class="card shadow-sm border-0 h-100">
|
||||
<div class="card-body py-1 d-flex align-items-center justify-content-around">
|
||||
<div class="text-center">
|
||||
<div class="small text-muted text-uppercase fw-bold"><?= _("Effet") ?></div>
|
||||
<div class="fw-bold text-dark"><?= dateLang($this->nettoyer($sppoliceentete['dateEffet'])) ?></div>
|
||||
</div>
|
||||
<i class="fas fa-long-arrow-alt-right text-dark fa-2x"></i>
|
||||
<div class="text-center">
|
||||
<div class="small text-muted text-uppercase fw-bold"><?= _("Échéance") ?></div>
|
||||
<div class="fw-bold text-dark"><?= dateLang($this->nettoyer($sppoliceentete['dateEcheance'])) ?></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
<div class="card shadow-sm border-0 h-100 text-center border-start border-info border-4">
|
||||
<div class="card-body py-1">
|
||||
<div class="small text-muted fw-bold"><?= _("DURÉE ACQUISE") ?></div>
|
||||
<div class="h6 fw-bold mb-0 text-info"><?= $this->nettoyer($sppoliceentete['duree_acquise']) ?> j</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-5">
|
||||
<div class="card shadow-sm border-0 h-100">
|
||||
<div class="card-body py-1">
|
||||
<div class="d-flex justify-content-between align-items-center mb-1">
|
||||
<span class="small text-muted fw-bold text-uppercase"><?= _("Progression du Contrat") ?></span>
|
||||
<span class="fw-bold"><?= number_format($this->nettoyer($sppoliceentete['ratio_acquise']),2) ?> %</span>
|
||||
</div>
|
||||
<div class="progress shadow-sm" style="height: 12px;">
|
||||
<div class="progress-bar bg-primary progress-bar-striped progress-bar-animated"
|
||||
role="progressbar"
|
||||
style="width: <?= $this->nettoyer($sppoliceentete['ratio_acquise']) ?>%"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="card shadow-sm border-0 mb-1 bg-light">
|
||||
<div class="card-body py-3">
|
||||
<div class="row align-items-center">
|
||||
<div class="col-md-6">
|
||||
<button type="button" class="btn btn-primary px-4 fw-bold shadow-sm" onclick="requetes_synthese_consommation_police();">
|
||||
<i class="fas fa-search me-2"></i> <?= _("Afficher les résultats") ?>
|
||||
</button>
|
||||
</div>
|
||||
<div class="col-md-6 text-md-end">
|
||||
<button type="button" class="btn btn-success px-4 fw-bold shadow-sm" onclick="requetes_synthese_consommation_police_export();">
|
||||
<i class="fas fa-file-excel me-2"></i> <?= _("Exporter vers Excel") ?>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="div_detail_exp" class="mb-3"></div>
|
||||
<div id="div_detail_sp" class="min-vh-50 bg-white rounded border border-dashed d-flex align-items-center justify-content-center text-muted">
|
||||
<div class="text-center py-5">
|
||||
<i class="fas fa-chart-area fa-3x mb-3 opacity-25"></i>
|
||||
<p class="fs-5"><?= _("Cliquez sur 'Afficher résultats' pour générer la synthèse") ?></p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<style>
|
||||
.border-dashed { border: 2px dashed #dee2e6 !important; }
|
||||
.bg-indigo { background-color: #6610f2; }
|
||||
.min-vh-50 { min-height: 400px; }
|
||||
</style>
|
||||
|
|
@ -638,7 +638,7 @@ $photoAssureCrypte = $_SESSION['photoAssureCrypte'];
|
|||
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>
|
||||
|
||||
<!-- Application Scripts -->
|
||||
<script src="/Js/fonctions.js?ver=2026.01.05.28"></script>
|
||||
<script src="/Js/fonctions.js?ver=2026.01.06.06"></script>
|
||||
|
||||
<script type="text/javascript">
|
||||
raffraichier_gabarit();
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user