From 154b3a274bf5d9617f701e2a32006486d7c78b6a Mon Sep 17 00:00:00 2001 From: Jagad R R Date: Thu, 9 Jan 2025 13:39:10 +0700 Subject: [PATCH 1/2] Update LoginController.php --- app/Http/Controllers/Backend/Auth/LoginController.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Http/Controllers/Backend/Auth/LoginController.php b/app/Http/Controllers/Backend/Auth/LoginController.php index 13fa57e..e777e1f 100644 --- a/app/Http/Controllers/Backend/Auth/LoginController.php +++ b/app/Http/Controllers/Backend/Auth/LoginController.php @@ -58,7 +58,7 @@ class LoginController extends Controller } // Default redirection if no condition matches - return '/login'; + return '/admin/login'; } /** From 210203f964ab762621f5569bea6e4cc13b4a8767 Mon Sep 17 00:00:00 2001 From: Jagad R R Date: Thu, 9 Jan 2025 14:17:28 +0700 Subject: [PATCH 2/2] add pengecekan jika melebihi budget --- app/Helpers/BudgetHelper.php | 67 +++++++++++++++++++ ...ormEntertainmentPresentationController.php | 10 +-- .../Forms/FormMeetingSeminarController.php | 22 +++++- .../Controllers/Forms/FormOtherController.php | 10 +-- .../Forms/FormUpCountryController.php | 24 ++++++- .../Forms/FormVehicleController.php | 10 +-- .../pages/forms/entertainment/index.blade.php | 18 ++++- .../pages/forms/meeting/index.blade.php | 18 ++++- .../backend/pages/forms/other/index.blade.php | 18 ++++- .../pages/forms/upcountry/index.blade.php | 18 ++++- .../pages/forms/vehicle/index.blade.php | 18 ++++- 11 files changed, 203 insertions(+), 30 deletions(-) create mode 100644 app/Helpers/BudgetHelper.php diff --git a/app/Helpers/BudgetHelper.php b/app/Helpers/BudgetHelper.php new file mode 100644 index 0000000..fa5dfbd --- /dev/null +++ b/app/Helpers/BudgetHelper.php @@ -0,0 +1,67 @@ +with(['user', 'cabang'])->get(); + + // Initialize an empty array to hold the used budget sums + $usedBudget = []; + + foreach ($budget as $b) { + // Get the month and year from the budget + $month = $b->periode_month; + $year = $b->periode_year; + + // Add the used budget per model for the specified month and year to the usedBudget array + $usedBudget[] = [ + 'FormUpCountry' => FormUpCountry::whereIn('status', ['Approved', 'Closed']) + ->whereMonth('tanggal', '=', date('m', strtotime($month))) + ->whereYear('tanggal', '=', $year) + ->sum('approved_total'), + + 'FormMeetingSeminar' => FormMeetingSeminar::whereIn('status', ['Approved', 'Closed']) + ->whereMonth('created_at', '=', date('m', strtotime($month))) + ->whereYear('created_at', '=', $year) + ->sum('approved_total'), + + 'FormOthers' => FormOthers::whereIn('status', ['Approved', 'Closed']) + ->whereMonth('tanggal', '=', date('m', strtotime($month))) + ->whereYear('tanggal', '=', $year) + ->sum('approved_total'), + + 'FormEntertaimentPresentation' => FormEntertaimentPresentation::whereIn('status', ['Approved', 'Closed']) + ->whereMonth('tanggal', '=', date('m', strtotime($month))) + ->whereYear('tanggal', '=', $year) + ->sum('approved_total'), + + 'FormVehicleRunningCost' => FormVehicleRunningCost::whereIn('status', ['Approved', 'Closed']) + ->whereMonth('tanggal', '=', date('m', strtotime($month))) + ->whereYear('tanggal', '=', $year) + ->sum('approved_total') + ]; + } + + $usedBudget = array_sum(array_map(function ($b) { + return array_sum($b); + }, $usedBudget)); + + $availableBudget = $budget->sum('amount') - $usedBudget; + + return $availableBudget; + } +} diff --git a/app/Http/Controllers/Forms/FormEntertainmentPresentationController.php b/app/Http/Controllers/Forms/FormEntertainmentPresentationController.php index eed607d..e87ea98 100644 --- a/app/Http/Controllers/Forms/FormEntertainmentPresentationController.php +++ b/app/Http/Controllers/Forms/FormEntertainmentPresentationController.php @@ -23,6 +23,7 @@ use App\Helpers\WhatsappHelper; use App\Helpers\AuditTrailHelper; use App\Models\Admin; use App\Rules\FileType; +use App\Helpers\BudgetHelper; class FormEntertainmentPresentationController extends Controller { @@ -63,7 +64,8 @@ class FormEntertainmentPresentationController extends Controller session()->put('redirect_url', route('forms.entertainment')); return view('backend.pages.forms.entertainment.index', [ - 'forms' => $forms + 'forms' => $forms, + 'availableBudget' => BudgetHelper::getAvailableBudget(), ]); } @@ -104,7 +106,7 @@ class FormEntertainmentPresentationController extends Controller 'tanggal' => 'required', 'jenis' => 'required|in:entertainment,presentation,sponsorship', 'keterangan' => 'required', - 'total' => 'required', + 'total' => 'required|numeric|min:1|max:' . BudgetHelper::getAvailableBudget(), 'name' => 'required', 'alamat' => 'required', 'nik_or_npwp' => 'required', @@ -216,7 +218,7 @@ class FormEntertainmentPresentationController extends Controller 'tanggal' => 'required', 'jenis' => 'required|in:entertainment,presentation,sponsorship', 'keterangan' => 'required', - 'total' => 'required', + 'total' => 'required|numeric|min:1|max:' . BudgetHelper::getAvailableBudget(), 'name' => 'required', 'alamat' => 'required', 'nik_or_npwp' => 'required', @@ -271,7 +273,7 @@ class FormEntertainmentPresentationController extends Controller { $this->checkAuthorization(auth()->user(), ['approval.approve']); $request->validate([ - 'total' => 'required', + 'total' => 'required|numeric|min:1|max:' . BudgetHelper::getAvailableBudget(), ]); $form = FormEntertaimentPresentation::findOrfail($id); diff --git a/app/Http/Controllers/Forms/FormMeetingSeminarController.php b/app/Http/Controllers/Forms/FormMeetingSeminarController.php index 256b310..a294aea 100644 --- a/app/Http/Controllers/Forms/FormMeetingSeminarController.php +++ b/app/Http/Controllers/Forms/FormMeetingSeminarController.php @@ -23,6 +23,7 @@ use App\Helpers\WhatsappHelper; use App\Helpers\AuditTrailHelper; use App\Rules\FileType; use App\Models\Admin; +use App\Helpers\BudgetHelper; class FormMeetingSeminarController extends Controller { @@ -63,7 +64,8 @@ class FormMeetingSeminarController extends Controller session()->put('redirect_url', route('forms.meeting')); return view('backend.pages.forms.meeting.index', [ - 'forms' => $forms + 'forms' => $forms, + 'availableBudget' => BudgetHelper::getAvailableBudget(), ]); } @@ -169,6 +171,12 @@ class FormMeetingSeminarController extends Controller 'hotel' => $request->hotel ?? 0, ]; + // Check if the total nominal exceeds the available budget + if(array_sum($data_nominal) > BudgetHelper::getAvailableBudget()) { + session()->flash('error', 'The total nominal exceeds the available budget.'); + return redirect()->back(); + } + // Save the form data $form = FormMeetingSeminar::create([ 'expense_number' => $expense_number, @@ -310,6 +318,12 @@ class FormMeetingSeminarController extends Controller 'hotel' => $request->hotel ?? 0, ]; + // Check if the total nominal exceeds the available budget + if(array_sum($data_nominal) > BudgetHelper::getAvailableBudget()) { + session()->flash('error', 'The total nominal exceeds the available budget.'); + return redirect()->back(); + } + // Save the form data $form->update([ 'allowance' => $data_nominal['allowance'], @@ -338,6 +352,12 @@ class FormMeetingSeminarController extends Controller 'hotel' => $request->hotel ? $form->hotel : 0, ]; + // Check if the total nominal exceeds the available budget + if(array_sum($approved_data) > BudgetHelper::getAvailableBudget()) { + session()->flash('error', 'The total nominal exceeds the available budget.'); + return redirect()->back(); + } + $form->update([ 'approved_at' => now(), 'approved_by' => auth()->user()->id, diff --git a/app/Http/Controllers/Forms/FormOtherController.php b/app/Http/Controllers/Forms/FormOtherController.php index 2bd7a97..0d098ec 100644 --- a/app/Http/Controllers/Forms/FormOtherController.php +++ b/app/Http/Controllers/Forms/FormOtherController.php @@ -23,6 +23,7 @@ use App\Helpers\WhatsappHelper; use App\Helpers\AuditTrailHelper; use App\Rules\FileType; use App\Models\Admin; +use App\Helpers\BudgetHelper; class FormOtherController extends Controller { @@ -63,7 +64,8 @@ class FormOtherController extends Controller session()->put('redirect_url', route('forms.other')); return view('backend.pages.forms.other.index', [ - 'forms' => $forms + 'forms' => $forms, + 'availableBudget' => BudgetHelper::getAvailableBudget(), ]); } @@ -107,7 +109,7 @@ class FormOtherController extends Controller 'kategori_id' => 'required', 'tanggal' => 'required|date', 'keterangan' => 'required', - 'total' => 'required', + 'total' => 'required|numeric|min:1|max:' . BudgetHelper::getAvailableBudget(), 'bukti_total' => ['nullable', 'file', 'max:51200', new FileType(['php', 'exe', 'js', 'sh', 'bat', 'exe', 'sh', 'php', 'vbs'])], ]); @@ -214,7 +216,7 @@ class FormOtherController extends Controller 'kategori_id' => 'required', 'tanggal' => 'required|date', 'keterangan' => 'required', - 'total' => 'required', + 'total' => 'required|numeric|min:1|max:' . BudgetHelper::getAvailableBudget(), 'bukti_total' => ['nullable', 'file', 'max:51200', new FileType(['php', 'exe', 'js', 'sh', 'bat', 'exe', 'sh', 'php', 'vbs'])], ]); @@ -264,7 +266,7 @@ class FormOtherController extends Controller $this->checkAuthorization(auth()->user(), ['approval.approve']); $request->validate([ - 'total' => 'required', + 'total' => 'required|numeric|min:1|max:' . BudgetHelper::getAvailableBudget(), ]); $form = FormOthers::findOrfail($id); diff --git a/app/Http/Controllers/Forms/FormUpCountryController.php b/app/Http/Controllers/Forms/FormUpCountryController.php index 9647dd9..56fe9f9 100644 --- a/app/Http/Controllers/Forms/FormUpCountryController.php +++ b/app/Http/Controllers/Forms/FormUpCountryController.php @@ -23,6 +23,7 @@ use App\Helpers\AuditTrailHelper; use App\Helpers\NextCloudHelper; use App\Rules\FileType; use App\Models\Admin; +use App\Helpers\BudgetHelper; class FormUpCountryController extends Controller { @@ -63,7 +64,8 @@ class FormUpCountryController extends Controller session()->put('redirect_url', route('forms.up-country')); return view('backend.pages.forms.upcountry.index', [ - 'forms' => $forms + 'forms' => $forms, + 'availableBudget' => BudgetHelper::getAvailableBudget() ]); } @@ -92,7 +94,7 @@ class FormUpCountryController extends Controller return view('backend.pages.forms.upcountry.view', [ 'form' => $form, - 'rayons' => Rayon::all() + 'rayons' => Rayon::all(), ]); } @@ -193,6 +195,12 @@ class FormUpCountryController extends Controller 'hotel' => $request->hotel ?? 0, ]; + // Check if the total nominal exceeds the available budget + if(array_sum($data_nominal) > BudgetHelper::getAvailableBudget()) { + session()->flash('error', 'The total nominal exceeds the available budget.'); + return redirect()->back(); + } + // Save the form data $form = FormUpCountry::create([ 'expense_number' => $expense_number, @@ -360,6 +368,12 @@ class FormUpCountryController extends Controller 'hotel' => $request->hotel ?? 0, ]; + // Check if the total nominal exceeds the available budget + if(array_sum($data_nominal) > BudgetHelper::getAvailableBudget()) { + session()->flash('error', 'The total nominal exceeds the available budget.'); + return redirect()->back(); + } + // Save the form data $form->update([ 'rayon_id' => $request->rayon_id, @@ -395,6 +409,12 @@ class FormUpCountryController extends Controller 'hotel' => $request->hotel ? $form->hotel : 0, ]; + // Check if the total nominal exceeds the available budget + if(array_sum($approved_data) > BudgetHelper::getAvailableBudget()) { + session()->flash('error', 'The total nominal exceeds the available budget.'); + return redirect()->back(); + } + $form->update([ 'approved_at' => now(), 'approved_by' => auth()->user()->id, diff --git a/app/Http/Controllers/Forms/FormVehicleController.php b/app/Http/Controllers/Forms/FormVehicleController.php index 3cf81ba..238fb86 100644 --- a/app/Http/Controllers/Forms/FormVehicleController.php +++ b/app/Http/Controllers/Forms/FormVehicleController.php @@ -23,6 +23,7 @@ use App\Helpers\WhatsappHelper; use App\Helpers\AuditTrailHelper; use App\Rules\FileType; use App\Models\Admin; +use App\Helpers\BudgetHelper; class FormVehicleController extends Controller { @@ -63,7 +64,8 @@ class FormVehicleController extends Controller session()->put('redirect_url', route('forms.vehicle')); return view('backend.pages.forms.vehicle.index', [ - 'forms' => $forms + 'forms' => $forms, + 'availableBudget' => BudgetHelper::getAvailableBudget(), ]); } @@ -103,7 +105,7 @@ class FormVehicleController extends Controller $request->validate([ 'tanggal' => 'required', 'liter' => 'required', - 'total' => 'required', + 'total' => 'required|numeric|min:1|max:' . BudgetHelper::getAvailableBudget(), 'jarak' => 'required', 'tipe_bensin' => 'required|in:pertalite,pertamax', 'nopol' => 'required', @@ -216,7 +218,7 @@ class FormVehicleController extends Controller $request->validate([ 'tanggal' => 'required', 'liter' => 'required', - 'total' => 'required', + 'total' => 'required|numeric|min:1|max:' . BudgetHelper::getAvailableBudget(), 'jarak' => 'required', 'tipe_bensin' => 'required|in:pertalite,pertamax', 'nopol' => 'required', @@ -273,7 +275,7 @@ class FormVehicleController extends Controller { $this->checkAuthorization(auth()->user(), ['approval.approve']); $request->validate([ - 'total' => 'required', + 'total' => 'required|numeric|min:1|max:' . BudgetHelper::getAvailableBudget(), ]); $form = FormVehicleRunningCost::findOrfail($id); diff --git a/resources/views/backend/pages/forms/entertainment/index.blade.php b/resources/views/backend/pages/forms/entertainment/index.blade.php index 573df7b..ddfb42c 100644 --- a/resources/views/backend/pages/forms/entertainment/index.blade.php +++ b/resources/views/backend/pages/forms/entertainment/index.blade.php @@ -24,7 +24,7 @@
-
+

