dashboard: reimaginacao
Signed-off-by: Rodrigo B. de Sousa Martins <rodrigo.sousa.577@gmail.com>
This commit is contained in:
1 parent
0a67f95eaf
commit
6300fb98a7
4 files changed
+151
-56
No files matched your search
@@ -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,
|
||||
};
|
||||
});
|
||||
}
|
||||
Reference in new issue
Block a user