AtlantisCentral de Ajuda
← Voltar ao app

1. Visão geral

O Atlantis GeradorLR é a plataforma interna para automatizar a geração da LR (Listagem de Receitas e Despesas) mensal de cada empresa do grupo (ADV, ADC, OPR, PPG, HIL, NOT, ADS, OPL, etc).

O sistema cobre quatro grandes fluxos:

  1. Importar e gerar — receber template contábil + extração do sistema interno + extrato bancário, cruzar tudo e produzir uma LR consolidada.
  2. Conferir e editar — visualizar, filtrar, editar (linha-a-linha ou modo planilha tipo Excel), pausar para terminar depois e finalizar.
  3. Salvar e compartilhar — persistir no banco (lr_history) para que toda a equipe veja a mesma LR daquela empresa naquele mês.
  4. Analisar — dashboard agregado (modo Geral), relatórios comparativos e extratos por empresa.

2. Arquitetura do sistema

Stack técnico

  • Frontend: React 19 + TanStack Start v1 + Vite 7, com Tailwind v4. UI baseada em shadcn/ui.
  • Roteamento: file-based viasrc/routes/ (TanStack Router).
  • Backend: Lovable Cloud (Supabase) — Postgres + Auth + RLS.
  • Server functions: createServerFnde TanStack para chamadas autenticadas RPC.
  • Deploy: Edge (Cloudflare Workers).

Camadas e responsabilidades


┌────────────────────────────────────────────────────────────────┐
│  CLIENTE (React + TanStack Router)                             │
│                                                                │
│  Rotas (src/routes/):                                          │
│    /              → Gerador de LR (principal)                  │
│    /nova-lr       → criação manual de lançamento               │
│    /historico-lr  → todas as LRs salvas                        │
│    /relatorios    → comparativos, extratos                     │
│    /rateios       → fornecedores e colaboradores               │
│    /regras-rateio → regras customizadas de processamento       │
│    /admin-usuarios→ aprovação e papéis (admin)                 │
│    /auth          → login / solicitação de acesso              │
│    /ajuda         → esta página                                │
│                                                                │
│  Componentes-chave (src/components/):                          │
│    GeradorLR.tsx       — workspace principal                   │
│    EditableLRTable.tsx — modo planilha (Excel-like)            │
│    NovaLR.tsx          — formulário de linha manual            │
│    RegrasRateio.tsx    — editor de regras                      │
│    AppSidebar.tsx      — menu lateral global                   │
│    ThemeProvider.tsx   — tema claro/escuro                     │
└────────────────────────────────────────────────────────────────┘
                              │
                              ▼ (chamadas autenticadas)
┌────────────────────────────────────────────────────────────────┐
│  CAMADA SERVER (TanStack server functions)                     │
│                                                                │
│  src/lib/admin.functions.ts — gestão de usuários/papéis        │
│  src/server/generate-lr.ts  — pipeline de geração da LR        │
│  src/start.ts               — middleware que anexa o JWT       │
│                                                                │
│  Auth middleware: requireSupabaseAuth                          │
└────────────────────────────────────────────────────────────────┘
                              │
                              ▼
┌────────────────────────────────────────────────────────────────┐
│  BACKEND (Lovable Cloud — Postgres + RLS)                      │
│                                                                │
│  Tabelas principais:                                           │
│    profiles        — perfil do usuário                         │
│    user_roles      — papel (admin / user)                      │
│    access_requests — solicitações de acesso pendentes          │
│    lr_history      — LRs salvas (rows JSON, status, mês,       │
│                       empresa, autor, criado_em)               │
│                                                                │
│  Políticas:                                                    │
│    SELECT em lr_history → liberado a authenticated             │
│    UPDATE/DELETE        → apenas autor                         │
│    INSERT               → authenticated                        │
└────────────────────────────────────────────────────────────────┘
            

Fluxo de dados (gerar LR)


