Merge branch 'main' of git.ebene.ovh:ebene/radiantrh

This commit is contained in:
KANE LAZENI 2026-01-22 18:52:24 +00:00
commit 7e4bf0d7a3
38 changed files with 3354 additions and 342 deletions

View File

@ -72,6 +72,50 @@ body {
z-index: 1030;
}
/* Nettoyage du bouton dropdown */
.user-menu.dropdown-toggle {
display: flex;
align-items: center;
outline: none;
box-shadow: none !important;
}
/* Supprimer la petite flèche par défaut de Bootstrap si elle vous gêne */
.user-menu.dropdown-toggle::after {
display: none;
}
/* Style de base de la flèche */
.user-arrow {
font-size: 0.8rem;
transition: transform 0.3s ease;
color: #6c757d; /* Couleur grise discrète */
}
/* Rotation automatique quand le menu est ouvert */
#userDropdownBtn[aria-expanded="true"] .user-arrow {
transform: rotate(180deg);
color: var(--bs-primary); /* Change la couleur en bleu au clic (optionnel) */
}
/* On s'assure que le bouton reste bien aligné horizontalement */
.user-menu {
display: flex;
align-items: center;
}
/* S'assurer que le menu dropdown passe devant tout */
.dropdown-menu {
z-index: 2000 !important;
min-width: 220px;
border: 1px solid rgba(0,0,0,0.1);
}
/* Positionnement quand le header est fixed */
.dropdown-menu[data-bs-popper] {
margin-top: 15px !important;
}
.header-content {
display: flex;
align-items: center;
@ -80,6 +124,52 @@ body {
padding: 0 24px;
}
/* 1. Réduction de l'espace global du bouton */
#userDropdownBtn {
gap: 8px; /* Contrôle l'espace entre avatar, texte et flèche */
}
/* 2. Réduction des textes */
.user-name {
font-size: 0.85rem !important; /* Un peu plus petit */
margin-bottom: -2px; /* Rapproche le nom du rôle */
}
.user-role {
font-size: 1.15rem !important;
opacity: 0.8;
}
/* 3. Réduction de l'avatar */
.user-avatar {
width: 32px !important; /* Au lieu de 36 ou 40 */
height: 32px !important;
font-size: 0.8rem; /* Initiales plus petites */
display: flex;
align-items: center;
justify-content: center;
}
/* 4. Rapprochement de la flèche */
.user-arrow {
font-size: 0.7rem;
margin-left: 4px !important; /* Espace réduit avec le texte */
}
/* 5. Densité du menu déroulant (Dropdown) */
.dropdown-menu {
padding: 0.25rem 0; /* Moins d'espace en haut et en bas du menu */
}
.dropdown-item {
padding: 0.4rem 1rem; /* Items plus serrés */
font-size: 0.85rem;
}
.dropdown-header {
padding: 0.5rem 1rem;
}
.logo-container {
display: flex;
align-items: center;

View File

@ -0,0 +1,39 @@
<?php
require_once 'Framework/Controleur.php';
require_once 'Modele/Remboursement.php';
class ControleurAjaxdemanderemboursement extends Controleur {
private $remb;
public function __construct() {
$this->remb = new Remboursement();
}
public function index()
{
$idClient = $_SESSION['idClient_C'];
$d1 = $this->requete->getParametreDate("d1");
$d2 = $this->requete->getParametreDate("d2");
$codeStatutPaiement = $this->requete->getParametreFormulaire("codeStatutPaiement");
$demandes = $this->remb->getListeDossiersRemboursements($idClient, $d1, $d2, $codeStatutPaiement);
$this->genererVueAjax(array('demandes' => $demandes));
}
public function enregistrerdemande()
{
$numeroBeneficiaire = $this->requete->getParametreFormulaire("numeroBeneficiaire");
$commentaires = $this->requete->getParametreFormulaire("commentaires");
$this->remb->enregistrerdemande($numeroBeneficiaire, $commentaires);
}
public function selectionnerremb()
{
$idDemande = $this->requete->getParametreFormulaire("idDemande");
$_SESSION['idDemandeRemboursement'] = $idDemande;
}
}

View File

@ -0,0 +1,130 @@
<?php
require_once 'Framework/Controleur.php';
require_once 'Modele/Facture.php';
require_once 'Modele/Pbeneficiaire.php';
require_once 'Modele/Menuvueutilisateur.php';
class ControleurAjaxdossierclassique extends Controleur {
private $facture;
private $beneficiaire;
public function __construct() {
$this->facture = new Facture();
$this->beneficiaire = new Pbeneficiaire();
}
public function index()
{
$numeroFeuilleMaladie = $_SESSION['numeroFeuilleMaladie_C'];
$this->genererVueAjax(array('numeroFeuilleMaladie' => $numeroFeuilleMaladie));
}
public function enregistrerdossierclassique()
{
$codeLienDemandeur = $this->requete->getParametreFormulaire("codeLienDemandeur");
$demandeur = $this->requete->getParametreFormulaire("demandeur");
$codeLienBeneficiaire = $this->requete->getParametreFormulaire("codeLienBeneficiaire");
$beneficiaireReglement = $this->requete->getParametreFormulaire("beneficiaireReglement");
$observations = $this->requete->getParametreFormulaire("observations");
$codeModePaiementDemande = $this->requete->getParametreFormulaire("codeModePaiementDemande");
$codeBanqueBeneficiaire = $this->requete->getParametreFormulaire("codeBanqueBeneficiaire");
$numeroCompteBeneficiaire = $this->requete->getParametreFormulaire("numeroCompteBeneficiaire");
$prestataireConsultation = $this->requete->getParametreFormulaire("prestataireConsultation");
$codeRaisonConsultation = $this->requete->getParametreFormulaire("codeRaisonConsultation");
$hospitalisation = $this->requete->getParametreFormulaire("hospitalisation");
$dateConsultation = $this->requete->getParametreDate("dateConsultation");
$codeAffection = $this->requete->getParametreFormulaire("codeAffection");
//highlight_string("<?php\n\$datas =\n" . var_export($ententeprealable, true) . ";\n>");
$idDemandeRemboursement = $_SESSION['idDemandeRemboursement'] ?? '0';
$idDossierClassique = $this->facture->enregistrerdossierclassique($demandeur, $codeLienDemandeur, $beneficiaireReglement,
$codeLienBeneficiaire, $observations, $codeBanqueBeneficiaire, $numeroCompteBeneficiaire, $codeModePaiementDemande,
$prestataireConsultation, $dateConsultation, $codeRaisonConsultation, $hospitalisation, $codeAffection,
$idDemandeRemboursement);
$_SESSION['idDossierClassique'] = $idDossierClassique;
}
public function enregistrermodificationsdossierclassique()
{
$idDossierClassique = $_SESSION['idDossierClassique'] ;
$codeLienDemandeur = $this->requete->getParametreFormulaire("codeLienDemandeur");
$demandeur = $this->requete->getParametreFormulaire("demandeur");
$codeLienBeneficiaire = $this->requete->getParametreFormulaire("codeLienBeneficiaire");
$beneficiaireReglement = $this->requete->getParametreFormulaire("beneficiaireReglement");
$observations = $this->requete->getParametreFormulaire("observations");
$codeModePaiementDemande = $this->requete->getParametreFormulaire("codeModePaiementDemande");
$codeBanqueBeneficiaire = $this->requete->getParametreFormulaire("codeBanqueBeneficiaire");
$numeroCompteBeneficiaire = $this->requete->getParametreFormulaire("numeroCompteBeneficiaire");
$prestataireConsultation = $this->requete->getParametreFormulaire("prestataireConsultation");
$codeRaisonConsultation = $this->requete->getParametreFormulaire("codeRaisonConsultation");
$hospitalisation = $this->requete->getParametreFormulaire("hospitalisation");
$dateConsultation = $this->requete->getParametreDate("dateConsultation");
$this->facture->enregistrermodificationsdossierclassique($idDossierClassique, $demandeur, $codeLienDemandeur, $beneficiaireReglement,
$codeLienBeneficiaire, $observations, $codeBanqueBeneficiaire, $numeroCompteBeneficiaire, $codeModePaiementDemande,
$prestataireConsultation, $dateConsultation, $codeRaisonConsultation, $hospitalisation);
// $this->genererVueAjax();
}
public function getcontextbyid()
{
$idDossierClassique = $this->requete->getParametre("idDossierClassique");
$_SESSION['idDossierClassique'] = $idDossierClassique;
}
public function enregistrerpaiementdossierclassique()
{
$idDossierClassique = $_SESSION['idDossierClassique'] ;
$codeModePaiement = $this->requete->getParametreFormulaire("codeModePaiement");
$referencePaiement = $this->requete->getParametreFormulaire("referencePaiement");
$montantPaye = $this->requete->getParametreFormulaire("montantPaye", "numerique");
$dateComptable = $this->requete->getParametreDate("dateComptable");
$codeBanquePayeur = $this->requete->getParametreFormulaire("codeBanquePayeur");
$this->facture->enregistrerpaiementdossierclassique($idDossierClassique, $dateComptable, $montantPaye, $codeModePaiement, $referencePaiement, $codeBanquePayeur);
$this->genererVueAjax();
}
public function getcontextbyidreglement()
{
$numeroDecompte = $this->requete->getParametre("numeroDecompte");
$idBeneficiaire = $this->requete->getParametre("idBeneficiaire");
$beneficiaire = $this->beneficiaire->getContexteBeneficiaireId($idBeneficiaire);
$idDossierClassique = $this->facture->get_id_dossier_by_numerodecompte($numeroDecompte);
$_SESSION['idDossierClassique'] = $idDossierClassique;
// $this->genererVueAjax();
}
public function demanderreglement()
{
$idDossierClassique = $_SESSION['idDossierClassique'] ;
$this->facture->demanderreglement($idDossierClassique);
$this->genererVueAjax();
}
}

View File

@ -0,0 +1,126 @@
<?php
require_once 'Framework/Controleur.php';
require_once 'Modele/Facture.php';
require_once 'Modele/Menuvueutilisateur.php';
class ControleurAjaxdossiersclassiquespolice extends Controleur {
private $facture;
public function __construct() {
$this->facture = new Facture();
}
public function index()
{
$idPolice = $_SESSION['idPolice_C'] ;
$d1 = $this->requete->getParametreDate("d1");
$d2 = $this->requete->getParametreDate("d2");
$bordereauxrbcl = $this->facture->getbordereauxrbcl($idPolice, $d1, $d2) ;
$this->genererVueAjax(array('bordereauxrbcl' => $bordereauxrbcl));
}
public function enregistrerundossierclassique()
{
$codeLienDemandeur = $this->requete->getParametreFormulaire("codeLienDemandeur");
$demandeur = $this->requete->getParametreFormulaire("demandeur");
$codeLienBeneficiaire = $this->requete->getParametreFormulaire("codeLienBeneficiaire");
$beneficiaireReglement = $this->requete->getParametreFormulaire("beneficiaireReglement");
$observations = $this->requete->getParametreFormulaire("observations");
$codeModePaiementDemande = $this->requete->getParametreFormulaire("codeModePaiementDemande");
$codeBanqueBeneficiaire = $this->requete->getParametreFormulaire("codeBanqueBeneficiaire");
$numeroCompteBeneficiaire = $this->requete->getParametreFormulaire("numeroCompteBeneficiaire");
$prestataireConsultation = $this->requete->getParametreFormulaire("prestataireConsultation");
$codeRaisonConsultation = $this->requete->getParametreFormulaire("codeRaisonConsultation");
$hospitalisation = $this->requete->getParametreFormulaire("hospitalisation");
$dateConsultation = $this->requete->getParametreDate("dateConsultation");
$codePrestataire = $this->requete->getParametreFormulaire("codePrestataire");
$codeAffection = $this->requete->getParametreFormulaire("codeAffection");
$_SESSION['codePrestataire_C'] = $codePrestataire;
$idDossierClassique = $this->facture->enregistrerundossierclassique($demandeur, $codeLienDemandeur, $beneficiaireReglement,
$codeLienBeneficiaire, $observations, $codeBanqueBeneficiaire, $numeroCompteBeneficiaire, $codeModePaiementDemande,
$prestataireConsultation, $dateConsultation, $codeRaisonConsultation, $hospitalisation, $codePrestataire, $codeAffection);
$_SESSION['idDossierClassique'] = $idDossierClassique;
}
public function getcontextbyiddossier()
{
$idDossierClassique = $this->requete->getParametre("idDossierClassique");
$idBeneficiaire = $this->requete->getParametre("idBeneficiaire");
$_SESSION['idDossierClassique'] = $idDossierClassique;
$_SESSION['idBeneficiaire_C'] = $idBeneficiaire;
$this->beneficiaire->getContexteBeneficiaireIdPrest($idBeneficiaire);
}
public function enregistrerpaiementdossierclassique()
{
$idDossierClassique = $_SESSION['idDossierClassique'] ;
$codeModePaiement = $this->requete->getParametreFormulaire("codeModePaiement");
$referencePaiement = $this->requete->getParametreFormulaire("referencePaiement");
$montantPaye = $this->requete->getParametreFormulaire("montantPaye", "numerique");
$dateComptable = $this->requete->getParametreDate("dateComptable");
$codeBanquePayeur = $this->requete->getParametreFormulaire("codeBanquePayeur");
$this->facture->enregistrerpaiementdossierclassique($idDossierClassique, $dateComptable, $montantPaye, $codeModePaiement, $referencePaiement, $codeBanquePayeur);
$this->genererVueAjax();
}
public function getcontextbyidreglement()
{
$idReglement = $this->requete->getParametre("idReglement");
$idDossierClassiquePolice = $this->facture->get_id_dossier_police_by_id_reglement($idReglement);
$_SESSION['idDossierClassiquePolice'] = $idDossierClassiquePolice;
}
public function demanderreglement()
{
$idDossierClassique = $_SESSION['idDossierClassique'] ;
$this->facture->demanderreglement($idDossierClassique);
$this->genererVueAjax();
}
public function enregistrermodificationsdossierclassiquepolice()
{
$idDossierClassiquePolice = $_SESSION['idDossierClassiquePolice'];
$codeModePaiementDemande = $this->requete->getParametreFormulaire("codeModePaiementDemande");
$codeBanqueBeneficiaire = $this->requete->getParametreFormulaire("codeBanqueBeneficiaire");
$numeroCompteBeneficiaire = $this->requete->getParametreFormulaire("numeroCompteBeneficiaire");
$observations = $this->requete->getParametreFormulaire("observations");
$this->facture->enregistrermodificationsdossierclassiquepolice($idDossierClassiquePolice, $codeModePaiementDemande,
$codeBanqueBeneficiaire, $numeroCompteBeneficiaire, $observations);
}
public function getcontextbyidbordereau()
{
$idDossierClassiquePolice = $this->requete->getParametre("idDossierClassiquePolice");
$_SESSION['idDossierClassiquePolice'] = $idDossierClassiquePolice;
}
public function demanderreglementpolice()
{
$idDossierClassiquePolice = $_SESSION['idDossierClassiquePolice'] ;
$this->facture->demanderreglementpolice($idDossierClassiquePolice);
}
}

View File

@ -0,0 +1,32 @@
<?php
require_once 'Framework/Controleur.php';
require_once 'Modele/Facture.php';
class ControleurAjaxfacturesclassiques extends Controleur {
private $facture;
public function __construct() {
$this->facture = new Facture();
}
public function index()
{
$d1 = $this->requete->getParametreDate("d1");
$d2 = $this->requete->getParametreDate("d2");
$filtre = $this->requete->getParametreFormulaire("filtre");
if($filtre=="0"){
$dossiers = $this->facture->getdossiersclassiques($d1, $d2);
}elseif($filtre=="1")
{
$dossiers = $this->facture->getdossiersclassiquesassures($d1, $d2);
}elseif($filtre=="2")
{
$dossiers = $this->facture->getbordereauxrbclpolices($d1, $d2) ;
}
$this->genererVueAjax(array('dossiers' => $dossiers, 'filtre' => $filtre));
}
}

View File

@ -0,0 +1,122 @@
<?php
require_once 'vendor/autoload.php';
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
require_once 'Framework/Controleurrequete.php'; // OK
require_once 'Modele/Facture.php';
class ControleurAjaxfacturesclassiquesexport extends Controleurrequete
{
private $facture;
public function __construct() {
$this->facture = new Facture();
}
public function index()
{
$d1 = $this->requete->getParametreDate("d1");
$d2 = $this->requete->getParametreDate("d2");
$filtre = $this->requete->getParametreFormulaire("filtre");
if($filtre=="0"){
$dossiers = $this->facture->getdossiersclassiquesexport($d1, $d2) ;
}elseif($filtre=="1")
{
$dossiers = $this->facture->getdossiersclassiquesassuresexport($d1, $d2);
}elseif($filtre=="2")
{
$dossiers = $this->facture->getbordereauxrbclpolicesexport($d1, $d2);
}
// Excel
if($filtre=="2"){
$headerXLS = array
(
_("Réclamation"),
_("Système"),
_("ID Bordereau"),
_("Nbre Dossier"),
_("Nbre Facture"),
_("Réclamé"),
_("Rejet"),
_("Exclu"),
_("Base"),
_("T M"),
_("A Rembourser"),
_("Dépassement"),
_("Retenu"),
_("Règlement")
);
}else{
$headerXLS = array
(
_('Date'),
_('Date Saisie'),
_('Prestataire Cons'),
_('ID Dossier'),
_('Nbre Facture'),
_('Réclamé'),
_('Rejet'),
_('Exclu'),
_('Base'),
_('T M'),
_('A Rembourser'),
_('Dépassement'),
_('Retenu'),
_('Règlement'),
_('ID Bordereau')
);
}
$dataXLS = array();
foreach ($dossiers as $v)
{
$dataXLS[]=$v;
}
$classeur = new Spreadsheet();
$classeur->getProperties()->setCreator("INTER SANTE");
$classeur->setActiveSheetIndex(0);
$feuille=$classeur->getActiveSheet();
$feuille->setTitle(_('REMBOURSEMENTS DIRECT'));
$feuille->setCellValue('A1', convertirc($_SESSION['nomSociete']));
if($filtre=="2"){
$feuille->setCellValue('A2', convertirc(_('LISTE DES BORDEREAUX RD DU').' '.dateLang($d1).' AU '.dateLang($d2)));
}else{
$feuille->setCellValue('A2', convertirc(_('LISTE DES DOSSIERS RD DU').' '.dateLang($d1).' AU '.dateLang($d2)));
}
$feuille->mergeCells('A2:D2');
$feuille->fromArray($headerXLS, NULL, 'A5', true);
$feuille->fromArray($dataXLS, NULL, 'A6', true);
//Forcer le téléchargement vers le navigateur;
$fichier = 'Temp/TMP_DOSSIERS_RD'."_".uniqid().".xlsx";
$writer = new Xlsx($classeur);
$writer->save($fichier);
$t_html =' <div id ="div_export_a" class="alert alert-info"> ';
$t_html .=' <a style="font-size:15pt;" href="'.$fichier.'" target="_blank" > '._("TELECHARGER").' </a> ';
$t_html .=' </div ';
echo $t_html;
exit();
}
}

View File

@ -0,0 +1,94 @@
<?php
require_once 'Framework/Controleur.php';
require_once 'Modele/Adherent.php';
require_once 'Modele/Naturepiece.php';
require_once 'Modele/Sexe.php';
require_once 'Modele/Pays.php';
require_once 'Modele/Situationfamille.php';
require_once 'Modele/Groupesanguin.php';
require_once 'Modele/Garantieadherent.php';
class ControleurAjaxremplaceradherent extends Controleur
{
private $adherent;
private $naturepiece;
private $sexe;
private $pays;
private $situationfamille;
private $groupesanguin;
private $garantieadherent;
public function __construct()
{
$this->adherent = new Adherent();
$this->naturepiece = (new Naturepiece())->getListe();
$this->sexe = (new Sexe())->getListe();
$this->situationfamille = (new Situationfamille())->getListe();
$this->pays = (new Pays())->getListe($_SESSION['codePaysSociete']);
$this->groupesanguin = (new Groupesanguin())->getListe();
$this->garantieadherent = new Garantieadherent();
}
public function index()
{
// $this->genererVueAjax();
}
public function init()
{
$idPolice = $_SESSION['idPolice_C'];
$idAdherent = $_SESSION['idAdherent_C'];
$dateSortie = $this->requete->getParametreDate("dateSortie");
$dateRemplacement = $this->requete->getParametreDate("dateRemplacement");
$user = $_SESSION['login'];
$motifavenant = $this->requete->getParametreFormulaire("motifavenant");
$fraisCarte = $this->requete->getParametreFormulaire("fraisCarte","numerique");
$this->adherent->initremplacementadherent($idPolice, $idAdherent, $dateSortie , $dateRemplacement, $user,
$motifavenant, $fraisCarte);
$remplacementadherent_temp = $this->adherent->getremplacementadherent_temp();
$spadherent = $this->adherent->getRapportSpAdherent($idAdherent, $dateSortie);
$beneficiairearemplacers = $this->adherent->getbeneficiairearemplacer();
$adherentremplacanttemp = $this->adherent->getadherentremplacanttemp();
$garantieadherents = $this->garantieadherent->getGarantieAdherent($idAdherent);
$this->genererVueAjax(array('spadherent' => $spadherent, 'beneficiairearemplacers' => $beneficiairearemplacers,
'adherentremplacanttemp' => $adherentremplacanttemp, 'naturepiece' => $this->naturepiece, 'sexe' => $this->sexe,
'pays' => $this->pays, 'situationfamille' => $this->situationfamille, 'groupesanguin' => $this->groupesanguin,
'remplacementadherent_temp' => $remplacementadherent_temp, 'garantieadherents' => $garantieadherents));
}
public function enregistrerremplacementadherent()
{
$nom = $this->requete->getParametre("nom");
$prenoms = $this->requete->getParametreFormulaire("prenoms");
$codeNaturePiece = $this->requete->getParametre("codeNaturePiece");
$numeroPiece = $this->requete->getParametreFormulaire("numeroPiece");
$sexe = $this->requete->getParametreFormulaire("sexe");
$dateNaissance = $this->requete->getParametreDate("dateNaissance");
$codeGroupeSanguin = $this->requete->getParametreFormulaire("codeGroupeSanguin");
$codeSituationFamille = $this->requete->getParametreFormulaire("codeSituationFamille");
$nombreEnfants = $this->requete->getParametreFormulaire("nombreEnfants");
$adresseGeo = $this->requete->getParametreFormulaire("adresseGeo");
$adressePostale = $this->requete->getParametreFormulaire("adressePostale");
$codePays = $this->requete->getParametre("codePays");
$telephonFixe = $this->requete->getParametreFormulaire("telephonFixe");
$telephonePortable = $this->requete->getParametreFormulaire("telephonePortable");
$email = $this->requete->getParametreFormulaire("email");
$fraisCarte = $this->requete->getParametreFormulaire("fraisCarte","numerique");
$nom = strtoupper($nom);
$prenoms = ucwords($prenoms);
$this->adherent->enregistrerremplacementadherent($nom, $prenoms, $codeNaturePiece, $numeroPiece, $sexe,
$dateNaissance, $codeGroupeSanguin, $codeSituationFamille, $nombreEnfants, $adresseGeo, $adressePostale,
$codePays, $telephonFixe, $telephonePortable, $email, $fraisCarte) ;
// $this->genererVueAjax();
}
}

View File

@ -0,0 +1,33 @@
<?php
require_once 'Framework/Controleur.php';
require_once 'Modele/Remboursement.php';
class ControleurAjaxrhvalidationrd extends Controleur {
private $remboursement;
public function __construct() {
$this->remboursement = new Remboursement();
}
public function index() {
$idDemande = $this->requete->getParametreFormulaire("idDemande");
$demande = $this->remboursement->getDemandeRemboursement($idDemande);
$reponsedemande = $this->remboursement->getstatutpaiementrd();
$this->genererVueAjax(array('demande' => $demande, 'reponsedemande' => $reponsedemande));
}
public function enregistrer()
{
$idDemande = $this->requete->getParametreFormulaire("idDemande");
$codeStatutPaiement = $this->requete->getParametreFormulaire("codeStatutPaiement");
$motifRejetRh = $this->requete->getParametreFormulaire("motifRejetRh");
$this->remboursement->enregistrerrhvalidationrd($idDemande, $codeStatutPaiement, $motifRejetRh);
}
}

View File

@ -39,6 +39,9 @@ class ControleurCreeravenant extends Controleur {
$_SESSION['dateAvenant_C'] = $dateAvenant;
$_SESSION['motifavenant_C'] = $motifavenant;
//var_dump($codeTypeAvenant);
//die();
if($codeTypeAvenant=="RET")
{
$this->rediriger("Ficheretrait");

View File

@ -0,0 +1,173 @@
<?php
require_once 'Framework/Controleur.php';
require_once 'Modele/Remboursement.php';
require_once 'Modele/Ged.php';
require_once 'Modele/Menuvueutilisateur.php';
class ControleurRemboursement extends Controleur {
private $menuvue;
private $remboursement;
private $ged;
public function __construct() {
$this->menuvue = new Menuvueutilisateur();
$this->menuvue->getMenuVue('Remboursement');
$this->remboursement = new Remboursement();
$this->ged = new Ged();
}
public function index($msgErreur=null)
{
$message = "";
$nouveau_fichier = "Rien";
$idDemandeRemboursement = $_SESSION['idDemandeRemboursement'] ?? '0';
if(!empty($_POST))
{
define('TARGET', $_SESSION['cheminGed']); // Repertoire cible
define('MAX_SIZE', 10000000); // Taille max en octets du fichier
$tabExt = array("bmp", "gif", "jpeg", "jpg", "pdf", "png"); // Extensions autorisees
$extension = '';
if( !is_dir(TARGET) )
{
if( !mkdir(TARGET, 0755) )
{
if (est_anglophone())
{
$message = "Error: The target directory cannot be created! Check that you have sufficient rights to do so or create it manually!";
}else{
$message = 'Erreur : le répertoire cible ne peut-être créé ! Vérifiez que vous diposiez des droits suffisants pour le faire ou créez le manuellement !';
}
}
}
// On verifie si le champ est rempli
if( !empty($_FILES['fichier_upload']['name']) )
{
// Recuperation de l'extension du fichier
$extension = pathinfo($_FILES['fichier_upload']['name'], PATHINFO_EXTENSION);
// On verifie l'extension du fichier
if(in_array(strtolower($extension), $tabExt))
{
$message = $_FILES['fichier_upload']['size'];
// On verifie les dimensions et taille du fichier
if($_FILES['fichier_upload']['size'] <= MAX_SIZE)
{
$taille = $_FILES['fichier_upload']['size'];
// Parcours du tableau d'erreurs
if(isset($_FILES['fichier_upload']['error']) && UPLOAD_ERR_OK === $_FILES['fichier_upload']['error'])
{
// On renomme le fichier
$nomOrigine = $_FILES['fichier_upload']['name'];
$nouveau_fichier = dateJourSql()."_".uniqid().".".$extension;
// Si c'est OK, on teste l'upload
if(move_uploaded_file($_FILES['fichier_upload']['tmp_name'], TARGET.$nouveau_fichier))
{
if (est_anglophone())
{
$message = 'Uploaded successfully';
}else{
$message = 'Chargé avec succès';
}
// on va envoyer dans la base de données
$this->ged->enregistrergedRD($idDemandeRemboursement, $nomOrigine, $nouveau_fichier, $taille);
}
else
{
// Sinon on affiche une erreur systeme
if (est_anglophone())
{
$message = 'Error loading!';
}else{
$message = 'Problème lors du chargement !';
}
}
}
else
{
if (est_anglophone())
{
$message = 'An internal error prevented the loading';
}else{
$message = 'Une erreur interne a empêché le chargement';
}
}
}
else
{
if (est_anglophone())
{
$message .= $_FILES['fichier_upload']['size']." Error in the file dimensions!";
// $message = 'Erreur dans les dimensions du fichier !';
}else{
$message .= $_FILES['fichier_upload']['size']." Erreur dans les dimensions du fichier !";
// $message = 'Erreur dans les dimensions du fichier !';
}
}
}
else
{
// Sinon on affiche une erreur pour l'extension
if (est_anglophone())
{
$message = 'File extension is incorrect!';
}else{
$message = 'Extension du fichier est incorrecte !';
}
}
}
else
{
// Sinon on affiche une erreur pour le champ vide
if (est_anglophone())
{
$$message = 'Please select a file!';
}else{
$message = 'Veuillez sélectionner un fichier SVP!';
}
}
// fin upload
}
$msgErreurGed = $message;
//$benficiaires = $this->remboursement->getBeneficaire();
$demande = $this->remboursement->getDemandeRemboursement($idDemandeRemboursement);
$geds = $this->ged->getgedRd();
unset($_FILES['fichier_upload']);
$this->genererVue(array(/*'benficiaires' => $benficiaires,*/ 'msgErreurGed' => $msgErreurGed,
'demande' => $demande, 'geds' => $geds));
}
}

View File

@ -0,0 +1,26 @@
<?php
require_once 'Framework/Controleur.php';
require_once 'Modele/Remboursement.php';
require_once 'Modele/Menuvueutilisateur.php';
class ControleurRemboursementclassique extends Controleur {
private $menuvue;
private $remboursement;
public function __construct()
{
$this->menuvue = new Menuvueutilisateur();
$this->menuvue->getMenuVue('Remboursementclassique');
$this->remboursement = new Remboursement();
}
public function index() {
$d1 = $_SESSION['debutMois_C'];
$d2 = date('Y-m-d');
$reponsedemande = $this->remboursement->getstatutpaiementrd();
$this->genererVue(array('reponsedemande' => $reponsedemande));
}
}

View File

@ -0,0 +1,33 @@
<?php
require_once 'Framework/Controleur.php';
require_once 'Modele/Adherent.php';
require_once 'Modele/Menuvueutilisateur.php';
class ControleurRemplaceradherent extends Controleur {
private $adherent;
public function __construct() {
$this->menuvue = new Menuvueutilisateur();
$this->menuvue->getMenuVue('Remplaceradherent');
$this->adherent = new Adherent();
}
public function index()
{
$idPolice = $_SESSION['idPolice_C'];
$idAdherent = $_SESSION['idAdherent_C'];
// $adherent = $this->adherent->getAdherentIdConso($idAdherent);
$adherent = $this->adherent->getAdherentIdRempl($idAdherent);
$this->genererVue(array('adherent' => $adherent));
}
}

View File

@ -0,0 +1,71 @@
<?php
require_once 'Framework/Controleur.php';
require_once 'Modele/Adherent.php';
require_once 'Modele/Menuvueutilisateur.php';
require_once 'Modele/Garantieadherent.php';
class ControleurRemplaceradherentcons extends Controleur {
private $adherent;
private $garantieadherent;
public function __construct() {
$this->menuvue = new Menuvueutilisateur();
$this->menuvue->getMenuVue('Remplaceradherentcons');
$this->adherent = new Adherent();
$this->garantieadherent = new Garantieadherent();
}
public function index()
{
$idPolice = $_SESSION['idPolice_C'];
$idAdherent_sortant = $_SESSION['idAdherent_C'];
$adherent_sortant = $this->adherent->getAdherentIdConso($idAdherent_sortant);
$remplacementadherent = $this->adherent->getremplacementadherent($idAdherent_sortant);
$idRemplacementadherent = $remplacementadherent['idRemplacementadherent'];
$idAdherent_entrant = $adherent_sortant['idRemplacant'];
$adherent_entrant = $this->adherent->getAdherentIdConso($idAdherent_entrant);
$garantieadherents = $this->adherent->getgarantieremplacementadherent($idAdherent_sortant);
$beneficiaires = $this->adherent->getbeneficiaireremplacementadherent($idRemplacementadherent);
$this->genererVue(array('adherent_sortant' => $adherent_sortant, 'remplacementadherent' => $remplacementadherent,
'adherent_entrant' => $adherent_entrant, 'garantieadherents' => $garantieadherents, 'beneficiaires' => $beneficiaires));
}
public function remplacant()
{
$idPolice = $_SESSION['idPolice_C'];
$idAdherent_entrant = $_SESSION['idAdherent_C'];
$adherent_entrant = $this->adherent->getAdherentIdConso($idAdherent_entrant);
$idAdherent_sortant = $adherent_entrant['idRemplace'];
$adherent_sortant = $this->adherent->getAdherentIdConso($idAdherent_sortant);
$remplacementadherent = $this->adherent->getremplacementadherent($idAdherent_sortant);
$idRemplacementadherent = $remplacementadherent['idRemplacementadherent'];
$garantieadherents = $this->adherent->getgarantieremplacementadherent($idAdherent_sortant);
$beneficiaires = $this->adherent->getbeneficiaireremplacementadherent($idRemplacementadherent);
$this->genererVue(array('adherent_sortant' => $adherent_sortant, 'remplacementadherent' => $remplacementadherent,
'adherent_entrant' => $adherent_entrant, 'garantieadherents' => $garantieadherents, 'beneficiaires' => $beneficiaires));
}
}

View File

@ -38,27 +38,28 @@ function connexion_cookie()
});
}
function toggleSidebar() {
document.body.classList.toggle('sidebar-collapsed');
}
$(function() {
// Initialisation des composants au chargement de la page
appliquerDataTable('.tabliste');
dataTableSpeciale();
//const vueOuverte = $("#vue").val();
let nomForm = $("#nomForm").val();
/*
if(nomForm == "nouveluserrh")
if(nomForm == "remboursementClassic")
{
ajax_saisir_pass_new_user();
$("#nom").focus();
let filtre = "0";
d1 = $("#d1").val();
d2 = $("#d2").val();
lister_dossiers_classiques(filtre);
}
*/
/*
if(vueOuverte === "Accueil"){
reset_graphique();
}
*/
});
function raffraichier_gabarit()
@ -74,6 +75,11 @@ function raffraichier_gabarit()
if((codeSociete == undefined || codeSociete <= " ") && vue !="Connexion"){
const msg = "Votre session a expiré. Vous serez déconnecté.";
const msgEng = "Your session has expired. You will be disconnected.";
alert_ebene(msg, msgEng);
window.location.assign($("#racineWeb" ).val()+"Connexion/deconnecter/");
}
},
@ -186,28 +192,51 @@ function baseSwal(options) {
title: 'responsive-swal-title',
htmlContainer: 'responsive-swal-html'
},
didOpen: adjustSwalContent,
didOpen: (popup) => {
// Ajuste ton contenu responsive
adjustSwalContent(popup);
// Trouver le z-index le plus élevé parmi les modals ouverts
const highestModalZ = [...document.querySelectorAll('.modal.show')]
.map(m => parseInt(window.getComputedStyle(m).zIndex) || 1050)
.reduce((a, b) => Math.max(a, b), 1050);
// Forcer SweetAlert à passer au-dessus
const swalContainer = popup.closest('.swal2-container');
if (swalContainer) {
swalContainer.style.zIndex = highestModalZ + 50;
}
},
willOpen: () => { document.body.style.overflow = 'hidden'; },
willClose: () => { document.body.style.overflow = 'auto'; }
});
}
// 🔒 Fonction utilitaire pour fermer SweetAlert
function closeSwal() {
Swal.close();
}
/**
* ALERTE SIMPLE
* Affiche une information bilingue.
*/
function alert_ebene(p_msg, p_msg_eng) {
const codeLangue = $("#codeLangue").val();
const message = (codeLangue === "en_US") ? p_msg_eng : p_msg;
baseSwal({
title: formatMessageForSwal(message),
function alert_ebene(msgFr, msgEn) {
const codeLangue = document.querySelector("#codeLangue")?.value || "fr_FR";
const message = (codeLangue === "en_US") ? msgEn : msgFr;
// Appel via baseSwal
return baseSwal({
text: message,
icon: 'info',
confirmButtonText: codeLangue === "en_US" ? 'OK' : 'D\'accord'
confirmButtonText: (codeLangue === "en_US") ? "OK" : "D'accord",
allowOutsideClick: false,
allowEscapeKey: false
});
}
/*
function alert_ebene(msgFr, msgEn) {
const codeLangue = document.querySelector("#codeLangue")?.value || "fr_FR";
@ -377,6 +406,84 @@ function appliquerDataTable(selector = '.tabliste', options = {}) {
});
}
function dataTableSpeciale() {
const $table = $('.tabspeciale');
const codeLangue = $("#codeLangue").val() || "fr_FR";
// Détruire l'instance existante si elle existe
if ($.fn.DataTable.isDataTable($table)) {
$table.DataTable().clear().destroy();
// ⚠️ Ne pas vider le contenu, sinon tu perds <thead>/<th>
// $table.empty();
}
// Définition des traductions
const langOptions = {
en_US: {
lengthMenu: "Display _MENU_ records per page",
zeroRecords: "Nothing found - sorry",
info: "Showing page _PAGE_ of _PAGES_",
infoEmpty: "No records available",
search: "Search:",
paginate: {
next: "►",
previous: "◄",
first: "|◄",
last: "►|"
},
infoFiltered: "(filtered from _MAX_ total records)"
},
fr_FR: {
lengthMenu: "Affiche _MENU_ par page",
zeroRecords: "Désolé - Aucune donnée trouvée",
info: "_PAGE_ sur _PAGES_ pages",
infoEmpty: "Pas d'enregistrement",
search: "Recherche:",
paginate: {
next: "►",
previous: "◄",
first: "|◄",
last: "►|"
},
infoFiltered: "(filtré de _MAX_ total enregistrements)"
}
};
// Définition des lengthMenu selon la langue
const lengthMenuOptions = [10, 50, 100];
try {
const dt = $table.DataTable({
responsive: true,
lengthMenu: lengthMenuOptions,
scrollX: true,
scrollY: "75vh",
scrollCollapse: true, // ✅ aide à harmoniser header/body
pagingType: "full_numbers",
autoWidth: false,
searching: true, // ✅ réactive la recherche
ordering: false,
lengthChange: false,
orderMulti: true,
fixedHeader: true, // ✅ garde lentête aligné
language: langOptions[codeLangue] || langOptions.fr_FR
});
// Ajuster les colonnes après init
dt.columns.adjust().draw();
// Ajuster encore après un petit délai (utile après Ajax)
setTimeout(() => {
dt.columns.adjust().draw();
}, 200);
} catch (err) {
console.error("Erreur DataTable:", err);
return false;
}
}
/**
* MESSAGERIE ET NOTIFICATIONS
* Récupère le nombre de messages et déconnecte si session expirée.
@ -1440,45 +1547,71 @@ function enregistrer_avenant()
</span>
</div>
`);
document.getElementById("formAvenant").submit();
}
});
}
function pop_afficher_selection_retrait()
{
var div_selection_assure = $('#div_selection_assure');
div_selection_assure.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>
`);
function pop_afficher_selection_retrait() {
const div_selection_assure = $('#div_selection_assure');
$.ajax({
url: $("#racineWeb").val()+"Ajaxselectionretrait/",
type : 'post',
error: function(errorData) {
},
success: function(data) {
div_selection_assure.html(data);
// $('#div_test_gabarit').html(data);
},
complete: function() {
const modal = document.getElementById("popdetailassure");
if (modal && modal.parentNode !== document.body) {
document.body.appendChild(modal);
}
// Ouvrir le modal via le bouton caché
document.getElementById("btn_pop").click();
}
});
// 1. Affichage du Loader
div_selection_assure.html(`
<div class="d-flex flex-column align-items-center justify-content-center" style="padding-top:80px; min-height:300px;">
<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 text-muted">
Chargement de la liste... / Loading list...
</span>
</div>
`);
// 2. Appel Ajax
$.ajax({
url: $("#racineWeb").val() + "Ajaxselectionretrait/",
type: 'post',
error: function(xhr, status, error) {
div_selection_assure.html(`
<div class="alert alert-danger m-3">
<i class="fas fa-exclamation-circle me-2"></i>
Erreur lors du chargement : ${error}
<br><small>${xhr.responseText || ''}</small>
</div>
`);
},
success: function(data) {
// Injection des données
div_selection_assure.html(data);
// 3. Initialisation du DataTable si la table existe
const $table = div_selection_assure.find('.tabspeciale');
if ($table.length > 0 && $table.find('thead th').length > 0) {
try {
dataTableSpeciale();
} catch (err) {
console.error("Erreur DataTable:", err);
}
} else {
console.warn("Table .tabspeciale non trouvée ou mal formée");
}
},
complete: function() {
// 4. Gestion propre du Modal
const modalEl = document.getElementById("popdetailassure");
if (modalEl) {
if (modalEl.parentNode !== document.body) {
document.body.appendChild(modalEl);
}
const myModal = bootstrap.Modal.getOrCreateInstance(modalEl);
myModal.show();
}
}
});
}
function beneficiaire_a_retirer(p_choix, p_id_beneficiaire)
@ -5277,3 +5410,566 @@ function ControlerEcheanceRen()
}
}
}
/**
* Gère le changement d'état du switch dans le tableau
*/
function toggleBeneficiaireSelection(checkbox, id) {
// On met à jour la valeur interne
const newValue = checkbox.checked ? '1' : '0';
checkbox.value = newValue;
// Appel de votre fonction métier existante
beneficiaire_a_retirer(newValue, id);
// Optionnel : On peut ajouter un effet visuel sur la ligne
const row = $(checkbox).closest('tr');
if (checkbox.checked) {
row.addClass('table-info');
} else {
row.removeClass('table-info');
}
}
function lister_dossiers_classiques(filtre)
{
var libelle = "";
d1 = $("#d1").val();
d2 = $("#d2").val();
codeLangue = $("#codeLangue").val();
if(filtre=="0"){
libelle = "Tous";
}else if(filtre=="1"){
libelle = "Assurés";
}else if(filtre=="2"){
libelle = "Polices";
}
if(codeLangue=="en_US")
{
if(filtre=="0"){
libelle = "All";
}else if(filtre=="1"){
libelle = "Insured";
}else if(filtre=="2"){
libelle = "Insurance policy";
}
}
$("#libelleFiltre").val(libelle);
$("#filtre").val(filtre);
donnees = 'd1='+d1+'&d2='+d2+'&filtre='+filtre;
$("#div_export_a").html('');
$("#div_dossiers").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()+"Ajaxfacturesclassiques/",
type : 'post',
data: donnees,
error: function(errorData) {
},
success: function(data) {
$("#div_dossiers").html(data);
dataTableSpeciale();
},
complete: function() {
}
});
}
function lister_dossiers_classiques_police()
{
d1=$("#d1").val();
d2=$("#d2").val();
donnees = 'd1='+d1+'&d2='+d2;
$("#div_bordereau").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()+"Ajaxdossiersclassiquespolice/",
type : 'post',
data: donnees,
error: function(errorData) {
},
success: function(data) {
// $('#div_test_gabarit').html(data);
$("#div_dossiers").html(data);
dataTableSpeciale();
},
complete: function() {
}
});
}
function lister_dossiers_classiques_export()
{
//alert("lister_dossiers_classiques_export");
//return;
d1 = $("#d1").val();
d2 = $("#d2").val();
filtre = $("#filtre").val();
nbLigne = $("#nbLigne").val();
if(nbLigne==undefined || nbLigne=="0"){
v_msg="Aucune données à exporter!";
v_msgEng="No data to export!";
alert_ebene(v_msg, v_msgEng);
return;
}
donnees = 'd1='+d1+'&d2='+d2+'&filtre='+filtre;
$("#div_export_a").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()+"Ajaxfacturesclassiquesexport/",
type : 'post',
data: donnees,
error: function(errorData) {
},
success: function(data) {
$("#div_export_a").html(data);
},
complete: function() {
}
});
}
function consulter_un_bordereau_rbcl(idDossierClassiquePolice)
{
donnees = 'idDossierClassiquePolice='+idDossierClassiquePolice;
$.ajax({
url: $("#racineWeb").val()+"Ajaxdossiersclassiquespolice/getcontextbyidbordereau/",
type : 'post',
data: donnees,
error: function(errorData) {
},
complete: function() {
afficher_dossier_classique_police();
}
});
}
function afficher_dossier_classique_police()
{
window.location.assign($("#racineWeb" ).val()+"Dossierclassiquepolice/");
}
function consulter_dossier_classique(idDossierClassique)
{
donnees = 'idDossierClassique='+idDossierClassique;
$.ajax({
url: $("#racineWeb").val()+"Ajaxdossierclassique/getcontextbyid/",
type : 'post',
data: donnees,
error: function(errorData) {
},
complete: function() {
afficher_dossier_classique();
}
});
}
function afficher_dossier_classique()
{
window.location.assign($("#racineWeb" ).val()+"Dossierclassique/");
}
function listerremboursement()
{
d1 = $("#d1").val();
d2 = $("#d2").val();
codeStatutPaiement = $("#codeStatutPaiement").val();
donnees = 'd1='+ d1+'&d2='+d2+'&codeStatutPaiement='+codeStatutPaiement;
$("#div_dossiers").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()+"Ajaxdemanderemboursement/",
type: 'POST',
data: donnees,
error: function(errorData) {
},
success: function(data) {
// alert(data);
$('#div_dossiers').html(data);
},
complete: function() {
}
});
}
function selectionner_remboursement(idDemande)
{
donnees = 'idDemande='+idDemande;
$.ajax({
url: $("#racineWeb").val()+"Ajaxdemanderemboursement/selectionnerremb/",
type: 'POST',
data: donnees,
error: function(errorData) {
},
success: function(data) {
},
complete: function() {
actualiser_remboursement();
}
});
}
function actualiser_remboursement()
{
window.location.assign($("#racineWeb" ).val()+"Remboursement/");
}
function valider_remboursement(idDemande){
$("#div_patienter").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>
`);
donnees = 'idDemande='+idDemande;
$.ajax({
url: $("#racineWeb").val()+"Ajaxrhvalidationrd/",
type : 'post',
data: donnees,
error: function(errorData){
alert("Erreur : "+errorData);
},
success: function(data) {
//alert("Success : "+data);
$("#div_patienter").html('');
$('#div_validation').html(data);
//appliquerDataTable();
$('#div_validation').modal("show");
},
complete: function() {
}
});
}
function enregistrer_validation_rd(idDemande){
debugger;
codeStatutPaiement = $("#codeStatutPaiementAjax").val();
motifRejetRh = $("#motifRejetRh").val();
if(codeStatutPaiement == "2"){
const msg = "Une décision de validation est obligatoire.";
const msgEng = "A validation approval is required.";
alert_ebene(msg, msgEng);
$("#codeStatutPaiementAjax").focus();
return;
}
if(codeStatutPaiement=="9" && motifRejetRh <=" "){
const msg = "Un motif est obligatoire en cas de refus.";
const msgEng = "A reason is required in case of refusal.";
alert_ebene(msg, msgEng);
$("#motifRejetRh").focus();
return;
}
donnees = 'idDemande='+idDemande;
donnees += '&codeStatutPaiement='+codeStatutPaiement;
donnees += '&motifRejetRh='+motifRejetRh;
$.ajax({
url: $("#racineWeb").val()+"Ajaxrhvalidationrd/enregistrer/",
type : 'post',
data: donnees,
error: function(errorData){
alert("Erreur : "+errorData);
},
success: function(data) {
//alert("Success : "+data);
$('#div_validation').modal("hide");
},
complete: function() {
listerremboursement();
}
});
}
function remplacer_adherent()
{
nbAdh = $("#nbAdh_C").val();
codeTypeContrat = $("#codeTypeContrat_C").val();
if ( (codeTypeContrat!="G") && (nbAdh>0) )
{
v_msg="Ce n\'est pas une police GROUPE!";
v_msgEng="This is not a GROUP policy!";
alert_ebene(v_msg, v_msgEng);
return;
}
if ($("#idAdherent_C" ).val()<= " ")
{
v_msg="Veuillez sélectionner une famille!";
v_msgEng="Please select a family!";
alert_ebene(v_msg, v_msgEng);
return;
}
remplacementAdherent=$("#remplacementAdherent").val();
if (remplacementAdherent!="1")
{
v_msg="Remplacement de famille non actif pour cette police!";
v_msgEng="Family replacement inactive for this policy!";
alert_ebene(v_msg, v_msgEng);
return;
}
remplace=$("#remplace").val();
remplacant=$("#remplacant").val();
if (remplacant=="1")
{
if (remplace=="1")
{
v_msg="Famille déjà remplacée!";
v_msgEng="Family already replaced!";
alert_ebene(v_msg, v_msgEng);
consulter_remplacement_adherent();
}
else
{
v_msg="Cette famille en a déjà remplacé une autre, confirmez-vous son remplacement à son tour?";
v_msgEng="This family has already replaced another, do you confirm its replacement in turn?";
if(confirm_ebene(v_msg, v_msgEng))
{
fiche_remplacer_adherent();
}
else
{
consulter_remplacant_adherent();
}
}
}
else
if (remplace=="1")
{
v_msg="Famille déjà remplacée!";
v_msgEng="Family already replaced!";
alert_ebene(v_msg, v_msgEng);
consulter_remplacement_adherent();
}
else
{
fiche_remplacer_adherent();
// window.location.assign($("#racineWeb" ).val()+"Remplaceradherent/");
}
}
function consulter_remplacement_adherent()
{
idAdherent = $("#idAdherent_C" ).val();
if (idAdherent>"0")
{
window.location.assign($("#racineWeb" ).val()+"Remplaceradherentcons/");
}
}
function fiche_remplacer_adherent()
{
etat=$("#codeEtatPolice_C").val();
if (etat=="RE")
{
v_msg="Attention! Police résiliée!";
v_msgEng="Warning! Terminated policy!";
alert_ebene(v_msg, v_msgEng);
return;
}
if (etat=="SU")
{
v_msg="Attention! Police suspendue!";
v_msgEng="Warning! Suspended policy!";
alert_ebene(v_msg, v_msgEng);
return;
}
if (etat=="AN")
{
v_msg="Attention! Police annulée!";
v_msgEng="Warning! Canceled policy!";
alert_ebene(v_msg, v_msgEng);
return;
}
window.location.assign($("#racineWeb" ).val()+"Remplaceradherent/");
}
function init_remplacement_adherent()
{
dateSortieAdh = $("#dateSortieAdh").datepicker("getDate");
dateRemplacement = $("#dateRemplacement").datepicker("getDate");
dateEffetPolice = $("#dateEffetPolice_C").val();
dateEffetAdherent = $("#dateEffetAdherent").val();
dateEcheancePolice = $("#dateEcheancePolice_C").val();
var td0 = new Date(dateEffetAdherent);
var td1 = new Date(dateSortieAdh);
var td11 = new Date(dateRemplacement);
var td2 = new Date(dateEcheancePolice);
dt0=Math.round(Date.parse(td0)/(1000*3600*24));
dt1=Math.round(Date.parse(td1)/(1000*3600*24));
dt11=Math.round(Date.parse(td11)/(1000*3600*24));
dt2=Math.round(Date.parse(td2)/(1000*3600*24));
if (td11<=td1)
{
v_msg="Attention! Veuillez revoir vos dates!";
v_msgEng="Warning! Please review your dates!";
alert_ebene(v_msg, v_msgEng);
return false;
}
if (dt1>dt2 || dt1<dt0)
{
v_msg="Attention! cette police n'est pas couverte à cette date!";
v_msgEng="Warning! This insurance policy is not valid on this date!";
alert_ebene(v_msg, v_msgEng);
return false;
}
etatRetrait = $("#etatRetrait").val();
dateRetrait = $("#dateRetrait").val();
ristourneRetrait = $("#ristourneRetrait").val();
ristourneRetrait = parseInt(ristourneRetrait);
if(etatRetrait=="R" && ristourneRetrait<0)
{
v_msg="Attention! cette personne a été retirée avec une ristourne!";
v_msgEng=" Warning! this person was withdrawn with premium!";
alert_ebene(v_msg, v_msgEng);
return false;
}
motifavenant=$("#motifavenant").val();
if ($("#motifavenant").val()<" ")
{
v_msg="Veuillez fournir le motif!";
v_msgEng="Please provide the reason";
alert_ebene(v_msg, v_msgEng);
return;
}
dateS = $("#dateSortieAdh").val();
dateR = $("#dateRemplacement").val();
fraisCarte = $("#fraisCarte").val();
donnees = 'dateSortie='+dateS+'&dateRemplacement='+dateR+'&motifavenant='+motifavenant+'&fraisCarte='+fraisCarte;
$("#div_remplacement_adherent").html('<div style="padding-top:80px;"><img src="Bootstrap/images/loading.gif"/>&nbsp;&nbsp;<span style="font-size:15pt;">' + 'Veuillez patienter... / Please wait...' + '</span></div>');
$.ajax({
url: $("#racineWeb").val()+"Ajaxremplaceradherent/init/",
type : 'post',
data: donnees,
error: function(errorData) {
},
success: function(data)
{
$("#div_remplacement_adherent").html(data);
},
complete: function() {
$(".datepicker" ).datepicker();
}
});
}

View File

@ -277,5 +277,113 @@ class Facture extends Modele {
return $resultat->fetchAll(PDO::FETCH_ASSOC);
}
public function getbordereauxrbcl($idPolice, $d1, $d2)
{
$sql = 'call sp_r_get_bordereaux_rbcl(?, ?, ?)';
$resultat = $this->executerRequete($sql, array($idPolice, $d1, $d2));
return $resultat->fetchAll(PDO::FETCH_ASSOC);
}
public function getdossiersclassiques($d1, $d2)
{
$sql = 'call sp_r_get_dossiers_classiques(?, ?)';
$resultat = $this->executerRequete($sql, array($d1, $d2));
return $resultat->fetchAll(PDO::FETCH_ASSOC);
}
public function getdossiersclassiquesassures($d1, $d2)
{
$sql = 'call sp_r_get_dossiers_classiques_assures(?, ?)';
$resultat = $this->executerRequete($sql, array($d1, $d2));
return $resultat->fetchAll(PDO::FETCH_ASSOC);
}
public function getbordereauxrbclpolices($d1, $d2)
{
$sql = 'call sp_r_get_bordereaux_rbcl_polices(?, ?)';
$resultat = $this->executerRequete($sql, array($d1, $d2));
return $resultat->fetchAll(PDO::FETCH_ASSOC);
}
public function getdossiersclassiquesexport($d1, $d2)
{
$sql = 'call sp_r_get_dossiers_classiques_export(?, ?)';
$resultat = $this->executerRequete($sql, array($d1, $d2));
return $resultat->fetchAll(PDO::FETCH_ASSOC);
}
public function getdossiersclassiquesassuresexport($d1, $d2)
{
$sql = 'call sp_r_get_dossiers_classiques_assures_export(?, ?)';
$resultat = $this->executerRequete($sql, array($d1, $d2));
return $resultat->fetchAll(PDO::FETCH_ASSOC);
}
public function getbordereauxrbclpolicesexport($d1, $d2)
{
$sql = 'call sp_r_get_bordereaux_rbcl_polices_export(?, ?)';
$resultat = $this->executerRequete($sql, array($d1, $d2));
return $resultat->fetchAll(PDO::FETCH_ASSOC);
}
public function getdossierclassiquepolice($idDossierClassiquePolice)
{
$sql = 'call sp_r_get_dossier_classique_police(?)';
$resultat = $this->executerRequete($sql, array($idDossierClassiquePolice));
return $resultat->fetch(PDO::FETCH_ASSOC);
}
public function getdlisteossiersclassiquespolice($idDossierClassiquePolice)
{
$sql = 'call sp_r_get_liste_dossiers_classiques_police(?)';
$resultat = $this->executerRequete($sql, array($idDossierClassiquePolice));
return $resultat->fetchAll(PDO::FETCH_ASSOC);
}
public function getdossierclassique($idDossierClassique)
{
$sql = 'call sp_r_get_dossier_classique(?)';
$resultat = $this->executerRequete($sql, array($idDossierClassique));
return $resultat->fetch(PDO::FETCH_ASSOC);
}
public function getfacturesdossierclassique_total($idDossierClassique)
{
$sql = 'CALL sp_r_facture_dossier_classique_total(?);';
$resultat = $this->executerRequete($sql, array($idDossierClassique));
return $resultat->fetch(PDO::FETCH_ASSOC);
}
public function getfacturesdossierclassique($idDossierClassique)
{
$sql = 'call sp_r_get_factures_dossier_classique(?)';
$resultat = $this->executerRequete($sql, array($idDossierClassique));
return $resultat->fetchAll(PDO::FETCH_ASSOC);
}
}

View File

@ -217,5 +217,19 @@ class Ged extends Modele {
$this->executerRequete($sql, array($idGed, $motifSuppression, $user));
}
public function getgedRd()
{
$idDemandeRemboursement = $_SESSION['idDemandeRemboursement'] ?? '0';
$sql = 'call sp_a_get_ged_adherent_rd(?)';
$resultat = $this->executerRequete($sql, array($idDemandeRemboursement));
return $resultat->fetchAll(PDO::FETCH_ASSOC);
}
}

View File

@ -79,5 +79,39 @@ class Remboursement extends Modele {
return $resultat->fetchAll(PDO::FETCH_ASSOC);
}
public function getstatutpaiementrd()
{
if (est_anglophone()){
$sql = 'call sp_c_get_statut_paiement_rd_eng()';
}else{
$sql = 'call sp_c_get_statut_paiement_rd()';
}
$resultat = $this->executerRequete($sql);
return $resultat->fetchAll(PDO::FETCH_ASSOC);
}
public function getListeDossiersRemboursements($idClient, $d1, $d2, $codeStatutPaiement)
{
$codeStatutPaiement = contruireParamLike($codeStatutPaiement);
$sql = 'call sp_c_get_dossiers_remboursement_rd_rh(?, ?, ?, ?)';
$resultat = $this->executerRequete($sql, array($idClient, $d1, $d2, $codeStatutPaiement));
return $resultat->fetchAll(PDO::FETCH_ASSOC);
}
public function enregistrerrhvalidationrd($idDemande, $codeStatutPaiement, $motifRejetRh)
{
$login = $_SESSION['login'];
$sql = 'call sp_c_validation_remboursement_rd_rh(?, ?, ?, ?)';
$this->executerRequete($sql, array($idDemande, $codeStatutPaiement, $motifRejetRh, $login));
}
}

View File

@ -0,0 +1,87 @@
<div class="card shadow-sm border-0">
<?php if (empty($demandes)): ?>
<div class="alert alert-light text-center m-3 border">
<i class="fas fa-search me-2 text-muted"></i>
<span class="text-secondary"><?= _("Aucune demande ne correspond à vos critères.") ?></span>
</div>
<?php else: ?>
<div class="card-header bg-white py-3 d-flex justify-content-between align-items-center">
<h6 class="mb-0 fw-bold text-primary">
<i class="fas fa-list-ul me-2"></i><?= _("Résultats de la recherche") ?>
</h6>
<span class="badge rounded-pill bg-primary px-3">
<?= count($demandes) ?> <?= _("demande(s) trouvée(s)") ?>
</span>
</div>
<div class="table-responsive">
<table class="table table-hover align-middle mb-0" style="font-size:8.5pt;">
<thead class="table-light border-bottom">
<tr>
<th class="text-center px-3" width="120"><?= _("N° Demande") ?></th>
<th><?= _("Date & Heure") ?></th>
<th><?= _("Adhérent / Bénéficiaire") ?></th>
<th class="text-center"><?= _("État") ?></th>
<th width="20%"><?= _("Motif / Commentaire") ?></th>
<th class="text-center"><?= _("Actions") ?></th>
</tr>
</thead>
<tbody>
<?php foreach ($demandes as $v):
$idDemande = $this->nettoyer($v['id']);
$statusPaiement = $v['codeStatutPaiement'];
?>
<tr>
<td class="text-center px-3">
<button class="btn btn-sm btn-light border fw-bold w-100 text-primary shadow-sm"
onClick="selectionner_remboursement('<?= $idDemande ?>');">
<?= $this->nettoyer($v['numeroDemandeRemboursement']) ?>
</button>
</td>
<td class="text-muted">
<i class="far fa-clock me-1"></i>
<?= dateheureLang($v['dateSysteme'], $_SESSION['lang']) ?>
</td>
<td>
<div class="fw-bold text-dark"><?= $this->nettoyer($v['beneficiaire']) ?></div>
<div class="small text-muted">
<i class="fas fa-user-shield me-1"></i> <?= $this->nettoyer($v['adherent']) ?> (<?= $v['numeroAdherent'] ?>)
</div>
</td>
<td class="text-center">
<?php if($statusPaiement == "1"): ?>
<span class="badge bg-success-subtle text-success border border-success-subtle rounded-pill px-3">
<i class="fas fa-check-circle me-1"></i><?= _("Validée") ?>
</span>
<?php elseif($statusPaiement == "2"): ?>
<span class="badge bg-warning-subtle text-warning-emphasis border border-warning-subtle rounded-pill px-3">
<i class="fas fa-hourglass-half me-1"></i><?= _("En attente") ?>
</span>
<?php else: ?>
<span class="badge bg-danger-subtle text-danger border border-danger-subtle rounded-pill px-3">
<i class="fas fa-times-circle me-1"></i><?= _("Refusée") ?>
</span>
<?php endif; ?>
</td>
<td class="text-truncate" style="max-width: 200px;" title="<?= $this->nettoyer($v['motifRejetRh']) ?>">
<small class="text-muted italic"><?= $v['motifRejetRh'] ?: '-' ?></small>
</td>
<td class="text-center">
<div class="btn-group shadow-sm">
<button class="btn btn-sm btn-primary me-2" title="<?= _("Valider") ?>"
onClick="valider_remboursement('<?= $idDemande ?>');">
<i class="fas fa-check"></i>
</button>
<button class="btn btn-sm btn-outline-secondary" title="<?= _("Détails") ?>"
onClick="selectionner_remboursement('<?= $idDemande ?>');">
<i class="fas fa-eye"></i>
</button>
</div>
</td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
</div>
<?php endif; ?>
</div>

View File

@ -1,118 +1,144 @@
<?php
$nbFactAntiDate = $this->nettoyer($avenant['nbFactAntiDate']);
$nbFactAntiDate = $this->nettoyer($avenant['nbFactAntiDate']);
$taxLabel = (isset($_SESSION['composanteprime']['Taxes'])) ? _($_SESSION['composanteprime']['Taxes']) : _("Taxes");
?>
KANE LAZENi
<div class="card shadow-sm border-0 mb-4 animate__animated animate__fadeIn">
<div class="card-body p-0">
<div class="table-responsive">
<table class="table table-borderless align-middle mb-0 text-center" style="font-size: 8.5pt;">
<thead class="bg-light text-muted text-uppercase" style="font-size: 7.5pt;">
<tr>
<th class="py-3"><?= _("P. Nette Comm") ?></th>
<th class="py-3"><?= _("Comm Courtage") ?></th>
<th class="py-3"><?= _("Comm Commerc") ?></th>
<th class="py-3"><?= _("Accessoires") ?></th>
<th class="py-3 fw-bold text-dark"><?= _("Primes Nettes") ?></th>
<th class="py-3"><?= $taxLabel ?></th>
<th class="py-3"><?= _("Cartes") ?></th>
<th class="py-3 text-primary fw-bold"><?= _("TTC") ?></th>
<th class="py-3"><?= _("P. Nette Stat") ?></th>
</tr>
</thead>
<tbody>
<tr class="fw-bold border-bottom">
<td><?= format_N($this->nettoyer($avenant['primeNette'])) ?></td>
<td><?= format_N($this->nettoyer($avenant['commission'])) ?></td>
<td><?= format_N($this->nettoyer($avenant['commissionAutre'])) ?></td>
<td><?= format_N($this->nettoyer($avenant['accessoire'])) ?></td>
<td class="bg-light-subtle"><?= format_N($this->nettoyer($avenant['primeHt'])) ?></td>
<td><?= format_N($this->nettoyer($avenant['taxe'])) ?></td>
<td><?= format_N($this->nettoyer($avenant['fraisCarte'])) ?></td>
<td class="text-primary fs-6"><?= format_N($this->nettoyer($avenant['primeTtcInitial'])) ?></td>
<td><?= format_N($this->nettoyer($avenant['primeNetteStat'])) ?></td>
</tr>
</tbody>
</table>
</div>
<div class="bg-light p-3 d-flex flex-wrap gap-2 justify-content-center border-top">
<button type="button" class="btn btn-outline-info px-4 fw-bold shadow-sm rounded-pill" onclick="pop_afficher_selection_retrait();">
<i class="fas fa-user-plus me-2"></i><?= _("Sélectionner Assurés") ?>
</button>
<button type="button" class="btn btn-danger px-4 fw-bold shadow-sm rounded-pill text-uppercase" onclick="recapituler_retrait();">
<i class="fas fa-calculator me-2"></i><?= _("Récapituler") ?>
</button>
<button type="button" class="btn btn-primary px-4 fw-bold shadow-sm rounded-pill text-uppercase" onclick="enregistrer_retrait();">
<i class="fas fa-save me-2"></i><?= _("Enregistrer le retrait") ?>
</button>
</div>
</div>
</div>
<table class="table table-responsive table-condensed" style='font-size:9pt; text-align:center'>
<thead>
<tr>
<th style='text-align:center'> <?= _("P NETTE DE COMM") ?> </th>
<th style='text-align:center'> <?= _("COMM COURTAGE") ?> </th>
<th style='text-align:center'> <?= _("COMM COMMERC") ?> </th>
<th style='text-align:center'> <?= _("ACCESSOIRES") ?> </th>
<th style='text-align:center'> <?= _("PRIMES NETTES") ?> </th>
<th style='text-align:center'> <?= (isset($_SESSION['composanteprime']['Taxes'])) ? _($_SESSION['composanteprime']['Taxes']) : _("Taxes") ?> </th>
<th style='text-align:center'> <?= _("CARTES") ?> </th>
<th style='text-align:center'> <?= _("TTC") ?> </th>
<th width="12%" style='text-align:center'> <?= _("P NETTE STAT") ?> </th>
</tr>
</thead>
<tbody>
<tr>
<td> <?= format_N($this->nettoyer($avenant['primeNette'])) ?> </td>
<td> <?= format_N($this->nettoyer($avenant['commission'])) ?> </td>
<td> <?= format_N($this->nettoyer($avenant['commissionAutre'])) ?> </td>
<td> <?= format_N($this->nettoyer($avenant['accessoire'])) ?> </td>
<td> <?= format_N($this->nettoyer($avenant['primeHt'])) ?> </td>
<td> <?= format_N($this->nettoyer($avenant['taxe'])) ?> </td>
<td> <?= format_N($this->nettoyer($avenant['fraisCarte'])) ?> </td>
<td> <?= format_N($this->nettoyer($avenant['primeTtcInitial'])) ?> </td>
<td> <?= format_N($this->nettoyer($avenant['primeNetteStat'])) ?> </td>
</tr>
<tr>
<td colspan="3"> <button type="button" style='font-size:10pt;' class="form-control btn btn-info" onclick="javascript:pop_afficher_selection_retrait();" > <?= _("Sélection des assurées à retirer...") ?> </button> </td>
<td colspan="3"> <input style='font-size:10pt;' class = "form-control btn btn-danger" type="button" value="<?= _("Récapituler") ?>" onClick="javascript:recapituler_retrait();"> </td>
<td colspan="3"> <input style='font-size:10pt;' class = "form-control btn btn-primary" type="button" value="<?= _("Enregistrer") ?>" onClick="javascript:enregistrer_retrait();"> </td>
</tr>
</tbody>
</table>
<?php if ($nbFactAntiDate>1): ?>
<div class="alert alert-danger">
<H4> <?= "Attention, cette police possède ". $nbFactAntiDate . " factures plus anciennes que la date de retrait!" ?></H4>
</div>
<?php if ($nbFactAntiDate > 1): ?>
<div class="alert alert-custom-danger d-flex align-items-center animate__animated animate__headShake" role="alert">
<i class="fas fa-exclamation-triangle fa-2x me-3"></i>
<div>
<h5 class="alert-heading mb-1 fw-bold"><?= _("Alerte de cohérence") ?></h5>
<p class="mb-0"><?= sprintf(_("Attention, cette police possède %d factures plus anciennes que la date de retrait !"), $nbFactAntiDate) ?></p>
</div>
</div>
<?php endif; ?>
<legend> <?= _("DETAIL DES ASSURES A RETIRER") ?> </legend>
<div class="d-flex align-items-center justify-content-between mb-3 mt-5">
<h5 class="fw-bold text-uppercase mb-0 text-secondary border-start border-4 border-info ps-3">
<?= _("Détail des assurés à retirer") ?>
</h5>
<input type="hidden" id="nbAliment" name="nbAliment" value="<?= $this->nettoyer($avenant['nbAliment']) ?>">
<span class="badge bg-info shadow-sm px-3 py-2"><?= _("Effectif") ?> : <?= $this->nettoyer($avenant['nbAliment']) ?></span>
</div>
<INPUT class="sr-only" id="nbAliment" NAME="nbAliment" TYPE="text" value="<?= $this->nettoyer($avenant['nbAliment']) ?>" >
<div class="card shadow-sm border-0">
<div class="table-responsive shadow-sm rounded border">
<table class="table table-hover align-middle mb-0" style="font-size: 8pt; min-width: 1100px;">
<thead class="table-dark text-uppercase" style="font-size: 7pt;">
<tr class="text-center">
<th class="ps-2">Cat</th>
<th class="text-start" style="min-width: 150px;"><?= _("Nom & Prénoms") ?></th>
<th>Type</th>
<th></th>
<th>Entrée</th>
<th>Durée</th>
<th>Ratio</th>
<th>S/P</th>
<th class="bg-secondary text-white"><?= _("Non Acquise") ?></th>
<th class="bg-info text-dark"><?= _("P. Nette Rist") ?></th>
<th class="bg-info text-dark"><?= $taxLabel ?></th>
<th class="bg-primary text-white"><?= _("TTC Rist") ?></th>
<th class="pe-2">Action</th>
</tr>
</thead>
<tbody>
<?php foreach ($beneficiaires_sel as $b): ?>
<tr class="text-center">
<td class="fw-bold text-muted"><?= $this->nettoyer($b['codeProduit']) ?></td>
<td class="text-start fw-bold"><?= $this->nettoyer($b['nomBeneficiaire']) ?></td>
<td><span class="badge bg-light text-dark border"><?= $this->nettoyer($b['codeLienParente']) ?></span></td>
<td class="text-muted small"><?= $this->nettoyer($b['numeroBeneficiaire']) ?></td>
<td class="text-nowrap"><?= dateLang($this->nettoyer($b['dateEntree']), $_SESSION['lang']) ?></td>
<td><?= $this->nettoyer($b['duree']) ?></td>
<td><?= $this->nettoyer($b['ratioNonAcquise']) ?></td>
<td><?= $this->nettoyer($b['rapportsp']) ?>%</td>
<td class="fw-bold text-danger text-nowrap"><?= format_N($this->nettoyer($b['primeNonAcquise'])) ?></td>
<td class="text-nowrap"><?= format_N($this->nettoyer($b['primeHt'])) ?></td>
<td class="text-nowrap"><?= format_N($this->nettoyer($b['taxe'])) ?></td>
<td class="fw-bold text-primary text-nowrap"><?= format_N($this->nettoyer($b['primeTtc'])) ?></td>
<td>
<div class="form-check form-switch d-inline-block">
<input class="form-check-input" type="checkbox" style="cursor:pointer"
<?= ($b['choix'] == '1') ? 'checked' : '' ?>
onclick="beneficiaire_a_retirer(this.checked ? '1' : '0', <?= $b['idBeneficiaire_temp'] ?>);">
</div>
</td>
</tr>
<?php endforeach; ?>
</tbody>
<tfoot class="table-light fw-bold">
<tr class="text-center">
<td colspan="8" class="text-end pe-3 text-uppercase small"><?= _("Totaux") ?></td>
<td class="text-danger"><?= format_N($this->nettoyer($avenant['primeNonAcquise'])) ?></td>
<td><?= format_N($this->nettoyer($avenant['primeHt'])) ?></td>
<td><?= format_N($this->nettoyer($avenant['taxe'])) ?></td>
<td class="text-primary fs-6"><?= format_N($this->nettoyer($avenant['primeTtc'])) ?></td>
<td></td>
</tr>
</tfoot>
</table>
</div>
</div>
<table class="table table-striped table-bordered table-hover table-condensed table-responsive" style="font-size:8pt;">
<thead>
<tr>
<th> <?= _("Cat") ?> </th>
<th> <?= _("Nom") ?> </th>
<th style='text-align:center'> Type </th>
<th style='text-align:center'> <?= _("No") ?> </th>
<th style='text-align:center'> <?= _("Entrée") ?> </th>
<th style='text-align:center'> <?= _("Durée") ?> </th>
<th style='text-align:center'> <?= _("Dur Rist") ?> </th>
<th style='text-align:center'> <?= _("Ratio") ?> </th>
<th style='text-align:center'> <?= _("S/P") ?> </th>
<th style='text-align:center'> <?= _("P Nette An") ?> </th>
<th style='text-align:center'> <?= _("Ttc An") ?> </th>
<th style='text-align:center'> <?= _("P Non Acquise") ?> </th>
<th style='text-align:center'> <?= _("P Nette Rist") ?> </th>
<th style='text-align:center'> <?= (isset($_SESSION['composanteprime']['Taxes'])) ? _($_SESSION['composanteprime']['Taxes']) : _("Taxes") ?> </th>
<th style='text-align:center'> <?= _("Ttc Rist") ?> </th>
<th width="5%" style='text-align:center'> <?= _("Choix") ?> </th>
</tr>
</thead>
<tfoot>
<tr>
<td colspan="2" style='text-align:center'> <?= _("Nbre assurés à retirer") . " : " . $this->nettoyer($avenant['nbAliment']) ?> </td>
<td colspan="9" style='text-align:center'> Total </td>
<td align='center'><?= format_N($this->nettoyer($avenant['primeNonAcquise'])) ?></td>
<td align='center'><?= format_N($this->nettoyer($avenant['primeHt'])) ?></td>
<td align='center'><?= format_N($this->nettoyer($avenant['taxe'])) ?></td>
<td align='center'><?= format_N($this->nettoyer($avenant['primeTtc'])) ?></td>
<td> </td>
</tr>
</tfoot>
<tbody>
<?php foreach ($beneficiaires_sel as $beneficiaire_sel):?>
<tr valign="top">
<td align='center'><?= $this->nettoyer($beneficiaire_sel['codeProduit']) ?></td>
<td><?= $this->nettoyer($beneficiaire_sel['nomBeneficiaire']) ?></td>
<td align='center'><?= $this->nettoyer($beneficiaire_sel['codeLienParente']) ?></td>
<td align='center'><?= $this->nettoyer($beneficiaire_sel['numeroBeneficiaire']) ?></td>
<td align='center'><?= dateLang($this->nettoyer($beneficiaire_sel['dateEntree']), $_SESSION['lang']) ?></td>
<td align='center'><?= $this->nettoyer($beneficiaire_sel['duree']) ?></td>
<td align='center'><?= $this->nettoyer($beneficiaire_sel['duree_non_acquise']) ?></td>
<td align='center'><?= $this->nettoyer($beneficiaire_sel['ratioNonAcquise']) ?></td>
<td align='center'><?= $this->nettoyer($beneficiaire_sel['rapportsp']) ?></td>
<td align='center'><?= format_N($this->nettoyer($beneficiaire_sel['primeNetteStat_an'])) ?></td>
<td align='center'><?= format_N($this->nettoyer($beneficiaire_sel['primeTtc_an'])) ?></td>
<td align='center'><?= format_N($this->nettoyer($beneficiaire_sel['primeNonAcquise'])) ?></td>
<td align='center'><?= format_N($this->nettoyer($beneficiaire_sel['primeHt'])) ?></td>
<td align='center'><?= format_N($this->nettoyer($beneficiaire_sel['taxe'])) ?></td>
<td align='center'><?= format_N($this->nettoyer($beneficiaire_sel['primeTtc'])) ?></td>
<?php if($beneficiaire_sel['choix']=='1'): ?>
<td align='center'> <input type="checkbox" checked value="<?= $beneficiaire_sel['choix'] ?>" onClick="javascript:if(this.value=='1'){this.value='0'}else{this.value='1'};beneficiaire_a_retirer(this.value, <?= $beneficiaire_sel['idBeneficiaire_temp'] ?>);"></td>
<?php else: ?>
<td align='center'> <input type="checkbox" value="<?= $beneficiaire_sel['choix'] ?>" onClick="javascript:if(this.value=='1'){this.value='0'}else{this.value='1'};beneficiaire_a_retirer(this.value, <?= $beneficiaire_sel['idBeneficiaire_temp'] ?>);"></td>
<?php endif; ?>
</tr>
<?php endforeach; ?>
</tbody>
</table>
<style>
/* Design Alertes */
.alert-custom-danger { background-color: #fff5f5; border-left: 5px solid #dc3545; color: #842029; box-shadow: 0 2px 10px rgba(220, 53, 69, 0.1); }
/* Boutons et Inputs */
.custom-switch { cursor: pointer; width: 2.5em !important; height: 1.25em !important; }
.custom-switch:checked { background-color: #0d6efd; border-color: #0d6efd; }
/* Table Styling */
.table-hover tbody tr:hover { background-color: rgba(13, 110, 253, 0.05); }
.shadow-sm { box-shadow: 0 .125rem .25rem rgba(0,0,0,.075)!important; }
/* Badge contextuel */
.bg-light-subtle { background-color: #f8f9fa; }
</style>

View File

@ -0,0 +1,56 @@
<div class="table-responsive">
<table class="table table-striped table-bordered table-hover align-middle shadow-sm tabspeciale compact" style="font-size:8.5pt; width:100%;">
<thead class="text-nowrap">
<tr>
<th class="text-center"><?= _("Réclamation") ?></th>
<th class="text-center"><?= _("Système") ?></th>
<th class="text-center"><?= _("ID Bord") ?></th>
<th class="text-center"><?= _("Nb Dos") ?></th>
<th class="text-center"><?= _("Nb Fact") ?></th>
<th class="text-center"><?= _("Réclamé") ?></th>
<th class="text-center"><?= _("Rejet") ?></th>
<th class="text-center"><?= _("Exclu") ?></th>
<th class="text-center"><?= _("Base") ?></th>
<th class="text-center"><?= _("T M") ?></th>
<th class="text-center fw-bold text-info"><?= _("A Remb") ?></th>
<th class="text-center"><?= _("Dépass") ?></th>
<th class="text-center"><?= _("Retenu") ?></th>
<th class="text-center"><?= _("Règlement") ?></th>
</tr>
</thead>
<tbody>
<?php foreach ($bordereauxrbcl as $bordereaurbcl):
$idDossierClassiquePolice = $this->nettoyer($bordereaurbcl['idDossierClassiquePolice']);
?>
<tr class="text-nowrap text-center">
<td><?= dateLang($this->nettoyer($bordereaurbcl['dateReclamation']), $_SESSION['lang']) ?></td>
<td class="text-muted small"><?= dateheureLang($this->nettoyer($bordereaurbcl['dateSysteme']), $_SESSION['lang']) ?></td>
<td>
<button type="button" class="btn btn-sm btn-primary rounded-pill px-3 fw-bold shadow-sm"
onclick="consulter_un_bordereau_rbcl('<?= $idDossierClassiquePolice ?>');">
<i class="fas fa-search me-1"></i> <?= $idDossierClassiquePolice ?>
</button>
</td>
<td><?= format_N($this->nettoyer($bordereaurbcl['nbDossier'])) ?></td>
<td><?= format_N($this->nettoyer($bordereaurbcl['ndFacture'])) ?></td>
<td class="fw-bold"><?= format_N($this->nettoyer($bordereaurbcl['fraisReel'])) ?></td>
<td class="text-danger fw-bold"><?= format_N($this->nettoyer($bordereaurbcl['montantRejete'])) ?></td>
<td class="text-danger"><?= format_N($this->nettoyer($bordereaurbcl['exclusion'])) ?></td>
<td><?= format_N($this->nettoyer($bordereaurbcl['baseRemboursement'])) ?></td>
<td class="text-danger"><?= format_N($this->nettoyer($bordereaurbcl['montantTm'])) ?></td>
<td class="text-primary fw-bold fs-6"><?= format_N($this->nettoyer($bordereaurbcl['montantArembourser'])) ?></td>
<td class="text-danger small"><?= format_N($this->nettoyer($bordereaurbcl['depassementLimite'])) ?></td>
<td class="fw-bold"><?= format_N($this->nettoyer($bordereaurbcl['fraisRetenu'])) ?></td>
<td><span class="badge bg-light text-dark border"><?= dateLang($this->nettoyer($bordereaurbcl['dateReglement']), $_SESSION['lang']) ?></span></td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
</div>

View File

@ -0,0 +1,112 @@
<input id="nbLigne" name="nbLigne" class="visually-hidden" type="text" value="<?= count($dossiers) ?>">
<?php if($filtre == "2"): ?>
<div class="table-responsive shadow-sm rounded border bg-white p-2">
<table class="table table-hover table-striped align-middle mb-0 tabspeciale compact" style="font-size:8.5pt; width:100%;">
<thead class="text-nowrap">
<tr>
<th class="text-center"><?= _("Réclamation") ?></th>
<th class="text-center"><?= _("Système") ?></th>
<th class="text-center"><?= _("ID Bord") ?></th>
<th class="text-center"><?= _("Nb Dos") ?></th>
<th class="text-center"><?= _("Nb Fact") ?></th>
<th class="text-center"><?= _("Réclamé") ?></th>
<th class="text-center text-warning"><?= _("Rejet") ?></th>
<th class="text-center text-warning"><?= _("Exclu") ?></th>
<th class="text-center"><?= _("Base") ?></th>
<th class="text-center text-warning"><?= _("T M") ?></th>
<th class="text-center text-info"><?= _("A Remb") ?></th>
<th class="text-center text-warning"><?= _("Dépass") ?></th>
<th class="text-center"><?= _("Retenu") ?></th>
<th class="text-center"><?= _("Règlement") ?></th>
</tr>
</thead>
<tbody>
<?php foreach ($dossiers as $dossier):
$idBord = $this->nettoyer($dossier['idDossierClassiquePolice']);
?>
<tr class="text-nowrap text-center">
<td><?= dateLang($this->nettoyer($dossier['dateReclamation']), $_SESSION['lang']) ?></td>
<td class="small text-muted"><?= dateheureLang($this->nettoyer($dossier['dateSysteme'], $_SESSION['lang'])) ?></td>
<td>
<button type="button" class="btn btn-sm btn-primary rounded-pill px-3 shadow-sm"
onclick="consulter_un_bordereau_rbcl('<?= $idBord ?>');">
<i class="fas fa-file-invoice me-1"></i> <?= $idBord ?>
</button>
</td>
<td><?= format_N($this->nettoyer($dossier['nbDossier'])) ?></td>
<td><?= format_N($this->nettoyer($dossier['ndFacture'])) ?></td>
<td class="fw-bold"><?= format_N($this->nettoyer($dossier['fraisReel'])) ?></td>
<td class="text-danger fw-bold"><?= format_N($this->nettoyer($dossier['montantRejete'])) ?></td>
<td class="text-danger"><?= format_N($this->nettoyer($dossier['exclusion'])) ?></td>
<td><?= format_N($this->nettoyer($dossier['baseRemboursement'])) ?></td>
<td class="text-danger"><?= format_N($this->nettoyer($dossier['montantTm'])) ?></td>
<td class="text-primary fw-bold fs-6"><?= format_N($this->nettoyer($dossier['montantArembourser'])) ?></td>
<td class="text-danger small"><?= format_N($this->nettoyer($dossier['depassementLimite'])) ?></td>
<td class="fw-bold"><?= format_N($this->nettoyer($dossier['fraisRetenu'])) ?></td>
<td><span class="badge bg-light text-dark border"><?= dateLang($this->nettoyer($dossier['dateReglement']), $_SESSION['lang']) ?></span></td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
</div>
<?php else: ?>
<div class="table-responsive shadow-sm rounded border bg-white p-2">
<table class="table table-hover table-striped align-middle mb-0 tabspeciale compact" style="font-size:8.5pt; width:100%;">
<thead class="text-nowrap">
<tr>
<th>Date</th>
<th><?= _("Saisie") ?></th>
<th><?= _("Prestataire") ?></th>
<th><?= _("ID Dossier") ?></th>
<th><?= _("Nb Fact") ?></th>
<th class="text-center"><?= _("Réclamé") ?></th>
<th class="text-center text-warning"><?= _("Rejet") ?></th>
<th class="text-center"><?= _("A Remb") ?></th>
<th class="text-center text-warning"><?= _("Dépass") ?></th>
<th class="text-center"><?= _("Retenu") ?></th>
<th class="text-center"><?= _("Règlement") ?></th>
<th class="text-center"><?= _("ID Bord") ?></th>
</tr>
</thead>
<tbody>
<?php foreach ($dossiers as $dossier):
$idDoss = $this->nettoyer($dossier['idDossierClassique']);
$idBord = $this->nettoyer($dossier['idDossierClassiquePolice']);
$hasBord = ($idBord > "0");
?>
<tr class="text-nowrap <?= $hasBord ? 'table-warning-subtle' : '' ?>">
<td class="text-center"><?= dateLang($this->nettoyer($dossier['dateConsultation']), $_SESSION['lang']) ?></td>
<td class="text-center small text-muted"><?= dateheureLang($this->nettoyer($dossier['dateSysteme']), $_SESSION['lang']) ?></td>
<td class="small"><?= $this->nettoyer($dossier['prestataireConsultation']) ?></td>
<td class="text-center">
<?php if(!$hasBord): ?>
<button type="button" class="btn btn-xs btn-outline-primary fw-bold" onclick="consulter_dossier_classique('<?= $idDoss ?>');">
<?= $idDoss ?>
</button>
<?php else: ?>
<span class="fw-bold text-muted"><?= $idDoss ?></span>
<?php endif; ?>
</td>
<td class="text-center"><?= format_N($this->nettoyer($dossier['ndFacture'])) ?></td>
<td class="text-center fw-bold"><?= format_N($this->nettoyer($dossier['fraisReel'])) ?></td>
<td class="text-center text-danger"><?= format_N($this->nettoyer($dossier['montantRejete'])) ?></td>
<td class="text-center text-primary fw-bold"><?= format_N($this->nettoyer($dossier['montantArembourser'])) ?></td>
<td class="text-center text-danger small"><?= format_N($this->nettoyer($dossier['depassementLimite'])) ?></td>
<td class="text-center fw-bold"><?= format_N($this->nettoyer($dossier['fraisRetenu'])) ?></td>
<td class="text-center small"><?= dateLang($this->nettoyer($dossier['dateReglement']), $_SESSION['lang']) ?></td>
<td class="text-center">
<?php if($hasBord): ?>
<button type="button" class="btn btn-xs btn-primary rounded-pill" onclick="consulter_un_bordereau_rbcl('<?= $idBord ?>');">
<?= $idBord ?>
</button>
<?php else: ?>
<span class="text-muted small">--</span>
<?php endif; ?>
</td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
</div>
<?php endif; ?>

View File

@ -39,7 +39,7 @@
<input type="hidden" id="datejour_C" name="datejour_C" value="<?= $this->datejour ?>">
<input type="hidden" id="heuresysteme_C" name="heuresysteme_C" value="<?= $this->heuresysteme ?>">
<input type="hidden" id="datejourfr_C" name="datejourfr_C" class="datepicker" value="<?= $this->datejourfr ?>">
<input type="hidden" id="datejourfr_C" name="datejourfr_C" class="datepicker" value="<?= dateLang($this->datejour, $_SESSION['lang']); ?>">
<input type="hidden" id="heuresystemefr_C" name="heuresystemefr_C" class="datepicker" value="<?= $this->heuresystemefr ?>">
<input type="hidden" id="dUneSemaineAvant_C" name="dUneSemaineAvant_C" value="<?= $_SESSION['dUneSemaineAvant_C'] ?? '' ?>">

View File

@ -0,0 +1,5 @@
<div id="div_remplacement_adherent">
<div class="alert alert-danger" style="height:30px; padding:5px;" >
<H4> <?= _("OPERATION TERMINEE AVEC SUCCES") ?> </H4>
</div>
</div>

View File

@ -0,0 +1,3 @@
<div id="div_remplacement_adherent">
NOTHING
</div>

View File

@ -0,0 +1,159 @@
<div id="div_remplacement_adherent">
<div class="card border-primary shadow-sm mb-4">
<div class="card-body py-2 bg-light">
<div class="row g-2 align-items-center">
<div class="col-md-3">
<label class="small text-muted d-block"><?= _("Date Sortie") ?></label>
<div class="fw-bold"><i class="fas fa-sign-out-alt text-danger me-2"></i><?= dateLang($this->nettoyer($remplacementadherent_temp['dateSortie'])) ?></div>
</div>
<div class="col-md-3">
<label class="small text-muted d-block"><?= _("Date Remplacement") ?></label>
<div class="fw-bold"><i class="fas fa-exchange-alt text-primary me-2"></i><?= dateLang($this->nettoyer($remplacementadherent_temp['dateRemplacement'])) ?></div>
</div>
<div class="col-md-6 border-start ps-3">
<label class="small text-muted d-block"><?= _("Motif renseigné") ?></label>
<div class="text-truncate italic">" <?= $this->nettoyer($remplacementadherent_temp['motif']) ?> "</div>
</div>
</div>
</div>
</div>
<div class="card shadow-sm mb-4">
<div class="card-header bg-dark text-white py-2">
<h6 class="mb-0 small"><i class="fas fa-list-check me-2"></i><?= _("Garanties et soldes à transmettre") ?></h6>
</div>
<div class="table-responsive">
<table class="table table-hover table-sm mb-0" style="font-size:9.5pt;">
<thead class="table-light">
<tr>
<th><?= _("Désignation Garantie") ?></th>
<th class="text-center"><?= _("Limite") ?></th>
<th class="text-center"><?= _("Consommé") ?></th>
<th class="text-center"><?= _("Solde Transférable") ?></th>
<th class="text-center"><?= _("Par tête") ?></th>
</tr>
</thead>
<tbody>
<?php foreach ($garantieadherents as $garantieadherent):
$champApplication = $this->nettoyer($garantieadherent['champApplication']);
?>
<tr>
<td class="fw-bold"><?= $this->nettoyer($garantieadherent['garantie'])?></td>
<td class="text-center"><?= format_N($this->nettoyer($garantieadherent['plafond'])) ?></td>
<?php if($champApplication == '1'): ?>
<td colspan="2" class="text-center text-muted small italic"><?= _("Application globale") ?></td>
<td class="text-center"><i class="fas fa-check-circle text-success"></i></td>
<?php else: ?>
<td class="text-center text-danger"><?= format_N($this->nettoyer($garantieadherent['consommation'])) ?></td>
<td class="text-center fw-bold text-primary"><?= format_N($this->nettoyer($garantieadherent['solde'])) ?></td>
<td class="text-center"><i class="far fa-circle text-muted"></i></td>
<?php endif; ?>
</tr>
<?php endforeach; ?>
</tbody>
</table>
</div>
</div>
<div class="card border-success shadow-sm">
<div class="card-header bg-success text-white py-2 text-center text-uppercase fw-bold">
<i class="fas fa-user-plus me-2"></i><?= _("Identification de la Famille Entrante") ?>
</div>
<div class="card-body p-4">
<div class="row g-3 mb-4">
<div class="col-md-6">
<label class="form-label small fw-bold"><?= _("Nom") ?></label>
<input class="form-control text-uppercase border-success" type="text" id="nom" name="nom" required>
</div>
<div class="col-md-6">
<label class="form-label small fw-bold"><?= _("Prénoms") ?></label>
<input class="form-control border-success" type="text" id="prenoms" name="prenoms" required>
</div>
<div class="col-md-3">
<label class="form-label small text-muted"><?= _("Nature Pièce") ?></label>
<select class="form-select" id="codeNaturePiece" name="codeNaturePiece">
<?php liste_options($naturepiece,""); ?>
</select>
</div>
<div class="col-md-3">
<label class="form-label small text-muted"><?= _("N° Pièce") ?></label>
<input class="form-control" type="text" id="numeroPiece" name="numeroPiece">
</div>
<div class="col-md-2">
<label class="form-label small text-muted"><?= _("Sexe") ?></label>
<select class="form-select" id="sexe" name="sexe">
<?php liste_options($sexe,""); ?>
</select>
</div>
<div class="col-md-4">
<label class="form-label small fw-bold"><?= _("Date Naissance") ?></label>
<div class="input-group">
<input class="form-control datepicker" type="text" id="dateNaissance" name="dateNaissance" onchange="controle_age($('#dateNaissance').datepicker('getDate'), 'A')">
<span class="input-group-text bg-light text-danger fw-bold" id="age_badge">Age: 0</span>
</div>
</div>
</div>
<hr>
<div class="row g-3 mb-4">
<div class="col-md-3">
<label class="form-label small text-muted"><?= _("Groupe Sanguin") ?></label>
<select class="form-select" id="codeGroupeSanguin" name="codeGroupeSanguin">
<?php liste_options($groupesanguin,""); ?>
</select>
</div>
<div class="col-md-3">
<label class="form-label small text-muted"><?= _("Situation Familiale") ?></label>
<select class="form-select" id="codeSituationFamille" name="codeSituationFamille">
<?php liste_options($situationfamille,""); ?>
</select>
</div>
<div class="col-md-2">
<label class="form-label small text-muted"><?= _("Nb Enfants") ?></label>
<input class="form-control" type="number" id="nombreEnfants" name="nombreEnfants" min="0" value="0">
</div>
<div class="col-md-4">
<label class="form-label small text-muted"><?= _("Pays") ?></label>
<select class="form-select" id="codePays" name="codePays">
<?php liste_options($pays, $_SESSION['codePaysSociete']); ?>
</select>
</div>
<div class="col-md-6">
<label class="form-label small text-muted"><?= _("Adresse Géographique") ?></label>
<input class="form-control form-control-sm" type="text" id="adresseGeo" name="adresseGeo">
</div>
<div class="col-md-6">
<label class="form-label small text-muted"><?= _("Adresse Postale") ?></label>
<input class="form-control form-control-sm" type="text" id="adressePostale" name="adressePostale">
</div>
<div class="col-md-4">
<label class="form-label small text-muted"><?= _("Téléphone Portable") ?></label>
<input class="form-control" type="tel" id="telephonePortable" name="telephonePortable" value="<?= $_SESSION['indicatifTelephone'] ?>">
</div>
<div class="col-md-4">
<label class="form-label small text-muted"><?= _("E-mail") ?></label>
<input class="form-control" type="email" id="email" name="email" placeholder="exemple@mail.com">
</div>
<div class="col-md-4">
<label class="form-label small text-muted"><?= _("Frais de Carte") ?></label>
<div class="input-group">
<input class="form-control border-primary fw-bold" type="text" id="fraisCarte" name="fraisCarte" value="<?=$adherentremplacanttemp['fraisCarte']?>">
<span class="input-group-text">CFA</span>
</div>
</div>
</div>
<div class="row mt-4">
<div class="col-12">
<button type="button" class="btn btn-success w-100 py-3 fw-bold shadow-sm" onclick="javascript:enregistrer_remplacement_adherent();">
<i class="fas fa-save me-2"></i> <?= _("VALIDER ET ENREGISTRER LE REMPLACEMENT") ?>
</button>
</div>
</div>
</div>
</div>
</div>

View File

@ -0,0 +1,85 @@
<?php
$idDemande = $this->nettoyer($demande['id']);
$numeroDemandeRemboursement = $this->nettoyer($demande['numeroDemandeRemboursement']);
$codeEtatDemandeRemboursement = $this->nettoyer($demande['codeEtatDemandeRemboursement']);
$lien = $this->nettoyer($demande['lien']);
$numeroBeneficiaire = $this->nettoyer($demande['numeroBeneficiaire']);
$observation = $this->nettoyer($demande['observation']);
$codeStatutPaiement = $this->nettoyer($demande['codeStatutPaiement']);
$beneficiaire = $this->nettoyer($demande['beneficiaire']);
$adherent = $this->nettoyer($demande['adherent']);
$numeroAdherent = $this->nettoyer($demande['numeroAdherent']);
$idPolice = $this->nettoyer($demande['idPolice']);
$numeroPolice = $this->nettoyer($demande['numeroPolice']);
if (est_anglophone()){
$lien = $this->nettoyer($demande['lienEng']);
}
?>
<div class="modal-dialog modal-lg" role="document">
<div class="modal-content shadow-lg border-0">
<div class="modal-header bg-light border-bottom">
<h5 class="modal-title fw-bold text-primary">
<i class="fas fa-check-circle me-2"></i><?= _('Valider une demande') ?>
</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body p-4">
<div id="div_motif">
<div class="mb-4">
<label class="form-label small fw-bold text-muted text-uppercase"><?= _("Référence de la demande") ?></label>
<div class="input-group shadow-sm">
<span class="input-group-text bg-white"><i class="fas fa-hashtag text-primary"></i></span>
<input class="form-control fw-bold bg-white" type="text" value="<?= $numeroDemandeRemboursement; ?>" readonly>
</div>
</div>
<div class="row g-3 mb-4">
<div class="col-md-6">
<label class="form-label small fw-bold text-muted text-uppercase"><?= _("Titulaire (Adhérent)") ?></label>
<div class="input-group">
<span class="input-group-text bg-light"><i class="fas fa-user-shield"></i></span>
<input class="form-control small" type="text" value="<?= $adherent." (".$numeroAdherent.")"; ?>" readonly>
</div>
</div>
<div class="col-md-6">
<label class="form-label small fw-bold text-muted text-uppercase"><?= _("Patient (Bénéficiaire)") ?></label>
<div class="input-group">
<span class="input-group-text bg-light"><i class="fas fa-user"></i></span>
<input class="form-control small" type="text" value="<?= $beneficiaire." (".$numeroBeneficiaire.")"; ?>" readonly>
</div>
</div>
</div>
<hr class="text-muted opacity-25">
<div class="row g-3">
<div class="col-12">
<label class="form-label fw-bold"><?= _("Décision de validation") ?> <span class="text-danger">*</span></label>
<select class="form-select border-primary" id="codeStatutPaiementAjax" name="codeStatutPaiementAjax">
<?php liste_options($reponsedemande, $codeStatutPaiement); ?>
</select>
</div>
<div class="col-12">
<label class="form-label fw-bold"><?= _("Motif ou Observation") ?></label>
<textarea class="form-control"
placeholder="<?= _("Saisissez ici le motif (obligatoire en cas de refus)..."); ?>"
name="motifRejetRh"
id="motifRejetRh"
rows="4"></textarea>
</div>
</div>
</div>
</div>
<div class="modal-footer bg-light">
<button type="button" class="btn btn-outline-secondary px-4" data-bs-dismiss="modal"><?= _("Annuler") ?></button>
<button type="button" class="btn btn-primary px-5 shadow" onClick="javascript:enregistrer_validation_rd(<?= $idDemande ?>);">
<i class="fas fa-save me-2"></i><?= _("Enregistrer la décision") ?>
</button>
</div>
</div>
</div>

View File

@ -1,51 +1,80 @@
<table class="table table-striped table-bordered table-hover table-condensed table-responsive" style="font-size:8pt;">
<thead>
<tr>
<th> <?= _("Cat") ?> </th>
<th> <?= _("Nom") ?> </th>
<th style='text-align:center'> Type </th>
<th style='text-align:center'> <?= _("No") ?> </th>
<th style='text-align:center'> <?= _("Entrée") ?> </th>
<th style='text-align:center'> <?= _("Durée") ?> </th>
<th style='text-align:center'> <?= _("Dur Rist") ?> </th>
<th style='text-align:center'> <?= _("Ratio") ?> </th>
<th style='text-align:center'> <?= _("S/P") ?> </th>
<th style='text-align:center'> <?= _("P Nette An") ?> </th>
<th style='text-align:center'> <?= _("Ttc An") ?> </th>
<th style='text-align:center'> <?= _("P Non Acquise") ?> </th>
<th style='text-align:center'> <?= _("P Nette Rist") ?> </th>
<th style='text-align:center'> <?= (isset($_SESSION['composanteprime']['Taxes'])) ? _($_SESSION['composanteprime']['Taxes']) : _("Taxes") ?> </th>
<th style='text-align:center'> <?= _("Ttc Rist") ?> </th>
<th width="5%" style='text-align:center'> <?= _("Choix") ?> </th>
</tr>
</thead>
<?php
$taxLabel = (isset($_SESSION['composanteprime']['Taxes'])) ? _($_SESSION['composanteprime']['Taxes']) : _("Taxes");
?>
<tbody>
<?php foreach ($beneficiaires as $beneficiaire):?>
<tr valign="top">
<td align='center'><?= $this->nettoyer($beneficiaire['codeProduit']) ?></td>
<td><?= $this->nettoyer($beneficiaire['nomBeneficiaire']) ?></td>
<td align='center'><?= $this->nettoyer($beneficiaire['codeLienParente']) ?></td>
<td align='center'><?= $this->nettoyer($beneficiaire['numeroBeneficiaire']) ?></td>
<td align='center'><?= dateLang($this->nettoyer($beneficiaire['dateEntree']), $_SESSION['lang']) ?></td>
<td align='center'><?= $this->nettoyer($beneficiaire['duree']) ?></td>
<td align='center'><?= $this->nettoyer($beneficiaire['duree_non_acquise']) ?></td>
<td align='center'><?= $this->nettoyer($beneficiaire['ratioNonAcquise']) ?></td>
<td align='center'><?= $this->nettoyer($beneficiaire['rapportsp']) ?></td>
<td align='center'><?= format_N($this->nettoyer($beneficiaire['primeNetteStat_an'])) ?></td>
<td align='center'><?= format_N($this->nettoyer($beneficiaire['primeTtc_an'])) ?></td>
<td align='center'><?= format_N($this->nettoyer($beneficiaire['primeNonAcquise'])) ?></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['primeTtc'])) ?></td>
<?php if($beneficiaire['choix']=='1'): ?>
<td align='center'> <input type="checkbox" checked value="<?= $beneficiaire['choix'] ?>" onClick="javascript:if(this.value=='1'){this.value='0'}else{this.value='1'};beneficiaire_a_retirer(this.value, <?= $beneficiaire['idBeneficiaire_temp'] ?>);"></td>
<?php else: ?>
<td align='center'> <input type="checkbox" value="<?= $beneficiaire['choix'] ?>" onClick="javascript:if(this.value=='1'){this.value='0'}else{this.value='1'};beneficiaire_a_retirer(this.value, <?= $beneficiaire['idBeneficiaire_temp'] ?>);"></td>
<?php endif; ?>
</tr>
<?php endforeach; ?>
</tbody>
</table>
<div class="table-responsive">
<table class="table table-striped table-bordered table-hover align-middle mb-0 tabspeciale compact" style="font-size:8pt; width:100%;">
<thead class="text-nowrap">
<tr>
<th class="text-center small"><?= _("Cat") ?></th>
<th class="text-start"><?= _("Nom") ?></th>
<th class="text-center">Type</th>
<th class="text-center">No</th>
<th class="text-center"><?= _("Entrée") ?></th>
<th class="text-center"><?= _("Durée") ?></th>
<th class="text-center"><?= _("Durée Rist") ?></th>
<th class="text-center"><?= _("Ratio") ?></th>
<th class="text-center"><?= _("S/P") ?></th>
<th class="text-center"><?= _("P Nette An") ?></th>
<th class="text-center"><?= _("Ttc An") ?></th>
<th class="text-center fw-bold text-danger"><?= _("P Non Acquise") ?></th>
<th class="text-center"><?= _("P Nette Rist") ?></th>
<th class="text-center"><?= $taxLabel ?></th>
<th class="text-center fw-bold text-primary"><?= _("Ttc Rist") ?></th>
<th class="text-center" width="8%">
<button id="toggleAll" class="btn btn-sm btn-outline-primary fw-bold">
<?= _("Tout") ?>
</button>
</th>
</tr>
</thead>
<tbody>
<?php foreach ($beneficiaires as $beneficiaire): ?>
<tr class="text-nowrap">
<td class="text-center small"><?= $this->nettoyer($beneficiaire['codeProduit']) ?></td>
<td class="text-start fw-bold"><?= $this->nettoyer($beneficiaire['nomBeneficiaire']) ?></td>
<td class="text-center small"><?= $this->nettoyer($beneficiaire['codeLienParente']) ?></td>
<td class="text-center text-muted"><?= $this->nettoyer($beneficiaire['numeroBeneficiaire']) ?></td>
<td class="text-center"><?= dateLang($this->nettoyer($beneficiaire['dateEntree']), $_SESSION['lang']) ?></td>
<td class="text-center"><?= $this->nettoyer($beneficiaire['duree']) ?></td>
<td class="text-center"><?= $this->nettoyer($beneficiaire['duree_non_acquise']) ?></td>
<td class="text-center"><?= $this->nettoyer($beneficiaire['ratioNonAcquise']) ?></td>
<td class="text-center"><?= $this->nettoyer($beneficiaire['rapportsp']) ?>%</td>
<td class="text-center"><?= format_N($this->nettoyer($beneficiaire['primeNetteStat_an'])) ?></td>
<td class="text-center"><?= format_N($this->nettoyer($beneficiaire['primeTtc_an'])) ?></td>
<td class="text-center fw-bold text-danger"><?= format_N($this->nettoyer($beneficiaire['primeNonAcquise'])) ?></td>
<td class="text-center"><?= format_N($this->nettoyer($beneficiaire['primeHt'])) ?></td>
<td class="text-center"><?= format_N($this->nettoyer($beneficiaire['taxe'])) ?></td>
<td class="text-center fw-bold text-primary"><?= format_N($this->nettoyer($beneficiaire['primeTtc'])) ?></td>
<td class="text-center">
<div class="form-check form-switch d-inline-block">
<input class="form-check-input beneficiaire-check" type="checkbox"
value="<?= ($beneficiaire['choix'] == '1') ? '1' : '0' ?>"
<?= ($beneficiaire['choix'] == '1') ? 'checked' : '' ?>
onchange="toggleBeneficiaireSelection(this, <?= $beneficiaire['idBeneficiaire_temp'] ?>);">
</div>
</td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
</div>
<script>
// Quand on clique sur la case "Tout"
$(document).on('click', '#toggleAll', function() {
const allChecked = $('.beneficiaire-check').length === $('.beneficiaire-check:checked').length;
const newState = !allChecked; // si tout est coché, on décoche; sinon on coche
$('.beneficiaire-check').each(function() {
$(this).prop('checked', newState);
this.value = newState ? '1' : '0';
beneficiaire_a_retirer(this.value, $(this).data('id'));
});
// Mettre à jour le texte du bouton
$(this).text(newState ? "Tout désélectionner" : "Tout sélectionner");
});
</script>

View File

@ -45,7 +45,7 @@
<INPUT class="sr-only" TYPE="text" id="primeArchive" name="primeArchive" value="<?= $adherent['primeArchive'] ?>" >
<INPUT class="sr-only" TYPE="text" id="remplacementAdherent" name="remplacementAdherent" value="<?= $adherent['remplacementAdherent'] ?>" >
<INPUT class="sr-only" TYPE="text" id="remplace" name="remplace" value="<?= $adherent['remplace'] ?>" >
<INPUT class="sr-only" TYPE="text" id="remplacant" name="remplace" value="<?= $adherent['remplacant'] ?>" >
<INPUT class="sr-only" TYPE="text" id="remplacant" name="remplacant" value="<?= $adherent['remplacant'] ?>" >
<INPUT class="sr-only" TYPE="text" id="idApporteur" name="idApporteur" value="<?= $idApporteur ?>" >
<div id="div_adherent" class="container-fluid py-1 animate__animated animate__fadeIn">

View File

@ -1,94 +1,141 @@
<?php
$this->titre = "INTER-SANTE - Récap résiliation";
$nbFactAntiDate = $this->nettoyer($avenant['nbFactAntiDate']);
$this->titre = "INTER-SANTE - Récap résiliation";
$nbFactAntiDate = $this->nettoyer($avenant['nbFactAntiDate']);
?>
<INPUT class="sr-only" id="tauxRistourne" NAME="tauxRistourne" TYPE="text" value="<?= $this->nettoyer($avenant['tauxRistourne']) ?>" >
<button type="button" style='font-size:10pt;' class="sr-only" onclick="javascript:appliquer_taux_ristourne();" > </button>
<button id="btn_pop" NAME="btn_pop" type="button" class="sr-only" data-bs-toggle="modal" data-bs-target="#popdetailassure"> </button>
<legend> <?= _("RECAPITULATIF RETRAIT ASSURES DE LA POLICE") . " : " . $this->nettoyer($_SESSION['numeroPolice_C'])?> </legend>
<table class="table table-responsive table-condensed" style='font-size:9pt; text-align:center'>
<thead>
<tr>
<th width="16%" style='text-align:center'> <?= _("Date Effet Police") ?> </th>
<th width="16%" style='text-align:center'> <?= _("Date Echéance Police") ?> </th>
<th width="16%" style='text-align:center'> <?= _("Durée Police") ?> </th>
<th width="16%" style='text-align:center'> <?= _("Date Effet Avenant") ?> </th>
<th width="16%" style='text-align:center'> <?= _("Date Echéance Avenant") ?> </th>
<th width="20%" style='text-align:center'> <?= _("Durée Avenant") ?> </th>
</tr>
</thead>
<tbody>
<tr>
<td> <?= dateLang($this->nettoyer($emission['dateEffet']), $_SESSION['lang']) ?> </td>
<td> <?= dateLang($this->nettoyer($emission['dateEcheance']), $_SESSION['lang']) ?> </td>
<td> <?= $this->nettoyer($emission['dureePolice']) ?> </td>
<td> <?= dateLang($this->nettoyer($avenant['dateEffet']), $_SESSION['lang']) ?> </td>
<td> <?= dateLang($this->nettoyer($avenant['dateEcheance']), $_SESSION['lang']) ?> </td>
<td> <?= $this->nettoyer($avenant['dureeAvenant']) ?> </td>
</tr>
</tbody>
</table>
<table class="table table-responsive table-condensed" style='font-size:9pt; 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'> TOTAL </th>
</tr>
</thead>
<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['tauxRistourne']) ?> </td>
</tr>
</tbody>
</table>
<legend> <?= _("DETAIL PRIMES A RISTOURNER") ?> </legend>
<div id="div_assure_a_retirer">
<?php include 'Vue/Ajaxdetailretrait/index.php'; ?>
</div>
<div class="modal fade modal-office" id="popdetailassure" role="dialog" data-bs-backdrop="static" data-bs-keyboard="false">
<div class="modal-dialog modal-lg">
<div class="modal-content modal-office">
<div class="modal-header">
<h5 class="modal-title" id="popdetailassureLabel"><?= _("Détail retrait") ?></h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="<?= _("Fermer") ?>"></button>
</div>
<div class="modal-body">
<div id="div_selection_assure"></div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal"><?= _("Fermer") ?></button>
</div>
<input type="hidden" id="tauxRistourne" name="tauxRistourne" value="<?= $this->nettoyer($avenant['tauxRistourne']) ?>">
<button id="btn_pop" name="btn_pop" type="button" class="visually-hidden" data-bs-toggle="modal" data-bs-target="#popdetailassure"></button>
<div id="div_liste" class="container-fluid py-4 animate__animated animate__fadeIn">
<div class="d-flex align-items-center mb-4">
<div class="bg-primary text-white p-3 rounded-3 shadow-sm me-3">
<i class="fas fa-file-contract fa-2x"></i>
</div>
<div>
<h1 class="mb-0 fw-bold text-uppercase text-primary"><?= _("Récapitulatif Retrait Assurés") ?></h1>
<p class="text-muted mb-0"><?= _("Police N°") ?> <span class="badge bg-dark fs-6"><?= $this->nettoyer($_SESSION['numeroPolice_C']) ?></span></p>
</div>
</div>
<div class="row g-4 mb-4">
<div class="col-md-6">
<div class="card border-0 shadow-sm h-100">
<div class="card-header bg-primary bg-opacity-10 border-0 py-3">
<h6 class="card-title mb-0 fw-bold text-primary"><i class="fas fa-shield-alt me-2"></i><?= _("Informations Police") ?></h6>
</div>
<div class="card-body">
<div class="row text-center">
<div class="col-4 border-end">
<label class="small text-muted d-block"><?= _("Effet") ?></label>
<span class="fw-bold"><?= dateLang($this->nettoyer($emission['dateEffet']), $_SESSION['lang']) ?></span>
</div>
<div class="col-4 border-end">
<label class="small text-muted d-block"><?= _("Échéance") ?></label>
<span class="fw-bold"><?= dateLang($this->nettoyer($emission['dateEcheance']), $_SESSION['lang']) ?></span>
</div>
<div class="col-4">
<label class="small text-muted d-block"><?= _("Durée") ?></label>
<span class="badge bg-primary"><?= $this->nettoyer($emission['dureePolice']) ?> <?= _("Jours") ?></span>
</div>
</div>
</div>
</div>
</div>
<div class="col-md-6">
<div class="card border-0 shadow-sm h-100">
<div class="card-header bg-warning bg-opacity-10 border-0 py-3">
<h6 class="card-title mb-0 fw-bold text-warning"><i class="fas fa-calendar-check me-2"></i><?= _("Informations Avenant") ?></h6>
</div>
<div class="card-body">
<div class="row text-center">
<div class="col-4 border-end">
<label class="small text-muted d-block"><?= _("Effet") ?></label>
<span class="fw-bold text-warning"><?= dateLang($this->nettoyer($avenant['dateEffet']), $_SESSION['lang']) ?></span>
</div>
<div class="col-4 border-end">
<label class="small text-muted d-block"><?= _("Échéance") ?></label>
<span class="fw-bold text-warning"><?= dateLang($this->nettoyer($avenant['dateEcheance']), $_SESSION['lang']) ?></span>
</div>
<div class="col-4">
<label class="small text-muted d-block"><?= _("Durée") ?></label>
<span class="badge bg-warning text-dark"><?= $this->nettoyer($avenant['dureeAvenant']) ?> <?= _("Jours") ?></span>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="row g-3 mb-5 text-center">
<div class="col-md-2-4 col-sm-6">
<div class="p-3 bg-white rounded shadow-sm border-bottom border-4 border-primary h-100">
<div class="text-muted small mb-1"><?= _("Primes Totales") ?></div>
<div class="h5 fw-bold mb-0 text-primary"><?= format_N($this->nettoyer($sppolice['primestat'])) ?></div>
</div>
</div>
<div class="col-md-2-4 col-sm-6">
<div class="p-3 bg-white rounded shadow-sm border-bottom border-4 border-info h-100">
<div class="text-muted small mb-1"><?= _("Primes Acquises") ?></div>
<div class="h5 fw-bold mb-0 text-info"><?= format_N($this->nettoyer($sppolice['prime_acquise'])) ?></div>
</div>
</div>
<div class="col-md-2-4 col-sm-6">
<div class="p-3 bg-white rounded shadow-sm border-bottom border-4 border-danger h-100">
<div class="text-muted small mb-1"><?= _("Consommations") ?></div>
<div class="h5 fw-bold mb-0 text-danger"><?= format_N($this->nettoyer($sppolice['consommation'])) ?></div>
</div>
</div>
<div class="col-md-2-4 col-sm-6">
<div class="p-3 bg-white rounded shadow-sm border-bottom border-4 border-warning h-100">
<div class="text-muted small mb-1"><?= _("Rapport S/P") ?></div>
<div class="h5 fw-bold mb-0 text-warning"><?= $this->nettoyer($sppolice['rapportsp']) ?> %</div>
</div>
</div>
<div class="col-md-2-4 col-sm-12">
<div class="p-3 bg-dark rounded shadow-sm border-bottom border-4 border-success h-100">
<div class="text-white-50 small mb-1 text-uppercase fw-bold"><?= _("Total Ristourne") ?></div>
<div class="h4 fw-bold mb-0 text-success"><?= $this->nettoyer($sppolice['tauxRistourne']) ?></div>
</div>
</div>
</div>
<div class="d-flex align-items-center mb-3">
<hr class="flex-grow-1">
<span class="px-3 fw-bold text-muted text-uppercase small"><?= _("Détail des Primes à Ristourner") ?></span>
<hr class="flex-grow-1">
</div>
<div id="div_assure_a_retirer" class="bg-white rounded shadow-sm p-3">
<?php include 'Vue/Ajaxdetailretrait/index.php'; ?>
</div>
</div>
</div>
<div class="modal fade" id="popdetailassure" tabindex="-1" role="dialog" data-bs-backdrop="static" data-bs-keyboard="false">
<div class="modal-dialog modal-xl modal-dialog-centered shadow-lg"> <div class="modal-content border-0">
<div class="modal-header bg-light">
<h5 class="modal-title fw-bold">
<i class="fas fa-list-ul me-2 text-primary"></i><?= _("Détail du retrait") ?>
</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Fermer"></button>
</div>
<div class="modal-body p-0"> <div id="div_selection_assure" class="container-fluid py-3">
</div>
</div>
<div class="modal-footer bg-light border-0">
<button type="button" class="btn btn-secondary px-4 rounded-pill" data-bs-dismiss="modal"><?= _("Fermer") ?></button>
</div>
</div>
</div>
</div>
<style>
.col-md-2-4 { flex: 0 0 auto; width: 20%; }
@media (max-width: 992px) { .col-md-2-4 { width: 50%; } }
@media (max-width: 576px) { .col-md-2-4 { width: 100%; } }
.shadow-sm { box-shadow: 0 .125rem .25rem rgba(0,0,0,.075)!important; }
.shadow-xs { box-shadow: 0 1px 2px rgba(0,0,0,0.05); }
.min-vh-25 { min-height: 150px; }
</style>

View File

@ -70,8 +70,8 @@ foreach ($modals as $id => $cfg):
<div class="input-group input-group-lg">
<span class="input-group-text bg-white border-end-0"><i class="fas fa-calendar-day text-muted"></i></span>
<input type="text" class="form-control datepicker border-start-0 text-center fw-bold"
id="<?= $cfg['id_date'] ?>" name="<?= $cfg['id_date'] ?>"
value="<?= $this->datejourfr ?>" required>
id="<?= $cfg['id_date'] ?>" name="<?= $cfg['id_date'] ?>"
value="<?= dateLang($this->datejour, $_SESSION['lang']); ?>" required>
</div>
</div>

View File

@ -23,9 +23,10 @@
<div class="col-md-5">
<label class="form-label small fw-bold text-muted text-uppercase"><?= _("Période de validité") ?></label>
<div class="input-group shadow-sm">
<span class="input-group-text bg-white small fw-bold"><?= _("Du") ?></span>
<input type="text" id="debut" name="debut" class="form-control datepicker text-center fw-bold" value="<?= $_SESSION['dUneSemaineAvantFr_C'] ?>" required>
<input type="text" id="debut" name="debut" class="form-control datepicker text-center fw-bold" value="<?= dateLang($_SESSION['dUneSemaineAvant_C'], $_SESSION['lang']) ?>" required>
<span class="input-group-text bg-white small fw-bold"><?= _("au") ?></span>
<input type="text" id="fin" name="fin" class="form-control datepicker text-center fw-bold" value="<?= dateCouranteLang($_SESSION['lang']) ?>" required>
</div>

167
Vue/Remboursement/index.php Executable file
View File

@ -0,0 +1,167 @@
<?php
$this->titre = "Intersanté - Remboursement Direct";
$idDemandeRemboursement = $_SESSION['idDemandeRemboursement'] ?? "0";
$numeroDemandeRemboursement = $this->nettoyer($demande['numeroDemandeRemboursement']);
$codeEtatDemandeRemboursement = $this->nettoyer($demande['codeEtatDemandeRemboursement']);
$lien = $this->nettoyer($demande['lien']);
$numeroBeneficiaire = $this->nettoyer($demande['numeroBeneficiaire']);
$observation = $this->nettoyer($demande['observation']);
$codeStatutPaiement = $this->nettoyer($demande['codeStatutPaiement']);
$beneficiaire = $this->nettoyer($demande['beneficiaire']);
$adherent = $this->nettoyer($demande['adherent']);
$numeroAdherent = $this->nettoyer($demande['numeroAdherent']);
$idPolice = $this->nettoyer($demande['idPolice']);
$numeroPolice = $this->nettoyer($demande['numeroPolice']);
if (est_anglophone()){
$lien = $this->nettoyer($demande['lienEng']);
}
?>
<div id="div_liste" class="card shadow-lg border-0 mb-4" style="border-radius: 15px;">
<h1 class="text-primary"><i class="fas fa-file-invoice-dollar me-2"></i></i> <?= _('Détails du remboursement') ?></h1>
<div class="card-header d-flex justify-content-between align-items-center py-1">
<h5 class="mb-0 fw-bold">
<?= _("POLICE") ?> : <span class="text-secondary"><?= $numeroPolice; ?></span>
<span class="ms-3 badge bg-warning text-light small fw-normal"><?= _("Demande N°") ?>: <?= $numeroDemandeRemboursement; ?></span>
</h5>
</div>
<div class="card-body p-2">
<div class="row g-4 mb-4">
<div class="col-md-7">
<div class="p-3 border rounded bg-light shadow-sm">
<h6 class="text-muted text-uppercase small fw-bold mb-3 border-bottom pb-2">
<i class="fas fa-id-card me-2 text-primary"></i><?= _("Identification du dossier") ?>
</h6>
<div class="row g-3">
<div class="col-12">
<label class="form-label small text-muted mb-0"><?= _("Adhérent Principal (Titulaire)") ?></label>
<div class="d-flex align-items-center bg-white border rounded p-2">
<div class="flex-shrink-0">
<div class="bg-primary-subtle text-primary rounded-circle d-flex align-items-center justify-content-center" style="width: 35px; height: 35px;">
<i class="fas fa-user-shield"></i>
</div>
</div>
<div class="flex-grow-1 ms-3">
<div class="fw-bold text-dark fs-6">
<?= $adherent ?>
<span class="badge bg-secondary ms-2 small fw-normal"><?= $numeroAdherent ?></span>
</div>
</div>
</div>
</div>
<div class="col-md-8">
<label class="form-label small text-muted mb-0"><?= _("Bénéficiaire des soins (Patient)") ?></label>
<div class="d-flex align-items-center bg-white border rounded p-2" style="min-height: 45px;">
<div class="fw-bold text-dark fs-6">
<i class="fas fa-user text-muted me-2 small"></i>
<?= $beneficiaire ?>
<span class="badge bg-info-subtle text-info border border-info-subtle ms-2 small fw-normal"><?= $numeroBeneficiaire ?></span>
</div>
</div>
</div>
<div class="col-md-4">
<label class="form-label small text-muted mb-0"><?= _("Lien Parenté") ?></label>
<div class="fw-bold py-2 px-2 bg-white border rounded text-center text-primary shadow-sm" style="min-height: 45px;">
<i class="fas fa-users me-1 small"></i> <?= $lien ?: '--' ?>
</div>
</div>
<div class="col-12">
<label class="form-label small text-muted mb-0"><?= _("Commentaire du demandeur") ?></label>
<div class="p-2 bg-white border rounded-1 small text-dark" style="min-height: 80px;">
<?= $observation ?: '<span class="text-muted italic">' . _("Aucun commentaire fourni.") . '</span>' ?>
</div>
</div>
</div>
</div>
</div>
<div class="col-md-5">
<div class="card h-100 border-0 shadow-sm overflow-hidden">
<div class="card-body p-0">
<?php
switch ($codeStatutPaiement) {
case "1":
$bgStatus = "bg-success";
$iconStatus = "fa-check-double";
$status = _("Validée");
$colorText = "text-white";
break;
case "2":
$bgStatus = "bg-warning";
$iconStatus = "fa-hourglass-half";
$status = _("En attente");
$colorText = "text-dark";
break;
default:
$bgStatus = "bg-danger";
$iconStatus = "fa-ban";
$status = _("Refusée");
$colorText = "text-white";
break;
}
?>
<div class="<?= $bgStatus ?> text-white p-3 text-center">
<i class="fas <?= $iconStatus ?> fa-2x mb-2"></i>
<h5 class="mb-0 text-uppercase fw-bold"><?= $status ?></h5>
<small class="opacity-75 <?= $colorText ?>"><?= ($codeStatutPaiement != "2") ? _("Validé le") :""; ?> <?= dateLang($demande['dateValidationRh'], $_SESSION['lang']) ?></small>
</div>
<?php if($codeStatutPaiement=="9"):?>
<div class="p-3 bg-light">
<label class="small text-muted d-block mb-1"><?= _("Justification de rejet") ?> :</label>
<div class="p-2 text-danger rounded small" style="min-height: 60px; border: 1px solid gray;">
<?= $this->nettoyer($demande['motifRejetRh']) ?>
</div>
</div>
<?php endif;?>
</div>
</div>
</div>
</div>
<?php if($idDemandeRemboursement > 0): ?>
<div class="card border-0 shadow-sm mt-4">
<div class="card-header bg-dark text-white py-2 d-flex justify-content-between align-items-center">
<span class="small fw-bold"><i class="fas fa-file-pdf me-2"></i><?= _("PIÈCES JOINTES (Factures)") ?></span>
<span class="badge bg-secondary"><?= count($geds) ?></span>
</div>
<div class="card-body p-0">
<table class="table table-hover table-sm mb-0">
<tbody class="small">
<?php foreach ($geds as $ged): ?>
<tr>
<td class="ps-3 py-2 text-muted" width="150"><?= dateheureLang($ged['dateSysteme']) ?></td>
<td class="py-2"><i class="far fa-file-image me-2 text-primary"></i><?= $this->nettoyer($ged['nomOrigine']) ?></td>
<td class="text-end pe-3 py-2">
<a href="<?= $ged['cheminFichier'] ?>" target="_blank" class="btn btn-xs btn-outline-danger">
<i class="fas fa-download"></i>
</a>
</td>
</tr>
<?php endforeach; ?>
<?php if(empty($geds)): ?>
<tr><td colspan="3" class="text-center py-4 text-muted italic"><?= _("Aucune facture scannée pour cette demande.") ?></td></tr>
<?php endif; ?>
</tbody>
</table>
</div>
</div>
<?php endif; ?>
</div>
</div>

View File

@ -0,0 +1,64 @@
<?php $this->titre = "Intersanté - Historique Remboursement"; ?>
<input class="sr-only" id="nomForm" name="nomForm" value="historembdirect">
<div id="div_liste" class="container-fluid py-3">
<div class="d-flex align-items-center mb-4">
<div class="bg-primary text-white p-3 rounded-3 shadow-sm me-3">
<i class="fas fa-hand-holding-usd"></i>
</div>
<div>
<h3 class="mb-0 fw-bold text-uppercase text-primary"><?= _("Validation des demandes") ?></h3>
<p class="text-muted mb-0"><?= _("Liste des dossiers Hors Tiers Payant des assurés") ?></p>
</div>
</div>
<div id="div_patienter"></div>
<div class="card shadow-sm border-0 mb-4" style="border-radius: 12px;">
<div class="card-body p-3">
<form id="form_filtres" class="row g-3 align-items-end">
<div class="col-12 col-md-4 col-lg-3">
<label class="form-label small fw-bold text-muted mb-1"><?= _("Période du") ?></label>
<div class="input-group input-group-sm">
<span class="input-group-text bg-white"><i class="far fa-calendar-alt"></i></span>
<input class="form-control datepicker" type="text" id="d1" name="d1"
value="<?= dateLang($_SESSION['debutMois_C'], $_SESSION['lang']) ?>" required>
</div>
</div>
<div class="col-12 col-md-4 col-lg-3">
<label class="form-label small fw-bold text-muted mb-1"><?= _("Au") ?></label>
<div class="input-group input-group-sm">
<span class="input-group-text bg-white"><i class="far fa-calendar-check"></i></span>
<input class="form-control datepicker" type="text" id="d2" name="d2"
value="<?= dateCouranteLang($_SESSION['lang'], $_SESSION['lang']) ?>" required>
</div>
</div>
<div class="col-12 col-md-4 col-lg-3">
<label class="form-label small fw-bold text-muted mb-1"><?= _("État validation") ?></label>
<select class="form-select form-select-sm border-primary-subtle" id="codeStatutPaiement" name="codeStatutPaiement">
<?php liste_options_consultation($reponsedemande, ""); ?>
</select>
</div>
<div class="col-12 col-lg-3">
<button id="btn_filtre" type="button" class="btn btn-primary btn-sm w-100 fw-bold shadow-sm" onclick="listerremboursement();">
<i class="fas fa-search me-2"></i><?= _("Rechercher les dossiers") ?>
</button>
</div>
</form>
</div>
</div>
<div class="card shadow-sm border-0" style="border-radius: 12px;">
<div id="div_dossiers" class="card-body p-0">
<div class="text-center py-5 text-muted">
<i class="fas fa-info-circle me-2"></i>
<?= _("Veuillez cliquer sur rechercher pour afficher les résultats") ?>
</div>
</div>
</div>
</div>
<div id="div_validation" class="modal fade"></div>

View File

@ -0,0 +1,108 @@
<?php $this->titre = "INTER-SANTE - Remplacement Famille"; ?>
<INPUT class="sr-only" TYPE="text" id="idPolice" name="idPolice" value="<?= $_SESSION['idPolice_C'] ?>">
<INPUT class="sr-only" TYPE="text" id="numeroPolice" name="numeroPolice" value="<?= $_SESSION['numeroPolice_C'] ?>">
<INPUT class="sr-only" TYPE="text" id="codeEtatFacturation" name="codeEtatFacturation" value="<?=$adherent['codeEtatFacturation']?>" >
<INPUT class="sr-only" TYPE="text" id="consommation_adherent" name="consommation_adherent" value="<?=$adherent['consommation_adherent']?>" >
<INPUT class="sr-only" TYPE="text" id="rapport_sp_police" name="rapport_sp_police" value="<?=$adherent['rapport_sp_police']?>" >
<INPUT class="sr-only" TYPE="text" id="idCollege" name="idCollege" value="<?=$adherent['idCollege']?>" >
<INPUT class="sr-only" TYPE="text" id="dateEffetAdherent" name="dateEffetAdherent" value="<?=$adherent['dateEffetAdherent']?>" >
<INPUT class="sr-only" TYPE="text" id="dateSortieAdherent" name="dateSortieAdherent" value="<?=$adherent['dateSortieAdherent']?>" >
<INPUT class="sr-only" TYPE="text" id="remplacementAdherent" name="remplacementAdherent" value="<?= $adherent['remplacementAdherent'] ?>" >
<INPUT class="sr-only" TYPE="text" id="etatRetrait" name="etatRetrait" value="<?= $adherent['etatRetrait'] ?>" >
<INPUT class="sr-only" TYPE="text" id="dateRetrait" name="dateRetrait" value="<?=$adherent['dateRetrait']?>" >
<INPUT class="sr-only" TYPE="text" id="ristourneRetrait" name="ristourneRetrait" value="<?=$adherent['ristourneRetrait']?>" >
<div id="div_adherent" class="container-fluid py-1 animate__animated animate__fadeIn">
<h1 class="text-primary"><i class="fas fa-user-minus me-2"></i><?= _('Remplacer Famille') ?></h1>
<div class="card shadow-sm border-0 mb-4">
<div class="card-header d-flex justify-content-between align-items-center">
<h5 class="mb-0"><i class="fas fa-users me-2"></i><?= _("Détails Famille Sortante") ?></h5>
</div>
<div class="card-body bg-light">
<div class="row g-3">
<div class="col-md-4">
<label class="form-label small text-uppercase fw-bold mb-0"><?= _("Adhérent") ?></label>
<div class="fw-bold text-uppercase p-2 border rounded bg-white">
<?= $this->nettoyer($adherent['nom']) ?> <?= $this->nettoyer($adherent['prenoms']) ?>
</div>
</div>
<div class="col-md-2 text-center">
<label class="form-label small text-uppercase mb-0 fw-bold"><?= _("Effet Police") ?></label>
<div class="p-2 border rounded bg-white small">
<?= dateLang($this->nettoyer($adherent['dateEffetPolice']), $_SESSION['lang']) ?>
</div>
</div>
<div class="col-md-2 text-center">
<label class="form-label small text-uppercase mb-0 fw-bold"><?= _("Effet Famille") ?></label>
<div class="p-2 border rounded bg-white small fw-bold text-primary">
<?= dateLang($this->nettoyer($adherent['dateEffetAdherent']), $_SESSION['lang']) ?>
</div>
</div>
<div class="col-md-2 text-center">
<label class="form-label small text-uppercase mb-0 fw-bold"><?= _("Echéance") ?></label>
<div class="p-2 border rounded bg-white small">
<?= dateLang($this->nettoyer($adherent['dateFinPolice']), $_SESSION['lang']) ?>
</div>
</div>
<div class="col-md-2 text-center">
<label class="form-label small text-uppercase mb-0 fw-bold"><?= _("Consommation") ?></label>
<div class="p-2 border rounded bg-white small text-danger fw-bold">
<?= number_format($adherent['consommation_adherent'], 0, ',', ' ') ?>
</div>
</div>
</div>
</div>
</div>
<div id="div_remplacement_adherent" class="card shadow-sm border-primary">
<div class="card-header d-flex justify-content-between align-items-center">
<h5 class="mb-0"><i class="fas fa-exchange-alt me-2"></i><?= _("Paramètres du mouvement") ?></h5>
</div>
<div class="card-body">
<div class="row g-3">
<div class="col-md-4">
<label class="form-label fw-bold text-uppercase small"><?= _("Date de Sortie effective") ?> <span class="text-danger">*</span></label>
<div class="input-group">
<span class="input-group-text"><i class="fas fa-calendar-minus"></i></span>
<input class="form-control datepicker text-center" type="text" id="dateSortieAdh" name="dateSortieAdh" value="<?= dateCouranteLang($_SESSION['lang']) ?>" required>
</div>
</div>
<div class="col-md-4">
<label class="form-label fw-bold small text-uppercase"><?= _("Date de Remplacement") ?> <span class="text-danger">*</span></label>
<div class="input-group border-primary">
<span class="input-group-text bg-primary text-white"><i class="fas fa-calendar-plus"></i></span>
<input class="form-control datepicker text-center" type="text" id="dateRemplacement" name="dateRemplacement" value="<?= dateCouranteLang($_SESSION['lang']) ?>" required>
</div>
</div>
<div class="col-md-4">
<label class="form-label fw-bold small text-uppercase"><?= _("Frais de Carte") ?></label>
<div class="input-group">
<input class="form-control text-end" id="fraisCarte" name="fraisCarte" type="number" value="<?=$adherent['fraisCarte']?>">
<span class="input-group-text"><?=$_SESSION['devise_C']?></span>
</div>
</div>
<div class="col-md-8">
<label class="form-label fw-bold small text-uppercase"><?= _("Motif de l'avenant (Observation)") ?></label>
<textarea class="form-control" id="motifavenant" name="motifavenant" rows="1" placeholder="<?= _("Ex: Remplacement suite à démission...") ?>"></textarea>
</div>
<div class="col-md-4 d-flex align-items-end">
<button type="button" class="btn btn-primary w-100 py-2 shadow" onclick="javascript:init_remplacement_adherent();">
<i class="fas fa-play-circle me-2"></i> <?= _("Initier le remplacement") ?>
</button>
</div>
</div>
</div>
</div>
</div>

View File

@ -0,0 +1,93 @@
<?php
$this->titre = "INTER-SANTE - Consultation remplacement famille ";
?>
<legend> <?= _("RECAPITULATIF REMPLACEMENT DE FAMILLE => SORTANT") ?> </legend>
<table class="table table-responsive table-condensed" style='font-size:9pt;'>
<tbody>
<tr>
<td width="10%" > <?= _("Famille Sortante") ?> </th>
<td> <INPUT style='font-size:9pt; text-align:center' class="form-control" TYPE="text" Value="<?= $this->nettoyer($adherent_sortant['nom']) ?>" readonly > </td>
<td> <INPUT style='font-size:9pt; text-align:center' class="form-control" TYPE="text" Value="<?= $this->nettoyer($adherent_sortant['prenoms']) ?>" readonly > </td>
<td style='text-align:center'> <?= _("Effet Police") ?> </td>
<td> <INPUT style='font-size:9pt; text-align:center' class="form-control" TYPE="text" Value="<?= dateLang($this->nettoyer($adherent_sortant['dateEffetPolice'])) ?>" readonly > </td>
<th style='text-align:center'> <?= _("Effet Famille") ?> </td>
<td> <INPUT style='font-size:9pt; text-align:center' class="form-control" TYPE="text" Value="<?= dateLang($this->nettoyer($adherent_sortant['dateEffetAdherent'])) ?>" readonly > </td>
<td style='text-align:center'> <?= _("Echéance") ?> </td>
<td> <INPUT style='font-size:9pt; text-align:center' class="form-control" TYPE="text" Value="<?= dateLang($this->nettoyer($adherent_sortant['dateFinPolice'])) ?>" readonly > </td>
</tr>
</tbody>
</table>
<table class="table table-responsive table-condensed" style='font-size:9pt;'>
<tbody>
<tr>
<td width="10%" > <?= _("Date Sortie") ?> </td>
<td width="15%" >
<INPUT style='font-size:9pt; text-align:center' class="form-control" TYPE="text" Value="<?= dateLang($this->nettoyer($remplacementadherent['dateSortie'])) ?>" readonly >
</td>
<td width="10%" style='font-size:9pt; text-align:center' > <?= _("Remplacement") ?> </td>
<td width="15%" >
<INPUT style='font-size:9pt; text-align:center' class="form-control" TYPE="text" Value="<?= dateLang($this->nettoyer($remplacementadherent['dateRemplacement'])) ?>" readonly>
</td>
<td width="5%" style='font-size:9pt; text-align:center' > <?= _("Motif") ?> </td>
<td > <INPUT style='font-size:9pt;' class="form-control" TYPE="text" Value="<?= $this->nettoyer($remplacementadherent['motif']) ?>" readonly> </td>
<td width="10%" > <INPUT style='font-size:9pt; text-align:center;' class="form-control" TYPE="text" Value="<?= $this->nettoyer($remplacementadherent['codeUtilisateur']) ?>" readonly> </td>
</tr>
</tbody>
</table>
<table class="table table-responsive table-condensed" style='font-size:9pt;'>
<tbody>
<tr>
<td width="10%" > <?= _("Famille Entrante") ?> </th>
<td> <INPUT style='font-size:9pt; text-align:center' class="form-control" TYPE="text" Value="<?= $this->nettoyer($adherent_entrant['nom']) ?>" readonly > </td>
<td> <INPUT style='font-size:9pt; text-align:center' class="form-control" TYPE="text" Value="<?= $this->nettoyer($adherent_entrant['prenoms']) ?>" readonly > </td>
<td style='text-align:center'> <?= _("Effet Police") ?> </td>
<td> <INPUT style='font-size:9pt; text-align:center' class="form-control" TYPE="text" Value="<?= dateLang($this->nettoyer($adherent_entrant['dateEffetPolice'])) ?>" readonly > </td>
<th style='text-align:center'> <?= _("Effet Famille") ?> </td>
<td> <INPUT style='font-size:9pt; text-align:center' class="form-control" TYPE="text" Value="<?= dateLang($this->nettoyer($adherent_entrant['dateEffetAdherent'])) ?>" readonly > </td>
<td style='text-align:center'> <?= _("Echéance") ?> </td>
<td> <INPUT style='font-size:9pt; text-align:center' class="form-control" TYPE="text" Value="<?= dateLang($this->nettoyer($adherent_entrant['dateFinPolice'])) ?>" readonly > </td>
</tr>
</tbody>
</table>
<table class="table table-striped table-bordered table-hover table-condensed table-responsive" style="font-size:9pt;">
<thead>
<tr>
<th style="text-align:center"> <?= _("Garanties et soldes transmis") ?> </th>
<th style="text-align:center"> <?= _("Limites en vigeur") ?> </th>
<th style="text-align:center"> <?= _("Consommations") ?> </th>
<th style="text-align:center"> <?= _("Solde") ?> </th>
<th style="text-align:center"> <?= _("Par tête?") ?> </th>
</tr>
</thead>
<tbody>
<?php foreach ($garantieadherents as $garantieadherent):
$champApplication = $this->nettoyer($garantieadherent['champApplication']);
?>
<tr valign="top">
<td align='center'> <?= $this->nettoyer($garantieadherent['garantie'])?> </td>
<td align='center'><?= format_N($this->nettoyer($garantieadherent['plafond'])) ?></td>
<?php if($champApplication=='1'): ?>
<td> </td>
<td> </td>
<td align='center'> <input type="checkbox" checked value="<?php echo $champApplication ; ?>" disabled ></td>
<?php else: ?>
<td align='center'><?= format_N($this->nettoyer($garantieadherent['consommation'])) ?></td>
<td align='center'><?= format_N($this->nettoyer($garantieadherent['solde'])) ?></td>
<td align='center'> <input type="checkbox" value="<?php echo $champApplication ; ?>" disabled ></td>
<?php endif; ?>
</tr>
<?php endforeach; ?>
</tbody>
</table>

View File

@ -0,0 +1,94 @@
<?php
$this->titre = "INTER-SANTE - Consultation remplacement famille ";
?>
<legend> <?= _("RECAPITULATIF REMPLACEMENT DE FAMILLE => ENTRANT") ?> </legend>
<table class="table table-responsive table-condensed" style='font-size:9pt;'>
<tbody>
<tr>
<td width="10%" > <?= _("Famille Sortante") ?> </th>
<td> <INPUT style='font-size:9pt; text-align:center' class="form-control" TYPE="text" Value="<?= $this->nettoyer($adherent_sortant['nom']) ?>" readonly > </td>
<td> <INPUT style='font-size:9pt; text-align:center' class="form-control" TYPE="text" Value="<?= $this->nettoyer($adherent_sortant['prenoms']) ?>" readonly > </td>
<td style='text-align:center'> <?= _("Effet Police") ?> </td>
<td> <INPUT style='font-size:9pt; text-align:center' class="form-control" TYPE="text" Value="<?= dateLang($this->nettoyer($adherent_sortant['dateEffetPolice'])) ?>" readonly > </td>
<th style='text-align:center'> <?= _("Effet Famille") ?> </td>
<td> <INPUT style='font-size:9pt; text-align:center' class="form-control" TYPE="text" Value="<?= dateLang($this->nettoyer($adherent_sortant['dateEffetAdherent'])) ?>" readonly > </td>
<td style='text-align:center'> <?= _("Echéance") ?> </td>
<td> <INPUT style='font-size:9pt; text-align:center' class="form-control" TYPE="text" Value="<?= dateLang($this->nettoyer($adherent_sortant['dateFinPolice'])) ?>" readonly > </td>
</tr>
</tbody>
</table>
<table class="table table-responsive table-condensed" style='font-size:9pt;'>
<tbody>
<tr>
<td width="10%" > <?= _("Date Sortie") ?> </td>
<td width="15%" >
<INPUT style='font-size:9pt; text-align:center' class="form-control" TYPE="text" Value="<?= dateLang($this->nettoyer($remplacementadherent['dateSortie'])) ?>" readonly >
</td>
<td width="10%" style='font-size:9pt; text-align:center' > <?= _("Remplacement") ?> </td>
<td width="15%" >
<INPUT style='font-size:9pt; text-align:center' class="form-control" TYPE="text" Value="<?= dateLang($this->nettoyer($remplacementadherent['dateRemplacement'])) ?>" readonly>
</td>
<td width="5%" style='font-size:9pt; text-align:center' > <?= _("Motif") ?> </td>
<td > <INPUT style='font-size:9pt;' class="form-control" TYPE="text" Value="<?= $this->nettoyer($remplacementadherent['motif']) ?>" readonly> </td>
<td width="10%" > <INPUT style='font-size:9pt; text-align:center;' class="form-control" TYPE="text" Value="<?= $this->nettoyer($remplacementadherent['codeUtilisateur']) ?>" readonly> </td>
</tr>
</tbody>
</table>
<table class="table table-responsive table-condensed" style='font-size:9pt;'>
<tbody>
<tr>
<td width="10%" > <?= _("Famille Entrante") ?> </th>
<td> <INPUT style='font-size:9pt; text-align:center' class="form-control" TYPE="text" Value="<?= $this->nettoyer($adherent_entrant['nom']) ?>" readonly > </td>
<td> <INPUT style='font-size:9pt; text-align:center' class="form-control" TYPE="text" Value="<?= $this->nettoyer($adherent_entrant['prenoms']) ?>" readonly > </td>
<td style='text-align:center'> <?= _("Effet Police") ?> </td>
<td> <INPUT style='font-size:9pt; text-align:center' class="form-control" TYPE="text" Value="<?= dateLang($this->nettoyer($adherent_entrant['dateEffetPolice'])) ?>" readonly > </td>
<th style='text-align:center'> <?= _("Effet Famille") ?> </td>
<td> <INPUT style='font-size:9pt; text-align:center' class="form-control" TYPE="text" Value="<?= dateLang($this->nettoyer($adherent_entrant['dateEffetAdherent'])) ?>" readonly > </td>
<td style='text-align:center'> <?= _("Echéance") ?> </td>
<td> <INPUT style='font-size:9pt; text-align:center' class="form-control" TYPE="text" Value="<?= dateLang($this->nettoyer($adherent_entrant['dateFinPolice'])) ?>" readonly > </td>
</tr>
</tbody>
</table>
<table class="table table-striped table-bordered table-hover table-condensed table-responsive" style="font-size:9pt;">
<thead>
<tr>
<th style="text-align:center"> <?= _("Garanties et soldes transmis") ?> </th>
<th style="text-align:center"> <?= _("Limites en vigeur") ?> </th>
<th style="text-align:center"> <?= _("Consommations") ?> </th>
<th style="text-align:center"> <?= _("Solde") ?> </th>
<th style="text-align:center"> <?= _("Par tête?") ?> </th>
</tr>
</thead>
<tbody>
<?php foreach ($garantieadherents as $garantieadherent):
$champApplication = $this->nettoyer($garantieadherent['champApplication']);
?>
<tr valign="top">
<td align='center'> <?= $this->nettoyer($garantieadherent['garantie'])?> </td>
<td align='center'><?= format_N($this->nettoyer($garantieadherent['plafond'])) ?></td>
<?php if($champApplication=='1'): ?>
<td> </td>
<td> </td>
<td align='center'> <input type="checkbox" checked value="<?php echo $champApplication ; ?>" disabled ></td>
<?php else: ?>
<td align='center'><?= format_N($this->nettoyer($garantieadherent['consommation'])) ?></td>
<td align='center'><?= format_N($this->nettoyer($garantieadherent['solde'])) ?></td>
<td align='center'> <input type="checkbox" value="<?php echo $champApplication ; ?>" disabled ></td>
<?php endif; ?>
</tr>
<?php endforeach; ?>
</tbody>
</table>

View File

@ -126,7 +126,7 @@ $photoAssureCrypte = $_SESSION['photoAssureCrypte'];
<link rel="manifest" href="<?= $racineWeb ?>manifest.json">
<!-- 4. VOS STYLES PERSONNALISÉS (en dernier pour qu'ils dominent) -->
<link href="<?= $racineWeb ?>Bootstrap_new/css/style_office.css?ver=2026.01.19.00" rel="stylesheet">
<link href="<?= $racineWeb ?>Bootstrap_new/css/style_office.css?ver=2026.01.20.05" rel="stylesheet">
<link href="<?= $racineWeb ?>Bootstrap_new/css/ux_enhancements.css?ver=2025.12.21.02" rel="stylesheet">
<!-- Charts -->
@ -263,44 +263,52 @@ $photoAssureCrypte = $_SESSION['photoAssureCrypte'];
</div>
<!-- User Menu -->
<div class="user-menu dropdown-toggle" data-bs-toggle="dropdown"
aria-expanded="false" aria-label="Menu utilisateur">
<div class="user-avatar" role="img" aria-label="Avatar utilisateur">
<?= $_SESSION['userInitials_C'] ?? 'U' ?>
</div>
<div class="user-info">
<div class="user-name"><?= $_SESSION['utilisateur_C'] ?? _('Utilisateur') ?></div>
<div class="user-role text-primary fw-bold">
<i class="fas fa-building-user"></i>
<?= $_SESSION['nomClient_C'] ?? _('Client') ?>
</div>
</div>
</div>
<!-- User Dropdown -->
<div class="dropdown-menu dropdown-menu-end">
<div class="dropdown-header">
<div class="user-avatar mx-auto mb-2">
<div class="dropdown">
<button id="userDropdownBtn"
class="user-menu dropdown-toggle border-0 bg-transparent p-0"
type="button"
data-bs-toggle="dropdown"
aria-expanded="false">
<div class="user-avatar">
<?= $_SESSION['userInitials_C'] ?? 'U' ?>
</div>
<div class="text-center">
<div class="fw-bold"><?= $_SESSION['utilisateur_C'] ?? _('Utilisateur') ?></div>
<small class="text-muted"><?= $_SESSION['nomClient_C'] ?? _('Client') ?></small>
<div class="user-info text-start ms-0">
<div class="user-name fw-bold" style="line-height: 1.2;">
<?= $_SESSION['utilisateur_C'] ?? _('Utilisateur') ?>
</div>
<div class="user-role text-primary fw-bold">
<?= $_SESSION['nomClient_C'] ?? _('Client') ?>
</div>
</div>
</div>
<div class="dropdown-divider"></div>
<a class="dropdown-item" href="javascript:change_password()">
<i class="fas fa-user-circle me-2"></i> <?= _('Mon compte') ?>
</a>
<!--
<a class="dropdown-item" href="javascript:appNotifications.showMessagesModal()">
<i class="fas fa-envelope me-2"></i> <?= _('Messagerie') ?>
</a>
-->
<div class="dropdown-divider"></div>
<a class="dropdown-item text-danger" href="Connexion/deconnecter">
<i class="fas fa-sign-out-alt me-2"></i> <?= _('Déconnexion') ?>
</a>
<i class="bi bi-chevron-down ms-0 user-arrow"></i>
</button>
<ul class="dropdown-menu dropdown-menu-end shadow-sm">
<li class="dropdown-header">
<div class="user-avatar mx-auto mb-2">
<?= $_SESSION['userInitials_C'] ?? 'U' ?>
</div>
<div class="text-center">
<div class="fw-bold text-dark"><?= $_SESSION['utilisateur_C'] ?? _('Utilisateur') ?></div>
<small class="text-muted"><?= $_SESSION['nomClient_C'] ?? _('Client') ?></small>
</div>
</li>
<li>
<a class="dropdown-item" href="javascript:change_password()">
<i class="fas fa-user-circle me-2"></i> <?= _('Changer le mot de passe') ?>
</a>
</li>
<li>
<a class="dropdown-item text-danger" href="Connexion/deconnecter">
<i class="fas fa-sign-out-alt me-2"></i> <?= _('Déconnexion') ?>
</a>
</li>
</ul>
</div>
</div>
</div>
@ -635,6 +643,7 @@ $photoAssureCrypte = $_SESSION['photoAssureCrypte'];
<!-- JavaScript Libraries -->
<script src="https://code.jquery.com/jquery-3.7.0.min.js"></script>
<script src="https://code.jquery.com/ui/1.13.2/jquery-ui.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.13.2/i18n/jquery-ui-i18n.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
<script src="https://cdn.datatables.net/v/bs5/dt-1.13.6/datatables.min.js"></script>
@ -654,7 +663,7 @@ $photoAssureCrypte = $_SESSION['photoAssureCrypte'];
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>
<!-- Application Scripts -->
<script src="/Js/fonctions.js?ver=2026.01.19.10"></script>
<script src="/Js/fonctions.js?ver=2026.01.22.11"></script>
<script type="text/javascript">
raffraichier_gabarit();
@ -662,7 +671,6 @@ $photoAssureCrypte = $_SESSION['photoAssureCrypte'];
<script type="text/javascript">
setInterval(function() {
console.log("Actualisation gabarit");
raffraichier_gabarit();
}, 10000);
</script>
@ -673,6 +681,22 @@ $photoAssureCrypte = $_SESSION['photoAssureCrypte'];
<script src="/Js/datepicker-fr.js"></script>
<?php endif; ?>
<script>
$(function() {
<?php if (est_anglophone()): ?>
$.datepicker.setDefaults($.datepicker.regional["en"]); // ou "en" selon le fichier
$(".datepicker").datepicker({
dateFormat: "mm/dd/yy"
});
<?php else: ?>
$.datepicker.setDefaults($.datepicker.regional["fr"]);
$(".datepicker").datepicker({
dateFormat: "dd/mm/yy"
});
<?php endif; ?>
});
</script>
<!-- UX Enhancement Script -->
<script src="/Bootstrap_new/js/ux-manager.js?ver=2025.12.31.00"></script>
@ -796,6 +820,34 @@ $photoAssureCrypte = $_SESSION['photoAssureCrypte'];
});
});
</script>
<script>
document.addEventListener("DOMContentLoaded", function () {
const btn = document.getElementById('userDropdownBtn');
if (btn) {
// On crée l'instance Bootstrap une seule fois
const dropdown = new bootstrap.Dropdown(btn);
btn.addEventListener('click', function (e) {
// ÉTAPE CLÉ : On empêche les autres scripts du header de bloquer le clic
e.preventDefault();
e.stopPropagation();
// On force l'ouverture/fermeture
dropdown.toggle();
});
}
// Sécurité : Fermer le menu si on clique n'importe où ailleurs sur la page
document.addEventListener('click', function (e) {
const btn = document.getElementById('userDropdownBtn');
if (btn && !btn.contains(e.target)) {
const instance = bootstrap.Dropdown.getInstance(btn);
if (instance) instance.hide();
}
});
});
</script>
</body>
</html>

View File

@ -9,7 +9,7 @@
<base href="<?= $racineWeb ?>">
<link rel="icon" href="Bootstrap_new/images/new/favicon.ico"/>
<link rel="icon" href="Bootstrap_new/images/new/favicon.png"/>
<link href="Bootstrap_new/css/bootstrap.min.css" rel="stylesheet">
<link href="Bootstrap_new/css/simple-sidebar.css" rel="stylesheet">