8.2 KiB
Conferência de extracto QA — entrega na8085
10/11/2026, SGF-BANK-RECONCILIATION-QA-v1, conforme âmbito autorizado. Mesma instalação, entrada Financeiro → Conferência de extracto QA → Abrir extracto, conferência e histórico, ou /finance/bank após escolha da função autorizada.
Resultado conservado
Um extracto artificial interno QA-BANCO-LOCAL, MZN,2026-11: abertura0, débito20, crédito20 e fecho0. O saldo intermédio−20 é explícito no exercício; não significa autorização de descoberto, caixa disponível ou saldo bancário real. A conta de liquidação não foi classificada como banco.
Importação13 → revisão14 do extracto → proposta13 da linha QA-OUT-20 para a linha contabilística4/diário2 → revisão14 → proposta13 da linha QA-IN-20 para a linha5/diário3 → revisão14 → conferência final14, diferença0. Um cabeçalho, duas linhas e sete eventos conservados na8085; relatório CSV interno com assinatura verificável.
O leitor nativo conferiu as duas linhas efectivamente existentes de QA-LIQUIDACAO,20/reversão20, por SELECT no livro físico ligado à mesma composição/empresa/unidade. Confere IDs fixados, conta, data, moeda, sinal/valor e fotografia do diário; não toma correspondência por igualdade de valor nem oferece toda a contabilidade. Reutiliza a ligação nativa existente, sem novo PGrole; o adaptador apenas executa leituras, não é uma concessão de escrita nem uma nova role SELECT-only.
Não foram criados pagamentos/estornos/comissões/ajustes ou lançamentos para preparar ou fechar o exercício. Caixa950 fechada,27 lançamentos, período contabilístico, IVA com quatro versões e regras com quatro eventos/dois cálculos intactos. Não existe SGC/portal/banco/API de instituição em execução neste percurso.
Controlos e histórico
CSV UTF-8 limitado8192 bytes e ao caso artificial aprovado, com validação de cabeçalho, conta/período/moeda, ordem/data/referência, sinais, montantes, abertura/fecho e saldos intermédios. Não é importador bancário geral. Ficheiro não substitui fotografia anterior; mesmo ficheiro/chave recupera a origem sem duplicação. Com outra chave e o mesmo ficheiro, devolve o extracto existente sem criar eventos ou linhas, inclusive depois da conferência final; isso não reabre o processo.
Extracto importado não cria correspondências. Revisão distinta do extracto precede propostas individuais; revisão de cada proposta exige alvo exacto e preparador ainda autorizado. Proposta por rever não permite outra para a mesma linha. Uma linha contabilística ou de extracto já conferida não pode ser usada novamente. Finalização exige as duas correspondências revistas e nenhuma proposta pendente. Não há reabertura de conferência finalizada, Caixa ou período.
Prévia cifrada600s em savepoint revertido, impacto antes da confirmação, contexto/autor/direitos/versão/origem revalidados sob lock da empresa. br_statements fixa CSV/SHA e linhas; br_events fixa predecessor, proposta exacta, autor/preparador/data/fundamento/estados e correspondências; br_commands fixa chave/hash/resultado. Triggers exigem acesso/revisão distinta/versão, protegem história append-only e impedem duplicação de correspondências. Guarda física QA e PUBLIC revogado.
Recibo próprio recuperável noutra sessão por GET, sem executar de novo. Fonte alterada bloqueia a conferência/relatório, sem preencher saldos zero. Interface exige escolha explícita das duas linhas e da decisão, protege campos durante operação incerta e conserva histórico/consulta depois da finalização. Upload/leitura de ficheiro limitado ao CSV QA; botão do exemplo só preenche após escolha do utilizador. Não lê ficheiros por caminhos recebidos do cliente.
Linhas de extracto são limitadas a duas por este contrato, com filtro de estado. Histórico é SQL25/100 e foi percorrido além100 eventos. Não se declara importação/paginação de extractos de volume arbitrário. O relatório é derivado das fotografias imutáveis da conferência, com checksum no download e auditoria; não se declarou arquivo independente do binário/renderer para retenção legal de longo prazo.
Acessos e provas
bank_reconciliation.view/import/prepare/review: oito concessões por cada uma das duas bases QA existentes,16 no conjunto, exactamente como aprovado. Importação/preparação13, revisão14 e consultas13–17. Não herdados de Caixa/recebíveis. Sem novo utilizador/PGrole/direito PUBLIC/acesso real. Rootflag desligada; somente a8085 disponibilizada com vínculo privado por hash.
| Prova | Resultado |
|---|---|
| 37 regressão, rollback integral | Importação/prévia, sinais/moeda/valor, revisão distinta, fase de extracto, versões antigas, linha/pedido repetidos, correspondência manual, finalização/relatório, origem alterada, falha após importação com rollback/recuperação e dados anteriores intactos. |
| Concorrência na regressão | Segunda revisão503/Retry-After5 durante o lock da empresa; libertação→409 por versão antiga. Uma revisão válida, recuperação da primeira chave sem duplicação. |
| 11 SQL/fronteiras, rollback | 126 eventos de metadados (63 propostas/recusas) além dos dois eventos de concorrência;128 percorridos em25 e100/28. Filtros, actor/contexto/unidade/módulo, histórico imutável e writer indevido. Fixtures não são correspondências confirmadas. |
| 28 HTTP na8085 | Leitor nativo actual, duas linhas reais do QA, sete confirmações/repetições, dois pares conferidos individualmente, finalização/relatório/checksum, sinais/IDs/reutilização/actor/módulo/tenant, recibo noutra sessão e ecrã. Progresso guardado para não repetir operações válidas. |
| 15 DOM→HTTP | Consulta do estado final, duas correspondências visíveis, formulário fechado, filtros/histórico100/detalhe, recibo e integração com Caixa950/IVA4/regras2cálculos. Zero POSTs de negócio. Não é navegador ou aceitação visual. |
| Três HTTP do relatório | Resposta CSV/checksum preservados através do mesmo tratamento HTTP limitado para ocupação. Não foi repetido o percurso de sete decisões. |
| Preservação SELECT-only | 20 conjuntos originais completos e binding idênticos; apenas oito concessões aprovadas adicionadas. Sem append nativo ou alteração dos exemplos anteriores. |
Total94 verificações dirigidas, concorrência separada. Índice verificável.
Distinção de origem das provas: a regressão existente não contém os dois lançamentos20/20. Os testes de componente/persistência/concorrência injectaram um fornecedor de origem artificial apenas no harness CLI, como autorizado, com source_kind=regression_harness_fixture. Não foram criados lançamentos/pagamentos para preparar testes. O leitor instalado não tem fallback ou origem de regressão; a execução HTTP8085 comprovou source_kind=native_qa_ledger e as duas linhas efectivas. Não apresentar a prova com origem simulada como integração nativa total da regressão.
Uma ambiguidade de nome no trigger de finalização foi detectada/corrigida só na regressão antes da instalação; a execução de negócio foi revertida e a prova final passou com a guarda corrigida. Não foram somadas tentativas falhadas como provas válidas.
Limitações restantes
Amostra artificial de duas linhas/um período/uma conta de exercício. Não é integração bancária, reconciliação geral, pagamento, livro bancário real ou confirmação da natureza de uma conta. Recusa do extracto mantém o processo bloqueado; protocolo geral de correcção/substituição/reenvio de extractos não faz parte desta entrega. Proposta de correspondência recusada pode ser preparada novamente, sem apagar a recusa.
Sem novos motores legais, remunerações, modelos oficiais, rácios financeiros amplos ou capacidade de implantação. Visual continua pendente, via bloqueada não repetida; carga sustentada, retenção/órfãos, arranque completo, conformidade e implantação exigem evidência própria. Seis registos/cache/trabalho alheio preservados; sem novas bases/portas/demos, SGC, publicação/candidata, aceitação/checkpoint ou dados/acessos reais. Dumps e dados privados fora do repositório.