Rp {{ number_format($forms->sum('total'), 0, ',', '.') }}

@@ -36,7 +36,7 @@
-
+

Rp {{ number_format($forms->whereIn('status', ['Approved', 'Closed'])->sum('approved_total'), 0, ',', '.') }}

@@ -48,7 +48,7 @@
-
+

Rp {{ number_format($forms->where('status', 'On Progress')->sum('total'), 0, ',', '.') }}

@@ -59,6 +59,18 @@
+ +
+
+
+

Rp {{ number_format($availableBudget, 0, ',', '.') }}

+

Available Budget

+
+
+ +
+
+
diff --git a/resources/views/backend/pages/forms/meeting/index.blade.php b/resources/views/backend/pages/forms/meeting/index.blade.php index bc1cfd9..4603ccd 100644 --- a/resources/views/backend/pages/forms/meeting/index.blade.php +++ b/resources/views/backend/pages/forms/meeting/index.blade.php @@ -24,7 +24,7 @@
-
+

Rp {{ number_format($forms->sum('total'), 0, ',', '.') }}

@@ -36,7 +36,7 @@
-
+

Rp {{ number_format($forms->whereIn('status', ['Approved', 'Closed'])->sum('approved_total'), 0, ',', '.') }}

@@ -48,7 +48,7 @@
-
+

