diff --git a/app/Http/Controllers/Admins/DashboardController.php b/app/Http/Controllers/Admins/DashboardController.php index 5b7d955..f45a1f3 100755 --- a/app/Http/Controllers/Admins/DashboardController.php +++ b/app/Http/Controllers/Admins/DashboardController.php @@ -7,8 +7,10 @@ use App\Models\AgendaGuestBooks; use App\Models\Agendas; use App\Models\Appointments; use App\Models\DataRequests; +use App\Models\Master\Agamas; use App\Models\User; use Illuminate\Http\Request; +use Illuminate\Support\Facades\DB; class DashboardController extends Controller { @@ -21,6 +23,49 @@ class DashboardController extends Controller return view('pages.admins.dashboard', $this->total()); } + public function coba() + { + $data_agama = $this->data_agama(); + // return $data_agama['json_keterangan']; + // Call view Dashboard + return view('pages.admins.coba', compact('data_agama')); + } + + private function data_agama() + { + $data = Agamas::leftJoin(DB::raw('( + SELECT + qa.answer, + qs.name, + qd.question_label, + qd.question_value, + JSON_UNQUOTE(JSON_EXTRACT(qd.question_label, \'$[0]\')) AS question_type, + JSON_UNQUOTE(JSON_EXTRACT(qd.question_value, \'$[0]\')) AS name_master, + COUNT(qa.answer) AS total_agama + FROM question_answers AS qa + LEFT JOIN question_surveys AS qs ON qs.id = qa.question_id + LEFT JOIN question_details AS qd ON qs.id = qd.question_id + WHERE qa.answer_type = \'Master\' + GROUP BY qa.answer + HAVING question_type = \'Master\' AND name_master = \'Agamas\' + ) AS total'), 'total.answer', '=', 'mst_agamas.keterangan') + ->select('mst_agamas.keterangan AS nama') + ->selectRaw('IFNULL(total.total_agama, 0) AS total_agama') + ->get(); + + $json_total = $data->pluck('total_agama'); + $json_keterangan = $data->pluck('nama'); + + // $json_keterangan = '["' . implode('"], [', $json_keterangan) . '"]'; + + return [ + 'total' => $data->sum('total_agama'), + 'json_total' => $json_total, + 'json_keterangan' => $json_keterangan, + 'data' => $data, + ]; + } + // Total Request public function total() { diff --git a/app/Http/Controllers/Master/MasterStatusPerkawinanController.php b/app/Http/Controllers/Master/MasterStatusPerkawinanController.php index 31dd083..cdf031e 100644 --- a/app/Http/Controllers/Master/MasterStatusPerkawinanController.php +++ b/app/Http/Controllers/Master/MasterStatusPerkawinanController.php @@ -12,6 +12,6 @@ class MasterStatusPerkawinanController extends Controller { $data = MasterStatusPerkawinans::paginate(10); - return view('pages.masters.disabilitas.index', compact('data')); + return view('pages.masters.status-perkawinans.index', compact('data')); } } diff --git a/corat-coret.sql b/corat-coret.sql new file mode 100644 index 0000000..e314892 --- /dev/null +++ b/corat-coret.sql @@ -0,0 +1,151 @@ +SELECT + ma.*, + qa.id as question_answer_id, qa.question_id, qa.answer_type, qa.answer, + qs.name, + qd.question_label, qd.question_value, + JSON_UNQUOTE(JSON_EXTRACT(qd.question_label, '$[0]')) AS question_type, + JSON_UNQUOTE(JSON_EXTRACT(qd.question_value, '$[0]')) AS name_master, + count(qa.answer) as total_agama +FROM mst_agamas as ma +LEFT JOIN question_answers as qa ON qa.answer = ma.keterangan +LEFT JOIN question_surveys as qs ON qs.id = qa.question_id +LEFT JOIN question_details as qd ON qs.id = qd.question_id +WHERE qa.answer_type = 'Master' +GROUP BY ma.keterangan -- , qa.answer +HAVING + question_type = 'Master' + AND name_master = 'Agamas'; + +-- SHOW SPECIFIC DATA ARRAY +SELECT JSON_UNQUOTE(JSON_EXTRACT('["Agamas", "keterangan"]', '$[0]')) AS name; + +-- Trial show all data agama +SELECT + qa.id as question_answer_id, qa.question_id, qa.answer_type, qa.answer, + qs.name, + qd.question_label, qd.question_value, + JSON_UNQUOTE(JSON_EXTRACT(qd.question_label, '$[0]')) AS question_type, + JSON_UNQUOTE(JSON_EXTRACT(qd.question_value, '$[0]')) AS name_master, + count(qa.answer) as total_agama +FROM question_answers as qa +LEFT JOIN question_surveys as qs ON qs.id = qa.question_id +LEFT JOIN question_details as qd ON qs.id = qd.question_id +WHERE qa.answer_type = 'Master' +GROUP BY qa.answer +HAVING + question_type = 'Master' + AND name_master = 'Agamas'; + +-- Count data Agama +SELECT + ma.keterangan as nama, IFNULL(total.total_agama, 0) as total_agamane +FROM mst_agamas as ma +LEFT JOIN ( + SELECT + qa.id as question_answer_id, qa.question_id, qa.answer_type, qa.answer, + qs.name, + qd.question_label, qd.question_value, + JSON_UNQUOTE(JSON_EXTRACT(qd.question_label, '$[0]')) AS question_type, + JSON_UNQUOTE(JSON_EXTRACT(qd.question_value, '$[0]')) AS name_master, + count(qa.answer) as total_agama + FROM question_answers as qa + LEFT JOIN question_surveys as qs ON qs.id = qa.question_id + LEFT JOIN question_details as qd ON qs.id = qd.question_id + WHERE qa.answer_type = 'Master' + GROUP BY qa.answer + HAVING + question_type = 'Master' + AND name_master = 'Agamas' +) as total ON total.answer = ma.keterangan; + + +-- Count data disabilitas +SELECT + md.keterangan as nama, IFNULL(total.total_agama, 0) as total_agamane +FROM mst_disabilitas as md +LEFT JOIN ( + SELECT + qa.id as question_answer_id, qa.question_id, qa.answer_type, qa.answer, + qs.name, + qd.question_label, qd.question_value, + JSON_UNQUOTE(JSON_EXTRACT(qd.question_label, '$[0]')) AS question_type, + JSON_UNQUOTE(JSON_EXTRACT(qd.question_value, '$[0]')) AS name_master, + count(qa.answer) as total_agama + FROM question_answers as qa + LEFT JOIN question_surveys as qs ON qs.id = qa.question_id + LEFT JOIN question_details as qd ON qs.id = qd.question_id + WHERE qa.answer_type = 'Master' + GROUP BY qa.answer + HAVING + question_type = 'Master' + AND name_master = 'MasterDisabilitas' +) as total ON total.answer = md.keterangan; + + +-- Count data disabilitas +SELECT + md.keterangan as nama, IFNULL(total.total_agama, 0) as total_agamane +FROM mst_disabilitas as md +LEFT JOIN ( + SELECT + qa.id as question_answer_id, qa.question_id, qa.answer_type, qa.answer, + qs.name, + qd.question_label, qd.question_value, + JSON_UNQUOTE(JSON_EXTRACT(qd.question_label, '$[0]')) AS question_type, + JSON_UNQUOTE(JSON_EXTRACT(qd.question_value, '$[0]')) AS name_master, + count(qa.answer) as total_agama + FROM question_answers as qa + LEFT JOIN question_surveys as qs ON qs.id = qa.question_id + LEFT JOIN question_details as qd ON qs.id = qd.question_id + WHERE qa.answer_type = 'Master' + GROUP BY qa.answer + HAVING + question_type = 'Master' + AND name_master = 'MasterDisabilitas' +) as total ON total.answer = md.keterangan; + + +-- Count data status perkawinan +SELECT + msp.keterangan as nama, IFNULL(total.total_agama, 0) as total_agamane +FROM mst_status_perkawinans as msp +LEFT JOIN ( + SELECT + qa.id as question_answer_id, qa.question_id, qa.answer_type, qa.answer, + qs.name, + qd.question_label, qd.question_value, + JSON_UNQUOTE(JSON_EXTRACT(qd.question_label, '$[0]')) AS question_type, + JSON_UNQUOTE(JSON_EXTRACT(qd.question_value, '$[0]')) AS name_master, + count(qa.answer) as total_agama + FROM question_answers as qa + LEFT JOIN question_surveys as qs ON qs.id = qa.question_id + LEFT JOIN question_details as qd ON qs.id = qd.question_id + WHERE qa.answer_type = 'Master' + GROUP BY qa.answer + HAVING + question_type = 'Master' + AND name_master = 'MasterStatusPerkawinans' +) as total ON total.answer = msp.keterangan; + + +-- Total Laki Laki Dan Perempuan +SELECT + msp.keterangan as nama, IFNULL(total.total_agama, 0) as total_agamane +FROM mst_status_perkawinans as msp +LEFT JOIN ( + SELECT + qa.id as question_answer_id, qa.question_id, qa.answer_type, qa.answer, + qs.name, + qd.question_label, qd.question_value, + JSON_UNQUOTE(JSON_EXTRACT(qd.question_label, '$[0]')) AS question_type, + JSON_UNQUOTE(JSON_EXTRACT(qd.question_value, '$[0]')) AS name_master, + count(qa.answer) as total_agama + FROM question_answers as qa + LEFT JOIN question_surveys as qs ON qs.id = qa.question_id + LEFT JOIN question_details as qd ON qs.id = qd.question_id + WHERE qa.answer_type = 'Master' + GROUP BY qa.answer + HAVING + question_type = 'Master' + AND name_master = 'MasterStatusPerkawinans' +) as total ON total.answer = msp.keterangan; \ No newline at end of file diff --git a/resources/views/pages/admins/coba.blade.php b/resources/views/pages/admins/coba.blade.php new file mode 100644 index 0000000..4c4f4f6 --- /dev/null +++ b/resources/views/pages/admins/coba.blade.php @@ -0,0 +1,309 @@ +@extends('layouts.app') +@section('title', 'Dashboard') +@section('content') + + +
Data mayoritas agama responden
+ +Total
+
+ Id+ |
+
+ Assigned+ |
+
+ Name+ |
+
+ Priority+ |
+
+ Budget+ |
+
---|---|---|---|---|
+ 1+ |
+
+ Sunil Joshi+ Web Designer + |
+
+ Elite Admin + |
+
+
+ Low
+
+ |
+
+ $3.9+ |
+
+ 2+ |
+
+ Andrew McDownland+ Project Manager + |
+
+ Real Homes WP Theme + |
+
+
+ Medium
+
+ |
+
+ $24.5k+ |
+
+ 3+ |
+
+ Christopher Jamil+ Project Manager + |
+
+ MedicalPro WP Theme + |
+
+
+ High
+
+ |
+
+ $12.8k+ |
+
+ 4+ |
+
+ Nirav Joshi+ Frontend Engineer + |
+
+ Hosting Press HTML + |
+
+
+ Critical
+
+ |
+
+ $2.4k+ |
+
- {{ $_data->keterangan }} + {{ $_data->keterangan }} | @empty diff --git a/resources/views/pages/masters/status-perkawinans/index.blade.php b/resources/views/pages/masters/status-perkawinans/index.blade.php index b0bcaaa..56a7138 100644 --- a/resources/views/pages/masters/status-perkawinans/index.blade.php +++ b/resources/views/pages/masters/status-perkawinans/index.blade.php @@ -1,12 +1,12 @@ @extends('layouts.app') -@section('title', 'Master Pekerjaan') +@section('title', 'Master Status Perkawinan') @section('content')
- {{ $_data->keterangan }} + {{ $_data->keterangan }} | @empty diff --git a/resources/views/pages/masters/status-tempat-tinggals/index.blade.php b/resources/views/pages/masters/status-tempat-tinggals/index.blade.php index 7a5e497..1220034 100644 --- a/resources/views/pages/masters/status-tempat-tinggals/index.blade.php +++ b/resources/views/pages/masters/status-tempat-tinggals/index.blade.php @@ -1,12 +1,12 @@ @extends('layouts.app') -@section('title', 'Master Disabilitas') +@section('title', 'Master Status Tempat Tinggal') @section('content')
- {{ $_data->keterangan }} + {{ $_data->keterangan }} | @empty diff --git a/routes/web.php b/routes/web.php index 2623cf8..14386b5 100755 --- a/routes/web.php +++ b/routes/web.php @@ -121,6 +121,7 @@ Route::group(['prefix' => 'admin', 'middleware' => ['role:Admin|Staff']], functi Route::group(['prefix' => 'admin', 'middleware' => ['role:Admin|Staff|Responden']], function () { // Dashboard Route::get('dashboard', [DashboardController::class, 'index'])->name('dashboard.index'); + Route::get('coba', [DashboardController::class, 'coba'])->name('coba'); Route::get('dashboard/total', [DashboardController::class, 'total'])->name('admin.dashboard.total'); // Profile