diff --git a/backend/app/Http/Controllers/Api/BudgetController.php b/backend/app/Http/Controllers/Api/BudgetController.php index ce5954f..5f66482 100644 --- a/backend/app/Http/Controllers/Api/BudgetController.php +++ b/backend/app/Http/Controllers/Api/BudgetController.php @@ -97,8 +97,8 @@ public function show($id) // Obtener transacciones del período $query = Transaction::where('user_id', Auth::id()) ->where('transaction_type', 'debit') - ->whereYear('transaction_date', $budget->year) - ->whereMonth('transaction_date', $budget->month); + ->whereYear('effective_date', $budget->year) + ->whereMonth('effective_date', $budget->month); if ($budget->category_id) { $categoryIds = [$budget->category_id]; @@ -108,7 +108,7 @@ public function show($id) } $transactions = $query->with('category') - ->orderBy('transaction_date', 'desc') + ->orderBy('effective_date', 'desc') ->limit(50) ->get(); diff --git a/backend/app/Http/Controllers/Api/FinancialHealthController.php b/backend/app/Http/Controllers/Api/FinancialHealthController.php index 8595ced..ce3142b 100644 --- a/backend/app/Http/Controllers/Api/FinancialHealthController.php +++ b/backend/app/Http/Controllers/Api/FinancialHealthController.php @@ -85,7 +85,7 @@ private function calculateSavingsCapacity($userId) { // Últimos 3 meses $data = Transaction::where('user_id', $userId) - ->where('transaction_date', '>=', now()->subMonths(3)->startOfMonth()) + ->where('effective_date', '>=', now()->subMonths(3)->startOfMonth()) ->selectRaw(" SUM(CASE WHEN type = 'credit' THEN amount ELSE 0 END) as income, SUM(CASE WHEN type = 'debit' THEN ABS(amount) ELSE 0 END) as expense @@ -137,7 +137,7 @@ private function calculateDebtControl($userId) // Ingresos mensuales promedio $monthlyIncome = Transaction::where('user_id', $userId) ->where('type', 'credit') - ->where('transaction_date', '>=', now()->subMonths(3)->startOfMonth()) + ->where('effective_date', '>=', now()->subMonths(3)->startOfMonth()) ->sum('amount') / 3; // Ratio deuda/ingresos @@ -289,13 +289,13 @@ private function calculateEmergencyFund($userId) // Gastos mensuales promedio $monthlyExpenses = Transaction::where('user_id', $userId) ->where('type', 'debit') - ->where('transaction_date', '>=', now()->subMonths(3)->startOfMonth()) + ->where('effective_date', '>=', now()->subMonths(3)->startOfMonth()) ->sum(fn($t) => abs($t->amount)) / 3; // Usar consulta directa para mejor rendimiento $monthlyExpenses = abs(Transaction::where('user_id', $userId) ->where('type', 'debit') - ->where('transaction_date', '>=', now()->subMonths(3)->startOfMonth()) + ->where('effective_date', '>=', now()->subMonths(3)->startOfMonth()) ->sum('amount')) / 3; // Meses cubiertos diff --git a/backend/app/Http/Controllers/Api/ReportController.php b/backend/app/Http/Controllers/Api/ReportController.php index 37139bc..d249893 100644 --- a/backend/app/Http/Controllers/Api/ReportController.php +++ b/backend/app/Http/Controllers/Api/ReportController.php @@ -27,7 +27,7 @@ public function summary(Request $request) // Ingresos y gastos del año $yearData = Transaction::where('user_id', $userId) - ->whereYear('transaction_date', $year) + ->whereYear('effective_date', $year) ->selectRaw(" SUM(CASE WHEN type = 'credit' THEN amount ELSE 0 END) as income, SUM(CASE WHEN type = 'debit' THEN ABS(amount) ELSE 0 END) as expense @@ -36,7 +36,7 @@ public function summary(Request $request) // Comparar con año anterior $lastYearData = Transaction::where('user_id', $userId) - ->whereYear('transaction_date', $year - 1) + ->whereYear('effective_date', $year - 1) ->selectRaw(" SUM(CASE WHEN type = 'credit' THEN amount ELSE 0 END) as income, SUM(CASE WHEN type = 'debit' THEN ABS(amount) ELSE 0 END) as expense @@ -77,7 +77,7 @@ public function byCategory(Request $request) $type = $request->get('type', 'debit'); // debit o credit $data = Transaction::where('user_id', $userId) - ->whereBetween('transaction_date', [$startDate, $endDate]) + ->whereBetween('effective_date', [$startDate, $endDate]) ->where('type', $type) ->whereNotNull('category_id') ->join('categories', 'transactions.category_id', '=', 'categories.id') @@ -131,9 +131,9 @@ public function monthlyEvolution(Request $request) $months = $request->get('months', 12); $data = Transaction::where('user_id', $userId) - ->where('transaction_date', '>=', now()->subMonths($months)->startOfMonth()) + ->where('effective_date', '>=', now()->subMonths($months)->startOfMonth()) ->selectRaw(" - DATE_FORMAT(transaction_date, '%Y-%m') as month, + DATE_FORMAT(effective_date, '%Y-%m') as month, SUM(CASE WHEN type = 'credit' THEN amount ELSE 0 END) as income, SUM(CASE WHEN type = 'debit' THEN ABS(amount) ELSE 0 END) as expense ") @@ -177,9 +177,9 @@ public function byDayOfWeek(Request $request) $data = Transaction::where('user_id', $userId) ->where('type', 'debit') - ->where('transaction_date', '>=', now()->subMonths($months)) + ->where('effective_date', '>=', now()->subMonths($months)) ->selectRaw(" - DAYOFWEEK(transaction_date) as day_num, + DAYOFWEEK(effective_date) as day_num, COUNT(*) as count, SUM(ABS(amount)) as total, AVG(ABS(amount)) as average @@ -215,7 +215,7 @@ public function topExpenses(Request $request) $transactions = Transaction::where('user_id', $userId) ->where('type', 'debit') - ->whereBetween('transaction_date', [$startDate, $endDate]) + ->whereBetween('effective_date', [$startDate, $endDate]) ->with(['category', 'account']) ->orderByRaw('ABS(amount) DESC') ->limit($limit) @@ -227,7 +227,7 @@ public function topExpenses(Request $request) 'id' => $t->id, 'description' => $t->description, 'amount' => abs($t->amount), - 'date' => $t->transaction_date->format('Y-m-d'), + 'date' => $t->effective_date->format('Y-m-d'), 'category' => $t->category ? $t->category->name : null, 'account' => $t->account ? $t->account->name : null, ]; @@ -257,7 +257,7 @@ public function comparePeriods(Request $request) $getPeriodData = function($start, $end) use ($userId) { return Transaction::where('user_id', $userId) - ->whereBetween('transaction_date', [$start, $end]) + ->whereBetween('effective_date', [$start, $end]) ->selectRaw(" SUM(CASE WHEN type = 'credit' THEN amount ELSE 0 END) as income, SUM(CASE WHEN type = 'debit' THEN ABS(amount) ELSE 0 END) as expense, @@ -313,14 +313,14 @@ public function accountsReport(Request $request) $result = $accounts->map(function($account) { // Últimas transacciones $recentActivity = Transaction::where('account_id', $account->id) - ->orderBy('transaction_date', 'desc') + ->orderBy('effective_date', 'desc') ->limit(5) - ->get(['id', 'description', 'amount', 'type', 'transaction_date']); + ->get(['id', 'description', 'amount', 'type', 'effective_date']); // Movimientos del mes $monthStats = Transaction::where('account_id', $account->id) - ->whereMonth('transaction_date', now()->month) - ->whereYear('transaction_date', now()->year) + ->whereMonth('effective_date', now()->month) + ->whereYear('effective_date', now()->year) ->selectRaw(" SUM(CASE WHEN type = 'credit' THEN amount ELSE 0 END) as income, SUM(CASE WHEN type = 'debit' THEN ABS(amount) ELSE 0 END) as expense @@ -359,8 +359,8 @@ public function projection(Request $request) // Obtener promedio de los últimos meses $historical = Transaction::where('user_id', $userId) - ->where('transaction_date', '>=', now()->subMonths($months)->startOfMonth()) - ->where('transaction_date', '<', now()->startOfMonth()) + ->where('effective_date', '>=', now()->subMonths($months)->startOfMonth()) + ->where('effective_date', '<', now()->startOfMonth()) ->selectRaw(" AVG(CASE WHEN type = 'credit' THEN amount ELSE NULL END) as avg_income, AVG(CASE WHEN type = 'debit' THEN ABS(amount) ELSE NULL END) as avg_expense, @@ -371,8 +371,8 @@ public function projection(Request $request) // Gastos del mes actual $currentMonth = Transaction::where('user_id', $userId) - ->whereMonth('transaction_date', now()->month) - ->whereYear('transaction_date', now()->year) + ->whereMonth('effective_date', now()->month) + ->whereYear('effective_date', now()->year) ->selectRaw(" SUM(CASE WHEN type = 'credit' THEN amount ELSE 0 END) as income, SUM(CASE WHEN type = 'debit' THEN ABS(amount) ELSE 0 END) as expense diff --git a/backend/app/Models/Budget.php b/backend/app/Models/Budget.php index a5bffa5..cebc75a 100644 --- a/backend/app/Models/Budget.php +++ b/backend/app/Models/Budget.php @@ -59,10 +59,10 @@ public function getSpentAmountAttribute() // Calcular el gasto real de las transacciones $query = Transaction::where('user_id', $this->user_id) ->where('type', 'debit') - ->whereYear('transaction_date', $this->year); + ->whereYear('effective_date', $this->year); if ($this->period_type === 'monthly' && $this->month) { - $query->whereMonth('transaction_date', $this->month); + $query->whereMonth('effective_date', $this->month); } if ($this->category_id) {