This commit is contained in:
KONE SOREL 2026-03-03 16:07:14 +00:00
parent 1d3447d69c
commit d5c843c2a0
9 changed files with 382 additions and 12 deletions

View File

@ -0,0 +1,66 @@
<?php
require_once 'Framework/Controleur.php';
require_once 'Modele/Detailtarifacte.php';
require_once 'Modele/Prestationactes.php';
class ControleurAjaxchargeractesmedicaux extends Controleur {
private $acte;
private $prescription;
public function __construct() {
$this->acte = new Detailtarifacte();
$this->prescription = new Prestationactes();
}
public function index() {
$libelle = $this->requete->getParametreFormulaire("libelle");
if ($libelle=="vide" || $libelle=="") {
$actes = $this->acte->getactesexamenvide();
}else{
$actes = $this->acte->getactesmedicauxpossibles($libelle);
}
$this->genererVueAjax(array('actes' => $actes));
}
public function actecharge()
{
$codeActe = $this->requete->getParametreFormulaire("codeActe");
$acte_charge = $this->acte->chargerinfosacte($codeActe);
$this->genererVueAjax(array('acte_charge' => $acte_charge));
}
}

View File

@ -13,17 +13,17 @@ class ControleurAjaxselectactesmedicaux extends Controleur {
} }
public function index() { public function index() {
$codeFamilleActe = $this->requete->getParametreFormulaire("codeFamilleActe"); //$codeFamilleActe = $this->requete->getParametreFormulaire("codeFamilleActe");
$numeroFeuilleMaladie = $_SESSION['p_numeroFeuilleMaladie_C']; $numeroFeuilleMaladie = $_SESSION['p_numeroFeuilleMaladie_C'];
$codePrestataire = $_SESSION['p_codePrestataire_C']; $codePrestataire = $_SESSION['p_codePrestataire_C'];
$actes = $this->acte->geatactesexamensselection($codeFamilleActe); //$actes = $this->acte->geatactesexamensselection($codeFamilleActe);
$prestations = $this->prestation->getactesmedicauxfeuille($numeroFeuilleMaladie, $codePrestataire); $prestations = $this->prestation->getactesmedicauxfeuille($numeroFeuilleMaladie, $codePrestataire);
$prestations_total = $this->prestation->getactesmedicauxfeuille_total($numeroFeuilleMaladie, $codePrestataire); $prestations_total = $this->prestation->getactesmedicauxfeuille_total($numeroFeuilleMaladie, $codePrestataire);
$this->genererVueAjax(array('actes' => $actes, 'prestations' => $prestations, 'prestations_total' => $prestations_total)); $this->genererVueAjax(array(/*'actes' => $actes, */'prestations' => $prestations, 'prestations_total' => $prestations_total));
} }
public function enregistreractemedical() public function enregistreractemedical()

View File

