Description :

Quand on choisit une cotisation annuelle de date à date, on indique 12 mois.

Le système ajoute donc 12 mois, ce qui fait que si la création est au 12 
février 2017, la cotisation est marquée jusqu’au 12 février 2018.

Le problème est que la définition de ce 12 février n’est pas bien claire : si 
c’est la date où doit commencer la prochaine cotisation, c’est bon. Mais en 
fait, quand on ajoute une cotisation, on se retrouve avec un jour de trop, et 
il faudrait que la date de fin de cotisation soit non pas le 12 février 2018 
mais le 11 février 2018.

Ma solution :

J’ai de nouveau fait ce qu’il ne fallait pas faire en attendant une correction, 
et j’ai directement tapé dans le code. Il ne faut pas le faire pour des tas de 
raisons, mais que j’ai quand même fait en attendant que ce soit intégré dans 
une release officielle de galette.Au moins, en attendant, cela fonctionne chez 
moi.

Ce qu’il faudrait : 

Et bien tout simplement corriger : lorsque l’on indique une cotisation de 12 
mois, il faut calculer la date de fin de cotisation à +12 mois - 1jour.


J’indique ce que je mets comme code, mais je répète encore une fois que ce 
n’est pas quelque chose à faire. Simplement, sachant tout le travail que les 
développeurs ont pour corriger, ajouter des fonctions etc … et sachant qu’ils 
ne sont pas vraiment payés pour ça, je  n’ai pas eu la patience d'attendre, 
mais je souhaite vivement l’application d’une correction (la mienne ou une 
autre) pour que je puisse oublier mes patches mis au pis aller.



Michel

Ma modif pour info :

lib>Galette>Entity>Contribution.php

dans la fonction _retrieveEndDate

remplacer
//case membership extension
           $dext = new \DateInterval('P' . $this->_extension . 'M’);
           $edate = $bdate->add($dext);
           $this->_end_date = $edate->format('Y-m-d');

par 

//case membership extension
           $dext = new \DateInterval('P' . $this->_extension . 'M');
           $moinsunjour = new \DateInterval("P1D");
           $moinsunjour->invert=1;
           $edate = $bdate->add($dext);
           $edate = $bdate->add($moinsunjour);
           $this->_end_date = $edate->format('Y-m-d');
--
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 à