Rp {{ number_format($forms->where('status', 'On Progress')->sum('total'), 0, ',', '.') }}

@@ -59,6 +59,18 @@
+ +
+
+
+

Rp {{ number_format($availableBudget, 0, ',', '.') }}

+

Available Budget

+
+
+ +
+
+
diff --git a/resources/views/backend/pages/forms/other/index.blade.php b/resources/views/backend/pages/forms/other/index.blade.php index 5c8c315..fc3cd13 100644 --- a/resources/views/backend/pages/forms/other/index.blade.php +++ b/resources/views/backend/pages/forms/other/index.blade.php @@ -24,7 +24,7 @@
-
+

Rp {{ number_format($forms->sum('total'), 0, ',', '.') }}

@@ -36,7 +36,7 @@
-
+

Rp {{ number_format($forms->whereIn('status', ['Approved', 'Closed'])->sum('total'), 0, ',', '.') }}

@@ -48,7 +48,7 @@
-
+

Rp {{ number_format($forms->where('status', 'On Progress')->sum('total'), 0, ',', '.') }}

@@ -59,6 +59,18 @@
+ +
+
+
+

Rp {{ number_format($availableBudget, 0, ',', '.') }}

+

Available Budget

+
+
+ +
+
+
diff --git a/resources/views/backend/pages/forms/upcountry/index.blade.php b/resources/views/backend/pages/forms/upcountry/index.blade.php index 1c81fe1..a6efd4f 100644 --- a/resources/views/backend/pages/forms/upcountry/index.blade.php +++ b/resources/views/backend/pages/forms/upcountry/index.blade.php @@ -24,7 +24,7 @@
-
+

