fix category dan tambah total tidak mau survey

This commit is contained in:
Muhammad Thoriq 2025-12-05 14:09:06 +07:00
parent 57c29e9dc3
commit 52dc255c62
5 changed files with 72 additions and 19 deletions

View File

@ -253,6 +253,19 @@ class AdminController extends Controller
} }
public function data_tidak_mau_survey(Request $request)
{
$total_tidak = DB::table('lms_mutu_jawaban_detail as a')
->where('a.lms_mutu_soal_detail_id', 51)
->where('a.jawaban', 'TIDAK')
->count();
return response()->json([
'msg' => 'Berhasil',
'data' => $total_tidak
], 200);
}
public function dashboard_analisis() public function dashboard_analisis()
{ {
$data['list_unit_kerja'] = [ $data['list_unit_kerja'] = [
@ -1304,7 +1317,7 @@ class AdminController extends Controller
$category = [ $category = [
[ [
'name' => '0 - 2 Tahun', 'name' => '0 - 1 Tahun',
'total' => $total, 'total' => $total,
'percent' => 0, 'percent' => 0,
'value' => 0 'value' => 0
@ -1331,11 +1344,17 @@ class AdminController extends Controller
// set value // set value
foreach ($value['jawaban'] as $v) { foreach ($value['jawaban'] as $v) {
$tahun = intval($v['name']); $teks = $v['name'];
if($tahun <= 2){ $parts = explode(" ", $teks);
$tahun = $parts[0] ?? 0;
$bulan = $parts[2] ?? 0;
$tahun = $tahun . '.' . $bulan;
if($tahun <= 1){
$category[0]['value'] += $v['value']; $category[0]['value'] += $v['value'];
} else if($tahun >= 3 && $tahun <= 5){ } else if($tahun >= 2 && $tahun <= 5){
$category[1]['value'] += $v['value']; $category[1]['value'] += $v['value'];
} else if($tahun >= 6 && $tahun <= 10) { } else if($tahun >= 6 && $tahun <= 10) {
$category[2]['value'] += $v['value']; $category[2]['value'] += $v['value'];

View File

@ -13,6 +13,16 @@
<div class="card"> <div class="card">
<div class="card-body"> <div class="card-body">
<div class="card-title fs-4 fw-bold">Dashboard</div> <div class="card-title fs-4 fw-bold">Dashboard</div>
<div class="mt-5">
<div class="card w-50 text-bg-danger">
<div class="card-body">
<div class="card-title fs-4 fw-bold d-flex justify-content-between">
<div class="text-white">Total Tidak Mau Survey</div>
<div class="text-white" id="total_tidak_mau">-</div>
</div>
</div>
</div>
</div>
<div class="mt-5"> <div class="mt-5">
<div class="d-flex gap-2 align-items-end"> <div class="d-flex gap-2 align-items-end">
<div class="form-group w-75"> <div class="form-group w-75">
@ -72,6 +82,7 @@
}) })
generateTable(); generateTable();
getTotalTidakMauSurvey();
}); });
function generateTable() { function generateTable() {
@ -92,5 +103,19 @@
] ]
}); });
} }
function getTotalTidakMauSurvey() {
$.ajax({
url: "{{ url('/admin/get_data_pegawai_tidak_mau_survey') }}",
type: "POST",
data: {
unit_kerja: $('#select_unit_kerja').val(),
_token: "{{ csrf_token() }}"
},
success: function(res) {
$('#total_tidak_mau').html((res.data ?? '-') + ' Orang');
}
});
}
</script> </script>
@endsection @endsection

View File

