import {useState} from 'react'; import {newNoncashBase,switchNoncashComposition,noncashBaseBook,noncashBaseConditions,noncashBaseCurrent,noncashBaseReportRows,noncashBaseSource,noncashBaseTreatments,recordNoncashBases,saveNoncashBaseBook,type NoncashBaseBook,type NoncashBaseRow} from '@/lib/iva-noncash-base'; export function SimulationNoncashBase({draft,onChange}:{draft:Record;onChange:(field:string,value:string)=>void}){ const[error,setError]=useState('');let book:NoncashBaseBook; try{book=noncashBaseBook(draft);}catch(cause){return

{String(cause)}

;} const save=(next:NoncashBaseBook)=>{try{onChange('modelo_a_snapshot',saveNoncashBaseBook(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
Base tributável — contraprestação não monetária total ou parcial

Oportunidade: {String(draft.context_opportunity||'entrada geral')}. Identifique a operação e os bens ou serviços dados em troca como contraprestação. Se houver parte em dinheiro,some o montante recebido ou a receber ao valor normal desses bens ou serviços;se não houver,confirme expressamente a ausência dessa parte.

O valor normal deve ter fundamento e âmbito correspondentes ao artigo15(4),incluindo concorrência normal,fornecedor independente,estádio de comercialização e tempo/lugar da operação ou mais próximos. Reutilize referências existentes ou indique pressupostos de projecção. O portal não avalia automaticamente bens ou serviços. Indique montantes sem o próprio IVA e sem duplicar elementos da composição. Base e IVA são resultados distintos.

{noncashBaseSource}

{error&&

{error}

} {book.rows.map(row=>{const rule=noncashBaseTreatments.find(item=>item.id===row.treatment);return
{row.description||'Operação por identificar'} — {row.period||'mês por indicar'}
{([['description','Operação identificada'],['exchangeDescription','Bens ou serviços dados em troca como contraprestação'],['agreementRef','Acordo / referência da previsão'],['documentRef','Documento da operação / referência da previsão'],['documentDate','Data do documento / prevista'],['period','Mês da operação'],['currency','Moeda de origem'],['valuationRef','Fundamento do valor normal / pressuposto'],['valuationScope','Âmbito do valor normal: bens/serviços, estádio, tempo, lugar e condições'],['compositionRef','Referência da composição sem IVA — inclusões e exclusões aplicáveis'],['evidence','Fundamento factual / pressupostos']] as const).map(([field,label])=>)} {rule&&} {row.treatment==='cash_and_noncash'&&<>}

Mudar a composição conserva valores e documentos,mas exige rever a presença ou ausência da parte monetária. Os valores ocultos e as versões anteriores mantêm-se;um campo vazio não confirma ausência de dinheiro.

{rule?
Condições próprias desta operação{noncashBaseConditions.map(([key,label])=>)}
:

Escolha a composição para apresentar os montantes aplicáveis;os valores anteriores conservam-se.

}
;})} {!!book.rows.length&&} {book.result&&<>

{noncashBaseCurrent(draft,book)?'Bases de contraprestação correspondentes às entradas guardadas.':'Entradas alteradas;bases de contraprestação históricas conservadas. Reveja e determine novamente.'} {book.history?.length??0} versões anteriores. IVA e campo11 não são preenchidos por estas bases.

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