diff --git a/app/Http/Controllers/ActivityController.php b/app/Http/Controllers/ActivityController.php index f0ad060..8c04b89 100644 --- a/app/Http/Controllers/ActivityController.php +++ b/app/Http/Controllers/ActivityController.php @@ -73,7 +73,8 @@ class ActivityController extends Controller public function updateTeamAssingment(Request $request) { try { - // Validasi input + + // dd($request->all()); $validatedData = $request->validate([ 'id' => 'required|integer', // penilaian_id 'team_member_id' => 'nullable|integer', @@ -81,6 +82,7 @@ class ActivityController extends Controller 'permohonan_id' => 'required|integer', 'user_id' => 'required|integer', 'team_id' => 'required|integer', + 'penugasan' => 'required|string', ], [ 'team_member_id.required_without' => 'Field team harus diisi.', '.required_without' => 'Field harus diisi.', @@ -93,6 +95,7 @@ class ActivityController extends Controller $permohonanId = $validatedData['permohonan_id']; $userId = $validatedData['user_id']; $teamId = $validatedData['team_id']; + $penugasan = $validatedData['penugasan']; // Cek apakah permohonan ada $permohonan = Permohonan::findOrFail($permohonanId); @@ -106,55 +109,101 @@ class ActivityController extends Controller // } // Ambil tim berdasarkan penilaian_id dan user_id - $teams = PenilaianTeam::where('penilaian_id', $penilaianId) + + if ($penugasan === 'sama') { + $teams = PenilaianTeam::where('penilaian_id', $penilaianId) ->where('user_id', $userId) ->get(); + // Cek apakah tim ditemukan + if ($teams->isEmpty()) { + return response()->json([ + 'status' => 'error', + 'message' => 'Data tim tidak ditemukan.', + ]); + } - // Cek apakah tim ditemukan - if ($teams->isEmpty()) { - return response()->json([ - 'status' => 'error', - 'message' => 'Data tim tidak ditemukan.', - ]); - } + // Mulai transaksi + DB::beginTransaction(); + $updated = false; - // Mulai transaksi - DB::beginTransaction(); - $updated = false; + $status_permohonan = $permohonan->status; - // Proses update berdasarkan region_id - if ($regionId) { - foreach ($teams as $team) { - if ($team->role === 'surveyor') { - $team->update([ - 'team_id' => $regionId, - 'user_id' => null]); - $permohonan->update([ - 'status' => 'registered']); - $updated = true; + // Proses update berdasarkan region_id + if ($regionId) { + foreach ($teams as $team) { + if ($team->role === 'surveyor') { + $team->update([ + 'team_id' => $regionId, + 'user_id' => null, + 'status' => $status_permohonan, + ]); + $permohonan->update([ + 'status' => 'reassign' + ]); + $updated = true; + } + + if ($team->role === 'penilai') { + $team->update([ + 'team_id' => $regionId, + 'user_id' => null, + 'status' => $status_permohonan + ]); + $permohonan->update([ + 'status' => 'reassign', + 'region_id' => $regionId, + ]); + $updated = true; + } } + } - if ($team->role === 'penilai') { - $team->update([ - 'team_id' => $regionId, - 'user_id' => null, - ]); - $permohonan->update([ - 'status' => 'registered', - 'region_id' => $regionId, - ]); - $updated = true; + // Proses update berdasarkan team_member_id + if ($teamMemberId) { + foreach ($teams as $team) { + if ($team->role === 'surveyor' || $team->role === 'penilai') { + $team->update(['user_id' => $teamMemberId]); + $updated = true; + } } } } - // Proses update berdasarkan team_member_id - if ($teamMemberId) { - foreach ($teams as $team) { - if ($team->role === 'surveyor' || $team->role === 'penilai') { - $team->update(['user_id' => $teamMemberId]); - $updated = true; - } + if ($penugasan === 'surveyor' || $penugasan === 'penilai') { + $teams = PenilaianTeam::where('penilaian_id', $penilaianId) + ->where('user_id', $userId) + ->where('role', $penugasan) + ->first(); + + // Cek apakah tim ditemukan + if (!$teams) { + return response()->json([ + 'status' => 'error', + 'message' => 'Data tim tidak ditemukan.', + ]); + } + + // Mulai transaksi + DB::beginTransaction(); + $updated = false; + + // Proses update berdasarkan region_id + if ($regionId) { + $teams->update([ + 'team_id' => $regionId, + 'user_id' => null + ]); + $permohonan->update([ + 'status' => $status_permohonan, + 'region_id' => $regionId, + ]); + $updated = true; + } + + // Proses update berdasarkan team_member_id + if ($teamMemberId) { + $teams->update(['user_id' => $teamMemberId]); + $updated = true; } } @@ -306,7 +355,7 @@ class ActivityController extends Controller } // Filter for specific roles - if (in_array($userRole, ['surveyor', 'surveyor-penilai'])) { + if (in_array($userRole, ['surveyor', 'penilai'])) { $query->whereHas('penilaian.userPenilai', function ($q) use ($user) { $q->where('user_id', $user->id); }); @@ -451,17 +500,17 @@ class ActivityController extends Controller $hari = $hariPaparan = 0; - if($type_report == "sederhana"){ + if ($type_report == "sederhana") { $hari = 2; $item->paparan = 'Tidak Ada'; - } else{ + } else { if ($plafond == '< 2M') { $item->paparan = 'Tidak Ada'; $hari = 3; - }else if($plafond == '2 M - 5 M'){ + } elseif ($plafond == '2 M - 5 M') { $hari = 3; $hariPaparan = 2; - }else { + } else { $hari = 5; $hariPaparan = 3; } @@ -495,7 +544,7 @@ class ActivityController extends Controller if (!$tanggalMulai instanceof Carbon) { $tanggalMulai = Carbon::parse($tanggalMulai); } - $hariKerjaBerikutnya = hitungHariKerja($tanggalMulai->toDateString(),$tanggalMulai->copy()->addDays(1)); + $hariKerjaBerikutnya = hitungHariKerja($tanggalMulai->toDateString(), $tanggalMulai->copy()->addDays(1)); $hariKerjaBerikutnya = max($hariKerjaBerikutnya, 1); $tanggalMulai = $tanggalMulai->copy()->addDays($hariKerjaBerikutnya); diff --git a/app/Http/Controllers/PenilaiController.php b/app/Http/Controllers/PenilaiController.php index 8eb6ead..e46ea62 100644 --- a/app/Http/Controllers/PenilaiController.php +++ b/app/Http/Controllers/PenilaiController.php @@ -558,6 +558,7 @@ class PenilaiController extends Controller $query = Permohonan::query(); // Apply search filter if provided + $query = $query->orderBy('nomor_registrasi', 'desc'); if ($request->has('search') && !empty($request->get('search'))) { $search = $request->get('search'); $columns = ['debiture.name', 'branch.name', 'user.name', 'tujuanPenilaian.name', 'jenisfasilitasKredit.name']; @@ -575,7 +576,7 @@ class PenilaiController extends Controller if (!Auth::user()->hasRole('administrator')) { $query->whereHas('penilaian.userPenilai', function ($q) { $q - ->where('role', 'penilai') + ->where('role', ['surveyor','penilai']) ->where('user_id', Auth::user()->id); }); } diff --git a/app/Http/Controllers/PenilaianController.php b/app/Http/Controllers/PenilaianController.php index 78849d4..a18f8d5 100644 --- a/app/Http/Controllers/PenilaianController.php +++ b/app/Http/Controllers/PenilaianController.php @@ -253,7 +253,7 @@ class PenilaianController extends Controller $teamPenilai = $userTeam->flatMap(function ($team) { return $team->teamsUsers->filter(function ($teamUser) { return $teamUser->user->roles->contains(function ($role) { - return $role->name === 'surveyor' || $role->name === 'surveyor-penilai' || $role->name === 'administrator'; + return $role->name === 'surveyor' || $role->name === 'penilai' || $role->name === 'administrator'; }); })->map(function ($teamUser) { return $teamUser->user; @@ -279,6 +279,8 @@ class PenilaianController extends Controller $penilaianTeam = PenilaianTeam::where('penilaian_id', $penilaian->id)->get(); } + // dd($penilaianTeam); + return view( 'lpj::penilaian.form', compact( @@ -347,8 +349,9 @@ class PenilaianController extends Controller $query->whereIn('status', ['registered', 'registrasi-final', 'reassign']); - // Filter berdasarkan role + if (Auth::user()->roles[0]->name !== 'administrator') { + $query->whereHas('region.teams.teamsUsers.user', function ($q) { $q->where('id', Auth::user()->id); }); @@ -376,7 +379,8 @@ class PenilaianController extends Controller $filteredRecords = $query->count(); $data = $query->with( - ['user', 'debiture', 'branch', 'tujuanPenilaian', 'jenisPenilaian', 'region.teams.teamsUsers.user'], + ['user', 'debiture', 'branch', 'tujuanPenilaian', 'jenisPenilaian', 'region.teams.teamsUsers.user', + ] )->get(); $pageCount = ceil($totalRecords / $size); @@ -738,8 +742,8 @@ class PenilaianController extends Controller 'tujuanPenilaian', 'nilaiPlafond', 'penilaian.userPenilai' => function ($q) { - $q->where('role', 'penilai')->with(['user', 'team.regions']); -}, + $q->where('role', 'penilai')->with(['user', 'team.regions']); + }, 'penilai', 'approveSo', 'approveEo', @@ -900,7 +904,7 @@ class PenilaianController extends Controller public function revisiLaporan(Request $request, $id) { // dd($id); - if($request->dataHeader=='Paparan' || $request->dataHeader=='Freze SLA'){ + if ($request->dataHeader == 'Paparan' || $request->dataHeader == 'Freze SLA') { $authorization = Authorization::find($id); $permohonan = Permohonan::find($authorization->permohonan_id); } else { @@ -914,13 +918,13 @@ class PenilaianController extends Controller } $status = 'revisi-paparan'; - }else if($permohonan->status === 'request-freeze'){ + } elseif ($permohonan->status === 'request-freeze') { if ($authorization) { $authorization->delete(); } $status = 'reject-freeze'; - }elseif ($permohonan->status === 'proses-laporan' && $userRole === 'EO Appraisal') { + } elseif ($permohonan->status === 'proses-laporan' && $userRole === 'EO Appraisal') { $permohonan->update([ 'approval_so' => 0, 'approval_so_at' => null, diff --git a/app/Http/Controllers/SurveyorController.php b/app/Http/Controllers/SurveyorController.php index f695013..b4efc41 100644 --- a/app/Http/Controllers/SurveyorController.php +++ b/app/Http/Controllers/SurveyorController.php @@ -2008,7 +2008,7 @@ class SurveyorController extends Controller } $query = Permohonan::query(); - + $query = $query->orderBy('nomor_registrasi', 'desc'); if ($request->has('search') && !empty($request->get('search'))) { $search = $request->get('search'); $query->where(function ($q) use ($search) { @@ -2028,7 +2028,7 @@ class SurveyorController extends Controller if (!Auth::user()->hasRole('administrator')) { $query->whereHas('penilaian.userPenilai', function ($q) { $q->where('user_id', Auth::user()->id); - $q->where('role', 'surveyor'); + $q->where('role', ['surveyor', 'penilai']); }); } diff --git a/resources/views/activity/progres_activity/index.blade.php b/resources/views/activity/progres_activity/index.blade.php index 844fce5..dbee2b7 100644 --- a/resources/views/activity/progres_activity/index.blade.php +++ b/resources/views/activity/progres_activity/index.blade.php @@ -292,10 +292,16 @@ }, actions: { title: 'Action', - render: (item, data) => ` - + render: (item, data) => { + const roles = data.user_penilai.map(d => d.role) + let htmlData = '' + + htmlData = ` - `, + ` + + return htmlData; + }, }, }, }; @@ -326,114 +332,181 @@ @endpush diff --git a/resources/views/penilai/components/print-out-sederhana.blade.php b/resources/views/penilai/components/print-out-sederhana.blade.php index 02cee4c..37b938c 100644 --- a/resources/views/penilai/components/print-out-sederhana.blade.php +++ b/resources/views/penilai/components/print-out-sederhana.blade.php @@ -57,7 +57,7 @@
| A. STATUS KEPEMILIKAN, HUBUNGAN DAN PENGHUNI | @@ -689,7 +692,7 @@