diff --git a/Controleur/ControleurAjaxchargeractesmedicaux.php b/Controleur/ControleurAjaxchargeractesmedicaux.php new file mode 100755 index 0000000..36bdfbf --- /dev/null +++ b/Controleur/ControleurAjaxchargeractesmedicaux.php @@ -0,0 +1,66 @@ +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)); + } + +} + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Controleur/ControleurAjaxselectactesmedicaux.php b/Controleur/ControleurAjaxselectactesmedicaux.php index 05ce9af..bf804d5 100644 --- a/Controleur/ControleurAjaxselectactesmedicaux.php +++ b/Controleur/ControleurAjaxselectactesmedicaux.php @@ -13,17 +13,17 @@ class ControleurAjaxselectactesmedicaux extends Controleur { } public function index() { - $codeFamilleActe = $this->requete->getParametreFormulaire("codeFamilleActe"); + //$codeFamilleActe = $this->requete->getParametreFormulaire("codeFamilleActe"); $numeroFeuilleMaladie = $_SESSION['p_numeroFeuilleMaladie_C']; $codePrestataire = $_SESSION['p_codePrestataire_C']; - $actes = $this->acte->geatactesexamensselection($codeFamilleActe); + //$actes = $this->acte->geatactesexamensselection($codeFamilleActe); $prestations = $this->prestation->getactesmedicauxfeuille($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() diff --git a/Js/fonctions.js b/Js/fonctions.js index d8ba722..93c1384 100644 --- a/Js/fonctions.js +++ b/Js/fonctions.js @@ -17604,8 +17604,230 @@ $(function(){ dataTableSpeciale(); $('.js-example-basic-single').select2(); $('.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('
' + '
'); + + $.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('
  ' + 'Veuillez patienter... / Please wait...' + '
'); + + $.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() { diff --git a/Modele/Detailtarifacte.php b/Modele/Detailtarifacte.php index b85155f..a64120c 100644 --- a/Modele/Detailtarifacte.php +++ b/Modele/Detailtarifacte.php @@ -317,5 +317,53 @@ class Detailtarifacte extends Modele { 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); + } } \ No newline at end of file diff --git a/Vue/Ajaxchargeractesmedicaux/actecharge.php b/Vue/Ajaxchargeractesmedicaux/actecharge.php new file mode 100755 index 0000000..5932801 --- /dev/null +++ b/Vue/Ajaxchargeractesmedicaux/actecharge.php @@ -0,0 +1,6 @@ + + + + + + diff --git a/Vue/Ajaxchargeractesmedicaux/index.php b/Vue/Ajaxchargeractesmedicaux/index.php new file mode 100755 index 0000000..7aa9c1f --- /dev/null +++ b/Vue/Ajaxchargeractesmedicaux/index.php @@ -0,0 +1,26 @@ + + + + + + + \ No newline at end of file diff --git a/Vue/Ajaxselectactesmedicaux/index.php b/Vue/Ajaxselectactesmedicaux/index.php index 570c70a..a7229ea 100644 --- a/Vue/Ajaxselectactesmedicaux/index.php +++ b/Vue/Ajaxselectactesmedicaux/index.php @@ -1,7 +1,7 @@ - + +
@@ -137,7 +137,5 @@ -
-
diff --git a/Vue/Selectactesmedicaux/index.php b/Vue/Selectactesmedicaux/index.php index 61e569a..f8ad9ca 100644 --- a/Vue/Selectactesmedicaux/index.php +++ b/Vue/Selectactesmedicaux/index.php @@ -8,6 +8,7 @@ + @@ -46,7 +47,7 @@
- " autofocus required AUTOCOMPLETE="OFF"> + " autofocus required AUTOCOMPLETE="OFF">
@@ -93,8 +94,10 @@ -
+
+
+ -
+
diff --git a/Vue/gabarit.php b/Vue/gabarit.php index 867ab46..8dd45d0 100644 --- a/Vue/gabarit.php +++ b/Vue/gabarit.php @@ -263,7 +263,7 @@ actesHarmonises : - +