Stéphane Salès a écrit :
> Le Wednesday 7 December 2005 00:02, Laurent Pelecq écrivait :
>
>>Salut,
>
> Salut,
>
>
>>Pour le bug, visiblement le décalage va au delà de 2038 et repasse en
>>1970. Il faudrait prendre un exemple pour un adhérent avec les dates
>>de début et de fin de chaque période de cotisation et voir bout à
>>bout quelle date est attendue et quelle date est calculée dans
>>l'upgrade.
>
> j'essaye de faire ca d'ici ce week-end, et je posterai ici.
> Merci des infos.
En regardant de plus près, il me semble qu'il y a un gros bug. Les
cotisations de tous les adhérents sont mises bout à bout. Il faudrait
faire une requête pour avoir la liste des adhérents et pour chacun
mettre seulement ses propres cotisations bout à bout.
Je pense que je n'avais testé qu'avec un seul adhérent :-(
Il me semble qu'il faudrait faire quelque chose comme ça (j'espère que
ce n'est pas trop confus, mon php est un peu rouillé :-).
// begin: fix overlapping fees
$adh_list = array();
$query = "SELECT id_adh from ".$table_prefix."adherents";
$result = $DB->Execute($query);
if (!$result)
print $query.": ".$DB->ErrorMsg();
else {
while (!$result->EOF) {
$adh_list[] = $result->Field('id_adh');
$result->MoveNext();
}
}
foreach ($adh_list as $id_adh) {
$cotis = array();
$query = "SELECT [...]
where [...]
and ".$table_prefix."cotisation.id_adh = '".$id_adh."'
[...]
$result = $DB->Execute($query);
Si tu peux tester sur ta base, ce serait super.
Laurent