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