This commit is contained in:
KONE SOREL 2026-04-07 16:16:48 +00:00
parent 23956a1298
commit 924d881bcf
3 changed files with 192 additions and 200 deletions

View File

@ -62268,103 +62268,102 @@ function actualiser_bareme_garantie()
// inserer_bareme()
function inserer_bareme_garantie()
{
codeGarantie = $("#codeGarantie").val();
idBaremePriseEnCharge = $("#idBaremePriseEnCharge").val();
dateEffetGarantie = $("#dateEffetGarantie").val();
forfaitPlafondGarantieAdherent = $("#forfaitPlafondGarantieAdherent").val();
codePeriodicitePlafondGarantieAdherent = $("#codePeriodicitePlafondGarantieAdherent").val();
nbreTransactionGarantieAdherent = $("#nbreTransactionGarantieAdherent").val();
codePeriodiciteGarantieAdherent = $("#codePeriodiciteGarantieAdherent").val();
forfaitPlafondGarantie = $("#forfaitPlafondGarantie").val();
codePeriodicitePlafondGarantie = $("#codePeriodicitePlafondGarantie").val();
nbreTransactionGarantie = $("#nbreTransactionGarantie").val();
codePeriodiciteGarantie = $("#codePeriodiciteGarantie").val();
//codeObservationFamilleActe = $("#codeObservationFamilleActe").val();
codeTypeRemboursement = $("#codeTypeRemboursement").val();
delaiCarenceFamilleActe = $("#delaiCarenceFamilleActe").val();
ticketModerateurFamilleActe = $("#ticketModerateurFamilleActe").val();
forfaitTmGarantie = $("#forfaitTmGarantie").val();
ageMinimumFamilleActe = $("#ageMinimumFamilleActe").val();
ageMaximumFamilleActe = $("#ageMaximumFamilleActe").val();
actifFamilleActe = $("#actifFamilleActe").val();
forfaitPlafondGarantieAdherent = forfaitPlafondGarantieAdherent.replace(/ /g,"");
forfaitPlafondGarantie = forfaitPlafondGarantie.replace(/ /g,"");
forfaitTmGarantie = forfaitTmGarantie.replace(/ /g,"");
if(dateEffetGarantie <= " "){
v_msg="Veuillez entrer une date d'effet!";
v_msgEng="Please enter an effective date!";
alert_ebene(v_msg, v_msgEng);
/**
* Insère une nouvelle ligne de paramétrage pour une garantie spécifique
*/
function inserer_bareme_garantie() {
// 1. Récupération des sélecteurs de base
const racineWeb = $("#racineWeb").val();
const codeLangue = $("#codeLangue").val();
const $divGarantie = $("#div_garanties_bareme");
$("#dateEffetGarantie").focus();
return;
}
if(actifFamilleActe <= " "){
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);
// 2. Collecte des données du formulaire
const donnees = {
codeGarantie: $("#codeGarantie").val(),
idBaremePriseEnCharge: $("#idBaremePriseEnCharge").val(),
dateEffetGarantie: $("#dateEffetGarantie").val(),
// Famille / Adhérent
forfaitPlafondGarantieAdherent: $("#forfaitPlafondGarantieAdherent").val().replace(/\s/g, ""),
codePeriodicitePlafondGarantieAdherent: $("#codePeriodicitePlafondGarantieAdherent").val(),
nbreTransactionGarantieAdherent: $("#nbreTransactionGarantieAdherent").val(),
codePeriodiciteGarantieAdherent: $("#codePeriodiciteGarantieAdherent").val(),
// Bénéficiaire
forfaitPlafondGarantie: $("#forfaitPlafondGarantie").val().replace(/\s/g, ""),
codePeriodicitePlafondGarantie: $("#codePeriodicitePlafondGarantie").val(),
nbreTransactionGarantie: $("#nbreTransactionGarantie").val(),
codePeriodiciteGarantie: $("#codePeriodiciteGarantie").val(),
// Remboursement & TM
codeTypeRemboursement: $("#codeTypeRemboursement").val(),
delaiCarenceFamilleActe: $("#delaiCarenceFamilleActe").val(),
ticketModerateurFamilleActe: $("#ticketModerateurFamilleActe").val(),
forfaitTmGarantie: $("#forfaitTmGarantie").val().replace(/\s/g, ""),
// Conditions
ageMinimumFamilleActe: $("#ageMinimumFamilleActe").val(),
ageMaximumFamilleActe: $("#ageMaximumFamilleActe").val(),
actifFamilleActe: $("#actifFamilleActe").val()
};
$("#actifFamilleActe").focus();
return;
}
$("#div_garanties_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 += '&dateEffetGarantie='+dateEffetGarantie;
donnees += '&forfaitPlafondGarantieAdherent='+forfaitPlafondGarantieAdherent;
donnees += '&codePeriodicitePlafondGarantieAdherent='+codePeriodicitePlafondGarantieAdherent;
donnees += '&nbreTransactionGarantieAdherent='+nbreTransactionGarantieAdherent;
donnees += '&codePeriodiciteGarantieAdherent='+codePeriodiciteGarantieAdherent;
donnees += '&forfaitPlafondGarantie='+forfaitPlafondGarantie;
donnees += '&codePeriodicitePlafondGarantie='+codePeriodicitePlafondGarantie;
donnees += '&nbreTransactionGarantie='+nbreTransactionGarantie;
donnees += '&codePeriodiciteGarantie='+codePeriodiciteGarantie;
//donnees += '&codeObservationFamilleActe='+codeObservationFamilleActe;
donnees += '&codeTypeRemboursement='+codeTypeRemboursement;
donnees += '&delaiCarenceFamilleActe='+delaiCarenceFamilleActe;
donnees += '&ticketModerateurFamilleActe='+ticketModerateurFamilleActe;
donnees += '&ageMinimumFamilleActe='+ageMinimumFamilleActe;
donnees += '&ageMaximumFamilleActe='+ageMaximumFamilleActe;
donnees += '&actifFamilleActe='+actifFamilleActe;
donnees += '&forfaitTmGarantie='+forfaitTmGarantie;
$.ajax({
url: $("#racineWeb").val()+"Ajaxinsererbaremegarantie/ajouter/",
type : 'post',
data: donnees,
error: function(errorData){
//alert("Erreur : "+errorData);
},
success: function(data) {
//alert("Success : "+data);
intit_saisie_garantiebareme();
actualiser_bareme_garantie();
},
complete: function() {
afficheNombreLigneBareme('garantiesbaremepriseencharge');
}
});
// 3. Validations de saisie
if (!donnees.dateEffetGarantie || donnees.dateEffetGarantie.trim() === "") {
alert_ebene("Veuillez entrer une date d'effet !", "Please enter an effective date!");
$("#dateEffetGarantie").focus();
return;
}
if (!donnees.actifFamilleActe || donnees.actifFamilleActe.trim() === "") {
alert_ebene("Veuillez indiquer le statut de ce barème !", "Please indicate the status of this scale!");
$("#actifFamilleActe").focus();
return;
}
// 4. Interface : Affichage du Loader
let loadingTxt = (codeLangue === "en_US") ? "Processing, please wait..." : "Traitement en cours, veuillez patienter...";
$divGarantie.html(`
<div class="d-flex flex-column align-items-center justify-content-center p-5">
<div class="spinner-border text-primary" role="status" style="width: 3rem; height: 3rem;">
<span class="visually-hidden">Loading...</span>
</div>
<div class="mt-3 text-primary fw-bold text-uppercase small animate__animated animate__pulse animate__infinite">
${loadingTxt}
</div>
</div>
`);
// 5. Appel AJAX
$.ajax({
url: racineWeb + "Ajaxinsererbaremegarantie/ajouter/",
type: 'post',
data: donnees,
success: function(response) {
// Réinitialisation des champs de saisie
if (typeof intit_saisie_garantiebareme === 'function') {
intit_saisie_garantiebareme();
}
// Actualisation de la liste des garanties
if (typeof actualiser_bareme_garantie === 'function') {
actualiser_bareme_garantie();
}
},
error: function(xhr, status, error) {
$divGarantie.html(`
<div class="alert alert-danger d-flex align-items-center" role="alert">
<i class="fas fa-exclamation-circle me-2"></i>
<div>${(codeLangue === "en_US") ? "An error occurred during save." : "Une erreur est survenue lors de l'enregistrement."}</div>
</div>
`);
},
complete: function() {
// Mise à jour du compteur de lignes (Badge)
if (typeof afficheNombreLigneBareme === 'function') {
afficheNombreLigneBareme('garantiesbaremepriseencharge');
}
}
});
}
function intit_saisie_garantiebareme()

View File

@ -81,7 +81,7 @@
</select>
</div>
<div class="col-md-2">
<label class="form-label small mb-0"><?= _("Nbre Transac") ?></label>
<label class="form-label small mb-0"><?= _("Nb Transac") ?></label>
<input type="text" id="nbreTransactionGarantieAdherent" name="nbreTransactionGarantieAdherent"
class="form-control form-control-sm text-center" value="0" onkeyup="controle_numerique(this);">
</div>
@ -116,7 +116,7 @@
</select>
</div>
<div class="col-md-2">
<label class="form-label small mb-0"><?= _("Nbre Transac") ?></label>
<label class="form-label small mb-0"><?= _("Nb Transac") ?></label>
<input type="text" id="nbreTransactionGarantie" name="nbreTransactionGarantie"
class="form-control form-control-sm text-center" value="0" onkeyup="controle_numerique(this);">
</div>
@ -139,13 +139,13 @@
<div class="card-body p-2">
<div class="row g-2">
<div class="col-md-4">
<label class="form-label small mb-0"><?= _("Type Remb.") ?></label>
<label class="form-label small mb-0"><?= _("Type Remboursement") ?></label>
<select class="form-select form-select-sm" id="codeTypeRemboursement" name="codeTypeRemboursement" required>
<?= liste_options($typeremboursement,"RDTP",true) ?>
</select>
</div>
<div class="col-md-2">
<label class="form-label small mb-0"><?= _("Carence (m)") ?></label>
<label class="form-label small mb-0"><?= _("Carence (J)") ?></label>
<input type="text" id="delaiCarenceFamilleActe" name="delaiCarenceFamilleActe"
class="form-control form-control-sm text-center" value="0" onkeyup="controle_numerique(this);">
</div>

View File

@ -1,105 +1,98 @@
<?php
$adminProd = $_SESSION['adminProd'];
<?php
$adminProd = $_SESSION['adminProd'];
?>
<INPUT class="sr-only" TYPE="text" id="maxDateEffetGarantie" name="maxDateEffetGarantie" value="<?= $maxDateEffetGarantie; ?>">
<input type="hidden" id="maxDateEffetGarantie" name="maxDateEffetGarantie" value="<?= $maxDateEffetGarantie; ?>">
<?php if(count($familleacte) > "0"): ?>
<table class="table table-striped table-bordered table-hover table-condensed table-responsive" style="font-size:9pt;">
<thead >
<!--
<tr >
<th colspan="17" style='text-align:center; font-size:10pt; font-weight: bold; border: 2px solid #939597;'> <?= _("LIGNES PARAMETREES SUR GARANTIE") ?> </th>
</tr>
-->
<tr >
<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>
<tbody>
<?php foreach ($familleacte as $v):
$idGarantie = $v['id'];
$supprime = $v['supprime'];
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='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 align='center'> <?= $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['delaiCarenceFamilleActe']);?></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_baremegarantie('<?= $adminProd?>',<?= $idGarantie ?>);">
<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 GARANTIE") ?>
<?php if(count($familleacte) > 0): ?>
<div class="table-responsive shadow-sm rounded">
<table class="table table-sm table-hover table-bordered align-middle mb-0" style="font-size: 0.85rem;">
<thead class="table-light border-secondary">
<tr class="text-center small">
<th rowspan="2" class="align-middle bg-light"><?= _("Effet") ?></th>
<th colspan="4" class="bg-primary text-white py-1"><?= _("Famille (Adhérent)") ?></th>
<th colspan="4" class="bg-dark text-white py-1"><?= _("Bénéficiaire") ?></th>
<th rowspan="2" class="align-middle bg-light"><?= _("Remboursement") ?></th>
<th rowspan="2" class="align-middle bg-light"><?= _("Carence") ?></th>
<th colspan="2" class="align-middle bg-light"><?= _("TM") ?></th>
<th colspan="2" class="align-middle bg-light"><?= _("Âge") ?></th>
<th rowspan="2" class="align-middle bg-light"><?= _("Statut") ?></th>
<th rowspan="2" class="align-middle bg-light"><?= _("Actions") ?></th>
</tr>
<tr class="text-center small bg-light-subtle" style="font-size: 0.75rem;">
<th><?= _("Plafond") ?></th>
<th><?= _("Périodicité") ?></th>
<th><?= _("Nb Transac") ?></th>
<th><?= _("Périodicité") ?></th>
<th><?= _("Plafond") ?></th>
<th><?= _("Périodicité") ?></th>
<th><?= _("Nb Transac") ?></th>
<th><?= _("Périodicité") ?></th>
<th><?= _("Taux") ?></th>
<th><?= _("Forfait") ?></th>
<th><?= _("Min") ?></th>
<th><?= _("Max") ?></th>
</tr>
</thead>
<tbody>
<?php foreach ($familleacte as $v):
$idGarantie = $v['id'];
$supprime = $v['supprime'];
$isActif = ($this->nettoyer($v['actif']) == "1");
?>
<tr class="text-center <?= ($supprime == '1') ? 'table-danger opacity-50' : ''; ?>">
<td class="fw-bold text-nowrap"><?= datefr($this->nettoyer($v['dateEffet'])); ?></td>
<td class="bg-primary bg-opacity-10"><?= format_N($this->nettoyer($v['forfaitPlafondFamille'])); ?></td>
<td class="bg-primary bg-opacity-10 small"><?= $this->nettoyer($v['codePeriodicitePlafondFamille']);?></td>
<td class="bg-primary bg-opacity-10"><?= $this->nettoyer($v['nbreTransactionFamille']);?></td>
<td class="bg-primary bg-opacity-10 small"><?= $this->nettoyer($v['codePeriodiciteFamille']);?></td>
<td class="bg-dark bg-opacity-10"><?= format_N($this->nettoyer($v['forfaitPlafond']));?></td>
<td class="bg-dark bg-opacity-10 small"><?= $this->nettoyer($v['codePeriodicitePlafond']);?></td>
<td class="bg-dark bg-opacity-10"><?= $this->nettoyer($v['nbreTransaction']);?></td>
<td class="bg-dark bg-opacity-10 small"><?= $this->nettoyer($v['codePeriodicite']); ?></td>
<td class="small fw-bold text-primary"><?= $this->nettoyer($v['codeTypeRemboursement']); ?></td>
<td><?= $this->nettoyer($v['delaiCarenceFamilleActe']);?> m</td>
<td class="fw-bold"><?= $this->nettoyer($v['ticketModerateur']);?>%</td>
<td><?= format_N($this->nettoyer($v['forfaitTm'])); ?></td>
<td><?= $this->nettoyer($v['ageMinimum']);?></td>
<td><?= $this->nettoyer($v['ageMaximum']);?></td>
<td>
<span class="badge <?= $isActif ? 'bg-success' : 'bg-secondary' ?> rounded-pill">
<?= $isActif ? _("Oui") : _("Non") ?>
</span>
</td>
<td>
<?php if($supprime == '0'): ?>
<button type="button" class="btn btn-outline-danger btn-sm border-0"
onclick="javascript:supprimer_baremegarantie('<?= $adminProd?>', <?= $idGarantie ?>);"
title="<?= _("Supprimer cette ligne") ?>">
<i class="fas fa-trash-alt"></i>
</button>
<?php else: ?>
<span class="text-muted small italic"><?= _("Supprimé") ?></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">
<i class="fas fa-info-circle fa-2x mb-2 d-block opacity-50"></i>
<?= _("Aucune ligne d'historique insérée pour cette garantie.") ?>
</div>
<?php endif; ?>
<style>
.table-responsive {border: 1px solid #dee2e6;}
.table thead th {font-weight: 700;letter-spacing: 0.02em;}
.border-dashed {border: 2px dashed #dee2e6 !important;background: transparent;}
</style>