{snapshotError}
A projecção guardada está em {plan.currency}; o projecto está em {projectCurrency}. Os valores e a moeda de origem foram preservados. Reveja o enquadramento monetário antes de os reutilizar; não foi feita conversão.
} {snapshotError && ({snapshotError}
)}Projecção indicativa com valores de exemplo editáveis ou pressupostos introduzidos pela pessoa. Facturação, cobranças, despesas, pagamentos, juros e capital reembolsado ficam separados. Não calcula impostos, não converte moedas e não substitui um plano contabilístico validado.
O plano financeiro aceita moedas ISO suportadas com duas casas decimais. Se um investidor indicar uma moeda com precisão diferente, mantenha o código e montante de origem no registo; não os use nesta calculadora até a precisão dessa moeda ser suportada.
A conversão só é usada neste plano quando escolher uma moeda de apresentação diferente. Introduza uma cotação documentada por si; o portal não consulta nem valida taxas cambiais. Os valores na moeda original são preservados.
{plan.presentationCurrency && plan.presentationCurrency !== currency && ( <>Indique a unidade de apresentação por 1 unidade da moeda-base, a data e a referência. Esta conversão é um pressuposto de planeamento; não é uma taxa oficial, fiscal ou aduaneira validada.
> )}Recuperação de vendas vencidas
{(plan.salesRecoverySchedule ?? []).map( (entry, index) => (Cada percentagem aplica-se ao saldo vencido ainda em aberto no mês indicado, depois da cobrança inicial. Sem agenda, não se presume recuperação.
{(plan.salesRecoverySchedule ?? []).length < 60 && ( )}{plan.salesCollectionLagMonths === null || plan.salesCollectionLagMonths === undefined ? 'Modo manual: este valor representa todas as cobranças mensais e não é reconciliado automaticamente com a facturação.' : `Modo por prazo: ${plan.salesCollectionPercent ?? '100'}% da facturação vence após o prazo indicado; o restante fica em aberto, excepto recuperações declaradas acima sobre saldos vencidos. O campo acima soma outras cobranças.`}
{plan.useProductInventorySchedule ? (As compras agregadas ficam inactivas enquanto o stock estiver planeado por produto.
) : ( <>As compras são encomendas e cada prazo declarado afecta o mês da recepção; pagamentos de compras continuam a ser um fluxo de caixa separado. Encomendas ainda não recebidas aparecem como mercadoria em trânsito. Se faltar stock, reveja compras ou vendas: a facturação introduzida não é reduzida automaticamente.
> )}Os pagamentos de compras sao calculados pelas encomendas e prazos acima; o valor mensal manual fica suspenso para evitar contar os mesmos pagamentos duas vezes.
)} {moneyScheduleFields .filter( ({ key }) => !plan.useSupplierPaymentTerms || key !== 'monthlyVariableCostPaymentsByPeriod', ) .map(({ key, baseKey, label }) => (Declare cada mês e a percentagem do saldo inicial a cobrar. Inclua a cobrança única acima na soma: o total não pode exceder 100%. Sem parcela declarada, não se presume recebimento.
Opcional. Declare o mês e a percentagem do saldo inicial a pagar. A soma não pode exceder 100%; sem parcelas, não se presume pagamento e o saldo continua visível como pendente no fim. Estes pagamentos reduzem caixa, não o resultado do período.
“Favorável” e “desfavorável” são rótulos de cenários, não previsões. Defina como variam volume, preço, custo variável, despesas/pessoal e cobranças declaradas face ao cenário base. Com cobrança de vendas por prazo, a facturação ajustada determina esses recebimentos; esta variação aplica-se apenas às outras cobranças. Sem variações introduzidas, não há comparação.
{scenarioError}
)} {scenarioIncomplete && ( )} {scenarios && isSimulationCurrency(currency) && (| {label} | ))}||||||
|---|---|---|---|---|---|---|
| Base | Sem variação | {scenarios.base.totalRevenue} | {scenarios.base.totalProfitBeforeTax} | {scenarios.base.endingCash} | {scenarios.base.inventoryProjection .endingInventory ?? 'indeterminadas'} | {scenarios.base.inventoryProjection .totalShortfall ?? 'indeterminada'} |
| {label} | Unidades{' '} { scenario.adjustments .unitVolumePercent } %; preço{' '} { scenario.adjustments .unitPricePercent } %; custo variável{' '} { scenario.adjustments .unitCostPercent } %; compras de stock ajustadas por volume/custo; despesas{' '} { scenario.adjustments .operatingCostsPercent } %; cobranças{' '} { scenario.adjustments .cashCollectionsPercent } % | {scenario.result.totalRevenue} | { scenario.result .totalProfitBeforeTax } | {scenario.result.endingCash} | {scenario.result.inventoryProjection .endingInventory ?? 'indeterminadas'} | {scenario.result.inventoryProjection .totalShortfall ?? 'indeterminada'} |
Valores em {currency}, antes de impostos. As alterações são pressupostos do utilizador; as componentes fiscais mantêm-se indeterminadas.
{error}
)} {result && isSimulationCurrency(currency) && ({result.fundingStatus === 'balanced' ? 'As fontes de financiamento reconciliam com os usos iniciais.' : result.fundingStatus === 'shortfall' ? `Falta financiar ${result.fundingGap} ${currency} dos usos iniciais.` : `As fontes excedem os usos iniciais em ${result.fundingGap.replace('-', '')} ${currency}.`}
Fontes iniciais = capital próprio + suprimentos + empréstimos recebidos + subvenções. Usos iniciais = activos + fundo de maneio líquido. Juros são despesa; reembolso de capital é fluxo de caixa, não custo operacional.
{fiscalBridge && (Resultado contabilístico antes de impostos:{' '} {fiscalBridge.accountingProfitBeforeTax}{' '} {currency}. Matéria colectável: indeterminada; não se presume que as despesas sejam fiscalmente dedutíveis.
| {label} | ))}|||
|---|---|---|---|
| {line.origin} | {line.accountingEffect === 'income' ? 'Rendimento' : 'Despesa'} ; por mês:{' '} {line.monthlyAmounts .map( (item) => `${item.period}: ${item.amount}`, ) .join(' · ')} | {line.total} {currency} | Por classificar |
Cobranças e pagamentos são apresentados separadamente no calendário de caixa. Reembolsos de capital não entram como despesa. Não são acrescentados valores fiscais zero nem pagamentos estimados.
| {label} | ))}||||||||
|---|---|---|---|---|---|---|---|---|
| {row.month} | {row.inventoryOpening ?? 'indeterminado'} | {row.inventoryPurchases ?? 'indeterminadas'} | {row.inventoryLeadMonths ?? 'indeterminado'} | {row.inventoryReceipts ?? 'indeterminadas'} | {row.inventoryInTransit ?? 'indeterminadas'} | {row.inventoryConsumption} | {row.inventoryShortfall ?? 'indeterminada'} | {row.inventoryClosing ?? 'indeterminadas'} |
| {label} | ))}||||||||
|---|---|---|---|---|---|---|---|---|
| {row.month} | { row.opening } | { row.purchases } | { row.leadMonths } | { row.receipts } | { row.inTransit } | { row.consumption } | { row.shortfall } | { row.closing } |
| Encomenda | Pagamento | Parcela | Montante | Estado |
|---|---|---|---|---|
| Mes{' '} { payment.orderMonth } | {payment.paymentMonth === null ? 'Sem prazo declarado' : `Mes ${payment.paymentMonth}`} | {payment.percent === 'remaining' ? 'Saldo nao calendarizado' : `${payment.percent}%`} | { payment.amount }{' '} { currency } | {payment.paidWithinHorizon ? 'Incluido no fluxo de caixa' : payment.paymentMonth === null ? 'Saldo sem parcela calendarizada' : 'Por pagar no fim do horizonte'} |
Conversão de apresentação: 1 {currency} ={' '} {result.conversion.rate}{' '} {result.conversion.currency}, em{' '} {result.conversion.date}; fonte declarada:{' '} {result.conversion.source}. Cotação introduzida pelo utilizador e não verificada pelo portal; resultado apenas indicativo para planeamento. Os valores originais permanecem em {currency}.
| {label} | ))}|||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| {row.month} | {row.revenue} | {row.cashCollections} | {row.salesCollections ?? 'manual'} | {row.salesScheduledCollections ?? '—'} | {row.salesRecoveryCollections ?? '—'} | {row.openingReceivablesCollections} | {row.openingReceivablesBalance} | {row.otherCollections ?? 'incluídas'} | {row.variableCost} | {row.operatingExpenses} /{' '} {row.payrollExpense} | {row.depreciation} | {row.interestExpense} | {row.profitBeforeTax} | {row.principalRepayment} | {row.closingCash} |