From 575ea3fdceee33f9eb7c9cd30a90cc880220fe8e Mon Sep 17 00:00:00 2001 From: majid Date: Wed, 22 Jan 2025 09:06:10 +0700 Subject: [PATCH] fix(penilai): perbaikan output resume,memo dan update upload foto directory by nomor registrasi --- app/Http/Controllers/PenilaiController.php | 7 +- app/Http/Controllers/SurveyorController.php | 73 ++--- app/Http/Requests/FormSurveyorRequest.php | 1 + .../views/penilai/components/memo.blade.php | 2 +- .../penilai/components/print-memo.blade.php | 178 ++++++------ .../penilai/components/print-resume.blade.php | 260 +++++++++++++----- .../views/penilai/components/resume.blade.php | 167 ++++++----- resources/views/penilai/show.blade.php | 10 +- .../views/surveyor/components/denah.blade.php | 3 +- .../views/surveyor/components/foto.blade.php | 2 +- .../surveyor/components/inspeksi.blade.php | 4 +- resources/views/surveyor/js/utils.blade.php | 4 +- 12 files changed, 440 insertions(+), 271 deletions(-) diff --git a/app/Http/Controllers/PenilaiController.php b/app/Http/Controllers/PenilaiController.php index 0d21aed..f49e8cd 100644 --- a/app/Http/Controllers/PenilaiController.php +++ b/app/Http/Controllers/PenilaiController.php @@ -151,6 +151,7 @@ class PenilaiController extends Controller $jaminanId = $request->query('jaminanId'); $permohonan = $this->surveyorController->getPermohonanJaminanId($permohonanId, $documentId, $jaminanId); + $nomorLaporan = $this->generateNoLaporan($permohonan, $documentId, 'resume'); $inspeksi = Inspeksi::where('permohonan_id', $permohonanId)->where('dokument_id', $documentId)->first(); $noLpresume = $this->generateNoLaporan($permohonan, $documentId, 'resume'); Penilai::updateOrCreate( @@ -177,7 +178,7 @@ class PenilaiController extends Controller $forminspeksi = json_decode($inspeksi->data_form, true); } - return view('lpj::penilai.components.resume', compact('permohonan', 'resumeData', 'forminspeksi')); + return view('lpj::penilai.components.resume', compact('permohonan', 'resumeData', 'forminspeksi', 'nomorLaporan')); } public function memo(Request $request) @@ -932,9 +933,7 @@ class PenilaiController extends Controller 'tanggalLaporan', 'rap' )); - // return $pdf; - $cleanNomorLaporan = str_replace(['/', '\\'], '-', $nomorLaporan); $pdf->setPaper('A4', 'portrait'); return $pdf->download('Laporan_'. $tipeLaporan . '_' .$permohonan->debiture->name . '_' . $cleanNomorLaporan .'_data.pdf'); @@ -1055,7 +1054,7 @@ class PenilaiController extends Controller if ($laporan) { $nomorArray = explode('/', $laporan->nomor_laporan); - $nomorArray[2] = $typeMapping[$type] ?? 'RSM'; + $nomorArray[2] = $typeMapping[$type] ?? 'RES'; $laporan->update([ 'nomor_laporan' => implode('/', $nomorArray) ]); diff --git a/app/Http/Controllers/SurveyorController.php b/app/Http/Controllers/SurveyorController.php index 2576e2b..7608a34 100644 --- a/app/Http/Controllers/SurveyorController.php +++ b/app/Http/Controllers/SurveyorController.php @@ -253,7 +253,8 @@ class SurveyorController extends Controller 'nama_denah.*' => 'nullable|string|max:255', 'luas_denah.*' => 'nullable|numeric', 'permohonan_id' => 'required|exists:permohonan,id', - 'dokument_id' => 'required' + 'dokument_id' => 'required', + 'nomor_registrasi' => 'required' ]); if ($validator) { try { @@ -276,7 +277,7 @@ class SurveyorController extends Controller if ($request->hasFile('foto_denah') && isset($request->file('foto_denah')[$index])) { $file = $request->file('foto_denah')[$index]; - $denahItem['foto_denah'] = $this->uploadFile($file, 'foto_denah'); + $denahItem['foto_denah'] = $this->uploadFile($file, $request->nomor_registrasi); } elseif (isset($existingDenahs[$index]['foto_denah'])) { $denahItem['foto_denah'] = $existingDenahs[$index]['foto_denah']; } @@ -381,7 +382,7 @@ class SurveyorController extends Controller } // Upload dan simpan file baru - $formatFotojson[$file] = $this->uploadFile($request->file($file), $file); + $formatFotojson[$file] = $this->uploadFile($request->file($file), $request->nomor_registrasi); } } @@ -448,12 +449,13 @@ class SurveyorController extends Controller continue; // Lewati file yang tidak valid } + // Generate nama file unik $uniqueFileName = 'lantai_unit_' . $lantaiNomor . '_' . $fileIndex . '_' . Str::random(10) . '.' . $file->getClientOriginalExtension(); // Simpan file dengan nama asli $path = $file->storeAs( - 'surveyor/lantai_unit', + 'surveyor/' . $request->nomor_registrasi . '/foto_lantai_unit', $uniqueFileName . '/' . time() . '_' . $file->getClientOriginalName(), 'public' ); @@ -490,12 +492,13 @@ class SurveyorController extends Controller $formatFotoData = []; foreach ($files as $index => $file) { - $timestamp = time(); - $originalName = $file->getClientOriginalName(); - $uniqueFileName = "{$timestamp}_{$originalName}"; + + $fileExtension = $file->extension(); + $originalName = time() . '_' . $request->nomor_registrasi . '.' . $fileExtension; + // Simpan file - $path = $file->storeAs("surveyor/{$paramName}", $uniqueFileName, 'public'); + $path = $file->storeAs("surveyor/{$request->nomor_registrasi}", $originalName, 'public'); $fotoData = [ 'path' => $path, @@ -653,7 +656,7 @@ class SurveyorController extends Controller // Buat entri baru untuk file yang diunggah $newPhotoEntry = [ $nameField => $newNames[$key], - $photoField => $this->uploadFile($file, $photoField . '.' . $key), + $photoField => $this->uploadFile($file, $request->nomor_registrasi), $descriptionField => $newDescriptions[$key] ?? '', ]; @@ -777,7 +780,7 @@ class SurveyorController extends Controller // Create new photo entry $newPhotoEntry = [ $nameField => $newNames[$key] ?? '', // Use new name if provided - $photoField => $this->uploadFile($file, $photoField . '.' . $key) + $photoField => $this->uploadFile($file, $request->nomor_registrasi) ]; // Add description if field exists @@ -959,11 +962,11 @@ class SurveyorController extends Controller $id = $request->input('id'); $penilaian = Penilaian::findOrFail($id); - if ($validate['waktu_penilaian'] <= $penilaian->tanggal_kunjungan) { - return redirect() - ->route('surveyor.index') - ->with('error', 'Waktu penilaian harus lebih besar dari tanggal assign.'); - } + if ($validate['waktu_penilaian'] <= $penilaian->tanggal_kunjungan) { + return redirect() + ->route('surveyor.index') + ->with('error', 'Waktu penilaian harus lebih besar dari tanggal assign.'); + } $penilaian->update([ 'waktu_penilaian' => $validate['waktu_penilaian'], 'deskripsi_penilaian' => $validate['deskripsi_penilaian'], @@ -1017,25 +1020,25 @@ class SurveyorController extends Controller { try { - $permohonan = Permohonan::findOrFail($id); + $permohonan = Permohonan::findOrFail($id); - $permohonan->update([ - 'status' => 'request-freeze', - 'keterangan' => $request->message - ]); + $permohonan->update([ + 'status' => 'request-freeze', + 'keterangan' => $request->message + ]); - return response()->json([ - 'success' => true, - 'message' => 'Berhasil Kirim permintaan Request Freeaze ke So' - ], 200); + return response()->json([ + 'success' => true, + 'message' => 'Berhasil Kirim permintaan Request Freeaze ke So' + ], 200); - } catch (\Exception $e) { - return response()->json([ - 'success' => false, - 'message' => 'Terjadi kesalahan', - 'error' => $e->getMessage() - ], 500); - } + } catch (\Exception $e) { + return response()->json([ + 'success' => false, + 'message' => 'Terjadi kesalahan', + 'error' => $e->getMessage() + ], 500); + } } @@ -2615,8 +2618,9 @@ class SurveyorController extends Controller if ($request->hasFile($fileKey)) { $file = $request->file($fileKey); if ($file->isValid()) { - $fileName = time() . '_' . $file->getClientOriginalName(); - $path = $file->storeAs("public/surveyor/{$request->type}", $fileName); + $fileExtension = $file->extension(); + $fileName = time() . '_' . $request->nomor_registrasi . '.' . $fileExtension; + $path = $file->storeAs("public/surveyor/{$request->nomor_registrasi}", $fileName); if ($path === false) { throw new Exception("Failed to store file for {$fileKey}"); @@ -3091,7 +3095,8 @@ class SurveyorController extends Controller throw new Exception("Invalid file upload for {$type}"); } - $fileName = time() . '_' . $file->getClientOriginalName(); + $fileExtension = $file->extension(); + $fileName = time() . '_' . $type . '.' . $fileExtension; $path = $file->storeAs("public/surveyor/{$type}", $fileName); if ($path === false) { diff --git a/app/Http/Requests/FormSurveyorRequest.php b/app/Http/Requests/FormSurveyorRequest.php index 5378464..78eb0a9 100644 --- a/app/Http/Requests/FormSurveyorRequest.php +++ b/app/Http/Requests/FormSurveyorRequest.php @@ -568,6 +568,7 @@ class FormSurveyorRequest extends FormRequest return [ 'permohonan_id' => 'required', 'type' => 'required', + 'nomor_registrasi' => 'required', 'debitur_perwakilan' => 'required|array', 'jenis_asset_name' => 'nullable|', 'jenis_asset' => 'required', diff --git a/resources/views/penilai/components/memo.blade.php b/resources/views/penilai/components/memo.blade.php index 841a46b..8efea0a 100644 --- a/resources/views/penilai/components/memo.blade.php +++ b/resources/views/penilai/components/memo.blade.php @@ -358,7 +358,7 @@ confirmButtonText: 'OK' }).then((response) => { if (response.isConfirmed) { - window.location.reload(); + // window.location.reload(); } }); } else { diff --git a/resources/views/penilai/components/print-memo.blade.php b/resources/views/penilai/components/print-memo.blade.php index 552b475..a77cc4e 100644 --- a/resources/views/penilai/components/print-memo.blade.php +++ b/resources/views/penilai/components/print-memo.blade.php @@ -108,6 +108,34 @@ + @php + $data = ''; + foreach ($permohonan->debiture->documents as $dokumen) { + $data .= $dokumen->jenisJaminan->name . ', '; + + $penilai = $permohonan->penilaian->userPenilai->where('role', 'penilai')->first(); + $surveyor = $permohonan->penilaian->userPenilai->where('role', 'surveyor')->first(); + $teams = $permohonan->region->teams; + + if ($teams) { + foreach ($teams as $team) { + $team_users = $team->teamsUsers; + // print_r($team_users); + if ($team_users) { + foreach ($team_users as $team_user) { + $user = $team_user->user; + + if ($user && $user->hasRole('senior-officer')) { + $senior_officer = $user; + break 3; + } + } + } + } + } + } + $data = rtrim($data, ', '); + @endphp