Implement scoped L3 A B credit carry and VAT closure with frozen L2 sources

This commit is contained in:
2026-10-25 14:01:33 +02:00
parent 508aeb5205
commit f7b778cdce
12 changed files with 496 additions and 2 deletions
@@ -26324,5 +26324,55 @@
"external_research": false,
"runtime_changes": false,
"active_writes": false
},
"l3_ab_closure_qa_20261025": {
"status": "L3-A/B concluído em QA no âmbito demonstrado;preparado para entrega conjunta,sem instalação",
"report": "docs/investmoz/simulations/l3-ab-closure-qa-20261025.json",
"manifest": "docs/investmoz/simulations/l3-ab-prepared-delivery-20261025.json",
"installed_revision": "7a380b76",
"L1": {
"delivered": 129,
"functional_residuals": [
"P058",
"P084",
"P085"
],
"documentary_residual": "P001 — exclusivamente05/06"
},
"L2_pending": [
"18(6)+afectação mista",
"regularizações sucessivas e plurianuais",
"regularizações por erros e incobráveis"
],
"L3_pending": [
"C — substituições",
"D — pedido/reembolso geral",
"E — restituição de bebidas"
],
"validation": {
"frontend": "18testes dirigidos passaram:9A/B novos e9E reutilizados;após ajustes finais,9A/B repetidos com preservação/histórico/relatório e todos passaram.",
"API": "1teste/103asserções;simulator_fiscal_delta_20261021_test,porta55441,DatabaseTransactions rollback. modelo_a_snapshot recuperado byte a byte;origensL2,créditos,documentos,pagamentos,contextos,históricos e todos os mapasL1/L2 anteriores conservados.",
"types": "npm.cmd run types:check passou",
"build": "npm.cmd run build passou",
"UI": "Componente real:alterar50→60 invalida Fevereiro/Março;adopção expressa em cada mês recupera continuidade. Reposição do exemploAPI,gravar→recuperar→relatório confirma150→70→0 e72calculado/30registado/42porliquidar.",
"proof": "outputs/iva-l3-ab-20261025/ui-recovered-closure.png",
"logs": [
"outputs/iva-l3-ab-20261025/frontend-tests-final.txt",
"outputs/iva-l3-ab-20261025/frontend-ab-final.txt",
"outputs/iva-l3-ab-20261025/types-final.txt",
"outputs/iva-l3-ab-20261025/build-final.txt"
]
},
"limits": [
"Âmbito demonstrado2026/MZN,primeira declaração em prazo e opção expressa de reporte integral. Prazo/data são declarados com referência,sem calendário legal automático.",
"Juros23:montante documentado/pressuposto ou inexistência expressa com motivo;taxa/prazo de juros não automatizados.",
"C:substituições21;D:pedidos de reembolso27;E:restituição de bebidas13(2) continuam pendentes na mesma matriz.27zero neste caso decorre da opção expressa de reporte integral,não da conclusãoD.",
"Declaração fora do prazo conserva origem/conta mas não fecha19–27 neste percurso;procedimento próprio pendente,sem apagar o crédito.",
"Controlo de duplicação sobre livros/mapas recuperados neste rascunho e âmbito declarado;não é conta corrente central da AT nem reconciliação automática entre rascunhos privados diferentes. Cenários projectados de oportunidades diferentes não são consumos fiscais efectivos.",
"Registo de pagamento é informação declarada,sem execução de pagamento,certificação de arrecadação ou nova comunicação20 por excedente. Não sincroniza caixa silenciosamente.",
"L2 mantém18(6)+afectação mista,regularizações sucessivas/plurianuais e erros/incobráveis.17/18 indeterminados bloqueiam só o respectivo fecho;outros casos independentes avançam.",
"L1 mantém129fechos+P058/P084/P085+P001=133;P001 exclusivamente05/06. Estatísticas eIAadiadas."
],
"active_writes": false
}
}
@@ -0,0 +1,116 @@
{
"status": "L3-A/B concluído em QA no âmbito demonstrado;preparado para entrega conjunta,sem instalação",
"matrix_anchor": "AUD-SIM-INT02",
"installed_revision": "7a380b76",
"installed_receipt": "acbd1f33",
"L1": {
"delivered": 129,
"functional_residuals": [
"P058",
"P084",
"P085"
],
"documentary_residual": "P001 — exclusivamente05/06"
},
"L2_pending": [
"18(6)+afectação mista",
"regularizações sucessivas e plurianuais",
"regularizações por erros e incobráveis"
],
"L3_pending": [
"C — substituições",
"D — pedido/reembolso geral",
"E — restituição de bebidas"
],
"source_cotejo": {
"accepted_exemplar": "VAT Return.pdf SHA2569c0b99a810c7db53eb75d63c22ee22fb86a50ba57bd5509041ed80ee10f75741,p1–2;DOCX62c198e9/63d45fa8 preservados",
"articles": "CIVA21(2/5),Lei13/2016 PDF15/p1426(273);23(1),PDF16/p1426(274);RCIVA12/15,Decreto7/2008 PDF3/p101. Quadro8 créditos e10/11 fecho. Lei10/2025 não fornece autorização para copiar remissãoart20 do formulário para reembolso geral;D separado.",
"conclusions": "Primeira declaração,excesso deduzido nos períodos seguintes;crédito comunicado exige referência/data da comunicação;utilização anterior apenas em prazo.25/26 não equivalem a recebimento. Fora do prazo não usar crédito por presumirzero;conservar conta e indicar procedimento.",
"divergences": "Cabeçalho do exemplar refere18/19,mas caixas19/20 identificadas;divergência visível,sem renumerar original nem reabrirP00105/06.",
"no_repeated_research": true
},
"implemented": {
"frozen_L2": "Reutiliza17/18 exactos de resultado congelado com oportunidade,período,moeda,localização,revisão,data e impressão de alterações;não recalcula L2. Acrescentar versãoL2 não invalida automaticamente uma origem congelada ainda disponível. Origem ausente/fabricada/indeterminada impede o fecho dependente.",
"credits": "19:saldo de abertura do mês anterior com documento/período e montante disponível,ou26 do fecho imediatamente anterior adoptado expressamente.20:comunicação recebida,referência,origem,data e montante. Cobertura de todos os créditos confirmada;lista vazia não viraausência silenciosa. Documento não duplicado como abertura e comunicação nem entre linhas/períodos do âmbito recuperado.",
"closure": "22=max(17−19−20,0);25=max(18+19+20−17,0);24=22+23;26=25 por opção expressa de reporte integral e27=0 por ausência expressa de pedido nessa opção.21não aplicável à primeira declaração,sem declararCimplementado. Valores desconhecidos não viramzero.",
"payments": "Documento,data e montante registados separados de24 e26;saldo por liquidar e excedente pago calculados separadamente. Pagamento não altera IVA/creditotransportado. Excedente não cria crédito20 sem comunicação. Referência repetida exige reconciliação.",
"continuity": "Três períodos encadeados,fracções exactas sem somar aproximações. Alteração de crédito original preserva versão anterior e exige adopção expressa em cada dependente;botão disponível mesmo mantendo o mesmo identificador do fecho anterior. Editar apenas pagamentos não altera o crédito26.",
"reuse": "Reutiliza livro/modelo_a_snapshot,ETag/API privada,aritmética e relatório de dossier existentes. Entidade fiscal única já indicada reutilizada ao preparar outro mês. Valores ocultos preservados,sem novos aprovadores/certificados.",
"history": "Cada resultado congela entradas completas e resultados;recalcular acrescenta o anterior ao histórico. Relatório histórico lê os seus próprios documentos/créditos/pagamentos,não as novas entradas editadas. Originais e mapasL1/L2 comparados integralmente."
},
"demonstration_MZN": [
{
"period": "2026-01",
"L2_18": "100",
"19_opening": "50",
"25": "150",
"26": "150",
"paid": "0"
},
{
"period": "2026-02",
"L2_17": "80",
"19_from_Jan": "150",
"25": "70",
"26": "70",
"paid": "0"
},
{
"period": "2026-03",
"L2_17": "160",
"19_from_Feb": "70",
"20_communicated": "20",
"22": "70",
"23": "2",
"24": "72",
"paid": "30",
"outstanding": "42",
"26": "0"
}
],
"exact_fraction_example": "ResultadoL2 deIVA500×1/3 menos160=20/3;maisabertura50=170/3 transportados;no mês seguinte80−170/3=70/3 a entregar. Sem transporte de decimal arredondado.",
"validation": {
"frontend": "18testes dirigidos passaram:9A/B novos e9E reutilizados;após ajustes finais,9A/B repetidos com preservação/histórico/relatório e todos passaram.",
"API": "1teste/103asserções;simulator_fiscal_delta_20261021_test,porta55441,DatabaseTransactions rollback. modelo_a_snapshot recuperado byte a byte;origensL2,créditos,documentos,pagamentos,contextos,históricos e todos os mapasL1/L2 anteriores conservados.",
"types": "npm.cmd run types:check passou",
"build": "npm.cmd run build passou",
"UI": "Componente real:alterar50→60 invalida Fevereiro/Março;adopção expressa em cada mês recupera continuidade. Reposição do exemploAPI,gravar→recuperar→relatório confirma150→70→0 e72calculado/30registado/42porliquidar.",
"proof": "outputs/iva-l3-ab-20261025/ui-recovered-closure.png",
"logs": [
"outputs/iva-l3-ab-20261025/frontend-tests-final.txt",
"outputs/iva-l3-ab-20261025/frontend-ab-final.txt",
"outputs/iva-l3-ab-20261025/types-final.txt",
"outputs/iva-l3-ab-20261025/build-final.txt"
]
},
"limits": [
"Âmbito demonstrado2026/MZN,primeira declaração em prazo e opção expressa de reporte integral. Prazo/data são declarados com referência,sem calendário legal automático.",
"Juros23:montante documentado/pressuposto ou inexistência expressa com motivo;taxa/prazo de juros não automatizados.",
"C:substituições21;D:pedidos de reembolso27;E:restituição de bebidas13(2) continuam pendentes na mesma matriz.27zero neste caso decorre da opção expressa de reporte integral,não da conclusãoD.",
"Declaração fora do prazo conserva origem/conta mas não fecha19–27 neste percurso;procedimento próprio pendente,sem apagar o crédito.",
"Controlo de duplicação sobre livros/mapas recuperados neste rascunho e âmbito declarado;não é conta corrente central da AT nem reconciliação automática entre rascunhos privados diferentes. Cenários projectados de oportunidades diferentes não são consumos fiscais efectivos.",
"Registo de pagamento é informação declarada,sem execução de pagamento,certificação de arrecadação ou nova comunicação20 por excedente. Não sincroniza caixa silenciosamente.",
"L2 mantém18(6)+afectação mista,regularizações sucessivas/plurianuais e erros/incobráveis.17/18 indeterminados bloqueiam só o respectivo fecho;outros casos independentes avançam.",
"L1 mantém129fechos+P058/P084/P085+P001=133;P001 exclusivamente05/06. Estatísticas eIAadiadas."
],
"schema_changes": false,
"active_writes": false,
"runtime_delta": [
{
"path": "resources/js/lib/iva-closure.ts",
"sha256_LF": "542e75fde957a8b2ebbee8d66d17ca8c5663183f89b85e7b7819d86253dd22ea"
},
{
"path": "resources/js/components/acquisition-closure.tsx",
"sha256_LF": "2f745bd54c8753215ef6386e52d9e3ab1785330310c6b725e67bbfaef29ffd06"
},
{
"path": "resources/js/components/simulation-acquisitions.tsx",
"sha256_LF": "b94ead08dc13a89ffa0a1b89472b39836b20df73fbfe028dfe4ffa697cd7e29c"
},
{
"path": "resources/js/lib/project-dossier.ts",
"sha256_LF": "233999eea4d7ca86df8af58ed46cb026a5c9fd9a3e507e56e43fdaa801436510"
}
]
}
@@ -0,0 +1,49 @@
{
"status": "prepared_for_grouped_L3_AB_delivery_not_installed",
"candidate": "commit que contém este manifesto",
"baseline_installed": "7a380b76",
"baseline_receipt": "acbd1f33",
"report": "docs/investmoz/simulations/l3-ab-closure-qa-20261025.json",
"coverage": "L3-A/B no âmbito demonstrado;C/D/E e residuaisL1/L2 permanecem na mesma matriz.",
"compatibility_at_preparation": {
"origin_main": "7a380b76904de50ba675f0b67e0aa949672dbc65",
"main_is_ancestor": true,
"checked_utc": "2026-10-25T12:00:29.072855+00:00"
},
"runtime_delta": [
{
"path": "resources/js/lib/iva-closure.ts",
"sha256_LF": "542e75fde957a8b2ebbee8d66d17ca8c5663183f89b85e7b7819d86253dd22ea"
},
{
"path": "resources/js/components/acquisition-closure.tsx",
"sha256_LF": "2f745bd54c8753215ef6386e52d9e3ab1785330310c6b725e67bbfaef29ffd06"
},
{
"path": "resources/js/components/simulation-acquisitions.tsx",
"sha256_LF": "b94ead08dc13a89ffa0a1b89472b39836b20df73fbfe028dfe4ffa697cd7e29c"
},
{
"path": "resources/js/lib/project-dossier.ts",
"sha256_LF": "233999eea4d7ca86df8af58ed46cb026a5c9fd9a3e507e56e43fdaa801436510"
}
],
"limits": [
"Âmbito demonstrado2026/MZN,primeira declaração em prazo e opção expressa de reporte integral. Prazo/data são declarados com referência,sem calendário legal automático.",
"Juros23:montante documentado/pressuposto ou inexistência expressa com motivo;taxa/prazo de juros não automatizados.",
"C:substituições21;D:pedidos de reembolso27;E:restituição de bebidas13(2) continuam pendentes na mesma matriz.27zero neste caso decorre da opção expressa de reporte integral,não da conclusãoD.",
"Declaração fora do prazo conserva origem/conta mas não fecha19–27 neste percurso;procedimento próprio pendente,sem apagar o crédito.",
"Controlo de duplicação sobre livros/mapas recuperados neste rascunho e âmbito declarado;não é conta corrente central da AT nem reconciliação automática entre rascunhos privados diferentes. Cenários projectados de oportunidades diferentes não são consumos fiscais efectivos.",
"Registo de pagamento é informação declarada,sem execução de pagamento,certificação de arrecadação ou nova comunicação20 por excedente. Não sincroniza caixa silenciosamente.",
"L2 mantém18(6)+afectação mista,regularizações sucessivas/plurianuais e erros/incobráveis.17/18 indeterminados bloqueiam só o respectivo fecho;outros casos independentes avançam.",
"L1 mantém129fechos+P058/P084/P085+P001=133;P001 exclusivamente05/06. Estatísticas eIAadiadas."
],
"required_at_delivery": [
"Fetchmain fresco e reconciliação de concorrência semreset/force",
"Autenticação de destino,backup novo e restauro isolado antes da instalação",
"Integração pelo processoGit existente,sem migração/importação",
"Conferir apenas delta instalado e preservação com mesmo contextoRLS;reutilizar provasQA aceites",
"Emitir recibo e conservarC/D/E e os residuais anteriores"
],
"active_writes": false
}
@@ -1,5 +1,31 @@
# Rastreabilidade, utilização e formação
## 25/10/2026 — L3-A/B concluído emQA no âmbito demonstrado;entrega conjunta preparada
Homologação permanece7a380b76,reciboacbd1f33.Sem instalação,migração/importação ou recálculo de dados activos.L1129fechos+P058/P084/P085+P001=133 preservados;P001 só05/06.L2 mantém18(6)+afectação mista,regularizações sucessivas/plurianuais,erros/incobráveis.Csubstituições,Dreembolso eErestituição de bebidas continuam pendentes;Estatísticas/IAadiadas.
No bloco existente de aquisições,abrir «L3-A/B — crédito,fecho e pagamentos por período». Preparar mês escolhendo resultadoL2 congelado:17/18 exactos,contexto,moeda,revisão/data ficam identificados;nenhuma compra é recalculada. Âmbito fiscal único já indicado reutiliza-se no novo mês. Oportunidades são cenários distintos,sem consolidação automática de dossiers/entidades.
**A:**identificar saldo de abertura disponível do mês imediatamente anterior,documento e montante;ou reutilizar26do fecho anterior por adopção expressa. Crédito20 exige comunicação recebida com referência,data,origem e montante. Confirmar cobertura de todos os créditos;lista vazia não viraausência sem confirmação. Evita repetir origem como abertura/comunicação ou noutro período. Origem anterior alterada/indeterminada/gap exige revisão,não transporte silencioso;usar «Adoptar versão actual deste reporte» e calcular novamente em cada dependente.
**B:**primeira declaração,dentro do prazo declarado com data/fundamento,2026/MZN,reporte integral expressamente escolhido.22=max(17−19−20,0);25=max(18+19+20−17,0);24=22+23;26=25. Juros23 são montante documentado/pressuposto ou inexistência expressa com motivo;sem calendário/taxa presumidos.21 é não aplicável à primeira declaração,sem concluirC.27 ézero pela escolha expressa de reporte integral,sem concluirD. Fora de prazo conserva dados/conta e pede procedimento próprio;nenhum crédito apagado ou reutilizado indevidamente.
**Pagamentos:**registar referência,data e valor;calcular montante registado,restante e excedente,separados de24 e26. Excedente pago não cria crédito20 sem comunicação. Sem pagamentos registados significa lista vazia,não certificado de inexistência de pagamentos externos. Documento/data repetidos ou informação em falta pedem reconciliação. Não executa pagamentos nem certifica cobrança/submissãoAT;em projecções,todos estes valores são pressupostos.
**Histórico e relatório:**guardarfecho,gravar rascunho privado,recuperar e abrir relatório. Cada versão conserva entradas e resultados completos;relatório histórico usa documentos/valores dessa versão. Alterarcrédito50→60 conserva a anterior,invalida os reportes dependentes e permite adopção expressa. Editar só pagamento não altera o crédito transportado. Frações permanecem exactas;20/3+50=170/3,seguido de80−170/3=70/3,sem transportar aproximação decimal. Acrescentar versãoL2 não força recálculo de origem congelada ainda disponível.
Exemplo por períodoMZN:Janeiro18=100+abertura19=50→25/26=150;Fevereiro17=80,19=150→25/26=70;Março17=160,19=70,20comunicado=20→22=70;juros23=2→24=72;pagamento registado30→restante42;26=0. Relatório recuperado conserva os três meses e oportunidade373,origens,referências e valores.
Cotejo limitado a A/B:quadros8/10/11 doVAT Return9c0b99a8p1–2,CIVA21(2/5)/23(1),RCIVA12/15. Cabeçalho18/19 versus caixas19/20 mantido visível,sem alterar original ou reabrirP001. Reembolso27 e restituição13(2) não herdam esta fórmula de reporte.
9testesA/B novos,9Edirigidos reutilizados(18passaram);9A/B repetidos após ajustes finais,todos passaram.API1/103asserções,baseQA55441 com guarda e rollback;modelo_a_snapshot recuperado exactamente,origensL2 e todos os mapas anteriores conservados.Tipos/build e componente real conferidos.Prova:outputs/iva-l3-ab-20261025/ui-recovered-closure.png.
Limites:controlo de duplicação no rascunho/livros recuperados,não conta corrente centralAT nem reconciliação automática de rascunhos privados independentes. Períodos/parcelas dependentes de residuaisL2 continuam indeterminados;casos independentes avançam. Não sincronizar caixa silenciosamente. Entrega conjunta preparada emdocs/investmoz/simulations/l3-ab-prepared-delivery-20261025.json;requer fetchmain fresco,preservação de concorrência,backup/restauro e conferência do delta instalado pelo processoGit existente,quando autorizada.Relatório:docs/investmoz/simulations/l3-ab-closure-qa-20261025.json.
## 25/10/2026 — inventário anterior à implementação/testesL3-A/B
Homologação7a380b76/acbd1f33 preservada;L1129fechos/quatroresiduais eL2três famílias pendentes conservados. Nenhuma perda confirmada. Reutiliza resultadosL2 congelados,fracções eAPI/relatórios existentes. Cotejo apenas A/B:quadros8/10/11 do exemplar,VAT Return9c0b99a8 p1–2,CIVA21(2/5)/23(1),RCIVA12/15. Primeira declaração em prazo;crédito,pagamento e reporte distintos. Juros apenas montante documentado/pressuposto ou inexistência expressa com motivo,sem taxa presumida. C/D/E permanecem próprios.
## 25/10/2026 — L3:delimitação do fecho do IVA,antes de implementar
L2 entregue no âmbito demonstrado7a380b76,reciboacbd1f33.L1 conserva129fechos+P058/P084/P085+P001=133;P001 só05/06. Nenhuma reabertura.L2 conserva trabalho por concluir:18(6)+afectação mista;regularizações sucessivas/plurianuais;erros/incobráveis.Só bloqueiam as parcelas/períodos dependentes,sem impedir casos independentes deL3.Estatísticas/IAadiadas.
File diff suppressed because one or more lines are too long