test gestion signature

FossilOrigin-Name: a6b1717eeee8e4c3a852ccd1363d47e4cbe561476fcc0d0eb08a0615b85bcc17
This commit is contained in:
engel 2022-02-24 10:28:08 +00:00
parent 3aa094f4db
commit f9f59d7454
6 changed files with 64 additions and 25 deletions

View File

@ -1,7 +1,7 @@
# Plugin reçus fiscaux pour Garradin # Plugin reçus fiscaux pour Garradin
Plugin de reçus fiscaux pour le logiciel de gestion d'association Garradin ( https://garradin.eu/ - https://fossil.kd2.org/garradin ). Plugin de reçus fiscaux pour le logiciel de gestion d'association Garradin ( https://garradin.eu/ - https://fossil.kd2.org/garradin ).
Source : https:// Source : https://git.roflcopter.fr/lesanges/recus-fiscaux-garradin
## Installation: ## Installation:
Vous pouvez télécharger l'archive .tar.gz depuis la page des [releases](https://), et la placer directement dans le dossier plugins de Garradin. Vous pouvez télécharger l'archive .tar.gz depuis la page des [releases](https://), et la placer directement dans le dossier plugins de Garradin.
@ -19,12 +19,3 @@ Vous pouvez télécharger l'archive .tar.gz depuis la page des [releases](https:
- Modification du pied de page des documents (notament pour y inscrire des mentions légales) - Modification du pied de page des documents (notament pour y inscrire des mentions légales)
- Informations relatives au cerfa pour les reçus fiscaux - Informations relatives au cerfa pour les reçus fiscaux
- Image qui set de signature sur le cerfa - Image qui set de signature sur le cerfa
Le plugin nécessite l'extension PHP mbstring.
## Inclus les bibliothèques suivantes :
- Composer :
https://getcomposer.org/
Copyright (c) Nils Adermann, Jordi Boggiano,
Licence: MIT

View File

@ -2,7 +2,7 @@ nom="Reçus fiscaux"
description="Génération de reçus fiscaux pour les dons des membres" description="Génération de reçus fiscaux pour les dons des membres"
auteur="jce" auteur="jce"
url="https://git.roflcopter.fr/lesanges/recus-fiscaux-garradin" url="https://git.roflcopter.fr/lesanges/recus-fiscaux-garradin"
version="0.1" version="0.4"
menu=1 menu=1
config=1 config=1
min_version="1.1" min_version="1.1"

View File

@ -1,8 +1,17 @@
/* organisation spatiale */ /* organisation spatiale */
@page
{
size: A4 portrait;
margin: 1cm;
}
body body
{ {
width : 21cm; font-family: Serif;
padding : 1cm 1cm; font-size: 11pt;
background-color: white;
display: grid; display: grid;
grid-template-areas: grid-template-areas:
'entete' 'entete'
@ -25,7 +34,7 @@ body
background-color: rgb(0, 0, 128); background-color: rgb(0, 0, 128);
border-radius : 50%; border-radius : 50%;
text-align : center; text-align : center;
margin : 0.5em; margin : 2mm;
} }
.centre .centre
@ -48,13 +57,14 @@ body
{ {
margin : 0 4cm 0 4cm; margin : 0 4cm 0 4cm;
text-align : center; text-align : center;
font-size : 140%; font-size : 14pt;
font-weight: bold; font-weight: bold;
} }
#articles #articles
{ {
margin : 0 4cm 0 4cm; /* idem titre */ margin : 0 4cm 0 4cm; /* idem titre */
text-align : center;
} }
#numRecu #numRecu
@ -90,13 +100,13 @@ body
.rubrique .rubrique
{ {
background-color : rgb(200, 200, 250); background-color : rgb(200, 200, 250);
padding : 0.5em; padding : 2mm;
} }
.cartouche .cartouche
{ {
margin : 0.5em auto; margin : 2mm auto;
padding : 0 0.5em; padding : 0 1mm;
border : 1px solid rgb(0, 0, 128); border : 1px solid rgb(0, 0, 128);
border-radius : 8px; border-radius : 8px;
} }
@ -111,11 +121,11 @@ body
display: block; display: block;
width : 7cm; width : 7cm;
margin: 0 auto; margin: 0 auto;
padding-bottom : 0.5em; padding-bottom : 2mm;
} }
#fonction #fonction
{ {
text-align : center; text-align : center;
padding-bottom : 2em; padding-bottom : 0.5cm;
} }

View File

