diff --git a/app/Http/Controllers/BankDataController.php b/app/Http/Controllers/BankDataController.php index ac94545..133f7a4 100644 --- a/app/Http/Controllers/BankDataController.php +++ b/app/Http/Controllers/BankDataController.php @@ -6,6 +6,7 @@ use Illuminate\Http\Request; use Illuminate\Routing\Controller; use Modules\Lpj\Http\Requests\BankDataRequest; use Modules\Lpj\Models\BankData; +use Modules\Lpj\Models\Inspeksi; use Modules\Lpj\Models\JenisJaminan; use Modules\Lpj\Services\BankDataService; use Modules\Location\Models\Province; @@ -25,6 +26,64 @@ class BankDataController extends Controller $provinces = Province::all(); $jenisJaminan = JenisJaminan::all(); + //insert data pembanding + + $inspeksi = Inspeksi::all(); + + foreach ($inspeksi as $item) { + if(isset($item->data_pembanding)){ + $data_pembanding = json_decode($item->data_pembanding); + foreach ($data_pembanding->data_pembanding as $dataPembanding) { + $lat = trim($dataPembanding->kordinat_lat); + $lng = trim($dataPembanding->kordinat_lng); + + if (!empty($lat) && !empty($lng)) { + $lat = floatval($lat); + $lng = floatval($lng); + + if ($lat >= -90 && $lat <= 90 && $lng >= -180 && $lng <= 180) { + $data = [ + 'address' => $dataPembanding->address, + 'village_code' => $dataPembanding->village_code, + 'district_code' => $dataPembanding->district_code, + 'city_code' => $dataPembanding->city_code, + 'province_code' => $dataPembanding->province_code, + 'tahun' => $dataPembanding->tahun, + 'luas_tanah' => $dataPembanding->luas_tanah, + 'luas_bangunan' => $dataPembanding->luas_bangunan, + 'tahun_bangunan' => $dataPembanding->tahun_bangunan, + 'status_nara_sumber' => $dataPembanding->status_nara_sumber, + 'harga' => $dataPembanding->harga, + 'harga_diskon' => $dataPembanding->harga_diskon, + 'diskon' => str_replace(',','.',$dataPembanding->diskon), + 'total' => $dataPembanding->total, + 'nama_nara_sumber' => $dataPembanding->nama_nara_sumber, + 'peruntukan' => $dataPembanding->peruntukan, + 'penawaran' => $dataPembanding->penawaran, + 'telepon' => $dataPembanding->telepon, + 'hak_properti' => $dataPembanding->hak_properti, + 'jenis_aset' => $dataPembanding->jenis_aset, + 'foto_objek' => $dataPembanding->foto_objek, + 'tanggal' => $dataPembanding->tanggal, + 'harga_penawaran' => $dataPembanding->harga_penawaran, + ]; + + BankData::updateOrCreate( + [ + 'kordinat_lat' => $lat, + 'kordinat_lng' => $lng + ], + $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 + } + } + } + } + return view('lpj::bank-data.index', compact('provinces', 'jenisJaminan' )); } @@ -101,7 +160,7 @@ class BankDataController extends Controller } if ($search['start_date'] && $search['end_date']) { - $query->betweenDates($request->start_date, $search['end_date']); + $query->betweenDates($search['start_date'], $search['end_date']); } } else{ $search = $request->get('search'); @@ -141,14 +200,15 @@ class BankDataController extends Controller return [ 'id' => $item->id, 'jenis_aset' => $item->jenis_aset, - 'tanggal' => $item->tanggal->format('d-m-Y'), + 'tanggal' => $item->tanggal ? $item->tanggal->format('d-m-Y') : '-', 'tahun' => $item->tahun, 'luas_tanah' => $item->luas_tanah, 'luas_bangunan' => $item->luas_bangunan, 'harga' => $item->harga, 'nilai_pasar' => $item->nilai_pasar, 'location' => $item->kordinat_lat . ', ' . $item->kordinat_lng, - 'address' => formatAlamat($item) + 'address' => formatAlamat($item), + 'photos' => json_decode($item->foto_objek, true) ?: [$item->foto_objek], // Add more fields as needed ]; }); @@ -159,6 +219,10 @@ class BankDataController extends Controller // Calculate the current page number $currentPage = $request->get('page', 1); + // Ensure current page doesn't exceed page count + $currentPage = min($currentPage, $pageCount); + + // Return the response data as a JSON object return response()->json([ 'draw' => $request->get('draw'), diff --git a/resources/views/bank-data/index.blade.php b/resources/views/bank-data/index.blade.php index 00b184f..15d718b 100644 --- a/resources/views/bank-data/index.blade.php +++ b/resources/views/bank-data/index.blade.php @@ -166,6 +166,13 @@ + +
@endsection @push('scripts') @@ -183,6 +190,26 @@ }); } + function openImageModal(src) { + const modal = document.getElementById('imageModal'); + const modalImage = document.getElementById('modalImage'); + modalImage.src = src; + modal.classList.remove('hidden'); + modal.classList.add('flex'); + } + + function closeImageModal() { + const modal = document.getElementById('imageModal'); + modal.classList.remove('flex'); + modal.classList.add('hidden'); + } + + function changeMainPhoto(thumbnail, index) { + const mainPhoto = thumbnail.closest('.photo-gallery').querySelector('.main-photo img'); + mainPhoto.src = thumbnail.src; + mainPhoto.alt = thumbnail.alt; + } + function updateMapMarkers(data) { // Clear existing markers markers.forEach(marker => marker.setMap(null)); @@ -218,7 +245,7 @@ // Create info window content const contentString = ` -