This commit is contained in:
KONE SOREL 2026-01-12 19:35:34 +00:00
parent 484d163364
commit eb3af87f1d
7 changed files with 666 additions and 298 deletions

View File

@ -3922,3 +3922,212 @@ function consulter_facture_pop(idFacture)
}
});
}
function consulterfacturefeuillemaladie_pop()
{
idFacture = $("#idFacture").val();
$("#div_facture_detail").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 = 'idFacture='+idFacture;
if(isNaN(idFacture))
{
v_msg="Valeur numérique exigée!";
v_msgEng="Numeric value required!";
alert_ebene(v_msg, v_msgEng);
$("#idFacture").val("0");
$("#idFacture").focus();
return;
}
$.ajax({
url: $("#racineWeb").val()+"Ajaxfactureconspop/feuillemaladie/",
type: 'POST',
data: donnees,
success: function(data) {
$("#div_facture_detail").html(data);
},
error: function(data) {
},
complete: function() {
}
});
}
function consulterfactureprestationactes_pop()
{
idFacture = $("#idFacture").val();
$("#div_facture_detail").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 = 'idFacture='+idFacture;
if(isNaN(idFacture))
{
v_msg="Valeur numérique exigée!";
v_msgEng="Numeric value required!";
alert_ebene(v_msg, v_msgEng);
$("#idFacture").val("0");
$("#idFacture").focus();
return;
}
$.ajax({
url: $("#racineWeb").val()+"Ajaxfactureconspop/prestationactes/",
type: 'POST',
data: donnees,
success: function(data) {
$("#div_facture_detail").html(data);
},
error: function(data) {
},
complete: function() {
}
});
}
function consulterfacturemedicaments_pop()
{
idFacture = $("#idFacture").val();
$("#div_facture_detail").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 = 'idFacture='+idFacture;
if(isNaN(idFacture))
{
v_msg="Valeur numérique exigée!";
v_msgEng="Numeric value required!";
alert_ebene(v_msg, v_msgEng);
$("#idFacture").val("0");
$("#idFacture").focus();
return;
}
$.ajax({
url: $("#racineWeb").val()+"Ajaxfactureconspop/medicaments/",
type: 'POST',
data: donnees,
success: function(data) {
$("#div_facture_detail").html(data);
},
error: function(data) {
},
complete: function() {
}
});
}
function consulterfactureverres_pop()
{
idFacture = $("#idFacture").val();
$("#div_facture_detail").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 = 'idFacture='+idFacture;
if(isNaN(idFacture))
{
v_msg="Valeur numérique exigée!";
v_msgEng="Numeric value required!";
alert_ebene(v_msg, v_msgEng);
$("#idFacture").val("0");
$("#idFacture").focus();
return;
}
$.ajax({
url: $("#racineWeb").val()+"Ajaxfactureconspop/verres/",
type: 'POST',
data: donnees,
success: function(data) {
$("#div_facture_detail").html(data);
},
error: function(data) {
},
complete: function() {
}
});
}
function consulterfactureged_pop()
{
idFacture = $("#idFacture").val();
$("#div_facture_detail").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 = 'idFacture='+idFacture;
if(isNaN(idFacture))
{
v_msg="Valeur numérique exigée!";
v_msgEng="Numeric value required!";
alert_ebene(v_msg, v_msgEng);
$("#idFacture").val("0");
$("#idFacture").focus();
return;
}
$.ajax({
url: $("#racineWeb").val()+"Ajaxfactureconspop/geds/",
type: 'POST',
data: donnees,
success: function(data) {
$("#div_facture_detail").html(data);
},
error: function(data) {
},
complete: function() {
}
});
}

View File

