fix(surveyor/penilai): perbaikkan pembanding dan call report
This commit is contained in:
@@ -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)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user