$value) { if (empty($key) || empty($value)) { $invalidFields[] = "jenis_asset[$key]"; } } // Validasi data `alamat` $alamat = $assetData['asset']['alamat'] ?? []; foreach ($alamat as $key => $alamatData) { if (empty($key)) { $invalidFields[] = "alamat[$key]"; } foreach ($alamatData as $field => $value) { if (empty($value)) { $invalidFields[] = "alamat[$key][$field]"; } } } // Validasi data `hub_cadeb` $hubCadeb = $assetData['asset']['hub_cadeb'] ?? []; foreach ($hubCadeb as $key => $value) { if (empty($key) || empty($value)) { $invalidFields[] = "Hubungan cadeb/debitur dengan Pemilik Jaminan"; } } // Validasi data `hub_cadeb_penghuni` $hubCadebPenghuni = $assetData['asset']['hub_cadeb_penghuni'] ?? []; foreach ($hubCadebPenghuni as $key => $value) { if (empty($key) || empty($value)) { $invalidFields[] = "Hubungan Cadeb/Debitur dengan Penghuni Jaminan"; } } // Validasi data tambahan lainnya $fieldsToValidate = [ 'pihak_bank', 'kordinat_lng', 'kordinat_lat', 'nomor_nib', ]; foreach ($fieldsToValidate as $field) { if (empty($assetData['asset'][$field])) { $invalidFields[] = $field; } } // validasi signature $signature = [ 'penilai', 'cabang', 'debitur', ]; foreach ($signature as $value) { if (empty($assetData['signature'][$value])) { $invalidFields[] = 'Tanda tangan' . $value . ' tidak ada'; } } // Kembalikan daftar field yang tidak valid return $invalidFields; } public function validateTanah(array $data): array { $invalidFields = []; if (empty($data['tanah']['luas_tanah'])) { $invalidFields[] = 'luas tanah'; } if (empty($data['tanah']['hadap_mata_angin'])) { $invalidFields[] = 'hadap mata angin'; } // Validasi bentuk tanah if (empty($data['tanah']['bentuk_tanah'])) { $invalidFields[] = 'bentuk tanah'; } // Validasi kontur tanah if (empty($data['tanah']['kontur_tanah'])) { $invalidFields[] = 'kontur tanah'; } // Validasi ketinggian tanah if (empty($data['tanah']['ketinggian_jalan']) && empty($data['tanah']['ketinggian_lebih_tinggi']) && empty($data['tanah']['ketinggian_lebih_rendah'])) { $invalidFields[] = 'ketinggian tanah'; } // Validasi kontur jalan if (empty($data['tanah']['kontur_jalan'])) { $invalidFields[] = 'kontur jalan'; } // Validasi posisi kavling if (empty($data['tanah']['posisi_kavling'])) { $invalidFields[] = 'posisi kavling'; } // Validasi tusuk sate if (!isset($data['tanah']['tusuk_sate'])) { $invalidFields[] = 'tusuk sate'; } // Validasi lockland if (!isset($data['tanah']['lockland'])) { $invalidFields[] = 'lockland'; } // Validasi kondisi fisik tanah if (empty($data['tanah']['kondisi_fisik_tanah'])) { $invalidFields[] = 'kondisi fisik tanah'; } return $invalidFields; } public function validateBangunan(array $data): array { $invalidFields = []; // Validasi luas tanah banguna if (empty($data['bangunan']['luas_tanah_bagunan'])) { $invalidFields[] = 'luas bangunan'; } // Validasi jenis bangunan if (empty($data['bangunan']['jenis_bangunan'])) { $invalidFields[] = 'jenis bangunan'; } // Validasi kondisi bangunan if (empty($data['bangunan']['kondisi_bangunan'])) { $invalidFields[] = 'kondisi bangunan'; } // Validasi sifat bangunan if (empty($data['bangunan']['sifat_bangunan'])) { $invalidFields[] = 'sifat bangunan'; } // Validasi sifat bangunan input if (empty($data['bangunan']['sifat_bangunan_input'])) { $invalidFields[] = 'sifat bangunan input'; } // Validasi sarana pelengkap if (empty($data['bangunan']['sarana_pelengkap'])) { $invalidFields[] = 'sarana pelengkap'; } // Validasi sarana pelengkap input if (empty($data['bangunan']['sarana_pelengkap_input'])) { $invalidFields[] = 'sarana pelengkap input'; } return $invalidFields; } public function validateLingkungan(array $data): array { $invalidFields = []; // Validasi jarak jalan utama if (empty($data['lingkungan']['jarak_jalan_utama'])) { $invalidFields[] = 'jarak jalan utama'; } // Validasi jalan lingkungan if (empty($data['lingkungan']['jalan_linkungan'])) { $invalidFields[] = 'jalan lingkungan'; } // Validasi jarak CBD point if (empty($data['lingkungan']['jarak_cbd_point'])) { $invalidFields[] = 'jarak CBD point'; } // Validasi nama CBD point if (empty($data['lingkungan']['nama_cbd_point'])) { $invalidFields[] = 'nama CBD point'; } // Validasi lebar perkerasan jalan if (empty($data['lingkungan']['lebar_perkerasan_jalan'])) { $invalidFields[] = 'lebar perkerasan jalan'; } // Validasi perkerasan jalan if (empty($data['lingkungan']['perkerasan_jalan'])) { $invalidFields[] = 'perkerasan jalan'; } // Validasi lalu lintas if (empty($data['lingkungan']['lalu_lintas'])) { $invalidFields[] = 'lalu lintas'; } // Validasi golongan masyarakat sekitar if (empty($data['lingkungan']['gol_mas_sekitar'])) { $invalidFields[] = 'golongan masyarakat sekitar'; } // Validasi tingkat keramaian if (empty($data['lingkungan']['tingkat_keramaian'])) { $invalidFields[] = 'tingkat keramaian'; } // Validasi terletak di area if (empty($data['lingkungan']['terletak_diarea'])) { $invalidFields[] = 'terletak di area'; } // Validasi lokasi sekitar if (isset($data['lingkungan']['disekitar_lokasi']) && $data['lingkungan']['disekitar_lokasi'] === 'yes') { if (empty($data['lingkungan']['kondisi_bagunan_disekitar_lokasi'])) { $invalidFields[] = 'kondisi bangunan di sekitar lokasi'; } if (empty($data['lingkungan']['sifat_bagunan_disekitar_lokasi'])) { $invalidFields[] = 'sifat bangunan di sekitar lokasi'; } } // Validasi dekat makam if (isset($data['lingkungan']['dekat_makam']) && $data['lingkungan']['dekat_makam'] === 'yes') { if (empty($data['lingkungan']['jarak_makam'])) { $invalidFields[] = 'jarak makam'; } if (empty($data['lingkungan']['nama_makam'])) { $invalidFields[] = 'nama makam'; } } // Validasi dekat TPS if (isset($data['lingkungan']['dekat_tps']) && $data['lingkungan']['dekat_tps'] === 'yes') { if (empty($data['lingkungan']['jarak_tps'])) { $invalidFields[] = 'jarak TPS'; } if (empty($data['lingkungan']['nama_tps'])) { $invalidFields[] = 'nama TPS'; } } // Validasi fasilitas dekat object if (empty($data['lingkungan']['fasilitas_dekat_object'])) { $invalidFields[] = 'fasilitas dekat object'; } // Validasi fasilitas dekat object input if (empty($data['lingkungan']['fasilitas_dekat_object_input'])) { $invalidFields[] = 'fasilitas dekat object input'; } return $invalidFields; } public function validateFactData(array $data): array { $invalidFields = []; // Validasi fakta_positif dan fakta_negatif if (empty($data['fakta']['fakta_positif'])) { $invalidFields[] = 'fakta_positif harus diisi'; } if (empty($data['fakta']['fakta_negatif'])) { $invalidFields[] = 'fakta_negatif harus diisi'; } // Validasi rute_menuju if (empty($data['fakta']['rute_menuju'])) { $invalidFields[] = 'rute_menuju harus diisi'; } // Validasi batas_batas dan batas_batas_input if (empty($data['fakta']['batas_batas']) && empty($data['fakta']['batas_batas_input'])) { $invalidFields[] = 'Batas batas'; } // Validasi kondisi_lingkungan if (empty($data['fakta']['kondisi_lingkungan'])) { $invalidFields[] = 'kondisi_lingkungan harus diisi'; } return $invalidFields; } public function validateRapData(array $data): array { $invalidFields = []; // Validasi pengalaman_developer if (empty($data['pengalaman_developer'])) { $invalidFields[] = 'Pengalaman developer harus diisi'; } // Validasi kondisi_perumahan if (empty($data['kondisi_perumahan'])) { $invalidFields[] = 'Kondisi perumahan harus diisi'; } // Validasi progres_pembangunan if (empty($data['progres_pembangunan'])) { $invalidFields[] = 'Progres pembangunan harus diisi'; } // Validasi partisi if (isset($data['partisi'])) { foreach ($data['partisi'] as $name => $values) { if (empty($values['value'])) { $invalidFields[] = "Partisi '{$name}' harus memiliki nilai"; } } } // Validasi jumlah_unit if (empty($data['jumlah_unit'])) { $invalidFields[] = 'Jumlah unit harus diisi'; } // Validasi batas_batas_perumahan if (empty($data['batas_batas_perumahan'])) { $invalidFields[] = 'Batas batas perumahan harus diisi'; } // Validasi fasus_fasum if (empty($data['fasus_fasum'])) { $invalidFields[] = 'Fasus fasum harus diisi'; } // Validasi harga_unit if (empty($data['harga_unit'])) { $invalidFields[] = 'Harga unit harus diisi'; } // Validasi target_market if (empty($data['target_market'])) { $invalidFields[] = 'Target market harus diisi'; } // Validasi kerjasama_dengan_bank if (empty($data['kerjasama_dengan_bank'])) { $invalidFields[] = 'Kerjasama dengan bank harus diisi'; } // Validasi rute_menuju_lokasi if (empty($data['rute_menuju_lokasi'])) { $invalidFields[] = 'Rute menuju lokasi harus diisi'; } return $invalidFields; } public function validateUnitData(array $data): array { $invalidFields = []; // Validasi action if (empty($data['action'])) { $invalidFields[] = 'Action harus diisi'; } // Validasi luas_unit if (empty($data['luas_unit'])) { $invalidFields[] = 'Luas unit harus diisi'; } // Validasi kondisi_unit if (empty($data['kondisi_unit'])) { $invalidFields[] = 'Kondisi unit harus diisi'; } // Validasi posisi_unit if (empty($data['posisi_unit'])) { $invalidFields[] = 'Posisi unit harus diisi'; } // Validasi lantai if (empty($data['lantai'])) { $invalidFields[] = 'Lantai harus diisi'; } // Validasi view if (empty($data['view'])) { $invalidFields[] = 'View harus diisi'; } // Validasi bentuk_unit if (empty($data['bentuk_unit'])) { $invalidFields[] = 'Bentuk unit harus diisi'; } return $invalidFields; } }