Descrição do Projeto:
Autenticação
Login separado para funcionários/conferência (index.html) e administrador (admin.html). Sessão via localStorage. Redirecionamento por papel (role): admin - admin.html; employee/conference - index.html. Feedback de carregamento enquanto o Firebase inicializa.
Importação de clientes
Importação por planilha (.xlsx/.csv). Mapeamento de colunas: Nome, Responsável, Conferência, Referência de Contato, Telefone e CPF. Distribuição automática dos clientes aos responsáveis. Se o nome do responsável não corresponder a um usuário cadastrado, permitir vincular ou criar usuário. Resolver telefones inválidos via modal. Opção de sobrescrever clientes existentes ou pular.
Clientes (admin)
Tabela com Cliente, CPF, Responsável, Conferência, Grupo, Contato clicável, Etapas com barra de progresso, Status com select colorido e Ações. Filtros por nome/CPF com normalização de acentos, responsável, conferência, grupo e status. Busca corrigida: 'joao' encontra 'JOÃO'. Select de status com borda e fundo dinâmicos conforme a cor escolhida. CRUD completo. Multi-conferência: um cliente pode ter vários revisores. Trava de edição por cliente (lock/unlock). Atribuição/transferência de responsável com notificação ao funcionário.
Clientes (funcionário / conferência)
Listagem em tabela/lista, não em cards. Filtros por pills (todos/não iniciado/em andamento/concluído), status e busca por nome/CPF. Na aba Conferência, filtros de status e busca por nome/CPF. Clique em qualquer linha abre o modal de detalhe. O modal exibe informações, etapas clicáveis, observações editáveis, mensagens/pendências com anexos. Fecha somente ao clicar no botão de fechar. Envio de mensagens ao revisor de conferência.
Conferência
Aba exclusiva para usuários com role 'conference'. Lista das declarações que chegaram para revisão em tabela/lista. Filtro por status e busca por nome. Visualização de mensagens e etapas.
Contatos (telefone e e-mail)
Múltiplos telefones por cliente, cada um com nome/referência, número WhatsApp e indicação de contato principal. Múltiplos e-mails por cliente, cada um com nome/referência, endereço e indicação de e-mail principal. O contato principal aparece nas linhas e na tabela de clientes. O admin define o contato principal ao editar o cliente via radio buttons. Clicar no telefone abre WhatsApp Web; clicar no e-mail abre o cliente de e-mail. Há compatibilidade retroativa com e-mail simples legado.
Status de declaração
O admin cria status personalizados com nome e cor. Há color picker ou presets. 'OUTROS' sempre é o último e não pode ser removido. Quando o status for OUTROS, o admin pode inserir observação. Badges coloridos são gerados dinamicamente na tabela. O select de status recebe borda e fundo com a cor selecionada. Há filtro por status na listagem de clientes para admin, funcionário e conferência.
Banco de horas
Funcionários registram data, entrada, saída e descrição. Cálculo automático de horas trabalhadas. Edição e exclusão de registros. Filtro por mês. Total acumulado em destaque. O admin vê todos os funcionários ordenados pelo total de horas, com cards expansíveis por funcionário e registros ordenados por horas.
Gerenciar períodos
CRUD de períodos, como IRPF 2025. Cada período tem etapas próprias configuráveis. Editor de etapas com reordenação e remoção. Ao criar novo período, opção de copiar clientes e/ou etapas do período anterior. Funcionários podem ser marcados como inativos em um período específico. A exclusão de período remove corretamente e reseta o período ativo selecionado. Tabela com Nome, Ano, Clientes, Etapas, Funcionários Ativos e Ações.
Gerenciar usuários (admin)
CRUD de funcionários, revisores e administradores. Exibição da senha atual de cada usuário na tabela. Alteração de senha via modal de edição. Senha padrão: primeironome+123.
Dashboard
Funcionário: estatísticas dos próprios clientes, progresso por etapa, status das declarações e clientes recentes. Admin: visão geral do período com filtros por funcionário e conferência, barras de progresso por etapa, contagem por status e progresso por funcionário.
Notificações
Sistema em tempo real. Geração automática ao transferir clientes. Badge de não lidas na sidebar. Ações para marcar todas como lidas e limpar tudo.
Relatório semanal (admin) - novo
Página exclusiva do administrador. Seleção de período para gerar relatório. Tabela 'Controle por Operador' com #: Operador, Transmitidas, Entregues, Em Digitação, A Fazer, Total e Carga Horária, além de total acumulado e média por operador. Tabela 'Indicadores Acumulados' com % de Declarações Entregues e % de Declarações Transmitidas por funcionário e linha GERAL com percentuais totais. Listagem de clientes com status ENTREGUE ? declarações entregues ao cliente e aguardando transmissão à Receita Federal. Botão de impressão com janela limpa otimizada para papel.
Configurações
Modo escuro persistido via Firebase. Link para relatório customizável.
Navegação mobile
No mobile, o hamburger abre sidebar e, ao escolher uma aba, ela fecha e ocupa a tela.