update migration file, dan laporan
This commit is contained in:
@@ -14,9 +14,11 @@ use Modules\Location\Models\District;
|
||||
use Modules\Location\Models\Province;
|
||||
use Modules\Location\Models\Village;
|
||||
|
||||
// Load file helper
|
||||
require_once __DIR__ . '/MigInspeksiHelper.php';
|
||||
class MigrationInpseksiSeeder extends Seeder
|
||||
{
|
||||
protected $errorLogFile = __DIR__ . '/csv/inspeksi/mig_inspeksi_error_2025.csv';
|
||||
protected $errorLogFile = __DIR__ . '/csv/inspeksi/mig_inspeksi_2025_error.csv';
|
||||
// protected $fielKesimpulan = ;
|
||||
/**
|
||||
* Run the database seeds.
|
||||
@@ -28,7 +30,7 @@ class MigrationInpseksiSeeder extends Seeder
|
||||
$filePath = realpath(__DIR__ . '/csv/inspeksi/mig_inspeksi_2025.csv');
|
||||
|
||||
if (!$filePath) {
|
||||
Log::error('File csv tidak ditemukan: ' . __DIR__ . '/csv/inspeksi/mig_inspeksi_2022.csv');
|
||||
Log::error('File csv tidak ditemukan: ' . __DIR__ . '/csv/inspeksi/mig_inspeksi_2025.csv');
|
||||
$this->command->error('File csv tidak ditemukan.');
|
||||
return;
|
||||
}
|
||||
@@ -86,74 +88,80 @@ class MigrationInpseksiSeeder extends Seeder
|
||||
}
|
||||
|
||||
|
||||
private function processBatch(
|
||||
array $rows,
|
||||
array &$branchCache,
|
||||
array &$debitureCache,
|
||||
int &$errorCount,
|
||||
array &$errorDebitureIds,
|
||||
int $totalData,
|
||||
int $batchCount,
|
||||
int $currentRow
|
||||
) {
|
||||
// Kelompokkan baris berdasarkan mig_nomor_jaminan
|
||||
$groupedData = $this->groupRowsByJaminan($rows);
|
||||
private function processBatch(
|
||||
array $rows,
|
||||
array &$branchCache,
|
||||
array &$debitureCache,
|
||||
int &$errorCount,
|
||||
array &$errorDebitureIds,
|
||||
int $totalData,
|
||||
int $batchCount,
|
||||
int $currentRow
|
||||
) {
|
||||
// Kelompokkan baris berdasarkan mig_nomor_jaminan
|
||||
$groupedData = $this->groupRowsByJaminan($rows);
|
||||
|
||||
foreach ($groupedData as $nomorJaminan => $groupRows) {
|
||||
// try {
|
||||
// Cek apakah sudah ada di inspeksi
|
||||
foreach ($groupedData as $nomorJaminan => $groupRows) {
|
||||
try {
|
||||
// Ambil informasi permohonan
|
||||
$nomorRegis = $this->getNomorRegistrasiPermohonan($nomorJaminan, $branchCache);
|
||||
if (!$nomorRegis) {
|
||||
Log::warning("Nomor registrasi tidak ditemukan untuk nomor jaminan: {$nomorJaminan}");
|
||||
$errorCount++;
|
||||
$errorDebitureIds[] = $nomorJaminan;
|
||||
continue;
|
||||
}
|
||||
|
||||
// Cek apakah sudah ada data
|
||||
$existingRecord = Inspeksi::where('permohonan_id', $nomorRegis['id'])
|
||||
->where('dokument_id', $nomorRegis['dokument_id'])
|
||||
->whereNotNull('data_form')
|
||||
->first();
|
||||
|
||||
// Ambil informasi permohonan
|
||||
$nomorRegis = $this->getNomorRegistrasiPermohonan($nomorJaminan, $branchCache);
|
||||
if (!$nomorRegis) {
|
||||
Log::warning("Nomor registrasi tidak ditemukan untuk nomor jaminan: {$nomorJaminan}");
|
||||
$errorCount++;
|
||||
$errorDebitureIds[] = $nomorJaminan;
|
||||
continue;
|
||||
}
|
||||
if ($existingRecord) {
|
||||
$this->command->info("Data untuk nomor jaminan {$nomorJaminan} sudah ada. Lewati...");
|
||||
continue;
|
||||
}
|
||||
|
||||
$existingRecord = Inspeksi::where('permohonan_id', $nomorRegis['id'])
|
||||
->where('dokument_id', $nomorRegis['dokument_id'])
|
||||
->whereNotNull('data_form')
|
||||
->first();
|
||||
// Ambil baris pertama untuk created_at/updated_at
|
||||
$firstRow = reset($groupRows);
|
||||
|
||||
if ($existingRecord) {
|
||||
$this->command->info("Data untuk nomor jaminan {$nomorJaminan} sudah ada. Lewati...");
|
||||
continue;
|
||||
}
|
||||
// Bangun JSON lengkap
|
||||
$dataFormJson = $this->buildFullDataForm($groupRows);
|
||||
$jenisJaminan = $this->checkJenisJaminan($groupRows[0]['mig_name'] ?? '');
|
||||
|
||||
// Ambil created_at / updated_at dari baris pertama
|
||||
$firstRow = reset($groupRows);
|
||||
if (!$dataFormJson) {
|
||||
Log::warning("Data form kosong untuk nomor jaminan: {$nomorJaminan}");
|
||||
$errorCount++;
|
||||
$errorDebitureIds[] = $nomorJaminan;
|
||||
continue;
|
||||
}
|
||||
|
||||
// Bangun JSON lengkap
|
||||
$dataFormJson = $this->buildFullDataForm($groupRows);
|
||||
// Simpan ke database hanya sekali per grup
|
||||
Inspeksi::create([
|
||||
'name' => $jenisJaminan,
|
||||
'data_form' => $dataFormJson,
|
||||
'foto_form' => null,
|
||||
'data_pembanding' => null,
|
||||
'permohonan_id' => $nomorRegis['id'] ?? null,
|
||||
'dokument_id' => $nomorRegis['dokument_id'] ?? null,
|
||||
'created_at' => $this->parseTimestamp($firstRow['created_at'] ?? null),
|
||||
'updated_at' => $this->parseTimestamp($firstRow['updated_at'] ?? null),
|
||||
'nomor_lpj' => $nomorJaminan,
|
||||
'processed_at' => now(),
|
||||
'is_mig' => 1
|
||||
]);
|
||||
|
||||
// Simpan ke database hanya sekali per grup
|
||||
Inspeksi::create([
|
||||
'name' => 'tanah,bangunan,lingkungan,fakta,informasi',
|
||||
'data_form' => $dataFormJson,
|
||||
'foto_form' => null,
|
||||
'data_pembanding' => null,
|
||||
'permohonan_id' => $nomorRegis['id'] ?? null,
|
||||
'dokument_id' => $nomorRegis['dokument_id'] ?? null,
|
||||
'created_at' => $this->parseTimestamp($firstRow['created_at']),
|
||||
'updated_at' => $this->parseTimestamp($firstRow['updated_at']),
|
||||
'nomor_lpj' => $nomorJaminan,
|
||||
'processed_at' => now(),
|
||||
'is_mig' => 1
|
||||
]);
|
||||
$this->command->info("Berhasil simpan data inspeksi untuk nomor jaminan: {$nomorJaminan}");
|
||||
|
||||
$this->command->info("Berhasil simpan data inspeksi untuk nomor jaminan: {$nomorJaminan}");
|
||||
|
||||
// } catch (\Exception $e) {
|
||||
// Log::error("Error pada nomor jaminan {$nomorJaminan}: " . $e->getMessage());
|
||||
// $errorCount++;
|
||||
// $errorDebitureIds[] = $nomorJaminan;
|
||||
// continue;
|
||||
// }
|
||||
} catch (\Exception $e) {
|
||||
Log::error("Error pada nomor jaminan {$nomorJaminan}: " . $e->getMessage());
|
||||
$errorCount++;
|
||||
$errorDebitureIds[] = $nomorJaminan;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
}
|
||||
private function groupRowsByJaminan(array $rows): array
|
||||
{
|
||||
$grouped = [];
|
||||
@@ -199,34 +207,29 @@ class MigrationInpseksiSeeder extends Seeder
|
||||
}
|
||||
|
||||
|
||||
private function buildFullDataForm(array $rows)
|
||||
{
|
||||
|
||||
$assetJson = json_decode($this->checkAsset($rows)[0] ?? '', true);
|
||||
$tanahJson = json_decode($this->checkTanah($rows)[0] ?? '', true);
|
||||
$bangunanJson = json_decode($this->checkBangunan($rows)[0] ?? '', true);
|
||||
$lingkunganJson = json_decode($this->checkLingkungan($rows)[0] ?? '', true);
|
||||
|
||||
|
||||
$nomorLpj = $rows[0]['mig_nomor_lpj'] ?? null;
|
||||
|
||||
$kesimpulanRows = $this->loadKesimpulanByNomorLpj($nomorLpj);
|
||||
|
||||
$faktaJson = [];
|
||||
if (!empty($kesimpulanRows)) {
|
||||
$faktaResult = $this->checkKesimpulan($kesimpulanRows);
|
||||
$faktaJson = json_decode($faktaResult[0] ?? '', true)['fakta'] ?? [];
|
||||
}
|
||||
|
||||
return json_encode([
|
||||
'asset' => $assetJson['asset'] ?? [],
|
||||
'tanah' => $tanahJson['tanah'] ?? [],
|
||||
'bangunan' => $bangunanJson['bangunan'] ?? [],
|
||||
'lingkungan' => $lingkunganJson['lingkungan'] ?? [],
|
||||
'fakta' => $faktaJson
|
||||
], JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES);
|
||||
private function buildFullDataForm(array $rows)
|
||||
{
|
||||
if (empty($rows)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
$jenisJaminan = $rows[0]['mig_name'] ?? null;
|
||||
|
||||
if (!$jenisJaminan) {
|
||||
return null;
|
||||
}
|
||||
|
||||
try {
|
||||
$jsonResult = $this->checkBuildJson($jenisJaminan, $rows);
|
||||
// Validasi apakah hasil JSON valid
|
||||
json_decode($jsonResult);
|
||||
return $jsonResult;
|
||||
} catch (\Exception $e) {
|
||||
Log::error("Gagal build JSON untuk jenis jaminan {$jenisJaminan}: " . $e->getMessage());
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private function loadKesimpulanByNomorLpj($nomorLpj)
|
||||
{
|
||||
@@ -264,173 +267,6 @@ class MigrationInpseksiSeeder extends Seeder
|
||||
|
||||
|
||||
|
||||
private function checkTanah($rows)
|
||||
{
|
||||
$dataToInsertJson = [];
|
||||
$tanah = [
|
||||
'luas_tanah' => ['sesuai' => null],
|
||||
'hadap_mata_angin' => ['sesuai' => null],
|
||||
'bentuk_tanah' => ['bentuk_tanah' => [], 'lainnya' => null],
|
||||
'kontur_tanah' => [],
|
||||
'ketinggian_tanah' => ['ketinggian' => [], 'lebih_tinggi' => null, 'lebih_rendah' => null],
|
||||
'kontur_jalan' => null,
|
||||
'ketinggian_jalan' => [],
|
||||
'posisi_kavling' => ['posisi_kavling' => [], 'lainnya' => null],
|
||||
'tusuk_sate' => 'no',
|
||||
'lockland' => 'no',
|
||||
'kondisi_fisik_tanah' => ['kondisi_fisik_tanah' => [], 'lainnya' => null]
|
||||
];
|
||||
|
||||
foreach ($rows as $row) {
|
||||
$name = trim($row['name']);
|
||||
$keySesuaiORTidak = !empty($row['mig_name_keterangan_lain']) ? 'sesuai' : 'tidak sesuai';
|
||||
$value = !empty($row['mig_name_keterangan_lain']) ? $row['mig_name_keterangan_lain'] : $row['mig_name_keterangan'];
|
||||
|
||||
switch ($name) {
|
||||
case 'Luas Tanah':
|
||||
$tanah['luas_tanah'][$keySesuaiORTidak] = $value;
|
||||
break;
|
||||
|
||||
case 'Permukaan dengan Jalan':
|
||||
$tanah['hadap_mata_angin'][$keySesuaiORTidak] = $value;
|
||||
break;
|
||||
|
||||
case 'Bentuk Tanah':
|
||||
if ($value === 'Lainnya') {
|
||||
$tanah['bentuk_tanah']['bentuk_tanah'][] = $value;
|
||||
$tanah['bentuk_tanah']['lainnya'] = $row['mig_name_keterangan_lain'];
|
||||
} else {
|
||||
$tanah['bentuk_tanah']['bentuk_tanah'][] = $value;
|
||||
}
|
||||
break;
|
||||
|
||||
case 'Kontur Tanah':
|
||||
$tanah['kontur_tanah'][] = $value;
|
||||
break;
|
||||
|
||||
case 'Peruntukan Tanah':
|
||||
$tanah['ketinggian_tanah']['ketinggian'][] = $value;
|
||||
break;
|
||||
|
||||
case 'Fisik Tanah':
|
||||
$tanah['kondisi_fisik_tanah']['kondisi_fisik_tanah'][] = $value;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// Isi default jika kosong
|
||||
if (empty($tanah['luas_tanah']['sesuai'])) {
|
||||
$tanah['luas_tanah'] = ['sesuai' => null];
|
||||
}
|
||||
if (empty($tanah['hadap_mata_angin']['sesuai'])) {
|
||||
$tanah['hadap_mata_angin'] = ['sesuai' => null];
|
||||
}
|
||||
|
||||
// Masukkan ke array JSON
|
||||
$dataToInsertJson[] = json_encode([
|
||||
'tanah' => $tanah
|
||||
], JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES);
|
||||
|
||||
return $dataToInsertJson;
|
||||
}
|
||||
|
||||
private function checkBangunan($rows)
|
||||
{
|
||||
$dataToInsertJson = [];
|
||||
|
||||
// Inisialisasi struktur bangunan
|
||||
$bangunan = [
|
||||
'luas_tanah_bagunan' => ['sesuai' => null],
|
||||
'jenis_bangunan' => [],
|
||||
'kondisi_bangunan' => [],
|
||||
'sifat_bangunan' => [],
|
||||
'sifat_bangunan_input' => [null, null, null],
|
||||
'spesifikasi_bangunan' => [
|
||||
[
|
||||
'bagunan' => 'Bangunan 1',
|
||||
'spek_kategori_bangunan' => [
|
||||
'Pondasi' => ['0' => null, '1' => null, 'lainnya' => null],
|
||||
'Struktur' => ['0' => null, '1' => null, 'lainnya' => null],
|
||||
'Rangka Atap' => ['0' => null, 'lainnya' => null],
|
||||
'Tutup Atap' => ['0' => null, 'lainnya' => null],
|
||||
'Plafond' => ['lainnya' => null],
|
||||
'Dinding' => ['0' => null, '1' => null, 'lainnya' => null],
|
||||
'Pelapis Dinding' => ['0' => null, 'lainnya' => null],
|
||||
'Pintu Jendela' => ['0' => null, '1' => null, '2' => null, '3' => null, 'lainnya' => null],
|
||||
'Lantai' => ['0' => null, '1' => null, 'lainnya' => null],
|
||||
]
|
||||
]
|
||||
],
|
||||
'sarana_pelengkap' => [],
|
||||
'sarana_pelengkap_input' => [null, null, null, null, null, null, null, null, null]
|
||||
];
|
||||
|
||||
foreach ($rows as $row) {
|
||||
$name = trim($row['name']);
|
||||
$keySesuaiORTidak = !empty($row['mig_name_keterangan_lain']) ? 'sesuai' : 'tidak sesuai';
|
||||
$value = !empty($row['mig_name_keterangan_lain']) ? $row['mig_name_keterangan_lain'] : $row['mig_name_keterangan'];
|
||||
|
||||
switch ($name) {
|
||||
case 'Luas Bangunan':
|
||||
$bangunan['luas_tanah_bagunan'][$keySesuaiORTidak] = $value;
|
||||
break;
|
||||
|
||||
case 'Jenis Bangunan':
|
||||
if ($value === 'Lainnya') {
|
||||
$bangunan['jenis_bangunan'][] = $value;
|
||||
} else {
|
||||
$bangunan['jenis_bangunan'][] = $value;
|
||||
}
|
||||
break;
|
||||
|
||||
case 'Kondisi Bangunan':
|
||||
$bangunan['kondisi_bangunan'][] = $value;
|
||||
break;
|
||||
|
||||
case 'Sifat Bangunan':
|
||||
$bangunan['sifat_bangunan'][] = $value;
|
||||
break;
|
||||
|
||||
case 'Lantai':
|
||||
$bangunan['spesifikasi_bangunan'][0]['spek_kategori_bangunan']['Lantai']['0'] = $value;
|
||||
break;
|
||||
|
||||
case 'Dinding':
|
||||
$bangunan['spesifikasi_bangunan'][0]['spek_kategori_bangunan']['Dinding']['0'] = $value;
|
||||
break;
|
||||
|
||||
case 'Langit-langit / Plafon':
|
||||
$bangunan['spesifikasi_bangunan'][0]['spek_kategori_bangunan']['Plafond']['lainnya'] = $value;
|
||||
break;
|
||||
|
||||
case 'Kusen-kusen':
|
||||
$bangunan['spesifikasi_bangunan'][0]['spek_kategori_bangunan']['Pintu Jendela']['0'] = $value;
|
||||
break;
|
||||
|
||||
case 'Penutup Atap':
|
||||
$bangunan['spesifikasi_bangunan'][0]['spek_kategori_bangunan']['Tutup Atap']['0'] = $value;
|
||||
break;
|
||||
|
||||
case 'Partisi':
|
||||
$bangunan['spesifikasi_bangunan'][0]['spek_kategori_bangunan']['Dinding']['1'] = $value;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// Isi default jika kosong
|
||||
if (empty($bangunan['luas_tanah_bagunan']['sesuai'])) {
|
||||
$bangunan['luas_tanah_bagunan'] = ['sesuai' => null];
|
||||
}
|
||||
|
||||
// Masukkan ke array JSON
|
||||
$dataToInsertJson[] = json_encode([
|
||||
'bangunan' => $bangunan
|
||||
], JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES);
|
||||
|
||||
return $dataToInsertJson;
|
||||
}
|
||||
|
||||
|
||||
private function checkLingkungan($rows)
|
||||
{
|
||||
$dataToInsertJson = [];
|
||||
@@ -605,9 +441,15 @@ class MigrationInpseksiSeeder extends Seeder
|
||||
}
|
||||
|
||||
// Isi default jika kosong
|
||||
if (empty($hubCadeb)) $hubCadeb = ["tidak sesuai" => null];
|
||||
if (empty($hubPenghuni)) $hubPenghuni = ["tidak sesuai" => null];
|
||||
if (empty($jenisAsset)) $jenisAsset = ["sesuai" => null];
|
||||
if (empty($hubCadeb)) {
|
||||
$hubCadeb = ["tidak sesuai" => null];
|
||||
}
|
||||
if (empty($hubPenghuni)) {
|
||||
$hubPenghuni = ["tidak sesuai" => null];
|
||||
}
|
||||
if (empty($jenisAsset)) {
|
||||
$jenisAsset = ["sesuai" => null];
|
||||
}
|
||||
|
||||
// Bangun struktur JSON
|
||||
$asset = [
|
||||
@@ -677,7 +519,8 @@ class MigrationInpseksiSeeder extends Seeder
|
||||
'gss' => null,
|
||||
'pelebaran_jalan' => null,
|
||||
'nama_petugas' => null,
|
||||
'keterangan' => []
|
||||
'keterangan' => [],
|
||||
'saran' => []
|
||||
];
|
||||
|
||||
foreach ($rows as $row) {
|
||||
@@ -705,13 +548,19 @@ class MigrationInpseksiSeeder extends Seeder
|
||||
$fakta['kondisi_lain_bangunan'][] = $keterangan;
|
||||
break;
|
||||
|
||||
case 'Informasi Dokumen':
|
||||
case 'Lain - lain':
|
||||
$fakta['informasi_dokument'][] = $keterangan;
|
||||
break;
|
||||
|
||||
case 'Lain - lain':
|
||||
case 'CATATAN YANG PERLU DIPERHATIKAN':
|
||||
$fakta['keterangan'][] = $keterangan;
|
||||
break;
|
||||
case 'Catatan':
|
||||
$fakta['keterangan'][] = $keterangan;
|
||||
break;
|
||||
case 'Saran':
|
||||
$fakta['saran'][] = $keterangan;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -838,7 +687,7 @@ class MigrationInpseksiSeeder extends Seeder
|
||||
fclose($handle);
|
||||
}
|
||||
|
||||
private function logError( $nomorJaminan, string $message)
|
||||
private function logError($nomorJaminan, string $message)
|
||||
{
|
||||
Log::error("Error migrasi permohonan [$nomorJaminan]: $message");
|
||||
|
||||
@@ -847,4 +696,163 @@ class MigrationInpseksiSeeder extends Seeder
|
||||
fputcsv($handle, [$nomorJaminan, $message]);
|
||||
|
||||
}
|
||||
|
||||
|
||||
public function checkJenisJaminan($input)
|
||||
{
|
||||
$input = trim($input);
|
||||
switch ($input) {
|
||||
case 'Tanah dan Bangunan eks KPR-BPPN':
|
||||
return 'tanah, bangunan, lingkungan, fakta, informasi';
|
||||
case 'Pabrik':
|
||||
return 'tanah, bangunan, lingkungan, fakta, informasi';
|
||||
case 'Kapal Laut':
|
||||
return 'kapal-laut';
|
||||
|
||||
case 'Tanah dan/atau Bangunan':
|
||||
return 'tanah, bangunan';
|
||||
|
||||
case 'Kendaraan Bermotor':
|
||||
return 'kendaraan-';
|
||||
|
||||
case 'Mesin-mesin dan Peralatan':
|
||||
return 'mesin';
|
||||
|
||||
case 'Barang Dagangan/FEO':
|
||||
return 'barang-dagangan';
|
||||
|
||||
case 'Pesawat Udara':
|
||||
return 'pesawat-udara';
|
||||
|
||||
case 'Alat Berat':
|
||||
return 'alat-berat';
|
||||
|
||||
case 'Deposito':
|
||||
return 'deposito';
|
||||
|
||||
case 'Rekening Giro / Tabungan':
|
||||
return 'rekening-giro-tabungan';
|
||||
|
||||
case 'Emas':
|
||||
return 'emas';
|
||||
|
||||
case 'Jaminan Pribadi / Personal Guarantee':
|
||||
return 'jaminan-pribadi';
|
||||
|
||||
case 'Jaminan Perusahaan / Corporate Guarantee':
|
||||
return 'jaminan-perusahaan';
|
||||
|
||||
case 'Resi Gudang':
|
||||
return 'resi-gudang';
|
||||
|
||||
case 'Surat Berharga dan Saham':
|
||||
return 'surat-berharga-saham';
|
||||
|
||||
case 'Tanah dan Bangunan (KerjaSama)':
|
||||
return 'tanah-bangunan-kerja-sama';
|
||||
|
||||
case 'Tanah Kavling (Kerjasama)':
|
||||
return 'tanah-kavling';
|
||||
|
||||
case 'Persediaan Barang / Barang Dagangan':
|
||||
return 'persediaan-barang';
|
||||
|
||||
case 'Apartemen':
|
||||
return 'apartemen';
|
||||
|
||||
case 'Tagihan / Piutang Dagang':
|
||||
return 'tagihan-piutang';
|
||||
|
||||
case 'Tanah dan/atau Bangunan KPR - SEDERHANA':
|
||||
return 'tanah-bangunan-kpr-sederhana';
|
||||
|
||||
default:
|
||||
return 'lainnya';
|
||||
}
|
||||
}
|
||||
|
||||
public function checkBuildJson($input, $rows = [])
|
||||
{
|
||||
$input = trim($input);
|
||||
|
||||
// Pastikan rows selalu array
|
||||
if (!is_array($rows)) {
|
||||
$rows = [$rows];
|
||||
}
|
||||
|
||||
switch ($input) {
|
||||
case 'Tanah dan Bangunan eks KPR-BPPN':
|
||||
case 'Pabrik':
|
||||
case 'Tanah dan/atau Bangunan':
|
||||
case 'Apartemen':
|
||||
case 'Tanah dan/atau Bangunan KPR - SEDERHANA':
|
||||
$assetJson = json_decode($this->checkAsset($rows)[0] ?? '', true);
|
||||
$tanahJson = json_decode(buildInspeksiTanah($rows)[0] ?? '', true);
|
||||
$bangunanJson = json_decode(buildInspeksiBangunan($rows)[0] ?? '', true);
|
||||
$lingkunganJson = json_decode($this->checkLingkungan($rows)[0] ?? '', true);
|
||||
|
||||
$nomorLpj = $rows[0]['mig_nomor_lpj'] ?? null;
|
||||
$kesimpulanRows = $this->loadKesimpulanByNomorLpj($nomorLpj);
|
||||
|
||||
$faktaJson = [];
|
||||
if (!empty($kesimpulanRows)) {
|
||||
$faktaResult = $this->checkKesimpulan($kesimpulanRows);
|
||||
$faktaJson = json_decode($faktaResult[0] ?? '', true)['fakta'] ?? [];
|
||||
}
|
||||
|
||||
return json_encode([
|
||||
'asset' => $assetJson['asset'] ?? [],
|
||||
'tanah' => $tanahJson['tanah'] ?? [],
|
||||
'bangunan' => $bangunanJson['bangunan'] ?? [],
|
||||
'lingkungan' => $lingkunganJson['lingkungan'] ?? [],
|
||||
'fakta' => $faktaJson
|
||||
], JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES);
|
||||
|
||||
case 'Kapal Laut':
|
||||
$kapal = createInspeksiKapal($rows);
|
||||
return json_encode($kapal, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES);
|
||||
|
||||
case 'Kendaraan Bermotor':
|
||||
$kendaraan = createInspeksiKendaraan($rows);
|
||||
return json_encode($kendaraan, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES);
|
||||
|
||||
case 'Mesin-mesin dan Peralatan':
|
||||
$mesin = createInspeksiMesin($rows);
|
||||
return json_encode($mesin, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES);
|
||||
|
||||
case 'Pesawat Udara':
|
||||
$pesawat = createInspeksiPesawat($rows);
|
||||
return json_encode($pesawat, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES);
|
||||
|
||||
case 'Alat Berat':
|
||||
$alatBerat = createInspeksiAlatBerat($rows);
|
||||
return json_encode($alatBerat, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES);
|
||||
|
||||
case 'Barang Dagangan/FEO':
|
||||
case 'Deposito':
|
||||
case 'Rekening Giro / Tabungan':
|
||||
case 'Emas':
|
||||
case 'Jaminan Pribadi / Personal Guarantee':
|
||||
case 'Jaminan Perusahaan / Corporate Guarantee':
|
||||
case 'Resi Gudang':
|
||||
case 'Surat Berharga dan Saham':
|
||||
case 'Persediaan Barang / Barang Dagangan':
|
||||
case 'Tagihan / Piutang Dagang':
|
||||
return json_encode([
|
||||
'status' => 'pending',
|
||||
'message' => 'Fungsi untuk "' . $input . '" belum diimplementasikan.',
|
||||
'data' => $rows
|
||||
]);
|
||||
case 'Tanah dan Bangunan (KerjaSama)':
|
||||
case 'Tanah Kavling (Kerjasama)':
|
||||
$pesawat = buildRapJsonData($rows);
|
||||
return json_encode($pesawat, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES);
|
||||
default:
|
||||
return json_encode([
|
||||
'status' => 'unknown',
|
||||
'message' => 'Jenis aset tidak dikenali: ' . $input,
|
||||
'data' => $rows
|
||||
]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user