From b3cdfb7bec7c3dc4550b78c29e40d11be3510cf7 Mon Sep 17 00:00:00 2001 From: Arya Dwi Putra Date: Mon, 1 Dec 2025 09:35:23 +0700 Subject: [PATCH] Add sidebar links and pages for asset movements, disposals, and audits --- .../AssetTransactionPageController.php | 38 ++++++++++++++ resources/views/assets/audits.blade.php | 46 ++++++++++++++++ resources/views/assets/disposals.blade.php | 52 +++++++++++++++++++ resources/views/assets/movements.blade.php | 46 ++++++++++++++++ .../layouts/components/main-sidebar.blade.php | 35 +++++++++++++ routes/web.php | 4 ++ 6 files changed, 221 insertions(+) create mode 100644 app/Http/Controllers/AssetTransactionPageController.php create mode 100644 resources/views/assets/audits.blade.php create mode 100644 resources/views/assets/disposals.blade.php create mode 100644 resources/views/assets/movements.blade.php diff --git a/app/Http/Controllers/AssetTransactionPageController.php b/app/Http/Controllers/AssetTransactionPageController.php new file mode 100644 index 0000000..d12fcbb --- /dev/null +++ b/app/Http/Controllers/AssetTransactionPageController.php @@ -0,0 +1,38 @@ +latest() + ->paginate(20); + + return view('assets.movements', compact('items')); + } + + public function disposals(): View + { + $items = AssetDisposal::with(['asset', 'previousStatus', 'previousLocation', 'previousDepartment']) + ->latest() + ->paginate(20); + + return view('assets.disposals', compact('items')); + } + + public function audits(): View + { + $items = AssetAudit::with(['asset', 'location']) + ->latest() + ->paginate(20); + + return view('assets.audits', compact('items')); + } +} diff --git a/resources/views/assets/audits.blade.php b/resources/views/assets/audits.blade.php new file mode 100644 index 0000000..9dde2f4 --- /dev/null +++ b/resources/views/assets/audits.blade.php @@ -0,0 +1,46 @@ +@extends('layouts.master') + +@section('content') +
+
+

Audit Aset

+

Pantau kesesuaian fisik vs data sistem.

+
+
+
+
+
Audit
+
+
+
+ + + + + + + + + + + + @forelse($items as $item) + + + + + + + + @empty + + + + @endforelse + +
WaktuAsetStatusLokasiCatatan
{{ optional($item->audited_at)->format('d/m/Y H:i') ?: '-' }}{{ $item->asset?->code }} - {{ $item->asset?->name }}{{ ucfirst($item->status) }}{{ $item->location?->name ?: '-' }}{{ $item->notes ?: '-' }}
Belum ada audit.
+
+ {{ $items->links() }} +
+
+@endsection diff --git a/resources/views/assets/disposals.blade.php b/resources/views/assets/disposals.blade.php new file mode 100644 index 0000000..3203910 --- /dev/null +++ b/resources/views/assets/disposals.blade.php @@ -0,0 +1,52 @@ +@extends('layouts.master') + +@section('content') +
+
+

Disposal Aset

+

Riwayat disposal dan reverse aset.

+
+
+
+
+
Disposal
+
+
+
+ + + + + + + + + + + + @forelse($items as $item) + + + + + + + + @empty + + + + @endforelse + +
WaktuAsetAlasanCatatanStatus Reverse
{{ optional($item->disposed_at)->format('d/m/Y H:i') ?: '-' }}{{ $item->asset?->code }} - {{ $item->asset?->name }}{{ $item->reason ?: '-' }}{{ $item->notes ?: '-' }} + @if($item->reversed_at) + Reversed ({{ $item->reversed_at->format('d/m/Y H:i') }}) + @else + Active + @endif +
Belum ada disposal.
+
+ {{ $items->links() }} +
+
+@endsection diff --git a/resources/views/assets/movements.blade.php b/resources/views/assets/movements.blade.php new file mode 100644 index 0000000..da9f501 --- /dev/null +++ b/resources/views/assets/movements.blade.php @@ -0,0 +1,46 @@ +@extends('layouts.master') + +@section('content') +
+
+

Movement Aset

+

Riwayat perpindahan lokasi/departemen/pengguna aset.

+
+
+
+
+
Movement
+
+
+
+ + + + + + + + + + + + @forelse($items as $item) + + + + + + + + @empty + + + + @endforelse + +
WaktuAsetDariKeCatatan
{{ optional($item->performed_at)->format('d/m/Y H:i') ?: '-' }}{{ $item->asset?->code }} - {{ $item->asset?->name }}{{ $item->fromLocation?->name ?: '-' }} / {{ $item->fromDepartment?->name ?: '-' }} / {{ $item->fromUser?->name ?: '-' }}{{ $item->toLocation?->name ?: '-' }} / {{ $item->toDepartment?->name ?: '-' }} / {{ $item->toUser?->name ?: '-' }}{{ $item->notes ?: '-' }}
Belum ada movement.
+
+ {{ $items->links() }} +
+
+@endsection diff --git a/resources/views/layouts/components/main-sidebar.blade.php b/resources/views/layouts/components/main-sidebar.blade.php index cad48be..c11e1ed 100644 --- a/resources/views/layouts/components/main-sidebar.blade.php +++ b/resources/views/layouts/components/main-sidebar.blade.php @@ -125,6 +125,41 @@ Data Aset +
  • + + + + + + + + Movement + +
  • +
  • + + + + + + + + + + Disposal + +
  • +
  • + + + + + + + + Audit Aset + +
  • Web Apps
  • diff --git a/routes/web.php b/routes/web.php index 9a0d7ef..4541c00 100644 --- a/routes/web.php +++ b/routes/web.php @@ -19,6 +19,7 @@ use App\Http\Controllers\Master\WarrantyController; use App\Http\Controllers\AssetController; use App\Http\Controllers\AssetTransactionController; use App\Http\Controllers\AssetAuditController; +use App\Http\Controllers\AssetTransactionPageController; use App\Http\Controllers\Controller; Route::get('/', function () { @@ -54,3 +55,6 @@ Route::post('assets/{asset}/movements', [AssetTransactionController::class, 'sto Route::post('assets/{asset}/disposals', [AssetTransactionController::class, 'storeDisposal'])->name('assets.disposals.store'); Route::post('asset-disposals/{disposal}/reverse', [AssetTransactionController::class, 'reverseDisposal'])->name('assets.disposals.reverse'); Route::post('assets/{asset}/audits', [AssetAuditController::class, 'store'])->name('assets.audits.store'); +Route::get('asset-movements', [AssetTransactionPageController::class, 'movements'])->name('asset-movements.index'); +Route::get('asset-disposals', [AssetTransactionPageController::class, 'disposals'])->name('asset-disposals.index'); +Route::get('asset-audits', [AssetTransactionPageController::class, 'audits'])->name('asset-audits.index');