import {normalFinancialSource,type NormalBook} from '@/lib/irpc-normal'; import {m20Accounts,newNormalFormPreparation,newFormAllocation,reuseDirectFormAllocations,normalFormAccountsFor,type NormalFormPreparationInput,type FormAllocation} from '@/lib/irpc-normal-form-preparation'; export function SimulationIrpcFormPreparation({draft,book,save}:{draft:Record;book:NormalBook;save:(b:NormalBook)=>void}){ const i=book.forms,source=normalFinancialSource(draft);if(!i)return; const patch=(p:Partial)=>save({...book,forms:{...i,...p}}),row=(id:string,p:Partial)=>patch({allocations:i.allocations.map(a=>a.id===id?{...a,...p}:a)}); return
Representação dos valores e correspondência M20/M22

Reutiliza os valores exactos do cálculo e do período/moeda já documentados. A preparação dos campos não altera lucro tributável,matéria colectável ou colecta. M20A.1 exige meticais sem centavos;fracções conservam o valor exacto e ficam pendentes de regra de representação. O transporte201/quadro8 versus200/quadro10 continua identificado,só no resultado afectado. Não gera declaração oficial nem saldo finalL8.

{i.allocations.map((a,n)=>
Parcela M20 {n+1}
)}
Imposto contabilizado e resultado líquido

Colecta e saldo a pagar não são usados como gasto contabilístico presumido. Indique imposto reconhecido e se já está incluído numa linha do plano,para evitar subtracção duplicada.

{(i.incomeTax.state==='known'||i.incomeTax.amount!==''||i.incomeTax.placement!=='')&&<>}
; }