Softland :
Tomas Menassi y sus equipo : soporte@janoconsultores.com
Boxicable :
Sistemas (Juan/Neil)
Mejoras: :
Python
Superevielle :
Toti Maria Cecilia MCecilia.TOTI@supervielle.com.ar mobancatransaccional@supervielle.com.ar contacto directo : German.Weinmeister@supervielle.com.ar
Genera/Recibe : Boxicable
Presenta desde : Maquina de Cobranzas
Aplicativo : Mozilla Firefox - mediante Mail especifico
Control : Aplicativo Python
Datos del mail por el cual se hace la presentacion:
Nombre: Pago directo Supervielle Mail: pagodirecto@gigared.com.ar Pw: gigared01
La presentacion de DD es la que envia a la entidad todos los pagos de los clientes que se han adherido al DD y tienen saldo positivo. El mismo se debe realizar 96hs antes de la fecha vencimiento de la factura del mes.
Esta tabla nos indica cuales son los parametros de imputacion de los movimientos de Supervielle DD y de que manera ingresan a Softland. En el caso de cualqueir error, verlo con la gente involucrada.
Arranco en Septiembre 2017.
Proceso en video:
https://www.youtube.com/watch?v=M5mpRDEzG4U (Paso 2 en adelante)
Este procedimiento se realiza desde boxicable. En caso de tener un error en la exportacion o totales de Boxi reclamar
Se divide en 2 partes :
Rendicion –> se crea el archivo
Presentacion –> Se exporta del sistema para presentarlo a la entidad, y nos brindara el total a presentar y la cantidad de cliente. Exportamos el archivo en txt.
Entidad bancaria = SUPERVIELLE
(No pueden existir más de una entidad bancaria a la vez. Si se opta por cambiarla se debe previamente eliminar la existente) La fecha de presentación debe ser la del día de generación que aparece por defecto en la pantalla. En cuanto al ESTADO de los clientes, dejar también la opción por defecto (todos tildados)
Una vez generado el archivo, su nombre quedará con el siguiente formato:
DGIGAddmm.001
En donde ddmm es el día y el mes y 001 la secuencia en caso de tener que enviar más de un archivo el mismo día.
El mail se envía desde la maquina de cobranzas. Ahí esta parametrizado el mail que utilizamos para esta presentación.
El archivo debe ser enviado desde el mail la dirección:
pagodirecto@gigared.com.ar
El archivo debe ser enviado por mail a la dirección:
pagodirecto@supervielle.com.ar
Con el siguiente asunto:
Archivo a Procesar GIGARED S.A.
En el cuerpo del mail se debe contener:
Cantidad de débitos enviados: (es la cantidad de registros monetarios efectivos del archivo - Posiciones 12 a 18 del Registro de Totales) Importe Total: (Suma de Importes de Registros Monetarios - Posiciones 104 a 113 del Registro de Totales) Fecha de Vencimiento: Fecha de Vencimiento de las Facturas del 1° ciclo. Nombre y teléfono de una persona de contacto en la empresa: (ver imagen)
Consideraciones adicionales:
El archivo enviado se debe guardar en la máquina de Cobranzas en carpeta creada para tal fin. El archivo debe ser enviado antes de las 14 hs del día de su generación. Transcurrido ese momento, se deberá procesar uno nuevo. La fecha de envío no podrá ser anterior a las 96 hs de la fecha de Vencimiento. En la práctica esto nunca sucederá si se cumple con el Punto 1°.-
Detalle de la estructura del archivo de subida y bajada:
Llegan 2 tipos Mails :
No se hace nada. llegan diarios.
Esta información se debe bajar , la misma llegara 72hs después del vencimiento de la factura. Enviar a Graciela Lopresti/Micaela los PDF. (Ver mail 2 - abajo) Nosotros utilizamos los archivo de estos 2 mails que no son los PDF. Con extencion ”.RENDI”
Lorena (ver mail 1 - abajo), deberá enviarnos los movimientos del Banco del corriente mes hasta hoy, luego dentro buscamos los pagos que tengan el
CodOpBanco ='404'
tiene que dar igual a lo aceptado del archivo.
Debemos unir el los 2 archivos y cambiar la cantidad de registros y el total del archivo para continuar.
Para Subir el archivo de pagos mensuales, debemos hacerlo desde boxi, “Cobranzas –> Debito Directo–> COBRO”
Pero debemos armarlo, para hacer un control previo a la subida a boxi. Bajamos el Excel y pegamos la información Enviada y Recibida.
archivo_supervielle_mensual.xlsx
El resultado lo subimos asi:
Solicitar a Lorena el detalle del banco.
A : Lorena Sanz "lsanz@gigared.com.ar"
CC:
Jefa Procesos
CO:
Asilva@gigared.com.ar
Asunto:
Detalle de Ingresos GR - Banco Supervielle - mes/año
Cuerpo mail:
Lore, buen día, necesito que por favor me envíes los movimientos de "MES/AÑO" (01 al día de hoy) para Gigared en banco supervielle. Necesito esta información para subir los cobros de clientes.
Informar a Graciela de los pagos cargados.
A : Graciela Lopresti "glopresti@gigared.com.ar"
CC:
Jefa Administracion
CO:
Asilva@gigared.com.ar
Asunto:
PDF Debito Directo Supervielle - Mes AÑO
Cuerpo mail:
Graciela, te adjunto la informacion de Debito Directo "Mes/Año" cargado en boxi.
Informar a las Operaciones
A : Administracion Santa fe Administracion Parana/Crespo Adminsitracion Posadas Adminsitracion Resistencia/Corrientes Adminsitracion Buenos Aires Administracion Campana Administracion San Martin Administracion Coronda
CC:
Gerente operaciones Jefe sistemas Jefa Administracion
CO:
Asilva@gigared.com.ar
Asunto:
Rechazos Debito Directo Supervielle - Mes AÑO
Cuerpo mail:
Estimados, adjunto los rechazos Debito Directo Superville. Las hojas que deben usar son “archivo_rta_supervielle” , “Cuadro Comparativo” y “Hoja Resumen”
Detalle Anticuacion 6 meses: El cuadro informa el tipo de concepto (Rechazo y Aceptados) y la Operación. De esta forma podremos accionar y adicionalmente podemos ver la evolución de la presentación.
En Junio 2021, diseñe mediante Python un alerta que nos informara lo siguiente:
Mail 1 : 1 vez por semana a Laura/Mi cual es el importe total de los cliente que se sumaron al DD.
Unicamente si y solo si, supera el tope 34M (junio 2021) nos enviara un mail automatico a Laura/Claudio/MI, informando que se ha superado el limite y debemos tramitar la extencion del mismo.
El codigo que realiza esta tarea(la cual es 100% automatica) es :
import pyautogui as pg, webbrowser as web, time as tn
import schedule
import pyodbc # modulo sql
import time # modulo para tiempo
from tkinter import * # modulo interfaz grafica
from tkinter import messagebox
import sys
import smtplib
#gglobalizo la variable para poder usar el resultado fuera de la Funcion
global nombre
# funcion que ejecuta el boton guardar con la sentencia SQL
def buscar():
sql = "select round(sum(subtabla.CTAIMPGRAB),0) as total_dd from (select distinct factura.abonumero, factura.CTAIMPGRAB from ABODEBAU as debito inner join ctacte as factura on (debito.abonumero = factura.abonumero) where debito.codtar = 33 and year(factura.CTAFEMIS) = year(getdate()) and month(factura.CTAFEMIS) = month(getdate())-1 and year(debito.fbaja) = 1900 and(factura.CTATIPCOMP = 'FAC' or factura.CTATIPCOMP = 'NC' or factura.CTATIPCOMP = 'ND') )as subtabla"
###################### CONFIGURAR ESTO ######################
# Abre conexion con la base de datos
server ='boxirep.gigared'
database = 'GIGARED'
usuario='asilva'
password='fasmilo2020'
db = pyodbc.connect('DRIVER={ODBC Driver 17 for SQL Server};\
SERVER=' + server + ';\
DATABASE=' + database + ';\
UID='+ usuario +';\
PWD=' + password)
#############################################################
# prepare a cursor object using cursor() method
cursor = db.cursor()
try:
# Execute the SQL command
cursor.execute(sql)
usuarios = cursor.fetchone()
# recorrer todos los registros
for usuario in usuarios:
# con los [] englobo la ubicacion
nombre = usuario
# almacena el resultado del FOR en en return para usarlo fuera de la funcion
return nombre
# Commit your changes in the database
db.commit()
except:
# Rollback in case there is any error
db.rollback()
# cursor.execute(sql)
db.close()
####validacion que el mensaje se almaceno en la nueva variable
a = buscar()
########################cargo el mail destino dentro del for o list#################
mail1 = "asilva@gigared.com.ar"
mail2 = "lortiz@gigared.com.ar"
mail3 = "cvalente@gigared.com.ar"
######################## cargo el tope de limite $$$$ #################
tope = 34000000
##################validar los importe para armar el msj##################
if a > tope:
global c
b = a - tope
c = ("Estimados, superamos el tope de Supervielle DD por $ {:,.2f}".format(b) +f" ,hay que solicitar la ampliacion urgente. El Tope actual es ${tope}".format(tope))
message = str(c)
######determino en esta condicion que MAIL A usar y parametros ####
USER = "asilva"
PASS = "DOnado840*"
FROM = "asilva@gigared.com.ar"
HOST = "mail.gigared.com.ar"
PORT = 587
args = sys.argv[1:]
from_ = FROM
######determino destinatarios de mail con TO ####
to = mail1
to = mail2
to = mail3
##############################Declaracion de informacion asunto y cuerpo mail##################3
SUBJECT = "Reporte Semanal de Supervielle DD - Superamos el Tope" #### declaro el nombre del asunto
TEXT = message ##### declaro el cuerpo del mail
#### sta variable toma a TExt Y SUBJET y los parametriza para ser enviados.
text = "Subject: {}\n\n{}".format(SUBJECT, TEXT)
# Nos conectamos al servidor SMTP
smtp = smtplib.SMTP(HOST, int(PORT))
smtp.ehlo()
smtp.starttls()
smtp.ehlo()
smtp.login(USER, PASS)
# Enviamos el mensaje
res = smtp.sendmail(from_, [to], text)
# Cerramos la conexion
smtp.close()
else:
global g
g = ("Estimados, el monto actual de Supervielle DD es $ {:,.2f}".format(a)+f", el tope actual es $ {tope}.".format(tope))
message = str(g)
######determino en esta condicion que MAIL A usar y parametros ####
USER = "asilva"
PASS = "DOnado840*"
FROM = "asilva@gigared.com.ar"
HOST = "mail.gigared.com.ar"
PORT = 587
args = sys.argv[1:]
from_ = FROM
######determino destinatarios de mail con TO ####
to = mail1
to = mail2
##############################Declaracion de informacion asunto y cuerpo mail##################3
SUBJECT = "Reporte Semanal de Supervielle DD" #### declaro el nombre del asunto
TEXT = message ##### declaro el cuerpo del mail
#### sta variable toma a TExt Y SUBJET y los parametriza para ser enviados.
text = "Subject: {}\n\n{}".format(SUBJECT, TEXT)
# Nos conectamos al servidor SMTP
smtp = smtplib.SMTP(HOST, int(PORT))
smtp.ehlo()
smtp.starttls()
smtp.ehlo()
smtp.login(USER, PASS)
# Enviamos el mensaje
res = smtp.sendmail(from_, [to], text)
# Cerramos la conexion
smtp.close()
select sum(subtabla.CTAIMPGRAB) from ( select distinct factura.abonumero, factura.CTAIMPGRAB from ABODEBAU as debito inner join ctacte as factura on (debito.abonumero = factura.abonumero) where debito.codtar = 33 and year(factura.CTAFEMIS) = year(getdate()) and month(factura.CTAFEMIS) = month(getdate())-1 and year(debito.fbaja) = 1900 and (factura.CTATIPCOMP = 'FAC' or factura.CTATIPCOMP = 'NC' or factura.CTATIPCOMP = 'ND') )as subtabla