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" : [ "articlesCGI" : [
"Article 200", {
"Article 228 bis", "titre" : "Article 200",
"Article 978" "valeur" : 0
},
{
"titre" : "Article 228 bis",
"valeur" : 0
},
{
"titre" : "Article 978",
"valeur" : 0
}
], ],
"reduction" : [ "reduction" : [
{ {

View File

@ -13,25 +13,27 @@
<form method="post" action="{$self_url}"> <form method="post" action="{$self_url}">
<fieldset> <fieldset>
<legend>Objet</legend> <legend>Objet (but) de l'association</legend>
<dl> <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> <dt><label>Objet</label><b title="Champ obligatoire">obligatoire</b></dt>
{input type="text" name="objet_0" source=$plugin.config label="Ligne 1" maxlength=95} {input type="text" name="objet_asso" source=$plugin.config label="" maxlength=300}
{input type="text" name="objet_1" source=$plugin.config label="Ligne 2" maxlength=95} </dl>
{input type="text" name="objet_2" source=$plugin.config label="Ligne 3" maxlength=95}
</dl>
</fieldset> </fieldset>
<fieldset> <fieldset>
<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 pour reçus fiscaux</b> <b title="Champ obligatoire">obligatoire</b>
</dt> </dt>
{foreach from=$plugin_config->articlesCGI key="num" item="article"} {foreach from=$plugin_config->articlesCGI key="key" item="article"}
{input type="checkbox" name="cgi_art_%s"|args:$num value="1" source=$plugin.config label=$article} {* {input : checked ne fonctionne pas si l'attribut name est un tableau...
{/foreach} {input type="checkbox" name="articlesCGI[]" value=$key label=$article.titre}
</dl> *}
<input type="checkbox" name="articlesCGI[]" value="{$key}"
{if $article.valeur == 1}checked{/if}><label>{$article.titre}</label>
{/foreach}
</dl>
</fieldset> </fieldset>
<p class="submit"> <p class="submit">
{csrf_field key="recusfiscaux_config"} {csrf_field key="recusfiscaux_config"}

View File

@ -78,12 +78,12 @@
<td> <td>
<span class="radio-btn"> <span class="radio-btn">
<input type="radio" id="taux_normal_{$activite.idTarif}" <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> <label for="taux_normal_{$activite.idTarif}">normal</label>
</span> </span>
<span class=" radio-btn"> <span class=" radio-btn">
<input type="radio" id="taux_majore_{$activite.idTarif}" <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> <label for="taux_majore_{$activite.idTarif}">majoré</label>
</span> </span>
</td> </td>

View File

@ -3,16 +3,24 @@
namespace Garradin; namespace Garradin;
$session->requireAccess($session::SECTION_CONFIG, $session::ACCESS_ADMIN); $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')) if (f('save') && $form->check('recusfiscaux_config'))
{ {
try { try {
$plugin->setConfig('objet_0', trim(f('objet_0'))); $plugin->setConfig('objet_asso', trim(f('objet_asso')));
$plugin->setConfig('objet_1', trim(f('objet_1'))); $confArticles = $plugin->getConfig('articlesCGI');
$plugin->setConfig('objet_2', trim(f('objet_2')));; // effacer l'ancienne configuration
$plugin->setConfig('cgi_art1', (bool)f('cgi_art_1')); for ($i = 0; $i < count($confArticles); ++$i) {
$plugin->setConfig('cgi_art2', (bool)f('cgi_art_2')); $confArticles[$i]->valeur = 0;
$plugin->setConfig('cgi_art3', (bool)f('cgi_art_3')); }
// 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'); \Garradin\Utils::redirect(PLUGIN_URL . 'config.php?ok');
} }
catch (UserException $e) catch (UserException $e)

View File

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

View File

@ -4,9 +4,20 @@ namespace Garradin;
use Garradin\Plugin\RecusFiscaux\Utils; use Garradin\Plugin\RecusFiscaux\Utils;
// récupérer les tarifs sélectionnés // récupérer les infos du formulaire
$lesTarifs = f('tarifs'); $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 // liste des versements correspondants
$_SESSION['lesVersements'] = Utils::getVersementsActivite($_SESSION['annee_recu'], $lesTarifs); $_SESSION['lesVersements'] = Utils::getVersementsActivite($_SESSION['annee_recu'], $lesTarifs);

View File

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