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 $codePostal;
public $ville; public $ville;
public $courriel; public $courriel;
public $versements; // tableau des versements totaux par activité/tarif public $versements; // versements par taux de réduction
public function __construct( public function __construct(
$id, $id,
@ -30,7 +30,7 @@ class Personne
$this->codePostal = $codePostal; $this->codePostal = $codePostal;
$this->ville = $ville; $this->ville = $ville;
$this->courriel = $courriel; $this->courriel = $courriel;
$this->versements = array(); $this->versements = array(); // clé = tarif, valeur = montant
} }
/** /**
@ -49,24 +49,21 @@ class Personne
/** /**
* ajouter un versement * ajouter un versement
* @param $idActivite
* @param $idTarif
* @param $montant
* @param $tauxReduction * @param $tauxReduction
* @param $montant
*/ */
public function ajouterVersement( public function ajouterVersement(
$idActivite, $tauxReduction,
$idTarif, $montant
$montant,
$tauxReduction
) )
{ {
$this->versements[] = if (array_key_exists($tauxReduction, $this->versements))
new Versement( {
$idActivite, $this->versements[$tauxReduction] += $montant;
$idTarif, }
$montant, else
$tauxReduction {
); $this->versements[$tauxReduction] = $montant;
}
} }
} }

View File

