Corrige autorizacao transaccional e valida modulos implementados
This commit is contained in:
@@ -0,0 +1,83 @@
|
||||
# Validação técnica do SGC — 28 de Outubro de 2026
|
||||
|
||||
Esta revisão cobre os módulos implementados e as pendências documentadas no
|
||||
repositório. Não equivale a validação operacional integral ou certificação de
|
||||
todos os requisitos do sistema. Valores e políticas reais continuam a pertencer
|
||||
a cada empresa; nenhum foi criado nesta revisão.
|
||||
|
||||
## Correcções verificadas
|
||||
|
||||
- Operações que verificavam o perfil antes de esperar pelo bloqueio da empresa
|
||||
passam a recarregar e bloquear o utilizador dentro da transacção. Abrange
|
||||
facturas, dados bancários, stock, recepções, requisições, adjudicação, emissão,
|
||||
validação técnica e dotação inicial. Mudança de perfil ou de empresa durante
|
||||
a espera não é autorizada pelo perfil antigo em memória.
|
||||
- Requisição volta a verificar departamento e centro de custo ao guardar e o
|
||||
departamento do solicitante ao submeter. Decisões departamentais usam o perfil
|
||||
actual; revisão técnica e aprovadores finais são bloqueados durante as
|
||||
verificações transaccionais.
|
||||
- Dotação pendente mostra **zero disponível e zero aprovado**, preservando o
|
||||
valor proposto e o histórico. O servidor já bloqueava a reserva; a interface
|
||||
deixou de apresentar verba proposta como disponível.
|
||||
- Teste da página de segurança com MFA desligado deixou de ser indevidamente
|
||||
ignorado. Textos dessa página e confirmação de alteração de palavra-passe
|
||||
traduzidos para português. Nenhuma palavra-passe real foi alterada.
|
||||
- Configuração de fontes passou a declarar desactivada a optimização opcional
|
||||
que já não era gerada por ausência de `fontaine`. Mantém Instrument Sans e
|
||||
elimina o aviso de dependência opcional sem instalar pacotes novos.
|
||||
|
||||
## Resultados
|
||||
|
||||
**407 testes aprovados, 2 ignorados, 2.964 asserções** na suite completa SQLite
|
||||
em memória. Os dois ignorados dependem de MFA activado, actualmente desligado;
|
||||
não são apresentados como funcionalidades validadas. PHPStan, Pint, TypeScript,
|
||||
compilação e formatação/lint frontend verificados no fecho.
|
||||
|
||||
**32 cenários concorrentes PostgreSQL aprovados**, todos em bases exclusivas
|
||||
de teste, eliminadas no final:
|
||||
|
||||
| Área | Cenários | Evidência |
|
||||
| ------------------------------ | -------: | ------------------------------------------------------ |
|
||||
| Recepções | 4 | [Relatório](recepcao-concorrencia-postgresql.json) |
|
||||
| Stock e peças | 7 | [Relatório](stock-concorrencia-postgresql.json) |
|
||||
| Reservas e compromissos | 5 | [Relatório](orcamento-concorrencia-postgresql.json) |
|
||||
| Facturas e consumo | 3 | [Relatório](facturas-concorrencia-postgresql.json) |
|
||||
| Dados bancários | 3 | [Relatório](bancos-concorrencia-postgresql.json) |
|
||||
| Pagamentos externos | 3 | [Relatório](pagamentos-concorrencia-postgresql.json) |
|
||||
| Reforços | 3 | [Relatório](reforcos-concorrencia-postgresql.json) |
|
||||
| Regras de investimento | 3 | [Relatório](investimento-concorrencia-postgresql.json) |
|
||||
| Perfil revogado durante espera | 1 | [Relatório](autorizacao-concorrencia-postgresql.json) |
|
||||
|
||||
O último ensaio bloqueia a empresa, observa duas ligações simultaneamente à
|
||||
espera e revoga os dois perfis de Armazém antes de libertar o bloqueio. Os dois
|
||||
pedidos pelo kernel HTTP retornam **403**; não criam recepções nem movimentos.
|
||||
Os restantes ensaios verificam saldos, duplicações e integridade conforme os
|
||||
respectivos relatórios. Não são testes de carga ou uma validação de todos os
|
||||
possíveis cruzamentos concorrentes do sistema.
|
||||
|
||||
Sem migrações, seeds, criação de contas, alteração de configuração de ambiente
|
||||
ou escritas de negócio na base real nesta revisão. Acesso HTTP pode actualizar
|
||||
sessões. Nenhuma autorização de compra ou transferência bancária foi emitida.
|
||||
|
||||
## O que permanece por tratar
|
||||
|
||||
| Pendência | Situação |
|
||||
| -------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| Revisão visual pública, autenticada e impressão | Bloqueada pelo acesso ao navegador; testes HTTP não a substituem. |
|
||||
| MFA obrigatório e ciclo completo de acessos | Não implementados/activados; dois testes condicionais continuam ignorados. |
|
||||
| Revisão/cancelamento de adjudicações e ordens | Fluxo e política próprios ainda ausentes. Operações incompatíveis continuam bloqueadas. |
|
||||
| Reversões, estornos, notas de crédito e devoluções | Funcionalidades ainda não implementadas; não se apagam lançamentos existentes. |
|
||||
| Regras empresariais | Escalões provisórios, regras fiscais, validade/levantamento de conflitos e excepções exigem decisão da empresa. |
|
||||
| Investimento agregado e fraccionamento | Apenas tecto por processo suportado; sem agregação/detecção automática. |
|
||||
| Outras etapas do roteiro | Multimoeda, reposição, tolerâncias/investigação de inventários, manutenção/activos e requisitos de subscrição/hosting continuam no roteiro. |
|
||||
| Controlos operacionais | Carga, permissões contra SQL administrativo, retenção e recuperação por empresa ainda exigem validação própria. |
|
||||
|
||||
Estas pendências não foram marcadas como concluídas por compilação ou testes
|
||||
funcionais. O próximo incremento de revisão/cancelamento deve definir e guardar
|
||||
uma política explícita por empresa, conservar o passado e exigir novas decisões
|
||||
para processos revistos; não pode autorizar por omissão a alteração de ordens
|
||||
emitidas ou a libertação de compromissos já consumidos.
|
||||
|
||||
Verificação HTTP local no fecho: **18 páginas públicas responderam 200** e
|
||||
**13 rotas protegidas responderam 302 sem sessão**. O navegador voltou a devolver
|
||||
`The browser access host is unavailable`; a revisão visual continua pendente.
|
||||
Reference in New Issue
Block a user