Files
SGF/docs/GENERAL_LEDGER_COMPOSITION_DELIVERY.md
2026-11-04 09:37:20 +02:00

49 lines
7.4 KiB
Markdown

# Composição financeira integrada — entrega local de 03/11/2026
Vendas/recebíveis, obrigação a fornecedor e correcção de custo directo passam a funcionar na mesma empresa/unidade, livro e período QA. Reutilizam exclusivamente os efeitos e workflows já autorizados. Não se criou outro motor nem um novo tipo de efeito financeiro.
Demonstração inicial preservada: **http://127.0.0.1:8057/qa/cost-demo**. O guia permite entrar como preparador, validador ou leitor e abrir o painel `/general-ledger/workspace`. Cada origem tem ligação ao seu percurso efectivo. A base/role são próprias no cluster isolado55439; a aplicação de destino e as demonstrações anteriores não foram migradas.
## Resultado funcional
| Origem | Percurso efectivo | Resultado final da regressão |
|---|---|---|
| Comercial/recebíveis | Factura de teste862,07+137,93=1000; abertura documental revista; recebimentos confirmados/afectados400 e600; reversão400; reconhecimento/afectações/reversão no mesmo writer | 4 lançamentos,9 linhas; bruto2400 por lado; saldo financeiro/conta cliente400 |
| Oficina/custo directo | Original100+175=275 validado e lançado; taxa material sucessora60 e cálculo120+175=295 validados; estorno275/substituição295 indivisíveis | 3 lançamentos,6 linhas; bruto845 por lado; saldo custo295 |
| Fornecedor | Recibo sintético controlado já reconhecido pelo núcleo Payables; reconhecimento contabilístico60, revisto distintamente | 1 lançamento,2 linhas; bruto60 por lado; obrigação financeira permanece60 |
| Conjunto | Uma conferência, revisão distinta e fecho QA no mesmo período | **8 lançamentos,17 linhas,3305MZN de débitos e créditos** |
Os IDs numéricos coincidem entre factura, ordem e obrigação; os filtros tipados continuam a separar os três domínios. A contabilização não desconta novamente os saldos financeiros. Factura/PDF, apontamentos, decisões de custo, original275, outbox e direitos mantêm-se imutáveis durante o percurso contabilístico.
## Painel e integração
`LedgerComposition` oferece cartões de origens e diário conjunto em transacção `REPEATABLE READ READ ONLY`, sem bloqueios de escrita. Cada painel, diário e lista de conferências tem página própria de25 registos. A navegação conserva os restantes filtros/páginas. As dependências e metadados são consultados em conjuntos delimitados pelos IDs da página; não se executa uma conferência completa por cartão nem se carrega o catálogo inteiro de contas.
Os cartões mostram decisões e lançamentos **registados**, sem os apresentar como nova validação de dependências. O principal de fornecedor está identificado como principal, não saldo. A conferência actual e a prévia do impacto continuam nos percursos das origens e nos comandos existentes. Fonte indisponível devolve503; acesso de origem ausente oculta o painel, sem linhas ou contagens. A consulta histórica do livro mantém o direito contabilístico próprio. Acções de período são ocultadas quando falta consulta a uma das origens.
O fecho não depende dos cartões ou da página visível: o serviço existente volta a conferir todas as fontes compostas. Recusa com perda de direito ou alteração de versão, incluindo sucessora295→295 com novas taxas/cálculo. Depois de remover a alteração de ensaio, a mesma operação termina uma única vez; repetições com mesma/outra chave não duplicam o fecho.
O instalador `SalesSchema` para **livros novos vazios** restringe três linhas ao tipo `sales.invoice`; os restantes efeitos conservam duas. A prova SQL adversarial cria, apenas dentro de rollback, uma proposta/revisão/cabeçalho coerentes de custo com crédito repartido em duas linhas: a soma é correcta, mas `gl_assert_balanced` recusa a terceira linha. Não se actualizaram os schemas das demos antigas. O escritor PHP e os efeitos aceites permanecem os mesmos.
## Provas dirigidas
Manifesto verificável: [common-ledger-composition-20261103.json](proofs/common-ledger-composition-20261103.json).
- `2d5c71abf625`:7 casos/37 verificações, todos em rollback: painéis, direitos revogados, contextos elegíveis de unidade/empresa/tenant diferentes,26 perímetros SQL explicitamente artificiais para páginas25+1, falha de fonte, guarda e cardinalidade SQL. Páginas com25 e1 registos usam igual número de consultas. As linhas sem cálculo permanecem pendentes, sem zero/aprovação fabricados.
- Mesma base de regressão, depois das provas de rollback:31 verificações do percurso efectivo completo, revalidação dos três domínios no fecho, mesma quantia com versão diferente, repetição/recuperação e reconciliação final.
- HTTP real em regressão aberta:36 verificações; regressão fechada independente `01aab3ebad2d`:35. Autenticação, CSRF, contexto/módulo, parâmetros, paginação, links, ausência de formas de decisão para leitor/período fechado e transacção de leitura sem bloqueios.
- Demo nova `fe42e1169ce6`:34 verificações de três perfis, links efectivos, entradas/contextos e quatro verificações do JavaScript renderizado em Node VM. Sem comandos de negócio. Impressão digital antes/depois dos dados/origens/outbox/direitos/livro confirma preservação.
- Total173 verificações dirigidas, incluindo os quatro ensaios de formulário simulados. Node VM e HTTP **não constituem revisão visual**. Sintaxe e `git diff --check` nos dois repositórios. Provas válidas de concorrência/falhas dos escritores, fornecedores nativos e pacotes congelados reutilizadas por hash; não repetidas.
Na demo8057 só o original275 está lançado. Factura1000 e obrigação fornecedor60 existem, mas abertura de recebíveis, lançamentos adicionais, par correctivo e fecho continuam por decisões individuais. As regressões completas usam bases diferentes. Não há reset automático.
## Limites e preservação
São quatro módulos compostos neste percurso: Comercial, Financeiro, Oficina e Contabilidade. Compras e Stock não foram activados. O recibo de fornecedor é uma origem controlada de ensaio, não ligação histórica SGF nem importação real. Orçamento/CIF industrial, stock valorizado, salários e cadeias adicionais de correcção não se tornam contabilizados por esta composição.
As primeiras três tentativas de instalação depois da restrição de cardinalidade falharam por sintaxe SQL e permaneceram diagnósticas; não são provas válidas nem foram reutilizadas/resetadas. A tentativa seguinte `b8be625f9a43` completou o percurso, mas um pós-teste usava nome de filtro incorrecto; a sua saída parcial não é contada como sucesso. As provas finais acima foram executadas em fixtures novas, com publicação do comprovativo só depois das verificações finais. Logs privados conservados, sem credenciais versionadas.
Seis associações protegidas, cache bloqueada, demonstrações anteriores e trabalho alheio preservados. Sem concessões reais/públicas, migração no destino, activação de Compras, publicação, aceitação ou checkpoint presumidos. Revisão visual, carga sustentada da composição e capacidade de implantação permanecem pendentes independentes. Os resultados pequenos de integração não demonstram capacidade operacional.
Continuação posterior expressamente autorizada e [entregue em bases novas: lote industrial/CIF1800](GENERAL_LEDGER_INDUSTRIAL_DELIVERY.md). A presente entrega e a demo8057 conservam o seu âmbito de três famílias de origem; a8058 acrescenta a ligação industrial. O manifesto anterior conserva o estado histórico à data da sua emissão.