from .models import ProgrammedReport from django.utils import timezone # Task que determina que reportes deben ser enviados: # Ejecutado por Cron (Ver settings.py) def send_programmed_reports_task(): timenow = timezone.now() for preport in ProgrammedReport.objects.all(): # Calculamos la fecha en la que debe ser enviado duedate = (preport.last_report_date + preport.frequency) if preport.last_report_date is not None else preport.start_report_date if timenow > duedate: # Calculamos el rango de envio: 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)