This commit is contained in:
KONE SOREL 2026-04-10 10:45:56 +00:00
parent 28ff5405e7
commit 04b23905fc
4 changed files with 256 additions and 234 deletions

View File

@ -1,39 +1,89 @@
<form id="formData">
<legend id="titre_formData"><?= _("Ajouter des données") ?></legend>
<table class="table table-responsive table-condensed">
<tbody>
<tr>
<td width="10%" align="center" class="required"><?= _("Type Contrat") ?></td>
<td>
<select class="form-select text-center" id="codeTypeContrat" NAME="codeTypeContrat" required AUTOCOMPLETE="OFF" onchange="javascript:affiche_prime_min();">
<?php liste_options($typecontrat,"", false); ?>
</SELECT>
</td>
<td width="8%" align="center" ><?= _("Prime Mini") ?></td>
<td width="20%" >
<div id="div_prime_mini">
<INPUT class="form-control text-center" TYPE="text" value="0" disabled>
</div>
</td>
<td width="8%" align="center" class="required"><?= _("Forfait") ?></td>
<td width="20%"><INPUT class="form-control text-center" TYPE="text" value="0" id="accessoireForfait" NAME="accessoireForfait" onkeyup="controle_numerique(this);" onblur="formatMonetaire(this);"></td>
</tr>
<tr>
<td width="10%" align="center" class="required"><?= _("Application") ?></td>
<td>
<select class="form-select text-center" id="codeApplication" NAME="codeApplication" required AUTOCOMPLETE="OFF" onchange="javascript:affiche_prime_min();">
<?php liste_options($application,"", false); ?>
</SELECT>
</td>
<td width="8%" align="center" class="required"><?= _("Prime Maxi") ?></td>
<td width="20%"><INPUT class="form-control text-center" TYPE="text" value="0" id="primeMax" NAME="primeMax" required AUTOCOMPLETE="OFF" onkeyup="controle_numerique(this);"
onblur="formatMonetaire(this);" onchange="controle_primeMax();"></td>
<td width="8%" align="center"><?= _("Taux") ?></td>
<td width="20%"><INPUT class="form-control text-center" TYPE="number" min="0" value="0" step="0.01" id="tauxAccessoire" NAME="tauxAccessoire" onBlur="controle_numerique(this);"></td>
</tr>
</tbody>
</table>
</form>
<div class="card border-0 shadow-sm mb-4 border-start border-primary border-4 animate__animated animate__fadeIn">
<div class="card-header bg-white py-3">
<h6 class="card-title mb-0 fw-bold text-primary text-uppercase small">
<i class="fas fa-plus-circle me-2"></i><?= _("Ajouter des données") ?>
</h6>
</div>
<div class="card-body p-4">
<form id="formData">
<div class="row g-3 mb-3">
<div class="col-md-4">
<label class="form-label small fw-bold text-muted text-uppercase required"><?= _("Type Contrat") ?></label>
<div class="input-group">
<span class="input-group-text bg-light"><i class="fas fa-file-contract text-primary"></i></span>
<select class="form-select selectpicker" id="codeTypeContrat" name="codeTypeContrat" required autocomplete="off" onchange="javascript:affiche_prime_min();">
<?php liste_options($typecontrat, "", false); ?>
</select>
</div>
</div>
<div class="col-md-4">
<label class="form-label small fw-bold text-muted text-uppercase"><?= _("Prime Mini") ?></label>
<div id="div_prime_mini">
<div class="input-group">
<span class="input-group-text bg-light"><i class="fas fa-arrow-down text-muted"></i></span>
<input class="form-control text-center bg-light fw-bold" type="text" value="0" disabled>
</div>
</div>
</div>
<div class="col-md-4">
<label class="form-label small fw-bold text-muted text-uppercase required"><?= _("Forfait") ?></label>
<div class="input-group">
<span class="input-group-text bg-light text-success"><i class="fas fa-money-bill-wave"></i></span>
<input class="form-control text-center fw-bold" type="text" value="0" id="accessoireForfait" name="accessoireForfait" onkeyup="controle_numerique(this);" onblur="formatMonetaire(this);">
</div>
</div>
</div>
<div class="row g-3">
<div class="col-md-4">
<label class="form-label small fw-bold text-muted text-uppercase required"><?= _("Application") ?></label>
<div class="input-group">
<span class="input-group-text bg-light"><i class="fas fa-cog text-primary"></i></span>
<select class="form-select selectpicker" id="codeApplication" name="codeApplication" required autocomplete="off" onchange="javascript:affiche_prime_min();">
<?php liste_options($application, "", false); ?>
</select>
</div>
</div>
<div class="col-md-4">
<label class="form-label small fw-bold text-muted text-uppercase required"><?= _("Prime Maxi") ?></label>
<div class="input-group">
<span class="input-group-text bg-light"><i class="fas fa-arrow-up text-primary"></i></span>
<input class="form-control text-center fw-bold text-primary" type="text" value="0" id="primeMax" name="primeMax" required autocomplete="off" onkeyup="controle_numerique(this);" onblur="formatMonetaire(this);" onchange="controle_primeMax();">
</div>
</div>
<div class="col-md-4">
<label class="form-label small fw-bold text-muted text-uppercase"><?= _("Taux (%)") ?></label>
<div class="input-group">
<span class="input-group-text bg-light text-info"><i class="fas fa-percentage"></i></span>
<input class="form-control text-center fw-bold" type="number" min="0" value="0" step="0.01" id="tauxAccessoire" name="tauxAccessoire" onBlur="controle_numerique(this);">
</div>
</div>
</div>
</form>
</div>
</div>
<style>
/* Harmonisation des hauteurs et styles des champs */
.form-label.required::after {
content: " *";
color: #dc3545;
font-weight: bold;
}
.input-group-text {
border-color: #dee2e6;
min-width: 42px;
justify-content: center;
}
.form-control, .form-select {
border-color: #dee2e6;
}
.form-control:focus, .form-select:focus {
border-color: #0d6efd;
box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.1);
}
</style>

