fix(villages): perbaiki pencarian dan pemetaan provinsi untuk desa
- Tambahkan penanganan khusus untuk kode kota di provinsi Papua. - Perbarui aturan validasi untuk kode desa agar mendukung panjang maksimum 13 karakter. - Perbaiki tampilan nama provinsi pada tabel desa dengan menggunakan nama yang sesuai.
This commit is contained in:
@@ -99,8 +99,21 @@
|
||||
if ($request->has('search') && !empty($request->get('search'))) {
|
||||
$search = $request->get('search');
|
||||
$search = explode('|', $search);
|
||||
if(isset($search[0]) &&!empty($search[0])){
|
||||
$query->where('province_code',$search[0]);
|
||||
if(isset($search[0]) && !empty($search[0])){
|
||||
// Define special city codes once
|
||||
$specialCityCodes = ['92.01', '92.04', '92.05', '92.09', '92.10', '92.71'];
|
||||
|
||||
// Handle Papua province special cases
|
||||
if($search[0] == '92'){
|
||||
$query->where('province_code', '92')
|
||||
->whereNotIn('city_code', $specialCityCodes);
|
||||
} else if($search[0] == '92.1'){
|
||||
$query->where('province_code', '92')
|
||||
->whereIn('city_code', $specialCityCodes);
|
||||
} else {
|
||||
// For all other provinces
|
||||
$query->where('province_code', $search[0]);
|
||||
}
|
||||
}
|
||||
if(isset($search[1]) &&!empty($search[1])){
|
||||
$query->where('city_code',$search[1]);
|
||||
@@ -146,6 +159,15 @@
|
||||
// Calculate the current page number
|
||||
$currentPage = 0 + 1;
|
||||
|
||||
$data = $data->map(function ($item) {
|
||||
if (in_array($item->city_code, ['92.01', '92.04', '92.05', '92.09', '92.10', '92.71'])) {
|
||||
$item->province_name = Province::where('code', '92.1')->first()->name;
|
||||
} else {
|
||||
$item->province_name = $item->district->city->province->name;
|
||||
}
|
||||
return $item;
|
||||
});
|
||||
|
||||
// Return the response data as a JSON object
|
||||
return response()->json([
|
||||
'draw' => $request->get('draw'),
|
||||
|
||||
@@ -21,10 +21,10 @@
|
||||
];
|
||||
|
||||
if ($this->method() === 'PUT') {
|
||||
$rules['code'] = 'required|string|max:6|unique:villages,code,' . $this->id;
|
||||
$rules['code'] = 'required|string|max:13|unique:villages,code,' . $this->id;
|
||||
$rules['name'] = 'required|string|max:2554|unique:villages,name,' . $this->id;
|
||||
} else {
|
||||
$rules['code'] = 'required|string|max:6|unique:villages,code';
|
||||
$rules['code'] = 'required|string|max:13|unique:villages,code';
|
||||
$rules['name'] = 'required|string|max:2554|unique:villages,name';
|
||||
}
|
||||
|
||||
|
||||
@@ -47,9 +47,8 @@
|
||||
|
||||
<button class="search btn btn-sm btn-outline btn-primary">
|
||||
<i class="ki-filled ki-setting-4"> </i>
|
||||
<Filters></Filters>
|
||||
</button>
|
||||
<div class="h-[24px] border border-r-gray-200"></div>
|
||||
<div class="border border-r-gray-200"></div>
|
||||
<a class="btn btn-sm btn-light" href="{{ route('locations.villages.export') }}"> Export to Excel </a>
|
||||
<a class="btn btn-sm btn-primary" href="{{ route('locations.villages.create') }}"> Add District </a>
|
||||
</div>
|
||||
@@ -192,7 +191,7 @@
|
||||
province: {
|
||||
title: 'Province',
|
||||
render: (item, data) => {
|
||||
return data.district.city.province.name;
|
||||
return data.province_name;
|
||||
}
|
||||
},
|
||||
actions: {
|
||||
|
||||
Reference in New Issue
Block a user