[Galette-discussion] Date de fin de cotisation par durée |
[ Thread Index |
Date Index
| More lists.galette.eu/users Archives
]
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/