perbaikan form inspeksi dan
This commit is contained in:
@@ -557,10 +557,10 @@ class SurveyorController extends Controller
|
||||
$dataPembanding = [];
|
||||
$pembandingCount = count($request->input('address_pembanding', []));
|
||||
$fotoPembanding = $request->file('foto_objek_pembanding') ?? [];
|
||||
|
||||
|
||||
for ($i = 0; $i < $pembandingCount; $i++) {
|
||||
$pembanding = $this->formatSinglePembanding($request, $i);
|
||||
|
||||
|
||||
// Penanganan foto pembanding
|
||||
if (isset($fotoPembanding[$i]) && $fotoPembanding[$i]->isValid()) {
|
||||
$pembanding['foto_objek'] = $this->handleupdateOrDeleteFile(
|
||||
@@ -569,34 +569,34 @@ class SurveyorController extends Controller
|
||||
"pembanding_{$i}"
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
$dataPembanding[] = $pembanding;
|
||||
}
|
||||
|
||||
|
||||
return $dataPembanding;
|
||||
}
|
||||
|
||||
private function handleupdateOrDeleteFile($file, $type, $prefix)
|
||||
{
|
||||
try {
|
||||
if ($file) {
|
||||
// Generate nama file unik
|
||||
$fileName = $prefix . '_' . uniqid() . '_' . time() . '.' . $file->getClientOriginalExtension();
|
||||
$path = "{$type}/" . date('Y/m');
|
||||
Storage::makeDirectory("public/{$path}");
|
||||
$filePath = $file->storeAs("public/{$path}", $fileName);
|
||||
return str_replace('public/', '', $filePath);
|
||||
}
|
||||
|
||||
return null;
|
||||
|
||||
} catch (\Exception $e) {
|
||||
\Log::error('File upload error: ' . $e->getMessage());
|
||||
throw new \Exception("Gagal mengupload file: " . $e->getMessage());
|
||||
}
|
||||
}
|
||||
{
|
||||
try {
|
||||
if ($file) {
|
||||
// Generate nama file unik
|
||||
$fileName = $prefix . '_' . uniqid() . '_' . time() . '.' . $file->getClientOriginalExtension();
|
||||
$path = "{$type}/" . date('Y/m');
|
||||
Storage::makeDirectory("public/{$path}");
|
||||
$filePath = $file->storeAs("public/{$path}", $fileName);
|
||||
return str_replace('public/', '', $filePath);
|
||||
}
|
||||
|
||||
return null;
|
||||
|
||||
} catch (\Exception $e) {
|
||||
\Log::error('File upload error: ' . $e->getMessage());
|
||||
throw new \Exception("Gagal mengupload file: " . $e->getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
private function formatSinglePembanding($request, $index)
|
||||
{
|
||||
$fields = [
|
||||
@@ -606,16 +606,16 @@ class SurveyorController extends Controller
|
||||
'peruntukan', 'penawaran_transaksi', 'nomor_tlp',
|
||||
'kordinat_lat', 'kordinat_lng', 'jenis_aset',
|
||||
];
|
||||
|
||||
|
||||
$pembanding = [];
|
||||
foreach ($fields as $field) {
|
||||
$inputName = "{$field}_pembanding";
|
||||
$pembanding[$field] = $request->input($inputName)[$index] ?? null;
|
||||
}
|
||||
|
||||
|
||||
// Inisialisasi foto_objek sebagai null
|
||||
$pembanding['foto_objek'] = null;
|
||||
|
||||
|
||||
return $pembanding;
|
||||
}
|
||||
|
||||
@@ -718,10 +718,8 @@ class SurveyorController extends Controller
|
||||
|
||||
$branches = Branch::all();
|
||||
$provinces = Province::all();
|
||||
$debitur = Debiture::find($permohonan->debiture_id);
|
||||
$cities = City::where('province_code', $debitur->province_code)->get();
|
||||
$districts = District::where('city_code', $debitur->city_code)->get();
|
||||
$villages = Village::where('district_code', $debitur->district_code)->get();
|
||||
|
||||
|
||||
|
||||
$surveyor = $id;
|
||||
$basicData = $this->getCommonData();
|
||||
@@ -731,6 +729,28 @@ class SurveyorController extends Controller
|
||||
if ($inpeksi) {
|
||||
$forminspeksi = json_decode($inpeksi->data_form, true);
|
||||
}
|
||||
|
||||
// Default: gunakan data dari debitur
|
||||
$debitur = Debiture::find($permohonan->debiture_id);
|
||||
|
||||
$provinceCode = $debitur->province_code;
|
||||
$cityCode = $debitur->city_code;
|
||||
$districtCode = $debitur->district_code;
|
||||
|
||||
// Jika alamat tidak sesuai, override dengan kode dari alamat
|
||||
|
||||
$cekAlamat = $forminspeksi['asset']['alamat']['tidak sesuai'] ?? null;
|
||||
|
||||
if ($cekAlamat) {
|
||||
$provinceCode = $cekAlamat['province_code'] ?? $provinceCode;
|
||||
$cityCode = $cekAlamat['city_code'] ?? $cityCode;
|
||||
$districtCode = $cekAlamat['district_code'] ?? $districtCode;
|
||||
}
|
||||
|
||||
// Ambil data menggunakan kode yang telah ditentukan
|
||||
$cities = City::where('province_code', $provinceCode)->get();
|
||||
$districts = District::where('city_code', $cityCode)->get();
|
||||
$villages = Village::where('district_code', $districtCode)->get();
|
||||
return view('lpj::surveyor.components.inspeksi', compact(
|
||||
'permohonan',
|
||||
'surveyor',
|
||||
@@ -742,7 +762,8 @@ class SurveyorController extends Controller
|
||||
'villages',
|
||||
'link_url_region',
|
||||
'forminspeksi',
|
||||
'basicData'
|
||||
'basicData',
|
||||
'cekAlamat'
|
||||
));
|
||||
}
|
||||
|
||||
@@ -839,11 +860,11 @@ class SurveyorController extends Controller
|
||||
// Ambil data pendukung
|
||||
$data = $this->getCommonData();
|
||||
$provinces = Province::all();
|
||||
|
||||
|
||||
$cities = City::where('province_code', $this->getCodeAlamat('province_code', $inspectionData))->get();
|
||||
$districts = District::where('city_code', $this->getCodeAlamat('city_code', $inspectionData))->get();
|
||||
$villages = Village::where('district_code',$this->getCodeAlamat('district_code', $inspectionData))->get();
|
||||
|
||||
$villages = Village::where('district_code', $this->getCodeAlamat('district_code', $inspectionData))->get();
|
||||
|
||||
|
||||
|
||||
return view('lpj::surveyor.components.data-pembanding', compact(
|
||||
@@ -868,7 +889,8 @@ class SurveyorController extends Controller
|
||||
}
|
||||
|
||||
|
||||
public function getCodeAlamat($code, $inspectionData){
|
||||
public function getCodeAlamat($code, $inspectionData)
|
||||
{
|
||||
$cekAlamat = isset(
|
||||
$inspectionData['asset']['alamat']['sesuai'],
|
||||
)
|
||||
@@ -1443,18 +1465,10 @@ class SurveyorController extends Controller
|
||||
$data['alamat_sesuai'] => $alamatData
|
||||
],
|
||||
'hub_cadeb' => [
|
||||
$data['hub_cadeb'] => $this->getFieldData(
|
||||
$data,
|
||||
'hub_cadeb',
|
||||
true
|
||||
)
|
||||
$data['hub_cadeb'] => ($data['hub_cadeb'] == 'sesuai') ? $data['hub_cadeb_sesuai'] : $data['hub_cadeb_tidak_sesuai']
|
||||
],
|
||||
'hub_cadeb_penghuni' => [
|
||||
$data['hub_cadeb_penghuni'] => $this->getFieldData(
|
||||
$data,
|
||||
'hub_cadeb_penghuni',
|
||||
true
|
||||
)
|
||||
$data['hub_cadeb_penghuni'] => ($data['hub_cadeb_penghuni'] == 'sesuai') ? $data['hub_cadeb_penghuni_sesuai'] : $data['hub_penghuni_tidak_sesuai']
|
||||
],
|
||||
|
||||
'kordinat_lng' => $data['kordinat_lng'] ?? null,
|
||||
@@ -1473,11 +1487,9 @@ class SurveyorController extends Controller
|
||||
'luas_tanah',
|
||||
true
|
||||
),
|
||||
'hadap_mata_angin' => $this->getFieldData(
|
||||
$data,
|
||||
'hadap_mata_angin',
|
||||
true
|
||||
),
|
||||
'hadap_mata_angin' => [
|
||||
$data['hadap_mata_angin'] => ($data['hadap_mata_angin'] == 'sesuai') ? $data['hadap_mata_angin_sesuai'] : $data['hadap_mata_angin_tidak_sesuai']
|
||||
],
|
||||
'bentuk_tanah' => $this->getFieldData(
|
||||
$data,
|
||||
'bentuk_tanah',
|
||||
@@ -1486,7 +1498,7 @@ class SurveyorController extends Controller
|
||||
),
|
||||
'kontur_tanah' => $data['kontur_tanah'] ?? [],
|
||||
'ketinggian_tanah' => [
|
||||
'ketinggian' => $data['kontur_tanah'] ?? null,
|
||||
'ketinggian' => $data['ketinggian_jalan'] ?? null,
|
||||
'lebih_tinggi' => $data['ketinggian_lebih_tinggi'] ?? null,
|
||||
'lebih_rendah' => $data['ketinggian_lebih_rendah'] ?? null
|
||||
],
|
||||
@@ -1518,33 +1530,37 @@ class SurveyorController extends Controller
|
||||
|
||||
|
||||
foreach ($request->input('nama_bangunan') as $index => $buildingName) {
|
||||
if (empty($buildingName)) continue; // Skip if building name is empty
|
||||
|
||||
if (empty($buildingName)) {
|
||||
continue;
|
||||
} // Skip if building name is empty
|
||||
|
||||
$buildingData = [];
|
||||
$buildingData['bagunan'] = $buildingName;
|
||||
|
||||
|
||||
$specCategories = $request->input('spek_kategori_bangunan');
|
||||
$buildingData['spek_kategori_bangunan'] = [];
|
||||
|
||||
|
||||
if (!empty($specCategories)) {
|
||||
foreach ($specCategories as $category) {
|
||||
if (empty($category)) continue; // Skip empty categories
|
||||
|
||||
if (empty($category)) {
|
||||
continue;
|
||||
} // Skip empty categories
|
||||
|
||||
$specs = $request->input("spek_bangunan.{$index}.{$category}", []);
|
||||
|
||||
|
||||
// Only add category if it has specifications
|
||||
if (!empty($specs)) {
|
||||
$buildingData['spek_kategori_bangunan'][$category] = $specs;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Only add building data if it has specifications
|
||||
if (!empty($buildingData['spek_kategori_bangunan'])) {
|
||||
$result[] = $buildingData;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
return [
|
||||
'bangunan' => [
|
||||
@@ -1575,17 +1591,27 @@ class SurveyorController extends Controller
|
||||
'jarak_cbd_point' => $data['jarak_cbd_point'] ?? null,
|
||||
'nama_cbd_point' => $data['nama_cbd_point'] ?? null,
|
||||
'lebar_perkerasan_jalan' => $data['lebar_perkerasan_jalan'] ?? null,
|
||||
'perkerasan_jalan' => $data['perkerasan_jalan'] ?? null,
|
||||
'perkerasan_jalan' => $this->getFieldData(
|
||||
$data,
|
||||
'perkerasan_jalan',
|
||||
false,
|
||||
'lainnya'
|
||||
),
|
||||
'lalu_lintas' => $data['lalu_lintas'] ?? null,
|
||||
'gol_mas_sekitar' => $data['gol_mas_sekitar'] ?? null,
|
||||
'tingkat_keramaian' => $data['tingkat_keramaian'] ?? null,
|
||||
'terletak_diarea' => $data['terletak_diarea'] ?? null,
|
||||
'terletak_diarea' => $this->getFieldData(
|
||||
$data,
|
||||
'terletak_diarea',
|
||||
false,
|
||||
'lainnya'
|
||||
),
|
||||
'disekitar_lokasi' => $data['disekitar_lokasi'] === 'yes' ? [
|
||||
'kondisi' => $data['kondisi_bagunan_disekitar_lokasi'] ?? null,
|
||||
'sifat' => $data['sifat_bagunan_disekitar_lokasi'] ?? null,
|
||||
] : $data['disekitar_lokasi'],
|
||||
'kondisi_bangunan_sekitar' => $data['kondisi_bangunan_sekitar'] ?? null,
|
||||
'sifat_bangunan_sekitar' => $data['sifat_bangunan_sekitar'] ?? null,
|
||||
'kondisi_bagunan_disekitar_lokasi' => $data['kondisi_bagunan_disekitar_lokasi'] ?? null,
|
||||
'sifat_bagunan_disekitar_lokasi' => $data['sifat_bagunan_disekitar_lokasi'] ?? null,
|
||||
'dekat_makam' => $data['dekat_makam'] ?? null,
|
||||
'jarak_makam' => $data['jarak_makam'] ?? null,
|
||||
'nama_makam' => $data['nama_makam'] ?? null,
|
||||
@@ -1593,7 +1619,12 @@ 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' => $data['fasilitas_dekat_object'] ?? null,
|
||||
'fasilitas_dekat_object' => $this->getFieldData(
|
||||
$data,
|
||||
'fasilitas_dekat_object',
|
||||
false,
|
||||
'lainnya'
|
||||
),
|
||||
]
|
||||
];
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user