65 lines
1.8 KiB
PHP
65 lines
1.8 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\Admin\Finance;
|
|
|
|
use App\Http\Controllers\Controller;
|
|
use App\Http\Requests\Admin\Finance\ExpenseRequest;
|
|
use App\Models\Expense;
|
|
use Illuminate\Http\RedirectResponse;
|
|
use Illuminate\Http\Request;
|
|
use Inertia\Inertia;
|
|
use Inertia\Response;
|
|
|
|
class ExpenseController extends Controller
|
|
{
|
|
public function index(): Response
|
|
{
|
|
return Inertia::render('admin/finance/expense/index', [
|
|
'expenses' => Expense::with(['media', 'user'])->latest()->get(),
|
|
]);
|
|
}
|
|
|
|
public function store(ExpenseRequest $request): RedirectResponse
|
|
{
|
|
$validated = $request->validated();
|
|
$validated['user_id'] = auth()->id();
|
|
|
|
$expense = Expense::create($validated);
|
|
|
|
if ($request->hasFile('image')) {
|
|
$expense->addMediaFromRequest('image')->toMediaCollection('proof');
|
|
}
|
|
|
|
return redirect()->back()->with('success', 'Data berhasil disimpan');
|
|
}
|
|
|
|
public function update(ExpenseRequest $request, Expense $expense): RedirectResponse
|
|
{
|
|
$validated = $request->validated();
|
|
|
|
$expense->update($validated);
|
|
|
|
if ($request->hasFile('image')) {
|
|
$expense->addMediaFromRequest('image')->toMediaCollection('proof');
|
|
}
|
|
|
|
return redirect()->back()->with('success', 'Data berhasil diperbarui');
|
|
}
|
|
|
|
public function destroy(Expense $expense): RedirectResponse
|
|
{
|
|
$expense->delete();
|
|
|
|
return redirect()->back()->with('success', 'Data berhasil dihapus');
|
|
}
|
|
|
|
public function bulkDestroy(Request $request): RedirectResponse
|
|
{
|
|
$ids = $request->input('ids');
|
|
|
|
Expense::whereIn('id', $ids)->delete();
|
|
|
|
return redirect()->back()->with('success', 'Data terpilih berhasil dihapus');
|
|
}
|
|
}
|