💰 OndeVou Financeiro

Sistema completo para gestão financeira de empresas. Controle total de contas a pagar, contas a receber, liquidações, caixas e borderos com integração total às notas fiscais e gestão de viagens.

🚀 4 Módulos 💰 2 Movimentos 📄 9 Documentos 🏦 4 Tipos de Caixa 📋 4 Tipos de Bordero 📱 App 0016

⚡ Diferenciais Tecnológicos

Tecnologia de ponta para gestão financeira

Importação XML NF-e

Duplicatas geradas automaticamente a partir do XML da nota fiscal, extraindo número, vencimento e valor.

Cálculo Automático

Saldo aberto = valor - soma das liquidações. Suporte a juros, multa e desconto.

Saldo Corrente

Views com window functions calculam saldo acumulado por caixa e por participante em tempo real.

📊 Conceitos Fundamentais

💰 Movimentos Financeiros

Toda transação financeira é classificada por tipo de movimento:

1 = Pagar 2 = Receber 3 = Entrada Transferência 4 = Saída Transferência

📋 Situações do Título

Cada título (duplicata) possui uma situação que define seu estado:

1 = Aberto 2 = Pago 3 = Cancelado 4 = Negociado 5 = Transferência

📄 Tipos de Documento

1=Duplicata 2=Cheque 3=Nota promissória 4=Nota débito 5=Boleto bancário 6=Caixa 7=Pix 8=Transferência bancária 9=Dinheiro

🏦 Portadores (Contas/Caixas)

Onde o dinheiro está: contas bancárias, caixas físicos, carteiras digitais.

Banco do Brasil • Sicoob • Itaú • Caixa (dinheiro) • Stone • Pagbank • Nubank

⚙️ Configuração Financeira por Natureza da Operação

Sistema inteligente que aprende com as escolhas do usuário e automatiza o lançamento de duplicatas

🧠

Sistema Inteligente de Configuração

O sistema aprende com as escolhas do usuário e automatiza lançamentos futuros

O OndeVou Financeiro permite configurar padrões automáticos para o lançamento de duplicatas com base na natureza da operação da nota fiscal, eliminando a necessidade de preenchimento manual repetitivo e garantindo consistência nos lançamentos financeiros.

📊 Hierarquia de Configuração

graph TD A[Nota Fiscal Importada] --> B{Existe configuração
para este PARTICIPANTE
+ NATUREZA?} B -->|SIM| C[✅ Usa configuração
ESPECÍFICA do participante] B -->|NÃO| D{Existe configuração
PADRÃO para esta
NATUREZA?} D -->|SIM| E[✅ Usa configuração
PADRÃO da natureza] D -->|NÃO| F[⚠️ Usuário preenche
campos manualmente] C --> G[Preenche tabela
Financeiro Configurações] E --> G F --> H[Usuário preenche tabela
Financeiro Configurações] H --> I[Clica em SALVAR] I --> G G --> J[Clica em GERAR DUPLICATAS] J --> K[Duplicatas criadas
com os valores da
primeira linha da tabela] style C fill:#22c55e,color:#000 style E fill:#22c55e,color:#000 style F fill:#f97316,color:#000 style K fill:#8b5cf6,color:#000

🌐 Configuração Padrão

id_participante = NULL

Aplica-se a TODOS os participantes para aquela natureza de operação.

Exemplo: "Compra de material de escritório sempre como 'Pagar' com categoria 'Material de Consumo'"

id_participante: NULL

🎯 Configuração Específica

id_participante = ID do Cliente/Fornecedor

Aplica-se APENAS àquele participante específico, sobrescrevendo a configuração padrão.

Exemplo: "Para o fornecedor de matéria-prima, compra sempre com Portador 'Conta corrente' e Categoria 'Matéria-prima'"

id_participante: 673184

🔧 Campos Configuráveis

CampoO que defineExemplos
MovimentoTipo de transaçãoPagar (1) / Receber (2)
SituaçãoStatus inicial do títuloAberto (1)
DocumentoTipo do documento financeiroDuplicata (1) / Boleto (5) / Transferência (8)
CobrançaForma de cobrançaBancária (2) / Carteira (1)
PortadorConta/Caixa onde o dinheiro estáConta corrente (12) / Caixa empresa (11)
CategoriaClassificação da despesa/receitaCompra para revenda (13) / Matéria-prima (46) / Material consumo (45)

