diff --git a/config.json b/config.json index 59b6ce7..995e5df 100644 --- a/config.json +++ b/config.json @@ -1,15 +1,15 @@ { "articlesCGI" : [ { - "titre" : "Article 200", + "titre" : "200", "valeur" : 0 }, { - "titre" : "Article 228 bis", + "titre" : "228 bis", "valeur" : 0 }, { - "titre" : "Article 978", + "titre" : "978", "valeur" : 0 } ], diff --git a/lib/RecusHTML.php b/lib/RecusHTML.php index b5db027..d00e780 100644 --- a/lib/RecusHTML.php +++ b/lib/RecusHTML.php @@ -9,6 +9,9 @@ class RecusHTML private $nomAsso; private $adresseAsso; private $objetAsso; + private $nomResponsable; + private $fonctionResponsable; + private $articlesCGI; private $signature; /** @@ -17,18 +20,23 @@ class RecusHTML function __construct($nomAsso, $adresseAsso, $objetAsso, + $nomResponsable, + $fonctionResponsable, + $articlesCGI, $signature) { $this->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() { - //echo $this->html; return $this->html; } @@ -69,24 +77,37 @@ FDD; foreach ($lesMontants as $taux => $montant) { - $this->imprimer_montant("la somme de ", - $montant, + $this->imprimer_montant($montant, Utils::getLigneReduction($taux)); } echo "\n"; - $this->imprimer_description("Date des versements :", "année {$annee_recu}"); -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 à l’article 200 du CGI

- -FDD; - $this->imprimer_description("Forme du don : ", - "Autre"); $this->imprimer_description("Nature du don : ", "Numéraire"); $this->imprimer_description("Mode de versement : ", "chèque et/ou virement"); + + // articles du CGI + $nbArticles = count($this->articlesCGI); + 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 à l’article $this->articlesCGI[0] du CGI

\n"; + } + 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

"; + } echo "\n"; // cartouche final @@ -95,7 +116,8 @@ echo <<

Rennes le {$date}

-

Président

+

$this->nomResponsable

+

$this->fonctionResponsable

@@ -112,13 +134,13 @@ FDD; FDD; } - // imprimer le montant de la réduction et un libellé - function imprimer_montant($texte, $montant, $libelle = "") + // imprimer le montant du versement et un libellé + function imprimer_montant($montant, $libelle = "") { $valeur = number_format($montant, 2, ',', ''); - echo "
  • {$texte} {$valeur} euros"; + echo "
  • la somme de {$valeur} euros"; if ($libelle != "") { - echo " : {$libelle}"; + echo " ({$libelle})"; } echo "
  • \n"; } @@ -143,7 +165,7 @@ echo <<N° 11580*4

    Reçu au titre des dons à certains organismes d'intérêt général

    -

    Article 200, 238 bis et 885-0 V bis A du code général des impôts

    +

    Articles 200, 238 bis et 978 du code général des impôts

    FDD; return ob_get_clean(); diff --git a/lib/Utils.php b/lib/Utils.php index 8e7c9a8..14e414d 100644 --- a/lib/Utils.php +++ b/lib/Utils.php @@ -141,11 +141,14 @@ class Utils { foreach ($lesTaux as $elem) { + /* $ligne = "taux " . $elem->taux . ", ligne " . $elem->ligne; if ($elem->remarque != "") { $ligne .= ", " . $elem->remarque; } $lignes[$elem->taux] = $ligne; + */ + $lignes[$elem->taux] = $elem->remarque; } return $lignes; } diff --git a/lib/pdf.css b/lib/pdf.css index f209409..f1f7603 100644 --- a/lib/pdf.css +++ b/lib/pdf.css @@ -24,7 +24,6 @@ body #entete { grid-area: entete; - width: 100%; } #logoCerfa @@ -70,31 +69,26 @@ body #numRecu { text-align : right; -/* display : inline;*/ } #beneficiaire { grid-area: beneficiaire; - width: 100%; } #donateur { grid-area: donateur; - width: 100%; } #versements { grid-area: versements; - width: 100%; } #final { grid-area: signature; - width: 100%; } .rubrique @@ -106,7 +100,7 @@ body .cartouche { margin : 2mm auto; - padding : 0 1mm; + padding : 0 2mm; border : 1px solid rgb(0, 0, 128); border-radius : 8px; } @@ -124,8 +118,7 @@ body padding-bottom : 2mm; } -#fonction +#fonction, #nom { text-align : center; - padding-bottom : 0.5cm; } diff --git a/templates/config.tpl b/templates/config.tpl index a05eda1..55796c6 100644 --- a/templates/config.tpl +++ b/templates/config.tpl @@ -11,19 +11,23 @@ {form_errors} -
    +
    +{* Objet (but) de l'association -
    -
    (obligatoire)
    +*} +
    +
    (obligatoire)
    {input type="text" name="objet_asso" source=$plugin.config label="" required="required" maxlength=300}
    +{*
    Droit à la réduction d'impôt -
    -
    +*} +
    +
    (obligatoire)
    {foreach from=$plugin_config->articlesCGI key="key" item="article"} @@ -32,14 +36,27 @@ {input type="checkbox" name="articlesCGI[]" value=$key label=$article.titre} *} + {if $article.valeur == 1}checked{/if}> {/foreach}
    +{*
    - Signature du responsable -
    + Nom, fonction et signature du responsable +*} +
    +
    (obligatoire)
    + {input type="text" name="nom_responsable" source=$plugin.config label="" required="required" maxlength=50} +
    + +
    +
    (obligatoire)
    + {input type="text" name="fonction_responsable" source=$plugin.config label="" required="required" maxlength=50} +
    + +
    +
    (obligatoire)

    L'image de la signature doit être d'une taille « raisonnable » et avoir un fond transparent

    {if $plugin_config.signature != ''} diff --git a/www/admin/config.php b/www/admin/config.php index eeda072..c7aca5a 100644 --- a/www/admin/config.php +++ b/www/admin/config.php @@ -29,7 +29,9 @@ if (f('save') && $form->check('recusfiscaux_config')) } $plugin->setConfig("articlesCGI", $confArticles); - // signature + // nom, fonction et signature du responsable + $plugin->setConfig('nom_responsable', trim(f('nom_responsable'))); + $plugin->setConfig('fonction_responsable', trim(f('fonction_responsable'))); if (isset($_SESSION['sig_file'])) { $plugin->setConfig('signature', $_SESSION['sig_file'][0]->path); } diff --git a/www/admin/generer_activites.php b/www/admin/generer_activites.php index 9efaac6..8678893 100644 --- a/www/admin/generer_activites.php +++ b/www/admin/generer_activites.php @@ -26,8 +26,15 @@ $signature = \Garradin\Files\Files::get($plugin->getConfig('signature'))->fullpath() : \Garradin\WWW_URL . "plugin/recusFiscaux/default_signature.png"; -$listeFichiers = []; // fichiers pdf générés - +// articles du CGI +$articlesCGI = array(); +foreach ($plugin->getConfig('articlesCGI') as $article) +{ + if ($article->valeur == 1) { + $articlesCGI[] = $article->titre; + } +} +$listeFichiers = array(); // fichiers pdf générés foreach ($totalPersonnes as $idPersonne => $personne) { // générer un fichier par reçu @@ -35,6 +42,9 @@ foreach ($totalPersonnes as $idPersonne => $personne) $nomAsso, $adresseAsso, $plugin->getConfig('objet_asso'), + $plugin->getConfig('nom_responsable'), + $plugin->getConfig('fonction_responsable'), + $articlesCGI, $signature ); // extraire les montants des versements diff --git a/www/admin/generer_personnes.php b/www/admin/generer_personnes.php index 36030d2..1866bdc 100644 --- a/www/admin/generer_personnes.php +++ b/www/admin/generer_personnes.php @@ -24,8 +24,15 @@ $signature = \Garradin\Files\Files::get($plugin->getConfig('signature'))->fullpath() : \Garradin\WWW_URL . "plugin/recusFiscaux/default_signature.png"; -$listeFichiers = []; // fichiers pdf générés - +// articles du CGI +$articlesCGI = array(); +foreach ($plugin->getConfig('articlesCGI') as $article) +{ + if ($article->valeur == 1) { + $articlesCGI[] = $article->titre; + } +} +$listeFichiers = array(); // fichiers pdf générés foreach ($versementsSelectionnes as $ligne) { // générer un fichier par reçu @@ -33,6 +40,9 @@ foreach ($versementsSelectionnes as $ligne) $nomAsso, $adresseAsso, $plugin->getConfig('objet_asso'), + $plugin->getConfig('nom_responsable'), + $plugin->getConfig('fonction_responsable'), + $articlesCGI, $signature ); diff --git a/www/admin/style.css b/www/admin/style.css index e5e1685..b3a08bc 100644 --- a/www/admin/style.css +++ b/www/admin/style.css @@ -34,3 +34,7 @@ input[type="text"] { { width:300px; } +dl.config +{ + padding : 1ex 0; +}