Merge branch 'staging' of https://git.putrakuningan.com/daengdeni/lpj into tender
This commit is contained in:
@@ -1,236 +1,247 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace Modules\Lpj\Http\Controllers;
|
namespace Modules\Lpj\Http\Controllers;
|
||||||
|
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Routing\Controller;
|
use Illuminate\Routing\Controller;
|
||||||
use Modules\Lpj\Http\Requests\BankDataRequest;
|
use Log;
|
||||||
use Modules\Lpj\Models\BankData;
|
use Modules\Location\Models\Province;
|
||||||
use Modules\Lpj\Models\Inspeksi;
|
use Modules\Lpj\Http\Requests\BankDataRequest;
|
||||||
use Modules\Lpj\Models\JenisJaminan;
|
use Modules\Lpj\Models\BankData;
|
||||||
use Modules\Lpj\Services\BankDataService;
|
use Modules\Lpj\Models\Inspeksi;
|
||||||
use Modules\Location\Models\Province;
|
use Modules\Lpj\Models\JenisJaminan;
|
||||||
|
use Modules\Lpj\Services\BankDataService;
|
||||||
|
|
||||||
class BankDataController extends Controller
|
class BankDataController extends Controller
|
||||||
{
|
|
||||||
protected $bankDataService;
|
|
||||||
protected $user;
|
|
||||||
|
|
||||||
public function __construct(BankDataService $bankDataService)
|
|
||||||
{
|
{
|
||||||
$this->bankDataService = $bankDataService;
|
protected $bankDataService;
|
||||||
}
|
protected $user;
|
||||||
|
|
||||||
public function index(Request $request)
|
public function __construct(BankDataService $bankDataService)
|
||||||
{
|
{
|
||||||
$provinces = Province::all();
|
$this->bankDataService = $bankDataService;
|
||||||
$jenisJaminan = JenisJaminan::all();
|
}
|
||||||
|
|
||||||
//insert data pembanding
|
public function index(Request $request)
|
||||||
|
{
|
||||||
|
$provinces = Province::all();
|
||||||
|
$jenisJaminan = JenisJaminan::all();
|
||||||
|
|
||||||
$inspeksi = Inspeksi::all();
|
//insert data pembanding
|
||||||
|
|
||||||
foreach ($inspeksi as $item) {
|
$inspeksi = Inspeksi::all();
|
||||||
if(isset($item->data_pembanding)){
|
|
||||||
$data_pembanding = json_decode($item->data_pembanding);
|
|
||||||
foreach ($data_pembanding->data_pembanding as $dataPembanding) {
|
|
||||||
$lat = $dataPembanding->kordinat_lat;
|
|
||||||
$lng = $dataPembanding->kordinat_lng;
|
|
||||||
|
|
||||||
if (!empty($lat) && !empty($lng) && $lng !== null && $lat !== null && $lat !== '' && $lng !== '') {
|
foreach ($inspeksi as $item) {
|
||||||
$lat = floatval($lat);
|
if (isset($item->data_pembanding)) {
|
||||||
$lng = floatval($lng);
|
$data_pembanding = json_decode($item->data_pembanding);
|
||||||
|
foreach ($data_pembanding->data_pembanding as $dataPembanding) {
|
||||||
|
$lat = $dataPembanding->kordinat_lat;
|
||||||
|
$lng = $dataPembanding->kordinat_lng;
|
||||||
|
|
||||||
if ($lat >= -90 && $lat <= 90 && $lng >= -180 && $lng <= 180) {
|
if (!empty($lat) && !empty($lng) && $lng !== null && $lat !== null && $lat !== '' && $lng !== '') {
|
||||||
$data = [
|
$lat = floatval($lat);
|
||||||
'address' => $dataPembanding->address,
|
$lng = floatval($lng);
|
||||||
'village_code' => $dataPembanding->village_code,
|
|
||||||
'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,
|
|
||||||
'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,
|
|
||||||
];
|
|
||||||
|
|
||||||
BankData::updateOrCreate(
|
if ($lat >= -90 && $lat <= 90 && $lng >= -180 && $lng <= 180) {
|
||||||
[
|
$data = [
|
||||||
'kordinat_lat' => $lat,
|
'address' => $dataPembanding->address,
|
||||||
'kordinat_lng' => $lng
|
'village_code' => $dataPembanding->village_code,
|
||||||
],
|
'district_code' => $dataPembanding->district_code,
|
||||||
$data
|
'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,
|
||||||
|
'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,
|
||||||
|
'kategori' => 'data_pembanding',
|
||||||
|
];
|
||||||
|
|
||||||
|
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
|
||||||
}
|
}
|
||||||
}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'));
|
||||||
}
|
}
|
||||||
|
|
||||||
return view('lpj::bank-data.index', compact('provinces', 'jenisJaminan' ));
|
public function create()
|
||||||
}
|
{
|
||||||
|
return view('lpj::bank-data.create');
|
||||||
public function create()
|
|
||||||
{
|
|
||||||
return view('lpj::bank-data.create');
|
|
||||||
}
|
|
||||||
|
|
||||||
public function store(BankDataRequest $request)
|
|
||||||
{
|
|
||||||
$data = $request->validated();
|
|
||||||
$bankData = $this->bankDataService->createBankData($data);
|
|
||||||
return redirect()->route('lpj.bank-data.show', $bankData->id)->with('success', 'Bank data created successfully.');
|
|
||||||
}
|
|
||||||
|
|
||||||
public function show($id)
|
|
||||||
{
|
|
||||||
$bankData = $this->bankDataService->findBankData($id);
|
|
||||||
return view('lpj::bank-data.show', compact('bankData'));
|
|
||||||
}
|
|
||||||
|
|
||||||
public function edit($id)
|
|
||||||
{
|
|
||||||
$bankData = $this->bankDataService->findBankData($id);
|
|
||||||
return view('lpj::bank-data.edit', compact('bankData'));
|
|
||||||
}
|
|
||||||
|
|
||||||
public function update(BankDataRequest $request, $id)
|
|
||||||
{
|
|
||||||
$data = $request->validated();
|
|
||||||
$bankData = $this->bankDataService->updateBankData($id, $data);
|
|
||||||
return redirect()->route('lpj.bank-data.show', $bankData->id)->with('success', 'Bank data updated successfully.');
|
|
||||||
}
|
|
||||||
|
|
||||||
public function destroy($id)
|
|
||||||
{
|
|
||||||
$this->bankDataService->deleteBankData($id);
|
|
||||||
return redirect()->route('lpj.bank-data.index')->with('success', 'Bank data deleted successfully.');
|
|
||||||
}
|
|
||||||
|
|
||||||
public function dataForDatatables(Request $request)
|
|
||||||
{
|
|
||||||
if (is_null($this->user) || !$this->user->can('bank-data.view')) {
|
|
||||||
//abort(403, 'Sorry! You are not allowed to view bank data.');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Retrieve data from the database
|
public function store(BankDataRequest $request)
|
||||||
$query = BankData::query();
|
{
|
||||||
|
$data = $request->validated();
|
||||||
|
$bankData = $this->bankDataService->createBankData($data);
|
||||||
|
return redirect()
|
||||||
|
->route('lpj.bank-data.show', $bankData->id)
|
||||||
|
->with('success', 'Bank data created successfully.');
|
||||||
|
}
|
||||||
|
|
||||||
// Apply search filter if provided
|
public function show($id)
|
||||||
if ($request->has('search') && !empty($request->get('search'))) {
|
{
|
||||||
$search = $request->get('search');
|
$bankData = $this->bankDataService->findBankData($id);
|
||||||
$search = json_decode($search, true);
|
return view('lpj::bank-data.show', compact('bankData'));
|
||||||
if (is_array($search)) {
|
}
|
||||||
|
|
||||||
if ($search['province_code']) {
|
public function edit($id)
|
||||||
$query->ofProvince($search['province_code']);
|
{
|
||||||
}
|
$bankData = $this->bankDataService->findBankData($id);
|
||||||
|
return view('lpj::bank-data.edit', compact('bankData'));
|
||||||
|
}
|
||||||
|
|
||||||
if ($search['city_code']) {
|
public function update(BankDataRequest $request, $id)
|
||||||
$query->ofCity($search['city_code']);
|
{
|
||||||
}
|
$data = $request->validated();
|
||||||
|
$bankData = $this->bankDataService->updateBankData($id, $data);
|
||||||
|
return redirect()
|
||||||
|
->route('lpj.bank-data.show', $bankData->id)
|
||||||
|
->with('success', 'Bank data updated successfully.');
|
||||||
|
}
|
||||||
|
|
||||||
if ($search['district_code']) {
|
public function destroy($id)
|
||||||
$query->ofDistrict($search['district_code']);
|
{
|
||||||
}
|
$this->bankDataService->deleteBankData($id);
|
||||||
|
return redirect()->route('lpj.bank-data.index')->with('success', 'Bank data deleted successfully.');
|
||||||
|
}
|
||||||
|
|
||||||
if ($search['village_code']) {
|
public function dataForDatatables(Request $request)
|
||||||
$query->ofVillage($search['village_code']);
|
{
|
||||||
}
|
if (is_null($this->user) || !$this->user->can('bank-data.view')) {
|
||||||
|
//abort(403, 'Sorry! You are not allowed to view bank data.');
|
||||||
if ($search['jenis_asset']) {
|
|
||||||
$query->ofAssetType($search['jenis_asset']);
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($search['start_date'] && $search['end_date']) {
|
|
||||||
$query->betweenDates($search['start_date'], $search['end_date']);
|
|
||||||
}
|
|
||||||
} else{
|
|
||||||
$search = $request->get('search');
|
|
||||||
$query->where(function ($q) use ($search) {
|
|
||||||
$q->where('jenis_aset', 'LIKE', '%' . $search . '%');
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Retrieve data from the database
|
||||||
|
$query = BankData::query();
|
||||||
|
|
||||||
|
// Apply search filter if provided
|
||||||
|
if ($request->has('search') && !empty($request->get('search'))) {
|
||||||
|
$search = $request->get('search');
|
||||||
|
$search = json_decode($search, true);
|
||||||
|
if (is_array($search)) {
|
||||||
|
|
||||||
|
if ($search['province_code']) {
|
||||||
|
$query->ofProvince($search['province_code']);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($search['kategori']) {
|
||||||
|
$query->where('kategori',$search['kategori']);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($search['city_code']) {
|
||||||
|
$query->ofCity($search['city_code']);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($search['district_code']) {
|
||||||
|
$query->ofDistrict($search['district_code']);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($search['village_code']) {
|
||||||
|
$query->ofVillage($search['village_code']);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($search['jenis_asset']) {
|
||||||
|
$query->ofAssetType($search['jenis_asset']);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($search['start_date'] && $search['end_date']) {
|
||||||
|
$query->betweenDates($search['start_date'], $search['end_date']);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$search = $request->get('search');
|
||||||
|
$query->where(function ($q) use ($search) {
|
||||||
|
$q->where('jenis_aset', 'LIKE', '%' . $search . '%');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Apply sorting if provided
|
||||||
|
if ($request->has('sortOrder') && !empty($request->get('sortOrder'))) {
|
||||||
|
$order = $request->get('sortOrder');
|
||||||
|
$column = $request->get('sortField');
|
||||||
|
$query->orderBy($column, $order);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get the total count of records
|
||||||
|
$totalRecords = $query->count();
|
||||||
|
|
||||||
|
// Apply pagination if provided
|
||||||
|
if ($request->has('page') && $request->has('size')) {
|
||||||
|
$page = $request->get('page');
|
||||||
|
$size = $request->get('size');
|
||||||
|
$offset = ($page - 1) * $size; // Calculate the offset
|
||||||
|
|
||||||
|
$query->skip($offset)->take($size);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get the filtered count of records
|
||||||
|
$filteredRecords = $query->count();
|
||||||
|
|
||||||
|
// Get the data for the current page
|
||||||
|
$data = $query->get();
|
||||||
|
|
||||||
|
// Format the data as needed
|
||||||
|
$formattedData = $data->map(function ($item) {
|
||||||
|
return [
|
||||||
|
'id' => $item->id,
|
||||||
|
'jenis_aset' => $item->jenis_aset,
|
||||||
|
'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,
|
||||||
|
'sumber' => $item->kategori ? ucwords(str_replace('_',' ',$item->kategori)) : '-',
|
||||||
|
'nilai_pasar' => $item->nilai_pasar,
|
||||||
|
'location' => $item->kordinat_lat . ', ' . $item->kordinat_lng,
|
||||||
|
'address' => formatAlamat($item),
|
||||||
|
'photos' => json_decode($item->foto_objek, true) ?: [$item->foto_objek],
|
||||||
|
// Add more fields as needed
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
// Calculate the page count
|
||||||
|
$pageCount = ceil($totalRecords / $request->get('size'));
|
||||||
|
|
||||||
|
// 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'),
|
||||||
|
'recordsTotal' => $totalRecords,
|
||||||
|
'recordsFiltered' => $filteredRecords,
|
||||||
|
'pageCount' => $pageCount,
|
||||||
|
'page' => $currentPage,
|
||||||
|
'totalCount' => $totalRecords,
|
||||||
|
'data' => $formattedData,
|
||||||
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Apply sorting if provided
|
|
||||||
if ($request->has('sortOrder') && !empty($request->get('sortOrder'))) {
|
|
||||||
$order = $request->get('sortOrder');
|
|
||||||
$column = $request->get('sortField');
|
|
||||||
$query->orderBy($column, $order);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Get the total count of records
|
|
||||||
$totalRecords = $query->count();
|
|
||||||
|
|
||||||
// Apply pagination if provided
|
|
||||||
if ($request->has('page') && $request->has('size')) {
|
|
||||||
$page = $request->get('page');
|
|
||||||
$size = $request->get('size');
|
|
||||||
$offset = ($page - 1) * $size; // Calculate the offset
|
|
||||||
|
|
||||||
$query->skip($offset)->take($size);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Get the filtered count of records
|
|
||||||
$filteredRecords = $query->count();
|
|
||||||
|
|
||||||
// Get the data for the current page
|
|
||||||
$data = $query->get();
|
|
||||||
|
|
||||||
// Format the data as needed
|
|
||||||
$formattedData = $data->map(function ($item) {
|
|
||||||
return [
|
|
||||||
'id' => $item->id,
|
|
||||||
'jenis_aset' => $item->jenis_aset,
|
|
||||||
'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),
|
|
||||||
'photos' => json_decode($item->foto_objek, true) ?: [$item->foto_objek],
|
|
||||||
// Add more fields as needed
|
|
||||||
];
|
|
||||||
});
|
|
||||||
|
|
||||||
// Calculate the page count
|
|
||||||
$pageCount = ceil($totalRecords / $request->get('size'));
|
|
||||||
|
|
||||||
// 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'),
|
|
||||||
'recordsTotal' => $totalRecords,
|
|
||||||
'recordsFiltered' => $filteredRecords,
|
|
||||||
'pageCount' => $pageCount,
|
|
||||||
'page' => $currentPage,
|
|
||||||
'totalCount' => $totalRecords,
|
|
||||||
'data' => $formattedData,
|
|
||||||
]);
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|||||||
@@ -21,6 +21,8 @@ return new class extends Migration
|
|||||||
*/
|
*/
|
||||||
public function down(): void
|
public function down(): void
|
||||||
{
|
{
|
||||||
$table->enum('status_bayar',['sudah_bayar','belum_bayar'])->default('sudah_bayar')->change();
|
Schema::table('permohonan', function (Blueprint $table) {
|
||||||
|
$table->enum('status_bayar',['sudah_bayar','belum_bayar'])->default('sudah_bayar')->change();
|
||||||
|
});
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -0,0 +1,28 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
|
||||||
|
return new class extends Migration
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the migrations.
|
||||||
|
*/
|
||||||
|
public function up(): void
|
||||||
|
{
|
||||||
|
Schema::table('bank_data', function (Blueprint $table) {
|
||||||
|
$table->enum('kategori',['data_pembanding','penilaian','input'])->default('data_pembanding');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reverse the migrations.
|
||||||
|
*/
|
||||||
|
public function down(): void
|
||||||
|
{
|
||||||
|
Schema::table('bank_data', function (Blueprint $table) {
|
||||||
|
$table->dropColumn('kategori');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
@@ -16,6 +16,16 @@
|
|||||||
<div class="card-body px-5">
|
<div class="card-body px-5">
|
||||||
<form id="filter-form">
|
<form id="filter-form">
|
||||||
<div class="grid gap-4 w-full p-5">
|
<div class="grid gap-4 w-full p-5">
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<label for="kategori" class="block text-sm font-medium text-gray-700">Kategori</label>
|
||||||
|
<select id="kategori" name="kategori" class="select tomselect w-full @error('kategori') border-danger bg-danger-light @enderror">
|
||||||
|
<option value="">Semua Kategori</option>
|
||||||
|
<option value="data_pembanding">Data Pembanding</option>
|
||||||
|
<option value="penilaian">Penilaian</option>
|
||||||
|
<option value="input_manual">Input Manual</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<label for="jenis_asset" class="block text-sm font-medium text-gray-700">Jenis Asset</label>
|
<label for="jenis_asset" class="block text-sm font-medium text-gray-700">Jenis Asset</label>
|
||||||
<select id="jenis_asset" name="jenis_asset" class="select tomselect w-full @error('jenis_asset') border-danger bg-danger-light @enderror">
|
<select id="jenis_asset" name="jenis_asset" class="select tomselect w-full @error('jenis_asset') border-danger bg-danger-light @enderror">
|
||||||
@@ -115,6 +125,10 @@
|
|||||||
<th class="w-14">
|
<th class="w-14">
|
||||||
<input class="checkbox checkbox-sm" data-datatable-check="true" type="checkbox"/>
|
<input class="checkbox checkbox-sm" data-datatable-check="true" type="checkbox"/>
|
||||||
</th>
|
</th>
|
||||||
|
<th class="min-w-[150px]" data-datatable-column="sumber">
|
||||||
|
<span class="sort"> <span class="sort-label"> Sumber </span>
|
||||||
|
<span class="sort-icon"> </span> </span>
|
||||||
|
</th>
|
||||||
<th class="min-w-[150px]" data-datatable-column="jenis_aset">
|
<th class="min-w-[150px]" data-datatable-column="jenis_aset">
|
||||||
<span class="sort"> <span class="sort-label"> Jenis Aset </span>
|
<span class="sort"> <span class="sort-label"> Jenis Aset </span>
|
||||||
<span class="sort-icon"> </span> </span>
|
<span class="sort-icon"> </span> </span>
|
||||||
@@ -236,11 +250,18 @@
|
|||||||
[lat, lng] = item.location.map(coord => parseFloat(coord));
|
[lat, lng] = item.location.map(coord => parseFloat(coord));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const markerColors = {
|
||||||
|
data_pembanding: 'http://maps.google.com/mapfiles/ms/icons/red-dot.png',
|
||||||
|
penilaian: 'http://maps.google.com/mapfiles/ms/icons/blue-dot.png',
|
||||||
|
input_manual: 'http://maps.google.com/mapfiles/ms/icons/yellow-dot.png'
|
||||||
|
};
|
||||||
|
|
||||||
if (lat && lng) {
|
if (lat && lng) {
|
||||||
const marker = new google.maps.Marker({
|
const marker = new google.maps.Marker({
|
||||||
position: {lat: lat, lng: lng},
|
position: {lat: lat, lng: lng},
|
||||||
map: map,
|
map: map,
|
||||||
title: item.jenis_aset
|
title: item.jenis_aset,
|
||||||
|
icon: markerColors[item.kategori] || 'http://maps.google.com/mapfiles/ms/icons/red-dot.png' // Default to red if category is not recognized
|
||||||
});
|
});
|
||||||
|
|
||||||
// Create info window content
|
// Create info window content
|
||||||
@@ -443,6 +464,9 @@
|
|||||||
return checkbox.outerHTML.trim();
|
return checkbox.outerHTML.trim();
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
sumber: {
|
||||||
|
title: 'Sumber'
|
||||||
|
},
|
||||||
jenis_aset: {
|
jenis_aset: {
|
||||||
title: 'Jenis Aset'
|
title: 'Jenis Aset'
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user