amélioration gestion configuration

FossilOrigin-Name: dd08bb3079c4797c7944082ca9377c645a73f466048bd3928eb1e83973f4fba3
This commit is contained in:
engel 2022-02-07 13:32:17 +00:00
parent a988c131aa
commit 3e02319484
7 changed files with 62 additions and 31 deletions

View File

@ -1,8 +1,17 @@
{
"articlesCGI" : [
"Article 200",
"Article 228 bis",
"Article 978"
{
"titre" : "Article 200",
"valeur" : 0
},
{
"titre" : "Article 228 bis",
"valeur" : 0
},
{
"titre" : "Article 978",
"valeur" : 0
}
],
"reduction" : [
{

View File

@ -13,25 +13,27 @@
<form method="post" action="{$self_url}">
<fieldset>
<legend>Objet</legend>
<dl>
<dt><label>L'objet (but) de l'association doit tenir sur 3 lignes de 100 caractères maximum chacune.</label><b title="(Champ obligatoire)">obligatoire pour reçus fiscaux</b></dt>
{input type="text" name="objet_0" source=$plugin.config label="Ligne 1" maxlength=95}
{input type="text" name="objet_1" source=$plugin.config label="Ligne 2" maxlength=95}
{input type="text" name="objet_2" source=$plugin.config label="Ligne 3" maxlength=95}
</dl>
<legend>Objet (but) de l'association</legend>
<dl>
<dt><label>Objet</label><b title="Champ obligatoire">obligatoire</b></dt>
{input type="text" name="objet_asso" source=$plugin.config label="" maxlength=300}
</dl>
</fieldset>
<fieldset>
<legend>Droit à la réduction d'impôt</legend>
<dl>
<dt><label>Articles concernés par l'association : </label>
<b title="(Champ obligatoire)">obligatoire pour reçus fiscaux</b>
</dt>
{foreach from=$plugin_config->articlesCGI key="num" item="article"}
{input type="checkbox" name="cgi_art_%s"|args:$num value="1" source=$plugin.config label=$article}
{/foreach}
</dl>
<dl>
<dt><label>Articles concernés par l'association : </label>
<b title="Champ obligatoire">obligatoire</b>
</dt>
{foreach from=$plugin_config->articlesCGI key="key" item="article"}
{* {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}"
{if $article.valeur == 1}checked{/if}><label>{$article.titre}</label>
{/foreach}
</dl>
</fieldset>
<p class="submit">
{csrf_field key="recusfiscaux_config"}

View File

@ -78,12 +78,12 @@
<td>
<span class="radio-btn">
<input type="radio" id="taux_normal_{$activite.idTarif}"
name="taux_reduction_{$activite.idTarif}" value="taux_normal" disabled />
name="taux_reduction_{$activite.idTarif}" value="{$plugin_config->reduction[0]->taux}" disabled />
<label for="taux_normal_{$activite.idTarif}">normal</label>
</span>
<span class=" radio-btn">
<input type="radio" id="taux_majore_{$activite.idTarif}"
name="taux_reduction_{$activite.idTarif}" value="taux_majore" disabled />
name="taux_reduction_{$activite.idTarif}" value="{$plugin_config->reduction[1]->taux}" disabled />
<label for="taux_majore_{$activite.idTarif}">majoré</label>
</span>
</td>

View File

@ -3,16 +3,24 @@
namespace Garradin;
$session->requireAccess($session::SECTION_CONFIG, $session::ACCESS_ADMIN);
$art_sel=f('articlesCGI');
error_log("art sel=" . print_r($art_sel, true) . "\n");
if (f('save') && $form->check('recusfiscaux_config'))
{
try {
$plugin->setConfig('objet_0', trim(f('objet_0')));
$plugin->setConfig('objet_1', trim(f('objet_1')));
$plugin->setConfig('objet_2', trim(f('objet_2')));;
$plugin->setConfig('cgi_art1', (bool)f('cgi_art_1'));
$plugin->setConfig('cgi_art2', (bool)f('cgi_art_2'));
$plugin->setConfig('cgi_art3', (bool)f('cgi_art_3'));
$plugin->setConfig('objet_asso', trim(f('objet_asso')));
$confArticles = $plugin->getConfig('articlesCGI');
// effacer l'ancienne configuration
for ($i = 0; $i < count($confArticles); ++$i) {
$confArticles[$i]->valeur = 0;
}
// et copier la nouvelle
foreach ($art_sel as $article) {
$confArticles[$article]->valeur = 1;
}
error_log("confArticles=" . print_r($confArticles, true) . "\n");
$plugin->setConfig("articlesCGI", $confArticles);
error_log("plugin->config=" . print_r($plugin->getConfig("articlesCGI"), true) . "\n");
\Garradin\Utils::redirect(PLUGIN_URL . 'config.php?ok');
}
catch (UserException $e)

View File

@ -21,6 +21,7 @@ $activitesTarifsComptes = Utils::getActivitesTarifsEtComptes();
$tpl->assign('anneesFiscales', $anneesFiscales);
$tpl->assign('anneeCourante', $anneeCourante);
$tpl->assign('activitesTarifsComptes', $activitesTarifsComptes);
$tpl->assign('plugin_config', $plugin->getConfig());
$tpl->assign('plugin_css', ['style.css']);
// envoyer au template

View File

@ -4,9 +4,20 @@ namespace Garradin;
use Garradin\Plugin\RecusFiscaux\Utils;
// récupérer les tarifs sélectionnés
// récupérer les infos du formulaire
$lesTarifs = f('tarifs');
$_SESSION['annee_recu'] = strip_tags($_POST['annee_recu']);
$_SESSION['annee_recu'] = f('annee_recu');
// taux de réduction associés
$lesTaux = array();
foreach ($lesTarifs as $idTarif) {
$nomRadio = "taux_reduction_" . $idTarif;
$valRadio = f("$nomRadio");
$lesTaux[] = $valRadio ? $valRadio: $plugin->getConfig()->reduction[0]->taux;
}
// error_log("Tarifs = " . print_r($lesTarifs, true) . "\n");
// error_log("Réducs = " . print_r($lesTaux, true) . "\n");
// liste des versements correspondants
$_SESSION['lesVersements'] = Utils::getVersementsActivite($_SESSION['annee_recu'], $lesTarifs);

View File

@ -5,7 +5,7 @@ namespace Garradin;
use Garradin\Plugin\RecusFiscaux\Utils;
// liste des versements totaux par personne
$_SESSION['annee_recu'] = strip_tags($_POST['annee_recu']);
$_SESSION['annee_recu'] = f('annee_recu');
$_SESSION['lesVersementsTotaux'] = Utils::getVersementsTotaux($_SESSION['annee_recu']);
// préparation de l'affichage