fix(penilai/so): prbaikkan pindah penilai dan tambah filter role penilai
This commit is contained in:
@@ -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);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user