Untitled
unknown
plain_text
5 months ago
2.5 kB
2
Indexable
<?php namespace App\Http\Controllers; use App\Models\Expense; use App\Models\Income; use App\Models\User; use Illuminate\Http\Request; use Inertia\Inertia; class FinanceController extends Controller { public function index(Request $request) { $user = $request->user(); $data = [ 'currentAmount' => $user->getCurrentAmount(), 'totalIncome' => $user->getTotalIncome(), 'totalExpense' => $user->getTotalExpense(), 'recentIncomes' => $user->getRecentIncomes(), 'recentExpenses' => $user->getRecentExpenses(), ]; if ($user->isAdmin()) { $adminUser = User::where('is_admin', true)->first(); $data['globalCurrentAmount'] = $adminUser->getCurrentAmount(); $data['globalTotalIncome'] = $adminUser->getTotalIncome(); $data['globalTotalExpense'] = $adminUser->getTotalExpense(); } return Inertia::render('Dashboard/Index', $data); } public function storeExpense(Request $request) { $user = $request->user(); $validated = $request->validate([ 'description' => 'required|string|max:255', 'amount' => 'required|numeric|min:0', 'date' => 'required|date', ]); $expense = $user->expenses()->create($validated); if ($user->isAdmin()) { $this->updateFinanceStatus('expense', $validated['amount']); } return back()->with('success', 'Dépense ajoutée avec succès.'); } public function storeIncome(Request $request) { $user = $request->user(); $validated = $request->validate([ 'description' => 'required|string|max:255', 'amount' => 'required|numeric|min:0', 'date' => 'required|date', ]); $income = $user->incomes()->create($validated); if ($user->isAdmin()) { $this->updateFinanceStatus('income', $validated['amount']); } return back()->with('success', 'Revenu ajouté avec succès.'); } private function updateFinanceStatus($type, $amount) { $adminUser = User::where('is_admin', true)->first(); $currentAmount = $adminUser->getCurrentAmount(); $trend = $type === 'income' ? 'positive' : 'negative'; Inertia::share([ 'globalCurrentAmount' => $currentAmount, 'lastTransactionAmount' => $amount, 'trend' => $trend ]); } }
Editor is loading...
Leave a Comment