reportes #6

Merged
jcedilloAS merged 4 commits from reportes into main 2025-11-25 22:19:31 +00:00
Showing only changes of commit 93f7445725 - Show all commits

View File

@@ -9,9 +9,6 @@ from api.record.models import Document
import csv
import os
from django.conf import settings
import logging
logger = logging.getLogger()
@shared_task
def generate_report_document(report_id):
@@ -91,12 +88,12 @@ def generate_report_document(report_id):
@shared_task
def generate_report_control_pedimento(report_id):
try:
logger.info(f"🔴🔴🔴 INICIANDO TAREA para control de pedimento {report_id}")
report = ReportDocument.objects.get(id=report_id)
report.status = 'processing'
report.save(update_fields=['status'])
filters = report.filters or {}
logger.info(f"🔴🔴🔴 FILTROS: {filters}")
# Construir filtros
pedimentos_filters = {}
@@ -112,7 +109,7 @@ def generate_report_control_pedimento(report_id):
# pedimentos por organizacion
pedimentos_qs = Pedimento.objects.filter(**pedimentos_filters)
pedimentos_total = pedimentos_qs.count()
logger.info(f'🔴🔴🔴 PEDIMENTOS ENCONTRADOS: {pedimentos_total}')
pedimento_ids = list(pedimentos_qs.values_list('id', flat=True))
@@ -240,13 +237,6 @@ def generate_report_control_pedimento(report_id):
for fila in todas_las_filas:
writer.writerow(fila)
# 6. LOGS Y GUARDAR
logger.info(f"📊 REPORTE FINAL:")
logger.info(f" - Expedientes: {pedimentos_total}")
logger.info(f" - Expedientes completos: {pedimentos_completos}")
logger.info(f" - Total documentos: {total_documentos}")
logger.info(f" - Documentos sin descargar: {documentos_sin_descargar}")
logger.info(f" - Porcentaje faltantes: {porcentaje_faltantes:.2f}%")
with open(file_path, 'rb') as f:
report.file.save(filename, ContentFile(f.read()), save=True)
@@ -255,10 +245,7 @@ def generate_report_control_pedimento(report_id):
report.finished_at = timezone.now()
report.save(update_fields=['status', 'file', 'finished_at'])
logger.info(f"✅ REPORTE GENERADO EXITOSAMENTE: {filename}")
except Exception as e:
logger.error(f"❌ ERROR en generate_report_control_pedimento: {str(e)}", exc_info=True)
report.status = 'error'
report.error_message = str(e)
report.finished_at = timezone.now()