La gestion de `date_fin` est pénible : séparer date_fin de l'abonnement et date_fin de la CB
Cette histoire de gestion de date_fin
est assez embêtante
-
actuelleement on mets dans
date_fin
la date de fin de validité de la CB si connue. Mais du coup on ne peut plus distinguer les abonnements qui ont une fin prévue (genre je m'abonne pour 6 mois en mensuel), et ceux qui vont continuer "jusqu'à ce que le moyen de paiement soit refusé" -
sur mon plugin abos j'ai changé de méthode : si c'est un abonnement recurrent je ne mets plus la date de validité de la CB en date de fin sur l'abonnement, car de toute façon il s'arrêtera automatiquement lorsque le paiement sera refusé ou en l'absence de paiement. Comme ça le champ
date_fin
contient uniquement une vraie date de fin de l'abonnement, ou rien du tout si pas de fin prévue, et on peut l'afficher car elle veut dire quelque chose
Au final, en migrant un vieux Thelia 1, j'ai vu qu'ils avaient en fait deux champs : une date_fin
et une date_fin_cb
sur leurs abonnements, et je me dis que c'est sans doute la bonne idée, car comme ça
- on distingue bien les 2,
- on peut afficher dans le compte abonné "Abonnement valide jusqu'au xxx" si il y a une date_fin renseignée
- on peut aussi afficher un message "Attention votre moyen de paiement va expirer le JJ/MM/AAAA" quand on arrive bientôt à l'expiration de la CB (voire envoyer une notification par mail spécifique)
A priori on a pas besoin de tenir compte de date_fin_cb
pour les résiliations, car comme expliqué plus haut, une CB expirée provoque un paiement en echec, et donc une résiliation, et au pire sinon on a une résiliation du fait de l'absence de paiement de l'échéance.