first commit
This commit is contained in:
132
service_app_mail/app_mail_sender.py
Normal file
132
service_app_mail/app_mail_sender.py
Normal file
@@ -0,0 +1,132 @@
|
||||
from api_services.email.service import send_email
|
||||
from api_library.date_time_actions.date_functions import client_arrow
|
||||
|
||||
|
||||
def send_mail_to_users_that_have_received_email_from_banks():
|
||||
from databases.sql_models import AccountRecords
|
||||
|
||||
print("Service is booting up")
|
||||
print("Sending mail to users that have received email from banks")
|
||||
|
||||
# account_records = AccountRecords.query.filter(
|
||||
# AccountRecords.bank_date >= datetime(
|
||||
# today.year, today.month, today.day - int(day_offset), 23, 59, 59) # AccountRecords.bank_date >= datetime(2024, 9, 5, 23, 59, 59)
|
||||
# ).order_by(
|
||||
# AccountRecords.bank_date.desc(), AccountRecords.bank_reference_code.desc()
|
||||
# ).all()
|
||||
|
||||
# if not account_records:
|
||||
account_records = (
|
||||
AccountRecords.query.filter()
|
||||
.order_by(
|
||||
AccountRecords.bank_date.desc(), AccountRecords.bank_reference_code.desc()
|
||||
)
|
||||
.limit(3)
|
||||
.all()
|
||||
)
|
||||
|
||||
today, first_record, second_record, balance_error = (
|
||||
client_arrow.now(),
|
||||
account_records[0],
|
||||
account_records[1],
|
||||
False,
|
||||
)
|
||||
second_balance = first_record.bank_balance - first_record.currency_value
|
||||
if second_balance != second_record.bank_balance:
|
||||
balance_error = True
|
||||
|
||||
send_to = "karatay@mehmetkaratay.com.tr"
|
||||
styles = """<style>
|
||||
body {
|
||||
font-family: Arial, sans-serif;
|
||||
margin: 20px;
|
||||
}
|
||||
table {
|
||||
width: 100%;
|
||||
border-collapse: collapse;
|
||||
}
|
||||
table, th, td {
|
||||
border: 1px solid black;
|
||||
}
|
||||
th, td {
|
||||
padding: 10px;
|
||||
text-align: left;
|
||||
}
|
||||
th {
|
||||
background-color: #f2f2f2;
|
||||
}
|
||||
</style>
|
||||
"""
|
||||
table_data = ""
|
||||
table_headers = """
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Ulaştığı Tarih</th>
|
||||
<th>Banka Transaksiyonu Ek Bilgi</th>
|
||||
<th>Aktarım Değeri</th>
|
||||
</tr>
|
||||
</thead>
|
||||
"""
|
||||
table_row_add = (
|
||||
lambda date, comment, currency: f"""
|
||||
<thead>
|
||||
<tr>
|
||||
<td>{date}</td>
|
||||
<td>{comment}</td>
|
||||
<td>{"%.2f" % currency}</td>
|
||||
</tr>
|
||||
</thead>
|
||||
"""
|
||||
)
|
||||
if not account_records:
|
||||
return
|
||||
|
||||
for account_record in account_records:
|
||||
table_data += table_row_add(
|
||||
account_record.bank_date,
|
||||
account_record.process_comment,
|
||||
account_record.currency_value,
|
||||
)
|
||||
|
||||
html_template = f"""
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Gelen Banka Kayıtları</title>
|
||||
{styles}
|
||||
</head>
|
||||
<body>
|
||||
<h1>Günaydın, Admin</h1>
|
||||
<br>
|
||||
<p>Banka Kayıtları : {str(today)} </p>
|
||||
<p><b>Son Bakiye : {"%.2f" % account_records[0].bank_balance} </b></p>
|
||||
<p><b>{"Status : İkinci Bakiye Hatalı" if balance_error else "Status :OK"}</b></p>
|
||||
<br>
|
||||
<table>
|
||||
{table_headers}
|
||||
<tbody>
|
||||
{table_data}
|
||||
</tbody>
|
||||
</table>
|
||||
<br>
|
||||
<p>Teşekkür ederiz,<br>Evyos Yönetim<br>Saygılarımızla</p>
|
||||
</body>
|
||||
</html>
|
||||
"""
|
||||
subject = f"{str(today.date())} Gunes Apt. Cari Durum Bilgilendirme Raporu"
|
||||
try:
|
||||
send_email(
|
||||
subject=subject,
|
||||
receivers=[send_to],
|
||||
html=html_template,
|
||||
)
|
||||
print(f"Email is sent to : {send_to}. BB")
|
||||
return
|
||||
except Exception as e:
|
||||
print(f"Error: {e}")
|
||||
print("Email is not sent")
|
||||
|
||||
|
||||
send_mail_to_users_that_have_received_email_from_banks()
|
||||
Reference in New Issue
Block a user