@ -11,12 +11,12 @@
{form_errors} {form_errors}
<form method="post" action="{$self_url}"> <form method="post" action="{$self_url}" enctype="multipart/form-data" data-focus="1">
<fieldset> <fieldset>
<legend>Objet (but) de l'association</legend> <legend>Objet (but) de l'association</legend>
<dl> <dl>
<dt><label>Objet</label><b title="Champ obligatoire">obligatoire</b></dt> <dt><label>Objet</label> <b title="Champ obligatoire">(obligatoire)</b></dt>
{input type="text" name="objet_asso" source=$plugin.config label="" maxlength=300} {input type="text" name="objet_asso" source=$plugin.config label="" required="required" maxlength=300}
</dl> </dl>
</fieldset> </fieldset>
@ -24,7 +24,7 @@
<legend>Droit à la réduction d'impôt</legend> <legend>Droit à la réduction d'impôt</legend>
<dl> <dl>
<dt><label>Articles concernés par l'association : </label> <dt><label>Articles concernés par l'association : </label>
<b title="Champ obligatoire">obligatoire</b> <b title="Champ obligatoire">(obligatoire)</b>
</dt> </dt>
{foreach from=$plugin_config->articlesCGI key="key" item="article"} {foreach from=$plugin_config->articlesCGI key="key" item="article"}
{* {*
@ -36,6 +36,21 @@
{/foreach} {/foreach}
</dl> </dl>
</fieldset> </fieldset>
<fieldset>
<legend>Signature du responsable</legend>
<dl>
{*
{input type="file" label="Signature" name="signature" required="required" help="L'image de la signature doit être au format PNG, d'une taille raisonable et doit être dotée d'un fond transparent" accept="image/*,*.jpeg,*.jpg,*.png,*.gif"}
*}
{if $plugin_config.signature != ''}
<img src="/{$plugin_config.signature}" style="width:300px;" />
{/if}
{linkbutton shape="upload" label="Changer de signature" target="_dialog" href="upload.php?p=%s"|args:$path}
</dl>
<p class="help">N'oubliez pas d'enregistrer, sinon la signature ne sera pas prise en compte !</p>
</fieldset>
<p class="submit"> <p class="submit">
{csrf_field key="recusfiscaux_config"} {csrf_field key="recusfiscaux_config"}
{button type="submit" name="save" label="Enregistrer" shape="right" class="main"} {button type="submit" name="save" label="Enregistrer" shape="right" class="main"}

View File

@ -1,14 +1,25 @@
<?php <?php
namespace Garradin; namespace Garradin;
use Garradin\Files\Files;
use Garradin\Entities\Files\File;
error_log("WWW_URL = " . WWW_URL);
$session->requireAccess($session::SECTION_CONFIG, $session::ACCESS_ADMIN); $session->requireAccess($session::SECTION_CONFIG, $session::ACCESS_ADMIN);
$art_sel=f('articlesCGI') ? : []; $art_sel=f('articlesCGI') ? : [];
$path = qg('path') ?: File::CONTEXT_CONFIG;
$context = Files::getContext($path);
$context_ref = Files::getContextRef($path);
if (f('save') && $form->check('recusfiscaux_config')) if (f('save') && $form->check('recusfiscaux_config'))
{ {
try { try {
// objet de l'association
$plugin->setConfig('objet_asso', trim(f('objet_asso'))); $plugin->setConfig('objet_asso', trim(f('objet_asso')));
// articles du CGI
$confArticles = $plugin->getConfig('articlesCGI'); $confArticles = $plugin->getConfig('articlesCGI');
// effacer l'ancienne configuration // effacer l'ancienne configuration
for ($i = 0; $i < count($confArticles); ++$i) { for ($i = 0; $i < count($confArticles); ++$i) {
@ -19,6 +30,12 @@ if (f('save') && $form->check('recusfiscaux_config'))
$confArticles[$article]->valeur = 1; $confArticles[$article]->valeur = 1;
} }
$plugin->setConfig("articlesCGI", $confArticles); $plugin->setConfig("articlesCGI", $confArticles);
// signature
if (isset($_SESSION['sig_file'])) {
$plugin->setConfig('signature', $_SESSION['sig_file'][0]->path);
}
\Garradin\Utils::redirect(PLUGIN_URL . 'config.php?ok'); \Garradin\Utils::redirect(PLUGIN_URL . 'config.php?ok');
} }
catch (UserException $e) catch (UserException $e)
@ -28,6 +45,7 @@ if (f('save') && $form->check('recusfiscaux_config'))
} }
$tpl->assign('ok', qg('ok') !== null); $tpl->assign('ok', qg('ok') !== null);
$tpl->assign('path', $path);
$tpl->assign('plugin_config', $plugin->getConfig()); $tpl->assign('plugin_config', $plugin->getConfig());
$tpl->assign('plugin_css', ['style.css']); $tpl->assign('plugin_css', ['style.css']);

View File

@ -19,7 +19,12 @@ foreach ($lesLignes as $ligne) {
$nomAsso = Utils::getNomAsso(); $nomAsso = Utils::getNomAsso();
$adresseAsso = Utils::getAdresseAsso(); $adresseAsso = Utils::getAdresseAsso();
$signature = PLUGIN_ROOT . "/data/default_signature.png"; $signature =
(null !== $plugin->getConfig('signature')) ?
WWW_URL . $plugin->getConfig('signature') :
PLUGIN_ROOT . "/data/default_signature.png";
error_log("GP : signature = " . $signature);
$listeFichiers = []; $listeFichiers = [];
foreach ($versementsSelectionnes as $ligne) foreach ($versementsSelectionnes as $ligne)