From d7faf06f104634a62b97744c376b859d286602a8 Mon Sep 17 00:00:00 2001
From: engel <>
Date: Thu, 17 Feb 2022 09:21:33 +0000
Subject: [PATCH] adaptation versements personnes aux nouvelles structures
FossilOrigin-Name: ceca540fd6ead507a1d322c07a884d0aa1b8a44cf9501f8179ddaee4d12df3fb
---
lib/Utils.php | 33 +++++++++++++++++++++++++++++-
templates/versements_personnes.tpl | 10 ++++-----
www/admin/generer_activites.php | 9 ++++----
www/admin/generer_personnes.php | 18 ++++++++--------
www/admin/versements_personnes.php | 18 ++++++++++++++--
5 files changed, 66 insertions(+), 22 deletions(-)
diff --git a/lib/Utils.php b/lib/Utils.php
index e99b4bf..a0798f9 100644
--- a/lib/Utils.php
+++ b/lib/Utils.php
@@ -74,6 +74,37 @@ class Utils
return $db->get($sql);
}
+ /**
+ * Versements totaux par personne pour une année donnée
+ * @param année
+ */
+ public static function getVersementsTotaux($annee)
+ {
+ $sql =
+ "SELECT
+ membres.id as idUser,
+ sum(acc_transactions_lines.credit) AS versement
+ FROM
+ acc_transactions_users,
+ membres,
+ acc_transactions
+ INNER JOIN acc_transactions_lines
+ ON acc_transactions_lines.id_transaction = acc_transactions.id
+ WHERE (
+ strftime('%Y', acc_transactions.date) = ?
+ AND
+ acc_transactions_lines.credit > 0
+ AND
+ acc_transactions_users.id_transaction = acc_transactions.id
+ AND
+ acc_transactions_users.id_user = membres.id
+ )
+ GROUP by acc_transactions_users.id_user
+ ORDER by membres.nom COLLATE U_NOCASE;
+ ";
+ return DB::getInstance()->get($sql, $annee);
+ }
+
/**
* @return personnes ayant versé des dons pour une année donnée
* @param $annee
@@ -269,7 +300,7 @@ class Utils
* Versements totaux par personne pour une année donnée
* @param année
*/
- public static function getVersementsTotaux($annee) {
+ public static function getVersementsTotaux_old($annee) {
$sql =
"SELECT
acc_transactions_users.id_user as idUser,
diff --git a/templates/versements_personnes.tpl b/templates/versements_personnes.tpl
index fffcf07..4005c8b 100644
--- a/templates/versements_personnes.tpl
+++ b/templates/versements_personnes.tpl
@@ -31,11 +31,11 @@
value=$rang}
{$versement.idUser} |
- {$versement.nom} |
- {$versement.montant|raw|money} |
- {$versement.adresse} |
- {$versement.codePostal} |
- {$versement.ville} |
+ {$lesDonateurs[$versement.idUser]->nomPrenom} |
+ {$versement.versement|raw|money} |
+ {$lesDonateurs[$versement.idUser]->adresse} |
+ {$lesDonateurs[$versement.idUser]->codePostal} |
+ {$lesDonateurs[$versement.idUser]->ville} |
{/foreach}
diff --git a/www/admin/generer_activites.php b/www/admin/generer_activites.php
index 80bb472..c9a24e9 100644
--- a/www/admin/generer_activites.php
+++ b/www/admin/generer_activites.php
@@ -11,7 +11,7 @@ $lesLignes = f('selected');
// filtrer les versements sélectionnés
$versementsSelectionnes = array();
-foreach ($lesLignes as $indice => $ligne) {
+foreach ($lesLignes as $ligne) {
$versementsSelectionnes[] = $_SESSION['lesVersements'][$ligne];
}
// cumuler les versements d'une personne
@@ -73,8 +73,8 @@ $fichierZip = Utils::makeArchive(
/**
* Cumuler les versements de chaque personne par tarif
- * @param tableau des versements
- * @return tableau des versements cumulés
+ * @param tableau des versements triés par idTarif, idUser, date
+ * @return tableau des versements cumulés : id => Personne
*/
function cumulerVersements($versements)
{
@@ -100,8 +100,7 @@ function cumulerVersements($versements)
// créer les infos de la personne, sauf si elle est déjà présente
if (!array_key_exists($idPersonne_courant, $totalPersonnes))
{
- $totalPersonnes["$idPersonne_courant"] =
- Personne::copier($_SESSION['membresDonateurs'][$ligne->idUser]);
+ $totalPersonnes["$idPersonne_courant"] = Personne::copier($_SESSION['membresDonateurs'][$ligne->idUser]);
}
} else {
// cumuler versements
diff --git a/www/admin/generer_personnes.php b/www/admin/generer_personnes.php
index d153e8b..a676037 100644
--- a/www/admin/generer_personnes.php
+++ b/www/admin/generer_personnes.php
@@ -11,7 +11,7 @@ $lesLignes = f('selected');
// filtrer les versements sélectionnés
$versementsSelectionnes = array();
-foreach ($lesLignes as $indice => $ligne) {
+foreach ($lesLignes as $ligne) {
$versementsSelectionnes[] = $_SESSION['lesVersementsTotaux'][$ligne];
}
@@ -28,7 +28,7 @@ $logoCERFA = PLUGIN_ROOT . "/data/logoCerfa.png";
$signature = PLUGIN_ROOT . "/data/default_signature.png";
$listeFichiers = [];
-foreach ($versementsSelectionnes as $idPersonne => $personne) {
+foreach ($versementsSelectionnes as $ligne) {
// générer un fichier par reçu
$pdf = new RecusPDF(
'DejaVu',
@@ -41,15 +41,15 @@ foreach ($versementsSelectionnes as $idPersonne => $personne) {
// extraire les montants des versements
$pdf->imprimer_recu(
$_SESSION['annee_recu'],
- $personne->idUser,
- $personne->nom,
- array($personne->montant/100),
- $personne->adresse,
- $personne->codePostal,
- $personne->ville
+ $ligne->idUser,
+ $_SESSION['membresDonateurs'][$ligne->idUser]->nomPrenom,
+ array($ligne->versement/100),
+ $_SESSION['membresDonateurs'][$ligne->idUser]->adresse,
+ $_SESSION['membresDonateurs'][$ligne->idUser]->codePostal,
+ $_SESSION['membresDonateurs'][$ligne->idUser]->ville
);
// fabriquer le nom du fichier PDF
- $nom = str_replace(' ', '_', $personne->nom);
+ $nom = str_replace(' ', '_', $_SESSION['membresDonateurs'][$ligne->idUser]->nomPrenom);
$nom = str_replace("'", "", $nom);
// $nomFichier = Utils::getPDFDirectory() . "/" . 'recu_' . $annee_recu . '_' . $nom . '.pdf';
$nomFichier = PLUGIN_ROOT . '/pdf/recu_' . $_SESSION['annee_recu'] . '_' . $nom . '.pdf';
diff --git a/www/admin/versements_personnes.php b/www/admin/versements_personnes.php
index 9f16a61..23a6761 100644
--- a/www/admin/versements_personnes.php
+++ b/www/admin/versements_personnes.php
@@ -2,19 +2,33 @@
namespace Garradin;
+use Garradin\Plugin\RecusFiscaux\Personne;
use Garradin\Plugin\RecusFiscaux\Utils;
// vérifier si l'année a bien été sélectionnée au préalable
$_SESSION['annee_recu'] = f('annee_recu');
-// error_log("vp.php::annee_recu = (" .$_SESSION['annee_recu'] . ")");
if (! isset($_SESSION['annee_recu']) || $_SESSION['annee_recu'] == "") {
\Garradin\Utils::redirect(PLUGIN_URL . 'index.php');
}
-// liste des versements totaux par personne
+
+// versements totaux par personne
$_SESSION['lesVersementsTotaux'] = Utils::getVersementsTotaux($_SESSION['annee_recu']);
+// membres donateurs
+$membresDonateurs = array();
+$versementsMembres = Utils::getDonateurs($_SESSION['annee_recu']);
+foreach ($versementsMembres as $versement) {
+ $membresDonateurs[$versement->idUser] = new Personne($versement->idUser,
+ $versement->nom,
+ $versement->adresse,
+ $versement->codePostal,
+ $versement->ville);
+}
+$_SESSION['membresDonateurs'] = $membresDonateurs;
+
// préparation de l'affichage
$tpl->assign('lesVersementsTotaux', $_SESSION['lesVersementsTotaux']);
+$tpl->assign('lesDonateurs', $membresDonateurs);
$tpl->assign('plugin_css', ['style.css']);
// envoyer au template