Files
TransferData-main/App/Utils/report_utils.py
T
2026-05-09 14:00:04 -04:00

53 lines
2.1 KiB
Python

# Utilidades para generación de reportes - Reutilizado y ajustado de report.py v1
import os
import pandas as pd
import logging
from datetime import datetime
# Configura logging
logging.basicConfig(filename='Logs/reports.log', level=logging.ERROR, format='%(asctime)s - %(levelname)s - %(message)s')
class ReportGenerator:
"""Clase para generar y exportar reportes en Excel"""
def __init__(self, target_date_report, **kwargs ):
"""
Inicializa generador de reportes
Args:
name: Nombre del reporte
nowTime: Fecha actual (datetime)
nowTimeFormat: Formato de fecha (str)
project_name: Nombre del proyecto
current_time: Tiempo de ejecución (datetime)
reportID: ID del reporte (str)
"""
self.name = kwargs.get('report_name',None)
#self.date = kwargs.get('nowTime',None)
self.dateFormat = target_date_report.strftime("%Y%m%d")
self.project_name = kwargs.get('project_name',None)
#self.current_time = kwargs.get('current_time',None)
#self.reportID = kwargs.get('reportID',None)
self.actual_path = os.path.dirname(os.path.abspath(__file__))
#self.download_dir = os.path.join(self.actual_path, '..', '..','Reportes', str(self.project_name), str(self.name), 'download')
self.docsend_dir = os.path.join(self.actual_path, '..', '..','Reportes', str(self.project_name), str(self.name))
#os.makedirs(self.download_dir, exist_ok=True)
os.makedirs(self.docsend_dir, exist_ok=True)
#self.dowload_path = os.path.normpath(self.download_dir)
self.docsend_Path = os.path.normpath(os.path.join(self.docsend_dir, f"{self.name} - {self.dateFormat}.xlsx"))
self.report_name = f"{self.name} - {self.dateFormat}.xlsx"
print(self.report_name)
def createReportData(self,data_sql_report):
self.data_sql_report = data_sql_report
self.df = pd.DataFrame(self.data_sql_report)
self.df.to_excel(self.docsend_Path,index=False)
#return False
#print(self.docsend_Path)