Début ajout fonctionnalités demandées :
- paramétrer le numéro de reçu - imprimer à la demande l'adresse de courriel FossilOrigin-Name: 10c1ca642474c2b00b7d0197afc736f2c2aca3b453808ac1fda19e14b0acc092
This commit is contained in:
parent
b077f70fb3
commit
e219afb405
@ -26,5 +26,10 @@
|
||||
"remarque" : "aide aux personnes en difficulté",
|
||||
"valeur" : 0
|
||||
}
|
||||
]
|
||||
],
|
||||
"numerotation" : {
|
||||
"prefixe" : "",
|
||||
"separateur" : "-",
|
||||
"defaut" : "%a-%m"
|
||||
}
|
||||
}
|
||||
|
@ -15,7 +15,7 @@
|
||||
<fieldset>
|
||||
<dl class="config">
|
||||
<dt><label>Objet (but) de l'association</label> <b title="Champ obligatoire">(obligatoire)</b></dt>
|
||||
{input type="textarea" name="objet_asso" source=$plugin.config label="" required="required" cols="50" rows="4" maxlength=300}
|
||||
{input type="textarea" name="objet_asso" source=$plugin.config label="" required="required" cols="100" rows="3" maxlength=300}
|
||||
</dl>
|
||||
|
||||
<dl class="config">
|
||||
@ -23,17 +23,19 @@
|
||||
<b title="Champ obligatoire">(obligatoire ; sélectionnez tous les articles qui s'appliquent à
|
||||
l'association)</b>
|
||||
</dt>
|
||||
<div id="articles_cgi">
|
||||
{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}
|
||||
*}
|
||||
<div>
|
||||
<div class="article">
|
||||
<input type="checkbox" name="articlesCGI[]" id="article_{$key}" value="{$key}" class="choix"
|
||||
{if $article.valeur == 1}checked{/if} />
|
||||
<label for="article_{$key}">Article {$article.titre}</label>
|
||||
</div>
|
||||
{/foreach}
|
||||
</div>
|
||||
</dl>
|
||||
|
||||
<dl class="config">
|
||||
@ -54,16 +56,37 @@
|
||||
|
||||
<fieldset>
|
||||
<legend>Nom, fonction et signature du responsable</legend>
|
||||
<div id="config_nom_fonction">
|
||||
|
||||
{* Nom du responsable *}
|
||||
<dl class="config">
|
||||
{*
|
||||
<dt><label>Nom</label></dt>
|
||||
{input type="text" name="nom_responsable" source=$plugin.config label="" maxlength=50}
|
||||
<p>du responsable</p>
|
||||
*}
|
||||
{input type="text" name="nom_responsable" source=$plugin.config label="Nom" help="du responsable" required=true maxlength=50}
|
||||
</dl>
|
||||
|
||||
{* Fonction du responsable *}
|
||||
<dl class="config">
|
||||
{*
|
||||
<dt><label>Fonction</label></dt>
|
||||
{input type="text" name="fonction_responsable" source=$plugin.config label="" maxlength=50}
|
||||
<p>du responsable</p>
|
||||
*}
|
||||
{input type="text" name="fonction_responsable" source=$plugin.config label="Fonction" help="du responsable" maxlength=50}
|
||||
</dl>
|
||||
|
||||
{* Ville avant signature *}
|
||||
<dl class="config">
|
||||
{*
|
||||
<dt><label>Ville</label></dt>
|
||||
<p>Précède la date sur le formulaire</p>
|
||||
*}
|
||||
{input type="text" name="ville_asso" source=$plugin.config label="Ville" help="précède la date sur le formulaire" maxlength=50}
|
||||
</dl>
|
||||
</div>
|
||||
|
||||
{* Signature *}
|
||||
<dl class="config">
|
||||
<dt><label>Signature</label></dt>
|
||||
<p>L'image de la signature doit être d'une taille « raisonnable » et avoir un fond transparent</p>
|
||||
@ -78,12 +101,38 @@
|
||||
|
||||
<fieldset>
|
||||
<legend>Autres informations</legend>
|
||||
|
||||
{* Numérotation des reçus *}
|
||||
<div id="numerotation">
|
||||
<dl class="config">
|
||||
<dt><label>Ville</label></dt>
|
||||
<p>Précède la date sur le formulaire</p>
|
||||
{input type="text" name="ville_asso" source=$plugin.config label="" maxlength=50}
|
||||
{*
|
||||
<dt><label>Numérotation des reçus</label></dt>
|
||||
<p>%a : année ; %m : numéro membre ; %n : numéro séquentiel ; Exemple : HA-%a-%n donne HA-2022-51</p>
|
||||
*}
|
||||
{input type="text" name="numerotation" default=$chaine_numerotation label="Numérotation des reçus" maxlength=50}
|
||||
</dl>
|
||||
|
||||
<details>
|
||||
<summary class="help block">
|
||||
Saisir ici un texte qui décrit le format de la numérotation des reçus.
|
||||
</summary>
|
||||
<div class="help block">
|
||||
Symboles spéciaux :
|
||||
<ul>
|
||||
<li>%a : année du reçu</li>
|
||||
<li>%m : numéro de membre</li>
|
||||
<li>%n : numéro d'ordre séquentiel (1, 2, ...)</li>
|
||||
</ul>
|
||||
Exemple : HAL-%a-%m donnera « Reçu numéro HAL-2022-51 » pour le membre de numéro 51
|
||||
</div>
|
||||
</details>
|
||||
</div>
|
||||
|
||||
{* Adresse de courriel *}
|
||||
<div id="courriel">
|
||||
{input type="checkbox" name="afficher_courriel" value=$afficher_courriel label="Imprimer adresse courriel" help="Cocher pour imprimer l'adresse de courriel des membres"}
|
||||
</div>
|
||||
|
||||
{* les champs de nom *}
|
||||
<?php $nbChamps = count($champsNom); ?>
|
||||
<dl class="config" {if $nbChamps == 1}hidden{/if}>
|
||||
@ -95,7 +144,8 @@
|
||||
<div class="champnom">
|
||||
<div class="actions"></div>
|
||||
<div class="infos">
|
||||
<input type="checkbox" name="champsNom[]" id="champ_{$nom}" value={$nom} class="choix" {if $nbChamps == 1 || $champ.position != 0}checked{/if} />
|
||||
<input type="checkbox" name="champsNom[]" id="champ_{$nom}" value={$nom} class="choix"
|
||||
{if $nbChamps == 1 || $champ.position != 0}checked{/if} />
|
||||
<label for="champ_{$nom}">{$champ.titre}</label>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -18,7 +18,9 @@ if (f('save') && $form->check('recusfiscaux_config'))
|
||||
{
|
||||
try {
|
||||
// objet de l'association
|
||||
if ($plugin->getConfig('objet_asso') != trim(f('objet_asso'))) {
|
||||
$plugin->setConfig('objet_asso', trim(f('objet_asso')));
|
||||
}
|
||||
|
||||
// articles du CGI
|
||||
$confArticles = $plugin->getConfig('articlesCGI');
|
||||
@ -45,8 +47,14 @@ if (f('save') && $form->check('recusfiscaux_config'))
|
||||
$plugin->setConfig("reduction", $confTaux);
|
||||
|
||||
// nom, fonction et signature du responsable
|
||||
if ($plugin->getConfig('nom_responsable') != trim(f('nom_responsable'))) {
|
||||
$plugin->setConfig('nom_responsable', trim(f('nom_responsable')));
|
||||
}
|
||||
if ($plugin->getConfig('fonction_responsable') != trim(f('fonction_responsable'))) {
|
||||
$plugin->setConfig('fonction_responsable', trim(f('fonction_responsable')));
|
||||
}
|
||||
|
||||
// signature
|
||||
if (isset($_SESSION['sig_file']) && count($_SESSION['sig_file']) > 0)
|
||||
{
|
||||
// supprimer la signature précédente, si besoin
|
||||
@ -63,7 +71,9 @@ if (f('save') && $form->check('recusfiscaux_config'))
|
||||
|
||||
// autres informations
|
||||
// ville
|
||||
if ($plugin->getConfig('ville_asso') != trim(f('ville_asso'))) {
|
||||
$plugin->setConfig('ville_asso', trim(f('ville_asso')));
|
||||
}
|
||||
|
||||
// champs pour le nom et prénom
|
||||
foreach ($champsNom as $nom => $champ)
|
||||
@ -85,6 +95,11 @@ if (f('save') && $form->check('recusfiscaux_config'))
|
||||
}
|
||||
}
|
||||
|
||||
$conf_numerotation = $plugin->getConfig('numerotation');
|
||||
$chaine_numerotation = (isset($conf_numerotation->prefixe) && $conf_numerotation->prefixe != "") ? $conf_numerotation->prefixe : 'XXX';
|
||||
$chaine_numerotation .= $conf_numerotation->separateur . $conf_numerotation->defaut;
|
||||
$afficher_courriel = false;
|
||||
|
||||
// trier les champs de nom pour l'affichage
|
||||
uasort($champsNom, function ($a, $b)
|
||||
{
|
||||
@ -93,9 +108,11 @@ uasort($champsNom, function ($a, $b)
|
||||
|
||||
$tpl->assign('ok', qg('ok') !== null);
|
||||
$path = qg('path') ?: File::CONTEXT_CONFIG;
|
||||
$tpl->assign('path', $path);
|
||||
//$tpl->assign('path', $path);
|
||||
$tpl->assign('default_signature', \Garradin\WWW_URL . "plugin/recusfiscaux/default_signature.png");
|
||||
$tpl->assign('plugin_config', $plugin->getConfig());
|
||||
$tpl->assign('champsNom', $champsNom);
|
||||
//$tpl->assign('champsNom', $champsNom);
|
||||
$tpl->assign('plugin_css', ['style.css']);
|
||||
//$tpl->assign('chaine_numerotation', $chaine_numerotation);
|
||||
$tpl->assign(compact('path', 'champsNom', 'chaine_numerotation', 'afficher_courriel'));
|
||||
$tpl->display(PLUGIN_ROOT . '/templates/config.tpl');
|
||||
|
@ -10,6 +10,11 @@ if (! isset($_SESSION['annee_recu']) || $_SESSION['annee_recu'] == "")
|
||||
$_SESSION['annee_recu'] = date("Y") - 1;
|
||||
}
|
||||
|
||||
// error_log("config=" . print_r($plugin->getConfig(), true));
|
||||
// error_log("articlesCGI=" . print_r($plugin->getConfig('articlesCGI'), true));
|
||||
// error_log("reduction=" . print_r($plugin->getConfig('reduction'), true));
|
||||
// error_log("numerotation=" . print_r($plugin->getConfig('numerotation'), true));
|
||||
|
||||
// nombre de taux de réduction activés
|
||||
$nbTaux = 0;
|
||||
foreach ($plugin->getConfig('reduction') as $taux)
|
||||
|
@ -85,7 +85,25 @@ div.versements
|
||||
/* config */
|
||||
dl.config
|
||||
{
|
||||
padding : 1ex 0;
|
||||
padding-bottom : 1ex;
|
||||
padding-right : 1em;
|
||||
}
|
||||
div#articles_cgi
|
||||
{
|
||||
display: flex;
|
||||
}
|
||||
div.article
|
||||
{
|
||||
margin-right : 3em;
|
||||
}
|
||||
div#config_nom_fonction
|
||||
{
|
||||
display: flex;
|
||||
}
|
||||
div#numerotation
|
||||
{
|
||||
display:flex;
|
||||
align-items: last baseline;
|
||||
}
|
||||
div.champnom
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user