Fix common statement reconciliation and analyzer filenames
This commit is contained in:
@@ -60,6 +60,24 @@ def _segment(value: object, default: str = "NA") -> str:
|
||||
return text_value[:80] or default
|
||||
|
||||
|
||||
|
||||
def _workbook_filename(metas: list) -> str:
|
||||
"""Build a safe BankName_ClientName.xlsx filename for every bank."""
|
||||
bank_names = [str(getattr(meta, "bank_name", "") or "").strip() for meta in metas]
|
||||
client_names = [str(getattr(meta, "customer_name", "") or "").strip() for meta in metas]
|
||||
account_numbers = [str(getattr(meta, "account_number", "") or "").strip() for meta in metas]
|
||||
|
||||
unique_banks = list(dict.fromkeys(name for name in bank_names if name))
|
||||
unique_clients = list(dict.fromkeys(name for name in client_names if name))
|
||||
unique_accounts = list(dict.fromkeys(name for name in account_numbers if name))
|
||||
|
||||
bank = unique_banks[0] if len(unique_banks) == 1 else ("Multiple_Banks" if unique_banks else "Bank")
|
||||
client = unique_clients[0] if len(unique_clients) == 1 else ""
|
||||
if not client:
|
||||
client = unique_accounts[0] if len(unique_accounts) == 1 else "Multiple_Statements"
|
||||
|
||||
return f"{_segment(bank, 'Bank')}_{_segment(client, 'Client')}.xlsx"
|
||||
|
||||
def role_bucket(roles: Iterable[str]) -> str | None:
|
||||
role_set = set(roles)
|
||||
for role, bucket in (("Partner", "Partner"), ("Manager", "Manager"), ("Branch Manager", "Manager"), ("Staff", "Staff"), ("Employee", "Staff"), ("Consultant", "Consultant")):
|
||||
@@ -210,15 +228,6 @@ def _claim_jobs() -> list[str]:
|
||||
db.close()
|
||||
|
||||
|
||||
|
||||
def _workbook_filename(metas) -> str:
|
||||
"""Return BankName_ClientName.xlsx using filesystem-safe segments."""
|
||||
banks = sorted({_segment(getattr(meta, "bank_name", ""), "Bank") for meta in metas if str(getattr(meta, "bank_name", "") or "").strip()})
|
||||
customers = sorted({_segment(getattr(meta, "customer_name", ""), "Client") for meta in metas if str(getattr(meta, "customer_name", "") or "").strip()})
|
||||
bank_label = banks[0] if len(banks) == 1 else ("Multi_Bank" if banks else "Bank")
|
||||
client_label = customers[0] if len(customers) == 1 else ("Multiple_Clients" if customers else "Client")
|
||||
return f"{bank_label}_{client_label}.xlsx"
|
||||
|
||||
def _process_job(job_id: str) -> None:
|
||||
db = CommonSessionLocal()
|
||||
try:
|
||||
|
||||
Reference in New Issue
Block a user