63 lines
9.1 KiB
Markdown
63 lines
9.1 KiB
Markdown
# Lote industrial → Contabilidade — entrega sintética local
|
||
|
||
Continuação posterior expressamente autorizada e [entregue em bases novas: correcção1800→1820](GENERAL_LEDGER_INDUSTRIAL_CORRECTION_DELIVERY.md). As exclusões de correcção abaixo descrevem o âmbito original desta entrega e continuam na demo8058; a capacidade nova existe só na8059 e nas suas bases de prova. Manifestos anteriores conservam o estado histórico.
|
||
|
||
03/11/2026. `COMMON-LEDGER-INDUSTRIAL-SIM-v1`, autorizado expressamente por **«Autorizar o ciclo industrial sintético proposto»**. Recorte aprovado preservado por hash; sem aceitação ou checkpoint presumidos.
|
||
|
||
**Implementado:** resultado industrial efectivamente preparado/validado pelo módulo proprietário → captura com impacto → revisão contabilística distinta → aplicação única pelo escritor comum → diário/balancete/razão → conferência e fecho QA conjunto. Demonstração inicial separada: **http://127.0.0.1:8058/qa/cost-demo**.
|
||
|
||
## Origem e impacto
|
||
|
||
`IndustrialCostFixture` executa os workflows de `IndustrialCosts`, com identidades distintas para preparar e validar entradas, taxas e critério. Calcula-se e valida-se explicitamente o resultado:20KG×50=1000 material;300MIN÷60×100=500 trabalho; conjunto CIF600/capacidade10HM×utilização5HM=300 imputados. Total1800MZN;10UN;180/UN. **Residual300 separado e não lançado.** As aprovações positivas não são fabricadas por SQL.
|
||
|
||
`IndustrialCosts::conference` confere um lote e o resultado actual, incluindo o produto, entradas/versões, taxas, critério, decisões e validade das dependências, sem carregar a listagem industrial inteira ou obter bloqueio de escrita. `IndustrialLedgerSource` conserva esta evidência na fotografia da origem. Exige resultado vigente completo aprovado distintamente, produção concluída e valor exacto representável em cêntimos; não arredonda ou transforma800 conhecidos sem taxa material num total.
|
||
|
||
O escritor `PayableJournal` existente aplica **D QA-CUSTO-INDUSTRIAL1800 / C QA-COMPENSACAO-INDUSTRIAL1800**, em duas linhas. Usa a transacção/bloqueio de empresa, autorização actual, revisão exacta, idempotência, histórico e guardas QA existentes. Não há segundo motor, processamento da outbox ou efeito financeiro adicional. A identidade do efeito é estável por lote/perímetro, mesmo se o resultado ganhar outra versão. Um resultado já lançado que muda fica `requires_future_correction`; não se criou correcção industrial por consequência desta entrega.
|
||
|
||
O período contabilístico tem de conter o período completo do lote. O fecho inclui todas as fontes explicitamente compostas, revalidando permissões e dependências industriais mesmo quando o montante continua1800. Perda de acesso, origem pendente ou versão alterada exige nova conferência.
|
||
|
||
## Composição e consulta
|
||
|
||
Nova base/role de demonstração e bases distintas de regressão no cluster55439. O instalador industrial exige livro novo vazio e cria apenas a selecção imutável dos perímetros QA; não migra instalações anteriores. Guardas SQL de custeio industrial são configuradas para a identidade exacta dessas bases novas, preservando os bloqueios no destino. A capacidade `industrial_ledger.synthetic_enabled` fica desligada por omissão.
|
||
|
||
O painel conjunto passa a incluir lotes industriais apenas quando essa capacidade foi explicitamente composta. Páginas independentes de25; resultados/decisões/lançamentos são lidos em conjuntos por página, sem conferência por cartão. Os cartões distinguem metadados registados de uma conferência actual. Sem `industrial_costs.view`, o painel não revela linhas ou contagens, e não expõe formas de fecho. Origem indisponível falha explicitamente. A página do lote, diário genérico e razão mantêm ID industrial tipado e ligações à evidência; não apresentam lote como dívida de fornecedor.
|
||
|
||
Reutilizam-se apenas direitos existentes: preparador industrial `.view/prepare`, validador `.view/validate`, leitor `.view`, mais os direitos contabilísticos/contextuais já autorizados. As concessões existem exclusivamente nas fixtures novas. Sem novos direitos públicos/reais ou associação de privilégios a pessoas reais.
|
||
|
||
O módulo proprietário impede reutilizar `source_ref` entre lotes. A ligação contabilística recusa origens seleccionadas que coincidam com perímetros de custo directo; o adaptador directo também confere a composição industrial quando activada. São origens sintéticas distintas. Isto não constitui um adaptador de stock ou prova de equivalência de referências empresariais legadas.
|
||
|
||
## Resultados e provas
|
||
|
||
Manifesto: [common-ledger-industrial-20261103.json](proofs/common-ledger-industrial-20261103.json).
|
||
|
||
| Prova | Resultado |
|
||
|---|---|
|
||
| Regressão `1aa5762a0c16` | 8 casos/31 verificações em rollback: exactidão, parcialidade, dependências, direitos/pessoa, contexto elegível de tenant/empresa/unidade diferente, quatro pontos de falha, recuperação, duplicação, sobreposição directa, mapeamento imutável e páginas25+1 |
|
||
| Limites adicionais na mesma base | 5 casos/10 verificações em rollback: resultado não aprovado, total racional1800,0000002 sem arredondamento, produção não concluída, critério pendente, origem reutilizada entre lotes, sucessora de resultado já lançado e período incompatível |
|
||
| HTTP real | 43 verificações: autenticação, CSRF, contexto/módulo, filtros, impacto, preparador/validador distintos, revisão antiga, repetição, razão/diário tipados e recusa de fecho com outras fontes pendentes |
|
||
| JavaScript industrial renderizado | 5 verificações em Node VM: IDs numéricos, revisão textual exacta, datas/período, chave estável, nova chave para novo fundamento e apresentação/recuperação de recusa |
|
||
| Percurso conjunto | 33 verificações em `1aa5762a0c16`, após o HTTP industrial; nove lançamentos/19 linhas e fecho único, incluindo perda de direitos industriais e sucessora industrial do mesmo valor antes de fechar |
|
||
| Concorrência `e3009c989fb2` | 6 processos reais:1 leitor e5 escritores. Espera no bloqueio da empresa, cadeia até à transacção detentora observada em `pg_stat_activity`; leitor termina antes da libertação; versão industrial alterada/confirmada causa409 depois da libertação; duas aplicações recuperam o mesmo lançamento e dois fechos recuperam o mesmo fecho |
|
||
| Demo `072ef8124ab4` | 40 verificações de três perfis, links efectivos e controlos; quatro delas simulam o formulário do período em Node VM. Sem comandos de negócio. Hash antes/depois confirma fontes/outbox/direitos preservados, sem lançamento industrial ou fecho |
|
||
|
||
**162 verificações dirigidas**, incluindo9 verificações simuladas de formulário, mais a prova de6 processos concorrentes. Os13 casos de regressão são transaccionais e não consomem a demo. A primeira execução do teste adicional de produção apanhou uma `ValidationException` esperada que o auxiliar não capturava; corrigiu-se o auxiliar, preservando o comportamento de recusa do produto, antes de gerar a prova válida.
|
||
|
||
| Resultado conjunto na regressão | Valor |
|
||
|---|---:|
|
||
| Vendas/recebíveis:4 lançamentos/9 linhas | Bruto2400 por lado; saldo cliente400 |
|
||
| Custo directo e correcção:3 lançamentos/6 linhas | Bruto845 por lado; saldo custo295 |
|
||
| Fornecedor:1 lançamento/2 linhas | Bruto60 por lado; dívida financeira60 |
|
||
| Industrial:1 lançamento/2 linhas | Bruto1800 por lado; saldo industrial1800 |
|
||
| **Conjunto:9 lançamentos/19 linhas** | **Débitos5105 = créditos5105MZN;1 fecho** |
|
||
| Residual industrial | **300MZN fora do diário** |
|
||
|
||
As conferências finais comparam a origem industrial actual com a fotografia lançada, validam o equilíbrio SQL e confirmam que toda a outbox industrial continua `captured_no_stock_or_accounting`. A comparação de hash dos fornecedores de período preserva o comportamento anterior quando o fornecedor industrial está desligado, incluindo a demo8057: três painéis, sem schema industrial e impressão digital original dos dados/direitos intacta. Provas antigas válidas e pacotes congelados são conferidos por hash, não repetidos ou substituídos.
|
||
|
||
## Limitações preservadas
|
||
|
||
A demo8058 inicia-se com o custo directo275 lançado e fontes disponíveis de venda1000, fornecedor60, sucessor directo295 e industrial1800. Abertura de recebíveis, aplicações adicionais, correcção e fecho continuam por decisões individuais. As regressões consumidas estão em bases diferentes. Demos anteriores e comprovativos não foram repostos.
|
||
|
||
Sem stock valorizado, folha salarial, contas ou enquadramento fiscal real, pagamentos novos, correcção industrial, reabertura, instalação no destino, activação de Compras ou publicação. Os seis registos protegidos e a cache bloqueada não foram usados ou alterados. Alterações alheias preservadas; credenciais permanecem fora do repositório.
|
||
|
||
Revisão visual permanece pendente: HTTP e Node VM não são prova de navegador ou aceitação da equipa. Carga sustentada/concorrência em volume e capacidade de implantação continuam pendentes distintas; os ensaios pequenos não validam operação real ou a aplicação inteira. Não se acrescentaram experiências de índices nem se aplicaram índices no destino.
|