Regista aceitacao tecnica da consolidacao sintetica de fornecedores
This commit is contained in:
@@ -138,4 +138,6 @@ Próximo passo: a equipa testa as duas interfaces e relata função, origem/capt
|
||||
|
||||
## Retoma da interface — 30/10/2026
|
||||
|
||||
Retoma automática posterior: [resultados consolidados SGF/Compras](SUPPLIER_SETTLEMENT_CONSOLIDATION_20261030.md). Verificações adicionais aprovadas sem alterar motor, permissões existentes ou dados persistentes; revisão visual separada e pendente.
|
||||
|
||||
A página de obrigações passou a mostrar afectações novas e saldo por liquidar da posição canónica, preservando o principal. Percurso HTTP/HTML repetido em Compras e SGF: 11 600 MZN → pagamento confirmado sem abatimento → afectação confirmada de 4 000 → saldo 7 600; vencimento/dias nulos. Provas anteriores preservadas. Resultados, correcções de navegação e bloqueio visual no [relatório de pagamentos](SUPPLIER_SETTLEMENT_DELIVERY.md), secção Consolidação do percurso. Sem habilitação pública, mudança de permissões ou encerramento presumido.
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
# Consolidação automática — SGF e Compras, 30/10/2026
|
||||
|
||||
Conferidos primeiro SUPPLIER_SETTLEMENT_DELIVERY.md, SUPPLIER_PAYABLE_DELIVERY.md e as respectivas provas. A sequência HTTP/HTML já estava aprovada nas duas composições. Concorrência, isolamento, revogação e recuperação têm provas existentes, reutilizadas sem repetir a bateria. O SHA-256 de SupplierSettlements.php continua igual ao da prova original: `156bd40f3080de66a73c0befd975990e9d7010c2a232a86d751d4db3af4fae93`.
|
||||
|
||||
## Cobertura completada
|
||||
|
||||
Acrescentadas asserções em `scripts/settlements-interface-check.mjs`: dívida inalterada enquanto o pagamento é proposto; repetição da confirmação com nova chave recupera a mesma decisão; actor de confirmação diferente do preparador tanto no pagamento como na afectação; exactamente quatro eventos, um por etapa, sem eventos adicionais na repetição; IDs do histórico preservados após sair e voltar a entrar.
|
||||
|
||||
Estas verificações precisaram de uma nova sequência de preparação em bases descartáveis. Nenhum direito foi modificado nas instalações existentes: o instalador de fixture apenas preparou os acessos sintéticos das bases novas de prova. Nenhum comando financeiro foi executado nas demonstrações persistentes.
|
||||
|
||||
| Resultado HTTP automático | Compras autónomo | SGF |
|
||||
| --- | --- | --- |
|
||||
| Principal reconhecido | 11 600 MZN | 11 600 MZN |
|
||||
| Pagamento de 4 000 proposto e depois confirmado | Dívida mantém 11 600 MZN | Dívida mantém 11 600 MZN |
|
||||
| Afectação proposta, ainda não confirmada | Dívida mantém 11 600 MZN | Dívida mantém 11 600 MZN |
|
||||
| Afectação de 4 000 confirmada por outra identidade | Saldo 7 600 MZN | Saldo 7 600 MZN |
|
||||
| Vencimento / dias de atraso | null / null; indeterminado | null / null; indeterminado |
|
||||
| Repetição e reentrada | Um pagamento, uma afectação, quatro eventos | Um pagamento, uma afectação, quatro eventos |
|
||||
|
||||
Evidência: [nova prova](proofs/supplier-settlements-consolidation-20261030.json). Preservadas as provas supplier-settlements.json e supplier-settlements-interface-20261030.json.
|
||||
|
||||
Executados `settlements-interface-run.py`, sintaxe Node do verificador, regressão de navegação/página inicial (`home-navigation-check.mjs`) e `git diff --check`, todos aprovados. O runner terminou e removeu os seus processos, bases e roles. Nenhum novo defeito funcional foi encontrado; só o verificador e documentação foram alterados. Builds e regressões financeiras anteriores são reutilizados: não houve alteração de código de aplicação, motor, adaptadores ou dependências nesta retoma.
|
||||
|
||||
## Limitações e encerramento
|
||||
|
||||
**Revisão visual pendente**, sem tentativa de navegador nesta retoma. O diagnóstico anterior mais recente substitui o antigo bloqueio de pipe: Firefox interrompido com `browser URL policy enforcement is not yet supported for the current Windows browser`. Não se contornou o bloqueio. HTTP/HTML e VM não comprovam disposição, legibilidade, foco ou utilização por cliques.
|
||||
|
||||
MFA continua com dois testes ignorados já documentados: `users with two factor enabled are redirected to two factor challenge` e `security page is displayed`. São cobertura de autenticação pendente, não prova do efeito monetário.
|
||||
|
||||
## Aceitação técnica e checkpoint local — 30/10/2026
|
||||
|
||||
O responsável aceitou expressamente esta consolidação e autorizou o checkpoint exclusivamente local, preservando alterações alheias e excluindo credenciais e dados privados. Fica aceite o resultado técnico nas duas composições; a revisão visual continua pendente e não é declarada realizada ou aceite. Os dois testes MFA permanecem pendentes nos termos acima.
|
||||
|
||||
O checkpoint inclui apenas o verificador, a prova sintética e a documentação desta consolidação. Não autoriza utilização real, publicação ou habilitação do percurso público. Não houve alteração de permissões existentes, operações bancárias, correcções de afectações ou novos módulos. A página inicial mantém-se limpa. Mantêm-se os restantes limites do relatório de entrega, incluindo históricos importados e ausência de reconciliação/contabilidade/stock/orçamento adicional.
|
||||
@@ -4,6 +4,8 @@ Implementado o incremento seguinte às obrigações, nas duas composições, com
|
||||
|
||||
## Responsabilidade e código
|
||||
|
||||
Actualização de 30/10/2026: [consolidação automática sem navegador](SUPPLIER_SETTLEMENT_CONSOLIDATION_20261030.md). Complementa as provas abaixo, sem as substituir; cobertura adicional de repetição da confirmação, identidade distinta e eventos únicos aprovada nas duas composições. Revisão visual continua pendente.
|
||||
|
||||
O código comum reside em `packages/payables/src/SupplierSettlements.php`, `SettlementSchema.php`, `SettlementHttp.php` e `ui/settlements.php`. Carregamento e apresentação em `bootstrap.php` e `src/Workspace.php`. `src/Payables.php` conserva a responsabilidade única pelo saldo: principal menos histórico confirmado existente e afectações novas confirmadas. Não se escrevem pagamentos externos legados para representar novamente o mesmo facto.
|
||||
|
||||
Os adaptadores são `app/Modules/Purchasing/SupplierPaymentsController.php` no SGF e `app/Http/Controllers/SupplierPaymentsController.php` em Compras, apoiados nos respectivos `SupplierPayables.php`. Contexto, pessoa, organização e direitos são revalidados no servidor pelos adaptadores existentes; o motor recebe contexto explícito. Rotas em `routes/web.php` de cada aplicação. A página anterior de obrigações apresenta a ligação quando disponível. No SGF, `resources/js/WorkspaceNavigation.jsx` e `app.jsx` incluem a entrada; nenhuma concessão real foi adicionada.
|
||||
|
||||
@@ -0,0 +1,93 @@
|
||||
{
|
||||
"checked_at": "2026-10-30T21:28:42.382Z",
|
||||
"core_unchanged": true,
|
||||
"core_sha256": "156bd40f3080de66a73c0befd975990e9d7010c2a232a86d751d4db3af4fae93",
|
||||
"hosts": [
|
||||
{
|
||||
"host": "compras",
|
||||
"passed": true,
|
||||
"kind": "HTTP pages, form availability, submitted commands and JavaScript syntax; not browser execution",
|
||||
"stages": [
|
||||
{
|
||||
"stage": "recognised",
|
||||
"debt_minor": 1160000
|
||||
},
|
||||
{
|
||||
"stage": "payment_confirmed_before_allocation",
|
||||
"debt_minor": 1160000,
|
||||
"unallocated_minor": 400000
|
||||
},
|
||||
{
|
||||
"stage": "allocation_confirmed",
|
||||
"debt_minor": 760000,
|
||||
"unallocated_minor": 0
|
||||
}
|
||||
],
|
||||
"principal_minor": 1160000,
|
||||
"due_on": null,
|
||||
"days_overdue": null,
|
||||
"payments": 1,
|
||||
"allocations": 1,
|
||||
"repeat_recovered": true,
|
||||
"payment_confirmation_repeat_recovered": true,
|
||||
"event_counts": {
|
||||
"supplier_payment.proposed": 1,
|
||||
"supplier_payment.confirmed": 1,
|
||||
"supplier_allocation.proposed": 1,
|
||||
"supplier_allocation.confirmed": 1
|
||||
},
|
||||
"distinct_validation_actors": true,
|
||||
"history_after_reentry": true,
|
||||
"canonical_balance_on_both_pages": true,
|
||||
"role_destination_retained": true,
|
||||
"external_redirect_refused": true,
|
||||
"read_only_without_forms": true,
|
||||
"visual_review": false
|
||||
},
|
||||
{
|
||||
"host": "sgf",
|
||||
"passed": true,
|
||||
"kind": "HTTP pages, form availability, submitted commands and JavaScript syntax; not browser execution",
|
||||
"stages": [
|
||||
{
|
||||
"stage": "recognised",
|
||||
"debt_minor": 1160000
|
||||
},
|
||||
{
|
||||
"stage": "payment_confirmed_before_allocation",
|
||||
"debt_minor": 1160000,
|
||||
"unallocated_minor": 400000
|
||||
},
|
||||
{
|
||||
"stage": "allocation_confirmed",
|
||||
"debt_minor": 760000,
|
||||
"unallocated_minor": 0
|
||||
}
|
||||
],
|
||||
"principal_minor": 1160000,
|
||||
"due_on": null,
|
||||
"days_overdue": null,
|
||||
"payments": 1,
|
||||
"allocations": 1,
|
||||
"repeat_recovered": true,
|
||||
"payment_confirmation_repeat_recovered": true,
|
||||
"event_counts": {
|
||||
"supplier_payment.proposed": 1,
|
||||
"supplier_payment.confirmed": 1,
|
||||
"supplier_allocation.proposed": 1,
|
||||
"supplier_allocation.confirmed": 1
|
||||
},
|
||||
"distinct_validation_actors": true,
|
||||
"history_after_reentry": true,
|
||||
"canonical_balance_on_both_pages": true,
|
||||
"role_destination_retained": true,
|
||||
"external_redirect_refused": true,
|
||||
"read_only_without_forms": true,
|
||||
"visual_review": false
|
||||
}
|
||||
],
|
||||
"visual_blocker": "Previous Firefox attempt stopped: browser URL policy enforcement is not yet supported for the current Windows browser. Browser not retried in this consolidation.",
|
||||
"public_enabled": false,
|
||||
"bank_execution": false,
|
||||
"accepted_proof_preserved": true
|
||||
}
|
||||
Reference in New Issue
Block a user