From b1645828fc75dc111df0bc768adb8057e67d1843 Mon Sep 17 00:00:00 2001 From: engel <> Date: Fri, 25 Mar 2022 15:09:55 +0000 Subject: [PATCH] simplification cumul versements FossilOrigin-Name: e4a942b3cc6913da11da2dfd480b2f71703c1781911e8d7c5e0a57c1b170bfd8 --- lib/Personne.php | 29 +++++++++++++---------------- lib/Utils.php | 14 ++++++++++++-- www/admin/generer_activites.php | 30 +++++++++--------------------- www/admin/generer_personnes.php | 25 +++++-------------------- www/admin/versements_activites.php | 18 ++++-------------- www/admin/versements_personnes.php | 12 +----------- 6 files changed, 44 insertions(+), 84 deletions(-) diff --git a/lib/Personne.php b/lib/Personne.php index 118aca1..9a10979 100644 --- a/lib/Personne.php +++ b/lib/Personne.php @@ -13,7 +13,7 @@ class Personne public $codePostal; public $ville; public $courriel; - public $versements; // tableau des versements totaux par activité/tarif + public $versements; // versements par taux de réduction public function __construct( $id, @@ -30,7 +30,7 @@ class Personne $this->codePostal = $codePostal; $this->ville = $ville; $this->courriel = $courriel; - $this->versements = array(); + $this->versements = array(); // clé = tarif, valeur = montant } /** @@ -49,24 +49,21 @@ class Personne /** * ajouter un versement - * @param $idActivite - * @param $idTarif - * @param $montant * @param $tauxReduction + * @param $montant */ public function ajouterVersement( - $idActivite, - $idTarif, - $montant, - $tauxReduction + $tauxReduction, + $montant ) { - $this->versements[] = - new Versement( - $idActivite, - $idTarif, - $montant, - $tauxReduction - ); + if (array_key_exists($tauxReduction, $this->versements)) + { + $this->versements[$tauxReduction] += $montant; + } + else + { + $this->versements[$tauxReduction] = $montant; + } } } diff --git a/lib/Utils.php b/lib/Utils.php index b973f9e..c9f6121 100644 --- a/lib/Utils.php +++ b/lib/Utils.php @@ -72,6 +72,7 @@ class Utils /** * @return versements correspondants à l'année et aux tarifs donnés + * triés par tarif, nom, date * @param $annee * @param array $tarifs * @param array $champsNom : liste non vide des champs de nom/prénom @@ -209,7 +210,7 @@ class Utils * @param $annee * @param array $champsNom : champs qui définissent le nom et le prénom d'une personne */ - public static function getDonateurs($annee, $champsNom) + public static function getDonateurs($annee, $champsNom) : array { // concaténer les champs nom/prénoms pour la sélection $nom = 'trim(' . Utils::combinerChamps($champsNom) . ') as nom,'; @@ -241,7 +242,16 @@ class Utils GROUP by membres.id ORDER by " . $tri . " COLLATE U_NOCASE "; - return DB::getInstance()->get($sql, $annee); + $donateurs = array(); + foreach (DB::getInstance()->iterate($sql, $annee) as $personne) + { + $donateurs[$personne->idUser] = new Personne($personne->idUser, + $personne->nom, + $personne->adresse, + $personne->codePostal, + $personne->ville); + } + return $donateurs; } public static function getLignesReduction($lesTaux) diff --git a/www/admin/generer_activites.php b/www/admin/generer_activites.php index f73abf8..39e66cf 100644 --- a/www/admin/generer_activites.php +++ b/www/admin/generer_activites.php @@ -61,22 +61,12 @@ foreach ($totalPersonnes as $idPersonne => $personne) $articlesCGI, $signature ); - // extraire les montants des versements - $lesMontants = array(); - foreach ($personne->versements as $versement) - { - if (array_key_exists($versement->tauxReduction, $lesMontants)) { - $lesMontants[$versement->tauxReduction] += $versement->montant; - } - else { - $lesMontants[$versement->tauxReduction] = $versement->montant; - } - } + $html->imprimer_recu( $_SESSION['annee_recu'], $personne->id, $personne->nomPrenom, - $lesMontants, + $personne->versements, $personne->adresse, $personne->codePostal, $personne->ville @@ -117,12 +107,12 @@ function cumulerVersements($versements) $ligne->idUser != $idPersonneCourant ) { - if ($idTarifCourant != -1) { + if ($idTarifCourant != -1) + { + // changement de tarif ou de personne $totalPersonnes[$idPersonneCourant]->ajouterVersement( - $_SESSION['lesTarifs'][$idTarifCourant]->idActivite, - $idTarifCourant, - $totalVersements/100, - $_SESSION['tauxSelectionnes'][$idTarifCourant] + $_SESSION['tauxSelectionnes'][$idTarifCourant], + $totalVersements/100 ); } $idTarifCourant = $ligne->idTarif; @@ -140,10 +130,8 @@ function cumulerVersements($versements) } // et le dernier $totalPersonnes[$idPersonneCourant]->ajouterVersement( - $_SESSION['lesTarifs'][$idTarifCourant]->idActivite, - $idTarifCourant, - $totalVersements/100, - $_SESSION['tauxSelectionnes'][$idTarifCourant] + $_SESSION['tauxSelectionnes'][$idTarifCourant], + $totalVersements/100 ); return $totalPersonnes; } diff --git a/www/admin/generer_personnes.php b/www/admin/generer_personnes.php index b638c8b..8d3b1f7 100644 --- a/www/admin/generer_personnes.php +++ b/www/admin/generer_personnes.php @@ -64,22 +64,11 @@ foreach ($totalPersonnes as $idPersonne => $personne) $signature ); - // extraire les montants des versements - $lesMontants = array(); - foreach ($personne->versements as $versement) - { - if (array_key_exists($versement->tauxReduction, $lesMontants)) { - $lesMontants[$versement->tauxReduction] += $versement->montant; - } - else { - $lesMontants[$versement->tauxReduction] = $versement->montant; - } - } $html->imprimer_recu( $_SESSION['annee_recu'], $personne->id, $personne->nomPrenom, - $lesMontants, + $personne->versements, $personne->adresse, $personne->codePostal, $personne->ville @@ -120,10 +109,8 @@ function cumulerVersements($versements) if ($idPersonneCourant != -1) { $totalPersonnes[$idPersonneCourant]->ajouterVersement( - 0, - 0, - $totalVersements/100, - $_SESSION['taux_reduction'] + $_SESSION['taux_reduction'], + $totalVersements/100 ); } $idPersonneCourant = $ligne->idUser; @@ -140,10 +127,8 @@ function cumulerVersements($versements) } // et le dernier $totalPersonnes[$idPersonneCourant]->ajouterVersement( - 0, - 0, - $totalVersements/100, - $_SESSION['taux_reduction'] + $_SESSION['taux_reduction'], + $totalVersements/100 ); return $totalPersonnes; } diff --git a/www/admin/versements_activites.php b/www/admin/versements_activites.php index a618731..68fa738 100644 --- a/www/admin/versements_activites.php +++ b/www/admin/versements_activites.php @@ -40,14 +40,14 @@ $_SESSION['tauxSelectionnes'] = $tauxSelectionnes; // obtenir les instances de tarifs correspondant à la sélection $lesTarifs = array(); foreach (Utils::getTarifs($tarifsSelectionnes) as $ot) { - $lesTarifs[$ot->id] = Tarif::copier($ot); + $lesTarifs[$ot->id] = $ot; } $_SESSION['lesTarifs'] = $lesTarifs; // activités correspondants aux tarifs sélectionnés $lesActivites = array(); foreach (Utils::getActivites($tarifsSelectionnes) as $activite) { - $lesActivites[$activite->id] = Activite::copier($activite); + $lesActivites[$activite->id] = $activite; } $_SESSION['lesActivites'] = $lesActivites; @@ -57,18 +57,8 @@ $_SESSION['lesVersements'] = Utils::getVersementsTarifs($_SESSION['annee_recu'], $champsNom); // membres donateurs -$versementsMembres = Utils::getDonateurs($_SESSION['annee_recu'], - $champsNom); -$membresDonateurs = array(); -foreach ($versementsMembres as $versement) { - $membresDonateurs[$versement->idUser] = new Personne($versement->idUser, - $versement->nom, - $versement->adresse, - $versement->codePostal, - $versement->ville); -} -$_SESSION['membresDonateurs'] = $membresDonateurs; - +$_SESSION['membresDonateurs'] = Utils::getDonateurs($_SESSION['annee_recu'], + $champsNom); // ------------------------------------------------------------------------ // fonctions pour l'affichage diff --git a/www/admin/versements_personnes.php b/www/admin/versements_personnes.php index 5d6df3b..59a3ae6 100644 --- a/www/admin/versements_personnes.php +++ b/www/admin/versements_personnes.php @@ -29,18 +29,8 @@ $_SESSION['lesVersements'] = Utils::getVersementsPersonnes($_SESSION['annee_recu $champsNom); // membres donateurs -$versementsMembres = Utils::getDonateurs($_SESSION['annee_recu'], +$_SESSION['membresDonateurs'] = Utils::getDonateurs($_SESSION['annee_recu'], $champsNom); -$membresDonateurs = array(); -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