5.8 KiB
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 --checksem 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.pngemenu-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.