import {useState} from 'react'; import {ispcEligibilityBook,ispcEligibilityCurrent} from '@/lib/ispc-eligibility'; import {ispcQuarterBook,saveIspcQuarterBook,recordIspcQuarter,ispcQuarterReportRows,type IspcQuarterInput,type IspcQuarterBook} from '@/lib/ispc-quarter'; export function SimulationIspcQuarter({draft,onChange}:{draft:Record;onChange:(field:string,value:string)=>void}){ const[error,setError]=useState('');if(draft.fiscal_component!=='ispc')return null; try{if(ispcEligibilityBook(draft).input.mode==='occasional')return

Actividade habitual:campos trimestrais conservados no histórico. Use o percurso de operações ocasionais próprias abaixo.

;}catch{/* Preserve the existing explicit recovery error below. */} let book:IspcQuarterBook;try{book=ispcQuarterBook(draft);}catch(e){return

{String(e)}

;} const i=book.input,save=(b:IspcQuarterBook)=>{try{onChange('modelo_a_snapshot',saveIspcQuarterBook(draft,b));setError('');}catch(e){setError(String(e));}},change=(patch:Partial)=>save({...book,input:{...i,...patch}}); let service=false,ready=false;try{const e=ispcEligibilityBook(draft);ready=ispcEligibilityCurrent(draft,e)&&e.result?.status==='compatible';service=e.input.activities.some(a=>['services12','liberal15'].includes(a));}catch{/* Show explicit preparation issue below, never fabricate eligibility. */} return

ISPC — apuramento trimestral

Reutiliza o enquadramento e a opção guardados. Declare o volume de todas as actividades do sujeito passivo em MZN; custos e IVA de aquisições não reduzem esta base. Dados em falta permanecem indeterminados.

{!ready&&

Reveja e guarde primeiro a avaliação de enquadramento acima. As entradas trimestrais e o histórico ficam conservados.

}{error&&

{error}

}
{i.sales.map((v,n)=>(nTrimestre {n+1}{n+1===Number(i.quarter)?' — a apurar':' — acumulado anterior'})}
{!service&&
Escalão anual da actividade — distinto do volume de acesso

Os limites de 1.000.000 / 2.500.000 / 4.000.000 MZN são anuais. A taxa do escalão é aplicada à base do trimestre; não dividir os limites por quatro. O excesso anual tem taxa própria de 20%.

} {ispcQuarterReportRows(draft).map((r,n)=>

{r[1]}: {r[2]}{r[3]}

)}

Preparação para a declaração periódica dos artigos 10/11. Este cálculo não submete formulários nem efectua pagamentos. Retenção na fonte em aquisições ocasionais tem registo e base próprios.

; }