@ -17604,8 +17604,230 @@ $(function(){
dataTableSpeciale(); dataTableSpeciale();
$('.js-example-basic-single').select2(); $('.js-example-basic-single').select2();
$('.selectpicker').selectpicker(); $('.selectpicker').selectpicker();
$("#div_selection").hide();
$("#searchInput").keyup(debounce(function() {
const libelle = $(this).val().trim();
if (!libelle || libelle.length < 3) {
$("#div_selection").hide();
return;
}
const formHandlers = {
"selectactesmedicaux": {
link: "Ajaxchargeractesmedicaux/",
data: { libelle: libelle }
}
};
const handler = formHandlers[$('#nomForm').val()];
if (!handler) return;
/* Vérification des prérequis si nécessaire
if (handler.preCheck && !handler.preCheck()) {
return;
}
*/
// Préparation des données
const data = typeof handler.data === 'function' ? handler.data() : handler.data;
// Envoi de la requête AJAX
$.ajax({
type: "POST",
url: $("#racineWeb").val() + handler.link,
data: data,
beforeSend: function() {
$("#searchInput").css("background", "#FFF url(Bootstrap/images/LoaderIcon.gif) no-repeat 165px");
},
success: function(data) {
$("#div_selection").show().html(data);
$("#searchInput").css("background", "#FFF");
},
error: function(xhr, status, error) {
console.error("Erreur lors de la recherche:", error);
$("#searchInput").css("background", "#FFF");
}
});
}, 300));
}); });
// Fonction debounce pour limiter les appels fréquents
function debounce(func, wait, immediate) {
let timeout;
return function() {
const context = this, args = arguments;
const later = function() {
timeout = null;
if (!immediate) func.apply(context, args);
};
const callNow = immediate && !timeout;
clearTimeout(timeout);
timeout = setTimeout(later, wait);
if (callNow) func.apply(context, args);
};
}
function selectElement(val){
$("#searchInput").val(val);
$("#div_selection").hide();
}
function add_selected_acte_medicaux(controle)
{
var str = controle.split(' <==> ');
var codeActe = str[0];
var libelleActe = str[1];
var acteExclu = str[3];
if(acteExclu=="Garanti"){
acteExclu=0;
}else{
acteExclu=1;
}
if(libelleActe<=" ")
{
return;
}
if(acteExclu==1)
{
v_msg="Acte non couvert!";
v_msgEng="Not covered!";
alert_ebene(v_msg, v_msgEng);
return;
}
donnees = 'codeActe='+codeActe;
$("#div_patientez").html('<div style="text-align:center; color: #4caf50 ; font-size:14px;"><span><i class="fa fa-spinner fa-spin fa-5x" >' + '</span></div>');
$.ajax({
url: $("#racineWeb").val()+"Ajaxchargeractesmedicaux/actecharge/",
type : 'post',
data: donnees,
error: function(errorData) {
},
success: function(data) {
$("#div_patientez").html(data);
$("#searchInput").val('');
codeActe = $("#codeActe").val();
prixActe = $("#prixActe").val();
montantTm = $("#montantTm").val();
aRembourser = $("#aRembourser").val();
ententePrealable = $("#ententePrealable").val();
codeFamilleActe = $("#ententePrealable").val();
ajouter_un_acte_selection_new(codeActe, prixActe, montantTm, aRembourser, ententePrealable, codeFamilleActe);
},
complete: function(data) {
}
});
}
function ajouter_un_acte_selection_new(codeActe, prixActe, montantTm, aRembourser, ententePrealable, codeFamilleActe)
{
donnee_a_affciher = "";
donnees=""
donnees_sav="";
codeMedecin = $("#codeMedecin").val();
if (codeMedecin<=" ")
{
v_msg="Veuillez sélectionner un médecin!";
v_msgEng="Please select a doctor!";
alert_ebene(v_msg, v_msgEng);
$("#nomMedecin").focus();
return;
}
if (codeActe<=" ")
{
v_msg="Veuillez sélectionner un acte!";
v_msgEng="Please select an act!";
alert_ebene(v_msg, v_msgEng);
return;
}
if(prixActe==0)
{
v_msg="Veuillez revoir le tarif!";
v_msgEng="Please review rate!";
alert_ebene(v_msg, v_msgEng);
return;
}
v_msg="Confirmez-vous cet acte?";
v_msgEng="Do you confirm this act?";
// if(confirm_ebene(v_msg, v_msgEng))
// {
if(ententePrealable==1)
{
ententePrealable = "2";
}
donnees = 'codeFamilleActe='+codeFamilleActe+'&codeActe='+codeActe+'&codeMedecin='+codeMedecin+'&ententePrealable='+ententePrealable;
donnees += '&prixActe='+prixActe+'&montantTm='+montantTm+'&aRembourser='+aRembourser;
numeroFeuilleMaladie=$("#numeroFeuilleMaladie_C").val();
donnees_sav = 'codeActe='+codeActe+'&numeroFeuilleMaladie='+numeroFeuilleMaladie+'&typeMail=mailententeprealable';
// donnees_sav2 = 'codeActe='+codeActe+'&numeroFeuilleMaladie='+numeroFeuilleMaladie+'&typeMail=mailautorisation';
typeSms="ententeprealable";
// typeSms2="autorisation";
$("#listeacte").html('<div style="padding-top:80px;"><img src="Bootstrap/images/loading.gif"/>&nbsp;&nbsp;<span>' + 'Veuillez patienter... / Please wait...' + '</span></div>');
$.ajax({
url: $("#racineWeb").val()+"Ajaxselectactesmedicaux/enregistreractemedical/",
type : 'post',
data: donnees,
error: function(errorData) {
},
success: function(data) {
maj_fraisexclu_cso();
if(ententePrealable=="2")
{
preparesms(typeSms);
v_msg="Demande accord prealable envoyée!";
v_msgEng="Request prior agreement sent!";
alert_ebene(v_msg, v_msgEng);
}
donnee_a_affciher = data;
},
complete: function() {
if(ententePrealable=="2")
{
mettremailattente(donnees_sav);
}
$("#totam_donnees").html(donnee_a_affciher);
}
});
// }
}
function ajaxinfosboninitconsultation() function ajaxinfosboninitconsultation()
{ {

View File

@ -317,5 +317,53 @@ class Detailtarifacte extends Modele {
return $liste->fetchAll(PDO::FETCH_ASSOC); return $liste->fetchAll(PDO::FETCH_ASSOC);
} }
} }
public function getactesexamenvide() {
$sql = 'call sp_p_actes_examen_vide()';
$resultat = $this->executerRequete($sql);
return $resultat->fetchAll(PDO::FETCH_ASSOC);
}
public function getactesmedicauxpossibles($libelle)
{
$numeroFeuilleMaladie = $_SESSION['p_numeroFeuilleMaladie_C'];
$codePrestataire = $_SESSION['p_codePrestataire_C'];
$codeTarifActe = $_SESSION['p_codeTarifActe_C'];
$codePrestataire = $_SESSION['p_codePrestataire_C'];
$idAdherent = $_SESSION['p_idAdherent_C'];
$libelle = contruireParamLike($libelle);
if (isset($_SESSION['p_lang']) && $_SESSION['p_lang']=="en_US")
{
$sql = 'call sp_p_recherche_actes_medicaux_eng(?, ?, ?, ?, ?);';
}
else
{
$sql = 'call sp_p_recherche_actes_medicaux(?, ?, ?, ?, ?);';
}
$resultat = $this->executerRequete($sql, array($numeroFeuilleMaladie,$codeTarifActe, $libelle, $codePrestataire, $idAdherent));
return $resultat->fetchAll(PDO::FETCH_ASSOC);
}
public function chargerinfosacte($codeActe)
{
$numeroFeuilleMaladie = $_SESSION['p_numeroFeuilleMaladie_C'];
$codePrestataire = $_SESSION['p_codePrestataire_C'];
$codeTarifActe = $_SESSION['p_codeTarifActe_C'];
$tm = $_SESSION['p_tm_C'];
$codePrestataire = $_SESSION['p_codePrestataire_C'];
$idAdherent = $_SESSION['p_idAdherent_C'];
$sql = 'call sp_p_charger_infosacte_medical(?, ?, ?, ?, ?);';
$resultat = $this->executerRequete($sql, array($numeroFeuilleMaladie,$codeTarifActe, $codeActe,
$codePrestataire, $idAdherent, $tm));
return $resultat->fetch(PDO::FETCH_ASSOC);
}
} }

