buid new app

This commit is contained in:
2026-03-09 01:00:49 +08:00
commit 97aed742af
126 changed files with 19341 additions and 0 deletions

View File

@@ -0,0 +1,114 @@
<?php
namespace App\Http\Controllers;
use App\Models\Category;
use App\Models\CategoryRule;
use App\Models\Expense;
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
use Illuminate\Http\Request;
use Inertia\Inertia;
class ExpenseController extends Controller
{
use AuthorizesRequests;
/**
* Display a listing of the resource.
*/
public function index()
{
$expenses = Expense::with('category')
->where('user_id', auth()->id())
->orderBy('date', 'desc')
->get();
$categories = Category::where('user_id', auth()->id())->get();
$rules = CategoryRule::with('category')
->where('user_id', auth()->id())
->get();
return Inertia::render('Expenses/Index', [
'expenses' => $expenses,
'categories' => $categories,
'rules' => $rules,
]);
}
/**
* Store a newly created resource in storage.
*/
public function store(Request $request)
{
$validated = $request->validate([
'amount' => 'required|numeric|min:0',
'category_id' => 'nullable|exists:categories,id',
'note' => 'nullable|string|max:255',
'date' => 'required|date',
]);
Expense::create([
...$validated,
'user_id' => auth()->id(),
]);
return redirect()->back();
}
/**
* Display the specified resource.
*/
public function show(Expense $expense)
{
//
}
/**
* Show the form for editing the specified resource.
*/
public function edit(Expense $expense)
{
//
}
/**
* Update the specified resource in storage.
*/
public function update(Request $request, Expense $expense)
{
$this->authorize('update', $expense);
$validated = $request->validate([
'amount' => 'required|numeric|min:0',
'category_id' => 'nullable|exists:categories,id',
'note' => 'nullable|string|max:255',
'date' => 'required|date',
]);
$expense->update($validated);
return redirect()->back();
}
/**
* Remove the specified resource from storage.
*/
public function destroy(Expense $expense)
{
$this->authorize('delete', $expense);
$expense->delete();
return redirect()->back();
}
public function destroyBatch(Request $request)
{
$request->validate(['ids' => 'required|array']);
Expense::whereIn('id', $request->ids)
->where('user_id', auth()->id())
->delete();
return redirect()->back();
}
}