@ -72,6 +72,7 @@ class Utils
/** /**
* @return versements correspondants à l'année et aux tarifs donnés * @return versements correspondants à l'année et aux tarifs donnés
* triés par tarif, nom, date
* @param $annee * @param $annee
* @param array $tarifs * @param array $tarifs
* @param array $champsNom : liste non vide des champs de nom/prénom * @param array $champsNom : liste non vide des champs de nom/prénom
@ -209,7 +210,7 @@ class Utils
* @param $annee * @param $annee
* @param array $champsNom : champs qui définissent le nom et le prénom d'une personne * @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 // concaténer les champs nom/prénoms pour la sélection
$nom = 'trim(' . Utils::combinerChamps($champsNom) . ') as nom,'; $nom = 'trim(' . Utils::combinerChamps($champsNom) . ') as nom,';
@ -241,7 +242,16 @@ class Utils
GROUP by membres.id GROUP by membres.id
ORDER by " . $tri . " COLLATE U_NOCASE 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) public static function getLignesReduction($lesTaux)

View File

@ -61,22 +61,12 @@ foreach ($totalPersonnes as $idPersonne => $personne)
$articlesCGI, $articlesCGI,
$signature $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( $html->imprimer_recu(
$_SESSION['annee_recu'], $_SESSION['annee_recu'],
$personne->id, $personne->id,
$personne->nomPrenom, $personne->nomPrenom,
$lesMontants, $personne->versements,
$personne->adresse, $personne->adresse,
$personne->codePostal, $personne->codePostal,
$personne->ville $personne->ville
@ -117,12 +107,12 @@ function cumulerVersements($versements)
$ligne->idUser != $idPersonneCourant $ligne->idUser != $idPersonneCourant
) )
{ {
if ($idTarifCourant != -1) { if ($idTarifCourant != -1)
{
// changement de tarif ou de personne
$totalPersonnes[$idPersonneCourant]->ajouterVersement( $totalPersonnes[$idPersonneCourant]->ajouterVersement(
$_SESSION['lesTarifs'][$idTarifCourant]->idActivite, $_SESSION['tauxSelectionnes'][$idTarifCourant],
$idTarifCourant, $totalVersements/100
$totalVersements/100,
$_SESSION['tauxSelectionnes'][$idTarifCourant]
); );
} }
$idTarifCourant = $ligne->idTarif; $idTarifCourant = $ligne->idTarif;
@ -140,10 +130,8 @@ function cumulerVersements($versements)
} }
// et le dernier // et le dernier
$totalPersonnes[$idPersonneCourant]->ajouterVersement( $totalPersonnes[$idPersonneCourant]->ajouterVersement(
$_SESSION['lesTarifs'][$idTarifCourant]->idActivite, $_SESSION['tauxSelectionnes'][$idTarifCourant],
$idTarifCourant, $totalVersements/100
$totalVersements/100,
$_SESSION['tauxSelectionnes'][$idTarifCourant]
); );
return $totalPersonnes; return $totalPersonnes;
} }

View File

@ -64,22 +64,11 @@ foreach ($totalPersonnes as $idPersonne => $personne)
$signature $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( $html->imprimer_recu(
$_SESSION['annee_recu'], $_SESSION['annee_recu'],
$personne->id, $personne->id,
$personne->nomPrenom, $personne->nomPrenom,
$lesMontants, $personne->versements,
$personne->adresse, $personne->adresse,
$personne->codePostal, $personne->codePostal,
$personne->ville $personne->ville
@ -120,10 +109,8 @@ function cumulerVersements($versements)
if ($idPersonneCourant != -1) if ($idPersonneCourant != -1)
{ {
$totalPersonnes[$idPersonneCourant]->ajouterVersement( $totalPersonnes[$idPersonneCourant]->ajouterVersement(
0, $_SESSION['taux_reduction'],
0, $totalVersements/100
$totalVersements/100,
$_SESSION['taux_reduction']
); );
} }
$idPersonneCourant = $ligne->idUser; $idPersonneCourant = $ligne->idUser;
@ -140,10 +127,8 @@ function cumulerVersements($versements)
} }
// et le dernier // et le dernier
$totalPersonnes[$idPersonneCourant]->ajouterVersement( $totalPersonnes[$idPersonneCourant]->ajouterVersement(
0, $_SESSION['taux_reduction'],
0, $totalVersements/100
$totalVersements/100,
$_SESSION['taux_reduction']
); );
return $totalPersonnes; return $totalPersonnes;
} }

View File

@ -40,14 +40,14 @@ $_SESSION['tauxSelectionnes'] = $tauxSelectionnes;
// obtenir les instances de tarifs correspondant à la sélection // obtenir les instances de tarifs correspondant à la sélection
$lesTarifs = array(); $lesTarifs = array();
foreach (Utils::getTarifs($tarifsSelectionnes) as $ot) { foreach (Utils::getTarifs($tarifsSelectionnes) as $ot) {
$lesTarifs[$ot->id] = Tarif::copier($ot); $lesTarifs[$ot->id] = $ot;
} }
$_SESSION['lesTarifs'] = $lesTarifs; $_SESSION['lesTarifs'] = $lesTarifs;
// activités correspondants aux tarifs sélectionnés // activités correspondants aux tarifs sélectionnés
$lesActivites = array(); $lesActivites = array();
foreach (Utils::getActivites($tarifsSelectionnes) as $activite) { foreach (Utils::getActivites($tarifsSelectionnes) as $activite) {
$lesActivites[$activite->id] = Activite::copier($activite); $lesActivites[$activite->id] = $activite;
} }
$_SESSION['lesActivites'] = $lesActivites; $_SESSION['lesActivites'] = $lesActivites;
@ -57,18 +57,8 @@ $_SESSION['lesVersements'] = Utils::getVersementsTarifs($_SESSION['annee_recu'],
$champsNom); $champsNom);
// membres donateurs // membres donateurs
$versementsMembres = Utils::getDonateurs($_SESSION['annee_recu'], $_SESSION['membresDonateurs'] = Utils::getDonateurs($_SESSION['annee_recu'],
$champsNom); $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 // fonctions pour l'affichage

View File

@ -29,18 +29,8 @@ $_SESSION['lesVersements'] = Utils::getVersementsPersonnes($_SESSION['annee_recu
$champsNom); $champsNom);
// membres donateurs // membres donateurs
$versementsMembres = Utils::getDonateurs($_SESSION['annee_recu'], $_SESSION['membresDonateurs'] = Utils::getDonateurs($_SESSION['annee_recu'],
$champsNom); $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 // fonctions pour l'affichage