Rp {{ number_format($forms->sum('total'), 0, ',', '.') }}

@@ -36,7 +36,7 @@
-
+

Rp {{ number_format($forms->whereIn('status', ['Approved', 'Closed'])->sum('approved_total'), 0, ',', '.') }}

@@ -48,7 +48,7 @@
-
+

Rp {{ number_format($forms->where('status', 'On Progress')->sum('total'), 0, ',', '.') }}

@@ -59,6 +59,18 @@
+ +
+
+
+

Rp {{ number_format($availableBudget, 0, ',', '.') }}

+

Available Budget

+
+
+ +
+
+
diff --git a/resources/views/backend/pages/forms/vehicle/index.blade.php b/resources/views/backend/pages/forms/vehicle/index.blade.php index f2a3186..d32da56 100644 --- a/resources/views/backend/pages/forms/vehicle/index.blade.php +++ b/resources/views/backend/pages/forms/vehicle/index.blade.php @@ -24,7 +24,7 @@
-
+

Rp {{ number_format($forms->sum('total'), 0, ',', '.') }}

@@ -36,7 +36,7 @@
-
+

Rp {{ number_format($forms->whereIn('status', ['Approved', 'Closed'])->sum('approved_total'), 0, ',', '.') }}

@@ -48,7 +48,7 @@
-
+

Rp {{ number_format($forms->where('status', 'On Progress')->sum('total'), 0, ',', '.') }}

@@ -59,6 +59,18 @@
+ +
+
+
+

Rp {{ number_format($availableBudget, 0, ',', '.') }}

+

Available Budget

+
+
+ +
+
+