Ongoing enhancements
This commit is contained in:
@@ -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
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
Reference in New Issue
Block a user