Project

General

Profile

Actions

Anomalie #1614

open

due date reminder emails

Added by Frederic CROZET 7 months ago. Updated 6 months ago.

Status:
Nouveau
Priority:
Normal
Assignee:
-
Category:
-
Target version:
-
Start date:
01/09/2022
Due date:
% Done:

0%

Estimated time:
Version utilisée:

Description

Hello,
C'est un problème récurent que je rencontre depuis des années pour les courriels de rappel des échéances de cotisation.
La liste des rappels d'échéances (« Échéances proches » et « Échéances dépassées ») est toujours correcte (hormis l'anomalie #1590).
Par contre, certains rappels ne génèrent pas de courriels. Et j'ai donc des adhérents qui ne sont pas informés de leurs échéances.
Et je ne comprends pas pourquoi.
A priori, lors de la première échéance (1ière année) tout fonctionne parfaitement, tout le monde reçoit des courriels. Par contre pour les échéances suivantes (2nd année, 3ième ...etc.) certains rappels ne fonctionnent pas alors pour que pour certains autres tout fonctionne.
Le problème est le même quelque soit le type d'échéance proches et dépassées.
Je n'arrive pas à expliquer ce dysfonctionnement.
Est-ce une limitation du nombre de courriel envoyé?
Les cotisations précédentes ont été régularisées avec + de 60 jours après l'échéance ??
Aujourd'hui par exemple, j'ai 4 sur 8 échéances proches qui n'ont pas généré de courriels et 4 sur 6 retardataires également...


Related issues 1 (1 open0 closed)

Related to Galette - Anomalie #1612: Mistakes in reminders' unit testsRésolu01/09/2022

Actions
Actions #1

Updated by Guillaume Agniéray 7 months ago

Frederic CROZET a écrit :

Hello,

Hello !

C'est un problème récurent que je rencontre depuis des années pour les courriels de rappel des échéances de cotisation.
La liste des rappels d'échéances (« Échéances proches » et « Échéances dépassées ») est toujours correcte (hormis l'anomalie #1590).

Oui, merci pour les infos que tu fais remonter sur le tracker :)
Elles me sont bien utiles pour mieux comprendre le fonctionnement de galette dans le cas de cotisations par durée.
Car le problème ne se produit pas a priori dans le cas de cotisations par date de début d'exercice (ou alors dans une bien moindre mesure).

Par contre, certains rappels ne génèrent pas de courriels. Et j'ai donc des adhérents qui ne sont pas informés de leurs échéances.
Et je ne comprends pas pourquoi.

