dashboard: reimaginacao
Signed-off-by: Rodrigo B. de Sousa Martins <rodrigo.sousa.577@gmail.com>
This commit is contained in:
1 parent
285d829c27
commit
90a098e7db
1 file changed
+12
-56
@@ -10,66 +10,22 @@ export interface FinanceiroResumo {
|
|||||||
detalhesCustas: any[];
|
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) {
|
export function useFinanceiroPainel(mes: number, ano: number) {
|
||||||
return useQuery<FinanceiroResumo>(['financeiroPainel', mes, ano], async () => {
|
return useQuery<FinanceiroResumo>(['financeiroPainel', mes, ano], async () => {
|
||||||
let honorarios: any[] = [];
|
|
||||||
let custas: any[] = [];
|
|
||||||
// Buscar honorários e parcelas, tratar erro 404
|
|
||||||
try {
|
try {
|
||||||
const honorariosRes = await api.get('/honorarios');
|
const res = await api.get(`/financeiro-painel?mes=${mes}&ano=${ano}`);
|
||||||
honorarios = honorariosRes.data;
|
return res.data;
|
||||||
} catch (error: any) {
|
} catch (error: any) {
|
||||||
if (error?.response?.status !== 404) throw error;
|
// Se der erro, retorna tudo zerado
|
||||||
honorarios = [];
|
return {
|
||||||
|
honorariosAReceber: 0,
|
||||||
|
honorariosRecebidosMes: 0,
|
||||||
|
custasAPagar: 0,
|
||||||
|
custasPagasMes: 0,
|
||||||
|
detalhesHonorarios: [],
|
||||||
|
detalhesCustas: [],
|
||||||
|
};
|
||||||
}
|
}
|
||||||
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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
return {
|
|
||||||
honorariosAReceber,
|
|
||||||
honorariosRecebidosMes,
|
|
||||||
custasAPagar,
|
|
||||||
custasPagasMes,
|
|
||||||
detalhesHonorarios,
|
|
||||||
detalhesCustas,
|
|
||||||
};
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
Reference in new issue
Block a user