diff --git a/app/Http/Controllers/PenilaiController.php b/app/Http/Controllers/PenilaiController.php index 791de97..e50cadc 100644 --- a/app/Http/Controllers/PenilaiController.php +++ b/app/Http/Controllers/PenilaiController.php @@ -563,7 +563,7 @@ class PenilaiController extends Controller if (!Auth::user()->hasRole('administrator')) { $query->whereHas('penilaian.userPenilai', function ($q) { $q - ->where('role', ['surveyor','penilai']) + ->whereIn('role', ['surveyor', 'penilai']) ->where('user_id', Auth::user()->id); }); } @@ -834,6 +834,15 @@ class PenilaiController extends Controller } + // $cekLpj = $this->checkDataLpj($type, $statusLpj); + // if ($permohonan->status_bayar === 'sudah_bayar' && $cekLpj) { + // return response()->json([ + // 'success' => false, + // 'message' => 'Harap mengisi LPJ terlebih dahulu', + // ]); + // } + + $permohonan->update([ 'status' => 'proses-laporan', ]); @@ -853,14 +862,69 @@ class PenilaiController extends Controller public function uploadTempPhoto(Request $request) { + $validatedData = $request->validate([ + 'permohonan_id' => 'required|integer', + 'dokument_id' => 'required|integer', + ]); + + $memo = Penilai::firstOrNew([ + 'permohonan_id' => $validatedData['permohonan_id'], + 'dokument_id' => $validatedData['dokument_id'], + ]); + + $existingData = $memo->exists && $memo->memo ? json_decode($memo->memo, true) : []; + $existingData['foto'] = $existingData['foto'] ?? []; + if ($request->hasFile('file')) { - $file = $request->file('file'); - $filename = time() . '_' . $file->getClientOriginalName(); - $path = $file->storeAs('temp_photos', $filename, 'public'); - return response()->json(['success' => true, 'id' => $path]); + + $files = $request->file('file'); + + if (!is_array($files)) { + $files = [$files]; + } + foreach ($files as $file) { + + $filename = time() . '_' . $file->getClientOriginalName(); + $path = $file->storeAs('temp_photos', $filename, 'public'); + $existingData['foto'][] = $path; + + } + // Simpan data memo + $memo->memo = json_encode($existingData); + $memo->save(); + + return response()->json(['success' => true, 'data' => $existingData]); + } + return response()->json(['success' => false], 400); + } + + + public function deleteTempPhoto(Request $request) + { + $validatedData = $request->validate([ + 'permohonan_id' => 'required|integer', + 'dokument_id' => 'required|integer', + 'path' => 'required|string', + ]); + + $memo = Penilai::firstOrNew([ + 'permohonan_id' => $validatedData['permohonan_id'], + 'dokument_id' => $validatedData['dokument_id'], + ]); + + $fotoMemo = json_decode($memo->memo, true); + if (isset($fotoMemo['foto']) && is_array($fotoMemo['foto'])) { + $fotoMemo['foto'] = array_filter($fotoMemo['foto'], function ($photo) use ($validatedData) { + return basename($photo) !== basename($validatedData['path']); + }); + + $fotoMemo['foto'] = array_values($fotoMemo['foto']); + $memo->memo = json_encode($fotoMemo); + $memo->save(); + return response()->json(['success' => true, 'message' => 'Foto berhasil dihapus']); } - return response()->json(['success' => false], 400); + return response()->json(['success' => false, 'message' => 'Foto tidak ditemukan'], 400); } public function storeResume(Request $request) @@ -955,42 +1019,20 @@ class PenilaiController extends Controller 'memo' => 'required', ]); - $memoData = json_decode($validatedData['memo'], true); + $newMemoData = json_decode($validatedData['memo'], true); - $memo = Penilai::updateOrCreate( + $memo = Penilai::firstOrNew( [ 'permohonan_id' => $validatedData['permohonan_id'], 'dokument_id' => $validatedData['document_id'], - - ], - [ - 'memo' => json_encode($memoData), ] ); - // $existingPhotos = isset($memo->memo) ? json_decode($memo->memo) : []; - // dd($existingPhotos); - // Simpan foto-foto - if ($request->hasFile('foto_0')) { - $photoUrls = []; - $index = 0; - while ($request->hasFile("foto_$index")) { - $file = $request->file("foto_$index"); - $fileName = time() . '_' . $file->getClientOriginalName(); - $filePath = $file->storeAs('public/memo_photos', $fileName); - $photoUrls[] = Storage::url($filePath); - $index++; - } + $existingMemoData = isset($memo->memo) ? json_decode($memo->memo, true) : []; + $mergedMemoData = array_merge($existingMemoData, $newMemoData); - // $memoData['foto'] = array_merge($existingPhotos, $photoUrls); - - // }else{ - // $memoData['foto'] = $existingPhotos; - // Tambahkan URL foto ke data memo - $memoData['foto'] = $photoUrls; - $memo->memo = json_encode($memoData); + $memo->memo = json_encode($mergedMemoData); $memo->save(); - } return response()->json([ 'success' => true, @@ -1068,7 +1110,7 @@ class PenilaiController extends Controller 'message' => 'Berhasil menyimpan LPJ', 'data' => $result ], 200); - }catch (\Throwable $e) { + } catch (\Throwable $e) { DB::rollBack(); return response()->json([ 'success' => false, diff --git a/app/Http/Controllers/PenilaianController.php b/app/Http/Controllers/PenilaianController.php index 9e5d1b0..ebe1a71 100644 --- a/app/Http/Controllers/PenilaianController.php +++ b/app/Http/Controllers/PenilaianController.php @@ -194,6 +194,8 @@ class PenilaianController extends Controller DB::beginTransaction(); $penilaian = Penilaian::where('nomor_registrasi', $request->nomor_registrasi)->first(); + $surveyTeam = null; + $penilaiTeam = null; $penilaianId = $penilaian->id; $penilainTeam = PenilaianTeam::where('penilaian_id', $penilaianId)->get(); @@ -205,6 +207,7 @@ class PenilaianController extends Controller 'user_id' => $request->surveyor_id, 'role' => 'surveyor', ]); + $surveyTeam = $item->team_id; } if ($item->role === 'penilai' && $item->user_id === null) { @@ -212,10 +215,21 @@ class PenilaianController extends Controller 'user_id' => $request->penilai_id, 'role' => 'penilai', ]); + + } + + if ($item->role === 'penilai' && $surveyTeam) { + $penilaiTeam = $item->team_id; } } $permohonan = Permohonan::where('nomor_registrasi', $request->nomor_registrasi); + + if ($surveyTeam && $penilaiTeam) { + $permohonan->update([ + 'region_id' => $penilaiTeam, + ]); + } $permohonan->update([ 'status' => 'assign', ]); @@ -515,7 +529,7 @@ class PenilaianController extends Controller } if ($status == 'done' && $permohonan->status_bayar === 'sudah_bayar' && $permohonan->penilai->type_penilai === 'standar' || $permohonan->penilai->type_penilai === 'sederhana') { - $_permohonan = Permohonan::with(['documents.jenisJaminan','penilaian._user_penilai','penilai','documents.detail.jenisLegalitasJaminan'])->find(6); + $_permohonan = Permohonan::with(['documents.jenisJaminan','penilaian._user_penilai','penilai','documents.detail.jenisLegalitasJaminan'])->find($permohonan->id); if (isset($_permohonan->penilai->lpj)) { $npw = json_decode($_permohonan->penilai->lpj, true); diff --git a/resources/views/penilai/components/memo.blade.php b/resources/views/penilai/components/memo.blade.php index 6fa599a..4bf608d 100644 --- a/resources/views/penilai/components/memo.blade.php +++ b/resources/views/penilai/components/memo.blade.php @@ -186,7 +186,8 @@
+ value="{{ $permohonan->penilaian->updated_at ?? old('tanggal_survey') }}" + @readonly(true)>
@@ -315,10 +316,11 @@