feat(bank-data): tambahkan logika untuk menyimpan data objek penilaian dan data pembanding
- Menambahkan validasi untuk koordinat sebelum menyimpan data objek penilaian. - Menggunakan metode updateOrCreate untuk menyimpan data objek penilaian dan data pembanding. - Memperbaiki penanganan nilai default untuk beberapa atribut saat menyimpan data. - Menambahkan logging untuk koordinat yang tidak valid.
This commit is contained in:
@@ -34,6 +34,64 @@
|
||||
foreach ($inspeksi as $item) {
|
||||
if (isset($item->data_pembanding)) {
|
||||
$data_pembanding = json_decode($item->data_pembanding);
|
||||
|
||||
$objekPenilaian = $data_pembanding->objek_penilaian;
|
||||
if (isset($objekPenilaian)) {
|
||||
$_lat = $objekPenilaian->kordinat_lat;
|
||||
$_lng = $objekPenilaian->kordinat_lng;
|
||||
|
||||
if (!empty($_lat) && !empty($_lng) && $_lng !== null && $_lat !== null && $_lat !== '' && $_lng !== '') {
|
||||
$_lat = floatval($_lat);
|
||||
$_lng = floatval($_lng);
|
||||
if ($_lat >= -90 && $_lat <= 90 && $_lng >= -180 && $_lng <= 180) {
|
||||
|
||||
$_data = [
|
||||
'address' => $objekPenilaian->address,
|
||||
'village_code' => $objekPenilaian->village_code,
|
||||
'district_code' => $objekPenilaian->district_code,
|
||||
'city_code' => $objekPenilaian->city_code,
|
||||
'province_code' => $objekPenilaian->province_code,
|
||||
'tahun' => $item->created_at->format('Y'),
|
||||
//
|
||||
'luas_tanah' => isset($objekPenilaian->luas_tanah) && is_numeric($objekPenilaian->luas_tanah) ? $objekPenilaian->luas_tanah : 0,
|
||||
'luas_bangunan' => isset($objekPenilaian->luas_bangunan) && is_numeric($objekPenilaian->luas_bangunan) ? $objekPenilaian->luas_bangunan : 0,
|
||||
//
|
||||
'tahun_bangunan' => isset($objekPenilaian->tahun_bangunan) && is_numeric($objekPenilaian->tahun_bangunan) ? $objekPenilaian->tahun_bangunan : 0,
|
||||
//
|
||||
'harga' => isset($objekPenilaian->harga) && is_numeric($objekPenilaian->harga) ? $objekPenilaian->harga : 0,
|
||||
'harga_diskon' => isset($objekPenilaian->harga_diskon) && is_numeric($objekPenilaian->harga_diskon) ? $objekPenilaian->harga_diskon : 0,
|
||||
'diskon' => isset($objekPenilaian->diskon) && is_numeric(str_replace(',', '.', $objekPenilaian->diskon)) ? str_replace(',', '.', $objekPenilaian->diskon) : 0,
|
||||
'total' => isset($objekPenilaian->total) && is_numeric($objekPenilaian->total) ? $objekPenilaian->total : 0,
|
||||
'harga_penawaran' => isset($objekPenilaian->harga_penawaran) && is_numeric($objekPenilaian->harga_penawaran) ? $objekPenilaian->harga_penawaran : 0,
|
||||
'nama_nara_sumber' => $objekPenilaian->nama_nara_sumber,
|
||||
'peruntukan' => $objekPenilaian->peruntukan ?? "",
|
||||
//
|
||||
'penawaran' => $objekPenilaian->penawaran ?? "",
|
||||
//
|
||||
'telepon' => $objekPenilaian->telepon ?? "",
|
||||
'hak_properti' => $objekPenilaian->hak_properti ?? "",
|
||||
'jenis_aset' => $objekPenilaian->jenis_aset ?? "",
|
||||
'foto_objek' => $objekPenilaian->foto_objek ?? "",
|
||||
'tanggal' => $objekPenilaian->tanggal ?? null,
|
||||
'kategori' => 'penilaian',
|
||||
];
|
||||
|
||||
|
||||
BankData::updateOrCreate(
|
||||
[
|
||||
'kordinat_lat' => $_lat,
|
||||
'kordinat_lng' => $_lng,
|
||||
'kategori' => 'penilaian'
|
||||
],
|
||||
$_data
|
||||
);
|
||||
}
|
||||
} else {
|
||||
// Invalid coordinates
|
||||
Log::warning("Invalid coordinates: Lat: $_lat, Lng: $_lng");// Do something to handle this situation, such as logging an error or skipping the record
|
||||
}
|
||||
}
|
||||
|
||||
foreach ($data_pembanding->data_pembanding as $dataPembanding) {
|
||||
$lat = $dataPembanding->kordinat_lat;
|
||||
$lng = $dataPembanding->kordinat_lng;
|
||||
@@ -49,15 +107,15 @@
|
||||
'district_code' => $dataPembanding->district_code,
|
||||
'city_code' => $dataPembanding->city_code,
|
||||
'province_code' => $dataPembanding->province_code,
|
||||
'tahun' => is_numeric($dataPembanding->tahun) ? $dataPembanding->tahun : 0,
|
||||
'luas_tanah' => is_numeric($dataPembanding->luas_tanah) ? $dataPembanding->luas_tanah : 0,
|
||||
'luas_bangunan' => is_numeric($dataPembanding->luas_bangunan) ? $dataPembanding->luas_bangunan : 0,
|
||||
'tahun_bangunan' => is_numeric($dataPembanding->tahun_bangunan) ? $dataPembanding->tahun_bangunan : 0,
|
||||
'harga' => is_numeric($dataPembanding->harga) ? $dataPembanding->harga : 0,
|
||||
'harga_diskon' => is_numeric($dataPembanding->harga_diskon) ? $dataPembanding->harga_diskon : 0,
|
||||
'diskon' => is_numeric(str_replace(',', '.', $dataPembanding->diskon)) ? str_replace(',', '.', $dataPembanding->diskon) : 0,
|
||||
'total' => is_numeric($dataPembanding->total) ? $dataPembanding->total : 0,
|
||||
'harga_penawaran' => is_numeric($dataPembanding->harga_penawaran) ? $dataPembanding->harga_penawaran : 0,
|
||||
'tahun' => isset($dataPembanding->tahun) && is_numeric($dataPembanding->tahun) ? $dataPembanding->tahun : 0,
|
||||
'luas_tanah' => isset($dataPembanding->luas_tanah) && is_numeric($dataPembanding->luas_tanah) ? $dataPembanding->luas_tanah : 0,
|
||||
'luas_bangunan' => isset($dataPembanding->luas_bangunan) && is_numeric($dataPembanding->luas_bangunan) ? $dataPembanding->luas_bangunan : 0,
|
||||
'tahun_bangunan' => isset($dataPembanding->tahun_bangunan) && is_numeric($dataPembanding->tahun_bangunan) ? $dataPembanding->tahun_bangunan : 0,
|
||||
'harga' => isset($dataPembanding->harga) && is_numeric($dataPembanding->harga) ? $dataPembanding->harga : 0,
|
||||
'harga_diskon' => isset($dataPembanding->harga_diskon) && is_numeric($dataPembanding->harga_diskon) ? $dataPembanding->harga_diskon : 0,
|
||||
'diskon' => isset($dataPembanding->diskon) && is_numeric(str_replace(',', '.', $dataPembanding->diskon)) ? str_replace(',', '.', $dataPembanding->diskon) : 0,
|
||||
'total' => isset($dataPembanding->total) && is_numeric($dataPembanding->total) ? $dataPembanding->total : 0,
|
||||
'harga_penawaran' => isset($dataPembanding->harga_penawaran) && is_numeric($dataPembanding->harga_penawaran) ? $dataPembanding->harga_penawaran : 0,
|
||||
'nama_nara_sumber' => $dataPembanding->nama_nara_sumber,
|
||||
'peruntukan' => $dataPembanding->peruntukan,
|
||||
'penawaran' => $dataPembanding->penawaran,
|
||||
@@ -72,7 +130,8 @@
|
||||
BankData::updateOrCreate(
|
||||
[
|
||||
'kordinat_lat' => $lat,
|
||||
'kordinat_lng' => $lng
|
||||
'kordinat_lng' => $lng,
|
||||
'kategori' => 'data_pembanding'
|
||||
],
|
||||
$data
|
||||
);
|
||||
@@ -149,7 +208,7 @@
|
||||
}
|
||||
|
||||
if ($search['kategori']) {
|
||||
$query->where('kategori',$search['kategori']);
|
||||
$query->where('kategori', $search['kategori']);
|
||||
}
|
||||
|
||||
if ($search['city_code']) {
|
||||
@@ -214,7 +273,7 @@
|
||||
'luas_tanah' => $item->luas_tanah,
|
||||
'luas_bangunan' => $item->luas_bangunan,
|
||||
'harga' => $item->harga,
|
||||
'sumber' => $item->kategori ? ucwords(str_replace('_',' ',$item->kategori)) : '-',
|
||||
'sumber' => $item->kategori ? ucwords(str_replace('_', ' ', $item->kategori)) : '-',
|
||||
'nilai_pasar' => $item->nilai_pasar,
|
||||
'location' => $item->kordinat_lat . ', ' . $item->kordinat_lng,
|
||||
'address' => formatAlamat($item),
|
||||
|
||||
Reference in New Issue
Block a user