diff --git a/app/Http/Controllers/Backend/ReportController.php b/app/Http/Controllers/Backend/ReportController.php
index ca8e854..6d1a57f 100644
--- a/app/Http/Controllers/Backend/ReportController.php
+++ b/app/Http/Controllers/Backend/ReportController.php
@@ -747,6 +747,9 @@ class ReportController extends Controller
}
}
+ $totalKategori = array_sum($nominals);
+ $pettyCashAmount = $budget && $budget->amount ? $budget->amount : 0;
+
return view('backend.pages.report.generate_jurnal', [
'pageInfo' => [
'title' => 'Generate Reports For Jurnal',
@@ -758,6 +761,8 @@ class ReportController extends Controller
'kategori_bca' => $kategori_bca,
'nominals' => $nominals,
'budget' => $budget,
+ 'totalKategori' => $totalKategori,
+ 'pettyCashAmount' => $pettyCashAmount,
]);
}
}
diff --git a/app/Http/Controllers/Forms/FormEntertainmentPresentationController.php b/app/Http/Controllers/Forms/FormEntertainmentPresentationController.php
index 39d4df1..2c79bc7 100644
--- a/app/Http/Controllers/Forms/FormEntertainmentPresentationController.php
+++ b/app/Http/Controllers/Forms/FormEntertainmentPresentationController.php
@@ -93,10 +93,16 @@ class FormEntertainmentPresentationController extends Controller
}
}
+ $outstandingForms = $forms->filter(function ($form) {
+ return is_null($form->final_approved_at) || is_null($form->final_approved_by);
+ });
+
session()->put('redirect_url', route('forms.entertainment'));
return view('backend.pages.forms.entertainment.index', [
'forms' => $forms,
'availableBudget' => $availableBudget,
+ 'outstandingCount' => $outstandingForms->count(),
+ 'outstandingTotal' => $outstandingForms->sum('total'),
]);
}
@@ -697,13 +703,18 @@ class FormEntertainmentPresentationController extends Controller
return redirect()->back();
}
- public function reject($id)
+ public function reject(Request $request, $id)
{
$this->checkAuthorization(auth()->user(), ['approval.reject']);
+ $request->validate([
+ 'remarks' => 'required|string|max:500',
+ ]);
+
$form = FormEntertaimentPresentation::findOrfail($id);
$form->update([
- 'status' => 'Rejected'
+ 'status' => 'Rejected',
+ 'remarks' => $request->remarks,
]);
$heads = $form->user->getCabangAndRegionHead();
@@ -795,4 +806,4 @@ class FormEntertainmentPresentationController extends Controller
session()->flash('success', 'Form has been deleted.');
return redirect()->back();
}
-}
\ No newline at end of file
+}
diff --git a/app/Http/Controllers/Forms/FormMeetingSeminarController.php b/app/Http/Controllers/Forms/FormMeetingSeminarController.php
index 2a9e47b..6b04fda 100644
--- a/app/Http/Controllers/Forms/FormMeetingSeminarController.php
+++ b/app/Http/Controllers/Forms/FormMeetingSeminarController.php
@@ -94,11 +94,17 @@ class FormMeetingSeminarController extends Controller
}
}
+ $outstandingForms = $forms->filter(function ($form) {
+ return is_null($form->final_approved_at) || is_null($form->final_approved_by);
+ });
+
session()->put('redirect_url', route('forms.meeting'));
return view('backend.pages.forms.meeting.index', [
'forms' => $forms,
- 'availableBudget' => $availableBudget
+ 'availableBudget' => $availableBudget,
+ 'outstandingCount' => $outstandingForms->count(),
+ 'outstandingTotal' => $outstandingForms->sum('total'),
]);
}
@@ -751,13 +757,18 @@ class FormMeetingSeminarController extends Controller
return redirect()->back();
}
- public function reject($id)
+ public function reject(Request $request, $id)
{
$this->checkAuthorization(auth()->user(), ['approval.reject']);
+ $request->validate([
+ 'remarks' => 'required|string|max:500',
+ ]);
+
$form = FormMeetingSeminar::findOrfail($id);
$form->update([
- 'status' => 'Rejected'
+ 'status' => 'Rejected',
+ 'remarks' => $request->remarks,
]);
$heads = $form->user->getCabangAndRegionHead();
@@ -850,4 +861,4 @@ class FormMeetingSeminarController extends Controller
session()->flash('success', 'Form has been deleted.');
return redirect()->back();
}
-}
\ No newline at end of file
+}
diff --git a/app/Http/Controllers/Forms/FormOtherController.php b/app/Http/Controllers/Forms/FormOtherController.php
index 9ebb32b..6323cf6 100644
--- a/app/Http/Controllers/Forms/FormOtherController.php
+++ b/app/Http/Controllers/Forms/FormOtherController.php
@@ -91,11 +91,17 @@ class FormOtherController extends Controller
}
}
+ $outstandingForms = $forms->filter(function ($form) {
+ return is_null($form->final_approved_at) || is_null($form->final_approved_by);
+ });
+
session()->put('redirect_url', route('forms.other'));
return view('backend.pages.forms.other.index', [
'forms' => $forms,
- 'availableBudget' => $availableBudget
+ 'availableBudget' => $availableBudget,
+ 'outstandingCount' => $outstandingForms->count(),
+ 'outstandingTotal' => $outstandingForms->sum('total'),
]);
}
@@ -694,13 +700,18 @@ class FormOtherController extends Controller
return redirect()->back();
}
- public function reject($id)
+ public function reject(Request $request, $id)
{
$this->checkAuthorization(auth()->user(), ['approval.reject']);
+ $request->validate([
+ 'remarks' => 'required|string|max:500',
+ ]);
+
$form = FormOthers::findOrfail($id);
$form->update([
- 'status' => 'Rejected'
+ 'status' => 'Rejected',
+ 'remarks' => $request->remarks,
]);
$heads = $form->user->getCabangAndRegionHead();
@@ -793,4 +804,4 @@ class FormOtherController extends Controller
session()->flash('success', 'Form has been deleted.');
return redirect()->back();
}
-}
\ No newline at end of file
+}
diff --git a/app/Http/Controllers/Forms/FormUpCountryController.php b/app/Http/Controllers/Forms/FormUpCountryController.php
index 075faa0..e9d5902 100644
--- a/app/Http/Controllers/Forms/FormUpCountryController.php
+++ b/app/Http/Controllers/Forms/FormUpCountryController.php
@@ -95,10 +95,16 @@ class FormUpCountryController extends Controller
$forms = $forms;
}
+ $outstandingForms = $forms->filter(function ($form) {
+ return is_null($form->final_approved_at) || is_null($form->final_approved_by);
+ });
+
session()->put('redirect_url', route('forms.up-country'));
return view('backend.pages.forms.upcountry.index', [
'forms' => $forms,
- 'availableBudget' => $availableBudget
+ 'availableBudget' => $availableBudget,
+ 'outstandingCount' => $outstandingForms->count(),
+ 'outstandingTotal' => $outstandingForms->sum('total'),
]);
}
diff --git a/app/Http/Controllers/Forms/FormVehicleController.php b/app/Http/Controllers/Forms/FormVehicleController.php
index d220abe..de2ba55 100644
--- a/app/Http/Controllers/Forms/FormVehicleController.php
+++ b/app/Http/Controllers/Forms/FormVehicleController.php
@@ -94,11 +94,17 @@ class FormVehicleController extends Controller
}
}
+ $outstandingForms = $forms->filter(function ($form) {
+ return is_null($form->final_approved_at) || is_null($form->final_approved_by);
+ });
+
session()->put('redirect_url', route('forms.vehicle'));
return view('backend.pages.forms.vehicle.index', [
'forms' => $forms,
- 'availableBudget' => $availableBudget
+ 'availableBudget' => $availableBudget,
+ 'outstandingCount' => $outstandingForms->count(),
+ 'outstandingTotal' => $outstandingForms->sum('total'),
]);
}
diff --git a/app/Models/FormEntertaimentPresentation.php b/app/Models/FormEntertaimentPresentation.php
index f7aa8f9..c1949b9 100644
--- a/app/Models/FormEntertaimentPresentation.php
+++ b/app/Models/FormEntertaimentPresentation.php
@@ -24,6 +24,7 @@ class FormEntertaimentPresentation extends Model
'bukti_total',
'account_number',
'status',
+ 'remarks',
'approved_at',
'approved2_at',
'approved_by',
diff --git a/app/Models/FormMeetingSeminar.php b/app/Models/FormMeetingSeminar.php
index de4a6cd..0d2a9a2 100644
--- a/app/Models/FormMeetingSeminar.php
+++ b/app/Models/FormMeetingSeminar.php
@@ -27,6 +27,7 @@ class FormMeetingSeminar extends Model
'bukti_hotel',
'account_number',
'status',
+ 'remarks',
'approved_at',
'approved2_at',
'approved_by',
diff --git a/app/Models/FormOthers.php b/app/Models/FormOthers.php
index 546264f..b373263 100644
--- a/app/Models/FormOthers.php
+++ b/app/Models/FormOthers.php
@@ -21,6 +21,7 @@ class FormOthers extends Model
'bukti_total',
'account_number',
'status',
+ 'remarks',
'approved_at',
'approved2_at',
'approved_by',
diff --git a/resources/views/backend/pages/admins/expense.blade.php b/resources/views/backend/pages/admins/expense.blade.php
index 0a597c0..970f889 100644
--- a/resources/views/backend/pages/admins/expense.blade.php
+++ b/resources/views/backend/pages/admins/expense.blade.php
@@ -432,13 +432,11 @@
-
@else
@if ($form->approved_at)
{{ \Carbon\Carbon::parse($form->approved_at)->locale('id')->isoFormat('D MMMM Y') }}
@@ -591,13 +589,11 @@
-
@else
@if ($form->approved_at)
{{ \Carbon\Carbon::parse($form->approved_at)->locale('id')->isoFormat('D MMMM Y') }}
@@ -748,13 +744,11 @@
-
+
@else
@if ($form->approved_at)
{{ \Carbon\Carbon::parse($form->approved_at)->locale('id')->isoFormat('D MMMM Y') }}
diff --git a/resources/views/backend/pages/forms/entertainment/index.blade.php b/resources/views/backend/pages/forms/entertainment/index.blade.php
index 306f33c..9d3f282 100644
--- a/resources/views/backend/pages/forms/entertainment/index.blade.php
+++ b/resources/views/backend/pages/forms/entertainment/index.blade.php
@@ -22,10 +22,10 @@
-
+
-
-
+
+
Rp {{ number_format($forms->sum('total'), 0, ',', '.') }}
Total Expense
@@ -36,8 +36,8 @@
-
-
+
+
Rp {{ number_format($forms->whereIn('status', ['Approved', 'Closed'])->sum('approved_total'), 0, ',', '.') }}
Approved Expenses
@@ -48,8 +48,8 @@
-
-
+
+
Rp {{ number_format($forms->where('status', 'On Progress')->sum('total'), 0, ',', '.') }}
Pending Expenses
@@ -59,9 +59,22 @@
+
+
+
+
+
{{ $outstandingCount }}
+
Outstanding Expenses
+
Total Rp {{ number_format($outstandingTotal, 0, ',', '.') }}
+
+
+
+
+
+
@if($availableBudget > 0)
-
-
+
+
Rp {{ number_format($availableBudget, 0, ',', '.') }}
Available Budget
@@ -170,13 +183,11 @@
-
+
@endif
@endif
@if ($item->approved_at)
@@ -197,13 +208,11 @@
-
+
@endif
@endif
@if ($item->approved2_at)
@@ -411,6 +420,35 @@
+
@endsection
@section('scripts')
@@ -451,6 +489,23 @@
});
}
+ // Handle Reject Button Click
+ $(document).on('click', '.open-reject-modal', function () {
+ const rejectUrl = $(this).data('action');
+ $('#rejectForm').attr('action', rejectUrl);
+ $('#rejectRemarks').val('');
+ $('#rejectModal').modal('show');
+ });
+
+ $('#rejectModal').on('shown.bs.modal', function () {
+ $('#rejectRemarks').trigger('focus');
+ });
+
+ $('#rejectModal').on('hidden.bs.modal', function () {
+ $('#rejectForm').attr('action', '');
+ $('#rejectRemarks').val('');
+ });
+
// Handle Approve Button Click
$(document).on('click', '.open-approve-modal', function() {
const approveUrl = $(this).data('id');
diff --git a/resources/views/backend/pages/forms/entertainment/view.blade.php b/resources/views/backend/pages/forms/entertainment/view.blade.php
index 43df0f2..b5f7ca1 100644
--- a/resources/views/backend/pages/forms/entertainment/view.blade.php
+++ b/resources/views/backend/pages/forms/entertainment/view.blade.php
@@ -88,23 +88,19 @@
@if (auth()->user()->can('approval.approve') && $form->status == 'On Progress')
-
+
@elseif(auth()->user()->can('approval2.approve') && $form->status == 'Approved 1')
-
+
@elseif(auth()->user()->can('final_approval.approve') && $form->status == 'Approved 2')
@endif
@@ -253,6 +249,35 @@
+
@endsection
@section('scripts')
@@ -267,7 +292,23 @@
-@endsection
\ No newline at end of file
+@endsection
diff --git a/resources/views/backend/pages/forms/other/view.blade.php b/resources/views/backend/pages/forms/other/view.blade.php
index af5cd8f..7d0a5f1 100644
--- a/resources/views/backend/pages/forms/other/view.blade.php
+++ b/resources/views/backend/pages/forms/other/view.blade.php
@@ -78,23 +78,19 @@
@if (auth()->user()->can('approval.approve') && $form->status == 'On Progress')
-
+
@elseif(auth()->user()->can('approval2.approve') && $form->status == 'Approved 1')
-
+
@elseif(auth()->user()->can('final_approval.approve') && $form->status == 'Approved 2')
@endif
@@ -231,6 +227,35 @@
+
@endsection
@section('scripts')
@@ -245,6 +270,22 @@