import {useState} from 'react'; import {newOwnName,switchOwnNameTreatment,ownNameBook,ownNameConditions,ownNameSpecificConditions,ownNameCurrent,ownNameReportRows,ownNameSource,ownNameTreatments,recordOwnNames,saveOwnNameBook,type OwnNameBook,type OwnNameRow} from '@/lib/iva-own-name'; export function SimulationOwnName({draft,onChange}:{draft:Record;onChange:(field:string,value:string)=>void}){ const[error,setError]=useState('');let book:OwnNameBook; try{book=ownNameBook(draft);}catch(cause){return

{String(cause)}

;} const save=(next:OwnNameBook)=>{try{onChange('modelo_a_snapshot',saveOwnNameBook(draft,next));setError('');}catch(cause){setError(String(cause));}}; const change=(id:string,patch:Partial)=>save({...book,rows:book.rows.map(row=>row.id===id?{...row,...patch}:row)}); return
Comissão e mandato — circuitos emnome próprio

Oportunidade: {String(draft.context_opportunity||'entrada geral')}. Venda/prestação:mandante ou comitente → agente → terceiro. Aquisição:terceiro → agente → mandante ou comitente. Nos serviços,o mandatário emnome próprio é adquirente eprestador sucessivamente;nos bens,os papéis dependem da comissão de compra ou venda.

Conserve as contraprestações originais das duas relações separadas. Este percurso não as soma,não calcula imposto nem dedução e não cria uma comissão autónoma. A base de comissões de bensP091já entregue mantém o seu cálculo e histórico próprios.

{ownNameSource}

{error&&

{error}

} {book.rows.map(row=>
{row.description||'Circuito por identificar'} — {row.period||'mês por indicar'}
{([['description','Circuito identificado'],['operationRef','Referência da operação / pressuposto'],['operationDate','Data da operação / prevista'],['period','Mês da operação'],['documentRef','Documento / referência da previsão'],['documentDate','Data do documento / prevista'],['principalRef','Mandante ou comitente e referência'],['agentRef','Comissário ou mandatário e referência'],['thirdPartyRef','Terceiro e referência'],['contractRef','Contrato de comissão ou mandato'],['subjectRef','Bens ou serviço e âmbito do objecto'],['currency','Moeda original das contraprestações'],['firstAmount','Contraprestação original da relação1'],['firstLegRef','Referência da relação1'],['secondAmount','Contraprestação original da relação2'],['secondLegRef','Referência da relação2'],['scope','Âmbito:partes,objecto,operação eperíodo'],['evidence','Fundamento factual / pressupostos']] as const).map(([field,label])=>)} {ownNameTreatments.find(t=>t.id===row.treatment)?.kind==='goods'&&}

As relações seguem a ordem indicada no sentido escolhido;contraprestação desconhecida não é zero. A referênciaP091é reutilizável e não constitui nova exigência para identificar o circuito. Mudar sentido/natureza conserva partes,contrato,valores e referências,mas exige rever os factos próprios.

Factos próprios do circuito{[...ownNameConditions,...ownNameSpecificConditions(row.treatment)].map(([key,label])=>)}
)} {!!book.rows.length&&} {book.result&&<>

{ownNameCurrent(draft,book)?'Circuitos correspondentes às entradas guardadas.':'Entradas alteradas;circuitos históricos conservados. Reveja e identifique novamente.'} {book.history?.length??0} versões anteriores. Duas relações separadas,sem soma de bases,IVA ou dedução/campo11.

{ownNameReportRows(draft).map(([,label,value,origin],index)=>
{label}
{value}{origin}
)}
}
; }