add files
This commit is contained in:
parent
70e77c024f
commit
88854e6b4f
8
.gitignore
vendored
Normal file
8
.gitignore
vendored
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
|
||||||
|
\.env
|
||||||
|
|
||||||
|
\.idea/
|
||||||
|
|
||||||
|
perdiem\.log
|
||||||
|
|
||||||
|
*.xlsx
|
||||||
@ -1 +1,7 @@
|
|||||||
perDiem
|
perDiem
|
||||||
|
|
||||||
|
just create a crontab entry for the script
|
||||||
|
|
||||||
|
this will send per diem report every first of month at 2AM
|
||||||
|
|
||||||
|
0 2 1 * * /usr/bin/python3 /home/user/perDiem/perdiem.py >> /home/user/perDiem/perdiem.out 2>&1
|
||||||
73
perdiem.py
Normal file
73
perdiem.py
Normal file
@ -0,0 +1,73 @@
|
|||||||
|
import os
|
||||||
|
import logging
|
||||||
|
from datetime import datetime
|
||||||
|
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().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.DEBUG)
|
||||||
|
|
||||||
|
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()
|
||||||
Loading…
Reference in New Issue
Block a user