Assurance individuelle

This commit is contained in:
KONE SOREL 2025-12-30 08:04:49 +00:00
parent 2a2a42acfe
commit 1f44b95584
6 changed files with 220 additions and 2 deletions

View File

@ -1268,3 +1268,56 @@ li i { margin-right:10px; color:#007bff; }
font-weight: 600;
padding: 5px 10px;
}
/* Style Recherche Individuelle */
#div_familiale .form-select,
#div_familiale .form-control {
border: 1px solid var(--office-border);
transition: all 0.2s ease;
border-radius: 4px;
}
#div_familiale .form-select:focus,
#div_familiale .form-control:focus {
border-color: var(--office-secondary);
box-shadow: 0 0 0 0.25rem rgba(43, 87, 154, 0.1);
}
/* Groupement d'input avec icônes */
.input-group-text {
border: 1px solid var(--office-border);
color: #adb5bd;
}
/* Boutons personnalisés */
#div_familiale .btn-primary {
background-color: var(--office-secondary) !important;
border: none;
border-radius: 4px;
}
#div_familiale .btn-primary:hover {
background-color: #1a3a6b !important;
transform: translateY(-1px);
}
#div_familiale .btn-outline-secondary {
color: var(--office-secondary);
border-color: var(--office-secondary);
border-radius: 4px;
}
#div_familiale .btn-outline-secondary:hover {
background-color: var(--office-secondary);
color: white;
}
/* Badge spécifique Primes non facturées */
.badge.bg-warning {
background-color: #fff3cd !important;
color: #856404 !important;
border: 1px solid #ffeeba !important;
font-size: 0.9rem;
padding: 8px 12px;
}

View File

@ -0,0 +1,31 @@
<?php
require_once 'Framework/Controleur.php';
require_once 'Modele/Menuvueutilisateur.php';
require_once 'Modele/Typeapporteur.php';
require_once 'Modele/Police.php';
class ControleurAssuranceindividuelle extends Controleur
{
private $typeapporteur;
private $police;
public function __construct() {
$this->menuvue = new Menuvueutilisateur();
$this->menuvue->getMenuVue('Assuranceindividuelle');
$this->typeapporteur = new Typeapporteur();
$this->police = new Police();
}
public function index()
{
$idPolice = $_SESSION['idPolice_C'];
$typeapporteurs = $this->typeapporteur->getTypeapporteursCommercial();
$nb_non_facturees = $this->police->fn_primes_non_facturees_police($idPolice);
$this->genererVue(array('typeapporteurs' => $typeapporteurs, 'nb_non_facturees' => $nb_non_facturees));
}
}

View File

@ -666,3 +666,19 @@ function college_police()
window.location.assign($("#racineWeb" ).val()+"Collegepolice/");
}
}
function assurance_familiale()
{
codeTypeContrat = $("#codeTypeContrat_C").val();
if (codeTypeContrat!="F")
{
v_msg="Ce n\'est pas une police FAMILIALE!";
v_msgEng="This is not a FAMILIY policy!";
alert_ebene(v_msg, v_msgEng);
return;
}
window.location.assign($("#racineWeb" ).val()+"Assuranceindividuelle/");
}

21
Modele/Typeapporteur.php Normal file
View File

@ -0,0 +1,21 @@
<?php
require_once 'Framework/Modele.php';
class Typeapporteur extends Modele
{
public function getTypeapporteursCommercial()
{
/* modif du 15/11/2020
$sql = 'SELECT codeTypeApporteur as `code`, libelle FROM typeapporteur A
WHERE (A.codeSociete=? AND codeTypeApporteur not in ("AS", "VD") ) order by libelle';
*/
$sql = 'SELECT codeTypeApporteur as `code`, libelle FROM typeapporteur A
WHERE (A.codeSociete=? AND codeTypeApporteur != "AS" ) order by libelle';
$resultat = $this->executerRequete($sql, array($_SESSION['codeSociete']));
return $resultat->fetchAll(PDO::FETCH_ASSOC);
}
}

View File

