Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
| Total | |
0.00% |
0 / 1 |
|
0.00% |
0 / 9 |
CRAP | |
0.00% |
0 / 163 |
| AttendanceRequestsReportController | |
0.00% |
0 / 1 |
|
0.00% |
0 / 9 |
1260 | |
0.00% |
0 / 162 |
| index | |
0.00% |
0 / 1 |
30 | |
0.00% |
0 / 21 |
|||
| create | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 1 |
|||
| store | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 1 |
|||
| show | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 1 |
|||
| edit | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 1 |
|||
| update | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 1 |
|||
| destroy | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 1 |
|||
| selectAttendanceReport | |
0.00% |
0 / 1 |
272 | |
0.00% |
0 / 112 |
|||
| getUser | |
0.00% |
0 / 1 |
72 | |
0.00% |
0 / 23 |
|||
| <?php | |
| namespace App\Http\Controllers\Reports; | |
| use Illuminate\Http\Request; | |
| use App\Http\Controllers\Controller; | |
| use App\Models\Admin\Team; | |
| use App\Models\Admin\UserDetail; | |
| use DB; | |
| use Carbon\CarbonPeriod; | |
| use Carbon\Carbon; | |
| use App\Models\Auth\User; | |
| use GetShiftDetailHelper; | |
| use App\Models\AttendanceRequests\UserAttendanceRequests; | |
| use App\Models\Dashboard\AttendanceDetail; | |
| use App\Notifications\AppNotifications; | |
| use App\Helpers\AttendanceHelper; | |
| use Session; | |
| ini_set('memory_limit', '256M'); | |
| class AttendanceRequestsReportController extends Controller | |
| { | |
| /** | |
| * Display a listing of the resource. | |
| * | |
| * @return \Illuminate\Http\Response | |
| */ | |
| // public function index(Request $request) | |
| // { | |
| // $title = '/Reports/Attendance Requests'; | |
| // $teams = []; | |
| // $users = []; | |
| // if (auth()->user()->can('View All Attendance Report')) { | |
| // $teams = Team::all(); | |
| // $users = User::all(); | |
| // }else if(auth()->user()->can('View Team Attendance Report')|| | |
| // auth()->user()->can('View Reporting Employees Report')){ | |
| // $teams = GetShiftDetailHelper::getMyteams(); | |
| // $teamIds = array(); | |
| // foreach ($teams as $value) { | |
| // $teamIds[] = $value->id; | |
| // } | |
| // $teamId = implode(",",$teamIds); | |
| // $users = User::select('users.name','users.lastName','users.id') | |
| // ->leftJoin('user_details','users.id','=','user_details.user_id') | |
| // ->whereIn('user_details.primary_team_id',$teamId) | |
| // ->get(); | |
| // }else{ | |
| // $teams=[]; | |
| // } | |
| // // For Attendance Marking | |
| // $val = AttendanceHelper::getAttendanceMarkValue(); | |
| // $valTeam = AttendanceHelper::getAttendanceTeam($request); | |
| // $valUser = AttendanceHelper::getAttendanceUser($request); | |
| // return view('Reports.AttendanceRequestsReportForm', compact('teams', 'title', 'users', 'val', 'valTeam', 'valUser')); | |
| // } | |
| public function index(Request $request) | |
| { | |
| $title = '/Reports/Attendance Requests'; | |
| $teams = []; | |
| $users = []; | |
| if (auth()->user()->can('View All Attendance Report')) { | |
| $teams = Team::all(); | |
| $users = User::all(); | |
| } elseif (auth()->user()->can('View Team Attendance Report') || auth()->user()->can('View Reporting Employees Report')) { | |
| $teams = GetShiftDetailHelper::getMyteams(); | |
| $teamIds = []; | |
| foreach ($teams as $value) { | |
| $teamIds[] = $value->id; | |
| } | |
| $teamId = implode(",", $teamIds); | |
| $users = User::select('users.name', 'users.lastName', 'users.id') | |
| ->leftJoin('user_details', 'users.id', '=', 'user_details.user_id') | |
| ->whereIn('user_details.primary_team_id', $teamIds) | |
| ->get(); | |
| } else { | |
| $teams = []; | |
| } | |
| // For Attendance Marking | |
| $val = AttendanceHelper::getAttendanceMarkValue(); | |
| $valTeam = AttendanceHelper::getAttendanceTeam($request); | |
| $valUser = AttendanceHelper::getAttendanceUser($request); | |
| return view('Reports.AttendanceRequestsReportForm', compact('teams', 'title', 'users', 'val', 'valTeam', 'valUser')); | |
| } | |
| /** | |
| * Show the form for creating a new resource. | |
| * | |
| * @return \Illuminate\Http\Response | |
| */ | |
| public function create() | |
| { | |
| // | |
| } | |
| /** | |
| * Store a newly created resource in storage. | |
| * | |
| * @param \Illuminate\Http\Request $request | |
| * @return \Illuminate\Http\Response | |
| */ | |
| public function store(Request $request) | |
| { | |
| // | |
| } | |
| /** | |
| * Display the specified resource. | |
| * | |
| * @param int $id | |
| * @return \Illuminate\Http\Response | |
| */ | |
| public function show($id) | |
| { | |
| // | |
| } | |
| /** | |
| * Show the form for editing the specified resource. | |
| * | |
| * @param int $id | |
| * @return \Illuminate\Http\Response | |
| */ | |
| public function edit($id) | |
| { | |
| // | |
| } | |
| /** | |
| * Update the specified resource in storage. | |
| * | |
| * @param \Illuminate\Http\Request $request | |
| * @param int $id | |
| * @return \Illuminate\Http\Response | |
| */ | |
| public function update(Request $request, $id) | |
| { | |
| // | |
| } | |
| /** | |
| * Remove the specified resource from storage. | |
| * | |
| * @param int $id | |
| * @return \Illuminate\Http\Response | |
| */ | |
| public function destroy($id) | |
| { | |
| // | |
| } | |
| public function selectAttendanceReport(Request $request) | |
| { | |
| $startDate = Carbon::parse($request->fromDate)->format('Y-m-d'); | |
| $endDate = Carbon::parse($request->toDate)->format('Y-m-d'); | |
| $endDateForQuery = Carbon::parse($request->toDate)->addDay()->format('Y-m-d'); | |
| //$dateDayAdded = $date->addDay()->toDateString(); | |
| $teamId = $request->teamId; | |
| $selectedDateWithTimezone = Carbon::parse($startDate . '000000', config('settings.time_zone'))->setTimezone(config('app.time_zone')); | |
| $selectedEndDateWithTimezone = Carbon::parse($endDateForQuery . '000000', config('settings.time_zone'))->setTimezone(config('app.time_zone')); | |
| $columnHeaders = collect(['Profile Pic', 'Name', 'Team', 'Requested On', 'Requested For', 'Type', 'Request Date', 'Request Time', 'Reason', 'Status', 'Manager']); | |
| $userIds = ''; | |
| $userIdsQuery = ''; | |
| if ( | |
| auth()->user()->can('View Reporting Employees Report') && | |
| !auth()->user()->can('View Team Attendance Report') && | |
| !auth()->user()->can('View All Attendance Report') | |
| ) { | |
| $getuserIds = GetShiftDetailHelper::getMyReportingEmployeesIds(); | |
| $userIdsQuery = ' and us.id in (' . implode(',', $getuserIds) . ')'; | |
| } | |
| if ($request->userid != '0') { | |
| $userIdsQuery = ' and us.id = ' . $request->userid; | |
| } | |
| if ($teamId == 0) { | |
| $teamQuery = ''; | |
| if ( | |
| (auth()->user()->can('View Reporting Employees Report') || | |
| auth()->user()->can('View Team Attendance Report')) && | |
| !auth()->user()->can('View All Attendance Report') | |
| ) { | |
| $getTeamIds = GetShiftDetailHelper::getMyteamIds(); | |
| $teamQuery = 'and t.id in (' . implode(',', $getTeamIds) . ')'; | |
| } | |
| // print_r("inside"); | |
| $attendanceReport = DB::select( | |
| 'select us.profile_pic as profile_pic, us.id,concat( us.name," ",us.lastName) as name,t.team,a.check_in as check_in, | |
| a.check_out as check_out,a.comments as comments,a.status, a.updated_by_user,a.requested_for, a.created_at, | |
| u.gender as gender | |
| from user_attendance_requests a | |
| join user_details u on a.user_id = u.user_id | |
| join teams t on t.id = u.primary_team_id | |
| join users us on us.id = u.user_id | |
| AND ((a.check_in between :startDate1 and :endDate1)) | |
| where us.deleted_at IS NULL ' . $teamQuery . $userIdsQuery . ' | |
| order by us.id,a.id;', | |
| ['startDate1' => $selectedDateWithTimezone, 'endDate1' => $selectedEndDateWithTimezone] | |
| ); | |
| // dd($attendanceReport); | |
| } else { | |
| $attendanceReport = DB::select( | |
| 'select us.profile_pic as profile_pic, us.id,concat(us.name," ",us.lastName) as name,t.team,a.check_in as check_in, | |
| a.check_out as check_out,a.comments as comments, | |
| a.status, a.updated_by_user,a.requested_for, a.created_at, | |
| u.gender as gender | |
| from user_attendance_requests a | |
| join user_details u on a.user_id = u.user_id | |
| join teams t on t.id = u.primary_team_id | |
| join users us on us.id = u.user_id AND ((a.check_in between :startDate1 and :endDate1)) | |
| where us.deleted_at IS NULL and u.primary_team_id in (' . $teamId . ') ' . $userIdsQuery . ' | |
| order by us.id,a.id;', | |
| ['startDate1' => $selectedDateWithTimezone, 'endDate1' => $selectedEndDateWithTimezone] | |
| ); | |
| } | |
| $attendanceReportColl = collect($attendanceReport); | |
| $userAttendanceRequests = UserAttendanceRequests::all(); | |
| $attendanceReportTempColl = collect([]); | |
| $toBeEncodedImages = collect([]); | |
| foreach ($attendanceReportColl as $data) { | |
| $userAttendanceRequest = collect([]); | |
| $userAttendanceRequest->profile_pic = $data->profile_pic; | |
| $userAttendanceRequest->name = $data->name; | |
| $userAttendanceRequest->gender = $data->gender; | |
| $userAttendanceRequest->team = $data->team; | |
| $userAttendanceRequest->comments = $data->comments; | |
| $userAttendanceRequest->check_in = $data->check_in; | |
| $userAttendanceRequest->check_out = $data->check_out; | |
| $userAttendanceRequest->status = $data->status; | |
| $userAttendanceRequest->updated_by_user = $data->updated_by_user; | |
| $userAttendanceRequest->requested_for = $data->requested_for; | |
| $userAttendanceRequest->created_at = $data->created_at; | |
| $userAttendanceRequest->user_id = $data->id; | |
| $user = User::where(['id' => $userAttendanceRequest->user_id])->first(); | |
| if (!empty($user->profile_pic)) { | |
| $user_image = url('storage/' . $user->profile_pic); | |
| } else { | |
| if ($userAttendanceRequest->gender == 'Male') { | |
| $user_image = url("global_assets/images/favicon_io/default-avatar-boy.png"); | |
| } else { | |
| $user_image = url("global_assets/images/favicon_io/default-avatar-girl.png"); | |
| } | |
| } | |
| $show_image_container = '<span style="width: 110px;"><div class="img-screen"><img src="' . $user_image . '" alt="No Image" style="width:50px;height:50px;overflow:hidden;border-radius: 50%;opacity: 0.8;filter: brightness(80%)"></div></span>'; | |
| $manager = User::where(['id' => $userAttendanceRequest->updated_by_user])->first(); | |
| $manager_id = $userAttendanceRequest->updated_by_user; | |
| $manager_data = UserDetail::where('user_id', '=', $manager_id)->first(); | |
| if (!empty($manager)) { | |
| // dd($manager_data); | |
| if (!empty($manager->profile_pic)) { | |
| $manager_image = url('storage/' . $manager->profile_pic); | |
| } else { | |
| if (!empty($manager_data) && $manager_data->gender == 'Male') { | |
| $manager_image = url("global_assets/images/favicon_io/default-avatar-boy.png"); | |
| } else { | |
| $manager_image = url("global_assets/images/favicon_io/default-avatar-girl.png"); | |
| } | |
| } | |
| $show_manager_image_container = '<img src="' . $manager_image . '" alt="No Image" style="width:50px;height:50px;overflow:hidden;border-radius: 50%; opacity: 0.8;filter: brightness(80%)"></div></span>'; | |
| } else { | |
| $show_manager_image_container = ''; | |
| } | |
| $requested_on = Carbon::parse($userAttendanceRequest->created_at); | |
| $requested_on->setTimezone(config('settings.time_zone')); | |
| $requested_on = $requested_on->format(config('settings.php_date_format')); | |
| $checkin_date = Carbon::parse($userAttendanceRequest->check_in); | |
| $checkin_date->setTimezone(config('settings.time_zone')); | |
| $checkin_date = $checkin_date->format(config('settings.php_date_format')); | |
| $checkin_time = Carbon::parse($userAttendanceRequest->check_in); | |
| $checkin_time->setTimezone(config('settings.time_zone')); | |
| $checkin_time = $checkin_time->format(Config('settings.time_format')); | |
| $checkout_date = Carbon::parse($userAttendanceRequest->check_out); | |
| $checkout_date->setTimezone(config('settings.time_zone')); | |
| $checkout_date = $checkout_date->format(config('settings.php_date_format')); | |
| $checkout_time = Carbon::parse($userAttendanceRequest->check_out); | |
| $checkout_time->setTimezone(config('settings.time_zone')); | |
| $checkout_time = $checkout_time->format(Config('settings.time_format')); | |
| $leaveArr = array( | |
| "profile_pic" => $show_image_container, | |
| "name" => $userAttendanceRequest->name, | |
| // "gender" => $userAttendanceRequest->gender, | |
| "team" => $userAttendanceRequest->team, | |
| "requested_on" => $requested_on, | |
| "requested_for" => $userAttendanceRequest->requested_for, | |
| "type" => "Checkin", | |
| "requested_date" => $checkin_date, | |
| "requested_time" => $checkin_time, | |
| "reason" => $userAttendanceRequest->comments, | |
| "status" => ucfirst($userAttendanceRequest->status), | |
| "manager" => $show_manager_image_container . ' ' . User::where(['id' => $userAttendanceRequest->updated_by_user])->pluck('name')->first() . ' ' . User::where(['id' => $userAttendanceRequest->updated_by_user])->pluck('lastName')->first(), | |
| ); | |
| $leaveArr1 = array( | |
| "profile_pic" => '', | |
| "name" => '', | |
| "team" => '', | |
| // "gender"=>'', | |
| "requested_on" => '', | |
| "requested_for" => '', | |
| "type" => "Checkout", | |
| "requested_date" => $checkout_date, | |
| "requested_time" => $checkout_time, | |
| "reason" => '', | |
| "status" => '', | |
| "manager" => '', | |
| ); | |
| $attendanceReportTempColl->push($leaveArr, $leaveArr1); | |
| $checkOutDate = null; | |
| $checkInDate = null; | |
| $toBeEncodedImages->push($user_image); | |
| } | |
| $attendanceReportColl = collect([]); | |
| $attendanceReportColl = $attendanceReportTempColl; | |
| $teams = Team::all(); | |
| $startDate = Carbon::parse($startDate)->format(Config('settings.php_date_format')); | |
| $endDate = Carbon::parse($endDate)->format(Config('settings.php_date_format')); | |
| return view('Reports.AttendanceRequestsReport', compact('attendanceReportColl', 'columnHeaders', 'startDate', 'endDate', 'toBeEncodedImages')); | |
| } | |
| public function getUser(Request $request) | |
| { | |
| $team = $request->team; | |
| $data = '<option value="0" selected="">Select Employee</option>'; | |
| if ($team == 'Select Team' || $team == 'All') { | |
| if (auth()->user()->can('View All Leave Report')) { | |
| $users = User::all(); | |
| foreach ($users as $user) { | |
| $data .= '<option value="' . $user->id . '">' . $user->name . ' ' . $user->lastName . '</option>'; | |
| } | |
| } else { | |
| $teams = GetShiftDetailHelper::getMyteams(); | |
| foreach ($teams as $value) { | |
| $users = User::select('users.name', 'users.lastName', 'users.id') | |
| ->leftJoin('user_details', 'users.id', '=', 'user_details.user_id') | |
| ->where('user_details.primary_team_id', '=', $value->id) | |
| ->get(); | |
| foreach ($users as $user) { | |
| $data .= '<option value="' . $user->id . '">' . $user->name . ' ' . $user->lastName . '</option>'; | |
| } | |
| } | |
| } | |
| } else { | |
| $teams = Team::where('team', '=', $team)->first(); | |
| $users = User::select('users.name', 'users.lastName', 'users.id') | |
| ->leftJoin('user_details', 'users.id', '=', 'user_details.user_id') | |
| ->where('user_details.primary_team_id', '=', $teams->id) | |
| ->get(); | |
| foreach ($users as $user) { | |
| $data .= '<option value="' . $user->id . '">' . $user->name . ' ' . $user->lastName . '</option>'; | |
| } | |
| } | |
| return response()->json(['status' => 200, 'optionData' => $data]); | |
| } | |
| } |