diff --git a/www/admin/generer_activites.php b/www/admin/generer_activites.php index ea42398..6a290b6 100644 --- a/www/admin/generer_activites.php +++ b/www/admin/generer_activites.php @@ -17,13 +17,16 @@ foreach ($lesLignes as $ligne) { // cumuler les versements d'une personne $totalPersonnes = cumulerVersements($versementsSelectionnes); -// générer les reçus +// informations de l'association $nomAsso = Utils::getNomAsso(); $adresseAsso = Utils::getAdresseAsso(); $signature = (null !== $plugin->getConfig('signature')) ? \Garradin\Files\Files::get($plugin->getConfig('signature'))->fullpath() : ""; +$objetAsso = $plugin->getConfig('objet_asso'); +$nomResponsable = $plugin->getConfig('nom_responsable'); +$fonctionResponsable = $plugin->getConfig('fonction_responsable'); // articles du CGI $articlesCGI = array(); @@ -33,19 +36,168 @@ foreach ($plugin->getConfig('articlesCGI') as $article) $articlesCGI[] = $article->titre; } } + +/** + * insérer une feuille de style + */ +$tpl->register_function('ajouter_style', function() +{ + $out = ' +@page +{ + size: A4 portrait; + margin: 1cm; +} + +body +{ + font-family: Serif; + font-size: 11pt; + background-color: white; +} + +#logoCerfa +{ + line-height: 40px; + width: 100px; + background-color: rgb(0, 0, 128); + border-radius : 50%; + text-align : center; + margin : 2mm; +} + +.centre +{ + display : inline-block; + vertical-align : middle; + line-height: 20px; /* moitié de la hauteur du logo */ + color : white; + font-weight: bold; + font-size : 14pt; +} + +#numCerfa +{ + width: 100px; /* largeur du logo */ + text-align: center; +} + +#titre +{ + margin : 0 4cm 0 4cm; + text-align : center; + font-size : 14pt; + font-weight: bold; +} + +#articles +{ + margin : 0 4cm 0 4cm; /* idem titre */ + text-align : center; +} + +#numRecu +{ + text-align : right; +} + +#final +{ + height : 5cm; +} + +.rubrique +{ + background-color : rgb(200, 200, 250); + padding : 2mm; +} + +.cartouche +{ + margin : 2mm auto; + padding : 0 2mm; + border : 1px solid rgb(0, 0, 128); + border-radius : 8px; +} + +.titre, .important +{ + font-weight:bold; +} + +#signature +{ + display: block; + max-width : 7cm; + max-height : 2cm; + margin: 0 auto; + padding-bottom : 2mm; +} + +#fonction, #nom +{ + text-align : center; +} +'; + return $out; +}); + +/** + * imprimer un montant et le taux de réduction associé + * @param montant + * @param taux + */ +$tpl->register_function('imprimer_montant', function ($params) +{ + $montant = $params['montant']; + $taux = $params['taux']; + $valeur = number_format($montant, 2, ',', ''); + $libelle = Utils::getLigneReduction($taux); + $out = sprintf(' +
  • la somme de %s euros', + $valeur); + if ($libelle != "") { + $out .= sprintf(' (%s)', $libelle); + } + $out .= ' +
  • +'; + return $out; +}); + +/** + * imprimer les articles du code général des impôts concernés + * @param articles + */ +$tpl->register_function('imprimer_articles', function ($params) +{ + $articlesCGI = $params['articles']; + $nbArticles = count($articlesCGI); + $out = "

    Le bénéficiaire certifie sur l’honneur que les dons et versements qu’il reçoit ouvrent droit à la réduction d'impôt prévue"; + if ($nbArticles == 1) + { + $out .= sprintf(' à l’article %s du code général des impôts

    ', articlesCGI[0]); + } + else if ($nbArticles > 1) + { + $out .= " aux articles "; + for ($i = 0; $i < $nbArticles; ++$i) { + $out .= sprintf("%s", $articlesCGI[$i]); + if ($i < $nbArticles - 2) { + $out .= ", "; + } + else if ($i == $nbArticles - 2) { + $out .= " et "; + } + } + $out .= " du code général des impôts.

    "; + } + return $out; +}); + $listeFichiers = array(); // fichiers pdf générés foreach ($totalPersonnes as $idPersonne => $personne) { - // générer un fichier par reçu - $html = new RecusHTML( - $nomAsso, - $adresseAsso, - $plugin->getConfig('objet_asso'), - $plugin->getConfig('nom_responsable'), - $plugin->getConfig('fonction_responsable'), - $articlesCGI, - $signature - ); // extraire les montants des versements $lesMontants = array(); foreach ($personne->versements as $versement) @@ -57,17 +209,30 @@ foreach ($totalPersonnes as $idPersonne => $personne) $lesMontants[$versement->tauxReduction] = $versement->montant; } } - $html->imprimer_recu( - $_SESSION['annee_recu'], - $personne->id, - $personne->nomPrenom, - $lesMontants, - $personne->adresse, - $personne->codePostal, - $personne->ville - ); + $tpl->assign(compact('nomAsso', + 'adresseAsso', + 'objetAsso', + 'nomResponsable', + 'fonctionResponsable', + 'articlesCGI', + 'signature' + )); + + $tpl->assign('anneeRecu', $_SESSION['annee_recu']); + $tpl->assign('numero', $personne->id); + $tpl->assign('nom', $personne->nomPrenom); + $tpl->assign('lesMontants', $lesMontants); + $tpl->assign('adresse', $personne->adresse); + $tpl->assign('codePostal', $personne->codePostal); + $tpl->assign('ville', $personne->ville); + // $tpl->assign('styleSheet', 'pdf.css'); + + ob_start(); + $tpl->display(PLUGIN_ROOT . '/templates/recuHTML.tpl'); + $html = ob_get_clean(); + // fabriquer le fichier PDF - $nomPDF = \Garradin\Utils::filePDF($html->get()); + $nomPDF = \Garradin\Utils::filePDF($html); // changer le nom du fichier $nom = str_replace(' ', '_', $personne->nomPrenom); $nom = str_replace("'", "", $nom); diff --git a/www/admin/generer_personnes.php b/www/admin/generer_personnes.php index bcd107a..7f07c23 100644 --- a/www/admin/generer_personnes.php +++ b/www/admin/generer_personnes.php @@ -196,7 +196,6 @@ $tpl->register_function('imprimer_articles', function ($params) $listeFichiers = array(); // fichiers pdf générés foreach ($versementsSelectionnes as $ligne) { - //$ligne = $versementsSelectionnes[0]; // extraire les montants des versements $lesMontants[$_SESSION['taux_reduction']] = $ligne->versement/100; $personne = $_SESSION['membresDonateurs'][$ligne->idUser]; @@ -217,9 +216,9 @@ foreach ($versementsSelectionnes as $ligne) $tpl->assign('adresse', $personne->adresse); $tpl->assign('codePostal', $personne->codePostal); $tpl->assign('ville', $personne->ville); - $tpl->assign('styleSheet', 'pdf.css'); - // $tpl->assign('styleSheet', \Garradin\PLUGIN_URL . 'pdf.css'); - //$tpl->assign('plugin_css', ['pdf.css']); + // $tpl->assign('styleSheet', 'pdf.css'); + // $tpl->assign('styleSheet', \Garradin\PLUGIN_URL . 'pdf.css'); + // $tpl->assign('plugin_css', ['pdf.css']); ob_start(); $tpl->display(PLUGIN_ROOT . '/templates/recuHTML.tpl'); @@ -234,7 +233,6 @@ foreach ($versementsSelectionnes as $ligne) rename($nomPDF, $nomFichier); // ajouter le nom du fichier à la liste pour mettre dans une archive $listeFichiers[] = $nomFichier; - } // faire une archive zip