🖥️ Interface do Usuário

📝 Como configurar durante o lançamento da nota fiscal

No momento do lançamento da nota fiscal, o usuário define as configurações financeiras diretamente na tabela "Financeiro Configurações" localizada acima da grade de duplicatas:

  1. Selecione a natureza da operação no campo principal da nota
  2. Preencha a tabela "Financeiro Configurações" com os valores desejados:
    • Movimento (Pagar/Receber)
    • Documento (Boleto/Duplicata/Transferência)
    • Cobrança (Bancária/Carteira)
    • Portador (Banco/Conta corrente)
    • Categoria (Classificação da despesa/receita)
  3. Clique em "Salvar" na tabela de configurações para persistir os dados no banco
  4. Clique em "Gerar Duplicatas" - o sistema aplicará os valores da primeira linha da tabela de configurações em TODAS as duplicatas geradas

🎯 Importante:

  • O sistema sempre usa os valores da primeira linha da tabela "Financeiro Configurações"
  • Você pode ter múltiplas linhas de configuração para diferentes clientes/fornecedores
  • Ao selecionar um cliente/fornecedor, o sistema carrega automaticamente a configuração específica ou a padrão
  • Quando você adiciona um cliente/fornecedor a uma configuração padrão, o sistema cria automaticamente uma configuração específica mantendo a original

💡 Exemplos Práticos

📦 Cenário 1: Compra recorrente do mesmo fornecedor

Fornecedor: Distribuidora de Insumos LTDA
Natureza: 58 - Compra para comercialização dentro do estado
Frequência: Semanal

Sem ConfiguraçãoCom Configuração
A cada nota, usuário preenche manualmenteSistema já preenche automaticamente
Tempo gasto: ~2 minutos por notaTempo gasto: 5 segundos (só confirma)

🏭 Cenário 2: Múltiplos fornecedores, mesma natureza

Natureza: 58 - Compra para comercialização dentro do estado

  • Distribuidora de Insumos → Portador: Conta corrente, Categoria: Matéria-prima
  • Indústria de Embalagens → Portador: Conta corrente, Categoria: Embalagens
  • Transportadora Rápida → Portador: Caixa empresa, Categoria: Frete
  • Padrão (qualquer outro) → Portador: Transferência, Categoria: Compras

🗂️ Estrutura da Tabela financeiro_configuracoes

CampoTipoDescriçãoExemplo
idINTEGERChave primária1
participanteINTEGERID da empresa logada662691
id_participanteINTEGERID do cliente/fornecedor (NULL = padrão)673184
id_natureza_operacaoINTEGERNatureza da operação (obrigatório)58
id_financeiro_movimentoINTEGERMovimento (1=Pagar, 2=Receber)1
id_financeiro_situacaoINTEGERSituação (1=Aberto)1
id_financeiro_documentoINTEGERTipo de documento5
id_financeiro_cobrancaINTEGERForma de cobrança2
id_financeiro_portadorINTEGERPortador/Conta12
id_financeiro_categoriaINTEGERCategoria46

🔄 Fluxo de Funcionamento Detalhado

sequenceDiagram participant U as Usuário participant S as Sistema participant NF as Nota Fiscal participant DB as Banco de Dados participant T as Tabela Configuração U->>NF: Importa XML da nota NF->>S: Extrai natureza operação e participante S->>DB: Busca config específica (participante + natureza) alt Config específica encontrada DB-->>S: Retorna configuração do participante S->>T: Pré-preenche tabela else Config específica NÃO encontrada S->>DB: Busca config padrão (id_participante NULL + natureza) alt Config padrão encontrada DB-->>S: Retorna configuração padrão S->>T: Pré-preenche tabela else Config padrão NÃO encontrada S->>T: Exibe tabela com campos vazios end end U->>T: Ajusta campos (se necessário) U->>T: Clica em SALVAR T->>DB: Persiste configuração DB-->>T: Confirmado U->>S: Clica em GERAR DUPLICATAS S->>T: Lê primeira linha da tabela S->>NF: Aplica valores às duplicatas NF-->>U: Duplicatas geradas com os valores configurados

📌 Lógica de Busca (Prioridade):

