🔍 Gestão 360 — Relatório de QA

Build: a524951 | Data: 06/06/2026 | Agente: Claude Sonnet 4.6

Ambiente: http://localhost:3000 + produção sslip.io

🔴 P0: 1 Bloqueante 🟠 P1: 3 Críticos 🟡 P2: 4 Importantes 🟢 P3: 4 Cosméticos

🔴 P0 — Bloqueante

P0 Gestor: "Processos" no menu envia para a página do Júri gestor / layout.tsx:31

Reproduzir: Login gestor@teste.pt → clicar "Processos" no menu lateral

Observado: Redireciona para /juri — interface do Júri (página de outro role)

Esperado: Redireciona para /gestor — dashboard de processos do gestor

Causa confirmada em layout.tsx linha 31:
{ label: 'Processos', href: '/juri', ... }  → deve ser  href: '/gestor'

Impacto: O gestor fica perdido na interface do júri. Afeta também a produção (mesmo código).

Fix de 1 linha: Alterar /juri para /gestor em layout.tsx:31.

🟠 P1 — Críticos

P1 Item 21: Dashboard mostra "Score" sem "provisório (não auditado)" empresa / dashboard/page.tsx:310

Observado: Dashboard mostra label simples Score — 90%

Esperado: Score provisório (não auditado): 90%

Nota: O questionário submetido JÁ mostra corretamente "Score provisório (não auditado): 90%". Só o dashboard está errado.

Fix: Em dashboard/page.tsx linha 310, alterar "Score" para "Score provisório (não auditado)".

P1 Item 1: Grelha auditor sem cabeçalhos "DOCUMENTO / VALIDAÇÃO" auditor / auditor/processo/[id]/page.tsx

Observado: Layout card vertical por questão. Apenas "Resultado" e "Comentários" têm labels visíveis.

Esperado pelo cliente: Colunas explícitas: DOCUMENTO → VALIDAÇÃO (instrução) → RESULTADO → COMENTÁRIOS

Detalhe: "Resultado" ✅ (linha 1261), "Comentários" ✅. Mas "DOCUMENTO" e "VALIDAÇÃO" não têm labels visuais.

Fix: Adicionar cabeçalho "VALIDAÇÃO" antes da secção "Aspetos a auditar", e label "DOCUMENTO" ou código antes do texto da questão.

P1 Item 18 / P0 Original: Fluxo submissão→atribuição auditor — a confirmar gestor / gestor/processos/[id]/page.tsx:116

Contexto: Cliente reportou às 10:00 que a Empresa Demo não aparecia disponível para auditor. Commit a524951 diz "fix ESG workflow".

Código atual: Estado vai para 'submetido' na submissão ✅. Gestor vê "Atribuir auditor" quando estado === 'submetido' ✅.

⚠️ Não foi possível verificar end-to-end: Não há processos em estado 'submetido' na BD de teste. A Empresa Demo ESG foi submetida hoje e já está "Em auditoria" com Ana Auditora — o fix parece ter funcionado.

Ação: Submeter o BFO da Empresa Demo (está pronto em pending_docs) e confirmar que o gestor vê "Submetido" com opção de atribuir auditor.

🟡 P2 — Importantes

P2 Items 7 & 12: "Inverter para sim" e "Solicitar desbloqueio" — não verificáveis auditor / auditor/processo/[id]/page.tsx:1158, 1491

Ambos os botões existem no código com condições corretas, mas os processos de teste não têm as condições necessárias:

  • "Inverter para sim" (linha 1158): só visível para respostas Não com classificação não bloqueada. Todos os processos em auditoria ativa têm N/A.
  • "Solicitar desbloqueio" (linha 1491): só visível depois de scoreFinalCalculated && !isConcluida.

Recomendação: Verificar manualmente com um processo que tenha respostas "Não" em auditoria ativa.

P2 Júri: "Submeter decisão" desabilitado — comportamento a confirmar juri / juri/processo/[id]/page.tsx:498

O botão "Submeter decisão" estava desabilitado no teste automático. O código mostra que fica ativo após selecionar "Aprovar" ou "Rejeitar" no RadioGroup. Pode ser que o júri já tenha votado neste processo (mostra card diferente sem formulário).

Verificar: Abrir manualmente /juri/processo/f1970b56... com juri@teste.pt e confirmar se o formulário de decisão está visível.

P2 Items 19 & 20: Upload cross-questionário não verificado empresa / questionario/[pilarId]/page.tsx

O sistema de upload existe e funciona (empresa@teste.pt BFO está em pending_docs). Mas não foi possível confirmar:

  • Se o upload PDF realmente completa sem erro "Erro ao carregar ficheiro"
  • Se um documento anexado no ESG aparece automaticamente no BFO (cross-questionário)