@ -0,0 +1,97 @@
<?php
$this->titre = "INTER-SANTE - ASSURANCE MALADIE INDIVIDUELLE";
?>
<div id="div_familiale" class="container-fluid py-4 animate__animated animate__fadeIn">
<div class="d-flex align-items-center mb-4">
<div class="bg-office-primary p-3 rounded-circle text-white shadow-sm me-3">
<i class="fas fa-user-shield fa-lg"></i>
</div>
<div>
<h4 class="fw-bold mb-0 text-dark"><?= _("ASSURANCE MALADIE INDIVIDUELLE") ?></h4>
<span class="badge bg-warning text-dark border shadow-sm">
<i class="fas fa-exclamation-triangle me-1"></i>
<?= _("Primes non facturées") ?> : <strong><?= format_N($nb_non_facturees) ?></strong>
</span>
</div>
</div>
<div class="card shadow-sm border-0 mb-4" id="div_entete_apporteur" onkeypress="javascript:ctrlkeypress_rechercher_commercail_type_familiale(event);">
<div class="card-header bg-light py-3 border-bottom-0">
<h6 class="mb-0 fw-bold text-secondary text-uppercase small">
<i class="fas fa-search me-2"></i><?= _("Filtres de recherche") ?>
</h6>
</div>
<div class="card-body p-4">
<div class="row g-4 align-items-end">
<div class="col-md-4">
<label for="codeTypeApporteur" class="form-label fw-bold small text-primary"><?= _("Type d'apporteur") ?></label>
<div class="input-group">
<span class="input-group-text bg-white"><i class="fas fa-filter text-muted"></i></span>
<select class="form-select border-start-0" id="codeTypeApporteur" name="codeTypeApporteur" autofocus>
<?php liste_options_consultation($typeapporteurs, ""); ?>
</select>
</div>
</div>
<div class="col-md-4">
<label for="libelleApporteur" class="form-label fw-bold small text-primary"><?= _("Nom du Commercial") ?></label>
<div class="input-group">
<span class="input-group-text bg-white"><i class="fas fa-user text-muted"></i></span>
<input type="text" class="form-control border-start-0" id="libelleApporteur" name="libelleApporteur" placeholder="<?= _("Saisissez un nom...") ?>">
</div>
</div>
<div class="col-md-4">
<div class="row g-2">
<div class="col-6">
<button type="button" class="btn btn-primary w-100 shadow-sm fw-bold py-2" onClick="javascript:rechercher_commercail_type_familiale();">
<i class="fas fa-search me-2"></i><?= _("Filtrer") ?>
</button>
</div>
<div class="col-6">
<button type="button" class="btn btn-outline-secondary w-100 shadow-sm fw-bold py-2" onClick="javascript:rechercher_commercail_type_familiale_tous();">
<i class="fas fa-globe me-2"></i><?= _("Tous") ?>
</button>
</div>
</div>
</div>
</div>
</div>
</div>
<div id="div_detail_apporteur" class="mt-4">
<div class="d-flex align-items-center mb-3 border-bottom pb-2">
<i class="fas fa-list me-2 text-secondary"></i>
<h5 class="mb-0 fw-bold text-secondary text-uppercase small"><?= _("Liste des Commerciaux") ?></h5>
</div>
<div class="text-center py-5 text-muted">
<i class="fas fa-info-circle me-1"></i> <?= _("Utilisez les filtres ci-dessus pour afficher les commerciaux.") ?>
</div>
</div>
</div>
<button class="sr-only" id="btn_exporter" name="btn_exporter" type="button" data-toggle="modal" data-target="#pop_exporter"></button>
<div class="modal fade" id="pop_exporter" tabindex="-1" role="dialog" aria-hidden="true">
<div class="modal-dialog modal-lg modal-dialog-centered">
<div class="modal-content border-0 shadow-lg">
<div class="modal-header bg-office-blue text-white">
<h5 class="modal-title">
<i class="fas fa-file-export me-2"></i><?= _("Exportation des données") ?>
</h5>
<button type="button" class="btn-close btn-close-white" data-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body p-0">
<div id="div_export_apporteur" class="p-4">
</div>
</div>
<div class="modal-footer bg-light">
<button type="button" class="btn btn-secondary shadow-sm" data-dismiss="modal">
<i class="fas fa-times me-2"></i><?= _("Fermer") ?>
</button>
</div>
</div>
</div>
</div>

View File

@ -119,7 +119,7 @@ $activeChildId = $menuData['child'];
<link rel="manifest" href="<?= $racineWeb ?>manifest.json">
<!-- 4. VOS STYLES PERSONNALISÉS (en dernier pour qu'ils dominent) -->
<link href="<?= $racineWeb ?>Bootstrap_new/css/style_office.css?ver=2025.12.29.13" rel="stylesheet">
<link href="<?= $racineWeb ?>Bootstrap_new/css/style_office.css?ver=2025.12.30.00" rel="stylesheet">
<link href="<?= $racineWeb ?>Bootstrap_new/css/ux_enhancements.css?ver=2025.12.21.02" rel="stylesheet">
<!-- ============================================
@ -600,7 +600,7 @@ $activeChildId = $menuData['child'];
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>
<!-- Application Scripts -->
<script src="/Js/fonctions.js?ver=2025.12.29.02"></script>
<script src="/Js/fonctions.js?ver=2025.12.30.00"></script>
<?php if (est_anglophone()): ?>
<script src="/Js/datepicker-eng.js"></script>