Files
SGF/docs/INDUSTRIAL_BUDGET_MANUAL_PROOF.md
T

52 lines
9.5 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.
# Prova manual guiada — orçamento versus realizado
**Actualização de encerramento:** em 28/10/2026, o utilizador aceitou expressamente a entrega com esta limitação de evidência e autorizou checkpoint local. Ver [aceitação](INDUSTRIAL_BUDGET_ACCEPTANCE.md). Menções anteriores a aceitação/checkpoint pendentes são históricas. Capturas continuam indisponíveis e automação bloqueada; nenhuma prova pendente é dada por realizada.
## Resultado do percurso manual confirmado pelo utilizador
Em 28/10/2026, após a preparação abaixo, o utilizador executou o percurso no navegador e enviou os textos dos painéis. Confirmou no final que, na consulta como Samira sintética, não aparecem os formulários de preparação de orçamento e de comparação. Não se atribui esta observação ao agente nem se declara recuperação da automação do Edge.
- Orçamento #9 v1 preservado como histórico sem decisão, sucedido por #10 v2 com os mesmos valores 900/600/300. Não foi determinada a causa da segunda submissão.
- Orçamento #10 v2 validado, com fundamento «Conferidos 900/600/300 MZN, 10 UN, mesmo lote e período». Consulta read-only à base de testes confirmou preparador #509 e validador distinto #510.
- Comparação #8 v1 referencia orçamento #10 v2 e realizado #23 v1: previsto/realizado 1 800/1 800, desvios +100/−100/0, total 0 e residual separado 300. O utilizador observou posteriormente o aviso de comparação histórica/desactualizada, mantendo os números anteriores.
- Resultado #24 v2 observado e validado apenas para 800 conhecidos, material pendente e total/custo unitário indisponíveis; residual 300, reconciliação parcial 1 100 = 800 + 300.
- Comparação #9 v2 referencia o mesmo orçamento #10 v2 e realizado #24 v2. Material e respectivo desvio indisponíveis; trabalho −100, indirectos 0; comparação incompleta, sem desvio total conclusivo. Pares conhecidos: 900 + (−100) = 800, sem tratar ausência como poupança. Residual 300 separado.
- Consulta read-only confirmou os IDs/versões do orçamento, decisão e referências das duas comparações. Não houve alteração de contas ou dados por essa consulta.
**Limitação da evidência:** os textos foram enviados pelo utilizador; não foram recebidas nem inspeccionadas capturas de ecrã. Os nomes de PNG sugeridos abaixo continuam a ser apenas destinos previstos. Percurso manual confirmado por relato e conferência parcial read-only, não prova visual automática. Aceitação e checkpoint permanecem pendentes; nenhuma concessão/migração em desenvolvimento ou activação real decorre desta confirmação. A instância de prova permanece ligada para eventual captura manual.
### Revisão técnica posterior solicitada pelo utilizador
Executado `scripts/sgf.ps1 php scripts/industrial-budget-manual-verify.php --env=browser-testing`, sem alterar registos ou credenciais. A conferência adicional confirmou as duas fotografias contra as fórmulas exactas, referências ID/versão, aprovações por identidade distinta, cadeia resultado/comparação v1→v2, mesmo orçamento, residual 300 e reconciliações completa/parcial, ausência de duplicação de origens de oficina/custo directo e distribuição efectiva dos direitos. Ver [resultado estruturado](proofs/industrial-budget-manual-results.json). Isto completa a reconciliação técnica das fotografias descritas pelo utilizador; não constitui inspecção de capturas ou nova prova de navegador.
Corrigido o resumo de provas para identificar os campos de navegador falhado/parado como a tentativa automática histórica, acrescentando separadamente o percurso manual posterior. Não se alteraram cálculo, resultados, decisões ou acessos. Sintaxe do novo verificador conferida e execução aprovada; a comparação normaliza apenas a ordem das chaves JSON para conferir conteúdos com tipos exactos, sem mudar os dados. Não se repetiram testes destrutivos ou build por estas alterações de verificação/documentação; preservada a fixture manual. Consulta de desenvolvimento reconfirmou `110000` e sete concessões ausentes e guarda real bloqueada. Aceitação e checkpoint continuam pendentes.
## Registo histórico da preparação
28/10/2026. Preparação verificada, percurso **ainda não executado pelo utilizador**. Sem aceitação ou checkpoint. Não repetir a automação bloqueada do Edge.
## Entrada e isolamento confirmados
Endereço: `http://127.0.0.1:8002`. Resposta HTTP de `/api/industrial-budget-proof/environment` confirmou `browser-testing`, `sgf_tempo_test`, `sgf_test_runner`, PostgreSQL 55432, sessão `file`/`sgf_browser_proof` e cache `file`. Ver [prova de ambiente](proofs/industrial-budget-manual-environment.json). Endpoint read-only, sem dados de negócio/credenciais, disponível apenas em `browser-testing` e sob as guardas existentes; 404 fora desse ambiente.
Retomada a fixture existente por `scripts/browser-proof.ps1 start -Port 8002 -ResumeIndustrialBudget`. Sem reset, migração ou concessões; lote #20, realizado #23 v1 validado, nenhuma proposta/comparação no início. O preparador não tem validação de orçamento; a validadora não tem preparação de orçamento/comparação. IDs descrevem esta execução, não constantes do módulo.
Contas sintéticas: `gestor@example.test` representa Osmane; `consulta@example.test` representa Samira. Palavras-passe distintas renovadas apenas nestas contas da base de testes porque o manifesto anterior fora removido ao parar a prova. Instruções de entrada em `C:\laragon\data\sgf-tempo\secrets\industrial-budget-manual-entry.txt`, com ACL apenas do utilizador local e SYSTEM, fora do repositório. Abrir localmente; não copiar palavras-passe para chat, capturas ou relatório. Não guardar no navegador.
## Percurso a executar no navegador pelo utilizador
1. Entrar como `gestor@example.test`, seleccionar **Empresa Horizonte — Demonstração / Unidade Central — Demonstração**, abrir **Orçamento versus realizado**, lote #20. Confirmar que existe preparação e não validação do orçamento.
2. Preparar material **900**, trabalho **600**, indirectos **300**, com fundamento «Hipótese sintética retrospectiva 900/600/300, 10 UN, mesmo lote/período, sem causas presumidas». Submeter orçamento e anotar ID/versão. Não criar outra proposta por repetir o clique.
3. Sair da aplicação. Entrar como `consulta@example.test` no mesmo contexto. Confirmar ausência de preparação de orçamento/comparação e presença da decisão. Validar a versão exacta submetida, com fundamento explícito. Anotar ID/versão e guardar captura sem campos de entrada de credenciais.
4. Sair e entrar como preparador. Seleccionar explicitamente o orçamento aprovado e o **realizado #23 v1**, comparar. Confirmar previsto/realizado **1 800/1 800 MZN**, desvios **+100/−100/0**, total **0**, reconciliação **1 800 + 0 = 1 800**, residual separado **300 por imputar**, origens **2 100 = 1 800 + 300**. Guardar captura da comparação.
5. Para a variante, no menu **Custos industriais de teste**, mesmo lote #20, usar **Seleccionar versões para cálculo**: escolher explicitamente as versões validadas de material, trabalho, conjunto, máquina, produção boa, taxa de trabalho e critério; manter **taxa material ausente**. Calcular a sucessora do resultado #23 v1. Não alterar origens, taxas, produção, critério ou orçamento. Anotar novo ID/versão.
6. Sair; entrar como validadora. No menu industrial, validar apenas essa versão incompleta, com fundamento «Só 800 MZN conhecidos; material pendente, total e custo unitário indisponíveis». Confirmar **800 conhecidos**, total/unitário indisponíveis e residual 300 separado; guardar captura.
7. Sair; entrar como preparador. Em **Orçamento versus realizado**, actualizar explicitamente, seleccionar o mesmo orçamento aprovado e o novo realizado validado incompleto, criar a comparação sucessora. Confirmar material/desvio indisponíveis, trabalho −100, indirectos 0, **sem desvio total conclusivo** ou percentagem global, realizado conhecido **800** e residual **300** separado. A comparação anterior permanece histórica/desactualizada. Guardar captura.
8. Sair; entrar como validadora. Consultar as duas comparações e confirmar que não recebe formulário para criar/editar orçamento ou preparar comparação. Guardar captura dessa separação de acessos.
Capturas sugeridas em `docs/proofs/industrial-budget-manual-approval.png`, `industrial-budget-manual-full.png`, `industrial-budget-manual-partial-result.png`, `industrial-budget-manual-partial-comparison.png` e `industrial-budget-manual-reader.png`. São nomes de destino, **não ficheiros já produzidos**. Capturar apenas os painéis de negócio, sem palavras-passe, ficheiro de entrada ou outras aplicações. Anotar os IDs/versões, o que foi observado e qualquer divergência; não declarar êxito antes da conferência. Se houver erro, conservar a mensagem e não tentar corrigir montantes ou substituir a referência aprovada para o contornar.
## Estado e validação desta preparação
Sintaxe PHP do preparador e de `routes/web.php` aprovada; arranque PowerShell e diagnóstico HTTP efectivos aprovados. Não se alterou cálculo ou interface, nem se repetiu a bateria de 169 testes já aprovada. Preparação manual não comprova login, submissão, decisão ou comparação pela interface. A instância fica ligada para o percurso; não executar testes destrutivos enquanto estiver activa. Após a prova, parar apenas a instância SGF com `scripts/browser-proof.ps1 stop`. Aceitação, eventual encerramento e checkpoint permanecem posteriores à prova.