// Wave 5b — Operacional A (4 telas): Calendário, Arquivos, Documentos, Knowledge // ============================================================= // 3. Calendário // ============================================================= const EVENTOS = [ { id: 1, titulo: 'Reunião com Padaria Pão Dourado', tipo: 'reuniao', data: 19, hora: '10:00', dur: 60, local: 'Google Meet', desc: 'Kickoff do módulo de NF-e · escopo e prazos.' }, { id: 2, titulo: 'Revisão do mockup · site v3', tipo: 'tarefa', data: 19, hora: '14:30', dur: 45, local: 'Interno', desc: 'Feedback do cliente Bighorse.' }, { id: 3, titulo: 'OS-0418 · Emergência chiller', tipo: 'os', data: 19, hora: '07:00', dur: 180, local: 'Grupo Três Marias', desc: 'Carlos Mendonça · prioridade crítica.' }, { id: 4, titulo: 'Ligar para Fernanda Costa', tipo: 'lembrete', data: 19, hora: '16:00', dur: 15, local: 'Telefone', desc: 'Retorno sobre proposta Pão Dourado.' }, { id: 5, titulo: 'Standup daily · equipe', tipo: 'reuniao', data: 20, hora: '09:30', dur: 15, local: 'Google Meet', desc: 'Padrão diário.' }, { id: 6, titulo: 'Entregar DRE fechado · março', tipo: 'tarefa', data: 20, hora: '17:00', dur: 60, local: 'Financeiro' }, { id: 7, titulo: 'Almoço com Carolina Mendes', tipo: 'reuniao', data: 21, hora: '12:00', dur: 90, local: 'Restaurante Xapuri' }, { id: 8, titulo: 'Renovar contrato hosting', tipo: 'lembrete', data: 22, hora: '10:00', dur: 10, local: '—' }, { id: 9, titulo: 'OS-0421 · Manutenção câmara fria', tipo: 'os', data: 22, hora: '09:00', dur: 120, local: 'Restaurante Xapuri' }, { id: 10, titulo: 'Review sprint 14', tipo: 'reuniao', data: 23, hora: '14:00', dur: 90, local: 'Sala Vermelha' }, { id: 11, titulo: 'Enviar proposta · Café Savassi', tipo: 'tarefa', data: 24, hora: '11:00', dur: 30, local: 'Comercial' }, ]; const tipoMeta = { reuniao: { l: 'Reunião', c: '#a78bfa', bg: 'rgba(139,92,246,.18)' }, tarefa: { l: 'Tarefa', c: '#60a5fa', bg: 'rgba(59,130,246,.18)' }, lembrete: { l: 'Lembrete', c: '#fcd34d', bg: 'rgba(245,158,11,.18)' }, os: { l: 'OS', c: '#34d399', bg: 'rgba(16,185,129,.18)' }, }; const PageCalendario = ({ onNavigate }) => { const [view, setView] = React.useState('semana'); const [selected, setSelected] = React.useState(null); return ( } >
{/* Sidebar */}

Abril · 2026

{['D', 'S', 'T', 'Q', 'Q', 'S', 'S'].map((d, i) =>
{d}
)} {Array.from({ length: 2 }).map((_, i) =>
)} {Array.from({ length: 30 }, (_, i) => i + 1).map(d => { const isToday = d === 19; const has = EVENTOS.some(e => e.data === d); return ( ); })}

Categorias

{Object.entries(tipoMeta).map(([k, m]) => ( ))}

Próximos

{EVENTOS.slice(0, 4).map(e => (
setSelected(e)} style={{ display: 'flex', gap: 10, padding: '8px 0', cursor: 'pointer', borderBottom: '1px solid var(--line-1)' }}>
{e.titulo}
{e.data}/04 · {e.hora}
))}
{/* Week view */}

Semana · 19–25 abril 2026

