diff --git a/app/Http/Controllers/PenilaiController.php b/app/Http/Controllers/PenilaiController.php index c7000fc..75863a0 100644 --- a/app/Http/Controllers/PenilaiController.php +++ b/app/Http/Controllers/PenilaiController.php @@ -268,7 +268,7 @@ class PenilaiController extends Controller ); $resume = Penilai::where('permohonan_id', $permohonanId)->where('dokument_id', $documentId)->first(); - + $lpjData = null; $rap = null; $forminspeksi= null; @@ -729,7 +729,8 @@ class PenilaiController extends Controller if ($lpj) { $lpjData = json_decode($lpj->lpj, true); - $memo = json_decode($lpj->memoe, true); + $memo = json_decode($lpj->memo, true); + $resumeData = json_decode($lpj->resume, true); } $inputAddress = $forminspeksi['asset']['alamat']['sesuai'] ?? $forminspeksi['asset']['alamat']['tidak sesuai']; @@ -757,7 +758,9 @@ class PenilaiController extends Controller 'statusLpj', 'alamat', 'dataPembanding', - 'nomorLaporan' + 'nomorLaporan', + 'memo', + 'resumeData' )); $pdf->setPaper('A4', 'portrait'); @@ -776,9 +779,11 @@ class PenilaiController extends Controller 'alamat', 'dataPembanding', 'nomorLaporan', - 'memo' + 'memo', + 'resumeData' )); + // return $pdf; $pdf->setPaper('A4', 'portrait'); return $pdf->download('Laporan_'. $tipeLaporan . '_' . $permohonan->nomor_registrasi . '_' .$permohonan->debiture->name .'_data.pdf'); } @@ -864,24 +869,24 @@ class PenilaiController extends Controller $permohonanId = $request->query('permohonanId'); $documentId = $request->query('documentId'); $inspeksiId = $request->query('inspeksiId'); - + // Ambil data berdasarkan ID $statusLpj = Penilai::where('permohonan_id', $permohonanId) ->where('dokument_id', $documentId) ->where('inspeksi_id', $inspeksiId) ->first(); - + // Jika data tidak ditemukan, kembalikan status null if (!$statusLpj) { - return response()->json(['status' => null]); + return response()->json(['status' => null]); } - + // Tentukan tipe berdasarkan kondisi $type = $statusLpj->type_penilai ?? null; - + // Kembalikan respons dengan tipe yang sesuai return response()->json(['status' => $type]); } - - + + } diff --git a/app/Http/Controllers/PenilaianController.php b/app/Http/Controllers/PenilaianController.php index fa72da2..17b58f5 100644 --- a/app/Http/Controllers/PenilaianController.php +++ b/app/Http/Controllers/PenilaianController.php @@ -649,15 +649,22 @@ class PenilaianController extends Controller if ($lpj) { $lpjData = json_decode($lpj->lpj, true); + $resumeData = json_decode($lpj->resume, true); + $memo = json_decode($lpj->memo, true); + $rap = json_decode($lpj->rap, true); } - + + if (empty($lpj->type_penilai)) { + return redirect()->back()->with('error', 'Masih diproses'); + } + $viewLaporan = $this->getViewLaporan($lpj->type_penilai); if (empty($viewLaporan)) { return redirect()->back()->with('error', 'Laporan belum dibuat'); } - - return view('lpj::'. $viewLaporan, compact('permohonan', 'forminspeksi', 'basicData', 'inspeksi', 'lpjData', 'provinces')); + + return view('lpj::'. $viewLaporan, compact('permohonan', 'forminspeksi', 'basicData', 'inspeksi', 'lpjData', 'provinces','resumeData', 'rap','memo')); } private function getViewLaporan($tipe) diff --git a/app/Http/Controllers/SurveyorController.php b/app/Http/Controllers/SurveyorController.php index 69be313..31cc894 100644 --- a/app/Http/Controllers/SurveyorController.php +++ b/app/Http/Controllers/SurveyorController.php @@ -909,8 +909,8 @@ class SurveyorController extends Controller $jenisJaminan = $inspeksi->dokument->jenisJaminan->name ?? ''; $isTanahBangunan = !in_array( - strtoupper($jenisJaminan->name ?? ''), - ['KAPAL', 'PESAWAT', 'KENDARAAN', 'ALAT BERAT'] + strtoupper($jenisJaminan ?? ''), + ['KAPAL', 'PESAWAT', 'KENDARAAN', 'ALAT BERAT', 'MESIN'] ); $isInvalid = @@ -968,7 +968,9 @@ class SurveyorController extends Controller ->route('surveyor.index') ->with('success', 'Jadwal berhasil dibuat.'); } catch (\Exception $e) { - return response()->json(['buttonDisable' => $e->getMessage()]); + return redirect() + ->route('surveyor.index') + ->with('error', 'Tanggal dan catatan tidak boleh kosong'); } } @@ -1052,6 +1054,19 @@ class SurveyorController extends Controller private function formatSinglePembanding($request, $index) { + $tanahBangunanTypes = ['KAPAL', 'PESAWAT', 'KENDARAAN', 'ALAT BERAT', 'MESIN']; + + if (isset($request->action) && + in_array(strtoupper($request->action), array_map('strtoupper', $tanahBangunanTypes))) { + $fields = [ + 'address', 'village_code', 'district_code', 'city_code', 'province_code', + 'nama', 'type','warna','lokasi', 'total', 'diskon', 'harga_diskon', + 'sumber_data', 'harga', 'tahun','transmisi','telepon', + 'kordinat_lat', 'kordinat_lng', 'tahun_pembuatan','merek_buatan','kapasitas','power','kondisi' + ]; + + + }else{ $fields = [ 'address', 'village_code', 'district_code', 'city_code', 'province_code', 'tahun', 'luas_tanah', 'luas_bangunan', 'tahun_bangunan', @@ -1059,6 +1074,7 @@ class SurveyorController extends Controller 'peruntukan', 'penawaran', 'telepon','hak_properti', 'kordinat_lat', 'kordinat_lng', 'jenis_aset','foto_objek' ]; + } $pembanding = []; foreach ($fields as $field) { @@ -1252,6 +1268,104 @@ class SurveyorController extends Controller return $objekPenilaian; } + private function formatObjekPenilaiankendaraan($request) + { + $fields = [ + 'address', 'village_code', 'district_code', 'city_code', 'province_code', + 'nama', 'type','warna','lokasi', 'total', 'diskon', 'harga_diskon', + 'sumber_data', 'harga', 'tahun','transmisi','telepon', + 'kordinat_lat', 'kordinat_lng', 'tahun_pembuatan','merek_buatan','kapasitas','power','kondisi' + ]; + + $inspeksi = Inspeksi::where('permohonan_id', $request->input('permohonan_id')) + ->where('dokument_id', $request->input('dokument_id')) + ->first(); + + if ($inspeksi) { + $needsSave = false; + + // Handle foto_form + $fotoForm = json_decode($inspeksi->foto_form, true) ?: []; + if (!isset($fotoForm['object_jaminan'])) { + $fotoForm['object_jaminan'] = [['foto_objek' => null]]; + $needsSave = true; + } + + // Handle data_form + $dataForm = json_decode($inspeksi->data_form, true) ?: []; + + + // Update data dengan mempertahankan struktur sesuai/tidak sesuai + foreach ($fields as $field) { + if ($request->filled($field)) { + $newValue = $request->input($field); + + // Fields untuk alamat dalam asset + if (in_array($field, ['address', 'village_code', 'district_code', 'city_code', 'province_code'])) { + + if (!isset($dataForm['alamat'])) { + $dataForm['alamat'] = []; + } + + $alamatStatus = $dataForm['alamat'] == 'sesuai' ? 'sesuai' : 'tidak sesuai'; + if (!isset($dataForm['alamat'][$alamatStatus])) { + $dataForm['alamat'][$alamatStatus] = []; + } + + $dataForm['alamat'][$alamatStatus][$field] = $newValue; + } + else { + if (!isset($dataForm[$field])) { + $dataForm[$field] = []; + } + $dataForm[$field] = $newValue; + } + + + $needsSave = true; + } + } + + if ($needsSave) { + $inspeksi->foto_form = json_encode($fotoForm); + $inspeksi->data_form = json_encode($dataForm); + $inspeksi->save(); + } + + $existingFoto = $fotoForm['object_jaminan'][0]['foto_objek'] ?? null; + + // Gabungkan data dari tanah, bangunan, dan asset + $objekPenilaian = array_merge( + ['foto_objek' => $existingFoto], + array_reduce($fields, function ($carry, $field) use ($request, $dataForm) { + if (isset($dataForm[$field])) { + if (is_array($dataForm[$field])) { + if (isset($dataForm[$field]['sesuai'])) { + $carry[$field] = $dataForm[$field]['sesuai']; + } elseif (isset($dataForm[$field]['tidak sesuai'])) { + $carry[$field] = $dataForm[$field]['tidak sesuai']; + } + } else { + $carry[$field] = $dataForm[$field]; + } + } else { + $carry[$field] = $request->input($field); + } + return $carry; + }, []) + ); + + } else { + // Inisialisasi data baru + $objekPenilaian = array_reduce($fields, function ($carry, $field) use ($request) { + $carry[$field] = $request->input($field); + return $carry; + }, ['foto_objek' => null]); + } + + return $objekPenilaian; + } + private function saveInspeksi($formattedData) @@ -1283,7 +1397,15 @@ class SurveyorController extends Controller 'foto_objek_pembanding.*' => 'nullable|image|max:'.$maxSize, ]); - $objekPenilaian = $this->formatObjekPenilaian($request); + $tanahBangunanTypes = ['KAPAL', 'PESAWAT', 'KENDARAAN', 'ALAT BERAT', 'MESIN']; + + if (isset($request->action) && + in_array(strtoupper($request->action), array_map('strtoupper', $tanahBangunanTypes))) { + + $objekPenilaian = $this->formatObjekPenilaiankendaraan($request); + }else{ + $objekPenilaian = $this->formatObjekPenilaian($request); + } if ($request->hasFile('foto_objek')) { $newFoto = $this->handleupdateOrDeleteFile( $request->file('foto_objek'), @@ -1583,16 +1705,21 @@ class SurveyorController extends Controller public function getCodeAlamat($code, $inspectionData) { - $cekAlamat = isset( - $inspectionData['asset']['alamat']['sesuai'], - ) - ? 'sesuai' - : 'tidak sesuai'; - $selectedProvince = - $inspectionData['asset']['alamat'][$cekAlamat][ - $code - ] ?? null; - return $selectedProvince; + + $tanahBangunanTypes = ['KAPAL', 'PESAWAT', 'KENDARAAN', 'ALAT BERAT', 'MESIN']; + + if (isset($inspectionData['action']) && + in_array(strtoupper($inspectionData['action']), array_map('strtoupper', $tanahBangunanTypes))) { + return $selectedProvince = $inspectionData['alamat']['sesuai'][$code] ?? null; + } + + if (isset($inspectionData['asset'])) { + $cekAlamat = isset($inspectionData['asset']['alamat']['sesuai']) ? 'sesuai' : 'tidak sesuai'; + $selectedProvince = $inspectionData['asset']['alamat'][$cekAlamat][$code] ?? null; + return $selectedProvince; + } + return null; + } diff --git a/resources/views/penilai/components/memo.blade.php b/resources/views/penilai/components/memo.blade.php index b290706..3a0338e 100644 --- a/resources/views/penilai/components/memo.blade.php +++ b/resources/views/penilai/components/memo.blade.php @@ -264,196 +264,7 @@ - -
No route information available.
- @endif -