]> git.parisson.com Git - teleforma.git/commitdiff
Closing accounts if not paid 48 hours after 3rd mail
authorGael Le Mignot <gael@pilotsystems.net>
Wed, 27 Apr 2022 09:29:44 +0000 (11:29 +0200)
committerGael Le Mignot <gael@pilotsystems.net>
Wed, 27 Apr 2022 09:29:44 +0000 (11:29 +0200)
teleforma/management/commands/teleforma-send-payment-emails.py
teleforma/templates/payment/email_close.txt [new file with mode: 0644]
teleforma/templates/payment/email_close_subject.txt [new file with mode: 0644]

index 5f24d826e52b79ed7d4857b3ca6ab85e4ecc8741..84edd0399000f6aa1b1a2bfc374b1cc07253051e 100644 (file)
@@ -8,6 +8,7 @@ from django.utils import translation
 from teleforma.models import *
 import logging
 import datetime
+from django.core.exceptions import ObjectDoesNotExist
 
 class Logger:
     """A logging object"""
@@ -52,16 +53,29 @@ class Command(BaseCommand):
         today = datetime.date.today()
 
         for student in students:
-            if student.is_subscribed and student.user.email and student.period == period and student.user.is_active :
+            try:
+                user = student.user
+            except ObjectDoesNotExist:
+                logger.logger.warning('missing user object for %s' % student.pk)
+                continue
+            
+            if student.is_subscribed and user.email and student.period == period and user.is_active :
                 for payment in student.payments.filter(type = 'online').exclude(online_paid = True).filter(scheduled__lte = today):
                     if payment.scheduled == today:
                         self.email(student, 'initial', payment)
-                        logger.logger.info('initial email send for %s on %d' % (student.user.username, payment.id))
+                        logger.logger.info('initial email send for %s on %d' % (user.username, payment.id))
                     else:
                         delta = today - payment.scheduled
                         delta = delta.days
                         if delta % 7 == 0:
                             self.email(student, 'reminder', payment)
-                            logger.logger.info('reminder email send for %s on %d' % (student.user.username, payment.id))
+                            logger.logger.info('reminder email send for %s on %d' % (user.username, payment.id))
+                        elif delta == 16:
+                            self.email(student, 'close', payment)
+                            student.restricted = True
+                            student.save()
+                            logger.logger.info('closing account for %s on %d' % (user.username, payment.id))
+                            
+                            
 
         logger.logger.info('############## Done #################')
diff --git a/teleforma/templates/payment/email_close.txt b/teleforma/templates/payment/email_close.txt
new file mode 100644 (file)
index 0000000..6b812e0
--- /dev/null
@@ -0,0 +1,13 @@
+Bonjour,
+
+Dans le cadre de votre inscription à la formation {{ period }}
+et suite à trois relances infructueuses dans le paiement de
+votre échéance, nous vous informons que votre compte est désormais
+restreint.
+
+Pour accéder à nouveau au contenu de votre formation, nous vous
+invitons à procéder au règlement depuis le dernier lien de paiement
+que vous avez reçu par mail.
+
+Cordialement,
+L’équipe du Pré-Barreau
diff --git a/teleforma/templates/payment/email_close_subject.txt b/teleforma/templates/payment/email_close_subject.txt
new file mode 100644 (file)
index 0000000..289db1f
--- /dev/null
@@ -0,0 +1 @@
+Compte restreint – formation Pré-Barreau