Usuário ─► Upload Template ─┐
Usuário ─► Upload Sistema ──┼─► Parser CSV/XLSX ─► Normalização
Usuário ─► Upload Banco ────┘                          │
                                                       ▼
                                Aplicação de Regras de Rateio
                                (Fornecedores / Colaboradores / Custom)
                                                       │
                                                       ▼
                            Conciliação Banco ↔ Sistema ↔ Template
                                                       │
                                                       ▼
                                  LR consolidada (em memória)
                                                       │
                                  ┌────────────────────┼────────────────┐
                                  ▼                    ▼                ▼
                              Dashboard           Modo Edição        Pendentes
                                  │                    │                │
                                  └────────────────────┼────────────────┘
                                                       ▼
                                      "Salvar no banco" → lr_history
                                                       │
                                                       ▼
                                Visível para toda a equipe; aparece no
                                Histórico, Relatórios e Dashboard Geral.
            

Estado e persistência local

  • localStorage: preferências de UI, regras de rateio custom (RegrasRateio), tema.
  • Supabase: tudo que é compartilhado entre usuários (LRs, papéis, acessos).
  • Sessão: token JWT é gerenciado pelo Supabase client e injetado nas server functions via attachSupabaseAuth.

3. Login & solicitação de acesso

Página /auth. Três modos:

  • Entrar — email + senha. Botão "olho" mostra/oculta a senha.
  • Solicitar acesso — usuário envia nome + email + justificativa. A solicitação cai emaccess_requests e fica visível ao admin.
  • Reset — link de recuperação por email.

Enquanto o admin não aprovar, o usuário consegue logar mas não tem permissão de escrita. Só quem tem papel user (ou superior) na tabela user_roles consegue salvar LRs.

4. Topbar (barra de controle)

  • Atlantis Group — logo, leva à home.
  • Rail de empresas — pílulas com pontinho:
    • verde = LR salva completa naquele mês
    • vermelho/amarelo = LR parcial (pausada)
    • cinza = nenhuma LR ainda
  • Seletor de mês — setas ‹ › ou clique no chip MM/AA para popover com lista completa.
  • + Criar LR — abre o hub de importação.
  • Seção: Geral — força o dashboard a agregar todas as empresas do mês.
  • ❓ Ajuda — abre esta página.
  • Tema (☀/☾) — alterna claro/escuro.

6. Página: Gerador de LR (/)

É o coração do sistema. Tem três views:

6.1 View "Criar LR"

Três cards de upload: Template, Sistema, Banco. Aceita .xlsx, .xls e .csv. Não aceita .numbers — exporte como CSV no Apple Numbers antes.

Quando os três arquivos estão carregados, "Gerar LR" fica ativo. A empresa é detectada automaticamente do template (pode sobrescrever em Multi-empresa, quando aplicável).

6.2 View "Workspace" — abas internas

  • Dashboard — KPIs (Receitas, Despesas, Saldo, Qtd), fluxo diário, saúde da LR (verificadas, não verificadas, pendentes, flags), top contas, atividade recente. No modo Geral, agrega todas as empresas.
  • LR Gerada — tabela completa. Filtros: Todas, Receitas, Despesas, Pendentes, Verificadas, Não verificadas, Flags. Busca textual global. Clique numa linha para editar no modal; ou ative Modo Edição para editar inline tipo Excel.
  • Pendentes — lançamentos do banco não casados; conferir manualmente ou ignorar.

6.3 Ações principais

  • + Adicionar linha manual — abre modal ou (no Modo Edição) insere linha vazia no fim.
  • Exportar CSV — arquivo no formato da contabilidade.
  • Salvar no banco — persiste em lr_history.
  • Pausar construção — marca como parcial (vermelho) para retomar depois.

7. Página: Nova LR (/nova-lr)

Formulário para criar uma linha avulsa fora de uma importação. Campos: emoji, data, empresa (com auto-preenchimento de código), conta, categoria, histórico, valor (receita ou despesa), OBS, etc.

Após salvar, abre confirmação "Enviar para a aba da empresa?". Se sim, a linha é anexada à LR da empresa/mês correspondente. Histórico recente fica visível com badge ✓ EMPRESA.

