Files
compras/docs/menus-benchmark-20261029.md
T
nala 413c201d97
tests / ci (push) Canceled after 0s
commit5
2026-10-29 22:03:09 +02:00

49 lines
5.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Menus de Compras — primeira aplicação do benchmark
29/10/2026. Pedido do proprietário: renovar os menus antes de retomar o trabalho funcional pendente. Referência fornecida: `referencias/benchmark-menus-20261029.txt`. Este incremento aplica a organização da navegação; não declara implementado todo o benchmark.
## Entregue
A aplicação autenticada usa agora um menu lateral por tarefas e uma barra superior com pesquisa do menu, atalho de nova requisição e conta. As secções podem ser expandidas, a área actual abre automaticamente e a ligação corrente fica destacada. Pesquisa sem distinção de acentos/maiúsculas, limpeza e mensagem de ausência de resultados. Não é uma pesquisa global de documentos.
| Secção | Percursos existentes reunidos |
| --- | --- |
| Painel inicial | Visão geral e indicadores existentes |
| Requisições | Nova, minhas, meus rascunhos, todas as autorizadas e planeamento |
| Aprovações | Próxima decisão elegível para o utilizador e histórico das suas decisões de requisições |
| Consultas e adjudicações | Cotações/comparação, adjudicações/ordens e revisão/cancelamento existente |
| Fornecedores | Cadastro e documentos |
| Recepções e armazém | Recepções/divergências, artigos/stock, saídas/inventários, equipamentos/peças |
| Finanças | Facturas, obrigações autorizadas, pagamentos externos, orçamentos/reforços e investimento |
| Administração e controlo | Empresa/equipa/centros, políticas de admissão/recomendação e conflitos |
O layout real é `SgcShell`, usado por `AppLayout`; o componente antigo `AppSidebar` não é a navegação activa. A renovação foi feita no layout efectivamente utilizado. As consultas públicas mantêm o seu layout próprio e as ligações anteriores. O núcleo comum de obrigações continua com o seu ecrã próprio e regresso às facturas; a sua ligação usa carregamento completo para não receber uma página HTML como modal Inertia.
## Listas ligadas ao servidor
`/requisicoes?view=mine` limita ao autor da sessão. `view=approvals` reutiliza `canDecide`, incluindo empresa, departamento, próxima etapa, autor distinto, decisões anteriores e conflitos. `view=decided` filtra decisões efectivamente registadas pelo utilizador. Todos os conjuntos partem da consulta autorizada existente. Filtros de estado/referência e paginação mantêm o conjunto escolhido. `status=draft&view=mine` abre os rascunhos pessoais; não altera as regras actuais para guardar rascunhos.
Menu filtrado pelos perfis existentes; obrigações só aparece quando o servidor confirma consulta. Não foram criadas contas ou concessões, alterados limites, regras fiscais, processos de aprovação ou dados de negócio. Não há migração nova neste incremento.
## Verificação
- 44 testes aprovados, 539 asserções: requisições, vistas pessoais, elegibilidade, isolamento entre empresas, decisões, entrada pública e demonstrações.
- Build, TypeScript, lint do âmbito, Pint e PHPStan do controlador aprovados; `git diff --check` sem erros.
- Navegador local: inspecção visual a 1280 × 900 e 390 × 844; menu, expansão, pesquisa «obrigacoes» sem acentos, ausência/limpeza de resultados, destaque único da ligação visível, vistas de rascunhos/aprovações e navegação para obrigações/regresso às facturas. Sem deslocamento horizontal nos modos verificados. Dimensão temporária reposta no final.
- Drawer móvel com foco contido e botão de fecho; ligações fecham o drawer. Sem operações de negócio durante a prova visual.
- Capturas em `proofs/screenshots/menu-desktop.png` e `menu-mobile.png`. Esta é verificação técnica visual, não aceitação atribuída ao proprietário.
## Trabalho preservado para continuação
### Conferência das ligações após renovação
`scripts/menu-links-check.mjs` verifica a própria definição do menu contra a instalação local: **94 entradas somadas nos seis perfis**, páginas de conta/aparência, recusas no servidor para empresa/finanças sem direito, vistas pessoais, ordenação dos parâmetros e opção activa. No processo de exemplo, conferidas 12 ligações internas, incluindo requisição, orçamento, cotações, adjudicação, ordem, recepção, facturas, pagamentos, relatório, admissão e recomendação. Factura → obrigação → facturas e igualdade do histórico antes/depois também aprovadas. Evidência em `proofs/menu-links.json`; sem comandos de negócio.
Encontrados e corrigidos dois destaques de navegação: `/requisicoes/{id}/relatorio` pertence a cotações/comparação e `/requisicoes/{id}/adjudicacao` pertence a adjudicações/ordens. Antes abriam a página correcta, mas o menu destacava requisições. Os casos têm agora asserções de regressão na conferência. Build actualizado aprovado.
Esta conferência é HTTP e de correspondência das rotas do menu. A nova inspecção visual não pôde ser repetida porque o controlo do navegador devolveu `browser.user is unavailable`, incluindo ao recuperar o separador existente; não se apresenta a prova visual do incremento anterior como nova verificação. As capturas anteriores permanecem referências da entrega inicial.
Retomar o transporte do histórico de pagamentos na integração factura → obrigação, preservando principal, confirmações/pendências e responsabilidade única pelo saldo. A aplicação do esquema e a activação local anteriores ficam preservadas.
O formulário proposto no benchmark continua a ser evolução funcional própria: guardar dados incompletos, revisão antes de submeter, aviso de alterações não guardadas, anexos e campos/validações adicionais. Contratos/acordos, catálogo unificado, multimoeda, pesquisa global e novos relatórios ainda exigem implementação. Os menus desta entrega conduzem a capacidades existentes; não representam essas capacidades futuras como concluídas.