[Galette-discussion] Problème d'utilisation : date de renouvellement de cotisation

[ Thread Index | Date Index | More lists.galette.eu/users Archives ]


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/


Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/