From 7c197abbc8787d471c4bccac7c3dade5efaea8c6 Mon Sep 17 00:00:00 2001 From: engel <> Date: Thu, 10 Mar 2022 17:12:42 +0000 Subject: [PATCH 1/3] =?UTF-8?q?test=20g=C3=A9n=C3=A9ration=20re=C3=A7u=20h?= =?UTF-8?q?tml=20avec=20template?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit FossilOrigin-Name: 1070052b9c2d7df2121a02c7ad2b9653459d96e66bf58ad02ef88712e45e16e0 --- templates/recuHTML.tpl | 67 ++++++++++ www/admin/generer_personnes.php | 213 ++++++++++++++++++++++++++++---- 2 files changed, 258 insertions(+), 22 deletions(-) create mode 100644 templates/recuHTML.tpl diff --git a/templates/recuHTML.tpl b/templates/recuHTML.tpl new file mode 100644 index 0000000..39cc87e --- /dev/null +++ b/templates/recuHTML.tpl @@ -0,0 +1,67 @@ + + + +
+ +{* + + +*} + + + + +Reçu au titre des dons à certains organismes d'intérêt général
+Articles 200, 238 bis et 978 du code général des impôts
+Reçu numéro {$anneeRecu}/{$numero}
+Association « {$nomAsso} »
+{$adresseAsso}
+Objet : {$objetAsso}
+{$nom}
+{$adresse}
+{$codePostal} {$ville}
+Le bénéficiaire reconnaît avoir reçu au titre des dons et versements ouvrant droit à réduction + d'impôt :
+Date des versements : année {$anneeRecu}
+Nature du don : Numéraire
+Mode de versement : chèque et/ou virement
+ {imprimer_articles articles=$articlesCGI} +Rennes le {$date}
+{$nomResponsable}
+{$fonctionResponsable}
+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 ($versementsSelectionnes as $ligne) { - // 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 - ); - + //$ligne = $versementsSelectionnes[0]; // extraire les montants des versements $lesMontants[$_SESSION['taux_reduction']] = $ligne->versement/100; $personne = $_SESSION['membresDonateurs'][$ligne->idUser]; - $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'); + // $tpl->assign('styleSheet', \Garradin\PLUGIN_URL . 'pdf.css'); + //$tpl->assign('plugin_css', ['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); @@ -66,6 +234,7 @@ 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 From 8b7ec52306a5dfa20c210224b12e9e988c85c9bf Mon Sep 17 00:00:00 2001 From: engel <> Date: Thu, 10 Mar 2022 17:23:34 +0000 Subject: [PATCH 2/3] =?UTF-8?q?g=C3=A9n=C3=A9ration=20des=20activit=C3=A9s?= =?UTF-8?q?=20avec=20template?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit FossilOrigin-Name: c32cf97328d5a179eef489982b4f1f3e49c8ba056443ed98093e3ca3fd7799e9 --- www/admin/generer_activites.php | 207 ++++++++++++++++++++++++++++---- www/admin/generer_personnes.php | 8 +- 2 files changed, 189 insertions(+), 26 deletions(-) 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(' +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 From e6c1b45d8e03913784ff4208be2d3a763889b890 Mon Sep 17 00:00:00 2001 From: engel <> Date: Fri, 11 Mar 2022 10:04:25 +0000 Subject: [PATCH 3/3] =?UTF-8?q?correction=20d=C3=A9sinstallation=20;=20sup?= =?UTF-8?q?pression=20fichiers=20inutile?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit FossilOrigin-Name: d9802367cba7e6a0b24bada03bc78f4240655ba92d828e0c839f8778b574c25e --- lib/RecusHTML.php | 259 ---------------------------------------------- lib/RecusPDF.php | 196 ----------------------------------- uninstall.php | 1 + 3 files changed, 1 insertion(+), 455 deletions(-) delete mode 100644 lib/RecusHTML.php delete mode 100644 lib/RecusPDF.php diff --git a/lib/RecusHTML.php b/lib/RecusHTML.php deleted file mode 100644 index 13e0ba9..0000000 --- a/lib/RecusHTML.php +++ /dev/null @@ -1,259 +0,0 @@ -nomAsso = $nomAsso; - $this->adresseAsso = $adresseAsso; - $this->objetAsso = $objetAsso; - $this->nomResponsable = $nomResponsable; - $this->fonctionResponsable = $fonctionResponsable; - $this->signature = $signature; - $this->articlesCGI = $articlesCGI; - $this->html = $this->entete(); - } - - function get() - { - return $this->html; - } - - // imprimer le reçu - function imprimer_recu($annee_recu, - $numero, - $nom, - $lesMontants, - $adresse, - $code_postal, - $ville) - { - ob_start(); -echo <<Reçu numéro {$annee_recu}/{$numero}
- - -Association « {$this->nomAsso} »
-{$this->adresseAsso}
-Objet : {$this->objetAsso}
-{$nom}
-{$adresse}
-{$code_postal} {$ville}
-Le bénéficiaire reconnaît avoir reçu au titre des dons et versements ouvrant droit à réduction d'impôt :
-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 à l’article "; - printf("%s du code général des impôts
\n", $this->articlesCGI[0]); - } - else if ($nbArticles > 1) - { - echo "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 aux articles "; - for ($i = 0; $i < $nbArticles; ++$i) { - printf("%s", $this->articlesCGI[$i]); - if ($i < $nbArticles - 2) { - echo ", "; - } - else if ($i == $nbArticles - 2) { - echo " et "; - } - } - echo " du code général des impôts
\n"; - } - echo "Rennes le {$date}
-$this->nomResponsable
-$this->fonctionResponsable
- -