From 83f704c85d7ead3453ee597a999059e732e70ceb Mon Sep 17 00:00:00 2001 From: GEORGE Date: Mon, 18 May 2026 09:28:55 -0500 Subject: [PATCH] primer commit --- .gitignore | 7 ++ config.json | 35 ++++++ config_final.json | 31 ++++++ config_loader.py | 16 +++ config_model.py | 82 ++++++++++++++ correo_preview.html | 36 ++++++ logger_utilities.py | 70 ++++++++++++ main.py | 214 ++++++++++++++++++++++++++++++++++++ outlook.py | 179 ++++++++++++++++++++++++++++++ requirements.txt | 15 +++ test_load.py | 32 ++++++ venta_presupuesto_linea.rpt | Bin 0 -> 353280 bytes 12 files changed, 717 insertions(+) create mode 100644 .gitignore create mode 100644 config.json create mode 100644 config_final.json create mode 100644 config_loader.py create mode 100644 config_model.py create mode 100644 correo_preview.html create mode 100644 logger_utilities.py create mode 100644 main.py create mode 100644 outlook.py create mode 100644 requirements.txt create mode 100644 test_load.py create mode 100644 venta_presupuesto_linea.rpt diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..7a446c4 --- /dev/null +++ b/.gitignore @@ -0,0 +1,7 @@ +__pycache__/ +*.pyc +.env +venv/ +.DS_Store +.vscode/ +.ide/ diff --git a/config.json b/config.json new file mode 100644 index 0000000..055faef --- /dev/null +++ b/config.json @@ -0,0 +1,35 @@ +{ + "hana": { + "server": "192.168.1.175", + "port": 30015, + "database": "SBO_TAGUMEDICA_21", + "user": "SYSTEM", + "password": "SAPB1Admin.25" + }, + "outlook": { + "client_id": "957c324b-3da3-43ed-b912-ca52fb5d3128", + "client_secret": "Guc8Q~u6FH3xBKpxJ-hQ7QSpRWbnvmX.LnWr-dw7", + "tenant_id": "76f77b2f-6fc3-42a0-ae83-df05508405d6", + "attachments_folder": "attachments", + "verify_ssl": false, + "ca_bundle": null, + "from_email": "business.intelligence@tagumedica.com", + "to_email": [ + "jefes-area-comercial-tgm@tagumedica.com", + "luis.wu@tagumedica.com", + "ricardo.palacios@tagumedica.com", + "eduard.samson@tagumedica.com", + "business.intelligence@tagumedica.com", + "hugo.condori@tagumedica.com", + "marco.marinos@tagumedica.com", + "natalie.arambulo@tagumedica.com" + ] + }, + "crystal": { + "path": "C:/Windows/Microsoft.NET/assembly/GAC_MSIL", + "version": "v4.0_13.0.4000.0__692fbea5521e1304" + }, + "powerbi": { + "url": "https://app.powerbi.com/view?r=eyJrIjoiMGNjOGVjYWUtYzcwNi00OTJiLWE5MjItNzJhMzRjYmFmNjA1IiwidCI6Ijc2Zjc3YjJmLTZmYzMtNDJhMC1hZTgzLWRmMDU1MDg0MDVkNiIsImMiOjR9" + } +} \ No newline at end of file diff --git a/config_final.json b/config_final.json new file mode 100644 index 0000000..9dae98e --- /dev/null +++ b/config_final.json @@ -0,0 +1,31 @@ +{ + "hana": { + "server": "192.168.1.175", + "port": 30015, + "database": "SBO_TAGUMEDICA_21", + "user": "SYSTEM", + "password": "SAPB1Admin.25" + }, + "outlook": { + "client_id": "957c324b-3da3-43ed-b912-ca52fb5d3128", + "client_secret": "Guc8Q~u6FH3xBKpxJ-hQ7QSpRWbnvmX.LnWr-dw7", + "tenant_id": "76f77b2f-6fc3-42a0-ae83-df05508405d6", + "attachments_folder": "attachments", + "verify_ssl": false, + "ca_bundle": null, + "from_email": "george.calle@tagumedica.com", + "to_email": [ + "jefes-area-comercial-tgm@tagumedica.com", + "luis.wu@tagumedica.com", + "ricardo.palacios@tagumedica.com", + "eduard.samson@tagumedica.com", + "business.intelligence@tagumedica.com", + "hugo.condori@tagumedica.com", + "marco.marinos@tagumedica.com", + "natalie.arambulo@tagumedica.com" + ] + }, + "crystal": { + "path": "C:/Windows/Microsoft.NET/assembly/GAC_MSIL" + } +} \ No newline at end of file diff --git a/config_loader.py b/config_loader.py new file mode 100644 index 0000000..96a71de --- /dev/null +++ b/config_loader.py @@ -0,0 +1,16 @@ +from config_model import Config +import os + +# Definir la ruta del archivo de configuración +CONFIG_PATH = os.path.join(os.path.dirname(__file__), "config.json") + +def load_config(): + """Carga la configuración desde el archivo JSON.""" + try: + return Config.load(CONFIG_PATH) + except Exception as e: + print(f"ERROR: Al cargar la configuracion: {e}") + raise e + +# Variable global CONFIG disponible para otros módulos +CONFIG = load_config() diff --git a/config_model.py b/config_model.py new file mode 100644 index 0000000..55ab471 --- /dev/null +++ b/config_model.py @@ -0,0 +1,82 @@ +from dataclasses import dataclass +from typing import Optional +import json +import os + +@dataclass +class HanaConfig: + server: str + port: int + database: str + user: str + password: str + +@dataclass +class OutlookConfig: + client_id: str + client_secret: str + tenant_id: str + from_email: str + to_email: list[str] + attachments_folder: str = "./attachments" + verify_ssl: bool = True + ca_bundle: Optional[str] = None + +@dataclass +class CrystalConfig: + path: str + version: str + +@dataclass +class PowerbiConfig: + url: str + +@dataclass +class Config: + hana: HanaConfig + outlook: OutlookConfig + crystal: CrystalConfig + powerbi: PowerbiConfig + + @staticmethod + def load(path: str = "config.json") -> 'Config': + if not os.path.exists(path): + raise FileNotFoundError(f"No se encontró el archivo de configuración: {path}") + + with open(path, 'r', encoding='utf-8') as f: + data = json.load(f) + + hana_data = data.get('hana', {}) + outlook_data = data.get('outlook', {}) + crystal_data = data.get('crystal', {}) + + # Validar campos requeridos para HANA + required_hana = ['server', 'port', 'database', 'user', 'password'] + for field in required_hana: + if field not in hana_data: + raise KeyError(f"Falta el campo requerido '{field}' en la sección 'hana' de {path}") + + # Validar campos requeridos para Outlook + required_outlook = ['client_id', 'client_secret', 'tenant_id', 'from_email', 'to_email'] + for field in required_outlook: + if field not in outlook_data: + raise KeyError(f"Falta el campo requerido '{field}' en la sección 'outlook' de {path}") + + # Validar campos requeridos para Crystal + required_crystal = ['path', 'version'] + for field in required_crystal: + if field not in crystal_data: + raise KeyError(f"Falta el campo requerido '{field}' en la sección 'crystal' de {path}") + + powerbi_data = data.get('powerbi', {}) + required_powerbi = ['url'] + for field in required_powerbi: + if field not in powerbi_data: + raise KeyError(f"Falta el campo requerido '{field}' en la sección 'powerbi' de {path}") + + hana = HanaConfig(**hana_data) + outlook = OutlookConfig(**outlook_data) + crystal = CrystalConfig(**crystal_data) + powerbi=PowerbiConfig(**powerbi_data) + + return Config(hana=hana, outlook=outlook, crystal=crystal,powerbi=powerbi) diff --git a/correo_preview.html b/correo_preview.html new file mode 100644 index 0000000..69b1813 --- /dev/null +++ b/correo_preview.html @@ -0,0 +1,36 @@ + + + + + + Previsualización del Correo + + + +
+

