diff --git a/backend/src/infrastructure/oracle/ranking_repository.py b/backend/src/infrastructure/oracle/ranking_repository.py index 3fd5766..f83493f 100644 --- a/backend/src/infrastructure/oracle/ranking_repository.py +++ b/backend/src/infrastructure/oracle/ranking_repository.py @@ -97,8 +97,8 @@ class RankingOracleRepository: if filtro_selos: for i, selo in enumerate(filtro_selos): param_name = f"selo_{i}" - where_clauses.append(f"((',' || SELOS || ',') LIKE '%,' || :{param_name} || ',%')") - params[param_name] = selo + where_clauses.append(f"((',' || UPPER(SELOS) || ',') LIKE '%,' || :{param_name} || ',%')") + params[param_name] = str(selo).upper() where_clause = "" if where_clauses: @@ -175,8 +175,8 @@ class RankingOracleRepository: if filtro_selos: for i, selo in enumerate(filtro_selos): param_name = f"selo_{i}" - where_clauses.append(f"((',' || SELOS || ',') LIKE '%,' || :{param_name} || ',%')") - params[param_name] = selo + where_clauses.append(f"((',' || UPPER(SELOS) || ',') LIKE '%,' || :{param_name} || ',%')") + params[param_name] = str(selo).upper() where_clause = "" if where_clauses: diff --git a/backend/src/interface/api/routes.py b/backend/src/interface/api/routes.py index 9854a60..5fbcfcb 100644 --- a/backend/src/interface/api/routes.py +++ b/backend/src/interface/api/routes.py @@ -214,7 +214,11 @@ async def ranking_paginado( if not oracle_repo: raise HTTPException(status_code=503, detail="Oracle não configurado") - selos_lista = [s.strip() for s in selos.split(",") if s.strip()] if selos else None + selos_lista = ( + [s.strip().upper() for s in selos.split(",") if s.strip()] + if selos + else None + ) total = oracle_repo.contar_total(filtro_ativo=ativo, filtro_selos=selos_lista) if total == 0: diff --git a/frontend/src/services/api.js b/frontend/src/services/api.js index 5d8aedc..f80f13d 100644 --- a/frontend/src/services/api.js +++ b/frontend/src/services/api.js @@ -12,7 +12,12 @@ export const rankingService = { async getRanking(page = 1, size = 100, selos = []) { const params = { page, size }; if (selos && selos.length > 0) { - params.selos = selos.join(','); + const normalizados = selos + .map((s) => String(s || '').trim().toUpperCase()) + .filter(Boolean); + if (normalizados.length > 0) { + params.selos = normalizados.join(','); + } } const response = await api.get('/ranking/paginado', { params }); const data = response.data;