Files
arrr-erp/scripts/verify_client_associations.py
T
2026-06-20 15:01:44 +05:30

27 lines
1.0 KiB
Python

from __future__ import annotations
from sqlalchemy import select, func
from app.core.db.common import CommonSessionLocal
from app.modules.clients.association_models import ClientAssociation
from app.modules.clients.models import Client
def main():
db = CommonSessionLocal()
try:
total_clients = db.execute(select(func.count()).select_from(Client)).scalar_one()
total_assoc = db.execute(select(func.count()).select_from(ClientAssociation)).scalar_one()
missing = db.execute(select(Client.id, Client.client_code, Client.client_name).outerjoin(ClientAssociation, ClientAssociation.client_id == Client.id).where(ClientAssociation.id.is_(None))).all()
print(f"Total clients : {total_clients}")
print(f"Total associations : {total_assoc}")
print(f"Missing associations: {len(missing)}")
for row in missing[:50]:
print(f"- {row.id} | {row.client_code} | {row.client_name}")
finally:
db.close()
if __name__ == '__main__':
main()