Merge branch 'main' of git.ebene.ovh:ebene/production
This commit is contained in:
commit
4d65994d57
29
Bootstrap_new/css/style_moderne.css
Normal file
29
Bootstrap_new/css/style_moderne.css
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
:root {
|
||||
--is-primary: #08C5D1;
|
||||
--is-sidebar: #2c3e50;
|
||||
--is-light-bg: #f8f9fa;
|
||||
}
|
||||
body { font-family: 'Inter', sans-serif; font-size: 0.88rem; color: #334155; }
|
||||
|
||||
/* Sidebar moderne */
|
||||
.sidebar { width: 260px; background: var(--is-sidebar); transition: all 0.3s; z-index: 1000; border-right: 1px solid rgba(255,255,255,0.1); }
|
||||
.sidebar .nav-link { color: rgba(255,255,255,0.7); font-weight: 500; border-radius: 8px; margin-bottom: 5px; }
|
||||
.sidebar .nav-link:hover, .sidebar .nav-link.active-main { background: rgba(255,255,255,0.1); color: #fff; }
|
||||
.sidebar .nav-link i { font-size: 1.1rem; margin-right: 12px; }
|
||||
|
||||
/* Header épuré */
|
||||
.header { height: 60px; background: #fff; box-shadow: 0 1px 10px rgba(0,0,0,0.05); }
|
||||
|
||||
/* Utilitaires de cartes */
|
||||
.card { border: none; border-radius: 12px; box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.04); }
|
||||
|
||||
/* Transition douce pour AJAX */
|
||||
.transition { transition: all 0.3s ease; }
|
||||
|
||||
@media (min-width: 1200px) {
|
||||
body.toggle-sidebar .sidebar { left: -260px; }
|
||||
body.toggle-sidebar .main, body.toggle-sidebar #header { margin-left: 0; }
|
||||
}
|
||||
|
||||
.cursor-pointer { cursor: pointer; }
|
||||
.shadow-xs { box-shadow: 0 2px 4px rgba(0,0,0,0.02); }
|
||||
|
|
@ -405,6 +405,7 @@ require_once 'Modele/Societeusercentral.php';
|
|||
$this->requete->getSession()->setAttribut("timezone_identifier", $utilisateur['timezone_identifier']);
|
||||
date_default_timezone_set($_SESSION['timezone_identifier']);
|
||||
|
||||
//
|
||||
|
||||
// On va déclarer les variable de session context
|
||||
$this->requete->getSession()->setAttribut("idClient_C", "");
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ require_once 'Framework/Controleur.php';
|
|||
require_once 'Modele/Emission.php';
|
||||
require_once 'Modele/Quittance.php';
|
||||
require_once 'Modele/Menuvueutilisateur.php';
|
||||
|
||||
//
|
||||
|
||||
class ControleurEmission extends Controleur {
|
||||
private $menuvue;
|
||||
|
|
|
|||
|
|
@ -58,6 +58,7 @@ class ControleurFicheadherent extends Controleur {
|
|||
|
||||
$tarifActe = $this->tarif->getTarifActeByType($codeTypeTarifActe);
|
||||
|
||||
//
|
||||
|
||||
$prestationsParMois = $this->adherent->getPrestationsmensuelles($idAdherent);
|
||||
$prestationsParliens = $this->adherent->getPrestationsLiensParente($idAdherent);
|
||||
|
|
|
|||
|
|
@ -182,7 +182,7 @@ class ControleurFichebeneficiaire extends Controleur
|
|||
{
|
||||
$message = 'Veuillez sélectionner un fichier SVP !';
|
||||
}
|
||||
} //
|
||||
}
|
||||
|
||||
$beneficiaire = $this->beneficiaire->getBeneficiaireId($id);
|
||||
|
||||
|
|
@ -195,7 +195,7 @@ class ControleurFichebeneficiaire extends Controleur
|
|||
|
||||
$codeTypeTarifActe = "TBEN";
|
||||
$tarifActe = $this->tarif->getTarifActeByType($codeTypeTarifActe);
|
||||
|
||||
//
|
||||
$prestationsParMois = $this->beneficiaire->getPrestationsmensuelles($idBeneficiaire);
|
||||
|
||||
$tabConsoParMois = [
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ class ControleurFicheusergc extends Controleur {
|
|||
$user_actVisible = $this->oui_non->getListe();
|
||||
$langue = $this->langue->getListe();
|
||||
$user_AffectionVisible = $this->oui_non->getListe();
|
||||
|
||||
//
|
||||
$user_gc = $this->gc->getunusergc($idUtilisateur);
|
||||
$chemin = $this->menuvue->getChemin('Ficheusergc');
|
||||
|
||||
|
|
|
|||
163
Js/fonctions.js
163
Js/fonctions.js
|
|
@ -40730,7 +40730,7 @@ function enregistrer_new_repos_medical()
|
|||
});
|
||||
|
||||
}
|
||||
|
||||
//
|
||||
function charger_detail_stat_police_anomalies()
|
||||
{
|
||||
$('#div_export_b').html("");
|
||||
|
|
@ -48852,81 +48852,74 @@ function appliquerDataTable(){
|
|||
}
|
||||
|
||||
|
||||
function dataTableSpeciale(){
|
||||
const oTable = $('.tabspeciale');
|
||||
var codeLangue = $("#codeLangue").val();
|
||||
|
||||
// Détruire l'instance existante si elle existe
|
||||
if ($.fn.DataTable.isDataTable(oTable)) {
|
||||
table.DataTable().destroy();
|
||||
table.empty(); // Optionnel : vider le contenu si nécessaire
|
||||
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();
|
||||
$table.empty(); // Optionnel : vider le contenu si nécessaire
|
||||
}
|
||||
|
||||
// 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 = (codeLangue === "en_US") ? [50, 100, 150] : [20, 50, 100];
|
||||
|
||||
try {
|
||||
$table.DataTable({
|
||||
destroy: true,
|
||||
responsive: true,
|
||||
lengthMenu: lengthMenuOptions,
|
||||
scrollX: true,
|
||||
scrollY: "75vh",
|
||||
pagingType: "full_numbers",
|
||||
autoWidth: false,
|
||||
searching: false, // équivalent moderne de bFilter:false
|
||||
ordering: false,
|
||||
lengthChange: false, // équivalent moderne de bLengthChange:false
|
||||
orderMulti: true,
|
||||
language: langOptions[codeLangue] || langOptions.fr_FR
|
||||
});
|
||||
|
||||
// Ajuster les colonnes après init
|
||||
$table.DataTable().columns.adjust().draw();
|
||||
|
||||
} catch (err) {
|
||||
console.error("Erreur DataTable:", err);
|
||||
return false;
|
||||
}
|
||||
|
||||
try{
|
||||
if(codeLangue=="en_US")
|
||||
{
|
||||
oTable.DataTable({
|
||||
destroy: true,
|
||||
responsive: true,
|
||||
"lengthMenu": [ 50, 100, 150],
|
||||
"scrollX": true,
|
||||
"scrollY": "75vh",
|
||||
"pagingType": "full_numbers",
|
||||
"autoWidth": false,
|
||||
"bFilter": false,
|
||||
"ordering": false,
|
||||
"bLengthChange": false,
|
||||
"orderMulti": true,
|
||||
"language": {
|
||||
"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)"
|
||||
}
|
||||
});
|
||||
}else{
|
||||
oTable.DataTable({
|
||||
destroy: true,
|
||||
responsive: true,
|
||||
"lengthMenu": [ 50, 100, 150],
|
||||
"scrollX": true,
|
||||
"scrollY": "75vh",
|
||||
"pagingType": "full_numbers",
|
||||
"autoWidth": false,
|
||||
"bFilter": false,
|
||||
"ordering": false,
|
||||
"bLengthChange": false,
|
||||
"orderMulti": true,
|
||||
"language": {
|
||||
"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)"
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
//$('.tabspeciale').columns.adjust().draw();
|
||||
}
|
||||
catch(err){
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
function dataTableSpecialeMini(){
|
||||
|
|
@ -91895,6 +91888,26 @@ function afficher_ordonnance_beneficiaire()
|
|||
});
|
||||
}
|
||||
|
||||
// Fonction globale pour tes notifications AJAX (Wahoo Effect)
|
||||
function notification(type, message) {
|
||||
const Toast = Swal.mixin({
|
||||
toast: true,
|
||||
position: 'top-end',
|
||||
showConfirmButton: false,
|
||||
timer: 3000,
|
||||
timerProgressBar: true,
|
||||
didOpen: (toast) => {
|
||||
toast.addEventListener('mouseenter', Swal.stopTimer)
|
||||
toast.addEventListener('mouseleave', Swal.resumeTimer)
|
||||
}
|
||||
});
|
||||
|
||||
Toast.fire({
|
||||
icon: type, // 'success', 'error', 'warning', 'info'
|
||||
title: message
|
||||
});
|
||||
}
|
||||
|
||||
function gerer_garant_defaut()
|
||||
{
|
||||
codeGcAssureurDefaut=$("#codeGcAssureurDefaut").val();
|
||||
|
|
|
|||
|
|
@ -1204,6 +1204,7 @@ class Adherent extends Modele {
|
|||
|
||||
return $resultat->fetchAll(PDO::FETCH_ASSOC);
|
||||
}
|
||||
//
|
||||
|
||||
public function getPrestationsLiensParente($idAdherent){
|
||||
|
||||
|
|
|
|||
|
|
@ -41,6 +41,7 @@ class Emission extends Modele {
|
|||
$this->executerRequete($sql, array($numeroEmission, $_SESSION['codeSociete']));
|
||||
}
|
||||
|
||||
//
|
||||
public function getEmissionId($idEmission)
|
||||
{
|
||||
$sql = 'CALL sp_get_emission_id(?);';
|
||||
|
|
|
|||
|
|
@ -1010,6 +1010,7 @@ class Facture extends Modele {
|
|||
return $resultat->fetchAll(PDO::FETCH_ASSOC);
|
||||
}
|
||||
|
||||
//
|
||||
public function getbordereauxrbcl($idPolice, $d1, $d2)
|
||||
{
|
||||
$sql = 'call sp_r_get_bordereaux_rbcl(?, ?, ?)';
|
||||
|
|
|
|||
|
|
@ -1151,7 +1151,7 @@ class Gestionconfiee extends Modele {
|
|||
{
|
||||
$codeSociete = $_SESSION['codeSociete'];
|
||||
$user = $_SESSION['login'];
|
||||
|
||||
|
||||
$passAutoGen = "";
|
||||
|
||||
switch ($codeModeGenerationPass)
|
||||
|
|
|
|||
|
|
@ -1942,6 +1942,7 @@ class Police extends Modele {
|
|||
$sql = 'call sp_init_ajustement_prime(?, ?, ?, ?, ?, ?);';
|
||||
$this->executerRequete($sql, array($codeSociete, $idPolice, $dateAvenant, $user, $motifAvenant, $idSaisie));
|
||||
}
|
||||
//
|
||||
|
||||
public function fn_primes_non_facturees_police($idPolice)
|
||||
{
|
||||
|
|
@ -1950,7 +1951,7 @@ class Police extends Modele {
|
|||
$ligne = $resultat->fetch(PDO::FETCH_ASSOC);
|
||||
return $ligne['nb_non_facturees'];
|
||||
}
|
||||
|
||||
//
|
||||
public function getNomGarant($codeGcAssureur)
|
||||
{
|
||||
$sql = 'SELECT fn_garant(?) as libelle;';
|
||||
|
|
|
|||
|
|
@ -75,7 +75,6 @@
|
|||
<button type="button" class="btn btn-default" data-bs-dismiss="modal"> <?= _("Fermer") ?> </button>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
127
Vue/Recherche/index_new.php
Executable file
127
Vue/Recherche/index_new.php
Executable file
|
|
@ -0,0 +1,127 @@
|
|||
<?php
|
||||
// $this->titre = "INTER SANTE - "._("Rechercher assuré") ;
|
||||
?>
|
||||
|
||||
<div class="card shadow-sm border-0 mb-4">
|
||||
<div class="card-body p-4">
|
||||
<h5 class="card-title mb-4 text-primary fw-bold">
|
||||
<i class="bi bi-search me-2"></i><?= _("Critères de recherche de l'assuré") ?>
|
||||
</h5>
|
||||
|
||||
<form id="frmrecherche" name="frmrecherche" method="post" action="Recherche/index/">
|
||||
<div class="row g-3">
|
||||
|
||||
<div class="col-md-6">
|
||||
<label class="form-label small fw-bold text-muted"><?= _("Numéro Bénéficiaire") ?></label>
|
||||
<input class="form-control" type="text" id="numeroBeneficiaire" name="numeroBeneficiaire" autofocus autocomplete="off">
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<label class="form-label small fw-bold text-muted"><?= _("Numéro Famille") ?></label>
|
||||
<input class="form-control" type="text" id="numeroAdherent" name="numeroAdherent" autocomplete="off">
|
||||
</div>
|
||||
|
||||
<div class="col-md-6">
|
||||
<label class="form-label small fw-bold text-muted"><?= _("Nom") ?></label>
|
||||
<input class="form-control" type="text" id="nomBeneficiaire" name="nomBeneficiaire" autocomplete="off">
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<label class="form-label small fw-bold text-muted"><?= _("Prénoms") ?></label>
|
||||
<input class="form-control" type="text" id="prenomsBeneficiaire" name="prenomsBeneficiaire" autocomplete="off">
|
||||
</div>
|
||||
|
||||
<div class="col-md-6">
|
||||
<label class="form-label small fw-bold text-muted"><?= _("Tel") ?></label>
|
||||
<input class="form-control" type="text" id="telephonePortable" name="telephonePortable" autocomplete="off">
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<label class="form-label small fw-bold text-muted"><?= _("E-mail") ?></label>
|
||||
<input class="form-control" type="text" id="email" name="email" autocomplete="off">
|
||||
</div>
|
||||
|
||||
<div class="col-12">
|
||||
<input id="lancerrecherche" name="lancerrecherche" class="visually-hidden" type="submit" value="<?= _("Rechercher") ?>">
|
||||
<button type="submit" class="btn btn-primary px-4 shadow-sm float-end">
|
||||
<i class="bi bi-search me-2"></i><?= _("Rechercher") ?>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php if (is_array($derniernumerobeneficiaires) && $derniernumerobeneficiaires['nouveau']>0): ?>
|
||||
<div class="alert alert-danger shadow-sm d-flex align-items-center mb-4" role="alert">
|
||||
<i class="bi bi-exclamation-triangle-fill fs-4 me-3"></i>
|
||||
<div>
|
||||
<?= _("Cette carte")." => <strong>".$derniernumerobeneficiaires['ancien'] . "</strong> "._("a été déclarée perdue et remplacée par") ." => <strong>".$derniernumerobeneficiaires['nouveau'] ."</strong>. ". _("Veuillez ne pas le communiquer sans autorisation.") ?>
|
||||
</div>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
|
||||
<div class="card shadow-sm border-0">
|
||||
<div class="card-header bg-white py-3 border-0">
|
||||
<h5 class="mb-0 fw-bold text-muted"><?= _("Résultats de la recherche") ?></h5>
|
||||
</div>
|
||||
<div class="card-body p-0">
|
||||
<?php if (is_array($beneficiaires) && count($beneficiaires) > 0): ?>
|
||||
<div class="table-responsive">
|
||||
<table id="table_resultats" class="table table-hover align-middle mb-0" style="font-size: 0.85rem;">
|
||||
<thead class="table-light">
|
||||
<tr class="text-muted small text-uppercase">
|
||||
<th class="text-center border-0"><?= _("N° Bénéficiaire") ?></th>
|
||||
<th class="text-center border-0"><?= _("N° Famille") ?></th>
|
||||
<th class="border-0"><?= _("Nom") ?></th>
|
||||
<th class="border-0"><?= _("Prénoms") ?></th>
|
||||
<th class="text-center border-0"><?= _("Lien") ?></th>
|
||||
<th class="text-center border-0"><?= _("Naissance") ?></th>
|
||||
<th class="text-center border-0"><?= _("Genre") ?></th>
|
||||
<th class="text-center border-0"><?= _("Tél") ?></th>
|
||||
<th class="border-0"><?= _("Souscripteur") ?></th>
|
||||
<th class="border-0"><?= _("Etat") ?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php foreach ($beneficiaires as $beneficiaire):
|
||||
$idBeneficiaire = $this->nettoyer($beneficiaire['id']);
|
||||
$numeroBeneficiaire = $this->nettoyer($beneficiaire['numeroBeneficiaire']);
|
||||
?>
|
||||
<tr style="cursor: pointer;"
|
||||
onclick="selectionner_beneficiaire(<?= $idBeneficiaire ?>,'<?= $numeroBeneficiaire ?>');"
|
||||
ondblclick="selectionner_beneficiaire(<?= $idBeneficiaire ?>,'<?= $numeroBeneficiaire ?>'); afficher_beneficiaire_id();">
|
||||
|
||||
<td class="text-center">
|
||||
<button type="button" class="btn btn-sm btn-outline-primary fw-bold"
|
||||
onclick="selectionner_beneficiaire(<?= $idBeneficiaire ?>,'<?= $numeroBeneficiaire ?>'); afficher_beneficiaire_id();">
|
||||
<?= $numeroBeneficiaire ?>
|
||||
</button>
|
||||
</td>
|
||||
<td class="text-center"><?= $this->nettoyer($beneficiaire['numeroAdherent']) ?></td>
|
||||
<td class="fw-bold text-dark"><?= $this->nettoyer($beneficiaire['nomBeneficiaire']) ?></td>
|
||||
<td><?= $this->nettoyer($beneficiaire['prenomsBeneficiaire']) ?></td>
|
||||
<td class="text-center"><?= $this->nettoyer($beneficiaire['codeLienParente']) ?></td>
|
||||
<td class="text-center small"><?= dateLang($this->nettoyer($beneficiaire['dateNaissance'])) ?></td>
|
||||
<td class="text-center"><?= $this->nettoyer($beneficiaire['sexe']) ?></td>
|
||||
<td class="text-center small"><?= $this->nettoyer($beneficiaire['telephonePortable']) ?></td>
|
||||
<td class="small"><?= $this->nettoyer($beneficiaire['nomClient']) ?></td>
|
||||
<td>
|
||||
<?php
|
||||
$etat = $this->nettoyer($beneficiaire['codeEtatBeneficiaire']);
|
||||
$badgeClass = ($etat == 'ACTIF') ? 'bg-success' : 'bg-secondary';
|
||||
?>
|
||||
<span class="badge <?= $badgeClass ?>-light text-<?= str_replace('bg-','',$badgeClass) ?> rounded-pill">
|
||||
<?= $etat ?>
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endforeach; ?>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<?php else: ?>
|
||||
<div class="p-5 text-center text-muted">
|
||||
<i class="bi bi-info-circle fs-2 d-block mb-3"></i>
|
||||
<?= _("Aucun résultat à afficher. Veuillez lancer une recherche.") ?>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</div>
|
||||
36
Vue/contexte.php
Executable file
36
Vue/contexte.php
Executable file
|
|
@ -0,0 +1,36 @@
|
|||
<aside id="barre_laterale_d" class="bg-white border-start d-none d-xl-block" style="width: 280px; position: sticky; top: 60px; height: calc(100vh - 60px); overflow-y: auto;">
|
||||
<div class="p-4">
|
||||
<h6 class="text-uppercase small fw-bold text-muted mb-4 text-center border-bottom pb-2"><?= _("CONTEXTE DE GESTION") ?></h6>
|
||||
|
||||
<div class="text-center mb-4">
|
||||
<div class="photo-container mb-3">
|
||||
<img src="data:image/png;base64,<?= $_SESSION['photoAssureCrypte'] ?>"
|
||||
class="rounded-circle shadow border border-3 border-white transition hover-scale"
|
||||
width="100" height="100" style="object-fit: cover;">
|
||||
</div>
|
||||
<h6 class="fw-bold mb-1"><?= _($_SESSION['nomSociete']) ?></h6>
|
||||
<span class="badge bg-success-light text-success rounded-pill px-3"><?= _("Garant Actif") ?></span>
|
||||
</div>
|
||||
|
||||
<div class="vstack gap-2">
|
||||
<?php if ($_SESSION['numeroClient_C']): ?>
|
||||
<div class="p-3 bg-light rounded-3 border-0">
|
||||
<div class="text-muted small mb-1"><?= _("Numéro Client") ?></div>
|
||||
<div class="fw-bold text-primary"><?= $_SESSION['numeroClient_C'] ?></div>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if ($_SESSION['numeroPolice_C']): ?>
|
||||
<div class="p-3 bg-light rounded-3 border-0">
|
||||
<div class="text-muted small mb-1"><?= _("Police en cours") ?></div>
|
||||
<div class="fw-bold"><?= $_SESSION['numeroPolice_C'] ?></div>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
|
||||
<div class="text-center mt-5 opacity-25 grayscale">
|
||||
<img src="Bootstrap_new/images/new/favicon.png" width="30">
|
||||
<p class="small mt-2 mb-0">© 2026 INTER SANTE</p>
|
||||
</div>
|
||||
</div>
|
||||
</aside>
|
||||
1041
Vue/gabarit copy 2.php
Executable file
1041
Vue/gabarit copy 2.php
Executable file
File diff suppressed because it is too large
Load Diff
|
|
@ -19,17 +19,11 @@
|
|||
|
||||
const MAX_COMPANY_NAME_LENGTH = 20;
|
||||
|
||||
/*
|
||||
if (strlen($_SESSION['nomSociete']) <= MAX_COMPANY_NAME_LENGTH) {
|
||||
$companyDisplayName = htmlspecialchars($_SESSION['nomSociete'], ENT_QUOTES);
|
||||
} else {
|
||||
$companyDisplayName = strtoupper($_SESSION['codeSociete']);
|
||||
}
|
||||
*/
|
||||
$companyDisplayName = htmlspecialchars($_SESSION['nomSociete'], ENT_QUOTES);
|
||||
$modeDev = $_SESSION['modeDev_C'];
|
||||
|
||||
$imgData = $_SESSION['photoAssureCrypte'];
|
||||
//
|
||||
?>
|
||||
|
||||
<!doctype html>
|
||||
|
|
@ -434,7 +428,7 @@
|
|||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.0/css/all.min.css" integrity="sha512-Avb2QiuDEEvB4bZJYdft2mNjVShBftLdPG8FJ0V7irTLQ8Uo0qcPxh4Plq7G5tGm0rU+1SPhVotteLpBERwTkw==" crossorigin="anonymous" referrerpolicy="no-referrer" />
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<?php
|
||||
$style = "";
|
||||
$test = "";
|
||||
|
|
@ -480,8 +474,7 @@
|
|||
<li class="nav-item">
|
||||
<a title="<?= _("Gestionnaire d'assurance santé");?>" style="margin-left:10px; margin-right:10px;" class="nav-link nav-icon" href="javascript:infos_entite();">
|
||||
|
||||
<!-- <img src="<?= $_SESSION['lienLogo'] ?>" alt="Profile" style="width:100px;max-height: 60px;"> -->
|
||||
<img src="<?= $_SESSION['lienLogo'] ?>" alt="Profile" style="max-height: 60px;">
|
||||
<img src="<?= $_SESSION['lienLogo'] ?>" alt="Profile" style="width:100px;max-height: 60px;">
|
||||
|
||||
<span > <?=$companyDisplayName?> </span>
|
||||
|
||||
|
|
@ -636,8 +629,9 @@
|
|||
/*
|
||||
var_dump(
|
||||
array(
|
||||
"codeGcAssureurDefaut" => $_SESSION['codeGcAssureurDefaut'],
|
||||
"codeGcAssureur_C" => $_SESSION['codeGcAssureur_C'],
|
||||
"nomSociete" => $_SESSION['nomSociete'],
|
||||
"kane" => "KANE LAZ",
|
||||
"sorel" => "SOREL",
|
||||
)
|
||||
);
|
||||
exit();
|
||||
|
|
@ -819,22 +813,21 @@
|
|||
<div class="modal fade" id="popmessagerie" role="dialog">
|
||||
<div class="modal-dialog modal-lg">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-bs-dismiss="modal"> <?= _("Fermer") ?> </button>
|
||||
<h4 class="modal-title"> <?= _("Messages non lus") ?> </h4>
|
||||
</div>
|
||||
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-bs-dismiss="modal"> <?= _("Fermer") ?> </button>
|
||||
<h4 class="modal-title"> <?= _("Messages non lus") ?> </h4>
|
||||
</div>
|
||||
|
||||
<div class="modal-body">
|
||||
<div id="div_messagerie">
|
||||
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div id="div_messagerie">
|
||||
|
||||
</div>
|
||||
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default" data-bs-dismiss="modal"> <?= _("Fermer") ?> </button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default" data-bs-dismiss="modal"> <?= _("Fermer") ?> </button>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -975,7 +968,7 @@
|
|||
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/toastr.js/latest/toastr.min.js" integrity="sha512-VEd+nq25CkR676O+pLBnDW09R7VQX9Mdiij052gVCp5yVH3jGtH70Ho/UUv4mJDsEdTvqRCFZg0NKGiojGnUCw==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
|
||||
|
||||
<script src="Js/fonctions.js?ver=2026.01.31.00"></script>
|
||||
<script src="Js/fonctions.js?ver=2025.12.20.12"></script>
|
||||
|
||||
<script src="https://unpkg.com/vue@3/dist/vue.global.prod.js"></script>
|
||||
|
||||
|
|
|
|||
116
Vue/gabarit_new.php
Executable file
116
Vue/gabarit_new.php
Executable file
|
|
@ -0,0 +1,116 @@
|
|||
<?php
|
||||
require_once 'gabarit_queries.php';
|
||||
$gabary = new Gabary();
|
||||
|
||||
$_SESSION['firstLevelMenu']='';
|
||||
$current_url = $_SERVER['REQUEST_URI'];
|
||||
$elements = explode("/", $current_url);
|
||||
$activeLink = $elements[1];
|
||||
$fullPath = $gabary->get_full_path($activeLink);
|
||||
$fullPath = explode("\ ", $fullPath);
|
||||
|
||||
$activeLevel1 = $activeLink;
|
||||
$activeLevel2 = sizeof($fullPath)>1?$fullPath[1]:'';
|
||||
$activeLevel3 =sizeof($fullPath)>2?$fullPath[2]:'';
|
||||
$activeLevel4 = sizeof($fullPath)>3?$fullPath[3]:'';
|
||||
$activeLevel5 = sizeof($fullPath)>4?$fullPath[4]:'';
|
||||
|
||||
$_SESSION['firstLevelMenu']=$activeLink;
|
||||
|
||||
const MAX_COMPANY_NAME_LENGTH = 20;
|
||||
|
||||
$companyDisplayName = htmlspecialchars($_SESSION['nomSociete'], ENT_QUOTES);
|
||||
$modeDev = $_SESSION['modeDev_C'];
|
||||
|
||||
$imgData = $_SESSION['photoAssureCrypte'];
|
||||
//
|
||||
?>
|
||||
|
||||
<!doctype html>
|
||||
<html lang="fr">
|
||||
<?php require_once 'head.php'; ?>
|
||||
<body class="d-flex flex-column min-vh-100 bg-light">
|
||||
|
||||
<?php include 'header.php'; ?>
|
||||
|
||||
<div class="d-flex flex-grow-1" style="margin-top: 60px;">
|
||||
|
||||
<?php include 'sidebar.php'; ?>
|
||||
|
||||
<main id="main" class="main flex-grow-1 p-3 p-md-4 transition">
|
||||
<nav aria-label="breadcrumb" class="mb-4 d-none d-md-block">
|
||||
<ol class="breadcrumb shadow-sm bg-white p-2 px-3 rounded-pill">
|
||||
<li class="breadcrumb-item small"><a href="#" class="text-decoration-none text-muted"><?= _("INTER SANTE") ?></a></li>
|
||||
<li class="breadcrumb-item small text-primary fw-bold active"><?= strtoupper(_($activeLevel1)) ?></li>
|
||||
</ol>
|
||||
</nav>
|
||||
|
||||
<div class="container-fluid p-0">
|
||||
<?= $contenu; ?>
|
||||
</div>
|
||||
</main>
|
||||
|
||||
<?php include 'contexte.php'; ?>
|
||||
</div>
|
||||
|
||||
<div id="modals-container">
|
||||
<div class="modal fade" id="popmessagerie" tabindex="-1" aria-hidden="true">
|
||||
<div class="modal-dialog modal-lg modal-dialog-centered">
|
||||
<div class="modal-content border-0 shadow-lg">
|
||||
<div class="modal-header bg-light">
|
||||
<h5 class="modal-title fw-bold text-primary"><i class="bi bi-envelope-paper me-2"></i><?= _("Messages non lus") ?></h5>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal"></button>
|
||||
</div>
|
||||
<div class="modal-body"><div id="div_messagerie"></div></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal fade" id="pop_photo" tabindex="-1" aria-hidden="true">
|
||||
<div class="modal-dialog modal-dialog-centered">
|
||||
<div class="modal-content border-0 shadow-lg text-center p-3">
|
||||
<img src="data:image/png;base64,<?= $_SESSION['photoAssureCrypte'] ?>" class="img-fluid rounded shadow">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script src="Bootstrap/js/jquery.min.js"></script>
|
||||
<script src="Bootstrap/js/jquery-ui.js"></script>
|
||||
<script src="Bootstrap/vendor/bootstrap/js/bootstrap.bundle.min.js"></script>
|
||||
|
||||
<script src="Bootstrap_new/datatables/datatable.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
|
||||
<script src="Js/html2pdf.js"></script>
|
||||
<script src="Bootstrap_new/js/select2.min.js"></script>
|
||||
<script src="Bootstrap/js/timer.jquery.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>
|
||||
|
||||
<?php if (est_anglophone()) : ?>
|
||||
<script src="Js/datepicker-eng.js"></script>
|
||||
<?php else: ?>
|
||||
<script src="Js/datepicker-fr.js"></script>
|
||||
<?php endif; ?>
|
||||
|
||||
<script src="Js/fonctions.js?ver=2025.11.29.09"></script>
|
||||
<script src="<?= $_SESSION['dossierSociete'].'/Js/societe.js' ?>"></script>
|
||||
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function() {
|
||||
// Toggle Sidebar
|
||||
$('.toggle-sidebar-btn').on('click', function() {
|
||||
$('body').toggleClass('toggle-sidebar');
|
||||
});
|
||||
|
||||
// Initialisation métier
|
||||
raffraichier_gabarit();
|
||||
|
||||
$('#timer').timer({
|
||||
duration: '60s',
|
||||
callback: function() { raffraichier_messagerie(); },
|
||||
repeat: true
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<div id="div_ajaxgabarit" class="d-none"></div>
|
||||
</body>
|
||||
</html>
|
||||
30
Vue/head.php
Executable file
30
Vue/head.php
Executable file
|
|
@ -0,0 +1,30 @@
|
|||
<head>
|
||||
<meta charset="UTF-8"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
|
||||
<base href="<?= $racineWeb ?>" >
|
||||
|
||||
<!-- Favicons -->
|
||||
<link rel="icon" href="Bootstrap_new/images/favicon.ico"/>
|
||||
|
||||
<title><?= $_SESSION['vue'] ?></title>
|
||||
|
||||
<!-- Google Fonts -->
|
||||
<link href="https://fonts.gstatic.com" rel="preconnect">
|
||||
<link href="https://fonts.googleapis.com/css?family=Open+Sans:300,300i,400,400i,600,600i,700,700i|Nunito:300,300i,400,400i,600,600i,700,700i|Poppins:300,300i,400,400i,500,500i,600,600i,700,700i" rel="stylesheet">
|
||||
|
||||
<!-- Vendor CSS Files -->
|
||||
<link href="Bootstrap/vendor/bootstrap/css/bootstrap.min.css" rel="stylesheet">
|
||||
<link href="Bootstrap/vendor/bootstrap-icons/bootstrap-icons.css" rel="stylesheet">
|
||||
<link href="Bootstrap_new/css/select2.min.css" rel="stylesheet">
|
||||
<link href="https://cdn.jsdelivr.net/npm/sweetalert2@11/dist/sweetalert2.min.css" rel="stylesheet">
|
||||
<link rel="stylesheet" href="Bootstrap_new/datatables/datatable.min.css" crossorigin="anonymous">
|
||||
<link href="Bootstrap_new/css/style_moderne.css?ver=2026.01.30.00" rel="stylesheet">
|
||||
|
||||
<!-- Libraries -->
|
||||
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/chartjs-plugin-datalabels@2.0.0"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/chartjs-plugin-annotation@1.0.2"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/2.5.1/jspdf.umd.min.js"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/html2canvas/1.4.1/html2canvas.min.js"></script>
|
||||
</head>
|
||||
47
Vue/header.php
Executable file
47
Vue/header.php
Executable file
|
|
@ -0,0 +1,47 @@
|
|||
<?php
|
||||
$styleHeader = "";
|
||||
$labelTest = "";
|
||||
if($_SESSION['bdTests_C'] == "1"){
|
||||
$colorTests = $_SESSION['colorTests'];
|
||||
$styleHeader = "border-bottom: 4px solid $colorTests;";
|
||||
$labelTest = '<span class="badge bg-danger ms-2">'. _("MODE TEST") .'</span>';
|
||||
}
|
||||
$flag = (est_anglophone()) ? 'england.png' : 'france.png';
|
||||
?>
|
||||
<header id="header" class="header fixed-top d-flex align-items-center bg-white shadow-sm" style="<?= $styleHeader ?>">
|
||||
<div class="d-flex align-items-center justify-content-between px-3" style="width: 260px;">
|
||||
<a class="logo d-flex align-items-center text-decoration-none">
|
||||
<img src="Bootstrap_new/images/new/favicon.png" alt="Logo" height="30">
|
||||
<span class="fs-5 fw-bold ms-2 text-dark"><?= _("INTER SANTE") ?></span>
|
||||
</a>
|
||||
<i class="bi bi-list toggle-sidebar-btn fs-4 border-0 bg-transparent cursor-pointer" id="btn-toggle"></i>
|
||||
</div>
|
||||
|
||||
<div class="ms-auto d-flex align-items-center pe-3">
|
||||
<?= $labelTest ?>
|
||||
|
||||
<div class="dropdown mx-3">
|
||||
<a href="#" class="nav-link dropdown-toggle d-flex align-items-center" data-bs-toggle="dropdown">
|
||||
<img src="Bootstrap_new/images/<?= $flag ?>" width="20" class="me-2">
|
||||
<span class="d-none d-md-block"><?= (est_anglophone()) ? _("English") : _("Français") ?></span>
|
||||
</a>
|
||||
<ul class="dropdown-menu dropdown-menu-end shadow border-0">
|
||||
<li><a class="dropdown-item" href="javascript:change_langue();"><i class="bi bi-translate me-2"></i><?= _("Changer de langue") ?></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="dropdown">
|
||||
<a href="#" class="nav-link d-flex align-items-center" data-bs-toggle="dropdown">
|
||||
<div class="bg-primary text-white rounded-circle d-flex align-items-center justify-content-center fw-bold shadow-sm" style="width: 35px; height: 35px;">
|
||||
<?= $_SESSION['userInitials_C'] ?>
|
||||
</div>
|
||||
</a>
|
||||
<ul class="dropdown-menu dropdown-menu-end shadow border-0">
|
||||
<li class="px-3 py-2 small fw-bold text-muted border-bottom"><?= $_SESSION['utilisateur_C'] ?></li>
|
||||
<li><a class="dropdown-item mt-2" href="javascript:change_password();"><i class="bi bi-key me-2"></i><?= _("Mot de passe") ?></a></li>
|
||||
<li><hr class="dropdown-divider"></li>
|
||||
<li><a class="dropdown-item text-danger" href="Deconnexion/"><i class="bi bi-box-arrow-right me-2"></i><?= _("Déconnexion") ?></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
36
Vue/sidebar.php
Executable file
36
Vue/sidebar.php
Executable file
|
|
@ -0,0 +1,36 @@
|
|||
<aside id="sidebar" class="sidebar">
|
||||
<div class="p-3">
|
||||
<ul class="nav nav-pills flex-column" id="sidebar-nav">
|
||||
<?php foreach ($menus as $key0 => $menuParent):
|
||||
$menuChildren = $gabary->get_menus_by_parent_code($menuParent['vue']);
|
||||
$hasChildren = count($menuChildren) > 0;
|
||||
$isActive = (strtolower($menuParent['libeleMenu']) == strtolower($activeLevel1));
|
||||
?>
|
||||
<li class="nav-item mb-1">
|
||||
<a class="nav-link d-flex align-items-center <?= $isActive ? 'active bg-primary text-white' : 'text-white-50' ?> <?= $hasChildren ? 'collapsed' : '' ?>"
|
||||
<?= $hasChildren ? 'data-bs-toggle="collapse" data-bs-target="#menu'.$key0.'"' : 'href="'.$menuParent['lienMenu'].'"' ?>>
|
||||
<i class="<?= $menuParent['icone'] ?> fs-5 me-3"></i>
|
||||
<span class="flex-grow-1"><?= _($menuParent['libeleMenu']) ?></span>
|
||||
<?php if($hasChildren): ?><i class="bi bi-chevron-down small opacity-50"></i><?php endif; ?>
|
||||
</a>
|
||||
|
||||
<?php if($hasChildren): ?>
|
||||
<div class="collapse ps-3 mt-1 <?= $isActive ? 'show' : '' ?>" id="menu<?= $key0 ?>" data-bs-parent="#sidebar-nav">
|
||||
<ul class="nav flex-column border-start border-secondary border-opacity-25 ms-2">
|
||||
<?php foreach ($menuChildren as $child):
|
||||
$isSubActive = (explode('/',$child['lienMenu'])[0] == $_SESSION['firstLevelMenu']);
|
||||
?>
|
||||
<li class="nav-item">
|
||||
<a href="<?= $child['lienMenu'] ?>" class="nav-link py-1 small <?= $isSubActive ? 'text-white fw-bold' : 'text-white-50' ?>">
|
||||
<?= _($child['libeleMenu']) ?>
|
||||
</a>
|
||||
</li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
</li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
</div>
|
||||
</aside>
|
||||
Loading…
Reference in New Issue
Block a user