This commit is contained in:
KONE SOREL 2026-02-27 09:37:49 +00:00
parent cf75dbed1a
commit 9a57eb70c9
2 changed files with 236 additions and 72 deletions

View File

@ -1288,4 +1288,113 @@ select[class*="selectpicker"],
border: 1px solid #ced4da !important;
font-size: 0.8rem !important;
background-color: #fff !important;
}
}
/* --- Style spécifique aux onglets de paramètres --- */
/* On cible les ID des conteneurs pour isoler le style */
#Generaux, #Production, #Medical, #Prestation {
animation: fadeIn 0.4s ease-in-out;
}
/* On cible les lignes de paramètres spécifiquement dans ces ID */
#Generaux .table td,
#Production .table td,
#Medical .table td,
#Prestation .table td {
padding: 1.1rem 1rem;
border-top: 1px solid #f1f4f6;
vertical-align: middle;
}
/* --- THÈME NEUTRAL PRO : HAUT CONTRASTE --- */
.text-dark { color: #1a1d24 !important; }
.bg-success-ghost { background-color: rgba(39, 174, 96, 0.12); color: #27ae60; }
.bg-danger-ghost { background-color: rgba(192, 57, 43, 0.12); color: #c0392b; }
.bg-primary-ghost { background-color: rgba(33, 46, 83, 0.08); color: #212e53; }
/* Navigation Pills Modernes */
.nav-pills .nav-link { color: #64748b; padding: 10px 20px; transition: 0.3s; border: none; background: none; }
.nav-pills .nav-link.active { background-color: #212e53 !important; color: white !important; box-shadow: var(--shadow-md); }
/* Tableaux et Cards */
.table td { padding: 1.2rem 1rem; border-top: 1px solid #f1f4f6; }
.table-hover tbody tr:hover { background-color: #f8fafc; cursor: pointer; }
/* Spécificités pour cette section Production */
#Production .bg-light-info { background-color: rgba(33, 46, 83, 0.02); }
#Production .bg-light-success { background-color: rgba(39, 174, 96, 0.02); }
#Production .table td { padding: 1rem 0.75rem; border-bottom: 1px solid #f1f4f6;}
.searchable-row:hover { background-color: #f8fafc !important; }
#Production .fs-5 { font-size: 1.1rem !important; }
/* Spécificités pour cette section Medical */
#Medical .table td {padding: 1.1rem 1rem; border-bottom: 1px solid #f1f4f6; }
#Medical .fs-5 { font-size: 1.15rem !important; }
/* ============================================================
DESIGN SYSTEM - PAGE PARAMÈTRES (NEUTRAL PRO)
============================================================ */
/* Conteneurs de sections (Onglets) */
.tab-custom-content {
animation: fadeIn 0.4s ease-in-out;
}
/* Style des Cartes (Sections) */
.tab-custom-content .card {
border-radius: var(--radius-md);
overflow: hidden;
margin-bottom: 1.5rem;
}
/* En-têtes de tableaux/sections */
.tab-custom-content .card-header {
padding: 0.75rem 1.25rem;
}
.tab-custom-content .card-header h6 {
margin-bottom: 0;
font-size: 0.85rem;
letter-spacing: 0.05em;
}
/* Tableaux de paramètres */
.tab-custom-content .table td {
padding: 1.1rem 1rem;
border-top: 1px solid #f1f4f6;
vertical-align: middle;
}
/* Libellés de paramètres (Haut Contraste) */
.tab-custom-content .text-dark {
color: #1a1d24 !important; /* Noir profond */
font-weight: 700 !important; /* Gras pour la lisibilité */
font-size: 0.95rem;
}
/* Valeurs (Colonne de droite) */
.tab-custom-content .valeur-display {
text-align: center;
border-left: 1px solid #f1f4f6;
background-color: rgba(248, 250, 252, 0.5);
font-weight: 700;
}
/* BADGES "GHOST" (Sémantique des couleurs) */
.badge-ghost {
padding: 0.5rem 0.8rem;
border-radius: 50px;
font-weight: 700;
font-size: 0.75rem;
}
/* Animation */
@keyframes fadeIn {
from { opacity: 0; transform: translateY(5px); }
to { opacity: 1; transform: translateY(0); }
}

View File

@ -212,43 +212,132 @@
</div>
<div id="Medical" class="tab-custom-content" style="display:none;">
<div class="card border-0 shadow-sm overflow-hidden">
<div class="card-header bg-info py-3">
<h6 class="mb-0 text-white fw-bold"><i class="fas fa-hand-holding-medical me-2"></i><?= _("PARAMÈTRES MÉDICAUX") ?></h6>
</div>
<div class="card-body p-0">
<table class="table table-hover align-middle mb-0 datatable-custom">
<tbody>
<tr class="searchable-row">
<td width="8%" class="text-center fw-bold text-info">01</td>
<td class="text-dark fw-bold"><?= _("Activer les envois de SMS ?") ?></td>
<td width="20%" class="text-center border-start bg-light">
<?php $sms = ($societeuser['envoismsactif']=="1"); ?>
<span class="badge rounded-pill fw-bold <?= $sms ? 'bg-success-ghost text-success' : 'bg-danger-ghost text-danger' ?> px-3 py-2">
<?= $sms ? _("OUI") : _("NON") ?>
</span>
</td>
</tr>
<tr class="searchable-row">
<td class="text-center fw-bold text-info">12</td>
<td class="text-dark fw-bold"><?= _("Soumettre toute la prescription en entente préalable si l'un des actes l'est ?") ?></td>
<td class="text-center border-start bg-light">
<?php $ent = ($societeuser['tousActesSoumisEntentePrealable']=="1"); ?>
<span class="badge rounded-pill fw-bold <?= $ent ? 'bg-success-ghost text-success' : 'bg-danger-ghost text-danger' ?> px-3 py-2">
<?= $ent ? _("OUI") : _("NON") ?>
</span>
</td>
</tr>
<tr class="searchable-row">
<td class="text-center fw-bold text-info">13</td>
<td class="text-dark fw-bold"><?= _("Seuil d'actes pour déclencher une alerte d'entente préalable") ?></td>
<td class="text-center border-start bg-light fw-bold text-info fs-5"><?= $this->nettoyer($societeuser['nombreActeEntentePrealable']) ?></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<div class="card border-0 shadow-sm mb-4">
<div class="card-header bg-info py-3 d-flex align-items-center">
<h6 class="mb-0 text-white fw-bold text-uppercase">
<i class="fas fa-comment-alt me-2"></i><?= _("Communication & Notifications") ?>
</h6>
</div>
<div class="card-body p-0">
<div class="table-responsive">
<table class="table table-hover align-middle mb-0">
<thead class="bg-light">
<tr>
<th width="8%" class="text-center border-0 small text-muted">#</th>
<th class="border-0 small text-muted"><?= _("PARAMÈTRE DE COMMUNICATION") ?></th>
<th width="20%" class="text-center border-0 small text-muted"><?= _("ÉTAT") ?></th>
</tr>
</thead>
<tbody>
<?php
$comms = [
['01', _("Activer ou désactiver lenvoi automatique de notifications aux assurés par SMS."), 'envoismsactif'],
['02', _("Activer ou désactiver lenvoi automatique de notifications aux assurés par WhatsApp."), 'envoismswhatsappactif'],
['03', _("Activer ou désactiver lenvoi automatique de notifications aux assurés par SMS ou WhatsApp."), 'smsAssure'],
['04', _("Activer lenvoi automatique dune notification par SMS ou WhatsApp à lassuré lors de chaque facturation."), 'smsmParFacture'],
['05', _("Activer lenvoi automatique dune notification par email à lassuré lors de chaque facturation."), 'emailParFacture'],
['06', _("Activer lenvoi automatique dune copie du SMS/WhatsApp transmis à lassureur ou au prestataire en cas de demande ou de réponse à une entente préalable ou une dérogation."), 'copieSmsPrestataireAssure'],
['07', _("Activer lenvoi automatique dune notification par SMS, WhatsApp ou email à lassuré lorsque son solde atteint le seuil défini."), 'seuilAlerteActif']
];
foreach($comms as $c):
$status = ($societeuser[$c[2]] == "1"); ?>
<tr class="searchable-row">
<td class="text-center"><span class="badge bg-primary-ghost text-primary fw-bold"><?= $c[0] ?></span></td>
<td class="text-dark fw-bold"><?= $c[1] ?></td>
<td class="text-center border-start">
<span class="badge rounded-pill px-3 py-2 <?= $status ? 'bg-success-ghost text-success' : 'bg-danger-ghost text-danger' ?>">
<i class="fas <?= $status ? 'fa-check-circle' : 'fa-times-circle' ?> me-1"></i>
<?= $status ? _("OUI") : _("NON") ?>
</span>
</td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
</div>
</div>
</div>
<div class="card border-0 shadow-sm mb-4">
<div class="card-header bg-dark py-3">
<h6 class="mb-0 text-white fw-bold text-uppercase">
<i class="fas fa-file-medical-alt me-2"></i><?= _("Protocoles d'Entente Préalable") ?>
</h6>
</div>
<div class="card-body p-0">
<div class="table-responsive">
<table class="table table-hover align-middle mb-0">
<tbody>
<tr class="searchable-row">
<td width="8%" class="text-center"><span class="badge bg-primary-ghost text-primary fw-bold">08</span></td>
<td class="text-dark fw-bold"><?= _("Activer lenvoi automatique dune demande dentente préalable au gestionnaire lorsque le montant cumulé des examens prescrits dépasse le seuil fixé.") ?></td>
<td width="20%" class="text-center border-start bg-light">
<span class="fw-bold text-primary fs-5"><?= format_N($this->nettoyer($societeuser['montantTotalExamen'])) ?></span>
<small class="text-muted"><?= $_SESSION['devise_C'] ?></small>
</td>
</tr>
<tr class="searchable-row">
<td class="text-center"><span class="badge bg-primary-ghost text-primary fw-bold">09</span></td>
<td class="text-dark fw-bold"><?= _("Activer lenvoi automatique dune demande dentente préalable au gestionnaire lorsque le montant cumulé des médicaments prescrits dépasse le seuil fixé.") ?></td>
<td class="text-center border-start bg-light">
<span class="fw-bold text-primary fs-5"><?= format_N($this->nettoyer($societeuser['montantTotalMedicament'])) ?></span>
<small class="text-muted"><?= $_SESSION['devise_C'] ?></small>
</td>
</tr>
<tr class="searchable-row">
<td class="text-center"><span class="badge bg-primary-ghost text-primary fw-bold">10</span></td>
<td class="text-dark fw-bold"><?= _("Activer la possibilité pour le médecin du souscripteur de recevoir et de répondre aux demandes dententes préalables.") ?></td>
<td class="text-center border-start">
<?php $med = ($societeuser['accorderMedecinSouscripteur'] == "1"); ?>
<span class="badge rounded-pill px-3 py-2 <?= $med ? 'bg-success-ghost text-success' : 'bg-danger-ghost text-danger' ?>">
<?= $med ? _("OUI") : _("NON") ?>
</span>
</td>
</tr>
<tr class="searchable-row">
<td class="text-center"><span class="badge bg-primary-ghost text-primary fw-bold">11</span></td>
<td class="text-dark fw-bold"><?= _("Délai de réponse accordé au médecin du souscripteur.") ?></td>
<td class="text-center border-start bg-light">
<span class="fw-bold text-dark"><?= $this->nettoyer($societeuser['delaisReponseMedecinSouscripteur']) ?></span>
<span class="small text-muted text-uppercase ms-1"><?= _("Heure(s)") ?></span>
</td>
</tr>
<tr class="searchable-row">
<td class="text-center"><span class="badge bg-primary-ghost text-primary fw-bold">12</span></td>
<td class="text-dark fw-bold"><?= _("Si un acte dune prescription est soumis à entente préalable, lensemble des actes de la prescription est automatiquement transmis en entente préalable.") ?></td>
<td class="text-center border-start">
<?php $tous = ($societeuser['tousActesSoumisEntentePrealable'] == "1"); ?>
<span class="badge rounded-pill px-3 py-2 <?= $tous ? 'bg-success-ghost text-success' : 'bg-danger-ghost text-danger' ?>">
<?= $tous ? _("OUI") : _("NON") ?>
</span>
</td>
</tr>
<tr class="searchable-row">
<td class="text-center"><span class="badge bg-primary-ghost text-primary fw-bold">13</span></td>
<td class="text-dark fw-bold"><?= _("Déclencher une alerte dentente préalable lorsque le nombre dactes dune prescription atteint le seuil défini.") ?></td>
<td class="text-center border-start bg-light fw-bold text-info fs-5">
<?= $this->nettoyer($societeuser['nombreActeEntentePrealable']) ?>
</td>
</tr>
<tr class="searchable-row">
<td class="text-center"><span class="badge bg-primary-ghost text-primary fw-bold">14</span></td>
<td class="text-dark fw-bold"><?= _("Activer lapplication automatique du tarif le plus bas parmi les tarifs négociés.") ?></td>
<td class="text-center border-start">
<?php $tarif = ($societeuser['appliquerTarifBas'] == "1"); ?>
<span class="badge rounded-pill px-3 py-2 <?= $tarif ? 'bg-success-ghost text-success' : 'bg-danger-ghost text-danger' ?>">
<?= $tarif ? _("OUI") : _("NON") ?>
</span>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
<div id="Prestation" class="tab-custom-content" style="display:none;">
<div class="row g-4">
@ -275,37 +364,3 @@
</div>
</div>
<style>
/* --- THÈME NEUTRAL PRO : HAUT CONTRASTE --- */
.text-dark { color: #1a1d24 !important; }
.bg-success-ghost { background-color: rgba(39, 174, 96, 0.12); color: #27ae60; }
.bg-danger-ghost { background-color: rgba(192, 57, 43, 0.12); color: #c0392b; }
.bg-primary-ghost { background-color: rgba(33, 46, 83, 0.08); color: #212e53; }
/* Navigation Pills Modernes */
.nav-pills .nav-link { color: #64748b; padding: 10px 20px; transition: 0.3s; border: none; background: none; }
.nav-pills .nav-link.active { background-color: #212e53 !important; color: white !important; box-shadow: var(--shadow-md); }
/* Tableaux et Cards */
.table td { padding: 1.2rem 1rem; border-top: 1px solid #f1f4f6; }
.table-hover tbody tr:hover { background-color: #f8fafc; cursor: pointer; }
/* Animation fluide */
.tab-custom-content { animation: fadeIn 0.4s ease-in-out; }
@keyframes fadeIn { from { opacity: 0; transform: translateY(5px); } to { opacity: 1; transform: translateY(0); } }
/* Spécificités pour cette section Production */
#Production .bg-light-info { background-color: rgba(33, 46, 83, 0.02); }
#Production .bg-light-success { background-color: rgba(39, 174, 96, 0.02); }
#Production .table td {
padding: 1rem 0.75rem;
border-bottom: 1px solid #f1f4f6;
}
#Production .searchable-row:hover {
background-color: #f8fafc !important;
}
#Production .fs-5 { font-size: 1.1rem !important; }
</style>