From 7abfd7486704aeb14054a35118a47ef2e935c22a Mon Sep 17 00:00:00 2001 From: Jagad R R Date: Wed, 15 Jan 2025 14:50:53 +0700 Subject: [PATCH] fix beberapa revisi --- .../Controllers/Backend/AdminsController.php | 2 + .../Backend/BudgetControlController.php | 26 +++++- .../Controllers/Backend/ReportController.php | 7 +- .../Controllers/Master/CabangController.php | 7 ++ .../pages/forms/entertainment/index.blade.php | 28 +++++- .../pages/forms/meeting/index.blade.php | 28 +++++- .../backend/pages/forms/other/index.blade.php | 28 +++++- .../pages/forms/upcountry/index.blade.php | 28 +++++- .../pages/forms/vehicle/index.blade.php | 28 +++++- .../pages/master/cabang/index.blade.php | 38 ++++++-- .../pages/master/category/index.blade.php | 38 ++++++-- .../backend/pages/master/cost/index.blade.php | 38 ++++++-- .../pages/master/rayon/index.blade.php | 38 ++++++-- .../pages/master/region/index.blade.php | 38 ++++++-- .../views/backend/pages/report/all.blade.php | 83 ++++++++++++++--- .../pages/report/entertainment.blade.php | 70 ++++++++++++--- .../pages/report/generate_jurnal.blade.php | 43 ++++++--- .../backend/pages/report/jurnal.blade.php | 89 +++++++++++++++---- .../backend/pages/report/meeting.blade.php | 72 ++++++++++++--- .../backend/pages/report/others.blade.php | 72 ++++++++++++--- .../backend/pages/report/upcountry.blade.php | 66 +++++++++++--- .../backend/pages/report/vehicle.blade.php | 72 ++++++++++++--- resources/views/layouts/app.blade.php | 51 ++++++++--- .../views/layouts/partials/styles.blade.php | 6 ++ routes/api.php | 3 + routes/web.php | 1 + 26 files changed, 830 insertions(+), 170 deletions(-) diff --git a/app/Http/Controllers/Backend/AdminsController.php b/app/Http/Controllers/Backend/AdminsController.php index 53f4c6e..2597580 100644 --- a/app/Http/Controllers/Backend/AdminsController.php +++ b/app/Http/Controllers/Backend/AdminsController.php @@ -141,6 +141,8 @@ class AdminsController extends Controller if($request->cabang_id) { $userHasCabang = UserHasCabang::where('user_id', $admin->id)->first(); $userHasCabang ? $userHasCabang->update(['cabang_id' => $request->cabang_id]) : UserHasCabang::create(['user_id' => $admin->id, 'cabang_id' => $request->cabang_id]); + } else { + UserHasCabang::where('user_id', $admin->id)->delete(); } AuditTrailHelper::AddAuditTrail('Update', 'Update User Data (' . $request->email . ') in the User Table'); diff --git a/app/Http/Controllers/Backend/BudgetControlController.php b/app/Http/Controllers/Backend/BudgetControlController.php index 808deed..187e18e 100644 --- a/app/Http/Controllers/Backend/BudgetControlController.php +++ b/app/Http/Controllers/Backend/BudgetControlController.php @@ -14,6 +14,7 @@ use App\Models\FormMeetingSeminar; use App\Models\FormOthers; use App\Models\FormEntertaimentPresentation; use App\Models\FormVehicleRunningCost; +use App\Models\UserHasCabang; class BudgetControlController extends Controller { @@ -23,7 +24,30 @@ class BudgetControlController extends Controller session()->put('redirect_url', route('budget_control')); // Get the budget control data - $budget = BudgetControl::orderBy('created_at', 'desc')->with(['user', 'cabang'])->get(); + // $budget = BudgetControl::orderBy('created_at', 'desc')->with(['user', 'cabang'])->get(); + $role = auth()->user()->getRoleNames()[0]; + $budget = null; + + if ($role == 'Admin Region' || $role == 'Marketing Operational Manager Region') { + $region_id = auth()->user()->getMyCabangAndRegionId()['region']; + + if ($region_id) { + // Get budget controls where the region matches + $budget = BudgetControl::whereHas('cabang', function ($query) use ($region_id) { + $query->where('region_id', $region_id); + })->get(); + } + } elseif ($role == 'Area Manager Cabang') { + $cabang_id = auth()->user()->getMyCabangAndRegionId()['cabang']; + + if ($cabang_id) { + // Get budget controls where the cabang matches + $budget = BudgetControl::where('cabang_id', $cabang_id)->get(); + } + } else { + // Get all budget controls for other roles + $budget = BudgetControl::all(); + } // Initialize an empty array to hold the used budget sums $usedBudget = []; diff --git a/app/Http/Controllers/Backend/ReportController.php b/app/Http/Controllers/Backend/ReportController.php index 2df23f7..42040d3 100644 --- a/app/Http/Controllers/Backend/ReportController.php +++ b/app/Http/Controllers/Backend/ReportController.php @@ -638,23 +638,25 @@ class ReportController extends Controller { $role = auth()->user()->getRoleNames()[0]; $cabangs = []; + $regions = []; if ($role == 'Admin Region' || $role == 'Marketing Operational Manager Region') { $region_id = auth()->user()->getMyCabangAndRegionId()['region']; if ($region_id) { $cabangs = Cabang::where('region_id', $region_id)->get(); + $regions = Region::where('id', $region_id)->get(); } } else if ($role == 'Area Manager Cabang') { $cabang_id = auth()->user()->getMyCabangAndRegionId()['cabang']; if ($cabang_id) { $cabangs = Cabang::where('id', $cabang_id)->get(); + $regions = Region::where('id', $cabangs[0]->region_id)->get(); } - } else if ($role == 'Medical Representatif') { - $cabangs = null; } else { $cabangs = Cabang::all(); + $regions = Region::all(); } return view('backend.pages.report.jurnal', [ @@ -662,6 +664,7 @@ class ReportController extends Controller 'title' => 'Generate Reports For Jurnal', ], 'cabang' => $cabangs, + 'regions' => $regions ]); } diff --git a/app/Http/Controllers/Master/CabangController.php b/app/Http/Controllers/Master/CabangController.php index 50923ef..0d60cb8 100644 --- a/app/Http/Controllers/Master/CabangController.php +++ b/app/Http/Controllers/Master/CabangController.php @@ -22,6 +22,13 @@ class CabangController extends Controller ]); } + public function getCabangByRegion($regionCode) + { + $region_id = Region::where('code', $regionCode)->first()->id; + $cabang = Cabang::where('region_id', $region_id)->get(['code', 'name']); + return response()->json($cabang); + } + public function create() { $this->checkAuthorization(auth()->user(), ['cabang.create']); diff --git a/resources/views/backend/pages/forms/entertainment/index.blade.php b/resources/views/backend/pages/forms/entertainment/index.blade.php index 83ae6aa..7fd02d5 100644 --- a/resources/views/backend/pages/forms/entertainment/index.blade.php +++ b/resources/views/backend/pages/forms/entertainment/index.blade.php @@ -338,8 +338,32 @@ if ($('#dataTable').length) { $('#dataTable').DataTable({ responsive: false, - dom: 'Bfrtip', - buttons: ['excel', 'pdf', 'print', 'colvis'], + dom: 'Blfrtip', + lengthMenu: [ [10, 50, 100, -1], [10, 50, 100, "All"] ], // Control the entries dropdown + buttons: [ + { + extend: 'excel', + text: 'Excel' + }, + { + extend: 'pdf', + text: 'PDF', + orientation: 'landscape', + pageSize: 'A4', + exportOptions: { + columns: ':visible' + } + }, + { + extend: 'print', + text: 'Print', + orientation: 'landscape', + exportOptions: { + columns: ':visible' + } + }, + 'colvis' + ] }); } diff --git a/resources/views/backend/pages/forms/meeting/index.blade.php b/resources/views/backend/pages/forms/meeting/index.blade.php index 15c91bb..d650c3f 100644 --- a/resources/views/backend/pages/forms/meeting/index.blade.php +++ b/resources/views/backend/pages/forms/meeting/index.blade.php @@ -338,8 +338,32 @@ if ($('#dataTable').length) { $('#dataTable').DataTable({ responsive: false, - dom: 'Bfrtip', - buttons: ['excel', 'pdf', 'print', 'colvis'], + dom: 'Blfrtip', + lengthMenu: [ [10, 50, 100, -1], [10, 50, 100, "All"] ], // Control the entries dropdown + buttons: [ + { + extend: 'excel', + text: 'Excel' + }, + { + extend: 'pdf', + text: 'PDF', + orientation: 'landscape', + pageSize: 'A4', + exportOptions: { + columns: ':visible' + } + }, + { + extend: 'print', + text: 'Print', + orientation: 'landscape', + exportOptions: { + columns: ':visible' + } + }, + 'colvis' + ] }); } diff --git a/resources/views/backend/pages/forms/other/index.blade.php b/resources/views/backend/pages/forms/other/index.blade.php index 29dbb7b..9250298 100644 --- a/resources/views/backend/pages/forms/other/index.blade.php +++ b/resources/views/backend/pages/forms/other/index.blade.php @@ -327,8 +327,32 @@ if ($('#dataTable').length) { $('#dataTable').DataTable({ responsive: false, - dom: 'Bfrtip', - buttons: ['excel', 'pdf', 'print', 'colvis'], + dom: 'Blfrtip', + lengthMenu: [ [10, 50, 100, -1], [10, 50, 100, "All"] ], // Control the entries dropdown + buttons: [ + { + extend: 'excel', + text: 'Excel' + }, + { + extend: 'pdf', + text: 'PDF', + orientation: 'landscape', + pageSize: 'A4', + exportOptions: { + columns: ':visible' + } + }, + { + extend: 'print', + text: 'Print', + orientation: 'landscape', + exportOptions: { + columns: ':visible' + } + }, + 'colvis' + ] }); } diff --git a/resources/views/backend/pages/forms/upcountry/index.blade.php b/resources/views/backend/pages/forms/upcountry/index.blade.php index 29c9626..36c3c00 100644 --- a/resources/views/backend/pages/forms/upcountry/index.blade.php +++ b/resources/views/backend/pages/forms/upcountry/index.blade.php @@ -364,8 +364,32 @@ if ($('#dataTable').length) { $('#dataTable').DataTable({ responsive: false, - dom: 'Bfrtip', - buttons: ['excel', 'pdf', 'print', 'colvis'], + dom: 'Blfrtip', + lengthMenu: [ [10, 50, 100, -1], [10, 50, 100, "All"] ], // Control the entries dropdown + buttons: [ + { + extend: 'excel', + text: 'Excel' + }, + { + extend: 'pdf', + text: 'PDF', + orientation: 'landscape', + pageSize: 'A4', + exportOptions: { + columns: ':visible' + } + }, + { + extend: 'print', + text: 'Print', + orientation: 'landscape', + exportOptions: { + columns: ':visible' + } + }, + 'colvis' + ] }); } diff --git a/resources/views/backend/pages/forms/vehicle/index.blade.php b/resources/views/backend/pages/forms/vehicle/index.blade.php index 422f000..8a7a970 100644 --- a/resources/views/backend/pages/forms/vehicle/index.blade.php +++ b/resources/views/backend/pages/forms/vehicle/index.blade.php @@ -343,8 +343,32 @@ if ($('#dataTable').length) { $('#dataTable').DataTable({ responsive: false, - dom: 'Bfrtip', - buttons: ['excel', 'pdf', 'print', 'colvis'], + dom: 'Blfrtip', + lengthMenu: [ [10, 50, 100, -1], [10, 50, 100, "All"] ], // Control the entries dropdown + buttons: [ + { + extend: 'excel', + text: 'Excel' + }, + { + extend: 'pdf', + text: 'PDF', + orientation: 'landscape', + pageSize: 'A4', + exportOptions: { + columns: ':visible' + } + }, + { + extend: 'print', + text: 'Print', + orientation: 'landscape', + exportOptions: { + columns: ':visible' + } + }, + 'colvis' + ] }); } diff --git a/resources/views/backend/pages/master/cabang/index.blade.php b/resources/views/backend/pages/master/cabang/index.blade.php index e565655..926e2ae 100644 --- a/resources/views/backend/pages/master/cabang/index.blade.php +++ b/resources/views/backend/pages/master/cabang/index.blade.php @@ -95,14 +95,36 @@ @endsection diff --git a/resources/views/backend/pages/master/category/index.blade.php b/resources/views/backend/pages/master/category/index.blade.php index 98b0c98..81fc27f 100644 --- a/resources/views/backend/pages/master/category/index.blade.php +++ b/resources/views/backend/pages/master/category/index.blade.php @@ -87,14 +87,36 @@ @endsection diff --git a/resources/views/backend/pages/master/cost/index.blade.php b/resources/views/backend/pages/master/cost/index.blade.php index 42ada2d..9a3c111 100644 --- a/resources/views/backend/pages/master/cost/index.blade.php +++ b/resources/views/backend/pages/master/cost/index.blade.php @@ -87,14 +87,36 @@ @endsection diff --git a/resources/views/backend/pages/master/rayon/index.blade.php b/resources/views/backend/pages/master/rayon/index.blade.php index 47b3987..7875037 100644 --- a/resources/views/backend/pages/master/rayon/index.blade.php +++ b/resources/views/backend/pages/master/rayon/index.blade.php @@ -87,14 +87,36 @@ @endsection diff --git a/resources/views/backend/pages/master/region/index.blade.php b/resources/views/backend/pages/master/region/index.blade.php index b4b1849..ade24a7 100644 --- a/resources/views/backend/pages/master/region/index.blade.php +++ b/resources/views/backend/pages/master/region/index.blade.php @@ -91,14 +91,36 @@ @endsection diff --git a/resources/views/backend/pages/report/all.blade.php b/resources/views/backend/pages/report/all.blade.php index e02959c..b1e9030 100644 --- a/resources/views/backend/pages/report/all.blade.php +++ b/resources/views/backend/pages/report/all.blade.php @@ -98,15 +98,11 @@ -
+
@@ -138,6 +134,19 @@
+ +
+
+ + +
+
@@ -222,12 +231,60 @@ @section('scripts') + } + + + @endsection diff --git a/resources/views/backend/pages/report/entertainment.blade.php b/resources/views/backend/pages/report/entertainment.blade.php index 019995e..aa2e84c 100644 --- a/resources/views/backend/pages/report/entertainment.blade.php +++ b/resources/views/backend/pages/report/entertainment.blade.php @@ -22,7 +22,7 @@
-
+
@@ -42,11 +42,7 @@
@@ -79,7 +75,7 @@
- Reset + Reset
@@ -173,12 +169,60 @@ @section('scripts') + } + + + @endsection diff --git a/resources/views/backend/pages/report/generate_jurnal.blade.php b/resources/views/backend/pages/report/generate_jurnal.blade.php index 3ca55a3..ccddb8a 100644 --- a/resources/views/backend/pages/report/generate_jurnal.blade.php +++ b/resources/views/backend/pages/report/generate_jurnal.blade.php @@ -140,15 +140,36 @@ @section('scripts') + if ($('#dataTable-table').length) { + $('#dataTable-table').DataTable({ + responsive: false, + dom: 'Blfrtip', + lengthMenu: [ [10, 50, 100, -1], [10, 50, 100, "All"] ], // Control the entries dropdown + buttons: [ + { + extend: 'excel', + text: 'Excel' + }, + { + extend: 'pdf', + text: 'PDF', + orientation: 'landscape', + pageSize: 'A4', + exportOptions: { + columns: ':visible' + } + }, + { + extend: 'print', + text: 'Print', + orientation: 'landscape', + exportOptions: { + columns: ':visible' + } + }, + 'colvis' + ] + }); + } + @endsection diff --git a/resources/views/backend/pages/report/jurnal.blade.php b/resources/views/backend/pages/report/jurnal.blade.php index 0df8b94..59dc8cd 100644 --- a/resources/views/backend/pages/report/jurnal.blade.php +++ b/resources/views/backend/pages/report/jurnal.blade.php @@ -13,20 +13,29 @@
-
+
- - + + @foreach ($regions as $region) + @endforeach
-
+
+
+ + +
+
+
@@ -77,13 +86,61 @@ @endsection @section('scripts') - + } + + + @endsection diff --git a/resources/views/backend/pages/report/meeting.blade.php b/resources/views/backend/pages/report/meeting.blade.php index 5d50e9e..42564ba 100644 --- a/resources/views/backend/pages/report/meeting.blade.php +++ b/resources/views/backend/pages/report/meeting.blade.php @@ -22,7 +22,7 @@
- +
@@ -42,11 +42,7 @@
@@ -79,7 +75,7 @@
- Reset + Reset
@@ -162,13 +158,61 @@ @endsection @section('scripts') - + } + + + @endsection diff --git a/resources/views/backend/pages/report/others.blade.php b/resources/views/backend/pages/report/others.blade.php index 45d11e5..584c876 100644 --- a/resources/views/backend/pages/report/others.blade.php +++ b/resources/views/backend/pages/report/others.blade.php @@ -22,7 +22,7 @@
-
+
@@ -42,11 +42,7 @@
@@ -79,7 +75,7 @@
- Reset + Reset
@@ -170,13 +166,61 @@ @endsection @section('scripts') - + } + + + @endsection diff --git a/resources/views/backend/pages/report/upcountry.blade.php b/resources/views/backend/pages/report/upcountry.blade.php index 6273398..9246ea0 100644 --- a/resources/views/backend/pages/report/upcountry.blade.php +++ b/resources/views/backend/pages/report/upcountry.blade.php @@ -42,11 +42,7 @@
@@ -169,12 +165,60 @@ @section('scripts') + } + + + @endsection diff --git a/resources/views/backend/pages/report/vehicle.blade.php b/resources/views/backend/pages/report/vehicle.blade.php index ccd00df..b062bd2 100644 --- a/resources/views/backend/pages/report/vehicle.blade.php +++ b/resources/views/backend/pages/report/vehicle.blade.php @@ -22,7 +22,7 @@
-
+
@@ -42,11 +42,7 @@
@@ -79,7 +75,7 @@
- Reset + Reset
@@ -174,13 +170,61 @@ @endsection @section('scripts') - + } + + + @endsection diff --git a/resources/views/layouts/app.blade.php b/resources/views/layouts/app.blade.php index ef3930f..31d59e5 100644 --- a/resources/views/layouts/app.blade.php +++ b/resources/views/layouts/app.blade.php @@ -22,16 +22,17 @@
-
@@ -115,5 +119,30 @@ @include('layouts.partials.scripts') @yield('scripts') - + + diff --git a/resources/views/layouts/partials/styles.blade.php b/resources/views/layouts/partials/styles.blade.php index 0cbc74d..cdec1f2 100644 --- a/resources/views/layouts/partials/styles.blade.php +++ b/resources/views/layouts/partials/styles.blade.php @@ -93,5 +93,11 @@ .dt-search { float: right; text-align: right; + margin-right: 20px; + } + + .dt-length { + float: right; + text-align: right; } diff --git a/routes/api.php b/routes/api.php index e81e739..babfa27 100644 --- a/routes/api.php +++ b/routes/api.php @@ -2,6 +2,7 @@ use Illuminate\Http\Request; use Illuminate\Support\Facades\Route; +use App\Http\Controllers\Master\CabangController; /* |-------------------------------------------------------------------------- @@ -17,3 +18,5 @@ use Illuminate\Support\Facades\Route; // Route::middleware('auth:api')->get('/user', function (Request $request) { // return $request->user(); // }); + +Route::get('/api/cabang-by-region/{regionCode}', [CabangController::class, 'getCabangByRegion']); \ No newline at end of file diff --git a/routes/web.php b/routes/web.php index 3dd5c67..c627899 100644 --- a/routes/web.php +++ b/routes/web.php @@ -23,6 +23,7 @@ use App\Http\Controllers\Master\RegionController; use App\Http\Controllers\Master\CabangController; Auth::routes(); +require __DIR__ . '/api.php'; Route::group(['prefix' => 'admin', 'as' => 'admin.'], function () { // Login Routes.