diff --git a/app/services/order_service.py b/app/services/order_service.py index 95bab5b5..27631769 100644 --- a/app/services/order_service.py +++ b/app/services/order_service.py @@ -1008,6 +1008,34 @@ class OrderService: return order + def get_vendors_with_orders_admin(self, db: Session) -> list[dict]: + """Get list of vendors that have orders (admin only).""" + from models.database.vendor import Vendor + + # Query vendors with order counts + results = ( + db.query( + Vendor.id, + Vendor.name, + Vendor.vendor_code, + func.count(Order.id).label("order_count"), + ) + .join(Order, Order.vendor_id == Vendor.id) + .group_by(Vendor.id, Vendor.name, Vendor.vendor_code) + .order_by(func.count(Order.id).desc()) + .all() + ) + + return [ + { + "id": row.id, + "name": row.name, + "vendor_code": row.vendor_code, + "order_count": row.order_count, + } + for row in results + ] + # Create service instance order_service = OrderService()