{String(e)}
;} + const save=(next:TravelEventBook)=>{try{onChange('modelo_a_snapshot',saveTravelEventBook(draft,next));setError('');}catch(e){setError(String(e));}}; + const change=(id:string,patch:PartialConserve separados facto gerador e exigibilidade. Não inferir pagamento integral por um sinal, início pela emissão do bilhete ou cessação do regime por mudança de armazém. Estes eventos não calculam imposto nem concedem benefício.
{travelEventSource}
{error&&{error}
} + + {book.rows.map(row=>{const source=sources.find(s=>s.id===row.travelRowId);returnA referência demonstra o facto e o âmbito. Não se exige certificado ou autorização inventados; não há desembaraço, valor aduaneiro, direitos ou ICE automáticos.
+ >} + {row.treatment==='travel_special'&&<> + + {source&&<>Origem: {source.operationRef}; {source.scope}. Período do registo: {source.period}. {source.classification.reason}
Referências já preenchidas são conservadas; divergências precisam de conferência. O período do evento pode diferir do período da margem.
>} + {select(row,'fullPaymentState','Estado do pagamento da contraprestação',[['full','Pagamento integral confirmado'],['partial','Apenas pagamento parcial'],['none','Sem pagamentos']])} + {row.fullPaymentState==='full'&&fields(row,[['fullPaymentDate','Data do pagamento integral'],['fullPaymentRef','Referência da liquidação integral / conjunto de recebimentos']])} + {select(row,'startState','Início da viagem/alojamento e primeiro serviço',[['started','Primeiro serviço/início ocorrido no cenário conferido'],['not_started','Ainda não iniciado']])} + {row.startState==='started'&&fields(row,[['startDate','Data do primeiro serviço ao cliente'],['startRef','Referência do primeiro serviço e âmbito']])} +«Imediatamente antes» identifica o momento; não se subtrai um dia à data. Pagamento e início na mesma data não demonstram ordem intradiária.
+ {fields(row,[['amount','Contraprestação total da parcela analisada'],['currency','Moeda da contraprestação']])} + {select(row,'invoiceRequired','Operação com obrigação de emitir factura25',yn)} + {row.invoiceRequired==='yes'&&<>{fields(row,[['legalDeadline','Termo do prazo legal de emissão aplicável'],['deadlineRef','Disposição, calendário e âmbito que fundamentam o prazo']])}{select(row,'invoiceState','Factura até à conferência',[['issued','Emitida'],['not_issued','Não emitida']])}{row.invoiceState==='issued'&&fields(row,[['invoiceDate','Data de emissão da factura'],['invoiceRef','Referência da factura']])}>} + {select(row,'paymentState','Recebimento ou parcela anterior à liquidação integral',[['none','Sem recebimento'],['received','Recebimento identificado']])} + {row.paymentState==='received'&&fields(row,[['paymentDate','Data do recebimento identificado'],['paymentAmount','Montante recebido nessa parcela'],['paymentRef','Referência e âmbito da parcela recebida']])} +Se existe sinal anterior e posterior liquidação integral, identifique ambos: a parcela e o saldo não são somados duas vezes. A menção «IVA incluído» não é factura emitida por este simulador.
+ >} +Mudar percurso conserva campos ocultos e referências; reveja as confirmações próprias.
{travelEventCurrent(draft,book)?'Resultados correspondem às entradas e origens guardadas.':'Entradas/origens alteradas; resultado histórico conservado. Reveja o delta.'} {book.history?.length??0} versões anteriores. Sem base/IVA/dedução calculados.
{String(e)}
;} + const save=(next:TravelBook)=>{try{onChange('modelo_a_snapshot',saveTravelBook(draft,next));setError('');}catch(e){setError(String(e));}}; + const change=(id:string,patch:PartialPreço único, actuação em nome próprio e meios de terceiros determinam o percurso específico. Meios próprios, intermediação e revenda simples conservam o regime geral aplicável. Reutilize documentos e referências; não é necessário criar certificados ou aprovadores.
A margem é global por operador e período do registo simulado, com âmbito completo declarado. Não somar margem por pacote nem misturar dados efectivos e projectados. A base não é IVA devido nem dedução. Facturação oficial, regularização e apuramento integral continuam fora deste cálculo.
{travelSource}
{error&&{error}
} + + {book.rows.map(row=>Custos registados neste mesmo período; indicar montantes com IVA incluído. A lista vazia só representa ausência declarada de custos no âmbito completo. Publicidade, câmbio, comunicações da agência e comissões de venda não reduzem esta margem41(3); a sua eventual dedução não é calculada aqui.
+ + {row.costs.map(c=>)} + >} +Alterar meios ou percurso conserva referências e custos ocultos; reveja as confirmações próprias. Alterações de custos ou preço ficam em nova versão referenciada, sem regularização automática.
{travelCurrent(draft,book)?'Resultados correspondem ao registo guardado.':'Entradas alteradas; resultado histórico conservado. Reveja o delta.'} {book.history?.length??0} versões anteriores. Sem IVA devido ou dedução calculados.