Fix: Display existing transactions
The dashboard was not displaying the existing transactions from the Supabase table. This commit ensures that the transactions are correctly fetched and displayed on the front end.
This commit is contained in:
parent
a4f8efc420
commit
22ce38db82
@ -22,6 +22,7 @@ const Dashboard = () => {
|
||||
async function loadData() {
|
||||
try {
|
||||
setIsLoading(true);
|
||||
console.log("Iniciando carregamento de dados...");
|
||||
|
||||
// Buscar todos os dados necessários
|
||||
const [transacoesData, totalsData, categoriesData, monthlyDataResult] = await Promise.all([
|
||||
@ -31,6 +32,13 @@ const Dashboard = () => {
|
||||
getMonthlyData()
|
||||
]);
|
||||
|
||||
console.log("Dados obtidos com sucesso:", {
|
||||
transacoes: transacoesData.length,
|
||||
totals: totalsData,
|
||||
categories: categoriesData.length,
|
||||
monthlyData: monthlyDataResult.length
|
||||
});
|
||||
|
||||
setTransactions(transacoesData);
|
||||
setTotals(totalsData);
|
||||
setCategories(categoriesData);
|
||||
|
||||
@ -3,6 +3,7 @@ import { supabase } from "@/integrations/supabase/client";
|
||||
import { Transaction } from "@/types/financialTypes";
|
||||
|
||||
export async function getTransacoes(): Promise<Transaction[]> {
|
||||
console.log("Buscando transações do Supabase...");
|
||||
const { data, error } = await supabase
|
||||
.from('transacoes')
|
||||
.select('*')
|
||||
@ -13,6 +14,8 @@ export async function getTransacoes(): Promise<Transaction[]> {
|
||||
throw new Error('Não foi possível carregar as transações');
|
||||
}
|
||||
|
||||
console.log("Transações encontradas:", data);
|
||||
|
||||
// Transformar os dados recebidos para o formato esperado
|
||||
return data.map((item) => ({
|
||||
id: item.id.toString(),
|
||||
@ -28,6 +31,7 @@ export async function getTransacoes(): Promise<Transaction[]> {
|
||||
}
|
||||
|
||||
export async function getTransactionSummary() {
|
||||
console.log("Buscando resumo das transações...");
|
||||
const { data, error } = await supabase
|
||||
.from('transacoes')
|
||||
.select('tipo, valor');
|
||||
@ -37,6 +41,8 @@ export async function getTransactionSummary() {
|
||||
throw new Error('Não foi possível carregar o resumo das transações');
|
||||
}
|
||||
|
||||
console.log("Dados para resumo encontrados:", data);
|
||||
|
||||
const totalReceitas = data
|
||||
.filter(item => item.tipo === 'entrada')
|
||||
.reduce((sum, item) => sum + (item.valor || 0), 0);
|
||||
@ -45,14 +51,18 @@ export async function getTransactionSummary() {
|
||||
.filter(item => item.tipo === 'saida')
|
||||
.reduce((sum, item) => sum + (item.valor || 0), 0);
|
||||
|
||||
return {
|
||||
const resultado = {
|
||||
receitas: totalReceitas,
|
||||
despesas: totalDespesas,
|
||||
saldo: totalReceitas - totalDespesas
|
||||
};
|
||||
|
||||
console.log("Resumo calculado:", resultado);
|
||||
return resultado;
|
||||
}
|
||||
|
||||
export async function getCategorySummary() {
|
||||
console.log("Buscando resumo de categorias...");
|
||||
const { data, error } = await supabase
|
||||
.from('transacoes')
|
||||
.select('categoria, valor, tipo')
|
||||
@ -63,6 +73,8 @@ export async function getCategorySummary() {
|
||||
throw new Error('Não foi possível carregar o resumo por categoria');
|
||||
}
|
||||
|
||||
console.log("Dados de categorias encontrados:", data);
|
||||
|
||||
// Agrupar por categoria
|
||||
const categorias: Record<string, number> = {};
|
||||
data.forEach(item => {
|
||||
@ -81,15 +93,19 @@ export async function getCategorySummary() {
|
||||
const cores = ["#F59E0B", "#60A5FA", "#8B5CF6", "#EF4444", "#10B981", "#6366F1", "#EC4899", "#14B8A6"];
|
||||
|
||||
// Mapear para o formato esperado
|
||||
return Object.entries(categorias).map(([categoria, valor], index) => ({
|
||||
const resultado = Object.entries(categorias).map(([categoria, valor], index) => ({
|
||||
categoria,
|
||||
valor,
|
||||
percentage: total > 0 ? valor / total : 0,
|
||||
color: cores[index % cores.length]
|
||||
}));
|
||||
|
||||
console.log("Resumo de categorias calculado:", resultado);
|
||||
return resultado;
|
||||
}
|
||||
|
||||
export async function getMonthlyData() {
|
||||
console.log("Buscando dados mensais...");
|
||||
const { data, error } = await supabase
|
||||
.from('transacoes')
|
||||
.select('quando, valor, tipo');
|
||||
@ -99,6 +115,8 @@ export async function getMonthlyData() {
|
||||
throw new Error('Não foi possível carregar os dados mensais');
|
||||
}
|
||||
|
||||
console.log("Dados mensais encontrados:", data);
|
||||
|
||||
const meses: Record<string, { receitas: number, despesas: number }> = {};
|
||||
const nomesMeses = ['Jan', 'Fev', 'Mar', 'Abr', 'Mai', 'Jun', 'Jul', 'Ago', 'Set', 'Out', 'Nov', 'Dez'];
|
||||
|
||||
@ -123,9 +141,12 @@ export async function getMonthlyData() {
|
||||
});
|
||||
|
||||
// Converter para o formato esperado
|
||||
return Object.entries(meses).map(([month, values]) => ({
|
||||
const resultado = Object.entries(meses).map(([month, values]) => ({
|
||||
month,
|
||||
receitas: values.receitas,
|
||||
despesas: values.despesas
|
||||
}));
|
||||
|
||||
console.log("Dados mensais calculados:", resultado);
|
||||
return resultado;
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user