diff --git a/Js/fonctions.js b/Js/fonctions.js
index 8a3ab8b..bcc4cbe 100755
--- a/Js/fonctions.js
+++ b/Js/fonctions.js
@@ -25543,3 +25543,3507 @@ function dentisterie()
return;
}
+ dentisteriePossible=$("#dentisteriePossible").val();
+
+ 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)
+ });
+}