newdesigngestionnaire/Vue/Modifautresparametresprod/index.php
2026-03-15 12:15:56 +00:00

218 lines
16 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">
<div class="d-flex flex-column flex-md-row align-items-md-center justify-content-between bg-white p-3 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-edit 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"><?= _("Production & Comptabilité") ?></p>
</div>
</div>
<div class="position-relative mx-md-3 mt-3 mt-md-0" style="min-width: 250px; flex-grow: 1; max-width: 400px;">
<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="<?= _('Filtrer les paramètres...') ?>">
</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-warning btn-sm px-3 fw-bold shadow-sm" id="btn_enreg" onclick="javascript:enregistrer_modif_parametres_prod();">
<i class="fas fa-save me-2"></i><?= _("Enregistrer") ?>
</button>
</div>
</div>
</div>
<form id="formModifProd">
<div class="card border-0 shadow-sm mb-1">
<div class="card-header py-3 d-flex align-items-center justify-content-between">
<h6 class="mb-0 text-primary fw-bold text-uppercase"><i class="fas fa-industry me-2"></i><?= _("Règles de Production") ?></h6>
<span class="badge bg-primary text-light rounded-pill"><?= _("13 Paramètres") ?></span>
</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="5%" class="text-center border-0 small text-muted">#</th>
<th class="border-0 small text-muted"><?= _("Désignation du paramètre") ?></th>
<th width="18%" class="text-center border-0 small text-muted"><?= _("Ancienne Valeur") ?></th>
<th width="22%" class="text-center border-0 small text-muted"><?= _("Nouvelle Valeur") ?></th>
</tr>
</thead>
<tbody>
<tr class="searchable-row">
<td class="text-center"><span class="badge-ghost bg-primary-ghost">01</span></td>
<td class="text-muted fw-bold"><?= _("Quote-part du centre de gestion par prime encaissée.") ?></td>
<td class="text-center bg-light text-muted fw-bold"><?= $this->nettoyer($societeuser['tauxHonoraires']) ?> %</td>
<td>
<div class="input-group input-group-sm">
<input class="form-control text-center fw-bold border-warning" id="tauxHonoraires" name="tauxHonoraires" type="text" value="<?= $this->nettoyer($societeuser['tauxHonoraires']) ?>" onBlur="javascript:controle_numerique_new(this.id, <?= $this->nettoyer($societeuser['tauxHonoraires']) ?>);">
<span class="input-group-text bg-white border-warning">%</span>
</div>
</td>
</tr>
<tr class="searchable-row">
<td class="text-center"><span class="badge-ghost bg-primary-ghost">02</span></td>
<td class="text-muted fw-bold small"><?= _("Seuil maximum du ratio S/P (spMax) appliqué au taux d'ajustement.") ?></td>
<td class="text-center bg-light text-muted fw-bold"><?= $this->nettoyer($societeuser['spMax']) ?> %</td>
<td>
<div class="input-group input-group-sm">
<input class="form-control text-center fw-bold border-warning" id="spMax" name="spMax" type="text" value="<?= $this->nettoyer($societeuser['spMax']) ?>" onBlur="javascript:controle_numerique_new(this.id, <?= $this->nettoyer($societeuser['spMax']) ?>);">
<span class="input-group-text bg-white border-warning">%</span>
</div>
</td>
</tr>
<?php
$cartes = [
['03', _("Frais d'émission de carte pour un nouvel assuré."), 'fraisCarteAN'],
['04', _("Frais de carte au renouvellement."), 'fraisCarteREN'],
['05', _("Frais de duplicata de carte (perte ou dommage)."), 'fraisCarteImp']
];
foreach($cartes 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]])) ?> <?= $_SESSION['devise_C'] ?></td>
<td>
<div class="input-group input-group-sm">
<input class="form-control text-center fw-bold border-warning" id="<?= $c[2] ?>" name="<?= $c[2] ?>" type="text" value="<?= $this->nettoyer($societeuser[$c[2]]) ?>" onBlur="javascript:controle_numerique_new(this.id, <?= $this->nettoyer($societeuser[$c[2]]) ?>);">
<span class="input-group-text bg-white border-warning"><?= $_SESSION['devise_C'] ?></span>
</div>
</td>
</tr>
<?php endforeach; ?>
<tr class="searchable-row">
<td class="text-center"><span class="badge-ghost bg-primary-ghost">06</span></td>
<td class="text-muted fw-bold small"><?= _("Ratio S/P marquant une famille en surconsommation.") ?></td>
<td class="text-center bg-light text-muted fw-bold"><?= $this->nettoyer($societeuser['spAlertAdherent']) ?> %</td>
<td>
<div class="input-group input-group-sm">
<input class="form-control text-center fw-bold border-warning" id="spAlertAdherent" name="spAlertAdherent" type="text" value="<?= $this->nettoyer($societeuser['spAlertAdherent']) ?>" onBlur="javascript:controle_numerique_new(this.id, <?= $this->nettoyer($societeuser['spAlertAdherent']) ?>);">
<span class="input-group-text bg-white border-warning">%</span>
</div>
</td>
</tr>
<tr class="searchable-row">
<td class="text-center"><span class="badge-ghost bg-primary-ghost">07</span></td>
<td class="text-muted fw-bold small"><?= _("Taux appliqué à la prime non acquise lors d'un retrait.") ?></td>
<td class="text-center bg-light text-muted fw-bold"><?= $this->nettoyer($societeuser['tauxRistourne']) ?> %</td>
<td>
<div class="input-group input-group-sm">
<input class="form-control text-center fw-bold border-warning" id="tauxRistourne" name="tauxRistourne" type="text" value="<?= $this->nettoyer($societeuser['tauxRistourne']) ?>" onBlur="javascript:controle_numerique_new(this.id, <?= $this->nettoyer($societeuser['tauxRistourne']) ?>);">
<span class="input-group-text bg-white border-warning">%</span>
</div>
</td>
</tr>
<tr class="searchable-row">
<td class="text-center"><span class="badge-ghost bg-primary-ghost">08</span></td>
<td class="text-muted fw-bold small"><?= _("Seuil S/P annulant la ristourne au retrait de l'assuré.") ?></td>
<td class="text-center bg-light text-muted fw-bold"><?= $this->nettoyer($societeuser['seuilRistourne']) ?> %</td>
<td>
<div class="input-group input-group-sm">
<input class="form-control text-center fw-bold border-warning" id="seuilRistourne" name="seuilRistourne" type="text" value="<?= $this->nettoyer($societeuser['seuilRistourne']) ?>" onBlur="javascript:controle_numerique_new(this.id, <?= $this->nettoyer($societeuser['seuilRistourne']) ?>);">
<span class="input-group-text bg-white border-warning">%</span>
</div>
</td>
</tr>
<?php
$selects = [
['09', _("Archiver automatiquement les primes à l'incorporation."), 'archivageAutomatiquePrime', $archiveautoouinon],
['10', _("Notifier l'assuré de son numéro de carte."), 'notificationSmsNumeroAssure', $notificationSmsNumeroAssureouinon],
['11', _("Notifier l'assuré principal des numéros de carte de sa famille."), 'notificationGroupeNumeroAssure', $notificationGroupeNumeroAssureouinon],
['12', _("Activer la facturation par produit pour garant."), 'parametresFacturationGarantProduit', $parametresFacturationGarantProduitouinon],
['13', _("Autoriser l'upload de photo sur le portail assuré."), 'assureAjoutPhoto', $assureAjoutPhotoOuinon]
];
foreach($selects as $s): ?>
<tr class="searchable-row">
<td class="text-center"><span class="badge-ghost bg-primary-ghost"><?= $s[0] ?></span></td>
<td class="text-muted fw-bold"><?= $s[1] ?></td>
<td class="text-center bg-light text-muted fw-bold"><?= ($societeuser[$s[2]] == "1") ? _("Oui") : _("Non") ?></td>
<td>
<select class="form-select form-select-sm fw-bold border-warning" id="<?= $s[2] ?>" name="<?= $s[2] ?>">
<?php liste_options($s[3], $this->nettoyer($societeuser[$s[2]]), true); ?>
</select>
</td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
</div>
</div>
</div>
<div class="card border-0 shadow-sm mb-5">
<div class="card-header py-3 d-flex align-items-center justify-content-between">
<h6 class="mb-0 text-success fw-bold text-uppercase"><i class="fas fa-calculator me-2"></i><?= _("Règles Comptables") ?></h6>
<span class="badge bg-success text-light rounded-pill"><?= _("02 Paramètres") ?></span>
</div>
<div class="card-body p-0">
<table class="table table-hover align-middle mb-0">
<tbody>
<tr class="searchable-row">
<td width="5%" class="text-center"><span class="badge-ghost bg-success-ghost">01</span></td>
<td class="text-muted fw-bold"><?= _("Tolérance d'écart à l'encaissement des primes garants.") ?></td>
<td width="18%" class="text-center bg-light text-muted fw-bold"><?= format_N($this->nettoyer($societeuser['EcartEncaissementTolerable'])) ?> <?= $_SESSION['devise_C'] ?></td>
<td width="22%">
<div class="input-group input-group-sm">
<input class="form-control text-center fw-bold border-warning" id="ecartEncaissementTolerable" name="ecartEncaissementTolerable" type="text" value="<?= $this->nettoyer($societeuser['EcartEncaissementTolerable']) ?>" onBlur="javascript:controle_numerique_new(this.id, <?= $this->nettoyer($societeuser['EcartEncaissementTolerable']) ?>);">
<span class="input-group-text bg-white border-warning"><?= $_SESSION['devise_C'] ?></span>
</div>
</td>
</tr>
<tr class="searchable-row">
<td class="text-center"><span class="badge-ghost bg-success-ghost">02</span></td>
<td class="text-muted fw-bold"><?= _("Activer le lettrage automatique des primes garants.") ?></td>
<td class="text-center bg-light text-muted fw-bold"><?= ($societeuser['lettrageAutoGarant'] == "1") ? _("Oui") : _("Non") ?></td>
<td>
<select class="form-select form-select-sm fw-bold border-warning" id="lettrageAutoGarant" name="lettrageAutoGarant">
<?php liste_options($lettrageAutoGarantouinon, $this->nettoyer($societeuser['lettrageAutoGarant']), true); ?>
</select>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</form>
</div>
<script>
// RECHERCHE RAPIDE EN JAVASCRIPT PUR (SANS JQUERY)
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();
// Si le texte correspond, on affiche la ligne, sinon on la cache
row.style.display = text.includes(filter) ? "" : "none";
});
});
}
});
</script>
<style>
/* Style spécifique Mode Édition */
#globalSearch:focus { border-color: #f39c12; box-shadow: 0 0 0 0.2rem rgba(243, 156, 18, 0.15); }
.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; padding-top: 0.8rem; padding-bottom: 0.8rem; }
</style>