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); 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 * @return personnes ayant versé des dons pour une année donnée
* @param $annee * @param $annee
@ -269,7 +300,7 @@ class Utils
* Versements totaux par personne pour une année donnée * Versements totaux par personne pour une année donnée
* @param année * @param année
*/ */
public static function getVersementsTotaux($annee) { public static function getVersementsTotaux_old($annee) {
$sql = $sql =
"SELECT "SELECT
acc_transactions_users.id_user as idUser, acc_transactions_users.id_user as idUser,

View File

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

View File

@ -11,7 +11,7 @@ $lesLignes = f('selected');
// filtrer les versements sélectionnés // filtrer les versements sélectionnés
$versementsSelectionnes = array(); $versementsSelectionnes = array();
foreach ($lesLignes as $indice => $ligne) { foreach ($lesLignes as $ligne) {
$versementsSelectionnes[] = $_SESSION['lesVersements'][$ligne]; $versementsSelectionnes[] = $_SESSION['lesVersements'][$ligne];
} }
// cumuler les versements d'une personne // cumuler les versements d'une personne
@ -73,8 +73,8 @@ $fichierZip = Utils::makeArchive(
/** /**
* Cumuler les versements de chaque personne par tarif * Cumuler les versements de chaque personne par tarif
* @param tableau des versements * @param tableau des versements triés par idTarif, idUser, date
* @return tableau des versements cumulés * @return tableau des versements cumulés : id => Personne
*/ */
function cumulerVersements($versements) 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 // créer les infos de la personne, sauf si elle est déjà présente
if (!array_key_exists($idPersonne_courant, $totalPersonnes)) if (!array_key_exists($idPersonne_courant, $totalPersonnes))
{ {
$totalPersonnes["$idPersonne_courant"] = $totalPersonnes["$idPersonne_courant"] = Personne::copier($_SESSION['membresDonateurs'][$ligne->idUser]);
Personne::copier($_SESSION['membresDonateurs'][$ligne->idUser]);
} }
} else { } else {
// cumuler versements // cumuler versements

View File

@ -11,7 +11,7 @@ $lesLignes = f('selected');
// filtrer les versements sélectionnés // filtrer les versements sélectionnés
$versementsSelectionnes = array(); $versementsSelectionnes = array();
foreach ($lesLignes as $indice => $ligne) { foreach ($lesLignes as $ligne) {
$versementsSelectionnes[] = $_SESSION['lesVersementsTotaux'][$ligne]; $versementsSelectionnes[] = $_SESSION['lesVersementsTotaux'][$ligne];
} }
@ -28,7 +28,7 @@ $logoCERFA = PLUGIN_ROOT . "/data/logoCerfa.png";
$signature = PLUGIN_ROOT . "/data/default_signature.png"; $signature = PLUGIN_ROOT . "/data/default_signature.png";
$listeFichiers = []; $listeFichiers = [];
foreach ($versementsSelectionnes as $idPersonne => $personne) { foreach ($versementsSelectionnes as $ligne) {
// générer un fichier par reçu // générer un fichier par reçu
$pdf = new RecusPDF( $pdf = new RecusPDF(
'DejaVu', 'DejaVu',
@ -41,15 +41,15 @@ foreach ($versementsSelectionnes as $idPersonne => $personne) {
// extraire les montants des versements // extraire les montants des versements
$pdf->imprimer_recu( $pdf->imprimer_recu(
$_SESSION['annee_recu'], $_SESSION['annee_recu'],
$personne->idUser, $ligne->idUser,
$personne->nom, $_SESSION['membresDonateurs'][$ligne->idUser]->nomPrenom,
array($personne->montant/100), array($ligne->versement/100),
$personne->adresse, $_SESSION['membresDonateurs'][$ligne->idUser]->adresse,
$personne->codePostal, $_SESSION['membresDonateurs'][$ligne->idUser]->codePostal,
$personne->ville $_SESSION['membresDonateurs'][$ligne->idUser]->ville
); );
// fabriquer le nom du fichier PDF // fabriquer le nom du fichier PDF
$nom = str_replace(' ', '_', $personne->nom); $nom = str_replace(' ', '_', $_SESSION['membresDonateurs'][$ligne->idUser]->nomPrenom);
$nom = str_replace("'", "", $nom); $nom = str_replace("'", "", $nom);
// $nomFichier = Utils::getPDFDirectory() . "/" . 'recu_' . $annee_recu . '_' . $nom . '.pdf'; // $nomFichier = Utils::getPDFDirectory() . "/" . 'recu_' . $annee_recu . '_' . $nom . '.pdf';
$nomFichier = PLUGIN_ROOT . '/pdf/recu_' . $_SESSION['annee_recu'] . '_' . $nom . '.pdf'; $nomFichier = PLUGIN_ROOT . '/pdf/recu_' . $_SESSION['annee_recu'] . '_' . $nom . '.pdf';

View File

@ -2,19 +2,33 @@
namespace Garradin; namespace Garradin;
use Garradin\Plugin\RecusFiscaux\Personne;
use Garradin\Plugin\RecusFiscaux\Utils; use Garradin\Plugin\RecusFiscaux\Utils;
// vérifier si l'année a bien été sélectionnée au préalable // vérifier si l'année a bien été sélectionnée au préalable
$_SESSION['annee_recu'] = f('annee_recu'); $_SESSION['annee_recu'] = f('annee_recu');
// error_log("vp.php::annee_recu = (" .$_SESSION['annee_recu'] . ")");
if (! isset($_SESSION['annee_recu']) || $_SESSION['annee_recu'] == "") { if (! isset($_SESSION['annee_recu']) || $_SESSION['annee_recu'] == "") {
\Garradin\Utils::redirect(PLUGIN_URL . 'index.php'); \Garradin\Utils::redirect(PLUGIN_URL . 'index.php');
} }
// liste des versements totaux par personne
// versements totaux par personne
$_SESSION['lesVersementsTotaux'] = Utils::getVersementsTotaux($_SESSION['annee_recu']); $_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 // préparation de l'affichage
$tpl->assign('lesVersementsTotaux', $_SESSION['lesVersementsTotaux']); $tpl->assign('lesVersementsTotaux', $_SESSION['lesVersementsTotaux']);
$tpl->assign('lesDonateurs', $membresDonateurs);
$tpl->assign('plugin_css', ['style.css']); $tpl->assign('plugin_css', ['style.css']);
// envoyer au template // envoyer au template