# Pesquisa Avançada de CNPJ/CPF

Esta funcionalidade tem como objetivo padronizar a entrada de dados, realizar a limpeza de caracteres especiais e validar matematicamente os documentos informados.

#### Modos de Configuração

O leitor permite operar em três modos distintos, configuráveis via sistema:

<table><thead><tr><th width="98">Tipo</th><th width="467">Descrição</th><th>Tamanho do Campo</th></tr></thead><tbody><tr><td>1</td><td><strong>CNPJ/CPF</strong> (Valor Padrão) - Aceita ambos os documentos.</td><td>18 caracteres</td></tr><tr><td>2</td><td><strong>Apenas CNPJ</strong> - Restringe a entrada para pessoas jurídicas.</td><td>18 caracteres</td></tr><tr><td>3</td><td><strong>Apenas CPF</strong> - Restringe a entrada para pessoas físicas.</td><td>14 caracteres</td></tr></tbody></table>

#### Regras de Tratamento e Validação

Ao sair do campo, o sistema executa automaticamente as seguintes validações:

1. **Limpeza de Caracteres:** Remove pontuações e símbolos digitados pelo usuário (ex: `-=;',./\`).
2. **Verificação de Formato:**
   * **CNPJ:** Verifica se possui a estrutura correta (14 dígitos).
   * **CPF:** Verifica se possui a estrutura correta (11 dígitos).
3. **Validação Matemática:** Executa o cálculo dos dígitos verificadores (rotina `$$CG^%CSUTICSP`) para garantir que o documento é autêntico.

#### Mensagens de Validação

Caso as regras acima não sejam atendidas, o sistema bloqueará a operação e exibirá uma das mensagens abaixo, dependendo da configuração ativa:

{% hint style="danger" %}
"Formato de CNPJ inválido!"

"Formato de CPF inválido!"

"Formato de CNPJ/CPF inválido!"

"CNPJ inválido!" (Erro no dígito verificador)

"CPF inválido!" (Erro no dígito verificador)
{% endhint %}

#### Visualização (Display)

Após a validação com sucesso, o sistema aplica automaticamente a máscara de formatação visual no campo (pontos, traços e barras) para facilitar a leitura.
