Commit 467de571 by Javier

Procesado de cdr moviles fijos xtratelecom realizado

parent 531afce6
...@@ -11,10 +11,10 @@ CDR_SFTP_PORT=22 ...@@ -11,10 +11,10 @@ CDR_SFTP_PORT=22
SQLSERVER_SERVER=192.168.2.200 SQLSERVER_SERVER=192.168.2.200
SQLSERVER_DATABASE=bdd_wifi SQLSERVER_DATABASE=bdd_wifi
SQLSERVER_USERNAME=apicdr SQLSERVER_USERNAME=bdbackupservice
SQLSERVER_PASSWORD=cdr5485 SQLSERVER_PASSWORD=bdbs2k21
SQLSERVER_SERVER_TEST=192.168.2.200 SQLSERVER_SERVER_TEST=192.168.2.93
SQLSERVER_DATABASE_TEST=cdr_test SQLSERVER_DATABASE_TEST=bdd_wifi
SQLSERVER_USERNAME_TEST=apicdr SQLSERVER_USERNAME_TEST=bdbackupservice
SQLSERVER_PASSWORD_TEST=cdr5485 SQLSERVER_PASSWORD_TEST=bdbs2k21
\ No newline at end of file \ No newline at end of file
# Importación de CDRs y Facturas de MásMóvil # Importación de CDRs de fijos xtratelecom
Descarga CDRs fijas desde el sFPT de MásMóvil para añadirlos a los sistemas de Rentel. Descarga CDRs fijas desde el sFPT de MásMóvil para añadirlos a los sistemas de Rentel.
## Introducción ## Introducción
### Funcionalidad ### Funcionalidad
Se ejecuta de forma periodica para conectarse a dos sFTP diferentes desde donde extrae el consumo de las líneas fijas (de clientes con fibra indirecta). Se ejecuta de forma periodica para conectarse al sFTP desde donde extrae el consumo de las líneas fijas
### Lenguajes de Programación ### Lenguajes de Programación
Le herramienta está desarrollada con Python. Se utilizan librerías de python para el acceso a los servidores SFTP. Le herramienta está desarrollada con Python. Se utilizan librerías de python para el acceso a los servidores SFTP.
...@@ -12,15 +11,13 @@ Le herramienta está desarrollada con Python. Se utilizan librerías de python p ...@@ -12,15 +11,13 @@ Le herramienta está desarrollada con Python. Se utilizan librerías de python p
### Credenciales ### Credenciales
| Servicio | Descripción | Producción | Dirección | Base de datos | Usuario | Contraseña | | Servicio | Descripción | Producción | Dirección | Base de datos | Usuario | Contraseña |
|-------------|---------------------------------------------------------------------------------------|------------|------------------------------------|---------------|---------|------------| |-------------|---------------------------------------------------------------------------------------|------------|------------------------------------|---------------|---------|------------|
| CDR Fijos y móviles | Servidor FTP de CableMóvil con los CDR de los consumos de las líneas Fijos y móviles | Si | sftp.xtratelecom.es | | cF33028 | 9BRW78sf | | CDR Fijos | Servidor FTP de CableMóvil con los CDR de los consumos de las líneas Fijos y móviles | No | sftp.xtratelecom.es | | cF33028 | 9BRW78sf |
| SQL Server | Servidor Principal SQL Server | Si | 10.58.4.5 / 192.168.2.200 | bdd_wifi | apicdr | cdr5485 | | SQL Server | Servidor Principal SQL Server | Si | 192.168.2.200 | bdd_wifi | apicdr | cdr5485 |
### Importador MásMóvil ### Importador MásMóvil
Está compuesto de un script, `setup.py`, se encarga de conectarse al sFTP de MásMóvil, y descargar los archivos de CDRs nuevos. Está compuesto de un script, `main.py`, se encarga de conectarse al sFTP de MásMóvil, y descargar los archivos de CDRs nuevos y guarda un registro en TB_CDR_Ficheros (tipo = 2) .
Posteriormente procederemos al procesado de dichos ficheros, guardando cada línea de estos archivos previamente descargados en las tablas `TB_Cdr`, y `TB_Cdr_Fijos`. Posteriormente procederemos al procesado de dichos ficheros, guardando cada línea de estos archivos previamente descargados en las tablas `TB_Cdr_Fijos`.
En cada línea aparece la información de cada llamada, el teléfono que realiza la llamada, destino de llamada, duración, entre otros. En cada línea aparece la información de cada llamada, el teléfono que realiza la llamada, destino de llamada, duración, entre otros.
El script se encuentra alojado en la máquina `debian.utils` con la IP `192.168.2.63`. El script se encuentra alojado en la máquina `debian.utils` con la IP `192.168.2.63`.
Dicho script se ejecutará según la configuración de un crontab.
\ No newline at end of file
...@@ -2,6 +2,8 @@ import os ...@@ -2,6 +2,8 @@ import os
from log import logging from log import logging
import platform import platform
import pyodbc import pyodbc
from dotenv import load_dotenv
load_dotenv()
class ConectorDbWifi(): class ConectorDbWifi():
...@@ -27,12 +29,12 @@ class ConectorDbWifi(): ...@@ -27,12 +29,12 @@ class ConectorDbWifi():
) )
else: else:
self.connection = pyodbc.connect( self.connection = pyodbc.connect(
f"DRIVER=FreeTDS;server={sql_server_hostname};PORT=1433;DATABASE={sql_server_database};UID={sql_server_username};PWD={sql_server_password};TDS_Version=7.0", encoding="utf-8", ansi=True f"DRIVER=FreeTDS;server={sql_server_hostname};PORT=1433;DATABASE={sql_server_database};UID={sql_server_username};PWD={sql_server_password};TDS_Version=7.0", ansi=True
) )
except Exception as e: except Exception as e:
print('Error al conectarse con la base de datos dbo.wifi') print(f'Error al conectarse con la base de datos dbo.wifi => {e}')
logging.warning('Error al conectarse con la base de datos dbo.wifi') logging.warning('Error al conectarse con la base de datos dbo.wifi')
......
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
import smtplib
import itertools
def send_email_warning(cursor, message:str):
"""Envio de correo si falla el proceso de los cdr
Args:
cursor: cnx.
message(str): Mensaje de error.
"""
#Obtengo credenciales para enviar el correo smtp
cursor.execute("SELECT Usuario, Password, Remitente, Servidor FROM TB_Servidores_De_Correos where IdServidorCorreo=2")
data_send_email = cursor.fetchone()
if data_send_email is not None:
usuario = data_send_email[0]
contraseña = data_send_email[1]
remitente = data_send_email[2]
servidor = data_send_email[3]
destinatario = 'informatica@rentelwifi.com'
# Datos del correo
asunto = f"Error procesado de cdr fijos"
# Crear el mensaje HTML
mensaje_html = f"""
<html>
<body>
<h3>Error procesado de cdr fijos</h3>
<p>{message}<p>
</body>
</html>
"""
# Crea un mensaje MIME
mime_mensaje = MIMEMultipart()
mime_mensaje["From"] = remitente
mime_mensaje["To"] = destinatario
mime_mensaje["Subject"] = asunto
# Agregar el mensaje HTML al mensaje MIME
mensaje_html_mime = MIMEText(mensaje_html, "html")
mime_mensaje.attach(mensaje_html_mime)
# Conecta al servidor SMTP y envía el correo
try:
servidor = smtplib.SMTP(servidor, 587)
servidor.starttls()
servidor.login(usuario, contraseña)
servidor.sendmail(remitente, destinatario, mime_mensaje.as_string())
servidor.quit()
#print(f'Correo enviado a {destinatario}')
except Exception as e:
raise Exception(f'Fallo en el envio de email al comercial {e}')
from app.manager_cdr_fijos import ManagerCdrFijos
### -- Accede al SFTP de xtratelecom y descarga el fichero que le toca y crea registro en tb_cdr_ficheros -- ###
if __name__ == '__main__':
x = ManagerCdrFijos()
# Obtengo nombre de los ficheros de fijos a descargar
x.get_cdr_filename_download_fijos()
# Descargo de sftp los cdr de fijos
x.download_cdr_fijos_xtratelecom()
# Inserto registro en la tb_cdr_ficheros
x.update_insert_date_fijo()
# Procesa ficheros de fijos y los inserta o actualiza en tb_CDR_fijos
x.save_cdr_fijos_into_database()
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment