This commit is contained in:
KONE SOREL 2026-04-07 08:32:31 +00:00
parent b32ed64dbf
commit 7d8b5168cd

View File

@ -5,127 +5,114 @@
?> ?>
<div class="page-content animate__animated animate__fadeIn"> <div class="page-content animate__animated animate__fadeIn">
<div class="header-section mb-4"> <div class="header-section mb-3">
<div class="card border-0 shadow-sm border-start border-primary border-4"> <div class="card border-0 shadow-sm border-start border-primary border-4">
<div class="card-body d-flex align-items-center justify-content-between py-3"> <div class="card-body d-flex align-items-center justify-content-between py-2">
<div class="d-flex align-items-center"> <div class="d-flex align-items-center">
<div class="icon-box bg-primary bg-opacity-10 text-primary rounded-3 p-3 me-3"> <div class="icon-box bg-primary bg-opacity-10 text-primary rounded-3 p-2 me-3">
<i class="fas fa-sliders-h fs-4"></i> <i class="fas fa-sliders-h"></i>
</div> </div>
<div> <div>
<h4 class="mb-0 fw-bold text-dark text-uppercase" style="letter-spacing: -0.5px;"><?= _("Pilotage du Barème") ?></h4> <h5 class="mb-0 fw-bold text-dark text-uppercase"><?= _("Pilotage du Barème") ?></h5>
<nav aria-label="breadcrumb"> <small class="text-primary fw-bold"><?= $libelleBareme ?></small>
<ol class="breadcrumb mb-0 small">
<li class="breadcrumb-item text-muted"><?= _("Structure") ?></li>
<li class="breadcrumb-item active fw-bold text-primary"><?= $libelleBareme ?></li>
</ol>
</nav>
</div> </div>
</div> </div>
<div class="text-end d-none d-md-block"> <div class="text-end">
<span class="badge bg-light text-dark border px-3 py-2"> <span class="badge bg-light text-dark border">
<i class="fas fa-fingerprint me-2 text-primary"></i>ID: #<?= $idBareme ?> <i class="fas fa-fingerprint me-1 text-primary"></i>ID: #<?= $idBareme ?>
</span> </span>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<input type="hidden" id="nomForm" name="nomForm" value="frmDetailBareme"> <input type="hidden" id="idBaremePriseEnCharge" value="<?= $idBareme ?>">
<input type="hidden" id="idBaremePriseEnCharge" name="idBaremePriseEnCharge" value="<?= $idBareme ?>">
<input type="hidden" id="ligne2" name="ligne2" value="<?= count($garantiesajoutees); ?>">
<input type="hidden" id="masquerBareme" name="masquerBareme" value="1">
<input type="hidden" id="maxDateEffetBareme" name="maxDateEffetBareme" value="<?= $maxDateEffetBareme ?>">
<div class="row g-4"> <div class="row g-3">
<div class="col-xl-4 col-lg-5"> <div class="col-xl-4 col-lg-5">
<div class="card border-0 shadow-sm h-100"> <div class="card border-0 shadow-sm h-100">
<div class="card-header bg-transparent border-0 py-3"> <div class="card-header bg-white border-bottom-0 pt-3">
<h6 class="mb-0 fw-bold text-uppercase small text-muted"> <ul class="nav nav-tabs card-header-tabs" id="tabBareme" role="tablist">
<i class="fas fa-cog me-2"></i><?= _("Mise à jour globale") ?> <li class="nav-item">
</h6> <button class="nav-link active small fw-bold text-uppercase" id="update-tab" data-bs-toggle="tab" data-bs-target="#update-zone" type="button">
<i class="fas fa-edit me-1"></i> <?= _("Mise à jour") ?>
</button>
</li>
<li class="nav-item">
<button class="nav-link small fw-bold text-uppercase" id="history-tab" data-bs-toggle="tab" data-bs-target="#history-zone" type="button" onclick="afficherDetailBareme();">
<i class="fas fa-history me-1"></i> <?= _("Historique") ?>
</button>
</li>
</ul>
</div> </div>
<div class="card-body pt-0"> <div class="card-body tab-content">
<div class="mb-3"> <div class="tab-pane fade show active" id="update-zone">
<label class="form-label small fw-semibold text-uppercase"><?= _("Date de mise en vigueur") ?></label> <div class="mb-3">
<div class="input-group"> <label class="lbl-saas"><?= _("Date de mise en vigueur") ?></label>
<span class="input-group-text bg-light border-end-0"><i class="fas fa-calendar-alt text-primary"></i></span> <div class="input-group input-group-sm">
<input type="text" id="dateEffetBareme" name="dateEffetBareme" class="form-control datepicker fw-bold" placeholder="DD/MM/YYYY" required> <span class="input-group-text"><i class="fas fa-calendar-alt"></i></span>
<input type="text" id="dateEffetBareme" class="form-control datepicker fw-bold">
</div>
</div>
<div class="mb-4">
<label class="lbl-saas"><?= _("Taux Global (%)") ?></label>
<div class="input-group input-group-sm">
<input type="number" id="ticketModerateurBareme" class="form-control fw-bold text-primary" value="<?= $tmBareme ?>">
<span class="input-group-text bg-primary text-white">%</span>
</div>
</div>
<button type="button" class="btn btn-primary btn-sm w-100 py-2 shadow-sm fw-bold" onclick="inserer_bareme();">
<i class="fas fa-save me-1"></i> <?= _("Appliquer à tout") ?>
</button>
</div>
<div class="tab-pane fade" id="history-zone">
<div id="div_bareme" class="history-scroll-zone">
<div class="text-center py-4 text-muted small">
<i class="fas fa-spinner fa-spin me-2"></i> Chargement...
</div>
</div> </div>
</div> </div>
<div class="mb-4">
<label class="form-label small fw-semibold text-uppercase"><?= _("Ticket Modérateur Global") ?></label>
<div class="input-group">
<input type="number" id="ticketModerateurBareme" name="ticketModerateurBareme" class="form-control form-control-lg fw-bold text-primary" value="<?= $tmBareme ?>" min="0" max="100">
<span class="input-group-text bg-primary text-white fw-bold">%</span>
</div>
<div class="form-text mt-2 small italic">
<i class="fas fa-info-circle me-1"></i> <?= _("S'appliquera à l'ensemble des actes.") ?>
</div>
</div>
<button type="button" class="btn btn-primary w-100 py-2 shadow-sm" onclick="inserer_bareme();">
<i class="fas fa-save me-2"></i> <?= _("Appliquer à tout") ?>
</button>
</div>
<div class="card-footer bg-light border-0 p-0">
<button class="btn btn-link w-100 text-decoration-none text-muted py-2 small fw-bold" onclick="afficherDetailBareme();">
<i class="fas fa-history me-1"></i> <?= _("Historique des taux") ?> <i id="span_bareme" class="fas fa-chevron-down ms-1"></i>
</button>
<div id="div_bareme" class="bg-white border-top p-3" style="display:none;"></div>
</div> </div>
</div> </div>
</div> </div>
<div class="col-xl-8 col-lg-7"> <div class="col-xl-8 col-lg-7">
<div class="card border-0 shadow-sm"> <div class="card border-0 shadow-sm">
<div class="card-header bg-white py-3 d-flex justify-content-between align-items-center border-bottom"> <div class="card-header bg-white py-2 d-flex justify-content-between align-items-center">
<h6 class="mb-0 fw-bold text-uppercase small"> <h6 class="mb-0 fw-bold text-uppercase small text-secondary">
<i class="fas fa-list-ul me-2 text-primary"></i><?= _("Détails par Famille d'actes") ?> <i class="fas fa-list-ul me-2"></i><?= _("Détails par Famille") ?>
</h6> </h6>
<span class="badge rounded-pill bg-primary bg-opacity-10 text-primary px-3"> <span class="badge rounded-pill bg-primary bg-opacity-10 text-primary">
<?= count($garantiesajoutees) ?> <?= _("Familles") ?> <?= count($garantiesajoutees) ?> Familles
</span> </span>
</div> </div>
<div class="card-body p-0"> <div class="card-body p-0">
<div class="table-responsive" style="max-height: 600px; overflow-y: auto;"> <div class="table-responsive" style="max-height: 500px;">
<table class="table table-hover align-middle mb-0"> <table class="table table-hover table-sm align-middle mb-0">
<thead class="bg-light sticky-top shadow-sm" style="z-index: 10;"> <thead class="table-light sticky-top">
<tr> <tr class="small text-uppercase">
<th class="ps-4 border-0 py-3" width="100px"><?= _("Code") ?></th> <th class="ps-3 py-2"><?= _("Code") ?></th>
<th class="border-0 py-3"><?= _("Désignation") ?></th> <th class="py-2"><?= _("Désignation") ?></th>
<th class="text-center border-0 py-3"><?= _("Paramétrés") ?></th> <th class="text-center py-2"><?= _("Config") ?></th>
<th class="text-center border-0 py-3"><?= _("Restants") ?></th> <th class="text-end pe-3 py-2"><?= _("Action") ?></th>
<th class="text-end pe-4 border-0 py-3"><?= _("Action") ?></th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<?php foreach ($garantiesajoutees as $v): <?php foreach ($garantiesajoutees as $v):
$codeG = $this->nettoyer($v['codeGarantie']); $codeG = $this->nettoyer($v['codeGarantie']);
$nomG = $isAnglais ? $this->nettoyer($v['libelleEng']) : $this->nettoyer($v['libelle']); $nomG = $isAnglais ? $this->nettoyer($v['libelleEng']) : $this->nettoyer($v['libelle']);
$actives = (int)$v['nbre_lignes_actives'];
$inactives = (int)$v['nbre_lignes_inactives'];
?> ?>
<tr class="row-hover transition-all" ondblclick="afficher_actes_garantiebareme(<?= $idBareme ?>,'<?= $codeG ?>');" title="<?= _("Double-cliquez pour éditer") ?>"> <tr class="row-hover" ondblclick="afficher_actes_garantiebareme(<?= $idBareme ?>,'<?= $codeG ?>');">
<td class="ps-4"> <td class="ps-3 fw-mono small"><?= $codeG ?></td>
<span class="badge bg-secondary bg-opacity-10 text-secondary border fw-mono"><?= $codeG ?></span>
</td>
<td> <td>
<div class="fw-bold text-dark mb-0"><?= $nomG ?></div> <div class="fw-bold small"><?= $nomG ?></div>
<small class="text-muted opacity-75 d-block mt-n1" style="font-size: 0.75rem;"><?= _("Configuration par acte") ?></small>
</td> </td>
<td class="text-center"> <td class="text-center">
<span class="badge <?= $actives > 0 ? 'bg-success' : 'bg-light text-muted' ?> rounded-pill px-3"> <span class="badge bg-success rounded-pill"><?= (int)$v['nbre_lignes_actives'] ?></span>
<?= $actives ?>
</span>
</td> </td>
<td class="text-center"> <td class="text-end pe-3">
<span class="badge <?= $inactives > 0 ? 'bg-danger bg-opacity-10 text-danger' : 'bg-light text-muted' ?> rounded-pill px-3"> <button class="btn btn-xs btn-outline-primary" onclick="afficher_actes_garantiebareme(<?= $idBareme ?>,'<?= $codeG ?>');">
<?= $inactives ?>
</span>
</td>
<td class="text-end pe-4">
<button class="btn btn-sm btn-outline-primary rounded-pill px-3"
onclick="afficher_actes_garantiebareme(<?= $idBareme ?>,'<?= $codeG ?>');">
<i class="fas fa-cog"></i> <i class="fas fa-cog"></i>
</button> </button>
</td> </td>
@ -140,34 +127,11 @@
</div> </div>
</div> </div>
<div class="modal fade" id="div_actesgarantiebareme" role="dialog" data-bs-backdrop="static" data-bs-keyboard="false"></div>
<style> <style>
:root { --radius-md: 12px; } .lbl-saas { font-size: 10px; font-weight: 700; color: #6c757d; text-transform: uppercase; margin-bottom: 4px; display: block; }
.transition-all { transition: all 0.2s ease-in-out; } .nav-tabs .nav-link { border: none; color: #6c757d; padding: 10px 15px; }
.row-hover:hover { background-color: rgba(var(--bs-primary-rgb), 0.03) !important; cursor: pointer; } .nav-tabs .nav-link.active { color: #0d6efd; border-bottom: 2px solid #0d6efd; background: none; }
.fw-mono { font-family: 'SFMono-Regular', Menlo, Monaco, Consolas, monospace; font-size: 0.85rem; } .history-scroll-zone { max-height: 350px; overflow-y: auto; font-size: 12px; }
.btn-xs { padding: 2px 6px; font-size: 10px; border-radius: 4px; }
/* Custom Scrollbar pour la table */ .fw-mono { font-family: monospace; }
.table-responsive::-webkit-scrollbar { width: 6px; } </style>
.table-responsive::-webkit-scrollbar-thumb { background-color: #e0e0e0; border-radius: 10px; }
/* Correction Z-index pour les datepickers dans les modals ou layouts complexes */
.datepicker-dropdown { z-index: 9999 !important; padding: 10px !important; border: 1px solid #eee !important; box-shadow: 0 10px 15px -3px rgba(0,0,0,0.1) !important; }
.bg-light-subtle { background-color: #f8f9fa !important; }
</style>
<script>
// Initialisation propre si jQuery/Bootstrap Datepicker est chargé
$(document).ready(function() {
if ($.isFunction($.fn.datepicker)) {
$('.datepicker').datepicker({
format: 'dd/mm/yyyy',
autoclose: true,
todayHighlight: true,
container: 'body' // Évite les problèmes de overflow
});
}
});
</script>