This commit is contained in:
KONE SOREL 2026-04-08 14:28:53 +00:00
parent f0c0c23595
commit 3e93ca13fb
2 changed files with 308 additions and 308 deletions

View File

@ -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(`
<div class="text-center py-4">
<div class="spinner-border spinner-border-sm text-primary" role="status"></div>
<span class="ms-2 small text-muted text-uppercase fw-bold">
${(codeLangue === "en_US") ? "Refreshing act history..." : "Actualisation de l'historique des actes..."}
</span>
</div>
`);
// 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(`
<div class="alert alert-warning border-0 small m-2">
<i class="fas fa-exclamation-triangle me-2"></i>
${(codeLangue === "en_US") ? "Unable to load act history." : "Impossible de charger l'historique des actes."}
</div>
`);
}
});
}
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('<div style="padding-top:80px; text-align:center; font-size:14px; color: #0088cf; "><span><i class="fa fa-spinner fa-spin fa-5x" >' + '</span></div>');
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(`
<div class="d-flex flex-column align-items-center justify-content-center p-5 text-primary">
<div class="spinner-border" role="status" style="width: 3rem; height: 3rem;"></div>
<h6 class="mt-3 fw-bold text-uppercase small animate__animated animate__pulse animate__infinite">
${msgSaisie}
</h6>
</div>
`);
// 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(`
<div class="alert alert-danger border-0 shadow-sm d-flex align-items-center">
<i class="fas fa-exclamation-triangle me-2"></i>
${(codeLangue === "en_US") ? "Error during act insertion." : "Erreur lors de l'insertion de l'acte."}
</div>
`);
},
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.");
}
});
}

View File

@ -1,109 +1,98 @@
<?php
$adminProd = $_SESSION['adminProd'];
<?php
$adminProd = $_SESSION['adminProd'];
?>
<?php if(count($actes) > "0"): ?>
<?php if(count($actes) > 0): ?>
<div class="table-responsive shadow-sm rounded border overflow-hidden">
<table class="table table-sm table-hover align-middle mb-0" style="font-size: 0.8rem;">
<thead class="table-light">
<tr class="text-center small fw-bold text-uppercase">
<th rowspan="2" class="border-end bg-white" style="min-width: 150px;"><?= _("Libellé Acte") ?></th>
<th rowspan="2" class="border-end"><?= _("Effet") ?></th>
<th colspan="4" class="bg-primary bg-opacity-10 text-primary border-bottom border-primary"><?= _("Plafonds Famille") ?></th>
<th colspan="4" class="bg-dark bg-opacity-10 text-dark border-bottom border-dark"><?= _("Plafonds Bénéficiaire") ?></th>
<th rowspan="2" class="border-start"><?= _("Remboursement") ?></th>
<th rowspan="2"><?= _("Carence") ?></th>
<th colspan="2" class="bg-light border-bottom"><?= _("TM / Forfait") ?></th>
<th colspan="2" class="bg-light border-bottom"><?= _("Âges") ?></th>
<th rowspan="2"><?= _("Actif") ?></th>
<th rowspan="2" class="bg-white"><?= _("Suppr") ?></th>
</tr>
<tr class="text-center small bg-light-subtle" style="font-size: 0.7rem;">
<th class="border-start"><?= _("Plafond") ?></th>
<th><?= _("Fréq. Plafond") ?></th>
<th><?= _("Quota") ?></th>
<th class="border-end"><?= _("Fréq. Quota") ?></th>
<th><?= _("Plafond") ?></th>
<th><?= _("Fréq. Plafond") ?></th>
<th><?= _("Quota") ?></th>
<th class="border-end"><?= _("Fréq. Quota") ?></th>
<th class="border-start"><?= _("Taux %") ?></th>
<th class="border-end"><?= _("Montant") ?></th>
<th><?= _("Min") ?></th>
<th class="border-end"><?= _("Max") ?></th>
</tr>
</thead>
<tbody>
<?php foreach ($actes as $v):
$idActe = $this->nettoyer($v['id']);
$supprime = $v['supprime'];
$libelle = est_anglophone() ? $this->nettoyer($v['libelleEng']) : $this->nettoyer($v['libelle']);
$isActif = ($this->nettoyer($v['actif']) == "1");
?>
<tr class="<?= ($supprime == '1') ? 'table-danger opacity-50' : ''; ?>">
<td class="ps-3 fw-bold text-dark small border-end"><?= $libelle ?></td>
<td class="text-center text-nowrap"><?= datefr($this->nettoyer($v['dateEffet'])); ?></td>
<td class="text-center fw-bold text-primary border-start"><?= format_N($this->nettoyer($v['forfaitPlafondFamille'])); ?></td>
<td class="text-center text-muted small"><?= $this->nettoyer($v['codePeriodicitePlafondFamille']);?></td>
<td class="text-center"><?= $this->nettoyer($v['nbreTransactionFamille']);?></td>
<td class="text-center text-muted small border-end"><?= $this->nettoyer($v['codePeriodiciteFamille']);?></td>
<td class="text-center fw-bold"><?= format_N($this->nettoyer($v['forfaitPlafond']));?></td>
<td class="text-center text-muted small"><?= $this->nettoyer($v['codePeriodicitePlafond']);?></td>
<td class="text-center"><?= $this->nettoyer($v['nbreTransaction']);?></td>
<td class="text-center text-muted small border-end"><?= $this->nettoyer($v['codePeriodicite']); ?></td>
<td class="text-center fw-bold text-uppercase text-secondary border-start"><?= $this->nettoyer($v['codeTypeRemboursement']); ?></td>
<td class="text-center"><?= $this->nettoyer($v['delaiCarenceActe']);?>m</td>
<td class="text-center fw-bold text-danger"><?= $this->nettoyer($v['ticketModerateur']);?>%</td>
<td class="text-center border-end"><?= format_N($this->nettoyer($v['forfaitTm']));?></td>
<td class="text-center"><?= $this->nettoyer($v['ageMinimum']);?></td>
<td class="text-center border-end"><?= $this->nettoyer($v['ageMaximum']);?></td>
<td class="text-center">
<i class="fas <?= $isActif ? 'fa-check-circle text-success' : 'fa-times-circle text-muted' ?>"></i>
</td>
<table class="table table-striped table-bordered table-hover table-condensed table-responsive" style="font-size:9pt;" >
<thead >
<!--
<tr >
<th colspan="18" style='text-align:center; font-size:10pt; font-weight: bold; border: 2px solid #939597;'> <?= _("LIGNES PARAMETREES SUR ACTE") ?> </th>
</tr>
-->
<tr>
<th rowspan="2" style='text-align:center; border: 2px solid #939597; background-color: #dff2ff; color: #6A645A;'> <?= _("Libellé") ?> </th>
<th rowspan="2" style='text-align:center; border: 2px solid #939597; background-color: #dff2ff; color: #6A645A;'> <?= _("Effet") ?> </th>
<th colspan="4" style='text-align:center; border: 2px solid #939597; background-color:#027BE3; color: white;'> <?= _("Famille") ?> </th>
<th colspan="4" style='text-align:center; border: 2px solid #939597; background-color:#726a57;'> <?= _("Bénéficiaire") ?> </th>
<th rowspan="2" style='text-align:center; border: 2px solid #939597; background-color: #dff2ff; color: #6A645A;'> <?= _("Remboursement") ?> </th>
<th rowspan="2" style='text-align:center; border: 2px solid #939597; background-color: #dff2ff; color: #6A645A;'> <?= _("Carence") ?> </th>
<th colspan="2" style='text-align:center; border: 2px solid #939597; background-color: #dff2ff; color: #6A645A;'> <?= _("TM") ?> </th>
<th colspan="2" style='text-align:center; border: 2px solid #939597; background-color: #dff2ff; color: #6A645A;'> <?= _("Age") ?> </th>
<th rowspan="2" style='text-align:center; border: 2px solid #939597; background-color: #dff2ff; color: #6A645A;'> <?= _("Actif") ?> </th>
<th rowspan="2" style='text-align:center; border: 2px solid #939597; background-color: #dff2ff; color: #6A645A;'> <?= _("Suppr") ?> </th>
</tr>
<tr>
<th style='text-align:center; border: 2px solid #939597; background-color: #dff2ff; color: #6A645A;'> <?= _("Plafond") ?> </th>
<th style='text-align:center; border: 2px solid #939597; background-color: #dff2ff; color: #6A645A;'> <?= _("Périodicité") ?> </th>
<th style='text-align:center; border: 2px solid #939597; background-color: #dff2ff; color: #6A645A;'> <?= _("Nb Transac") ?> </th>
<th style='text-align:center; border: 2px solid #939597; background-color: #dff2ff; color: #6A645A;'> <?= _("Périodicité") ?> </th>
<th style='text-align:center; border: 2px solid #939597; background-color: #dff2ff; color: #6A645A;'> <?= _("Plafond") ?> </th>
<th style='text-align:center; border: 2px solid #939597; background-color: #dff2ff; color: #6A645A;'> <?= _("Périodicité") ?> </th>
<th style='text-align:center; border: 2px solid #939597; background-color: #dff2ff; color: #6A645A;'> <?= _("Nb Transac") ?> </th>
<th style='text-align:center; border: 2px solid #939597; background-color: #dff2ff; color: #6A645A;'> <?= _("Périodicité") ?> </th>
<th style='text-align:center; border: 2px solid #939597; background-color: #dff2ff; color: #6A645A;'> <?= _("Taux") ?> </th>
<th style='text-align:center; border: 2px solid #939597; background-color: #dff2ff; color: #6A645A;'> <?= _("Forfait") ?> </th>
<th style='text-align:center; border: 2px solid #939597; background-color: #dff2ff; color: #6A645A;'> <?= _("Min") ?> </th>
<th style='text-align:center; border: 2px solid #939597; background-color: #dff2ff; color: #6A645A;'> <?= _("Max") ?> </th>
</tr>
</thead>
<tbody >
<?php foreach ($actes as $v):
$idActe = $this->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";
}
?>
<?php if($supprime=='1'): ?>
<tr valign="top" style="text-decoration: line-through red;">
<?php else: ?>
<tr valign="top">
<?php endif; ?>
<td style='border: 2px solid #939597;'><?= $libelle ?></td>
<td style='text-align:center; border: 2px solid #939597;'><?= datefr($this->nettoyer($v['dateEffet'])); ?></td>
<td style='text-align:center; border: 2px solid #939597;'><?= format_N($this->nettoyer($v['forfaitPlafondFamille'])); ?></td>
<td style='text-align:center; border: 2px solid #939597;'><?= $this->nettoyer($v['codePeriodicitePlafondFamille']);?></td>
<td style='text-align:center; border: 2px solid #939597;'><?= $this->nettoyer($v['nbreTransactionFamille']);?></td>
<td style='text-align:center; border: 2px solid #939597;'><?= $this->nettoyer($v['codePeriodiciteFamille']);?></td>
<td style='text-align:center; border: 2px solid #939597;'><?= format_N($this->nettoyer($v['forfaitPlafond']));?></td>
<td style='text-align:center; border: 2px solid #939597;'><?= $this->nettoyer($v['codePeriodicitePlafond']);?></td>
<td style='text-align:center; border: 2px solid #939597;'><?= $this->nettoyer($v['nbreTransaction']);?></td>
<td style='text-align:center; border: 2px solid #939597;'><?= $this->nettoyer($v['codePeriodicite']); ?></td>
<!--<td style='text-align:center; border: 2px solid #939597;'> <?= $codeObservation; ?></td>-->
<td style='text-align:center; border: 2px solid #939597;'> <?= $this->nettoyer($v['codeTypeRemboursement']); ?></td>
<td style='text-align:center; border: 2px solid #939597;'><?= $this->nettoyer($v['delaiCarenceActe']);?></td>
<td style='text-align:center; border: 2px solid #939597;'><?= $this->nettoyer($v['ticketModerateur']);?></td>
<td style='text-align:center; border: 2px solid #939597;'><?= format_N($this->nettoyer($v['forfaitTm']));?></td>
<td style='text-align:center; border: 2px solid #939597;'><?= $this->nettoyer($v['ageMinimum']);?></td>
<td style='text-align:center; border: 2px solid #939597;'><?= $this->nettoyer($v['ageMaximum']);?></td>
<td style='text-align:center; border: 2px solid #939597;'><?= $actif;?></td>
<?php if($supprime=='0'): ?>
<td style='text-align:center; border: 2px solid #939597;'>
<button type="button" class="form-control btn btn-danger" onClick="javascript:supprimer_baremeacte('<?= $adminProd?>',<?= $idActe ?>);">
<i class="fa fa-times" aria-hidden="true"></i>
</button>
</td>
<?php else: ?>
<td style='text-align:center; border: 2px solid #939597;'> </td>
<?php endif; ?>
</tr>
<?php endforeach; ?>
</tbody>
</table>
<?php else: ?>
<div class="col-12 alert alert-danger text-center">
<?= _("Aucune ligne insérée dans BAREME ACTE") ?>
<td class="text-center bg-white border-start">
<?php if($supprime == '0'): ?>
<button type="button" class="btn btn-link text-danger p-0"
onclick="javascript:supprimer_baremeacte('<?= $adminProd?>', <?= $idActe ?>);"
title="<?= _("Supprimer") ?>">
<i class="fas fa-trash-alt"></i>
</button>
<?php else: ?>
<span class="badge bg-secondary text-uppercase" style="font-size: 0.6rem;"><?= _("OFF") ?></span>
<?php endif; ?>
</td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
</div>
<?php endif; ?>
<?php else: ?>
<div class="alert alert-warning border-dashed text-center p-4 m-2">
<i class="fas fa-search fa-2x mb-2 opacity-25"></i>
<p class="mb-0 fw-bold"><?= _("Aucun acte paramétré dans l'historique.") ?></p>
</div>
<?php endif; ?>
<style>
.opacity-50 { text-decoration: line-through rgba(220, 53, 69, 0.4); }
.table-hover tbody tr:hover { background-color: rgba(0, 136, 207, 0.05) !important; }
.border-dashed { border: 2px dashed #dee2e6 !important; background: none; }
</style>