<?php
namespace App\Http\Controllers\Api;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use DateTime;
use App\Helpers\Helper;
use App\Models\Kecamatan;
use App\Models\Kelurahan;
use App\Models\DataWarga;
use Illuminate\Support\Facades\DB;
class ApiChartController extends Controller
{
// aasort($your_array, "order");
public function getDataByDay($dayBefore)
{
$date = date('Y-m-d');
$weekOfdays = array([
'tanggal'=>date('Y-m-d'),
'data'=>Helper::jumlahWargaPerHari(date('Y-m-d'))
]);
$date = new DateTime($date);
for($i=1; $i < $dayBefore ; $i++){
$date->modify('-1 day');
$weekOfdays[] = [
'tanggal'=>$date->format('Y-m-d'),
'data'=>Helper::jumlahWargaPerHari($date->format('Y-m-d'))
];
}
// $this->aasort($weekOfdays, "data");
usort($weekOfdays, function($a, $b) {
return strnatcasecmp($a['data'], $b['data']);
});
// dd($weekOfdays);
return $weekOfdays;
}
public function getPieKecamatan($kabupaten = null)
{
if($kabupaten == null || $kabupaten == 0){
// $kelurahans = Kelurahan::orderBy('nama_kelurahan','ASC')->get();
$k = [];
$w = [];
$c = [];
$total = 0;
// foreach ($kelurahans as $kelurahan) {
// $k[] = $kelurahan->nama_kelurahan;
// $c[] = '#' . str_pad(dechex(mt_rand(0, 0xFFFFFF)), 6, '0', STR_PAD_LEFT);
// $k_i = $kelurahan->id;
// $w[] = DataWarga::where('kelurahan_id',$k_i)->count();
// $total += DataWarga::where('kelurahan_id',$k_i)->count();
// }
$datawarga = DataWarga::select('kecamatans.id AS kecamatanID', 'kecamatans.nama_kecamatan',DB::raw('count(*) AS total'))
->join('kelurahans', 'kelurahans.id', '=', 'data_wargas.kelurahan_id')
->join('kecamatans', 'kecamatans.id', '=', 'kelurahans.kecamatan_id')
->groupBy('kecamatanID')
->get();
foreach($datawarga as $a) {
$k[] = $a->nama_kecamatan;
$c[] = '#' . str_pad(dechex(mt_rand(0, 0xFFFFFF)), 6, '0', STR_PAD_LEFT);
$k_i = $a->kecamatanID;
$hitung = $a->total;
$w[] = $hitung;
$total += $hitung;
}
return $data = ['label'=>$k,'data'=>$w,'color'=>$c,'total'=>$total];
} else {
// $kelurahans = Kelurahan::orderBy('nama_kelurahan','ASC')->where('kecamatan_id',$kecamatan)->get();
$k = [];
$w = [];
$c = [];
$total = 0;
// foreach ($kelurahans as $kelurahan) {
// $k[] = $kelurahan->nama_kelurahan;
// $c[] = '#' . str_pad(dechex(mt_rand(0, 0xFFFFFF)), 6, '0', STR_PAD_LEFT);
// $k_i = $kelurahan->id;
// $w[] = DataWarga::where('kelurahan_id',$k_i)->whereHas('kelurahan',function ($q)use($kecamatan)
// {
// $q->where('kecamatan_id',$kecamatan);
// })->count();
// $total += DataWarga::where('kelurahan_id',$k_i)->whereHas('kelurahan',function ($q)use($kecamatan)
// {
// $q->where('kecamatan_id',$kecamatan);
// })->count();
// }
$datawarga = DataWarga::select('kecamatans.id AS kecamatanID', 'kecamatans.nama_kecamatan',DB::raw('count(*) AS total'))
->join('kelurahans', 'kelurahans.id', '=', 'data_wargas.kelurahan_id')
->join('kecamatans', 'kecamatans.id', '=', 'kelurahans.kecamatan_id')
->where('kecamatans.kabupaten_id','=', $kabupaten)
->groupBy('kecamatanID')
->get();
foreach($datawarga as $a) {
$k[] = $a->nama_kecamatan;
$c[] = '#' . str_pad(dechex(mt_rand(0, 0xFFFFFF)), 6, '0', STR_PAD_LEFT);
$k_i = $a->kecamatanID;
$hitung = $a->total;
$w[] = $hitung;
$total += $hitung;
}
return $data = ['label'=>$k,'data'=>$w,'color'=>$c,'total'=>$total];
}
}
public function getPieKelurahan($kecamatan = null)
{
if($kecamatan == null || $kecamatan == 0){
$kelurahans = Kelurahan::orderBy('nama_kelurahan','ASC')->get();
$k = [];
$w = [];
$c = [];
$total = 0;
foreach ($kelurahans as $kelurahan) {
$k[] = $kelurahan->nama_kelurahan;
$c[] = '#' . str_pad(dechex(mt_rand(0, 0xFFFFFF)), 6, '0', STR_PAD_LEFT);
$k_i = $kelurahan->id;
$w[] = DataWarga::where('kelurahan_id',$k_i)->count();
$total += DataWarga::where('kelurahan_id',$k_i)->count();
}
return $data = ['label'=>$k,'data'=>$w,'color'=>$c,'total'=>$total];
} else {
$kelurahans = Kelurahan::orderBy('nama_kelurahan','ASC')->where('kecamatan_id',$kecamatan)->get();
$k = [];
$w = [];
$c = [];
$total = 0;
foreach ($kelurahans as $kelurahan) {
$k[] = $kelurahan->nama_kelurahan;
$c[] = '#' . str_pad(dechex(mt_rand(0, 0xFFFFFF)), 6, '0', STR_PAD_LEFT);
$k_i = $kelurahan->id;
$w[] = DataWarga::where('kelurahan_id',$k_i)->whereHas('kelurahan',function ($q)use($kecamatan)
{
$q->where('kecamatan_id',$kecamatan);
})->count();
$total += DataWarga::where('kelurahan_id',$k_i)->whereHas('kelurahan',function ($q)use($kecamatan)
{
$q->where('kecamatan_id',$kecamatan);
})->count();
}
return $data = ['label'=>$k,'data'=>$w,'color'=>$c,'total'=>$total];
}
}
public function getPieRt($kelurahan = null)
{
if($kelurahan == null || $kelurahan == 0){
$rt = DataWarga::groupBy('rt')->pluck('rt');
$k = [];
$w = [];
$c = [];
$total = 0;
for ($i=0; $i < count($rt); $i++) {
$k[] = $rt[$i];
$c[] = '#' . str_pad(dechex(mt_rand(0, 0xFFFFFF)), 6, '0', STR_PAD_LEFT);
$k_i = $rt[$i];
$w[] = DataWarga::where('rt',$k_i)->count();
$total += DataWarga::where('rt',$k_i)->count();
}
return ['label'=>$k,'data'=>$w,'color'=>$c,'total'=>$total];
} else {
$rt = DataWarga::groupBy('rt')->where('kelurahan_id',$kelurahan)->pluck('rt');
$k = [];
$w = [];
$c = [];
$total = 0;
for ($i=0; $i < count($rt); $i++) {
$k[] = "RT : ".$rt[$i];
$c[] = '#' . str_pad(dechex(mt_rand(0, 0xFFFFFF)), 6, '0', STR_PAD_LEFT);
$k_i = $rt[$i];
$w[] = DataWarga::where('rt',$k_i)->where('kelurahan_id',$kelurahan)->count();
$total += DataWarga::where('rt',$k_i)->where('kelurahan_id',$kelurahan)->count();
}
return ['label'=>$k,'data'=>$w,'color'=>$c,'total'=>$total];
}
}
}
Anons79 File Manager Version 1.0, Coded By Anons79
Email: [email protected]