View File

@ -0,0 +1,6 @@
<input class="sr-only" id="codeActe" name="codeActe" type="text" value= "<?= $acte_charge['codeActe'] ?>">
<input class="sr-only" id="prixActe" name="prixActe" type="text" value= "<?= $acte_charge['valeurActe'] ?>">
<input class="sr-only" id="montantTm" name="montantTm" type="text" value= "<?= $acte_charge['montantTm'] ?>">
<input class="sr-only" id="aRembourser" name="aRembourser" type="text" value= "<?= $acte_charge['montantArembourser'] ?>">
<input class="sr-only" id="ententePrealable" name="ententePrealable" type="text" value= "<?= $acte_charge['ententePrealable'] ?>">
<input class="sr-only" id="codeFamilleActe" name="codeFamilleActe" type="text" value= "<?= $acte_charge['codeFamilleActe'] ?>">

View File

@ -0,0 +1,26 @@
<?php
if(!empty($actes)) {
?>
<ul id="element-list">
<?php
foreach($actes as $v) {
$tab = explode(" <==> ",$v["libelle"]);
if (isset($tab[2]) && ($tab[2] != "Garanti" || $tab[2] != "Guaranteed")){
$style = "background-color: red; color:white;";
}elseif (isset($tab[3]) && ($tab[3] == "Demander Accord" || $tab[3] == "Request Approval")){
$style = "background-color: yellow;";
}else{
$style = "background-color: white;";
}
?>
<li style="<?php echo $style; ?>" onClick="selectElement('<?php echo $v["libelle"]; ?>');add_selected_acte_medicaux('<?php echo $v["code"]." <==> ".$v["libelle"]; ?>');"><?php echo $v["libelle"]; ?></li>
<?php } ?>
</ul>
<?php
} else{
?>
<marquee behavior="scroll" direction="left" scrollamount="10" style="color:white; background-color:red; font-size:14pt; font-weight:bold;">
<?= _("L'acte saisi n'existe pas.") ?>
</marquee>
<?php } ?>

View File

