diff --git a/app/Http/Controllers/Backend/AuditTrailController.php b/app/Http/Controllers/Backend/AuditTrailController.php index 4510f2f..250ac5d 100644 --- a/app/Http/Controllers/Backend/AuditTrailController.php +++ b/app/Http/Controllers/Backend/AuditTrailController.php @@ -22,7 +22,8 @@ class AuditTrailController extends Controller return view( 'backend.pages.audit_trail.index', [ - 'data' => AuditTrail::orderBy('id', 'desc')->get(), + // sort by newest + 'data' => AuditTrail::orderBy('created_at', 'desc')->get(), 'pageInfo' => $pageInfo, ] ); diff --git a/app/Http/Controllers/Backend/DashboardController.php b/app/Http/Controllers/Backend/DashboardController.php index ac1b539..d04504e 100644 --- a/app/Http/Controllers/Backend/DashboardController.php +++ b/app/Http/Controllers/Backend/DashboardController.php @@ -63,7 +63,7 @@ class DashboardController extends Controller // Sum the filtered queries foreach ($forms as $key => $query) { - $forms[$key] = $query->sum('total'); + $forms[$key] = $query->sum('approved_total'); } return view( diff --git a/app/Http/Controllers/Forms/FormUpCountryController.php b/app/Http/Controllers/Forms/FormUpCountryController.php index 53e350b..e609c08 100644 --- a/app/Http/Controllers/Forms/FormUpCountryController.php +++ b/app/Http/Controllers/Forms/FormUpCountryController.php @@ -65,6 +65,17 @@ class FormUpCountryController extends Controller ]); } + public function detail($id) + { + $this->checkAuthorization(auth()->user(), ['forms.country.view']); + + $form = FormUpCountry::with(['rayon', 'user'])->findOrFail($id); + $form->bukti1 = NextCloudHelper::getFileUrl($form->bukti1); + $form->bukti2 = NextCloudHelper::getFileUrl($form->bukti2); + $form->bukti3 = NextCloudHelper::getFileUrl($form->bukti3); + return response()->json($form); + } + public function create() { $this->checkAuthorization(auth()->user(), ['forms.country.create']); @@ -273,15 +284,28 @@ class FormUpCountryController extends Controller return redirect()->back(); } - public function approve($id) + public function approve(Request $request, $id) { $this->checkAuthorization(auth()->user(), ['approval.approve']); $form = FormUpCountry::findOrfail($id); + $approved_data = [ + 'allowance' => $request->allowance ? $form->allowance : 0, + 'transport_dalkot' => $request->transport_dalkot ? $form->transport_dalkot : 0, + 'transport_ankot' => $request->transport_ankot ? $form->transport_ankot : 0, + 'hotel' => $request->hotel ? $form->hotel : 0, + ]; + $form->update([ 'approved_at' => now(), 'approved_by' => auth()->user()->id, - 'status' => 'Approved' + 'status' => 'Approved', + + 'approved_allowance' => $approved_data['allowance'], + 'approved_transport_dalkot' => $approved_data['transport_dalkot'], + 'approved_transport_ankot' => $approved_data['transport_ankot'], + 'approved_hotel' => $approved_data['hotel'], + 'approved_total' => array_sum($approved_data), ]); $heads = $form->user->getCabangAndRegionHead(); diff --git a/app/Models/FormEntertaimentPresentation.php b/app/Models/FormEntertaimentPresentation.php index d62e7d3..0bb0820 100644 --- a/app/Models/FormEntertaimentPresentation.php +++ b/app/Models/FormEntertaimentPresentation.php @@ -17,6 +17,7 @@ class FormEntertaimentPresentation extends Model 'jenis', 'keterangan', 'total', + 'approved_total', 'name', 'alamat', 'nik_or_npwp', diff --git a/app/Models/FormMeetingSeminar.php b/app/Models/FormMeetingSeminar.php index 36c7803..f0b8927 100644 --- a/app/Models/FormMeetingSeminar.php +++ b/app/Models/FormMeetingSeminar.php @@ -17,6 +17,10 @@ class FormMeetingSeminar extends Model 'transport_ankot', 'hotel', 'total', + 'approved_allowance', + 'approved_transport_ankot', + 'approved_hotel', + 'approved_total', 'bukti1', 'bukti2', 'bukti3', diff --git a/app/Models/FormOthers.php b/app/Models/FormOthers.php index 5cb8ec4..33e61d5 100644 --- a/app/Models/FormOthers.php +++ b/app/Models/FormOthers.php @@ -17,6 +17,7 @@ class FormOthers extends Model 'tanggal', 'keterangan', 'total', + 'approved_total', 'bukti1', 'bukti2', 'bukti3', diff --git a/app/Models/FormUpCountry.php b/app/Models/FormUpCountry.php index 425fb39..6fff4df 100644 --- a/app/Models/FormUpCountry.php +++ b/app/Models/FormUpCountry.php @@ -22,6 +22,11 @@ class FormUpCountry extends Model 'transport_ankot', 'hotel', 'total', + 'approved_allowance', + 'approved_transport_dalkot', + 'approved_transport_ankot', + 'approved_hotel', + 'approved_total', 'bukti1', 'bukti2', 'bukti3', diff --git a/app/Models/FormVehicleRunningCost.php b/app/Models/FormVehicleRunningCost.php index 620bc55..ca5cf1c 100644 --- a/app/Models/FormVehicleRunningCost.php +++ b/app/Models/FormVehicleRunningCost.php @@ -16,6 +16,7 @@ class FormVehicleRunningCost extends Model 'tanggal', 'liter', 'total', + 'approved_total', 'jarak', 'tipe_bensin', 'nopol', diff --git a/database/migrations/2025_01_02_082311_revised_form_up_country_table.php b/database/migrations/2025_01_02_082311_revised_form_up_country_table.php new file mode 100644 index 0000000..179e361 --- /dev/null +++ b/database/migrations/2025_01_02_082311_revised_form_up_country_table.php @@ -0,0 +1,36 @@ +integer('approved_allowance')->after('total')->nullable(); + $table->integer('approved_transport_dalkot')->after('approved_allowance')->nullable(); + $table->integer('approved_transport_ankot')->after('approved_transport_dalkot')->nullable(); + $table->integer('approved_hotel')->after('approved_transport_ankot')->nullable(); + $table->integer('approved_total')->after('approved_hotel')->nullable(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('form_up_country', function (Blueprint $table) { + $table->dropColumn('approved_allowance'); + $table->dropColumn('approved_transport_dalkot'); + $table->dropColumn('approved_transport_ankot'); + $table->dropColumn('approved_hotel'); + $table->dropColumn('approved_total'); + }); + } +}; diff --git a/database/migrations/2025_01_02_082747_revised_form_vehicle_running_cost_table.php b/database/migrations/2025_01_02_082747_revised_form_vehicle_running_cost_table.php new file mode 100644 index 0000000..227cb5e --- /dev/null +++ b/database/migrations/2025_01_02_082747_revised_form_vehicle_running_cost_table.php @@ -0,0 +1,28 @@ +integer('approved_total')->after('total')->nullable(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('form_vehicle_running_cost', function (Blueprint $table) { + $table->dropColumn('approved_total'); + }); + } +}; diff --git a/database/migrations/2025_01_02_082854_revised_form_entertainment_presentation_table.php b/database/migrations/2025_01_02_082854_revised_form_entertainment_presentation_table.php new file mode 100644 index 0000000..c92225c --- /dev/null +++ b/database/migrations/2025_01_02_082854_revised_form_entertainment_presentation_table.php @@ -0,0 +1,28 @@ +integer('approved_total')->after('total')->nullable(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('form_entertainment_presentation', function (Blueprint $table) { + $table->dropColumn('approved_total'); + }); + } +}; diff --git a/database/migrations/2025_01_02_082944_revised_form_meeting_seminar_table.php b/database/migrations/2025_01_02_082944_revised_form_meeting_seminar_table.php new file mode 100644 index 0000000..a0ebb42 --- /dev/null +++ b/database/migrations/2025_01_02_082944_revised_form_meeting_seminar_table.php @@ -0,0 +1,34 @@ +integer('approved_allowance')->after('total')->nullable(); + $table->integer('approved_transport_ankot')->after('approved_allowance')->nullable(); + $table->integer('approved_hotel')->after('approved_transport_ankot')->nullable(); + $table->integer('approved_total')->after('approved_hotel')->nullable(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('form_meeting_seminar', function (Blueprint $table) { + $table->dropColumn('approved_allowance'); + $table->dropColumn('approved_transport_ankot'); + $table->dropColumn('approved_hotel'); + $table->dropColumn('approved_total'); + }); + } +}; diff --git a/database/migrations/2025_01_02_083046_revised_form_others_table.php b/database/migrations/2025_01_02_083046_revised_form_others_table.php new file mode 100644 index 0000000..66ca6be --- /dev/null +++ b/database/migrations/2025_01_02_083046_revised_form_others_table.php @@ -0,0 +1,28 @@ +integer('approved_total')->after('total')->nullable(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('form_others', function (Blueprint $table) { + $table->dropColumn('approved_total'); + }); + } +}; diff --git a/resources/views/backend/pages/audit_trail/index.blade.php b/resources/views/backend/pages/audit_trail/index.blade.php index d6d3410..6bf439c 100644 --- a/resources/views/backend/pages/audit_trail/index.blade.php +++ b/resources/views/backend/pages/audit_trail/index.blade.php @@ -42,7 +42,8 @@
Approved Expenses