This commit is contained in:
KONE SOREL 2025-12-27 23:40:29 +00:00
parent 4b4cb83d6b
commit a69cec5d47
3 changed files with 208 additions and 153 deletions

View File

@ -1174,4 +1174,30 @@ li i { margin-right:10px; color:#007bff; }
.custom-quittance-table tfoot {
background-color: var(--office-light) !important;
border-top: 2px solid var(--office-secondary);
}
/* Background spécifique pour la carte récapitulative TTC */
.bg-office-primary-lighter {
background-color: var(--office-primary-lighter);
}
/* Header bleu type Office */
.bg-office-blue {
background-color: var(--office-secondary) !important;
}
/* Ombre légère pour les inputs readonly mais colorés */
#div_emission .form-control[readonly] {
box-shadow: inset 0 1px 2px rgba(0,0,0,0.02);
}
/* Style spécifique pour le footer de la table émission */
.custom-quittance-table tfoot.table-dark {
background-color: var(--office-dark) !important;
border-top: 3px solid var(--office-primary);
}
@media print {
.btn, .modal, .sr-only { display: none !important; }
.card { border: 1px solid #ddd !important; box-shadow: none !important; }
}

View File

@ -1,166 +1,195 @@
<?php
$this->titre = "INTER SANTE - Fiche Emission";
$this->titre = "INTER-SANTE - Fiche Emission";
$idEmission = $emission['idEmission'];
$idPolice = $emission['idPolice'];
$isAnnulee = (!empty($emission['dateAnnulation']) && $emission['dateAnnulation'] != '0000-00-00 00:00:00');
?>
<input type="hidden" id="idEmission" value="<?= $idEmission ?>">
<input type="hidden" id="idPolice" value="<?= $idPolice ?>">
<input class="sr-only" type="text" id="idEmission" name="idEmission" value="<?= $idEmission ?>">
<input class="sr-only" type="text" id="idPolice" name="idPolice" value="<?= $idPolice ?>">
<div class="container-fluid p-0">
<?php if ($isAnnulee): ?>
<div class="alert alert-danger d-flex align-items-center mb-3 shadow-sm" role="alert">
<i class="bi bi-exclamation-octagon-fill fs-4 me-2"></i>
<div>
<strong><?= _("ÉMISSION ANNULÉE") ?></strong> : <?= $this->nettoyer($emission['motifAnnulation']) ?>
</div>
</div>
<?php endif; ?>
<div class="card mb-4 border-0 shadow-sm">
<div class="card-header bg-primary text-white py-2">
<h6 class="mb-0 fw-bold"><i class="bi bi-info-circle me-2"></i><?= _("Détails de l'émission") ?> : <?= $emission['numeroEmission'] ?></h6>
</div>
<div class="card-body bg-light">
<div class="row g-3">
<div class="col-md-3">
<label class="small text-muted fw-bold"><?= _("Police No") ?></label>
<div class="form-control form-control-sm bg-white fw-bold"><?= $emission['numeroPolice'] ?></div>
</div>
<div class="col-md-3">
<label class="small text-muted fw-bold"><?= _("Producteur") ?></label>
<div class="form-control form-control-sm bg-white"><?= $this->nettoyer($emission['user']) ?></div>
</div>
<div class="col-md-3">
<label class="small text-muted fw-bold"><?= _("Nb Assurés") ?></label>
<div class="form-control form-control-sm bg-white text-center"><?= $this->nettoyer($emission['nbAliment']) ?></div>
</div>
<div class="col-md-3">
<label class="small text-muted fw-bold"><?= _("Nb Échéances") ?></label>
<div class="form-control form-control-sm bg-white text-center"><?= $this->nettoyer($emission['nbEcheance']) ?></div>
</div>
<div class="col-md-2">
<label class="small text-muted fw-bold"><?= _("Prime Nette") ?></label>
<div class="form-control form-control-sm bg-white text-end"><?= format_N($emission['primeNette']) ?></div>
</div>
<div class="col-md-2">
<label class="small text-muted fw-bold"><?= _("Accessoires") ?></label>
<div class="form-control form-control-sm bg-white text-end"><?= format_N($emission['accessoire']) ?></div>
</div>
<div class="col-md-2">
<label class="small text-muted fw-bold"><?= (isset($_SESSION['composanteprime']['Taxes'])) ? _($_SESSION['composanteprime']['Taxes']) : _("Taxes") ?></label>
<div class="form-control form-control-sm bg-white text-end"><?= format_N($emission['taxe']) ?></div>
</div>
<div class="col-md-2">
<label class="small text-muted fw-bold"><?= (isset($_SESSION['composanteprime']['Cartes'])) ? _($_SESSION['composanteprime']['Cartes']) : _("Frais Cartes") ?></label>
<div class="form-control form-control-sm bg-white text-end"><?= format_N($emission['fraisCarte']) ?></div>
</div>
<div class="col-md-4">
<label class="small text-muted fw-bold text-primary"><?= _("Total TTC") ?></label>
<div class="form-control form-control-sm bg-primary text-white fw-bold text-end"><?= format_N($emission['primeTtc']) ?></div>
</div>
</div>
</div>
</div>
<div class="d-flex justify-content-between align-items-center mb-2">
<h6 class="text-uppercase fw-bold text-muted mb-0"><i class="bi bi-file-earmark-check me-2"></i><?= _("Quittances générées") ?></h6>
</div>
<div class="table-responsive shadow-sm rounded mb-4">
<table class="table table-hover align-middle bg-white mb-0" style="font-size: 0.85rem;">
<thead class="table-dark">
<tr>
<th class="text-center">#</th>
<th class="text-center"><?= _("Effet") ?></th>
<th class="text-center"><?= _("Échéance") ?></th>
<th><?= _("Libellé") ?></th>
<th class="text-end" style="min-width: 100px;"><?= _("Prime TTC") ?></th>
<th class="text-end" style="min-width: 100px;"><?= _("Encaissé") ?></th>
<th class="text-end" style="min-width: 100px;"><?= _("Solde") ?></th>
<th class="text-center"><?= _("Actions") ?></th>
</tr>
</thead>
<tbody>
<?php foreach ($quittances as $quittance):
$solde = (float)$quittance['solde'];
$idQ = $quittance['id'];
?>
<tr>
<td class="text-center fw-bold text-muted"><?= $idQ ?></td>
<td class="text-center"><?= dateLang($quittance['dateEffet'], $_SESSION['lang']) ?></td>
<td class="text-center"><?= dateLang($quittance['dateEcheance'], $_SESSION['lang']) ?></td>
<td><?= $this->nettoyer($quittance['libelleQuittance']) ?></td>
<td class="text-end fw-semibold"><?= format_N($quittance['primeTtc']) ?></td>
<td class="text-end text-success"><?= format_N($quittance['encaisse']) ?></td>
<td class="text-end fw-bold <?= $solde > 0 ? 'text-danger' : 'text-success' ?>"><?= format_N($solde) ?></td>
<td class="text-center">
<div class="btn-group shadow-sm">
<button class="btn btn-sm btn-outline-primary" onclick="imprimer_quittance(<?= $idQ ?>);" title="Assureur"><i class="bi bi-building"></i></button>
<button class="btn btn-sm btn-primary" onclick="imprimer_quittance_client(<?= $idQ ?>);" title="Client"><i class="bi bi-person"></i></button>
</div>
</td>
</tr>
<?php endforeach; ?>
</tbody>
<tfoot class="table-light fw-bold">
<tr>
<td colspan="4" class="text-center">TOTAL</td>
<td class="text-end"><?= format_N($totalquittance['primeTtc']) ?></td>
<td class="text-end text-success"><?= format_N($totalquittance['encaisse']) ?></td>
<td class="text-end text-danger"><?= format_N($totalquittance['solde']) ?></td>
<td></td>
</tr>
</tfoot>
</table>
</div>
<div id="div_emission" class="container-fluid py-3 animate__animated animate__fadeIn">
<!--
<h6 class="text-uppercase fw-bold text-muted mb-2"><i class="bi bi- layering-half me-2"></i><?= _("Avenants liés") ?></h6>
<div class="table-responsive shadow-sm rounded">
<table class="table table-sm table-striped table-hover bg-white mb-0" style="font-size: 0.8rem;">
<thead class="bg-secondary text-white">
<tr>
<th><?= _("Type") ?></th>
<th class="text-center"><?= _("Numéro") ?></th>
<th class="text-center"><?= _("Effet") ?></th>
<th class="text-end"><?= _("Prime Nette") ?></th>
<th class="text-end"><?= _("Accessoire") ?></th>
<th class="text-end"><?= _("Taxes") ?></th>
<th class="text-end fw-bold"><?= _("TTC") ?></th>
<th class="text-center"><?= _("Pop.") ?></th>
</tr>
</thead>
<tbody>
<?php foreach ($avenants as $avenant): ?>
<tr>
<td><?= est_anglophone() ? $avenant['typeavenantEng'] : $avenant['typeavenant'] ?></td>
<td class="text-center fw-bold"><?= $avenant['numeroAvenant'] ?></td>
<td class="text-center"><?= dateLang($avenant['dateEffet'], $_SESSION['lang']) ?></td>
<td class="text-end"><?= format_N($avenant['primeNette']) ?></td>
<td class="text-end"><?= format_N($avenant['accessoire']) ?></td>
<td class="text-end"><?= format_N($avenant['taxe']) ?></td>
<td class="text-end fw-bold"><?= format_N($avenant['primeTtc']) ?></td>
<td class="text-center badge bg-light text-dark mt-1"><?= $avenant['nbAliment'] ?></td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
<div class="d-flex justify-content-between align-items-center mb-4">
<h4 class="fw-bold text-secondary mb-0">
<i class="fas fa-file-invoice-dollar me-2 text-primary"></i>
<?= _("Détail de l'Émission") ?> : <span class="text-primary"><?= $emission['numeroEmission'] ?></span>
</h4>
<button class="btn btn-outline-primary btn-sm" onclick="window.print();">
<i class="fas fa-print me-2"></i><?= _("Imprimer la fiche") ?>
</button>
</div>
-->
</div>
<div class="modal fade" id="pop_export_quittance" tabindex="-1" 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-primary text-white">
<h5 class="modal-title"><i class="bi bi-printer me-2"></i><?= _("Impression") ?></h5>
<button type="button" class="btn-close btn-close-white" data-bs-dismiss="modal"></button>
<div class="card shadow-sm border-0 mb-4">
<div class="card-body p-4">
<div class="row g-3">
<div class="col-md-2">
<label class="form-label small fw-bold text-primary text-uppercase"><?= _("Police") ?></label>
<input type="text" class="form-control bg-light fw-bold" value="<?=$emission['numeroPolice']?>" readonly>
</div>
<div class="col-md-2">
<label class="form-label small fw-bold text-primary text-uppercase"><?= _("Avenant") ?></label>
<input type="text" class="form-control" value="<?=$emission['numeroAvenant']?>" readonly>
</div>
<div class="col-md-2">
<label class="form-label small fw-bold text-primary text-uppercase"><?= _("Mouvement") ?></label>
<input type="text" class="form-control text-center text-danger fw-bold" value="<?=$emission['codeTypeAvenant']?>" readonly>
</div>
<div class="col-md-3">
<label class="form-label small fw-bold text-primary text-uppercase"><?= _("Date Effet") ?></label>
<input type="text" class="form-control" value="<?= dateLang($emission['dateEffet'], $_SESSION['lang']) ?>" readonly>
</div>
<div class="col-md-3">
<label class="form-label small fw-bold text-primary text-uppercase"><?= _("Échéance") ?></label>
<input type="text" class="form-control border-warning" value="<?= dateLang($emission['dateEcheance'], $_SESSION['lang']) ?>" readonly>
</div>
</div>
<div class="modal-body bg-light">
<div id="div_export_quittance" class="p-4 text-center">
</div>
</div>
<div class="row g-4 mb-4">
<div class="col-lg-8">
<div class="card shadow-sm h-100">
<div class="card-header bg-light border-bottom-0 py-3">
<h6 class="mb-0 fw-bold"><i class="fas fa-calculator me-2"></i><?= _("Décomposition de la Prime HT") ?></h6>
</div>
<div class="card-body">
<div class="row g-3">
<div class="col-md-4">
<label class="form-label small"><?= _("P. Nette Com") ?></label>
<input type="text" class="form-control text-end" value="<?= format_N($this->nettoyer($emission['primeNette'])) ?>" readonly>
</div>
<div class="col-md-4">
<label class="form-label small"><?= _("Com. Courtier") ?></label>
<input type="text" class="form-control text-end text-muted" value="<?= format_N($this->nettoyer($emission['commission'])) ?>" readonly>
</div>
<div class="col-md-4">
<label class="form-label small"><?= _("Com. Apporteur") ?></label>
<input type="text" class="form-control text-end text-muted" value="<?= format_N($this->nettoyer($emission['commissionAutre'])) ?>" readonly>
</div>
<div class="col-md-4">
<label class="form-label small"><?= _("Accessoires") ?></label>
<input type="text" class="form-control text-end" value="<?= format_N($this->nettoyer($emission['accessoire'])) ?>" readonly>
</div>
<div class="col-md-4">
<label class="form-label small fw-bold"><?= _("Total Prime HT") ?></label>
<input type="text" class="form-control text-end bg-secondary-subtle fw-bold" value="<?= format_N($this->nettoyer($emission['primeHt'])) ?>" readonly>
</div>
<div class="col-md-4">
<label class="form-label small"><?= (isset($_SESSION['composanteprime']['Taxes'])) ? _($_SESSION['composanteprime']['Taxes']) : _("Taxes") ?></label>
<input type="text" class="form-control text-end" value="<?= format_N($this->nettoyer($emission['taxe'])) ?>" readonly>
</div>
</div>
</div>
</div>
</div>
<div class="col-lg-4">
<div class="card shadow-sm border-primary h-100">
<div class="card-header bg-office-blue text-white py-3">
<h6 class="mb-0 fw-bold"><i class="fas fa-coins me-2"></i><?= _("Récapitulatif TTC") ?></h6>
</div>
<div class="card-body bg-office-primary-lighter">
<div class="mb-3">
<label class="form-label small text-uppercase"><?= _("Prime TTC Initiale") ?></label>
<input type="text" class="form-control form-control-lg text-end fw-bold border-primary" value="<?= format_N($this->nettoyer($emission['primeTtcInitial'])) ?>" readonly>
</div>
<div class="row g-2 mb-3">
<div class="col-6">
<label class="form-label small"><?= _("Intérêts") ?> (<?= $this->nettoyer($emission['tauxInteret']) ?>%)</label>
<input type="text" class="form-control text-end" value="<?= format_N($this->nettoyer($emission['interet'])) ?>" readonly>
</div>
<div class="col-6">
<label class="form-label small"><?= _("Échéances") ?></label>
<input type="text" class="form-control text-center fw-bold" value="<?= $this->nettoyer($emission['nbEcheance']) ?>" readonly>
</div>
</div>
<div class="pt-2 border-top">
<label class="form-label small fw-bold text-primary"><?= _("NOUVELLE PRIME TTC") ?></label>
<div class="h3 mb-0 text-end fw-bold text-primary"><?= format_N($this->nettoyer($emission['primeTtc'])) ?></div>
</div>
</div>
</div>
</div>
</div>
<div class="card shadow-sm mb-4 border-start border-4 border-info">
<div class="card-body py-2">
<div class="row align-items-center text-center">
<div class="col-md-2 border-end">
<small class="text-muted d-block"><?= _("Nb Personnes") ?></small>
<span class="fw-bold"><i class="fas fa-users me-1"></i> <?= $this->nettoyer($emission['nbAliment']) ?></span>
</div>
<div class="col-md-3 border-end">
<small class="text-muted d-block"><?= _("Producteur") ?></small>
<span class="fw-bold text-uppercase"><?= $this->nettoyer($emission['user']) ?></span>
</div>
<div class="col-md-7 text-end">
<small class="text-muted"><?= _("Saisie système le") ?> : </small>
<span class="badge bg-light text-dark border p-2">
<?= dateheureLang($this->nettoyer($emission['dateSysteme']), $_SESSION['lang']) ?>
</span>
</div>
</div>
</div>
</div>
<div class="mt-5">
<div class="d-flex align-items-center mb-3">
<div class="bg-primary p-2 rounded-circle text-white me-3" style="width:35px; height:35px; display:flex; align-items:center; justify-content:center;">
<i class="fas fa-list-ol"></i>
</div>
<h5 class="mb-0 fw-bold text-uppercase"><?= _("Quittances de l'émission") ?></h5>
</div>
<div class="card shadow-sm border-0">
<div class="table-responsive">
<table class="table table-hover align-middle mb-0 custom-quittance-table">
<thead>
<tr>
<th class="text-center"><?= _("") ?></th>
<th class="text-center"><?= _("Effet") ?></th>
<th class="text-center"><?= _("Échéance") ?></th>
<th><?= _("Libellé") ?></th>
<th class="text-center"><?= _("Payer avant") ?></th>
<th class="text-end"><?= _("Prime TTC") ?></th>
<th class="text-end"><?= _("Encaissé") ?></th>
<th class="text-end"><?= _("Solde") ?></th>
<th class="text-center" width="120px"><?= _("Factures") ?></th>
</tr>
</thead>
<tbody>
<?php foreach ($quittances as $quittance):
$idQuittance = $quittance['id'];
$solde = (float)$this->nettoyer($quittance['solde']);
?>
<tr>
<td class="text-center fw-bold"><?= $idQuittance ?></td>
<td class="text-center small"><?= dateLang($this->nettoyer($quittance['dateEffet']), $_SESSION['lang']) ?></td>
<td class="text-center small"><?= dateLang($this->nettoyer($quittance['dateEcheance']), $_SESSION['lang']) ?></td>
<td class="small"><?= $this->nettoyer($quittance['libelleQuittance']) ?></td>
<td class="text-center small text-danger fw-bold"><?= dateLang($this->nettoyer($quittance['datePaiement']), $_SESSION['lang']) ?></td>
<td class="text-end fw-bold"><?= format_N($this->nettoyer($quittance['primeTtc'])) ?></td>
<td class="text-end text-success"><?= format_N($this->nettoyer($quittance['encaisse'])) ?></td>
<td class="text-end <?= ($solde > 0) ? 'text-danger fw-bold' : 'text-muted' ?>"><?= format_N($solde) ?></td>
<td class="text-center">
<div class="btn-group btn-group-sm">
<button class="btn btn-outline-secondary" onclick="imprimer_quittance(<?= $idQuittance ?>);" title="Assureur"><i class="fas fa-building"></i></button>
<button class="btn btn-outline-secondary" onclick="imprimer_quittance_client(<?= $idQuittance ?>);" title="Client"><i class="fas fa-user"></i></button>
</div>
</td>
</tr>
<?php endforeach; ?>
</tbody>
<tfoot class="table-dark">
<tr class="fw-bold">
<td colspan="5" class="text-end text-uppercase small"><?= _("Total Émission") ?></td>
<td class="text-end"><?= format_N($this->nettoyer($totalquittance['primeTtc'])) ?></td>
<td class="text-end"><?= format_N($this->nettoyer($totalquittance['encaisse'])) ?></td>
<td class="text-end"><?= format_N($this->nettoyer($totalquittance['solde'])) ?></td>
<td></td>
</tr>
</tfoot>
</table>
</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.27.13" rel="stylesheet">
<link href="<?= $racineWeb ?>Bootstrap_new/css/style_office.css?ver=2025.12.27.14" rel="stylesheet">
<link href="<?= $racineWeb ?>Bootstrap_new/css/ux_enhancements.css?ver=2025.12.21.02" rel="stylesheet">
<!-- ============================================