Prepare L3 C substitutions with frozen predecessor and payment reconciliation in QA

This commit is contained in:
2026-10-25 14:23:56 +02:00
parent 3aa851a467
commit b7a745e64f
13 changed files with 444 additions and 3 deletions
@@ -26681,5 +26681,99 @@
"registered_paid_MZN": 30,
"outstanding_MZN": 42
}
},
"l3_c_qa_20261025": {
"status": "L3-C concluído em QA no âmbito demonstrado;sem instalação",
"matrix_anchor": "AUD-SIM-INT02",
"installed_revision": "109cb0fe",
"installed_receipt": "3aa851a4",
"implemented": {
"prior": "Vínculo expresso a resultadoAB/C congelado por identidade,versão e impressão de alterações,com âmbito/período/natureza,17/18,pagamentos/reporte e saldo anterior. Reutiliza data disponível e referência da substituição anterior;divergência exige reconciliação.",
"differential": "21=(17actual−18actual)−(17anterior−18anterior),fracções exactas;22=max(21,0);24=22+juros adicionais identificados. Crédito credor separado,aguarda comunicação20;19/20/25/26/27 não atribuídos porC.",
"payments": "Só pagamentos adicionais;documentosAB/C recuperados,incluindo versões históricas,impedem reutilização. ReciprocamenteABrecusa pagamento já congelado emC. Créditos já usados não são aplicados outra vez.",
"F": "Saldo adicional e anterior separados;total por liquidar é soma sem compensação automática do crédito pendente/excedente. Total registado conserva pagamentos anteriores mais adicionais;nenhuma alteração da declaração original.",
"history": "Novo mapaivaSubstitutions no snapshot existente;entradas/resultados congelados,histórico acrescentado,relatório usa próprias entradas. Cadeia de substituições liga versão anterior ao novo diferencial;sem ciclos/duplicação de sucessores. Todos os mapasL1/L2/AB preservados.",
"UI": "Percurso no componente existente de aquisições,preparação versus apresentada fora doInvesteMoz,origens congeladas,motivo,juros e pagamentos adicionais. Gravar/recuperar/relatório privado existentes reutilizados."
},
"source_cotejo": {
"accepted_exemplar": "VAT Return.pdf SHA2569c0b99a810c7db53eb75d63c22ee22fb86a50ba57bd5509041ed80ee10f75741,p2/quadro9;quatro combinações de17/18,positivo22,negativo só20 após comunicação.",
"regulation": "Decreto7/2008,RCIVA15,BR16,16/04/2008,PDF3/p101;distinção entre primeira declaração e substituição.",
"scope": "C substituição da declaração;rectificação de aquisições12/13 e regularizações/errosL2 mantêm âmbito próprio,sem repetir a mesma correcção como benefício adicional.",
"originals_unchanged": true,
"no_new_generic_research": true
},
"example_MZN": {
"original": {
"17": 160,
"19_used": 70,
"20_used": 20,
"24": 72,
"paid": 30,
"outstanding": 42
},
"corrected_L2_17": 220,
"substitution": {
"21": 60,
"22": 60,
"additional_interest23": 1,
"additional_calculated24": 61,
"additional_paid": 20,
"additional_outstanding": 41
},
"reconciliation": {
"total_registered_paid": 50,
"total_outstanding_without_offset": 83
},
"credit_example": "Actual18=40 versus anterior17=160→21=−200;crédito200 aguarda comunicação,não abate42anteriores nem cria26."
},
"validation": {
"frontend": "18dirigidos passaram na integraçãoAB/C (9AB+9C);após ajuste de actualidade,10C passaram;teste adicional de ciclo passou isoladamente. Total20casos dirigidos distintos(9AB+11C).",
"API": "1teste/109asserções;guarda DBsimulator_fiscal_delta_20261021_test/55441 eDatabaseTransactions rollback. Snapshot recuperado byte a byte,declaraçãoABoriginal72/30/42,mapasL1/L2/históricos preservados.",
"types": "npm.cmd run types:check passou",
"build": "npm.cmd run build passou",
"UI": "Componente real:recibo anteriorP1recusado como novo pagamento;reporP2 permite reconciliação;gravação→recuperação→relatório confirma61/20/41 adicionais,30/42 anteriores e50/83 totais. ComparaçãoAPI/UI confirma todos os mapas anteriores inalterados.",
"proof": "outputs/iva-l3-c-20261025/ui-recovered-substitution.png",
"logs": [
"outputs/iva-l3-c-20261025/frontend-final.txt",
"outputs/iva-l3-c-20261025/frontend-c-final.txt",
"outputs/iva-l3-c-20261025/frontend-cycle.txt",
"outputs/iva-l3-c-20261025/api-final.txt",
"outputs/iva-l3-c-20261025/types-final.txt",
"outputs/iva-l3-c-20261025/build-final.txt"
]
},
"limits": [
"Cobertura demonstrada2026/MZN com origensL2 e declarações anteriores congeladas recuperáveis. Cenários projectados permanecem pressupostos;nenhuma submissãoAT ou certificação de cobrança.",
"RCIVA15 refereModeloB;exemplar recebidoVAT Return assinala substituiçãoModeloA. Cálculo e dossier de apoio disponíveis;preenchimento/submissão do formulário regulamentar e correspondência de edição não automatizados. Não reabreP00105/06.",
"Juros adicionais:montante identificado ou inexistência expressa com fonte/motivo;sem cálculo de taxa/calendário/prazo. Pagamentos anteriores não abatidos novamente;excedente adicional não cria crédito20.",
"Diferencial credor aguarda comunicação dos serviços;não cria transporte26/reembolso27 nem compensa dívida anterior automaticamente. A comunicação20 futura é registada no percursoAB existente com documento/data;sem pedido/submissão automática ou conta corrente centralAT.",
"Controlo de duplicação limitado aos livros recuperados no mesmo rascunho/contextos efectivos;cenários de oportunidades distintas são independentes. Não é reconciliação global entre rascunhos privados diferentes.",
"Históricos permanecem intactos. Versão anterior é escolhida expressamente;alterações/preparações não substituem uma declaração apresentada. Uma mesma anterior não tem dois sucessores no mesmo âmbito recuperado;cadeias circulares recusadas.",
"L3-D reembolso geral eL3-E restituição de bebidas pendentes. L2 mantém18(6)+afectação mista,sucessivas/plurianuais,erros/incobráveis. L1 mantém129fechos+P058/P084/P085+P001=133. Estatísticas/IA adiadas."
],
"runtime_delta": [
{
"path": "resources/js/lib/iva-substitution.ts",
"sha256_LF": "0ea914bf952ff053f7e6912705f80526aaed5a8b9f4b3bd5a27f737c4aef3977"
},
{
"path": "resources/js/components/acquisition-substitution.tsx",
"sha256_LF": "6a61f59bcbd493ca45e60a14fe3c67375f581581f9cbe882426fdbffa98399c2"
},
{
"path": "resources/js/lib/iva-closure.ts",
"sha256_LF": "3e6491a5e14ee36d264fac56ce1dd363044e2aa34e99fd8325ddf997b97afedb"
},
{
"path": "resources/js/components/simulation-acquisitions.tsx",
"sha256_LF": "8723882e67dcd6e1ac48b4e3d6602565331cc66295dd887381d50cfdeb072787"
},
{
"path": "resources/js/lib/project-dossier.ts",
"sha256_LF": "320440142dff8b26f3eb3c4760b1bbc475694a7e67934e3671cd7d085f30516a"
}
],
"schema_changes": false,
"active_writes": false
}
}
@@ -0,0 +1,45 @@
{
"status": "QA_prepared_not_installed",
"candidate": "commit que contém este manifesto",
"baseline_installed": "109cb0fe9e1530dd09b8277a422ae9c5e68e0674",
"baseline_receipt": "3aa851a4",
"report": "docs/investmoz/simulations/l3-c-substitution-qa-20261025.json",
"coverage": "L3-C no âmbito demonstrado;D/E e residuaisL1/L2 mantidos",
"runtime_delta": [
{
"path": "resources/js/lib/iva-substitution.ts",
"sha256_LF": "0ea914bf952ff053f7e6912705f80526aaed5a8b9f4b3bd5a27f737c4aef3977"
},
{
"path": "resources/js/components/acquisition-substitution.tsx",
"sha256_LF": "6a61f59bcbd493ca45e60a14fe3c67375f581581f9cbe882426fdbffa98399c2"
},
{
"path": "resources/js/lib/iva-closure.ts",
"sha256_LF": "3e6491a5e14ee36d264fac56ce1dd363044e2aa34e99fd8325ddf997b97afedb"
},
{
"path": "resources/js/components/simulation-acquisitions.tsx",
"sha256_LF": "8723882e67dcd6e1ac48b4e3d6602565331cc66295dd887381d50cfdeb072787"
},
{
"path": "resources/js/lib/project-dossier.ts",
"sha256_LF": "320440142dff8b26f3eb3c4760b1bbc475694a7e67934e3671cd7d085f30516a"
}
],
"limits": [
"Cobertura demonstrada2026/MZN com origensL2 e declarações anteriores congeladas recuperáveis. Cenários projectados permanecem pressupostos;nenhuma submissãoAT ou certificação de cobrança.",
"RCIVA15 refereModeloB;exemplar recebidoVAT Return assinala substituiçãoModeloA. Cálculo e dossier de apoio disponíveis;preenchimento/submissão do formulário regulamentar e correspondência de edição não automatizados. Não reabreP00105/06.",
"Juros adicionais:montante identificado ou inexistência expressa com fonte/motivo;sem cálculo de taxa/calendário/prazo. Pagamentos anteriores não abatidos novamente;excedente adicional não cria crédito20.",
"Diferencial credor aguarda comunicação dos serviços;não cria transporte26/reembolso27 nem compensa dívida anterior automaticamente. A comunicação20 futura é registada no percursoAB existente com documento/data;sem pedido/submissão automática ou conta corrente centralAT.",
"Controlo de duplicação limitado aos livros recuperados no mesmo rascunho/contextos efectivos;cenários de oportunidades distintas são independentes. Não é reconciliação global entre rascunhos privados diferentes.",
"Históricos permanecem intactos. Versão anterior é escolhida expressamente;alterações/preparações não substituem uma declaração apresentada. Uma mesma anterior não tem dois sucessores no mesmo âmbito recuperado;cadeias circulares recusadas.",
"L3-D reembolso geral eL3-E restituição de bebidas pendentes. L2 mantém18(6)+afectação mista,sucessivas/plurianuais,erros/incobráveis. L1 mantém129fechos+P058/P084/P085+P001=133. Estatísticas/IA adiadas."
],
"required_at_delivery": [
"fetchmain fresco,preservação de concorrência",
"backup/restauro autenticados antes da instalação",
"Git existente,conferência só do delta eprovasQA reutilizadas"
],
"active_writes": false
}
@@ -0,0 +1,94 @@
{
"status": "L3-C concluído em QA no âmbito demonstrado;sem instalação",
"matrix_anchor": "AUD-SIM-INT02",
"installed_revision": "109cb0fe",
"installed_receipt": "3aa851a4",
"implemented": {
"prior": "Vínculo expresso a resultadoAB/C congelado por identidade,versão e impressão de alterações,com âmbito/período/natureza,17/18,pagamentos/reporte e saldo anterior. Reutiliza data disponível e referência da substituição anterior;divergência exige reconciliação.",
"differential": "21=(17actual−18actual)−(17anterior−18anterior),fracções exactas;22=max(21,0);24=22+juros adicionais identificados. Crédito credor separado,aguarda comunicação20;19/20/25/26/27 não atribuídos porC.",
"payments": "Só pagamentos adicionais;documentosAB/C recuperados,incluindo versões históricas,impedem reutilização. ReciprocamenteABrecusa pagamento já congelado emC. Créditos já usados não são aplicados outra vez.",
"F": "Saldo adicional e anterior separados;total por liquidar é soma sem compensação automática do crédito pendente/excedente. Total registado conserva pagamentos anteriores mais adicionais;nenhuma alteração da declaração original.",
"history": "Novo mapaivaSubstitutions no snapshot existente;entradas/resultados congelados,histórico acrescentado,relatório usa próprias entradas. Cadeia de substituições liga versão anterior ao novo diferencial;sem ciclos/duplicação de sucessores. Todos os mapasL1/L2/AB preservados.",
"UI": "Percurso no componente existente de aquisições,preparação versus apresentada fora doInvesteMoz,origens congeladas,motivo,juros e pagamentos adicionais. Gravar/recuperar/relatório privado existentes reutilizados."
},
"source_cotejo": {
"accepted_exemplar": "VAT Return.pdf SHA2569c0b99a810c7db53eb75d63c22ee22fb86a50ba57bd5509041ed80ee10f75741,p2/quadro9;quatro combinações de17/18,positivo22,negativo só20 após comunicação.",
"regulation": "Decreto7/2008,RCIVA15,BR16,16/04/2008,PDF3/p101;distinção entre primeira declaração e substituição.",
"scope": "C substituição da declaração;rectificação de aquisições12/13 e regularizações/errosL2 mantêm âmbito próprio,sem repetir a mesma correcção como benefício adicional.",
"originals_unchanged": true,
"no_new_generic_research": true
},
"example_MZN": {
"original": {
"17": 160,
"19_used": 70,
"20_used": 20,
"24": 72,
"paid": 30,
"outstanding": 42
},
"corrected_L2_17": 220,
"substitution": {
"21": 60,
"22": 60,
"additional_interest23": 1,
"additional_calculated24": 61,
"additional_paid": 20,
"additional_outstanding": 41
},
"reconciliation": {
"total_registered_paid": 50,
"total_outstanding_without_offset": 83
},
"credit_example": "Actual18=40 versus anterior17=160→21=−200;crédito200 aguarda comunicação,não abate42anteriores nem cria26."
},
"validation": {
"frontend": "18dirigidos passaram na integraçãoAB/C (9AB+9C);após ajuste de actualidade,10C passaram;teste adicional de ciclo passou isoladamente. Total20casos dirigidos distintos(9AB+11C).",
"API": "1teste/109asserções;guarda DBsimulator_fiscal_delta_20261021_test/55441 eDatabaseTransactions rollback. Snapshot recuperado byte a byte,declaraçãoABoriginal72/30/42,mapasL1/L2/históricos preservados.",
"types": "npm.cmd run types:check passou",
"build": "npm.cmd run build passou",
"UI": "Componente real:recibo anteriorP1recusado como novo pagamento;reporP2 permite reconciliação;gravação→recuperação→relatório confirma61/20/41 adicionais,30/42 anteriores e50/83 totais. ComparaçãoAPI/UI confirma todos os mapas anteriores inalterados.",
"proof": "outputs/iva-l3-c-20261025/ui-recovered-substitution.png",
"logs": [
"outputs/iva-l3-c-20261025/frontend-final.txt",
"outputs/iva-l3-c-20261025/frontend-c-final.txt",
"outputs/iva-l3-c-20261025/frontend-cycle.txt",
"outputs/iva-l3-c-20261025/api-final.txt",
"outputs/iva-l3-c-20261025/types-final.txt",
"outputs/iva-l3-c-20261025/build-final.txt"
]
},
"limits": [
"Cobertura demonstrada2026/MZN com origensL2 e declarações anteriores congeladas recuperáveis. Cenários projectados permanecem pressupostos;nenhuma submissãoAT ou certificação de cobrança.",
"RCIVA15 refereModeloB;exemplar recebidoVAT Return assinala substituiçãoModeloA. Cálculo e dossier de apoio disponíveis;preenchimento/submissão do formulário regulamentar e correspondência de edição não automatizados. Não reabreP00105/06.",
"Juros adicionais:montante identificado ou inexistência expressa com fonte/motivo;sem cálculo de taxa/calendário/prazo. Pagamentos anteriores não abatidos novamente;excedente adicional não cria crédito20.",
"Diferencial credor aguarda comunicação dos serviços;não cria transporte26/reembolso27 nem compensa dívida anterior automaticamente. A comunicação20 futura é registada no percursoAB existente com documento/data;sem pedido/submissão automática ou conta corrente centralAT.",
"Controlo de duplicação limitado aos livros recuperados no mesmo rascunho/contextos efectivos;cenários de oportunidades distintas são independentes. Não é reconciliação global entre rascunhos privados diferentes.",
"Históricos permanecem intactos. Versão anterior é escolhida expressamente;alterações/preparações não substituem uma declaração apresentada. Uma mesma anterior não tem dois sucessores no mesmo âmbito recuperado;cadeias circulares recusadas.",
"L3-D reembolso geral eL3-E restituição de bebidas pendentes. L2 mantém18(6)+afectação mista,sucessivas/plurianuais,erros/incobráveis. L1 mantém129fechos+P058/P084/P085+P001=133. Estatísticas/IA adiadas."
],
"runtime_delta": [
{
"path": "resources/js/lib/iva-substitution.ts",
"sha256_LF": "0ea914bf952ff053f7e6912705f80526aaed5a8b9f4b3bd5a27f737c4aef3977"
},
{
"path": "resources/js/components/acquisition-substitution.tsx",
"sha256_LF": "6a61f59bcbd493ca45e60a14fe3c67375f581581f9cbe882426fdbffa98399c2"
},
{
"path": "resources/js/lib/iva-closure.ts",
"sha256_LF": "3e6491a5e14ee36d264fac56ce1dd363044e2aa34e99fd8325ddf997b97afedb"
},
{
"path": "resources/js/components/simulation-acquisitions.tsx",
"sha256_LF": "8723882e67dcd6e1ac48b4e3d6602565331cc66295dd887381d50cfdeb072787"
},
{
"path": "resources/js/lib/project-dossier.ts",
"sha256_LF": "320440142dff8b26f3eb3c4760b1bbc475694a7e67934e3671cd7d085f30516a"
}
],
"schema_changes": false,
"active_writes": false
}
@@ -1,5 +1,24 @@
# Rastreabilidade, utilização e formação
## 25/10/2026 — L3-C emQA no âmbito demonstrado;homologaçãoAB preservada
AB entregue109cb0fe,recibo3aa851a4;72calculados/30pagos registados/42porliquidar intactos. C não está instalado. L3 continua aberto,Dreembolso geral eErestituição de bebidas pendentes;L1 mantém129fechos+P058/P084/P085+P001=133 eL2 mantém18(6)+mista,sucessivas/plurianuais,erros/incobráveis. Estatísticas/IAadiadas.
No componente existente de aquisições,abrir «L3-C — substituições e diferencial». Escolher versão congelada da declaração anteriorAB/C e versão corrigidaL2 do mesmo período2026/MZN. A origem conserva entidade,natureza,17/18,pagamentos,reporte e saldo por liquidar. Reutilizar data disponível e referência da substituição anterior;pedir referência em falta. Indicar motivo e referência/data da preparação ou apresentação externa. Editar não submete àAT nem altera a declaração anterior. Formulário/registo externo não automatizados:RCIVA15 refereModeloB eexemplar recebido assinala substituiçãoModeloA;divergência conservada,sem impedir o cálculo/dossier e sem reabrirP00105/06.
C calcula21=(17actual−18actual)−(17anterior−18anterior) por fracções exactas,22positivo e24comjuros adicionais identificados. Não reutiliza créditos19/20 nem atribui25/26/27. Diferencial credor aguarda comunicação dos serviços para20 numa declaração posterior em prazo;não cria reporte/refund ou compensa dívida anterior automaticamente. Comunicação recebida continua documentada no percursoAB existente. Juros:montante identificado ou inexistência expressa com motivo,sem taxa/calendário presumidos.
Registar apenas novos pagamentos. Referência já congelada emAB/C ou repetida noutro âmbito efectivo recuperado exige reconciliação. AB também recusa documento já congelado emC;tentativa inválida não apaga o pagamento anterior. Excedente adicional não cria comunicação20. O controlo refere-se aos livros recuperados,não a conta corrente centralAT ou outros rascunhos privados. Preservam-se cenários projectados independentes.
Exemplo:MZN17anterior160→corrigido220,diferencial60;juros adicionais1→61calculados;novo pagamento20→41adicionais porliquidar. Declaração anterior conserva72calculados,30pagos,42porliquidar. Reconciliação mostra50registados e83porliquidar sem compensação automática. Caso credor:actual18=40 versus anterior17=160 gera−200;200aguardam comunicação,sem abater42anteriores ou criar26. Cadeia seguinte220→250gera apenas30novos;sem cobrar novamente os60anteriores. Sucessores repetidos/ciclos recusados.
Calcular e guardar substituiçõesC,gravar rascunho privado,recuperar,abrir relatório. Resultado congela as suas entradas e origens;recalcular acrescenta histórico,não o reescreve. Relatório recuperado usa documentos/valores da versão guardada. Todos os mapas anteriores comparados integralmente;20casos dirigidos distintos,API1/109asserções na baseQA55441 comrollback,tipos/build e componente real passaram. Prova:outputs/iva-l3-c-20261025/ui-recovered-substitution.png. Relatório:docs/investmoz/simulations/l3-c-substitution-qa-20261025.json.
## 25/10/2026 — inventário antes de L3-C
AB entregue109cb0fe/3aa851a4,72calculados/30pagos/42porliquidar preservados. Sem perdas confirmadas;L1129fechos/quatroresiduais eL2três famílias pendentes mantidos. Cotejo delimitado ao quadro9 do exemplar eRCIVA15. C prepara diferencial da substituição sem duplicar19/20,pagamentos ou alterar a declaração anterior. D/E permanecem pendentes.
## 25/10/2026 — entrega conjunta L3-A/B
Instalado 109cb0fe, candidata f7b778cd;7a380b76 preservada na ancestralidade e no backup/restauro anterior. IntegraçãoGit única,backup novo e restauroDocker isolado real antes da instalação. Delta:4ficheiros de execução,4originais fiscais inalterados,7marcadores compilados,manifesto/revisão e simuladorHTTP200. Comparação de dados/schema/ficheiros/configuração com identidadepostgres equivalente;apenas cache/sessions podem variar. Sem migrações/importações/recálculo de históricos;provasQA aceites reutilizadas.
File diff suppressed because one or more lines are too long