# 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)