diff --git a/NotificacionCruce/VigenciaDoda.py b/NotificacionCruce/VigenciaDoda.py
new file mode 100644
index 0000000..5fe6ae5
--- /dev/null
+++ b/NotificacionCruce/VigenciaDoda.py
@@ -0,0 +1,182 @@
+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-13' # Ejemplo de fecha
+ fecha = datetime.date.today()
+ cursor.execute("{CALL NotiVigenciaDoda(?)}", fecha)
+
+ # Recuperar los resultados del procedimiento almacenado
+ rows = cursor.fetchall()
+
+ # 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']
+
+ 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': []}
+
+ correos_responsables = row.CorreosResponsables.split(',') if row.CorreosResponsables else []
+ notificacion_aa = row.NotificacionAA.split(',') if row.NotificacionAA else []
+ correos_tipo_viaje = row.CorreoTipoViaje.split(',') if row.CorreoTipoViaje else []
+
+ 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)
+
+ # Iterar a través de las facturas y enviar correos
+ 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['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 a todos los destinatarios de CorreosResponsables, NotificacionAA y CorreosTipoViaje
+ destinatarios = correos_responsables + notificacion_aa + correos_tipo_viaje
+ server.sendmail(sender_email, destinatarios, 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)
+
+
+
+
+# Procedimiento almacenado de sql server.
+
+
+# Create procedure [dbo].[NotiVigenciaDoda]
+# (
+# @Fecha Date
+# )
+# as
+# begin
+
+
+# SELECT
+# @Fecha AS FechaActual,
+# f.[Invoice],
+# f.[Ruta] AS Caja,
+# f.[VigenciaDODA],
+# -- f.[TipoViaje],
+# CorreosResponsables,
+# ce.NotificacionAA,
+
+# CASE
+# WHEN DATEDIFF(DAY, @Fecha, f.[VigenciaDODA]) = 1 THEN 'Vigencia Documentos 1 Dia.'
+# WHEN DATEDIFF(DAY, @Fecha, f.[VigenciaDODA]) = 0 THEN 'Vigencia Documentos 0 Dias.'
+# WHEN @Fecha > f.VigenciaDODA THEN 'Documentos Vencidos'
+# END AS Notificacion,
+
+# (SELECT
+# CASE
+# WHEN f.[TipoViaje] = 1 THEN ce.NotificacionZINCDirectos
+# WHEN f.[TipoViaje] = 2 THEN ce.NotificacionZINCTransbordos
+# ELSE NULL
+# END
+# ) AS CorreoTipoViaje
+
+# FROM dbo.Facturas f
+# LEFT JOIN dbo.CatResponsables cr ON f.ResponsableCruce = cr.Responsable
+# CROSS JOIN [Config.Emails] ce
+# OUTER APPLY (
+# SELECT STRING_AGG(cc.Correo, ', ') AS CorreosResponsables
+# FROM dbo.[CatResponsables.Correos] cc
+# WHERE cr.id = cc.IdResponsable
+# ) CorreosSubquery
+# WHERE (
+# DATEDIFF(DAY, @Fecha, f.[VigenciaDODA]) = 1
+# OR DATEDIFF(DAY, @Fecha, f.[VigenciaDODA]) = 0
+# OR @Fecha > f.VigenciaDODA )
+# AND f.Activo = 1
+# GROUP BY f.[Invoice], f.[Ruta], f.[VigenciaDODA] , f.[TipoViaje] , ce.NotificacionZINCDirectos , ce.NotificacionZINCTransbordos, ce.NotificacionAA, CorreosResponsables
+
+# ORDER BY VigenciaDODA;
+
+# end
+
+
+
+
+
+
+
+
+
+
diff --git a/NotificacionCruce/notificacionn.py b/NotificacionCruce/notificacionn.py
deleted file mode 100644
index 73903bb..0000000
--- a/NotificacionCruce/notificacionn.py
+++ /dev/null
@@ -1,442 +0,0 @@
-
-# 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
-
-
-
-# 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-11' # Ejemplo de fecha
-# # fecha = datetime.date.today()
-# cursor.execute("{CALL NotificacionCruze(?)}", fecha)
-
-# # Recuperar los resultados del procedimiento almacenado
-# rows = cursor.fetchall()
-
-# # 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']
-
-# 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 y NotificacionAA 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': []}
-
-# correos_responsables = row.CorreosResponsables.split(',') if row.CorreosResponsables else []
-# notificacion_aa = row.NotificacionAA.split(',') if row.NotificacionAA else []
-
-# correos_por_factura[invoice]['CorreosResponsables'].extend(correos_responsables)
-# correos_por_factura[invoice]['NotificacionAA'].extend(notificacion_aa)
-
-# # Iterar a través de las facturas y enviar correos
-# for invoice, correos_en_factura in correos_por_factura.items():
-# correos_responsables = correos_en_factura['CorreosResponsables']
-# notificacion_aa = correos_en_factura['NotificacionAA']
-
-# # 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['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 += f"CorreosResponsables:
"
-# # message += ""
-# # for destinatario in correos_responsables:
-# # message += f"- {destinatario}
"
-# # message += "
"
-
-# # message += f"NotificacionAA:
"
-# # message += ""
-# # for destinatario in notificacion_aa:
-# # message += f"- {destinatario}
"
-# # message += "
"
-
-# 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 a todos los destinatarios de CorreosResponsables y NotificacionAA
-# destinatarios = correos_responsables + notificacion_aa
-# server.sendmail(sender_email, destinatarios, msg.as_string())
-# print(f"Correo enviado a CorreosResponsables y NotificacionAA 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)
-
-
-# Codigo doode se mejora el envio de las notificaciones AA en ves de una por una un resumen de las Facturas Mejora a futuro.
-
-# import smtplib
-# from email.mime.multipart import MIMEMultipart
-# from email.mime.text import MIMEText
-# import pyodbc
-# import json
-
-# # 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
-# 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-05' # Ejemplo de fecha
-# fecha = datetime.date.today()
-# cursor.execute("{CALL NotificacionCruze(?)}", fecha)
-
-# # Recuperar los resultados del procedimiento almacenado
-# rows = cursor.fetchall()
-
-# # 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']
-
-# # Crear un diccionario para almacenar la información de todas las facturas
-# factura_data = {}
-
-# # Crear un diccionario para almacenar los correos de CorreosResponsables por factura
-# correos_por_factura = {}
-
-# # Agrupar la información de todas las facturas y correos de CorreosResponsables
-# for row in rows:
-# invoice = row.Invoice
-
-# # Agregar la información de la factura
-# if invoice not in factura_data:
-# factura_data[invoice] = []
-
-# factura_data[invoice].append(row)
-
-# # Agregar los correos de CorreosResponsables
-# correos_responsables = row.CorreosResponsables.split(',') if row.CorreosResponsables else []
-
-# if invoice not in correos_por_factura:
-# correos_por_factura[invoice] = []
-
-# correos_por_factura[invoice].extend(correos_responsables)
-
-# # Iterar a través de las facturas y enviar correos a CorreosResponsables
-# for invoice, correos_responsables in correos_por_factura.items():
-# # Obtener la información común para la factura
-# 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['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 += f"CorreosResponsables:
"
-# message += ""
-# for destinatario in correos_responsables:
-# message += f"- {destinatario}
"
-# message += "
"
-
-# 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 a los destinatarios de CorreosResponsables
-# server.sendmail(sender_email, correos_responsables, msg.as_string())
-# print(f"Correo enviado a CorreosResponsables de factura {invoice}")
-
-# # Cerrar la conexión SMTP
-# server.quit()
-# except Exception as e:
-# print(f"Error al enviar correo de factura {invoice}: {e}")
-
-# # Obtener todos los destinatarios de NotificacionAA
-# destinatarios_notificacion_aa = []
-
-# for row in rows:
-# notificacion_aa = row.NotificacionAA.split(',') if row.NotificacionAA else []
-# destinatarios_notificacion_aa.extend(notificacion_aa)
-
-# # Crear un mensaje único con la información de todas las facturas
-# msg_all_invoices = MIMEMultipart()
-# msg_all_invoices['From'] = sender_email
-# msg_all_invoices['Subject'] = "Información de todas las facturas"
-
-# # Crear el cuerpo del mensaje con la información de todas las facturas en una tabla
-# message_all_invoices = f""
-# message_all_invoices += "Información de todas las facturas
"
-
-# for invoice, rows in factura_data.items():
-# message_all_invoices += f"Factura {invoice}
"
-# message_all_invoices += "Fecha Actual | Invoice | Caja | VigenciaDODA | Notificacion |
"
-
-# for row in rows:
-# fechaActual = row.FechaActual
-# caja = row.Caja
-# vigenciaDoda = row.VigenciaDODA
-# notificacion = row.Notificacion
-
-# message_all_invoices += f"{fechaActual} | {invoice} | {caja} | {vigenciaDoda} | {notificacion} |
"
-
-# message_all_invoices += "
"
-
-# message_all_invoices += ""
-# msg_all_invoices.attach(MIMEText(message_all_invoices, '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 a todos los destinatarios de NotificacionAA
-# server.sendmail(sender_email, destinatarios_notificacion_aa, msg_all_invoices.as_string())
-# print("Correo enviado a todos los destinatarios de NotificacionAA con la información de las facturas")
-
-# # 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)
-
-#codigo de se le agrego correo tipos viaje .
-
-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
-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-13' # Ejemplo de fecha
- cursor.execute("{CALL NotificacionCruze(?)}", fecha)
-
- # Recuperar los resultados del procedimiento almacenado
- rows = cursor.fetchall()
-
- # 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']
-
- 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': []}
-
- correos_responsables = row.CorreosResponsables.split(',') if row.CorreosResponsables else []
- notificacion_aa = row.NotificacionAA.split(',') if row.NotificacionAA else []
- correos_tipo_viaje = row.CorreoTipoViaje.split(',') if row.CorreoTipoViaje else []
-
- 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)
-
- # Iterar a través de las facturas y enviar correos
- 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['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"
"
-
- # # Agregar correos de CorreosResponsables, NotificacionAA y CorreosTipoViaje al mensaje
- # message += "CorreosResponsables:
"
- # message += ""
- # for destinatario in correos_responsables:
- # message += f"- {destinatario}
"
- # message += "
"
-
- # message += f"NotificacionAA:
"
- # message += ""s
- # for destinatario in notificacion_aa:
- # message += f"- {destinatario}
"
- # message += "
"
-
- # message += f"CorreosTipoViaje:
"
- # message += ""
- # for destinatario in correos_tipo_viaje:
- # message += f"- {destinatario}
"
- # message += "
"
-
- 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 a todos los destinatarios de CorreosResponsables, NotificacionAA y CorreosTipoViaje
- destinatarios = correos_responsables + notificacion_aa + correos_tipo_viaje
- server.sendmail(sender_email, destinatarios, 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)
-
-
-
-
-
-
-
-
-
-
-
-