From 3e93ca13fb18123c183a57eee17e272b53ed7b9a Mon Sep 17 00:00:00 2001 From: KONE SOREL Date: Wed, 8 Apr 2026 14:28:53 +0000 Subject: [PATCH] drt --- Js/fonctions.js | 417 ++++++++++++++-------------- Vue/Ajaxinsererbaremeacte/index.php | 199 +++++++------ 2 files changed, 308 insertions(+), 308 deletions(-) diff --git a/Js/fonctions.js b/Js/fonctions.js index 3945f3ea..7a580f72 100755 --- a/Js/fonctions.js +++ b/Js/fonctions.js @@ -62623,151 +62623,154 @@ function intit_saisie_garantiebareme_lienparente() } -function actualiser_bareme_acte() -{ - codeGarantie = $("#codeGarantie").val(); - idBaremePriseEnCharge = $("#idBaremePriseEnCharge").val(); - - - donnees = 'codeGarantie='+codeGarantie; - donnees += '&idBaremePriseEnCharge='+idBaremePriseEnCharge; - - $.ajax({ - url: $("#racineWeb").val()+"Ajaxinsererbaremeacte/", - type : 'post', - data: donnees, - error: function(errorData){ - //alert("Erreur : "+errorData); - }, - success: function(data) { - //alert("Success : "+data); - $('#div_actes_bareme').html(data); - - - }, - complete: function() { - - } - }); - +/** + * Actualise l'historique des règles spécifiques par acte + */ +function actualiser_bareme_acte() { + // 1. Initialisation des variables + const racineWeb = $("#racineWeb").val(); + const codeLangue = $("#codeLangue").val(); + const $conteneurHistorique = $('#div_actes_bareme'); + + const donnees = { + codeGarantie: $("#codeGarantie").val(), + idBaremePriseEnCharge: $("#idBaremePriseEnCharge").val() + }; + + // 2. Feedback visuel (SaaS UX) + // On affiche un spinner discret pour indiquer le rafraîchissement de la table + $conteneurHistorique.html(` +
+
+ + ${(codeLangue === "en_US") ? "Refreshing act history..." : "Actualisation de l'historique des actes..."} + +
+ `); + + // 3. Appel AJAX + $.ajax({ + url: racineWeb + "Ajaxinsererbaremeacte/", + type: 'post', + data: donnees, + success: function(data) { + // Injection du contenu avec une transition fluide + $conteneurHistorique.hide().html(data).fadeIn(200); + }, + error: function(xhr) { + $conteneurHistorique.html(` +
+ + ${(codeLangue === "en_US") ? "Unable to load act history." : "Impossible de charger l'historique des actes."} +
+ `); + } + }); } -function inserer_bareme_acte() -{ - - - codeGarantie = $("#codeGarantie").val(); - idBaremePriseEnCharge = $("#idBaremePriseEnCharge").val(); - - codeActe = $("#codeActe").val(); - - dateEffetActe = $("#dateEffetActe").val(); - forfaitPlafondActeAdherent = $("#forfaitPlafondActeAdherent").val(); - codePeriodicitePlafondActeAdherent = $("#codePeriodicitePlafondActeAdherent").val(); - nbreTransactionActeAdherent = $("#nbreTransactionActeAdherent").val(); - codePeriodiciteActeAdherent = $("#codePeriodiciteActeAdherent").val(); - forfaitPlafondActe = $("#forfaitPlafondActe").val(); - codePeriodicitePlafondActe = $("#codePeriodicitePlafondActe").val(); - nbreTransactionActe = $("#nbreTransactionActe").val(); - codePeriodiciteActe = $("#codePeriodiciteActe").val(); - codeTypeRemboursementActe = $("#codeTypeRemboursementActe").val(); - delaiCarenceActe = $("#delaiCarenceActe").val(); - ticketModerateurActe = $("#ticketModerateurActe").val(); - ageMinimumActe = $("#ageMinimumActe").val(); - ageMaximumActe = $("#ageMaximumActe").val(); - actifActe = $("#actifActe").val(); - - - forfaitTmActe = $("#forfaitTmActe").val(); - - - forfaitPlafondActeAdherent = forfaitPlafondActeAdherent.replace(/ /g,""); - forfaitPlafondActe = forfaitPlafondActe.replace(/ /g,""); - forfaitTmActe = forfaitTmActe.replace(/ /g,""); - - if(codeActe <= " "){ - - v_msg="Veuillez entrer un acte!"; - v_msgEng="Please enter an act!"; - alert_ebene(v_msg, v_msgEng); +/** + * Insère une règle de paramétrage spécifique pour un acte sélectionné + */ +function inserer_bareme_acte() { + // 1. Constantes et environnement + const racineWeb = $("#racineWeb").val(); + const codeLangue = $("#codeLangue").val(); + const $divHistoriqueActes = $("#div_actes_bareme"); - $("#codeActe").focus(); - return; - - } - - if(dateEffetActe <= " "){ - - v_msg="Veuillez entrer une date d'effet!"; - v_msgEng="Please enter an effective date!"; - alert_ebene(v_msg, v_msgEng); + // 2. Collecte et nettoyage des données (Objet JSON) + const donnees = { + codeGarantie: $("#codeGarantie").val(), + idBaremePriseEnCharge: $("#idBaremePriseEnCharge").val(), + codeActe: $("#codeActe").val(), + dateEffetActe: $("#dateEffetActe").val(), + + // Plafonds Famille / Adhérent (Nettoyage espaces) + forfaitPlafondActeAdherent: $("#forfaitPlafondActeAdherent").val().replace(/\s/g, ""), + codePeriodicitePlafondActeAdherent: $("#codePeriodicitePlafondActeAdherent").val(), + nbreTransactionActeAdherent: $("#nbreTransactionActeAdherent").val(), + codePeriodiciteActeAdherent: $("#codePeriodiciteActeAdherent").val(), + + // Plafonds Bénéficiaire (Nettoyage espaces) + forfaitPlafondActe: $("#forfaitPlafondActe").val().replace(/\s/g, ""), + codePeriodicitePlafondActe: $("#codePeriodicitePlafondActe").val(), + nbreTransactionActe: $("#nbreTransactionActe").val(), + codePeriodiciteActe: $("#codePeriodiciteActe").val(), + + // Calculs et Remboursement + codeTypeRemboursementActe: $("#codeTypeRemboursementActe").val(), + delaiCarenceActe: $("#delaiCarenceActe").val(), + ticketModerateurActe: $("#ticketModerateurActe").val(), + forfaitTmActe: $("#forfaitTmActe").val().replace(/\s/g, ""), + + // Critères d'éligibilité + ageMinimumActe: $("#ageMinimumActe").val(), + ageMaximumActe: $("#ageMaximumActe").val(), + actifActe: $("#actifActe").val() + }; - $("#dateEffetActe").focus(); - return; - - } - - if(actifActe <= " "){ - - v_msg="Veuillez indiquer le statut de cet barème!"; - v_msgEng="Please indicate the status of this scale!"; - alert_ebene(v_msg, v_msgEng); + // 3. Validations de sécurité + if (!donnees.codeActe || donnees.codeActe.trim() === "") { + alert_ebene("Veuillez sélectionner un acte !", "Please select an act!"); + $("#codeActe").focus(); + return; + } - $("#actifActe").focus(); - return; - - } - - $("#div_actes_bareme").html('
' + '
'); - - - donnees = 'codeGarantie='+codeGarantie; - donnees += '&idBaremePriseEnCharge='+idBaremePriseEnCharge; - - donnees += '&codeActe='+codeActe; - - donnees += '&dateEffetActe='+dateEffetActe; - donnees += '&forfaitPlafondActeAdherent='+forfaitPlafondActeAdherent; - donnees += '&codePeriodicitePlafondActeAdherent='+codePeriodicitePlafondActeAdherent; - donnees += '&nbreTransactionActeAdherent='+nbreTransactionActeAdherent; - donnees += '&codePeriodiciteActeAdherent='+codePeriodiciteActeAdherent; - - donnees += '&forfaitPlafondActe='+forfaitPlafondActe; - donnees += '&codePeriodicitePlafondActe='+codePeriodicitePlafondActe; - donnees += '&nbreTransactionActe='+nbreTransactionActe; - donnees += '&codePeriodiciteActe='+codePeriodiciteActe; - donnees += '&codeTypeRemboursementActe='+codeTypeRemboursementActe; - donnees += '&delaiCarenceActe='+delaiCarenceActe; - donnees += '&ticketModerateurActe='+ticketModerateurActe; - donnees += '&ageMinimumActe='+ageMinimumActe; - donnees += '&ageMaximumActe='+ageMaximumActe; - donnees += '&actifActe='+actifActe; - - donnees += '&forfaitTmActe='+forfaitTmActe; - - - - - $.ajax({ - url: $("#racineWeb").val()+"Ajaxinsererbaremeacte/ajouter/", - type : 'post', - data: donnees, - error: function(errorData){ - //alert("Erreur : "+errorData); - }, - success: function(data) { - //alert("Success : "+data); - intit_saisie_actebareme(); - actualiser_bareme_acte(); - - }, - complete: function() { - afficheNombreLigneBareme('actesbaremepriseencharge'); - - } - }); + if (!donnees.dateEffetActe || donnees.dateEffetActe.trim() === "") { + alert_ebene("Veuillez entrer une date d'effet !", "Please enter an effective date!"); + $("#dateEffetActe").focus(); + return; + } + + if (!donnees.actifActe || donnees.actifActe.trim() === "") { + alert_ebene("Veuillez indiquer le statut !", "Please indicate the status!"); + $("#actifActe").focus(); + return; + } + + // 4. Feedback visuel (Loader moderne) + const msgSaisie = (codeLangue === "en_US") ? "Processing Act Deployment..." : "Déploiement de la règle par acte..."; + $divHistoriqueActes.html(` +
+
+
+ ${msgSaisie} +
+
+ `); + + // 5. Requête AJAX + $.ajax({ + url: racineWeb + "Ajaxinsererbaremeacte/ajouter/", + type: 'post', + data: donnees, + success: function(response) { + // Réinitialisation des champs de saisie des actes + if (typeof intit_saisie_actebareme === 'function') { + intit_saisie_actebareme(); + } + // Rafraîchissement de la table d'historique des actes + if (typeof actualiser_bareme_acte === 'function') { + actualiser_bareme_acte(); + } + }, + error: function(xhr) { + $divHistoriqueActes.html(` +
+ + ${(codeLangue === "en_US") ? "Error during act insertion." : "Erreur lors de l'insertion de l'acte."} +
+ `); + }, + complete: function() { + // Mise à jour du badge de comptage spécifique aux actes + if (typeof afficheNombreLigneBareme === 'function') { + afficheNombreLigneBareme('actesbaremepriseencharge'); + } + } + }); } + function intit_saisie_actebareme() { $("#codeActe").selectpicker('val', ''); @@ -63079,71 +63082,79 @@ function validiteDateEffetGarantieLienParente() { } -function validiteDateEffetActeBareme(){ - - var codeGarantie = $("#codeGarantie").val(); - var idBaremePriseEnCharge = $("#idBaremePriseEnCharge").val(); - - var codeActe = $("#codeActe").val(); - - var dateEffetActe = $("#dateEffetActe").val(); - var datejour = $("#datejour_C").val(); - - var str = dateEffetActe.split('/'); - var effet = str[2]+'-'+str[1]+'-'+str[0]; - - donnees = 'codeGarantie='+codeGarantie; - donnees += '&idBaremePriseEnCharge='+idBaremePriseEnCharge; - donnees += '&codeActe='+codeActe; - - - $.ajax({ - url: $("#racineWeb").val()+"Ajaxinsererbaremeacte/controle/", - type : 'post', - data: donnees, - error: function(errorData){ - //alert("Erreur : "+errorData); - }, - success: function(data) { - //alert("Success : "+data); - $('#div_maxdateeffetactebareme').html(data); - - var tdj = new Date(datejour); - var tde = new Date(effet); - - maxDateEffetActeBareme = $("#maxDateEffetActeBareme").val(); - - dte=Math.round(Date.parse(tde)/(1000*3600*24)); - dtj=Math.round(Date.parse(tdj)/(1000*3600*24)); - - if((dte < dtj) && (maxDateEffetActeBareme!=undefined || maxDateEffetActeBareme!='')){ - var tdm = new Date(maxDateEffetActeBareme); - dtm = Math.round(Date.parse(tdm)/(1000*3600*24)); - - if(dte < dtm){ - - v_msg="Date d'effet invalide!"; - v_msgEng="Invalid effective date!"; - alert_ebene(v_msg, v_msgEng); - - $("#dateEffetActe").val(''); - $("#dateEffetActe").focus(); - return; - }else{ - inserer_bareme_acte(); - } - }else{ - - inserer_bareme_acte(); - } - - }, - complete: function() { - - - } - }); - +/** + * Contrôle la validité chronologique de la date d'effet spécifique à un acte + */ +function validiteDateEffetActeBareme() { + // 1. Récupération des paramètres de base + const racineWeb = $("#racineWeb").val(); + const dateEffetSaisieStr = $("#dateEffetActe").val(); + const dateJourSystemeStr = $("#datejour_C").val(); // Format YYYY-MM-DD + + const donneesControle = { + codeGarantie: $("#codeGarantie").val(), + idBaremePriseEnCharge: $("#idBaremePriseEnCharge").val(), + codeActe: $("#codeActe").val() + }; + + // Validation immédiate : Acte obligatoire + if (!donneesControle.codeActe || donneesControle.codeActe.trim() === "") { + alert_ebene("Veuillez sélectionner un acte !", "Please select an act !"); + return; + } + + // Validation immédiate : Date obligatoire + if (!dateEffetSaisieStr || dateEffetSaisieStr.trim() === "") { + alert_ebene("Veuillez entrer une date d'effet !", "Please enter an effective date !"); + $("#dateEffetActe").focus(); + return; + } + + // 2. Conversion des dates pour comparaison + const parts = dateEffetSaisieStr.split('/'); + const dateEffetSaisie = new Date(parts[2], parts[1] - 1, parts[0]); + const dateJourSysteme = new Date(dateJourSystemeStr); + + // 3. Appel AJAX de contrôle (Récupération de la date charnière en base) + $.ajax({ + url: racineWeb + "Ajaxinsererbaremeacte/controle/", + type: 'post', + data: donneesControle, + success: function(data) { + // Injection du champ hidden maxDateEffetActeBareme + $('#div_maxdateeffetactebareme').html(data); + + const maxDateBaseStr = $("#maxDateEffetActeBareme").val(); + + // Calcul des timestamps (en jours) + const dte = Math.round(dateEffetSaisie.getTime() / (1000 * 3600 * 24)); + const dtj = Math.round(dateJourSysteme.getTime() / (1000 * 3600 * 24)); + + // 4. Logique de validation + // Si la date est dans le passé par rapport à aujourd'hui, on vérifie qu'elle ne casse pas l'historique + if (dte < dtj && maxDateBaseStr) { + const maxDateBase = new Date(maxDateBaseStr); + const dtm = Math.round(maxDateBase.getTime() / (1000 * 3600 * 24)); + + if (dte < dtm) { + alert_ebene( + "Date d'effet invalide ! Elle ne peut être antérieure à la dernière modification enregistrée pour cet acte.", + "Invalid effective date ! It cannot be earlier than the last recorded modification for this act." + ); + $("#dateEffetActe").val('').focus(); + return; + } + } + + // 5. Si tout est valide, on procède à l'insertion + if (typeof inserer_bareme_acte === 'function') { + inserer_bareme_acte(); + } + }, + error: function() { + alert_ebene("Erreur lors de la vérification de la date.", "Error during date verification."); + } + }); } diff --git a/Vue/Ajaxinsererbaremeacte/index.php b/Vue/Ajaxinsererbaremeacte/index.php index 4c45804e..7894141f 100755 --- a/Vue/Ajaxinsererbaremeacte/index.php +++ b/Vue/Ajaxinsererbaremeacte/index.php @@ -1,109 +1,98 @@ - - "0"): ?> + 0): ?> +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + nettoyer($v['id']); + $supprime = $v['supprime']; + $libelle = est_anglophone() ? $this->nettoyer($v['libelleEng']) : $this->nettoyer($v['libelle']); + $isActif = ($this->nettoyer($v['actif']) == "1"); + ?> + + + + + + + + + + + + + + + + + + + + + + + -
nettoyer($v['dateEffet'])); ?>nettoyer($v['forfaitPlafondFamille'])); ?>nettoyer($v['codePeriodicitePlafondFamille']);?>nettoyer($v['nbreTransactionFamille']);?>nettoyer($v['codePeriodiciteFamille']);?>nettoyer($v['forfaitPlafond']));?>nettoyer($v['codePeriodicitePlafond']);?>nettoyer($v['nbreTransaction']);?>nettoyer($v['codePeriodicite']); ?>nettoyer($v['codeTypeRemboursement']); ?>nettoyer($v['delaiCarenceActe']);?>mnettoyer($v['ticketModerateur']);?>%nettoyer($v['forfaitTm']));?>nettoyer($v['ageMinimum']);?>nettoyer($v['ageMaximum']);?> + +
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - nettoyer($v['id']); - $supprime = $v['supprime']; - $libelle = $this->nettoyer($v['libelle']); - if (est_anglophone()) - { - $libelle = $this->nettoyer($v['libelleEng']); - } - - if($this->nettoyer($v['codeObservation'])=="VD"){ - $codeObservation = ""; - }else{ - $codeObservation = $this->nettoyer($v['codeObservation']); - } - - if($this->nettoyer($v['actif'])=="1"){ - $actif = "Oui"; - }else{ - $actif = "Non"; - } - ?> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
nettoyer($v['dateEffet'])); ?>nettoyer($v['forfaitPlafondFamille'])); ?>nettoyer($v['codePeriodicitePlafondFamille']);?>nettoyer($v['nbreTransactionFamille']);?>nettoyer($v['codePeriodiciteFamille']);?>nettoyer($v['forfaitPlafond']));?>nettoyer($v['codePeriodicitePlafond']);?>nettoyer($v['nbreTransaction']);?>nettoyer($v['codePeriodicite']); ?> nettoyer($v['codeTypeRemboursement']); ?>nettoyer($v['delaiCarenceActe']);?>nettoyer($v['ticketModerateur']);?>nettoyer($v['forfaitTm']));?>nettoyer($v['ageMinimum']);?>nettoyer($v['ageMaximum']);?> - -
- -
- + + + + + + + + + + +
- \ No newline at end of file + + +
+ +

+
+ + + \ No newline at end of file