diff --git a/config.json b/config.json index 995e5df..27ff89b 100644 --- a/config.json +++ b/config.json @@ -17,12 +17,14 @@ { "taux" : "normal", "ligne" : "UF", - "remarque" : "" + "remarque" : "", + "valeur" : 0 }, { "taux" : "majoré", "ligne" : "UD", - "remarque" : "aide aux personnes en difficulté" + "remarque" : "aide aux personnes en difficulté", + "valeur" : 0 } ] } diff --git a/data/default_signature.png b/data/default_signature.png index 38aa69f..4ea7ecf 100644 Binary files a/data/default_signature.png and b/data/default_signature.png differ diff --git a/install.php b/install.php index 6fb3e16..1117fa6 100644 --- a/install.php +++ b/install.php @@ -4,4 +4,7 @@ use Garradin\Entities\Files\File; // « signature » par défaut à remplacer (voir l'onglet de configuration) $path = __DIR__ . '/data/default_signature.png'; -$_SESSION['default_signature_file'] = (new File)->createAndStore('skel/plugin/recusfiscaux','default_signature.png', $path, null); +$default_signature_file = (new File)->createAndStore('skel/plugin/recusfiscaux', + 'default_signature.png', + $path, + null); diff --git a/lib/RecusHTML.php b/lib/RecusHTML.php index d00e780..42f37ee 100644 --- a/lib/RecusHTML.php +++ b/lib/RecusHTML.php @@ -92,7 +92,8 @@ FDD; $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"; + 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 "; + printf("%s du code général des impôts

\n", $this->articlesCGI[0]); } else if ($nbArticles > 1) { @@ -106,7 +107,7 @@ FDD; echo " et "; } } - echo " du code général des impôts

"; + echo " du code général des impôts

\n"; } echo "\n"; diff --git a/templates/config.tpl b/templates/config.tpl index 55796c6..bc49871 100644 --- a/templates/config.tpl +++ b/templates/config.tpl @@ -18,7 +18,10 @@ *}
(obligatoire)
+ {input type="textarea" name="objet_asso" source=$plugin.config label="" required="required" cols="50" rows="6" maxlength=300} + {* {input type="text" name="objet_asso" source=$plugin.config label="" required="required" maxlength=300} +*}
{* @@ -28,35 +31,50 @@ *}
- (obligatoire) + (obligatoire ; sélectionnez tous les articles qui s'appliquent à l'asociation)
{foreach from=$plugin_config->articlesCGI key="key" item="article"} {* À VÉRIFIER : {input : checked ne fonctionne pas si l'attribut name est un tableau... {input type="checkbox" name="articlesCGI[]" value=$key label=$article.titre} *} - +
+ + +
+ {/foreach} +
+ +
+
+ (obligatoire ; sélectionnez tous les taux qui s'appliquent à l'asociation) +
+ {foreach from=$plugin_config->reduction key="key" item="taux"} +
+ + {/if} +
{/foreach}
-{*
Nom, fonction et signature du responsable -*}
-
(obligatoire)
+
(obligatoire)
{input type="text" name="nom_responsable" source=$plugin.config label="" required="required" maxlength=50}
-
(obligatoire)
+
(obligatoire)
{input type="text" name="fonction_responsable" source=$plugin.config label="" required="required" maxlength=50}
-
(obligatoire)
+
(obligatoire)

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

{if $plugin_config.signature != ''} diff --git a/uninstall.php b/uninstall.php index b4bf885..22bc6d1 100644 --- a/uninstall.php +++ b/uninstall.php @@ -5,7 +5,11 @@ use Garradin\Entities\Files\File; // supprimer les fichiers créés // signature par défaut -$_SESSION['default_signature_file']->delete(); +$default_signature_file = \Garradin\Files\Files::get('skel/plugin/recusfiscaux/default_signature.png'); +$default_signature_file->delete(); // signature réelle -$_SESSION['sig_file'][0]->delete(); +$signature = $plugin->getConfig('signature'); +if (null !== $signature) { + \Garradin\Files\Files::get($signature)->delete(); +} diff --git a/www/admin/config.php b/www/admin/config.php index fb7f621..76b2739 100644 --- a/www/admin/config.php +++ b/www/admin/config.php @@ -6,6 +6,7 @@ use Garradin\Entities\Files\File; $session->requireAccess($session::SECTION_CONFIG, $session::ACCESS_ADMIN); $art_sel=f('articlesCGI') ? : []; +$taux_sel = f('tauxReduction') ? : []; $path = qg('path') ?: File::CONTEXT_CONFIG; $context = Files::getContext($path); @@ -21,7 +22,7 @@ if (f('save') && $form->check('recusfiscaux_config')) $confArticles = $plugin->getConfig('articlesCGI'); // effacer l'ancienne configuration for ($i = 0; $i < count($confArticles); ++$i) { - $confArticles[$i]->valeur = 0; + $confArticles[$i]->valeur = 0; } // et copier la nouvelle foreach ($art_sel as $article) { @@ -29,10 +30,29 @@ if (f('save') && $form->check('recusfiscaux_config')) } $plugin->setConfig("articlesCGI", $confArticles); + // taux de réduction + $confTaux = $plugin->getConfig('reduction'); + // effacer l'ancienne configuration + for ($i = 0; $i < count($confTaux); ++$i) { + $confTaux[$i]->valeur = 0; + } + // et copier la nouvelle + foreach ($taux_sel as $taux) { + $confTaux[$taux]->valeur = 1; + } + $plugin->setConfig("reduction", $confTaux); + // 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']) && count($_SESSION['sig_file']) > 0) { + if (isset($_SESSION['sig_file']) && count($_SESSION['sig_file']) > 0) + { + // supprimer la signature précédente, si besoin + if (null !== $plugin->getConfig('signature')) + { + \Garradin\Files\Files::get($plugin->getConfig('signature'))->delete(); + } + // puis installer la nouvelle $plugin->setConfig('signature', $_SESSION['sig_file'][0]->path); } diff --git a/www/admin/style.css b/www/admin/style.css index b158dbb..3d95bfb 100644 --- a/www/admin/style.css +++ b/www/admin/style.css @@ -11,9 +11,6 @@ fieldset { -webkit-border-radius:8px; border-radius:8px; } -fieldset label { - font-weight:bold; -} div span { padding-left : 0.5em; padding-right : 0.5em; @@ -27,9 +24,6 @@ summary.activite { h3.personne { background: rgba(var(--gSecondColor), 0.35); } -input[type="text"] { - width: 50em; -} #signature { max-width: 300px;