diff --git a/app/Models/Dataset/DatasetTable32.php b/app/Models/Dataset/DatasetTable32.php index b5b47c5..37b027d 100644 --- a/app/Models/Dataset/DatasetTable32.php +++ b/app/Models/Dataset/DatasetTable32.php @@ -16,7 +16,77 @@ use SoftDeletes; protected $guarded = []; -function dataset() { + function dataset() { return $this->belongsTo('App\Models\Dataset','dataset_id'); } + + public static function dataChart($modelClass,$datasetId,$templateId){ + + $datasets = \App\Models\Dataset::where('template_id', $templateId) + ->orderBy('tahun', 'asc') + ->get() + ->map(function ($dataset) use ($modelClass) { + $dataset->items = (new $modelClass)->where('dataset_id', $dataset->id)->get(); + return $dataset; + }); + $years = $datasets->pluck('tahun')->toArray(); + $model = self::with('dataset')->whereHas('dataset',function($query) use ($years){ + $query->whereIn('tahun',$years); + })->where('dataset_id',$datasetId)->get(); + + $result = []; + foreach ($model as $row) { + $lokasi = $row->lokasi ?? 'Unknown'; + + if (!isset($result[$lokasi])) { + $result[$lokasi] = [ + 'lokasi' => [], + 'tidak_sekolah' => [], + 'sd' => [], + 'sltp' => [], + 'slta' => [], + 'pt' => [], + ]; + } + + $result[$lokasi]['lokasi'][] = (float) $row->lokasi; + $result[$lokasi]['tidak_sekolah'][] = (float) $row->tidak_sekolah_l+(float) $row->tidak_sekolah_p; + $result[$lokasi]['sd'][] = (float) $row->sd_p+(float) $row->sd_l; + $result[$lokasi]['sltp'][] = (float) $row->sltp_p+(float) $row->sltp_l; + $result[$lokasi]['slta'][] = (float) $row->slta_smk_p+(float) $row->slta_smk_l; + $result[$lokasi]['pt'][] = (float) $row->pt_p+(float) $row->pt_l; + } + + return [ + 'title' => '', + 'years' => $years, + 'yTitle' => 'Jumlah', + 'yOpposite' => '', + 'series' => collect($result)->flatMap(function ($item, $lokasi) { + return [ + [ + 'name' => "Tidak Sekolah - {$lokasi}", + 'type' => 'column', + 'data' => $item['tidak_sekolah'] + ],[ + 'name' => "SD - {$lokasi}", + 'type' => 'column', + 'data' => $item['sd'] + ],[ + 'name' => "SMP - {$lokasi}", + 'type' => 'column', + 'data' => $item['sltp'] + ],[ + 'name' => "SMA/SMK - {$lokasi}", + 'type' => 'column', + 'data' => $item['slta'] + ],[ + 'name' => "Perguruan Tinggi - {$lokasi}", + 'type' => 'column', + 'data' => $item['pt'] + ], + ]; + })->values() + ]; + } } diff --git a/resources/views/modules/dashboard/resource_detail.blade.php b/resources/views/modules/dashboard/resource_detail.blade.php index a85e6e2..88e96c4 100644 --- a/resources/views/modules/dashboard/resource_detail.blade.php +++ b/resources/views/modules/dashboard/resource_detail.blade.php @@ -34,28 +34,26 @@ @endsection \ No newline at end of file