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