9.8 KiB
Stock físico → valorização → diário QA
Continuação técnica: conferência de dependências anteriores em lotes,48 verificações e comparação de1.000/5.000/10.000 referências de metadados. A limitação de materialização descrita historicamente no fim deste documento foi tratada na fonte; os pacotes das demonstrações permanecem congelados e a capacidade de implantação continua pendente.
03/11/2026. COMMON-LEDGER-STOCK-VALUATION-SIM-v1, autorizado expressamente no recorte. Código funcional, integração, provas e demonstração local entregues. Nenhuma instalação, política, conta ou operação real foi activada.
Resultado demonstrado
| Origem efectiva | Quantidade | Valorização a50MZN/UN | Lançamento artificial |
|---|---|---|---|
| Recepção aceite | 2UN | 100MZN | D QA-STOCK / C QA-COMPENSACAO-STOCK |
| Saída interna autorizada/entregue | −1UN | 50MZN | D QA-CONSUMO-STOCK / C QA-STOCK |
| Excedente declarado e recebido distintamente | +0,5UN | 25MZN | D QA-STOCK / C QA-CONSUMO-STOCK |
| Final | 1,5UN | 75MZN de stock | Consumo líquido25MZN |
Três lançamentos/seis linhas; débitos/créditos brutos175MZN. Balancete, razão e fecho QA usam o mesmo núcleo contabilístico anterior. O writer contabilístico não volta a mover quantidades, reconhecer factura/obrigação, consumir orçamento ou criar pagamento.
Recepção, requisição de armazém, submissão, autorização, entrega, reconhecimento de recepção pelo destinatário, declaração de excedente e recepção independente da devolução foram executados pelos serviços efectivos de Compras. Os writers físicos comuns e o seu livro original foram reutilizados. A ordem já emitida e os cadastros anteriores são fixture; não se repetiu nem se declarou provado todo o procurement anterior à ordem. A taxa50 é uma decisão de ensaio distinta, não deduzida automaticamente do preço comercial da fixture.
Integração e controlos
StockSchema, StockValuation e StockComposition acrescentam origens tipadas ao mesmo PayableJournal; não criam um motor de lançamentos alternativo. O adaptador explícito QA usa a mesma transacção/base e o mesmo bloqueio da empresa que os serviços físicos. Revalida identidade, função organizacional, pessoa e direitos antes de comandos e repetições. O cenário utiliza os direitos contabilísticos existentes, funções físicas existentes e permissões de leitura apenas nas fixtures novas.
A taxa tem proposta/versionamento e revisão imutáveis por pessoa distinta. Uma sucessora pendente ou ausente torna o valor incompleto; uma sucessora com o mesmo montante invalida a conferência anterior. Alterar a taxa após lançamento é recusado neste recorte. Chave repetida com conteúdo diferente recusa; repetição exacta devolve o comprovativo, sem segundo efeito.
A captura conserva artigo, armazém, unidade, movimento, taxa/revisão, documentos/operadores físicos, saída original da devolução, versões e hashes. A aplicação relê esses factos. Os movimentos físicos anteriores do livro têm de estar contabilizados primeiro: não se valoriza saída antes da entrada ou devolução antes da saída. As dependências contabilísticas são identificadas, não lançadas automaticamente. O serviço e a guarda SQL impõem a sequência.
O SQL impede duplicação do movimento mesmo com outra chave de efeito, revista a ligação entre origem/taxa/quantidade/contas e conserva as verificações de equilíbrio/revisão distintas existentes. Foi recusada uma fonte PHP adulterada com um cêntimo adicional e outra com valor correcto mas entrada contabilística em falta. Não se alteraram triggers do livro físico.
O que o SGF faz nesta entrega
StockValuationRead liga explicitamente o contexto SGF ao livro nativo autorizado com uma role SQL SELECT-only. Exige stock.view e general_ledger.view na unidade actual, módulo Contabilidade, token actual e identidade física QA. Fontes ausentes/incompatíveis devolvem indisponibilidade, sem inventar zero. Quantidades, lançamentos e linhas são lidos numa captura REPEATABLE READ READ ONLY, com paginação no servidor.
O SGF mostra o valor contabilizado e os movimentos ainda não valorizados, sem copiar um livro ou saldo para a sua base. A navegação só apresenta a ligação quando a composição e os dois direitos estão disponíveis. O mapeamento de tenant/empresa/unidade é explícito: o âmbito nativo0/0 não é equiparado numericamente à empresa/unidade SGF.
Fronteira explícita: a confirmação da valorização e a conferência completa das dependências/período correm na composição QA de origem. O SGF é observador autorizado; a sua reconciliação cobre movimentos com lançamento e IDs de taxa, não uma segunda validação independente de todas as dependências actuais. A interface SGF de preparação/confirmação de recepção permanece pendente. Não declarar Compras integralmente instalado no ERP.
Demonstração preservada para avaliação
Dados físicos iniciais2/−1/+0,5; zero taxas propostas, zero lançamentos e zero fechos iniciais. A equipa pode percorrer o ciclo por identidades distintas. A consulta inicial SGF diz «pendente», com três movimentos por valorizar; o valor contabilizado0 não é apresentado como valorização actual do stock.
Pacote comum/adaptador congelados em artefacto privado, manifesto SHA256 8b3ad1c600b84c8526b2d9f453a1c5c4e174a69d6acc78ace2af4f52a25dd762. O contrato SQL instalado e a classe de origem coincidem entre a regressão, o ensaio HTTP e a demonstração. Assets SGF compilados numa pasta pública privada desta composição; sem substituir o build ou a cache da instalação principal.
As entradas8060/8061 foram uma preparação anterior desta passagem e permanecem preservadas com o seu pacote; não são a demonstração final da sequência reforçada. Usar8062/8063.8059,8039 e anteriores não foram reiniciadas ou reconfiguradas. As decisões iniciais da demonstração final foram conferidas por leitura antes/depois das verificações; não houve reset para a apresentar.
Provas e limitações
Manifesto de resultados/fontes/hashes: 146 verificações dirigidas, mais 23 verificações da regressão nativa afectada pelo núcleo comum. São contagens dos auxiliares aprovados; não constituem169 casos independentes de negócio.
| Prova seleccionada | Verificações | Condição |
|---|---|---|
| Taxas, origens, versões, sequência e recuperação | 31 | Casos com rollback e preservação de físico/financeiro/direitos |
| Concorrência | 3 + dois trabalhadores | Bloqueador real observado; libertação com repetição200 ou versão de período antiga409, sem duplicação |
| Ciclo/relatórios/fecho | 4 | Três lançamentos/seis linhas; stock75, consumo25, um fecho |
| Isolamento/pessoa e SQL adversarial | 9 | Empresa/unidade/tenant, ambos os direitos na mesma pessoa, chave de efeito forjada e montante adulterado |
| SQL da sequência | 3 | Fonte PHP adulterada não contorna a falta de entrada contabilística |
| Percurso HTTP completo | 40 | Taxa→revisão→três lançamentos→relatórios→fecho, CSRF, chaves e comprovativos próprios |
| Observação SGF | 23 +4 | Isolamento, revogação, configuração, origem SELECT-only e alteração de unidade recusada/restaurada |
| JavaScript/React | 15 +5 | Incerteza sem repetição automática, resposta atrasada descartada, navegação por composição/direitos; sem navegador |
| Demonstração final | 9 | Leitura, pacote fixado, assets privados e decisões iniciais intactas |
As tentativas de preparação incompletas ficaram preservadas em bases próprias. Corrigiram-se auxiliares de caminho de cache Windows, definição de UN antes da emissão da fixture, normalização da quantidade da devolução e contexto/pertença Financeiro explícitos. Nenhuma guarda foi retirada para os fazer passar. A primeira passagem funcional foi reforçada depois da revisão de dependências; só as provas finais da sequência reforçada são seleccionadas no manifesto. Não somar tentativas anteriores ou suites sobrepostas. A regressão anterior foi reutilizada; repetiu-se apenas o ciclo nativo afectado e as provas que a alteração de sequência mudou.
A taxa fixa de ensaio não valida método de valorização real, fiscalidade, política de custos ou margens. O cenário é exclusivo: não compõe o mesmo material com custos directos/industriais já lançados; essa integração continua separada. Não há correcção de valor lançado, reabertura, salário, banco ou pagamento novo. As roles QA são proprietárias das bases novas; não se valida separação owner/runtime de implantação. Paginação foi exercitada funcionalmente, sem ensaio de carga sustentada/throughput.
A conferência de uma origem ainda materializa as referências contabilísticas anteriores do livro. A página exterior25/100 não limita esse prefixo: a memória e o custo podem crescer com o histórico. O recorte provado contém três movimentos; não se apresenta esta implementação como solução de carga para livros extensos. A melhoria mínima futura é obter a cobertura anterior por SQL e calcular a evidência por leitura em sequência, evitando carregar todos os IDs/snapshots anteriores. Isto é uma limitação distinta da fila administrativa, cuja leitura conjunta já está implementada e medida.
Revisão visual e capacidade de implantação permanecem pendentes. Seis registos protegidos, cache bloqueada, provas válidas, configurações/direitos reais e trabalho alheio preservados. Sem publicação, instalação no destino, activação de Compras, aceitação ou checkpoint presumidos.