7.2 KiB
Backlog de Features — Comparador de Notas
Features avaliadas em 03/03/2026. Organizadas por categoria e esforço estimado.
Alta Prioridade
F-01 — Exportar Resultado em CSV.
Problema: O único formato de exportação é PDF. Para processar os resultados em ferramentas externas (Excel, Power BI, sistemas ERP), o usuário precisa redigitar dados do PDF.
Solução: Botão "Exportar CSV" na tela de resultado, gerando dois arquivos (ou um com duas seções):
faltantes.csv:serie,documento_tipo,numeroduplicatas.csv:serie,documento_tipo,numero,ocorrencias
Escopo técnico:
use caseexportar_csv(resultado: &ResultadoAnalise, caminho: &Path)- Trait
CsvExporteranáloga àPdfGenerator(opcional, para testabilidade) - Botão na barra de ações da tela
resultado.rs - Dependência
csvjá está noCargo.toml
Esforço estimado: Médio (2–3h) Impacto: Alto — elimina retrabalho manual
Observações: Se não for muito custoso para implementar, pode ser uma boa ideia adicionar uma essa função.
F-02 — Validação de Tamanho de Arquivo (PRD RF01.3) (Implementado)
Status: Já implementado. Ambos csv_reader.rs e xlsx_reader.rs verificam o tamanho do arquivo
antes de qualquer leitura via constante LIMITE_BYTES = 50 MB, retornando ErroArquivo::TamanhoExcedido
se excedido — exibido como modal de erro pela UI.
Esforço estimado: Baixo (30min) — concluído Impacto: Médio — evita travamentos inesperados
Média Prioridade
F-03 — Preview de Colunas Antes da Análise (Isso já existe?)
Problema: Erros de mapeamento de colunas (índice errado, encoding incorreto) só são descobertos depois da importação, que pode falhar silenciosamente com "0 notas válidas".
Solução: Na tela de configuração de colunas, exibir uma tabela das primeiras 5 linhas mostrando como os campos serão interpretados, com highlight em células que falhariam o parse.
Escopo técnico:
- Função
pre_visualizar(caminho, layout, n_linhas: usize) -> Vec<LinhaPreview> LinhaPreview:{ numero: Result<u64>, serie: Result<String>, valor: Result<Decimal>, ... }- Widget de tabela em
configuracao_colunas.rs - Atualizar preview ao mudar qualquer campo de configuração (via
changed())
Esforço estimado: Alto (4–6h) Impacto: Alto — reduz drasticamente "por que não importou nada?"
Observações: Verificar se já existe no codigo, pois na tela de configuração do Layout ele exibe as 5 primeiras linhas do arquivo.
F-04 — Busca por Número na Tela de Resultado (Util)
Problema: Com listas longas, o usuário precisa navegar páginas para verificar se um número específico está faltante ou duplicado.
Solução: Campo de busca no topo da tela de resultado. Ao digitar 1234, destaca se a nota:
- está faltante (aparece na lista de faltantes)
- está duplicada (aparece na lista de duplicatas)
- está presente (está nas notas importadas)
- não encontrada (fora do intervalo conhecido)
Escopo técnico:
- Campo
filtro_numero: StringnoApp - Busca em
resultado.faltantes_por_serieeresultado.duplicadas_por_serie - Para "presente": busca em
app.notas_importadas(já mantido em memória) - Banner de resultado no topo da tela
Esforço estimado: Médio (2–3h) Impacto: Médio — uso diário em auditorias pontuais
F-05 — Recarregar Arquivo Sem Reconfigurar (Implementado)
Problema: Quando o usuário corrige o arquivo fonte e quer re-verificar, precisa navegar todo o fluxo novamente (selecionar arquivo → configurar colunas → analisar).
Solução: Botão "🔄 Reanalisar Arquivo" na tela de resultado que reimporta o mesmo caminho com o mesmo layout atual, sem nenhuma interação adicional.
Escopo técnico:
- Persistir
caminho_arquivo_atual: Option<PathBuf>noApp(já existe parcialmente comonome_arquivo) - Reaproveitar o fluxo de
executar_importacao()com os parâmetros atuais - Botão na barra de ações da tela
resultado.rs
Esforço estimado: Baixo (1h) Impacto: Médio — elimina atrito no ciclo corrigir → verificar
F-06 — Auto-detecção de Delimitador CSV (Util)
Problema: O usuário precisa saber antecipadamente qual delimitador o arquivo usa (,, ;, \t). Arquivos gerados por diferentes sistemas variam.
Solução: Ao selecionar o arquivo CSV, amostrar as primeiras 5 linhas e contar ocorrências de cada delimitador candidato. Sugerir o mais frequente como padrão, mantendo a ComboBox editável.
Escopo técnico:
- Função
detectar_delimitador(primeiras_linhas: &[&str]) -> char - Chamar na transição para
ConfigurandoColunasquandoTipoArquivo::Csv - Pré-selecionar na ComboBox sem impedir mudança manual
Esforço estimado: Médio (2h) Impacto: Baixo-Médio — reduz um passo de configuração na maioria dos casos
Baixa Prioridade
F-07 — Auto-detecção de Encoding CSV (Util)
Problema: Arquivos gerados por sistemas legados brasileiros frequentemente usam windows-1252, mas o padrão selecionado é utf-8. O usuário descobre o problema somente ao ver caracteres estranhos nos dados.
Solução: Tentar ler as primeiras linhas em utf-8; se houver erro de decodificação, sugerir automaticamente windows-1252 com aviso visual na tela de configuração.
Escopo técnico:
- Função
detectar_encoding(caminho: &Path) -> String - Usar
encoding_rs(já dependência) para tentar decode e verificarhad_errors - Aviso na tela de configuração: "Encoding detectado: windows-1252"
Esforço estimado: Médio (2h) Impacto: Baixo — problema raro, mas confuso quando ocorre
F-09 — Paginação Automática de Faltantes no PDF (Util)
Problema: PDFs com muitos faltantes (ex: 5.000 números) geram um único bloco de texto muito longo, difícil de ler e imprimir.
Solução: No pdf_generator.rs, ao adicionar a lista de faltantes, agrupar em intervalos contíguos (usando a função agrupar_contiguos já implementada) e formatar como 100–104 (5 notas). Reduz drasticamente o tamanho do PDF e melhora legibilidade.
Escopo técnico:
- Importar
agrupar_contiguosempdf_generator.rs - Substituir o
join(", ")atual pelo formato de intervalos - Sem novas dependências
Esforço estimado: Baixo (30min) Impacto: Baixo-Médio — melhora legibilidade de PDFs com muitos faltantes
Nota: Esta feature é especialmente fácil porque a lógica de agrupamento já existe — é só aplicar no PDF.
Resumo
| ID | Feature | Esforço | Impacto | Prioridade | Status |
|---|---|---|---|---|---|
| F-01 | Exportar resultado em CSV | Médio | Alto | Alta | |
| F-02 | Validação de tamanho de arquivo | Baixo | Médio | Alta | |
| F-03 | Preview de colunas antes da análise | Alto | Alto | Média | |
| F-04 | Busca por número no resultado | Médio | Médio | Média | |
| F-06 | Recarregar arquivo sem reconfigurar | Baixo | Médio | Média | |
| F-07 | Auto-detecção de delimitador CSV | Médio | Baixo-Médio | Média | |
| F-08 | Auto-detecção de encoding CSV | Médio | Baixo | Baixa | |
| F-09 | Agrupamento de faltantes no PDF | Baixo | Baixo-Médio | Baixa | ✅ Implementado |