@ -1,134 +1,136 @@
<div id="div_facture_detail">
<?php
$actVisible = $_SESSION['actVisible'];
$codeTypeAffection = $this->nettoyer($feuillemaladie['codeTypeAffection']);
<div id="div_facture_detail" class="mt-3">
<?php
$actVisible = "0"; //$_SESSION['actVisible'];
$AffectionVisible = "0"; //$_SESSION['AffectionVisible'];
// Gestion de la langue et de la confidentialité
if (est_anglophone()) {
$libelleAffection = $this->nettoyer($feuillemaladie['libelleAffectionEng']);
$raisonconsultation = $this->nettoyer($feuillemaladie['raisonconsultationEng']);
} else {
$libelleAffection = $this->nettoyer($feuillemaladie['libelleAffection']);
$raisonconsultation = $this->nettoyer($feuillemaladie['raisonconsultation']);
}
if($AffectionVisible != "1") {
$libelleAffection = $this->nettoyer($feuillemaladie['codeAffection']);
}
?>
$codeAffection = $this->nettoyer($feuillemaladie['codeAffection']);
<div class="d-flex align-items-center bg-success text-white p-2 rounded-top">
<i class="fa-solid fa-notes-medical me-2 ms-1"></i>
<span class="fw-bold text-uppercase small"><?= _("Informations sur la consultation") ?></span>
</div>
<div class="card border-0 shadow-sm rounded-0 rounded-bottom mb-4">
<div class="card-body bg-light">
<div class="row g-3 mb-3">
<div class="col-md-3">
<label class="extra-small text-muted text-uppercase fw-bold"><?= _("No Feuille") ?></label>
<div class="fw-bold border-bottom"><?= $this->nettoyer($feuillemaladie['numeroFeuilleMaladie']) ?></div>
</div>
<div class="col-md-2">
<label class="extra-small text-muted text-uppercase fw-bold"><?= _("Date Cons.") ?></label>
<div class="fw-bold border-bottom"><?= dateLang($this->nettoyer($feuillemaladie['dateConsultation'])) ?></div>
</div>
<div class="col-md-4">
<label class="extra-small text-muted text-uppercase fw-bold"><?= _("Prestataire") ?></label>
<div class="fw-bold border-bottom text-truncate"><?= $this->nettoyer($feuillemaladie['prestataire']) ?></div>
</div>
<div class="col-md-3">
<label class="extra-small text-muted text-uppercase fw-bold"><?= _("Médecin") ?></label>
<div class="fw-bold border-bottom"><?= $this->nettoyer($feuillemaladie['medecinConsultation']) ?></div>
</div>
</div>
if (est_anglophone())
{
$libelleAffection = $this->nettoyer($feuillemaladie['libelleAffectionEng']);
$raisonconsultation = $this->nettoyer($feuillemaladie['raisonconsultationEng']);
}
else
{
$libelleAffection = $this->nettoyer($feuillemaladie['libelleAffection']);
$raisonconsultation = $this->nettoyer($feuillemaladie['raisonconsultation']);
}
$AffectionVisible = $_SESSION['AffectionVisible'];
if($AffectionVisible!="1")
{
$libelleAffection = $codeAffection;
}
?>
<input style='text-align:center; font-size:11pt; background-color:green;color:white;' class="form-control" type="text" value="<?= _("Informations sur la consultation") ?>" disabled >
<table class="table table-responsive table-condensed" style="font-size:7pt;">
<tbody>
<tr>
<td width="7%"> <?= _("No Feuille") ?> </td>
<td width="13%"> <INPUT style="font-size:7pt;" class="form-control" value="<?= $this->nettoyer($feuillemaladie['numeroFeuilleMaladie']) ?>" readonly></td>
<td width="7%" style='text-align:center'> <?= _("Date Cons") ?> </td>
<td width="10%" ><INPUT style="font-size:7pt;" class="form-control" value="<?= dateLang($this->nettoyer($feuillemaladie['dateConsultation'])) ?>" readonly></td>
<div class="row g-2 p-2 bg-white rounded border mb-3">
<?php
$bons = [
'Cons.' => $feuillemaladie['numeroBonConsultation'],
'Phar.' => $feuillemaladie['numeroBonOrdonnance'],
'Hosp.' => $feuillemaladie['numeroBonHospitalisation'],
'Opt.' => $feuillemaladie['numeroBonOptique'],
'Exam.' => $feuillemaladie['numeroBonExamen'],
'Kine.' => $feuillemaladie['numeroBonKine']
];
foreach($bons as $lbl => $val): ?>
<div class="col-md-2">
<div class="p-1 border rounded bg-light text-center">
<div class="extra-small text-muted fw-bold"><?= $lbl ?></div>
<div class="small fw-bold"><?= $this->nettoyer($val) ?: '-' ?></div>
</div>
</div>
<?php endforeach; ?>
</div>
<td width="7%" style='text-align:center'> <?= _("Prestataire") ?> </td>
<td width="25%" ><INPUT style="font-size:7pt;" class="form-control" value="<?= $this->nettoyer($feuillemaladie['prestataire']) ?>" readonly></td>
<div class="row g-3">
<div class="col-md-4 border-end">
<label class="extra-small text-muted text-uppercase fw-bold"><?= _("Raison Consultation") ?></label>
<div class="small italic text-secondary"><?= $raisonconsultation ?></div>
</div>
<div class="col-md-8">
<label class="extra-small text-muted text-uppercase fw-bold"><?= _("Affection Principale") ?></label>
<div class="p-2 bg-white border rounded fw-bold text-success text-center">
<i class="fa-solid fa-disease me-2"></i><?= $libelleAffection ?>
</div>
</div>
</div>
</div>
</div>
<td width="7%" style='text-align:center'> <?= _("Médecin") ?> </td>
<td><INPUT style="font-size:7pt;" class="form-control" value="<?= $this->nettoyer($feuillemaladie['medecinConsultation']) ?>" readonly></td>
</tr>
<div class="table-responsive shadow-sm">
<table class="table table-hover align-middle border mb-0" style="font-size: 0.8rem;">
<thead class="table-secondary">
<tr>
<th class="ps-3"><?= _("Date Diagnostic") ?></th>
<th><?= _("Diagnostic détaillé") ?></th>
<th class="text-center"><?= _("Saisi par") ?></th>
<th class="text-center bg-light border-start" colspan="2"><?= _("Historique Suppression") ?></th>
</tr>
<tr class="extra-small text-uppercase text-muted bg-light">
<th colspan="3"></th>
<th class="text-center border-start"><?= _("Utilisateur") ?></th>
<th class="text-center"><?= _("Date/Heure") ?></th>
</tr>
</thead>
<tbody>
<?php foreach ($diagnostics as $diagnostic):
$isSupprime = ($this->nettoyer($diagnostic['supprime']) == '1');
$rowStyle = $isSupprime ? 'style="background-color: #fff5f5; opacity: 0.7;"' : '';
$codeAff = $this->nettoyer($diagnostic['codeAffection']);
$libAff = est_anglophone() ? $this->nettoyer($diagnostic['libelleAffectionEng']) : $this->nettoyer($diagnostic['libelleAffection']);
if($AffectionVisible != "1") { $libAff = $codeAff; }
else { $libAff .= " <span class='badge bg-light text-dark border'>$codeAff</span>"; }
?>
<tr <?= $rowStyle ?>>
<td class="ps-3">
<?= dateheureLang($this->nettoyer($diagnostic['dateSysteme'])) ?>
</td>
<td>
<?php if($isSupprime): ?><i class="fa-solid fa-ban text-danger me-2"></i><del><?php endif; ?>
<?= $libAff ?>
<?php if($isSupprime): ?></del><?php endif; ?>
</td>
<td class="text-center fw-bold text-muted">
<?= $this->nettoyer($diagnostic['codeUtilisateur']) ?>
</td>
<td class="text-center border-start text-danger small">
<?= $this->nettoyer($diagnostic['userSuppression']) ?>
</td>
<td class="text-center text-danger small">
<?= dateheureLang($this->nettoyer($diagnostic['heueSuppression'])) ?>
</td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
</div>
</div>
<tr>
<td > <?= _("Bon Cons") ?> </td>
<td><INPUT style="font-size:7pt;" class="form-control" value="<?= $this->nettoyer($feuillemaladie['numeroBonConsultation']) ?>" readonly></td>
<td style='text-align:center'> <?= _("Bon Phar") ?> </td>
<td><INPUT style="font-size:7pt;" class="form-control" value="<?= $this->nettoyer($feuillemaladie['numeroBonOrdonnance']) ?>" readonly></td>
<td style='text-align:center'> <?= _("Bon Hospit") ?> </td>
<td><INPUT style="font-size:7pt;" class="form-control" value="<?= $this->nettoyer($feuillemaladie['numeroBonHospitalisation']) ?>" readonly></td>
<td style='text-align:center'> <?= _("Bon Opt") ?> </td>
<td><INPUT style="font-size:7pt;" class="form-control" value="<?= $this->nettoyer($feuillemaladie['numeroBonOptique']) ?>" readonly></td>
</tr>
<tr>
<td > <?= _("Bon Exam") ?> </td>
<td><INPUT style="font-size:7pt;" class="form-control" value="<?= $this->nettoyer($feuillemaladie['numeroBonExamen']) ?>" readonly></td>
<td style='text-align:center'> <?= _("Bon Kine") ?> </td>
<td><INPUT style="font-size:7pt;" class="form-control" value="<?= $this->nettoyer($feuillemaladie['numeroBonKine']) ?>" readonly></td>
<td style='text-align:center'> <?= _("Chambre") ?> </td>
<td><INPUT style="font-size:7pt;" class="form-control" value="<?= $this->nettoyer($feuillemaladie['numeroChambre']) ?>" readonly></td>
<td style='text-align:center'> <?= _("Rais Cons") ?> </td>
<td><INPUT style="font-size:7pt;" class="form-control" value="<?= $raisonconsultation ?>" readonly></td>
</tr>
<tr>
<td> <?= _("Affection") ?> </td>
<td colspan="7">
<INPUT style='font-size:10pt; text-align:center;' class="form-control" TYPE="text" value="<?= $libelleAffection ?>" readonly >
</td>
</tr>
</tbody>
</table>
<table class="table table-striped table-bordered table-condensed table-responsive" style="font-size:7pt;">
<thead>
<tr>
<th rowspan="2" width="15%" style="text-align:center"> Date </th>
<th rowspan="2" style="text-align:center"> Diagnostic </th>
<th rowspan="2" width="15%" style="text-align:center"> User </th>
<th colspan="2" style='text-align:center'> <?= _("Suppression") ?> </th>
</tr>
<tr>
<th style="text-align:center"> User </th>
<th style="text-align:center"> Date </th>
</tr>
</thead>
<tbody>
<?php foreach ($diagnostics as $diagnostic):
$idDiagnostic = $this->nettoyer($diagnostic['id']);
$supprime = $this->nettoyer($diagnostic['supprime']);
$codeAffection = $this->nettoyer($diagnostic['codeAffection']);
if (est_anglophone())
{
$libelleAffection = $this->nettoyer($diagnostic['libelleAffectionEng'])." => ".$codeAffection;
}
else
{
$libelleAffection = $this->nettoyer($diagnostic['libelleAffection'])." => ".$codeAffection;
}
$AffectionVisible = $_SESSION['AffectionVisible'];
if($AffectionVisible!="1")
{
$libelleAffection = $codeAffection;
}
?>
<?php if($supprime=='1'): ?>
<tr valign="top" style="background-color: red;color:white;">
<?php else: ?>
<tr valign="top">
<?php endif; ?>
<td align='center'><?= dateheureLang($this->nettoyer($diagnostic['dateSysteme'])) ?></td>
<td align='center'> <?= $libelleAffection ?> </td>
<td align='center'> <?= $this->nettoyer($diagnostic['codeUtilisateur']) ?> </td>
<td align='center'> <?= $this->nettoyer($diagnostic['userSuppression']) ?> </td>
<td align='center'><?= dateheureLang($this->nettoyer($diagnostic['heueSuppression'])) ?></td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
</div>
<style>
.extra-small { font-size: 0.65rem; }
.italic { font-style: italic; }
.bg-light { background-color: #f8f9fa !important; }
</style>

View File

@ -1,29 +1,75 @@
<div id="div_facture_detail">
<div id="div_facture_detail" class="mt-3">
<div id="div_ged">
<div class="card border-0 shadow-sm">
<div class="card-header bg-dark text-white py-2 d-flex justify-content-between align-items-center">
<span class="fw-bold small text-uppercase">
<i class="fa-solid fa-folder-tree me-2"></i><?= _("Documents joints au dossier") ?>
</span>
<span class="badge bg-secondary"><?= count($geds) ?> <?= _("Fichier(s)") ?></span>
</div>
<div id="div_ged">
<table class="table table-striped table-bordered table-hover table-condensed table-responsive" style="font-size:10pt;">
<thead>
<th width="20%" style='text-align:center'> Date </th>
<th style='text-align:center'> <?= _("Document GED") ?> </th>
<th width="10%" style='text-align:center'> <?= _("Télécharger") ?> </th>
</thead>
<tbody>
<?php foreach ($geds as $ged):
$idGed=$this->nettoyer($ged['idGed']);
$cheminFichier = $this->nettoyer($ged['cheminFichier']);
?>
<tr valign="top">
<td align='center'><?= dateheureLang($this->nettoyer($ged['dateSysteme'])) ?></td>
<td align='center'><?= $this->nettoyer($ged['nomOrigine']) ?></td>
<td align="center">
<a style="font-size:10pt;" href="<?= $cheminFichier ?>" target="_blank" > <?= _("Télécharger") ?> </a>
</td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
</div>
<div class="table-responsive">
<table class="table table-hover align-middle mb-0">
<thead class="table-light">
<tr>
<th width="20%" class="text-center small text-muted text-uppercase"><?= _("Date d'ajout") ?></th>
<th class="small text-muted text-uppercase"><?= _("Nom du document") ?></th>
<th width="15%" class="text-center small text-muted text-uppercase"><?= _("Action") ?></th>
</tr>
</thead>
<tbody>
<?php if (empty($geds)): ?>
<tr>
<td colspan="3" class="text-center py-4 text-muted small italic">
<i class="fa-solid fa-circle-info me-2"></i><?= _("Aucun document numérisé pour cette facture.") ?>
</td>
</tr>
<?php else: ?>
<?php foreach ($geds as $ged):
$idGed = $this->nettoyer($ged['idGed']);
$cheminFichier = $this->nettoyer($ged['cheminFichier']);
$nomFichier = $this->nettoyer($ged['nomOrigine']);
// Détection de l'icône selon l'extension
$extension = strtolower(pathinfo($nomFichier, PATHINFO_EXTENSION));
$icon = "fa-file-lines";
if(in_array($extension, ['jpg', 'jpeg', 'png'])) $icon = "fa-file-image text-info";
if($extension == 'pdf') $icon = "fa-file-pdf text-danger";
?>
<tr>
<td class="text-center">
<div class="small fw-bold text-dark"><?= dateLang($this->nettoyer($ged['dateSysteme'])) ?></div>
<div class="extra-small text-muted"><?= date('H:i', strtotime($ged['dateSysteme'])) ?></div>
</td>
<td>
<div class="d-flex align-items-center">
<i class="fa-solid <?= $icon ?> fs-4 me-3"></i>
<div class="text-truncate" style="max-width: 400px;">
<span class="fw-bold d-block small mb-0"><?= $nomFichier ?></span>
<span class="extra-small text-muted">ID: #<?= $idGed ?></span>
</div>
</div>
</td>
<td class="text-center">
<a href="<?= $cheminFichier ?>"
target="_blank"
class="btn btn-sm btn-outline-primary rounded-pill px-3 shadow-sm"
title="<?= _("Visualiser le document") ?>">
<i class="fa-solid fa-download me-1"></i> <?= _("Ouvrir") ?>
</a>
</td>
</tr>
<?php endforeach; ?>
<?php endif; ?>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
<style>
.extra-small { font-size: 0.7rem; }
.italic { font-style: italic; }
.table-hover tbody tr:hover { background-color: rgba(0,0,0,0.02); }
</style>

View File

@ -1,52 +1,85 @@
<div id="div_facture_detail">
<?php
$actVisible = $_SESSION['actVisible'];
?>
<div id="div_facture_detail" class="mt-3">
<?php $actVisible = "0"; //$_SESSION['actVisible']; ?>
<input style='text-align:center; font-size:11pt; background-color:blue;color:white;' class="form-control" type="text" value="<?= _("Les Médicaments Livrés") ?>" disabled >
<div class="d-flex align-items-center bg-primary text-white p-2 rounded-top shadow-sm">
<i class="fa-solid fa-pills me-2 ms-1"></i>
<span class="fw-bold text-uppercase small"><?= _("Médicaments Livrés") ?></span>
</div>
<table class="table table-striped table-bordered table-hover table-condensed table-responsive" style="font-size:7pt;">
<thead>
<tr>
<th width="12%" style="text-align:center"> Date </th>
<th style="text-align:center"> <?= _("Médicament") ?> </th>
<th width="8%" style="text-align:center"> <?= _("Valeur") ?> </th>
<th style="text-align:center"> <?= _("Qtité") ?> </th>
<th width="8%" style="text-align:center"> <?= _("Frais") ?> </th>
<th width="5%" style="text-align:center"> <?= _("T M") ?> </th>
<th width="8%" style="text-align:center"> <?= _("A Remb") ?> </th>
</tr>
</thead>
<tbody>
<div class="table-responsive shadow-sm border rounded-bottom">
<table class="table table-hover align-middle mb-0" style="font-size: 0.85rem;">
<thead class="table-light">
<tr class="text-uppercase small">
<th width="12%" class="ps-3"><?= _("Date") ?></th>
<th><?= _("Désignation Médicament") ?></th>
<th class="text-center"><?= _("PU") ?></th>
<th class="text-center"><?= _("Qté") ?></th>
<th class="text-end"><?= _("Frais Réels") ?></th>
<th class="text-end"><?= _("T.M") ?></th>
<th class="text-end pe-3"><?= _("A Rembourser") ?></th>
</tr>
</thead>
<tbody>
<?php foreach ($medicaments as $medicament):
$entente = $this->nettoyer($medicament['ententePrealable']);
$libelle = $this->nettoyer($medicament['libelleMedicament']);
$code = $this->nettoyer($medicament['codeMedicament']);
<?php foreach ($medicaments as $medicament):
$ententePrealable=$this->nettoyer($medicament['ententePrealable']);
$libelleMedicament = $this->nettoyer($medicament['libelleMedicament']);
$codeMedicament = $this->nettoyer($medicament['codeMedicament']);
if($actVisible != "1") { $libelle = $code; }
if($actVisible!="1")
{
$libelleMedicament = $codeMedicament;
}
?>
<?php if($ententePrealable=='2'): ?>
<tr valign="top" style="background-color: yellow;">
<?php elseif($ententePrealable=='1'): ?>
<tr valign="top" style="background-color: #00ff00;">
<?php elseif($ententePrealable=='9'): ?>
<tr valign="top" style="background-color: red;color:white;">
<?php else: ?>
<tr valign="top">
<?php endif; ?>
<td align='center'> <?= dateheureLang($this->nettoyer($medicament['dateSysteme'])) ?> </td>
<td align='center'> <?= $libelleMedicament?> </td>
<td align='center'> <?= format_N($this->nettoyer($medicament['valeurActe'])) ?></td>
<td align='center'> <?= $this->nettoyer($medicament['quantite']) ?></td>
<td align='center'> <?= format_N($this->nettoyer($medicament['fraisReel'])) ?></td>
<td align='center'> <?= format_N($this->nettoyer($medicament['montantTm'])) ?></td>
<td align='center'> <?= format_N($this->nettoyer($medicament['montantArembourser'])) ?></td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
</div>
// Logique de statut pour l'entente préalable
$statusLabel = "";
$rowClass = "";
switch($entente) {
case '1': // Accordé
$statusLabel = '<span class="badge bg-success-subtle text-success border border-success-subtle me-2" title="'._("Accordé").'"><i class="fa-solid fa-check"></i></span>';
break;
case '2': // En attente / Attention
$statusLabel = '<span class="badge bg-warning-subtle text-warning-emphasis border border-warning-subtle me-2" title="'._("En attente").'"><i class="fa-solid fa-clock"></i></span>';
break;
case '9': // Refusé
$statusLabel = '<span class="badge bg-danger text-white me-2" title="'._("Refusé").'"><i class="fa-solid fa-xmark"></i></span>';
$rowClass = "table-danger opacity-75";
break;
}
?>
<tr class="<?= $rowClass ?>">
<td class="ps-3 small text-muted">
<?= dateheureLang($this->nettoyer($medicament['dateSysteme'])) ?>
</td>
<td>
<div class="d-flex align-items-center">
<?= $statusLabel ?>
<div>
<div class="fw-bold"><?= $libelle ?></div>
<?php if($actVisible == "1"): ?>
<div class="extra-small text-muted fw-normal">Code: <?= $code ?></div>
<?php endif; ?>
</div>
</div>
</td>
<td class="text-center text-monospace small"><?= format_N($this->nettoyer($medicament['valeurActe'])) ?></td>
<td class="text-center fw-bold fw-bold"><?= $this->nettoyer($medicament['quantite']) ?></td>
<td class="text-end text-monospace"><?= format_N($this->nettoyer($medicament['fraisReel'])) ?></td>
<td class="text-end text-monospace text-danger"><?= format_N($this->nettoyer($medicament['montantTm'])) ?></td>
<td class="text-end text-monospace fw-bold text-primary pe-3">
<?= format_N($this->nettoyer($medicament['montantArembourser'])) ?>
</td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
</div>
<div class="mt-2 d-flex gap-3 extra-small text-muted ms-1">
<span><i class="fa-solid fa-check text-success"></i> Accordé</span>
<span><i class="fa-solid fa-clock text-warning"></i> En attente</span>
<span><i class="fa-solid fa-xmark text-danger"></i> Refusé / Hors panier</span>
</div>
</div>
<style>
.extra-small { font-size: 0.7rem; }
.text-monospace { font-family: 'Courier New', Courier, monospace; }
</style>

View File

@ -1,66 +1,105 @@
<div id="div_facture_detail" style="font-size:7pt;">
<?php
$actVisible = $_SESSION['actVisible'];
?>
<div id="div_facture_detail" class="mt-3">
<?php $actVisible = "0"; //$_SESSION['actVisible']; ?>
<input style='text-align:center; font-size:11pt; background-color:blue;color:white;' class="form-control" type="text" value="<?= _("Les prestations de la facture") ?>" disabled >
<div class="d-flex align-items-center bg-primary text-white p-2 rounded-top shadow-sm" style="background: linear-gradient(45deg, #0d6efd, #004085);">
<i class="fa-solid fa-hand-holding-medical me-2 ms-1"></i>
<span class="fw-bold text-uppercase small"><?= _("Prestations de la facture") ?></span>
</div>
<table class="table table-striped table-bordered table-hover table-condensed table-responsive" style="font-size:7pt;">
<thead>
<tr>
<th width="12%" style="text-align:center"> Date </th>
<th colspan="2" style="text-align:center"> <?= _("Acte") ?> </th>
<th width="8%" style="text-align:center"> <?= _("Valeur") ?> </th>
<th style="text-align:center"> <?= _("Qtité") ?> </th>
<th width="8%" style="text-align:center"> <?= _("Frais") ?> </th>
<th width="5%" style="text-align:center"> <?= _("T M") ?> </th>
<th width="8%" style="text-align:center"> <?= _("A Remb") ?> </th>
<th style="text-align:center"> Val </th>
</tr>
</thead>
<tbody>
<div class="table-responsive shadow-sm border rounded-bottom bg-white">
<table class="table table-hover align-middle mb-0" style="font-size: 0.85rem;">
<thead class="table-light">
<tr class="text-uppercase small text-muted">
<th width="12%" class="ps-3 text-center"><?= _("Date / Heure") ?></th>
<th width="8%" class="text-center"><?= _("Type") ?></th>
<th><?= _("Désignation de l'acte") ?></th>
<th class="text-center"><?= _("P.U / Valeur") ?></th>
<th class="text-center"><?= _("Qté") ?></th>
<th class="text-end"><?= _("Frais Réels") ?></th>
<th class="text-end"><?= _("Part Patient") ?></th>
<th class="text-end text-primary fw-bold"><?= _("A Rembourser") ?></th>
<th width="5%" class="text-center pe-3">Val.</th>
</tr>
</thead>
<tbody>
<?php foreach ($prestations as $prestation):
$codeType = $this->nettoyer($prestation['codeTypePrestation']);
$entente = $this->nettoyer($prestation['ententePrealable']);
$auto = $this->nettoyer($prestation['autorisation']);
$valide = $this->nettoyer($prestation['valide']);
$codeActe = $this->nettoyer($prestation['codeActe']);
$libelleActe = est_anglophone() ? $this->nettoyer($prestation['libelleActeEng']) : $this->nettoyer($prestation['libelleActe']);
<?php foreach ($prestations as $prestation):
$codeTypePrestation = $this->nettoyer($prestation['codeTypePrestation']);
$ententePrealable = $this->nettoyer($prestation['ententePrealable']);
$autorisation = $this->nettoyer($prestation['autorisation']);
$codeActe = $this->nettoyer($prestation['codeActe']);
if (est_anglophone())
{
$libelleActe = $this->nettoyer($prestation['libelleActeEng']);
}
else
{
$libelleActe = $this->nettoyer($prestation['libelleActe']);
}
if($actVisible != "1") { $libelleActe = $codeActe; }
if($actVisible!="1")
{
$libelleActe = $codeActe;
}
?>
<?php if($ententePrealable=='2' || $autorisation=='2'): ?>
<tr valign="top" style="background-color: yellow;">
<?php elseif($ententePrealable=='1' || $autorisation=='1'): ?>
<tr valign="top" style="background-color: #00ff00;">
<?php elseif($ententePrealable=='9' || $autorisation=='9'): ?>
<tr valign="top" style="background-color: red;color:white;">
<?php else: ?>
<tr valign="top">
<?php endif; ?>
<td align='center'> <?= dateheureLang($this->nettoyer($prestation['dateSysteme'])) ?> </td>
<td width="5%" align='center'> <?= $codeTypePrestation ?> </td>
<td align='center'> <?= $libelleActe ?> </td>
<td align='center'> <?= format_N($this->nettoyer($prestation['valeurActe'])) ?></td>
<td align='center'> <?= $this->nettoyer($prestation['quantite']) ?></td>
<td align='center'> <?= format_N($this->nettoyer($prestation['fraisReel'])) ?></td>
<td align='center'> <?= format_N($this->nettoyer($prestation['montantTm'])) ?></td>
<td align='center'> <?= format_N($this->nettoyer($prestation['montantArembourser'])) ?></td>
<td align='center'> <?= $this->nettoyer($prestation['valide']) ?> </td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
</div>
// Logique de statut (Entente ou Autorisation)
$rowClass = "";
$statusIcon = "";
if($entente == '9' || $auto == '9') {
$rowClass = "table-danger opacity-75";
$statusIcon = '<i class="fa-solid fa-circle-xmark text-danger me-2" title="'._("Refusé").'"></i>';
} elseif($entente == '2' || $auto == '2') {
$rowClass = "table-warning bg-opacity-10";
$statusIcon = '<i class="fa-solid fa-circle-exclamation text-warning me-2" title="'._("En attente").'"></i>';
} elseif($entente == '1' || $auto == '1') {
$statusIcon = '<i class="fa-solid fa-circle-check text-success me-2" title="'._("Accordé").'"></i>';
}
?>
<tr class="<?= $rowClass ?>">
<td class="ps-3 text-center small text-muted">
<?= dateheureLang($this->nettoyer($prestation['dateSysteme'])) ?>
</td>
<td class="text-center">
<span class="badge bg-secondary-subtle text-dark border fw-normal small"><?= $codeType ?></span>
</td>
<td>
<div class="d-flex align-items-center">
<?= $statusIcon ?>
<div class="text-truncate" style="max-width: 300px;">
<span class="fw-bold"><?= $libelleActe ?></span>
<?php if($actVisible == "1"): ?>
<div class="extra-small text-muted italic">Code: <?= $codeActe ?></div>
<?php endif; ?>
</div>
</div>
</td>
<td class="text-center text-monospace small"><?= format_N($this->nettoyer($prestation['valeurActe'])) ?></td>
<td class="text-center fw-bold"><?= $this->nettoyer($prestation['quantite']) ?></td>
<td class="text-end text-monospace"><?= format_N($this->nettoyer($prestation['fraisReel'])) ?></td>
<td class="text-end text-monospace text-danger small"><?= format_N($this->nettoyer($prestation['montantTm'])) ?></td>
<td class="text-end text-monospace fw-bold text-primary">
<?= format_N($this->nettoyer($prestation['montantArembourser'])) ?>
</td>
<td class="text-center pe-3">
<?php if($valide == '1'): ?>
<i class="fa-solid fa-shield-check text-success fs-5"></i>
<?php else: ?>
<span class="text-muted small"><?= $valide ?></span>
<?php endif; ?>
</td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
</div>
<div class="mt-2 d-flex justify-content-between align-items-center px-1">
<div class="d-flex gap-3 extra-small text-muted">
<span><i class="fa-solid fa-circle-check text-success"></i> <?= _("Accordé / Autorisé") ?></span>
<span><i class="fa-solid fa-circle-exclamation text-warning"></i> <?= _("En attente") ?></span>
<span><i class="fa-solid fa-circle-xmark text-danger"></i> <?= _("Refusé") ?></span>
</div>
<div class="extra-small italic text-muted">
<i class="fa-solid fa-info-circle me-1"></i><?= _("Les montants sont exprimés en monnaie locale.") ?>
</div>
</div>
</div>
<style>
.extra-small { font-size: 0.7rem; }
.text-monospace { font-family: 'Courier New', Courier, monospace; }
.italic { font-style: italic; }
.table-hover tbody tr:hover { background-color: rgba(13, 110, 253, 0.05) !important; }
</style>

View File

@ -1,35 +1,74 @@
<div id="div_facture_detail">
<?php
$actVisible = $_SESSION['actVisible'];
?>
<div id="div_facture_detail" class="mt-3">
<?php
$actVisible = "0"; // Force à 0 selon votre code, ou utiliser $_SESSION['actVisible']
?>
<input style='text-align:center; font-size:11pt; background-color:blue;color:white;' class="form-control" type="text" value="<?= _("Les Verres Livrés") ?>" disabled >
<div class="d-flex align-items-center bg-info text-white p-2 rounded-top shadow-sm" style="background: linear-gradient(45deg, #0dcaf0, #0aa2c0);">
<i class="fa-solid fa-glasses me-2 ms-1"></i>
<span class="fw-bold text-uppercase small"><?= _("Équipements Optiques / Verres") ?></span>
</div>
<table class="table table-striped table-bordered table-hover table-condensed table-responsive" style="font-size:7pt;">
<thead>
<tr>
<th width="15%" style="text-align:center"> Date </th>
<th style="text-align:center"> <?= _("Verres") ?> </th>
<th width="10%" style="text-align:center"> <?= _("Valeur") ?> </th>
</tr>
</thead>
<tbody>
<div class="table-responsive shadow-sm border rounded-bottom bg-white">
<table class="table table-hover align-middle mb-0" style="font-size: 0.85rem;">
<thead class="table-light">
<tr class="text-uppercase small text-muted">
<th width="20%" class="ps-3 text-center"><?= _("Date de livraison") ?></th>
<th><?= _("Description des verres") ?></th>
<th width="15%" class="text-end pe-3"><?= _("Valeur (Tarif)") ?></th>
</tr>
</thead>
<tbody>
<?php if (empty($verres)): ?>
<tr>
<td colspan="3" class="text-center py-4 text-muted small italic">
<i class="fa-solid fa-circle-info me-2"></i><?= _("Aucun verre enregistré sur cette facture.") ?>
</td>
</tr>
<?php else: ?>
<?php foreach ($verres as $verre):
$libelleVerre = $this->nettoyer($verre['libelleVerre']);
$codeOptique = $this->nettoyer($verre['codeOptique']);
<?php foreach ($verres as $verre):
$libelleVerre = $this->nettoyer($verre['libelleVerre']);
$codeOptique = $this->nettoyer($verre['codeOptique']);
// Gestion de la confidentialité (Masquage du libellé si actVisible != 1)
if($actVisible != "1") {
$displayTitle = $codeOptique;
$subTitle = "";
} else {
$displayTitle = $libelleVerre;
$subTitle = '<div class="extra-small text-muted italic">Code: '.$codeOptique.'</div>';
}
?>
<tr>
<td class="ps-3 text-center">
<div class="small fw-bold"><?= dateLang($this->nettoyer($verre['dateSysteme'])) ?></div>
<div class="extra-small text-muted"><?= date('H:i', strtotime($verre['dateSysteme'])) ?></div>
</td>
<td>
<div class="d-flex align-items-center">
<div class="bg-info bg-opacity-10 p-2 rounded me-3">
<i class="fa-solid fa-eye text-info"></i>
</div>
<div>
<span class="fw-bold d-block"><?= $displayTitle ?></span>
<?= $subTitle ?>
</div>
</div>
</td>
<td class="text-end pe-3 text-monospace fw-bold text-primary">
<?= format_N($this->nettoyer($verre['valeurActe'])) ?>
</td>
</tr>
<?php endforeach; ?>
<?php endif; ?>
</tbody>
</table>
</div>
</div>
if($actVisible!="1")
{
$libelleVerre = $codeOptique;
}
?>
<tr valign="top">
<td align='center'> <?= dateheureLang($this->nettoyer($verre['dateSysteme'])) ?> </td>
<td align='center'> <?= $libelleVerre?> </td>
<td align='center'> <?= format_N($this->nettoyer($verre['valeurActe'])) ?></td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
</div>
<style>
.extra-small { font-size: 0.7rem; }
.text-monospace { font-family: 'Courier New', Courier, monospace; }
.italic { font-style: italic; }
/* Animation légère au survol */
.table-hover tbody tr:hover { background-color: rgba(13, 202, 240, 0.05) !important; transition: 0.2s; }
</style>

View File

@ -634,7 +634,7 @@ $photoAssureCrypte = $_SESSION['photoAssureCrypte'];
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>
<!-- Application Scripts -->
<script src="/Js/fonctions.js?ver=2026.01.12.02"></script>
<script src="/Js/fonctions.js?ver=2026.01.12.03"></script>
<script type="text/javascript">
raffraichier_gabarit();