'Halaman Utama', ]; $checkWali = Wali::where('user_id', auth()->user()->id)->first(); $getTotalTicketOpen = TicketModel::whereIn('is_status', [1, 2, 3])->where('user_id', $checkWali->siswa_id)->count(); $getTotalTicketClose = TicketModel::where('is_status', 4)->where('user_id', $checkWali->siswa_id)->count(); $getTotalTicket = TicketModel::where('user_id', $checkWali->siswa_id)->count(); $getTotalAduan = TicketModel::where('user_id', $checkWali->siswa_id)->get(); return view('wali::index', compact('data', 'getTotalAduan', 'getTotalTicketOpen', 'getTotalTicketClose', 'getTotalTicket')); } // ticket aduan public function ticket(Request $request) { $checkWali = Wali::where('user_id', auth()->user()->id)->first(); if ($request->ajax()) { $data = TicketModel::where('user_id', $checkWali->siswa_id)->select('*'); // Convert the Eloquent Collection to a regular PHP array $data->each(function ($item, $key) { $item->rowIndex = $key + 1; }); return Datatables::of($data) ->addIndexColumn() ->addColumn('title-post', function($row){ $text = '

' . $row->subject . '

Terakhir diperbarui pada ' . date_formatting($row->updated_at, 'timeago') . '

'; return $text; }) ->addColumn('siswa', function($row){ return User::where('id', $row->user_id)->first()->name; }) ->addColumn('action', function($row){ $view = route('ticket.view', ['id' => $row->id]); $delete = route('ticket.delete', ['id' => $row->id]); $btn = ' '; return $btn; }) ->addColumn('status', function($row){ if ($row->is_status == 1) { return 'Pending'; } elseif($row->is_status == 2) { return 'Admin Membalas'; } elseif($row->is_status == 3) { return 'User Membalas'; } elseif($row->is_status == 4) { return 'Ditutup'; } }) ->addColumn('status_permintaan', function($row){ if ($row->is_approval_siswa == 1 || $row->is_approval_konselor == 1) { return 'Permintaan Disetujui'; } elseif($row->is_approval_siswa == 3 || $row->is_approval_konselor == 3) { return 'Menunggu Persetujuan'; } elseif($row->is_approval_siswa == 4 || $row->is_approval_konselor == 4) { return 'Permintaan Ditolak'; } else { return '-'; } }) ->addColumn('priority', function($row){ if ($row->is_priority == GlobalEnum::isTicketPriorityNormal) { return 'Normal'; } elseif($row->is_priority == GlobalEnum::isTicketPriorityMedium) { return 'Sedang'; } elseif($row->is_priority == GlobalEnum::isTicketPriorityHigh) { return 'Parah'; } }) ->rawColumns(['title-post','action','status','priority','siswa','status_permintaan']) ->filter(function ($query) use ($request) { if ($request->has('search')) { $search = $request->get('search')['value']; $filterCategory = explode('|', $search); if($filterCategory[0] === 'status') { if(!empty($filterCategory[1])) { $query->where('is_status', '=', $filterCategory[1]); } else { $query->get(); } } elseif($filterCategory[0] === 'user') { if(!empty($filterCategory[1])) { $query->where('name', 'LIKE', "%$filterCategory[1]%"); } else { $query->get(); } } } }) ->make(true); } $data = [ 'subtitle' => 'Riwayat Bimbingan & Konseling' ]; return view('wali::ticket.index', compact('data')); } public function view($id) { $data = [ 'subtitle' => 'Bimbingan & Konseling #' . explode('-', $id)[0], ]; $detail = TicketModel::where('id', $id)->first(); if($detail->is_approval_siswa == 1 && $detail->is_approval_konselor) { $siswa = User::where('id', $detail->user_id)->first()->name; $nis = Siswa::where('user_id', $detail->user_id)->first()->nis; $ticketResponse = TicketModel::find($id)->responses; return view('wali::ticket.detail', compact('data', 'nis', 'ticketResponse', 'detail', 'siswa')); } else { return redirect()->back()->with('swal', swal_alert('error', 'Maaf, anda tidak memiliki akses untuk membaca riwayat pesan. Silahkan bukan menu B.K dan ajukan permintaan pada tombol aksi "chat"')); } } // profile public function profil() { $data = [ 'subtitle' => 'Akun saya', 'records' => User::where('id', user()->id)->first() ]; return view('wali::account.profile', compact('data')); } public function updateProfile(Request $request) { $id = user()->id; $validator = Validator::make($request->all(), [ 'name' => 'required', 'email' => 'required|email', ]); if ($validator->fails()) { return redirect()->back()->withErrors($validator)->withInput(); } // Cari data berdasarkan ID $user = User::find($id); // Jika data ditemukan if ($user) { // Update data dengan data baru dari form yang telah dibersihkan $user->name = $request->input('name'); $user->email = $request->input('email'); !empty($request->input('password')) ? $user->password = bcrypt($request->input('password')) : $user->password; $user->username = Str::before($user->email, '@') . rand(100, 999); // Simpan perubahan pada database $user->save(); return redirect()->back()->with('swal', swal_alert('success', 'You are successfully modify data')); } else { return redirect()->back()->with('swal', swal_alert('error', 'Unexpected error')); } } public function request() { $chat = TicketModel::find(segment(4)); if($chat) { $chat->is_approval_siswa = 3; $chat->is_approval_konselor = 3; $chat->save(); return redirect()->back()->with('swal', swal_alert('success', 'Request berhasil diminta, silahkan tunggu.')); } else { return redirect()->back()->with('swal', swal_alert('error', 'Tidak ditemukan data yang dituju.')); } } }