72 lines
9.8 KiB
Markdown
72 lines
9.8 KiB
Markdown
# Stock físico → valorização → diário QA
|
||
|
||
**Continuação técnica:** [conferência de dependências anteriores em lotes](STOCK_PREFIX_STREAM_DELIVERY.md),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](GENERAL_LEDGER_STOCK_VALUATION_SCOPE.md). **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
|
||
|
||
- [Composição de origem — preparar, rever e consultar](http://127.0.0.1:8062/qa/stock).
|
||
- [SGF — consultar o mesmo livro](http://127.0.0.1:8063/qa/stock-observer/reader?open=1).
|
||
|
||
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](proofs/common-ledger-stock-valuation-20261103.json): **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.
|