intégration comptes

FossilOrigin-Name: d81e13438cbc9ed585e76b36e2950615b8da359697f2c577673c77460b59064d
This commit is contained in:
engel 2022-05-18 10:29:19 +00:00
parent 4958b88538
commit 68e6afed11
9 changed files with 609 additions and 421 deletions

View file

@ -1,67 +1,55 @@
<!-- nav bar -->
{include file="%s/templates/_nav.tpl"|args:$plugin_root current_nav="index"}
<?php $url = PLUGIN_URL ?>
<nav class="acc-year">
<h4>Année fiscale sélectionnée&nbsp;:</h4>
<h3>{$annee_recu}</h3>
<footer>{linkbutton label="Changer d'année fiscale" href="$url/choix_annee.php?from=%s"|args:rawurlencode($self_url) shape="settings"}</footer>
<footer>{linkbutton label="Changer d'année fiscale" href="%s/choix_annee.php?from=%s"|args:PLUGIN_URL,rawurlencode($self_url) shape="settings"}</footer>
</nav>
<form id="formulaire_saisie" method="post" action="action.php">
<div id="choix_methode">
<h2>Choisir une méthode de génération des reçus</h2>
<h3>Sélectionner les versements pour les reçus</h3>
<fieldset>
{* <legend>Choisir une des méthodes</legend> *}
<dl>
<dl id="menu">
<dd class="radio-btn">
<input type="radio" id="radio_versements_personne" name="choix_versements" value="personne"
onclick="choixMethodeGeneration(this.form, 'personne', '.tous', '.activites');" />
onclick="choixMethodeGeneration(this.form, 'personne', 'menu_versements', '.menu');" />
<label for="radio_versements_personne">
<div class="explications">
<h5>
Tous les versements des membres font l'objet d'un reçu, quels que soient les activités, tarifs et les comptes du plan comptable
Seuls les versements des personnes importent.
</h5>
<p>Choisissez cette option si vous voulez sélectionner les versements d'une, plusieurs
ou toutes les personnes</p>
<p class="help">Choisissez cette option si vous n'avez pas besoin des activités ni des tarifs</p>
</div>
</label>
</dd>
{*
<dd class="radio-btn">
<input type="radio" id="radio_versements_personne_compte" name="choix_versements" value="personne_compte"
onclick="choixMethodeGeneration(this.form, 'personne', '.tous', '.activites');" />
onclick="choixMethodeGeneration(this.form, 'compte', 'menu_comptes', '.menu');" />
<label for="radio_versements_personne_compte">
<div class="explications">
<h5>
Seuls les versements sur certains comptes du plan comptable font l'objet d'un reçu
Seuls certains comptes du plan comptable importent.
</h5>
<p>Choisissez cette option si vous voulez sélectionner :</p>
<ul>
<li>certains comptes du plan comptable</li>
<li>certains versements de certaines personnes</li>
</ul>
<p class="help">Choisissez cette option si les comptes du plan comptable importent, mais pas les activités ni les tarifs</p>
</div>
</label>
</dd>
*}
<dd class="radio-btn">
<dd class="radio-btn">
<input type="radio" id="radio_versements_activites" name="choix_versements"
value="activite" onclick="choixMethodeGeneration(this.form, 'activite', '.activites', '.tous');" />
<input type="radio" id="radio_versements_activites" name="choix_versements" value="activite"
onclick="choixMethodeGeneration(this.form, 'activite', 'menu_activites_tarifs', '.menu');" />
<label for="radio_versements_activites">
<div class="explications">
<h5>
Seuls les versements de certaines activités et tarifs font
l'objet d'un reçu
Certaines activités ou certains tarifs importent.
</h5>
<p>Choisissez cette option si vous voulez sélectionner :</p>
<ul>
<li>certaines activités ou certains tarifs</li>
<li>certains versements de certaines personnes</li>
</ul>
<p class="help">Choisissez cette option pour classer les versements par activités et tarifs</p>
</div>
</label>
</dd>
@ -69,110 +57,215 @@
</fieldset>
</div>
{* Toutes les personnes *}
<div id="div_taux_reduc" class="tous hidden">
<h2>Choisir le taux de réduction</h2>
{* Tous les versements *}
<div id="menu_versements" class="menu hidden">
<h3>Choisir le taux de réduction</h3>
<fieldset>
{if $nbTaux == 0}
<h3 class="warning">Vous devez d'abord sélectionner au moins un taux de réduction dans l'onglet de
configuration</h3>
<h3 class="warning">Vous devez d'abord sélectionner au moins un taux de réduction dans l'onglet de configuration</h3>
{/if}
{if $nbChamps == 0}
<h3 class="warning">Vous devez d'abord sélectionner au moins un champ pour le nom et le prénom dans l'onglet
de configuration</h3>
<h3 class="warning">Vous devez d'abord sélectionner au moins un champ pour le nom et le prénom dans l'onglet de configuration</h3>
{/if}
{if $nbTaux > 0 && $nbChamps > 0}
<ul class="reduction">
{foreach from=$plugin_config->reduction item="reduc"}
{if $reduc->valeur == 1}
<li>
<span class="radio-btn">
<input type="radio" id="{$reduc->taux}" name="taux_reduction" value="{$reduc->taux}"
{if $nbTaux == 1}checked{/if} />
<input
type="radio"
id="{$reduc->taux}"
name="taux_reduction"
value="{$reduc->taux}"
{if $nbTaux == 1}checked{/if}
/>
<label for="{$reduc->taux}">{$reduc->taux}{if $reduc->remarque != ""} - {$reduc->remarque}{/if}</label>
</span>
</li>
{/if}
{/foreach}
</ul>
{/if}
</fieldset>
</div>
<div id="generer_tous" class="tous hidden">
<p class=" submit">
<p class="submit">
{csrf_field key="generer_tous_recus"}
{button type="submit" name="generer_tous" label="Poursuivre" shape="right" class="main" onclick="return verifierRadio('div_taux_reduc');" }
{button type="submit" name="generer_tous" label="Poursuivre" shape="right" class="main" onclick="return verifierRadio('menu_versements');" }
</p>
</div>
{* Activités et tarifs *}
<div id="liste_activites_tarifs" class="activites hidden">
<h2>Choisir les activités et tarifs concernés par les reçus ainsi que le taux de réduction</h2>
{* Comptes *}
{*
<div id="menu_comptes" class="menu hidden">
<h3>Choisir les comptes concernés ainsi que le taux de réduction</h3>
<fieldset>
{if $nbTaux == 0}
<h3 class="warning">Vous devez d'abord sélectionner au moins un taux de réduction dans l'onglet de
configuration</h3>
<h3 class="warning">Vous devez d'abord sélectionner au moins un taux de réduction dans l'onglet de configuration</h3>
{/if}
{if $nbChamps == 0}
<h3 class="warning">Vous devez d'abord sélectionner au moins un champ pour le nom et le prénom dans l'onglet
de configuration</h3 {/if} {if $nbTaux > 0 && $nbChamps > 0} <table class="list">
<h3 class="warning">Vous devez d'abord sélectionner au moins un champ pour le nom et le prénom dans l'onglet de configuration</h3>
{/if}
{if $nbTaux > 0 && $nbChamps > 0}
<table class="list">
<thead>
<tr>
<th>Activité et Tarif</th>
<th>Cocher</th>
<th style="width: 35%;">N° et Compte</th>
<th>Taux de réduction</th>
<th>Caractéristiques activité</th>
<th>N° et Compte</th>
</tr>
</thead>
<tbody>
{foreach from=$activitesTarifsComptes item="activite"}
{foreach from=$lesComptes key="idcpt" item="compte"}
<tr>
<td>
<span>{$activite.titreActivite} - {$activite.titreTarif}</span>
</td>
{if $nbTarifs == 1}
{input
type="checkbox"
name="comptes[]"
value=$idcpt
label="%s : %s"|args:$compte.codeCompte,$compte.nomCompte
checked="checked"
}
{else}
{input
type="checkbox"
name="comptes[]"
value=$idcpt
label="%s : %s"|args:$compte.codeCompte,$compte.nomCompte
}
{/if}
<td>
{if $nbTarifs == 1}
{input
type="checkbox"
name="tarifs[]"
value=$activite.idTarif
checked="checked"
}
{else}
{input
type="checkbox"
name="tarifs[]"
value=$activite.idTarif
}
{/if}
</td>
<td>
{foreach from=$plugin_config->reduction item="reduc"}
{foreach from=$plugin_config->reduction item="reduc"}
{if $reduc->valeur == 1}
<span class="radio-btn">
<input type="radio" id="taux_{$reduc->taux}_{$activite.idTarif}"
name="taux_reduction_{$activite.idTarif}" value="{$reduc->taux}"
{if $nbTarifs > 1}disabled{/if} {if $nbTaux == 1}checked{/if} />
<label
for="taux_{$reduc->taux}_{$activite.idTarif}">{$reduc->taux}{if $reduc->remarque != ""}
- {$reduc->remarque}{/if}</label>
</span>
<span class="radio-btn">
<input type="radio" id="taux_{$reduc->taux}_{$idcpt}"
name="taux_reduction_{$idcpt}" value="{$reduc->taux}"
{if $nbTarifs > 1}disabled{/if} {if $nbTaux == 1}checked{/if} />
<label for="taux_{$reduc->taux}_{$idcpt}">{$reduc->taux}
{if $reduc->remarque != ""} - {$reduc->remarque}{/if}
</label>
</span>
{/if}
{/foreach}
{/foreach}
</td>
<td>{if $activite.descActivite != ""}{$activite.descActivite} ; {/if}{$activite.descTarif}</td>
<td>{$activite.numeroCpt} : {$activite.nomCpt}</td>
</tr>
{/foreach}
</tbody>
</table>
{/if}
</fieldset>
</div>
<div id="generer_activites" class="activites hidden">
<p class=" submit">
<p class="submit">
{csrf_field key="generer_recus_comptes"}
{button type="submit" name="generer_comptes" label="Poursuivre" shape="right" class="main" onclick="return verifierCases('menu_comptes');" }
</p>
</div>
*}
{* Activités et tarifs *}
<div id="menu_activites_tarifs" class="menu hidden">
<h3>Choisir les activités, tarifs et comptes concernés ainsi que le taux de réduction</h3>
<fieldset>
{if $nbTaux == 0}
<h3 class="warning">Vous devez d'abord sélectionner au moins un taux de réduction dans l'onglet de configuration</h3>
{/if}
{if $nbChamps == 0}
<h3 class="warning">Vous devez d'abord sélectionner au moins un champ pour le nom et le prénom dans l'onglet de configuration</h3>
{/if}
{if $nbTaux > 0 && $nbChamps > 0}
<ul id="liste_activites">
{foreach from=$activitesTarifsComptes item="elem"}
<li>
<?php
$tarif = $lesTarifs[$elem->idTarif];
$compte = $lesComptes[$elem->idCompte];
$activite = $lesActivites[$tarif->idActivite];
?>
<div class="activite">
<?php
$libelle = $activite->label . " - tarif " . $tarif->label . "&nbsp;; ";
?>
{if $nbTarifs == 1}
{input
type="checkbox"
name="tarifs[]"
value="%s_%s"|args:$elem.idTarif,$elem.idCompte
label="%s - tarif %s ;"|args:$activite.label,$tarif.label
checked="checked"
}
{else}
{input
type="checkbox"
name="tarifs[]"
value="%s_%s"|args:$elem.idTarif,$elem.idCompte
label="%s - tarif %s ;"|args:$activite.label,$tarif.label
}
{/if}
<span>compte : {$elem.codeCompte} ({$compte->nomCompte})</span>
</div>
<ul class="reduction">
{foreach from=$plugin_config->reduction item="reduc"}
{if $reduc->valeur == 1}
<li>
<span class="radio-btn">
<input
type="radio"
id="taux_{$reduc->taux}_{$elem.idTarif}_{$elem.idCompte}"
name="taux_reduction_{$elem.idTarif}_{$elem.idCompte}"
value="{$reduc->taux}"
{if $nbTarifs > 1}disabled{/if}
{if $nbTaux == 1}checked{/if}
/>
<label for="taux_{$reduc->taux}_{$elem.idTarif}_{$elem.idCompte}">
{$reduc->taux}{if $reduc->remarque != ""} - {$reduc->remarque}{/if}</label>
</span>
</li>
{/if}
{/foreach}
</ul>
</li>
{/foreach}
{* comptes non rattachés à une activité *}
{foreach from=$comptesSansActivite item="idCompte"}
<li>
<div class="activite">
{input
type="checkbox"
name="comptes[]"
value="%s"|args:$idCompte
label="Versements non rattachés à une activité ;"
}
<?php $compte = $lesComptes[$idCompte]; ?>
<span>compte : {$compte.codeCompte} ({$compte.nomCompte})</span>
</div>
{/foreach}
<ul class="reduction">
{foreach from=$plugin_config->reduction item="reduc"}
{if $reduc->valeur == 1}
<li>
<span class="radio-btn">
<input
type="radio"
id="taux_{$reduc->taux}_{$idCompte}"
name="taux_reduction_{$idCompte}"
value="{$reduc->taux}"
disabled
{if $nbTaux == 1}checked{/if}
/>
<label for="taux_{$reduc->taux}_{$idCompte}">
{$reduc->taux}{if $reduc->remarque != ""} - {$reduc->remarque}{/if}</label>
</span>
</li>
{/if}
{/foreach}
</ul>
</li>
</ul>
{/if}
</fieldset>
<p class="submit">
{csrf_field key="generer_recus_activites"}
{button type="submit" name="generer_activites" label="Poursuivre" shape="right" class="main" onclick="return verifierCases('liste_activites_tarifs');" }
{button type="submit" name="generer_activites" label="Poursuivre" shape="right" class="main" onclick="return verifierCases('menu_activites_tarifs');" }
</p>
</div>
</form>
@ -184,8 +277,8 @@
for (var laCase of document.querySelectorAll("input[type=checkbox]")) {
laCase.addEventListener('change', (evt) => {
var idCase = evt.target;
// chercher la ligne englobante (<tr>)
var ligne = idCase.closest("tr");
// chercher la ligne englobante (<li>)
var ligne = idCase.closest("li");
// itérer sur les radio de cette ligne
var lesRadios = ligne.querySelectorAll('input[type=radio]');
for (var idRadio of lesRadios) {

View file

@ -26,41 +26,51 @@
$pair = true;
$tarifCourant = $versement->idTarif;
$personneCourante = $versement->idUser;
$compteCourant = $versement->compte;
$compteCourant = $versement->idCompte;
?>
{afficher_debut_tarif versement=$versement}
{afficher_debut_personne user=$personneCourante idVersement="%s_%s"|args:$tarifCourant,$personneCourante}
{afficher_debut_compte idCompte=$compteCourant}
{elseif $versement.idTarif != $tarifCourant}
{* changement de tarif *}
{fin_compte}
{fin_personne}
{fin_tarif}
<?php
$pair = true;
$tarifCourant = $versement->idTarif;
$personneCourante = $versement->idUser;
$compteCourant = $versement->compte;
$compteCourant = $versement->idCompte;
?>
{afficher_debut_tarif versement=$versement}
{afficher_debut_personne user=$personneCourante idVersement="%s_%s"|args:$tarifCourant,$personneCourante}
{afficher_debut_compte idCompte=$compteCourant}
{elseif $versement.idUser != $personneCourante}
{* changement de personne *}
{fin_compte}
{fin_personne}
<?php
$pair = true;
$personneCourante = $versement->idUser;
$compteCourant = $versement->compte;
$compteCourant = $versement->idCompte;
?>
{afficher_debut_personne user=$personneCourante idVersement="%s_%s"|args:$tarifCourant,$personneCourante}
{elseif $versement.compte != $compteCourant}
{* même personne mais changement de compte *}
<?php $compteCourant = $versement->compte; ?>
<hr />
{afficher_debut_compte idCompte=$compteCourant}
{elseif $versement.idCompte != $compteCourant}
{fin_compte}
{* changement de compte *}
<?php
$pair = true;
$compteCourant = $versement->idCompte;
?>
{afficher_debut_compte idCompte=$compteCourant}
{else}
{* même personne, même compte *}
{/if}
{afficher_versement versement=$versement idVersement="%s_%s"|args:$tarifCourant,$personneCourante rang=$rang pair=$pair}
<?php $pair = ! $pair; ?>
{/foreach} {* Itération sur les versements *}
{fin_compte}
{fin_personne}
{fin_tarif}

View file

@ -3,6 +3,42 @@
<h2>Versements par personne</h2>
<form method="post" id="saisie_taux" action="{$self_url}">
<div id="menu_versements" class="menu">
<h3>Choisir le taux de réduction</h3>
<fieldset>
{*
{if $nbTaux == 0}
<h3 class="warning">Vous devez d'abord sélectionner au moins un taux de réduction dans l'onglet de configuration</h3>
{/if}
{if $nbChamps == 0}
<h3 class="warning">Vous devez d'abord sélectionner au moins un champ pour le nom et le prénom dans l'onglet de configuration</h3>
{/if}
{if $nbTaux > 0 && $nbChamps > 0}
*}
<ul class="reduction">
{foreach from=$plugin_config->reduction item="reduc"}
{if $reduc->valeur == 1}
<li>
<span class="radio-btn">
<input type="radio" id="{$reduc->taux}" name="taux_reduction" value="{$reduc->taux}"
{*
{if $nbTaux == 1}checked{/if}
*}
/>
<label for="{$reduc->taux}">{$reduc->taux}{if $reduc->remarque != ""} - {$reduc->remarque}{/if}</label>
</span>
</li>
{/if}
{/foreach}
</ul>
{*
{/if}
*}
</fieldset>
</div>
</form>
<fieldset class="noprint">
<input type="checkbox" class="check_global" id="check_global"
onclick="cocherDecocherToutesLesPersonnes(check_global)" />
@ -14,7 +50,7 @@
onclick="return verifierChoix(this.form)" />
</fieldset>
<form method="post" id="versements_personnes" action="generer_recus.php?type=personne">
<form method="post" id="versements_personnes" class="" action="generer_recus.php?type=personne">
{* Itération sur les personnes *}
{foreach from=$lesVersements key="rang" item="versement"}
@ -23,28 +59,36 @@
<?php
$pair = true;
$personneCourante = $versement->idUser;
$compteCourant = $versement->compte;
$compteCourant = $versement->idCompte;
?>
{afficher_debut_personne user=$personneCourante idVersement=$personneCourante}
{afficher_debut_compte idCompte=$compteCourant}
{elseif $versement.idUser != $personneCourante}
{* changement de personne *}
{fin_compte}
{fin_personne}
<?php
$pair = true;
$personneCourante = $versement->idUser;
$compteCourant = $versement->compte;
$compteCourant = $versement->idCompte;
?>
{afficher_debut_personne user=$personneCourante idVersement=$personneCourante}
{elseif $versement.compte != $compteCourant}
{* même personne mais changement de compte *}
<?php $compteCourant = $versement->compte; ?>
<hr />
{afficher_debut_compte idCompte=$compteCourant}
{elseif $versement.idCompte != $compteCourant}
{fin_compte}
{* changement de compte *}
<?php
$pair = true;
$compteCourant = $versement->idCompte;
?>
{afficher_debut_compte idCompte=$compteCourant}
{else}
{* même personne, même compte *}
{/if}
{afficher_versement versement=$versement idVersement=$personneCourante rang=$rang pair=$pair}
<?php $pair = ! $pair; ?>
{/foreach} {* Itération sur les personnes *}
{fin_compte}
{fin_personne}
<input type="submit" value="Générer les reçus" onclick="return verifierChoix(this.form)" />