Refactoring - Fix2
Dieser Commit ist enthalten in:
@@ -86,20 +86,36 @@ def get_license_by_id(license_id):
|
||||
return None
|
||||
|
||||
|
||||
def get_customers():
|
||||
def get_customers(show_test=False, search=None):
|
||||
"""Get all customers from database"""
|
||||
try:
|
||||
with get_db_connection() as conn:
|
||||
with get_db_cursor(conn) as cur:
|
||||
cur.execute("""
|
||||
query = """
|
||||
SELECT c.*,
|
||||
COUNT(DISTINCT l.id) as license_count,
|
||||
COUNT(DISTINCT CASE WHEN l.is_active THEN l.id END) as active_licenses
|
||||
FROM customers c
|
||||
LEFT JOIN licenses l ON c.id = l.customer_id
|
||||
GROUP BY c.id
|
||||
ORDER BY c.name
|
||||
""")
|
||||
"""
|
||||
|
||||
where_clauses = []
|
||||
params = []
|
||||
|
||||
if not show_test:
|
||||
where_clauses.append("c.is_test = false")
|
||||
|
||||
if search:
|
||||
where_clauses.append("(LOWER(c.name) LIKE LOWER(%s) OR LOWER(c.email) LIKE LOWER(%s))")
|
||||
search_pattern = f'%{search}%'
|
||||
params.extend([search_pattern, search_pattern])
|
||||
|
||||
if where_clauses:
|
||||
query += " WHERE " + " AND ".join(where_clauses)
|
||||
|
||||
query += " GROUP BY c.id ORDER BY c.name"
|
||||
|
||||
cur.execute(query, params)
|
||||
|
||||
columns = [desc[0] for desc in cur.description]
|
||||
customers = []
|
||||
|
||||
In neuem Issue referenzieren
Einen Benutzer sperren