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

9.8 KiB
Raw Blame History

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.