Il y a peut-être des erreurs dans les tests unitaires des rappels (#1612).
C'est ce qui ressort de #1590.
S'assurer que les tests sont corrects devrait nous aider à mieux comprendre ;

A priori, lors de la première échéance (1ière année) tout fonctionne parfaitement, tout le monde reçoit des courriels.

Il y a plein de raisons indépendantes de Galette qui peuvent empêcher la réception d'un email.
Difficile de confirmer l'existence d'un dysfonctionnement de Galette sur ce simple constat.

À moins d'une erreur d' expédition qui serait alors normalement mentionnée dans les logs, une fois que les emails sont expédiés, la réception n'est plus du ressort de Galette :/

Par contre pour les échéances suivantes (2nd année, 3ième ...etc.) certains rappels ne fonctionnent pas alors pour que pour certains autres tout fonctionne.

Rien n'exclue un problème dans le calcul des échéances qui déclenchent les rappels.
C'est plus probablement de là que proviendrait le souci.

Le problème est le même quelque soit le type d'échéance proches et dépassées.
Je n'arrive pas à expliquer ce dysfonctionnement.
Est-ce une limitation du nombre de courriel envoyé?

Il existe effectivement des quotas sur les rappels envoyés par Galette.
Je sais que tu utilisais les rappels automatiques jusqu'à récemment (#1604).
À quelle fréquence déclenches-tu tes rappels ?

À la lecture des sources des rappels, un membre ne peut recevoir que 4 rappels par an max (et au minimum 2 selon la date à laquelle les rappels sont déclenchés) :

Les cotisations précédentes ont été régularisées avec + de 60 jours après l'échéance ??
Aujourd'hui par exemple, j'ai 4 sur 8 échéances proches qui n'ont pas généré de courriels et 4 sur 6 retardataires également...

Les dates d'échéances pour les emails non générés entre-elles bien dans les délais dont j'ai fait état ci-dessus ?

Actions #2

Updated by Guillaume Agniéray 7 months ago

Actions #3

Updated by Guillaume Agniéray 7 months ago

  • Related to Anomalie #1590: Incohérence rappels échéances proches et en retard added
Actions #4

Updated by Frederic CROZET 7 months ago

Hello,

Car le problème ne se produit pas a priori dans le cas de cotisations par date de début d'exercice (ou alors dans une bien moindre mesure).

Effectivement, je suis en "durée d’adhésion par défaut" de 12 mois

Il y a plein de raisons indépendantes de Galette qui peuvent empêcher la réception d'un email.
Difficile de confirmer l'existence d'un dysfonctionnement de Galette sur ce simple constat.
À moins d'une erreur d' expédition qui serait alors normalement mentionnée dans les logs, une fois que les emails sont expédiés, la réception n'est plus du ressort de Galette :/

Il n'y a pas de génération de courriel. Et je ne l'avais pas précisé précédemment mais j'ai rien dans les logs.

Rien n'exclue un problème dans le calcul des échéances qui déclenchent les rappels.
C'est plus probablement de là que proviendrait le souci.

Je pense aussi...
Lorsque j'efface la ligne d'un membre, dont les relances ne fonctionnent pas, dans la table "galette_reminders" tout refonctionne pour lui au moins pour cette année.
Voir un ancien échange avec Johan a ce sujet : [[https://listengine.tuxfamily.org/lists.galette.eu/users/2020/12/msg00010.html]]

Il existe effectivement des quotas sur les rappels envoyés par Galette.
Je sais que tu utilisais les rappels automatiques jusqu'à récemment (#1604).
À quelle fréquence déclenches-tu tes rappels ?

Auparavant, j'étais sur un déclenchement par tâche cron hebdomadaire. Puis comme il y avait des loupés, je suis passé à journalière.
Bon depuis, les relances par tache "cron" ne sont plus opérationnelles donc je suis sur des relances manuelles (1 à 3 par semaine). Ces derniers temps pour chercher à comprendre, je suis plutôt à un rappel journalier.

Les dates d'échéances pour les emails non générés entre-elles bien dans les délais dont j'ai fait état ci-dessus ?

Oui, et ils apparaissent bien dans la liste des échéances. Et j'ai bien compris le principe des deux rappels d'échéance proche et des deux autres pour les retardataires.
Notre association est un club canin avec des adhérents qui s'inscrivent tout au long de l'année. C'est un réel confort ces relances automatiques pour la gestion des cotisations de nos 120 adhérents.

Actions #5

Updated by Frederic CROZET 7 months ago

Pour ma culture générale, je ne comprends pas trop le rôle de la table galette_reminders.
La colonne "reminder_date" est la date de la dernière relance, a priori.
et je n'ai pas compris également la fonction de la colonne "reminder_type" 1 ou 2 ?

Pour info, les relances, qui ne fonctionnent pas, ne mettent pas à jour "reminder_date" qui reste à l'échéance de Janvier 2021 par exemple ;)

Actions #6

Updated by Johan Cwiklinski 7 months ago

Frederic CROZET a écrit (#note-5):

Pour ma culture générale, je ne comprends pas trop le rôle de la table galette_reminders.
La colonne "reminder_date" est la date de la dernière relance, a priori.
et je n'ai pas compris également la fonction de la colonne "reminder_type" 1 ou 2 ?

Pour info, les relances, qui ne fonctionnent pas, ne mettent pas à jour "reminder_date" qui reste à l'échéance de Janvier 2021 par exemple ;)

Cette table stocke les relances envoyées. La date est al date d'envoi, ça permet de respecter les "délais" codés en dur dans Galette.
Quant aux 1 (échéances proches) et 2 (en retard), c'est défini dans le code : https://github.com/galette/galette/blob/develop/galette/lib/Galette/Entity/Reminder.php#L77

Actions #7

Updated by Guillaume Agniéray 6 months ago

Donc rien à voir avec #1590.

Le problème viendrait plutôt de là : source:galette/lib/Galette/Repository/Reminders.php#L143

        foreach ($results as $r) {
            if ($r->reminder_type < $type) { // <- ICI
                //sent impending, but is now late. reset last remind.
                $r->reminder_type = $type;
                $r->last_reminder = '';
            }

Cette condition peut-elle seulement être vérifiée malgré la requête (source:galette/lib/Galette/Repository/Reminders.php#L100) ?

        $select->join(
            array('r' => PREFIX_DB . self::TABLE),
            'a.' . Members::PK . '=r.reminder_dest',
            array(
                'last_reminder' => new Expression('MAX(reminder_date)'),
                'reminder_type' => new Expression('MAX(reminder_type)') // <- ICI
            ),
            $select::JOIN_LEFT

Si le reset du dernier rappel n'intervient jamais :
Actions #8

Updated by Guillaume Agniéray 6 months ago

  • Related to deleted (Anomalie #1590: Incohérence rappels échéances proches et en retard)
Actions #9

Updated by Johan Cwiklinski 6 months ago

Guillaume Agnieray a écrit (#note-7):

Si le reset du dernier rappel n'intervient jamais :

Hum... OK, il faudra que je voie à ajouter ces cas dans les tests ; pour reproduire dans un premier temps, et m'assurer que ce soit corrigé ensuite. Les pistes que tu donnes semblent cohérentes, merci :)

Actions

Also available in: Atom PDF