--- a/resources/js/lib/iva-secondhand.ts +++ b/resources/js/lib/iva-secondhand.ts @@ -74,6 +74,7 @@ function key(draft:Record,book:SecondhandBook):string{return JSON.stringify({version:secondhandVersion,scope:acquisitionScope(draft),location:draft.selection_labels??{},currency:draft.currency,rows:book.rows});} export function secondhandCurrent(draft:Record,book:SecondhandBook):boolean{return!!book.result&&book.result.sourceKey===key(draft,book);} export function recordSecondhands(draft:Record,book:SecondhandBook):SecondhandBook{ + throw new Error('Novos cálculos P092/P093/P125 temporariamente suspensos;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:SecondhandCalculation={version:secondhandVersion,revision:(book.result?.revision??0)+1,calculatedAt:new Date().toISOString(),opportunity:acquisitionScope(draft),location:JSON.stringify(draft.selection_labels??{}),sourceKey:key(draft,book),source:secondhandSource,inputs:structuredClone(book.rows),rows:book.rows.map(row=>evaluateSecondhand(row,draft.currency))}; const next={...book,result,history:[...(book.history??[]),...(book.result?[book.result]:[])]};saveSecondhandBook(draft,next);return next;