Bläddra i källkod

Desarrollo para envio de reportes pendientes

Tomas Ponce Gessi 3 år sedan
förälder
incheckning
224667a135
1 ändrade filer med 18 tillägg och 0 borttagningar
  1. 18 0
      app/api/tasks.py

+ 18 - 0
app/api/tasks.py

@@ -0,0 +1,18 @@
+from .models import ProgrammedReport
+from django.utils import timezone
+
+
+# Task que determina que reportes deben ser enviados:
+def send_programmed_reports_task():
+    timenow = timezone.now()
+    for preport in ProgrammedReport.objects.all():
+        # Calculamos la fecha en la que debe ser enviado
+        # TODO! Y si se guarda el duedate en el modelo? Puede ser recalculado en cada save()
+        duedate = (preport.last_report_date +
+                   preport.frequency) if preport.last_report_date is not None else preport.start_report_date
+        if timenow > duedate:
+            # Si hay que enviarlo calculamos el rango de envío. (Ver TODO! en el metodo send_report)
+            start_date = preport.last_report_date if preport.last_report_date is not None else preport.start_report_date
+            end_date = start_date + preport.frequency
+            # Se envía el reporte
+            preport.send_report(start_date, end_date)