8. Página: Histórico (/historico-lr)

Lista todas as LRs salvas no banco — por qualquer usuário do grupo. Filtros por empresa, mês, autor, status (completa/parcial) e busca textual. Ações: abrir, reexportar CSV, apagar (somente autor).

9. Página: Relatórios (/relatorios)

Três abas:

  • Geral — visão agregada do mês (todas as empresas).
  • Por empresa — drill-down de uma empresa.
  • Comparativo — confronto entre empresas/meses (com seletor de empresa).

Cada relatório pode ser exportado em CSV. Os números vêm das LRs em lr_history (chaves RECEITA, DESPESA, CONTA, etc).

10. Página: Rateios (/rateios)

Gerencia os CSVs de classificação automática:

  • Fornecedores → fornecedor → conta/categoria/empresa.
  • Colaboradores → nome → conta de pessoal.

São privados por usuário (cada um mantém o próprio mapeamento). Atualize antes de gerar para que novos fornecedores não caiam em Pendentes.

11. Página: Regras de Rateio (/regras-rateio)

Regras customizadas com condições (regex/keyword sobre histórico, valor, conta), mapeamentos (código → valor) e saída com placeholders. Cada regra tem botão "Testar". Há também um botão Ajuda no header da página com modal detalhado.

Regras ficam em localStorage e são aplicadas durante a geração.

12. Página: Admin Usuários (/admin-usuarios)

Visível apenas para usuários com papel admin. Permite:

  • Ver e aprovar/rejeitar solicitações de acesso pendentes.
  • Listar usuários e alterar papéis (admin / user).
  • Desabilitar contas.

13. Modo Edição (planilha tipo Excel)

Botão ✏ Modo Edição na barra de ações da LR. Ativa o componente EditableLRTable:

  • Edição inline célula a célula (commit por blur/Enter).
  • Dropdowns para colunas MÊS, EMPRESA, CONTA, CATEGORIA com valores únicos extraídos da própria LR.
  • Filtros por coluna via dropdown (escolha múltipla por valor).
  • Drag-to-fill (alça de preenchimento) para copiar valor da célula para baixo/para cima.
  • Atalhos: Enter confirma, Esc cancela, Tab próxima célula.

Funciona tanto em LR recém-gerada quanto em LR já salva (verde) — basta selecionar empresa+mês e ativar o modo.

14. Pausar / Retomar LR

Durante a conferência você pode parar no meio:

  1. Clique em Pausar construção.
  2. A LR é gravada com status = 'partial'.
  3. Na topbar a empresa fica com pontinho vermelho indicando parcial.
  4. Para retomar: selecione a empresa+mês, abra a LR e continue. Ao concluir, clique em Salvar no banco para marcar como completa (verde).

15. Boas práticas

  • Revise Pendentes e Flags antes de salvar.
  • Mantenha uma LR por empresa/mês. Para regerar, apague a anterior no Histórico.
  • Atualize Rateios e Regras assim que aparecer um fornecedor novo.
  • Confira empresa + mês na topbar ao trocar de contexto.
  • Use Modo Edição para correções em massa; o modal para edições pontuais.

16. FAQ

Subi um arquivo e diz que está vazio

Quase sempre é .numbers ou XLSX exportado com encoding errado. Exporte como CSV UTF-8 e tente de novo.

A LR salva por outro usuário não aparece

Confirme empresa + mês na topbar; recarregue a página. Toda LR salva é visível para qualquer usuário autenticado.

Posso apagar LR de outra pessoa?

Não — apenas o autor original (ou um admin via banco) pode apagar.

O dashboard está vazio

Ou não há LR gerada/salva para a combinação selecionada, ou você está em Modo Geral sem dados naquele mês.

Como funciona a detecção de empresa?

O sistema lê o cabeçalho do template + valores no campo EMPRESA das linhas. Em caso de ambiguidade, use Multi-empresa para forçar.