Files

5.9 KiB

ADDED Requirements

Requirement: Persistência de Competência (Mês/Ano)

O sistema SHALL persistir a competência de um documento fiscal como dois campos inteiros, mes (1-12) e ano (ex. 2026), em vez de uma data completa de compra. Em fiscal_documents, mes e ano SHALL ser obrigatórios (não nulos). Em detected_documents (staging), mes e ano SHALL permanecer opcionais enquanto o documento não tiver sido revisado/confirmado.

Scenario: Documento confirmado exige competência

  • WHEN um documento em staging é promovido para fiscal_documents via confirmação de lote
  • THEN o registro criado possui mes e ano preenchidos com valores válidos (mes entre 1 e 12, ano numérico)

Scenario: Documento em staging pode estar sem competência

  • WHEN um documento acabou de ser detectado por OCR/IA e ainda não foi revisado
  • THEN mes e/ou ano podem estar nulos em detected_documents até que o usuário revise e preencha a competência

Requirement: Extração Não Persiste Mais Data Completa

O sistema SHALL deixar de persistir o dia da compra em qualquer tabela. A extração via IA ou OCR pode continuar identificando uma data completa no texto/imagem do documento, mas o dia SHALL ser descartado antes da persistência, mantendo-se apenas mês e ano.

Scenario: Data completa detectada no documento

  • WHEN a extração (IA ou OCR) identifica uma data completa (dia/mês/ano) no documento
  • THEN o sistema armazena apenas o mês e o ano correspondentes, descartando o dia

Requirement: Confirmação Obrigatória de Competência Antes do Envio

Na tela de revisão pós-upload, o sistema SHALL exigir que o usuário confirme explicitamente a Competência (Mês/Ano) de cada documento, através de dois campos de seleção — Mês (Jan a Dez) e Ano (2026 a 2030) — antes de permitir a confirmação do lote.

Scenario: Competência pré-selecionada a partir da extração

  • WHEN a extração identificou um mês/ano válido para o documento
  • THEN os seletores de Mês e Ano na tela de revisão vêm pré-selecionados com esses valores, permitindo correção manual pelo usuário

Scenario: Competência ausente bloqueia confirmação do lote

  • WHEN um ou mais documentos do lote não têm Mês e Ano selecionados
  • THEN o sistema não permite confirmar o lote até que a competência de todos os documentos pendentes seja preenchida

Requirement: Seleção de Competência no Cadastro Manual

O formulário manual de criação/edição de documento fiscal (document_form.html) SHALL substituir o campo de data por dois seletores — Mês (Jan a Dez) e Ano (2026 a 2030) — para definir a competência do documento.

Scenario: Criação manual de documento

  • WHEN o usuário cria um novo documento fiscal manualmente
  • THEN o formulário exige a seleção de Mês e Ano em vez de uma data completa

Scenario: Edição de documento existente

  • WHEN o usuário edita um documento fiscal existente
  • THEN os seletores de Mês e Ano vêm pré-preenchidos com a competência atual do documento, podendo ser alterados

Requirement: Exibição de Competência no Dashboard e Listagens

O Dashboard e a listagem de documentos (/documents) SHALL exibir a competência de cada documento no formato "Mês abreviado/Ano com 2 dígitos" (ex. "Jun/26", "Jul/26") no lugar da antiga coluna "Data".

Scenario: Tabela "Últimos documentos" no Dashboard

  • WHEN o usuário visualiza o Dashboard
  • THEN cada linha da tabela "Últimos documentos" exibe a competência (mês/ano) do documento, em vez da data completa

Scenario: Coluna na listagem de documentos

  • WHEN o usuário visualiza a listagem /documents
  • THEN a coluna antes chamada "Data" exibe a competência (mês/ano) de cada documento, e continua ordenável

Requirement: Filtro por Competência na Listagem de Documentos

A listagem /documents SHALL permitir filtrar documentos por intervalo de competência (Mês/Ano inicial e Mês/Ano final), substituindo o filtro anterior por intervalo de datas.

Scenario: Filtro por intervalo de competência

  • WHEN o usuário seleciona uma competência inicial (ex. Jan/2026) e uma competência final (ex. Jun/2026) nos filtros da listagem
  • THEN apenas documentos cuja competência esteja dentro desse intervalo (inclusive) são exibidos

Scenario: Ordenação por competência

  • WHEN o usuário ordena a listagem pela coluna de competência
  • THEN os documentos são ordenados por ano e mês (crescente ou decrescente conforme selecionado)

Requirement: Agregação Mensal do Dashboard por Competência Nativa

O gráfico "Gastos por mês" do Dashboard SHALL agrupar os totais diretamente pelas colunas ano/mes de fiscal_documents, em vez de derivar o mês a partir de uma string de data.

Scenario: Totais mensais agrupados por competência

  • WHEN o Dashboard calcula os totais mensais para exibição
  • THEN o agrupamento é feito pelas colunas ano e mes, e o rótulo exibido (ex. "Jun/26") é formatado a partir desses valores nativos

Requirement: Migração de Dados Existentes para Competência

Ao atualizar para esta mudança, o sistema SHALL migrar automaticamente todos os registros existentes de fiscal_documents e detected_documents, preenchendo mes e ano a partir da data de compra anteriormente armazenada, antes de remover o campo de data.

Scenario: Migração automática na inicialização

  • WHEN a aplicação inicializa contra um banco de dados que ainda contém o campo de data completa
  • THEN o sistema preenche mes e ano de cada registro a partir da data existente e remove o campo de data, sem exigir intervenção manual do usuário

Scenario: Migração já aplicada não é repetida

  • WHEN a aplicação inicializa contra um banco de dados que já foi migrado (campo de data já removido)
  • THEN o sistema não tenta migrar novamente e opera normalmente com mes/ano