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') + + +
+
+
+
+
+

+ Grafik Agama +

+

Data mayoritas agama responden

+
+
+
+
+ +
+
+

Total

+
+ {{ $data_agama['total'] }} + data +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Recent Transactions
+
+
    +
  • +
    09:30
    +
    + + +
    +
    Payment received from John Doe of $385.90
    +
  • +
  • +
    10:00 am
    +
    + + +
    +
    New sale recorded #ML-3467 +
    +
  • +
  • +
    12:00 am
    +
    + + +
    +
    Payment was made of $64.95 to Michael
    +
  • +
  • +
    09:30 am
    +
    + + +
    +
    New sale recorded #ML-3467 +
    +
  • +
  • +
    09:30 am
    +
    + + +
    +
    New arrival recorded +
    +
  • +
  • +
    12:00 am
    +
    + +
    +
    Payment Done
    +
  • +
+
+
+
+
+
+
+
Recent Transactions
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
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
+
+
+
+
+
+
+ @push('scripts') + + {{-- --}} + + @if (Session::has('login-message')) + + @endif + + + @endpush +@endsection diff --git a/resources/views/pages/masters/pekerjaans/index.blade.php b/resources/views/pages/masters/pekerjaans/index.blade.php index 7a5e497..62ad48c 100644 --- a/resources/views/pages/masters/pekerjaans/index.blade.php +++ b/resources/views/pages/masters/pekerjaans/index.blade.php @@ -1,12 +1,12 @@ @extends('layouts.app') -@section('title', 'Master Disabilitas') +@section('title', 'Master Pekerjaan') @section('content')
-
Master Disabilitas
+
Master Pekerjaan
@@ -28,8 +28,7 @@ class="fw-normal mb-0">{{ ($data->currentPage() - 1) * $data->perPage() + $loop->index + 1 }} @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')
-
Master Pekerjaan
+
Master Status Perkawinan
- {{ $_data->keterangan }} + {{ $_data->keterangan }}
@@ -28,8 +28,7 @@ class="fw-normal mb-0">{{ ($data->currentPage() - 1) * $data->perPage() + $loop->index + 1 }} @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')
-
Master Disabilitas
+
Master Status Tempat Tinggal
- {{ $_data->keterangan }} + {{ $_data->keterangan }}
@@ -28,8 +28,7 @@ class="fw-normal mb-0">{{ ($data->currentPage() - 1) * $data->perPage() + $loop->index + 1 }} @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
- {{ $_data->keterangan }} + {{ $_data->keterangan }}