From 341afe6a7b5492664036eb269634a9142d98de46 Mon Sep 17 00:00:00 2001 From: engel <> Date: Thu, 10 Feb 2022 16:05:24 +0000 Subject: [PATCH 1/6] =?UTF-8?q?nouvelle=20version=20des=20structures=20de?= =?UTF-8?q?=20donn=C3=A9es?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit FossilOrigin-Name: ff5fc2aff4eab5aa2817d5b6183a5ab842bc701609fb255e97728a2a95e19c14 --- lib/Personne.php | 20 ++++- lib/RecusPDF.php | 4 +- lib/Utils.php | 73 +++++++++++++++- lib/Versement.php | 1 + templates/versements_activites.tpl | 102 +++++++++------------- templates/versements_personnes.tpl | 4 +- www/admin/generer_activites.php | 29 +++---- www/admin/generer_personnes.php | 4 +- www/admin/versements_activites.php | 135 +++++++++++++++++++++++++---- 9 files changed, 263 insertions(+), 109 deletions(-) diff --git a/lib/Personne.php b/lib/Personne.php index 14a40d7..2497586 100644 --- a/lib/Personne.php +++ b/lib/Personne.php @@ -10,8 +10,8 @@ class Personne public $id; public $nomPrenom; public $adresse; - public $ville; public $codePostal; + public $ville; public $courriel; public $versements; // tableau des versements totaux par activité/tarif @@ -19,19 +19,31 @@ class Personne $id, $nomPrenom, $adresse, - $ville, $codePostal, - $courriel + $ville, + $courriel = "" ) { $this->id = $id; $this->nomPrenom = $nomPrenom; $this->adresse = $adresse; - $this->ville = $ville; $this->codePostal = $codePostal; + $this->ville = $ville; $this->courriel = $courriel; $this->versements = array(); } + public static function copier($p) + { + return new Personne( + $p->id, + $p->nomPrenom, + $p->adresse, + $p->codePostal, + $p->ville, + $p->courriel); + } + + /* * ajouter un versement pour une activité et un tarif donnés */ diff --git a/lib/RecusPDF.php b/lib/RecusPDF.php index bc4d70e..87d1f41 100644 --- a/lib/RecusPDF.php +++ b/lib/RecusPDF.php @@ -135,8 +135,8 @@ class RecusPDF extends tFPDF $nom, $lesMontants, $adresse, - $ville, - $code_postal) + $code_postal, + $ville) { $this->AddPage(); diff --git a/lib/Utils.php b/lib/Utils.php index d392ac7..5b2a348 100644 --- a/lib/Utils.php +++ b/lib/Utils.php @@ -7,10 +7,79 @@ use KD2\ZipWriter; class Utils { + // ------------------------------------------------------------ + // test nouvelle organisation + /** + * @return tarifs demandés + * @param array $tarifs + */ + public static function getTarifs($tarifs) + { + $db = DB::getInstance(); + $sql = sprintf( + 'SELECT id, id_service as idActivite, label, description, amount as montant + FROM services_fees + WHERE services_fees.%s', + $db->where('id', $tarifs)); + return $db->get($sql); + } + + /** + * @return activités correspondant aux tarifs demandés + * @param array $tarifs + */ + public static function getActivites($tarifs) + { + $db = DB::getInstance(); + $sql = sprintf( + 'SELECT services.id, services.label, services.description + FROM services + LEFT JOIN services_fees ON services_fees.id_service = services.id + WHERE services_fees.%s + GROUP BY services.id', + $db->where('id', $tarifs)); + return $db->get($sql); + } + + /** + * @return versements correspondants à l'année et aux tarifs donnés + * @param $annee + * @param array $tarifs + */ + public static function getVersementsTarifs($annee, $tarifs) + { + $db = DB::getInstance(); + $sql = sprintf( + 'SELECT + services_fees.id as idTarif, + membres.id as idUser, + acc_transactions_lines.credit as versement, + acc_transactions.date + FROM acc_transactions_users + INNER JOIN membres on acc_transactions_users.id_user = membres.id + INNER JOIN acc_transactions on acc_transactions_users.id_transaction = acc_transactions.id + INNER JOIN services_users on acc_transactions_users.id_service_user = services_users.id + INNER JOIN services_fees on services_users.id_fee = services_fees.id + INNER JOIN acc_transactions_lines on acc_transactions_lines.id_transaction = acc_transactions.id + WHERE + (strftime(%s, acc_transactions.date) = "%d" + AND + services_fees.%s + AND + acc_transactions_lines.credit > 0) + ORDER by services_fees.id, membres.id, acc_transactions.date', + '"%Y"', + $annee, + $db->where('id', $tarifs)); + return $db->get($sql); + } + + // ------------------------------------------------------------ + /** * @return liste des activités */ - public static function getActivites() + public static function getToutesActivites() { return DB::getInstance()->get( "SELECT @@ -26,7 +95,7 @@ class Utils * @return liste des tarifs d'une activité * @param $activite : identifiant de l'activité */ - public static function getTarifs($activite) + public static function getTarifsActivite($activite) { return DB::getInstance()->get( "SELECT diff --git a/lib/Versement.php b/lib/Versement.php index c5d0145..0a4a5bf 100644 --- a/lib/Versement.php +++ b/lib/Versement.php @@ -7,6 +7,7 @@ class Versement public $idActivite; public $idTarif; public $montant; + public $tauxReduction; public function __construct( $idActivite, diff --git a/templates/versements_activites.tpl b/templates/versements_activites.tpl index 3137e9c..36b8a26 100644 --- a/templates/versements_activites.tpl +++ b/templates/versements_activites.tpl @@ -3,7 +3,6 @@

