diff --git a/app/Http/Controllers/ApprovalController.php b/app/Http/Controllers/ApprovalController.php index 9d231a6..fa471b0 100644 --- a/app/Http/Controllers/ApprovalController.php +++ b/app/Http/Controllers/ApprovalController.php @@ -6,6 +6,7 @@ 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 { @@ -13,6 +14,16 @@ class ApprovalController extends Controller { } + 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')); diff --git a/resources/views/approvals/index.blade.php b/resources/views/approvals/index.blade.php new file mode 100644 index 0000000..e9279a1 --- /dev/null +++ b/resources/views/approvals/index.blade.php @@ -0,0 +1,86 @@ +@extends('layouts.master') + +@section('content') +
+
+

Approval Pending

+

Daftar movement, disposal, dan maintenance yang menunggu persetujuan.

+
+
+ +@if(session('success')) +
{{ session('success') }}
+@endif +@if($errors->any()) +
+ +
+@endif + +
+
+
Menunggu Approval
+
+
+
+ + + + + + + + + + + + + @forelse($pending as $approval) + @php + $approvable = $approval->approvable; + $asset = method_exists($approvable, 'asset') ? $approvable->asset : null; + @endphp + + + + + + + + + @empty + + + + @endforelse + +
TypeAssetDiminta OlehCatatanWaktuAksi
{{ $approval->type }} + @if($asset) +
{{ $asset->code }}
+
{{ $asset->name }}
+ @else + - + @endif +
{{ optional($approval->requester)->name ?? 'Tidak diketahui' }}{{ Str::limit($approvable->notes ?? $approvable->description ?? '-', 60) }}{{ $approval->created_at?->format('d/m/Y H:i') }} +
+
+ @csrf + +
+
+ @csrf + +
+
+
Tidak ada approval pending.
+
+
+ {{ $pending->links() }} +
+
+
+@endsection diff --git a/routes/web.php b/routes/web.php index 4471f79..81c3aad 100644 --- a/routes/web.php +++ b/routes/web.php @@ -102,6 +102,7 @@ Route::middleware(['auth','maintenance.readonly','session.timeout','audit.reques Route::resource('asset-maintenances', AssetMaintenanceController::class)->only(['index','store','update','destroy']) ->middleware('permission:maintenance.manage'); + Route::get('approvals', [\App\Http\Controllers\ApprovalController::class, 'index'])->name('approvals.index')->middleware('permission:assets.manage'); Route::post('approvals/{approval}/approve', [\App\Http\Controllers\ApprovalController::class, 'approve'])->name('approvals.approve')->middleware('permission:assets.manage'); Route::post('approvals/{approval}/reject', [\App\Http\Controllers\ApprovalController::class, 'reject'])->name('approvals.reject')->middleware('permission:assets.manage'); });