This commit is contained in:
KONE SOREL 2026-04-03 11:29:00 +00:00
parent 9be5c688f5
commit eae3e01fb0

View File

@ -4,85 +4,98 @@
$isAnglais = est_anglophone();
?>
<div class="page-content px-3">
<header class="view-header mb-4">
<div class="header-content">
<div class="erp-breadcrumb"><?= _("Paramétrage") ?> / <?= _("Barèmes de Remboursement") ?></div>
<h1 class="view-title">
<i class="fas fa-cogs me-2 text-muted small"></i><?= _("Pilotage du Barème") ?>
</h1>
<p class="text-secondary small mb-0 mt-1">
<?= _("Structure") ?> : <span class="fw-bold text-primary"><?= $libelleBareme ?></span>
<span class="ms-2 badge-status badge-info">ID #<?= $idBareme ?></span>
</p>
</div>
<div class="header-actions">
<button class="btn btn-outline-secondary btn-sm" onclick="afficherDetailBareme();">
<i class="fas fa-history me-1"></i> <?= _("Historique des taux") ?>
</button>
</div>
</header>
<input type="hidden" id="nomForm" value="frmDetailBareme">
<input type="hidden" id="idBaremePriseEnCharge" value="<?= $idBareme ?>">
<input type="hidden" id="ligne2" value="<?= count($garantiesajoutees); ?>">
<input type="hidden" id="maxDateEffetBareme" value="<?= $maxDateEffetBareme ?>">
<div class="row g-3">
<div class="col-12">
<div class="card card-erp">
<div class="card-header-erp py-2 bg-light">
<span class="lbl-erp mb-0"><i class="fas fa-sliders-h me-2"></i><?= _("Mise à jour globale des taux") ?></span>
<div class="page-content animate__animated animate__fadeIn">
<div class="header-section mb-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="d-flex align-items-center">
<div class="icon-box bg-primary bg-opacity-10 text-primary rounded-3 p-3 me-3">
<i class="fas fa-sliders-h fs-4"></i>
</div>
<div>
<h4 class="mb-0 fw-bold text-dark text-uppercase" style="letter-spacing: -0.5px;"><?= _("Pilotage du Barème") ?></h4>
<nav aria-label="breadcrumb">
<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 class="card-body">
<div class="row g-3 align-items-end">
<div class="col-md-3">
<label class="lbl-erp required"><?= _("Date de mise en vigueur") ?></label>
<div class="input-group input-group-sm">
<span class="input-group-text bg-white"><i class="fas fa-calendar-alt text-muted"></i></span>
<input type="text" id="dateEffetBareme" name="dateEffetBareme" class="form-control datepicker fw-bold text-center" required>
</div>
</div>
<div class="col-md-3">
<label class="lbl-erp required"><?= _("Ticket Modérateur Global") ?></label>
<div class="input-group input-group-sm">
<input type="text" id="ticketModerateurBareme" name="ticketModerateurBareme" class="form-control fw-bold text-center" value="<?= $tmBareme ?>">
<span class="input-group-text bg-white fw-bold">%</span>
</div>
</div>
<div class="col-md-3">
<button type="button" class="btn btn-primary btn-sm w-100 py-2" onclick="inserer_bareme();">
<i class="fas fa-sync-alt me-2"></i> <?= _("Appliquer à tous les actes") ?>
</button>
</div>
<div class="col-md-3">
<div class="small text-muted border-start ps-3">
<i class="fas fa-info-circle me-1"></i> <?= _("Cette action écrasera les taux spécifiques de chaque famille.") ?>
</div>
<div class="text-end d-none d-md-block">
<span class="badge bg-light text-dark border px-3 py-2">
<i class="fas fa-fingerprint me-2 text-primary"></i>ID: #<?= $idBareme ?>
</span>
</div>
</div>
</div>
</div>
<input type="hidden" id="nomForm" name="nomForm" value="frmDetailBareme">
<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="col-xl-4 col-lg-5">
<div class="card border-0 shadow-sm h-100">
<div class="card-header bg-transparent border-0 py-3">
<h6 class="mb-0 fw-bold text-uppercase small text-muted">
<i class="fas fa-cog me-2"></i><?= _("Mise à jour globale") ?>
</h6>
</div>
<div class="card-body pt-0">
<div class="mb-3">
<label class="form-label small fw-semibold text-uppercase"><?= _("Date de mise en vigueur") ?></label>
<div class="input-group">
<span class="input-group-text bg-light border-end-0"><i class="fas fa-calendar-alt text-primary"></i></span>
<input type="text" id="dateEffetBareme" name="dateEffetBareme" class="form-control datepicker fw-bold" placeholder="DD/MM/YYYY" required>
</div>
</div>
<div id="div_bareme" class="mt-3 p-3 border-top bg-light-subtle rounded-1" style="display:none;"></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 class="col-12">
<div class="card card-erp overflow-hidden">
<div class="card-header-erp py-2 bg-light">
<span class="lbl-erp mb-0"><i class="fas fa-layer-group me-2"></i><?= _("Détail des plafonds et taux par Famille") ?></span>
<span class="badge-status badge-info"><?= count($garantiesajoutees) ?> <?= _("Familles") ?></span>
<div class="col-xl-8 col-lg-7">
<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">
<h6 class="mb-0 fw-bold text-uppercase small">
<i class="fas fa-list-ul me-2 text-primary"></i><?= _("Détails par Famille d'actes") ?>
</h6>
<span class="badge rounded-pill bg-primary bg-opacity-10 text-primary px-3">
<?= count($garantiesajoutees) ?> <?= _("Familles") ?>
</span>
</div>
<div class="card-body p-0">
<div class="table-responsive">
<div class="table-responsive" style="max-height: 600px; overflow-y: auto;">
<table class="table table-hover align-middle mb-0">
<thead>
<thead class="bg-light sticky-top shadow-sm" style="z-index: 10;">
<tr>
<th class="ps-4" width="120px"><?= _("Code") ?></th>
<th><?= _("Libellé de la Famille") ?></th>
<th class="text-center"><?= _("Actes Paramétrés") ?></th>
<th class="text-center"><?= _("Non Paramétrés") ?></th>
<th class="text-end pe-4" width="100px"><?= _("Actions") ?></th>
<th class="ps-4 border-0 py-3" width="100px"><?= _("Code") ?></th>
<th class="border-0 py-3"><?= _("Désignation") ?></th>
<th class="text-center border-0 py-3"><?= _("Paramétrés") ?></th>
<th class="text-center border-0 py-3"><?= _("Restants") ?></th>
<th class="text-end pe-4 border-0 py-3"><?= _("Action") ?></th>
</tr>
</thead>
<tbody>
@ -92,29 +105,28 @@
$actives = (int)$v['nbre_lignes_actives'];
$inactives = (int)$v['nbre_lignes_inactives'];
?>
<tr class="cursor-pointer" ondblclick="afficher_actes_garantiebareme(<?= $idBareme ?>,'<?= $codeG ?>');">
<tr class="row-hover transition-all" ondblclick="afficher_actes_garantiebareme(<?= $idBareme ?>,'<?= $codeG ?>');" title="<?= _("Double-cliquez pour éditer") ?>">
<td class="ps-4">
<span class="badge-status badge-info font-monospace"><?= $codeG ?></span>
<span class="badge bg-secondary bg-opacity-10 text-secondary border fw-mono"><?= $codeG ?></span>
</td>
<td>
<div class="fw-bold text-dark"><?= $nomG ?></div>
<div class="text-muted smaller" style="font-size: 10px;"><?= _("Double-cliquez pour configurer les actes") ?></div>
<div class="fw-bold text-dark mb-0"><?= $nomG ?></div>
<small class="text-muted opacity-75 d-block mt-n1" style="font-size: 0.75rem;"><?= _("Configuration par acte") ?></small>
</td>
<td class="text-center">
<span class="badge-status <?= $actives > 0 ? 'badge-valide' : 'badge-inactive' ?>">
<?= str_pad($actives, 2, "0", STR_PAD_LEFT) ?>
<span class="badge <?= $actives > 0 ? 'bg-success' : 'bg-light text-muted' ?> rounded-pill px-3">
<?= $actives ?>
</span>
</td>
<td class="text-center">
<span class="badge-status <?= $inactives > 0 ? 'badge-urgent' : 'badge-inactive' ?>">
<?= str_pad($inactives, 2, "0", STR_PAD_LEFT) ?>
<span class="badge <?= $inactives > 0 ? 'bg-danger bg-opacity-10 text-danger' : 'bg-light text-muted' ?> rounded-pill px-3">
<?= $inactives ?>
</span>
</td>
<td class="text-end pe-4">
<button class="btn btn-outline-secondary btn-sm"
onclick="afficher_actes_garantiebareme(<?= $idBareme ?>,'<?= $codeG ?>');"
title="<?= _("Éditer") ?>">
<i class="fas fa-chevron-right"></i>
<button class="btn btn-sm btn-outline-primary rounded-pill px-3"
onclick="afficher_actes_garantiebareme(<?= $idBareme ?>,'<?= $codeG ?>');">
<i class="fas fa-cog"></i>
</button>
</td>
</tr>
@ -128,4 +140,34 @@
</div>
</div>
<div class="modal fade" id="div_actesgarantiebareme" role="dialog" data-bs-backdrop="static" data-bs-keyboard="false"></div>
<div class="modal fade" id="div_actesgarantiebareme" role="dialog" data-bs-backdrop="static" data-bs-keyboard="false"></div>
<style>
:root { --radius-md: 12px; }
.transition-all { transition: all 0.2s ease-in-out; }
.row-hover:hover { background-color: rgba(var(--bs-primary-rgb), 0.03) !important; cursor: pointer; }
.fw-mono { font-family: 'SFMono-Regular', Menlo, Monaco, Consolas, monospace; font-size: 0.85rem; }
/* Custom Scrollbar pour la table */
.table-responsive::-webkit-scrollbar { width: 6px; }
.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>