From d7bf29cf609a2022ac77d73aff0376f57dae0d70 Mon Sep 17 00:00:00 2001 From: "gpt-engineer-app[bot]" <159125892+gpt-engineer-app[bot]@users.noreply.github.com> Date: Sat, 17 May 2025 23:49:54 +0000 Subject: [PATCH] Fix: Implement income/expense logic and icon activation - Adjusted the display of transaction values to be positive for income and negative for expenses, based on the category. - Activated the icons for "Receitas", "Despesas", "Saldo", and "Economia" in the dashboard. --- src/components/dashboard/SummaryCard.tsx | 4 ++-- src/components/dashboard/TransactionsTable.tsx | 4 ++-- src/pages/Index.tsx | 10 +++++----- src/services/transacaoService.ts | 12 ++++++------ 4 files changed, 15 insertions(+), 15 deletions(-) diff --git a/src/components/dashboard/SummaryCard.tsx b/src/components/dashboard/SummaryCard.tsx index bb94bed..468dff2 100644 --- a/src/components/dashboard/SummaryCard.tsx +++ b/src/components/dashboard/SummaryCard.tsx @@ -24,8 +24,8 @@ const SummaryCard: React.FC = ({ }) => { return ( - -
+ +
{icon}
diff --git a/src/components/dashboard/TransactionsTable.tsx b/src/components/dashboard/TransactionsTable.tsx index c8cc67d..1342e5b 100644 --- a/src/components/dashboard/TransactionsTable.tsx +++ b/src/components/dashboard/TransactionsTable.tsx @@ -189,9 +189,9 @@ const TransactionsTable = ({ 0 ? "text-finance-green" : "text-finance-red" )}> - {transaction.tipo === 'entrada' ? '+' : '-'}{formatCurrency(Math.abs(transaction.valor))} + {formatCurrency(transaction.valor)} )) diff --git a/src/pages/Index.tsx b/src/pages/Index.tsx index 3e4cb31..bd98087 100644 --- a/src/pages/Index.tsx +++ b/src/pages/Index.tsx @@ -5,7 +5,7 @@ import SummaryCard from '@/components/dashboard/SummaryCard'; import TransactionsTable from '@/components/dashboard/TransactionsTable'; import CategoryChart from '@/components/dashboard/CategoryChart'; import MonthlyChart from '@/components/dashboard/MonthlyChart'; -import { DollarSign, TrendingUp, TrendingDown, PiggyBank } from 'lucide-react'; +import { Wallet, ArrowUp, ArrowDown, PiggyBank } from 'lucide-react'; import { Transaction, CategorySummary, MonthlyData } from '@/types/financialTypes'; import { useToast } from "@/components/ui/use-toast"; import { getTransacoes, getTransactionSummary, getCategorySummary, getMonthlyData } from '@/services/transacaoService'; @@ -84,7 +84,7 @@ const Dashboard = () => { } + icon={} trend={5} iconClass="bg-finance-green/10" valueClass="text-finance-green" @@ -92,7 +92,7 @@ const Dashboard = () => { } + icon={} trend={-2} iconClass="bg-finance-red/10" valueClass="text-finance-red" @@ -100,14 +100,14 @@ const Dashboard = () => { } + icon={} iconClass="bg-finance-blue/10" valueClass="text-finance-blue" /> 0 ? ((totals.saldo / totals.receitas) * 100).toFixed(1) : 0}%`} - icon={} + icon={} iconClass="bg-finance-purple/10" valueClass="text-finance-purple" /> diff --git a/src/services/transacaoService.ts b/src/services/transacaoService.ts index 6f68960..e738787 100644 --- a/src/services/transacaoService.ts +++ b/src/services/transacaoService.ts @@ -21,7 +21,7 @@ export async function getTransacoes(): Promise { id: item.id.toString(), user: item.user || '', created_at: item.created_at, - valor: item.valor || 0, + valor: item.tipo === 'entrada' ? Math.abs(item.valor || 0) : -Math.abs(item.valor || 0), quando: item.quando || new Date().toISOString(), detalhes: item.detalhes || '', estabelecimento: item.estabelecimento || '', @@ -45,11 +45,11 @@ export async function getTransactionSummary() { const totalReceitas = data .filter(item => item.tipo === 'entrada') - .reduce((sum, item) => sum + (item.valor || 0), 0); + .reduce((sum, item) => sum + Math.abs(item.valor || 0), 0); const totalDespesas = data .filter(item => item.tipo === 'saida') - .reduce((sum, item) => sum + (item.valor || 0), 0); + .reduce((sum, item) => sum + Math.abs(item.valor || 0), 0); const resultado = { receitas: totalReceitas, @@ -82,7 +82,7 @@ export async function getCategorySummary() { if (!categorias[item.categoria]) { categorias[item.categoria] = 0; } - categorias[item.categoria] += item.valor; + categorias[item.categoria] += Math.abs(item.valor); } }); @@ -133,9 +133,9 @@ export async function getMonthlyData() { const nomeMes = nomesMeses[mesIndex]; if (item.tipo === 'entrada') { - meses[nomeMes].receitas += item.valor; + meses[nomeMes].receitas += Math.abs(item.valor); } else { - meses[nomeMes].despesas += item.valor; + meses[nomeMes].despesas += Math.abs(item.valor); } } });