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)returnsave({...book,schedules:newNormalSchedules()})}>Iniciar mapas complementares L6; 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)}); returnMapas 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 mesesTipo de períodopatch({period:{...s.period,kind:e.target.value as NormalSchedules['period']['kind']}})}>Por identificarAno civil — artigo7(1)Anual diferente — autorização artigo7(2)Anual diferente de EP — comunicação artigo7(3){(['from','to','reference']as const).map(k=>{({from:'Início do período AAAA-MM-DD',to:'Termo do período AAAA-MM-DD',reference:'Suporte do período e da correspondência mensal'})[k]}patch({period:{...s.period,[k]:e.target.value}})}/>)}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.} patch({rows:[...s.rows,newScheduleRow(crypto.randomUUID())]})}>Acrescentar regra complementar {s.rows.map((r,n)=>Regra complementar {n+1} Tratamentorow(r.id,{rule:e.target.value as ScheduleRow['rule']})}>Por identificar{Object.entries(scheduleRules).map(([k,v])=>{v[0]} — {v[2]})} {([['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])=>{label}row(r.id,{[k]:e.target.value})}/>)} 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. Condições demonstradasrow(r.id,{conditions:e.target.value as ''|'yes'})}>Informação em faltaSim, nos documentos identificados patch({rows:s.rows.filter(q=>q.id!==r.id)})}>Retirar regra {n+1} das entradas actuais)} Juros financeiros ordinários — artigo22cSomente 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. Juros ordinários remanescentes MZNpatch({interest:{...s.interest,amount:e.target.value}})}/> Suporte dos juros e condiçõespatch({interest:{...s.interest,reference:e.target.value}})}/> Condições dos jurospatch({interest:{...s.interest,conditions:e.target.value as ''|'yes'}})}>Informação em faltaDemonstradas no recorte ordinário {!book.depreciation?Amortizações fiscais — quotas constantes anuaisDecreto72/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. Reconciliação de todos os activos com a depreciação do planopatch({assetsReference:e.target.value})}/> patch({assets:[...s.assets,newNormalAsset(crypto.randomUUID())]})}>Acrescentar activo fiscal {s.assets.map((a,n)=>Activo {n+1}Categoria fiscalasset(a.id,{category:e.target.value as NormalAsset['category'],rate:e.target.value==='computer'?'25':e.target.value==='server'?'20':'',tableReference:e.target.value==='computer'?'Decreto72/2013 tabelaII grupo3 item9':e.target.value==='server'?'Decreto72/2013 tabelaII grupo3 item9.1':''})}>Por identificarComputador, impressora, UPS — II/3/9 — 25%Servidor — II/3/9.1 — 20%Outra categoria — correspondência pendente{([['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])=>{label}asset(a.id,{[k]:e.target.value})}/>)} Condições do activoasset(a.id,{conditions:e.target.value as ''|'yes'})}>Informação em faltaDemonstradas no recorte anual constantepatch({assets:s.assets.filter(q=>q.id!==a.id)})}>Retirar activo {n+1} das entradas actuais)}:Activos do mapa inicial conservados; a depreciação é agora reconciliada exclusivamente pelo mapa de tabelas, métodos, duodécimos e quotas anteriores abaixo.} Suporte da perda fiscal do próprio exercício, se apuradapatch({currentLossReference:e.target.value})}/>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. ; }
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.
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 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.
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.
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.
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.
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.