Ongoing enhancements

This commit is contained in:
2025-07-24 14:33:25 +02:00
parent 0b27385a24
commit 4baa544458
16 changed files with 170 additions and 8198 deletions
+22 -7
View File
@@ -1,8 +1,9 @@
# 3. assign manually
from database import Base, engine, SessionLocal
from models import models
from models.database import Base, engine, SessionLocal
from models.models import Payments_CSV, Payments, Members
from time import time
from models import Payments_CSV, Payments, Members
import logging, sys
import datetime
@@ -41,7 +42,7 @@ def assign_by_name(payments: Payments_CSV):
while removeable in name: name.remove(removeable)
# last part is usually surname
member = db.query(Members).filter(Members.member_surname.like(name[len(name)-1]), Members.member_firstname.like(name[0])).all()
member = db.query(Members).filter(Members.member_surname.like(name[len(name)-1]), Members.member_firstname.like(name[0]), Members.member_active.is_(True)).all()
if len(member) > 1:
logging.debug(f'More than one member with same name {payment.pc_client}')
elif len(member) == 0:
@@ -60,10 +61,22 @@ def assign_by_name(payments: Payments_CSV):
def addPayment(payment, member_id, year, amount):
# Check if payment already exists
exists = db.query(Payments).filter(
Payments.payment_date == payment.pc_valuta_date,
Payments.member_id == member_id,
Payments.payment_year == datetime.date(int(year), 1, 1)
).first()
if exists:
logging.debug(f"Payment already exists for member_id {member_id}, year {year}, amount {amount}, date {payment.pc_valuta_date}")
payment.pc_processed = True
return
logging.debug(f'Adding payment for member_id {member_id}, year {year}, amount {amount}')
newPayment = Payments(payment_date = payment.pc_valuta_date,
member_id = member_id,
payment_year = datetime.date(int(year),1,1),
payment_amount = amount)
member_id = member_id,
payment_year = datetime.date(int(year),1,1),
payment_amount = amount)
db.add(newPayment)
payment.pc_processed = True
@@ -96,7 +109,9 @@ if __name__ == "__main__":
Base.metadata.create_all(bind=engine)
# 1. create missing reference by name
payments = db.query(Payments_CSV).filter(Payments_CSV.pc_intended!='', Payments_CSV.pc_reference=='', Payments_CSV.pc_processed!=True).all()
#TODO: "None" shouldn't be a string
#payments = db.query(Payments_CSV).filter(Payments_CSV.pc_reference.is_(None), Payments_CSV.pc_processed!=True).all()
payments = db.query(Payments_CSV).filter(Payments_CSV.pc_processed!=True).all()
assign_by_name(payments)
# 2. assign payment by reference