# Gerencie Vendas - G.V.

# 1. Filtros Avançados



# PROC001 Filtros Avançados

<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;">Luís Leite</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>

<span style="color: #000000;">**Este processo visa exemplificar a criação de filtros avançados para o GerencieVendas.**</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%">**PROC001 Filtros Avançados**

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

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

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

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

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

- - - - - -

#### **PROC001 Filtros Avançados:**

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

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

*Imagem I - Tela de vendas com filtros avançados*

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

*Imagem II - Filtros Avançados*

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

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

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

</td><td bgcolor="#acb9ca" style="width: 88px; 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: 119px; border-style: solid; border-color: black; height: 35px;"><span style="color: #000000;">**Máscara**</span>

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

</td></tr><tr style="height: 35px;"><td style="width: 168px; border-style: solid; border-color: black; height: 35px;"><span style="color: #000000;">Filtros Avançados</span>

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

</td><td style="width: 88px; 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: 119px; border-style: solid; border-color: black; height: 35px;">-

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

</td></tr><tr style="height: 35px;"><td style="width: 168px; border-style: solid; border-color: black; height: 35px;"><span style="color: #000000;">Data Início</span>

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

</td><td style="width: 88px; 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;">Sim</span>

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

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

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

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

</td><td style="width: 88px; 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;">Sim</span>

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

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

</td></tr><tr style="height: 35px;"><td style="width: 168px; border-style: solid; border-color: black; height: 35px;"><span style="color: #000000;">Status de Exportação</span>

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

</td><td style="width: 88px; 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: 119px; border-style: solid; border-color: black; height: 35px;">-

</td><td style="width: 201px; border-style: solid; border-color: black; height: 35px;">Opções:  
Todos;

Exportados;

Não Exportados

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

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

</td><td style="width: 88px; 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: 119px; border-style: solid; border-color: black; height: 35px;">-

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

</td></tr><tr><td style="width: 168px; border-style: solid; border-color: black;"><span style="color: #000000;">Filtrar</span>

</td><td style="width: 102px; border-style: solid; border-color: black;"><span style="color: #000000;">Botão</span>

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

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

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

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

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

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

<span style="color: #000000;">***1. Filtros Avançados:*** Deve abrir a *Dialog* para filtros avançados.</span>

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

<span style="color: #000000;">**2.1 Data Início:** Sempre deve inicializar com a data atual. Não deve permitir valor zerado/sem preenchimento.</span>

<span style="color: #000000;">**2.2 Data Fim:** Sempre deve inicializar com a data atual. Não deve permitir valor zerado/sem preenchimento.</span>

<span style="color: #000000;">**2.3 Status de Exportação:** Deve conter 3 opções ou botões que devem funcionar como '*radiobutton*', ao selecionar uma opção, as outras devem ser desmarcadas. Por padrão deve ser "Todos".</span>

<span style="color: #000000;">**2.4 Limpar Filtros:** Deve restaurar o estado dos filtros para o estado padrão.</span>

