Orçamento do período —{' '}
{currency || 'moeda por seleccionar'}
Introduza os totais por fonte de receita e categoria de
despesa.
Período do orçamento
setBudgetPeriod(event.target.value)
}
className="mt-1 w-full rounded border p-2"
>
Mensal
Trimestral
Anual
Outro período
{incomeRows.map((row, index) => (
Fonte da receita {index + 1}
setIncomeRows((rows) =>
rows.map((item, i) =>
i === index
? {
...item,
label: event.target
.value,
}
: item,
),
)
}
className="mt-1 w-full rounded border p-2"
/>
setIncomeRows((rows) =>
rows.map((item, i) =>
i === index
? { ...item, amount: value }
: item,
),
)
}
/>
setIncomeRows((rows) =>
rows.length > 1
? rows.filter((_, i) => i !== index)
: rows,
)
}
>
Remover
))}
= 50}
className="text-sm underline disabled:opacity-50"
onClick={() =>
setIncomeRows((rows) =>
rows.length >= 50
? rows
: [
...rows,
{
label: `Outra receita ${rows.length + 1}`,
amount: '0',
},
],
)
}
>
Adicionar receita
{expenseRows.map((row, index) => (
Categoria da despesa {index + 1}
setExpenseRows((rows) =>
rows.map((item, i) =>
i === index
? {
...item,
label: event.target
.value,
}
: item,
),
)
}
className="mt-1 w-full rounded border p-2"
/>
setExpenseRows((rows) =>
rows.map((item, i) =>
i === index
? { ...item, amount: value }
: item,
),
)
}
/>
setExpenseRows((rows) =>
rows.length > 1
? rows.filter((_, i) => i !== index)
: rows,
)
}
>
Remover
))}
= 50}
className="text-sm underline disabled:opacity-50"
onClick={() =>
setExpenseRows((rows) =>
rows.length >= 50
? rows
: [
...rows,
{
label: `Outra despesa ${rows.length + 1}`,
amount: '0',
},
],
)
}
>
Adicionar despesa
{budget && isSimulationCurrency(currency) && (
Receitas: {budget.incomeTotal} {currency}; despesas:{' '}
{budget.expenseTotal}; saldo operacional:{' '}
{budget.operatingBalance} .
)}