Update Module City

This commit is contained in:
daeng.deni@dharma.or.id 2023-06-07 08:14:39 +07:00
parent 37b2b33fc9
commit ecc72eeadb
12 changed files with 1011 additions and 26 deletions

View File

@ -17,6 +17,7 @@
*/
public function dataTable($query)
{
$query = City::with('province.country');
return datatables()
->eloquent($query)
@ -33,11 +34,12 @@
})
->addIndexColumn()
->addColumn('status', function ($model) {
return $model->status == 1 ? 'Active' : 'Inactive';
return view('master::city._status', compact('model'));
})
->addColumn('action', function ($model) {
return view('master::city._action', compact('model'));
});
})
->rawColumns(['status', 'action']);
}
/**
@ -60,10 +62,10 @@
public function html()
{
return $this->builder()
->setTableId('city-table')
->setTableId('master-city-table')
->columns($this->getColumns())
->minifiedAjax()
->orderBy(1, 'asc')
->orderBy(3, 'asc')
->stateSave(false)
->responsive()
->autoWidth(false)
@ -85,7 +87,7 @@
Column::make('DT_RowIndex')->title('No')->orderable(false)->searchable(false),
Column::make('province.country.name')->title(__('Country')),
Column::make('province.name')->title(__('Province')),
Column::make('code')->title(__('Code')),
Column::make('code')->title(__('Area Code')),
Column::make('name')->title(__('Name')),
Column::computed('status')->title(__('Status'))->width(50)->addClass('text-center')->exportable(false),
Column::computed('action')

View File

@ -0,0 +1,554 @@
<?php
namespace Modules\Master\Database\Seeders;
use Illuminate\Database\Seeder;
use Modules\Master\Entities\City;
class CitySeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
$data = $this->data();
foreach ($data as $value) {
City::create([
'province_id' => $this->getProvinceId($value['province']),
'code' => $value['code'],
'name' => $value['name'],
]);
}
}
public function data()
{
return [
['province' => 11, 'code' => '11.01', 'name' => 'KAB. ACEH SELATAN'],
['province' => 11, 'code' => '11.02', 'name' => 'KAB. ACEH TENGGARA'],
['province' => 11, 'code' => '11.03', 'name' => 'KAB. ACEH TIMUR'],
['province' => 11, 'code' => '11.04', 'name' => 'KAB. ACEH TENGAH'],
['province' => 11, 'code' => '11.05', 'name' => 'KAB. ACEH BARAT'],
['province' => 11, 'code' => '11.06', 'name' => 'KAB. ACEH BESAR'],
['province' => 11, 'code' => '11.07', 'name' => 'KAB. PIDIE'],
['province' => 11, 'code' => '11.08', 'name' => 'KAB. ACEH UTARA'],
['province' => 11, 'code' => '11.09', 'name' => 'KAB. SIMEULUE'],
['province' => 11, 'code' => '11.10', 'name' => 'KAB. ACEH SINGKIL'],
['province' => 11, 'code' => '11.11', 'name' => 'KAB. BIREUEN'],
['province' => 11, 'code' => '11.12', 'name' => 'KAB. ACEH BARAT DAYA'],
['province' => 11, 'code' => '11.13', 'name' => 'KAB. GAYO LUES'],
['province' => 11, 'code' => '11.14', 'name' => 'KAB. ACEH JAYA'],
['province' => 11, 'code' => '11.15', 'name' => 'KAB. NAGAN RAYA'],
['province' => 11, 'code' => '11.16', 'name' => 'KAB. ACEH TAMIANG'],
['province' => 11, 'code' => '11.17', 'name' => 'KAB. BENER MERIAH'],
['province' => 11, 'code' => '11.18', 'name' => 'KAB. PIDIE JAYA'],
['province' => 11, 'code' => '11.71', 'name' => 'KOTA BANDA ACEH'],
['province' => 11, 'code' => '11.72', 'name' => 'KOTA SABANG'],
['province' => 11, 'code' => '11.73', 'name' => 'KOTA LHOKSEUMAWE'],
['province' => 11, 'code' => '11.74', 'name' => 'KOTA LANGSA'],
['province' => 11, 'code' => '11.75', 'name' => 'KOTA SUBULUSSALAM'],
['province' => 12, 'code' => '12.01', 'name' => 'KAB. TAPANULI TENGAH'],
['province' => 12, 'code' => '12.02', 'name' => 'KAB. TAPANULI UTARA'],
['province' => 12, 'code' => '12.03', 'name' => 'KAB. TAPANULI SELATAN'],
['province' => 12, 'code' => '12.04', 'name' => 'KAB. NIAS'],
['province' => 12, 'code' => '12.05', 'name' => 'KAB. LANGKAT'],
['province' => 12, 'code' => '12.06', 'name' => 'KAB. KARO'],
['province' => 12, 'code' => '12.07', 'name' => 'KAB. DELI SERDANG'],
['province' => 12, 'code' => '12.08', 'name' => 'KAB. SIMALUNGUN'],
['province' => 12, 'code' => '12.09', 'name' => 'KAB. ASAHAN'],
['province' => 12, 'code' => '12.10', 'name' => 'KAB. LABUHANBATU'],
['province' => 12, 'code' => '12.11', 'name' => 'KAB. DAIRI'],
['province' => 12, 'code' => '12.12', 'name' => 'KAB. TOBA'],
['province' => 12, 'code' => '12.13', 'name' => 'KAB. MANDAILING NATAL'],
['province' => 12, 'code' => '12.14', 'name' => 'KAB. NIAS SELATAN'],
['province' => 12, 'code' => '12.15', 'name' => 'KAB. PAKPAK BHARAT'],
['province' => 12, 'code' => '12.16', 'name' => 'KAB. HUMBANG HASUNDUTAN'],
['province' => 12, 'code' => '12.17', 'name' => 'KAB. SAMOSIR'],
['province' => 12, 'code' => '12.18', 'name' => 'KAB. SERDANG BEDAGAI'],
['province' => 12, 'code' => '12.19', 'name' => 'KAB. BATU BARA'],
['province' => 12, 'code' => '12.20', 'name' => 'KAB. PADANG LAWAS UTARA'],
['province' => 12, 'code' => '12.21', 'name' => 'KAB. PADANG LAWAS'],
['province' => 12, 'code' => '12.22', 'name' => 'KAB. LABUHANBATU SELATAN'],
['province' => 12, 'code' => '12.23', 'name' => 'KAB. LABUHANBATU UTARA'],
['province' => 12, 'code' => '12.24', 'name' => 'KAB. NIAS UTARA'],
['province' => 12, 'code' => '12.25', 'name' => 'KAB. NIAS BARAT'],
['province' => 12, 'code' => '12.71', 'name' => 'KOTA MEDAN'],
['province' => 12, 'code' => '12.72', 'name' => 'KOTA PEMATANGSIANTAR'],
['province' => 12, 'code' => '12.73', 'name' => 'KOTA SIBOLGA'],
['province' => 12, 'code' => '12.74', 'name' => 'KOTA TANJUNG BALAI'],
['province' => 12, 'code' => '12.75', 'name' => 'KOTA BINJAI'],
['province' => 12, 'code' => '12.76', 'name' => 'KOTA TEBING TINGGI'],
['province' => 12, 'code' => '12.77', 'name' => 'KOTA PADANGSIDIMPUAN'],
['province' => 12, 'code' => '12.78', 'name' => 'KOTA GUNUNGSITOLI'],
['province' => 13, 'code' => '13.01', 'name' => 'KAB. PESISIR SELATAN'],
['province' => 13, 'code' => '13.02', 'name' => 'KAB. SOLOK'],
['province' => 13, 'code' => '13.03', 'name' => 'KAB. SIJUNJUNG'],
['province' => 13, 'code' => '13.04', 'name' => 'KAB. TANAH DATAR'],
['province' => 13, 'code' => '13.05', 'name' => 'KAB. PADANG PARIAMAN'],
['province' => 13, 'code' => '13.06', 'name' => 'KAB. AGAM'],
['province' => 13, 'code' => '13.07', 'name' => 'KAB. LIMA PULUH KOTA'],
['province' => 13, 'code' => '13.08', 'name' => 'KAB. PASAMAN'],
['province' => 13, 'code' => '13.09', 'name' => 'KAB. KEPULAUAN MENTAWAI'],
['province' => 13, 'code' => '13.10', 'name' => 'KAB. DHARMASRAYA'],
['province' => 13, 'code' => '13.11', 'name' => 'KAB. SOLOK SELATAN'],
['province' => 13, 'code' => '13.12', 'name' => 'KAB. PASAMAN BARAT'],
['province' => 13, 'code' => '13.71', 'name' => 'KOTA PADANG'],
['province' => 13, 'code' => '13.72', 'name' => 'KOTA SOLOK'],
['province' => 13, 'code' => '13.73', 'name' => 'KOTA SAWAHLUNTO'],
['province' => 13, 'code' => '13.74', 'name' => 'KOTA PADANG PANJANG'],
['province' => 13, 'code' => '13.75', 'name' => 'KOTA BUKITTINGGI'],
['province' => 13, 'code' => '13.76', 'name' => 'KOTA PAYAKUMBUH'],
['province' => 13, 'code' => '13.77', 'name' => 'KOTA PARIAMAN'],
['province' => 14, 'code' => '14.01', 'name' => 'KAB. KAMPAR'],
['province' => 14, 'code' => '14.02', 'name' => 'KAB. INDRAGIRI HULU'],
['province' => 14, 'code' => '14.03', 'name' => 'KAB. BENGKALIS'],
['province' => 14, 'code' => '14.04', 'name' => 'KAB. INDRAGIRI HILIR'],
['province' => 14, 'code' => '14.05', 'name' => 'KAB. PELALAWAN'],
['province' => 14, 'code' => '14.06', 'name' => 'KAB. ROKAN HULU'],
['province' => 14, 'code' => '14.07', 'name' => 'KAB. ROKAN HILIR'],
['province' => 14, 'code' => '14.08', 'name' => 'KAB. SIAK'],
['province' => 14, 'code' => '14.09', 'name' => 'KAB. KUANTAN SINGINGI'],
['province' => 14, 'code' => '14.10', 'name' => 'KAB. KEPULAUAN MERANTI'],
['province' => 14, 'code' => '14.71', 'name' => 'KOTA PEKANBARU'],
['province' => 14, 'code' => '14.72', 'name' => 'KOTA DUMAI'],
['province' => 15, 'code' => '15.01', 'name' => 'KAB. KERINCI'],
['province' => 15, 'code' => '15.02', 'name' => 'KAB. MERANGIN'],
['province' => 15, 'code' => '15.03', 'name' => 'KAB. SAROLANGUN'],
['province' => 15, 'code' => '15.04', 'name' => 'KAB. BATANGHARI'],
['province' => 15, 'code' => '15.05', 'name' => 'KAB. MUARO JAMBI'],
['province' => 15, 'code' => '15.06', 'name' => 'KAB. TANJUNG JABUNG BARAT'],
['province' => 15, 'code' => '15.07', 'name' => 'KAB. TANJUNG JABUNG TIMUR'],
['province' => 15, 'code' => '15.08', 'name' => 'KAB. BUNGO'],
['province' => 15, 'code' => '15.09', 'name' => 'KAB. TEBO'],
['province' => 15, 'code' => '15.71', 'name' => 'KOTA JAMBI'],
['province' => 15, 'code' => '15.72', 'name' => 'KOTA SUNGAI PENUH'],
['province' => 16, 'code' => '16.01', 'name' => 'KAB. OGAN KOMERING ULU'],
['province' => 16, 'code' => '16.02', 'name' => 'KAB. OGAN KOMERING ILIR'],
['province' => 16, 'code' => '16.03', 'name' => 'KAB. MUARA ENIM'],
['province' => 16, 'code' => '16.04', 'name' => 'KAB. LAHAT'],
['province' => 16, 'code' => '16.05', 'name' => 'KAB. MUSI RAWAS'],
['province' => 16, 'code' => '16.06', 'name' => 'KAB. MUSI BANYUASIN'],
['province' => 16, 'code' => '16.07', 'name' => 'KAB. BANYUASIN'],
['province' => 16, 'code' => '16.08', 'name' => 'KAB. OGAN KOMERING ULU TIMUR'],
['province' => 16, 'code' => '16.09', 'name' => 'KAB. OGAN KOMERING ULU SELATAN'],
['province' => 16, 'code' => '16.10', 'name' => 'KAB. OGAN ILIR'],
['province' => 16, 'code' => '16.11', 'name' => 'KAB. EMPAT LAWANG'],
['province' => 16, 'code' => '16.12', 'name' => 'KAB. PENUKAL ABAB LEMATANG ILIR'],
['province' => 16, 'code' => '16.13', 'name' => 'KAB. MUSI RAWAS UTARA'],
['province' => 16, 'code' => '16.71', 'name' => 'KOTA PALEMBANG'],
['province' => 16, 'code' => '16.72', 'name' => 'KOTA PAGAR ALAM'],
['province' => 16, 'code' => '16.73', 'name' => 'KOTA LUBUK LINGGAU'],
['province' => 16, 'code' => '16.74', 'name' => 'KOTA PRABUMULIH'],
['province' => 17, 'code' => '17.01', 'name' => 'KAB. BENGKULU SELATAN'],
['province' => 17, 'code' => '17.02', 'name' => 'KAB. REJANG LEBONG'],
['province' => 17, 'code' => '17.03', 'name' => 'KAB. BENGKULU UTARA'],
['province' => 17, 'code' => '17.04', 'name' => 'KAB. KAUR'],
['province' => 17, 'code' => '17.05', 'name' => 'KAB. SELUMA'],
['province' => 17, 'code' => '17.06', 'name' => 'KAB. MUKO MUKO'],
['province' => 17, 'code' => '17.07', 'name' => 'KAB. LEBONG'],
['province' => 17, 'code' => '17.08', 'name' => 'KAB. KEPAHIANG'],
['province' => 17, 'code' => '17.09', 'name' => 'KAB. BENGKULU TENGAH'],
['province' => 17, 'code' => '17.71', 'name' => 'KOTA BENGKULU'],
['province' => 18, 'code' => '18.01', 'name' => 'KAB. LAMPUNG SELATAN'],
['province' => 18, 'code' => '18.02', 'name' => 'KAB. LAMPUNG TENGAH'],
['province' => 18, 'code' => '18.03', 'name' => 'KAB. LAMPUNG UTARA'],
['province' => 18, 'code' => '18.04', 'name' => 'KAB. LAMPUNG BARAT'],
['province' => 18, 'code' => '18.05', 'name' => 'KAB. TULANG BAWANG'],
['province' => 18, 'code' => '18.06', 'name' => 'KAB. TANGGAMUS'],
['province' => 18, 'code' => '18.07', 'name' => 'KAB. LAMPUNG TIMUR'],
['province' => 18, 'code' => '18.08', 'name' => 'KAB. WAY KANAN'],
['province' => 18, 'code' => '18.09', 'name' => 'KAB. PESAWARAN'],
['province' => 18, 'code' => '18.10', 'name' => 'KAB. PRINGSEWU'],
['province' => 18, 'code' => '18.11', 'name' => 'KAB. MESUJI'],
['province' => 18, 'code' => '18.12', 'name' => 'KAB. TULANG BAWANG BARAT'],
['province' => 18, 'code' => '18.13', 'name' => 'KAB. PESISIR BARAT'],
['province' => 18, 'code' => '18.71', 'name' => 'KOTA BANDAR LAMPUNG'],
['province' => 18, 'code' => '18.72', 'name' => 'KOTA METRO'],
['province' => 19, 'code' => '19.01', 'name' => 'KAB. BANGKA'],
['province' => 19, 'code' => '19.02', 'name' => 'KAB. BELITUNG'],
['province' => 19, 'code' => '19.03', 'name' => 'KAB. BANGKA SELATAN'],
['province' => 19, 'code' => '19.04', 'name' => 'KAB. BANGKA TENGAH'],
['province' => 19, 'code' => '19.05', 'name' => 'KAB. BANGKA BARAT'],
['province' => 19, 'code' => '19.06', 'name' => 'KAB. BELITUNG TIMUR'],
['province' => 19, 'code' => '19.71', 'name' => 'KOTA PANGKAL PINANG'],
['province' => 21, 'code' => '21.01', 'name' => 'KAB. BINTAN'],
['province' => 21, 'code' => '21.02', 'name' => 'KAB. KARIMUN'],
['province' => 21, 'code' => '21.03', 'name' => 'KAB. NATUNA'],
['province' => 21, 'code' => '21.04', 'name' => 'KAB. LINGGA'],
['province' => 21, 'code' => '21.05', 'name' => 'KAB. KEPULAUAN ANAMBAS'],
['province' => 21, 'code' => '21.71', 'name' => 'KOTA BATAM'],
['province' => 21, 'code' => '21.72', 'name' => 'KOTA TANJUNG PINANG'],
['province' => 31, 'code' => '31.01', 'name' => 'KAB. ADM. KEP. SERIBU'],
['province' => 31, 'code' => '31.71', 'name' => 'KOTA ADM. JAKARTA PUSAT'],
['province' => 31, 'code' => '31.72', 'name' => 'KOTA ADM. JAKARTA UTARA'],
['province' => 31, 'code' => '31.73', 'name' => 'KOTA ADM. JAKARTA BARAT'],
['province' => 31, 'code' => '31.74', 'name' => 'KOTA ADM. JAKARTA SELATAN'],
['province' => 31, 'code' => '31.75', 'name' => 'KOTA ADM. JAKARTA TIMUR'],
['province' => 32, 'code' => '32.01', 'name' => 'KAB. BOGOR'],
['province' => 32, 'code' => '32.02', 'name' => 'KAB. SUKABUMI'],
['province' => 32, 'code' => '32.03', 'name' => 'KAB. CIANJUR'],
['province' => 32, 'code' => '32.04', 'name' => 'KAB. BANDUNG'],
['province' => 32, 'code' => '32.05', 'name' => 'KAB. GARUT'],
['province' => 32, 'code' => '32.06', 'name' => 'KAB. TASIKMALAYA'],
['province' => 32, 'code' => '32.07', 'name' => 'KAB. CIAMIS'],
['province' => 32, 'code' => '32.08', 'name' => 'KAB. KUNINGAN'],
['province' => 32, 'code' => '32.09', 'name' => 'KAB. CIREBON'],
['province' => 32, 'code' => '32.10', 'name' => 'KAB. MAJALENGKA'],
['province' => 32, 'code' => '32.11', 'name' => 'KAB. SUMEDANG'],
['province' => 32, 'code' => '32.12', 'name' => 'KAB. INDRAMAYU'],
['province' => 32, 'code' => '32.13', 'name' => 'KAB. SUBANG'],
['province' => 32, 'code' => '32.14', 'name' => 'KAB. PURWAKARTA'],
['province' => 32, 'code' => '32.15', 'name' => 'KAB. KARAWANG'],
['province' => 32, 'code' => '32.16', 'name' => 'KAB. BEKASI'],
['province' => 32, 'code' => '32.17', 'name' => 'KAB. BANDUNG BARAT'],
['province' => 32, 'code' => '32.18', 'name' => 'KAB. PANGANDARAN'],
['province' => 32, 'code' => '32.71', 'name' => 'KOTA BOGOR'],
['province' => 32, 'code' => '32.72', 'name' => 'KOTA SUKABUMI'],
['province' => 32, 'code' => '32.73', 'name' => 'KOTA BANDUNG'],
['province' => 32, 'code' => '32.74', 'name' => 'KOTA CIREBON'],
['province' => 32, 'code' => '32.75', 'name' => 'KOTA BEKASI'],
['province' => 32, 'code' => '32.76', 'name' => 'KOTA DEPOK'],
['province' => 32, 'code' => '32.77', 'name' => 'KOTA CIMAHI'],
['province' => 32, 'code' => '32.78', 'name' => 'KOTA TASIKMALAYA'],
['province' => 32, 'code' => '32.79', 'name' => 'KOTA BANJAR'],
['province' => 33, 'code' => '33.01', 'name' => 'KAB. CILACAP'],
['province' => 33, 'code' => '33.02', 'name' => 'KAB. BANYUMAS'],
['province' => 33, 'code' => '33.03', 'name' => 'KAB. PURBALINGGA'],
['province' => 33, 'code' => '33.04', 'name' => 'KAB. BANJARNEGARA'],
['province' => 33, 'code' => '33.05', 'name' => 'KAB. KEBUMEN'],
['province' => 33, 'code' => '33.06', 'name' => 'KAB. PURWOREJO'],
['province' => 33, 'code' => '33.07', 'name' => 'KAB. WONOSOBO'],
['province' => 33, 'code' => '33.08', 'name' => 'KAB. MAGELANG'],
['province' => 33, 'code' => '33.09', 'name' => 'KAB. BOYOLALI'],
['province' => 33, 'code' => '33.10', 'name' => 'KAB. KLATEN'],
['province' => 33, 'code' => '33.11', 'name' => 'KAB. SUKOHARJO'],
['province' => 33, 'code' => '33.12', 'name' => 'KAB. WONOGIRI'],
['province' => 33, 'code' => '33.13', 'name' => 'KAB. KARANGANYAR'],
['province' => 33, 'code' => '33.14', 'name' => 'KAB. SRAGEN'],
['province' => 33, 'code' => '33.15', 'name' => 'KAB. GROBOGAN'],
['province' => 33, 'code' => '33.16', 'name' => 'KAB. BLORA'],
['province' => 33, 'code' => '33.17', 'name' => 'KAB. REMBANG'],
['province' => 33, 'code' => '33.18', 'name' => 'KAB. PATI'],
['province' => 33, 'code' => '33.19', 'name' => 'KAB. KUDUS'],
['province' => 33, 'code' => '33.20', 'name' => 'KAB. JEPARA'],
['province' => 33, 'code' => '33.21', 'name' => 'KAB. DEMAK'],
['province' => 33, 'code' => '33.22', 'name' => 'KAB. SEMARANG'],
['province' => 33, 'code' => '33.23', 'name' => 'KAB. TEMANGGUNG'],
['province' => 33, 'code' => '33.24', 'name' => 'KAB. KENDAL'],
['province' => 33, 'code' => '33.25', 'name' => 'KAB. BATANG'],
['province' => 33, 'code' => '33.26', 'name' => 'KAB. PEKALONGAN'],
['province' => 33, 'code' => '33.27', 'name' => 'KAB. PEMALANG'],
['province' => 33, 'code' => '33.28', 'name' => 'KAB. TEGAL'],
['province' => 33, 'code' => '33.29', 'name' => 'KAB. BREBES'],
['province' => 33, 'code' => '33.71', 'name' => 'KOTA MAGELANG'],
['province' => 33, 'code' => '33.72', 'name' => 'KOTA SURAKARTA'],
['province' => 33, 'code' => '33.73', 'name' => 'KOTA SALATIGA'],
['province' => 33, 'code' => '33.74', 'name' => 'KOTA SEMARANG'],
['province' => 33, 'code' => '33.75', 'name' => 'KOTA PEKALONGAN'],
['province' => 33, 'code' => '33.76', 'name' => 'KOTA TEGAL'],
['province' => 34, 'code' => '34.01', 'name' => 'KAB. KULON PROGO'],
['province' => 34, 'code' => '34.02', 'name' => 'KAB. BANTUL'],
['province' => 34, 'code' => '34.03', 'name' => 'KAB. GUNUNGKIDUL'],
['province' => 34, 'code' => '34.04', 'name' => 'KAB. SLEMAN'],
['province' => 34, 'code' => '34.71', 'name' => 'KOTA YOGYAKARTA'],
['province' => 35, 'code' => '35.01', 'name' => 'KAB. PACITAN'],
['province' => 35, 'code' => '35.02', 'name' => 'KAB. PONOROGO'],
['province' => 35, 'code' => '35.03', 'name' => 'KAB. TRENGGALEK'],
['province' => 35, 'code' => '35.04', 'name' => 'KAB. TULUNGAGUNG'],
['province' => 35, 'code' => '35.05', 'name' => 'KAB. BLITAR'],
['province' => 35, 'code' => '35.06', 'name' => 'KAB. KEDIRI'],
['province' => 35, 'code' => '35.07', 'name' => 'KAB. MALANG'],
['province' => 35, 'code' => '35.08', 'name' => 'KAB. LUMAJANG'],
['province' => 35, 'code' => '35.09', 'name' => 'KAB. JEMBER'],
['province' => 35, 'code' => '35.10', 'name' => 'KAB. BANYUWANGI'],
['province' => 35, 'code' => '35.11', 'name' => 'KAB. BONDOWOSO'],
['province' => 35, 'code' => '35.12', 'name' => 'KAB. SITUBONDO'],
['province' => 35, 'code' => '35.13', 'name' => 'KAB. PROBOLINGGO'],
['province' => 35, 'code' => '35.14', 'name' => 'KAB. PASURUAN'],
['province' => 35, 'code' => '35.15', 'name' => 'KAB. SIDOARJO'],
['province' => 35, 'code' => '35.16', 'name' => 'KAB. MOJOKERTO'],
['province' => 35, 'code' => '35.17', 'name' => 'KAB. JOMBANG'],
['province' => 35, 'code' => '35.18', 'name' => 'KAB. NGANJUK'],
['province' => 35, 'code' => '35.19', 'name' => 'KAB. MADIUN'],
['province' => 35, 'code' => '35.20', 'name' => 'KAB. MAGETAN'],
['province' => 35, 'code' => '35.21', 'name' => 'KAB. NGAWI'],
['province' => 35, 'code' => '35.22', 'name' => 'KAB. BOJONEGORO'],
['province' => 35, 'code' => '35.23', 'name' => 'KAB. TUBAN'],
['province' => 35, 'code' => '35.24', 'name' => 'KAB. LAMONGAN'],
['province' => 35, 'code' => '35.25', 'name' => 'KAB. GRESIK'],
['province' => 35, 'code' => '35.26', 'name' => 'KAB. BANGKALAN'],
['province' => 35, 'code' => '35.27', 'name' => 'KAB. SAMPANG'],
['province' => 35, 'code' => '35.28', 'name' => 'KAB. PAMEKASAN'],
['province' => 35, 'code' => '35.29', 'name' => 'KAB. SUMENEP'],
['province' => 35, 'code' => '35.71', 'name' => 'KOTA KEDIRI'],
['province' => 35, 'code' => '35.72', 'name' => 'KOTA BLITAR'],
['province' => 35, 'code' => '35.73', 'name' => 'KOTA MALANG'],
['province' => 35, 'code' => '35.74', 'name' => 'KOTA PROBOLINGGO'],
['province' => 35, 'code' => '35.75', 'name' => 'KOTA PASURUAN'],
['province' => 35, 'code' => '35.76', 'name' => 'KOTA MOJOKERTO'],
['province' => 35, 'code' => '35.77', 'name' => 'KOTA MADIUN'],
['province' => 35, 'code' => '35.78', 'name' => 'KOTA SURABAYA'],
['province' => 35, 'code' => '35.79', 'name' => 'KOTA BATU'],
['province' => 36, 'code' => '36.01', 'name' => 'KAB. PANDEGLANG'],
['province' => 36, 'code' => '36.02', 'name' => 'KAB. LEBAK'],
['province' => 36, 'code' => '36.03', 'name' => 'KAB. TANGERANG'],
['province' => 36, 'code' => '36.04', 'name' => 'KAB. SERANG'],
['province' => 36, 'code' => '36.71', 'name' => 'KOTA TANGERANG'],
['province' => 36, 'code' => '36.72', 'name' => 'KOTA CILEGON'],
['province' => 36, 'code' => '36.73', 'name' => 'KOTA SERANG'],
['province' => 36, 'code' => '36.74', 'name' => 'KOTA TANGERANG SELATAN'],
['province' => 51, 'code' => '51.01', 'name' => 'KAB. JEMBRANA'],
['province' => 51, 'code' => '51.02', 'name' => 'KAB. TABANAN'],
['province' => 51, 'code' => '51.03', 'name' => 'KAB. BADUNG'],
['province' => 51, 'code' => '51.04', 'name' => 'KAB. GIANYAR'],
['province' => 51, 'code' => '51.05', 'name' => 'KAB. KLUNGKUNG'],
['province' => 51, 'code' => '51.06', 'name' => 'KAB. BANGLI'],
['province' => 51, 'code' => '51.07', 'name' => 'KAB. KARANGASEM'],
['province' => 51, 'code' => '51.08', 'name' => 'KAB. BULELENG'],
['province' => 51, 'code' => '51.71', 'name' => 'KOTA DENPASAR'],
['province' => 52, 'code' => '52.01', 'name' => 'KAB. LOMBOK BARAT'],
['province' => 52, 'code' => '52.02', 'name' => 'KAB. LOMBOK TENGAH'],
['province' => 52, 'code' => '52.03', 'name' => 'KAB. LOMBOK TIMUR'],
['province' => 52, 'code' => '52.04', 'name' => 'KAB. SUMBAWA'],
['province' => 52, 'code' => '52.05', 'name' => 'KAB. DOMPU'],
['province' => 52, 'code' => '52.06', 'name' => 'KAB. BIMA'],
['province' => 52, 'code' => '52.07', 'name' => 'KAB. SUMBAWA BARAT'],
['province' => 52, 'code' => '52.08', 'name' => 'KAB. LOMBOK UTARA'],
['province' => 52, 'code' => '52.71', 'name' => 'KOTA MATARAM'],
['province' => 52, 'code' => '52.72', 'name' => 'KOTA BIMA'],
['province' => 53, 'code' => '53.01', 'name' => 'KAB. KUPANG'],
['province' => 53, 'code' => '53.02', 'name' => 'KAB TIMOR TENGAH SELATAN'],
['province' => 53, 'code' => '53.03', 'name' => 'KAB. TIMOR TENGAH UTARA'],
['province' => 53, 'code' => '53.04', 'name' => 'KAB. BELU'],
['province' => 53, 'code' => '53.05', 'name' => 'KAB. ALOR'],
['province' => 53, 'code' => '53.06', 'name' => 'KAB. FLORES TIMUR'],
['province' => 53, 'code' => '53.07', 'name' => 'KAB. SIKKA'],
['province' => 53, 'code' => '53.08', 'name' => 'KAB. ENDE'],
['province' => 53, 'code' => '53.09', 'name' => 'KAB. NGADA'],
['province' => 53, 'code' => '53.10', 'name' => 'KAB. MANGGARAI'],
['province' => 53, 'code' => '53.11', 'name' => 'KAB. SUMBA TIMUR'],
['province' => 53, 'code' => '53.12', 'name' => 'KAB. SUMBA BARAT'],
['province' => 53, 'code' => '53.13', 'name' => 'KAB. LEMBATA'],
['province' => 53, 'code' => '53.14', 'name' => 'KAB. ROTE NDAO'],
['province' => 53, 'code' => '53.15', 'name' => 'KAB. MANGGARAI BARAT'],
['province' => 53, 'code' => '53.16', 'name' => 'KAB. NAGEKEO'],
['province' => 53, 'code' => '53.17', 'name' => 'KAB. SUMBA TENGAH'],
['province' => 53, 'code' => '53.18', 'name' => 'KAB. SUMBA BARAT DAYA'],
['province' => 53, 'code' => '53.19', 'name' => 'KAB. MANGGARAI TIMUR'],
['province' => 53, 'code' => '53.20', 'name' => 'KAB. SABU RAIJUA'],
['province' => 53, 'code' => '53.21', 'name' => 'KAB. MALAKA'],
['province' => 53, 'code' => '53.71', 'name' => 'KOTA KUPANG'],
['province' => 61, 'code' => '61.01', 'name' => 'KAB. SAMBAS'],
['province' => 61, 'code' => '61.02', 'name' => 'KAB. MEMPAWAH'],
['province' => 61, 'code' => '61.03', 'name' => 'KAB. SANGGAU'],
['province' => 61, 'code' => '61.04', 'name' => 'KAB. KETAPANG'],
['province' => 61, 'code' => '61.05', 'name' => 'KAB. SINTANG'],
['province' => 61, 'code' => '61.06', 'name' => 'KAB. KAPUAS HULU'],
['province' => 61, 'code' => '61.07', 'name' => 'KAB. BENGKAYANG'],
['province' => 61, 'code' => '61.08', 'name' => 'KAB. LANDAK'],
['province' => 61, 'code' => '61.09', 'name' => 'KAB. SEKADAU'],
['province' => 61, 'code' => '61.10', 'name' => 'KAB. MELAWI'],
['province' => 61, 'code' => '61.11', 'name' => 'KAB. KAYONG UTARA'],
['province' => 61, 'code' => '61.12', 'name' => 'KAB. KUBU RAYA'],
['province' => 61, 'code' => '61.71', 'name' => 'KOTA PONTIANAK'],
['province' => 61, 'code' => '61.72', 'name' => 'KOTA SINGKAWANG'],
['province' => 62, 'code' => '62.01', 'name' => 'KAB. KOTAWARINGIN BARAT'],
['province' => 62, 'code' => '62.02', 'name' => 'KAB. KOTAWARINGIN TIMUR'],
['province' => 62, 'code' => '62.03', 'name' => 'KAB. KAPUAS'],
['province' => 62, 'code' => '62.04', 'name' => 'KAB. BARITO SELATAN'],
['province' => 62, 'code' => '62.05', 'name' => 'KAB. BARITO UTARA'],
['province' => 62, 'code' => '62.06', 'name' => 'KAB. KATINGAN'],
['province' => 62, 'code' => '62.07', 'name' => 'KAB. SERUYAN'],
['province' => 62, 'code' => '62.08', 'name' => 'KAB. SUKAMARA'],
['province' => 62, 'code' => '62.09', 'name' => 'KAB. LAMANDAU'],
['province' => 62, 'code' => '62.10', 'name' => 'KAB. GUNUNG MAS'],
['province' => 62, 'code' => '62.11', 'name' => 'KAB. PULANG PISAU'],
['province' => 62, 'code' => '62.12', 'name' => 'KAB. MURUNG RAYA'],
['province' => 62, 'code' => '62.13', 'name' => 'KAB. BARITO TIMUR'],
['province' => 62, 'code' => '62.71', 'name' => 'KOTA PALANGKARAYA'],
['province' => 63, 'code' => '63.01', 'name' => 'KAB. TANAH LAUT'],
['province' => 63, 'code' => '63.02', 'name' => 'KAB. KOTABARU'],
['province' => 63, 'code' => '63.03', 'name' => 'KAB. BANJAR'],
['province' => 63, 'code' => '63.04', 'name' => 'KAB. BARITO KUALA'],
['province' => 63, 'code' => '63.05', 'name' => 'KAB. TAPIN'],
['province' => 63, 'code' => '63.06', 'name' => 'KAB. HULU SUNGAI SELATAN'],
['province' => 63, 'code' => '63.07', 'name' => 'KAB. HULU SUNGAI TENGAH'],
['province' => 63, 'code' => '63.08', 'name' => 'KAB. HULU SUNGAI UTARA'],
['province' => 63, 'code' => '63.09', 'name' => 'KAB. TABALONG'],
['province' => 63, 'code' => '63.10', 'name' => 'KAB. TANAH BUMBU'],
['province' => 63, 'code' => '63.11', 'name' => 'KAB. BALANGAN'],
['province' => 63, 'code' => '63.71', 'name' => 'KOTA BANJARMASIN'],
['province' => 63, 'code' => '63.72', 'name' => 'KOTA BANJARBARU'],
['province' => 64, 'code' => '64.01', 'name' => 'KAB. PASER'],
['province' => 64, 'code' => '64.02', 'name' => 'KAB. KUTAI KARTANEGARA'],
['province' => 64, 'code' => '64.03', 'name' => 'KAB. BERAU'],
['province' => 64, 'code' => '64.07', 'name' => 'KAB. KUTAI BARAT'],
['province' => 64, 'code' => '64.08', 'name' => 'KAB. KUTAI TIMUR'],
['province' => 64, 'code' => '64.09', 'name' => 'KAB. PENAJAM PASER UTARA'],
['province' => 64, 'code' => '64.11', 'name' => 'KAB. MAHAKAM ULU'],
['province' => 64, 'code' => '64.71', 'name' => 'KOTA BALIKPAPAN'],
['province' => 64, 'code' => '64.72', 'name' => 'KOTA SAMARINDA'],
['province' => 64, 'code' => '64.74', 'name' => 'KOTA BONTANG'],
['province' => 65, 'code' => '65.01', 'name' => 'KAB. BULUNGAN'],
['province' => 65, 'code' => '65.02', 'name' => 'KAB. MALINAU'],
['province' => 65, 'code' => '65.03', 'name' => 'KAB. NUNUKAN'],
['province' => 65, 'code' => '65.04', 'name' => 'KAB. TANA TIDUNG'],
['province' => 65, 'code' => '65.71', 'name' => 'KOTA TARAKAN'],
['province' => 71, 'code' => '71.01', 'name' => 'KAB. BOLAANG MONGONDOW'],
['province' => 71, 'code' => '71.02', 'name' => 'KAB. MINAHASA'],
['province' => 71, 'code' => '71.03', 'name' => 'KAB. KEPULAUAN SANGIHE'],
['province' => 71, 'code' => '71.04', 'name' => 'KAB. KEPULAUAN TALAUD'],
['province' => 71, 'code' => '71.05', 'name' => 'KAB. MINAHASA SELATAN'],
['province' => 71, 'code' => '71.06', 'name' => 'KAB. MINAHASA UTARA'],
['province' => 71, 'code' => '71.07', 'name' => 'KAB. MINAHASA TENGGARA'],
['province' => 71, 'code' => '71.08', 'name' => 'KAB. BOLAANG MONGONDOW UTARA'],
['province' => 71, 'code' => '71.09', 'name' => 'KAB. KEP. SIAU TAGULANDANG BIARO'],
['province' => 71, 'code' => '71.10', 'name' => 'KAB. BOLAANG MONGONDOW TIMUR'],
['province' => 71, 'code' => '71.11', 'name' => 'KAB. BOLAANG MONGONDOW SELATAN'],
['province' => 71, 'code' => '71.71', 'name' => 'KOTA MANADO'],
['province' => 71, 'code' => '71.72', 'name' => 'KOTA BITUNG'],
['province' => 71, 'code' => '71.73', 'name' => 'KOTA TOMOHON'],
['province' => 71, 'code' => '71.74', 'name' => 'KOTA KOTAMOBAGU'],
['province' => 72, 'code' => '72.01', 'name' => 'KAB. BANGGAI'],
['province' => 72, 'code' => '72.02', 'name' => 'KAB. POSO'],
['province' => 72, 'code' => '72.03', 'name' => 'KAB. DONGGALA'],
['province' => 72, 'code' => '72.04', 'name' => 'KAB. TOLI TOLI'],
['province' => 72, 'code' => '72.05', 'name' => 'KAB. BUOL'],
['province' => 72, 'code' => '72.06', 'name' => 'KAB. MOROWALI'],
['province' => 72, 'code' => '72.07', 'name' => 'KAB. BANGGAI KEPULAUAN'],
['province' => 72, 'code' => '72.08', 'name' => 'KAB. PARIGI MOUTONG'],
['province' => 72, 'code' => '72.09', 'name' => 'KAB. TOJO UNA UNA'],
['province' => 72, 'code' => '72.10', 'name' => 'KAB. SIGI'],
['province' => 72, 'code' => '72.11', 'name' => 'KAB. BANGGAI LAUT'],
['province' => 72, 'code' => '72.12', 'name' => 'KAB. MOROWALI UTARA'],
['province' => 72, 'code' => '72.71', 'name' => 'KOTA PALU'],
['province' => 73, 'code' => '73.01', 'name' => 'KAB. KEPULAUAN SELAYAR'],
['province' => 73, 'code' => '73.02', 'name' => 'KAB. BULUKUMBA'],
['province' => 73, 'code' => '73.03', 'name' => 'KAB. BANTAENG'],
['province' => 73, 'code' => '73.04', 'name' => 'KAB. JENEPONTO'],
['province' => 73, 'code' => '73.05', 'name' => 'KAB. TAKALAR'],
['province' => 73, 'code' => '73.06', 'name' => 'KAB. GOWA'],
['province' => 73, 'code' => '73.07', 'name' => 'KAB. SINJAI'],
['province' => 73, 'code' => '73.08', 'name' => 'KAB. BONE'],
['province' => 73, 'code' => '73.09', 'name' => 'KAB. MAROS'],
['province' => 73, 'code' => '73.10', 'name' => 'KAB. PANGKAJENE KEPULAUAN'],
['province' => 73, 'code' => '73.11', 'name' => 'KAB. BARRU'],
['province' => 73, 'code' => '73.12', 'name' => 'KAB. SOPPENG'],
['province' => 73, 'code' => '73.13', 'name' => 'KAB. WAJO'],
['province' => 73, 'code' => '73.14', 'name' => 'KAB. SIDENRENG RAPPANG'],
['province' => 73, 'code' => '73.15', 'name' => 'KAB. PINRANG'],
['province' => 73, 'code' => '73.16', 'name' => 'KAB. ENREKANG'],
['province' => 73, 'code' => '73.17', 'name' => 'KAB. LUWU'],
['province' => 73, 'code' => '73.18', 'name' => 'KAB. TANA TORAJA'],
['province' => 73, 'code' => '73.22', 'name' => 'KAB. LUWU UTARA'],
['province' => 73, 'code' => '73.24', 'name' => 'KAB. LUWU TIMUR'],
['province' => 73, 'code' => '73.26', 'name' => 'KAB. TORAJA UTARA'],
['province' => 73, 'code' => '73.71', 'name' => 'KOTA MAKASSAR'],
['province' => 73, 'code' => '73.72', 'name' => 'KOTA PARE PARE'],
['province' => 73, 'code' => '73.73', 'name' => 'KOTA PALOPO'],
['province' => 74, 'code' => '74.01', 'name' => 'KAB. KOLAKA'],
['province' => 74, 'code' => '74.02', 'name' => 'KAB. KONAWE'],
['province' => 74, 'code' => '74.03', 'name' => 'KAB. MUNA'],
['province' => 74, 'code' => '74.04', 'name' => 'KAB. BUTON'],
['province' => 74, 'code' => '74.05', 'name' => 'KAB. KONAWE SELATAN'],
['province' => 74, 'code' => '74.06', 'name' => 'KAB. BOMBANA'],
['province' => 74, 'code' => '74.07', 'name' => 'KAB. WAKATOBI'],
['province' => 74, 'code' => '74.08', 'name' => 'KAB. KOLAKA UTARA'],
['province' => 74, 'code' => '74.09', 'name' => 'KAB. KONAWE UTARA'],
['province' => 74, 'code' => '74.10', 'name' => 'KAB. BUTON UTARA'],
['province' => 74, 'code' => '74.11', 'name' => 'KAB. KOLAKA TIMUR'],
['province' => 74, 'code' => '74.12', 'name' => 'KAB. KONAWE KEPULAUAN'],
['province' => 74, 'code' => '74.13', 'name' => 'KAB. MUNA BARAT'],
['province' => 74, 'code' => '74.14', 'name' => 'KAB. BUTON TENGAH'],
['province' => 74, 'code' => '74.15', 'name' => 'KAB. BUTON SELATAN'],
['province' => 74, 'code' => '74.71', 'name' => 'KOTA KENDARI'],
['province' => 74, 'code' => '74.72', 'name' => 'KOTA BAU BAU'],
['province' => 75, 'code' => '75.01', 'name' => 'KAB. GORONTALO'],
['province' => 75, 'code' => '75.02', 'name' => 'KAB. BOALEMO'],
['province' => 75, 'code' => '75.03', 'name' => 'KAB. BONE BOLANGO'],
['province' => 75, 'code' => '75.04', 'name' => 'KAB. PAHUWATO'],
['province' => 75, 'code' => '75.05', 'name' => 'KAB. GORONTALO UTARA'],
['province' => 75, 'code' => '75.71', 'name' => 'KOTA GORONTALO'],
['province' => 76, 'code' => '76.01', 'name' => 'KAB. PASANGKAYU'],
['province' => 76, 'code' => '76.02', 'name' => 'KAB. MAMUJU'],
['province' => 76, 'code' => '76.03', 'name' => 'KAB. MAMASA'],
['province' => 76, 'code' => '76.04', 'name' => 'KAB. POLEWALI MANDAR'],
['province' => 76, 'code' => '76.05', 'name' => 'KAB. MAJENE'],
['province' => 76, 'code' => '76.06', 'name' => 'KAB. MAMUJU TENGAH'],
['province' => 81, 'code' => '81.01', 'name' => 'KAB. MALUKU TENGAH'],
['province' => 81, 'code' => '81.02', 'name' => 'KAB. MALUKU TENGGARA'],
['province' => 81, 'code' => '81.03', 'name' => 'KAB. KEPULAUAN TANIMBAR'],
['province' => 81, 'code' => '81.04', 'name' => 'KAB. BURU'],
['province' => 81, 'code' => '81.05', 'name' => 'KAB. SERAM BAGIAN TIMUR'],
['province' => 81, 'code' => '81.06', 'name' => 'KAB. SERAM BAGIAN BARAT'],
['province' => 81, 'code' => '81.07', 'name' => 'KAB. KEPULAUAN ARU'],
['province' => 81, 'code' => '81.08', 'name' => 'KAB. MALUKU BARAT DAYA'],
['province' => 81, 'code' => '81.09', 'name' => 'KAB. BURU SELATAN'],
['province' => 81, 'code' => '81.71', 'name' => 'KOTA AMBON'],
['province' => 81, 'code' => '81.72', 'name' => 'KOTA TUAL'],
['province' => 82, 'code' => '82.01', 'name' => 'KAB. HALMAHERA BARAT'],
['province' => 82, 'code' => '82.02', 'name' => 'KAB. HALMAHERA TENGAH'],
['province' => 82, 'code' => '82.03', 'name' => 'KAB. HALMAHERA UTARA'],
['province' => 82, 'code' => '82.04', 'name' => 'KAB. HALMAHERA SELATAN'],
['province' => 82, 'code' => '82.05', 'name' => 'KAB. KEPULAUAN SULA'],
['province' => 82, 'code' => '82.06', 'name' => 'KAB. HALMAHERA TIMUR'],
['province' => 82, 'code' => '82.07', 'name' => 'KAB. PULAU MOROTAI'],
['province' => 82, 'code' => '82.08', 'name' => 'KAB. PULAU TALIABU'],
['province' => 82, 'code' => '82.71', 'name' => 'KOTA TERNATE'],
['province' => 82, 'code' => '82.72', 'name' => 'KOTA TIDORE KEPULAUAN'],
['province' => 91, 'code' => '91.01', 'name' => 'KAB. MERAUKE'],
['province' => 91, 'code' => '91.02', 'name' => 'KAB. JAYAWIJAYA'],
['province' => 91, 'code' => '91.03', 'name' => 'KAB. JAYAPURA'],
['province' => 91, 'code' => '91.04', 'name' => 'KAB. NABIRE'],
['province' => 91, 'code' => '91.05', 'name' => 'KAB. KEPULAUAN YAPEN'],
['province' => 91, 'code' => '91.06', 'name' => 'KAB. BIAK NUMFOR'],
['province' => 91, 'code' => '91.07', 'name' => 'KAB. PUNCAK JAYA'],
['province' => 91, 'code' => '91.08', 'name' => 'KAB. PANIAI'],
['province' => 91, 'code' => '91.09', 'name' => 'KAB. MIMIKA'],
['province' => 91, 'code' => '91.10', 'name' => 'KAB. SARMI'],
['province' => 91, 'code' => '91.11', 'name' => 'KAB. KEEROM'],
['province' => 91, 'code' => '91.12', 'name' => 'KAB. PEGUNUNGAN BINTANG'],
['province' => 91, 'code' => '91.13', 'name' => 'KAB. YAHUKIMO'],
['province' => 91, 'code' => '91.14', 'name' => 'KAB. TOLIKARA'],
['province' => 91, 'code' => '91.15', 'name' => 'KAB. WAROPEN'],
['province' => 91, 'code' => '91.16', 'name' => 'KAB. BOVEN DIGOEL'],
['province' => 91, 'code' => '91.17', 'name' => 'KAB. MAPPI'],
['province' => 91, 'code' => '91.18', 'name' => 'KAB. ASMAT'],
['province' => 91, 'code' => '91.19', 'name' => 'KAB. SUPIORI'],
['province' => 91, 'code' => '91.20', 'name' => 'KAB. MAMBERAMO RAYA'],
['province' => 91, 'code' => '91.21', 'name' => 'KAB. MAMBERAMO TENGAH'],
['province' => 91, 'code' => '91.22', 'name' => 'KAB. YALIMO'],
['province' => 91, 'code' => '91.23', 'name' => 'KAB. LANNY JAYA'],
['province' => 91, 'code' => '91.24', 'name' => 'KAB. NDUGA'],
['province' => 91, 'code' => '91.25', 'name' => 'KAB. PUNCAK'],
['province' => 91, 'code' => '91.26', 'name' => 'KAB. DOGIYAI'],
['province' => 91, 'code' => '91.27', 'name' => 'KAB. INTAN JAYA'],
['province' => 91, 'code' => '91.28', 'name' => 'KAB. DEIYAI'],
['province' => 91, 'code' => '91.71', 'name' => 'KOTA JAYAPURA'],
['province' => 92, 'code' => '92.01', 'name' => 'KAB. SORONG'],
['province' => 92, 'code' => '92.02', 'name' => 'KAB. MANOKWARI'],
['province' => 92, 'code' => '92.03', 'name' => 'KAB. FAK FAK'],
['province' => 92, 'code' => '92.04', 'name' => 'KAB. SORONG SELATAN'],
['province' => 92, 'code' => '92.05', 'name' => 'KAB. RAJA AMPAT'],
['province' => 92, 'code' => '92.06', 'name' => 'KAB. TELUK BINTUNI'],
['province' => 92, 'code' => '92.07', 'name' => 'KAB. TELUK WONDAMA'],
['province' => 92, 'code' => '92.08', 'name' => 'KAB. KAIMANA'],
['province' => 92, 'code' => '92.09', 'name' => 'KAB. TAMBRAUW'],
['province' => 92, 'code' => '92.10', 'name' => 'KAB. MAYBRAT'],
['province' => 92, 'code' => '92.11', 'name' => 'KAB. MANOKWARI SELATAN'],
['province' => 92, 'code' => '92.12', 'name' => 'KAB. PEGUNUNGAN ARFAK'],
['province' => 92, 'code' => '92.71', 'name' => 'KOTA SORONG']
];
}
function getProvinceId($areacode)
{
$province = Province::where('area_code', $areacode)->first();
return $province->id;
}
}

View File

@ -40,7 +40,8 @@
RelationshipSeeder::class,
CardSeeder::class,
CountrySeeder::class,
ProvinceSeeder::class
ProvinceSeeder::class,
CitySeeder::class,
]);
}

View File

@ -9,6 +9,7 @@
use Illuminate\Support\Facades\Auth;
use Modules\Master\DataTables\CityDataTable;
use Modules\Master\Entities\City;
use Modules\Master\Entities\Country;
use Modules\Master\Http\Requests\City\StoreCityRequest;
use Modules\Master\Http\Requests\City\UpdateCityRequest;
@ -40,7 +41,11 @@
abort(403, 'Sorry !! You are Unauthorized to view any ' . $this->module->alias . ' !');
}
return $dataTable->render($this->module->alias . '::city.index');
addVendor('chained-select');
$countries = Country::all();
return $dataTable->render($this->module->alias . '::city.index', compact('countries'));
}
/**
@ -116,7 +121,7 @@
abort(403, 'Sorry !! You are Unauthorized to update any ' . $this->module->alias . ' !');
}
$data = $this->model::find($id);
$data = $this->model::with('province')->find($id);
echo json_encode($data);
}
@ -128,7 +133,7 @@
*
* @return Renderable
*/
public function update(UpdateCityRequest $request, City $company)
public function update(UpdateCityRequest $request, City $city)
{
if (is_null($this->user) || !$this->user->can($this->module->alias . '.update')) {
abort(403, 'Sorry !! You are Unauthorized to update any ' . $this->module->alias . ' !');
@ -140,7 +145,7 @@
// Update the City...
if ($validated) {
try {
$company->update($validated);
$city->update($validated);
echo json_encode(['status' => 'success', 'message' => $this->module->name . ' city updated successfully.']);
} catch (Exception $e) {
echo json_encode(['status' => 'error', 'message' => $this->module->name . ' city updated failed.']);
@ -158,14 +163,14 @@
*
* @return Renderable
*/
public function destroy(City $company)
public function destroy(City $city)
{
if (is_null($this->user) || !$this->user->can($this->module->alias . '.delete')) {
abort(403, 'Sorry !! You are Unauthorized to delete any ' . $this->module->alias . ' !');
}
try {
$company->delete();
$city->delete();
echo json_encode(['status' => 'success', 'message' => $this->module->name . ' city deleted successfully.']);
} catch (Exception $e) {
echo json_encode(['status' => 'error', 'message' => $this->module->name . ' city deleted failed.']);

View File

@ -35,12 +35,17 @@
*
* @return Renderable
*/
public function index(ProvinceDataTable $dataTable)
public function index(ProvinceDataTable $dataTable, Request $request)
{
if (is_null($this->user) || !$this->user->can($this->module->alias . '.read')) {
abort(403, 'Sorry !! You are Unauthorized to view any ' . $this->module->alias . ' !');
}
if (isset($request->country_id) && !empty($request->country_id)) {
$this->show($request);
return;
}
$countries = Country::all();
return $dataTable->render($this->module->alias . '::province.index', compact('countries'));
}
@ -96,13 +101,24 @@
*
* @return Renderable
*/
public function show($id)
public function show(Request $request)
{
if(is_null($this->user) || !$this->user->can($this->module->alias . '.read')) {
if (is_null($this->user) || !$this->user->can($this->module->alias . '.read')) {
abort(403, 'Sorry !! You are Unauthorized to view any ' . $this->module->alias . ' !');
}
abort(404);
$provinces = Province::where('country_id', $request->country_id)->get();
$data = [];
foreach ($provinces as $row) {
$result = [
$row->id => $row->name,
];
$data[] = $result;
}
echo json_encode($data);
}
/**

View File

@ -2,13 +2,13 @@
namespace Modules\Master\Http\Requests\City;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Http\Exceptions\HttpResponseException;
use Illuminate\Validation\ValidationException;
use Illuminate\Validation\Validator;
use Modules\Master\Http\Requests\MasterRequest;
use Symfony\Component\HttpFoundation\JsonResponse;
class StoreCityRequest extends FormRequest
class StoreCityRequest extends MasterRequest
{
/**
* Determine if the user is authorized to make this request.
@ -29,9 +29,9 @@
{
return [
'province_id' => 'required|integer|exists:provinces,id',
'code' => 'required|string|max:50|unique:cities,code',
'code' => 'required|string|min:5|max:5|unique:cities,code',
'name' => 'required|string|max:50|unique:cities,name',
'status' => 'nullable|string|max:1',
'status' => 'nullable|integer|max:1',
];
}

View File

@ -2,13 +2,13 @@
namespace Modules\Master\Http\Requests\City;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Http\Exceptions\HttpResponseException;
use Illuminate\Validation\ValidationException;
use Illuminate\Validation\Validator;
use Modules\Master\Http\Requests\MasterRequest;
use Symfony\Component\HttpFoundation\JsonResponse;
class UpdateCityRequest extends FormRequest
class UpdateCityRequest extends MasterRequest
{
/**
* Determine if the user is authorized to make this request.
@ -29,9 +29,9 @@
{
return [
'province_id' => 'required|integer|exists:provinces,id',
'code' => 'required|string|max:50|unique:cities,code', $this->city->id,
'name' => 'required|string|max:50|unique:cities,name', $this->city->id,
'status' => 'nullable|string|max:1',
'code' => 'required|string|max:5|min:5|unique:cities,code,'. $this->city->id,
'name' => 'required|string|max:50|unique:cities,name,'. $this->city->id,
'status' => 'nullable|integer|max:1',
];
}

View File

@ -0,0 +1,13 @@
@php
$route = explode('.', Route::currentRouteName());
@endphp
<div class="d-flex flex-row flex-center">
<a href="{{ route($route[0].'.'.$route[1].'.edit',[$route[1] => $model->id]) }}"
class="kt_edit_form btn btn-icon btn-bg-light btn-active-light-primary btn-sm me-1">
{!! getIcon("pencil", "fs-1 text-info","duotune") !!}
</a>
{!! Form::open(['method' => 'DELETE','route' => [$route[0].'.'.$route[1].'.destroy', $model->id],'class'=>'']) !!}
{{ Form::button(getIcon("trash", "fs-1 text-danger","duotune"), ['type' => 'submit', 'class' => 'delete btn btn-icon btn-bg-light btn-active-light-danger btn-sm'] ) }}
{!! Form::close() !!}
</div>

View File

@ -0,0 +1,104 @@
@php
$route = explode('.', Route::currentRouteName());
@endphp
<!--begin::Modal - New Target-->
<div class="modal fade" id="kt_modal_{{$route[0].'_'.$route[1]}}" tabindex="-1" aria-hidden="true">
<!--begin::Modal dialog-->
<div class="modal-dialog modal-dialog-centered mw-650px">
<!--begin::Modal content-->
<div class="modal-content rounded">
<!--begin::Modal header-->
<div class="modal-header pb-0 border-0 justify-content-end">
<!--begin::Close-->
<div class="btn btn-sm btn-icon btn-active-color-primary" data-bs-dismiss="modal">{!! getIcon('cross', 'fs-1') !!}</div>
<!--end::Close-->
</div>
<!--begin::Modal header-->
<!--begin::Modal body-->
<div class="modal-body scroll-y px-10 px-lg-15 pt-0 pb-15">
<!--begin:Form-->
<form class="form_{{$route[0].'_'.$route[1]}}" method="POST" action="{{ route($route[0].'.'.$route[1].'.store') }}">
@csrf
<!--begin::Heading-->
<div class="mb-13 text-center">
<!--begin::Title-->
<h1 class="mb-3 text-capitalize" id="title_form">{{ str_replace('-',' ',$route[0].' '.$route[1]) }}</h1>
<!--end::Title-->
</div>
<!--end::Heading-->
<!--begin::Input group-->
<div class="d-flex flex-column mb-8 fv-row">
<!--begin::Label-->
<label class="d-flex align-items-center fs-6 fw-semibold mb-2">
<span class="required">Country</span>
</label>
<!--end::Label-->
<input type="hidden" id="{{$route[0].'_'.$route[1]}}_id" name="id"/>
<select class="form-select form-select-solid" data-control="select2" data-allow-clear="true" data-placeholder="Select Country" name="country_id" id="{{$route[0].'_'.$route[1]}}_country_id">
<option></option>
@foreach($countries as $country)
<option value="{{ $country->id }}">{{ $country->name }}</option>
@endforeach
</select>
</div>
<!--end::Input group-->
<!--begin::Input group-->
<div class="d-flex flex-column mb-8 fv-row">
<!--begin::Label-->
<label class="d-flex align-items-center fs-6 fw-semibold mb-2">
<span class="required">Province</span>
</label>
<!--end::Label-->
<select class="form-select form-select-solid" data-control="select2" data-allow-clear="true" data-placeholder="Select Province" name="province_id" id="{{$route[0].'_'.$route[1]}}_province_id">
<option></option>
</select>
</div>
<!--end::Input group-->
<!--begin::Input group-->
<div class="d-flex flex-column mb-8 fv-row">
<!--begin::Label-->
<label class="d-flex align-items-center fs-6 fw-semibold mb-2">
<span class="required">Area Code</span>
</label>
<!--end::Label-->
<input type="number" id="{{$route[0].'_'.$route[1]}}_code" minlength="2" maxlength="2" class="form-control form-control-solid" placeholder="Enter Area Code" name="code"/>
</div>
<!--end::Input group-->
<!--begin::Input group-->
<div class="d-flex flex-column mb-8 fv-row">
<!--begin::Label-->
<label class="d-flex align-items-center fs-6 fw-semibold mb-2">
<span class="required">Name</span>
</label>
<!--end::Label-->
<input type="text" id="{{$route[0].'_'.$route[1]}}_name" maxlength="50" class="form-control form-control-solid" placeholder="{{ 'Enter '.ucfirst($route[1]).' Name' }}" name="name"/>
</div>
<!--end::Input group-->
<div class="form-check form-switch form-check-custom form-check-solid" style="display: block!important;">
<input class="form-check-input h-20px w-30px me-5" type="checkbox" name="status" id="{{$route[0].'_'.$route[1]}}_status"/>
<label class="form-check-label" for="{{$route[0].'_'.$route[1]}}_status">
Aktif
</label>
</div>
<!--begin::Actions-->
<div class="text-center">
<button type="reset" data-bs-dismiss="modal" class="btn btn-light me-3">Cancel</button>
<button type="submit" class="btn btn-primary">Submit</button>
</div>
<!--end::Actions-->
</form>
<!--end:Form-->
</div>
<!--end::Modal body-->
</div>
<!--end::Modal content-->
</div>
<!--end::Modal dialog-->
</div>
<!--end::Modal - New Target-->

View File

@ -0,0 +1,12 @@
@php
$route = explode('.', Route::currentRouteName());
@endphp
{!! Form::open(['method' => 'PUT','route' => [$route[0].'.'.$route[1].'.update', $model->id],'class'=>'']) !!}
<div class="form-check form-switch form-check-custom form-check-solid" style="display: block!important;">
<input class="form-check-input h-20px w-30px status" {{ $model->status==1 ? 'checked' : '' }} type="checkbox" name="status" id="status"/>
<input type="hidden" value="{{$model->name}}" name="name">
<input type="hidden" value="{{$model->code}}" name="code">
<input type="hidden" value="{{$model->province_id}}" name="province_id">
</div>
{!! Form::close() !!}

View File

@ -0,0 +1,136 @@
<!--begin::Table-->
{{ $dataTable->table() }}
<!--end::Table-->
{{-- Inject Scripts --}}
@section('scripts')
{{ $dataTable->scripts() }}
@endsection
@push('customscript')
@php
$route = explode('.', Route::currentRouteName());
@endphp
<script>
$("#searchbox").on("keyup search input paste cut", function () {
LaravelDataTables["{{$route[0].'-'.$route[1]}}-table"].search(this.value).draw();
});
$(function () {
const documentTitle = '{{ ucfirst($route[0].' '.$route[1]) }} Report';
var buttons = new $.fn.dataTable.Buttons(LaravelDataTables["{{$route[0].'-'.$route[1]}}-table"], {
buttons: [
{
extend: 'copyHtml5',
title: documentTitle
},
{
extend: 'excelHtml5',
title: documentTitle
},
{
extend: 'csvHtml5',
title: documentTitle
},
{
extend: 'pdfHtml5',
title: documentTitle
},
{
extend: 'print',
title: documentTitle
}
]
}).container().appendTo($('#kt_datatable_example_buttons'));
// Hook dropdown menu click event to datatable export buttons
const exportButtons = document.querySelectorAll('#kt_datatable_example_export_menu [data-kt-export]');
exportButtons.forEach(exportButton => {
exportButton.addEventListener('click', e => {
e.preventDefault();
console.log(e.target.getAttribute('data-kt-export'));
// Get clicked export value
const exportValue = e.target.getAttribute('data-kt-export');
const target = document.querySelector('.dt-buttons .buttons-' + exportValue);
// Trigger click event on hidden datatable export buttons
target.click();
});
});
LaravelDataTables["{{$route[0].'-'.$route[1]}}-table"].on('click', '.kt_edit_form', function (event) {
event.preventDefault();
$.ajax({
url: $(this).attr('href'),
type: 'GET',
dataType: 'json',
success: function (response) {
console.log(response.province.country_id);
$('#title_form').text('Edit {{ ucfirst(str_replace('-',' ',$route[0].' '.$route[1])) }}');
$('#{{$route[0].'_'.$route[1]}}_id').val(response.id);
$('#{{$route[0].'_'.$route[1]}}_name').val(response.name);
$('#{{$route[0].'_'.$route[1]}}_code').val(response.code);
$('#{{$route[0].'_'.$route[1]}}_country_id').val(response.province.country_id).change();
$('#{{$route[0].'_'.$route[1]}}_province_id').val(response.province_id).change();
$('#{{$route[0].'_'.$route[1]}}_status').prop('checked', response.status==="1");
$('.form_{{$route[0].'_'.$route[1]}}').attr('action', '{{ URL::to('/'.$route[0].'/'.$route[1].'/') }}/' + response.id).append('<input type="hidden" name="_method" value="PUT">');
$('#kt_modal_{{$route[0].'_'.$route[1]}}').modal('show');
}
})
})
LaravelDataTables["{{$route[0].'-'.$route[1]}}-table"].on('click', '.delete', function (event) {
var form = $(this).closest("form");
event.preventDefault();
Swal.fire({
title: 'Are you sure?',
text: "You won't be able to revert this!",
icon: 'warning',
showCancelButton: true,
confirmButtonColor: '#3085d6',
cancelButtonColor: '#d33',
confirmButtonText: 'Yes, delete it!'
}).then((result) => {
if (result.isConfirmed) {
$.ajax({
type: "POST",
url: form.attr('action'),
data: form.serialize(), // serializes the form's elements.
success: function (data) {
toastr.success('{{ucfirst($route[0].' '.$route[1])}} has been deleted.', 'Success!', {timeOut: 5000});
LaravelDataTables["{{$route[0].'-'.$route[1]}}-table"].ajax.reload();
}
});
}
})
})
LaravelDataTables["{{$route[0].'-'.$route[1]}}-table"].on('change', '.status', function (event) {
var form = $(this).closest("form");
var _data = form.serializeArray().reduce(function(obj, item) {
obj[item.name] = item.value;
return obj;
}, {});
event.preventDefault();
$.ajax({
type: "POST",
url: form.attr('action'),
data: form.serialize(), // serializes the form's elements.
success: function (data) {
toastr.success('{{ucfirst($route[1])}} '+_data.name+' status has been changed.', 'Success!', {timeOut: 5000});
}
});
})
})
</script>
@endpush
@section('styles')
<style>
.dataTables_filter {
display: none;
}
</style>
@endsection

View File

@ -0,0 +1,142 @@
@php
$route = explode('.', Route::currentRouteName());
@endphp
<x-default-layout>
<!--begin::Card-->
<div class="card card-xxl-stretch mb-5 mb-xl-8">
<!--begin::Card body-->
<div class="card-header border-0 pt-5">
<div class="card-title align-items-start flex-column">
<div class="d-flex align-items-center position-relative my-1">
<!--begin::Svg Icon | path: icons/duotune/general/gen021.svg-->
<span class="svg-icon svg-icon-1 position-absolute ms-6">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
<rect opacity="0.5" x="17.0365" y="15.1223" width="8.15546" height="2" rx="1"
transform="rotate(45 17.0365 15.1223)" fill="currentColor"></rect>
<path
d="M11 19C6.55556 19 3 15.4444 3 11C3 6.55556 6.55556 3 11 3C15.4444 3 19 6.55556 19 11C19 15.4444 15.4444 19 11 19ZM11 5C7.53333 5 5 7.53333 5 11C5 14.4667 7.53333 17 11 17C14.4667 17 17 14.4667 17 11C17 7.53333 14.4667 5 11 5Z"
fill="currentColor"></path>
</svg>
</span>
<!--end::Svg Icon-->
<input type="text" id="searchbox"
class="form-control form-control-solid border border-gray-300 w-250px ps-15"
placeholder="Search {{ ucfirst($route[1]) }}">
</div>
<!--begin::Export buttons-->
<div id="kt_datatable_example_1_export" class="d-none"></div>
<!--end::Export buttons-->
</div>
<div class="card-toolbar">
<!--begin::Export dropdown-->
<button type="button" class="btn btn-light-primary" data-kt-menu-trigger="click"
data-kt-menu-placement="bottom-end">
<i class="ki-duotone ki-exit-down fs-2"><span class="path1"></span><span class="path2"></span></i>
Export Report
</button>
<!--begin::Menu-->
<div id="kt_datatable_example_export_menu"
class="menu menu-sub menu-sub-dropdown menu-column menu-rounded menu-gray-600 menu-state-bg-light-primary fw-semibold fs-7 w-200px py-4"
data-kt-menu="true">
<!--begin::Menu item-->
<div class="menu-item px-3">
<a href="#" class="menu-link px-3" data-kt-export="copy">
Copy to clipboard
</a>
</div>
<!--end::Menu item-->
<!--begin::Menu item-->
<div class="menu-item px-3">
<a href="#" class="menu-link px-3" data-kt-export="excel">
Export as Excel
</a>
</div>
<!--end::Menu item-->
<!--begin::Menu item-->
<div class="menu-item px-3">
<a href="#" class="menu-link px-3" data-kt-export="csv">
Export as CSV
</a>
</div>
<!--end::Menu item-->
<!--begin::Menu item-->
<div class="menu-item px-3">
<a href="#" class="menu-link px-3" data-kt-export="pdf">
Export as PDF
</a>
</div>
<!--end::Menu item-->
<!--begin::Menu item-->
<div class="menu-item px-3">
<a href="#" class="menu-link px-3" data-kt-export="print">
Print
</a>
</div>
<!--end::Menu item-->
</div>
<!--begin::Hide default export buttons-->
<div id="kt_datatable_example_buttons" class="d-none"></div>
<!--end::Hide default export buttons-->
</div>
</div>
<div class="card-body pt-6">
@include('master::'.$route[1].'._table')
@include('master::'.$route[1].'._form')
</div>
<!--end::Card body-->
</div>
<!--end::Card-->
@push('customscript')
<script>
$(function () {
$(".form_{{$route[0].'_'.$route[1]}}").submit(function (e) {
e.preventDefault(); // avoid to execute the actual submit of the form.
var form = $(this);
var actionUrl = form.attr('action');
$.ajax({
type: "POST",
url: actionUrl,
data: form.serialize(), // serializes the form's elements.
success: function (data) {
var _data = JSON.parse(data);
toastr.success(_data.message);
form[0].reset();
LaravelDataTables["{{$route[0].'-'.$route[1]}}-table"].ajax.reload();
$('#kt_modal_{{$route[0].'_'.$route[1]}}').modal('hide');
},
error: function (data, textStatus, errorThrown) {
var errors = data.responseJSON.errors;
$.each(errors, function (key, value) {
toastr.error(value);
});
}
});
});
$('#kt_modal_{{$route[0].'_'.$route[1]}}').on('hidden.bs.modal', function (e) {
$(".form_{{$route[0].'_'.$route[1]}}")[0].reset();
$('#{{$route[0].'_'.$route[1]}}_province_id').val(null).trigger('change');
$('#{{$route[0].'_'.$route[1]}}_country_id').val(null).trigger('change');
$(".form_{{$route[0].'_'.$route[1]}}").attr('action', "{{ route($route[0].'.'.$route[1].'.store') }}");
$(".form_{{$route[0].'_'.$route[1]}}").find('input[name="_method"]').remove();
$("#title_form").html("Create {{ucfirst($route[1])}}");
});
$("#{{$route[0].'_'.$route[1]}}_province_id").remoteChained({
parents: "#{{$route[0].'_'.$route[1]}}_country_id",
url: "/master/province"
});
});
</script>
@endpush
</x-default-layout>