View File

@ -1,100 +1,78 @@
<?php
$nbreTotal = count($bareme);
if($nbreTotal < 10){
$nbreTotal = '0'.$nbreTotal;
}else{
$nbreTotal = format_N($nbreTotal);
}
if (est_anglophone()){
if($existeselection){
$libbouton = "Uncheck all";
}else{
$libbouton = "Check all";
}
}else{
if($existeselection){
$libbouton = "Décocher tous";
}else{
$libbouton = "Cocher tous";
}
}
$nbreTotal = count($bareme);
$nbreAffiche = ($nbreTotal < 10) ? '0'.$nbreTotal : format_N($nbreTotal);
$superUser = $_SESSION['superUser'];
?>
<?php $superUser = $_SESSION['superUser']; ?>
<div class="d-flex justify-content-end mb-2 animate__animated animate__fadeIn">
<div class="badge bg-light text-primary border px-3 py-2 shadow-sm" style="border-radius: var(--radius-md);">
<i class="fas fa-list-ul me-2"></i><?= _("Total") ?> : <span class="fw-bold"><?= $nbreAffiche ?></span> <?= _("lignes") ?>
</div>
</div>
<table style="margin: auto" class="table-responsive">
<tbody>
<td><input class="form-control" style="text-align: center; font-size:10pt;" type="text" id="nbreTotal" name="nbreTotal" value="<?= _("Lignes Total").": ". $nbreTotal; ?>" readonly> </td>
</tbody>
</table>
<input type="hidden" id="total" value="<?= $nbreTotal; ?>">
<input type="hidden" id="selectionne" value="<?= $existeselection ? 'true' : 'false'; ?>">
<table id="tableLister" class="table table-striped table-bordered table-hover table-condensed table-responsive compact">
<thead>
<tr>
<th class="text-center"><?= _("Centre gestion") ?></th>
<th class="text-center"><?= _("Type Contrat") ?></th>
<th class="text-center"><?= _("Minimale") ?></th>
<th class="text-center"><?= _("Maximale") ?></th>
<th class="text-center"><?= _("Taux") ?></th>
<th class="text-center"><?= _("Accessoire") ?></th>
<th class="text-center"><?= _("Application") ?></th>
<!--
<th class="text-center">
<button type="button" style="font-size:10pt; font-weight: bold; width:100%; background-color:#4caf50; color: white;" class="form-control btn" onclick="javascript:cocherDecocherTout($('#fichier_lister').val());" > <?= $libbouton; ?> </button>
</th>
-->
<th class="text-center"><?= _("Modifier") ?></th>
<!--
<th class="text-center">Supprimer</th>
-->
</tr>
</thead>
<tbody>
<?php foreach ($bareme as $v):
$idData = $this->nettoyer($v['id']);
$typecontrat = $this->nettoyer($v['typecontrat']);
$appli = $this->nettoyer($v['appli']);
if (est_anglophone()){
$typecontrat = $this->nettoyer($v['typecontratEng']);
$appli = $this->nettoyer($v['appliEng']);
}
?>
<tr valign="top">
<td class="text-center" width="12%"><?= $this->nettoyer($v['codeSociete']);; ?>
<td class="text-center" width="15%"><?= $typecontrat; ?></td>
<td class="text-center" width="10%"><?= format_N($this->nettoyer($v['primeMin'])); ?></td>
<td class="text-center" width="10%"><?= format_N($this->nettoyer($v['primeMax'])); ?></td>
<td class="text-center" width="5%"><?= number_format($this->nettoyer($v['tauxAccessoire']),2); ?></td>
<td class="text-center" width="10%"><?= format_N($this->nettoyer($v['accessoireForfait'])); ?></td>
<td class="text-center" width="20%"><?= $appli; ?></td>
<!--
<td class="text-center" width="10%">
<?php
if($this->nettoyer($v['choix'] == '0')){
$check ='';
}
else{
$check = 'checked';
}
?>
<INPUT TYPE="checkbox" class="custom-control-input" style="width: 2rem;height: 2rem;" id="choix" NAME="choix" value="<?=(($this->nettoyer($v['choix'])==0)? 0 : 1);?>" onclick="if (this.checked) this.value=1; else this.value=0;cocherDecocherUn($('#fichier_lister').val(),<?= $idData; ?>);" <?= $check;?>>
</td>
-->
<td class="text-center" width="10%">
<button style="width:100%" class ="form-control btn btn-primary" type="button" id="btn-editer" name="Modifier"
onclick="JAVASCRIPT:formModifTableRef(<?= $idData; ?>);" ><?= _("Modifier") ?></button>
</td>
<!--
<td class="text-center" width="10%">
<button style="width:100%" class = "form-control btn btn-danger" type="button" id="btn-supprimer" name="Supprimer"
onclick="JAVASCRIPT:supprimeLigneListe(<?= $idData; ?>,'<?= $superUser; ?>')">Supprimer</button>
</td>
-->
</tr>
<?php endforeach; ?>
</tbody>
</table>
<div class="card border-0 shadow-sm animate__animated animate__fadeInUp">
<div class="card-body p-0">
<div class="table-responsive">
<table id="tableLister" class="table table-hover align-middle mb-0 datatable-inter compact">
<thead class="table-light">
<tr class="text-uppercase small">
<th class="text-center py-3 ps-3"><?= _("Centre") ?></th>
<th class="text-center"><?= _("Type Contrat") ?></th>
<th class="text-center"><?= _("Minimale") ?></th>
<th class="text-center"><?= _("Maximale") ?></th>
<th class="text-center"><?= _("Taux") ?></th>
<th class="text-center"><?= _("Accessoire") ?></th>
<th class="text-center"><?= _("Application") ?></th>
<th class="text-center no-export pe-3" width="120px"><?= _("Action") ?></th>
</tr>
</thead>
<tbody>
<?php foreach ($bareme as $v):
$idData = $this->nettoyer($v['id']);
$typecontrat = est_anglophone() ? $this->nettoyer($v['typecontratEng']) : $this->nettoyer($v['typecontrat']);
$appli = est_anglophone() ? $this->nettoyer($v['appliEng']) : $this->nettoyer($v['appli']);
?>
<tr>
<td class="text-center fw-bold text-dark ps-3"><?= $this->nettoyer($v['codeSociete']); ?></td>
<td class="text-center small"><?= $typecontrat; ?></td>
<td class="text-center text-primary fw-bold"><?= format_N($this->nettoyer($v['primeMin'])); ?></td>
<td class="text-center text-primary fw-bold"><?= format_N($this->nettoyer($v['primeMax'])); ?></td>
<td class="text-center">
<span class="badge bg-light text-dark border">
<?= number_format($this->nettoyer($v['tauxAccessoire']),2); ?> %
</span>
</td>
<td class="text-center text-success fw-bold"><?= format_N($this->nettoyer($v['accessoireForfait'])); ?></td>
<td class="text-center small text-muted"><?= $appli; ?></td>
<td class="text-center pe-3">
<button type="button"
class="btn btn-outline-primary btn-sm rounded-pill px-3 shadow-sm fw-bold w-100"
onclick="formModifTableRef(<?= $idData; ?>);">
<i class="fas fa-edit me-1"></i> <?= _("Modifier") ?>
</button>
</td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
</div>
</div>
</div>
<style>
/* Harmonisation avec le style ESI */
#tableLister.compact tbody td { padding: 10px 8px !important; }
#tableLister.compact thead th { font-size: 0.7rem; font-weight: 700; color: #495057; }
.bg-light.text-primary.border { border-color: rgba(13, 110, 253, 0.2) !important; }
</style>
<script>
// Comme cette vue est chargée en AJAX, on réinitialise DataTables ici
$(document).ready(function() {
const titreExport = "<?= _('Tableau_des_tranches_accessoires') ?>";
initSmartTable('#tableLister', titreExport, [1, 'asc']);
});
</script>

