Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
| Total | |
0.00% |
0 / 1 |
|
0.00% |
0 / 3 |
CRAP | |
0.00% |
0 / 152 |
| HomeScreenDetailsController | |
0.00% |
0 / 1 |
|
0.00% |
0 / 3 |
756 | |
0.00% |
0 / 152 |
| details | |
0.00% |
0 / 1 |
182 | |
0.00% |
0 / 90 |
|||
| updateFirebaseToken | |
0.00% |
0 / 1 |
6 | |
0.00% |
0 / 4 |
|||
| getWeeklyOverview | |
0.00% |
0 / 1 |
156 | |
0.00% |
0 / 58 |
|||
| <?php | |
| namespace App\Http\Controllers\Api; | |
| use App\Helpers\GetShiftDetailHelper; | |
| use App\Http\Controllers\Auth\AuthController; | |
| use App\Http\Controllers\Dashboard\HomeController; | |
| use App\Models\Dashboard\AttendanceDetail; | |
| use App\Models\Leave\ApplyLeave; | |
| use App\Helpers\HolidayHelper; | |
| use App\Models\Admin\Holiday; | |
| use App\Helpers\GeoFenceHelper; | |
| use App\Models\Auth\UserWeeklyOff; | |
| use DB; | |
| use Illuminate\Support\Facades\Log; | |
| use App\Models\Auth\User; | |
| use Carbon\Carbon; | |
| use App\Models\Admin\UserDetail; | |
| use Illuminate\Http\Request; | |
| use Illuminate\Support\Facades\Auth; | |
| class HomeScreenDetailsController | |
| { | |
| function details(Request $request) | |
| { | |
| $geoFenceOrgLevel = GeoFenceHelper::getOrgFence(); // This will give you both Check-In and Check-Out GeoFences | |
| $id = Auth::user()->id; | |
| $teamid = $request->user()->userdetail->primary_team_id; | |
| $geoFenceTeamLevel = GeoFenceHelper::getteamFence($teamid); | |
| $geoFenceUserLevel = GeoFenceHelper::getUserGeofencedlocation($id); | |
| $gender=UserDetail::where('user_id',$id) | |
| ->value('gender'); | |
| $user = $request->user(); | |
| $this->updateFirebaseToken($request); | |
| $obj = new AuthController(); | |
| $timearr = $obj->getcheckincheckouttime($request); | |
| if(Auth::user()->profile_pic) | |
| $imageurl = url('storage/'. Auth::user()->profile_pic); | |
| else if($gender=="Male") | |
| $imageurl = url('public/global_assets/images/favicon_io/default-avatar-boy.png'); | |
| else | |
| $imageurl = url('public/global_assets/images/favicon_io/default-avatar-girl.png'); | |
| $view_all_attendance_requests = auth()->user()->can('View All Attendance request'); | |
| $view_all_attendance_requests_of_team = auth()->user()->can('View All Attendance requests of team'); | |
| $view_all_attendance_requests_of_assigned_employees = auth()->user()->can('View All Attendance requests of assigned employees'); | |
| $attendance_permissions = [$view_all_attendance_requests, | |
| $view_all_attendance_requests_of_team, | |
| $view_all_attendance_requests_of_assigned_employees]; | |
| $view_all_leave_requests = auth()->user()->can("View All leave requests"); | |
| $view_all_leave_requests_of_team = auth()->user()->can("View All leave requests of team"); | |
| $view_all_leave_requests_of_assigned_employees = auth()->user()->can("View All leave requests of assigned employees"); | |
| $leave_permissions = [$view_all_leave_requests, | |
| $view_all_leave_requests_of_team, | |
| $view_all_leave_requests_of_assigned_employees]; | |
| $your_attendance_requests = []; | |
| $others_attendance_requests = []; | |
| $your_leave_requests = []; | |
| $others_leave_requests = []; | |
| $others_attendance_requests_count = 0; | |
| $others_leave_requests_count = 0; | |
| $ob = new HomeController(); | |
| $attendance_requests = $ob->getAttendanceRequest(new Request(),"api"); | |
| foreach ($attendance_requests["request_attendances"] as $rq) { | |
| if ($rq["user"]["id"] == $user->id) { | |
| $your_attendance_requests[] = $rq; | |
| } else { | |
| $others_attendance_requests_count += 1; | |
| $found = 0; | |
| foreach($others_attendance_requests as $olr){ | |
| if($olr["user"]["id"]==$rq["user"]["id"]){ | |
| $found = 1; | |
| } | |
| } | |
| if($found==0) { | |
| $others_attendance_requests[] = $rq; | |
| } | |
| } | |
| } | |
| $leave_requests = $ob->getLeaveRequest($request,"api"); | |
| foreach ($leave_requests["leave_reports"] as $rq) { | |
| if ($rq["user_id"] == $user->id) { | |
| $your_leave_requests[] = $rq; | |
| } else { | |
| $others_leave_requests_count += 1; | |
| $found = 0; | |
| foreach($others_leave_requests as $olr){ | |
| if($olr["user_id"]==$rq["user_id"]){ | |
| $found = 1; | |
| } | |
| } | |
| if($found==0) { | |
| $others_leave_requests[] = $rq; | |
| } | |
| } | |
| } | |
| $ob = new HomeController(); | |
| $teamStatus = $ob->teamStatus($request,"api",1); | |
| $today = Carbon::now(config('settings.time_zone'))->format('d/m/Y'); | |
| $todayFormatted = Carbon::now(config('settings.time_zone'))->format('Y-m-d'); | |
| $today_time=Carbon::now(config('settings.time_zone'))->format('h:i A'); | |
| return response()->json([ | |
| 'status' => 200, | |
| 'message' => 'Login Successful', | |
| 'currentDate' => $today, | |
| 'geoFenceOrgLevel' => $geoFenceOrgLevel, | |
| 'geoFenceUserLevel' => $geoFenceUserLevel, //added geofence user | |
| 'geoFenceTeamLevel' => $geoFenceTeamLevel, //added geofence for team | |
| 'currenttime'=>$today_time, | |
| 'formattedDate'=>$todayFormatted, | |
| 'checkin' => $timearr[0], | |
| 'checkout' => $timearr[1], | |
| 'shiftStartTime' => $timearr[2], | |
| 'shiftEndTime' => $timearr[3], | |
| 'username' => $user->name, | |
| 'user_id' => $user->id, | |
| 'imageurl' => $imageurl, | |
| 'logo' => asset('/public/global_assets/images/Logo.svg'), | |
| 'orgName' => "Development\n Logo", | |
| 'lastname' => $user->lastName, | |
| 'attendance_permissions' => $attendance_permissions, | |
| 'leave_permissions' => $leave_permissions, | |
| 'your_attendance_requests' => $your_attendance_requests, | |
| 'others_attendance_requests' => $others_attendance_requests, | |
| 'others_attendance_requests_count' => $others_attendance_requests_count, | |
| 'your_leave_requests' => $your_leave_requests, | |
| 'others_leave_requests' => $others_leave_requests, | |
| 'others_leave_requests_count' => $others_leave_requests_count, | |
| 'teamStatus' => $teamStatus | |
| ]); | |
| } | |
| function updateFirebaseToken(Request $request){ | |
| $user = $request->user(); | |
| if($request->has("firebaseToken")){ | |
| User::where('id', $user->id)->update(['firebase_token'=>$request->firebaseToken]); | |
| } | |
| } | |
| function getWeeklyOverview(Request $request){ | |
| $user = $request->user(); | |
| $userId = $user->id; | |
| $days = 5; | |
| $dates = []; | |
| $response = []; | |
| for($i=0;$i<5;$i++){ | |
| $today = Carbon::now(); | |
| $date = $today->subDays($i)->format('Y-m-d'); | |
| $dates[] = $date; | |
| } | |
| //Leave - L | |
| //Absent - A | |
| //Present - P | |
| //InProgress - I | |
| //Holiday - H | |
| for($i=0;$i<count($dates);$i++){ | |
| $date = $dates[$i]; | |
| $response[$date] = 'A'; | |
| //Check if holiday | |
| $holidayIds = HolidayHelper::getholidayList($userId); | |
| $isHoliday = count(Holiday::where('date', $date)->whereIn('id', $holidayIds)->get()); | |
| if($isHoliday){ | |
| // return (Holiday::where('date',$date)->get()); | |
| $response[$date] = 'H'; | |
| continue; | |
| } | |
| $isUserWeeklyOff = count(UserWeeklyOff::where('user_id', $userId)->where('date','=',$date)->get()); | |
| if($isUserWeeklyOff){ | |
| $response[$date] = 'H'; | |
| continue; | |
| } | |
| $isLeave = count(ApplyLeave::where('user_id', '=', $userId) | |
| ->where('from_date','<=',$date) | |
| ->where('to_date','>=',$date) | |
| ->where('status', '=', 'Approve') | |
| ->get()); | |
| if($isLeave){ | |
| $response[$date] = 'L'; | |
| continue; | |
| } | |
| $attendanceSettings = [1,2,3]; | |
| $attendanceAvailable = false; | |
| foreach($attendanceSettings as $attendanceSetting){ | |
| if($attendanceSetting==1){ | |
| $presentData = count(AttendanceDetail::where('user_id', '=', $userId) | |
| ->whereDate('created_at','=',date($date)) | |
| ->where('attendance_setting','=',1) | |
| ->get()); | |
| }else if($attendanceSetting==2){ | |
| $presentData = count(AttendanceDetail::where('user_id', '=', $userId) | |
| ->whereDate('check_in','=',date($date)) | |
| ->where('attendance_setting','=',2) | |
| ->get()); | |
| }else{ | |
| $presentData = count(AttendanceDetail::where('user_id', '=', $userId) | |
| ->whereDate('check_in','=',date($date)) | |
| ->where(function ($query) { | |
| $query->where('attendance_setting','=',3) | |
| ->orWhereNull('attendance_setting'); | |
| }) | |
| ->whereNotNull('check_out') | |
| ->get()); | |
| } | |
| if($presentData) | |
| { | |
| $attendanceAvailable = true; | |
| } | |
| } | |
| if($attendanceAvailable) | |
| { | |
| $response[$date] = 'P'; | |
| } | |
| else | |
| { | |
| if($i==0){ | |
| $response[$date] = 'IN'; | |
| }else{ | |
| $response[$date] = 'A'; | |
| } | |
| } | |
| } | |
| $response["status"]=200; | |
| return $response; | |
| } | |
| } |