From 314fefd52d1f91b4388dad049464721716aa38e5 Mon Sep 17 00:00:00 2001 From: Jagad R R Date: Wed, 8 Jan 2025 14:12:45 +0700 Subject: [PATCH] added crud data master region & cabang --- .../Controllers/Backend/ReportController.php | 23 +++ .../Controllers/Master/CabangController.php | 104 +++++++++++++ .../Controllers/Master/RegionController.php | 90 +++++++++++ app/Models/Admin.php | 7 + app/Models/Cabang.php | 5 + database/seeds/DatabaseSeeder.php | 4 +- database/seeds/RolePermissionSeeder7.php | 94 ++++++++++++ .../pages/forms/entertainment/index.blade.php | 4 +- .../pages/forms/meeting/index.blade.php | 4 +- .../backend/pages/forms/other/index.blade.php | 4 +- .../pages/forms/upcountry/index.blade.php | 4 +- .../pages/forms/vehicle/index.blade.php | 4 +- .../pages/master/cabang/create.blade.php | 71 +++++++++ .../pages/master/cabang/edit.blade.php | 72 +++++++++ .../pages/master/cabang/index.blade.php | 108 +++++++++++++ .../pages/master/category/edit.blade.php | 2 +- .../pages/master/category/index.blade.php | 4 +- .../backend/pages/master/cost/edit.blade.php | 2 +- .../backend/pages/master/cost/index.blade.php | 4 +- .../backend/pages/master/rayon/edit.blade.php | 2 +- .../pages/master/rayon/index.blade.php | 4 +- .../pages/master/region/create.blade.php | 53 +++++++ .../pages/master/region/edit.blade.php | 54 +++++++ .../pages/master/region/index.blade.php | 104 +++++++++++++ .../backend/pages/report/index.blade.php | 143 ++++++++++++++++++ .../views/layouts/partials/styles.blade.php | 5 + routes/web.php | 23 +++ 27 files changed, 983 insertions(+), 15 deletions(-) create mode 100644 app/Http/Controllers/Backend/ReportController.php create mode 100644 app/Http/Controllers/Master/CabangController.php create mode 100644 app/Http/Controllers/Master/RegionController.php create mode 100644 database/seeds/RolePermissionSeeder7.php create mode 100644 resources/views/backend/pages/master/cabang/create.blade.php create mode 100644 resources/views/backend/pages/master/cabang/edit.blade.php create mode 100644 resources/views/backend/pages/master/cabang/index.blade.php create mode 100644 resources/views/backend/pages/master/region/create.blade.php create mode 100644 resources/views/backend/pages/master/region/edit.blade.php create mode 100644 resources/views/backend/pages/master/region/index.blade.php create mode 100644 resources/views/backend/pages/report/index.blade.php diff --git a/app/Http/Controllers/Backend/ReportController.php b/app/Http/Controllers/Backend/ReportController.php new file mode 100644 index 0000000..0731531 --- /dev/null +++ b/app/Http/Controllers/Backend/ReportController.php @@ -0,0 +1,23 @@ +checkAuthorization(auth()->user(), ['cabang.view']); + session()->put('redirect_url', route('admin.cabang.index')); + + return view('backend.pages.master.cabang.index', [ + 'cabang' => Cabang::all() + ]); + } + + public function create() + { + $this->checkAuthorization(auth()->user(), ['cabang.create']); + return view('backend.pages.master.cabang.create', [ + 'users' => Admin::getUserWhereRoleIsNot('Medical Representatif'), + 'cost_centres' => CostCentre::all(), + 'regions' => Region::all() + ]); + } + + public function store(Request $request) + { + $this->checkAuthorization(auth()->user(), ['cabang.create']); + $request->validate([ + 'head_id' => 'required|exists:admins,id', + 'region_id' => 'required|exists:region,id', + 'cost_id' => 'required|exists:cost_centre,id', + 'code' => 'required|unique:cabang', + 'name' => 'required|unique:cabang' + ]); + + Cabang::create([ + 'head_id' => $request->head_id, + 'region_id' => $request->region_id, + 'cost_id' => $request->cost_id, + 'code' => $request->code, + 'name' => $request->name + ]); + + AuditTrailHelper::AddAuditTrail('Insert', 'Insert New Record at Cabang Table (' . $request->name . ')'); + session()->flash('success', 'Cabang has been added successfully.'); + return redirect()->back(); + } + + public function edit($id) + { + $this->checkAuthorization(auth()->user(), ['cabang.edit']); + return view('backend.pages.master.cabang.edit', [ + 'cabang' => Cabang::findOrfail($id), + 'users' => Admin::getUserWhereRoleIsNot('Medical Representatif'), + 'cost_centres' => CostCentre::all(), + 'regions' => Region::all() + ]); + } + + public function update(Request $request, $id) + { + $this->checkAuthorization(auth()->user(), ['cabang.edit']); + $request->validate([ + 'head_id' => 'required|exists:admins,id', + 'region_id' => 'required|exists:region,id', + 'cost_id' => 'required|exists:cost_centre,id', + 'code' => 'required|unique:cabang,code,' . $id, + 'name' => 'required|unique:cabang,name,' . $id + ]); + + Cabang::findOrfail($id)->update([ + 'head_id' => $request->head_id, + 'region_id' => $request->region_id, + 'cost_id' => $request->cost_id, + 'code' => $request->code, + 'name' => $request->name + ]); + + AuditTrailHelper::AddAuditTrail('Update', 'Update New Record at Cabang Table (' . $request->name . ')'); + session()->flash('success', 'Cabang has been updated successfully.'); + return redirect()->back(); + } + + public function destroy($id) + { + $this->checkAuthorization(auth()->user(), ['cabang.delete']); + $cabang = Cabang::findOrfail($id); + AuditTrailHelper::AddAuditTrail('Delete', 'Delete Record at Cabang Table (' . $cabang->name . ')'); + + $cabang->delete(); + session()->flash('success', 'Cabang has been deleted successfully.'); + return redirect()->back(); + } +} \ No newline at end of file diff --git a/app/Http/Controllers/Master/RegionController.php b/app/Http/Controllers/Master/RegionController.php new file mode 100644 index 0000000..b1575c9 --- /dev/null +++ b/app/Http/Controllers/Master/RegionController.php @@ -0,0 +1,90 @@ +checkAuthorization(auth()->user(), ['region.view']); + session()->put('redirect_url', route('admin.region.index')); + + return view('backend.pages.master.region.index', [ + 'region' => Region::all() + ]); + } + + public function create() + { + $this->checkAuthorization(auth()->user(), ['region.create']); + return view('backend.pages.master.region.create', [ + 'users' => Admin::getUserWhereRoleIsNot('Medical Representatif') + ]); + } + + public function store(Request $request) + { + $this->checkAuthorization(auth()->user(), ['region.create']); + $request->validate([ + 'head_id' => 'required|exists:admins,id', + 'code' => 'required|unique:region', + 'name' => 'required|unique:region' + ]); + + Region::create([ + 'head_id' => $request->head_id, + 'code' => $request->code, + 'name' => $request->name + ]); + + AuditTrailHelper::AddAuditTrail('Insert', 'Insert New Record at Region Table (' . $request->name . ')'); + session()->flash('success', 'Region has been added successfully.'); + return redirect()->back(); + } + + public function edit($id) + { + $this->checkAuthorization(auth()->user(), ['region.edit']); + return view('backend.pages.master.region.edit', [ + 'region' => Region::findOrfail($id), + 'users' => Admin::getUserWhereRoleIsNot('Medical Representatif') + ]); + } + + public function update(Request $request, $id) + { + $this->checkAuthorization(auth()->user(), ['region.edit']); + $request->validate([ + 'head_id' => 'required|exists:admins,id', + 'code' => 'required|unique:region,code,' . $id, + 'name' => 'required|unique:region,name,' . $id + ]); + + Region::findOrfail($id)->update([ + 'head_id' => $request->head_id, + 'code' => $request->code, + 'name' => $request->name + ]); + + AuditTrailHelper::AddAuditTrail('Update', 'Update New Record at Region Table (' . $request->name . ')'); + session()->flash('success', 'Region has been updated successfully.'); + return redirect()->back(); + } + + public function destroy($id) + { + $this->checkAuthorization(auth()->user(), ['region.delete']); + $region = Region::findOrfail($id); + AuditTrailHelper::AddAuditTrail('Delete', 'Delete Record at Region Table (' . $region->name . ')'); + + $region->delete(); + session()->flash('success', 'Region has been deleted successfully.'); + return redirect()->back(); + } +} \ No newline at end of file diff --git a/app/Models/Admin.php b/app/Models/Admin.php index 7a93f59..f510f68 100644 --- a/app/Models/Admin.php +++ b/app/Models/Admin.php @@ -167,4 +167,11 @@ class Admin extends Authenticatable return []; } + + public static function getUserWhereRoleIsNot($roleName) + { + return self::whereDoesntHave('roles', function ($query) use ($roleName) { + $query->where('name', $roleName); + })->get(); + } } diff --git a/app/Models/Cabang.php b/app/Models/Cabang.php index b669d0f..869c0cd 100644 --- a/app/Models/Cabang.php +++ b/app/Models/Cabang.php @@ -27,4 +27,9 @@ class Cabang extends Model { return $this->belongsTo(Region::class, 'region_id'); } + + public function cost() + { + return $this->belongsTo(CostCentre::class, 'cost_id'); + } } diff --git a/database/seeds/DatabaseSeeder.php b/database/seeds/DatabaseSeeder.php index d6e0cf2..878de7b 100644 --- a/database/seeds/DatabaseSeeder.php +++ b/database/seeds/DatabaseSeeder.php @@ -11,6 +11,7 @@ use Database\Seeds\RolePermissionSeeder3; use Database\Seeds\RolePermissionSeeder4; use Database\Seeds\RolePermissionSeeder5; use Database\Seeds\RolePermissionSeeder6; +use Database\Seeds\RolePermissionSeeder7; class DatabaseSeeder extends Seeder { @@ -30,6 +31,7 @@ class DatabaseSeeder extends Seeder // $this->call(RolePermissionSeeder3::class); // $this->call(RolePermissionSeeder4::class); // $this->call(RolePermissionSeeder5::class); - $this->call(RolePermissionSeeder6::class); + // $this->call(RolePermissionSeeder6::class); + $this->call(RolePermissionSeeder7::class); } } diff --git a/database/seeds/RolePermissionSeeder7.php b/database/seeds/RolePermissionSeeder7.php new file mode 100644 index 0000000..b7e36a3 --- /dev/null +++ b/database/seeds/RolePermissionSeeder7.php @@ -0,0 +1,94 @@ + 'region', + 'permissions' => [ + 'region.view', + 'region.edit', + 'region.create', + 'region.delete', + ] + ], + [ + 'group_name' => 'cabang', + 'permissions' => [ + 'cabang.view', + 'cabang.edit', + 'cabang.create', + 'cabang.delete', + ] + ], + ]; + + // Do same for the admin guard for tutorial purposes. + $admin = Admin::where('username', 'superadmin')->first(); + $roleSuperAdmin = $this->maybeCreateSuperAdminRole($admin); + + // Create and Assign Permissions + for ($i = 0; $i < count($permissions); $i++) { + $permissionGroup = $permissions[$i]['group_name']; + for ($j = 0; $j < count($permissions[$i]['permissions']); $j++) { + $permissionExist = Permission::where('name', $permissions[$i]['permissions'][$j])->first(); + if (is_null($permissionExist)) { + $permission = Permission::create( + [ + 'name' => $permissions[$i]['permissions'][$j], + 'group_name' => $permissionGroup, + 'guard_name' => 'admin' + ] + ); + $roleSuperAdmin->givePermissionTo($permission); + $permission->assignRole($roleSuperAdmin); + } + } + } + + // Assign super admin role permission to superadmin user + if ($admin) { + $admin->assignRole($roleSuperAdmin); + } + } + + private function maybeCreateSuperAdminRole($admin): Role + { + if (is_null($admin)) { + $roleSuperAdmin = Role::create(['name' => 'superadmin', 'guard_name' => 'admin']); + } else { + $roleSuperAdmin = Role::where('name', 'superadmin')->where('guard_name', 'admin')->first(); + } + + if (is_null($roleSuperAdmin)) { + $roleSuperAdmin = Role::create(['name' => 'superadmin', 'guard_name' => 'admin']); + } + + return $roleSuperAdmin; + } +} diff --git a/resources/views/backend/pages/forms/entertainment/index.blade.php b/resources/views/backend/pages/forms/entertainment/index.blade.php index 51e4a04..20b6d80 100644 --- a/resources/views/backend/pages/forms/entertainment/index.blade.php +++ b/resources/views/backend/pages/forms/entertainment/index.blade.php @@ -85,6 +85,7 @@ # User + Cabang Nama Penerima Tanggal Jenis @@ -112,6 +113,7 @@ {{ $loop->iteration }} {{ $item->user->name }} + {{ $item->user->cabang->cabang->name }} {{ $item->name }} {{ \Carbon\Carbon::parse($item->tanggal)->locale('id')->isoFormat('D MMMM Y') }} {{ $item->jenis }} @@ -322,7 +324,7 @@ $('#dataTable').DataTable({ responsive: false, dom: 'Bfrtip', - buttons: ['excel', 'pdf', 'print'] + buttons: ['excel', 'pdf', 'print', 'colvis'], }); } diff --git a/resources/views/backend/pages/forms/meeting/index.blade.php b/resources/views/backend/pages/forms/meeting/index.blade.php index b72c780..bc1cfd9 100644 --- a/resources/views/backend/pages/forms/meeting/index.blade.php +++ b/resources/views/backend/pages/forms/meeting/index.blade.php @@ -86,6 +86,7 @@ # No Expense Nama + Cabang Tanggal Allowance Transport Ankot @@ -113,6 +114,7 @@ {{ $loop->iteration }} {{ $item->expense_number }} {{ $item->user->name }} + {{ $item->user->cabang->cabang->name }} {{ \Carbon\Carbon::parse($item->created_at)->locale('id')->isoFormat('D MMMM Y') }} {{ number_format($item->allowance, 0, ',', '.') }} {{ number_format($item->transport_ankot, 0, ',', '.') }} @@ -324,7 +326,7 @@ $('#dataTable').DataTable({ responsive: false, dom: 'Bfrtip', - buttons: ['excel', 'pdf', 'print'] + buttons: ['excel', 'pdf', 'print', 'colvis'], }); } diff --git a/resources/views/backend/pages/forms/other/index.blade.php b/resources/views/backend/pages/forms/other/index.blade.php index e5497a9..f683c65 100644 --- a/resources/views/backend/pages/forms/other/index.blade.php +++ b/resources/views/backend/pages/forms/other/index.blade.php @@ -85,6 +85,7 @@ # Nama + Cabang Tanggal Jenis Keterangan @@ -110,6 +111,7 @@ {{ $loop->iteration }} {{ $item->user->name }} + {{ $item->user->cabang->cabang->name }} {{ \Carbon\Carbon::parse($item->tanggal)->locale('id')->isoFormat('D MMMM Y') }} {{ $item->kategori->name }} {{ $item->keterangan }} @@ -309,7 +311,7 @@ $('#dataTable').DataTable({ responsive: false, dom: 'Bfrtip', - buttons: ['excel', 'pdf', 'print'] + buttons: ['excel', 'pdf', 'print', 'colvis'], }); } diff --git a/resources/views/backend/pages/forms/upcountry/index.blade.php b/resources/views/backend/pages/forms/upcountry/index.blade.php index 4a33c2b..1c81fe1 100644 --- a/resources/views/backend/pages/forms/upcountry/index.blade.php +++ b/resources/views/backend/pages/forms/upcountry/index.blade.php @@ -86,6 +86,7 @@ # No Expense Nama + Cabang Rayon Tanggal Tujuan @@ -113,6 +114,7 @@ {{ $loop->iteration }} {{ $item->expense_number }} {{ $item->user->name }} + {{ $item->user->cabang->cabang->name }} {{ $item->rayon->code }} {{ \Carbon\Carbon::parse($item->tanggal)->locale('id')->isoFormat('D MMMM Y') }} {{ $item->tujuan }} @@ -350,7 +352,7 @@ $('#dataTable').DataTable({ responsive: false, dom: 'Bfrtip', - buttons: ['excel', 'pdf', 'print'] + buttons: ['excel', 'pdf', 'print', 'colvis'], }); } diff --git a/resources/views/backend/pages/forms/vehicle/index.blade.php b/resources/views/backend/pages/forms/vehicle/index.blade.php index d63941f..e76a7c2 100644 --- a/resources/views/backend/pages/forms/vehicle/index.blade.php +++ b/resources/views/backend/pages/forms/vehicle/index.blade.php @@ -85,6 +85,7 @@ # Nama + Cabang Tanggal Liter Total @@ -113,6 +114,7 @@ {{ $loop->iteration }} {{ $item->user->name }} + {{ $item->user->cabang->cabang->name }} {{ \Carbon\Carbon::parse($item->tanggal)->locale('id')->isoFormat('dddd, D MMMM Y HH:mm:ss') }} {{ $item->liter }} {{ number_format($item->total, 0, ',', '.') }} @@ -327,7 +329,7 @@ $('#dataTable').DataTable({ responsive: false, dom: 'Bfrtip', - buttons: ['excel', 'pdf', 'print'] + buttons: ['excel', 'pdf', 'print', 'colvis'], }); } diff --git a/resources/views/backend/pages/master/cabang/create.blade.php b/resources/views/backend/pages/master/cabang/create.blade.php new file mode 100644 index 0000000..54cb574 --- /dev/null +++ b/resources/views/backend/pages/master/cabang/create.blade.php @@ -0,0 +1,71 @@ +@extends('layouts.app') + +@section('title') + Dashboard +@endsection + +@section('admin-content') +
+
+
+
+

Tambahkan Cabang Baru

+
+
+ +
+
+
+
+
+
+
+
+
+ @csrf + @include('backend.layouts.partials.messages') +
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+ +
+
+
+
+
+@endsection diff --git a/resources/views/backend/pages/master/cabang/edit.blade.php b/resources/views/backend/pages/master/cabang/edit.blade.php new file mode 100644 index 0000000..52ec95a --- /dev/null +++ b/resources/views/backend/pages/master/cabang/edit.blade.php @@ -0,0 +1,72 @@ +@extends('layouts.app') + +@section('title') + Dashboard +@endsection + +@section('admin-content') +
+
+
+
+

Edit Cabang

+
+
+ +
+
+
+
+
+
+
+
+
+ @csrf + @method('PUT') + @include('backend.layouts.partials.messages') +
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+ +
+
+
+
+
+@endsection diff --git a/resources/views/backend/pages/master/cabang/index.blade.php b/resources/views/backend/pages/master/cabang/index.blade.php new file mode 100644 index 0000000..e565655 --- /dev/null +++ b/resources/views/backend/pages/master/cabang/index.blade.php @@ -0,0 +1,108 @@ +@extends('layouts.app') + +@section('title') + Dashboard +@endsection + +@section('admin-content') +
+
+
+
+

Data Master Cabang

+
+
+ +
+
+
+
+
+
+
+
+

List Data Cabang

+

+ @if (Auth::user()->can('cabang.create')) + + Add New Cabang + + @endif +

+
+
+ @include('backend.layouts.partials.messages') +
+ + + + + + + + + + + + + + + @foreach ($cabang as $item) + + + + + + + + + + + @endforeach + +
#Nama Kepala CabangEmail Kepala CabangRegionCodeNamaCost CentreAksi
{{ $loop->index + 1 }}{{ $item->head->name }}{{ $item->head->email }}{{ $item->region->name }}{{ $item->code }}{{ $item->name }}{{ $item->cost->name }} ({{ $item->cost->code }}) + @if (auth()->user()->can('cabang.edit')) + Edit + @endif + @if (auth()->user()->can('cabang.delete')) + + {{ __('Delete') }} + + + + @endif +
+
+
+
+
+
+
+@endsection + +@section('scripts') + +@endsection diff --git a/resources/views/backend/pages/master/category/edit.blade.php b/resources/views/backend/pages/master/category/edit.blade.php index b85685f..6c1c062 100644 --- a/resources/views/backend/pages/master/category/edit.blade.php +++ b/resources/views/backend/pages/master/category/edit.blade.php @@ -37,7 +37,7 @@ - + diff --git a/resources/views/backend/pages/master/category/index.blade.php b/resources/views/backend/pages/master/category/index.blade.php index 129507f..98b0c98 100644 --- a/resources/views/backend/pages/master/category/index.blade.php +++ b/resources/views/backend/pages/master/category/index.blade.php @@ -54,10 +54,10 @@ {{ $category->name }} {{ $category->account_number }} - @if (auth()->user()->can('admin.edit')) + @if (auth()->user()->can('category.edit')) Edit @endif - @if (auth()->user()->can('admin.delete')) + @if (auth()->user()->can('category.delete')) {{ __('Delete') }} diff --git a/resources/views/backend/pages/master/cost/edit.blade.php b/resources/views/backend/pages/master/cost/edit.blade.php index deeac40..fa532ff 100644 --- a/resources/views/backend/pages/master/cost/edit.blade.php +++ b/resources/views/backend/pages/master/cost/edit.blade.php @@ -37,7 +37,7 @@ - + diff --git a/resources/views/backend/pages/master/cost/index.blade.php b/resources/views/backend/pages/master/cost/index.blade.php index b21dffb..42ada2d 100644 --- a/resources/views/backend/pages/master/cost/index.blade.php +++ b/resources/views/backend/pages/master/cost/index.blade.php @@ -54,10 +54,10 @@ {{ $cost->code }} {{ $cost->name }} - @if (auth()->user()->can('admin.edit')) + @if (auth()->user()->can('cost.edit')) Edit @endif - @if (auth()->user()->can('admin.delete')) + @if (auth()->user()->can('cost.delete')) {{ __('Delete') }} diff --git a/resources/views/backend/pages/master/rayon/edit.blade.php b/resources/views/backend/pages/master/rayon/edit.blade.php index eb13283..c62ca23 100644 --- a/resources/views/backend/pages/master/rayon/edit.blade.php +++ b/resources/views/backend/pages/master/rayon/edit.blade.php @@ -36,7 +36,7 @@ - + diff --git a/resources/views/backend/pages/master/rayon/index.blade.php b/resources/views/backend/pages/master/rayon/index.blade.php index ddd42c9..47b3987 100644 --- a/resources/views/backend/pages/master/rayon/index.blade.php +++ b/resources/views/backend/pages/master/rayon/index.blade.php @@ -54,10 +54,10 @@ {{ $rayon->code }} {{ $rayon->name }} - @if (auth()->user()->can('admin.edit')) + @if (auth()->user()->can('rayon.edit')) Edit @endif - @if (auth()->user()->can('admin.delete')) + @if (auth()->user()->can('rayon.delete')) {{ __('Delete') }} diff --git a/resources/views/backend/pages/master/region/create.blade.php b/resources/views/backend/pages/master/region/create.blade.php new file mode 100644 index 0000000..ab86a84 --- /dev/null +++ b/resources/views/backend/pages/master/region/create.blade.php @@ -0,0 +1,53 @@ +@extends('layouts.app') + +@section('title') + Dashboard +@endsection + +@section('admin-content') +
+ +
+
+
+
+
+
+ @csrf + @include('backend.layouts.partials.messages') +
+ + +
+
+ + +
+
+ + +
+ +
+
+
+
+
+@endsection diff --git a/resources/views/backend/pages/master/region/edit.blade.php b/resources/views/backend/pages/master/region/edit.blade.php new file mode 100644 index 0000000..f6e5bc4 --- /dev/null +++ b/resources/views/backend/pages/master/region/edit.blade.php @@ -0,0 +1,54 @@ +@extends('layouts.app') + +@section('title') + Dashboard +@endsection + +@section('admin-content') +
+
+
+
+

Edit Region

+
+
+ +
+
+
+
+
+
+
+
+
+ @csrf + @method('PUT') + @include('backend.layouts.partials.messages') +
+ + +
+
+ + +
+
+ + +
+ +
+
+
+
+
+@endsection diff --git a/resources/views/backend/pages/master/region/index.blade.php b/resources/views/backend/pages/master/region/index.blade.php new file mode 100644 index 0000000..b4b1849 --- /dev/null +++ b/resources/views/backend/pages/master/region/index.blade.php @@ -0,0 +1,104 @@ +@extends('layouts.app') + +@section('title') + Dashboard +@endsection + +@section('admin-content') +
+
+
+
+

Data Master Region

+
+
+ +
+
+
+
+
+
+
+
+

List Data Region

+

+ @if (Auth::user()->can('region.create')) + + Add New Region + + @endif +

+
+
+ @include('backend.layouts.partials.messages') +
+ + + + + + + + + + + + + @foreach ($region as $item) + + + + + + + + + @endforeach + +
#Nama Kepala RegionEmail Kepala RegionCodeNamaAksi
{{ $loop->index + 1 }}{{ $item->head->name }}{{ $item->head->email }}{{ $item->code }}{{ $item->name }} + @if (auth()->user()->can('region.edit')) + Edit + @endif + @if (auth()->user()->can('region.delete')) + + {{ __('Delete') }} + + + + @endif +
+
+
+
+
+
+
+@endsection + +@section('scripts') + +@endsection diff --git a/resources/views/backend/pages/report/index.blade.php b/resources/views/backend/pages/report/index.blade.php new file mode 100644 index 0000000..78441a4 --- /dev/null +++ b/resources/views/backend/pages/report/index.blade.php @@ -0,0 +1,143 @@ +@extends('layouts.app') + +@section('title') + Dashboard +@endsection + +@section('admin-content') +
+
+
+
+

Active Budgets

+
+
+ +
+
+
+
+
+
+
+
+
+
+

Rp {{ number_format(2000000, 0, ',', '.') }}

+

Total Budget Bulan Ini

+
+
+ +
+
+
+
+
+
+

Rp {{ number_format(2000000, 0, ',', '.') }}

+

Total Budget Tersedia

+
+
+ +
+
+
+
+
+
+

Rp {{ number_format(2000000, 0, ',', '.') }}

+

Total Budget Terpakai

+
+
+ +
+
+
+
+
+
+
+
+
+
+

Current Active Budget

+
+
+ @include('backend.layouts.partials.messages') +
+ + + + + + + + + + + + + + + + + @foreach ($data as $item) + + + + + + + + + + + + + @endforeach + +
#PenerimaCabangPengirimTotalKeteranganPeriodeTanggal ClosingStatusAksi
{{ $loop->iteration }}{{ $item->receiver->name }}{{ $item->cabang->name }}{{ $item->sender->name }}{{ number_format($item->amount, 0, ',', '.') }}{{ $item->remarks }}{{ strtoupper($item->periode_month) }} {{ $item->periode_year }}{{ \Carbon\Carbon::parse($item->closing_at)->locale('id')->isoFormat('D MMMM Y H:mm') }} + @if ($item->status == 'Unassigned') + {{ $item->status }} + @elseif ($item->status == 'Assigned') + {{ $item->status }} + @else + {{ $item->status }} + @endif + + @if (auth()->user()->can('budget_control.delete')) +
+ @csrf + @method('DELETE') + +
+ @endif +
+
+
+
+
+
+
+@endsection + +@section('scripts') + +@endsection diff --git a/resources/views/layouts/partials/styles.blade.php b/resources/views/layouts/partials/styles.blade.php index 39eb2ba..0cbc74d 100644 --- a/resources/views/layouts/partials/styles.blade.php +++ b/resources/views/layouts/partials/styles.blade.php @@ -89,4 +89,9 @@ margin-bottom: 15px; /* Adjust the value as needed */ margin-right: 20px; } + + .dt-search { + float: right; + text-align: right; + } diff --git a/routes/web.php b/routes/web.php index 7e960b8..e8d7fb3 100644 --- a/routes/web.php +++ b/routes/web.php @@ -18,6 +18,9 @@ use App\Http\Controllers\Forms\FormMeetingSeminarController; use App\Http\Controllers\Forms\FormOtherController; use App\Http\Controllers\Backend\AuditTrailController; use App\Http\Controllers\Backend\BudgetControlController; +use App\Http\Controllers\Backend\ReportController; +use App\Http\Controllers\Master\RegionController; +use App\Http\Controllers\Master\CabangController; Auth::routes(); @@ -63,6 +66,22 @@ Route::group(['prefix' => 'admin', 'as' => 'admin.', 'middleware' => ['auth:admi Route::put('/category/update/{id}', [CategoryController::class, 'update'])->name('category.update'); Route::delete('/category/destroy/{id}', [CategoryController::class, 'destroy'])->name('category.destroy'); + // Region + Route::get('/region', [RegionController::class, 'index'])->name('region.index'); + Route::get('/region/create', [RegionController::class, 'create'])->name('region.create'); + Route::post('/region/store', [RegionController::class, 'store'])->name('region.store'); + Route::get('/region/edit/{id}', [RegionController::class, 'edit'])->name('region.edit'); + Route::put('/region/update/{id}', [RegionController::class, 'update'])->name('region.update'); + Route::delete('/region/destroy/{id}', [RegionController::class, 'destroy'])->name('region.destroy'); + + // Cabang + Route::get('/cabang', [CabangController::class, 'index'])->name('cabang.index'); + Route::get('/cabang/create', [CabangController::class, 'create'])->name('cabang.create'); + Route::post('/cabang/store', [CabangController::class, 'store'])->name('cabang.store'); + Route::get('/cabang/edit/{id}', [CabangController::class, 'edit'])->name('cabang.edit'); + Route::put('/cabang/update/{id}', [CabangController::class, 'update'])->name('cabang.update'); + Route::delete('/cabang/destroy/{id}', [CabangController::class, 'destroy'])->name('cabang.destroy'); + // Audit Trail Route::get('/audit-trails', [AuditTrailController::class, 'index'])->name('audit-trail.index'); @@ -83,6 +102,10 @@ Route::middleware(['auth:admin', 'menu'])->group(function () { Route::delete('/destroy/{id}', [BudgetControlController::class, 'destroy'])->name('budget_control.destroy'); }); + Route::prefix('reports')->group(function () { + Route::get('/', [ReportController::class, 'index'])->name('reports'); + }); + // Forms Route::prefix('forms')->group(function () { // Up Country