Files
asset-management-system/app/Http/Controllers/ApprovalController.php

39 lines
1.1 KiB
PHP
Raw Normal View History

<?php
namespace App\Http\Controllers;
use App\Models\AssetApprovalRequest;
use App\Services\Workflow\ApprovalService;
use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request;
use Illuminate\View\View;
class ApprovalController extends Controller
{
public function __construct(private readonly ApprovalService $approvals)
{
}
public function index(): View
{
$pending = AssetApprovalRequest::with(['approvable', 'requester'])
->where('status', 'pending')
->orderByDesc('created_at')
->paginate(config('system.ui.table_page_size', 15));
return view('approvals.index', compact('pending'));
}
public function approve(Request $request, AssetApprovalRequest $approval): RedirectResponse
{
$this->approvals->approve($approval, $request->input('notes'));
return back()->with('success', 'Permintaan disetujui.');
}
public function reject(Request $request, AssetApprovalRequest $approval): RedirectResponse
{
$this->approvals->reject($approval, $request->input('notes'));
return back()->with('success', 'Permintaan ditolak.');
}
}