P2 Items 28 & 29: Email de rejeição e geração do PDF do certificado — não testados email/route.ts, certificado/route.ts

Ambas as funcionalidades existem como rotas API. Sem caixa de email real foi impossível confirmar que o email de rejeição chega. O certificado PDF requer um processo em estado aprovado.

🟢 P3 — Cosméticos

P3 Acentos e capitalização em falta no BackOffice
FicheiroTexto atualCorreção
layout.tsx:106Gestao 360Gestão 360
layout.tsx:170Terminar sessaoTerminar sessão
gestor/processos/[id]/page.tsx:312Decisoes do juriDecisões do júri
juri/processo/[id]/page.tsx:439Ja registou a sua decisaoJá registou a sua decisão
juri/processo/[id]/page.tsx:505Submeter decisaoSubmeter decisão
auditor/processo/[id]/page.tsx:1303Reverter para SimReverter para sim
auditor/processo/[id]/page.tsx:1321Reverter para NãoReverter para não

Estado dos 29 Pedidos do Cliente

#PedidoEstadoNotas
1Colunas DOCUMENTO/VALIDAÇÃO/RESULTADO/COMENTÁRIOS❌ Em faltaLayout card vertical; sem cabeçalhos explícitos
2Aspetos a auditar formato compacto✅ OK
3Botão "Calcular Score Parcial Auditor" com nota (?)✅ OK
4Score Final: desabilitado até tudo classificado✅ OK
5"Submeter auditoria" só depois de Score Final + parecer✅ OK
6Resumo: contadores de questões✅ OK
7"Não": botão "Inverter para sim"⚠️ ParcialNo código, condicional — sem dados para verificar
8N/A: 3 botões Válida/Reverter sim/Reverter não⚠️ ParcialFuncionam; capitalização incorreta (Sim/Não)
94 filtros da grelha✅ OKTodos presentes
10Documentos: badges verde/aviso✅ OK
11Não válido sem doc → remove de "doc em falta"✅ OK
12"Solicitar desbloqueio" + justificação⚠️ ParcialNo código, condicional — sem dados para verificar
13Bloco "Reuniões de auditoria"✅ OK
14Menu: "Processos" e "Júris"⚠️ ParcialLabels corretos mas "Processos" aponta para /juri (P0)
15Criar Júri: tabela FIN/ESG/BFO + Editar✅ OK
16Tópicos CV sem overflow✅ OK
17Atribuir processo a júri com competência do pilar✅ OK
18Atribuição de auditor pelo gestor⚠️ A verificarCódigo correto; sem processo 'submetido' para testar
19Upload PDF sem erro⚠️ ParcialSistema existe; upload real não testado
20Docs já anexados não aparecem pendentes⚠️ A verificarNão verificado com dados reais
21Dashboard score: "Score provisório (não auditado)"❌ Em faltaSó mostra "Score"
22Botão "Imprimir grelha de respostas"✅ OKPresente na fase pending_docs
23ESG: perguntas duplicadas corrigidas✅ OKNenhum duplicado detetado
24SASB removido✅ OKSASB não encontrado
25Pagamento antes do certificado✅ OK
26Aprovação admin depois do júri✅ OK
271 pilar → 1 júri; 3 pilares → 3 júris✅ OK
28Mensagem negativa ao dashboard E email⚠️ A verificarSistema notify() existe; email não testado
29Certificado PDF gerado corretamente⚠️ A verificarRota existe; não gerado em teste
✅ OK: 17 | ⚠️ Parcial/A verificar: 8 | ❌ Em falta: 2 (items 1, 21)

📸 Screenshots

gestor after login
gestor after login
gestor nav processos click
gestor nav processos click
gestor processo em auditoria
gestor processo em auditoria
dashboard score label
dashboard score label
deep auditor processo empresa demo
deep auditor processo empresa demo
deep auditor esg greentech
deep auditor esg greentech
gestor juris table
gestor juris table
p0 bfo questionario
p0 bfo questionario
juri processo detail
juri processo detail

🎯 Ações Prioritárias

🔴 URGENTE — Fix de 1 linha (P0):
Em src/app/(backoffice)/layout.tsx:31, mudar href: '/juri' para href: '/gestor'
Resolve: gestor clica "Processos" → vai para a página correta
🟠 Próximas correções:
1. dashboard/page.tsx:310 — alterar "Score" para "Score provisório (não auditado)"
2. auditor/processo/[id]/page.tsx — adicionar label "VALIDAÇÃO" antes da secção Aspetos a auditar
3. Submeter BFO da Empresa Demo para verificar fluxo P0 end-to-end em produção
✅ Boa notícia:
17 dos 29 pedidos do cliente estão implementados e a funcionar. A plataforma está em bom estado geral. O fix a524951 parece ter resolvido o bug ESG de hoje de manhã.