{EVENTOS.length} eventos · 3 reuniões hoje
{['mes', 'semana', 'dia'].map(v => ( ))}
{[19, 20, 21, 22, 23, 24, 25].map((d, i) => (
{['Dom', 'Seg', 'Ter', 'Qua', 'Qui', 'Sex', 'Sáb'][i]}
{d}
))} {[8, 9, 10, 11, 12, 13, 14, 15, 16, 17].map((h, hi) => (
{h}:00
{[19, 20, 21, 22, 23, 24, 25].map(d => { const evs = EVENTOS.filter(e => e.data === d && parseInt(e.hora) === h); return (
{evs.map(e => (
setSelected(e)} style={{ padding: '4px 7px', borderRadius: 5, fontSize: 10.5, cursor: 'pointer', background: tipoMeta[e.tipo].bg, color: tipoMeta[e.tipo].c, borderLeft: `2px solid ${tipoMeta[e.tipo].c}`, marginBottom: 2, lineHeight: 1.3, }}>
{e.titulo}
{e.hora} · {e.dur}min
))}
); })}
))}
{selected && ( <>
setSelected(null)} style={{ position: 'fixed', inset: 0, background: 'rgba(0,0,0,.5)', zIndex: 90 }}/>
{tipoMeta[selected.tipo].l}

{selected.titulo}

{[ { i: 'calendar', l: `${selected.data}/04/2026 · ${selected.hora}` }, { i: 'clock', l: `${selected.dur} minutos` }, { i: 'map-pin', l: selected.local }, ].map(r => (
{r.l}
))} {selected.desc && (
{selected.desc}
)}
)} ); }; // ============================================================= // 4. Arquivos — file explorer // ============================================================= const PASTAS = [ { n: 'Contratos', qtd: 42, cor: '#a78bfa' }, { n: 'Propostas comerciais', qtd: 128, cor: '#60a5fa' }, { n: 'Marketing · campanhas', qtd: 86, cor: '#f472b6' }, { n: 'Financeiro · 2026', qtd: 214, cor: '#34d399' }, { n: 'RH · documentos', qtd: 97, cor: '#fcd34d' }, { n: 'Projetos ativos', qtd: 163, cor: '#fb923c' }, ]; const ARQUIVOS = [ { n: 'Proposta-Xapuri-v3.pdf', tipo: 'pdf', sz: '2,4 MB', data: '16/04/2026', owner: 'Ana Silva' }, { n: 'Logo-automatiza-2026.svg', tipo: 'svg', sz: '48 KB', data: '15/04/2026', owner: 'Bruno Lopes' }, { n: 'Fotos-evento-lancamento.zip', tipo: 'zip', sz: '148 MB', data: '14/04/2026', owner: 'Carolina Mendes' }, { n: 'Apresentação-diretoria-Q2.pptx', tipo: 'pptx', sz: '8,1 MB', data: '14/04/2026', owner: 'Diego Ferreira' }, { n: 'Fluxo-caixa-abril.xlsx', tipo: 'xlsx', sz: '412 KB', data: '12/04/2026', owner: 'Fernanda Costa' }, { n: 'Hero-landing-v4.png', tipo: 'img', sz: '1,8 MB', data: '10/04/2026', owner: 'Ana Silva' }, { n: 'Contrato-Bighorse-2026.pdf', tipo: 'pdf', sz: '612 KB', data: '08/04/2026', owner: 'Eduardo Santos' }, { n: 'Manual-operacional.docx', tipo: 'doc', sz: '1,2 MB', data: '06/04/2026', owner: 'Ana Silva' }, ]; const PageArquivos = ({ onNavigate }) => { const [view, setView] = React.useState('grid'); const iconFor = (t) => ({ pdf: '#fca5a5', svg: '#c4b5fd', zip: '#fcd34d', pptx: '#fb923c', xlsx: '#86efac', img: '#f9a8d4', doc: '#93c5fd' }[t] || 'var(--text-3)'); return ( } > {/* Breadcrumbs */}
Meu drive Bighorse Comercial · 2026
{[['grid', 'grid'], ['lista', 'list']].map(([id, icon]) => ( ))}

Pastas

{PASTAS.map(p => (
{p.n}
{p.qtd} arquivos
))}

Arquivos

