Files
SGF/docs/SGF_FINANCIAL_STATEMENTS_DELIVERY.md
2026-11-11 09:00:17 +02:00

59 lines
11 KiB
Markdown

# Demonstrações internas parciais — entrega8085
11/11/2026 · `SGF-INTERNAL-STATEMENTS-QA-v1`. Bloco autorizado concluído na mesma8085, **Contabilidade → Demonstrações internas parciais QA**. Código funcional, interface, correspondências revistas, resultado conservado, histórico, recibos e exportação. Sem SGC, outra demonstração, contas ou lançamentos novos.
## O que está disponível
Preparação15/revisão16 de correspondências explícitas entre contas e rubricas internas: activo, passivo, rendimento, gasto ou por classificar. Primeira preparação sem conta/rubrica escolhidas automaticamente; correcção parte da versão revista, com escolhas visíveis, fundamento e nova revisão. O servidor conserva conta/código/designação/moeda e a impressão da identidade observada. Não interpreta prefixos, designações ou sinais como rubrica. Contas sem correspondência ficam pendentes, não desaparecem nem recebem classificação por arrasto.
Preparação/revisão distintas do resultado interno, com datas e versão de correspondências escolhidas explicitamente. O leitor original `trialBalance` fornece abertura, débitos/créditos do período e fecho; `accountLedger` continua a ser o destino para conferir cada conta/datas. Motor, writer, fórmulas, contas, linhas e períodos originais não foram alterados. O balanço parcial usa fechos; os resultados parciais usam movimento do período. Valores invertidos conservam sinais e aviso, sem valor absoluto para forçar natureza.
O resultado conserva as linhas, grupos, pressupostos, versão das correspondências, marcador do diário, fonte e SHA. A captura processa páginas25/100 e acumula apenas grupos; não materializa o universo de contas no PHP. As linhas são escritas por página na mesma transacção nativa. O CSV é construído por lotes100 num fluxo com limite de memória1MiB e eventual armazenamento temporário do PHP, encerrado no fim; não usa nem limpa a cache bloqueada. O navegador materializa o ficheiro pedido para a descarga — não se declara capacidade para exportações de volume arbitrário.
Histórico e resultado paginados25/100. Totais do resultado abrangem todas as páginas conservadas, com a tabela paginada identificada. A revisão de correspondências posterior ou uma alteração da fonte tornam visível que o resultado anterior é histórico; não o recalculam. A exportação de uma revisão antiga continua idêntica. A ligação ao razão transmite conta e datas exactas; o destino é uma nova leitura original, não um arquivo do razão daquela observação.
## Exemplo conservado, sem preencher lacunas
Foram preparadas15 e revistas16 as19 escolhas expressamente aprovadas no âmbito, incluindo nove contas por classificar. Depois foi preparado/revisto um resultado interno sobre10/11/2026 e os27 lançamentos já existentes. Ficaram **quatro versões, quatro recibos, uma conservação de resultado e19 linhas**, sem repetir origens financeiras.
|Rubrica classificada QA|Valor observado MZN|
|---|---:|
|Activos conhecidos|2155,00|
|Passivo de fornecedor conhecido|100,00|
|Rendimentos do período classificados|2586,21|
|Gastos do período classificados|2200,00|
|Subtotal das rubricas de resultados classificadas|386,21|
**386,21 não é o resultado da empresa.** Nove contas continuam pendentes; o resultado completo e o capital próprio são indeterminados e a equação patrimonial não é completada artificialmente. Rubrica sem conta observada é distinta de saldo zero observado. Os ecrãs separam balanço parcial, resultados parciais e contas por classificar. Não são demonstrações legais, comparativos anuais ou fluxos de caixa.
## Autoridade, transacções e descarga
Exactamente dois direitos aprovados: `general_ledger.statements.prepare` para15 e `general_ledger.statements.review` para16, tenant1/empresa2/unidade2. Duas concessões por livro QA existente, quatro no total. Consulta reutiliza `general_ledger.view`. Sem nova pessoa/perfil, role PostgreSQL, concessão SQL/PUBLIC ou acesso real. Configuração principal desligada por omissão;8085 habilitada no seu estado privado existente.
Prévia por savepoint revertido; confirmação revalida contexto físico, versão, pessoa nativa, identidade host actual sob bloqueio, direitos, preparador distinto e ainda autorizado, conta/correspondências e fonte. Alteração exige nova conferência. Versão, conservação, linhas, auditoria e recibo são atómicos na transacção nativa. Sequências podem avançar numa prévia revertida. Resultado incerto na interface conserva corpo/chave e impede descarte/troca de contexto; repetição recupera o recibo. Consulta histórica de recibo próprio não executa outra decisão nem presume actualidade financeira.
Na retoma foi corrigido o botão de descarga: a ligação directa à API não enviava `X-SGF-Context` e recebia409. Agora a leitura autenticada envia a geração actual em cabeçalho, recusa resposta de contexto antigo, tipo de ficheiro inesperado, SHA de revisão diferente ou bytes corrompidos. Só depois cria o ficheiro. O token não entra no URL; não se alterou nem excepcionou `RequireModuleContext`.
O mesmo problema foi corrigido no atalho do mapa IVA em Obrigações fiscais. Reutiliza o mesmo leitor de descarga verificada, com destino fixo correspondente à origem. Não se recriou o mapa nem se repetiram decisões; a descarga do mapa mantém a auditoria de consulta original. CSV/SHAs conservados não foram modificados para corrigir a interface.
## Provas e seus limites
-38 verificações de integração na regressão existente: intenção/revisão distinta, fonte de correspondências, versões antigas, acessos/contexto, resultado vazio sem saldos inventados, CSV/SHA, história, exportação antiga conservada e dados anteriores intactos. O livro de regressão tem19 contas mas **zero lançamentos persistentes**; não se criaram lançamentos para preencher esse ensaio. Paridade de valores não vazios foi comprovada na8085 com o motor real.
-17 verificações de fronteiras: sinais invertidos, montantes exactos/moedas separadas, rubrica ausente, fingerprint alterado, identidade/pessoa/direito alterados, falha no recibo e recuperação. A captura25/100 foi exercida com um **double de leitura de128 linhas**, geradas por página, sem contas/lançamentos inseridos. Isso comprova o adaptador de paginação, não SQL, carga ou capacidade de implantação. As provas válidas anteriores do balancete/razão SQL foram reutilizadas.
-Quatro verificações de falha parcial: valores de leitura dos19 códigos QA e um double de relatório na regressão, falha forçada na segunda linha, rollback da primeira, recuperação da mesma chave com19 linhas e FKs válidas, rollback integral. Nenhuma conta/lançamento criado; não é um segundo livro financeiro ou execução do writer original.
-23 verificações de interface/contrato: escolhas explícitas, campos vazios, duas secções parciais/pendências, nenhuma conta/rubrica automática, protecção do formulário, resposta incerta, recuperação idêntica, razão com conta/datas e botão de descarga que só guarda após SHA. API/DOM simulados; não é revisão visual do navegador. As passagens anteriores18/19 foram substituídas, não somadas.
-46 HTTP8085: quatro comandos administrativos efectivos,19 escolhas/nove pendências, resultado versus todas as19 linhas do balancete real,27 lançamentos originais, valores da tabela acima, histórico/recibos, checksum/exportação,25/100 e recusas. Progresso/chaves privados permitem recuperar sem reexecutar os quatro comandos. Esta prova válida anterior à pausa foi reutilizada.
-11 de descarga: exportação efectiva com contexto/SHA, guarda409 sem cabeçalho preservada, contexto antigo antes/depois da resposta, HTML, SHA/bytes corrompidos, acesso e identidade inválidos recusados. Cinco de compatibilidade da descarga IVA: origem exacta, SHA/bytes originais, limite sintético, geração exigida e SHA da prova UI histórica aceite preservado. As22 verificações UI de Obrigações fiscais foram reexecutadas pela alteração de hooks/atalho; a evidência anterior é byte a byte igual e não é somada como nova suite.
-13 finais de entrada/entrega: autenticação401, CSRF419, consulta sem escrita, navegação por configuração/direito, MIME/SHA dos ficheiros principal, ambos os ecrãs e módulo partilhado de descarga; fontes finais instaladas iguais às conferidas. Sem comandos de negócio.
-Concorrência apenas na regressão: a primeira revisão mantém `FOR UPDATE` da empresa; `pg_blocking_pids` identifica o bloqueador, com espera `Lock/transactionid`. Segunda confirmação503 após5,13s; libertada a primeira, a segunda recusa409 e a primeira repete200 com o mesmo recibo. Uma preparação/uma revisão de correspondências conservadas nessa fixture. Não houve nova medição de carga sustentada ou eliminação do mutex existente.
[Índice das provas e hashes](proofs/sgf-statements-20261111.json). Ensaios anteriores só foram repetidos quando as alterações de identidade/interface/descarga afectaram a fronteira respectiva; não se repetiram suites de Compras, Stock, Caixa, facturação, vencimentos ou apuramentos.
## Preservação e pendências
65 verificações de preservação/ACL:49 conjuntos anteriores iguais; nas outras duas tabelas, todas as linhas antigas iguais, apenas duas concessões aprovadas e quatro eventos nativos de auditoria acrescentados. Três bindings intactos,19 contas e27 lançamentos, Caixa950, IVA4, cálculos5, obrigações/condições/recibos, artigos e movimentos conservados. As contas também foram comparadas com a leitura anterior de código/designação/moeda. Uma conservação de resultado,19 linhas e quatro recibos; PUBLIC sem direitos nas novas tabelas/sequências/função.
Entradas normais de perfis e descargas do mapa original têm a auditoria de consulta própria; não se declara a auditoria global host byte a byte igual. Nenhum comando dirigido aos seis registos ou à cache bloqueada. Backups, dados, CSV, chaves e credenciais permanecem privados, fora do repositório; ficheiros/assets anteriores conservados, sem limpeza de cache ou reinício.
Sem publicação, candidata de Compras, novas demonstrações/portas/bases, SGC, contas/dinheiro/acessos reais, lançamento, fecho/reabertura, checkpoint ou aceitação presumidos. As correspondências de configuração estão limitadas a100 escolhas por versão; linhas de fonte/captura/exportação usam páginas limitadas. Os leitores compostos conservam guardas e bloqueios anteriores; sem promessa de desempenho global. Revisão visual, carga sustentada e capacidade de implantação continuam pendentes. Classificação legal das contas, capital, demonstrações completas e fiscalidade geral permanecem fora deste bloco; matriz v22 mantém produto amplo incompleto.