-- Prioridade 1: Configuração específica do cliente/fornecedor
SELECT * FROM financeiro_configuracoes 
WHERE participante = @minha_empresa 
  AND id_natureza_operacao = @natureza
  AND id_participante = @cliente

-- Prioridade 2: Configuração padrão (caso não encontre específica)
SELECT * FROM financeiro_configuracoes 
WHERE participante = @minha_empresa 
  AND id_natureza_operacao = @natureza
  AND (id_participante IS NULL OR id_participante = '')

✨ Diferencial inteligente: Quando o usuário adiciona um cliente/fornecedor a uma configuração padrão, o sistema automaticamente:

  • Mantém o registro padrão original (sem cliente)
  • Cria um novo registro específico (com o cliente)

Isso garante que a hierarquia de configurações seja sempre mantida!

📈 Benefícios do Sistema

🚀 Agilidade

Reduz tempo de lançamento de minutos para segundos

🎯 Precisão

Elimina erros de digitação e escolhas incorretas

📊 Padronização

Garante consistência nas classificações financeiras

🔧 Flexibilidade

Permite exceções por participante mantendo padrão geral

📚 Organização

Categorização automática por tipo de despesa/investimento

🧠 Inteligência

Sistema aprende com as escolhas do usuário

🎯 Aplicações por Tipo de Operação

📥 Entradas (Compras)

  • Compra para revenda → Pagar, Mercadoria para revenda
  • Compra de matéria-prima → Pagar, Matéria-prima
  • Compra de ativo imobilizado → Pagar, Investimento
  • Compra de material de consumo → Pagar, Despesa operacional
  • Devolução de compra → Receber, Ajustes

📤 Saídas (Vendas)

  • Venda dentro do estado → Receber, Vendas
  • Venda fora do estado → Receber, Vendas interestaduais
  • Venda para consumidor final → Receber, Vendas diretas
  • Devolução de venda → Pagar, Ajustes

🎯 Importante: Este sistema de configuração se aplica a TODAS as naturezas de operação, tanto de entrada quanto de saída, própria ou de terceiros. A configuração pode ser feita em dois níveis:

  • Nível 1 (Padrão): id_participante = NULL → aplica-se a todos
  • Nível 2 (Específico): id_participante preenchido → aplica-se apenas àquele participante

⚙️ "Configure uma vez, utilize para sempre. O sistema aprende com você!"

💰 Contas - Títulos a Pagar e Receber

Tabela principal que armazena todos os títulos financeiros

💰

1. Contas (vendas_duplicatas)

📊 Transição de Estados

Criação: 📄 Aberto 💰 Valor: R$ X
Liquidação Total: ✅ Pago 💰 Saldo: R$ 0
Liquidação Parcial: 📄 Aberto 💰 Saldo: R$ Y

📋 Regras

Geração automática: Duplicatas são criadas a partir do XML da NF-e (extrai nDup, dVenc, vDup)
Geração manual: Botão "Gerar Duplicatas" cria parcelas (30/60/90 dias)
Diferença por movimento: Rotina 291-296 = Pagar | Rotina 294-296 = Receber
📌 Saldo aberto: valor - SUM(valor_inicial_das_liquidações)

💵 Liquidações - Baixas de Títulos

Registro de pagamentos e recebimentos, com suporte a juros, multa e desconto

💵

2. Liquidações (vendas_duplicatas_liquidacao)

📊 Transição de Estados

Antes: 📄 Aberto 💰 Valor: R$ X
Depois: ✅ Pago 💰 Saldo: R$ (X - liquidação)

📋 Regras

Múltiplas baixas: Uma duplicata pode ter várias liquidações (pagamento parcial)
Campos de valores: valor_inicial, valor_juros, valor_multa, valor_desconto
Valor total da liquidação: inicial + juros + multa - desconto
📌 Valor sinalizado: positivo para entrada, negativo para saída (borderos tipo 1/3)

🏦 Caixas

Caixas por romaneio, membro (motorista/vendedor) ou ponto de venda

🏦

3. Caixas (caixas)

📊 Transição de Estados

Abertura (Rotina 278): 🔓 Aberto 💰 Saldo inicial: R$ X
Fechamento (Rotina 284): 🔒 Fechado 💰 Saldo final: R$ Y

📋 Regras

