diff --git a/NotificacionCruce/VigenciaDoda.py b/NotificacionCruce/VigenciaDoda.py
index 19d3b9e..396ef6a 100644
--- a/NotificacionCruce/VigenciaDoda.py
+++ b/NotificacionCruce/VigenciaDoda.py
@@ -5,7 +5,25 @@ import pyodbc
import json
import datetime
-# Cargar la información de conexión desde el archivo JSON
+# import os cargar achivo en diferentes carpetas.
+# # # Cargar la información de conexión desde el archivo JSON
+# # with open('config.json', 'r') as config_file:
+# # config = json.load(config_file)
+
+
+
+# # Obtiene la ruta del directorio donde se encuentra el script
+# directorio_script = os.path.dirname(os.path.abspath(__file__))
+
+# # Establece el directorio de trabajo actual
+# os.chdir(directorio_script)
+
+# # Carga la información de conexión desde el archivo JSON
+# with open('config.json', 'r') as config_file:
+# config = json.load(config_file)
+
+
+# Cargar la información de conexión desde el archivo JSON forma local
with open('config.json', 'r') as config_file:
config = json.load(config_file)
@@ -75,7 +93,7 @@ try:
# Obtener los datos comunes para la factura (fecha, invoice, caja, vigenciaDoda, notificacion)
first_row = factura_data[invoice][0]
- fechaActual = first_row.FechaActual
+ # fechaActual = first_row.FechaActual
caja = first_row.Caja
vigenciaDoda = first_row.VigenciaDODA
notificacion = first_row.Notificacion
@@ -89,8 +107,10 @@ try:
# Crear el cuerpo del mensaje con los datos de la factura en una tabla
message = f"
"
message += f"Factura {invoice}
"
- message += f"Fecha Actual | Invoice | Caja | VigenciaDODA | Notificacion |
"
- message += f"{fechaActual} | {invoice} | {caja} | {vigenciaDoda} | {notificacion} |
"
+ # message += f"Fecha Actual | Invoice | Caja | VigenciaDODA | Notificacion |
"
+ message += f"Invoice | Caja | VigenciaDODA | Notificacion |
"
+ # message += f"{fechaActual} | {invoice} | {caja} | {vigenciaDoda} | {notificacion} |
"
+ message += f"{invoice} | {caja} | {vigenciaDoda} | {notificacion} |
"
message += f"
"
message += ""
msg.attach(MIMEText(message, 'html'))
@@ -181,3 +201,18 @@ except Exception as e:
+# { conexion al server de producion
+# "server": "100.10.10.1",
+# "database": "ZINC",
+# "username": "admin",
+# "password": "DBAdmin1234$.",
+# "EmailUser": "noreply@gemcousa.mx",
+# "EmailPassword": "Mx77lf%02",
+# "EmailServer": "smtp.ionos.com",
+# "EmailPort": 587,
+# "ServerSIR": "192.168.100.11",
+# "DatabaseSIR": "SIR",
+# "DBUserSIR": "usersir",
+# "DBPasswordSIR": "S1r22$Us"
+# }
+
diff --git a/Pruebas Notificacion/VigenciaDoda.py b/Pruebas Notificacion/VigenciaDoda.py
new file mode 100644
index 0000000..99b08d0
--- /dev/null
+++ b/Pruebas Notificacion/VigenciaDoda.py
@@ -0,0 +1,234 @@
+# import smtplib
+# from email.mime.multipart import MIMEMultipart
+# from email.mime.text import MIMEText
+# import pyodbc
+# import json
+# import datetime
+
+# # Cargar la información de conexión desde el archivo JSON
+# with open('config.json', 'r') as config_file:
+# config = json.load(config_file)
+
+# # Crear una cadena de conexión usando la información del archivo JSON (en este momento esta la conexion a DB local)
+# conn_str = (
+# f"DRIVER=ODBC Driver 17 for SQL Server;"
+# f"SERVER={config['server']};"
+# f"DATABASE={config['database']};"
+# f"UID={config['username']};"
+# f"PWD={config['password']};"
+# )
+
+# # Conectar a la base de datos
+# conn = pyodbc.connect(conn_str)
+
+# try:
+# cursor = conn.cursor()
+# fecha = '2023-09-18' # Ejemplo de fecha
+# cursor.execute("{CALL NotiVigenciaDoda(?)}", fecha)
+
+# # Recuperar los resultados del procedimiento almacenado
+# rows = cursor.fetchall()
+
+# factura_data = {}
+
+# # Iterar a través de los resultados y agruparlos por factura
+# for row in rows:
+# invoice = row.Invoice
+# if invoice not in factura_data:
+# factura_data[invoice] = []
+# factura_data[invoice].append(row)
+
+# # Crear un diccionario para almacenar los correos de CorreosResponsables, NotificacionAA y CorreosTipoViaje por factura
+# correos_por_factura = {}
+
+# # Iterar a través de los resultados y agrupar los correos por factura
+# for row in rows:
+# invoice = row.Invoice
+# if invoice not in correos_por_factura:
+# correos_por_factura[invoice] = {'CorreosResponsables': [], 'NotificacionAA': [], 'CorreoTipoViaje': []}
+
+# # Obtener los datos comunes para la factura (fecha, invoice, caja, vigenciaDoda, notificacion)
+# first_row = factura_data[invoice][0]
+# fechaActual = first_row.FechaActual
+# caja = first_row.Caja
+# vigenciaDoda = first_row.VigenciaDODA
+# notificacion = first_row.Notificacion
+
+# # Preguntar al usuario por los correos para esta factura
+# correos_responsables = input(f'Correos Responsables para la factura {invoice}: ').split(',')
+# notificacion_aa = input(f'Correos NotificacionAA para la factura {invoice}: ').split(',')
+# correos_tipo_viaje = input(f'Correos CorreoTipoViaje para la factura {invoice}: ').split(',')
+
+# correos_por_factura[invoice]['CorreosResponsables'].extend(correos_responsables)
+# correos_por_factura[invoice]['NotificacionAA'].extend(notificacion_aa)
+# correos_por_factura[invoice]['CorreoTipoViaje'].extend(correos_tipo_viaje)
+
+# # Configurar el servidor de correo electrónico saliente (SMTP) desde el archivo JSON
+# with open('config.json', 'r') as email_config_file:
+# email_config = json.load(email_config_file)
+
+# smtp_server = email_config['EmailServer']
+# smtp_port = email_config['EmailPort']
+
+# # Tus credenciales de correo electrónico desde el archivo JSON
+# sender_email = email_config['EmailUser']
+# sender_password = email_config['EmailPassword']
+
+# # Iterar a través de las facturas y enviar correos personalizados
+# for invoice, correos_en_factura in correos_por_factura.items():
+# correos_responsables = correos_en_factura['CorreosResponsables']
+# notificacion_aa = correos_en_factura['NotificacionAA']
+# correos_tipo_viaje = correos_en_factura['CorreoTipoViaje']
+
+# # Crear el mensaje de correo electrónico
+# msg = MIMEMultipart()
+# msg['From'] = sender_email
+# msg['To'] = ', '.join(correos_responsables + notificacion_aa + correos_tipo_viaje) # Agregar destinatarios al campo "Para"
+# msg['Subject'] = f"Información de factura {invoice}"
+
+# # Crear el cuerpo del mensaje con los datos de la factura en una tabla
+# message = f""
+# message += f"Factura {invoice}
"
+# message += f"Fecha Actual | Invoice | Caja | VigenciaDODA | Notificacion |
"
+# message += f"{fechaActual} | {invoice} | {caja} | {vigenciaDoda} | {notificacion} |
"
+# message += f"
"
+# message += ""
+# msg.attach(MIMEText(message, 'html'))
+
+# try:
+# # Establecer la conexión al servidor SMTP
+# server = smtplib.SMTP(smtp_server, smtp_port)
+# server.starttls()
+# server.login(sender_email, sender_password)
+
+# # Enviar el correo con los destinatarios en el campo "Para"
+# server.sendmail(sender_email, correos_responsables + notificacion_aa + correos_tipo_viaje, msg.as_string())
+# print(f"Correo enviado a CorreosResponsables, NotificacionAA y CorreosTipoViaje de factura {invoice}")
+
+# # Cerrar la conexión SMTP
+# server.quit()
+# except Exception as e:
+# print(f"Error al enviar correo de factura {invoice}: {e}")
+
+# except Exception as e:
+# print("Error al conectarse:", e)
+
+
+import smtplib
+from email.mime.multipart import MIMEMultipart
+from email.mime.text import MIMEText
+import pyodbc
+import json
+import datetime
+
+# Cargar la información de conexión desde el archivo JSON
+with open('config.json', 'r') as config_file:
+ config = json.load(config_file)
+
+# Crear una cadena de conexión usando la información del archivo JSON (en este momento esta la conexion a DB local)
+conn_str = (
+ f"DRIVER=ODBC Driver 17 for SQL Server;"
+ f"SERVER={config['server']};"
+ f"DATABASE={config['database']};"
+ f"UID={config['username']};"
+ f"PWD={config['password']};"
+)
+
+# Conectar a la base de datos
+conn = pyodbc.connect(conn_str)
+
+try:
+ cursor = conn.cursor()
+ print('Conexion exitosa ala DB. ')
+ fecha = '2023-10-02' # Ejemplo de fecha
+ cursor.execute("{CALL NotiVigenciaDoda(?)}", fecha)
+
+ # Recuperar los resultados del procedimiento almacenado
+ rows = cursor.fetchall()
+
+ factura_data = {}
+
+ # Iterar a través de los resultados y agruparlos por factura
+ for row in rows:
+ invoice = row.Invoice
+ if invoice not in factura_data:
+ factura_data[invoice] = []
+ factura_data[invoice].append(row)
+
+ # Crear un diccionario para almacenar los correos de CorreosResponsables, NotificacionAA y CorreosTipoViaje por factura
+ correos_por_factura = {}
+
+ # Iterar a través de los resultados y agrupar los correos por factura
+ for row in rows:
+ invoice = row.Invoice
+ if invoice not in correos_por_factura:
+ correos_por_factura[invoice] = {'CorreosResponsables': [], 'NotificacionAA': [], 'CorreoTipoViaje': []}
+
+ # Preguntar al usuario por los correos para esta factura
+ correos_responsables = input(f'Correos Responsables para la factura {invoice}: ').split(',')
+ notificacion_aa = input(f'Correos NotificacionAA para la factura {invoice}: ').split(',')
+ correos_tipo_viaje = input(f'Correos CorreoTipoViaje para la factura {invoice}: ').split(',')
+
+ correos_por_factura[invoice]['CorreosResponsables'].extend(correos_responsables)
+ correos_por_factura[invoice]['NotificacionAA'].extend(notificacion_aa)
+ correos_por_factura[invoice]['CorreoTipoViaje'].extend(correos_tipo_viaje)
+
+ # Configurar el servidor de correo electrónico saliente (SMTP) desde el archivo JSON
+ with open('config.json', 'r') as email_config_file:
+ email_config = json.load(email_config_file)
+
+ smtp_server = email_config['EmailServer']
+ smtp_port = email_config['EmailPort']
+
+ # Tus credenciales de correo electrónico desde el archivo JSON
+ sender_email = email_config['EmailUser']
+ sender_password = email_config['EmailPassword']
+
+ # Iterar a través de las facturas y enviar correos personalizados
+ for invoice, correos_en_factura in correos_por_factura.items():
+ correos_responsables = correos_en_factura['CorreosResponsables']
+ notificacion_aa = correos_en_factura['NotificacionAA']
+ correos_tipo_viaje = correos_en_factura['CorreoTipoViaje']
+
+ # Obtener los datos comunes para la factura (fecha, invoice, caja, vigenciaDoda, notificacion)
+ first_row = factura_data[invoice][0]
+ # fechaActual = first_row.FechaActual
+ caja = first_row.Caja
+ vigenciaDoda = first_row.VigenciaDODA
+ notificacion = first_row.Notificacion
+
+ # Crear el mensaje de correo electrónico
+ msg = MIMEMultipart()
+ msg['From'] = sender_email
+ msg['To'] = ', '.join(correos_responsables + notificacion_aa + correos_tipo_viaje) # Agregar destinatarios al campo "Para"
+ msg['Subject'] = f"Notificacion Vigencia de documentos. {invoice}"
+
+ # Crear el cuerpo del mensaje con los datos de la factura en una tabla
+ message = f""
+ message += f"Factura {invoice}
"
+ message += f"Invoice | Caja | VigenciaDODA | Notificacion |
"
+ message += f"{invoice} | {caja} | {vigenciaDoda} | {notificacion} |
"
+ message += f"
"
+ message += ""
+ msg.attach(MIMEText(message, 'html'))
+
+ try:
+ # Establecer la conexión al servidor SMTP
+ server = smtplib.SMTP(smtp_server, smtp_port)
+ server.starttls()
+ server.login(sender_email, sender_password)
+
+ # Enviar el correo con los destinatarios en el campo "Para"
+ server.sendmail(sender_email, correos_responsables + notificacion_aa + correos_tipo_viaje, msg.as_string())
+ print(f"Correo enviado a CorreosResponsables, NotificacionAA y CorreosTipoViaje de factura {invoice}")
+
+ # Cerrar la conexión SMTP
+ server.quit()
+ except Exception as e:
+ print(f"Error al enviar correo de factura {invoice}: {e}")
+
+except Exception as e:
+ print("Error al conectarse:", e)
+
+
+
diff --git a/Pruebas Notificacion/config.json b/Pruebas Notificacion/config.json
new file mode 100644
index 0000000..115c148
--- /dev/null
+++ b/Pruebas Notificacion/config.json
@@ -0,0 +1,18 @@
+{
+ "server": "100.10.10.1",
+ "database": "ZINC",
+ "username": "admin",
+ "password": "DBAdmin1234$.",
+ "EmailUser": "noreply@gemcousa.mx",
+ "EmailPassword": "Mx77lf%02",
+ "EmailServer": "smtp.ionos.com",
+ "EmailPort": 587,
+ "ServerSIR": "192.168.100.11",
+ "DatabaseSIR": "SIR",
+ "DBUserSIR": "usersir",
+ "DBPasswordSIR": "S1r22$Us"
+}
+
+
+
+
\ No newline at end of file