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é",
|
"remarque" : "aide aux personnes en difficulté",
|
||||||
"valeur" : 0
|
"valeur" : 0
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
|
"numerotation" : {
|
||||||
|
"prefixe" : "",
|
||||||
|
"separateur" : "-",
|
||||||
|
"defaut" : "%a-%m"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -15,7 +15,7 @@
|
|||||||
<fieldset>
|
<fieldset>
|
||||||
<dl class="config">
|
<dl class="config">
|
||||||
<dt><label>Objet (but) de l'association</label> <b title="Champ obligatoire">(obligatoire)</b></dt>
|
<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>
|
||||||
|
|
||||||
<dl class="config">
|
<dl class="config">
|
||||||
@ -23,17 +23,19 @@
|
|||||||
<b title="Champ obligatoire">(obligatoire ; sélectionnez tous les articles qui s'appliquent à
|
<b title="Champ obligatoire">(obligatoire ; sélectionnez tous les articles qui s'appliquent à
|
||||||
l'association)</b>
|
l'association)</b>
|
||||||
</dt>
|
</dt>
|
||||||
{foreach from=$plugin_config->articlesCGI key="key" item="article"}
|
<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...
|
À VÉRIFIER : {input : checked ne fonctionne pas si l'attribut name est un tableau...
|
||||||
{input type="checkbox" name="articlesCGI[]" value=$key label=$article.titre}
|
{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"
|
<input type="checkbox" name="articlesCGI[]" id="article_{$key}" value="{$key}" class="choix"
|
||||||
{if $article.valeur == 1}checked{/if} />
|
{if $article.valeur == 1}checked{/if} />
|
||||||
<label for="article_{$key}">Article {$article.titre}</label>
|
<label for="article_{$key}">Article {$article.titre}</label>
|
||||||
</div>
|
</div>
|
||||||
{/foreach}
|
{/foreach}
|
||||||
|
</div>
|
||||||
</dl>
|
</dl>
|
||||||
|
|
||||||
<dl class="config">
|
<dl class="config">
|
||||||
@ -54,16 +56,37 @@
|
|||||||
|
|
||||||
<fieldset>
|
<fieldset>
|
||||||
<legend>Nom, fonction et signature du responsable</legend>
|
<legend>Nom, fonction et signature du responsable</legend>
|
||||||
<dl class="config">
|
<div id="config_nom_fonction">
|
||||||
<dt><label>Nom</label></dt>
|
|
||||||
{input type="text" name="nom_responsable" source=$plugin.config label="" maxlength=50}
|
|
||||||
</dl>
|
|
||||||
|
|
||||||
<dl class="config">
|
{* Nom du responsable *}
|
||||||
<dt><label>Fonction</label></dt>
|
<dl class="config">
|
||||||
{input type="text" name="fonction_responsable" source=$plugin.config label="" maxlength=50}
|
{*
|
||||||
</dl>
|
<dt><label>Nom</label></dt>
|
||||||
|
<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>
|
||||||
|
<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">
|
<dl class="config">
|
||||||
<dt><label>Signature</label></dt>
|
<dt><label>Signature</label></dt>
|
||||||
<p>L'image de la signature doit être d'une taille « raisonnable » et avoir un fond transparent</p>
|
<p>L'image de la signature doit être d'une taille « raisonnable » et avoir un fond transparent</p>
|
||||||
@ -78,11 +101,37 @@
|
|||||||
|
|
||||||
<fieldset>
|
<fieldset>
|
||||||
<legend>Autres informations</legend>
|
<legend>Autres informations</legend>
|
||||||
<dl class="config">
|
|
||||||
<dt><label>Ville</label></dt>
|
{* Numérotation des reçus *}
|
||||||
<p>Précède la date sur le formulaire</p>
|
<div id="numerotation">
|
||||||
{input type="text" name="ville_asso" source=$plugin.config label="" maxlength=50}
|
<dl class="config">
|
||||||
</dl>
|
{*
|
||||||
|
<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 *}
|
{* les champs de nom *}
|
||||||
<?php $nbChamps = count($champsNom); ?>
|
<?php $nbChamps = count($champsNom); ?>
|
||||||
@ -95,8 +144,9 @@
|
|||||||
<div class="champnom">
|
<div class="champnom">
|
||||||
<div class="actions"></div>
|
<div class="actions"></div>
|
||||||
<div class="infos">
|
<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"
|
||||||
<label for="champ_{$nom}">{$champ.titre}</label>
|
{if $nbChamps == 1 || $champ.position != 0}checked{/if} />
|
||||||
|
<label for="champ_{$nom}">{$champ.titre}</label>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{/foreach}
|
{/foreach}
|
||||||
|
@ -18,7 +18,9 @@ if (f('save') && $form->check('recusfiscaux_config'))
|
|||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
// objet de l'association
|
// objet de l'association
|
||||||
$plugin->setConfig('objet_asso', trim(f('objet_asso')));
|
if ($plugin->getConfig('objet_asso') != trim(f('objet_asso'))) {
|
||||||
|
$plugin->setConfig('objet_asso', trim(f('objet_asso')));
|
||||||
|
}
|
||||||
|
|
||||||
// articles du CGI
|
// articles du CGI
|
||||||
$confArticles = $plugin->getConfig('articlesCGI');
|
$confArticles = $plugin->getConfig('articlesCGI');
|
||||||
@ -45,8 +47,14 @@ if (f('save') && $form->check('recusfiscaux_config'))
|
|||||||
$plugin->setConfig("reduction", $confTaux);
|
$plugin->setConfig("reduction", $confTaux);
|
||||||
|
|
||||||
// nom, fonction et signature du responsable
|
// nom, fonction et signature du responsable
|
||||||
$plugin->setConfig('nom_responsable', trim(f('nom_responsable')));
|
if ($plugin->getConfig('nom_responsable') != trim(f('nom_responsable'))) {
|
||||||
$plugin->setConfig('fonction_responsable', trim(f('fonction_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)
|
if (isset($_SESSION['sig_file']) && count($_SESSION['sig_file']) > 0)
|
||||||
{
|
{
|
||||||
// supprimer la signature précédente, si besoin
|
// supprimer la signature précédente, si besoin
|
||||||
@ -63,7 +71,9 @@ if (f('save') && $form->check('recusfiscaux_config'))
|
|||||||
|
|
||||||
// autres informations
|
// autres informations
|
||||||
// ville
|
// ville
|
||||||
$plugin->setConfig('ville_asso', trim(f('ville_asso')));
|
if ($plugin->getConfig('ville_asso') != trim(f('ville_asso'))) {
|
||||||
|
$plugin->setConfig('ville_asso', trim(f('ville_asso')));
|
||||||
|
}
|
||||||
|
|
||||||
// champs pour le nom et prénom
|
// champs pour le nom et prénom
|
||||||
foreach ($champsNom as $nom => $champ)
|
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
|
// trier les champs de nom pour l'affichage
|
||||||
uasort($champsNom, function ($a, $b)
|
uasort($champsNom, function ($a, $b)
|
||||||
{
|
{
|
||||||
@ -93,9 +108,11 @@ uasort($champsNom, function ($a, $b)
|
|||||||
|
|
||||||
$tpl->assign('ok', qg('ok') !== null);
|
$tpl->assign('ok', qg('ok') !== null);
|
||||||
$path = qg('path') ?: File::CONTEXT_CONFIG;
|
$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('default_signature', \Garradin\WWW_URL . "plugin/recusfiscaux/default_signature.png");
|
||||||
$tpl->assign('plugin_config', $plugin->getConfig());
|
$tpl->assign('plugin_config', $plugin->getConfig());
|
||||||
$tpl->assign('champsNom', $champsNom);
|
//$tpl->assign('champsNom', $champsNom);
|
||||||
$tpl->assign('plugin_css', ['style.css']);
|
$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');
|
$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;
|
$_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
|
// nombre de taux de réduction activés
|
||||||
$nbTaux = 0;
|
$nbTaux = 0;
|
||||||
foreach ($plugin->getConfig('reduction') as $taux)
|
foreach ($plugin->getConfig('reduction') as $taux)
|
||||||
|
@ -85,7 +85,25 @@ div.versements
|
|||||||
/* config */
|
/* config */
|
||||||
dl.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
|
div.champnom
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user