fix(selos): normalizar filtro de selos para case-insensitive
Converte selos para uppercase em todas as camadas (frontend, API e repository) para garantir que o filtro funcione independente de como o usuário digita ou seleciona os selos.
This commit is contained in:
@@ -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:
|
||||
|
||||
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user