This commit is contained in:
KONE SOREL 2026-04-09 08:28:23 +00:00
parent a140867252
commit 48f392f01a
3 changed files with 195 additions and 0 deletions

View File

@ -0,0 +1,82 @@
<?php
require_once 'Framework/Controleur.php';
require_once 'Modele/Garantiesbaremepriseencharge.php';
class ControleurAjaxbaremelettrecle extends Controleur {
private $garantie;
public function __construct()
{
$this->garantie = new Garantiesbaremepriseencharge();
}
public function index()
{
$idBaremePriseEnCharge = $_SESSION['idBaremePriseEnCharge'];
$actes = $this->garantie->getActesGarantieBaremeInitialLettreCle($idBaremePriseEnCharge);
$this->genererVueAjax(array
(
'actes' => $actes
));
}
public function ajouter()
{
$idBaremePriseEnCharge = $this->requete->getParametreFormulaire("idBaremePriseEnCharge");
$lettreCle = $this->requete->getParametreFormulaire("lettreCle");
$dateEffetActe = $this->requete->getParametreDate("dateEffetActe");
$forfaitPlafondActe = $this->requete->getParametreFormulaire("forfaitPlafondActe");
$ticketModerateurActe = $this->requete->getParametreFormulaire("ticketModerateurActe");
$this->garantie->insererActeBaremeInitialLettreCle($idBaremePriseEnCharge, $lettreCle, $dateEffetActe, $forfaitPlafondActe, $ticketModerateurActe);
}
public function controle()
{
$idBaremePriseEnCharge = $this->requete->getParametreFormulaire("idBaremePriseEnCharge");
$lettreCle = $this->requete->getParametreFormulaire("lettreCle");
$maxDateEffetActeBareme = $this->garantie->getMaxDateEffetBaremeInitialLette($idBaremePriseEnCharge, $lettreCle);
$this->genererVueAjax(array
(
'maxDateEffetActeBareme' => $maxDateEffetActeBareme
));
}
public function supprimer()
{
$idActe = $this->requete->getParametreFormulaire("idActe");
$this->garantie->supprimerActeBaremeInitialLettreCle($idActe);
}
public function detailactes()
{
$idActesbaremeinitiallettrecle = $this->requete->getParametreFormulaire("idActesbaremeinitiallettrecle");
$lettreCle = $this->requete->getParametreFormulaire("lettreCle");
$_SESSION['idActesbaremeinitiallettrecle'] = $idActesbaremeinitiallettrecle;
$_SESSION['lettreCle'] = $lettreCle;
$detailactes = $this->garantie->getActesGarantieBaremeInitialLettreCleDetailacte($idActesbaremeinitiallettrecle);
$this->genererVueAjax(array
(
'detailactes' => $detailactes
));
}
public function supprimerdetailacte()
{
$idActe = $this->requete->getParametreFormulaire("idActe");
$this->garantie->supprimerActeBaremeInitial($idActe);
}
}

View File

@ -1723,4 +1723,31 @@ class Garantiesbaremepriseencharge extends Modele {
return $resultat->fetchAll(PDO::FETCH_ASSOC);
}
public function insererActeBaremeInitialLettreCle($idBaremePriseEnCharge, $lettreCle, $dateEffetActe, $forfaitPlafondActe, $ticketModerateurActe)
{
$user = $_SESSION['login'];
$sql = 'CALL sp_ajouteractebaremepriseencharge_initial_lettrecle(?, ?, ?, ?, ?, ?);';
$this->executerRequete($sql, array($idBaremePriseEnCharge, $lettreCle, $dateEffetActe, $forfaitPlafondActe, $ticketModerateurActe, $user));
}
public function supprimerActeBaremeInitialLettreCle($idActe)
{
$user = $_SESSION['login'];
$sql = 'CALL sp_supprimeractebareme_initial_lettre_cle(?, ?);';
$this->executerRequete($sql, array($idActe, $user));
}
public function getActesGarantieBaremeInitialLettreCleDetailacte($idActesbaremeinitiallettrecle)
{
$sql = "call sp_afficher_lettre_cle_bareme_detail_actes(?);";
$resultat = $this->executerRequete($sql, array($idActesbaremeinitiallettrecle));
return $resultat->fetchAll(PDO::FETCH_ASSOC);
}
}

View File

