# PROC003 - Cadastro de Cliente e Fornecedor

<table border="1" id="bkmrk-%C2%A0-projeto%2Fsistema%3Age" style="border-collapse: collapse; width: 100.123%; height: 68px;"><tbody><tr style="border-style: solid;"><td rowspan="3" style="width: 26.6667%; height: 68px; border-color: black; border-top-style: hidden; border-left-style: hidden; border-bottom-style: hidden;">  
[![image-1762776253666.png](https://docs.softensistemas.com.br/uploads/images/gallery/2025-11/scaled-1680-/image-1762776253666.png)](https://docs.softensistemas.com.br/uploads/images/gallery/2025-11/image-1762776253666.png)

</td><td style="width: 49.9999%; height: 10px; border-color: black; border-style: solid;"><span style="color: #000000;">**Projeto/Sistema:**</span>  
<span style="color: #000000;">GERENCIAMENTO DE PROJETOS</span></td><td class="align-center" style="width: 23.3333%; height: 10px; border-color: black; border-style: solid;"><span style="color: #000000;">**Versão do *Template:***</span>  
<span style="color: #000000;">1.2</span></td></tr><tr style="border-style: solid;"><td style="width: 49.9999%; height: 29px; border-color: black; border-style: solid;"><span style="color: #000000;">**Processo:**</span>  
<span style="color: #000000;">Descrição Processo</span></td><td class="align-center" style="width: 23.3333%; height: 29px; border-color: black; border-style: solid;"><span style="color: #000000;">**Versão do Documento:**</span>  
<span style="color: #000000;">1.0</span></td></tr><tr style="border-style: solid;"><td style="width: 49.9999%; height: 29px; border-color: black; border-style: solid;"><span style="color: #000000;">**Responsável(eis):** </span>  
<span style="color: #000000;">-</span></td><td class="align-center" style="width: 23.3333%; height: 29px; border-color: black; border-style: solid;"><span style="color: #000000;">**Data:** </span>

<span style="color: #000000;">05/01/2026</span>

</td></tr></tbody></table>

##### <span style="color: #000000;">**1. Introdução**</span>

Este processo descreve a adaptação dos cadastros de Cliente e Fornecedor ao CNPJ Alfanumérico (NT 2026.004). Inclui o cadastro principal (tela de edição com aba de informações), o diálogo de cadastro rápido (dialogNovoCliente) e a listagem com filtro de busca. O fornecedor é representado pela mesma entidade Cliente.

##### <span style="color: #000000;">**2. Processo** </span>

<table cellpadding="9" cellspacing="0" id="bkmrk-processo-envolvidos-" width="100%"><tbody><tr valign="top"><td bgcolor="#acb9ca" style="border-style: solid; border-color: black;" width="27%"><span style="font-size: small; color: #000000;">**Processo**</span>

</td><td bgcolor="#acb9ca" style="border-style: solid; border-color: black;" width="19%"><span style="font-size: small; color: #000000;">**Envolvidos**</span>

</td><td bgcolor="#acb9ca" style="border-style: solid; border-color: black;" width="27%"><span style="font-size: small; color: #000000;">**Dados de Entrada**</span>

</td><td bgcolor="#acb9ca" style="border-style: solid; border-color: black;" width="27%"><span style="font-size: small; color: #000000;">**Dados de Saída**</span>

</td></tr><tr valign="top"><td style="border-style: solid; border-color: black;" width="27%">PROC003 - Cadastro de Cliente e Fornecedor

</td><td style="border-style: solid; border-color: black;" width="19%"><span style="font-size: small; color: #000000;">Usuario</span>

</td><td style="border-style: solid; border-color: black;" width="27%"><span style="font-family: Arial, serif;"><span style="font-size: small;">CPF (11 dígitos) ou CNPJ alfanumérico (14 caracteres) — com ou sem máscara</span></span>

</td><td style="border-style: solid; border-color: black;" width="27%"><span style="font-family: Arial, serif;"><span style="font-size: small;">Cliente/Fornecedor persistido com CPF/CNPJ normalizado em maiúsculas; listagem com filtro alfanumérico</span></span>

</td></tr><tr><td style="border-style: solid; border-color: black;">PROC003.1 - Listagem de Clientes e Fornecedores

</td><td style="border-style: solid; border-color: black;"><span style="font-size: small; color: #000000;"> </span>

</td><td style="border-style: solid; border-color: black;"><span style="font-family: Arial, serif;"><span style="font-size: small;">Query de Consulta</span></span>

</td><td style="border-style: solid; border-color: black;"><span style="font-family: Arial, serif;"><span style="font-size: small;">Retorno em Listagem em Tela</span></span>

</td></tr></tbody></table>

#### **Processos Relacionados** 

- - - - - -

<span style="font-family: Arial, serif;"><span style="font-size: small;">PROC001 — Núcleo de validação e formatação de CNPJ</span></span>

#### **Especificação Funcional**

- - - - - -

#### **PROC003 - Cadastro de Cliente e Fornecedor:**

##### ***Protótipo de Tela:***

[![image-1779736677797.png](https://docs.softensistemas.com.br/uploads/images/gallery/2026-05/scaled-1680-/image-1779736677797.png)](https://docs.softensistemas.com.br/uploads/images/gallery/2026-05/image-1779736677797.png)

##### ***Descrição dos Campos:***

<table border="1" cellpadding="7" cellspacing="0" id="bkmrk-campo-tipo-tamanho-o" style="width: 843px; height: 70px;"><tbody><tr style="height: 35px;" valign="top"><td bgcolor="#acb9ca" style="width: 167.997px; border-style: solid; border-color: black; height: 35px;"><span style="color: #000000;">**Campo**</span>

</td><td bgcolor="#acb9ca" style="width: 101.989px; border-style: solid; border-color: black; height: 35px;"><span style="color: #000000;">**Tipo**</span>

</td><td bgcolor="#acb9ca" style="width: 87.9972px; border-style: solid; border-color: black; height: 35px;"><span style="color: #000000;">**Tamanho**</span>

</td><td bgcolor="#acb9ca" style="width: 165px; border-style: solid; border-color: black; height: 35px;"><span style="color: #000000;">**Obrig. ?**</span>

</td><td bgcolor="#acb9ca" style="width: 118.991px; border-style: solid; border-color: black; height: 35px;"><span style="color: #000000;">**Máscara**</span>

</td><td bgcolor="#acb9ca" style="width: 200.994px; border-style: solid; border-color: black; height: 35px;"><span style="color: #000000;">**Observações**</span>

</td></tr><tr style="height: 35px;"><td style="width: 167.997px; border-style: solid; border-color: black; height: 35px;"><span style="color: #000000;">CPF/CNPJ</span>

</td><td style="width: 101.989px; border-style: solid; border-color: black; height: 35px;"><span style="color: #000000;">Texto</span>

</td><td style="width: 87.9972px; border-style: solid; border-color: black; height: 35px;"><span style="color: #000000;">11-14</span>

</td><td style="width: 165px; border-style: solid; border-color: black; height: 35px;"><span style="color: #000000;">Sim</span>

</td><td style="width: 118.991px; border-style: solid; border-color: black; height: 35px;">-

</td><td style="width: 200.994px; border-style: solid; border-color: black; height: 35px;"><span style="font-family: Arial, serif;"><span style="font-size: small;">11 dígitos = CPF (numérico); 14 caracteres = CNPJ (alfanumérico).</span></span>

</td></tr></tbody></table>

##### <span style="color: #000000;">***Regras de Interface:***</span>

<span style="color: #000000;"><span style="font-family: Arial, serif;"><span style="font-size: small;">**1. Ajuste de validação:**</span></span><span style="font-family: Arial, serif;"><span style="font-size: small;"> Deve ser alterada a validação de campo para permitir informar alfanumérico. Reaproveita util/ValidaCNPJ.java (corrigido em PROC001).</span></span></span>

<span style="color: #000000;"><span style="font-family: Arial, serif;"><span style="font-size: small;">**2. Caracteres especiais bloqueados:**</span></span><span style="font-family: Arial, serif;"><span style="font-size: small;"> Deve ser mantida validação para caracteres especiais como acentos, til e outras pontuações não esperadas. Apenas A–Z, 0–9 e os separadores . / - (estes apenas na máscara, removidos na gravação).</span></span></span>

<span style="color: #000000;"><span style="font-family: Arial, serif;"><span style="font-size: small;">**3. Normalização para maiúsculas:**</span></span><span style="font-family: Arial, serif;"><span style="font-size: small;"> Tratar para que as letras sejam salvas em caixa maior (maiúsculo), normalizando a informação no banco e garantindo coerência em comparações case-sensitive.</span></span></span>

##### <span style="color: #000000;">***Regras de Negócio:***</span>

<span style="color: #000000;"><span style="font-family: Arial, serif;"><span style="font-size: small;">**1. Consulta API:**</span></span><span style="font-family: Arial, serif;"><span style="font-size: small;"> A requisição à API de consulta de CNPJ deve ser feita enviando o CNPJ como campo alfanumérico, preservando letras na URL/payload.</span></span></span>

<span style="color: #000000;"><span style="font-family: Arial, serif;"><span style="font-size: small;">**2. Detecção CPF × CNPJ por comprimento:**</span></span><span style="font-family: Arial, serif;"><span style="font-size: small;"> Continua por length() sobre o valor limpo: 11 = CPF (numérico); 14 = CNPJ (alfanumérico ou numérico).</span></span></span>

<span style="color: #000000;"><span style="font-family: Arial, serif;"><span style="font-size: small;">**3. Verificação de duplicidade:**</span></span><span style="font-family: Arial, serif;"><span style="font-size: small;"> A normalização para maiúsculas garante que CNPJ alfanumérico digitado em caixa diferente não seja considerado duplicado.</span></span></span>

#### **PROC003.1 - Listagem de Clientes e Fornecedores:**

[![image-1779736989013.png](https://docs.softensistemas.com.br/uploads/images/gallery/2026-05/scaled-1680-/image-1779736989013.png)](https://docs.softensistemas.com.br/uploads/images/gallery/2026-05/image-1779736989013.png)

<table border="1" cellpadding="7" cellspacing="0" id="bkmrk-campo-tipo-tamanho-o-0"><tbody><tr style="height: 35px;" valign="top"><td bgcolor="#acb9ca" style="width: 167.997px; border-style: solid; border-color: black; height: 35px;"><span style="color: #000000;">**Campo**</span>

</td><td bgcolor="#acb9ca" style="width: 101.989px; border-style: solid; border-color: black; height: 35px;"><span style="color: #000000;">**Tipo**</span>

</td><td bgcolor="#acb9ca" style="width: 87.9972px; border-style: solid; border-color: black; height: 35px;"><span style="color: #000000;">**Tamanho**</span>

</td><td bgcolor="#acb9ca" style="width: 165px; border-style: solid; border-color: black; height: 35px;"><span style="color: #000000;">**Obrig. ?**</span>

</td><td bgcolor="#acb9ca" style="width: 118.991px; border-style: solid; border-color: black; height: 35px;"><span style="color: #000000;">**Máscara**</span>

</td><td bgcolor="#acb9ca" style="width: 200.994px; border-style: solid; border-color: black; height: 35px;"><span style="color: #000000;">**Observações**</span>

</td></tr><tr style="height: 35px;"><td style="width: 167.997px; border-style: solid; border-color: black; height: 35px;"><span style="color: #000000;">Busca</span>

</td><td style="width: 101.989px; border-style: solid; border-color: black; height: 35px;"><span style="color: #000000;">Texto</span>

</td><td style="width: 87.9972px; border-style: solid; border-color: black; height: 35px;"><span style="color: #000000;">-</span>

</td><td style="width: 165px; border-style: solid; border-color: black; height: 35px;"><span style="color: #000000;">-</span>

</td><td style="width: 118.991px; border-style: solid; border-color: black; height: 35px;">-

</td><td style="width: 200.994px; border-style: solid; border-color: black; height: 35px;">-

</td></tr></tbody></table>

##### <span style="color: #000000;">***Regras de Interface:***</span>

<span style="color: #000000;">***1.*** O campo de Busca deve ser alterado para realizar a consulta de CNPJ alfanumérico. Validar 3 caracteres ou mais para a busca.</span>

##### ***Questões Técnicas:***

<span style="color: #000000;"><span style="font-family: Arial, serif;"><span style="font-size: small;">**1. Banco de dados:**</span></span><span style="font-family: Arial, serif;"><span style="font-size: small;"> O campo 'empresa'.'cnpj' no banco de dados já é definido como VARCHAR(20), não necessitando mudanças.</span></span></span>

<span style="color: #000000;"><span style="font-family: Arial, serif;"><span style="font-size: small;">**2. Query de busca:** O campo</span></span><span style="font-family: Arial, serif;"><span style="font-size: small;"> usa LIKE compatível com texto alfanumérico. Normalizar o termo de busca para maiúsculas antes de aplicar.</span></span></span>

©SOFTEN SISTEMAS 2026