simplification cumul versements

FossilOrigin-Name: e4a942b3cc6913da11da2dfd480b2f71703c1781911e8d7c5e0a57c1b170bfd8
This commit is contained in:
engel 2022-03-25 15:09:55 +00:00
parent 83cc830fb1
commit b1645828fc
6 changed files with 44 additions and 84 deletions

View File

@ -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;
}
}
}

View File

@ -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)

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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'],
$_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

View File

@ -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