Ongoing enhancements

This commit is contained in:
2025-07-24 14:36:35 +02:00
parent 4baa544458
commit ebed331760
2 changed files with 12 additions and 4 deletions
+10 -4
View File
@@ -6,6 +6,8 @@ from models.models import Payments_CSV, Payments, Members
from time import time from time import time
import logging, sys import logging, sys
import datetime import datetime
from config_loader import load_config
def assign_by_reference(payments: Payments_CSV): def assign_by_reference(payments: Payments_CSV):
for payment in payments: for payment in payments:
@@ -33,7 +35,7 @@ def assign_by_reference(payments: Payments_CSV):
db.rollback() db.rollback()
def assign_by_name(payments: Payments_CSV): def assign_by_name(payments: Payments_CSV):
year = 2025 # pc_reference is empty # pc_reference is empty or starts with 'Mitglied'
removables = ('Dipl.', 'Ing.', 'Mag.') removables = ('Dipl.', 'Ing.', 'Mag.')
for payment in payments: for payment in payments:
logging.debug(f'payment.pc_intended {payment.pc_intended}') logging.debug(f'payment.pc_intended {payment.pc_intended}')
@@ -105,13 +107,17 @@ if __name__ == "__main__":
logging.basicConfig(stream=sys.stderr, level=logging.DEBUG) logging.basicConfig(stream=sys.stderr, level=logging.DEBUG)
logging.getLogger('sqlalchemy.engine').setLevel(logging.INFO) logging.getLogger('sqlalchemy.engine').setLevel(logging.INFO)
cfg = load_config()
year = cfg['year']
db = SessionLocal() db = SessionLocal()
Base.metadata.create_all(bind=engine) Base.metadata.create_all(bind=engine)
# 1. create missing reference by name # 1. create missing reference by name
#TODO: "None" shouldn't be a string payments = db.query(Payments_CSV).filter(
#payments = db.query(Payments_CSV).filter(Payments_CSV.pc_reference.is_(None), Payments_CSV.pc_processed!=True).all() (Payments_CSV.pc_reference.is_(None) | Payments_CSV.pc_reference.like('Mitglied%')),
payments = db.query(Payments_CSV).filter(Payments_CSV.pc_processed!=True).all() Payments_CSV.pc_processed!=True
).all()
assign_by_name(payments) assign_by_name(payments)
# 2. assign payment by reference # 2. assign payment by reference
+2
View File
@@ -93,6 +93,8 @@ if __name__ == "__main__":
if len(new_list) > 0: if len(new_list) > 0:
outData.append([i[0], new_list[0].get('Auftraggeber'), new_list[0].get('Zahlungsreferenz'), new_list[0].get('Verwendungszweck'), new_list[0].get('IBAN'), i[2], i[3].replace(',','.'), i[4], i[5]]) outData.append([i[0], new_list[0].get('Auftraggeber'), new_list[0].get('Zahlungsreferenz'), new_list[0].get('Verwendungszweck'), new_list[0].get('IBAN'), i[2], i[3].replace(',','.'), i[4], i[5]])
# Replace None with empty string before saving
outData = [['' if x is None else x for x in row] for row in outData]
savetxt(target_csv, outData, delimiter=";", encoding='utf-8', header='valuta_date;client;reference;intended;IBAN;entry_date;amount;currency;timestamp', fmt='%s') savetxt(target_csv, outData, delimiter=";", encoding='utf-8', header='valuta_date;client;reference;intended;IBAN;entry_date;amount;currency;timestamp', fmt='%s')
bak_dir = os.path.join(os.path.dirname(source_csv), "bak") bak_dir = os.path.join(os.path.dirname(source_csv), "bak")
os.makedirs(bak_dir, exist_ok=True) os.makedirs(bak_dir, exist_ok=True)