@ -85,13 +85,13 @@
const jawabanCategory = [ const jawabanCategory = [
{ {
name: '0 - 2 Tahun', name: '0 - 1 Tahun',
total: totalJawaban, total: totalJawaban,
percent: 0, percent: 0,
value: 0 value: 0
}, },
{ {
name: '3 - 5 Tahun', name: '2 - 5 Tahun',
total: totalJawaban, total: totalJawaban,
percent: 0, percent: 0,
value: 0 value: 0
@ -112,11 +112,15 @@
// set value // set value
dataMappingLamaKerjaFaskes.jawaban.map(val => { dataMappingLamaKerjaFaskes.jawaban.map(val => {
const tahun = parseInt(val.name); const parts = val.name.split(" ");
const tahunParts = parts[0] ?? 0;
const bulanParts = parts[2] >> 0;
if(tahun <= 2){ const tahun = `${tahunParts}.${bulanParts}`;
if(tahun <= 1){
jawabanCategory[0]['value'] += val.value; jawabanCategory[0]['value'] += val.value;
} else if(tahun >= 3 && tahun <= 5){ } else if(tahun >= 2 && tahun <= 5){
jawabanCategory[1]['value'] += val.value; jawabanCategory[1]['value'] += val.value;
} else if(tahun >= 6 && tahun <= 10) { } else if(tahun >= 6 && tahun <= 10) {
jawabanCategory[2]['value'] += val.value; jawabanCategory[2]['value'] += val.value;
@ -153,13 +157,13 @@
const jawabanCategory = [ const jawabanCategory = [
{ {
name: '0 - 2 Tahun', name: '0 - 1 Tahun',
total: totalJawaban, total: totalJawaban,
percent: 0, percent: 0,
value: 0 value: 0
}, },
{ {
name: '3 - 5 Tahun', name: '2 - 5 Tahun',
total: totalJawaban, total: totalJawaban,
percent: 0, percent: 0,
value: 0 value: 0
@ -180,11 +184,15 @@
// set value // set value
dataMappingLamaKerjaUnit.jawaban.map(val => { dataMappingLamaKerjaUnit.jawaban.map(val => {
const tahun = parseInt(val.name); const parts = val.name.split(" ");
const tahunParts = parts[0] ?? 0;
const bulanParts = parts[2] >> 0;
if(tahun <= 2){ const tahun = `${tahunParts}.${bulanParts}`;
if(tahun <= 1){
jawabanCategory[0]['value'] += val.value; jawabanCategory[0]['value'] += val.value;
} else if(tahun >= 3 && tahun <= 5){ } else if(tahun >= 2 && tahun <= 5){
jawabanCategory[1]['value'] += val.value; jawabanCategory[1]['value'] += val.value;
} else if(tahun >= 6 && tahun <= 10) { } else if(tahun >= 6 && tahun <= 10) {
jawabanCategory[2]['value'] += val.value; jawabanCategory[2]['value'] += val.value;

View File

@ -113,16 +113,16 @@
<i class="fa-solid fa-building"></i> Dashboard Per Unit <i class="fa-solid fa-building"></i> Dashboard Per Unit
</div> </div>
</a> </a>
<a href="{{ url('/admin/dashboard_analisis') }}" class="nav-link px-0 list-materi-hover px-3 d-flex justify-content-between align-items-center fs-5">
<div class="d-flex gap-2 align-items-center">
<i class="fa-solid fa-circle-question"></i> Analisis Per Soal
</div>
</a>
<a href="{{ url('/admin/dashboard_demografi') }}" class="nav-link px-0 list-materi-hover px-3 d-flex justify-content-between align-items-center fs-5"> <a href="{{ url('/admin/dashboard_demografi') }}" class="nav-link px-0 list-materi-hover px-3 d-flex justify-content-between align-items-center fs-5">
<div class="d-flex gap-2 align-items-center"> <div class="d-flex gap-2 align-items-center">
<i class="fa-solid fa-magnifying-glass-chart"></i> Analisis Demografi <i class="fa-solid fa-magnifying-glass-chart"></i> Analisis Demografi
</div> </div>
</a> </a>
<a href="{{ url('/admin/dashboard_analisis') }}" class="nav-link px-0 list-materi-hover px-3 d-flex justify-content-between align-items-center fs-5">
<div class="d-flex gap-2 align-items-center">
<i class="fa-solid fa-circle-question"></i> Analisis Per Soal
</div>
</a>
<a href="{{ url('/admin/dashboard_jawaban') }}" class="nav-link px-0 list-materi-hover px-3 d-flex justify-content-between align-items-center fs-5"> <a href="{{ url('/admin/dashboard_jawaban') }}" class="nav-link px-0 list-materi-hover px-3 d-flex justify-content-between align-items-center fs-5">
<div class="d-flex gap-2 align-items-center"> <div class="d-flex gap-2 align-items-center">
<i class="fa-solid fa-people-group"></i> Detail Jawaban Pegawai <i class="fa-solid fa-people-group"></i> Detail Jawaban Pegawai

View File

@ -11,6 +11,7 @@ Route::post('/jawaban', [SoalController::class, 'store'])->name('soal.store');
Route::get('/jawaban/terima-kasih', [SoalController::class, 'thankYou'])->name('soal.thankyou'); Route::get('/jawaban/terima-kasih', [SoalController::class, 'thankYou'])->name('soal.thankyou');
Route::get('/admin', [AdminController::class, 'index']); Route::get('/admin', [AdminController::class, 'index']);
Route::post('/admin/get_data_pegawai_sudah_survey', [AdminController::class, 'get_data_pegawai_sudah_survey']); Route::post('/admin/get_data_pegawai_sudah_survey', [AdminController::class, 'get_data_pegawai_sudah_survey']);
Route::post('/admin/get_data_pegawai_tidak_mau_survey', [AdminController::class, 'data_tidak_mau_survey']);
Route::get('/admin/dashboard_jawaban', [AdminController::class, 'dashboard_analisis']); Route::get('/admin/dashboard_jawaban', [AdminController::class, 'dashboard_analisis']);
Route::post('/admin/get_data_dashboard_jawaban', [AdminController::class, 'get_data_dashboard_analisis']); Route::post('/admin/get_data_dashboard_jawaban', [AdminController::class, 'get_data_dashboard_analisis']);
Route::get('/redirect-smart', [SoalController::class, 'redirectSmart']); Route::get('/redirect-smart', [SoalController::class, 'redirectSmart']);