<?php
namespace App\Http\Controllers;
use App\Models\District;
use App\Models\Organisasi;
use App\Models\Pelatihan;
use App\Models\PelatihanPeserta;
use App\Models\Peserta;
use App\Models\Regency;
use App\Models\User;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use Inertia\Inertia;
class WelcomeController extends Controller
{
public function index()
{
$tahun = request()->tahun ?? date("Y")-1;
$data = $this->ajaxData($tahun);
return Inertia::render('Welcome', $data);
}
function tgl_indo(){
$hari = array (
'Sunday' => 'Minggu',
'Monday' => 'Senin',
'Tuesday' => 'Selasa',
'Wednesday' => 'Rabu',
'Thursday' => 'Kamis',
'Friday' => 'Jumat',
'Saturday' => 'Sabtu'
);
$bulan = array (
'January' => 'Januari',
'February' => 'Februari',
'March' => 'Maret',
'April' => 'April',
'May' => 'Mei',
'June' => 'Juni',
'July' => 'Juli',
'August' => 'Agustus',
'September' => 'September',
'October' => 'Oktober',
'November' => 'November',
'December' => 'Desember'
);
return $hari[date('l')] . ', ' . date('d') . ' ' . $bulan[date('F')] . ' ' . date('Y');
}
public function ajaxData($tahun){
if($tahun == 2024){
$jumlahKota = Regency::where('province_id', 64)->count();
$jumlahKecamatan = District::whereHas('regency', function ($w) {
$w->where('province_id', 64);
})->count();
} else {
$jumlahKota = Regency::where('province_id', 64)->whereHas('pelatihans',function($w)use($tahun){
$w->where('tahun',$tahun);
})->count();
$jumlahKecamatan = District::whereHas('regency', function ($w) {
$w->where('province_id', 64);
})->whereHas('pelatihans',function($w)use($tahun){
$w->where('tahun',$tahun);
})->count();
}
$jumlahPelatihan = Pelatihan::where('tahun',$tahun)->count();
$jumlahPeserta = PelatihanPeserta::whereHas('pelatihan',function($w)use($tahun){
$w->whereYear('start_date',$tahun)->whereNotNull('kabupaten_id');
})->count();
$pesertaPerKabupaten = PelatihanPeserta::select(DB::raw('pelatihans.kabupaten_id'), DB::raw('count(*) as total'))
->join('pelatihans','pelatihans.id','=','pelatihan_pesertas.pelatihan_id')
->whereYear(DB::raw('pelatihans.start_date'),$tahun)
->where(DB::raw('pelatihans.kabupaten_id'), '!=',null)
->groupBy(DB::raw('pelatihans.kabupaten_id'))->get()->pluck('total','kabupaten_id')->toArray();
$tanggal = $this->tgl_indo();
$dataPeta = [
'64.01' => @$pesertaPerKabupaten[6401] ?? 0,
'64.02' => @$pesertaPerKabupaten[6403] ?? 0,
'64.03' => @$pesertaPerKabupaten[6405] ?? 0,
'64.07' => @$pesertaPerKabupaten[6402] ?? 0,
'64.08' => @$pesertaPerKabupaten[6404] ?? 0,
'64.09' => @$pesertaPerKabupaten[6409] ?? 0,
'64.11' => @$pesertaPerKabupaten[6411] ?? 0,
'64.71' => @$pesertaPerKabupaten[6471] ?? 0,
'64.72' => @$pesertaPerKabupaten[6472] ?? 0,
'64.74' => @$pesertaPerKabupaten[6474] ?? 0
];
$kotas = Regency::where('province_id', 64)->pluck('name','id')->toArray();
$sebaranPesertaPerKota = [];
foreach ($kotas as $id => $kota) {
$sebaranPesertaPerKota[] = [
"name"=>$kota,
"value"=>@$pesertaPerKabupaten[$id] ?? 0
];
}
$data = PelatihanPeserta::select(DB::raw('pesertas.jenis_kelamin as name'), DB::raw('count(*) as value'))
->join('pelatihans','pelatihans.id','=','pelatihan_pesertas.pelatihan_id')
->join('pesertas','pesertas.id','=','pelatihan_pesertas.peserta_id')
->whereYear(DB::raw('pelatihans.start_date'),$tahun)
->where(DB::raw('pesertas.jenis_kelamin'), '!=',null)
->groupBy('name')->get()->pluck('value','name')->toArray();
$grafikPesertaJenisKelamin = [];
foreach ($data as $k => $v) {
$grafikPesertaJenisKelamin[] = [
"name"=>strtoupper($k),
"value"=>$v
];
}
$pesertaKaltim = PelatihanPeserta::join('pelatihans','pelatihans.id','=','pelatihan_pesertas.pelatihan_id')
->join('pesertas','pesertas.id','=','pelatihan_pesertas.peserta_id')
->where(DB::raw('pesertas.provinsi_id'),64)->whereYear(DB::raw('pelatihans.start_date'),$tahun)->get();
$tableData = [];
foreach ($kotas as $id => $k) {
$tableData['laki-laki'][$id] = $pesertaKaltim->where('kabupaten_id',$id)->where('jenis_kelamin','laki-laki')->count();
$tableData['perempuan'][$id] = $pesertaKaltim->where('kabupaten_id',$id)->where('jenis_kelamin','perempuan')->count();
}
$kotas = Regency::where('province_id', 64)->get();
$organisasi = Organisasi::with(['jumlah_anggotas'=>function($w)use($tahun){
$w->where('tahun',$tahun);
}])->get();
// dd($organisasi->toArray());
return [
'tahun' => $tahun,
'tanggal' => $tanggal,
'jumlahKota' => $jumlahKota,
'jumlahKecamatan' => $jumlahKecamatan,
'jumlahPelatihan' => $jumlahPelatihan,
'jumlahPeserta' => $jumlahPeserta,
'dataPeta' => $dataPeta,
'sebaranPesertaPerKota' => $sebaranPesertaPerKota,
'grafikPesertaJenisKelamin' => $grafikPesertaJenisKelamin,
'kotas' => $kotas,
'tableData' => $tableData,
'organisasi' => $organisasi
];
}
}
Anons79 File Manager Version 1.0, Coded By Anons79
Email: [email protected]