fix: busca de clientes restrita ao campo escolhido em ordenar_por

Antes, digitar qualquer coisa na busca comparava com CODIGO, CNPJ,
RAZAO e FANTASIA ao mesmo tempo (OR), entao escolher 'Ordenar por:
Codigo' e buscar '242' trazia tambem clientes cujo CNPJ ou Razao
continham '242' em outro lugar. Agora a busca usa so a coluna
selecionada no dropdown (mesma whitelist ja usada pra ordenacao).

listar_clientes()/contar_clientes() e o template ganharam o ajuste;
o dropdown mudou de rotulo pra 'Buscar/ordenar por' pra deixar claro
que controla os dois.

93/93 testes passando.
This commit is contained in:
Gustavo
2026-08-13 14:24:09 -03:00
parent 8d83122e98
commit 2f1d008404
6 changed files with 25 additions and 21 deletions
+8 -1
View File
@@ -87,8 +87,15 @@ def test_excluir_cliente_sem_dependencias(cliente_id):
assert db_clientes.obter_cliente(cliente_id) is None
def test_listar_clientes_ordena_por_codigo(cliente_id):
def test_listar_clientes_busca_e_restrita_a_coluna_escolhida(cliente_id):
# ordenar_por="codigo" restringe a busca à coluna CODIGO — o termo
# "TESTE PAINEL RAZAO" existe em RAZAO/FANTASIA, mas não deve aparecer
# aqui porque a busca não olha para essas colunas quando é "codigo".
resultado = db_clientes.listar_clientes(busca="TESTE PAINEL RAZAO", ordenar_por="codigo")
assert len(resultado) == 0
# Buscando pelo próprio código, com ordenar_por="codigo", encontra.
resultado = db_clientes.listar_clientes(busca="999901", ordenar_por="codigo")
assert resultado[0]["CODIGO"] == "999901"