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/