{view === 'grid' ? (
{ARQUIVOS.map(f => (
{f.tipo === 'img' ? (
) : ( {f.tipo} )}
{f.n}
{f.sz}{f.data}
))}
) : (
{ARQUIVOS.map(f => ( ))}
Nome Proprietário Modificado Tamanho
{f.tipo.slice(0, 3)} {f.n} {f.owner} {f.data} {f.sz}
)} {/* Upload dropzone */}
Arraste arquivos aqui ou clique para enviar
Até 2 GB por arquivo · PDF, imagens, planilhas, ZIP
); }; // ============================================================= // 5. Documentos — biblioteca versionada // ============================================================= const DOCS = [ { n: 'Contrato padrão · Cliente recorrente', cat: 'Contratos', ver: 'v4.2', autor: 'Jurídico', atu: '12/04/2026', status: 'publicado', leituras: 124 }, { n: 'Modelo de proposta comercial premium', cat: 'Propostas', ver: 'v2.8', autor: 'Comercial', atu: '10/04/2026', status: 'publicado', leituras: 342 }, { n: 'Política de privacidade · LGPD', cat: 'Jurídico', ver: 'v3.0', autor: 'DPO', atu: '08/04/2026', status: 'publicado', leituras: 88 }, { n: 'Manual de onboarding · novos clientes', cat: 'Operacional', ver: 'v1.5', autor: 'Sucesso do Cliente', atu: '05/04/2026', status: 'revisao', leituras: 47 }, { n: 'Contrato de prestação PJ · freelancers', cat: 'Contratos', ver: 'v2.1', autor: 'Jurídico', atu: '02/04/2026', status: 'publicado', leituras: 63 }, { n: 'NDA padrão · parceiros tecnológicos', cat: 'Jurídico', ver: 'v1.3', autor: 'Jurídico', atu: '28/03/2026', status: 'publicado', leituras: 19 }, { n: 'Processo de compras · aprovação > R$ 5k', cat: 'Operacional', ver: 'v2.0', autor: 'Financeiro', atu: '25/03/2026', status: 'publicado', leituras: 71 }, { n: 'Código de conduta interna', cat: 'RH', ver: 'v4.0', autor: 'RH', atu: '20/03/2026', status: 'publicado', leituras: 156 }, { n: 'Template apresentação institucional', cat: 'Marketing', ver: 'v5.1', autor: 'Marketing', atu: '15/03/2026', status: 'rascunho', leituras: 12 }, ]; const PageDocumentos = ({ onNavigate }) => { const [sel, setSel] = React.useState(DOCS[0]); const cats = ['Todos', 'Contratos', 'Jurídico', 'Operacional', 'RH', 'Propostas', 'Marketing']; const [cat, setCat] = React.useState('Todos'); const filtered = cat === 'Todos' ? DOCS : DOCS.filter(d => d.cat === cat); const statusColor = { publicado: '#86efac', revisao: '#fcd34d', rascunho: 'var(--text-3)' }; return ( } >
{cats.map(c => ( ))}
{filtered.map(d => (
setSel(d)} style={{ padding: '12px 14px', borderBottom: '1px solid var(--line-1)', cursor: 'pointer', background: sel?.n === d.n ? 'var(--accent-soft-10)' : 'transparent', borderLeft: sel?.n === d.n ? '3px solid var(--accent-1)' : '3px solid transparent', }}>
{d.n} {d.ver}
{d.cat} · {d.autor} ● {d.status}
))}
{/* Detalhe */} {sel && (
{sel.cat} Versão atual {sel.ver}

{sel.n}

Autor
{sel.autor}
Atualizado
{sel.atu}
Leituras
{sel.leituras}

Histórico de versões

{[ { v: sel.ver, d: sel.atu, a: sel.autor, desc: 'Atualização de cláusula 5ª · multa por atraso ajustada.', atual: true }, { v: 'v' + (parseFloat(sel.ver.slice(1)) - 0.1).toFixed(1), d: '02/04/2026', a: 'Jurídico', desc: 'Revisão ortográfica e anexos atualizados.' }, { v: 'v' + (parseFloat(sel.ver.slice(1)) - 0.2).toFixed(1), d: '15/03/2026', a: 'Jurídico', desc: 'Adicionada cláusula LGPD · tratamento de dados.' }, { v: 'v' + (parseFloat(sel.ver.slice(1)) - 1.0).toFixed(1), d: '08/02/2026', a: sel.autor, desc: 'Reformulação completa do modelo.' }, ].map((h, i) => (
{h.v}
{h.desc}
{h.a} · {h.d}
{h.atual && ATUAL}
))}

Controle de acesso

📖 Leitura: Todos os colaboradores (42)
✏️ Edição: Jurídico + Diretoria (6)
🔒 Aprovação: Apenas DPO
)}
); }; // ============================================================= // 6. Knowledge — wiki interno // ============================================================= const WIKI_TREE = [ { id: '1', t: 'Processos comerciais', children: [ { id: '1.1', t: 'Pipeline · etapas e SLAs' }, { id: '1.2', t: 'Proposta · template padrão' }, { id: '1.3', t: 'Régua de negociação · descontos' }, { id: '1.4', t: 'Fechamento e assinatura' }, ]}, { id: '2', t: 'Operações financeiras', children: [ { id: '2.1', t: 'Conciliação bancária · passo a passo' }, { id: '2.2', t: 'Faturamento · NF-e e NFS-e' }, { id: '2.3', t: 'Cobrança e régua de inadimplência' }, ]}, { id: '3', t: 'Pessoas & cultura', children: [ { id: '3.1', t: 'Onboarding · primeira semana' }, { id: '3.2', t: 'Política de home office' }, { id: '3.3', t: 'Avaliação de desempenho 9-box' }, { id: '3.4', t: 'Benefícios e reembolsos' }, ]}, { id: '4', t: 'Produto & engenharia', children: [ { id: '4.1', t: 'Arquitetura da plataforma' }, { id: '4.2', t: 'Fluxo de deploy' }, { id: '4.3', t: 'Guia de design tokens' }, ]}, ]; const PageKnowledge = ({ onNavigate }) => { const [sel, setSel] = React.useState({ id: '2.1', t: 'Conciliação bancária · passo a passo' }); return ( } >
{WIKI_TREE.map(g => (
{g.t}
{g.children.map(c => ( ))}
))}
BaseOperações financeiras{sel.t}

