Files
SGF/docs/SGF_FISCAL_RULES_COMMON_DELIVERY.md
2026-11-11 09:00:17 +02:00

53 lines
8.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Núcleo comum de regras fiscais versionadas QA
Entregue10/11/2026, `SGF-FISCAL-RULES-COMMON-QA-v1`, após a [autorização expressa](SGF_FISCAL_RULES_COMMON_SCOPE.md). Mesma8085, entrada **Contabilidade → Regras fiscais versionadas QA → Abrir catálogo, histórico e cálculo QA**, ou `/fiscal/rules` depois de escolher uma função autorizada. Sem SGC ou nova demonstração.
## Percurso funcional conservado
Financeiro13 preparou a regra artificial versão1; Financeiro14 reviu a versão exacta. Cálculo explicitamente escolhido para30/11/2026: base1000, parâmetro0,16, imposto160,00 e total1160,00. Nova preparação/revisão distintas da sucessora versão2; cálculo escolhido para01/12/2026: base1000, parâmetro artificial0,17, imposto170,00 e total1170,00. **Quatro eventos de regra e dois cálculos novos** conservados na8085. Não se trata de uma mudança legal de IVA.
O catálogo tem pesquisa literal de chave/nome/fonte, filtros família/estado, páginas SQL25/100, versões temporais e histórico por chave. Fontes, SHA, condições, moeda/unidade, precisão, prioridade, vigência e parâmetros são preservados em cada versão. A interface exige escolha explícita da definição e da regra; não adopta o primeiro registo. Referências IVA/IRPS/IRPC/ISPC/ICE/INSS/outros podem ser inventariadas como pendentes, mas não se transformam em motores legais implementados.
Revisão não equivale a activação fiscal real. Só os dois DAGs/definições artificiais exactos e fixados por SHA deste contrato podem executar no novo endpoint. Fonte desconhecida/não conferida, moeda diferente, vigência ausente/fora do intervalo, regra não escolhida/não revista/retirada ou conflito de prioridade produzem pendência, com montantes indeterminados. Não se escolhe automaticamente outra regra ou parâmetro zero.
Revisão temporal pertence à versão lógica; a sucessora futura não elimina a regra anterior válida no seu intervalo. Retirada por revisor distinto cria evento imutável para a versão escolhida, sem apagar cálculo antigo. A consulta do cálculo histórico conserva a fotografia e mostra também a avaliação actual, distinguindo passado e aplicabilidade presente. Nada é atribuído por arrasto a contribuintes, serviços, documentos, livro/mapa IVA ou seis registos antigos.
## Reutilização e precisão
Reutilizado o avaliador declarativo `SimulationTaxRuleExpression.php` já existente no InvesteMoz, numa cópia local controlada: [proveniência e adaptações](integration/sgf-fiscal-expression-port.json). Namespace/classe próprios e limites decimais24 inteiros/8 casas na linguagem; a entrada pública de base limita16 inteiros/8 casas. Sem carregar o portal em execução, dossiers de utilizadores, conversas ou regras legais automaticamente. A comparação com a classe de origem ocorreu apenas no teste local de paridade, com SHA fixado.
Operações declarativas da linguagem são validadas, sem `eval`, scripts, chamadas de funções, URLs ou código proveniente do documento. O endpoint de cálculo só executa o DAG percentual artificial fixado; expressões de referências pendentes não são executadas. Não se oferece execução arbitrária de DAGs ao cliente.
Aritmética racional exacta, representação documental explícita por truncagem de duas casas e diferença preservada. Caso SGF anterior1000,03×0,16: exacto160,0048, documental160,00, diferença0,0048, total1160,03; compatibilidade comprovada. Base com oito casas é preservada; se não representável em duas casas, o total fica pendente, sem truncagem silenciosa da base. Não se usa apresentação como regra legal.
## Autoridade, persistência e recuperação
`fiscal_rules.view/prepare/review`: **sete concessões por cada base QA existente**,14 no conjunto, exactamente [como aprovado](integration/sgf-fiscal-rules-access-proposal.json). Preparação/cálculo13, revisão/retirada14, consulta13–17. Sem novos utilizadores, PGroles, direitos PUBLIC ou acessos reais. Configuração root desligada; activação limitada ao QA8085 com fonte por SHA.
`fr_events` conserva cada preparação/revisão/recusa/retirada, predecessor, alvo exacto, versão/revisão, autor/preparador/data/fundamento/definição. `fr_calculations` fixa entrada, regra/versão/fonte, passos, resultado e dependências. `fr_commands` fixa chave própria, hash e resultado com impacto anterior/posterior. Triggers protegem direitos, pertença, versões, revisão distinta e história append-only; guarda física existente restringe as tabelas a QA, com PUBLIC revogado.
Prévia cifrada600s em savepoint revertido; pode avançar sequências, sem persistir regra/cálculo/auditoria de negócio. Confirmação revalida pessoa/direitos/contexto/autor, fonte, revisão global e impacto sob o mesmo bloqueio de empresa usado na composição. Duas decisões da mesma versão não podem coexistir. Chave repetida recupera resultado histórico sem executar; dados diferentes com a mesma chave são recusados. Recibo próprio é consultável noutra sessão, sem divulgar chaves de outro actor.
Interface protege campos/paginação enquanto há prévia ou resultado incerto, conserva dados não submetidos ao paginar e recupera o mesmo pedido. Seleccionar um cálculo histórico não escolhe a sua regra automaticamente. Textos e fontes são apresentados como dados, sem executar instruções neles contidas.
## Provas dirigidas e preservação
|Conjunto|Resultado|
|---|---|
|39 regressão, rollback integral|Preparação/revisão distintas, montantes e fronteiras, desconhecido≠zero, fonte/SHA/expressão indevidos, sucessora, conflito/retirada, precisão/diferença, revogação e histórico, recibos, falha/reversão atómica/recuperação, dados antigos intactos.|
|Oito de paridade|Classe local versus classe de origem fixada: valores exactos e oito casas, referência197,53, ausência sem defaults, ciclos/operações ilegais recusados, limite de entrada do consumidor. Sem suites do portal ou dependência de runtime.|
|14 SQL/fronteiras, rollback|127 versões de metadados para25/100; filtros literais/família/estado/histórico, contexto/expiração/autor revogado, módulo/unidade, histórico imutável e escrita/salto de versão indevidos. Fixtures de metadados não são operações fiscais reais.|
|Concorrência, regressão existente|Primeira revisão mantém lock da empresa; segunda503/Retry-After5 após cerca5s; libertação→409 por revisão antiga. Uma revisão, primeira chave recuperada sem duplicação. Dois eventos QA conservados só na regressão.|
|24 HTTP na8085|Seis confirmações explícitas (quatro eventos/dois cálculos), repetições, resultado160/1160 e170/1170, fotografia antiga intacta, vigência/falta de escolha, filtros/histórico, actor/módulo/tenant/IDs e recibo noutra sessão. Progresso guardado, sem repetir decisões válidas.|
|14 DOM→HTTP|Consulta e escolha explícita, cálculo/prévia real revertida, bloqueio/impacto/cancelamento, dados preservados ao paginar, histórico/recuperação. Zero POSTs de confirmação. Livro/mapa IVA anterior continua revisto e com quatro versões. Não é navegador.|
|Três de entrada|Revisão numérica validada normalizada, UUID malformado recusado antes da consulta e nenhuma regra persistida.|
|Comparação SELECT-only|17 conjuntos originais completos e binding idênticos, incluindo quatro versões/comandos IVA, documentos, recebíveis, Caixa, clientes, fiscalidade, Stock,27 lançamentos e períodos. Apenas sete concessões aprovadas adicionadas.|
[Índice de provas](proofs/sgf-fiscal-rules-20261110.json). Total102 verificações dirigidas, concorrência discriminada à parte. Provas válidas dos outros módulos e do IVA reaproveitadas, não repetidas. Backups/credenciais/dados privados fora do repositório; assets e alterações alheias conservados. Sem novos efeitos financeiros, índices no destino, novas bases/portas/demos, SGC, publicação/candidata, aceitação/checkpoint ou capacidade de implantação presumidos.
## Limites
Este núcleo governa versões e executa dois casos aritméticos artificiais. Não conclui IVA operacional geral, IRPS/IRPC/ISPC/ICE/INSS, remunerações, modelos oficiais ou calendário legal; não confirma fontes legislativas actuais. O documento de requisitos não contém por si essas regras. Os restantes requisitos amplos continuam visíveis na matriz, sem serem escondidos pelo recorte QA.
Diário27, Caixa fechada950, livro/mapa IVA com quatro versões, seis registos e cache intactos. Visual continua pendente; a via bloqueada não foi repetida. Carga sustentada, retenção/órfãos, arranque completo, conformidade e implantação exigem prova própria.