adaptation versements personnes aux nouvelles structures

FossilOrigin-Name: ceca540fd6ead507a1d322c07a884d0aa1b8a44cf9501f8179ddaee4d12df3fb
This commit is contained in:
engel 2022-02-17 09:21:33 +00:00
parent 7dbbe5bfc1
commit d7faf06f10
5 changed files with 66 additions and 22 deletions

View File

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

View File

@ -31,11 +31,11 @@
value=$rang}
</td>
<td>{$versement.idUser}</td>
<td>{$versement.nom}</td>
<td class="montant">{$versement.montant|raw|money}</td>
<td>{$versement.adresse}</td>
<td>{$versement.codePostal}</td>
<td>{$versement.ville}</td>
<td>{$lesDonateurs[$versement.idUser]->nomPrenom}</td>
<td class="montant">{$versement.versement|raw|money}</td>
<td>{$lesDonateurs[$versement.idUser]->adresse}</td>
<td>{$lesDonateurs[$versement.idUser]->codePostal}</td>
<td>{$lesDonateurs[$versement.idUser]->ville}</td>
</tr>
{/foreach}
</tbody>

View File

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

View File

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

View File

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