<span style="color: #000000;">**2.5 Filtrar:** Se possível realizar o filtro, a tela/*Dialog* deve ser encerrada e o filtro aplicado na listagem. Caso não seja possível deve ser retornado em tela o aviso:</span>

<p class="callout warning">**<span style="color: #000000;">Atenção  
  
</span>**<span style="color: #000000;">Confira o preenchimento das Datas.</span></p>

**3. Ao acessar a tela de Vendas ou Orçamentos, o sistema deve:**  
\- Exibir os registros da data atual.  
\- Iniciar a tela com campo de busca vazio e nenhum filtro aplicado.  
\- Manter comportamento de busca durante digitação e atualização dinâmica pela busca.  
\- Exibir até 10 registros mais recentes.  
\- Paginar caso existam mais de 10 resultados.  
\- Ordenar os registros por data de criação decrescente.

##### ***Regras de Negócio:***

**1.** O sistema deve permitir múltiplas aplicações simultâneas de filtros. Combinações possíveis:  
\- Busca  
\- Período  
\- Status  
\- Busca + período  
\- Busca + status  
\- Período + status  
\- Busca + período + status

**2.** Não haverá persistência dos filtros, funcionarão apenas em tela durante o uso.

©SOFTEN SISTEMAS 2026

# 2. Envio de Lote



# Nova Página

<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>

<span style="color: #000000;">**Este processo visa exemplificar a documentação padrão**</span>

##### <span style="color: #000000;">**2. Processo (adicionar fluxograma exemplo)**</span>

[![image-1724162109370.png](https://docs.softensistemas.com.br/uploads/images/gallery/2024-08/scaled-1680-/image-1724162109370.png)](https://docs.softensistemas.com.br/uploads/images/gallery/2024-08/image-1724162109370.png)

I - Fluxograma Exemplo

<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%"><span style="font-size: small; color: #000000;">Processo</span>

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

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

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

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

#### **Processos Relacionados** 

- - - - - -

Documentação Exemplo 1   
  
Documentação Exemplo 2

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

- - - - - -

#### **PROC001 Envio e Recepção de Lotes:**

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

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

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

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

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

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

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

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

</td></tr><tr><td style="width: 168px; border-style: solid; border-color: black;"><span style="color: #000000;">Campo</span>

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

</td><td style="width: 88px; border-style: solid; border-color: black;"><span style="color: #000000;">100</span>

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

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

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

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

##### ***Regras de Interface:***

***1. Exemplo de regras do campo:***

##### ***Regras de Negócio:***

***1.*** Ao ser exportado um produto com lote e validade no GerencieAqui, deve ser enviado ao serviço intermediário as informações respectivas.

***2.*** Somente devem ser enviados lotes e validades que estejam ativos no cadastro do produto.

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

***1.*** Estrutura do JSON de envio das informações de lote e validade para o serviço intermediário:

```JSON
{
  "originId": "998877",
  "description": "PRODUTO COM LOTE",
  "unit": "UN",
  "price": 42.00,
  "stock": null,
  "categoryOriginId": 1001,
  "sku": "",
  "barCode": "",
  "variations": [
    {
      "productOriginId": 998877,
      "originId": 301,
      "description": "QUEIJO PARMESÃO TRADICIONAL",
      "stock": 150,
      "sku": "QJ-PARM-01",
      "barCode": "7891000100011",
      "price": 42.00
    },
    {
      "productOriginId": 998877,
      "originId": 302,
      "description": "QUEIJO MUSSARELA PEÇA",
      "stock": 80,
      "sku": "QJ-MUSS-01",
      "barCode": "7891000100028",
      "price": 35.00
    }
  ],
  "complements": [],
  "batch": [
    {
      "productOriginId": 998877,
      "originId": 501,
      "batch": "ABC1010",
      "mfgDate": "2025-12-01",
      "expDate": "2026-12-01",
      "variationId": 301
    },
    {
      "productOriginId": 998877,
      "originId": 502,
      "batch": "1234",
      "mfgDate": "2024-11-01",
      "expDate": "2027-02-28",
      "variationId": 301
    },
    {
      "productOriginId": 998877,
      "originId": 503,
      "batch": "XYZ999",
      "mfgDate": "2024-05-15",
      "expDate": "2025-05-15",
      "variationId": 302
    }
  ],
  "priceTables": null,
  "image": "data:image/png;base64,..."
}
```

***1.*** Tabela para cadastro dos lotes na base de dados do App GerencieVendas:

```SQL
CREATE TABLE batches (
    originId  INTEGER PRIMARY KEY, 
    productOriginId INTEGER, 
    description TEXT,
    batch TEXT,
    mfgDate TEXT, 
    expDate TEXT,
    variationId INTEGER
);
```

#### **PROC002 Controle de Lote no GerencieVendas:**

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

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

*Imagem I - Listagem de Produtos para inserção em Venda.*

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

*Imagem II - Seleção de Variação*

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

*Imagem III - Seleção de Lote.*

#####  

#####  

#####  

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

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

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

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

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

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

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

</td></tr><tr><td style="width: 168px; border-style: solid; border-color: black;"><span style="color: #000000;">Campo</span>

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

</td><td style="width: 88px; border-style: solid; border-color: black;"><span style="color: #000000;">100</span>

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

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

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

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

##### ***Regras de Interface:***

***1.*** Se o produto possuir mais de um Lote, deve ser aberta a tela de seleção do Lote a ser utilizado. Possuindo apenas um lote, a seleção não deve ocorrer.

**2.** Produtos que possuam Variação devem solicitar a Variação primeiro, então os lotes vinculados a variação. Caso apenas um lote na variação, não deve abrir seleção de lotes. *(Imagem II)*

***3.*** Devem ser listados os lotes mais antigos cadastrados para os mais novos cadastrados.

***4.*** O produto selecionado deve ser listado na Venda/Orçamento da seguinte forma; {Nome\_Produto} - {Nome\_Variação} - {lote} - {Dt. vencimento}

##### ***Regras de Negócio:***

***1.*** A prioridade dos fluxos de seleção de dados é: Variação → Lote.

**2.** Será "*settado"* automaticamente o lote caso o produto tenha somente UM lote vinculado.

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

***1. Descrição de mudanças na base de dados, ou integração de API, ou arquivo que deva ser gerado.***

©SOFTEN SISTEMAS 2026

# 3. Envio cód. autorização



# PROC001 Controle de Pagamentos Eletrônicos - NFCe

<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;">GerencieVendas</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>  
PROC001 Controle de Pagamentos Eletrônicos

</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;">Luís Leite</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;">23/03/2026</span>

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

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

<span style="color: #000000;">**Esta documentação tem por objetivo descrever as mudanças para satisfazer a necessidade de vincular as informações de pagamento eletrônico vindas do GerencieVendas, para uso na autorização de documento fiscal.**</span>

##### <span style="color: #000000;">**2. Processo(s)**</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%">PROC001 Controle de Pagamentos Eletrônicos

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

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

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

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

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

- - - - - -

#### **PROC001 Controle de Pagamentos Eletrônicos:**

##### ***Regras de Negócio:***

***1.*** Deverá ser utilizado uma tabela intermediaria para todos pagamentos eletrônicos. Essa tabela vai servir pra armazenar os dados de código de autorização e demais informações de pagamento eletrônico. isso visa dois fluxos, **(1)** as vendas feitas no APP que não tem vínculo com NFC-e e as **(2)** vendas que são solicitadas NFC-e.

**1 Emissão sem NFCe:**

- - - - As informações vão ficar salvas na tabela intermediaria pagamentosdigitais (antiga nfcecartao), tendo vínculo com a venda.
            - A emissão de NFCe posterior no GerencieAqui deve consultar essa tabela para ter acesso aos dados de autorização. Víncular as informações do registro dessa tabela na nfcefaturas.

**1.2 Emissão com NFCe:** Com a emissão da NFCe, deve ser enviado a venda + informações dos pagamentos para o GerencieAqui, para possibilitar que o serviço faça a autorização com os dados de autorização já vinculados ao documento fiscal. As informações ainda deverão preencher a tabela pagamentosdifigitais (antiga nfcecartao).

1.3 **Emissão somente NFCe:** Visando suprir o fluxo de uma venda feita somente pela NFCe no retaguarda, deve ser criado um vínculo com a pagamentosdigitais para víncular o pagamento eletrônico com a emissão somente da NFCe.

**2.** Pagamentos originados no app como venda podem posteriormente ser vinculados a uma NFC-e. Nesse caso, o sistema deve atualizar o registro existente, preenchendo o nfceId. Não deve ser criado um novo pagamento para a mesma transação TEF.

**3.** A tabela nfcefaturas deve continuar referenciando pagamentosdigitais. Para cada fatura com pagamento eletrônico, deve existir um vínculo válido.

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

***1.*** No ***GerencieAqui*** Deve ser alterado o nome da tabela 'nfcecartao' para 'pagamentosdigitais'.

**1.1** Devem ser adicionados campos referentes a informações de pagamento eletrônico.

**1.2** Deve ser adicionado "*Enum*" pra controle de origem do pagamento eletrônico.

```SQL
ALTER TABLE nfcecartao RENAME TO pagamentosdigitais;

ALTER TABLE pagamentosdigitais
ADD COLUMN meioPagamento VARCHAR(50) DEFAULT NULL,
ADD COLUMN nsu VARCHAR(50) NOT NULL,
ADD COLUMN nsuSitef VARCHAR(50),
ADD COLUMN nsuHost VARCHAR(50),
ADD COLUMN vendaId BIGINT(20),
ADD COLUMN nfceId BIGINT(20),
ADD COLUMN origemPgto INT(2), -- "01 - Cielo; 02 - Rede; 03 - MercadoPago;  04 - ELGIN"
ADD COLUMN statusTef BIT(1) -- 0 ativo, 1 cancelado
;
```

**3.** Deve ser alterada a rotina de inserção das informações na tabela 'pagamentosdigitais' pra que seja inserido apenas 1 Registro por transação eletrônica. Esse registro é vinculado com a 'nfcefaturas' por chave estrangeira, ou seja, caso tenham mais de um registro na 'nfcefaturas' eles terão referência do único registro de transação no 'pagamentosdigitais'.

**4.** JSON dos envios das informações de venda e pagamento:

```JSON
{
    "id": "16405573-81cc-4ece-a065-0d0087b84f1c",
    "appId": 2,
    "customerOriginId": 3864,
    "customerUuid": "2626ad47-a019-4dad-b652-e857730ad0d6",
    "customerName": "CONSUMIDOR",
    "customerDocument": "27565866000104",
    "sellerOriginId": 349,
    "sellerName": "VENDEDOR",
    "paymentMethodOriginId": 1,
    "paymentMethodName": "Crédito",
    "date": "2026-02-25",
    "creationDate": "2026-02-25T15:38:10",
    "discountPercent": 0,
    "discountValue": 0,
    "increases": 0,
    "shipping": 0,
    "totalProducts": 51.4,
    "total": 51.4,
    "notes": "",
    "quotationId": null,
    "quotationAppId": null,
    "items": [
        {
            "originId": "7912",
            "description": "SUCO NATURAL JARRA 1L",
            "quantity": 1,
            "price": 12,
            "totalPrice": 12,
            "variationOriginId": 275,
            "variationDescription": "Laranja",
            "complementsPrice": 0
        },
        {
            "originId": "121981",
            "description": "ÁGUA GASEIFICADA H2OH LIMONETO 500ML",
            "quantity": 1,
            "price": 6.5,
            "totalPrice": 6.5,
            "variationOriginId": null,
            "variationDescription": null,
            "complements": [
                {
                    "step": "COPO",
                    "type": "SINGLE_CHOICE",
                    "price": 0,
                    "originId": 752,
                    "quantity": null,
                    "saleItemId": 5,
                    "description": "Copo com limão e gelo",
                    "id": 12
                }
            ],
            "complementsPrice": 0
        },
        {
            "originId": "121979",
            "description": "TEMAKI HOT ROLL",
            "quantity": 1,
            "price": 32.9,
            "totalPrice": 32.9,
            "variationOriginId": null,
            "variationDescription": null,
            "complementsPrice": 0
        }
    ],
    "payments": [
        {
            "originId": 0,
            "paymentMethodName": "Dinheiro",
            "date": "2026-02-25",
            "value": 10,
            "paid": false,
            "cieloSaleId": null,
            "redeNsu": null,
            "mercadoPagoId": null
        },
        {
            "originId": 60,
            "paymentMethodName": "Débito",
            "date": "2026-02-25",
            "value": 20,
            "paid": true,
            "cieloSaleId": null,
            "redeNsu": "160645",
            "ElginNsu": "16555"
            "mercadoPagoId": null,
            "elginTefID": "1"
        },
        {
            "originId": 1,
            "paymentMethodName": "Crédito",
            "date": "2026-02-25",
            "value": 21.4,
            "paid": true,
            "cieloSaleId": null,
            "redeNsu": "160648",
            "ElginNsu": "16555"
            "mercadoPagoId": null,
            "elginId": "1"
        }
    ]
}
```

5\.  **JSON de envio das informações de pagamento, adicionado informação da bandeira em 'cardBrand':**

```JSON
[
    {
        "createdAt": "2026-02-25T15:37:21",
        "nsu": "160645",
        "sitefNsu": "160645", --opcional
        "hostNsu": "160645", --opcional
        "installments": 0,
        "type": "Débito",
        "operationType": "Débito à vista",
        "amount": 20,
        "paymentStatus": "AUTHORIZED",
        "saleId": "16405573-81cc-4ece-a065-0d0087b84f1c",
        "cardBrand": "master"
    },
    {
        "createdAt": "2026-02-25T15:38:06",
        "nsu": "160648",
        "sitefNsu": "160645", --opcional
        "hostNsu": "160645", --opcional
        "installments": 2,
        "type": "Crédito",
        "operationType": "Crédito parcelado sem juros",
        "amount": 21.4,
        "paymentStatus": "AUTHORIZED",
        "saleId": "16405573-81cc-4ece-a065-0d0087b84f1c"
        "cardBrand": "visa"
    }
]
```

©SOFTEN SISTEMAS 2026

