import { modeloAFields, modeloAPurchaseReferences, modeloAReference, } from '@/lib/iva-modelo-a'; export function SimulationModeloA({ draft, }: { draft: Record; }) { let purchases: ReturnType = []; let error = ''; try { purchases = modeloAPurchaseReferences(draft); } catch (cause) { error = cause instanceof Error ? cause.message : 'Não foi possível consultar as aquisições projectadas.'; } return (

Modelo A — correspondência da simulação

{modeloAReference.status}

Esta correspondência descreve a componente de vendas01/02. Consulte o bloco de compras e apuramento parcial para os campos08–10 e14–18, que só são determinados com as parcelas necessárias completas. O IVA das vendas não é imposto final a pagar.

Aquisições já projectadas — sem dedução presumida

Reutilizam-se os valores das compras/encomendas para existências do plano. O mês da encomenda não prova a data da factura, recepção ou pagamento. Valores declarados ainda sem indicação de base líquida/IVA incluído não são tratados como base tributável. IVA suportado e IVA dedutível continuam por determinar; zero de compras não prova inexistência de outras aquisições.

{error &&

{error}

} {!purchases.length && !error && (

Sem agenda de compras recuperável do plano empresarial.

)} {!!purchases.length && (
{[ 'Mês do plano', 'Compras declaradas', 'Sem IVA', 'IVA suportado', 'Com IVA', 'IVA dedutível', ].map((name) => ( ))} {purchases.map((row) => ( ))}
Pressupostos actuais de compras; sem resultado fiscal guardado
{name}
{row.month} {row.declared ?? 'Sem informação'} Por classificar Indeterminado Por classificar Indeterminado
)}
Ver campos, cálculos, fundamentos e cobertura do Modelo A

{modeloAReference.file}. {modeloAReference.edition} SHA256:{' '} {modeloAReference.sha256}.

O exemplar contém divergências de numeração/remissões, registadas no confronto documental. Não foram corrigidas no original. A existência de um campo não activa uma regra fiscal.

{[ 'Campo', 'Finalidade', 'Origem dos dados', 'Cálculo', 'Fundamento', 'Estado', ].map((name) => ( ))} {modeloAFields.map((field) => ( {[ field.field, field.purpose, field.origin, field.calculation, field.basis, field.status, ].map((value, index) => ( ))} ))}
Campo do Modelo A → finalidade → origem → cálculo → fundamento → cobertura
{name}
{value}
); }