Root Zanli
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
home
/
o5t6x7pgljbm
/
public_html
/
admin
/
app
/
Http
/
Controllers
/
Admin
/
Filename :
SchoolStudentController.php
back
Copy
<?php namespace App\Http\Controllers\Admin; use App\Http\Controllers\Api\SPWalletController; use App\Http\Controllers\Controller; use App\Libraries\Helpers; use App\Models\Admin; use Illuminate\Http\Request; use Auth; use Session; use Hash; use App\Models\User; use App\Models\Product; use App\Models\ProductCategory; use App\Models\Country; use App\Models\Goal; use App\Models\Group; use App\Models\Task; use App\Models\College; use App\Models\Course; use App\Models\SchoolManagement\StudentSegment; use App\V2\Services\AttendanceService; use App\V2\Services\SPWalletService; class SchoolStudentController extends Controller { private $spWallterService; private $attendanceService; public function __construct() { $this->spWallterService = new SPWalletService(); $this->attendanceService = new AttendanceService(); } public function enrolled_users(Request $request){ $school = Helpers::getCurrentSchool($request->user()); $users = []; $segments = []; if($school == null){ } else { $columns = array("full_name","email","mobile","profile_pic","user_id"); $columns2 = array("users.full_name","users.email","users.mobile","users.profile_pic","users.user_id"); $users = User::select($columns2) ->where('preferred_school_id', $school->school_id) ->offset(0) ->limit(10) ->get(); $segments = StudentSegment::where('school_id', $school->school_id) ->get(); } return view('School.Users.index', compact('school', 'users', 'segments')); } public function ajax_enrolled_users(Request $request){ $school = Helpers::getCurrentSchool($request->user()); $users = []; if($school == null){ } else { $columns = array("full_name","email","mobile","profile_pic","user_id"); $columns2 = array("users.full_name","users.email","users.mobile","users.profile_pic","users.user_id"); $users = User::select($columns2) ->where('preferred_school_id', $school->school_id) // ->offset(0) // ->limit(10) ->get(); } $users_list = []; foreach($users AS $user){ $users_list[]=[ 'id' => $user->user_id, 'resourceId' => $user->user_id, 'title' => $user->full_name ]; } return response()->json($users_list); } public function list_enrolled_users(Request $request) { $school = Helpers::getCurrentSchool($request->user()); if($school == null){ return $this->json(['draw' => 0, "recordsTotal" => 0, "recordsFiltered" => 0, "data" => []]); } $columns = array("full_name","email","mobile","profile_pic","user_id"); $columns2 = array("users.full_name","users.email","users.mobile","users.profile_pic","users.user_id"); $searchable_columns = array("users.full_name","users.email","users.mobile","users.user_id"); $query = $this->attendanceService->getQuerySelectorForEnrolledStudents($school, $columns2, $searchable_columns, $request->input('search.value', null)); $totalData = $query->count(); $totalFiltered = $totalData; $limit = $request->has('length') ? $request->input('length') : 10; $start = $request->input('start'); $dir = $request->input('order.0.dir'); if (isset($columns2[$request->input('order.0.column')])) { $order = $columns[$request->input('order.0.column')]; $query = $query->orderBy($order, $dir); } $users = $query->offset($start) ->limit($limit) ->get(); $data = array(); if (!empty($users)) { foreach ($users as $user) { $nestedData['profile_pic'] = '<img src="'.asset($user->profile_pic).'" width="45px"/>'; $nestedData['full_name'] = $user->full_name; $nestedData['email'] = $user->email; $nestedData['mobile'] = $user->mobile; $nestedData['segment_names'] = $user->segment_names; $nestedData['user_id'] = "<a href='".route('schools.show_student_attendance', $user->user_id)."' title='Attendance' class='mb-6 btn-floating waves-effect waves-light gradient-45deg-green-teal gradient-shadow'><i class='material-icons'>event_available</i></a>"; $nestedData['user_id'] .= "<a href='".route('schools.show_user', $user->user_id)."' title='View' class='mb-6 btn-floating waves-effect waves-light gradient-45deg-green-teal gradient-shadow'><i class='material-icons'>remove_red_eye</i></a>"; $nestedData['user_pk_id'] = $user->user_id; $data[] = $nestedData; } } $json_data = array( "draw" => intval($request->input('draw')), "recordsTotal" => intval($totalData), "recordsFiltered" => intval($totalFiltered), "data" => $data ); echo json_encode($json_data); } public function show_user(Request $request, $id){ $school = Helpers::getCurrentSchool($request->user()); $users = User::where('user_id', $id)->first(); $membership_groups = $users->membershipGroups; $sp_wallet = $this->spWallterService->getSPWallet($users); $all_claims = $users->claims()->whereIn('status', ['APPROVED','REDEEMED'])->latest()->limit(10)->get(); $claims_summary_arr = $users->claims() ->selectRaw('status, COUNT(*) as count') ->groupBy('status') ->get(); $group_wise_approved_claims = $users->claims() ->selectRaw('group_id, COUNT(*) as count') ->whereIn('status', ['APPROVED','REDEEMED']) ->groupBy('group_id') ->pluck('count', 'group_id') ->toArray(); return view('School.Users.show', compact('school','users','membership_groups', 'all_claims', 'sp_wallet', 'claims_summary_arr', 'group_wise_approved_claims')); } public function compose_email(Request $request) { $userIds = $request->input('user_ids'); // Fetch users and send emails $users = User::whereIn('id', $userIds)->get(); foreach ($users as $user) { // Logic to send email } return response()->json(['message' => 'Emails sent successfully!']); } }