Liste des versements par activité et tarif

-{* TODO : vérifier le détail de ce div *}
@@ -16,67 +15,46 @@ - {* Itération sur les activités *} - {foreach from=$listeParActiviteEtTarif item="activite"} - - {* Itération sur les tarifs de l'activité *} - {foreach from=$activite->tarifs item="tarif"} - -
- -

Activité « {$activite->label} »

- {if !empty($activite->description)} -

{$activite->description}

- {/if} -

tarif « {$tarif->titreTarif} », montant : - {if $tarif->montantTarif > 0}{$tarif->montantTarif|raw|money} - €{else}libre - {/if} -

-
- - {* - Itération sur les versements d'un tarif d'une activité - présentation : une table pour les versements d'une personne - *} - - {foreach from=$lesVersements key="rang" item="versement"} - {if $versement.idActivite == $activite->idActivite && - $versement.idTarif == $tarif->idTarif} - {if $versement.idUser != $currentUser} - {* changement de personne *} - {if $firstUser} - - {else} - {* fermer le tableau précédent *} - - {/if} - {* Afficher les infos de la personne *} - idTarif."_".$versement->idUser; ?> -

Versements de {$versement.nom} : 0,00 €

-
- - -
-
- idUser; ?> - {/if} - {* afficher les infos du versement de la personne*} -
- - - {$versement.versement|raw|money} - {$versement.date|date_format:"%d/%m/%Y"} -
- {/if} - {/foreach} {* Itération sur les versements *} -
-
- {/foreach} {* Itération sur les tarifs de l'activité *} - {/foreach} {* Itération sur les activités *} + {* Itération sur les versements *} + {foreach from=$lesVersements key="i" item="versement"} + {if $i == 0} + {* premier versement *} + idTarif; + $personneCourante = $versement->idUser; + ?> + {afficher_debut_tarif versement=$versement} + {afficher_debut_personne versement=$versement} + {afficher_versement versement=$versement rang=$i} + {else} + {* autre versement *} + {if $versement.idTarif != $tarifCourant} + {* changement de tarif *} + {* fin versements d'une personne *} + + idTarif; + $personneCourante = $versement->idUser; + ?> + {afficher_debut_tarif versement=$versement} + {afficher_debut_personne versement=$versement} + {afficher_versement versement=$versement rang=$i} + {elseif $versement->idUser != $personneCourante} + {* changement de personne *} + + idUser; + ?> + {afficher_debut_personne versement=$versement} + {afficher_versement versement=$versement rang=$i} + {else} + {* même personne *} + {afficher_versement versement=$versement rang=$i} + {/if} + {/if} + {/foreach} {* Itération sur les versements *} + + diff --git a/templates/versements_personnes.tpl b/templates/versements_personnes.tpl index 1feb389..fffcf07 100644 --- a/templates/versements_personnes.tpl +++ b/templates/versements_personnes.tpl @@ -17,8 +17,8 @@ Nom Prénom Montant Adresse - Ville Code postal + Ville @@ -34,8 +34,8 @@ {$versement.nom} {$versement.montant|raw|money} {$versement.adresse} - {$versement.ville} {$versement.codePostal} + {$versement.ville} {/foreach} diff --git a/www/admin/generer_activites.php b/www/admin/generer_activites.php index cd68d1d..80bb472 100644 --- a/www/admin/generer_activites.php +++ b/www/admin/generer_activites.php @@ -14,7 +14,6 @@ $versementsSelectionnes = array(); foreach ($lesLignes as $indice => $ligne) { $versementsSelectionnes[] = $_SESSION['lesVersements'][$ligne]; } - // cumuler les versements d'une personne $totalPersonnes = cumulerVersements($versementsSelectionnes); @@ -51,8 +50,8 @@ foreach ($totalPersonnes as $idPersonne => $personne) { $personne->nomPrenom, $lesMontants, $personne->adresse, - $personne->ville, - $personne->codePostal + $personne->codePostal, + $personne->ville ); // fabriquer le nom du fichier PDF $nom = str_replace(' ', '_', $personne->nomPrenom); @@ -73,44 +72,36 @@ $fichierZip = Utils::makeArchive( ); /** - * Cumuler les versements de chaque personne par tarif et activité + * Cumuler les versements de chaque personne par tarif * @param tableau des versements * @return tableau des versements cumulés */ function cumulerVersements($versements) { $totalPersonnes = array(); - $idActivite_courant = -1; $idTarif_courant = -1; $idPersonne_courant = -1; $totalVersements = 0; foreach ($versements as $ligne) { if ( - $ligne->idActivite != $idActivite_courant || $ligne->idTarif != $idTarif_courant || $ligne->idUser != $idPersonne_courant ) { - if ($idActivite_courant != -1) { + if ($idTarif_courant != -1) { $totalPersonnes["$idPersonne_courant"]->ajouterVersement( - $idActivite_courant, + $_SESSION['lesTarifs'][$idTarif_courant]->idActivite, $idTarif_courant, $totalVersements/100 ); } - $idActivite_courant = $ligne->idActivite; $idTarif_courant = $ligne->idTarif; $idPersonne_courant = $ligne->idUser; $totalVersements = $ligne->versement; // 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"] = new Personne( - $ligne->idUser, - $ligne->nom, - $ligne->adresse, - $ligne->ville, - $ligne->codePostal, - $ligne->courriel - ); + if (!array_key_exists($idPersonne_courant, $totalPersonnes)) + { + $totalPersonnes["$idPersonne_courant"] = + Personne::copier($_SESSION['membresDonateurs'][$ligne->idUser]); } } else { // cumuler versements @@ -119,7 +110,7 @@ function cumulerVersements($versements) } // et le dernier $totalPersonnes["$idPersonne_courant"]->ajouterVersement( - $idActivite_courant, + $_SESSION['lesTarifs'][$idTarif_courant]->idActivite, $idTarif_courant, $totalVersements/100 ); diff --git a/www/admin/generer_personnes.php b/www/admin/generer_personnes.php index 2086886..d153e8b 100644 --- a/www/admin/generer_personnes.php +++ b/www/admin/generer_personnes.php @@ -45,8 +45,8 @@ foreach ($versementsSelectionnes as $idPersonne => $personne) { $personne->nom, array($personne->montant/100), $personne->adresse, - $personne->ville, - $personne->codePostal + $personne->codePostal, + $personne->ville ); // fabriquer le nom du fichier PDF $nom = str_replace(' ', '_', $personne->nom); diff --git a/www/admin/versements_activites.php b/www/admin/versements_activites.php index c844b87..9d2a32f 100644 --- a/www/admin/versements_activites.php +++ b/www/admin/versements_activites.php @@ -2,41 +2,144 @@ namespace Garradin; +use Garradin\Plugin\RecusFiscaux\Activite; +use Garradin\Plugin\RecusFiscaux\Personne; +use Garradin\Plugin\RecusFiscaux\Tarif; 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("va.php::annee_recu = (" .$_SESSION['annee_recu'] . ")"); if (! isset($_SESSION['annee_recu']) || $_SESSION['annee_recu'] == "") { \Garradin\Utils::redirect(PLUGIN_URL . 'index.php'); } // récupérer les infos du formulaire -$lesTarifs = f('tarifs') ?: []; +$tarifsSelectionnes = f('tarifs') ?: []; // taux de réduction associés -$lesTaux = array(); -foreach ($lesTarifs as $idTarif) { +$tauxSelectionnes = array(); +foreach ($tarifsSelectionnes as $idTarif) { $nomRadio = "taux_reduction_" . $idTarif; $valRadio = f("$nomRadio"); - $lesTaux[] = $valRadio ? $valRadio: $plugin->getConfig()->reduction[0]->taux; + $tauxSelectionnes[] = $valRadio ? $valRadio: $plugin->getConfig()->reduction[0]->taux; } -// error_log("Tarifs = " . print_r($lesTarifs, true) . "\n"); -// error_log("Réducs = " . print_r($lesTaux, true) . "\n"); +// obtenir les instances de tarifs correspondant à la sélection +$lesTarifs = array(); +foreach (Utils::getTarifs($tarifsSelectionnes) as $ot) { + $lesTarifs[$ot->id] = Tarif::copier($ot); +} +$_SESSION['lesTarifs'] = $lesTarifs; -// liste des versements correspondants -$_SESSION['lesVersements'] = Utils::getVersementsActivite($_SESSION['annee_recu'], $lesTarifs); +// activités correspondants aux tarifs sélectionnés +$lesActivites = array(); +foreach (Utils::getActivites($tarifsSelectionnes) as $activite) { + $lesActivites[$activite->id] = Activite::copier($activite); +} +$_SESSION['lesActivites'] = $lesActivites; -// liste des activités -$activites = Utils::getActivites(); -foreach ($activites as $num => $activite) +// versements correspondants aux tarifs sélectionnés +$_SESSION['lesVersements'] = Utils::getVersementsTarifs($_SESSION['annee_recu'], $tarifsSelectionnes); + +// membres donateurs +$membresDonateurs = array(); +$versementsMembres = Utils::getVersementsTotaux($_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; + +// ------------------------------------------------------------------------ +// fonctions pour l'affichage + +// afficher les informations d'une activité et d'un tarif +$tpl->register_function('afficher_debut_tarif', function ($params) { - // ajouter les tarifs de l'activité - $activite->{'tarifs'} = Utils::getTarifs($activite->{'idActivite'}); -} + $versement = $params['versement']; + $idTarif = $versement->idTarif; + $tarif = $_SESSION['lesTarifs'][$idTarif]; + $idActivite = $tarif->idActivite; + $activite = $_SESSION['lesActivites'][$idActivite]; + + $out = '
+ '; + $out .= sprintf(' +

Activité « %s »

', $activite->label); + if (!empty($activite->description)) { + $out .= sprintf(' +

%s

', $activite->description); + } + $out .= sprintf(' +

tarif « %s »', $tarif->label); + if ($tarif->montant > 0) { + $out .= sprintf(' montant : %.2f €', $tarif->montant/100); + } else { + $out .= ' montant : libre'; + } + $out .= '

+
'; + return $out; +}); + +// afficher les informations d'une personne +$tpl->register_function('afficher_debut_personne', function ($params) +{ + $versement = $params['versement']; + $idUser = $versement->idUser; + $personne = $_SESSION['membresDonateurs'][$idUser]; + $idVersement = $versement->idTarif . "_" . $versement->idUser; + $out = sprintf('

Versements de %s : 0,00 €

', + $personne->nomPrenom, + $idVersement); + $out .= sprintf(' +
', + $idVersement); + $out .= sprintf(' + ', + $idVersement, + $idVersement); + $out .= sprintf(' + ', + $idVersement); + $out .= '
+
'; + return $out; +}); + +// afficher un versement +$tpl->register_function('afficher_versement', function ($params) +{ + $versement = $params['versement']; + $rang = $params['rang']; + $idVersement = $versement->idTarif . "_" . $versement->idUser; + $out = '
' : 'impair">'; + $out .= sprintf(' + + + %.2f + %s +
', + $idVersement, $idVersement, + $rang, $rang, + $idVersement, $rang, $idVersement, $idVersement, $rang, + $versement->versement/100, + date_format(date_create($versement->date),"d/m/Y")); + return $out; +}); +// ------------------------------------------------------------------------ // préparation de l'affichage +$tpl->assign('lesActivites', $lesActivites); +$tpl->assign('lesTarifs', $lesTarifs); $tpl->assign('lesVersements', $_SESSION['lesVersements']); -$tpl->assign('listeParActiviteEtTarif', $activites); $tpl->assign('plugin_css', ['style.css']); // envoyer au template From 7dbbe5bfc1d44e847b3101705570ae2422c36560 Mon Sep 17 00:00:00 2001 From: engel <> Date: Thu, 17 Feb 2022 07:49:04 +0000 Subject: [PATCH 2/6] ajout fonction membres donateurs ; tri versements par nom donateur au lieu id FossilOrigin-Name: af2e3c5f9d4b98681e8c526445b67d84964e36f068a2575b7c775a45a79acc13 --- lib/Utils.php | 40 +++++++++++++++++++++++++++--- templates/versements_activites.tpl | 10 ++++++-- www/admin/versements_activites.php | 2 +- 3 files changed, 46 insertions(+), 6 deletions(-) diff --git a/lib/Utils.php b/lib/Utils.php index 5b2a348..e99b4bf 100644 --- a/lib/Utils.php +++ b/lib/Utils.php @@ -67,13 +67,47 @@ class Utils services_fees.%s AND acc_transactions_lines.credit > 0) - ORDER by services_fees.id, membres.id, acc_transactions.date', + ORDER by services_fees.id, membres.nom, acc_transactions.date', '"%Y"', $annee, $db->where('id', $tarifs)); return $db->get($sql); } + /** + * @return personnes ayant versé des dons pour une année donnée + * @param $annee + */ + public static function getDonateurs($annee) + { + $sql = + "SELECT + membres.id as idUser, + membres.nom as nom, + membres.adresse as adresse, + membres.code_postal as codePostal, + membres.ville as ville + 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 membres.id + ORDER by membres.nom COLLATE U_NOCASE; + "; + return DB::getInstance()->get($sql, $annee); + } + // ------------------------------------------------------------ /** @@ -232,7 +266,7 @@ class Utils } /** - * liste du total de versements par personne pour une année donnée + * Versements totaux par personne pour une année donnée * @param année */ public static function getVersementsTotaux($annee) { @@ -260,7 +294,7 @@ class Utils acc_transactions_users.id_user = membres.id ) GROUP by acc_transactions_users.id_user - ORDER by membres.nom COLLATE NOCASE; + ORDER by membres.nom COLLATE U_NOCASE; "; return DB::getInstance()->get($sql, $annee); } diff --git a/templates/versements_activites.tpl b/templates/versements_activites.tpl index 36b8a26..83dc026 100644 --- a/templates/versements_activites.tpl +++ b/templates/versements_activites.tpl @@ -8,7 +8,13 @@
-
+{* + + +
+*} + +
@@ -39,7 +45,7 @@ {afficher_debut_tarif versement=$versement} {afficher_debut_personne versement=$versement} {afficher_versement versement=$versement rang=$i} - {elseif $versement->idUser != $personneCourante} + {elseif $versement.idUser != $personneCourante} {* changement de personne *}
idUser] = new Personne($versement->idUser, $versement->nom, From d7faf06f104634a62b97744c376b859d286602a8 Mon Sep 17 00:00:00 2001 From: engel <> Date: Thu, 17 Feb 2022 09:21:33 +0000 Subject: [PATCH 3/6] 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 From a3e855870c567f38b598132ae7d22af22e3690db Mon Sep 17 00:00:00 2001 From: engel <> Date: Thu, 17 Feb 2022 14:14:12 +0000 Subject: [PATCH 4/6] =?UTF-8?q?int=C3=A9gration=20taux=20r=C3=A9duction=20?= =?UTF-8?q?dans=20index.tpl?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit FossilOrigin-Name: 8c48a54785b11f3109f0ca66e5a8fe5220a632352333399477522fba9ed78662 --- templates/index.tpl | 33 +++++++++++++++++++++--------- www/admin/versements_activites.php | 2 +- 2 files changed, 24 insertions(+), 11 deletions(-) diff --git a/templates/index.tpl b/templates/index.tpl index 77c1c06..c7df99a 100644 --- a/templates/index.tpl +++ b/templates/index.tpl @@ -47,6 +47,20 @@ + + +