267 lines
18 KiB
PHP
Executable File
267 lines
18 KiB
PHP
Executable File
<div class="page-content">
|
|
<input class="sr-only" type="text" id="idSocieteuser" name="idSocieteuser" value="<?= $this->nettoyer($societeuser['idSocieteuser']) ?>">
|
|
|
|
<div class="header-section mb-4">
|
|
<div class="d-flex flex-column flex-md-row align-items-md-center justify-content-between bg-white p-3 shadow-sm border-start border-warning border-4" style="border-radius: var(--radius-md);">
|
|
<div class="d-flex align-items-center">
|
|
<div class="icon-shape bg-warning-ghost text-warning rounded-circle me-3" style="width: 45px; height: 45px; display: flex; align-items: center; justify-content: center;">
|
|
<i class="fas fa-file-medical-alt fs-5"></i>
|
|
</div>
|
|
<div>
|
|
<h4 id="titre-page" class="mb-0 fw-bold text-uppercase"><?= _("Modifier règles métier") ?></h4>
|
|
<p class="text-muted small mb-0"><?= _("Prestations (Sinistre & Prestataires)") ?></p>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="position-relative mt-3 mt-md-0" style="min-width: 280px; flex-grow: 1; max-width: 350px;">
|
|
<i class="fas fa-search position-absolute top-50 start-0 translate-middle-y ms-3 text-muted"></i>
|
|
<input type="text" id="globalSearch" class="form-control ps-5 border-2 rounded-pill shadow-none" placeholder="<?= _('Chercher un paramètre...') ?>">
|
|
</div>
|
|
|
|
<div class="d-flex gap-2 mt-3 mt-md-0">
|
|
<button class="btn btn-outline-secondary btn-sm px-3 fw-bold" onclick="javascript:afficher_autres_parametresgeneraux();">
|
|
<i class="fas fa-undo me-2"></i><?= _("Annuler") ?>
|
|
</button>
|
|
<button class="btn btn-primary btn-sm px-3 fw-bold shadow-sm" id="btn_enreg" onclick="javascript:enregistrer_modif_parametres_sin();">
|
|
<i class="fas fa-save me-2"></i><?= _("Enregistrer") ?>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<form id="formModifSinistre">
|
|
<div class="card border-0 shadow-sm mb-4">
|
|
<div class="card-header bg-primary py-3 d-flex align-items-center justify-content-between">
|
|
<h6 class="mb-0 text-white fw-bold text-uppercase">
|
|
<i class="fas fa-hospital me-2"></i><?= _("Centres de Soins & Dentisteries") ?>
|
|
</h6>
|
|
<span class="badge bg-white text-primary rounded-pill"><?= _("14 Paramètres") ?></span>
|
|
</div>
|
|
<div class="card-body p-0">
|
|
<table class="table table-hover align-middle mb-0">
|
|
<thead class="bg-light">
|
|
<tr>
|
|
<th width="5%" class="text-center border-0 small text-muted">#</th>
|
|
<th class="border-0 small text-muted"><?= _("RÈGLE DE PRESTATION") ?></th>
|
|
<th width="15%" class="text-center border-0 small text-muted"><?= _("Valeur Actuelle") ?></th>
|
|
<th width="22%" class="text-center border-0 small text-muted"><?= _("Nouvelle Valeur") ?></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<?php
|
|
$centres_bool = [
|
|
['01', _("Limiter la recherche des praticiens au centre de soins courant."), 'filtreMedecin', $filtreMedecinOuinon, 's_filtreMedecin'],
|
|
['02', _("Activer la modification du prix de l'acte dans le centre de soins."), 'prixActeModifiable', $prixActeModifiableOuinon, 's_prixActeModifiable'],
|
|
['03', _("Autoriser la prescription malgré un blocage indiqué dans le barème de prestations."), 'permettrePrescriptionSiCritereBareme', $permettrePrescriptionOuinon, 's_permettrePrescriptionSiCritereBareme'],
|
|
['04', _("Exiger un bon principal pour tout bon de consultation gratuite."), 'autoriserUnBonPrincipal', $autoriserUnBonPrincipalOuinon, 's_autoriserUnBonPrincipal'],
|
|
['05', _("Permettre l'exécution anticipée d'un bon d'hospitalisation issu d'une proforma."), 'autoriserBonHospitAvantDate', $autoriserBonHospitAvantDateOuinon, 's_autoriserBonHospitAvantDate'],
|
|
['06', _("Bloquer les prestations en cas de prime impayée."), 'encaissementExige', $encaissementExigeOuinon, 's_encaissementExige']
|
|
];
|
|
foreach($centres_bool as $b):
|
|
$status = ($societeuser[$b[2]] == "1"); ?>
|
|
<tr class="searchable-row">
|
|
<td class="text-center"><span class="badge-ghost bg-primary-ghost"><?= $b[0] ?></span></td>
|
|
<td class="text-muted fw-bold"><?= $b[1] ?></td>
|
|
<td class="text-center bg-light text-muted fw-bold"><?= $status ? _("Oui") : _("Non") ?></td>
|
|
<td>
|
|
<select class="form-select form-select-sm fw-bold border-warning" id="<?= $b[4] ?>" name="<?= $b[4] ?>">
|
|
<?php liste_options($b[3], $this->nettoyer($societeuser[$b[2]]), true); ?>
|
|
</select>
|
|
</td>
|
|
</tr>
|
|
<?php endforeach; ?>
|
|
|
|
<?php
|
|
$centres_num = [
|
|
['07', _("Plafond de consultations spécialistes autorisées par jour."), 'nbConsultationSpecialisteJour', '','s_nbConsultationSpecialisteJour'],
|
|
['08', _("Plafond de consultations gratuites autorisées par jour."), 'nombreFeuilleGratuitJour', '', 's_nombreFeuilleGratuitJour'],
|
|
['09', _("Âge limite pour une consultation pédiatrique."), 'ageMaxiPediatrie', _('An(s)'), 's_ageMaxiPediatrie'],
|
|
['10', _("Nombre maximum de médicaments par bon de prise en charge."), 'nbMedicamentMax', '', 's_nbMedicamentMax'],
|
|
['11', _("Quantité maximale de boîtes par médicament sur bon de prise en charge."), 'quantiteMedicamentPermise', '', 's_quantiteMedicamentPermise'],
|
|
['12', _("Nombre maximum d'échecs biométriques déclenchant une alerte."), 'nbTentativeBiometrie', '', 's_nbTentativeBiometrie']
|
|
];
|
|
foreach($centres_num as $c): ?>
|
|
<tr class="searchable-row">
|
|
<td class="text-center"><span class="badge-ghost bg-primary-ghost"><?= $c[0] ?></span></td>
|
|
<td class="text-muted fw-bold"><?= $c[1] ?></td>
|
|
<td class="text-center bg-light text-muted fw-bold"><?= format_N($this->nettoyer($societeuser[$c[2]])) ?> <?= $c[3] ?></td>
|
|
<td>
|
|
<div class="input-group input-group-sm">
|
|
<input class="form-control text-center fw-bold border-warning" id="<?= $c[4] ?>" name="<?= $c[4] ?>" type="text" value="<?= $this->nettoyer($societeuser[$c[2]]) ?>" onBlur="javascript:controle_numerique_new(this.id, <?= $this->nettoyer($societeuser[$c[2]]) ?>);">
|
|
<?php if($c[3]!=''):?>
|
|
<span class="input-group-text bg-white border-warning"><?= $c[3] ?></span>
|
|
<?php endif;?>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
<?php endforeach; ?>
|
|
|
|
<tr class="searchable-row">
|
|
<td class="text-center"><span class="badge-ghost bg-primary-ghost">13</span></td>
|
|
<td class="text-muted fw-bold"><?= _("Mode de biométrie utilisé pour l'authentification des assurés.") ?></td>
|
|
<td class="text-center bg-light text-muted fw-bold">
|
|
<?= est_anglophone() ? $this->nettoyer($societeuser['biometrieEng']) : $this->nettoyer($societeuser['biometrie']) ?>
|
|
</td>
|
|
<td>
|
|
<select class="form-select form-select-sm fw-bold border-warning" id="s_codeModeBiometrie" name="s_codeModeBiometrie">
|
|
<?php liste_options($modeBiometrie, $this->nettoyer($societeuser['codeModeBiometrie']), true); ?>
|
|
</select>
|
|
</td>
|
|
</tr>
|
|
<tr class="searchable-row">
|
|
<td class="text-center"><span class="badge-ghost bg-primary-ghost">14</span></td>
|
|
<td class="text-muted fw-bold"><?= _("Intitulé de l'acte de consultation gratuite.") ?></td>
|
|
<td class="text-center bg-light text-muted fw-bold">
|
|
<?= est_anglophone() ? $this->nettoyer($societeuser['acteConsultationGratuiteEng']) : $this->nettoyer($societeuser['acteConsultationGratuite']) ?>
|
|
</td>
|
|
<td>
|
|
<select class="form-select form-select-sm fw-bold border-warning" id="s_codeActeConsultationGratuite" name="s_codeActeConsultationGratuite">
|
|
<?php liste_options($acteConsultationGratuite, $this->nettoyer($societeuser['codeActeConsultationGratuite']), true); ?>
|
|
</select>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="card border-0 shadow-sm mb-5">
|
|
<div class="card-header bg-success py-3 d-flex align-items-center justify-content-between">
|
|
<h6 class="mb-0 text-white fw-bold text-uppercase">
|
|
<i class="fas fa-pills me-2"></i><?= _("Gestion des Pharmacies") ?>
|
|
</h6>
|
|
<span class="badge bg-white text-primary rounded-pill"><?= _("09 Paramètres") ?></span>
|
|
</div>
|
|
<div class="card-body p-0">
|
|
<table class="table table-hover align-middle mb-0">
|
|
<tbody>
|
|
<?php
|
|
$pharm_bool = [
|
|
['01', _("Activer la création de médicaments par les pharmaciens, sous réserve d'entente préalable."), 'accesAjoutPh', $accesAjoutPhOuinon, 's_accesAjoutPh'],
|
|
['02', _("Autoriser le pharmacien à compléter la prescription du médecin."), 'ajoutPrescription', $ajoutPrescriptionOuinon, 's_ajoutPrescription'],
|
|
['03', _("Activer la tolérance de marge entre prix système et prix pharmacie."), 'appliquerMargePrixMedicament', $appliquerMargePrixMedicamentOuinon, 's_appliquerMargePrixMedicament'],
|
|
['04', _("Activer la tolérance de marge pharmacie sur les médicaments de substitution."), 'appliquerMargePrixSubstitutMedicament', $appliquerMargePrixSubstitutMedicamentOuinon, 's_appliquerMargePrixSubstitutMedicament'],
|
|
['05', _("Interdire la délivrance partielle d'un médicament en pharmacie."), 'interdirVentePartielleMedicament', $interdirVentePartielleMedicamentOuinon, 's_interdirVentePartielleMedicament'],
|
|
['06', _("Activer la modification du prix médicament par le pharmacien."), 'prixMedicamentModifiable', $prixMedicamentModifiableOuinon, 's_prixMedicamentModifiable']
|
|
];
|
|
foreach($pharm_bool as $pb):
|
|
$status = ($societeuser[$pb[2]] == "1"); ?>
|
|
<tr class="searchable-row">
|
|
<td width="8%" class="text-center"><span class="badge-ghost bg-success-ghost"><?= $pb[0] ?></span></td>
|
|
<td class="text-muted fw-bold"><?= $pb[1] ?></td>
|
|
<td class="text-center bg-light text-muted fw-bold"><?= $status ? _("Oui") : _("Non") ?></td>
|
|
<td>
|
|
<select class="form-select form-select-sm fw-bold border-warning" id="<?= $pb[4] ?>" name="<?= $pb[4] ?>">
|
|
<?php liste_options($pb[3], $this->nettoyer($societeuser[$pb[2]]), true); ?>
|
|
</select>
|
|
</td>
|
|
</tr>
|
|
<?php endforeach; ?>
|
|
|
|
<tr class="searchable-row">
|
|
<td class="text-center"><span class="badge-ghost bg-success-ghost">07</span></td>
|
|
<td class="text-muted fw-bold"><?= _("Mode d'application de la marge pharmacie/système (% ou forfait).") ?></td>
|
|
<td class="text-center bg-light text-muted fw-bold"><?= $this->nettoyer($societeuser['typeMargePrixMedicament']) ?></td>
|
|
<td>
|
|
<select class="form-select form-select-sm fw-bold border-warning" id="s_typeMargePrixMedicament" name="s_typeMargePrixMedicament">
|
|
<?php liste_options($typeMarge, $this->nettoyer($societeuser['typeMargePrixMedicament']), true); ?>
|
|
</select>
|
|
</td>
|
|
</tr>
|
|
<tr class="searchable-row">
|
|
<td class="text-center"><span class="badge-ghost bg-success-ghost">08</span></td>
|
|
<td class="text-muted fw-bold"><?= _("Marge autorisée entre prix système et prix pratiqué en pharmacie.") ?></td>
|
|
<td class="text-center bg-light text-muted fw-bold">
|
|
<?= format_N($this->nettoyer($societeuser['margePrixMedicament'])) ?>
|
|
<?= ($societeuser['typeMargePrixMedicament'] == "Forfait") ? $_SESSION['devise_C'] : "%" ?>
|
|
</td>
|
|
<td>
|
|
<div class="input-group input-group-sm">
|
|
<input class="form-control text-center fw-bold border-warning" id="s_margePrixMedicament" name="s_margePrixMedicament" type="text" value="<?= $this->nettoyer($societeuser['margePrixMedicament']) ?>" onBlur="javascript:controle_numerique_new(this.id, <?= $this->nettoyer($societeuser['margePrixMedicament']) ?>);">
|
|
<span class="input-group-text bg-white border-warning"><?= ($societeuser['typeMargePrixMedicament'] == "Forfait") ? $_SESSION['devise_C'] : "%" ?></span>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
<tr class="searchable-row">
|
|
<td class="text-center"><span class="badge-ghost bg-success-ghost">09</span></td>
|
|
<td class="text-muted fw-bold"><?= _("Marge autorisée entre prix de référence et prix pharmacie sur les substitutions.") ?></td>
|
|
<td class="text-center bg-light text-muted fw-bold">
|
|
<?= format_N($this->nettoyer($societeuser['margePrixSubstitutMedicament'])) ?>
|
|
<?= ($societeuser['typeMargePrixMedicament'] == "Forfait") ? $_SESSION['devise_C'] : "%" ?>
|
|
</td>
|
|
<td>
|
|
<div class="input-group input-group-sm">
|
|
<input class="form-control text-center fw-bold border-warning" id="s_margePrixSubstitutMedicament" name="s_margePrixSubstitutMedicament" type="text" value="<?= $this->nettoyer($societeuser['margePrixSubstitutMedicament']) ?>" onBlur="javascript:controle_numerique_new(this.id, <?= $this->nettoyer($societeuser['margePrixSubstitutMedicament']) ?>);">
|
|
<span class="input-group-text bg-white border-warning"><?= ($societeuser['typeMargePrixMedicament'] == "Forfait") ? $_SESSION['devise_C'] : "%" ?></span>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="card border-0 shadow-sm mb-4">
|
|
<div class="card-header bg-danger py-3 d-flex align-items-center justify-content-between">
|
|
<h6 class="mb-0 text-white fw-bold text-uppercase">
|
|
<i class="fas fa-microscope me-2"></i><?= _("Laboratoires & Imageries") ?>
|
|
</h6>
|
|
<span class="badge bg-white text-primary rounded-pill"><?= _("01 Paramètre") ?></span>
|
|
</div>
|
|
<div class="card-body p-0">
|
|
<table class="table table-hover align-middle mb-0">
|
|
<tr class="searchable-row">
|
|
<td class="text-center"><span class="badge-ghost bg-danger-ghost">01</span></td>
|
|
<td class="text-muted fw-bold"><?= _("Permettre aux laboratoires de compléter une prescription médicale.") ?></td>
|
|
<td class="text-center bg-light text-muted fw-bold">
|
|
<?php $labo = ($societeuser['ajoutPrescriptionExam'] == "1"); ?>
|
|
<span class="badge-ghost <?= $labo ? 'bg-success-ghost' : 'bg-danger-ghost' ?>">
|
|
<?= $labo ? _("OUI") : _("NON") ?>
|
|
</span>
|
|
</td>
|
|
<td>
|
|
<select class="form-select form-select-sm fw-bold border-warning" id="s_ajoutPrescriptionExam" name="s_ajoutPrescriptionExam">
|
|
<?php liste_options($ajoutPrescriptionExamOuinon, $this->nettoyer($societeuser['ajoutPrescriptionExam']), true); ?>
|
|
</select>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
|
|
<script>
|
|
// RECHERCHE RAPIDE EN JAVASCRIPT PUR
|
|
document.addEventListener("DOMContentLoaded", function() {
|
|
const searchInput = document.getElementById('globalSearch');
|
|
if (searchInput) {
|
|
searchInput.addEventListener('keyup', function() {
|
|
const filter = this.value.toLowerCase();
|
|
const rows = document.querySelectorAll('.searchable-row');
|
|
rows.forEach(row => {
|
|
const text = row.textContent.toLowerCase();
|
|
row.style.display = text.includes(filter) ? "" : "none";
|
|
});
|
|
});
|
|
}
|
|
});
|
|
</script>
|
|
|
|
<style>
|
|
/* Ajustements spécifiques pour le mode sticky et édition */
|
|
.header-section {
|
|
position: sticky;
|
|
top: 0;
|
|
z-index: 1050;
|
|
background: rgba(244, 247, 250, 0.9);
|
|
backdrop-filter: blur(10px);
|
|
padding: 10px 0;
|
|
}
|
|
.form-control:focus, .form-select:focus {
|
|
border-color: #f39c12 !important;
|
|
box-shadow: 0 0 0 0.2rem rgba(243, 156, 18, 0.1) !important;
|
|
}
|
|
.table td { border-bottom: 1px solid #f1f4f6 !important; }
|
|
</style>
|