QR Code único: Cada caixa tem um QR Code para acesso rápido
Vinculação: Caixa pode estar vinculado a um romaneio (viagem) ou membro (motorista/vendedor)
Saldo inicial/final: Controla o fluxo de caixa do período
📌 Rotinas: 278 (Abrir), 284 (Fechar), 661 (Reabrir), 662 (Consultar saldo)

📋 Borderos - Lotes de Movimentações

Agrupa liquidações em lotes, facilitando a gestão de recebimentos e pagamentos

📋

4. Borderos (borderos)

📋 Tipos de Bordero (borderos_tipo)

1 = Entrada 2 = Saída 3 = Entrada transferência 4 = Saída transferência

📋 Regras

Agrupamento: Bordero agrupa várias liquidações em um lote
Vinculação: Bordero pertence a um caixa e a um tipo
QR Code: Cada bordero tem QR Code para acesso rápido
📌 Valor total: Soma de todas as liquidações do bordero (com sinal)

🔄 Transferências Entre Caixas

Toda transferência entre caixas gera DOIS lançamentos automáticos: saída de um caixa e entrada no outro.

📊 Conceito: Dois Lançamentos Automáticos

graph LR subgraph ORIGEM["🏦 CAIXA DE ORIGEM"] C1[("💰 Caixa A
Saldo: R$ X")] SAIDA[("📤 Saída Transferência
(Rotina 652)")] end subgraph DESTINO["🏦 CAIXA DE DESTINO"] ENTRADA[("📥 Entrada Transferência
(Rotina 649)")] C2[("💰 Caixa B
Saldo: R$ Y")] end subgraph AUTOMATICO["🔄 LANÇAMENTOS AUTOMÁTICOS"] L1[("1. Saída do Caixa A
-R$ Valor")] L2[("2. Entrada no Caixa B
+R$ Valor")] end C1 -->|"Usuário solicita"| SAIDA SAIDA -->|"Sistema gera"| L1 L1 -->|"Atualiza"| C1 SAIDA -->|"Sistema também gera"| ENTRADA ENTRADA -->|"Registra"| L2 L2 -->|"Atualiza"| C2 style ORIGEM fill:#1e293b,stroke:#ef4444 style DESTINO fill:#1e293b,stroke:#22c55e style AUTOMATICO fill:#1e293b,stroke:#8b5cf6
🔴 Caixa Origem (perde dinheiro) 🟢 Caixa Destino (ganha dinheiro) 🟣 Sistema (automático)

📋 Rotinas de Transferência

OperaçãoRotinaTipoEfeito
Saída Transferência652Saída do caixa de origem➖ Diminui saldo
Entrada Transferência649Entrada no caixa de destino➕ Aumenta saldo
Alterar Saída Transferência653Alteração do lançamento🔧 Ajusta saldos
Excluir Saída Transferência654Exclusão do lançamento🗑️ Reverte saldos

🚚 Fluxo Completo de Viagem (Caixa do Romaneio)

Demonstração completa de como o sistema gerencia viagens, desde o suprimento até a conciliação final das notas fiscais.

📤 Etapa 1: Suprimento do Caixa do Romaneio

🏢 Caixa Escritório (Origem)

Antes: R$ 10.000,00

652 Saída Transferência: - R$ 1.000,00

Depois: R$ 9.000,00

🚚 Caixa Romaneio (Destino)

Antes: R$ 0,00

649 Entrada Transferência: + R$ 1.000,00

Depois: R$ 1.000,00

🎯 Importante: O sistema gera DOIS lançamentos automaticamente! O usuário só precisa informar a transferência uma vez.

graph TD subgraph ESCRITORIO["🏢 CAIXA ESCRITÓRIO"] ESC_INI[("💰 Saldo: R$ 10.000")] ESC_SAI[("📤 Saída Transferência
Rotina 652
Valor: R$ 1.000")] ESC_FIM[("💰 Saldo: R$ 9.000")] end subgraph SISTEMA["⚙️ SISTEMA (AUTOMÁTICO)"] LANC1[("✅ Lançamento 1
Caixa Escritório
-R$ 1.000")] LANC2[("✅ Lançamento 2
Caixa Romaneio
+R$ 1.000")] end subgraph ROMANEIO["🚚 CAIXA ROMANEIO"] ROM_INI[("💰 Saldo: R$ 0")] ROM_ENT[("📥 Entrada Transferência
Rotina 649
Valor: R$ 1.000")] ROM_FIM[("💰 Saldo: R$ 1.000")] end ESC_INI --> ESC_SAI ESC_SAI --> LANC1 LANC1 --> ESC_FIM ESC_SAI --> LANC2 LANC2 --> ROM_ENT ROM_ENT --> ROM_FIM ROM_INI --> ROM_FIM style ESCRITORIO fill:#1e293b,stroke:#3b82f6 style SISTEMA fill:#1e293b,stroke:#8b5cf6 style ROMANEIO fill:#1e293b,stroke:#f97316
⛽ Etapa 2: Gasto na Estrada (Motorista)

🚚 Caixa Romaneio

Antes: R$ 1.000,00

652 Saída Transferência: - R$ 250,00

Depois: R$ 750,00

🏢 Caixa Escritório

Saldo: R$ 9.000,00

❌ NENHUM EFEITO

O dinheiro físico já está com o motorista!

graph TD subgraph ROMANEIO["🚚 CAIXA ROMANEIO"] ROM_INI[("💰 Saldo: R$ 1.000")] ROM_SAI[("📤 Saída Transferência
Rotina 652
Valor: R$ 250")] ROM_FIM[("💰 Saldo: R$ 750")] end subgraph SISTEMA["⚙️ SISTEMA"] LANC[("✅ Lançamento ÚNICO
Caixa Romaneio
-R$ 250")] end subgraph ESCRITORIO["🏢 CAIXA ESCRITÓRIO"] ESC[("💰 Saldo: R$ 9.000
(inalterado)")] end ROM_INI --> ROM_SAI ROM_SAI --> LANC LANC --> ROM_FIM ESC -.->|"❌ NENHUM efeito"| ESC style ROMANEIO fill:#1e293b,stroke:#f97316 style SISTEMA fill:#1e293b,stroke:#8b5cf6 style ESCRITORIO fill:#1e293b,stroke:#3b82f6
📄 Etapa 3: Nota Fiscal Chega ao Escritório

📋 Duplicata Criada

Fornecedor: Posto Ipiranga

Valor: R$ 250,00

Situação: Aberto

⚠️ Atenção

O dinheiro JÁ FOI GASTO pelo motorista!

Não pode ser pago novamente com o caixa do escritório.

↩️ Etapa 4: Devolução do Saldo Remanescente

🚚 Caixa Romaneio

Antes: R$ 750,00

652 Saída Transferência: - R$ 750,00

Depois: R$ 0,00

🏢 Caixa Escritório

Antes: R$ 9.000,00

649 Entrada Transferência: + R$ 750,00

Depois: R$ 9.750,00

📊 Resultado líquido para o escritório: R$ 10.000 - R$ 9.750 = R$ 250,00 gastos

graph TD subgraph ROMANEIO["🚚 CAIXA ROMANEIO"] ROM_INI[("💰 Saldo: R$ 750")] ROM_SAI[("📤 Saída Transferência
Rotina 652
Valor: R$ 750")] ROM_FIM[("💰 Saldo: R$ 0")] end subgraph SISTEMA["⚙️ SISTEMA (AUTOMÁTICO)"] LANC1[("✅ Lançamento 1
Caixa Romaneio
-R$ 750")] LANC2[("✅ Lançamento 2
Caixa Escritório
+R$ 750")] end subgraph ESCRITORIO["🏢 CAIXA ESCRITÓRIO"] ESC_INI[("💰 Saldo: R$ 9.000")] ESC_ENT[("📥 Entrada Transferência
Rotina 649
Valor: R$ 750")] ESC_FIM[("💰 Saldo: R$ 9.750")] end ROM_INI --> ROM_SAI ROM_SAI --> LANC1 LANC1 --> ROM_FIM ROM_SAI --> LANC2 LANC2 --> ESC_ENT ESC_ENT --> ESC_FIM ESC_INI --> ESC_FIM style ROMANEIO fill:#1e293b,stroke:#f97316 style SISTEMA fill:#1e293b,stroke:#8b5cf6 style ESCRITORIO fill:#1e293b,stroke:#3b82f6

🔄 Conversão: Transferência → Saída Normal

Quando a nota fiscal chega, a transferência de gasto é convertida para Saída Normal, liquidando a duplicata sem movimentar dinheiro novamente.

📊 Diagrama da Conversão

graph TD subgraph VIAGEM["🚚 DURANTE A VIAGEM"] GASTO[("💸 Transferência (652)
Abastecimento
R$ 250
Tipo: Saída Transferência")] end subgraph ESCRITORIO["🏢 APÓS A VIAGEM"] DUP[("📋 Duplicata
Conta a Pagar
R$ 250
SITUAÇÃO: Aberta")] end subgraph CONVERSAO["🔄 CONVERSÃO"] OPCAO[("🔗 Vincular e Converter")] CONV[("🔄 Transferência (652)
→ Saída Normal (224)")] DUP_PAGA[("✅ Duplicata Paga
SITUAÇÃO: Pago")] EFETIVO[("💵 Efeito no Caixa:
Nenhuma mudança")] end subgraph RESULTADO["🎯 RESULTADO"] FINAL[("✅ Despesa conciliada
✅ Duplicata quitada
✅ Caixa consistente")] end GASTO --> OPCAO DUP --> OPCAO OPCAO --> CONV CONV --> DUP_PAGA CONV --> EFETIVO DUP_PAGA --> FINAL EFETIVO --> FINAL style VIAGEM fill:#1e293b,stroke:#f97316 style ESCRITORIO fill:#1e293b,stroke:#3b82f6 style CONVERSAO fill:#1e293b,stroke:#8b5cf6 style RESULTADO fill:#1e293b,stroke:#22c55e

📋 O que muda na conversão

CampoAntes (Transferência)Depois (Saída Normal)
id_tipo_bordero4 (Saída Transferência)2 (Saída Normal)
id_financeiro_movimento4 (Saída Transferência)1 (Pagar)
id_duplicata_vinculadaNULLID da duplicata
Efeito no caixaJá estava debitadoNENHUM (já debitado)

🎯 Regra de Ouro: A conversão NÃO movimenta dinheiro! O gasto já foi registrado durante a viagem. Apenas altera o tipo do lançamento e liquida a duplicata.

📒 Livro Caixa - Extrato Financeiro

View consolidada que apresenta todas as movimentações com saldo corrente

📒

5. view_livro_caixa

📋 Campos Calculados

📊valor_total: inicial + juros + multa - desconto
📊valor_sinalizado: positivo para entrada, negativo para saída (conforme tipo do bordero)
📊saldo_atual_caixa: SUM(valor_sinalizado) OVER (PARTITION BY id_caixa)
📊saldo_atual: SUM(valor_sinalizado) OVER (PARTITION BY participante)

🗂️ Tabelas do Sistema Financeiro

📊 Tabelas Principais

  • vendas_duplicatas - Contas a pagar/receber
  • vendas_duplicatas_liquidacao - Baixas/liquidações
  • borderos - Lotes de movimentações
  • caixas - Caixas por romaneio/membro
  • financeiro_configuracoes - Configurações por natureza

🔧 Tabelas Auxiliares

  • financeiro_movimento - Tipo (Pagar/Receber)
  • financeiro_situacao - Status (Aberto/Pago)
  • financeiro_documento - Tipo de documento
  • financeiro_cobranca - Forma de cobrança
  • financeiro_portador - Conta/Caixa
  • financeiro_categoria - Classificação
  • borderos_tipo - Tipo de bordero
  • caixas_situacao - Situação do caixa

qr_code_scanner QR Code - Identificação Única

qr_code_scanner

Caixas e Borderos com QR Code

  • 🔢 Prefixo cx: Caixa (ex: cx12345)
  • 🔢 Prefixo bf: Bordero (ex: bf12345)
  • 🔢 Prefixo rv: Romaneio de viagem
  • 📱 Leitura via app: O aplicativo coletor lê o QR Code e abre a operação correspondente

🏆 Propriedade Intelectual

ONDEVOU Marca Registrada

Marca Registrada

OndeVou.com®

Propriedade Intelectual Assegurada

Processo INPI:
908765967
Titular:
ONDEVOU TECNOLOGIA LTDA
CNPJ:
17.058.605/0001-36
Classificação:
Classe 42 - Serviços de TI
© ONDEVOU TECNOLOGIA LTDA - Todos os direitos reservados.
🏆
10+
anos de proteção