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') }}">
@@ -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 @@
| Pihak KJPP |
: |
- {{ $surveyor->userPenilaiTeam->name ?? '' }} |
+ {{ $forminspeksi['signature']['kjjp']['name'] ?? $report['pihak_kjjpp'] ?? '' }} |
| Pihak BAGI Cab |
@@ -346,6 +225,23 @@
+ @isset($report['fakta']['fakta_positif'])
+
+
+
+ Faktor positif
+ |
+
+
+ @foreach ($report['fakta']['fakta_positif'] as $key => $item)
+
+ | {{ $item }} |
+
+ @endforeach
+
+
+ @endisset
+ @isset($report['fakta']['fakta_negatif'])
|
@@ -353,15 +249,14 @@
|
- @isset($resumeData['fakta']['fakta_negatif'])
- @foreach ($resumeData['fakta']['fakta_negatif'] as $key => $item)
+ @foreach ($report['fakta']['fakta_negatif'] as $key => $item)
| {{ $item }} |
@endforeach
- @endisset
+ @endisset
@@ -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')
+
-
-
-
-
-
-
-
+ @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
|
-
|
-
+
|
@@ -146,7 +146,7 @@
value="{{ $inspectionData['bangunan']['luas_tanah_bagunan']['sesuai'] ?? ($inspectionData['bangunan']['luas_tanah_bagunan']['tidak sesuai'] ?? '') }}">
-
+
|
@endif