Bonjour,

J’ai installé galette pour ma toute nouvelle association, et après quelques 
soucis car les instructions ne sont pas toujours compréhensibles quand on 
aborde pour la première fois, cela marche plutôt pas mal du tout, et je 
félicite les développeurs.

Toutefois je suis tombé sur des petits problèmes que j’interprète comme bug. 

Je pense être au bon endroit pour en discuter, mais merci de m’indiquer si je 
me trompe et où je dois aller si ce n’est pas le bon endroit.

J’ai deux bugs (ce ne sont pas des bugs techniques mais des anomalies de 
fonctionnement) : le premier sur la durée de cotisation calculée, et l’autre 
plus importante sur la date de prise en compte du début du renouvellement.

Je fais deux mails différents pour chacun des pbs.


DATE DE RENOUVELLEMENT

Description :

quand on renouvelle une cotisation, la date prise en compte de début de période 
pour la cotisation n’est pas la date anniversaire, mais la date de paiement.
C’est très embêtant, car si un membre paye un mois en retard par paypal, lui 
ajoute en fait un mois de cotisation, car la nouvelle période ne commence pas 
quand son abonnement en cours s’achève, mais au moment où il paye …

S’il s'agit d’un nouveau membre qui n’a jamais cotisé, la date de paiement 
comme début (date anniversaire) est parfait.
S’il s’agit d’un renouvellement de cotisation, il faut partir de la fin de 
validité de la période de cotisation.
Je me suis rendu compte avec un certain effroi que cette date n’était pas liée 
au membre (pas dans la table des membres) mais dans les contributions !!! 
La logique voudrait que cela étant une qualité du membre, la date soit dans la 
table membre. Or, la date correspondante dans la table des membres (qui est 
d’ailleurs utilisée pour l’affichage de fin de cotisation dans la liste) n’est 
pas utilisée dans le calcul de la nouvelle période de cotisation.
Cela est d’ailleurs un problème de fond, car la même information se trouvant à 
deux endroits différents peut rendre la base instable par manque de cohérence.


Ma solution :

J’ai fait très sauvage, et j’ai modifié directement dans le code. Je sais, ce 
n’est pas bien, mais bon, il fallait que mon site fonctionne …

J’ai donc directement modifié, ce qui pose un problème car à la prochaine maj 
de galette, il me faut recommencer à taper dans le code de référence, ce qui 
est toujours une très mauvaise idée.

En attendant, ça marche, mais ce n’est pas bien, et il faudrait corriger dans 
une prochaine version de galette … non ?





Pour info, ce que j’ai modifié

lib>Galette>Entity>Contribution.php vers la ligne 174

if ($curend != '') {
                    $dend = new \DateTime($curend);
                    $olddue=$dend;
$plusunjour = new \DateInterval("P1D");
$olddue->add($plusunjour);
                    $now = date('Y-m-d');
                    $dnow = new \DateTime($now);
                    if ( $dend < $dnow ) {
                        // Member didn't renew on time but force to old date due

                        $this->_begin_date = $olddue->format('Y-m-d');
                    } else {
                        $this->_begin_date = $curend;
                    }



--
Galette users discussions

http://galette.eu - http://galette.eu/documentation
http://bugs.galette.eu/projects/galette/

List documentation: https://listengine.tuxfamily.org/lists.galette.eu/users/

Répondre à