updated email services

This commit is contained in:
2025-03-24 14:28:45 +03:00
parent 22876d250d
commit 3e1ba4cb67
4 changed files with 53 additions and 59 deletions

View File

@@ -19,16 +19,14 @@ def collect_excel_files_from_mongo_database(mongo_provider) -> list:
def update_parsed_data_to_mongo_database(
mongo_provider, collected_data_dict: dict, filename: str
mongo_provider, collected_data_dict: list[dict], filename: str
) -> None:
if collected_data_dict:
payload = collected_data_dict[filename]
if payload:
mongo_provider.update_one(
filter_query={"filename": filename},
update_data={"$set": {"parsed": payload, "stage": "parsed"}},
)
return
mongo_provider.update_one(
filter_query={"filename": filename},
update_data={"$set": {"parsed": collected_data_dict, "stage": "parsed"}},
)
return
mongo_provider.update_one(
filter_query={"filename": filename},
update_data={"$set": {"parsed": None, "stage": "not found"}},
@@ -36,14 +34,14 @@ def update_parsed_data_to_mongo_database(
return
def parse_excel_file(excel_frame: DataFrame, excel_name: str) -> dict:
iban, data_dict = "", {}
def parse_excel_file(excel_frame: DataFrame) -> list[dict]:
iban, data_list = "", []
for row in excel_frame.itertuples():
if "IBAN" in str(row[3]).upper():
iban = str(row[5]).replace(" ", "")
if not str(row[1]) == "nan" and not str(row[2]) == "nan":
if len(str(row[1]).split("/")) > 2:
data_dict[excel_name] = dict(
data_list.append(dict(
iban=str(iban),
bank_date=arrow.get(
datetime.datetime.strptime(str(row[1]), "%d/%m/%Y-%H:%M:%S")
@@ -60,8 +58,8 @@ def parse_excel_file(excel_frame: DataFrame, excel_name: str) -> dict:
process_type=unidecode(str(row[8])),
process_comment=unidecode(str(row[9])),
bank_reference_code=str(row[15]),
)
return data_dict
))
return data_list
def app():
@@ -83,7 +81,7 @@ def app():
excel_frame = DataFrame(read_excel(io.BytesIO(payload)))
# Extract IBAN and root info from the xl file
collected_data_dict = parse_excel_file(excel_frame, filename)
collected_data_dict = parse_excel_file(excel_frame)
update_parsed_data_to_mongo_database(
mongo_provider=mongo_provider,
collected_data_dict=collected_data_dict,

View File

@@ -48,15 +48,11 @@ def set_account_records_to_send_email():
account_records = (
account_records.order_by(
AccountRecords.bank_date.desc(), AccountRecords.bank_reference_code.desc()
)
.limit(3)
.all()
).limit(3).all()
)
first_record, second_record, balance_error = (
account_records[0],
account_records[1],
False,
account_records[0], account_records[1], False
)
second_balance = first_record.bank_balance - first_record.currency_value
if second_balance != second_record.bank_balance:

View File

@@ -66,14 +66,14 @@ if __name__ == "__main__":
)
results = collect_parsed_data_from_mongo_database(mongo_provider=provider)
for result in results:
parsed_data = result.get("parsed")
file_name = result.get("filename")
if not parsed_data:
parsed_datas, file_name = result.get("parsed"), result.get("filename")
if not parsed_datas:
continue
write_parsed_data_to_account_records(
data_dict=parsed_data,
collection_name=provider.collection.name,
mongo_provider=provider,
file=file_name,
)
for parsed_data in parsed_datas:
write_parsed_data_to_account_records(
data_dict=parsed_data,
collection_name=provider.collection.name,
mongo_provider=provider,
file=file_name,
)
time.sleep(60)