70 lines
2.4 KiB
PHP
70 lines
2.4 KiB
PHP
<?php
|
|
|
|
namespace App\View\Components;
|
|
|
|
use Closure;
|
|
use Illuminate\Contracts\View\View;
|
|
use Illuminate\View\Component;
|
|
use App\Models\Wilayah\Provinsi;
|
|
use App\Models\Wilayah\KabupatenKota;
|
|
use App\Models\Wilayah\Kecamatan;
|
|
use App\Models\Wilayah\DesaKelurahan;
|
|
|
|
class WilayahDashboard extends Component
|
|
{
|
|
public function render(): View|Closure|string
|
|
{
|
|
$kodeJawa = ['31', '32', '33', '34', '35', '36'];
|
|
|
|
$totalProvinsi = Provinsi::count();
|
|
$totalKabKota = KabupatenKota::count();
|
|
$totalKecamatan = Kecamatan::count();
|
|
$totalDesaKelurahan = DesaKelurahan::count();
|
|
|
|
|
|
$provinsiAktif = Provinsi::has('kabupatenKota')->count();
|
|
|
|
$provinsiKosong = $totalProvinsi - $provinsiAktif;
|
|
|
|
$totalKabupaten = KabupatenKota::whereRaw("SUBSTRING(kode, 3, 2) < '70'")->count();
|
|
$totalKota = KabupatenKota::whereRaw("SUBSTRING(kode, 3, 2) >= '70'")->count();
|
|
|
|
if ($totalKabupaten == 0 && $totalKota == 0 && $totalKabKota > 0) {
|
|
$totalKabupaten = $totalKabKota;
|
|
}
|
|
|
|
$kecamatanPerdesaan = Kecamatan::whereHas('kabupatenKota', function($query) {
|
|
$query->whereRaw("SUBSTRING(kode, 3, 2) < '70'");
|
|
})->count();
|
|
|
|
$kecamatanPerkotaan = max(0, $totalKecamatan - $kecamatanPerdesaan);
|
|
|
|
$terpetakan = DesaKelurahan::whereNotNull('path')->count();
|
|
$belumTerpetakan = max(0, $totalDesaKelurahan - $terpetakan);
|
|
|
|
$totalDesa = DesaKelurahan::where('nama', 'like', 'DESA%')->count() ?: $totalDesaKelurahan;
|
|
$totalKelurahan = DesaKelurahan::where('nama', 'like', 'KEL%')->count();
|
|
|
|
$data = [
|
|
'totalProvinsi' => $totalProvinsi,
|
|
'provinsiAktif' => $provinsiAktif,
|
|
'provinsiKosong' => $provinsiKosong,
|
|
|
|
'totalKabKota' => $totalKabKota,
|
|
'totalKabupaten' => $totalKabupaten,
|
|
'totalKota' => $totalKota,
|
|
|
|
'totalKecamatan' => $totalKecamatan,
|
|
'kecamatanPerdesaan' => $kecamatanPerdesaan,
|
|
'kecamatanPerkotaan' => $kecamatanPerkotaan,
|
|
|
|
'totalDesaKelurahan' => $totalDesaKelurahan,
|
|
'totalDesa' => $totalDesa,
|
|
'totalKelurahan' => $totalKelurahan,
|
|
'terpetakan' => $terpetakan,
|
|
'belumTerpetakan' => $belumTerpetakan,
|
|
];
|
|
|
|
return view('components.wilayah-dashboard', $data);
|
|
}
|
|
} |