Gets files from config folder and saves thenm in local DB for exposing information on the web server for everyone in GEMCO to work with it
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
AmazonScriptPopulateDB/PedimentosPagadosWatchDog.py

88 lines
3.0 KiB

import pyodbc as po
import email
import pymssql
import pandas as pd
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
import time
import json
from os.path import basename
from email.mime.application import MIMEApplication
from email.utils import COMMASPACE, formatdate
import requests
with open("./config/config.json") as json_config_file:
config = json.load(json_config_file)
ServerSIR = config['ServerSIR']
DatabaseSIR = config['DatabaseSIR']
UsernameSIR = config['DBUserSIR']
PasswordSIR = config['DBPasswordSIR']
EmailServer = config['EmailServer']
EmailPort = config['EmailPort']
EmailUser = config['EmailUser']
EmailPassword = config['EmailPassword']
def IsNewPedimentoPayed():
try:
cnxn = po.connect(
"DRIVER={ODBC Driver 17 for SQL Server};SERVER=" + ServerSIR
+ ";DATABASE=" + DatabaseSIR
+ ";UID=" + UsernameSIR
+ ";PWD=" + PasswordSIR
)
cursor = cnxn.cursor()
cursor.execute("""SELECT P.sReferencia    ,p.Archivo    ,P.Aduana    ,P.Patente    ,P.Pedimento    ,P.[Pedimento Fecha Pago]    ,Peds.nTipoCambio,
P.Clave 
FROM SIR.Admin.SIR_VT_PedimPagados P    INNER JOIN SIR.SIR.SIR_149_PEDIMENTO AS Peds ON Peds.nIdPedimento149=ID
WHERE    P.ClienteClave=2096 and p.[Pedimento FechaPago]>=CAST( GETDATE() AS Date )""")
for row in cursor:
print(row)
SendEmail(
["agarcia@gemcousa.com"],
"Aviso de pago de pedimento del cliente Amazon",
"Estimado colaborador se le comunica mediante este email, que se ha pagado un nuevo pedimento del cliente Amazon",
[]
)
requests.get(
url='https://localhost:5001/api/Notificaciones/SendWhattsapp?IdUsuario=30&Concepto=Nuevo pedimento pagado de Amazon&IdGrupo=1', verify=False)
except Exception as e:
print("Error: %s" % e)
finally:
cnxn.close()
return ''
def SendEmail(emailList, header, content, files):
for Receiver in emailList:
msg = MIMEMultipart()
msg['To'] = Receiver
msg['From'] = email.utils.formataddr(
('GEMCO informa : '+header, EmailUser))
msg['Subject'] = content
msg.attach(MIMEText(header))
sender = EmailUser
smtpObj = smtplib.SMTP(EmailServer, EmailPort)
''' for f in files or []:
with open(f, "rb") as fil:
part = MIMEApplication(fil.read(), Name=basename(f))
part["Content-Disposition"] = 'attachment; filename="%s"' % basename(
f)
msg.attach(part) '''
smtpObj.ehlo()
smtpObj.starttls()
smtpObj.login(EmailUser, EmailPassword)
try:
smtpObj.sendmail(sender, Receiver, msg.as_string())
print("Successfully sent email")
except:
print("Error: unable to send email")
IsNewPedimentoPayed()