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:05:34 -03:00
1 parent 0a67f95eaf
commit 6300fb98a7
4 files changed
+151 -56

No files matched your search

+66
View File
@@ -0,0 +1,66 @@
import { useQuery } from 'react-query';
import api from '../services/api';
export interface FinanceiroResumo {
honorariosAReceber: number;
honorariosRecebidosMes: number;
custasAPagar: number;
custasPagasMes: number;
detalhesHonorarios: any[];
detalhesCustas: any[];
}
// Hook para buscar dados financeiros do painel
export function useFinanceiroPainel(mes: number, ano: number) {
return useQuery<FinanceiroResumo>(['financeiroPainel', mes, ano], async () => {
// Buscar honorários e parcelas
const honorariosRes = await api.get('/honorarios');
const honorarios = honorariosRes.data;
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;
const vencimento = new Date(p.vencimento);
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
const custasRes = await api.get('/custas-processuais');
const custas = custasRes.data;
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);
}
}
});
return {
honorariosAReceber,
honorariosRecebidosMes,
custasAPagar,
custasPagasMes,
detalhesHonorarios,
detalhesCustas,
};
});
}