From eaffe2805f796b9fce8ff07bb170f2ca8329aa31 Mon Sep 17 00:00:00 2001 From: majid Date: Wed, 18 Dec 2024 11:05:25 +0700 Subject: [PATCH 1/3] perbaikan tampilan basic data (batas batas, saran pelengkap, dan fasilitas dekat objek) --- app/Http/Controllers/SurveyorController.php | 183 ++++++++++-------- .../surveyor/components/bangunan.blade.php | 23 +-- .../views/surveyor/components/fakta.blade.php | 32 ++- .../surveyor/components/lingkungan.blade.php | 36 ++-- 4 files changed, 141 insertions(+), 133 deletions(-) diff --git a/app/Http/Controllers/SurveyorController.php b/app/Http/Controllers/SurveyorController.php index 445e095..da3ceb5 100644 --- a/app/Http/Controllers/SurveyorController.php +++ b/app/Http/Controllers/SurveyorController.php @@ -102,6 +102,7 @@ class SurveyorController extends Controller 'tujuanPenilaian', 'penilaian', 'documents.jenisJaminan', + 'documents', ])->findOrFail($id); $surveyor = $id; @@ -112,7 +113,7 @@ class SurveyorController extends Controller // Get all inspeksi data for this permohonan $inspeksiData = Inspeksi::where('permohonan_id', $id) ->get() - ->keyBy('jenis_jaminan_id') + ->keyBy('dokument_id') ->map(function ($item) { return [ 'data_form' => json_decode($item->data_form, true), @@ -153,7 +154,7 @@ class SurveyorController extends Controller $inspeksi = Inspeksi::updateOrCreate( [ 'permohonan_id' => $request->input('permohonan_id'), - 'jenis_jaminan_id' => $request->input('jenis_jaminan_id') + 'dokument_id' => $request->input('dokument_id') ], [ 'data_form' => json_encode($processedData), @@ -164,6 +165,7 @@ class SurveyorController extends Controller return response()->json([ 'success' => true, 'message' => 'Data berhasil disimpan', + 'data' => $processedData ], 200); } catch (\Exception $e) { @@ -195,7 +197,7 @@ class SurveyorController extends Controller $pisah = array_filter( explode(',', $action), - function($act) use ($allowedActions) { + function ($act) use ($allowedActions) { return isset($allowedActions[trim($act)]); } ); @@ -227,7 +229,7 @@ class SurveyorController extends Controller $validationRules = [ 'luas' => 'required|numeric', 'permohonan_id' => 'required', - 'jenis_jaminan_id' => 'required' + 'dokument_id' => 'required' ]; if ($request->hasFile('foto_denah')) { @@ -247,7 +249,7 @@ class SurveyorController extends Controller $inspeksi = Inspeksi::where('permohonan_id', $request->input('permohonan_id')) - ->where('jenis_jaminan_id', $request->input('jenis_jaminan_id')) + ->where('dokument_id', $request->input('dokument_id')) ->first(); if ($inspeksi) { @@ -261,7 +263,7 @@ class SurveyorController extends Controller } else { Inspeksi::create([ 'permohonan_id' => $request->input('permohonan_id'), - 'jenis_jaminan_id' => $request->input('jenis_jaminan_id'), + 'dokument_id' => $request->input('dokument_id'), 'denah_form' => json_encode($formatJsonDenah) ]); } @@ -293,7 +295,7 @@ class SurveyorController extends Controller $inspeksi = Inspeksi::firstOrNew([ 'permohonan_id' => $request->input('permohonan_id'), - 'jenis_jaminan_id' => $request->input('jenis_jaminan_id') + 'dokument_id' => $request->input('dokument_id') ]); // Get existing foto_form data if it exists @@ -398,24 +400,24 @@ class SurveyorController extends Controller $maxSize = getMaxFileSize('Foto'); return $request->validate([ 'permohonan_id' => 'required', - 'jenis_jaminan_id' => 'required', - 'pendamping' => 'nullable|image|mimes:jpeg,png,jpg,gif,svg|max:'. $maxSize, - 'foto_objek.*' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:'. $maxSize, + 'dokument_id' => 'required', + 'pendamping' => 'nullable|image|mimes:jpeg,png,jpg,gif,svg,webp,bmp,tiff,heic,heif|max:'. $maxSize, + 'foto_objek.*' => 'required|image|mimes:jpeg,png,jpg,gif,svg,webp,bmp,tiff,heic,heif|max:'. $maxSize, 'name_objek.*' => 'required|string|max:255', - 'foto_lingkungan.*' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:'. $maxSize, + 'foto_lingkungan.*' => 'required|image|mimes:jpeg,png,jpg,gif,svg,webp,bmp,tiff,heic,heif|max:'. $maxSize, 'name_lingkungan.*' => 'required|string|max:255', - 'foto_rute.*' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:'. $maxSize, + 'foto_rute.*' => 'required|image|mimes:jpeg,png,jpg,gif,svg,webp,bmp,tiff,heic,heif|max:'. $maxSize, 'name_rute.*' => 'required|string|max:255', - 'lantai.*' => 'nullable|image|mimes:jpeg,png,jpg,gif,svg|max:'. $maxSize, + 'lantai.*' => 'nullable|image|mimes:jpeg,png,jpg,gif,svg,webp,bmp,tiff,heic,heif|max:'. $maxSize, 'name_lantai_unit.*' => 'nullable|string|max:255', - 'foto_lantai_unit.*' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:'. $maxSize, + 'foto_lantai_unit.*' => 'required|image|mimes:jpeg,png,jpg,gif,svg,webp,bmp,tiff,heic,heif|max:'. $maxSize, 'name_rute_lainnya.*' => 'nullable|string', - 'foto_rute_lainnya.*' => 'nullable|image|mimes:jpeg,png,jpg,gif,svg|max:'. $maxSize, - 'foto_lantai_lainnya.*' => 'nullable|image|mimes:jpeg,png,jpg,gif,svg|max:'. $maxSize, + 'foto_rute_lainnya.*' => 'nullable|image|mimes:jpeg,png,jpg,gif,svg,webp,bmp,tiff,heic,heif|max:'. $maxSize, + 'foto_lantai_lainnya.*' => 'nullable|image|mimes:jpeg,png,jpg,gif,svg,webp,bmp,tiff,heic,heif|max:'. $maxSize, 'name_lantai_lainnya.*' => 'nullable|string|max:255', - 'foto_basement.*' => 'nullable|image|mimes:jpeg,png,jpg,gif,svg|max:'. $maxSize, + 'foto_basement.*' => 'nullable|image|mimes:jpeg,png,jpg,gif,svg,webp,bmp,tiff,heic,heif|max:'. $maxSize, 'name_basement.*' => 'nullable|string|max:255', - 'foto_gerbang' => 'nullable|image|mimes:jpeg,png,jpg,gif,svg|max:'. $maxSize, + 'foto_gerbang' => 'nullable|image|mimes:jpeg,png,jpg,gif,svg,webp,bmp,tiff,heic,heif|max:'. $maxSize, 'name_gerbang' => 'nullable|string|max:255', ]); } @@ -557,7 +559,7 @@ class SurveyorController extends Controller ]); $data['status'] = 'success'; - $data['message']= 'Jadwal '.$request->noReg.' berhasil di aprove'; + $data['message'] = 'Jadwal '.$request->noReg.' berhasil di aprove'; } catch (\Exception $e) { $data['status'] = 'error'; $data['message'] = 'Gagal membuat jadwal: ' . $e->getMessage(); @@ -585,9 +587,9 @@ class SurveyorController extends Controller $fotoPembanding = $request->file('foto_objek_pembanding') ?? []; $existingData = null; - if ($request->has('permohonan_id') && $request->has('jenis_jaminan_id')) { + if ($request->has('permohonan_id') && $request->has('dokument_id')) { $inspeksi = Inspeksi::where('permohonan_id', $request->input('permohonan_id')) - ->where('jenis_jaminan_id', $request->input('jenis_jaminan_id')) + ->where('dokument_id', $request->input('dokument_id')) ->first(); if ($inspeksi) { @@ -682,7 +684,7 @@ class SurveyorController extends Controller ]; $inspeksi = Inspeksi::where('permohonan_id', $request->input('permohonan_id')) - ->where('jenis_jaminan_id', $request->input('jenis_jaminan_id')) + ->where('dokument_id', $request->input('dokument_id')) ->first(); if ($inspeksi) { @@ -699,12 +701,12 @@ class SurveyorController extends Controller $dataForm = json_decode($inspeksi->data_form, true) ?: []; // Inisialisasi struktur data jika belum ada - if(!isset($dataForm['bangunan'])) { + if (!isset($dataForm['bangunan'])) { $dataForm['bangunan'] = []; $needsSave = true; } - if(!isset($dataForm['tanah'])) { + if (!isset($dataForm['tanah'])) { $dataForm['tanah'] = []; $needsSave = true; } @@ -725,13 +727,13 @@ class SurveyorController extends Controller $dataForm['tanah'][$field][$cekLuas] = $newValue; } // Fields untuk bangunan - else if (in_array($field, ['luas_tanah_bagunan'])) { + elseif (in_array($field, ['luas_tanah_bagunan'])) { $cekBanguan = $dataForm['bangunan']['luas_tanah_bagunan'] == 'sesuai' ? 'sesuai' : 'tidak sesuai'; $dataForm['bangunan'][$field][$cekBanguan] = $newValue; } // Fields untuk alamat dalam asset - else if (in_array($field, ['address', 'village_code', 'district_code', 'city_code', 'province_code'])) { + elseif (in_array($field, ['address', 'village_code', 'district_code', 'city_code', 'province_code'])) { if (!isset($dataForm['asset']['alamat'])) { $dataForm['asset']['alamat'] = []; @@ -745,7 +747,7 @@ class SurveyorController extends Controller $dataForm['asset']['alamat'][$alamatStatus][$field] = $newValue; } // Jenis asset dalam asset - else if ($field === 'jenis_asset') { + elseif ($field === 'jenis_asset') { $assetStatus = $request->input('asset_status', 'sesuai'); $dataForm['asset']['jenis_asset'] = [ $assetStatus => $newValue @@ -809,7 +811,7 @@ class SurveyorController extends Controller $inspeksi = Inspeksi::updateOrCreate( [ 'permohonan_id' => $formattedData['permohonan_id'], - 'jenis_jaminan_id' => $formattedData['jenis_jaminan_id'] + 'dokument_id' => $formattedData['dokument_id'] ], [ 'data_pembanding' => json_encode($formattedData), @@ -828,7 +830,7 @@ class SurveyorController extends Controller $validator = $request->validate([ 'permohonan_id' => 'required|exists:permohonan,id', 'type' => 'required|string', - 'jenis_jaminan_id' => 'required', + 'dokument_id' => 'required', 'foto_objek' => 'nullable|image|max:'.$maxSize, 'foto_objek_pembanding.*' => 'nullable|image|max:'.$maxSize, ]); @@ -843,7 +845,7 @@ class SurveyorController extends Controller // Update foto_form $inspeksi = Inspeksi::where('permohonan_id', $request->input('permohonan_id')) - ->where('jenis_jaminan_id', $request->input('jenis_jaminan_id')) + ->where('dokument_id', $request->input('dokument_id')) ->first(); if ($inspeksi) { @@ -868,7 +870,7 @@ class SurveyorController extends Controller $formattedData = [ 'permohonan_id' => $request->input('permohonan_id'), 'type' => $request->input('type'), - 'jenis_jaminan_id' => $request->input('jenis_jaminan_id'), + 'dokument_id' => $request->input('dokument_id'), 'objek_penilaian' => $objekPenilaian, 'data_pembanding' => $this->formatDataPembanding($request) ]; @@ -899,9 +901,21 @@ class SurveyorController extends Controller * Form inspeksi. */ - public function formInspeksi($id, $jaminanId) + public function formInspeksi(Request $request, $id) { - $permohonan = $this->getPermohonanJaminanId($id, $jaminanId); + + $validated = $request->validate([ + 'form' => 'required|in:create-inspeksi', + 'inspeksi' => 'required|exists:permohonan,id', + 'dokument' => 'required', + 'jenisjaminan' => 'required' + ]); + + $dokumentId = $validated['dokument']; + $jaminanId = $validated['jenisjaminan']; + + $permohonan = $this->getPermohonanJaminanId($id, $dokumentId, $jaminanId); + $link_url_region = Teams::with('regions', 'teamsUsers') ->whereHas('teamsUsers', function ($query) { $query->where('user_id', Auth::user()->id); @@ -915,7 +929,7 @@ class SurveyorController extends Controller $surveyor = $id; $basicData = $this->getCommonData(); - $inpeksi = Inspeksi::where('permohonan_id', $id)->where('jenis_jaminan_id', $jaminanId)->first(); + $inpeksi = Inspeksi::where('permohonan_id', $id)->where('dokument_id', $dokumentId)->first(); $forminspeksi = null; if ($inpeksi) { $forminspeksi = json_decode($inpeksi->data_form, true); @@ -962,13 +976,23 @@ class SurveyorController extends Controller * Denah. */ - public function denah($id, $jaminanId) + public function denah(Request $request, $id) { - $permohonan = $this->getPermohonanJaminanId($id, $jaminanId); + $validated = $request->validate([ + 'form' => 'required|in:create-denah', + 'denah' => 'required|exists:permohonan,id', + 'dokument' => 'required', + 'jenisjaminan' => 'required' + ]); + + $dokumentId = $validated['dokument']; + $jaminanId = $validated['jenisjaminan']; + + $permohonan = $this->getPermohonanJaminanId($id, $dokumentId, $jaminanId); $denah = null; - $inpeksi = Inspeksi::where('permohonan_id', $id)->where('jenis_jaminan_id', $jaminanId)->first(); + $inpeksi = Inspeksi::where('permohonan_id', $id)->where('dokument_id', $dokumentId)->first(); $formDenah = null; if ($inpeksi) { $formDenah = json_decode($inpeksi->denah_form, true); @@ -982,14 +1006,25 @@ class SurveyorController extends Controller * Foto. */ - public function foto($id, $jaminanId) + public function foto(Request $request, $id) { - $permohonan = $this->getPermohonanJaminanId($id, $jaminanId); + $validated = $request->validate([ + 'form' => 'required|in:create-foto', + 'foto' => 'required|exists:permohonan,id', + 'dokument' => 'required', + 'jenisjaminan' => 'required' + ]); + + $dokumentId = $validated['dokument']; + $jaminanId = $validated['jenisjaminan']; + + $permohonan = $this->getPermohonanJaminanId($id, $dokumentId, $jaminanId); + $surveyor = $id; $branches = Branch::all(); $provinces = Province::all(); - $inpeksi = Inspeksi::where('permohonan_id', $id)->where('jenis_jaminan_id', $jaminanId)->first(); + $inpeksi = Inspeksi::where('permohonan_id', $id)->where('dokument_id', $dokumentId)->first(); $formFoto = null; if ($inpeksi) { @@ -1003,25 +1038,28 @@ class SurveyorController extends Controller * Data pembanding. */ - public function dataPembanding($id, $jaminanId) + public function dataPembanding(Request $request, $id) { try { // Ambil data permohonan dengan eager loading - $permohonan = Permohonan::with([ - 'user', - 'debiture.province', - 'debiture.city', - 'debiture.district', - 'debiture.village', - 'branch', - 'tujuanPenilaian', - 'penilaian' - ])->findOrFail($id); + + $validated = $request->validate([ + 'form' => 'required|in:data-pembanding', + 'pembanding' => 'required|exists:permohonan,id', + 'dokument' => 'required', + 'jenisjaminan' => 'required' + ]); + + $dokumentId = $validated['dokument']; + $jaminanId = $validated['jenisjaminan']; + + $permohonan = $this->getPermohonanJaminanId($id, $dokumentId, $jaminanId); + // Ambil data inspeksi $inspeksi = Inspeksi::where([ 'permohonan_id' => $id, - 'jenis_jaminan_id' => $jaminanId + 'dokument_id' => $dokumentId ])->first(); // Inisialisasi variabel @@ -1496,7 +1534,7 @@ class SurveyorController extends Controller } - private function getPermohonanJaminanId($id, $jaminanId) + public function getPermohonanJaminanId($id, $dokumentId, $jaminanId) { return Permohonan::with([ 'user', @@ -1507,15 +1545,11 @@ class SurveyorController extends Controller 'branch', 'tujuanPenilaian', 'penilaian', - 'debiture.documents.jenisJaminan', - 'debiture.documents' => function ($query) use ($jaminanId) { - $query->where('jenis_jaminan_id', $jaminanId); + 'debiture.documents' => function ($query) use ($dokumentId, $jaminanId) { + $query->where('id', $dokumentId) + ->where('jenis_jaminan_id', $jaminanId); } - ]) - ->whereHas('debiture.documents', function ($query) use ($jaminanId) { - $query->where('jenis_jaminan_id', $jaminanId); - }) - ->findOrFail($id); + ])->findOrFail($id); } @@ -1763,10 +1797,8 @@ class SurveyorController extends Controller 'sifat_bangunan' => $data['sifat_bangunan'] ?? null, 'sifat_bangunan_input' => $data['sifat_bangunan_input'] ?? null, 'spesifikasi_bangunan' => $result ?? null, - 'sarana_pelengkap' => $this->mapArrayWithInputs( - $data['sarana_pelengkap'] ?? [], - $data['sarana_pelengkap_input'] ?? [] - ), + 'sarana_pelengkap' => $data['sarana_pelengkap'] ?? null, + 'sarana_pelengkap_input' => $data['sarana_pelengkap_input'] ?? null, ], ]; } @@ -1808,10 +1840,8 @@ class SurveyorController extends Controller 'jarak_tps' => $data['jarak_tps'] ?? null, 'nama_tps' => $data['nama_tps'] ?? null, 'merupakan_daerah' => $data['merupakan_daerah'] ?? null, - 'fasilitas_dekat_object' => $this->mapArrayWithInputs( - $data['fasilitas_dekat_object'] ?? [], - $data['fasilitas_dekat_object_input'] ?? [] - ), + 'fasilitas_dekat_object' => $data['fasilitas_dekat_object'] ?? null, + 'fasilitas_dekat_object_input' => $data['fasilitas_dekat_object_input'] ?? null, ] ]; } @@ -1823,10 +1853,8 @@ class SurveyorController extends Controller 'fakta_positif' => $data['fakta_positif'] ?? null, 'fakta_negatif' => $data['fakta_negatif'] ?? null, 'rute_menuju' => $data['rute_menuju'] ?? null, - 'batas_batas' => $this->mapArrayWithInputs( - $data['batas_batas'] ?? [], - $data['batas_batas_input'] ?? [] - ), + 'batas_batas' => $data['batas_batas'] ?? null, + 'batas_batas_input' => $data['batas_batas_input'] ?? null, 'kondisi_lingkungan' => $data['kondisi_lingkungan'] ?? null, 'kondisi_lain_bangunan' => $data['kondisi_lain_bangunan'] ?? null, 'informasi_dokument' => $data['informasi_dokument'] ?? null, @@ -1844,7 +1872,7 @@ class SurveyorController extends Controller ]; - $inspeksi = Inspeksi::where('permohonan_id', $request->input('permohonan_id'))->where('jenis_jaminan_id', $request->input('jenis_jaminan_id'))->first(); + $inspeksi = Inspeksi::where('permohonan_id', $request->input('permohonan_id'))->where('dokument_id', $request->input('dokument_id'))->first(); $fotoTypes = [ @@ -2306,8 +2334,10 @@ class SurveyorController extends Controller { $result = []; - foreach ($keys as $index => $key) { - $result[$key] = $values[$index] ?? null; + foreach ($keys as $key) { + // Jika checkbox dicentang, ambil nilai input yang sesuai + // Gunakan nilai dari $values berdasarkan nama checkbox + $result[$key] = $values[$key] ?? null; } return $result; @@ -2315,6 +2345,7 @@ class SurveyorController extends Controller + /** * Helper method generic untuk mengambil data field * diff --git a/resources/views/surveyor/components/bangunan.blade.php b/resources/views/surveyor/components/bangunan.blade.php index 6102d4f..501737a 100644 --- a/resources/views/surveyor/components/bangunan.blade.php +++ b/resources/views/surveyor/components/bangunan.blade.php @@ -258,33 +258,21 @@
- +
@if (isset($basicData['saranaPelengkap'])) @foreach ($basicData['saranaPelengkap'] as $item) - @php - $isChecked = false; - $inputValue = ''; - - if (isset($forminspeksi['bangunan']['sarana_pelengkap'])) { - foreach ($forminspeksi['bangunan']['sarana_pelengkap'] as $key => $value) { - if ($key === $item->name) { - $isChecked = true; - $inputValue = $value; - break; - } - } - } - @endphp
+ placeholder="Masukkan {{ $item->name }}..." + value="{{ old('sarana_pelengkap_input.' . $loop->index, $forminspeksi['bangunan']['sarana_pelengkap_input'][$loop->index] ?? '') }}">
@endforeach @endif @@ -293,6 +281,7 @@
+
diff --git a/resources/views/surveyor/components/fakta.blade.php b/resources/views/surveyor/components/fakta.blade.php index eff1fc9..5e4bb68 100644 --- a/resources/views/surveyor/components/fakta.blade.php +++ b/resources/views/surveyor/components/fakta.blade.php @@ -16,9 +16,9 @@
+ style="display: none;"> + +
@endforeach @else @@ -77,24 +77,20 @@
- +
@if (isset($basicData['arahMataAngin'])) @foreach ($basicData['arahMataAngin'] as $item) @php - $isChecked = false; - $inputValue = ''; - - if (isset($forminspeksi['fakta']['batas_batas'])) { - foreach ($forminspeksi['fakta']['batas_batas'] as $key => $value) { - if ($key === $item->name) { - $isChecked = true; - $inputValue = $value; - break; - } - } - } + $isChecked = in_array( + $item->name, + old('batas_batas', $forminspeksi['fakta']['batas_batas'] ?? []), + ); + $inputValue = old( + 'batas_batas_input.' . $item->name, + $forminspeksi['fakta']['batas_batas_input'][$item->name] ?? '', + ); @endphp
-
@endforeach diff --git a/resources/views/surveyor/components/lingkungan.blade.php b/resources/views/surveyor/components/lingkungan.blade.php index e320a50..f66e4fe 100644 --- a/resources/views/surveyor/components/lingkungan.blade.php +++ b/resources/views/surveyor/components/lingkungan.blade.php @@ -369,35 +369,27 @@ @if (isset($basicData['fasilitasObjek'])) @foreach ($basicData['fasilitasObjek'] as $item) @php - $isChecked = false; - $inputValue = ''; - - // Cek old input terlebih dahulu - if (old('fasilitas_dekat_object') && in_array($item->name, old('fasilitas_dekat_object'))) { - $isChecked = true; - $oldInputIndex = array_search($item->name, old('fasilitas_dekat_object')); - $inputValue = old('fasilitas_dekat_object_input')[$oldInputIndex] ?? ''; - } - elseif (isset($forminspeksi['lingkungan']['fasilitas_dekat_object'])) { - foreach ($forminspeksi['lingkungan']['fasilitas_dekat_object'] as $key => $value) { - if ($key === $item->name) { - $isChecked = true; - $inputValue = $value; - break; - } - } - } + $isChecked = in_array( + $item->name, + old( + 'fasilitas_dekat_object', + $forminspeksi['lingkungan']['fasilitas_dekat_object'] ?? [], + ), + ); + $inputValue = old( + 'fasilitas_dekat_object_input.' . $item->name, + $forminspeksi['lingkungan']['fasilitas_dekat_object_input'][$item->name] ?? '', + ); @endphp
-
@endforeach From 33acb29e5573f1d10594284d75f217d06ecb87e6 Mon Sep 17 00:00:00 2001 From: Daeng Deni Mardaeni Date: Wed, 18 Dec 2024 14:56:31 +0700 Subject: [PATCH 2/3] Update roles in module.json - Menghapus peran "pemohon-ao", "pemohon-eo", "surveyor", dan "senior-officer" dari beberapa entri. - Menambahkan peran "admin" untuk menggantikan peran yang dihapus dan mengkonsolidasikan akses. - Memperbaiki konsistensi peran untuk berbagai entitas dan atribut dalam file. --- module.json | 202 +++++++++++++++++++++++++++------------------------- 1 file changed, 103 insertions(+), 99 deletions(-) diff --git a/module.json b/module.json index e6530f2..54c85e1 100644 --- a/module.json +++ b/module.json @@ -364,10 +364,7 @@ "permission": "", "roles": [ "administrator", - "pemohon-ao", - "pemohon-eo", - "admin", - "surveyor" + "admin" ], "sub": [ { @@ -378,8 +375,7 @@ "permission": "", "roles": [ "administrator", - "pemohon-ao", - "pemohon-eo" + "admin" ] }, { @@ -390,8 +386,7 @@ "permission": "", "roles": [ "administrator", - "pemohon-ao", - "pemohon-eo" + "admin" ] }, { @@ -402,8 +397,7 @@ "permission": "", "roles": [ "administrator", - "pemohon-ao", - "pemohon-eo" + "admin" ] }, { @@ -414,8 +408,7 @@ "permission": "", "roles": [ "administrator", - "pemohon-ao", - "pemohon-eo" + "admin" ] }, { @@ -426,8 +419,7 @@ "permission": "", "roles": [ "administrator", - "pemohon-ao", - "pemohon-eo" + "admin" ] }, { @@ -438,8 +430,7 @@ "permission": "", "roles": [ "administrator", - "pemohon-ao", - "pemohon-eo" + "admin" ] }, { @@ -450,8 +441,7 @@ "permission": "", "roles": [ "administrator", - "pemohon-ao", - "pemohon-eo" + "admin" ] }, { @@ -462,8 +452,7 @@ "permission": "", "roles": [ "administrator", - "pemohon-ao", - "pemohon-eo" + "admin" ] }, { @@ -473,7 +462,8 @@ "attributes": [], "permission": "", "roles": [ - "administrator" + "administrator", + "admin" ] }, { @@ -483,7 +473,8 @@ "attributes": [], "permission": "", "roles": [ - "administrator" + "administrator", + "admin" ] }, { @@ -494,8 +485,7 @@ "permission": "", "roles": [ "administrator", - "admin", - "senior-officer" + "admin" ] }, { @@ -506,7 +496,7 @@ "permission": "", "roles": [ "administrator", - "senior-officer" + "admin" ] }, { @@ -517,8 +507,7 @@ "permission": "", "roles": [ "administrator", - "admin", - "senior-officer" + "admin" ] }, { @@ -584,7 +573,7 @@ "permission": "", "roles": [ "administrator", - "surveyor" + "admin" ] }, { @@ -595,7 +584,7 @@ "permission": "", "roles": [ "administrator", - "surveyor" + "admin" ] }, { @@ -606,7 +595,7 @@ "permission": "", "roles": [ "administrator", - "surveyor" + "admin" ] }, { @@ -617,7 +606,7 @@ "permission": "", "roles": [ "administrator", - "surveyor" + "admin" ] }, { @@ -628,7 +617,7 @@ "permission": "", "roles": [ "administrator", - "surveyor" + "admin" ] }, { @@ -639,7 +628,7 @@ "permission": "", "roles": [ "administrator", - "surveyor" + "admin" ] }, { @@ -650,7 +639,7 @@ "permission": "", "roles": [ "administrator", - "surveyor" + "admin" ] }, { @@ -661,7 +650,7 @@ "permission": "", "roles": [ "administrator", - "surveyor" + "admin" ] }, { @@ -672,52 +661,64 @@ "permission": "", "roles": [ "administrator", - "surveyor" + "admin" + ] + }, + { + "title": "Jenis Unit", + "path": "basicdata.jenis-unit", + "classes": "", + "attributes": [], + "permission": "", + "roles": [ + "administrator", + "admin" + ] + }, + { + "title": "Bentuk Unit", + "path": "basicdata.bentuk-unit", + "classes": "", + "attributes": [], + "permission": "", + "roles": [ + "administrator", + "admin" + ] + }, + { + "title": "Merupakan Daerah", + "path": "basicdata.merupakan-daerah", + "classes": "", + "attributes": [], + "permission": "", + "roles": [ + "administrator", + "admin" + ] + }, + { + "title": "Fasilitas Umum Dekat Objek", + "path": "basicdata.fasilitas-objek", + "classes": "", + "attributes": [], + "permission": "", + "roles": [ + "administrator", + "admin" + ] + }, + { + "title": "Posisi Unit", + "path": "basicdata.posisi-unit", + "classes": "", + "attributes": [], + "permission": "", + "roles": [ + "administrator", + "admin" ] }, - - { - "title": "Jenis Unit", - "path": "basicdata.jenis-unit", - "classes": "", - "attributes": [], - "permission": "", - "roles": ["administrator","surveyor"] - }, - { - "title": "Bentuk Unit", - "path": "basicdata.bentuk-unit", - "classes": "", - "attributes": [], - "permission": "", - "roles": ["administrator","surveyor"] - }, - { - "title": "Merupakan Daerah", - "path": "basicdata.merupakan-daerah", - "classes": "", - "attributes": [], - "permission": "", - "roles": ["administrator","surveyor"] - }, - - { - "title": "Fasilitas Umum Dekat Objek", - "path": "basicdata.fasilitas-objek", - "classes": "", - "attributes": [], - "permission": "", - "roles": ["administrator","surveyor"] - }, - - { - "title": "Posisi Unit", - "path": "basicdata.posisi-unit", - "classes": "", - "attributes": [], - "permission": "", - "roles": ["administrator","surveyor"] - }, { "title": "Lalu Lintas Sekitar", "path": "basicdata.lalu-lintas-lokasi", @@ -726,7 +727,7 @@ "permission": "", "roles": [ "administrator", - "surveyor" + "admin" ] }, { @@ -737,7 +738,7 @@ "permission": "", "roles": [ "administrator", - "surveyor" + "admin" ] }, { @@ -748,7 +749,7 @@ "permission": "", "roles": [ "administrator", - "surveyor" + "admin" ] }, { @@ -759,7 +760,7 @@ "permission": "", "roles": [ "administrator", - "surveyor" + "admin" ] }, { @@ -770,7 +771,7 @@ "permission": "", "roles": [ "administrator", - "surveyor" + "admin" ] }, { @@ -781,7 +782,7 @@ "permission": "", "roles": [ "administrator", - "surveyor" + "admin" ] }, { @@ -792,7 +793,7 @@ "permission": "", "roles": [ "administrator", - "surveyor" + "admin" ] }, { @@ -803,7 +804,7 @@ "permission": "", "roles": [ "administrator", - "surveyor" + "admin" ] }, { @@ -814,7 +815,7 @@ "permission": "", "roles": [ "administrator", - "surveyor" + "admin" ] }, { @@ -825,7 +826,7 @@ "permission": "", "roles": [ "administrator", - "surveyor" + "admin" ] }, { @@ -836,7 +837,7 @@ "permission": "", "roles": [ "administrator", - "surveyor" + "admin" ] }, { @@ -847,17 +848,20 @@ "permission": "", "roles": [ "administrator", - "surveyor" + "admin" ] }, - { - "title": "Terletak Di Area", - "path": "basicdata.terletak-area", - "classes": "", - "attributes": [], - "permission": "", - "roles": ["administrator","surveyor"] - } + { + "title": "Terletak Di Area", + "path": "basicdata.terletak-area", + "classes": "", + "attributes": [], + "permission": "", + "roles": [ + "administrator", + "admin" + ] + } ] } ], From 7553b7d4b6f7c2c04dcfa4cb69e379e6fa602e73 Mon Sep 17 00:00:00 2001 From: majid Date: Wed, 18 Dec 2024 16:58:32 +0700 Subject: [PATCH 3/3] update memo, lpj, resume, dan perbaikan form inspeksi --- app/Http/Controllers/PenilaiController.php | 188 ++++++- app/Http/Controllers/SurveyorController.php | 28 +- app/Models/DokumenJaminan.php | 4 + app/Models/Penilai.php | 42 ++ ...2024_12_17_025938_create_penilai_table.php | 44 ++ ...024_12_17_074223_update_inspeksi_table.php | 44 ++ .../views/component/kertas-kerja.blade.php | 2 - .../components/informasi-pembanding.blade.php | 124 ++--- .../lpj-sederhana-standard.blade.php | 319 +++++++++++- .../views/penilai/components/memo.blade.php | 458 ++++++++++++++++++ .../penilai/components/paparan.blade.php | 0 .../views/penilai/components/resume.blade.php | 228 ++++++--- resources/views/penilai/show.blade.php | 287 ++++++++--- .../components/apartemen-kantor.blade.php | 12 +- .../surveyor/components/card-tambah.blade.php | 20 +- .../components/data-pembanding.blade.php | 25 +- .../views/surveyor/components/denah.blade.php | 2 +- .../views/surveyor/components/foto.blade.php | 2 +- .../surveyor/components/informasi.blade.php | 10 +- .../surveyor/components/inspeksi.blade.php | 2 +- resources/views/surveyor/detail.blade.php | 4 +- routes/web.php | 21 +- 22 files changed, 1556 insertions(+), 310 deletions(-) create mode 100644 app/Models/Penilai.php create mode 100644 database/migrations/2024_12_17_025938_create_penilai_table.php create mode 100644 database/migrations/2024_12_17_074223_update_inspeksi_table.php create mode 100644 resources/views/penilai/components/paparan.blade.php diff --git a/app/Http/Controllers/PenilaiController.php b/app/Http/Controllers/PenilaiController.php index e6a578e..7a69240 100644 --- a/app/Http/Controllers/PenilaiController.php +++ b/app/Http/Controllers/PenilaiController.php @@ -5,6 +5,7 @@ namespace Modules\Lpj\Http\Controllers; use Illuminate\Http\Request; use Modules\Lpj\Models\Permohonan; use Modules\Lpj\Models\Inspeksi; +use Modules\Lpj\Models\Penilai; use App\Http\Controllers\Controller; use Illuminate\Support\Facades\Auth; use Maatwebsite\Excel\Facades\Excel; @@ -15,6 +16,13 @@ class PenilaiController extends Controller { public $user; + protected $surveyorController; + + public function __construct(SurveyorController $surveyorController) + { + $this->surveyorController = $surveyorController; + } + /** * Display a listing of the resource. */ @@ -30,9 +38,9 @@ class PenilaiController extends Controller { $permohonan = Permohonan::with('debiture.documents')->find($id); - $jaminanId = $permohonan->debiture->documents->first()->jenis_jaminan_id; + $documentId = $request->query('documentId'); - $inpeksi = Inspeksi::where('permohonan_id', $id)->where('jenis_jaminan_id', $jaminanId)->first(); + $inpeksi = Inspeksi::where('permohonan_id', $id)->where('dokument_id', $jaminanId)->first(); $formFoto = null; if ($inpeksi) { @@ -56,14 +64,20 @@ class PenilaiController extends Controller // } - public function sederhana($id) + public function sederhana(Request $request,$id) { - $data = new SurveyorController(); - $basicData = $data->getCommonData(); - $permohonan = Permohonan::with(['debiture.documents.jenisjaminan', 'region.teams.teamsUsers.user', 'penilaian'])->find($id); - $jaminanId = $permohonan->debiture->documents->first()->jenis_jaminan_id; - $inspeksi = Inspeksi::where('permohonan_id', $id)->where('jenis_jaminan_id', $jaminanId)->first(); + $basicData = $this->surveyorController->getCommonData(); + + $documentId = $request->query('documentId'); + $inspeksiId = $request->query('inspeksiId'); + $jaminanId = $request->query('jaminanId'); + + $permohonan = $this->surveyorController->getPermohonanJaminanId($id, $documentId, $jaminanId); + + + + $inspeksi = Inspeksi::where('permohonan_id', $id)->where('dokument_id', $documentId)->first(); $forminspeksi = null; if ($inspeksi) { $forminspeksi = json_decode($inspeksi->data_form, true); @@ -71,33 +85,55 @@ class PenilaiController extends Controller return view('lpj::penilai.components.lpj-sederhana-standard', compact('permohonan', 'basicData', 'forminspeksi', 'inspeksi')); } - public function standard($id) + public function standard(Request $request, $id) { - $permohonan = Permohonan::with(['debiture.documents.jenisjaminan', 'region.teams.teamsUsers.user', 'penilaian'])->find($id); - $jaminanId = $permohonan->debiture->documents->first()->jenis_jaminan_id; + $documentId = $request->query('documentId'); + $jaminanId = $request->query('jaminanId'); - $inspeksi = Inspeksi::where('permohonan_id', $id)->where('jenis_jaminan_id', $jaminanId)->first(); + $permohonan = $this->surveyorController->getPermohonanJaminanId($id, $documentId, $jaminanId); + $basicData = $this->surveyorController->getCommonData(); + + $inspeksi = Inspeksi::where('permohonan_id', $id)->where('dokument_id', $documentId)->first(); $forminspeksi = null; if ($inspeksi) { $forminspeksi = json_decode($inspeksi->data_form, true); } - $data = new SurveyorController(); - $basicData = $data->getCommonData(); + + return view('lpj::penilai.components.lpj-sederhana-standard', compact('permohonan', 'forminspeksi', 'basicData', 'inspeksi')); } - public function resume($id) + public function resume(Request $request) { - $permohonan = Permohonan::with(['debiture.documents.jenisjaminan', 'region.teams.teamsUsers.user', 'penilaian'])->find($id); + $permohonanId = $request->query('permohonanId'); + $permohonan = Permohonan::with(['debiture.documents.jenisjaminan', 'region.teams.teamsUsers.user', 'penilaian'])->find($permohonanId); return view('lpj::penilai.components.resume', compact('permohonan')); } - public function memo() + public function memo(Request $request) { - return view('lpj::resume.index'); + $permohonanId = $request->query('permohonanId'); + $documentId = $request->query('documentId'); + $inspeksiId = $request->query('inspeksiId'); + $jaminanId = $request->query('jaminanId'); + + $permohonan = $this->surveyorController->getPermohonanJaminanId($permohonanId, $documentId, $jaminanId); + $inspeksi = Inspeksi::where('permohonan_id', $permohonanId)->where('dokument_id', $documentId)->first(); + + $formFoto = null; + $formPeta = null; + if ($inspeksi) { + $formFoto = json_decode($inspeksi->foto_form, true); + $formPeta = json_decode($inspeksi->data_form, true); + + } + + + + return view('lpj::penilai.components.memo', compact('permohonan', 'formFoto', 'formPeta')); } @@ -106,7 +142,7 @@ class PenilaiController extends Controller */ public function show($id) { - $permohonan = Permohonan::with(['debiture.documents.jenisjaminan', 'region.teams.teamsUsers.user', 'penilaian'])->find($id); + $permohonan = Permohonan::with(['debiture.documents.jenisjaminan', 'region.teams.teamsUsers.user', 'penilaian', 'documents.inspeksi'])->find($id); // return response()->json(['permohonan' => $permohonan]); return view('lpj::penilai.show', compact('permohonan')); @@ -123,11 +159,20 @@ class PenilaiController extends Controller /** * Update the specified resource in storage. */ - public function update(Request $request, $id) + public function paparan(Request $request) { - // + $permohonanId = $request->query('permohonanId'); + return view('lpj::penilai.components.paparan'); } + + public function rap(Request $request) + { + $permohonanId = $request->query('permohonanId'); + return view('lpj::penilai.components.paparan'); + } + + /** * Remove the specified resource from storage. */ @@ -160,7 +205,7 @@ class PenilaiController extends Controller // Apply whereHas to check penilai_id, role, and user_id specifically for 'penilai' role $query->whereHas('penilaian.userPenilai', function ($q) { $q->where('role', 'penilai') // Ensure the role is 'penilai' - ->where('user_id', 12); // Ganti dengan Auth::user()->id jika dinamis + ->where('user_id', Auth::user()->id); // Ganti dengan Auth::user()->id jika dinamis }); // Apply sorting if provided @@ -213,9 +258,9 @@ class PenilaiController extends Controller ]); } - public function kertas_kerja($id, $jaminanId) + public function export_kertas_kerja($id, $jaminanId) { - $data = Inspeksi::where('permohonan_id', $id)->where('jenis_jaminan_id', $jaminanId)->first(); + $data = Inspeksi::where('permohonan_id', $id)->where('dokument_id', $jaminanId)->first(); // $data = null; // $headerInfo = [ @@ -234,5 +279,100 @@ class PenilaiController extends Controller } + public function import_kertas_kerja(Request $request) +{ + + $validatedData = $request->validate([ + 'permohonan_id' => 'required|integer', + 'document_id' => 'required|integer', + 'inspeksi_id' => 'required|integer', + 'kertas_kerja' => 'required|file|mimes:pdf,doc,docx,xls,xlsx,xlsx', + ]); + + try { + // Simpan file kertas kerja + if ($request->hasFile('kertas_kerja')) { + $file = $request->file('kertas_kerja'); + $filePath = $this->surveyorController->uploadFile($file, 'kertas_kerja'); + Penilai::updateOrCreate( + [ + 'permohonan_id' => $validatedData['permohonan_id'], + 'dokument_id' => $validatedData['document_id'], + 'inspeksi_id' => $validatedData['inspeksi_id'], + ], + [ + 'kertas_kerja' => $filePath, + ] + ); + + return response()->json(['success' => true, 'message' => 'Kertas kerja berhasil diunggah.']); + } + + return response()->json(['success' => false, 'message' => 'File kertas kerja tidak ditemukan.'], 400); + } catch (\Exception $e) { + return response()->json(['success' => false, 'message' => 'Terjadi kesalahan: ' . $e->getMessage()], 500); + } +} + + + public function status($id) + { + $penilai = Penilai::find($id); + return response()->json(['data' => $penilai]); + } + + public function checkStatusLpj(Request $request) + { + $permohonanId = $request->query('permohonanId'); + $documentId = $request->query('documentId'); + $inspeksiId = $request->query('inspeksiId'); + + $statusLpj = Penilai::where('permohonan_id', $permohonanId) + ->where('dokument_id', $documentId) + ->where('inspeksi_id', $inspeksiId) + ->first(); + + return response()->json(['status' => $statusLpj ? $statusLpj->type : null]); + } + + public function saveStatusLpj(Request $request) + { + + Penilai::updateOrCreate( + [ + 'permohonan_id' => $request->permohonan_id, + 'dokument_id' => $request->document_id, + 'inspeksi_id' => $request->inspeksi_id, + ], + [ + 'type' => $request->type, + ] + ); + + return response()->json(['success' => true]); + } + + + public function storePenilaian($id){ + try { + $permohonan = Permohonan::findOrFail($id); + $permohonan->update([ + 'status' => 'proses-laporan', + ]); + + return response()->json([ + 'success' => true, + 'message' => 'Berhasil menyimpan penilaian' + ], 200); + + } catch (\Exception $e) { + return response()->json([ + 'success' => false, + 'message' => 'Terjadi kesalahan', + 'error' => $e->getMessage() + ], 500); + } + } + } diff --git a/app/Http/Controllers/SurveyorController.php b/app/Http/Controllers/SurveyorController.php index da3ceb5..e730a54 100644 --- a/app/Http/Controllers/SurveyorController.php +++ b/app/Http/Controllers/SurveyorController.php @@ -723,15 +723,33 @@ class SurveyorController extends Controller // Fields untuk tanah if (in_array($field, ['luas_tanah'])) { - $cekLuas = $dataForm['tanah']['luas_tanah'] == 'sesuai' ? 'sesuai' : 'tidak sesuai'; - $dataForm['tanah'][$field][$cekLuas] = $newValue; + // Pastikan struktur array ada sebelum diakses + if (!isset($dataForm['tanah']['luas_tanah'])) { + $dataForm['tanah']['luas_tanah'] = []; + } + + $cekLuas = isset($dataForm['tanah']['luas_tanah']['sesuai']) && $dataForm['tanah']['luas_tanah']['sesuai'] === 'sesuai' + ? 'sesuai' + : 'tidak sesuai'; + + $dataForm['tanah']['luas_tanah'][$cekLuas] = $newValue; + $needsSave = true; } + // Fields untuk bangunan elseif (in_array($field, ['luas_tanah_bagunan'])) { + if (!isset($dataForm['bangunan']['luas_tanah_bagunan'])) { + $dataForm['bangunan']['luas_tanah_bagunan'] = []; + } - $cekBanguan = $dataForm['bangunan']['luas_tanah_bagunan'] == 'sesuai' ? 'sesuai' : 'tidak sesuai'; - $dataForm['bangunan'][$field][$cekBanguan] = $newValue; + $cekBanguan = isset($dataForm['bangunan']['luas_tanah_bagunan']['sesuai']) && $dataForm['bangunan']['luas_tanah_bagunan']['sesuai'] === 'sesuai' + ? 'sesuai' + : 'tidak sesuai'; + + $dataForm['bangunan']['luas_tanah_bagunan'][$cekBanguan] = $newValue; + $needsSave = true; } + // Fields untuk alamat dalam asset elseif (in_array($field, ['address', 'village_code', 'district_code', 'city_code', 'province_code'])) { @@ -2306,7 +2324,7 @@ class SurveyorController extends Controller */ - private function uploadFile($file, $type) + public function uploadFile($file, $type) { if (!$file->isValid()) { throw new Exception("Invalid file upload for {$type}"); diff --git a/app/Models/DokumenJaminan.php b/app/Models/DokumenJaminan.php index 3454dc9..e3a958e 100644 --- a/app/Models/DokumenJaminan.php +++ b/app/Models/DokumenJaminan.php @@ -67,4 +67,8 @@ public function detail(){ return $this->hasMany(DetailDokumenJaminan::class, 'dokumen_jaminan_id', 'id'); } + public function inspeksi() + { + return $this->hasMany(Inspeksi::class, 'dokument_id', 'id'); + } } diff --git a/app/Models/Penilai.php b/app/Models/Penilai.php new file mode 100644 index 0000000..cc5eed5 --- /dev/null +++ b/app/Models/Penilai.php @@ -0,0 +1,42 @@ +belongsTo(DokumenJaminan::class); + } + public function permohonan(){ + return $this->belongsTo(Permohonan::class); + } + public function inspeksi(){ + return $this->belongsTo(Inspeksi::class); + } + +} diff --git a/database/migrations/2024_12_17_025938_create_penilai_table.php b/database/migrations/2024_12_17_025938_create_penilai_table.php new file mode 100644 index 0000000..0a5fc7e --- /dev/null +++ b/database/migrations/2024_12_17_025938_create_penilai_table.php @@ -0,0 +1,44 @@ +id(); + $table->string('type')->nullable(); + $table->json('lpj')->nullable(); + $table->json('resume')->nullable(); + $table->json('memo')->nullable(); + $table->string('kertas_kerja')->nullable(); + $table->unsignedBigInteger('dokument_id')->nullable(); + $table->unsignedBigInteger('permohonan_id')->nullable(); + $table->unsignedBigInteger('inspeksi_id')->nullable(); + $table->timestamps(); + $table->timestamp('authorized_at')->nullable(); + $table->char('authorized_status', 1)->nullable(); + $table->softDeletes(); + $table->unsignedBigInteger('created_by')->nullable(); + $table->unsignedBigInteger('updated_by')->nullable(); + $table->unsignedBigInteger('deleted_by')->nullable(); + $table->unsignedBigInteger('authorized_by')->nullable(); + $table->foreign('dokument_id')->references('id')->on('dokumen_jaminan')->onDelete('set null'); + $table->foreign('permohonan_id')->references('id')->on('permohonan')->onDelete('set null'); + $table->foreign('inspeksi_id')->references('id')->on('inspeksi')->onDelete('set null'); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('penilai'); + } +}; diff --git a/database/migrations/2024_12_17_074223_update_inspeksi_table.php b/database/migrations/2024_12_17_074223_update_inspeksi_table.php new file mode 100644 index 0000000..e17d9ab --- /dev/null +++ b/database/migrations/2024_12_17_074223_update_inspeksi_table.php @@ -0,0 +1,44 @@ +dropForeign(['jenis_jaminan_id']); + } + + if (Schema::hasColumn('inspeksi', 'jenis_jaminan_id')) { + $table->dropColumn('jenis_jaminan_id'); + } + + $table->unsignedBigInteger('dokument_id')->nullable()->after('permohonan_id'); + $table->foreign('dokument_id')->references('id')->on('dokumen_jaminan')->onDelete('cascade'); + + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + + Schema::table('inspeksi', function (Blueprint $table) { + + $table->dropForeign(['dokument_id']); + $table->dropColumn('dokument_id'); + + $table->unsignedBigInteger('jenis_jaminan_id')->nullable()->after('permohonan_id'); + $table->foreign('jenis_jaminan_id')->references('id')->on('jenis_jaminan')->onDelete('cascade'); + }); + + } +}; diff --git a/resources/views/component/kertas-kerja.blade.php b/resources/views/component/kertas-kerja.blade.php index 8e197cf..411aa9d 100644 --- a/resources/views/component/kertas-kerja.blade.php +++ b/resources/views/component/kertas-kerja.blade.php @@ -538,8 +538,6 @@ @endforeach
- - diff --git a/resources/views/penilai/components/informasi-pembanding.blade.php b/resources/views/penilai/components/informasi-pembanding.blade.php index e0a65a2..a65fa57 100644 --- a/resources/views/penilai/components/informasi-pembanding.blade.php +++ b/resources/views/penilai/components/informasi-pembanding.blade.php @@ -4,68 +4,70 @@ $informasiPembanding = isset($inspeksi->data_pembanding) ? json_decode($inspeksi->data_pembanding, true) : []; @endphp - @foreach ($informasiPembanding['data_pembanding'] as $key => $item) -
-
-
- - Gambar foto_objek + @if (isset($informasiPembanding['data_pembanding'])) + @foreach ($informasiPembanding['data_pembanding'] as $key => $item) +
+
+
+ + Gambar foto_objek +
+
+
+ +
+ {{ $item['jenis_aset'] }} +
+
+ +
+ +
+ {{ $item['harga_diskon'] }} +
+
+ +
+ +
+ {{ $item['harga'] }} +
+
+ +
+ +
+ {{ $item['harga'] }} +
+
+ +
+ +
+ {{ $item['luas_tanah'] }} +
+
+ +
+ +
+ {{ $item['luas_bangunan'] }} +
+
+ +
+ +
+ {{ $item['kordinat_lat'] }} , {{ $item['kordinat_lng'] }} +
+
+ +
-
-
- -
- {{ $item['jenis_aset'] }} -
-
-
- -
- {{ $item['harga_diskon'] }} -
-
- -
- -
- {{ $item['harga'] }} -
-
- -
- -
- {{ $item['harga'] }} -
-
- -
- -
- {{ $item['luas_tanah'] }} -
-
- -
- -
- {{ $item['luas_bangunan'] }} -
-
- -
- -
- {{ $item['kordinat_lat'] }} , {{ $item['kordinat_lng'] }} -
-
- -
- -
- @endforeach + @endforeach + @endif
diff --git a/resources/views/penilai/components/lpj-sederhana-standard.blade.php b/resources/views/penilai/components/lpj-sederhana-standard.blade.php index ea6f1f2..404c1c8 100644 --- a/resources/views/penilai/components/lpj-sederhana-standard.blade.php +++ b/resources/views/penilai/components/lpj-sederhana-standard.blade.php @@ -35,7 +35,7 @@
@foreach ($permohonan->debiture->documents as $dokumen) - {{formatAlamat($dokumen->pemilik)}} + {{ formatAlamat($dokumen->pemilik) }} @endforeach
@@ -82,7 +82,34 @@ Identitas Cadeb/Debitur
-
+
+ +
+ +
+ + @if (isset($permohonan->debiture)) +

{{ $permohonan->debiture->name }}

+ @endif +
+
+
+ +
+ +
+ + {{ $forminspeksi['asset']['debitur_perwakilan'][0] ?? '' }} + +
+
+ +
+ +
+ +
+
@@ -94,7 +121,61 @@ Deskripsi dan Alamat Aset
-
+
+ +
+ + @php + $statusKey = isset($forminspeksi['asset']['jenis_asset']['sesuai']) ? 'sesuai' : 'tidak sesuai'; + $selectedValue = $forminspeksi['asset']['jenis_asset'][$statusKey] ?? null; + @endphp +
+ {{ $selectedValue }} +
+
+ +
+ @php + $statusKey = isset($forminspeksi['asset']['alamat']['sesuai']) ? 'sesuai' : 'tidak sesuai'; + $selectedValue = $forminspeksi['asset']['alamat'][$statusKey] ?? null; + @endphp + +
+ {{ $selectedValue['address'] ?? '' }} +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
@@ -106,7 +187,98 @@
+
+ @foreach ($permohonan->debiture->documents as $dokumen) +
+ + +
+ @endforeach +
+ @include('lpj::component.pdfviewer')
@@ -116,15 +288,38 @@ Hubungan Cadeb/Debitur dengan pemilik dan penghuni + @php + $statusKey = isset($forminspeksi['asset']['hub_cadeb']['sesuai']) ? 'sesuai' : 'tidak sesuai'; + $selectedData = $forminspeksi['asset']['hub_cadeb'][$statusKey] ?? null; + @endphp
- @include('lpj::surveyor.components.tanah') - @include('lpj::surveyor.components.bangunan') - @include('lpj::surveyor.components.lingkungan') - @include('lpj::surveyor.components.fakta') - @include('lpj::surveyor.components.informasi') + @foreach ($permohonan->debiture->documents as $dokumen) + @if ($dokumen->jenisJaminan) + @php + $formKategori = json_decode($dokumen->jenisJaminan->form_kategori, true); + @endphp + @if (isset($formKategori) && $formKategori) + @php + $kategoriArray = is_array($formKategori) ? $formKategori : [$formKategori]; + $kategoriUnik = array_unique($kategoriArray); + @endphp + + + + + @foreach ($kategoriUnik as $kategori) + {{-- Tampilkan komponen sesuai kategori --}} + @include('lpj::surveyor.components.' . str_replace('-', '-', $kategori), [ + 'dokumen' => $dokumen, + ]) + @endforeach + @endif + @endif + @endforeach +
@@ -142,17 +337,114 @@ total nilai pasar wajar
-
+
+
+ +
+
+
+ + +
+
+ + +
+
+ + +
+
+ +
+
+ + +
+
+ + +
+
+ + +
+
+ +
+
+ + +
+
+ + +
+
+ + +
+
+
+
+ +
+ +
+
+
+ +
+
+ + +
+
+
+ + +
+
+ + +
+
+ +
+
+

- nilai asuransi + nilai asuransi

+
+ +
+
+
+ + +
+
+ + +
+ +
+ + +
+ + +
+
+
@@ -165,11 +457,4 @@
- - @endsection diff --git a/resources/views/penilai/components/memo.blade.php b/resources/views/penilai/components/memo.blade.php index e69de29..e963b37 100644 --- a/resources/views/penilai/components/memo.blade.php +++ b/resources/views/penilai/components/memo.blade.php @@ -0,0 +1,458 @@ +@extends('layouts.main') + +@section('breadcrumbs') + {{-- {{ Breadcrumbs::render(request()->route()->getName()) }} + --}} + Resume +@endsection + +@section('content') + @include('lpj::assetsku.includenya') +
+
+
+

+ Memo Antar Kantor +

+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+ + + +
+ +
+ +
+
+ +
+ +
+ +
+
+
+
+ +
+
+

Sehubungan dengan permintaan BAGI Cabang ............., untuk dilakukan survey untuk penilaian baru/review, calon debitur/debitur an …............., + dengan deskripsi sebagai berikut : +

+
+
+
+
+ + +
+ + + {{-- --}} + +
+ + +
+ +
+
+
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+
+ + +
+
+
+ + + +
+
+

+ Dokument +

+
+
+ +
+ +
+ +
+ +
+ +
+
+ +
+ +
+ @if (!empty($forminspeksi['fakta']['hasil_survey'])) + @foreach ($forminspeksi['fakta']['hasil_survey'] as $index => $positif) +
+ + +
+ @endforeach + @else +
+ + +
+ @endif + +
+
+ + +
+ +
+ @if (!empty($forminspeksi['fakta']['fakta_negatif'])) + @foreach ($forminspeksi['fakta']['fakta_negatif'] as $index => $negatif) +
+ + +
+ @endforeach + @else +
+ + + +
+ @endif + +
+
+
+
+ + + +
+
+

+ Peta lokasi +

+
+
+
+
+

+ Rute Menuju Lokasi +

+
+
+ @if (isset($formPeta)) + @php + $foto = [ + 'foto_gistaru', + 'foto_bhumi', + 'foto_argis_region', + 'foto_tempat', + ] + @endphp + + @foreach ($foto as $item) + @if (isset($formPeta[$item]) && $formPeta[$item]) +
+
+

+ {{ ucwords(str_replace('_', ' ', $item)) }} +

+
+ {{ $item }} +
+
+
+ @endif + @endforeach + @endif +
+ +
+
+
+ + +
+
+

+ Foto jaminan +

+
+
+
+
+

+ Rute Menuju Lokasi +

+
+
+ @if (isset($formFoto)) + @foreach ($formFoto['rute_menuju_lokasi'] as $item) +
+
+

+ {{ $item['name_rute'] . ' ' . $loop->index + 1 }} +

+
+ + + + +
+
+
+ @endforeach + @endif +
+
+ + +
+
+

+ Object Jaminan +

+
+
+ @if (isset($formFoto['object_jaminan'])) + @foreach ($formFoto['object_jaminan'] as $item) +
+
+

+ {{ $item['name_objek'] }} +

+
+ + + + +
+
+
+ @endforeach + @endif +
+
+ + @if (isset($formFoto['foto_basement'])) +
+
+

+ Basement +

+
+
+
+
+

+ Basemnt +

+
+ + + + +
+
+
+ +
+
+ @endif + + @if (isset($formFoto['foto_gerbang'])) +
+
+

+ Gerbang +

+
+
+ + +
+
+

+ Gerbang +

+
+ + + + +
+
+
+ +
+
+ @endif + + + @if (isset($formFoto['pendamping'])) +
+
+

+ Pendamping +

+
+
+ + +
+
+

+ Pendamping +

+
+ + + + +
+
+
+ +
+
+ @endif +
+
+ + +
+@endsection +@include('lpj::surveyor.js.utils') + + + diff --git a/resources/views/penilai/components/paparan.blade.php b/resources/views/penilai/components/paparan.blade.php new file mode 100644 index 0000000..e69de29 diff --git a/resources/views/penilai/components/resume.blade.php b/resources/views/penilai/components/resume.blade.php index ad89007..745824d 100644 --- a/resources/views/penilai/components/resume.blade.php +++ b/resources/views/penilai/components/resume.blade.php @@ -109,7 +109,6 @@ -
@@ -141,54 +140,129 @@
-
-
-

- KESIMPULAN NILAI PASAR WAJAR -

-
-
+
+
+

+ KESIMPULAN NILAI PASAR WAJAR +

+
+
-
- -
- - - - - - - +
+ +
+
SertipikatLuas TanahLuas BangunanNilai Pasar Wajar
+ + + + + + - - - - - - - - - - - -
SertipikatLuas TanahLuas BangunanNilai Pasar Wajar
- - - - - -
+ + + + + + + + + + + + + + + + + + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + +
SertipikatLuas TanahLuas BangunanNilai Pasar Wajar
+ + + + + + + +
+
+
+ +
+ +
+ +
+ +
+ + +
+ +
-
- -
+ + + +
+ +
+@endsection +@include('lpj::surveyor.js.utils') + diff --git a/resources/views/penilai/show.blade.php b/resources/views/penilai/show.blade.php index 2f40adf..b176782 100644 --- a/resources/views/penilai/show.blade.php +++ b/resources/views/penilai/show.blade.php @@ -5,6 +5,7 @@ @endsection @section('content') +@include('lpj::assetsku.includenya')
@@ -174,8 +175,6 @@

- -
@@ -188,7 +187,7 @@ KERTAS KERJA - + PAPARAN @@ -196,10 +195,17 @@ + @php + $inspeksiId = null; + foreach ($dokumen->inspeksi as $item) { + $inspeksiId = $item->id; + } + @endphp