{sel.t}

Fernanda Costa Atualizado há 3 dias 214 leituras

A conciliação bancária é o processo de comparar os lançamentos contábeis com os extratos das contas bancárias da empresa. No Automatiza, o processo é semi-automático e deve ser executado diariamente pelo analista financeiro responsável.

Pré-requisitos

  • Integração OFX ativa com o banco · ver módulo Bancos
  • Perfil com permissão financeiro.conciliar
  • Plano de contas configurado (mínimo L1 e L2)

Passo a passo

  1. Acesse Financeiro → Conciliação
  2. Selecione a conta bancária e o período (recomendado: últimos 7 dias)
  3. Clique em Buscar OFX para carregar automaticamente os lançamentos
  4. Na fila "Sugestões da IA", revise os matches automáticos · cada match vem com score de confiança
  5. Para matches com confiança < 80%, revise manualmente arrastando o lançamento para o extrato correto
  6. Itens não reconciliados devem ser criados como novo lançamento ou marcados como "ignorar"
  7. Finalize clicando em Conciliar selecionados
💡 Dica: ative a regra "taxa bancária < R$ 50" para que o sistema concilie automaticamente sem revisão manual.

Solução de problemas

{[ ['OFX vazio', 'Token expirado', 'Reautenticar em Bancos → Integração'], ['Duplicidades', 'Import manual anterior', 'Filtrar e excluir os duplicados'], ['Saldo divergente', 'Lançamento fora do período', 'Verificar faturamento não conciliado'], ].map((r, i) => ( {r.map((c, j) => )} ))}
Erro Causa provável Ação
{c}
Este artigo foi útil?
); }; Object.assign(window, { EVENTOS, PASTAS, ARQUIVOS, DOCS, WIKI_TREE, PageCalendario, PageArquivos, PageDocumentos, PageKnowledge });