diff --git a/Controleur/ControleurAjaxfichepolice.php b/Controleur/ControleurAjaxfichepolice.php new file mode 100644 index 0000000..bce75e2 --- /dev/null +++ b/Controleur/ControleurAjaxfichepolice.php @@ -0,0 +1,33 @@ +quittance = new Quittance(); + + } + + public function index() + { + // $idPolice = $this->requete->getParametreFormulaire("idPolice"); + $idPolice = $_SESSION['idPolice_C'] ; + $debut = $this->requete->getParametreDate("debut"); + $fin = $this->requete->getParametreDate("fin"); + + $quittances = $this->quittance->getQuittancesPolicePeriode($idPolice, $debut, $fin); + $totalquittanceperiode = $this->quittance->getTotalQuittancePeriode($idPolice, $debut, $fin); + + $this->genererVueAjax( + array( + 'quittances' => $quittances, + 'totalquittanceperiode' => $totalquittanceperiode + ) + ); + } +} \ No newline at end of file diff --git a/Js/fonctions.js b/Js/fonctions.js index 5ed8079..c472cf6 100755 --- a/Js/fonctions.js +++ b/Js/fonctions.js @@ -497,4 +497,56 @@ function ajax_context_police_afficher(idPolice) { window.location.assign(racine + "Fichepolice/"); } }); +} + +/** + * Charge la liste des quittances pour une police sur une période donnée. + */ +function afficher_quittances_police_periode() { + // 1. Récupération des paramètres + const racine = $("#racineWeb").val() || "/"; + const idPolice = $("#idPolice_C").val(); + const debut = $("#debut").val(); + const fin = $("#fin").val(); + const $conteneur = $("#div_quittancepolice"); + + // 2. Vérification de l'ID Police (Correction du bug numeroPolice) + if (!idPolice || idPolice.trim() === "") { + console.warn("Affichage quittances impossible : ID Police manquant."); + return; + } + + // 3. Préparation de l'interface (Loader) + $conteneur.html(` +
+
+ Chargement... +
+

${_("Chargement des quittances...")}

+
+ `); + + // 4. Appel AJAX + $.ajax({ + url: racine + "Ajaxfichepolice/", + type: 'POST', + data: { + idPolice: idPolice, + debut: debut, + fin: fin + }, + success: function(data) { + // Injection du résultat + $conteneur.hide().html(data).fadeIn(); + }, + error: function(xhr, status, error) { + $conteneur.html(` +
+ + ${_("Erreur lors du chargement des quittances.")} +
+ `); + console.error("Erreur AJAX Quittances:", status, error); + } + }); } \ No newline at end of file diff --git a/Modele/Quittance.php b/Modele/Quittance.php index 57e2c74..7615df9 100644 --- a/Modele/Quittance.php +++ b/Modele/Quittance.php @@ -14,4 +14,22 @@ class Quittance extends Modele { } + public function getQuittancesPolicePeriode($idPolice, $debut, $fin) + { + $sql = 'call sp_emissions_police_periode(?, ?, ?)'; + + $quittances = $this->executerRequete($sql, array($idPolice, $debut, $fin)); + + return $quittances->fetchAll(PDO::FETCH_ASSOC); + } + + public function getTotalQuittancePeriode($idPolice, $debut, $fin) + { + $sql = 'call sp_emissions_total_police_periode(?, ?, ?)'; + + $totalquittance = $this->executerRequete($sql, array($idPolice, $debut, $fin)); + + return $totalquittance->fetch(PDO::FETCH_ASSOC); + + } } \ No newline at end of file diff --git a/Vue/Ajaxfichepolice/index.php b/Vue/Ajaxfichepolice/index.php new file mode 100644 index 0000000..fde75cf --- /dev/null +++ b/Vue/Ajaxfichepolice/index.php @@ -0,0 +1,98 @@ +
+
+ + + + + + + + + + + + + + + + + nettoyer($quittance['solde']); + // Badge de couleur pour le solde + $soldeClass = ($solde <= 0) ? 'bg-success-soft text-success' : 'bg-danger-soft text-danger'; + ?> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + nettoyer($quittance['dateEmission']), $_SESSION['lang']) ?> + nettoyer($quittance['libelleQuittance']) ?> + nettoyer($quittance['datePaiement']), $_SESSION['lang']) ?> + nettoyer($quittance['primeTtc'])) ?>nettoyer($quittance['encaisse'])) ?> + + +
+ + +
+
+
+ + +
\ No newline at end of file diff --git a/Vue/gabarit.php b/Vue/gabarit.php index 2a6b9c0..13f47fa 100755 --- a/Vue/gabarit.php +++ b/Vue/gabarit.php @@ -616,7 +616,7 @@ console.groupEnd(); - +