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 94d4c7e..e46ea62 100644
--- a/app/Http/Controllers/PenilaiController.php
+++ b/app/Http/Controllers/PenilaiController.php
@@ -576,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 fd04033..b4efc41 100644
--- a/app/Http/Controllers/SurveyorController.php
+++ b/app/Http/Controllers/SurveyorController.php
@@ -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