import { newNormalSchedules, newScheduleRow, newNormalAsset, scheduleRules, type NormalSchedules, type ScheduleRow, type NormalAsset, } from '@/lib/irpc-normal-schedules'; import type { NormalBook } from '@/lib/irpc-normal'; export function SimulationIrpcSchedules({ book, save, }: { book: NormalBook; save: (b: NormalBook) => void; }) { const s = book.schedules; if (!s) return ( ); const patch = (p: Partial) => save({ ...book, schedules: { ...s, ...p } }); const row = (id: string, p: Partial) => patch({ rows: s.rows.map((r) => (r.id === id ? { ...r, ...p } : r)) }); const asset = (id: string, p: Partial) => patch({ assets: s.assets.map((a) => (a.id === id ? { ...a, ...p } : a)), }); return (
Mapas complementares — regras ordinárias documentadas

Reutiliza o resultado e as linhas do plano. As somas brutas de cada tema devem corresponder à conferência do lucro tributável. Os efeitos com sinal ficam discriminados; uma dúvida não apaga as parcelas independentes. L7 conserva benefícios e casos especiais; L8 conserva o fecho anual.

{book.periodsFx && book.periodsFx.kind !== 'annual' ? (

Período actual no mapa «Período fiscal e conversão do plano». O período anual anterior permanece conservado no histórico.

) : (
Período anual e correspondência dos meses {(['from', 'to', 'reference'] as const).map((k) => ( ))}

Período anual diferente: documente autorização do artigo7(2) ou comunicação do EP do artigo7(3), início de aplicação e manutenção por cinco exercícios. O plano representa o período completo com termo em2026, emMZN. Períodos curtos e conversão fiscal anual de outra moeda ficam por corresponder.

)} {s.rows.map((r, n) => (
Regra complementar {n + 1} {( [ ['amount', 'Montante MZN'], [ 'sourceCode', 'Código da linha de origem (custos/proveitos já incluídos)', ], ['document', 'Documento'], ['line', 'Linha distinta'], ['reference', 'Suporte da regra e dos factos'], [ 'fiscalYear', 'Exercício de imputação (periodização)', ], ] as const ).map(([k, label]) => ( ))}

Entradas/distribuições de capital e variações patrimoniais são externas ao resultado. Variação negativa ordinária: indispensável à actividade sujeita, sem liberalidade, menos-valia latente ou distribuição; sem gratificações especiais. Periodização: operação ordinária e exercício de realização documentados; sem obra plurianual ou correcção de exercício anterior.

))}
Juros financeiros ordinários — artigo22c

Somente capitais alheios aplicados na exploração, encargos documentados, não capitalizáveis, sem partes relacionadas, subcapitalização ou outra limitação especial. Identifique o remanescente após os juros compensatórios acrescidos no mapa anterior. Outros juros permanecem pendentes neste caso.

{!book.depreciation ? (
Amortizações fiscais — quotas constantes anuais

Decreto72/2013, artigos3–7. Activo próprio sujeito a deperecimento, custo histórico, uso no início de2026, método uniforme, vida útil fiscal não excedida. Documente que não há regra sectorial específica prevalecente ou limitação especial. A categoria exige qualificação documentada; os itens genéricos9/9.1 só se aplicam quando não há taxa específica da tabelaI. Duodécimos, reavaliação, bens usados e recuperação de quotas antes tributadas ficam separados.

{s.assets.map((a, n) => (
Activo {n + 1} {( [ ['description', 'Descrição'], ['cost', 'Custo fiscal documentado MZN'], ['residual', 'Valor residual MZN'], ['rate', 'Taxa anual documentada %'], [ 'accounting', 'Depreciação contabilística de2026 MZN', ], [ 'previousFiscal', 'Amortização fiscal acumulada anterior MZN', ], [ 'inUseFrom', 'Data de entrada em uso AAAA-MM-DD', ], [ 'tableReference', 'Diploma, tabela, código e taxa aplicáveis', ], [ 'reference', 'Documentos e condições do activo', ], ] as const ).map(([k, label]) => ( ))}
))}
) : (

Activos do mapa inicial conservados; a depreciação é agora reconciliada exclusivamente pelo mapa de tabelas, métodos, duodécimos e quotas anteriores abaixo.

)}

Perda actual conhecida: matéria colectável e colecta zero apenas depois de conferidas as restantes condições. Não é dedução a si própria nem saldo oficial de reporte. Informação insuficiente mantém os totais dependentes indeterminados.

); }