import {SimulationOfferWorkflow} from './simulation-offer-workflow'; import { useState } from 'react'; import { newOfferPreparation,offerPreparationBook,offerPreparationSource,offerReusableData,recordOfferPreparations,reuseOfferData,saveOfferPreparationBook,emptyOfferRequest,recordOfferRequest,offerRequestLabels,offerScenarios,type OfferRequest,type OfferPreparation,type OfferPreparationBook } from '@/lib/iva-offer-preparations'; export function SimulationOfferPreparations({draft,onChange}:{draft:Record;onChange:(field:string,value:string)=>void}) { const [error,setError]=useState('');let book:OfferPreparationBook;let reusable:ReturnType; try{book=offerPreparationBook(draft);reusable=offerReusableData(draft);}catch(cause){return

{String(cause)}

;} const run=(action:()=>void)=>{try{action();setError('');}catch(cause){setError(String(cause));}}; const save=(next:OfferPreparationBook)=>onChange('modelo_a_snapshot',saveOfferPreparationBook(draft,next)); const change=(id:string,patch:Partial)=>run(()=>save({...book,rows:book.rows.map(row=>row.id===id?{...row,...patch}:row)})); const question=(row:OfferPreparation,key:'nationalInstitution'|'publicSocialInstitution'|'goodsSuitable'|'publicInterestUse'|'mitigation',label:string)=>; return
Ofertas a instituições e para calamidades — preparar rascunhos

Prepare apenas as ofertas relevantes para a oportunidade {String(draft.context_opportunity||'entrada geral')}. Pode guardar dados incompletos e reutilizar referências existentes. A reutilização preenche apenas campos vazios; as suas edições mantêm-se.

Procedimento operacional indicado pela Tempo:prepare o pedido escrito,registe a apresentação externa,a decisão com despacho e o formulário aplicável. Antes do deferimento,compare o cenário normal com uma hipótese condicionada. Apresentar o pedido não concede isenção. Estes cenários não alteram a dedução no campo11; os restantes enquadramentos continuam disponíveis.

{error&&

{error}

} {' '} {book.rows.map(row=>
{row.branch} — {row.description||'Bens por identificar'}

{row.branch==='P084'?'Artigo14(2)(a): aquisição ou importação de bens para ofertas a instituições nacionais de interesse público e relevantes fins sociais.':'Artigo14(2)(b): aquisição de bens para ofertas destinadas a atenuar efeitos de calamidades naturais.'} {offerPreparationSource}

{row.branch==='P084'&&} {row.reusedFrom&&

Referência reutilizada: {row.reusedFrom.key}. A origem foi conservada; a aquisição/importação original não foi alterada.

}
{(['description','period','currency','amount','counterparty','documentRef','documentDate','beneficiary','purpose','evidence'] as const).map((key,index)=>)}
{row.branch==='P084'?
Condições próprias da oferta à instituição{question(row,'nationalInstitution','A instituição beneficiária é nacional')}{question(row,'publicSocialInstitution','A instituição tem interesse público e relevantes fins sociais')}{question(row,'goodsSuitable','Os bens são inteiramente adequados à natureza da instituição')}{question(row,'publicInterestUse','A instituição utilizará os bens em actividades de evidente interesse público')}
:
Finalidade própria da oferta para calamidade{question(row,'mitigation','Os bens destinam-se a ofertas para atenuar os efeitos da calamidade identificada')}
} {row.branch==='P085'&&