$ligne) { $versementsSelectionnes[] = $_SESSION['lesVersements'][$ligne]; } // cumuler les versements d'une personne $totalPersonnes = cumulerVersements($versementsSelectionnes); // générer les reçus $nomAsso = Services::getNomAsso(); $adresseAsso = Services::getAdresseAsso(); // TODO // - mémoriser numéro reçu pour pouvoir générer des reçus en plusieurs sessions indépendantes // - paramétrer l'année fiscale $annee_recu = "2021"; // récupérer le logo CERFA (bôf) et la signature // TODO : paramétrer le répertoire des images $logoCERFA = PLUGIN_ROOT . "/data/logoCerfa.png"; $signature = PLUGIN_ROOT . "/data/default_signature.png"; $listeFichiers = []; foreach ($totalPersonnes as $idPersonne => $personne) { // générer un fichier par reçu $pdf = new RecusPDF( 'DejaVu', 'SerifCondensed', $nomAsso, $adresseAsso, $logoCERFA, $signature ); // extraire les montants des versements $lesMontants = array(); foreach ($personne->versements as $versement) { $lesMontants[] = $versement->montant; } $pdf->imprimer_recu( $annee_recu, $personne->id, $personne->nomPrenom, $lesMontants, $personne->adresse, $personne->ville, $personne->codePostal ); // fabriquer le nom du fichier PDF $nom = str_replace(' ', '_', $personne->nomPrenom); $nom = str_replace("'", "", $nom); // $nomFichier = Utils::getPDFDirectory() . "/" . 'recu_' . $annee_recu . '_' . $nom . '.pdf'; $nomFichier = PLUGIN_ROOT . '/pdf/recu_' . $annee_recu . '_' . $nom . '.pdf'; $pdf->Output('F', $nomFichier); // ajouter le nom du fichier à la liste pour mettre dans une archive $listeFichiers[] = $nomFichier; } // faire une archive zip $fichierZip = Services::makeArchive( $listeFichiers, $annee_recu, PLUGIN_ROOT . "/zip" ); // la copier dans le cache ? // afficher la page de téléchargement => n'est plus utile // le téléchargement démarre dès la fin de la création du fichier zip //$_SESSION['zipfile'] = $fichierZip; //$tpl->display(PLUGIN_ROOT . '/templates/telechargement.tpl'); /** * Cumuler les versements de chaque personne par tarif et activité * @param tableau des versements * @return tableau des versements cumulés */ function cumulerVersements($versements) { $totalPersonnes = array(); $idActivite_courant = -1; $idTarif_courant = -1; $idPersonne_courant = -1; $totalVersements = 0; foreach ($versements as $ligne) { if ( $ligne->idActivite != $idActivite_courant || $ligne->idTarif != $idTarif_courant || $ligne->idUser != $idPersonne_courant ) { if ($idActivite_courant != -1) { $totalPersonnes["$idPersonne_courant"]->ajouterVersement( $idActivite_courant, $idTarif_courant, $totalVersements/100 ); } $idActivite_courant = $ligne->idActivite; $idTarif_courant = $ligne->idTarif; $idPersonne_courant = $ligne->idUser; $totalVersements = $ligne->versement; // 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"] = new Personne( $ligne->idUser, $ligne->nom, $ligne->adresse, $ligne->ville, $ligne->codePostal, $ligne->courriel ); } } else { // cumuler versements $totalVersements += $ligne->versement; } } // et le dernier $totalPersonnes["$idPersonne_courant"]->ajouterVersement( $idActivite_courant, $idTarif_courant, $totalVersements/100 ); return $totalPersonnes; }