diff --git a/app/Helpers/FormHelper.php b/app/Helpers/FormHelper.php index 14f5961..db9f391 100644 --- a/app/Helpers/FormHelper.php +++ b/app/Helpers/FormHelper.php @@ -181,6 +181,82 @@ class FormHelper }); } + public static function getAllForms2() { + // Get all users with eager loading for 'region' and 'cabang' + $users = Admin::with(['region', 'cabang']) + ->get(); + + $formUpCountryQuery = FormUpCountry::select( + 'expense_number', + 'user_id', + 'total', + 'approved_total', + 'status', + 'account_number', + 'created_at', + DB::raw("'Up Country' as type") + ); + + $formVehicleRunningCostQuery = FormVehicleRunningCost::select( + 'expense_number', + 'user_id', + 'total', + 'approved_total', + 'status', + 'account_number', + 'created_at', + DB::raw("'Vehicle Running Cost' as type") + ); + + $formEntertaimentPresentationQuery = FormEntertaimentPresentation::select( + 'expense_number', + 'user_id', + 'total', + 'approved_total', + 'status', + 'account_number', + 'created_at', + DB::raw("'Entertainment Presentation' as type") + ); + + $formMeetingSeminarQuery = FormMeetingSeminar::select( + 'expense_number', + 'user_id', + 'total', + 'approved_total', + 'status', + 'account_number', + 'created_at', + DB::raw("'Meeting Seminar' as type") + ); + + $formOthersQuery = FormOthers::select( + 'expense_number', + 'user_id', + 'total', + 'approved_total', + 'status', + 'account_number', + 'created_at', + DB::raw("'Others' as type") + ); + + // Combine queries using union + $forms = $formUpCountryQuery + ->union($formVehicleRunningCostQuery) + ->union($formEntertaimentPresentationQuery) + ->union($formMeetingSeminarQuery) + ->union($formOthersQuery) + ->get(); + + // Map users to the forms with eager loaded data + return $forms->map(function ($form) use ($users) { + $user = $users->firstWhere('id', $form->user_id); + $form->user = $user; + return $form; + }); + } + public static function getNominalByFormType($cabang_id, $type, $type_id, $month, $year) { $users = UserHasCabang::where('cabang_id', $cabang_id)->get(); $userIds = $users->pluck('user_id')->toArray(); diff --git a/app/Http/Controllers/Backend/DashboardController.php b/app/Http/Controllers/Backend/DashboardController.php index 03ebe4a..5505115 100644 --- a/app/Http/Controllers/Backend/DashboardController.php +++ b/app/Http/Controllers/Backend/DashboardController.php @@ -104,27 +104,12 @@ class DashboardController extends Controller public function notifications() { $this->checkAuthorization(auth()->user(), ['notification.view']); - $role = auth()->user()->getRoleNames()[0]; // Mulai dengan query dasar $notifications = Notifications::orderBy('created_at', 'desc') ->where('receiver_id', auth()->user()->id) ->where('is_read', 0); - // Tambahkan filter berdasarkan role - if ($role == 'Admin Region') { - $notifications->where('type', 'new_expense'); - } elseif ($role == 'Marketing Operational Manager Region') { - $notifications->where('type', 'approve2_expense'); - } elseif ($role == 'Area Manager Cabang' || $role == 'Marketing Information System') { - $notifications->where('type', 'approve_expense'); - } elseif ($role == 'Head of Sales Marketing') { - $notifications->where('type', 'approve2_expense'); - } else { - // Jika tidak ada role yang sesuai, kembalikan koleksi kosong - return response()->json([]); - } - // Ambil data dan kembalikan sebagai JSON return response()->json($notifications->limit(6)->get()); } diff --git a/app/Http/Controllers/Backend/ReportController.php b/app/Http/Controllers/Backend/ReportController.php index b2e1742..3f08a60 100644 --- a/app/Http/Controllers/Backend/ReportController.php +++ b/app/Http/Controllers/Backend/ReportController.php @@ -498,7 +498,7 @@ class ReportController extends Controller } else { $cabangs = Cabang::all(); $regions = Region::all(); - $forms = FormHelper::getAllForms($month, $year)->sortByDesc('created_at'); + $forms = FormHelper::getAllForms2()->sortByDesc('created_at'); } // get all params in url @@ -565,7 +565,7 @@ class ReportController extends Controller } else { $cabangs = Cabang::all(); $regions = Region::all(); - $forms = FormHelper::getAllForms($month, $year)->sortByDesc('tanggal')->sortByDesc('created_at'); + $forms = FormHelper::getAllForms($month, $year)->sortByDesc('tanggal')->sortByDesc('created_at'); } } } diff --git a/app/Http/Controllers/Forms/FormEntertainmentPresentationController.php b/app/Http/Controllers/Forms/FormEntertainmentPresentationController.php index d267d1d..c0bb882 100644 --- a/app/Http/Controllers/Forms/FormEntertainmentPresentationController.php +++ b/app/Http/Controllers/Forms/FormEntertainmentPresentationController.php @@ -114,30 +114,32 @@ class FormEntertainmentPresentationController extends Controller public function store(Request $request) { $this->checkAuthorization(auth()->user(), ['forms.entertainment.create']); - $cabang_id = UserHasCabang::where('user_id', auth()->user()->id)->first()->cabang_id; $request->validate([ 'tanggal' => 'required', 'jenis' => 'required|in:entertainment,presentation,sponsorship', 'keterangan' => 'required', - 'total' => 'required|numeric|min:1|max:' . BudgetHelper::getAvailableBudget($cabang_id), + 'total' => 'required|numeric|min:1', 'name' => 'required', 'alamat' => 'required', 'nik_or_npwp' => 'required', 'bukti_total' => ['nullable', 'file', 'max:51200', new FileType(['php', 'exe', 'js', 'sh', 'bat', 'exe', 'sh', 'php', 'vbs'])], ]); - $currentDate = date('Y-m-d'); $startDate = date('Y-m-' . env('STARTING_DATE')); $closingDateNextMonth = date('Y-m-', strtotime('+1 month')) . env('CLOSING_DATE'); - if ($currentDate < $startDate || $currentDate > $closingDateNextMonth) { - return response()->json([ - 'error' => 'Current date is not within the valid range.' - ], 400); + if ($request->tanggal < $startDate || $request->tanggal > $closingDateNextMonth) { + session()->flash('error', 'Gagal, Input expense sudah melewati periode input 12-10'); + return redirect()->back(); } $cabang = UserHasCabang::with('cabang')->where('user_id', auth()->user()->id)->first()->cabang; + if($request->total > BudgetHelper::getAvailableBudget($cabang->id)) { + session()->flash('error', 'Alokasi budget bulanan cabang tidak mencukupi,silahkan ajukan pada periode expense berikutnya'); + return redirect()->back(); + } + $region = Region::where('id', $cabang->region_id)->first(); $kategori = Kategori::where('name', 'Entertainment')->first(); diff --git a/app/Http/Controllers/Forms/FormMeetingSeminarController.php b/app/Http/Controllers/Forms/FormMeetingSeminarController.php index 9e1195a..ebcf7d5 100644 --- a/app/Http/Controllers/Forms/FormMeetingSeminarController.php +++ b/app/Http/Controllers/Forms/FormMeetingSeminarController.php @@ -133,9 +133,8 @@ class FormMeetingSeminarController extends Controller $closingDateNextMonth = date('Y-m-', strtotime('+1 month')) . env('CLOSING_DATE'); if ($currentDate < $startDate || $currentDate > $closingDateNextMonth) { - return response()->json([ - 'error' => 'Current date is not within the valid range.' - ], 400); + session()->flash('error', 'Gagal, Input expense sudah melewati periode input 12-10'); + return redirect()->back(); } $cabang = UserHasCabang::with('cabang')->where('user_id', auth()->user()->id)->first()->cabang; @@ -195,9 +194,8 @@ class FormMeetingSeminarController extends Controller ]; // Check if the total nominal exceeds the available budget - $cabang_id = UserHasCabang::where('user_id', auth()->user()->id)->first()->cabang_id; - if(array_sum($data_nominal) > BudgetHelper::getAvailableBudget($cabang_id)) { - session()->flash('error', 'The total nominal exceeds the available budget.'); + if(array_sum($data_nominal) > BudgetHelper::getAvailableBudget($cabang->id)) { + session()->flash('error', 'Alokasi budget bulanan cabang tidak mencukupi,silahkan ajukan pada periode expense berikutnya'); return redirect()->back(); } diff --git a/app/Http/Controllers/Forms/FormOtherController.php b/app/Http/Controllers/Forms/FormOtherController.php index 9cb784a..1fe7f4a 100644 --- a/app/Http/Controllers/Forms/FormOtherController.php +++ b/app/Http/Controllers/Forms/FormOtherController.php @@ -114,27 +114,29 @@ class FormOtherController extends Controller public function store(Request $request) { $this->checkAuthorization(auth()->user(), ['forms.other.create']); - $cabang_id = UserHasCabang::where('user_id', auth()->user()->id)->first()->cabang_id; $request->validate([ 'kategori_id' => 'required', 'tanggal' => 'required|date', 'keterangan' => 'required', - 'total' => 'required|numeric|min:1|max:' . BudgetHelper::getAvailableBudget($cabang_id), + 'total' => 'required|numeric|min:1', 'bukti_total' => ['nullable', 'file', 'max:51200', new FileType(['php', 'exe', 'js', 'sh', 'bat', 'exe', 'sh', 'php', 'vbs'])], ]); - $currentDate = date('Y-m-d'); $startDate = date('Y-m-' . env('STARTING_DATE')); $closingDateNextMonth = date('Y-m-', strtotime('+1 month')) . env('CLOSING_DATE'); - if ($currentDate < $startDate || $currentDate > $closingDateNextMonth) { - return response()->json([ - 'error' => 'Current date is not within the valid range.' - ], 400); + if ($request->tanggal < $startDate || $request->tanggal > $closingDateNextMonth) { + session()->flash('error', 'Gagal, Input expense sudah melewati periode input 12-10'); + return redirect()->back(); } $cabang = UserHasCabang::with('cabang')->where('user_id', auth()->user()->id)->first()->cabang; + if($request->total > BudgetHelper::getAvailableBudget($cabang->id)) { + session()->flash('error', 'Alokasi budget bulanan cabang tidak mencukupi,silahkan ajukan pada periode expense berikutnya'); + return redirect()->back(); + } + $region = Region::where('id', $cabang->region_id)->first(); $kategori = Kategori::where('id', $request->kategori_id)->first(); diff --git a/app/Http/Controllers/Forms/FormUpCountryController.php b/app/Http/Controllers/Forms/FormUpCountryController.php index 22bb9ed..277a24d 100644 --- a/app/Http/Controllers/Forms/FormUpCountryController.php +++ b/app/Http/Controllers/Forms/FormUpCountryController.php @@ -115,9 +115,10 @@ class FormUpCountryController extends Controller public function create() { $this->checkAuthorization(auth()->user(), ['forms.country.create']); + $cabang = UserHasCabang::with('cabang')->where('user_id', auth()->user()->id)->first()->cabang; return view('backend.pages.forms.upcountry.create', [ - 'rayons' => Rayon::all() + 'rayons' => Rayon::where('cabang_id', $cabang->id)->get() ]); } @@ -140,14 +141,12 @@ class FormUpCountryController extends Controller 'bukti_hotel' => ['nullable', 'file', 'max:51200', new FileType(['php', 'exe', 'js', 'sh', 'bat', 'exe', 'sh', 'php', 'vbs'])], ]); - $currentDate = date('Y-m-d'); $startDate = date('Y-m-' . env('STARTING_DATE')); $closingDateNextMonth = date('Y-m-', strtotime('+1 month')) . env('CLOSING_DATE'); - if ($currentDate < $startDate || $currentDate > $closingDateNextMonth) { - return response()->json([ - 'error' => 'Current date is not within the valid range.' - ], 400); + if ($request->tanggal < $startDate || $request->tanggal > $closingDateNextMonth) { + session()->flash('error', 'Gagal, Input expense sudah melewati periode input 12-10'); + return redirect()->back(); } $cabang = UserHasCabang::with('cabang')->where('user_id', auth()->user()->id)->first()->cabang; @@ -220,9 +219,8 @@ class FormUpCountryController extends Controller ]; // Check if the total nominal exceeds the available budget - $cabang_id = UserHasCabang::where('user_id', auth()->user()->id)->first()->cabang_id; - if(array_sum($data_nominal) > BudgetHelper::getAvailableBudget($cabang_id)) { - session()->flash('error', 'The total nominal exceeds the available budget.'); + if(array_sum($data_nominal) > BudgetHelper::getAvailableBudget($cabang->id)) { + session()->flash('error', 'Alokasi budget bulanan cabang tidak mencukupi,silahkan ajukan pada periode expense berikutnya'); return redirect()->back(); } @@ -307,6 +305,8 @@ class FormUpCountryController extends Controller $this->checkAuthorization(auth()->user(), ['forms.country.edit']); $role = auth()->user()->getRoleNames()[0]; + $cabang = UserHasCabang::with('cabang')->where('user_id', auth()->user()->id)->first()->cabang; + $form = FormUpCountry::with('rayon')->findOrfail($id); if (($form->status != 'On Progress' && $form->status != 'Rejected') && $role == 'Medical Representatif') { session()->flash('error', 'You cannot edit this form because it has been approved or closed.'); @@ -314,7 +314,7 @@ class FormUpCountryController extends Controller } return view('backend.pages.forms.upcountry.edit', [ - 'rayons' => Rayon::all(), + 'rayons' => Rayon::where('cabang_id', $cabang->id)->get(), 'form' => $form ]); } diff --git a/app/Http/Controllers/Forms/FormVehicleController.php b/app/Http/Controllers/Forms/FormVehicleController.php index 82c9de0..7acea32 100644 --- a/app/Http/Controllers/Forms/FormVehicleController.php +++ b/app/Http/Controllers/Forms/FormVehicleController.php @@ -115,12 +115,11 @@ class FormVehicleController extends Controller public function store(Request $request) { $this->checkAuthorization(auth()->user(), ['forms.vehicle.create']); - $cabang_id = UserHasCabang::where('user_id', auth()->user()->id)->first()->cabang_id; $request->validate([ 'tanggal' => 'required', 'liter' => 'required', - 'total' => 'required|numeric|min:1|max:' . BudgetHelper::getAvailableBudget($cabang_id), + 'total' => 'required|numeric|min:1', 'jarak' => 'required', 'tipe_bensin' => 'required|in:pertalite,pertamax', 'nopol' => 'required', @@ -128,17 +127,20 @@ class FormVehicleController extends Controller 'bukti_total' => ['nullable', 'file', 'max:51200', new FileType(['php', 'exe', 'js', 'sh', 'bat', 'exe', 'sh', 'php', 'vbs'])], ]); - $currentDate = date('Y-m-d'); $startDate = date('Y-m-' . env('STARTING_DATE')); $closingDateNextMonth = date('Y-m-', strtotime('+1 month')) . env('CLOSING_DATE'); - if ($currentDate < $startDate || $currentDate > $closingDateNextMonth) { - return response()->json([ - 'error' => 'Current date is not within the valid range.' - ], 400); + if ($request->tanggal < $startDate || $request->tanggal > $closingDateNextMonth) { + session()->flash('error', 'Gagal, Input expense sudah melewati periode input 12-10'); + return redirect()->back(); } $cabang = UserHasCabang::with('cabang')->where('user_id', auth()->user()->id)->first()->cabang; + if($request->total > BudgetHelper::getAvailableBudget($cabang->id)) { + session()->flash('error', 'Alokasi budget bulanan cabang tidak mencukupi,silahkan ajukan pada periode expense berikutnya'); + return redirect()->back(); + } + $region = Region::where('id', $cabang->region_id)->first(); $kategori = Kategori::where('name', 'Vehicle Running Cost')->first(); diff --git a/app/Models/Rayon.php b/app/Models/Rayon.php index 412d2d2..074da1a 100644 --- a/app/Models/Rayon.php +++ b/app/Models/Rayon.php @@ -10,5 +10,5 @@ class Rayon extends Model use SoftDeletes; protected $table = 'rayon'; - protected $fillable = ['code', 'name']; + protected $fillable = ['code', 'name', 'cabang_id']; } diff --git a/database/migrations/2025_01_19_074726_add_cabang_id_to_rayon_table.php b/database/migrations/2025_01_19_074726_add_cabang_id_to_rayon_table.php new file mode 100644 index 0000000..7bdc591 --- /dev/null +++ b/database/migrations/2025_01_19_074726_add_cabang_id_to_rayon_table.php @@ -0,0 +1,29 @@ +foreignId('cabang_id')->nullable()->constrained('cabang')->cascadeOnDelete()->after('id')->default(1); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('rayon', function (Blueprint $table) { + $table->dropForeign(['cabang_id']); + $table->dropColumn('cabang_id'); + }); + } +}; diff --git a/resources/views/backend/pages/forms/entertainment/index.blade.php b/resources/views/backend/pages/forms/entertainment/index.blade.php index 93bab54..cf534f0 100644 --- a/resources/views/backend/pages/forms/entertainment/index.blade.php +++ b/resources/views/backend/pages/forms/entertainment/index.blade.php @@ -109,13 +109,13 @@ Bukti Account Number Status - @if (auth()->user()->can('approval.approve')) + @if (auth()->user()->can('approval.view')) Approval 1 @endif - @if (auth()->user()->can('approval2.approve')) + @if (auth()->user()->can('approval2.view')) Approval 2 @endif - @if (auth()->user()->can('final_approval.approve')) + @if (auth()->user()->can('final_approval.view')) Final Approval @endif Aksi @@ -157,92 +157,87 @@ {{ $item->status }} @endif - @if (auth()->user()->can('approval.approve')) + @if (auth()->user()->can('approval.view')) {{-- approve / reject button --}} - @if ($item->status == 'On Progress' || $item->status == 'Rejected') -
- -
- -
- @csrf - @method('PUT') - -
- @else - @if ($item->approved_at) - {{ \Carbon\Carbon::parse($item->approved_at)->locale('id')->isoFormat('D MMMM Y') }} - @elseif($item->rejected_at) - {{ \Carbon\Carbon::parse($item->rejected_at)->locale('id')->isoFormat('D MMMM Y') }} - @else - - - @endif - @endif - - @endif - @if (auth()->user()->can('approval2.approve')) - - {{-- approve / reject button --}} - @if ($item->status == 'Approved 1' && $item->approved_at) -
- -
- -
- @csrf - @method('PUT') - -
- @else - @if ($item->approved2_at) - {{ \Carbon\Carbon::parse($item->approved_at)->locale('id')->isoFormat('D MMMM Y') }} - @elseif($item->rejected_at) - {{ \Carbon\Carbon::parse($item->rejected_at)->locale('id')->isoFormat('D MMMM Y') }} - @else - - - @endif - @endif - - @endif - @if(auth()->user()->can('final_approval.approve')) - - {{-- approve / reject button --}} - @if ($item->status == 'Approved 2' && $item->approved2_at && !$item->final_approved_at) -
- -
- @else - @if ($item->final_approved_at && auth()->user()->can('final_approval.open')) -
- @csrf - @method('PUT') - +
+ +
+ @csrf + @method('PUT') +
- @elseif ($item->final_approved_at) - {{ \Carbon\Carbon::parse($item->approved_at)->locale('id')->isoFormat('D MMMM Y') }} - @else - - @endif @endif + @if ($item->approved_at) + {{ \Carbon\Carbon::parse($item->approved_at)->locale('id')->isoFormat('D MMMM Y') }} + @endif + + @endif + @if (auth()->user()->can('approval2.view')) + + {{-- approve / reject button --}} + @if (auth()->user()->can('approval2.approve')) + @if ($item->status == 'Approved 1' && $item->approved_at) +
+ +
+ +
+ @csrf + @method('PUT') + +
+ @endif + @endif + @if ($item->approved2_at) + {{ \Carbon\Carbon::parse($item->approved_at)->locale('id')->isoFormat('D MMMM Y') }} + @endif + + @endif + @if(auth()->user()->can('final_approval.view')) + + {{-- approve / reject button --}} + @if(auth()->user()->can('final_approval.approve')) + @if ($item->status == 'Approved 2' && $item->approved2_at && !$item->final_approved_at) +
+ +
+ @else + @if ($item->final_approved_at && auth()->user()->can('final_approval.open')) +
+ @csrf + @method('PUT') + +
+ @endif + @endif + @endif + @if ($item->final_approved_at) + {{ \Carbon\Carbon::parse($item->approved_at)->locale('id')->isoFormat('D MMMM Y') }} + @endif @endif diff --git a/resources/views/backend/pages/forms/meeting/index.blade.php b/resources/views/backend/pages/forms/meeting/index.blade.php index 97181d2..29f66d7 100644 --- a/resources/views/backend/pages/forms/meeting/index.blade.php +++ b/resources/views/backend/pages/forms/meeting/index.blade.php @@ -108,13 +108,13 @@ Total Approved Account Number Status - @if (auth()->user()->can('approval.approve')) + @if (auth()->user()->can('approval.view')) Approval 1 @endif - @if (auth()->user()->can('approval2.approve')) + @if (auth()->user()->can('approval2.view')) Approval 2 @endif - @if (auth()->user()->can('final_approval.approve')) + @if (auth()->user()->can('final_approval.view')) Final Approval @endif Aksi @@ -147,92 +147,87 @@ {{ $item->status }} @endif - @if (auth()->user()->can('approval.approve')) + @if (auth()->user()->can('approval.view')) {{-- approve / reject button --}} - @if ($item->status == 'On Progress' || $item->status == 'Rejected') -
- -
- -
- @csrf - @method('PUT') - -
- @else - @if ($item->approved_at) - {{ \Carbon\Carbon::parse($item->approved_at)->locale('id')->isoFormat('D MMMM Y') }} - @elseif($item->rejected_at) - {{ \Carbon\Carbon::parse($item->rejected_at)->locale('id')->isoFormat('D MMMM Y') }} - @else - - - @endif - @endif - - @endif - @if (auth()->user()->can('approval2.approve')) - - {{-- approve / reject button --}} - @if ($item->status == 'Approved 1' && $item->approved_at) -
- -
- -
- @csrf - @method('PUT') - -
- @else - @if ($item->approved2_at) - {{ \Carbon\Carbon::parse($item->approved_at)->locale('id')->isoFormat('D MMMM Y') }} - @elseif($item->rejected_at) - {{ \Carbon\Carbon::parse($item->rejected_at)->locale('id')->isoFormat('D MMMM Y') }} - @else - - - @endif - @endif - - @endif - @if(auth()->user()->can('final_approval.approve')) - - {{-- approve / reject button --}} - @if ($item->status == 'Approved 2' && $item->approved2_at && !$item->final_approved_at) -
- -
- @else - @if ($item->final_approved_at && auth()->user()->can('final_approval.open')) -
- @csrf - @method('PUT') - +
+ +
+ @csrf + @method('PUT') +
- @elseif ($item->final_approved_at) - {{ \Carbon\Carbon::parse($item->approved_at)->locale('id')->isoFormat('D MMMM Y') }} - @else - - @endif @endif + @if ($item->approved_at) + {{ \Carbon\Carbon::parse($item->approved_at)->locale('id')->isoFormat('D MMMM Y') }} + @endif + + @endif + @if (auth()->user()->can('approval2.view')) + + {{-- approve / reject button --}} + @if (auth()->user()->can('approval2.approve')) + @if ($item->status == 'Approved 1' && $item->approved_at) +
+ +
+ +
+ @csrf + @method('PUT') + +
+ @endif + @endif + @if ($item->approved2_at) + {{ \Carbon\Carbon::parse($item->approved_at)->locale('id')->isoFormat('D MMMM Y') }} + @endif + + @endif + @if(auth()->user()->can('final_approval.view')) + + {{-- approve / reject button --}} + @if(auth()->user()->can('final_approval.approve')) + @if ($item->status == 'Approved 2' && $item->approved2_at && !$item->final_approved_at) +
+ +
+ @else + @if ($item->final_approved_at && auth()->user()->can('final_approval.open')) +
+ @csrf + @method('PUT') + +
+ @endif + @endif + @endif + @if ($item->final_approved_at) + {{ \Carbon\Carbon::parse($item->approved_at)->locale('id')->isoFormat('D MMMM Y') }} + @endif @endif diff --git a/resources/views/backend/pages/forms/other/index.blade.php b/resources/views/backend/pages/forms/other/index.blade.php index 9f7c888..f3dafdd 100644 --- a/resources/views/backend/pages/forms/other/index.blade.php +++ b/resources/views/backend/pages/forms/other/index.blade.php @@ -108,13 +108,13 @@ Bukti Total Account Number Status - @if (auth()->user()->can('approval.approve')) + @if (auth()->user()->can('approval.view')) Approval 1 @endif - @if (auth()->user()->can('approval2.approve')) + @if (auth()->user()->can('approval2.view')) Approval 2 @endif - @if (auth()->user()->can('final_approval.approve')) + @if (auth()->user()->can('final_approval.view')) Final Approval @endif Aksi @@ -155,92 +155,87 @@ {{ $item->status }} @endif - @if (auth()->user()->can('approval.approve')) + @if (auth()->user()->can('approval.view')) {{-- approve / reject button --}} - @if ($item->status == 'On Progress' || $item->status == 'Rejected') -
- -
- -
- @csrf - @method('PUT') - -
- @else - @if ($item->approved_at) - {{ \Carbon\Carbon::parse($item->approved_at)->locale('id')->isoFormat('D MMMM Y') }} - @elseif($item->rejected_at) - {{ \Carbon\Carbon::parse($item->rejected_at)->locale('id')->isoFormat('D MMMM Y') }} - @else - - - @endif - @endif - - @endif - @if (auth()->user()->can('approval2.approve')) - - {{-- approve / reject button --}} - @if ($item->status == 'Approved 1' && $item->approved_at) -
- -
- -
- @csrf - @method('PUT') - -
- @else - @if ($item->approved2_at) - {{ \Carbon\Carbon::parse($item->approved_at)->locale('id')->isoFormat('D MMMM Y') }} - @elseif($item->rejected_at) - {{ \Carbon\Carbon::parse($item->rejected_at)->locale('id')->isoFormat('D MMMM Y') }} - @else - - - @endif - @endif - - @endif - @if(auth()->user()->can('final_approval.approve')) - - {{-- approve / reject button --}} - @if ($item->status == 'Approved 2' && $item->approved2_at && !$item->final_approved_at) -
- -
- @else - @if ($item->final_approved_at && auth()->user()->can('final_approval.open')) -
- @csrf - @method('PUT') - +
+ +
+ @csrf + @method('PUT') +
- @elseif ($item->final_approved_at) - {{ \Carbon\Carbon::parse($item->approved_at)->locale('id')->isoFormat('D MMMM Y') }} - @else - - @endif @endif + @if ($item->approved_at) + {{ \Carbon\Carbon::parse($item->approved_at)->locale('id')->isoFormat('D MMMM Y') }} + @endif + + @endif + @if (auth()->user()->can('approval2.view')) + + {{-- approve / reject button --}} + @if (auth()->user()->can('approval2.approve')) + @if ($item->status == 'Approved 1' && $item->approved_at) +
+ +
+ +
+ @csrf + @method('PUT') + +
+ @endif + @endif + @if ($item->approved2_at) + {{ \Carbon\Carbon::parse($item->approved_at)->locale('id')->isoFormat('D MMMM Y') }} + @endif + + @endif + @if(auth()->user()->can('final_approval.view')) + + {{-- approve / reject button --}} + @if(auth()->user()->can('final_approval.approve')) + @if ($item->status == 'Approved 2' && $item->approved2_at && !$item->final_approved_at) +
+ +
+ @else + @if ($item->final_approved_at && auth()->user()->can('final_approval.open')) +
+ @csrf + @method('PUT') + +
+ @endif + @endif + @endif + @if ($item->final_approved_at) + {{ \Carbon\Carbon::parse($item->approved_at)->locale('id')->isoFormat('D MMMM Y') }} + @endif @endif diff --git a/resources/views/backend/pages/forms/upcountry/index.blade.php b/resources/views/backend/pages/forms/upcountry/index.blade.php index bc1aa27..af90029 100644 --- a/resources/views/backend/pages/forms/upcountry/index.blade.php +++ b/resources/views/backend/pages/forms/upcountry/index.blade.php @@ -108,13 +108,13 @@ Total Approved Account Number Status - @if (auth()->user()->can('approval.approve')) + @if (auth()->user()->can('approval.view')) Approval 1 @endif - @if (auth()->user()->can('approval2.approve')) + @if (auth()->user()->can('approval2.view')) Approval 2 @endif - @if (auth()->user()->can('final_approval.approve')) + @if (auth()->user()->can('final_approval.view')) Final Approval @endif Aksi @@ -153,92 +153,87 @@ {{ $item->status }} @endif - @if (auth()->user()->can('approval.approve')) + @if (auth()->user()->can('approval.view')) {{-- approve / reject button --}} - @if ($item->status == 'On Progress' || $item->status == 'Rejected') -
- -
- -
- @csrf - @method('PUT') - -
- @else - @if ($item->approved_at) - {{ \Carbon\Carbon::parse($item->approved_at)->locale('id')->isoFormat('D MMMM Y') }} - @elseif($item->rejected_at) - {{ \Carbon\Carbon::parse($item->rejected_at)->locale('id')->isoFormat('D MMMM Y') }} - @else - - - @endif - @endif - - @endif - @if (auth()->user()->can('approval2.approve')) - - {{-- approve / reject button --}} - @if ($item->status == 'Approved 1' && $item->approved_at) -
- -
- -
- @csrf - @method('PUT') - -
- @else - @if ($item->approved2_at) - {{ \Carbon\Carbon::parse($item->approved_at)->locale('id')->isoFormat('D MMMM Y') }} - @elseif($item->rejected_at) - {{ \Carbon\Carbon::parse($item->rejected_at)->locale('id')->isoFormat('D MMMM Y') }} - @else - - - @endif - @endif - - @endif - @if(auth()->user()->can('final_approval.approve')) - - {{-- approve / reject button --}} - @if ($item->status == 'Approved 2' && $item->approved2_at && !$item->final_approved_at) -
- -
- @else - @if ($item->final_approved_at && auth()->user()->can('final_approval.open')) -
- @csrf - @method('PUT') - +
+ +
+ @csrf + @method('PUT') +
- @elseif ($item->final_approved_at) - {{ \Carbon\Carbon::parse($item->approved_at)->locale('id')->isoFormat('D MMMM Y') }} - @else - - @endif @endif + @if ($item->approved_at) + {{ \Carbon\Carbon::parse($item->approved_at)->locale('id')->isoFormat('D MMMM Y') }} + @endif + + @endif + @if (auth()->user()->can('approval2.view')) + + {{-- approve / reject button --}} + @if (auth()->user()->can('approval2.approve')) + @if ($item->status == 'Approved 1' && $item->approved_at) +
+ +
+ +
+ @csrf + @method('PUT') + +
+ @endif + @endif + @if ($item->approved2_at) + {{ \Carbon\Carbon::parse($item->approved_at)->locale('id')->isoFormat('D MMMM Y') }} + @endif + + @endif + @if(auth()->user()->can('final_approval.view')) + + {{-- approve / reject button --}} + @if(auth()->user()->can('final_approval.approve')) + @if ($item->status == 'Approved 2' && $item->approved2_at && !$item->final_approved_at) +
+ +
+ @else + @if ($item->final_approved_at && auth()->user()->can('final_approval.open')) +
+ @csrf + @method('PUT') + +
+ @endif + @endif + @endif + @if ($item->final_approved_at) + {{ \Carbon\Carbon::parse($item->approved_at)->locale('id')->isoFormat('D MMMM Y') }} + @endif @endif diff --git a/resources/views/backend/pages/forms/vehicle/index.blade.php b/resources/views/backend/pages/forms/vehicle/index.blade.php index fe55de6..de7c08d 100644 --- a/resources/views/backend/pages/forms/vehicle/index.blade.php +++ b/resources/views/backend/pages/forms/vehicle/index.blade.php @@ -110,13 +110,13 @@ Bukti Account Number Status - @if (auth()->user()->can('approval.approve')) + @if (auth()->user()->can('approval.view')) Approval 1 @endif - @if (auth()->user()->can('approval2.approve')) + @if (auth()->user()->can('approval2.view')) Approval 2 @endif - @if (auth()->user()->can('final_approval.approve')) + @if (auth()->user()->can('final_approval.view')) Final Approval @endif Aksi @@ -159,92 +159,87 @@ {{ $item->status }} @endif - @if (auth()->user()->can('approval.approve')) + @if (auth()->user()->can('approval.view')) {{-- approve / reject button --}} - @if ($item->status == 'On Progress' || $item->status == 'Rejected') -
- -
- -
- @csrf - @method('PUT') - -
- @else - @if ($item->approved_at) - {{ \Carbon\Carbon::parse($item->approved_at)->locale('id')->isoFormat('D MMMM Y') }} - @elseif($item->rejected_at) - {{ \Carbon\Carbon::parse($item->rejected_at)->locale('id')->isoFormat('D MMMM Y') }} - @else - - - @endif - @endif - - @endif - @if (auth()->user()->can('approval2.approve')) - - {{-- approve / reject button --}} - @if ($item->status == 'Approved 1' && $item->approved_at) -
- -
- -
- @csrf - @method('PUT') - -
- @else - @if ($item->approved2_at) - {{ \Carbon\Carbon::parse($item->approved_at)->locale('id')->isoFormat('D MMMM Y') }} - @elseif($item->rejected_at) - {{ \Carbon\Carbon::parse($item->rejected_at)->locale('id')->isoFormat('D MMMM Y') }} - @else - - - @endif - @endif - - @endif - @if(auth()->user()->can('final_approval.approve')) - - {{-- approve / reject button --}} - @if ($item->status == 'Approved 2' && $item->approved2_at && !$item->final_approved_at) -
- -
- @else - @if ($item->final_approved_at && auth()->user()->can('final_approval.open')) -
- @csrf - @method('PUT') - +
+ +
+ @csrf + @method('PUT') +
- @elseif ($item->final_approved_at) - {{ \Carbon\Carbon::parse($item->approved_at)->locale('id')->isoFormat('D MMMM Y') }} - @else - - @endif @endif + @if ($item->approved_at) + {{ \Carbon\Carbon::parse($item->approved_at)->locale('id')->isoFormat('D MMMM Y') }} + @endif + + @endif + @if (auth()->user()->can('approval2.view')) + + {{-- approve / reject button --}} + @if (auth()->user()->can('approval2.approve')) + @if ($item->status == 'Approved 1' && $item->approved_at) +
+ +
+ +
+ @csrf + @method('PUT') + +
+ @endif + @endif + @if ($item->approved2_at) + {{ \Carbon\Carbon::parse($item->approved_at)->locale('id')->isoFormat('D MMMM Y') }} + @endif + + @endif + @if(auth()->user()->can('final_approval.view')) + + {{-- approve / reject button --}} + @if(auth()->user()->can('final_approval.approve')) + @if ($item->status == 'Approved 2' && $item->approved2_at && !$item->final_approved_at) +
+ +
+ @else + @if ($item->final_approved_at && auth()->user()->can('final_approval.open')) +
+ @csrf + @method('PUT') + +
+ @endif + @endif + @endif + @if ($item->final_approved_at) + {{ \Carbon\Carbon::parse($item->approved_at)->locale('id')->isoFormat('D MMMM Y') }} + @endif @endif diff --git a/resources/views/backend/pages/report/generate_jurnal.blade.php b/resources/views/backend/pages/report/generate_jurnal.blade.php index 961e3b0..2cec8e0 100644 --- a/resources/views/backend/pages/report/generate_jurnal.blade.php +++ b/resources/views/backend/pages/report/generate_jurnal.blade.php @@ -149,7 +149,21 @@ { extend: 'excel', text: 'Export Excel', - buttons: ['excel', 'csv', 'pdf', 'print', 'colvis'], + customize: function (xlsx) { + var sheet = xlsx.xl.worksheets['sheet1.xml']; + // Add additional information to the Excel sheet + var additionalInfo = ` + Cabang: {{ $cabang->name }} + Periode: {{ ucfirst($month) }} {{ $year }} + Cost Centre: {{ $cabang->cost->code }} + `; + var rows = additionalInfo.split('\n').map(function (text) { + return `${text.trim()}`; + }).join(''); + + // Inject the additional information at the top of the sheet + var data = $(sheet).find('sheetData').prepend(rows); + } }, { extend: 'csv', @@ -157,11 +171,10 @@ customize: function (csv) { // Add header information to the CSV var additionalInfo = ` - Cabang: {{ $cabang->name }} - Periode: {{ ucfirst($month) }} {{ $year }} - Cost Centre: {{ $cabang->cost->code }} - - `; + Cabang: {{ $cabang->name }} + Periode: {{ ucfirst($month) }} {{ $year }} + Cost Centre: {{ $cabang->cost->code }} + `; return additionalInfo + csv; } }, diff --git a/resources/views/layouts/app.blade.php b/resources/views/layouts/app.blade.php index 2e5a4eb..648a663 100644 --- a/resources/views/layouts/app.blade.php +++ b/resources/views/layouts/app.blade.php @@ -101,7 +101,10 @@ {{ Auth::guard('admin')->user()->getRoleNames()[0] }} - @if(auth()->user()->getMyCabangAndRegion()['cabang'] != '-' && Auth::guard('admin')->user()->getRoleNames()[0] == 'Medical Representatif') + @if( + auth()->user()->getMyCabangAndRegion()['cabang'] != '-' && + in_array(Auth::guard('admin')->user()->getRoleNames()[0], ['Medical Representatif', 'Area Manager Cabang']) + ) {{ auth()->user()->getMyCabangAndRegion()['cabang'] }}