View File

@ -1,53 +1,95 @@
<form id="formData">
<legend id="titre_formData"><?= _("Modification des données") ?></legend>
<INPUT class="sr-only" TYPE="text" id = "id" name = "id" value="<?=$bareme['id']?>">
<INPUT class="sr-only" TYPE="text" id = "codeTypeContrat" name = "codeTypeContrat" value="<?=$bareme['codeTypeContrat']?>">
<INPUT class="sr-only" TYPE="text" id = "primeMin" name = "primeMin" value="<?=$bareme['primeMin']?>">
<INPUT class="sr-only" TYPE="text" id = "codeApplication" name = "codeApplication" value="<?=$bareme['codeApplication']?>">
<INPUT class="sr-only" TYPE="text" id = "primeMax" name = "primeMax" value="<?=$bareme['primeMax']?>">
<div class="card border-0 shadow mb-4 border-start border-warning border-4 animate__animated animate__fadeIn">
<div class="card-header bg-white py-3 d-flex align-items-center justify-content-between">
<h6 class="card-title mb-0 fw-bold text-warning text-uppercase small">
<i class="fas fa-edit me-2"></i><?= _("Modification des données") ?>
</h6>
<span class="badge bg-light text-muted border fw-normal">ID: <?= $bareme['id'] ?></span>
</div>
<div class="card-body p-4">
<form id="formData">
<input class="sr-only" type="text" id="id" name="id" value="<?= $bareme['id'] ?>">
<input class="sr-only" type="text" id="codeTypeContrat" name="codeTypeContrat" value="<?= $bareme['codeTypeContrat'] ?>">
<input class="sr-only" type="text" id="primeMin" name="primeMin" value="<?= $bareme['primeMin'] ?>">
<input class="sr-only" type="text" id="codeApplication" name="codeApplication" value="<?= $bareme['codeApplication'] ?>">
<input class="sr-only" type="text" id="primeMax" name="primeMax" value="<?= $bareme['primeMax'] ?>">
<table class="table table-responsive table-condensed">
<tbody>
<tr>
<td width="10%" align="center" ><?= _("Type Contrat") ?></td>
<td>
<select class="form-select text-center" disabled>
<?php liste_options($typecontrat,$this->nettoyer($bareme['codeTypeContrat']),true); ?>
</SELECT>
</td>
<td width="8%" align="center" ><?= _("Prime Mini") ?></td>
<td width="20%" >
<div id="div_prime_mini">
<INPUT class="form-control text-center" TYPE="text" disabled
value="<?=format_N($this->nettoyer($bareme['primeMin']));?>" >
</div>
</td>
<td width="8%" align="center"><?= _("Forfait") ?></td>
<td width="20%" >
<INPUT class="form-control" TYPE="text" id="accessoireForfait" NAME="accessoireForfait"
value="<?=$bareme['accessoireForfait'];?>" >
</td>
</tr>
<tr>
<td width="10%" align="center" ><?= _("Application") ?></td>
<td>
<select class="form-select text-center" disabled>
<?php liste_options($application,$this->nettoyer($bareme['codeApplication']),true); ?>
</SELECT>
</td>
<td width="8%" align="center" ><?= _("Prime Maxi") ?></td>
<td width="20%" >
<INPUT class="form-control text-center" TYPE="text" disabled
value="<?=format_N($this->nettoyer($bareme['primeMax']));?>" >
</td>
<td width="8%" align="center"><?= _("Taux") ?></td>
<td width="20%" ><INPUT class="form-control" TYPE="number" step="0.01" id="tauxAccessoire" min="0" NAME="tauxAccessoire" value="<?=number_format($bareme['tauxAccessoire'],2);?>" onBlur="controle_numerique(this);"></td>
</tr>
</tbody>
</table>
</form>
<div class="row g-3 mb-3">
<div class="col-md-4">
<label class="form-label small fw-bold text-muted text-uppercase"><?= _("Type Contrat") ?></label>
<div class="input-group">
<span class="input-group-text bg-light text-muted"><i class="fas fa-lock"></i></span>
<select class="form-select text-center bg-light" disabled>
<?php liste_options($typecontrat, $this->nettoyer($bareme['codeTypeContrat']), true); ?>
</select>
</div>
</div>
<div class="col-md-4">
<label class="form-label small fw-bold text-muted text-uppercase"><?= _("Prime Mini") ?></label>
<div class="input-group">
<span class="input-group-text bg-light"><i class="fas fa-arrow-down text-muted"></i></span>
<input class="form-control text-center bg-light" type="text" disabled value="<?= format_N($this->nettoyer($bareme['primeMin'])); ?>">
</div>
</div>
<div class="col-md-4">
<label class="form-label small fw-bold text-warning text-uppercase required"><?= _("Forfait") ?></label>
<div class="input-group">
<span class="input-group-text bg-warning-light text-warning"><i class="fas fa-money-bill-wave"></i></span>
<input class="form-control text-center fw-bold border-warning" type="text" id="accessoireForfait" name="accessoireForfait" value="<?= $bareme['accessoireForfait']; ?>" onkeyup="controle_numerique(this);" onblur="formatMonetaire(this);">
</div>
</div>
</div>
<div class="row g-3">
<div class="col-md-4">
<label class="form-label small fw-bold text-muted text-uppercase"><?= _("Application") ?></label>
<div class="input-group">
<span class="input-group-text bg-light text-muted"><i class="fas fa-lock"></i></span>
<select class="form-select text-center bg-light" disabled>
<?php liste_options($application, $this->nettoyer($bareme['codeApplication']), true); ?>
</select>
</div>
</div>
<div class="col-md-4">
<label class="form-label small fw-bold text-muted text-uppercase"><?= _("Prime Maxi") ?></label>
<div class="input-group">
<span class="input-group-text bg-light"><i class="fas fa-arrow-up text-muted"></i></span>
<input class="form-control text-center bg-light" type="text" disabled value="<?= format_N($this->nettoyer($bareme['primeMax'])); ?>">
</div>
</div>
<div class="col-md-4">
<label class="form-label small fw-bold text-warning text-uppercase"><?= _("Taux (%)") ?></label>
<div class="input-group">
<span class="input-group-text bg-warning-light text-warning"><i class="fas fa-percentage"></i></span>
<input class="form-control text-center fw-bold border-warning" type="number" step="0.01" id="tauxAccessoire" min="0" name="tauxAccessoire" value="<?= number_format($bareme['tauxAccessoire'], 2); ?>" onBlur="controle_numerique(this);">
</div>
</div>
</div>
</form>
</div>
</div>
<style>
.bg-warning-light {
background-color: rgba(255, 193, 7, 0.1);
}
.form-control:disabled, .form-select:disabled {
cursor: not-allowed;
background-color: #f8f9fa !important;
color: #6c757d !important;
border-color: #e9ecef;
}
.border-warning {
border-color: #ffc107 !important;
}
/* Focus spécifique pour les champs de modification */
.border-warning:focus {
box-shadow: 0 0 0 0.25rem rgba(255, 193, 7, 0.15);
}
</style>