--- PREVISUALIZACIÓN DEL CORREO --- +

+
+ +

Informe Automático de Ventas

+

Buenos días

+

Me complace compartir con ustedes el reporte de avance de ventas correspondiente al + 13/05/2026.

+

La información se encuentra disponible en el siguiente dashboard:

+

+ + Ver reporte Power BI + +

+
+

Quedamos atentos a cualquier consulta o comentario.

+
+

Saludos cordiales,

+

Equipo de Inteligencia de Negocios

+

Este es un mensaje generado automáticamente por el + sistema de reportes.

+
+ + + \ No newline at end of file diff --git a/logger_utilities.py b/logger_utilities.py new file mode 100644 index 0000000..a6f9eb5 --- /dev/null +++ b/logger_utilities.py @@ -0,0 +1,70 @@ +import sys +import os +from datetime import datetime, timedelta + +######################################################## +class MultiStream: + """ + Clase para redirigir la salida a múltiples flujos (consola y archivo). + """ + def __init__(self, *streams): + self.streams = streams + + def write(self, data): + for stream in self.streams: + stream.write(data) + stream.flush() + + def flush(self): + for stream in self.streams: + stream.flush() + +######################################################## +def setup_logger(): + """ + Configura la redirección de stdout y stderr a un archivo de log y a la consola. + Retorna la ruta del archivo de log creado. + """ + log_dir = "logs" + if not os.path.exists(log_dir): + os.makedirs(log_dir) + + # Nombre del archivo: YYYY-MM-DD_HH-MM-SS.log + timestamp = datetime.now().strftime("%Y-%m-%d_%H-%M-%S") + log_filename = f"{timestamp}.log" + log_path = os.path.join(log_dir, log_filename) + + # Abrir archivo en modo append con encoding utf-8 para soportar iconos + log_file = open(log_path, "a", encoding="utf-8") + + # Redirigir stdout y stderr + sys.stdout = MultiStream(sys.stdout, log_file) + sys.stderr = MultiStream(sys.stderr, log_file) + + return log_path + +######################################################## +def limpiar_logs_antiguos(dias=7): + """ + Elimina archivos de log con más de 'n' días de antigüedad. + """ + log_dir = "logs" + if not os.path.exists(log_dir): + return + + limite = datetime.now() - timedelta(days=dias) + count = 0 + + for archivo in os.listdir(log_dir): + ruta_archivo = os.path.join(log_dir, archivo) + if os.path.isfile(ruta_archivo) and archivo.endswith(".log"): + fecha_archivo = datetime.fromtimestamp(os.path.getmtime(ruta_archivo)) + if fecha_archivo < limite: + try: + os.remove(ruta_archivo) + count += 1 + except Exception as e: + print(f"⚠️ Error al eliminar log {archivo}: {e}") + + if count > 0: + print(f"🧹 Se eliminaron {count} archivos de log antiguos (más de {dias} días).") diff --git a/main.py b/main.py new file mode 100644 index 0000000..9f28f12 --- /dev/null +++ b/main.py @@ -0,0 +1,214 @@ +import os +import sys +import clr +from datetime import datetime, timedelta, timezone +from pathlib import Path +import logger_utilities + +# Importar configuración y utilidades personalizadas +from outlook import get_access_token, send_email +from config_loader import CONFIG + +# --- CRYSTAL REPORTS RUNTIME INITIALIZATION --- +######################################################## +def init_crystal_runtime(): + """ + Inicializa el runtime de Crystal Reports cargando las DLLs necesarias desde el GAC. + Se basa en la ruta configurada en config.json para determinar la versión. + """ + # gac_path = r"C:\Windows\Microsoft.NET\assembly\GAC_MSIL" + gac_path = CONFIG.crystal.path + + # La versión del runtime de Crystal Reports instalada en este sistema + version_folder = CONFIG.crystal.version + + dlls = [ + os.path.join(gac_path, "CrystalDecisions.CrystalReports.Engine", version_folder, "CrystalDecisions.CrystalReports.Engine.dll"), + os.path.join(gac_path, "CrystalDecisions.Shared", version_folder, "CrystalDecisions.Shared.dll"), + os.path.join(gac_path, "CrystalDecisions.ReportSource", version_folder, "CrystalDecisions.ReportSource.dll") + ] + + for dll in dlls: + if not os.path.exists(dll): + print(f"CRITICAL ERROR: No se encontró la DLL necesaria: {dll}") + print("Verifique que el SAP Crystal Reports Runtime esté instalado correctamente.") + sys.exit(1) + clr.AddReference(dll) + +######################################################## +# Inicializar el runtime antes de importar los tipos de .NET +init_crystal_runtime() + +# Importar tipos de .NET después de cargar las referencias +# pyrefly: ignore [missing-import] +from System import DateTime +# pyrefly: ignore [missing-import] +from CrystalDecisions.CrystalReports.Engine import ReportDocument +# pyrefly: ignore [missing-import] +from CrystalDecisions.Shared import ExportFormatType + +# --- HELPERS --- +######################################################## +def configure_database(report): + """ + Configura las credenciales de la base de datos HANA para el reporte y todas sus sub-tablas. + """ + hc = CONFIG.hana + # Login general para el reporte + report.SetDatabaseLogon(hc.user, hc.password, hc.server, hc.database) + + # Asegurar conexión en cada tabla individual + for table in report.Database.Tables: + conn_info = table.LogOnInfo.ConnectionInfo + conn_info.ServerName = hc.server + conn_info.DatabaseName = hc.database + conn_info.UserID = hc.user + conn_info.Password = hc.password + table.ApplyLogOnInfo(table.LogOnInfo) + +######################################################## +def ejecutar_reporte(rpt_filename: str, pdf_path: Path, params: dict) -> bool: + """ + Carga un reporte .rpt, aplica parámetros y lo exporta a PDF. + + :param rpt_filename: Nombre o ruta del archivo .rpt + :param pdf_path: Ruta de salida del archivo PDF + :param params: Diccionario de parámetros {Nombre: Valor} + :return: True si tuvo éxito, False en caso contrario + """ + print(f"--- Generando: {pdf_path.name} ---") + + report = ReportDocument() + try: + report.Load(rpt_filename) + configure_database(report) + + # Asignar parámetros dinámicamente + for key, value in params.items(): + report.SetParameterValue(key, value) + + # Exportar a disco + report.ExportToDisk(ExportFormatType.PortableDocFormat, str(pdf_path)) + print(f"SUCCESS: Reporte guardado en {pdf_path}") + return True + except Exception as e: + print(f"ERROR: Falló la ejecución del reporte '{rpt_filename}': {e}") + return False + finally: + # Siempre liberar recursos de Crystal Reports + report.Close() + report.Dispose() + +######################################################## +def get_report_dates(): + """ + Calcula las fechas de reporte: Ayer y el primer día del mes actual. + Retorna objetos System.DateTime compatibles con Crystal Reports. + """ + now = datetime.now(timezone.utc) + yesterday = now - timedelta(days=1) + + # Objetos .NET DateTime + dt_yesterday = DateTime(yesterday.year, yesterday.month, yesterday.day) + dt_month_start = DateTime(yesterday.year, yesterday.month, 1) + + return dt_month_start, dt_yesterday + +# --- PROCESO PRINCIPAL --- +######################################################## +def main(): + print("====================================================") + print("INICIANDO AUTOMATIZACIÓN DE CRYSTAL REPORTS") + print(f"Fecha/Hora: {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}") + print("====================================================") + + # 1. Autenticación con Microsoft Graph + access_token = get_access_token() + if not access_token: + print("ABORT: Error crítico de autenticación con Outlook.") + return + + # 2. Preparación del Entorno + base_path = Path(__file__).parent + output_dir = base_path / CONFIG.outlook.attachments_folder + output_dir.mkdir(parents=True, exist_ok=True) + + # 3. Cálculo de Fechas + dt_month_start, dt_yesterday = get_report_dates() + str_ayer = dt_yesterday.ToString("dd/MM/yyyy") + str_inicio = dt_month_start.ToString("dd/MM/yyyy") + + # 4. Generación de Reportes + rpt_file = "venta_presupuesto_linea.rpt" + adjuntos = [] + + # REPORTE 1: Venta del día de ayer + pdf_yesterday = output_dir / f"venta_presupuesto_linea_{dt_yesterday.ToString('dd_MM_yyyy')}.pdf" + if ejecutar_reporte(rpt_file, pdf_yesterday, {"FecIni": dt_yesterday, "FecFin": dt_yesterday}): + adjuntos.append(str(pdf_yesterday)) + + # REPORTE 2: Acumulado del mes actual (MTD) + pdf_mtd = output_dir / f"venta_presupuesto_linea_{dt_month_start.ToString('dd_MM_yyyy')}_al_{dt_yesterday.ToString('dd_MM_yyyy')}.pdf" + if ejecutar_reporte(rpt_file, pdf_mtd, {"FecIni": dt_month_start, "FecFin": dt_yesterday}): + adjuntos.append(str(pdf_mtd)) + + # 5. Envío de Correo Electrónico + if adjuntos: + subject = f"Informe de Venta de Presupuestos por Línea - {str_ayer}" + body = f""" + + +

