21 lines
4.4 KiB
Diff
21 lines
4.4 KiB
Diff
--- a/resources/js/lib/iva-objective-imports.ts
|
|
+++ b/resources/js/lib/iva-objective-imports.ts
|
|
@@ -38,5 +38,5 @@
|
|
}
|
|
function key(draft:Record<string,unknown>,book:ObjectiveImportBook):string{return JSON.stringify({version:objectiveImportVersion,catalog:objectiveImportTreatments,scope:acquisitionScope(draft),currency:draft.currency,location:draft.selection_labels??{},rows:book.rows});}
|
|
export function objectiveImportCurrent(draft:Record<string,unknown>,book:ObjectiveImportBook):boolean{return!!book.result&&book.result.sourceKey===key(draft,book);}
|
|
-export function recordObjectiveImports(draft:Record<string,unknown>,book:ObjectiveImportBook):ObjectiveImportBook{if(!book.rows.length||new Set(book.rows.map(r=>r.id)).size!==book.rows.length)throw new Error('Indique linhas com identidades distintas;originais conservados.');const result:ObjectiveImportCalculation={version:objectiveImportVersion,revision:(book.result?.revision??0)+1,calculatedAt:new Date().toISOString(),opportunity:acquisitionScope(draft),sourceKey:key(draft,book),source:objectiveImportSource,inputs:structuredClone(book.rows),rows:book.rows.map(r=>evaluateObjectiveImport(r,draft.currency))};const next={...book,result,history:[...(book.history??[]),...(book.result?[book.result]:[])]};saveObjectiveImportBook(draft,next);return next;}
|
|
+export function recordObjectiveImports(draft:Record<string,unknown>,book:ObjectiveImportBook):ObjectiveImportBook{throw new Error('Novas versões P046 temporariamente suspensas; dados, histórico e relatórios conservados.');if(!book.rows.length||new Set(book.rows.map(r=>r.id)).size!==book.rows.length)throw new Error('Indique linhas com identidades distintas;originais conservados.');const result:ObjectiveImportCalculation={version:objectiveImportVersion,revision:(book.result?.revision??0)+1,calculatedAt:new Date().toISOString(),opportunity:acquisitionScope(draft),sourceKey:key(draft,book),source:objectiveImportSource,inputs:structuredClone(book.rows),rows:book.rows.map(r=>evaluateObjectiveImport(r,draft.currency))};const next={...book,result,history:[...(book.history??[]),...(book.result?[book.result]:[])]};saveObjectiveImportBook(draft,next);return next;}
|
|
export function objectiveImportReportRows(draft:Record<string,unknown>):Array<[string,string,string,string]>{try{const b=objectiveImportBook(draft),r=b.result;if(!r)return[];return r.inputs.map((row,i)=>['IVA mensal',`P046 — ${row.period} — ${row.id}`,`${row.description};${r.rows[i].reason};IVA importação:${r.rows[i].importVat??'Indeterminado'};dedução:Não apurada`,`${r.opportunity};${objectiveImportCurrent(draft,b)?'Resultado actual':'Entradas alteradas;resultado histórico conservado'};versão${r.revision};${r.calculatedAt};${row.origin};importador${row.importer};documento${row.documentRef},${row.documentDate};âmbito${row.scope};factos${row.evidence};reutilização${row.reusedFrom||'Introdução directa'};correspondência${row.reference.treatment};condições internas confirmadas${row.reference.confirmed.join(',')}${row.reference.treatment==='annexI_goods'?`;AnexoI${row.reference.annexIItem??''},apenasAnexoI${String(row.reference.annexIOnly??'Por esclarecer')}`:row.reference.treatment==='pharma_manufacturing_inputs'?`;AnexoIII${row.reference.pharmaAnnexItem??''}`:''};${r.rows[i].source};sem alteração dos livros internos,ModeloA,campo11 ou totais.`]);}catch{return[['IVA mensal','P046','Dados não recuperáveis','Originais preservados;sem classificação por defeito.']];}}
|
|
--- a/resources/js/lib/iva-miners.ts
|
|
+++ b/resources/js/lib/iva-miners.ts
|
|
@@ -77,7 +77,7 @@
|
|
}
|
|
function key(draft:Record<string,unknown>,b:MinerBook):string{return JSON.stringify({version:minerVersion,scope:acquisitionScope(draft),currency:draft.currency,location:draft.selection_labels??{},rows:b.rows});}
|
|
export function minerCurrent(draft:Record<string,unknown>,b:MinerBook):boolean{return!!b.result&&b.result.sourceKey===key(draft,b);}
|
|
-export function recordMiners(draft:Record<string,unknown>,book:MinerBook):MinerBook{
|
|
+export function recordMiners(draft:Record<string,unknown>,book:MinerBook):MinerBook{throw new Error('Novas versões P059 temporariamente suspensas; dados, histórico e relatórios conservados.');
|
|
if(!book.rows.length||new Set(book.rows.map(r=>r.id)).size!==book.rows.length)throw new Error('Identifique linhas distintas;originais preservados.');
|
|
const rows=book.rows.map(r=>evaluateMiner(r,draft.currency));
|
|
// Declarative quotas cover external operations too; detect contradictions inside this saved scope.
|