perDiem/perdiem.py
2019-06-10 10:18:58 -06:00

76 lines
1.9 KiB
Python

import os
import logging
from datetime import datetime
from dateutil.relativedelta import relativedelta
from pyutl.sendmail import SendMail
from pyutl.localenv import localenv
localenv.load()
HOME_DIR = os.path.dirname(os.path.abspath(__file__))
THIS_MONTH = (datetime.now() + relativedelta(months=-1)).strftime("%m%Y")
FILE = [os.path.join(HOME_DIR, f'viatico_{THIS_MONTH}.xlsx')]
LOG_FILE = os.path.join(HOME_DIR, 'perdiem.log')
logging.basicConfig(filename=LOG_FILE, filemode='a', format='%(asctime)s %(module)s %(message)s', level=logging.INFO)
MAIL_HOST = localenv.get('MAIL_HOST')
MAIL_PORT = localenv.get('MAIL_PORT')
MAIL_USR = localenv.get('MAIL_USR')
MAIL_PASS = localenv.get('MAIL_PASS')
OK_DESTINY = localenv.get('OK_DESTINY')
ERR_DESTINY = localenv.get('ERR_DESTINY')
ok_message = """<html>
<body>
<p>Buen Dia</p>
<br>
<p> Adjunto Reporte de Viatico.</p>
<br>
<p>Gracias & Saludos.</p>
<P>automatic mailer</p>
</body>
</html>
"""
err_message = """<html>
<body>
No has depositado el Reporte de Viatico.
</body>
</html>
"""
def validate():
auth_info = (MAIL_HOST, MAIL_PORT, MAIL_USR, MAIL_PASS)
try:
_ = open(FILE[0])
to_address = [OK_DESTINY]
message = ok_message
return True, auth_info, to_address, message
except FileNotFoundError:
to_address = [ERR_DESTINY]
message = err_message
return False, auth_info, to_address, message
def main():
try:
fe, ai, ta, msg = validate()
logging.info(f'validation has been done file exists {fe}')
logging.debug(f'authenticate using {ai}')
with SendMail(ai) as mail:
mail.content(MAIL_USR, ta, f'Solicitud de Viaticos {THIS_MONTH}', msg)
if fe:
mail.attach(FILE)
mail.send()
except Exception as e:
logging.exception(e)
if __name__ == '__main__':
main()