Modification page Emission et impression quittance client
This commit is contained in:
parent
641d7c3fb4
commit
ae8cc80a1c
147
Controleur/ControleurAjaxexporterunequittanceclient.php
Normal file
147
Controleur/ControleurAjaxexporterunequittanceclient.php
Normal file
|
|
@ -0,0 +1,147 @@
|
|||
<?php
|
||||
require_once 'Framework/Controleurrequete.php'; // OK
|
||||
require_once 'Modele/Quittance.php';
|
||||
|
||||
class ControleurAjaxexporterunequittanceclient extends Controleurrequete
|
||||
{
|
||||
private $quittance;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->quittance = new Quittance();
|
||||
}
|
||||
|
||||
public function index()
|
||||
{
|
||||
$idQuittance = $this->requete->getParametre("idQuittance");
|
||||
|
||||
$quittance = $this->quittance->getQuittanceIdExport($idQuittance);
|
||||
|
||||
$pdf = new FPDF();
|
||||
$pdf->AliasNbPages();
|
||||
$pdf->AddPage();
|
||||
|
||||
$ht=6;
|
||||
|
||||
$pdf->SetMargins(10, 10, 10) ;
|
||||
|
||||
$pdf->SetFont('Arial','BI', 9);
|
||||
|
||||
$pdf->Ln(10);
|
||||
|
||||
$pdf->Cell(0,$ht,convertirc($_SESSION['nomSociete']),0,1,'C',false);
|
||||
$pdf->SetFont('Arial','BIU', 9);
|
||||
|
||||
$pdf->Ln(5);
|
||||
|
||||
$pdf->Cell(0,$ht,convertirc(_("QUITTANCE DE PRIME")),0,1,'C',false);
|
||||
|
||||
$pdf->Ln(5);
|
||||
|
||||
$pdf->Cell(0,$ht,convertirc(_('CONTRAT').' : '),0,1,'L',false);
|
||||
$pdf->SetFont('Arial','', 9);
|
||||
|
||||
$pdf->Cell(15,$ht,convertirc(_('No Client')),0,0,'L',false);
|
||||
$pdf->Cell(15,$ht,convertirc(" : ".$quittance['numeroClient']),0,0,'L',false);
|
||||
|
||||
$pdf->Cell(15,$ht,convertirc(_('Client')),0,0,'L',false);
|
||||
$pdf->Cell(100,$ht,convertirc(" : ".$quittance['souscripteur']),0,0,'L',false);
|
||||
|
||||
$pdf->Cell(10,$ht,convertirc(_('Police')),0,0,'L',false);
|
||||
$pdf->Cell(25,$ht,convertirc(" : ".$quittance['numeroPolice']),0,1,'L',false);
|
||||
|
||||
$pdf->Ln(5);
|
||||
|
||||
$pdf->SetFont('Arial','BIU', 9);
|
||||
$pdf->Cell(0,$ht,convertirc(_('QUITTANCE No').' : '.$quittance['idQuittance'] . ' => '.$quittance['libelleQuittance']),0,1,'L',false);
|
||||
$pdf->SetFont('Arial','', 9);
|
||||
|
||||
// 1ere ligne
|
||||
/*
|
||||
$pdf->Cell(25,$ht,convertirc(_("No Quittance")),0,0,'L',false);
|
||||
$pdf->Cell(35,$ht,convertirc(" : ".$quittance['idQuittance']),0,0,'L',false);
|
||||
|
||||
$pdf->Cell(25,$ht,convertirc(_("Avenant")),0,0,'L',false);
|
||||
$pdf->Cell(35,$ht,convertirc(" : ".$quittance['numeroAvenant']),0,0,'L',false);
|
||||
|
||||
$pdf->Cell(25,$ht,convertirc(_("Mouvement")),0,0,'L',false);
|
||||
$pdf->Cell(35,$ht,convertirc(" : ".$quittance['codeTypeAvenant']),0,1,'L',false);
|
||||
*/
|
||||
|
||||
// 2eme ligne
|
||||
|
||||
$pdf->Cell(25,$ht,convertirc(_('Effet')),0,0,'L',false);
|
||||
$pdf->Cell(35,$ht,convertirc(" : ".dateLang($quittance['dateEffet'])),0,0,'L',false);
|
||||
|
||||
$pdf->Cell(25,$ht,convertirc(_('Echéance')),0,0,'L',false);
|
||||
$pdf->Cell(35,$ht,convertirc(" : ".dateLang($quittance['dateEcheance'])),0,0,'L',false);
|
||||
|
||||
$pdf->Cell(25,$ht,convertirc(_('Edition')),0,0,'L',false);
|
||||
$pdf->Cell(0,$ht,convertirc(' : '.heureCouranteLang($_SESSION['lang'])),0,1,'L',false);
|
||||
|
||||
// 3eme ligne
|
||||
$pdf->Cell(25,$ht,convertirc(_("P Nette Com")),0,0,'L',false);
|
||||
$pdf->Cell(35,$ht,convertirc(" : ".format_N($quittance['primeNette'])),0,0,'L',false);
|
||||
|
||||
$pdf->Cell(25,$ht,convertirc(_("Com Court")),0,0,'L',false);
|
||||
$pdf->Cell(35,$ht,convertirc(" : ".format_N($quittance['commission'])),0,0,'L',false);
|
||||
|
||||
$pdf->Cell(25,$ht,convertirc(_("Com Commer")),0,0,'L',false);
|
||||
$pdf->Cell(35,$ht,convertirc(" : ".format_N($quittance['commissionAutre'])),0,1,'L',false);
|
||||
|
||||
// 4eme ligne
|
||||
$pdf->Cell(25,$ht,convertirc(_("Accessoires")),0,0,'L',false);
|
||||
|
||||
// $pdf->Cell(35,$ht,convertirc(" : ".format_N($quittance['accessoire'])),0,0,'L',false);
|
||||
$pdf->Cell(35,$ht,convertirc(" : ".format_N($quittance['accessoire']+$quittance['fraisCarte'])),0,0,'L',false);
|
||||
|
||||
$pdf->Cell(25,$ht,convertirc(_("Prime Nette")),0,0,'L',false);
|
||||
$pdf->Cell(35,$ht,convertirc(" : ".format_N($quittance['primeHt'])),0,0,'L',false);
|
||||
|
||||
$pdf->Cell(25,$ht,convertirc((isset($_SESSION['composanteprime']['Taxes'])) ? _($_SESSION['composanteprime']['Taxes']) : _("Taxes")),0,0,'L',false);
|
||||
$pdf->Cell(35,$ht,convertirc(" : ".format_N($quittance['taxe'])),0,1,'L',false);
|
||||
|
||||
$pdf->Cell(25,$ht,convertirc(_("Prime TTC")),0,0,'L',false);
|
||||
$pdf->Cell(35,$ht,convertirc(" : ".format_N($quittance['primeTtcInitial'])),0,0,'L',false);
|
||||
|
||||
$pdf->Cell(25,$ht,convertirc(_("Tx Intérêt")),0,0,'L',false);
|
||||
$pdf->Cell(35,$ht,convertirc(" : ".$quittance['tauxInteret']),0,0,'L',false);
|
||||
|
||||
$pdf->Cell(25,$ht,convertirc(_("Intérêts")),0,0,'L',false);
|
||||
$pdf->Cell(35,$ht,convertirc(" : ".format_N($quittance['interet'])),0,1,'L',false);
|
||||
|
||||
// 6eme ligne
|
||||
|
||||
$pdf->Cell(25,$ht,convertirc(_("Nouv Prime")),0,0,'L',false);
|
||||
$pdf->Cell(35,$ht,convertirc(" : ".format_N($quittance['primeTtc'])),0,0,'L',false);
|
||||
|
||||
$pdf->Cell(25,$ht,convertirc(_("Nb Pers")),0,0,'L',false);
|
||||
$pdf->Cell(35,$ht,convertirc(" : ".format_N($quittance['nbAliment'])),0,0,'L',false);
|
||||
|
||||
$pdf->Cell(25,$ht,convertirc(_("A Payer avant")),0,0,'L',false);
|
||||
$pdf->Cell(35,$ht,convertirc(" : ".dateLang($quittance['datePaiement'])),0,1,'L',false);
|
||||
|
||||
// 7eme ligne
|
||||
|
||||
$pdf->Cell(25,$ht,convertirc(_("Encaissé")),0,0,'L',false);
|
||||
$pdf->Cell(35,$ht,convertirc(" : ".format_N($quittance['encaisse'])),0,0,'L',false);
|
||||
|
||||
$pdf->Cell(25,$ht,convertirc(_("Solde")),0,0,'L',false);
|
||||
$pdf->Cell(35,$ht,convertirc(" : ".format_N($quittance['solde'])),0,1,'L',false);
|
||||
|
||||
$pdf->Ln(10);
|
||||
|
||||
$pdf->Cell(25,$ht,convertirc(_("Producteur")),0,0,'L',false);
|
||||
$pdf->Cell(0,$ht,convertirc(" : ".$quittance['user']." => ".dateheureLang($quittance['dateSysteme'], $_SESSION['lang'])),0,1,'L',false);
|
||||
|
||||
$fichier="Temp/TMP_quittances_emission"."_".uniqid().".pdf";
|
||||
$pdf->Output($fichier,"F");
|
||||
|
||||
$t_html =' <div id ="div_export_a" class="alert alert-info"> ';
|
||||
$t_html .=' <a style="font-size:15pt;" href="'.$fichier.'" target="_blank" > '._("TELECHARGER").' </a> ';
|
||||
$t_html .=' </div ';
|
||||
echo $t_html;
|
||||
|
||||
exit();
|
||||
}
|
||||
}
|
||||
|
|
@ -567,3 +567,61 @@ function texte_cp()
|
|||
{
|
||||
window.location.assign($("#racineWeb" ).val()+"Textecp/");
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Prépare et affiche le modal d'impression de la quittance client
|
||||
*/
|
||||
function imprimer_quittance_client(idQuittance) {
|
||||
// 1. Validation de l'ID
|
||||
if (!idQuittance || parseInt(idQuittance) <= 0) {
|
||||
const v_msg = "Rien à imprimer !";
|
||||
const v_msgEng = "Nothing to print!";
|
||||
|
||||
// Utilisation de votre fonction personnalisée
|
||||
if (typeof alert_ebene === "function") {
|
||||
alert_ebene(v_msg, v_msgEng);
|
||||
} else {
|
||||
alert(v_msg);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
const racine = $("#racineWeb").val() || "/";
|
||||
const $divExport = $('#div_export_quittance');
|
||||
const $btnTrigger = $("#btn_export_quittance");
|
||||
|
||||
// 2. Préparation du loader dans le modal
|
||||
$divExport.html(`
|
||||
<div class="text-center my-5 py-5">
|
||||
<div class="spinner-border text-primary" role="status" style="width: 3rem; height: 3rem;">
|
||||
<span class="visually-hidden">Chargement...</span>
|
||||
</div>
|
||||
<p class="mt-3 text-muted fw-bold">Génération du document client en cours...</p>
|
||||
</div>
|
||||
`);
|
||||
|
||||
// 3. Ouverture du modal
|
||||
$btnTrigger.click();
|
||||
|
||||
// 4. Appel AJAX
|
||||
$.ajax({
|
||||
url: racine + "Ajaxexporterunequittanceclient/",
|
||||
type: 'POST',
|
||||
data: { idQuittance: idQuittance }, // Passage par objet (plus propre)
|
||||
success: function(data) {
|
||||
// On injecte le contenu avec un petit effet de transition
|
||||
$divExport.hide().html(data).fadeIn(200);
|
||||
},
|
||||
error: function(xhr, status, error) {
|
||||
$divExport.html(`
|
||||
<div class="alert alert-danger m-3 shadow-sm">
|
||||
<i class="bi bi-exclamation-triangle-fill me-2"></i>
|
||||
<strong>Erreur :</strong> Impossible de générer la quittance.
|
||||
<small class="d-block text-muted mt-1">${error}</small>
|
||||
</div>
|
||||
`);
|
||||
console.error("[Print] Erreur AJAX:", status, error);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
@ -53,5 +53,12 @@ class Quittance extends Modele {
|
|||
return $totalquittance->fetch(PDO::FETCH_ASSOC);
|
||||
}
|
||||
|
||||
|
||||
public function getQuittanceIdExport($idQuittance)
|
||||
{
|
||||
$sql = 'call sp_get_quittance_id(?)';
|
||||
|
||||
$resultat = $this->executerRequete($sql, array($idQuittance));
|
||||
|
||||
return $resultat->fetch(PDO::FETCH_ASSOC);
|
||||
}
|
||||
}
|
||||
|
|
@ -171,10 +171,7 @@
|
|||
<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>
|
||||
<button class="btn btn-outline-secondary" onclick="imprimer_quittance_client(<?= $idQuittance ?>);" title="Client"><i class="fas fa-print"></i></button>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endforeach; ?>
|
||||
|
|
|
|||
|
|
@ -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.27.02"></script>
|
||||
<script src="/Js/fonctions.js?ver=2025.12.28.00"></script>
|
||||
|
||||
<?php if (est_anglophone()): ?>
|
||||
<script src="/Js/datepicker-eng.js"></script>
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user