View File

@ -9,9 +9,6 @@
<h4 id="titre-page" class="mb-0 fw-bold text-uppercase"><?= _("Grille des accessoires") ?></h4>
<p class="text-muted small mb-0">
<?= _("Gestion des barèmes de frais accessoires par tranche de prime") ?>
<span class="badge bg-light text-primary border ms-2">
<?= count($bareme) ?> <?= _("Lignes au total") ?>
</span>
</p>
</div>
</div>
@ -25,52 +22,7 @@
<div id="div_maj_table" class="mb-3"></div>
<div id="div_lister_table" class="card border-0 shadow-sm animate__animated animate__fadeInUp">
<div class="card-body p-0">
<div class="table-responsive">
<table class="table table-hover align-middle mb-0 datatable-inter compact">
<thead class="table-light">
<tr class="text-uppercase small">
<th class="text-center py-3"><?= _("Centre gestion") ?></th>
<th class="text-center"><?= _("Type Contrat") ?></th>
<th class="text-center"><?= _("Prime Mini") ?></th>
<th class="text-center"><?= _("Prime Maxi") ?></th>
<th class="text-center"><?= _("Forfait") ?></th>
<th class="text-center"><?= _("Taux") ?></th>
<th class="text-center"><?= _("Application") ?></th>
<th class="text-center no-export" width="100px"><?= _("Action") ?></th>
</tr>
</thead>
<tbody>
<?php foreach ($bareme as $v):
$idData = $this->nettoyer($v['id']);
$typecontrat = est_anglophone() ? $this->nettoyer($v['typecontratEng']) : $this->nettoyer($v['typecontrat']);
$appli = est_anglophone() ? $this->nettoyer($v['appliEng']) : $this->nettoyer($v['appli']);
?>
<tr>
<td class="text-center fw-bold text-dark"><?= $this->nettoyer($v['codeSociete']) ?></td>
<td class="text-center small"><?= $typecontrat ?></td>
<td class="text-center text-primary fw-bold"><?= format_N($this->nettoyer($v['primeMin'])) ?></td>
<td class="text-center text-primary fw-bold"><?= format_N($this->nettoyer($v['primeMax'])) ?></td>
<td class="text-center text-success fw-bold"><?= format_N($this->nettoyer($v['accessoireForfait'])) ?></td>
<td class="text-center">
<span class="badge bg-light text-dark border">
<?= number_format($this->nettoyer($v['tauxAccessoire']), 2) ?> %
</span>
</td>
<td class="text-center small text-muted"><?= $appli ?></td>
<td class="text-center">
<button type="button"
class="btn btn-outline-warning btn-sm rounded-pill px-3 shadow-sm fw-bold"
onclick="formModifTableRef(<?= $idData ?>);">
<i class="fas fa-edit me-1"></i> <?= _("Modifier") ?>
</button>
</td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
</div>
</div>
<?php require "Vue/Ajaxtblisterbaremeaccessoireavenant/index.php";?>
</div>
</div>