dashboard: reimaginacao

Signed-off-by: Rodrigo B. de Sousa Martins <rodrigo.sousa.577@gmail.com>
This commit is contained in:
rodrigo committed 2025-07-15 22:43:12 -03:00
1 parent 285d829c27
commit 90a098e7db
1 file changed
+11 -55
+11 -55
View File
@@ -10,66 +10,22 @@ export interface FinanceiroResumo {
detalhesCustas: any[];
}
// Hook para buscar dados financeiros do painel
// Hook para buscar dados financeiros do painel diretamente do backend
export function useFinanceiroPainel(mes: number, ano: number) {
return useQuery<FinanceiroResumo>(['financeiroPainel', mes, ano], async () => {
let honorarios: any[] = [];
let custas: any[] = [];
// Buscar honorários e parcelas, tratar erro 404
try {
const honorariosRes = await api.get('/honorarios');
honorarios = honorariosRes.data;
const res = await api.get(`/financeiro-painel?mes=${mes}&ano=${ano}`);
return res.data;
} catch (error: any) {
if (error?.response?.status !== 404) throw error;
honorarios = [];
}
let honorariosAReceber = 0;
let honorariosRecebidosMes = 0;
const detalhesHonorarios: any[] = [];
honorarios.forEach((h: any) => {
if (h.parcelas && Array.isArray(h.parcelas)) {
h.parcelas.forEach((p: any) => {
const dataPagamento = p.dataPagamento ? new Date(p.dataPagamento) : null;
if (p.status === 'PENDENTE' || p.status === 'VENCIDO') {
honorariosAReceber += Number(p.valor);
}
if (p.status === 'PAGO' && dataPagamento && dataPagamento.getMonth() + 1 === mes && dataPagamento.getFullYear() === ano) {
honorariosRecebidosMes += Number(p.valorPago || p.valor);
detalhesHonorarios.push({ contrato: h, parcela: p });
}
});
}
});
// Buscar custas, tratar erro 404
try {
const custasRes = await api.get('/custas-processuais');
custas = custasRes.data;
} catch (error: any) {
if (error?.response?.status !== 404) throw error;
custas = [];
}
let custasAPagar = 0;
let custasPagasMes = 0;
const detalhesCustas: any[] = [];
custas.forEach((c: any) => {
if (c.status === 'PENDENTE' || c.status === 'VENCIDO') {
custasAPagar += Number(c.valor);
}
if (c.status === 'PAGO' && c.dataPagamento) {
const dataPagamento = new Date(c.dataPagamento);
if (dataPagamento.getMonth() + 1 === mes && dataPagamento.getFullYear() === ano) {
custasPagasMes += Number(c.valor);
detalhesCustas.push(c);
}
}
});
// Se der erro, retorna tudo zerado
return {
honorariosAReceber,
honorariosRecebidosMes,
custasAPagar,
custasPagasMes,
detalhesHonorarios,
detalhesCustas,
honorariosAReceber: 0,
honorariosRecebidosMes: 0,
custasAPagar: 0,
custasPagasMes: 0,
detalhesHonorarios: [],
detalhesCustas: [],
};
}
});
}