Anons79 Mini Shell

Directory : /home/aplikasiposinfo/www/talent.gosepakat.id/app/Http/Controllers/
Upload File :
Current File : /home/aplikasiposinfo/www/talent.gosepakat.id/app/Http/Controllers/WelcomeController.php

<?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]