@ -0,0 +1,86 @@
<?php
$adminProd = $_SESSION['adminProd'];
?>
<?php if(count($actes) > 0): ?>
<div class="table-responsive shadow-sm rounded border overflow-hidden">
<table class="table table-sm table-hover align-middle mb-0" style="font-size: 0.85rem;">
<thead class="table-light border-bottom">
<tr class="text-center text-uppercase small fw-bold text-muted">
<th class="py-3 border-end" style="width: 80px;"><?= _("Détail") ?></th>
<th class="border-end"><?= _("Lettre") ?></th>
<th class="text-start ps-3 border-end"><?= _("Désignation") ?></th>
<th class="border-end"><?= _("Effet") ?></th>
<th class="border-end"><?= _("Plafond") ?></th>
<th class="border-end"><?= _("TM (%)") ?></th>
<th class="border-end"><?= _("Nb Actes") ?></th>
<th><?= _("Statut") ?></th>
<th class="bg-white border-start"><?= _("Actions") ?></th>
</tr>
</thead>
<tbody>
<?php foreach ($actes as $v):
$idActe = $this->nettoyer($v['id']);
$supprime = $v['supprime'];
$lettreCle = $this->nettoyer($v['lettreCle']);
$libelle = est_anglophone() ? $this->nettoyer($v['descriptionEng']) : $this->nettoyer($v['description']);
$isActif = ($this->nettoyer($v['actif']) == "1");
?>
<tr class="text-center <?= ($supprime == '1') ? 'table-danger opacity-50' : ''; ?>">
<td class="border-end p-2">
<button type="button" class="btn btn-outline-info btn-xs fw-bold px-2 py-1 shadow-sm"
style="font-size: 0.75rem;"
onClick="javascript:detail_baremeacte_lettre_cle(<?= $idActe ?>, '<?= $lettreCle?>');">
<i class="fas fa-search-plus me-1"></i><?= $idActe ?>
</button>
</td>
<td class="fw-bold border-end"><?= $lettreCle ?></td>
<td class="text-start ps-3 border-end text-truncate" style="max-width: 250px;"><?= $libelle ?></td>
<td class="text-nowrap border-end"><?= datefr($this->nettoyer($v['dateEffet'])); ?></td>
<td class="fw-bold text-primary border-end"><?= format_N($this->nettoyer($v['forfaitPlafond']));?></td>
<td class="text-danger border-end fw-bold"><?= $this->nettoyer($v['ticketModerateur']);?>%</td>
<td class="border-end"><?= format_N($this->nettoyer($v['nbActes']));?></td>
<td>
<span class="badge rounded-pill <?= $isActif ? 'bg-success' : 'bg-secondary' ?> px-2" style="font-size: 0.7rem;">
<?= $isActif ? _("Actif") : _("Inactif") ?>
</span>
</td>
<td class="bg-white border-start px-2">
<?php if($supprime == '0'): ?>
<button type="button" class="btn btn-sm btn-outline-danger border-0"
onClick="javascript:supprimer_baremeacte_lettre_cle('<?= $adminProd?>', <?= $idActe ?>);"
title="<?= _("Supprimer") ?>">
<i class="fas fa-trash-alt"></i>
</button>
<?php else: ?>
<span class="text-muted small italic"><?= _("Supprimé") ?></span>
<?php endif; ?>
</td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
</div>
<?php else: ?>
<div class="alert alert-warning border-dashed text-center p-4 m-2 rounded shadow-sm">
<i class="fas fa-file-invoice-dollar fa-2x mb-2 opacity-25"></i>
<p class="mb-0 fw-bold"><?= _("Aucune lettre clé paramétrée pour ce barème.") ?></p>
</div>
<?php endif; ?>
<div class="modal fade" id="div_detail_bareme_actes" tabindex="-1" role="dialog" data-bs-backdrop="static" data-bs-keyboard="false" aria-hidden="true">
</div>
<style>
.btn-xs { padding: 0.125rem 0.25rem; font-size: 0.75rem; border-radius: 0.15rem; }
.table-hover tbody tr:hover { background-color: rgba(13, 110, 253, 0.05) !important; }
.opacity-50 { text-decoration: line-through rgba(220, 53, 69, 0.4); }
.border-dashed { border: 2px dashed #dee2e6 !important; background: transparent; }
.text-truncate { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
</style>