From 06fbf8e53cfb19ae283de5376ce97e22d36be7b4 Mon Sep 17 00:00:00 2001 From: Samir Boulahtit Date: Fri, 19 Dec 2025 21:49:42 +0100 Subject: [PATCH] fix: add missing get_vendors_with_orders_admin method MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add the missing method to OrderService that was being called from the admin orders API endpoint. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- app/services/order_service.py | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) 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()