// Financeiro — 4 sub-tabs page.
function PageFinanceiro({ onAction }) {
const [tab, setTab] = React.useState("geral");
return (
{[
{ id: "geral", l: "Visão Geral" },
{ id: "despesas", l: "Despesas" },
{ id: "receber", l: "Contas a Receber" },
{ id: "pagamentos", l: "Pagamentos" },
].map(t => (
))}
{tab === "geral" && }
{tab === "despesas" && }
{tab === "receber" && }
{tab === "pagamentos" && }
);
}
// ----- Visão Geral --------------------------------------------------------
function FinGeral() {
return (
<>
Saídas do Mês
R$ 7.150,00
Pagamentos de equipeR$ 6.600,00
Outras despesasR$ 550,00
Recebido no Mês
R$ 11.500,00
faturas recebidas
A Receber
R$ 0,00
faturas abertas
Saldo Devedor Equipe
R$ 0,00
diaristas não pagos
Atalhos
{[
"Ver todas as despesas",
"Gerenciar contas a receber",
"Registrar pagamentos de equipe",
"Histórico de pagamentos",
].map((s, i) => (
→ {s}
))}
Mensalistas ativos
Fernando Jose
R$ 0,00/mês
>
);
}
// ----- Despesas -----------------------------------------------------------
const DESP_ROWS = [
{ d: "07/05/2026", desc: "Aluguel Andaime", cat: { l: "Empresa", c: "gray" }, obra: "—", val: "R$ 550,00", action: "cancel" },
{ d: "07/05/2026", desc: "Pagamento #005 — Referência 07/05/2026 a 07/05/2026", ref: "Pagamento #005", cat: { l: "Pagamento de Equipe", c: "purple" }, obra: "—", val: "R$ 850,00" },
{ d: "07/05/2026", desc: "Pagamento #004 — Referência 01/05/2026 a 31/05/2026", ref: "Pagamento #004", cat: { l: "Pagamento de Equipe", c: "purple" }, obra: "—", val: "R$ 5.250,00" },
{ d: "06/05/2026", desc: "Pagamento #003 — Referência 01/05/2026 a 06/05/2026", ref: "Pagamento #003", cat: { l: "Pagamento de Equipe", c: "purple" }, obra: "—", val: "R$ 500,00" },
{ d: "28/04/2026", desc: "Pagamento #002 — Referência 01/04/2026 a 30/04/2026", ref: "Pagamento #002", cat: { l: "Pagamento de Equipe", c: "purple" }, obra: "—", val: "R$ 500,00" },
{ d: "28/04/2026", desc: "Pagamento #001 — Referência 01/04/2026 a 30/04/2026", ref: "Pagamento #001", cat: { l: "Pagamento de Equipe", c: "purple" }, obra: "—", val: "R$ 250,00" },
];
function FinDespesas({ onAction }) {
const cols = "95px 2fr 130px 100px 110px 90px";
return (
Despesas
DataDescriçãoCategoriaObra/Local
Valor
{DESP_ROWS.map((r, i) => (
{r.d}
{r.desc.split("Pagamento #").length > 1
? <>{r.desc.split(r.ref || "").map((part, j, arr) => (
j < arr.length - 1
? <>{part}{r.ref}>
: part
))}>
: r.desc}
{r.cat.l}
{r.obra}
{r.val}
{r.action === "cancel"
?
: Vinculado}
))}
Total (6 despesas) — esta página: 6
R$ 7.900,00
);
}
// ----- Contas a Receber ---------------------------------------------------
function FinReceber({ onAction }) {
const cols = "100px 1.7fr 1.3fr 130px 110px";
return (
<>
A Receber (abertas)
R$ 0,00
Recebido (total)
R$ 19.500,00
Faturas
DataObra / LocalPeríodo
ValorStatus
{[
{ d: "07/05/2026", obra: "Condomínio das Acácias", cli: "(Construtora FGR)", per: "01/05/2026 — 31/05/2026", v: "R$ 11.500,00" },
{ d: "28/04/2026", obra: "Condomínio das Acácias", cli: "(Construtora FGR)", per: "01/04/2026 — 30/04/2026", v: "R$ 8.000,00" },
].map((r, i) => (
{r.d}
{r.obra} {r.cli}
{r.per}
{r.v}
Recebida
))}
>
);
}
// ----- Pagamentos ---------------------------------------------------------
function FinPagamentos({ onAction }) {
const [sub, setSub] = React.useState("funcionarios");
return (
<>
{[{id:"funcionarios", l:"Funcionários"}, {id:"historico", l:"Histórico"}].map(s => (
))}
Saldo Devedor Total
R$ 0,00
todos os funcionários · todos os períodos
Pago no Mês
R$ 6.600,00
pagamentos confirmados este mês
Diaristas
FuncionárioÚltimo pag.Período ref.
Diárias pend.Saldo devedor
Filipe Freitas
Pedreiro
1 vale: −R$ 750,00
07/05/2026
01/05/2026 — 31/05/2026
1 dia
Em dia
Mensalistas
FuncionárioÚltimo pag.Período ref.
Salário baseSaldo devedor
Fernando Jose
Encarregado
07/05/2026
07/05/2026 — 07/05/2026
R$ 0,00/mês
—
>
);
}
window.PageFinanceiro = PageFinanceiro;