docs(iva): prepare G8A delivery after verified backup and isolated restore
tests / ci (push) Canceled after 0s

This commit is contained in:
2026-10-24 23:31:08 +02:00
parent fb7248661d
commit 8f14f5dde2
2 changed files with 139 additions and 0 deletions
@@ -0,0 +1,129 @@
{
"status": "ready_after_fresh_authenticated_preflight_and_verified_backup_restore",
"candidate": "fb7248661dce64def0b809479b2b30fbb099ea42",
"base_installed": "6f1cf7b7a09796b3964b39f0b1e778f978ae60fb",
"coverage_complete_branches": {
"AUD-SIM-L1-P105": [
"goods_with_transport",
"goods_without_transport",
"goods_before_import"
]
},
"branch_count_complete": 1,
"treatment_count": 3,
"runtime_delta": [
{
"path": "resources/js/lib/iva-goods-location.ts",
"sha256_LF": "c187bbaf13d408461e787786dc8cc81504fef6ed60a848f62ebffe31cfa86e6d"
},
{
"path": "resources/js/components/simulation-goods-location.tsx",
"sha256_LF": "e4440c1315a1b1009d9b51ced99d7e6a2fc65a3ebac05d6b5bde1d41a796784f"
},
{
"path": "resources/js/components/simulation-monthly-iva.tsx",
"sha256_LF": "ca7c2185d9fcf8ffc8374be4a99d3102c7e1326372859ac678603da90b3de913"
},
{
"path": "resources/js/lib/project-dossier.ts",
"sha256_LF": "c95bbd7e307ab2c7dcec42fc9d280709f0ecb7c9be174977ae571cc4447bf5b9"
}
],
"counts_before": {
"delivered": 87,
"QA": 1,
"functional_pending": 44,
"documentary": 1,
"total": 133
},
"counts_current": {
"delivered": 87,
"QA": 1,
"functional_pending": 44,
"documentary": 1,
"total": 133
},
"counts_after_delivery": {
"delivered": 88,
"QA": 0,
"functional_pending": 44,
"documentary": 1,
"total": 133
},
"QA_proofs_reused": [
"iva-l1-g8a-qa-20261024.json"
],
"authorization": "Tempo explicitly deployfb724866 through existingGit,preserve concurrentchanges and check installeddelta only",
"scope": "2026,bens corpóreos;classificação territorial apenas,sem base,taxa,IVA,isenção,dedução/campo11,direitos ou totaisModeloA. Não abrange digitais/serviços por esta regra.",
"meaning": "Local dos bens no início transporte/expedição ou,sem transporte,quando postos à disposição;regra especial do importador/transmissões subsequentes antes da importação nacional. Fora do território não equivale a isenção ou IVA zero.",
"formula": "Classificação territorial pelos factos6(1)/(2),sem cálculo monetário.",
"preservation": "87prior closures and partialP084/P085 preserved;acceptedQA reused;fresh backup/real isolated restore;installed delta only",
"partial_P084_P085": "Preparation/conditional simulation only,benefits pending;no closure",
"limits": "P084/P085 parciais e pendentes;L1aberto;P00105/06;bebidasL2/L3;Estatísticas/IAadiadas.",
"containment": "l1-g8a-readonly-rollback-20261024.patch,checked only,not applied;blocks newP105classifications,preserves readers/history/otherbranches",
"authenticated_preflight": {
"installed": {
"status": "installed",
"commit": "6f1cf7b7a09796b3964b39f0b1e778f978ae60fb",
"release": "/var/www/investmoz-homologacao/releases/6f1cf7b7a09796b3964b39f0b1e778f978ae60fb-e919f615",
"previous_release": "/var/www/investmoz-homologacao/releases/cd530b248bf9dee5a6e7f1e4d710346084a2421f-0b68e7a9",
"database_migrations": 0,
"content_imports": 0
},
"current_link": "/var/www/investmoz-homologacao/releases/6f1cf7b7a09796b3964b39f0b1e778f978ae60fb-e919f615",
"release_revision": {
"commit": "6f1cf7b7a09796b3964b39f0b1e778f978ae60fb",
"branch": "main",
"built_at": "2026-10-24T21:23:28.102878+00:00",
"manifest_sha256": "329dea28609b9850332b63a730576a539077489d9e085235be7f344c3428f39c"
},
"service": "ExecMainStatus=0\nActiveState=inactive\nSubState=dead\n",
"configuration_keys": [
"repository",
"branch",
"target_url",
"legacy_root",
"state_root",
"release_root",
"current_link",
"shared_assets",
"php",
"schema_contract",
"ci_environment",
"postgis_image",
"test_database",
"qa_port",
"retention",
"webhook_secret_file"
],
"safe_paths": {
"repository": "nala/Investidor-V2",
"release_root": "/var/www/investmoz-homologacao/releases",
"postgis_image": "postgis/postgis@sha256:01a6a70e41e6c4467c8f55f6063555ed72db2d6662cd0d571040d42eadaeb6f6"
},
"pipeline_sha256": "adec1c17654f3a8658b83b134f1e75f95391b235738552721906c3236e388604"
},
"backup_restore": {
"backup": {
"stage": "/var/backups/investmoz-l1-g8a-delivery-20261024/backup",
"target": {
"database": "teste_investidor",
"port": 5432
},
"tables": 174,
"files_verified": 369,
"dump_sha256": "8d776d1a8fe3383bf7a02b8539256ef5c9c12a8d9a07ef5e310ee70dd30de38d",
"files_sha256": "b90f41cd34fac9e2aea698e7d95eeb55893a6e1cca1c08e26d3f7ef00ca7aec3",
"restore_verified": false
},
"restore": {
"restore_verified": true,
"tables_verified": 174,
"container_network": "none",
"database": "l1_g8a_restore_20261024",
"port": 55441,
"source_dump_sha256": "8d776d1a8fe3383bf7a02b8539256ef5c9c12a8d9a07ef5e310ee70dd30de38d",
"active_database_writes": 0
}
}
}
@@ -0,0 +1,10 @@
--- a/resources/js/lib/iva-goods-location.ts
+++ b/resources/js/lib/iva-goods-location.ts
@@ -51,6 +51,7 @@
function key(draft:Record<string,unknown>,book:GoodsLocationBook):string{return JSON.stringify({version:goodsLocationVersion,scope:acquisitionScope(draft),location:draft.selection_labels??{},rows:book.rows});}
export function goodsLocationCurrent(draft:Record<string,unknown>,book:GoodsLocationBook):boolean{return!!book.result&&book.result.sourceKey===key(draft,book);}
export function recordGoodsLocations(draft:Record<string,unknown>,book:GoodsLocationBook):GoodsLocationBook{
+ throw new Error('Novas classificações P105 temporariamente suspensas; dados, histórico, relatórios e restantes ramos preservados.');
if(!book.rows.length||new Set(book.rows.map(row=>row.id)).size!==book.rows.length)throw new Error('Indique operações com identificadores distintos;originais conservados.');
const result:GoodsLocationCalculation={version:goodsLocationVersion,revision:(book.result?.revision??0)+1,calculatedAt:new Date().toISOString(),opportunity:acquisitionScope(draft),location:JSON.stringify(draft.selection_labels??{}),sourceKey:key(draft,book),source:goodsLocationSource,inputs:structuredClone(book.rows),rows:book.rows.map(row=>evaluateGoodsLocation(row))};
const next={...book,result,history:[...(book.history??[]),...(book.result?[book.result]:[])]};saveGoodsLocationBook(draft,next);return next;