Informe Automático de Ventas por Línea

+

Buenos días

+

Me complace compartir con ustedes el reporte de avance de ventas por línea correspondiente al {str_ayer}.

+

La información se encuentra disponible en el siguiente dashboard:

+

+ + Ver reporte Power BI + +

+
+

Quedamos atentos a cualquier consulta o comentario.

+
+

Saludos cordiales,

+

Equipo de Inteligencia de Negocios

+

Este es un mensaje generado automáticamente por el sistema de reportes.

+ + + """ + success = send_email( + access_token=access_token, + from_email=CONFIG.outlook.from_email, + to_recipients=CONFIG.outlook.to_email, + subject=subject, + html_body=body, + attachment_paths=adjuntos + ) + if success: + print("PROCESO FINALIZADO: Correo enviado correctamente.") + else: + print("ERROR: No se generaron archivos PDF. No hay nada que enviar.") + +######################################################## +if __name__ == "__main__": + try: + # Configurar Logger (Redirige stdout a archivo y consola) + log_path = logger_utilities.setup_logger() + logger_utilities.limpiar_logs_antiguos(dias=30) + + inicio_ejecucion = datetime.now() + print("="*60) + print(f"🚀 INICIO DE EJECUCIÓN: {inicio_ejecucion.strftime('%Y-%m-%d %H:%M:%S')}") + print(f"📄 Log guardado en: {log_path}") + print("="*60) + + main() + + fin_ejecucion = datetime.now() + duracion = fin_ejecucion - inicio_ejecucion + print("\n" + "="*60) + print(f"🏁 FIN DE EJECUCIÓN: {fin_ejecucion.strftime('%Y-%m-%d %H:%M:%S')}") + print(f"⏱️ Duración total: {str(duracion).split('.')[0]}") # Sin microsegundos + print("="*60) + except Exception as e: + print(f"FATAL MAIN ERROR: {e}") diff --git a/outlook.py b/outlook.py new file mode 100644 index 0000000..82b7981 --- /dev/null +++ b/outlook.py @@ -0,0 +1,179 @@ +import requests +import msal +import os +import base64 +import warnings +from datetime import datetime, timedelta, timezone +from config_loader import CONFIG + +warnings.filterwarnings("ignore") +######################################################## +def get_access_token(): + """Obtiene el token de acceso usando MSAL (Client Credentials Flow).""" + outlook_config = CONFIG.outlook + client_id = outlook_config.client_id + client_secret = outlook_config.client_secret + tenant_id = outlook_config.tenant_id + authority = f"https://login.microsoftonline.com/{tenant_id}" + + # Manejo de SSL + verify_ssl = outlook_config.verify_ssl + ca_bundle = outlook_config.ca_bundle + + # MSAL usa requests internamente, podemos pasar proxies/verify + # a través de la configuración si fuera necesario, pero msal tiene su propia forma + # de configurar el http_client. Por simplicidad, si verify_ssl es False, + # podemos intentar configurar el ambiente o pasar un cliente custom. + + app = msal.ConfidentialClientApplication( + client_id, + authority=authority, + client_credential=client_secret, + verify=verify_ssl if ca_bundle is None else ca_bundle + ) + + # El scope para Graph API en modo aplicación suele ser 'https://graph.microsoft.com/.default' + scopes = ["https://graph.microsoft.com/.default"] + + try: + result = app.acquire_token_silent(scopes, account=None) + if not result: + result = app.acquire_token_for_client(scopes=scopes) + + if "access_token" in result: + return result["access_token"] + else: + raise Exception(f"Error obteniendo token: {result.get('error_description')}") + except Exception as e: + print(f"Error obteniendo token: {e}") + return None + +######################################################## +def get_messages(access_token, user_email, date_filter=None, end_date_filter=None): + """Obtiene todos los mensajes de un correo específico, manejando la paginación de Graph API.""" + url = f"https://graph.microsoft.com/v1.0/users/{user_email}/messages" + headers = { + 'Authorization': f'Bearer {access_token}', + 'Content-Type': 'application/json' + } + + outlook_config = CONFIG.outlook + verify = outlook_config.verify_ssl if outlook_config.ca_bundle is None else outlook_config.ca_bundle + + # Solo los mensajes que contengan adjuntos + filter_query = 'hasAttachments eq true' + + if date_filter: + filter_query += f" and receivedDateTime ge {date_filter}" + + if end_date_filter: + filter_query += f" and receivedDateTime le {end_date_filter}" + + params = { + '$filter': filter_query, + '$select': 'id,subject,receivedDateTime,hasAttachments,from', + '$top': 50 # Podemos pedir hasta 999, pero 50 es un buen default para probar paginación + } + + all_messages = [] + next_link = url + + while next_link: + # En la primera iteración usamos url + params. + # En las siguientes, next_link ya trae los filtros y el token de skip en la URL. + if next_link == url: + response = requests.get(next_link, headers=headers, params=params, verify=verify) + else: + response = requests.get(next_link, headers=headers, verify=verify) + + if response.status_code == 200: + data = response.json() + messages = data.get('value', []) + all_messages.extend(messages) + next_link = data.get('@odata.nextLink') + else: + print(f"Error obteniendo mensajes para {user_email}: {response.text}") + break + + return all_messages + +######################################################## +def send_email(access_token, from_email, to_recipients, subject, html_body, attachment_paths=None): + """ + Envía un correo electrónico con cuerpo HTML y múltiples adjuntos PDF. + + :param access_token: Token de acceso de Microsoft Graph API. + :param from_email: Correo electrónico del remitente (cuenta de Office 365). + :param to_recipients: Lista de correos electrónicos de los destinatarios. + :param subject: Asunto del correo. + :param html_body: Contenido del correo en formato HTML. + :param attachment_paths: Lista de rutas a los archivos PDF que se adjuntarán. + :return: True si se envió correctamente, False en caso contrario. + """ + url = f"https://graph.microsoft.com/v1.0/users/{from_email}/sendMail" + headers = { + 'Authorization': f'Bearer {access_token}', + 'Content-Type': 'application/json' + } + + # Configuración de SSL desde CONFIG + outlook_config = CONFIG.outlook + verify = outlook_config.verify_ssl if outlook_config.ca_bundle is None else outlook_config.ca_bundle + + # Construir lista de destinatarios para Graph API + recipients_payload = [] + for email in to_recipients: + recipients_payload.append({ + "emailAddress": { + "address": email + } + }) + + # Construir lista de adjuntos + attachments_payload = [] + if attachment_paths: + for path in attachment_paths: + if os.path.exists(path): + with open(path, "rb") as f: + content_bytes = f.read() + + # Codificar el contenido en Base64 + encoded_content = base64.b64encode(content_bytes).decode('utf-8') + filename = os.path.basename(path) + + attachments_payload.append({ + "@odata.type": "#microsoft.graph.fileAttachment", + "name": filename, + "contentType": "application/pdf", + "contentBytes": encoded_content + }) + else: + print(f"Advertencia: El archivo no existe y no se adjuntará: {path}") + + # Estructura del mensaje para la API + email_data = { + "message": { + "subject": subject, + "body": { + "contentType": "HTML", + "content": html_body + }, + "toRecipients": recipients_payload, + "attachments": attachments_payload + }, + "saveToSentItems": "true" + } + + try: + response = requests.post(url, headers=headers, json=email_data, verify=verify) + if response.status_code == 202: + print(f"SUCCESS: Correo enviado exitosamente a: {', '.join(to_recipients)}") + return True + else: + print(f"ERROR: Al enviar correo: {response.status_code} - {response.text}") + return False + except Exception as e: + print(f"ERROR: Excepcion al enviar correo: {e}") + return False + +######################################################## diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..9646de8 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,15 @@ +# Requerimientos para la ejecución de la aplicación + +# --- DEPENDENCIAS DE PYTHON (INSTALABLES VIA PIP) --- +pythonnet>=3.0.0 +requests>=2.28.0 +msal>=1.20.0 + +# --- DEPENDENCIAS DE SISTEMA OPERATIVO WINDOWS (NO INSTALABLES POR PIP) --- +# IMPORTANTE: Los siguientes componentes deben instalarse a nivel sistema. +# +# 1. SAP Crystal Reports, developer version for Microsoft Visual Studio o SAP Crystal Reports Runtime engine for .NET Framework +# (Instalar la versión de 32 o 64 bits de acuerdo a la versión de Python que estés ejecutando). +# +# 2. SAP HANA Client (Driver ODBC) +# (Requerido para la conexión a la base de datos). diff --git a/test_load.py b/test_load.py new file mode 100644 index 0000000..90ce35e --- /dev/null +++ b/test_load.py @@ -0,0 +1,32 @@ +import clr +import sys +from pathlib import Path + +# Try to find the DLL +gac_path = r"C:\Windows\Microsoft.NET\assembly\GAC_MSIL\CrystalDecisions.CrystalReports.Engine\v4.0_13.0.4000.0__692fbea5521e1304\CrystalDecisions.CrystalReports.Engine.dll" +print(f"Checking path: {gac_path}") +print(f"Exists: {Path(gac_path).exists()}") + +try: + print("Attempting to add reference...") + # Try adding by full path first + clr.AddReference(gac_path) + print("Reference added successfully by path.") +except Exception as e: + print(f"Failed to add reference by path: {e}") + try: + print("Attempting to add reference by name...") + clr.AddReference("CrystalDecisions.CrystalReports.Engine") + print("Reference added successfully by name.") + except Exception as e2: + print(f"Failed to add reference by name: {e2}") + +try: + print("Attempting import...") + # pyrefly: ignore [missing-import] + from CrystalDecisions.CrystalReports.Engine import ReportDocument + print("Import successful!") +except Exception as e: + print(f"Import failed: {e}") + import traceback + traceback.print_exc() diff --git a/venta_presupuesto_linea.rpt b/venta_presupuesto_linea.rpt new file mode 100644 index 0000000000000000000000000000000000000000..245856e0508716cd987214aa42fd9f66a194a8e1 GIT binary patch literal 353280 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

rtz+8ziA{;K^+Kzn{bd2WEaC5r8~vpkV{~ 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