diff --git a/app/Http/Controllers/PenilaiController.php b/app/Http/Controllers/PenilaiController.php index 6c1eb9f..d4a28bd 100644 --- a/app/Http/Controllers/PenilaiController.php +++ b/app/Http/Controllers/PenilaiController.php @@ -408,7 +408,7 @@ class PenilaiController extends Controller $nomorLaporan = $this->generateNoLaporan($permohonan, $documentId, 'call-report'); $basicData = $this->surveyorController->getCommonData(); $inspeksi = Inspeksi::where('permohonan_id', $permohonanId)->where('dokument_id', $documentId)->first(); - Penilai::updateOrCreate( + $call = Penilai::updateOrCreate( [ 'permohonan_id' => $permohonanId, 'dokument_id' => $documentId, @@ -419,14 +419,15 @@ class PenilaiController extends Controller ] ); - $call = Penilai::where('permohonan_id', $permohonanId)->where('dokument_id', $documentId)->first(); - // $lpjData = null; $callReport = null; + if ($call && isset($call->call_report)) { + $callReport = json_decode($call->call_report, true); + } $forminspeksi = null; if ($forminspeksi) { + $forminspeksi = json_decode($inspeksi->data_form, true); - $callReport = json_decode($call->call_report, true); } // Default: gunakan data dari debitur $debitur = Debiture::find($permohonan->debiture_id); @@ -1067,9 +1068,10 @@ class PenilaiController extends Controller $memo = json_decode($lpj->memo, true); $resumeData = json_decode($lpj->resume, true); $rap = json_decode($lpj->rap, true); + $report = json_decode($lpj->call_report, true); } - $inputAddress = $forminspeksi['asset']['alamat']['sesuai'] ?? $forminspeksi['asset']['alamat']['tidak sesuai']; + $inputAddress = $forminspeksi['asset']['alamat']['sesuai'] ?? $forminspeksi['asset']['alamat']['tidak sesuai'] ?? []; $alamat = [ 'address' => $inputAddress['address'] ?? null, @@ -1099,7 +1101,8 @@ class PenilaiController extends Controller 'memo', 'resumeData', 'tanggalLaporan', - 'rap' + 'rap', + 'report' )); // return $pdf; $cleanNomorLaporan = str_replace(['/', '\\'], '-', $nomorLaporan); @@ -1125,7 +1128,8 @@ class PenilaiController extends Controller 'memo', 'resumeData', 'tanggalLaporan', - 'rap' + 'rap', + 'report' )); // return $pdf; $cleanNomorLaporan = str_replace(['/', '\\'], '-', $nomorLaporan); diff --git a/app/Http/Controllers/SurveyorController.php b/app/Http/Controllers/SurveyorController.php index c0c9f07..decefc4 100644 --- a/app/Http/Controllers/SurveyorController.php +++ b/app/Http/Controllers/SurveyorController.php @@ -177,6 +177,10 @@ class SurveyorController extends Controller // Jika data sudah ada, merge dengan data yang baru $existingData = json_decode($inspeksi->data_form, true) ?: []; + if (isset($existingData['signature']) && !isset($processedData['signature'])) { + $processedData['signature'] = $existingData['signature']; + } + $mergedData = $this->arrayMergeRecursive($existingData, $processedData); // Update record @@ -814,9 +818,9 @@ class SurveyorController extends Controller // If validation passes, update permohonan status $permohonan = Permohonan::findOrFail($id); - - - + + + $permohonan->update([ 'status' => 'survey-completed', 'submitted_at' => now() @@ -2343,6 +2347,11 @@ class SurveyorController extends Controller 'province_code' => $data['province_code'] ?? null, ]; + $alamatKey = ($data['alamat_sesuai'] === 'sesuai') ? 'sesuai' : 'tidak sesuai'; + $alamat = []; + + // Masukkan key baru yang sesuai + $alamat[$alamatKey] = $alamatData; return [ 'asset' => [ 'debitur_perwakilan' => $data['debitur_perwakilan'] ?? [], @@ -2351,9 +2360,7 @@ class SurveyorController extends Controller ? $data['jenis_asset_name'] : ($data['jenis_asset_tidak_sesuai'] ?? null) ], - 'alamat' => [ - $data['alamat_sesuai'] => $alamatData - ], + 'alamat' => $alamat, 'hub_cadeb' => [ $data['hub_cadeb'] => ($data['hub_cadeb'] == 'sesuai') ? $data['hub_cadeb_sesuai'] : $data['hub_cadeb_tidak_sesuai'] ], @@ -2368,41 +2375,24 @@ class SurveyorController extends Controller ]; } - private function updateFormData(array &$dataForm, array $data, $inspeksi, string $section, string $key, string $sesuaiKey, string $tidakSesuaiKey): void - { - if (isset($dataForm[$section][$key])) { - $dataForm[$section][$key] = []; // Reset data - - if ($data[$key] == 'sesuai') { - $dataForm[$section][$key]['sesuai'] = $data[$sesuaiKey] ?? null; - } elseif ($data[$key] == 'tidak sesuai') { - $dataForm[$section][$key]['tidak sesuai'] = $data[$tidakSesuaiKey] ?? null; - } - - if ($inspeksi) { - $inspeksi->data_form = json_encode($dataForm); - $inspeksi->save(); - } - } else { - $data[$key] = $this->getFieldData($data, $key, true); - } - } - private function getTanahData(array $data): array { + //luas tanah key + $luas_tanah_key = ($data['luas_tanah'] === 'sesuai') ? 'sesuai' : 'tidak sesuai'; + $luas_tanah = []; + $hasil_tanah = $luas_tanah_key === 'sesuai' ? $data['luas_tanah_sesuai'] : $data['luas_tanah_tidak_sesuai']; + $luas_tanah[$luas_tanah_key] = $hasil_tanah; - $inspeksi = Inspeksi::where('permohonan_id', $data['permohonan_id'])->where('dokument_id', $data['dokument_id'])->first(); - - // Decode data_form dari inspeksi - $dataForm = $inspeksi ? json_decode($inspeksi->data_form, true) : []; - $this->updateFormData($dataForm, $data, $inspeksi, 'tanah', 'luas_tanah', 'luas_tanah_sesuai', 'luas_tanah_tidak_sesuai'); - $this->updateFormData($dataForm, $data, $inspeksi, 'tanah', 'hadap_mata_angin', 'hadap_mata_angin_sesuai', 'hadap_mata_angin_tidak_sesuai'); - // dd($dataForm); + // hadap mata angin + $hadap_mata_angin_key = ($data['hadap_mata_angin'] === 'sesuai') ? 'sesuai' : 'tidak sesuai'; + $hadap_mata_angin = []; + $hasil_hadap_mata_angin = $hadap_mata_angin_key === 'sesuai' ? $data['hadap_mata_angin_sesuai'] : $data['hadap_mata_angin_tidak_sesuai']; + $hadap_mata_angin[$hadap_mata_angin_key] = $hasil_hadap_mata_angin; return [ 'tanah' => [ - 'luas_tanah' => $dataForm['tanah']['luas_tanah'] ?? $data['luas_tanah'], - 'hadap_mata_angin' => $dataForm['tanah']['hadap_mata_angin'] ?? $data['hadap_mata_angin'], + 'luas_tanah' => $luas_tanah, + 'hadap_mata_angin' => $hadap_mata_angin, 'bentuk_tanah' => $this->getFieldData( $data, 'bentuk_tanah', @@ -2475,16 +2465,19 @@ class SurveyorController extends Controller } } - $inspeksi = Inspeksi::where('permohonan_id', $data['permohonan_id'])->where('dokument_id', $data['dokument_id'])->first(); - // Decode data_form dari inspeksi - $dataForm = $inspeksi ? json_decode($inspeksi->data_form, true) : []; - $this->updateFormData($dataForm, $data, $inspeksi, 'bangunan', 'luas_tanah_bagunan', 'luas_tanah_bagunan_sesuai', 'luas_tanah_bagunan_tidak_sesuai'); + $luas_tanah_bagunan_key = ($data['luas_tanah_bagunan'] === 'sesuai') ? 'sesuai' : 'tidak sesuai'; + $luas_tanah_bagunan = []; + + $hasil_tanah_bagunan = $luas_tanah_bagunan_key === 'sesuai' ? $data['luas_bangunan_sesuai'] : $data['luas_tanah_bagunan_tidak_sesuai']; + + // Masukkan key baru yang sesuai + $luas_tanah_bagunan[$luas_tanah_bagunan_key] = $hasil_tanah_bagunan; return [ 'bangunan' => [ - 'luas_tanah_bagunan' => $dataForm['bangunan']['luas_tanah_bagunan'] ?? $data['luas_tanah_bagunan'], + 'luas_tanah_bagunan' => $luas_tanah_bagunan, 'jenis_bangunan' => $data['jenis_bangunan'] ?? null, 'kondisi_bangunan' => $data['kondisi_bangunan'] ?? null, 'sifat_bangunan' => $data['sifat_bangunan'] ?? null, @@ -3455,19 +3448,29 @@ class SurveyorController extends Controller private function arrayMergeRecursive($arr1, $arr2) { foreach ($arr2 as $key => $value) { - if (is_array($value) && isset($arr1[$key]) && is_array($arr1[$key])) { + if ($key === 'signature' && isset($arr1['signature'])) { + // Jika key adalah signature, gabungkan secara spesifik + $arr1['signature'] = array_merge($arr1['signature'], $value); + } elseif (is_array($value) && isset($arr1[$key]) && is_array($arr1[$key])) { + // Rekursif untuk key lainnya $arr1[$key] = $this->arrayMergeRecursive($arr1[$key], $value); } else { - // Jika nilai baru adalah null, pertahankan nilai lama - if (!is_null($value)) { - $arr1[$key] = $value; - } elseif (!isset($arr1[$key])) { - $arr1[$key] = $value; - } + // Ganti nilai lama dengan nilai baru + $arr1[$key] = $value; } } + + // Bersihkan key lama yang tidak ada di array baru + foreach ($arr1 as $key => $value) { + if (!array_key_exists($key, $arr2) && $key !== 'signature') { + unset($arr1[$key]); + } + } + return $arr1; } + + public function print_out_inspeksi($permohonan_id, $dokument_id, $jenis_jaminan_id) { diff --git a/resources/views/penilai/components/call-report.blade.php b/resources/views/penilai/components/call-report.blade.php index 5fd355c..d3ba8a1 100644 --- a/resources/views/penilai/components/call-report.blade.php +++ b/resources/views/penilai/components/call-report.blade.php @@ -224,7 +224,7 @@
+ placeholder="Masukkan Lelang" value="{{ $callReport['lelang'] ?? old('lelang') }}">
@@ -232,14 +232,14 @@
+ value="{{ $callReport['nilai_pasar'] ?? old('likuidasi') }}">
+ placeholder="Masukkan likuidasi dalam bentuk persen" onkeyup="calculateTotal(this)" value="{{ $callReport['persentase_likuidasi'] ?? old('likuidasi') }}">
@@ -247,7 +247,7 @@ (NL)
+ class="input w-full total-likuidasi currency-format" placeholder="Masukkan likuidasi" value="{{ $callReport['hasil_nilai_likuidasi'] ?? old('likuidasi') }}">
@@ -279,9 +279,9 @@
+ class="input w-full " + value="{{ $forminspeksi['signature']['kjjp']['name'] ?? $callReport['pihak_kjjpp'] ?? '' }}" + placeholder="Masukkan Nama KJPP">
@@ -422,6 +422,7 @@ tanggal: "", nomor_laporan: "", perihal: "", + pihak_kjjpp: "", dari: "", lelang: "", fakta: { @@ -456,9 +457,9 @@ jsonData.lelang = document.querySelector('input[name="lelang"]')?.value.trim() || ""; // Ambil nilai lainnya - jsonData.nilai_pasar = document.querySelector('input[name="nilai_pasar"]')?.value.trim() || ""; - jsonData.persentase_likuidasi = document.querySelector('input[name="likuidasi"]')?.value.trim() || ""; - jsonData.hasil_nilai_likuidasi = document.querySelector('input[name="likuidasi_nilai_1"]')?.value.trim() || ""; + jsonData.nilai_pasar = cleanCurrencyValue(document.querySelector('input[name="nilai_pasar"]')?.value.trim() || ""); + jsonData.persentase_likuidasi = cleanCurrencyValue(document.querySelector('input[name="likuidasi"]')?.value.trim() || ""); + jsonData.hasil_nilai_likuidasi = cleanCurrencyValue(document.querySelector('input[name="likuidasi_nilai_1"]')?.value.trim() || ""); return jsonData; } diff --git a/resources/views/penilai/components/print-out-call-report.blade.php b/resources/views/penilai/components/print-out-call-report.blade.php index 5d3d4fd..d6731fe 100644 --- a/resources/views/penilai/components/print-out-call-report.blade.php +++ b/resources/views/penilai/components/print-out-call-report.blade.php @@ -1,113 +1,4 @@ - - - - - - - - - Call Report - - - - - - +@include('lpj::penilai.components.header') @php $data = ''; foreach ($permohonan->documents as $dokumen) { @@ -136,22 +27,7 @@ } $data = rtrim($data, ', '); @endphp - +
@@ -159,6 +35,7 @@

CALL Report

+

NO: {{ $nomorLaporan ?? '' }}

@@ -173,11 +50,7 @@ : {{ $report['dari'] ?? '' }} - - No Laporan - : - {{ $nomorLaporan ?? '-' }} - + Tanggal : @@ -209,7 +82,7 @@ KJPP : - {{ $data ?? '' }} + {{ preg_replace('/^K\\d+ - /', '', $permohonan->penawaran->nama_kjpp_sebelumnya ?? '-') }} Jenis Aset @@ -283,24 +156,30 @@ Tanggal Penilaian : - {{ $data ?? '' }} + {{ isset($permohonan->penilaian->tanggal_kunjungan) ? formatTanggalIndonesia($permohonan->penilaian->tanggal_kunjungan) : '' }} Lelang ke : - {{ $data ?? '' }} + {{ $report['lelang'] ?? '' }} Nilai Pasar Wajar (NPW) : - {{ $data ?? '' }} + {{ isset($report['nilai_pasar']) ? formatRupiah($report['nilai_pasar']) : '-' }} - Nilai Likuidasi (NL) - : - {{ $data ?? '' }} + + Nilai Likuidasi + {{ isset($report['persentase_likuidasi']) ? '(' . $report['persentase_likuidasi'] . '%)' : '-' }} + + : + + {{ isset($report['hasil_nilai_likuidasi']) ? formatRupiah($report['hasil_nilai_likuidasi']) : '-' }} + + @@ -322,7 +201,7 @@ - + @@ -346,6 +225,23 @@
Pihak KJPP :{{ $surveyor->userPenilaiTeam->name ?? '' }}{{ $forminspeksi['signature']['kjjp']['name'] ?? $report['pihak_kjjpp'] ?? '' }}
Pihak BAGI Cab
+ @isset($report['fakta']['fakta_positif']) + + + + + + @foreach ($report['fakta']['fakta_positif'] as $key => $item) + + + + @endforeach + +
+
Faktor positif
+
{{ $item }}
+ @endisset + @isset($report['fakta']['fakta_negatif']) - @isset($resumeData['fakta']['fakta_negatif']) - @foreach ($resumeData['fakta']['fakta_negatif'] as $key => $item) + @foreach ($report['fakta']['fakta_negatif'] as $key => $item) @endforeach - @endisset
@@ -353,15 +249,14 @@
{{ $item }}
+ @endisset @@ -146,7 +146,7 @@ value="{{ $inspectionData['bangunan']['luas_tanah_bagunan']['sesuai'] ?? ($inspectionData['bangunan']['luas_tanah_bagunan']['tidak sesuai'] ?? '') }}"> @endif
@@ -387,7 +282,6 @@ @php use Modules\Usermanagement\Models\User; - $penilaiUser = User::where('id', $penilai->userPenilaiTeam->id)->first(); $imagePathPenilai = storage_path( 'app/public/signatures/' . $penilaiUser->id . '/' . $penilaiUser->sign, @@ -476,18 +370,15 @@
+
+
+
+ FOTO JAMINAN +
+
+ @include('lpj::penilai.components.foto-jaminan') +
- -
- Cabang : {{ $permohonan->debiture->branch->name ?? '' }} -
- - - - - + @include('lpj::penilai.components.footer') diff --git a/resources/views/surveyor/components/pembanding-tanah-bangunan-unit.blade.php b/resources/views/surveyor/components/pembanding-tanah-bangunan-unit.blade.php index 4eb5cc9..d26ea1d 100644 --- a/resources/views/surveyor/components/pembanding-tanah-bangunan-unit.blade.php +++ b/resources/views/surveyor/components/pembanding-tanah-bangunan-unit.blade.php @@ -113,12 +113,12 @@ @endphp
- - +
- +