From eaa7d9d9a56dff16f6346e00cc33ccd4538aa866 Mon Sep 17 00:00:00 2001 From: KANE LAZENI Date: Fri, 17 Jul 2026 18:46:36 +0000 Subject: [PATCH] a --- Js/fonctions.js | 3521 +---------------------------------------------- Vue/gabarit.php | 2 +- 2 files changed, 14 insertions(+), 3509 deletions(-) diff --git a/Js/fonctions.js b/Js/fonctions.js index fecbe0c..8a3ab8b 100755 --- a/Js/fonctions.js +++ b/Js/fonctions.js @@ -6978,14 +6978,12 @@ function livraison_pharmacie() function prescription_optique() { - // codePrestataire=$("#codePrestataire").val(); affectionObligatoire=$("#affectionObligatoire").val(); codeAffection=$("#codeAffection").val(); modeSaisieFacture=$("#modeSaisieFacture").val(); - - + numeroBonOptique=$("#numeroBonOptique").val(); facture=$("#facture").val(); @@ -7010,6 +7008,18 @@ function prescription_optique() } + optiquePossible=$("#optiquePossible").val(); + alert("optiquePossible => "+optiquePossible); + + if (optiquePossible!="1") + { + v_msg="Non autorisé!"; + v_msgEng="Not allowed!"; + alert_ebene(v_msg, v_msgEng); + + return; + } + if (affectionObligatoire=="1" && codeAffection=="990" && modeSaisieFacture!="1") { v_msg="Diagnostique exig\u00e9!"; @@ -25533,3508 +25543,3 @@ function dentisterie() return; } - dentisteriePossible=$("#dentisteriePossible").val(); - alert("dentisteriePossible => "+dentisteriePossible); - - if (dentisteriePossible!="1") - { - v_msg="Non autorisé!"; - v_msgEng="Not allowed!"; - alert_ebene(v_msg, v_msgEng); - - return; - } - - affectionObligatoire=$("#affectionObligatoire").val(); - codeAffection=$("#codeAffection").val(); - modeSaisieFacture=$("#modeSaisieFacture").val(); - - hospitalisation = $("#hospitalisation").val(); - if (hospitalisation=="1") - { - v_msg="Non autoris\u00e9 car la p\u00e9riode d'hospitalisation est en cours."; - v_msgEng="Not authorized because the period of hospitalization is in progress."; - - alert_ebene_callback(v_msg, v_msgEng, function() { - window.location.assign($("#racineWeb").val()+"Feuillemaladie/"); - }); - - return; - } - - - if (affectionObligatoire=="1" && codeAffection=="990" && modeSaisieFacture!="1") - { - v_msg="Diagnostique exig\u00e9!"; - v_msgEng="Diagnosis required!"; - alert_ebene(v_msg, v_msgEng); - - $("#libelleAffection").focus(); - $("#btn_pop_affection").click(); - - return; - } - - - window.location.assign($("#racineWeb" ).val()+"Dentisterie/"); -} - -function ajoute_dentaire() -{ - var codeActe = $('#codeActe').val(); - - if (!codeActe || codeActe.trim() <= " ") { - $("#searchInput").focus(); - alert_ebene( - "Veuillez sélectionner un acte!", - "Please select an act!" - ); - return; - } - - var ententePrealable = $('#ententePrealable').val(); - - var numeroDent = $("#numeroDent").val(); - - var motifDentaire = $('#motifDentaire').val(); - - var idCollege = $('#idCollege').val(); - var nbreProthese = $('#nbreProthese').val(); - - donnees = 'codeActe='+codeActe+'&numeroDent='+numeroDent+'&motifDentaire='+motifDentaire; - - var div_prestations = $('#div_prestations'); - div_prestations.html('
' + '
'); - - $.ajax({ - url: $("#racineWeb").val()+"Ajaxdetaildentisterie/ajouter/", - type: 'POST', - data: donnees, - success: function(data) - { - div_prestations.html(data); - var bool = $('#bool').val(); - - if(bool=="1"){ - v_msg="Ajout impossible risque de doublons!"; - v_msgEng="Addition impossible risk of duplicates!"; - - alert_ebene(v_msg, v_msgEng); - return; - } - }, - error : function(resultat, statut, erreur) - { - }, - complete: function(data) - { - dentisterie(); - } - }); -} - -// 07-11-2022 -function ajax_maj_prixacte_dentaire(idPrestationactes, prix, controle) -{ - prix=prix.replace(",","."); - prix=prix.replace(/ /g,""); - controle.value=prix; - - if(controle_numerique(controle)) - { - if(prix==0) - { - controle.focus(); - v_msg="Veuillez saisir le prix!"; - v_msgEng="Please enter the price!"; - alert_ebene(v_msg, v_msgEng); - - return; - } - - donnees = 'idPrestationactes='+idPrestationactes+"&prix="+prix; - - donnee_a_affciher = ""; - - donnees = 'idPrestationactes='+idPrestationactes+"&prix="+prix;; - - $.ajax({ - url: $("#racineWeb").val()+"Ajaxdetaildentisterie/majprixacte/", - type: 'POST', - data: donnees, - success: function(data) { - donnee_a_affciher = data; - }, - error: function(data) { - }, - complete: function() { - $("#div_prestations").html(donnee_a_affciher); - controle.focus(); - } - }); - } -} - - -function ajax_maj_qte_acte_dentaire(idPrestationactes, quantite, controle) -{ - quantite=quantite.replace(",","."); - controle.value=quantite; - - if(controle_numerique(controle)) - { - if(quantite==0) - { - controle.focus(); - v_msg="Veuillez saisir la quantité!"; - v_msgEng="Please enter the quantity!"; - alert_ebene(v_msg, v_msgEng); - - return; - } - - donnees = 'idPrestationactes='+idPrestationactes+"&quantite="+quantite; - - donnee_a_affciher = ""; - - donnees = 'idPrestationactes='+idPrestationactes+"&quantite="+quantite;; - - $.ajax({ - url: $("#racineWeb").val()+"Ajaxdetaildentisterie/majquantite/", - type: 'POST', - data: donnees, - success: function(data) { - donnee_a_affciher = data; - }, - error: function(data) { - }, - complete: function() { - $("#div_prestations").html(donnee_a_affciher); - controle.focus(); - } - }); - } -} - -/** - * Fonction pour supprimer un acte dentaire sélectionné - * - Affiche une confirmation avant suppression - * - Envoie la requête de suppression via AJAX - * - Met à jour l'affichage après suppression - * @param {number} idPrestationactes - L'identifiant de l'acte dentaire à supprimer - */ -async function supprimer_acte_dentaire_selection(idPrestationactes) { - let donnee_a_affciher = ""; - - // Demande de confirmation avec gestion multilingue - const isConfirm = await confirm_ebene_sweet( - "Confirmez-vous la suppression de cet acte?", - "Do you confirm the removal of this act?" - ); - - if (!isConfirm) { - return false; - } - - // Affichage du loader pendant le traitement - $("#listeacte").html('
' + '
'); - - // Préparation des données pour la requête AJAX - const donnees = `idPrestationactes=${idPrestationactes}`; - - try { - // Envoi de la requête AJAX - const response = await $.ajax({ - url: $("#racineWeb").val() + "Ajaxdetaildentisterie/supprimeracte/", - type: 'POST', - data: donnees - }); - - // Traitement de la réponse - donnee_a_affciher = response; - - // Mise à jour de l'affichage - $("#div_prestations").html(donnee_a_affciher); - - } catch (error) { - console.error("Erreur lors de la suppression de l'acte:", error); - // Gestion d'erreur supplémentaire possible ici - } -} - -/** - * Fonction pour valider un traitement dentaire - * - Demande confirmation à l'utilisateur - * - Envoie la validation via AJAX - * - Affiche un message si demande d'accord préalable envoyée - * - Recharge la feuille de maladie après traitement - */ -async function valider_dentaire() { - // Récupération des états actuels - const existeEntentePrealable = parseInt($("#existeEntentePrealable").val()); - const envoyeSms = parseInt($("#envoyeSms").val()); - - // Demande de confirmation multilingue - const isConfirm = await confirm_ebene_sweet( - "Confirmez-vous la validation?", - "Do you confirm validation?" - ); - - if (!isConfirm) { - return false; - } - - try { - // Envoi de la validation via AJAX - await $.ajax({ - url: $("#racineWeb").val() + "Ajaxdetaildentisterie/valider/", - type: 'POST', - data: '' - }); - - // Vérification si besoin d'envoyer un message de confirmation - if (existeEntentePrealable === 2 && envoyeSms === 0) { - alert_ebene( - "Demande accord préalable envoyée!", - "Request prior agreement sent!" - ); - } - - // Rechargement de la feuille de maladie - feuillemaladie(); - - } catch (error) { - console.error("Erreur lors de la validation dentaire:", error); - // Gestion d'erreur supplémentaire possible ici - } -} - -function add_selected_dentisterie(controle) -{ - - - motifDentaire = $("#motifDentaire").val(); - - if (motifDentaire<=" ") - { - v_msg="Veuillez entrer le motif de la prescription dentaire!"; - v_msgEng="Please enter the reason for the dental prescription!"; - alert_ebene(v_msg, v_msgEng); - - $("#searchInput").val(""); - $("#motifDentaire").focus(); - - return; - }else{ - var str = controle.split(' <==> '); - - - var codeActe = str[0]; - var libelleActe = str[1]; - var acteExclu = str[2]; - var ententePrealable = str[3]; - - var datePrescription = $("#datePrescription").val(); - - var statut = isStatut(codeActe); - - //alert(statut); - //return; - - if(statut!='1') - { - v_msg="Cet acte n'est pas autorisé!"; - v_msgEng="This act is not allowed!"; - alert_ebene(v_msg, v_msgEng); - - getstatutacte(codeActe); - $('#searchInput').val(''); - $("#div_selection").hide(); - return; - } - - if(acteExclu=="Garanti"){ - acteExclu=0; - }else{ - acteExclu=1; - } - - if(ententePrealable=="Demander Accord"){ - ententePrealable=1; - }else{ - ententePrealable=0; - } - - if(libelleActe<=" ") - { - $("#codeActe").focus(); - return; - } - - if(acteExclu==1) - { - v_msg="Acte non couvert!"; - v_msgEng="Not covered!"; - alert_ebene(v_msg, v_msgEng); - return; - } - - - $("#codeActe").val(codeActe); - $("#libelleActe").val(libelleActe); - //$("#prixTarif").val("0"); - //$("#codeGarantie").val("DEN"); - $("#acteExclu").val(acteExclu); - $("#ententePrealable").val(ententePrealable); - } -} - -function maj_motif_dentaire() -{ - motifDentaire = $("#motifDentaire").val(); - - if (motifDentaire>" ") - { - donnees = "motifDentaire="+motifDentaire; - - $.ajax({ - url: $("#racineWeb").val()+"Ajaxdetaildentisterie/majmotifdentaire/", - type: 'POST', - data: donnees, - success: function(data) { - - }, - error: function(data) { - }, - complete: function() { - - } - }); - } -} - - -function maj_medecin_dentaire() -{ - codeMedecin = $("#codeMedecin").val(); - motifDentaire = $("#motifDentaire").val(); - - donnees = "codeMedecin="+codeMedecin+"&motifDentaire="+motifDentaire; - - $.ajax({ - url: $("#racineWeb").val()+"Ajaxdetaildentisterie/majmedecin/", - type: 'POST', - data: donnees, - success: function(data) { - }, - error: function(data) { - }, - complete: function() { - - } - }); - -} - - -function ajax_maj_renouvelable_medicament(idMedicament, renouvelable, controle) -{ - donnees = 'idMedicament='+idMedicament+"&renouvelable="+renouvelable; - - $.ajax({ - url: $("#racineWeb").val()+"Ajaxdetailprescription/majrenouvelable/", - type: 'POST', - data: donnees, - success: function(data) { - $("#medicaments").html(data); - var input = document.getElementById("frequenceRenouvellement" + idMedicament); - if (input) { - input.focus(); - } - }, - error: function(data) { - }, - complete: function() { - } - }); - -} - -function ajax_maj_frequence_medicament(idMedicament, frequence, controle) -{ - frequence=frequence.replace(",","."); - controle.value=frequence; - - if(controle_numerique(controle)) - { - donnees = 'idMedicament='+idMedicament+"&frequence="+frequence; - - $.ajax({ - url: $("#racineWeb").val()+"Ajaxdetailprescription/majfrequence/", - type: 'POST', - data: donnees, - success: function(data) { - $("#medicaments").html(data); - }, - error: function(data) { - }, - complete: function() { - } - }); - } - -} - -function ajax_maj_qte_medicament_cso(idLivre, quantite, controle, quantiteRestante, ligne, quantiteRestanteInitiale) -{ - quantite=parseInt(quantite.replace(",",".")); - controle.value=quantite; - - - - quantiteRestanteInitiale = parseInt(quantiteRestanteInitiale); - - - if(quantiteRestanteInitiale > 0){ - quantiteRestante = quantiteRestanteInitiale; - } - - if(isNaN(quantite) || quantite < 0 ){ - controle.value = 0; - controle.focus(); - return; - } - - interdirVentePartielleMedicament = $("#interdirVentePartielleMedicament").val(); - - if(interdirVentePartielleMedicament=="1"){ - - if((quantite > 0) && (quantite < quantiteRestante)){ - controle.focus(); - v_msg="La vente partielle de médicament est interdite!"; - v_msgEng="Partial sale of medicine is prohibited!"; - alert_ebene(v_msg, v_msgEng); - - controle.value = 0; - return; - } - - } - - - - if(controle_numerique(controle)) - { - if(quantite > parseInt(quantiteRestante)){ - controle.focus(); - v_msg="La quantité servie est supérieure à la quantité restante! "; - v_msgEng="Review the quantity served, it is greater than the remaining quantity!"; - alert_ebene(v_msg, v_msgEng); - - controle.value = 0; - return; - } - - donnees = 'idLivre='+idLivre+"&quantite="+quantite+'&quantiteRestanteInitiale='+quantiteRestanteInitiale; - - //alert(donnees);return; - - $.ajax({ - url: $("#racineWeb").val()+"Ajaxdetailpharmacie/majquantitecso/", - type: 'POST', - data: donnees, - success: function(data) { - $("#livraison").html(data); - - var nbLigne = parseInt($("#nbLigne").val()); - $("#qte"+parseInt(ligne+1)).focus(); - - }, - error: function(data) { - }, - complete: function() { - controle.focus(); - } - }); - } - -} - -function enregistrer_rapport_seance() -{ - - - rapportTraitement = $("#rapportTraitement").val(); - - if (rapportTraitement <= " ") - { - v_msg="Veuillez enregistrer le rapport du traitement des séances!"; - v_msgEng="Please fill in the reason for hospitalization!"; - alert_ebene(v_msg, v_msgEng); - - $("#rapportTraitement").focus(); - return; - } - - donnees = 'rapportTraitement='+rapportTraitement; - - - $.ajax({ - url: $("#racineWeb").val()+"Ajaxenregistrerprescriptionseance/majrapportTraitement/", - type : 'post', - data: donnees, - error: function(errorData) { - - }, - success: function(data) - { - //window.location.assign($("#racineWeb" ).val()+"Prescriptionsence/"); - - }, - complete: function() - { - //valider_seance_cso(); - } - }); - - -} - - -function listemedicamentsubstitue(ligne, quantite, tM, codeMedicament) -{ - var libelle = $('#searchInput'+ligne).val(); - var donnees = 'libelle='+ libelle+'&ligne='+ligne+'&quantite='+quantite+'&tM='+tM+'&codeMedicament='+codeMedicament; - - if(libelle.length >="3") - { - vLink = "Ajaxlistemedicamentsubstitue/"; - $.ajax({ - type: "POST", - url: $("#racineWeb").val()+vLink, - data:donnees, - beforeSend: function(){ - $("#searchInput"+ligne).css("background","#FFF url(Bootstrap/images/LoaderIcon.gif) no-repeat 165px"); - }, - success: function(data){ - $("#div_selection"+ligne).show(); - $("#div_selection"+ligne).html(data); - $("#searchInput"+ligne).css("background","#FFF"); - } - }); - }else{ - $("#div_selection"+ligne).hide(); - return false; - } -} - - -function selectElementSubtitue(val, ligne, quantite, tM, codeSubstitut, codeMedicament) { - - - // Extraction des valeurs depuis la chaîne 'val' - var str = val.split(' <==> '); - var libelle = str[0]; - var forme = str[1]; - var srtGarantie = str[2]; - var prix = str[3]; - - var valeurActe = parseInt(extraitNombre(prix)); - - // Vérifie si le médicament n'est pas garanti (non remboursé) - if (srtGarantie === "Non garanti") { - // Message d’alerte en français et en anglais - const v_msg = "Attention, ce produit n'est pas remboursé! Voulez-vous continuer?"; - const v_msgEng = "Be careful, this product is not refunded! Do you want to continue?"; - - // Appel à la boîte de dialogue personnalisée avec callback - confirm_ebene_sweet_callback(v_msg, v_msgEng, function () { - // Si l’utilisateur confirme, on force tM à 0 (pas de taux de remboursement) - tM = 0; - - // Calcul des montants et mise à jour de l’interface - remplirChampsMedicament(); - }); - - // On retourne immédiatement, le traitement se poursuivra dans le callback si confirmé - return; - } - - // Si le produit est garanti, on remplit directement les champs - remplirChampsMedicament(); - - // Fonction interne pour éviter la duplication du code de remplissage - function remplirChampsMedicament() { - var fraisReel = valeurActe * parseInt(quantite); - var montantTm = parseInt(fraisReel * parseInt(tM) / 100); - var montantArembourser = parseInt(fraisReel) - parseInt(montantTm); - - $("#searchInput" + ligne).val(libelle); - $("#div_selection" + ligne).hide(); - - $("#valeurActe" + ligne).val(formatCurrency(valeurActe)); - $("#fraisReel" + ligne).val(formatCurrency(fraisReel)); - $("#montantTm" + ligne).val(formatCurrency(montantTm)); - $("#montantArembourser" + ligne).val(formatCurrency(montantArembourser)); - $("#forme" + ligne).val(forme); - - // Mise à jour côté serveur du médicament substitué - var donnees = "codeMedicament=" + codeMedicament + "&codeSubstitut=" + codeSubstitut; - - $.ajax({ - url: $("#racineWeb").val() + "Ajaxdetailpharmacie/majmedicamentsubstitution/", - type: 'POST', - data: donnees, - success: function(data) { - // Optionnel : traitement si nécessaire - }, - error: function(data) { - // Optionnel : gestion d'erreur - } - }); - } -} - - -function fermer_seance() -{ - - window.location.assign($("#racineWeb" ).val()+$("#vueParent").val()+"/"); - -} - - -function changer_entite_portail() -{ - codeSociete=$("#codeSociete").val(); - - if (codeSociete<=" ") - { - v_msg="Veuillez sélectionner une entité!"; - v_msgEng="Please select an entity!"; - alert_ebene(v_msg, v_msgEng); - - $("#codeSociete").focus(); - return; - } - - donnees = 'codeSociete='+codeSociete; - - v_url = $("#racineWeb").val()+"Ajaxchangerentiteportail/"; - - $("#div_login_portail").html('
' + '
'); - - $.ajax({ - url: v_url, - type : 'post', - data: donnees, - error: function(errorData) { - $("#div_login_portail").html(errorData); - }, - success: function(data) { - $("#div_login_portail").html(data); - $("#login").focus(); - }, - complete: function() - { - var src_logo=""; - var afficherLogoSociete = $("#afficherLogoSociete").val(); - if(afficherLogoSociete=="1") - { - src_logo="Societes/"+codeSociete+"/Logos/logo_societe.png"; - } - - const image_logo = document.getElementById('image_logo'); - image_logo.setAttribute('src', src_logo); - } - }); -} - -function changer_langue_connexion() -{ - codeLangue = $("#langue").val(); - donnees = 'codeLangue='+codeLangue; - - $.ajax({ - url: $("#racineWeb").val()+"Ajaxconnexioncookie/changerlangue/", - type : 'post', - data: donnees, - error: function(errorData) - { - }, - success: function(data) - { - $("#div_detail_connexion").html(data); - }, - complete: function() - { - $(".selectpicker").selectpicker(); - } - }); - -} - -function affichespecialite() -{ - // 10/03/2026 => Si on change d'acte, mettre le prix saisie ) 0 - $("#prixSaisi").val(0); - $("#prixModifiable").val(0); - donnees = ""; - donnees_retour = ""; - - codeActe = $("#codeActe").val(); - nbSpecialite = "0"; - - donnees = 'codeActe='+codeActe; - - faireDefileMessage("", ""); - - var div_specialite = $('#div_specialite'); - div_specialite.html('
' + '
'); - - // div_specialite - - $.ajax({ - url: $("#racineWeb").val()+"Ajaxspecialiteacte/", - type : 'post', - data: donnees, - error: function(errorData) - { - }, - success: function(data) - { - - donnees_retour = data; - - }, - complete: function() - { - - $("#div_specialite").html(donnees_retour); - - $(".selectpicker").selectpicker(); - - acteNuit = $("#acteNuit").val(); - nuit = $("#nuit").val(); - nbSpecialite = $("#nbSpecialite").val(); - - if (acteNuit=="1" && nuit=="0") - { - v_msg="Vous ne pouvez pas effectuer cet acte à cette heure!"; - v_msgEng="You cannot perform this act at this time!"; - alert_ebene(v_msg, v_msgEng); - $("#codeActe").focus(); - - return; - } - - if(nbSpecialite=="1"){ - specialite_medecin(); - } - } - }); -} - -function consulter_envois_sms() -{ - donnees = ""; - donnees_retour = ""; - - date1 = $("#date1").val(); - date2 = $("#date2").val(); - - donnees += 'date1=' + date1; - donnees += '&date2=' + date2; - - $("#div_sms").html('
' + '
'); - - $.ajax({ - url: $("#racineWeb").val()+"Ajaxdestinatairesms/consulter/", - type : 'post', - data: donnees, - error: function(errorData) { - }, - success: function(data) { - donnees_retour = data; - }, - complete: function() { - $("#div_sms").html(donnees_retour); - $("#nbligne").val("Lignes : "+$("#nbligne_info").val()); - } - }); -} - -function vider_medecin(){ - - donnees = ''; - - $.ajax({ - url: $("#racineWeb").val()+"Ajaxspecialitemedecin/vider/", - type : 'post', - data: donnees, - error: function(errorData) - { - }, - success: function(data) - { - $("#div_medecin").html(data); - }, - complete: function() - { - $(".selectpicker").selectpicker(); - initialiser_prix_acte(); - } - }); -} - -function initialiser_prix_acte(){ - - donnees = ''; - - $.ajax({ - url: $("#racineWeb").val()+"Ajaxprixacte/initialiser/", - type : 'post', - data: donnees, - error: function(errorData) { - }, - success: function(data) { - $("#infosacte").html(data); - }, - complete: function() { - - } - }); -} - -/** - * Fonction pour créer une nouvelle proforma d'hospitalisation chirurgicale - * - Valide les champs obligatoires - * - Crée la proforma via un appel AJAX - * - Redirige vers la page de la proforma après création - */ -async function nouvelle_proforma_hopitalisation() { - // Récupération des valeurs du formulaire - const codeLangue = $("#codeLangue").val(); - const motifHospitalisation = $('#motifHospitalisation').val(); - const optionHospitalisation = $('#optionHospitalisation').val(); - const codeActeChambreHospit = $('#codeActeChambreHospit').val(); - const dateDebutHospit = $('#dateDebutHospit').val(); - const dureeHospit = $('#dureeHospit').val(); - const numeroFeuilleMaladie = $("#numeroFeuilleMaladie").val(); - const idBeneficiaire = $("#idBeneficiaire").val(); - const codePrestataire = $("#codePrestataire").val(); - - // Validation des champs obligatoires - if (motifHospitalisation <= " ") { - alert_ebene( - "Veuillez renseigner le motif d'hospitalisation!", - "Please fill in the reason for hospitalization!" - ); - $("#motifHospitalisation").focus(); - return; - } - - if (optionHospitalisation <= " ") { - alert_ebene( - "Veuillez renseigner le type d'hospitalisation!", - "Please fill in the type of hospitalization!" - ); - $("#optionHospitalisation").focus(); - return; - } - - if (codeActeChambreHospit <= " ") { - alert_ebene( - "Veuillez renseigner le type de chambre!", - "Please enter the room type!" - ); - $("#codeActeChambreHospit").focus(); - return; - } - - if (dateDebutHospit <= " ") { - alert_ebene( - "Veuillez saisir la date de début!", - "Please enter the start date!" - ); - $("#dateDebutHospit").focus(); - return; - } - - if (dureeHospit == "0") { - alert_ebene( - "Veuillez renseigner le nombre de jours prévisionnels d'hospitalisation!", - "Please fill in the estimated number of days of hospitalization!" - ); - $("#dureeHospit").focus(); - return; - } - - // Préparation des données pour l'AJAX - let donnees = `motifHospitalisation=${motifHospitalisation}`; - donnees += `&optionHospitalisation=${optionHospitalisation}`; - donnees += `&codeActeChambreHospit=${codeActeChambreHospit}`; - donnees += `&dateDebutHospit=${dateDebutHospit}`; - donnees += `&dureeHospit=${dureeHospit}`; - donnees += `&numeroFeuilleMaladie=${numeroFeuilleMaladie}`; - donnees += `&idBeneficiaire=${idBeneficiaire}`; - donnees += `&codePrestataire=${codePrestataire}`; - - // Demande de confirmation - const isConfirm = await confirm_ebene_sweet( - "Confirmez-vous la création d'une facture proforma d'hospitalisation chirurgicale?", - "Do you confirm the creation of a surgical hospitalization proforma invoice?" - ); - - if (!isConfirm) return false; - - try { - // Envoi de la requête AJAX - const response = await $.ajax({ - url: $("#racineWeb").val() + "Ajaxproformahospitalisationfeuille/", - type: 'POST', - data: donnees - }); - - // Traitement de la réponse - $("#div_proforma").html(response); - const idProforma = parseInt($("#idProforma").val()); - - // Redirection si proforma créée - if (idProforma > 0) { - window.location.assign(`${$("#racineWeb").val()}Hospitalisationproforma/${idProforma}/`); - } - - } catch (error) { - console.error("Erreur lors de la création de la proforma:", error); - // Gestion d'erreur supplémentaire possible ici - } -} - -function messageSituationProformaHospit(){ - var optionHospitalisation = $("#optionHospitalisation").val(); - var datePrestation = $('#dateDebut').val(); - var idBeneficiaire = $('#idBeneficiaire').val(); - var estcouvert = $('#estcouvert').val(); - var estsorti = $('#estsorti').val(); - - if(optionHospitalisation == "option-1"){ - codeActe = "HHM"; - }else if (optionHospitalisation == "option-3"){ - codeActe = "HHC"; - }else{ - codeActe = ""; - } - - if(estcouvert == "0" || estsorti == "1") - { - v_msg="Proforma impossible \u00e0 \u00e9tablir car ce b\u00e9n\u00e9ficiaire n'est plus couvert par l'assurance!"; - v_msgEng="Proforma impossible to establish because this beneficiary is no longer covered by insurance!"; - alert_ebene(v_msg, v_msgEng); - faireDefileMessage(v_msg, v_msgEng); - - $("#dateDebut").disable(); - $("#duree").disable(); - $("#motif").disable(); - $("#codeMedecin").disable(); - $("#codeAffection").disable(); - - return; - } - - ajax_beneficiaire_contexte(idBeneficiaire); - - getstatutactedate(codeActe, datePrestation); - - var donnees = 'codeActe='+codeActe+'&datePrestation='+datePrestation+'&idBeneficiaire='+idBeneficiaire; - - $("#div_reponse").html('
' + '
'); - - $.ajax({ - url: $("#racineWeb").val()+"Ajaxsituationproformahospit/", - type : 'post', - data: donnees, - error: function(errorData) { - }, - success: function(data) - { - $("#div_reponse").html(data); - - }, - complete: function(data) - { - - } - }); -} - - -function ajaxbeneficiairecouvert(id) -{ - donnees = "idBeneficiaire="+id; - - $.ajax({ - url: $("#racineWeb").val()+"Ajaxbeneficiairecouvert/", - type : 'post', - data: donnees, - error: function(errorData) { - }, - success: function(data) { - $("#div_couverture").html(data); - }, - complete: function(data) { - - } - }); -} - -function ajax_beneficiaire_contexte(idBeneficiaire) -{ - donnees = 'idBeneficiaire='+idBeneficiaire; - - $.ajax({ - url: $("#racineWeb").val()+"Ajaxbeneficiairecontexte/", - type : 'post', - data: donnees, - error: function(errorData) { - }, - complete: function() { - - } - }); -} - -function getstatutactedate(codeActe, datePrestation) -{ - - - donnee_a_affciher = ""; - - - donnees = 'codeActe='+codeActe+'&datePrestation='+datePrestation; - - donnees = charger_csrf_token(donnees); - - $.ajax({ - url: $("#racineWeb").val()+"Ajaxstatutacte/", - type : 'post', - data: donnees, - error: function(errorData) { - }, - success: function(data) { - - donnee_a_affciher = data; - }, - complete: function() { - - - $("#div_statutacte").html(donnee_a_affciher); - - var statut = $("#statut").val(); - var libelleMotif = $("#libelleMotif").val(); - var libelleMotifEng = $("#libelleMotifEng").val(); - - - faireDefileMessage(libelleMotif, libelleMotifEng); - } - }); -} - -/** - * Fonction pour supprimer une proforma d'hospitalisation - * - Demande confirmation avant suppression - * - Envoie la requête de suppression via AJAX - * - Actualise la liste des proformas après suppression - * @param {number} idProforma - L'identifiant de la proforma à supprimer - */ -async function supprimer_proforma_hospitalisation(idProforma) { - // Préparation des données pour la requête AJAX - const donnees = `idProforma=${idProforma}`; - - // Demande de confirmation avec gestion multilingue - const isConfirm = await confirm_ebene_sweet( - "Attention! Confirmez-vous la suppression de cette proforma?", - "Attention! Do you confirm the deletion of this proforma?" - ); - - if (!isConfirm) { - return false; - } - - try { - // Envoi de la requête de suppression - await $.ajax({ - url: $("#racineWeb").val() + "Ajaxlisterproformahospitalisation/supprimer/", - type: 'POST', - data: donnees - }); - - // Actualisation de la liste des proformas - listerproformahospitalisation(); - - } catch (error) { - console.error("Erreur lors de la suppression de la proforma:", error); - // Gestion d'erreur supplémentaire possible ici - } -} - -// Fonction pour vérifier si une date est antérieure à aujourd'hui -function verifierDate() { - - dateString = $("#dateDebut").val(); - // Décomposer la date au format "jj/mm/aaaa" - const [jour, mois, annee] = dateString.split('/').map(Number); - - // Créer un objet Date à partir de la date saisie - const dateSaisie = new Date(annee, mois - 1, jour); - - // Obtenir la date actuelle sans l'heure - const aujourdHui = new Date(); - aujourdHui.setHours(0, 0, 0, 0); - - // Vérifier si la date saisie est strictement antérieure à aujourd'hui - if (dateSaisie < aujourdHui) { - - v_msg="La date de d\u00e9but ne peut-\u00eatre ant\u00e9rieure \u00e0 la date du jour!"; - v_msgEng="The start date cannot be earlier than today!"; - - alert_ebene(v_msg, v_msgEng); - - $("#dateDebut").val(""); - $("#dateDebut").focus(); - return; - } else{ - messageSituationProformaHospit(); - } -} - -function estDateFuture(date) { - // Obtenir la date d'aujourd'hui sans l'heure - const aujourdHui = new Date(); - aujourdHui.setHours(0, 0, 0, 0); // Réinitialiser les heures pour une comparaison pure de dates - - // S'assurer que l'argument 'date' est un objet Date - const dateComparee = new Date(date); - dateComparee.setHours(0, 0, 0, 0); // De même, ignorer l'heure - - // Comparer les dates - return dateComparee > aujourdHui; -} - -function ouvrir_feuillemaladie(numeroBon, dateDebut) -{ - - autoriserBonHospitAvantDate = $("#autoriserBonHospitAvantDate").val(); - - if(estDateFuture(dateDebut) && autoriserBonHospitAvantDate=="0") - { - v_msg="Hospitalisation chirurgicale non encore autorisée! Attendez, s'il vous plaît, la date de sa programmation. Merci pour votre compréhension!"; - v_msgEng="Surgical hospitalization not yet authorized! Please wait for the scheduling date. Thank you for understanding!"; - - alert_ebene(v_msg, v_msgEng); - - faireDefileMessage(v_msg, v_msgEng); - - return; - } - - donnees = 'numeroBon='+numeroBon; - - $.ajax({ - url: $("#racineWeb").val()+"Ajaxouvrirfeuillemaladie/", - type : 'post', - data: donnees, - error: function(errorData) { - }, - success: function(data) - { - feuillemaladie(); - - }, - complete: function(data) - { - - } - }); - -} - -function verifierDateChambre() { - - dateString = $("#dateDebutHospit").val(); - // Décomposer la date au format "jj/mm/aaaa" - const [jour, mois, annee] = dateString.split('/').map(Number); - - // Créer un objet Date à partir de la date saisie - const dateSaisie = new Date(annee, mois - 1, jour); - - // Obtenir la date actuelle sans l'heure - const aujourdHui = new Date(); - aujourdHui.setHours(0, 0, 0, 0); - - // Vérifier si la date saisie est strictement antérieure à aujourd'hui - if (dateSaisie < aujourdHui) { - - v_msg="La date de d\u00e9but ne peut-\u00eatre ant\u00e9rieure \u00e0 la date du jour!"; - v_msgEng="The start date cannot be earlier than today!"; - - alert_ebene(v_msg, v_msgEng); - - $("#dateDebutHospit").val(""); - $("#dateDebutHospit").focus(); - return; - } -} - -/** - * Fonction pour changer le mot de passe utilisateur - * - Affiche un avertissement avant redirection - * - Gère la confirmation en multilingue (FR/EN) - * - Redirige vers la page de changement de mot de passe après confirmation - * - Prévient l'utilisateur qu'il sera déconnecté après l'opération - */ -async function change_password() { - // Messages d'avertissement multilingues - const messages = { - fr: { - titre: "Attention, vous serez déconnecté par la suite!", - question: "Voulez-vous changer votre mot de passe?", - confirm: "Oui", - cancel: "Non" - }, - en: { - titre: "Attention, you will be logged out afterwards!", - question: "Do you want to change your password?", - confirm: "Yes", - cancel: "No" - } - }; - - // Détermination de la langue - const langue = $("#codeLangue").val() === "en_US" ? "en" : "fr"; - const { titre, question, confirm, cancel } = messages[langue]; - - // Demande de confirmation - const isConfirm = await Swal.fire({ - title: `${titre} ${question}`, - icon: 'warning', - showCancelButton: true, - confirmButtonText: confirm, - cancelButtonText: cancel, - dangerMode: true - }); - - // Redirection si confirmé - if (isConfirm.isConfirmed) { - window.location.assign(`${$("#racineWeb").val()}Changermotpass/`); - } -} - -function tarif_applique(tarif) -{ - v_msg="Tarif appliqué : "+tarif; - v_msgEng="Price applied : "+tarif; - - alert_ebene(v_msg, v_msgEng); - -} - -function imprimer_facture_seance(idFacture) -{ - - - donnees = "idFacture="+idFacture; - - var div_export = $('#div_facture_definitive'); - div_export.html('
' + '
'); - - $.ajax({ - url: $("#racineWeb").val()+"Ajaximprimerfacturedefinitive/", - type: 'POST', - data: donnees, - success: function(data) - { - div_export.html(data); - //facturepartielle(); - }, - error : function(resultat, statut, erreur) - { - }, - complete: function(data) - { - // - - } - }); - -} - -function creer_proforma_hospitalistation() -{ - - - prestationPossible = $("#prestationPossible").val(); - face_confirmee = $("#face_confirmee").val(); - faceActif = $("#faceActif").val(); - codeProfil = $("#codeProfil_C" ).val(); - - if(prestationPossible == "0" || codeProfil == "PHA" || codeProfil == "OPT" || codeProfil == "LAB" || codeProfil == "SEA"){ - - v_msg="Non autoris\u00e9e!"; - v_msgEng="Not allowed!"; - - alert_ebene(v_msg, v_msgEng); - - return; - } - - if ((face_confirmee == "1") || (faceActif != '1')){ - - window.location.assign($("#racineWeb" ).val()+"Proformahospitalisation/"); - - }else{ - - v_msg="Veuillez authentifier la photo du patient!"; - v_msgEng="Please authenticate the patient's photo!"; - - alert_ebene(v_msg, v_msgEng); - - return; - } -} - -function pop_ged_optique() -{ - $.ajax({ - url: $("#racineWeb").val()+"Ajaxlistegedoptique/", - error: function(errorData) { - }, - success: function(data) - { - $("#div_ged").html(data); - }, - complete: function() { - $("#btn_pop_ged_optique").click(); - } - }); -} - -function consulter_envois_sms() -{ - donnees = ""; - donnees_retour = ""; - - date1 = $("#date1").val(); - date2 = $("#date2").val(); - - donnees += 'date1=' + date1; - donnees += '&date2=' + date2; - - $("#div_sms").html('
' + '
'); - - $.ajax({ - url: $("#racineWeb").val()+"Ajaxdestinatairesms/consulter/", - type : 'post', - data: donnees, - error: function(errorData) { - }, - success: function(data) { - donnees_retour = data; - }, - complete: function() { - $("#div_sms").html(donnees_retour); - $("#nbligne").val("Lignes : "+$("#nbligne_info").val()); - } - }); -} - -function consulter_envois_whatsapp() -{ - donnees = ""; - donnees_retour = ""; - - date1 = $("#date1").val(); - date2 = $("#date2").val(); - - donnees += 'date1=' + date1; - donnees += '&date2=' + date2; - - $("#div_sms").html('
' + '
'); - - $.ajax({ - url: $("#racineWeb").val()+"Ajaxdestinatairesms/consulterwhatsapp/", - type : 'post', - data: donnees, - error: function(errorData) { - }, - success: function(data) { - donnees_retour = data; - }, - complete: function() { - $("#div_sms").html(donnees_retour); - $("#nbligne").val("Lignes : "+$("#nbligne_info").val()); - } - }); -} - -function consulter_envois_whatsapp_en_cours() -{ - donnees = ""; - donnees_retour = ""; - - date1 = $("#date1").val(); - date2 = $("#date2").val(); - - donnees += 'date1=' + date1; - donnees += '&date2=' + date2; - - $("#div_sms").html('
' + '
'); - - $.ajax({ - url: $("#racineWeb").val()+"Ajaxdestinatairesms/consulterwhatsappencours/", - type : 'post', - data: donnees, - error: function(errorData) { - }, - success: function(data) { - donnees_retour = data; - }, - complete: function() { - $("#div_sms").html(donnees_retour); - $("#nbligne").val("Lignes : "+$("#nbligne_info").val()); - } - }); -} - -function mettre_sms_commun_attente_assureur() -{ - textMessage = $("#textMessageCommun").val(); - textMessage = textMessage.trim(); - - if (textMessage<=" ") - { - v_msg="Veuillez saisir le message!"; - v_msgEng="Please enter the message!"; - alert_ebene(v_msg, v_msgEng); - - $("#textMessageCommun").focus(); - return; - } - - donnees = "textMessage="+textMessage; - - $.ajax({ - url: $("#racineWeb").val()+"Ajaxdestinatairesms/mettrewhatsappattenteassureur/", - type: 'POST', - data: donnees, - error: function(errorData) { - }, - success: function(data) { - // $('#div_test_gabarit').html(data); - // alert(data); - }, - complete: function() { - v_msg="Messages mis dans la queue des envois!"; - v_msgEng="Messages in the queue!"; - alert_ebene(v_msg, v_msgEng); - re_init_envoi_sms(); - } - }); -} - -function mettre_sms_commun_attente_assure() -{ - - idAdherent_C = $("#idAdherent_C").val(); - - if (idAdherent_C<="0") - { - v_msg="Veuillez sélectionner un assuré!"; - v_msgEng="Please select an insured!"; - alert_ebene(v_msg, v_msgEng); - - return; - } - - textMessage = $("#textMessageCommun").val(); - textMessage = textMessage.trim(); - - if (textMessage<=" ") - { - v_msg="Veuillez saisir le message!"; - v_msgEng="Please enter the message!"; - alert_ebene(v_msg, v_msgEng); - - $("#textMessageCommun").focus(); - return; - } - - donnees = "textMessage="+textMessage; - - $.ajax({ - url: $("#racineWeb").val()+"Ajaxdestinatairesms/mettrewhatsappattenteassure/", - type: 'POST', - data: donnees, - error: function(errorData) { - }, - success: function(data) { - // $('#div_test_gabarit').html(data); - // alert(data); - }, - complete: function() { - v_msg="Messages mis dans la queue des envois!"; - v_msgEng="Messages in the queue!"; - alert_ebene(v_msg, v_msgEng); - re_init_envoi_sms(); - } - }); -} - -function mettre_sms_commun_attente_tous() -{ - - idAdherent_C = $("#idAdherent_C").val(); - - if (idAdherent_C<="0") - { - v_msg="Veuillez sélectionner un assuré!"; - v_msgEng="Please select an insured!"; - alert_ebene(v_msg, v_msgEng); - - return; - } - - textMessage = $("#textMessageCommun").val(); - textMessage = textMessage.trim(); - - if (textMessage<=" ") - { - v_msg="Veuillez saisir le message!"; - v_msgEng="Please enter the message!"; - alert_ebene(v_msg, v_msgEng); - - $("#textMessageCommun").focus(); - return; - } - - donnees = "textMessage="+textMessage; - - // alert("mettre_sms_commun_attente_tous => idAdherent_C = "+idAdherent_C+" ; "+donnees); - // return; - - $.ajax({ - url: $("#racineWeb").val()+"Ajaxdestinatairesms/mettrewhatsappattenteassureurassure/", - type: 'POST', - data: donnees, - error: function(errorData) { - }, - success: function(data) { - // $('#div_test_gabarit').html(data); - // alert(data); - }, - complete: function() { - v_msg="Messages mis dans la queue des envois!"; - v_msgEng="Messages in the queue!"; - alert_ebene(v_msg, v_msgEng); - re_init_envoi_sms(); - } - }); -} - -function re_init_envoi_sms() -{ - window.location.assign($("#racineWeb" ).val()+"Envoisms/"); -} - -// KANE 12/04/2025 -function envoieprescription_examen() -{ - $.ajax({ - url: $("#racineWeb").val()+"Ajaxenregistrerprescriptionexamen/envoieprescriptionexamen/", - type : 'post', - error: function(errorData) - { - }, - success: function(data) - { - // alert(data); - // $('#div_test_gabarit').html(data); - }, - complete: function() { - feuillemaladie(); - } - }); -} - -function envoieprescription_seance() -{ - $.ajax({ - url: $("#racineWeb").val()+"Ajaxenregistrerprescriptionseance/envoieprescriptionseance/", - type : 'post', - error: function(errorData) - { - }, - success: function(data) - { - // alert(data); - // $('#div_test_gabarit').html(data); - }, - complete: function() { - // feuillemaladie(); - } - }); -} - - -function actualiser_proforma_hospitalisation() -{ - idProforma = $("#idProformaHospitalisation").val(); - - window.location.assign($("#racineWeb" ).val()+"Hospitalisationproforma/"+idProforma+"/"); - -} - -function verifierContestationAvantOuverture() { - - var contestation = $("#contestation").val(); - - if (contestation == "1") { - // Ne pas ouvrir le modal si contestation == 1 - feuillemaladie(); - - } else { - // Ouvrir le modal si pas de contestation - $('#popRechercheAffection').modal('show'); - } - -} - -function actualiser_contestation(){ - - const numeroFeuilleMaladie = $("#numeroFeuilleMaladie_C").val(); - - if (numeroFeuilleMaladie > "0") { - $.ajax({ - url: $("#racineWeb").val()+"Ajaxfeuillemaladie/", - type : 'post', - error: function(errorData) - { - }, - success: function(data) - { - // Mise à jour du contenu de la div contestation - $("#div_contestation").html(data); - }, - complete: function() { - - } - }); - } -} - -function actualiser_avis_hospitalisation(){ - - const numeroFeuilleMaladie = $("#numeroFeuilleMaladie_C").val(); - - if (numeroFeuilleMaladie > "0") { - $.ajax({ - url: $("#racineWeb").val()+"Ajaxfeuillemaladie/avishopitalisation/", - type : 'post', - error: function(errorData) - { - }, - success: function(data) - { - // Mise à jour du contenu de la div contestation - $("#div_avis_hos").html(data); - }, - complete: function() { - - } - }); - } -} - - -function verification_contestation() { - - // Récupération des valeurs des champs - const bonCaduc = $("#bonCaduc").val(); - const facture = $("#facture").val(); - const numeroFeuilleMaladie = $("#numeroFeuilleMaladie_C").val(); - const nomForm = $("#nomForm").val(); - - // Vérification si le numéro de feuille de maladie est valide - if (numeroFeuilleMaladie > "0") { - $.ajax({ - url: $("#racineWeb").val() + "Ajaxfeuillemaladie/", - type: 'POST', - success: function(data) { - - - // Mise à jour du contenu de la div contestation - $("#div_contestation").html(data); - - // Vérification des conditions de contestation - const contestation = $("#contestation").val(); - - if (bonCaduc === "0" && facture === "0" && contestation === "1") { - // Affichage de l'alerte en cas de contestation - const v_msg = "Dossier médical contesté !"; - const v_msgEng = "Medical records contested!"; - - alert_ebene_callback(v_msg, v_msgEng, function(){ - feuillemaladie(); - }); - - } else { - // Exécution des fonctions spécifiques selon le formulaire - switch(nomForm) - { - case "prescriptionexamens": - enregistrerprescriptionexamen(); - break; - case "prescriptionseances": - enregistrerprescriptionseance(); - break; - case "Optique": - enregistreroptique(); - break; - case "dentaire": - maj_motif_dentaire(); - break; - - // Possibilité d'ajouter d'autres cas si nécessaire - } - } - }, - error: function(xhr, status, error) { - console.error("Erreur AJAX:", status, error); - // Vous pourriez ajouter ici un traitement d'erreur - } - }); - } -} - -function alertsiprixprestationzero() -{ - v_msg="Veuillez saisir au moins un prix de prestation!"; - v_msgEng="Please enter at least one service price!"; - - alert_ebene(v_msg, v_msgEng); - return; -} - -function afficherMasquerEnteteProforma() -{ - masquerEnteteProforma = $("#masquerEnteteProforma").val(); - - const element = document.getElementById("chevron-entete-proforma"); - - if(masquerEnteteProforma=="1"){ - $('#div_entete_proforma').hide(); - $("#masquerEnteteProforma").val("0"); - //$("#span_entete_proforma").text("Afficher"); - - element.classList.remove("bi-chevron-up"); - element.classList.add("bi-chevron-down"); - }else{ - $('#div_entete_proforma').show(); - $("#masquerEnteteProforma").val("1"); - //$("#span_entete_proforma").text("Masquer"); - - element.classList.remove("bi-chevron-down"); - element.classList.add("bi-chevron-up"); - } -} - -function listerrdv() -{ - d1 = $("#d1").val(); - d2 = $("#d2").val(); - - codeEtatRdv = $("#codeEtatRdv").val(); - - donnees = 'd1='+ d1+'&d2='+d2+'&codeEtatRdv='+codeEtatRdv; - - $("#div_dossiers").html('
' + '
'); - - - $.ajax({ - url: $("#racineWeb").val()+"Ajaxdemanderdv/", - type: 'POST', - data: donnees, - error: function(errorData) { - }, - success: function(data) { - // alert(data); - - - $('#div_dossiers').html(data); - }, - complete: function() { - - } - }); -} - -function selectionner_rdv(idDemande) -{ - donnees = 'idDemande='+idDemande; - - $.ajax({ - url: $("#racineWeb").val()+"Ajaxdemanderdv/selectionner/", - type: 'POST', - data: donnees, - error: function(errorData) { - }, - success: function(data) { - // alert(data); - - - - }, - complete: function() { - ouvrir_rdv(); - } - }); -} - - -function ouvrir_rdv() -{ - window.location.assign($("#racineWeb" ).val()+"Rendezvous/"); - -} - -function historique_rdv() -{ - window.location.assign($("#racineWeb" ).val()+"Historiquerdv/"); - -} - -function valider_rdv() -{ - - - numeroDemandeRdv = $("#numeroDemandeRdv").val(); - codeEtatRdv = $("#codeEtatRdv").val(); - - motifReponseRdv = $("#motifReponseRdv").val(); - motifReponseRdv = motifReponseRdv.trim(); - - if(codeEtatRdv=="0"){ - - v_msg="Un autre état de réponse est obligatoire!"; - v_msgEng="Another response status is required!"; - alert_ebene(v_msg, v_msgEng); - - $("#codeEtatRdv").focus(); - - return; - } - - if (codeEtatRdv=="1"){ - dateRdvAccordee = $("#dateRdvAccordee").val(); - heureRdvAccordee = $("#heureRdvAccordee").val(); - - if(dateRdvAccordee<=" "){ - v_msg="Une date de rendez-vous est obligatoire!"; - v_msgEng="An appointment date is required!"; - alert_ebene(v_msg, v_msgEng); - - $("#dateRdvAccordee").focus(); - - return; - } - - if(heureRdvAccordee<=" "){ - v_msg="Une heure de rendez-vous est obligatoire!"; - v_msgEng="An appointment time is required!"; - alert_ebene(v_msg, v_msgEng); - - $("#heureRdvAccordee").focus(); - - return; - } - - }else{ - dateRdvAccordee = ""; - heureRdvAccordee = ""; - } - - - if(codeEtatRdv=="9" && motifReponseRdv<=" "){ - v_msg="Le motif est obligatoire!"; - v_msgEng="The pattern is mandatory!"; - alert_ebene(v_msg, v_msgEng); - - $("#motifReponseRdv").focus(); - - return; - } - - donnees = 'numeroDemandeRdv='+ numeroDemandeRdv+'&codeEtatRdv='+codeEtatRdv; - donnees += '&dateRdvAccordee='+dateRdvAccordee+'&heureRdvAccordee='+heureRdvAccordee; - donnees += '&motifReponseRdv='+motifReponseRdv; - - - v_msg="Confirmez-vous la modification de votre demande?"; - v_msgEng="Do you confirm the modification of your request?"; - - confirm_ebene_sweet(v_msg, v_msgEng) - .then((isConfirmed) => { - if (isConfirmed) { - // L'utilisateur a confirmé - - vLink = "Ajaxdemanderdv/valider/"; - - $.ajax({ - type: "POST", - url: $("#racineWeb").val()+vLink, - data:donnees, - error: function(errorData) { - }, - success: function(data) { - //alert(data); - // $('#div_test_gabarit').html(data); - - }, - complete: function() { - - historique_rdv(); - } - - }); - - } else { - // L'utilisateur a annulé - console.log("Confirmation refusée"); - } - }); - -} - -function visibilite_date_rdv() -{ - codeEtatRdv = $('#codeEtatRdv').val(); - - if(codeEtatRdv=="0" || codeEtatRdv=="1"){ - $('#tr_date').show(); - }else{ - - $('#tr_date').hide(); - } -} - -function ajax_context_feuille_maladie_recherche(numeroBonConsultation,idBeneficiaire,idPolice) -{ - // - donnees = 'numeroBonConsultation='+numeroBonConsultation + '&idBeneficiaire='+idBeneficiaire+ '&idPolice='+idPolice ; - $.ajax({ - url: $("#racineWeb").val()+"Ajaxcontextfeuillemaladie/recherche/", - type : 'post', - data: donnees, - error: function(errorData) { - }, - complete: function() { - feuillemaladie(); - } - }); -} - -// -function filtrefeuillerecher() { - etatFeuille = $("#etatFeuille").val(); - debut = $("#debut").val(); - fin = $("#fin").val(); - - donnees = 'etatFeuille=' + etatFeuille; - donnees += '&debut=' + debut + '&fin=' + fin; - - $("#div_filtrefeuillerecher").html('
' + '
'); - - $.ajax({ - url: $("#racineWeb").val() + "Ajaxcloturerfeuillemaladie/filtrefeuillerecher/", - type: 'post', - data: donnees, - error: function (errorData) { - }, - success: function (data) { - $("#div_filtrefeuillerecher").html(data); - $(".datepicker" ).datepicker(); - appliquerDataTable(); - - }, - complete: function () { - } - }); -} - - -function listeententeprealables() { - - codeReponseEntentePrealable = $("#codeReponseEntentePrealable").val(); - debut_entente = $("#debut_entente").val(); - fin_entente = $("#fin_entente").val(); - - donnees = 'codeReponseEntentePrealable=' + codeReponseEntentePrealable; - donnees += '&debut_entente=' + debut_entente + '&fin_entente=' + fin_entente; - - $("#div_ententeprealable").html('
' + '
'); - - $.ajax({ - url: $("#racineWeb").val() + "Ajaxententeprealables/", - type: 'post', - data: donnees, - error: function (errorData) { - }, - success: function (data) { - $("#div_ententeprealable").html(data); - $(".datepicker" ).datepicker(); - appliquerDataTable(); - - }, - complete: function () { - } - }); -} - -function cloturer_feuille_maladie(numeroFeuilleMaladie,idBeneficiaire) -{ - - - donnees = 'numeroFeuilleMaladie='+numeroFeuilleMaladie +'&idBeneficiaire='+idBeneficiaire; - - $("#div_dossiers").html('
' + '
'); - - $.ajax({ - url: $("#racineWeb").val()+"Ajaxcloturerfeuillemaladie/", - type : 'post', - data: donnees, - error: function(errorData) { - }, - success: function(data) { - $("#div_recap_feuille_maladie").html(data); - $("#div_recap_feuille_maladie").modal({ backdrop: 'static', keyboard: false, show: true }); - $("#div_recap_feuille_maladie").modal("show"); - $("#codeAffectionPop").selectpicker(); - }, - complete: function() { - afficherMasquerBeneficiaire(); - } - }); -} - -function afficherMasquerBeneficiaire() { - masquerbeneficiaire= $("#masquerbeneficiaire").val(); - - if (masquerbeneficiaire == "1") { - $('#div_beneficiaire').hide(); - $("#masquerbeneficiaire").val("0"); - $("#span_beneficiaire").html(''); - - } else { - $('#div_beneficiaire').show(); - $("#masquerbeneficiaire").val("1"); - $("#span_beneficiaire").html(''); - } -} - -function listerdossiercontestes() -{ - - - d1=$("#d1").val(); - d2=$("#d2").val(); - - donnees = 'd1='+d1+'&d2='+d2; - - $("#div_dossiers").html('
' + '
'); - - $.ajax({ - url: $("#racineWeb").val()+"Ajaxdossierscontestes/", - type : 'post', - data: donnees, - error: function(errorData) { - // alert("Erreur : "+errorData); - }, - success: function(data) { - - - $("#div_dossiers").html(data); - }, - complete: function() { - } - }); -} - -// pour le mode saisi facture décompte -function enregistrerconsultationassureur() -{ - codeLangue = $("#codeLangue").val(); - codeActeConsultationGratuite = $("#codeActeConsultationGratuite").val(); - - $("#okId" ).val("1"); - $("#okId_face" ).val("1"); - - /* - codeTypeRemboursement=$("#codeTypeRemboursement").val(); - - if(codeTypeRemboursement=="RDE"){ - - v_msg="Attention! La consultation est exclusivement en remboursement direct! Le patient est pri\u00e9 de se rendre chez le gestionnaire pour se faire rembourser. Merci pour votre compr\u00e9hension!"; - v_msgEng="Warning! The consultation is exclusively in direct reimbursement! The patient is asked to go to the manager for reimbursement. "+nomSociete+" thanks you!"; - - alert_ebene(v_msg, v_msgEng); - faireDefileMessage(v_msg, v_msgEng); - return; - } - */ - - badcodeGestionBon = $("#badcodeGestionBon").val(); - - if (badcodeGestionBon=="1") - { - v_msg="Veuillez revoir le type de gestion de bons!"; - v_msgEng="Please review the type of forms management!"; - alert_ebene(v_msg, v_msgEng); - return; - } - - appliquerDelaiCarence = $("#appliquerDelaiCarence").val(); - - anciennete = $("#anciennete").val(); - anciennete = parseInt(anciennete); - - delaiCarenceRaisonconsultation = $("#delaiCarenceRaisonconsultation").val(); - delaiCarenceRaisonconsultation = parseInt(delaiCarenceRaisonconsultation); - - delaiCarenceBeneficiaire = $("#delaiCarenceBeneficiaire").val(); - delaiCarenceBeneficiaire = parseInt(delaiCarenceBeneficiaire); - - if (delaiCarenceBeneficiaire > 0 && appliquerDelaiCarence=="1") - { - if (anciennete < delaiCarenceBeneficiaire) - { - v_msg="Attention! P\u00e9riode de carence!"; - v_msgEng="Warning! waiting period!"; - alert_ebene(v_msg, v_msgEng); - return; - } - - delaiCarenceActe = $("#delaiCarenceActe").val(); - delaiCarenceActe = parseInt(delaiCarenceActe); - - if (anciennete "0") && (dureeDerniereConsultation <= dureeVieBon) && (codePrestataire == dernierCentre)){ - if(codeTypeConsultation == "GE"){ - v_msg="La derni\u00e8re consultation du patient pour cet acte date de moins de "+dureeVieBon+" jours. Veuiller changer l'acte ou passer en consultation gratuite. Merci pour votre compr\u00e9hension!"; - v_msgEng="The patient's last consultation was less than "+dureeVieBon+" days ago. Please change the deed or go to free consultation. Thanks for understanding."; - - alert_ebene(v_msg, v_msgEng); - faireDefileMessage(v_msg, v_msgEng); - return; - }else if((codeTypeConsultation == "SP") && (dernierMedecinConsulte == codeMedecin)){ - v_msg="Attention, ce patient a d\u00e9ja \u00e9t\u00e9 consult\u00e9 par ce sp\u00e9cialiste, il ya moins de "+dureeVieBon+" jours. Veuiller changer l'acte ou passer en consultation gratuite. Merci pour votre compr\u00e9hension!"; - v_msgEng="Please note, this patient has already been consulted by this specialist, less than "+dureeVieBon+" days ago. Please change the deed or go to free consultation. Thanks for understanding."; - - alert_ebene(v_msg, v_msgEng); - faireDefileMessage(v_msg, v_msgEng); - return; - } - }else if ((codeActe == dernierActe) && (dureeDerniereConsultation == "0")){ - if((codeTypeConsultation == "GE") && (codePrestataire == dernierCentre)){ - v_msg="Attention, ce patient a d\u00e9ja \u00e9t\u00e9 consult\u00e9 aujourd'hui par un g\u00e9n\u00e9raliste. Voulez-vous ouvrir son dossier m\u00e9dical?"; - v_msgEng="Attention, this patient has already been consulted by a general practitioner today. Would you like to open his medical file?"; - - confirm_ebene_sweet(v_msg, v_msgEng).then((confirmed) => { - if (confirmed) { - dossiers(0); - } else { - v_msg="Attention, ce patient a d\u00e9ja \u00e9t\u00e9 consult\u00e9 aujourd'hui par un g\u00e9n\u00e9raliste. Cliquer sur le menu Dossiers, dans la barre de gauche, pour ouvrir son dossier m\u00e9dical."; - v_msgEng="Attention, this patient has already been consulted by a general practitioner today. Click on the Files menu, in the left bar, to open his medical file."; - faireDefileMessage(v_msg, v_msgEng); - } - }); - return; - }else if((codeTypeConsultation == "GE") && (codePrestataire != dernierCentre)){ - v_msg="Attention, ce patient a d\u00e9ja \u00e9t\u00e9 consult\u00e9 aujourd'hui ailleurs par un g\u00e9n\u00e9raliste. Veuiller changer l'acte ou demander au patient de revenir un autre jour. Merci pour votre compr\u00e9hension!"; - v_msgEng="Please note, for this day the patient has already been consulted elsewhere by a general practitioner. Please change the procedure or ask the patient to come back another day. Thank you for your understanding."; - - alert_ebene(v_msg, v_msgEng); - faireDefileMessage(v_msg, v_msgEng); - return; - }else if((codeTypeConsultation == "SP") && (nbreConsultaionSpecialisteJour >= paramConsultationSpecialisteJour)){ - v_msg="Attention, ce patient a d\u00e9ja consult\u00e9 "+ paramConsultationSpecialisteJour +" sp\u00e9cialistes aujourd'hui. Veuiller changer l'acte. Merci pour votre compr\u00e9hension!"; - v_msgEng="Attention, this patient has already consulted "+ paramConsultationSpecialisteJour +" specialists today. Please change the deed. Thanks for understanding."; - - alert_ebene(v_msg, v_msgEng); - faireDefileMessage(v_msg, v_msgEng); - return; - }else if((codeTypeConsultation == "SP") && (codePrestataire == dernierCentre) && (dernierMedecinConsulte == codeMedecin)){ - v_msg="Attention, ce patient a d\u00e9ja \u00e9t\u00e9 consult\u00e9 aujourd'hui par ce sp\u00e9cialiste."; - v_msgEng="Attention, this patient has already been consulted by this specialist today."; - - confirm_ebene_sweet( - codeLangue === "en_US" ? "Do you want to open the patient's medical file?" : "Voulez-vous ouvrir le dossier médical du patient?", - codeLangue === "en_US" ? v_msgEng : v_msg - ).then((confirmed) => { - if (confirmed) { - dossiers(0); - } else { - v_msg="Attention, ce patient a d\u00e9ja \u00e9t\u00e9 consult\u00e9 aujourd'hui par ce sp\u00e9cialiste. Cliquer sur le menu Dossiers, dans la barre de gauche, pour ouvrir son dossier m\u00e9dical."; - v_msgEng="Attention, this patient has already been consulted by this specialist today. Click on the Files menu, in the left bar, to open his medical file."; - faireDefileMessage(v_msg, v_msgEng); - } - }); - return; - } - }else if ((codeActe == dernierActe) && (dureeDerniereConsultation == "0")){ - if((codeTypeConsultation == "GE") && (codePrestataire == dernierCentre)){ - v_msg="Attention, ce patient a d\u00e9ja \u00e9t\u00e9 consult\u00e9 aujourd'hui par un g\u00e9n\u00e9raliste. Voulez-vous ouvrir son dossier m\u00e9dical?"; - v_msgEng="Attention, this patient has already been consulted by a general practitioner today. Would you like to open his medical file?"; - - confirm_ebene_sweet(v_msg, v_msgEng).then((confirmed) => { - if (confirmed) { - dossiers(0); - } else { - v_msg="Attention, ce patient a d\u00e9ja \u00e9t\u00e9 consult\u00e9 aujourd'hui par un g\u00e9n\u00e9raliste. Cliquer sur le menu Dossiers, dans la barre de gauche, pour ouvrir son dossier m\u00e9dical."; - v_msgEng="Attention, this patient has already been consulted by a general practitioner today. Click on the Files menu, in the left bar, to open his medical file."; - faireDefileMessage(v_msg, v_msgEng); - } - }); - return; - }else if((codeTypeConsultation == "GE") && (codePrestataire != dernierCentre)){ - v_msg="Attention, ce patient a d\u00e9ja \u00e9t\u00e9 consult\u00e9 aujourd'hui dans un autre centre."; - v_msgEng="Attention, this patient has already been consulted today in another center"; - - alert_ebene(v_msg, v_msgEng); - faireDefileMessage(v_msg, v_msgEng); - return; - }else if((codeTypeConsultation == "GE") && (dureeDerniereConsultation >= "0") && (dureeDerniereConsultation <= dureeVieBon) && (codePrestataire == dernierCentre)){ - v_msg="La derni\u00e8re consultation g\u00e9n\u00e9raliste du patient date de moins de "+dureeVieBon+" jours. Veuiller changer l'acte ou passer en consultation gratuite. Merci pour votre compr\u00e9hension!"; - v_msgEng="The patient's last general consultation was less than "+dureeVieBon+" days ago. Please change the deed or go to free consultation. Thanks for understanding."; - - alert_ebene(v_msg, v_msgEng); - faireDefileMessage(v_msg, v_msgEng); - return; - }else if((codeTypeConsultation == "SP") && (specialiteEstPossible == "0")){ - if(codeSpecialite == "PED" && (age > agemaxipediatrie)) { - v_msg="Attention, ce patient n'a pas moins de "+agemaxipediatrie+" ans! Il ne peut pas faire cette consultation, veuiller changer l'acte."; - v_msgEng="Attention, this patient is not less than "+agemaxipediatrie+" years old! He cannot do this consultation, please change the act."; - - alert_ebene(v_msg, v_msgEng); - faireDefileMessage(v_msg, v_msgEng); - return; - }else{ - v_msg="La derni\u00e8re consultation du patient pour cet acte date de moins de "+dureeVieBon+" jours. Veuiller changer l'acte ou passer en consultation gratuite. Merci pour votre compr\u00e9hension!"; - v_msgEng="The patient's last consultation was less than "+dureeVieBon+" days ago. Please change the deed or go to free consultation. Thanks for understanding."; - - alert_ebene(v_msg, v_msgEng); - faireDefileMessage(v_msg, v_msgEng); - return; - } - } - }else if((codeTypeConsultation == "SP") && (nbreConsultaionSpecialisteJour >= paramConsultationSpecialisteJour) && (dureeDerniereConsultation == "0")){ - v_msg="Attention, ce patient a d\u00e9ja consult\u00e9 "+ paramConsultationSpecialisteJour +" sp\u00e9cialistes aujourd'hui. Veuiller changer l'acte. Merci pour votre compr\u00e9hension!"; - v_msgEng="Attention, this patient has already consulted "+ paramConsultationSpecialisteJour +" specialists today. Please change the deed. Thanks for understanding."; - - alert_ebene(v_msg, v_msgEng); - faireDefileMessage(v_msg, v_msgEng); - return; - }else if((codeTypeConsultation == "GE") && (dureeDerniereConsultation == "0") && (codePrestataire != dernierCentre)){ - v_msg="Attention, ce patient a d\u00e9ja \u00e9t\u00e9 consult\u00e9 aujourd'hui dans un autre centre."; - v_msgEng="Attention, this patient has already been consulted today in another center"; - - alert_ebene(v_msg, v_msgEng); - faireDefileMessage(v_msg, v_msgEng); - return; - }else if((codeTypeConsultation == "GE") && (dureeDerniereConsultation >= "0") && (dureeDerniereConsultation <= dureeVieBon) && (codePrestataire == dernierCentre)){ - v_msg="La derni\u00e8re consultation g\u00e9n\u00e9raliste du patient date de moins de "+dureeVieBon+" jours. Veuiller changer l'acte ou passer en consultation gratuite. Merci pour votre compr\u00e9hension!"; - v_msgEng="The patient's last general consultation was less than "+dureeVieBon+" days ago. Please change the deed or go to free consultation. Thanks for understanding."; - - alert_ebene(v_msg, v_msgEng); - faireDefileMessage(v_msg, v_msgEng); - return; - }else if((codeTypeConsultation == "SP") && (specialiteEstPossible == "0")){ - if(codeSpecialite == "PED" && (age > agemaxipediatrie)) { - v_msg="Attention, ce patient n'a pas moins de "+agemaxipediatrie+" ans! Il ne peut pas faire cette consultation, veuiller changer l'acte."; - v_msgEng="Attention, this patient is not less than "+agemaxipediatrie+" years old! He cannot do this consultation, please change the act."; - - alert_ebene(v_msg, v_msgEng); - faireDefileMessage(v_msg, v_msgEng); - return; - }else{ - v_msg="La derni\u00e8re consultation du patient pour cet acte date de moins de "+dureeVieBon+" jours. Veuiller changer l'acte ou passer en consultation gratuite. Merci pour votre compr\u00e9hension!"; - v_msgEng="The patient's last consultation was less than "+dureeVieBon+" days ago. Please change the deed or go to free consultation. Thanks for understanding."; - - alert_ebene(v_msg, v_msgEng); - faireDefileMessage(v_msg, v_msgEng); - return; - } - } - }else if(codeActe == codeActeConsultationGratuite || codeTypeConsultation == "CO"){ - if((dureeDerniereConsultation == "0") && (nombreFeuilleGratuite >= parametreNombreFeuilleGratuitJour)){ - v_msg="Le quotas journalier de feuille de soin gratuite est atteint pour ce patient."; - v_msgEng="The daily free care sheet quota has been reached for this patient."; - - confirm_ouvrir_dossier(v_msg, v_msgEng); - - return; - } - } - - codeRaisonConsultation = $("#codeRaisonConsultation").val(); - - if (codeRaisonConsultation<=" ") - { - v_msg="Veuillez s\u00e9lectionner une raison pour la consultation!"; - v_msgEng="Please select a reason for the consultation!"; - alert_ebene(v_msg, v_msgEng); - $("#codeRaisonConsultation").focus(); - return; - } - - if (codeGestionBon=="0") - { - numeroBon = $("#numeroBon").val(); - - if(isNaN(numeroBon)) - { - v_msg="Veuillez revoir le num\u00e9ro de bon!"; - v_msgEng="Please review the prescription number!"; - alert_ebene(v_msg, v_msgEng); - - $("#btn_enreg").disable(); - $("#msgErreur").html(""); - $("#codeEtatBon").val(""); - - $("#numeroBon").focus(); - return; - } - - if ($("#numeroBon").val()<="0") - { - v_msg="Veuillez saisir un No de bon!"; - v_msgEng="Please enter a prescription number!"; - alert_ebene(v_msg, v_msgEng); - $("#numeroBon").focus(); - return; - } - - codeEtatBon = $("#codeEtatBon").val(); - - if (codeEtatBon!="1") - { - v_msg="Veuillez saisir un No de bon disponible!"; - v_msgEng="Please enter a prescription number available!"; - alert_ebene(v_msg, v_msgEng); - $("#numeroBon").focus(); - return; - } - - if(numeroBonSave!=numeroBon) - { - v_msg="Veuillez revoir le num\u00e9ro de bon!"; - v_msgEng="Please review the prescription number!"; - alert_ebene(v_msg, v_msgEng); - - $("#btn_enreg").disable(); - $("#msgErreur").html(""); - $("#codeEtatBon").val(""); - - $("#numeroBon").focus(); - return; - } - - v_msg="Confirmez-vous ce No de bon?"; - v_msgEng="Do you confirm this number of presciption?"; - } - else - { - numeroBon = "-1"; - v_msg="Confirmez-vous l'ouverture d'un dossier médical pour ce patient?"; - v_msgEng="Do you confirm the opening of a medical file for this patient?"; - } - - confirm_ebene_sweet(v_msg, v_msgEng).then((confirmed) => { - if (confirmed) { - dateSurvenance = $("#dateSurvenance").val(); - observations = $("#observations").val(); - - depassement = $("#depassement").val(); - numeroDerogation = $("#derogation_en_cours_C").val(); - numeroDerogationFinger = $("#derogation_finger_en_cours_C").val(); - - okReferencement = $("#okReferencement").val(); - - dateReferencement = $("#dateReferencement").val(); - codeReferencement = $("#codeReferencement").val(); - - if(dateReferencement == undefined){ - dateReferencement=""; - } - - if(codeReferencement == undefined){ - codeReferencement=""; - } - - if (numeroDerogation<1) { - numeroDerogation = "0"; - } - - if (numeroDerogationFinger<1) { - numeroDerogationFinger = "0"; - } - - ententePrealable='0'; - bonPrincipal = "0"; - medecinManquant =""; - - donnees = 'codeActe='+codeActe+'&numeroBon='+numeroBon+'&codeMedecin='+codeMedecin+'&codeRaisonConsultation='+codeRaisonConsultation; - donnees += '&dateSurvenance='+dateSurvenance+'&observations='+observations+'&prixActe='+prixActe+'&prixBase='+prixBase; - donnees += '&montantTm='+montantTm+'&aRembourser='+aRembourser+'&numeroDerogation='+numeroDerogation+'&depassement='+depassement; - donnees += '&numeroDerogationFinger='+numeroDerogationFinger; - donnees += '&medecinManquant='+medecinManquant; - donnees += '&ententePrealable='+ententePrealable; - donnees += '&dateReferencement='+dateReferencement; - donnees += '&codeReferencement='+codeReferencement; - donnees += '&bonPrincipal='+bonPrincipal; - donnees += '&codeGestionBon='+codeGestionBon; - donnees += '&codeSpecialite='+codeSpecialite; - - $("#btn_enreg").disable(); - - $.ajax({ - url: $("#racineWeb").val()+"Ajaxenregistrerconsultation/enregistrerconsultation/", - type : 'post', - data: donnees, - error: function(errorData) { - }, - success: function(data) { - maj_fraisexclu_cso(); - }, - complete: function() { - v_msg="Consultation enregistr\u00e9e avec succ\u00e8s"; - v_msgEng="Saved successfully!"; - alert_ebene(v_msg, v_msgEng); - feuillemaladie(); - } - }); - } else { - return; - } - }); -} - -async function envoyer_demande_reconnaissance_faciale() { - // alert("envoyer_demande_reconnaissance_faciale"); - // return; - - // Demande de confirmation multilingue - const isConfirm = await confirm_ebene_sweet( - "Confirmez-vous la validation?", - "Do you confirm validation?" - ); - - if (!isConfirm) { - return false; - } - - try { - await $.ajax({ - url: $("#racineWeb").val() + "Ajaxdetaildentisterie/valider/", - type: 'POST', - data: '' - }); - - alert_ebene( - "Demande envoyée!", - "Request sent!" - ); - - fiche_beneficiaire(); - - } catch (error) { - console.error("Erreur :", error); - } -} - -function init_demande_reconnaissance_faciale() { - // alert("init_demande_reconnaissance_faciale"); - // return; - - // $("#idHtagcarte").val(idHtagcarte); - $("#telephoneAutre").focus(); - $("#div_demande_reconnaissance_faciale").modal({backdrop: 'static', keyboard: false, show: true }); - $("#div_demande_reconnaissance_faciale").modal("show"); -} - -function modifier_prix_acte() { - prixModifiable = $('#prixModifiable').val(); - $('#prixSaisi').val(prixModifiable); - prixModifiable = $('#prixModifiable').val(); - prixSaisi = $('#prixSaisi').val(); - - if(prixSaisi<="0"){ - initialiser_prix_acte(); - } - else{ - ajaxprixacte(); - } -} - -function modifier_prix_examen(idExamen, prixSaisi) { - donnees = 'idExamen='+idExamen+'&prixSaisi='+prixSaisi; - - if (prixSaisi <= "0"){ - v_msg="Rien à faire!"; - v_msgEng="Nothing to do!"; - alert_ebene(v_msg, v_msgEng); - return; - } - - $.ajax({ - url: $("#racineWeb").val()+"Ajaxdetailexamen/majprixamen/", - type: 'POST', - data: donnees, - success: function(data) { - $("#livraison").html(data); - }, - error: function(data) { - }, - complete: function() { - } - }); -} - - -function modifier_prix_examen_lab(idExamen, prixSaisi) { - donnees = 'idExamen='+idExamen+'&prixSaisi='+prixSaisi; - - if (prixSaisi <= "0"){ - v_msg="Rien à faire!"; - v_msgEng="Nothing to do!"; - alert_ebene(v_msg, v_msgEng); - return; - } - - $.ajax({ - url: $("#racineWeb").val()+"Ajaxdetaillaboratoire/majprixamen/", - type: 'POST', - data: donnees, - success: function(data) { - $("#livraison").html(data); - }, - error: function(data) { - }, - complete: function() { - } - }); -} - -function modifier_prix_seance() { - prixModifiable = $('#prixModifiable').val(); - $('#prixSaisi').val(prixModifiable); - $('#prixActe').val(prixModifiable); - - ajaxprixseance(); -} - -function modifier_prix_dentisterie(idDentisterie, prixSaisi) { - donnees = 'idDentisterie='+idDentisterie+'&prixSaisi='+prixSaisi; - - if (prixSaisi <= "0"){ - v_msg="Rien à faire!"; - v_msgEng="Nothing to do!"; - alert_ebene(v_msg, v_msgEng); - return; - } - - $.ajax({ - url: $("#racineWeb").val()+"Ajaxdetaildentisterie/majprixdentisterie/", - type: 'POST', - data: donnees, - complete: function() { - dentisterie(); - } - }); -} - -function modifier_prix_autres_actes(idPrestationactes, prixSaisi, controle) { - donnees = 'idPrestationactes='+idPrestationactes+'&prixSaisi='+prixSaisi; - - if (prixSaisi <= "0"){ - v_msg="Rien à faire!"; - v_msgEng="Nothing to do!"; - alert_ebene(v_msg, v_msgEng); - return; - } - - let donnee_a_afficher = ""; - - $("#div_prestations").html('
' + '
'); - - $.ajax({ - url: $("#racineWeb").val()+"Ajaxactesmedicauxselect/majprixautresactes/", - type: 'POST', - data: donnees, - success: function(data) { - donnee_a_afficher = data; - }, - complete: function() { - $("#div_prestations").html(donnee_a_afficher); - controle.focus(); - } - }); -} - -function ajax_maj_qte_acte(idPrestationactes, quantite, controle) -{ - quantite=quantite.replace(",","."); - controle.value=quantite; - - if(controle_numerique(controle)) - { - if(quantite==0) - { - controle.focus(); - v_msg="Veuillez saisir la quantit\u00e9!"; - v_msgEng="Please enter the quantity!"; - alert_ebene(v_msg, v_msgEng); - - return; - } - - donnees = 'idPrestationactes='+idPrestationactes+"&quantite="+quantite; - - donnee_a_affciher = ""; - - donnees = 'idPrestationactes='+idPrestationactes+"&quantite="+quantite; - - $("#div_prestations").html('
' + '
'); - - $.ajax({ - url: $("#racineWeb").val()+"Ajaxactesmedicauxselect/majquantite/", - type: 'POST', - data: donnees, - success: function(data) { - donnee_a_affciher = data; - }, - error: function(data) { - }, - complete: function() { - $("#div_prestations").html(donnee_a_affciher); - controle.focus(); - } - }); - } -} - -/** - * Fonction pour supprimer un acte médical sélectionné - * @param {string} idPrestationactes - Identifiant unique de la prestation à supprimer - * @param {string} codeTypePrestation - Code du type de prestation - */ -async function supprimer_acte_medical_selection(idPrestationactes, codeTypePrestation) { - // 1. Initialisation des variables - let donnee_a_afficher = ""; - - // 2. Messages de confirmation multilingues - const messages = { - confirmation: { - fr: "Confirmez-vous la suppression de cet acte?", - en: "Do you confirm the removal of this act?" - }, - chargement: { - fr: "Veuillez patienter...", - en: "Please wait..." - } - }; - - // 3. Demande de confirmation à l'utilisateur - const isConfirmed = await confirm_ebene_sweet( - messages.confirmation.fr, - messages.confirmation.en - ); - - if (!isConfirmed) return; - - // 4. Récupération du code famille acte - const codeFamilleActe = $("#codeFamilleActe").val(); - - // 5. Affichage de l'indicateur de chargement - // $("#listeacte").html('
' + '
'); - $("#div_prestations").html('
' + '
'); - - - // 6. Préparation des données pour la requête - const donnees = { - codeFamilleActe: codeFamilleActe, - idPrestationactes: idPrestationactes, - codeTypePrestation: codeTypePrestation - }; - - // 7. Envoi de la requête AJAX - try { - const response = await $.ajax({ - url: $("#racineWeb").val() + "Ajaxselectactesmedicaux/supprimeracte/", - type: 'POST', - data: donnees - }); - - // 8. Traitement de la réponse - donnee_a_afficher = response; - - // 9. Mise à jour de l'interface utilisateur - $("#totam_donnees").html(donnee_a_afficher); - appliquerDataTable(); // Application du plugin DataTables - majgestionacte(); // Mise à jour de la gestion des actes - - } catch (error) { - console.error("Erreur lors de la suppression de l'acte médical:", error); - // Gestion supplémentaire des erreurs pourrait être ajoutée ici - } -} - -// Fonction appelée lorsqu’on veut indiquer qu’il n’y a pas de prescription pour un patient -function no_presciption() -{ - const facture = $("#facture").val(); - const contestation = $("#contestation").val(); - - // Si la facture est déjà émise, on affiche une alerte et on arrête - if (facture == "1") { - const v_msg = "D\u00e9jà factur\u00e9!"; - const v_msgEng = "Already charged!"; - alert_ebene(v_msg, v_msgEng); - return; - } - - // Si le dossier est contesté, on empêche la validation - if (contestation == "1") { - const v_msg = "Dossier médical contest\u00e9 !"; - const v_msgEng = "Medical records contested!"; - alert_ebene(v_msg, v_msgEng); - return; - } - - const numOrd = $("#numOrd").val(); - const noPrescription = $("#noPrescription").val(); - - // Si aucune ordonnance ni indication "pas de prescription" - if (numOrd == "0" && noPrescription == "0") { - const v_msg = "Confirmez-vous qu'il n'y a pas de prescription de m\u00e9dicaments?"; - const v_msgEng = "Do you confirm that there is no drugs prescription?"; - const codeLangue = $("#codeLangue").val(); - - // Appel d'une boîte de confirmation personnalisée, adaptée à la langue - confirm_ebene_sweet( - v_msg, v_msgEng - ).then((confirmed) => { - if (confirmed) { - $.ajax({ - url: $("#racineWeb").val() + "Ajaxenregistrerprescription/noprescription/", - type: 'post', - error: function(errorData) { - // alert(errorData); - }, - success: function(data) { - // alert(data); - }, - - complete: function() { - feuillemaladie(); // Rechargement de la feuille de maladie - } - }); - } - }); - } -} - -function modifier_prix_seance_kine() { - prixModifiable = $('#prixModifiable').val(); - $('#prixSaisi').val(prixModifiable); - $('#prixActe').val(prixModifiable); - - ajaxprixseancesea(); -} - -function ajaxprixseancesea() -{ - codeActe = $("#codeActe").val(); - - if (codeActe<=" ") - { - $("#prixActe_info").val("0"); - $("#totalActe_info").val("0"); - $("#montantTm_info").val("0"); - $("#aRembourser_info").val("0"); - $("#depassement_info").val("0"); - - v_msg="Veuillez s\u00e9lectionner un act!"; - v_msgEng="Please select an act!"; - alert_ebene(v_msg, v_msgEng); - - $("#codeActe").focus(); - return; - } - - quantite = $("#quantiteSeance").val(); - - quantite = parseInt(quantite); - - if(quantite==0) - { - $("#quantiteSeance").val(1); - quantite = 1; - } - - nbRestant = $("#nbRestant").val(); - nbRestant = parseInt(nbRestant); - - if(quantite>nbRestant) - { - v_msg="Vous ne pouvez pas d\u00e9passer "+nbRestant+" s\u00e9ances!"; - v_msgEng="Only "+nbRestant+" sessions are possible!"; - alert_ebene(v_msg, v_msgEng); - quantite = 0; - } - - prixSaisi = $("#prixSaisi").val(); - donnees = 'codeActe='+codeActe+'&quantite='+quantite; - donnees += '&prixSaisi='+prixSaisi; - - $("#infosacte").html('
' + '
'); - - $.ajax({ - url: $("#racineWeb").val()+"Ajaxprixseancesea/", - type : 'post', - data: donnees, - error: function(errorData) { - }, - success: function(data) { - $("#infosacte").html(data); - }, - complete: function() { - } - }); -} - -function ajax_maj_qte_acte_hospitalisation(idPrestationactes, quantite, controle) -{ - quantite=quantite.replace(",","."); - controle.value=quantite; - - if(controle_numerique(controle)) - { - if(quantite==0) - { - controle.focus(); - v_msg="Veuillez saisir la quantit\u00e9!"; - v_msgEng="Please enter the quantity!"; - alert_ebene(v_msg, v_msgEng); - - return; - } - - $("#totam_donnees").html('
' + '
'); - - donnees = 'idPrestationactes='+idPrestationactes+"&quantite="+quantite; - - $.ajax({ - url: $("#racineWeb").val()+"Ajaxselectactesmedicauxhospitalisation/majquantite/", - type: 'POST', - data: donnees, - success: function(data) { - }, - error: function(data) { - }, - complete: function() { - ajaxactespossibles_selection_hospitalisation(); - } - }); - } -} - -function ajax_maj_prix_acte_hospitalisation(idPrestationactes, valeurActe, controle) -{ - valeurActe=valeurActe.replace(",","."); - controle.value=valeurActe; - - valeurActe=valeurActe.replace(/ /g,""); - valeurActe=parseInt(valeurActe.replace(",","."),10); - controle.value=valeurActe; - - if(controle_numerique(controle)) - { - if (valeurActe <= "0"){ - v_msg="Rien à faire!"; - v_msgEng="Nothing to do!"; - alert_ebene(v_msg, v_msgEng); - return; - } - - $("#totam_donnees").html('
' + '
'); - - donnees = 'idPrestationactes='+idPrestationactes+"&valeurActe="+valeurActe; - - $.ajax({ - url: $("#racineWeb").val()+"Ajaxselectactesmedicauxhospitalisation/majvaleuracte/", - type: 'POST', - data: donnees, - success: function(data) { - }, - error: function(data) { - }, - complete: function() { - ajaxactespossibles_selection_hospitalisation(); - } - }); - } -} - -function ajax_maj_qte_acte_miseenobservation(idDetail, quantite, controle) -{ - quantite=quantite.replace(",","."); - controle.value=quantite; - - if(controle_numerique(controle)) - { - if(quantite==0) - { - controle.focus(); - v_msg="Veuillez saisir la quantit\u00e9!"; - v_msgEng="Please enter the quantity!"; - alert_ebene(v_msg, v_msgEng); - - return; - } - - donnees = 'idDetail='+idDetail+"&quantite="+quantite; - - donnee_a_afficher = ""; - - $("#totam_donnees").html('
' + '
'); - - $.ajax({ - url: $("#racineWeb").val()+"Ajaxselectactesmedicauxobservation/majquantite/", - type: 'POST', - data: donnees, - success: function(data) { - donnee_a_afficher = data; - }, - error: function(data) { - }, - complete: function() { - $("#totam_donnees").html(donnee_a_afficher); - appliquerDataTable(); // Application du plugin DataTables - // ajaxactespossibles_miseenobservation(); // Rafraîchissement de la liste des actes - controle.focus(); - } - }); - } -} - -function ajax_maj_prix_acte_miseenobservation(idDetail, valeurActe, controle) -{ - valeurActe=valeurActe.replace(",","."); - controle.value=valeurActe; - - if(controle_numerique(controle)) - { - if(valeurActe==0) - { - controle.focus(); - v_msg="Rien à faire!"; - v_msgEng="Nothing to do!"; - alert_ebene(v_msg, v_msgEng); - return; - } - - donnees = 'idDetail='+idDetail+"&valeurActe="+valeurActe; - - donnee_a_afficher = ""; - - $("#totam_donnees").html('
' + '
'); - - $.ajax({ - url: $("#racineWeb").val()+"Ajaxselectactesmedicauxobservation/majvaleuracte/", - type: 'POST', - data: donnees, - success: function(data) { - donnee_a_afficher = data; - }, - error: function(data) { - }, - complete: function() { - $("#totam_donnees").html(donnee_a_afficher); - appliquerDataTable(); // Application du plugin DataTables - // ajaxactespossibles_miseenobservation(); // Rafraîchissement de la liste des actes - controle.focus(); - } - }); - } -} - -/** - * Fonction pour supprimer un acte médical en mise en observation - * @param {string} idDetail - Identifiant unique de l'acte à supprimer - */ -async function supprimer_acte_medical_miseenobservation(idDetail) { - // 1. Initialisation de la variable pour stocker les données à afficher - let donnee_a_afficher = ""; - - // 2. Messages de confirmation multilingues - const confirmationMsg = { - fr: "Confirmez-vous la suppression de cet acte?", - en: "Do you confirm the removal of this act?" - }; - - // 3. Demande de confirmation à l'utilisateur - const isConfirmed = await confirm_ebene_sweet(confirmationMsg.fr, confirmationMsg.en); - if (!isConfirmed) return; - - // 4. Affichage de l'indicateur de chargement - $("#totam_donnees").html('
' + '
'); - - // 5. Envoi de la requête de suppression au serveur - try { - const response = await $.ajax({ - url: $("#racineWeb").val() + "Ajaxselectactesmedicauxobservation/supprimeracte/", - type: 'POST', - data: { idDetail: idDetail } - }); - - // 6. Traitement de la réponse - donnee_a_afficher = response; - - // 7. Mise à jour de l'interface utilisateur - $("#totam_donnees").html(donnee_a_afficher); - appliquerDataTable(); // Application du plugin DataTables - // ajaxactespossibles_miseenobservation(); // Rafraîchissement de la liste des actes - - } catch (error) { - console.error("Erreur lors de la suppression de l'acte:", error); - // Gestion supplémentaire des erreurs pourrait être ajoutée ici - } -} - - -async function ajouter_un_acte_miseenobservation(codeActe, prixBase, prixActe, ententePrealable) { - // 1. Initialisation des variables - let donnee_a_afficher = ""; - const codeFamilleActe = $("#codeFamilleActe").val(); - - // 2. Validation des données en entrée - if (!codeActe || codeActe.trim() <= " ") { - await alert_ebene( - "Veuillez sélectionner un acte!", - "Please select an act!" - ); - return; - } - - if (parseFloat(prixActe) === 0) { - await alert_ebene( - "Veuillez revoir le tarif!", - "Please review rate!" - ); - return; - } - - // 3. Confirmation utilisateur - const isConfirmed = await confirm_ebene_sweet( - "Confirmez-vous cet acte?", - "Do you confirm this act?" - ); - - if (!isConfirmed) return; - - // 4. Préparation des données pour l'API - const donnees = { - codeFamilleActe: codeFamilleActe, - codeActe: codeActe, - ententePrealable: ententePrealable, - prixActe: prixActe, - prixBase: prixBase - }; - - - - // 5. Affichage du loader pendant le traitement - $("#totam_donnees").html('
' + '
'); - - // 6. Envoi de la requête AJAX - try { - const response = await $.ajax({ - url: $("#racineWeb").val() + "Ajaxselectactesmedicauxobservation/enregistreractemedicalobservation/", - type: 'post', - data: donnees - }); - - donnee_a_afficher = response; - - // 8. Mise à jour de l'interface - $("#totam_donnees").html(donnee_a_afficher); - appliquerDataTable(); - - } catch (error) { - console.error("Erreur lors de l'ajout de l'acte:", error); - } -} - -function listerdemandesconsultation() -{ - demandeEffectuee = $("#demandeEffectuee").val(); - donnees = 'demandeEffectuee=' + demandeEffectuee; - - $("#div_dossiers_demande_consultation").html('
' + '' + '
'); - - $.ajax({ - url: $("#racineWeb").val()+"Ajaxdemanderdv/listerdemandesconsultation/", - type: 'POST', - data: donnees, - error: function(errorData) { - }, - success: function(data) { - // alert(data); - $('#div_dossiers_demande_consultation').html(data); - }, - complete: function() { - - } - }); -} - -function charger_csrf_token(v_data) -{ - csrf_token=$("#csrf_token").val(); - if (!v_data || v_data.trim() === "") { - v_data = 'csrf_token=' + csrf_token; - }else{ - v_data += '&csrf_token=' + csrf_token; - } - // alert("charger_csrf_token => "+v_data); - return v_data; -} - -// gestion prise de constante => 13/06/2026 -function affiche_constante() -{ - idBeneficiaire = $("#idBeneficiaire").val(); - - donnees = 'idBeneficiaire='+idBeneficiaire; - - $.ajax({ - url: $("#racineWeb").val()+"Ajaxconstante/", - type : 'post', - data: donnees, - error: function(errorData){ - alert("Erreur : "+errorData); - }, - success: function(data) { - $("#div_constante_beneficiaire").html(data); - $('#div_constante_beneficiaire').modal("show"); - }, - complete: function() { - afficherHistoriqueConstante(); - } - }); -} - -function enregistrer_constante() -{ - idBeneficiaire = $("#idBeneficiaire").val(); - temperature = $("#temperature").val(); - poids = $("#poids").val(); - taille = $("#taille").val(); - imc = $("#imc").val(); - systolique = $("#systolique").val(); - diastolique = $("#diastolique").val(); - pouls = $("#pouls").val(); - saturationOxygene = $("#saturationOxygene").val(); - - if(idBeneficiaire<="0") - { - v_msg="Bénéficiaire manquant!"; - v_msgEng="Missing beneficiary!"; - alert_ebene(v_msg, v_msgEng); - - return; - } - - if(temperature<=" ") - { - v_msg="Veuillez renseigner la température du patient!"; - v_msgEng="Please fill in the patient's temperature!"; - alert_ebene(v_msg, v_msgEng); - - $("#temperature").focus(); - return; - } - - if(poids<=" ") - { - v_msg="Veuillez renseigner le poids du patient!"; - v_msgEng="Please fill in the patient's weight!"; - alert_ebene(v_msg, v_msgEng); - - $("#poids").focus(); - return; - } - - donnees = 'idBeneficiaire='+idBeneficiaire; - donnees += '&temperature='+temperature; - donnees += '&poids='+poids; - donnees += '&taille='+taille; - donnees += '&imc='+imc; - donnees += '&systolique='+systolique; - donnees += '&diastolique='+diastolique; - donnees += '&pouls='+pouls; - donnees += '&saturationOxygene='+saturationOxygene; - - $.ajax({ - url: $("#racineWeb").val()+"Ajaxconstante/enregistrer/", - type: 'POST', - data: donnees, - success: function(data) { - - }, - error: function(data) { - }, - complete: function() { - $("#close_pop_constante").click(); - } - }); - -} - -function afficherHistoriqueConstante() -{ - masquerConstante = $("#masquerConstante").val(); - - if(masquerConstante=="1"){ - $('#div_historique_constante').hide(); - $("#masquerConstante").val("0"); - $("#span_constante").text("Afficher"); - - }else{ - $('#div_historique_constante').show(); - $("#masquerConstante").val("1"); - $("#span_constante").text("Masquer"); - } -} - - -function constantes() -{ - window.location.assign($("#racineWeb" ).val()+"Constantes/"); -} - -function retourConstantes() -{ - var vueRetour = $("#vueRetour").val(); - - window.location.assign($("#racineWeb" ).val()+vueRetour+"/"); - -} - -function calculImc() -{ - poids = $("#poids").val(); - taille = $("#taille").val(); - - imc = 0; - - if(poids >" " && taille >" ") - { - imc = parseFloat(poids.replace(",","."))/(parseFloat(taille.replace(",",".")) ** 2); - - $("#imc").val(parseFloat(imc).toFixed(3)); - } - -} - -function imprimer_prescription() -{ - var nomForm = $("#nomForm").val(); - - var mlink = ''; - var donnees = ''; - - if(nomForm == "prescriptionmedicament") - { - mlink = "Ajaximprimerbonmedicament/"; - }else if(nomForm=="prescriptionexamens") - { - mlink = "Ajaximprimerbonexamen/"; - } - - $.ajax({ - url: $("#racineWeb").val()+mlink, - type : 'post', - data: donnees, - error: function(errorData){ - //alert("Erreur : "+errorData); - console.log(errorData); - - }, - success: function(data) { - //alert("Success : "+data); - $("#div_export_b").html(data); - }, - complete: function() { - - } - }); - -} - -function annuler_substitution_medicament_new(idDetail) { - // Messages de confirmation - const v_msg = "Annuler cette substitution?"; - const v_msgEng = "Cancel this substitution?"; - - // Appel de la confirmation unifiée - confirm_ebene_sweet(v_msg, v_msgEng).then(function(isConfirm) { - if (isConfirm) { - // Préparation des données pour la requête AJAX - const donnees = 'idDetail=' + idDetail; - - $("#non_livre").html('
' + '
'); - - // Requête AJAX - $.ajax({ - url: $("#racineWeb").val() + "Ajaxsubstitutionmedicament/annulersubstitutionmedicamentnew/", - type: 'POST', - data: donnees, - success: function(data) { - // $("#livraison").html(data); - }, - error: function(data) { - // Gestion d'erreur (peut être améliorée si nécessaire) - }, - complete: function() { - alerter_depassement_limite(); - window.location.assign($("#racineWeb").val() + "Pharmacien/"); - } - }); - } - // Si l'utilisateur annule, ne rien faire (return implicite) - }); -} diff --git a/Vue/gabarit.php b/Vue/gabarit.php index 2d76122..3835e3c 100755 --- a/Vue/gabarit.php +++ b/Vue/gabarit.php @@ -891,7 +891,7 @@ - +