@ -1,7 +1,7 @@
<?php <?php
$actVisible = $_SESSION['p_actVisible']; $actVisible = $_SESSION['p_actVisible'];
?> ?>
<!--
<div id="div_actes" class="col-xs-4" style="padding-right:1px;"> <div id="div_actes" class="col-xs-4" style="padding-right:1px;">
<div id="listeacte"> <div id="listeacte">
<table class="table table-striped table-bordered table-hover table-condensed table-responsive" style="font-size:7pt;"> <table class="table table-striped table-bordered table-hover table-condensed table-responsive" style="font-size:7pt;">
@ -55,8 +55,8 @@
</div> </div>
</div> </div>
-->
<div id="div_prestations" class="col-xs-8" > <div id="div_prestations" class="col-xs-12" >
<table class="table table-striped table-bordered table-hover table-condensed table-responsive" style="font-size:7pt;"> <table class="table table-striped table-bordered table-hover table-condensed table-responsive" style="font-size:7pt;">
<thead> <thead>
<tr> <tr>
@ -137,7 +137,5 @@
<td colspan="7" height="8"></td> <td colspan="7" height="8"></td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
</div> </div>

View File

@ -8,6 +8,7 @@
<input class="sr-only" id="codeTypePrestation" name="codeTypePrestation" type="text" value="ACT"> <input class="sr-only" id="codeTypePrestation" name="codeTypePrestation" type="text" value="ACT">
<input class="sr-only" id="codeMedecin" name="codeMedecin" type="text" value= "<?= $_SESSION['p_codeMedecin_C'] ?>"> <input class="sr-only" id="codeMedecin" name="codeMedecin" type="text" value= "<?= $_SESSION['p_codeMedecin_C'] ?>">
<INPUT class="sr-only" id="chirurgie_C" name="chirurgie_C" type="text" value="<?= $_SESSION['p_chirurgie_C'] ?>"> <INPUT class="sr-only" id="chirurgie_C" name="chirurgie_C" type="text" value="<?= $_SESSION['p_chirurgie_C'] ?>">
<INPUT class="sr-only" id="nomForm" name="nomForm" type="text" value="selectactesmedicaux">
<legend> <?= _("Ajouter un acte médical") ?> </legend> <legend> <?= _("Ajouter un acte médical") ?> </legend>
<table class="table table-responsive table-condensed" style='font-size:10pt;'> <table class="table table-responsive table-condensed" style='font-size:10pt;'>
@ -46,7 +47,7 @@
<td> <?= _("Acte") ?> </td> <td> <?= _("Acte") ?> </td>
<td colspan="3"> <td colspan="3">
<div class="frmSearch" style="position: relative;"> <div class="frmSearch" style="position: relative;">
<input id="searchInput" name="searchInput" style="font-size:11pt; padding-left: 35px;" class="form-control" type="text" placeholder="<?= _("Rechercher un acte...") ?>" autofocus required AUTOCOMPLETE="OFF"> <input id="searchInput" name="searchInput" style="font-size:11pt; padding-left: 35px;" class="form-control" type="text" placeholder="<?= _("Saisissez le nom de l'acte...") ?>" autofocus required AUTOCOMPLETE="OFF">
<i class="fas fa-search" style="position: absolute; left: 12px; top: 50%; transform: translateY(-50%); color: #999;"></i> <i class="fas fa-search" style="position: absolute; left: 12px; top: 50%; transform: translateY(-50%); color: #999;"></i>
<div id="div_selection"></div> <div id="div_selection"></div>
</div> </div>
@ -93,8 +94,10 @@
</div> </div>
</div> </div>
<div class="row" id="totam_donnees"> <div id="div_patientez"></div>
<div class="row" id="totam_donnees">
<!--
<div id="div_actes" class="col-xs-4" style="padding-right:1px;"> <div id="div_actes" class="col-xs-4" style="padding-right:1px;">
<div id="listeacte"> <div id="listeacte">
<table class="table table-striped table-bordered table-hover table-condensed table-responsive" style="font-size:7pt;"> <table class="table table-striped table-bordered table-hover table-condensed table-responsive" style="font-size:7pt;">
@ -107,8 +110,9 @@
</table> </table>
</div> </div>
</div> </div>
-->
<div id="div_prestations" class="col-xs-8" > <div id="div_prestations" class="col-xs-12" >
<table class="table table-striped table-bordered table-hover table-condensed table-responsive" style="font-size:7pt;"> <table class="table table-striped table-bordered table-hover table-condensed table-responsive" style="font-size:7pt;">
<thead> <thead>
<tr> <tr>

View File

@ -263,7 +263,7 @@ actesHarmonises : <?= $_SESSION['p_actesHarmonises'] ?>
<script src="Js/datepicker-fr.js"></script> <script src="Js/datepicker-fr.js"></script>
<?php endif; ?> <?php endif; ?>
<script src="Js/fonctions.js?ver=2026.01.16.07"></script> <script src="Js/fonctions.js?ver=2026.03.03.00"></script>
<script src="Bootstrap/js/timer.jquery.js"></script> <script src="Bootstrap/js/timer.jquery.js"></script>