Files

2.5 KiB

Why

Atualmente a categoria de um documento fiscal só é atribuída automaticamente durante a importação em lote (confirm_batch), com base em palavra-chave. Ao cadastrar um documento manualmente pela tela "Novo Documento" (/documents/new) não há como escolher a categoria, então o registro fica sempre com categoria_id nulo. Além disso, nem a Dashboard ("Últimos documentos") nem a listagem /documents exibem a categoria do lançamento, dificultando a conferência visual de como os documentos foram classificados.

What Changes

  • Adicionar campo select "Categoria" ao formulário de novo documento (/documents/new), populado a partir da tabela categoria ordenada por nome (ASC), permitindo escolher a categoria no cadastro manual.
  • Persistir o categoria_id selecionado ao criar (e editar, quando aplicável) o documento fiscal, passando a informação para create_fiscal/update_fiscal.
  • Incluir coluna "Categoria" na tabela "Últimos documentos" do Dashboard, posicionada logo após a coluna "Fornecedor".
  • Incluir coluna "Categoria" na tabela de listagem da rota /documents, posicionada logo após a coluna "Fornecedor".
  • Ajustar a consulta de listagem de documentos (list_fiscal ou variante) para trazer o nome da categoria via LEFT JOIN com a tabela categoria, já que a consulta atual não expõe esse dado.

Capabilities

New Capabilities

  • document-categorization: Cobre a seleção de categoria no formulário de novo documento e a persistência do vínculo documento-categoria.
  • document-listing-category-column: Cobre a exibição da coluna "Categoria" nas listagens de documentos (Dashboard "Últimos documentos" e rota /documents), logo após a coluna "Fornecedor".

Modified Capabilities

(nenhuma — não há specs existentes em openspec/specs/; os itens acima são tratados como novas capacidades)

Impact

  • Código afetado: app/routes/documents_routes.py (rota /documents/new e create_document), app/templates/document_form.html, app/database.py (create_fiscal, update_fiscal, list_fiscal, uso de list_categorias), app/routes/dashboard_routes.py, app/templates/dashboard.html, app/templates/documents_list.html.
  • Banco de dados: nenhuma alteração de schema — a coluna fiscal_documents.categoria_id já existe; apenas passa a ser preenchida também no fluxo manual.
  • Compatibilidade: campo "Categoria" no formulário é opcional (documentos sem categoria continuam válidos, exibindo "Não Encontrado" ou vazio); sem impacto em dados existentes.