Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
| Total | |
0.00% |
0 / 1 |
|
0.00% |
0 / 8 |
CRAP | |
0.00% |
0 / 302 |
| ApproveAttendanceController | |
0.00% |
0 / 1 |
|
0.00% |
0 / 8 |
5550 | |
0.00% |
0 / 302 |
| index | |
0.00% |
0 / 1 |
12 | |
0.00% |
0 / 15 |
|||
| 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 |
1122 | |
0.00% |
0 / 138 |
|||
| updateFromHomePage | |
0.00% |
0 / 1 |
1122 | |
0.00% |
0 / 144 |
|||
| destroy | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 1 |
|||
| <?php | |
| namespace App\Http\Controllers\Attendance; | |
| use App\Http\Controllers\FirebaseController\FirebaseCloudMessaging; | |
| use Illuminate\Http\Request; | |
| use App\Http\Controllers\Controller; | |
| use App\Models\Admin\UserDetail; | |
| use App\Models\Auth\User; | |
| use Illuminate\Support\Facades\Session; | |
| use Illuminate\Support\Facades\Auth; | |
| use App\Helpers\GetShiftDetailHelper; | |
| use Carbon\Carbon; | |
| use App\Models\AttendanceRequests\UserAttendanceRequests; | |
| use App\Models\Dashboard\AttendanceDetail; | |
| use App\Notifications\AppNotifications; | |
| //use App\Models\NotificationModel\NotificationList; | |
| use App\Models\Auth\userRequestCollaborator; | |
| use App\Models\Leave\ApplyLeave; | |
| use App\Helpers\LeaveHelper; | |
| use App\Helpers\AttendanceHelper; | |
| class ApproveAttendanceController extends Controller | |
| { | |
| /** | |
| * Display a listing of the resource. | |
| * | |
| * @return \Illuminate\Http\Response | |
| */ | |
| public function index(Request $request) | |
| { | |
| // [2,5,8,30,32,36,37,38] [10,9,6,1,13,28,30,34,35,36,37] | |
| $title = '/Attendance/Attendance On Request'; | |
| $backurl = route('home'); | |
| $request_attendances = []; | |
| //return auth()->user()->can('Edit All Attendance request'); | |
| if (auth()->user()->can('View All Attendance request')) { | |
| $request_attendances = UserAttendanceRequests::where('status', 'pending')->orderBy('created_at', 'DESC')->get(); | |
| } | |
| else if (auth()->user()->can('View All Attendance requests of team')) { | |
| $userIds = GetShiftDetailHelper::getMyteamMembers(); | |
| $request_attendances = UserAttendanceRequests::where('status', 'pending')->whereIn('user_id', $userIds)->orderBy('created_at', 'DESC')->get(); | |
| } | |
| else{ | |
| //View All Attendance requests of assigned employees | |
| $userIds = GetShiftDetailHelper::getMyReportingEmployees(); | |
| $request_attendances = UserAttendanceRequests::where('status', 'pending')->whereIn('user_id', $userIds)->orderBy('created_at', 'DESC')->get(); | |
| } | |
| // For Attendance Marking | |
| $val = AttendanceHelper::getAttendanceMarkValue(); | |
| $valTeam = AttendanceHelper::getAttendanceTeam($request); | |
| $valUser = AttendanceHelper::getAttendanceUser($request); | |
| // dd($request->user()->id); | |
| return view('attendance.ApproveAttendanceForm', compact('title', 'request_attendances','title', | |
| '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) | |
| { | |
| $request_attendance = UserAttendanceRequests::find($id); | |
| $primary_id = userDetail::get('user_id',$request_attendance->user_id)[0]->primary_team_id; | |
| $user_id = $request_attendance->user_id; | |
| $val = AttendanceHelper::getAttendanceMarkValue(); | |
| $valTeam = AttendanceHelper::getAttendanceTeam($primary_id,0); | |
| $valUser = AttendanceHelper::getAttendanceUser($user_id,0); | |
| $attendanceValue = null; | |
| if($valUser){ | |
| $attendanceValue = $valUser; | |
| } | |
| elseif($valTeam){ | |
| $attendanceValue = $valTeam; | |
| } | |
| elseif($val){ | |
| $attendanceValue = $val; | |
| } | |
| else{ | |
| $attendanceValue = null; | |
| } | |
| //attendance_frequency saving | |
| if($request->status == 'Approve'){ | |
| $request_attendance = UserAttendanceRequests::find($id); | |
| $attendance_freq = $request_attendance->user_id; | |
| $thisvalue=UserAttendanceRequests::where('user_id',$attendance_freq)->pluck('attendance_freq'); | |
| $previousvalue=$thisvalue[0]; | |
| UserAttendanceRequests::where('user_id', $attendance_freq)->update(['attendance_freq'=> $previousvalue+1]); | |
| } | |
| if ($request->has('approver_comments')) { | |
| $status = $request->status_reject; | |
| $approver_comments = $request->approver_comments; | |
| } else { | |
| $approver_comments = null; | |
| if ($request->status == 'Approve') { | |
| $status = 'approved'; | |
| } else if ($request->status == 'Reject') { | |
| $status = 'rejected'; | |
| } else { | |
| return redirect()->back()->with('warning', 'Please select status and update'); | |
| } | |
| } | |
| $request_attendance->update(['status' => $status,'updated_by_user' => Auth::user()->id ,'approver_comments' => $approver_comments]); | |
| //get shift timing | |
| if ($request_attendance->start_time != '00:00:00') { | |
| $shiftStartTime = $request_attendance->start_time; | |
| $shiftEndTime = $request_attendance->end_time; | |
| } else { | |
| $shiftDetails = UserDetail::where('user_id', $user_id)->first()->shifts; | |
| foreach ($shiftDetails as $shift) { | |
| $shiftStartTime = $shift->start_time; | |
| $shiftEndTime = $shift->end_time; | |
| } | |
| } | |
| if ($request->status == 'Approve') { | |
| //create or update attendance deatil | |
| $checkin_date = $request_attendance->check_in; | |
| $checkin_location = $request_attendance->check_in_location; | |
| $checkin_location_address = $request_attendance->check_in_location_address; | |
| $checkout_date = $request_attendance->check_out; | |
| $checkout_location = $request_attendance->check_out_location; | |
| $checkout_location_address = $request_attendance->check_out_location_address; | |
| $attendance_sett = $request_attendance->attendance_setting; | |
| $checkin_date_only = Carbon::parse($request_attendance->check_in, config('settings.time_zone')) | |
| ->setTimezone(config('settings.time_zone')) | |
| ->format(config('settings.php_date_format H:i:s')); | |
| $startDate = Carbon::parse($checkin_date_only . '00:00:00', config('settings.time_zone'))->setTimezone(config('app.time_zone')); | |
| // $startDate = $checkin_date_only; | |
| $endDate = Carbon::parse(Carbon::parse($checkin_date_only)->addDay()->toDateString() . '00:00:00', config('settings.time_zone'))->setTimezone(config('app.time_zone')); | |
| $attendanceDetail = AttendanceDetail::where('user_id', '=', $user_id) | |
| ->whereBetween('check_in', [$startDate, $endDate]) | |
| ->first(); | |
| if (!empty($attendanceDetail)) { | |
| $attendance = $attendanceDetail; | |
| } else { | |
| $attendance = new AttendanceDetail(); | |
| $attendance->attendance_setting = $attendanceValue; | |
| $attendance->user_id = $user_id; | |
| $attendance->shift_start = $shiftStartTime; | |
| $attendance->shift_end = $shiftEndTime; | |
| } | |
| $attendance->mode = 'On Request'; | |
| $attendance->attendance_setting = $attendance_sett; | |
| $attendance->check_in = $checkin_date; | |
| $attendance->check_in_location = $checkin_location; | |
| $attendance->check_in_location_address = $checkin_location_address; | |
| $attendance->check_out = $checkout_date; | |
| $attendance->check_out_location = $checkout_location; | |
| $attendance->check_out_location_address = $checkout_location_address; | |
| $attendance->save(); | |
| $dcheck_in = Carbon::parse($checkin_date); | |
| $dcheck_in->setTimezone(config('settings.time_zone')); | |
| $dcheck_in = $dcheck_in->format(config('settings.php_date_format')); | |
| //if user is on leave | |
| $userOnLeave = ApplyLeave::where('from_date', '<=', $dcheck_in) | |
| ->where('to_date', '>=', $dcheck_in) | |
| ->where('status', 'Approve') | |
| ->where('user_id', $user_id) | |
| ->first(); | |
| if(!empty($userOnLeave)){ | |
| $reason = $userOnLeave->reason.' '.'(System : Leave length reduced due to approving attendance)'; | |
| if($userOnLeave->leave_length == 1 ){ | |
| if (strstr($userOnLeave->reason , 'System : Leave length reduced due to approving attendance)')){ | |
| $userOnLeave->update(['status' => 'cancel','leave_length' => 0]); | |
| }else{ | |
| $userOnLeave->update(['status' => 'cancel','leave_length' => 0,'reason' => $reason]); | |
| } | |
| } | |
| else if($userOnLeave->leave_length > 1){ | |
| if (strstr($userOnLeave->reason , 'System : Leave length reduced due to approving attendance)')){ | |
| $userOnLeave->update(['leave_length' => $userOnLeave->leave_length-1]); | |
| }else{ | |
| $userOnLeave->update(['leave_length' => $userOnLeave->leave_length-1,'reason' => $reason]); | |
| } | |
| } | |
| else if($userOnLeave->leave_length == '0.5'){ | |
| //to do the logic while approving the leave on a half day leave request. | |
| } | |
| if($userOnLeave->leave_length == '0.5'){ | |
| $length = '0.5'; | |
| }else{ | |
| $length = 1; | |
| } | |
| LeaveHelper::updateLeaveBalanceOnAdminCancelling($user_id,$userOnLeave->leave_id,$length); | |
| } | |
| } | |
| $user_detail = UserDetail::where('user_id', $user_id)->first(); | |
| $attedance_date = Carbon::parse($request_attendance->check_in, Config('app.time_zone'))->format(config('settings.php_date_format')); | |
| //notification to user | |
| $title = "Attendance Request"; | |
| $message = "Your attendance has been " . $request_attendance->status . ' for ' . $attedance_date; | |
| $collaboratorMessage = $user_detail->user->name . ' ' . $user_detail->user->lastName . "'s attendance has been " . $request_attendance->status . ' for ' . $attedance_date . ' by ' . auth()->user()->name . ' ' . auth()->user()->lastName; | |
| $actionUrl = null; | |
| $arr = null; | |
| $arr = [$title, $message, $actionUrl]; | |
| $user_detail->user->notify(new AppNotifications($arr)); | |
| $firebaseObject = new FirebaseCloudMessaging(); | |
| $firebaseObject->sendFirebaseNotification($title,$message,$user_detail->user->id); | |
| //get collaborators | |
| $collaborators = userRequestCollaborator::where('module', 'attendance') | |
| ->where('context_id', $id) | |
| ->pluck('user_id')->toArray(); | |
| //primary reporting manager | |
| $primaryReportingManagerId = $user_detail->primary_reporting_manager_id; | |
| $collArr = [$title, $collaboratorMessage, null]; | |
| if (!empty($collaborators)) { | |
| if (in_array(auth()->user()->id, $collaborators)) { | |
| foreach ($collaborators as $collaborator) { | |
| $collaboratorUser = User::where('id', $collaborator)->first(); | |
| //send notification to all collaborators | |
| if(auth()->user()->id != $collaborator){ | |
| $collaboratorUser->notify(new AppNotifications($collArr)); | |
| $firebaseObject = new FirebaseCloudMessaging(); | |
| $firebaseObject->sendFirebaseNotification($title,$collaboratorMessage,$collaborator); | |
| } | |
| } | |
| }else{ | |
| foreach ($collaborators as $collaborator) { | |
| $collaboratorUser = User::where('id', $collaborator)->first(); | |
| //send notification to all collaborators | |
| $collaboratorUser->notify(new AppNotifications($collArr)); | |
| $firebaseObject = new FirebaseCloudMessaging(); | |
| $firebaseObject->sendFirebaseNotification($title,$collaboratorMessage,$collaborator); | |
| } | |
| } | |
| } | |
| //check if user has primary reporting manager | |
| if ($primaryReportingManagerId != 0 || $primaryReportingManagerId != NULL) { | |
| $primary_manger = User::where('id', $primaryReportingManagerId)->first(); | |
| if($primaryReportingManagerId != Auth::user()->id){ | |
| $primary_manger->notify(new AppNotifications($collArr)); | |
| $firebaseObject = new FirebaseCloudMessaging(); | |
| $firebaseObject->sendFirebaseNotification($title,$collaboratorMessage,$primaryReportingManagerId); | |
| } | |
| } | |
| //secondary reporting managers | |
| $secondaryManagers = $user_detail->secondaryManager; | |
| if(!empty($secondaryManagers)){ | |
| foreach ($secondaryManagers as $secondaryManager) { | |
| if ($primaryReportingManagerId != $secondaryManager->id && $secondaryManager->id != Auth::user()->id && !in_array($secondaryManager->id, $collaborators)) { | |
| $secondaryManager->notify(new AppNotifications($collArr)); | |
| $firebaseObject = new FirebaseCloudMessaging(); | |
| $firebaseObject->sendFirebaseNotification($title,$collaboratorMessage,$secondaryManager->id); | |
| } | |
| } | |
| } | |
| if ($request_attendance->status == 'approved') { | |
| Session::flash('success', 'Attendance Approved Successfully!'); | |
| } else { | |
| Session::flash('warning', 'Attendance Rejected Successfully!'); | |
| } | |
| //return redirect()->route('approve-attendance.index')->withErrors($this); | |
| return redirect()->back()->withErrors($this); | |
| } | |
| public function updateFromHomePage($id,Request $request) | |
| { | |
| $request_attendance = UserAttendanceRequests::find($id); | |
| $primary_id = userDetail::get('user_id',$request_attendance->user_id)[0]->primary_team_id; | |
| $user_id = $request_attendance->user_id; | |
| $val = AttendanceHelper::getAttendanceMarkValue(); | |
| $valTeam = AttendanceHelper::getAttendanceTeam($primary_id,0); | |
| $valUser = AttendanceHelper::getAttendanceUser($user_id,0); | |
| $attendanceValue = null; | |
| if($valUser){ | |
| $attendanceValue = $valUser; | |
| } | |
| elseif($valTeam){ | |
| $attendanceValue = $valTeam; | |
| } | |
| elseif($val){ | |
| $attendanceValue = $val; | |
| } | |
| else{ | |
| $attendanceValue = null; | |
| } | |
| if ($request->has('approver_comments')) { | |
| $status = $request->status_reject; | |
| $approver_comments = $request->approver_comments; | |
| $request = UserAttendanceRequests::findOrFail($id); | |
| $userId = $request->user_id; | |
| $late_checkin = $request->check_in; | |
| // dd($late_checkin); | |
| // $request->update(['status' => 'rejected']); | |
| $otherRequests = UserAttendanceRequests::where('user_id', $request->user_id) | |
| ->where('check_in', $late_checkin) | |
| ->where('id', '<>', $id) | |
| ->get(); | |
| foreach ($otherRequests as $otherRequest) { | |
| $otherRequest->update(['status' => $status,'updated_by_user' => Auth::user()->id , 'approver_comments' => $approver_comments]); | |
| } | |
| } else { | |
| $approver_comments = null; | |
| if ($request->status == 'Approve') { | |
| $status = 'approved'; | |
| } else if ($request->status == 'Reject') { | |
| $status = 'rejected'; | |
| } else { | |
| return response()->json(['status' => 422, 'message' => 'Please select status and update']); | |
| } | |
| } | |
| if($request->status == 'Approve'){ | |
| $request_attendance = UserAttendanceRequests::find($id); | |
| $attendance_freq = $request_attendance->user_id; | |
| $thisvalue=UserAttendanceRequests::where('user_id',$attendance_freq)->pluck('attendance_freq'); | |
| $previousvalue=$thisvalue[0]; | |
| UserAttendanceRequests::where('user_id', $attendance_freq)->update(['attendance_freq'=> $previousvalue+1]); | |
| } | |
| $request_attendance->update(['status' => $status,'updated_by_user' => Auth::user()->id , 'approver_comments' => $approver_comments]); | |
| //get shift timing | |
| if ($request_attendance->start_time != '00:00:00') { | |
| $shiftStartTime = $request_attendance->start_time; | |
| $shiftEndTime = $request_attendance->end_time; | |
| } else { | |
| $shiftDetails = UserDetail::where('user_id', $user_id)->first()->shifts; | |
| foreach ($shiftDetails as $shift) { | |
| $shiftStartTime = $shift->start_time; | |
| $shiftEndTime = $shift->end_time; | |
| } | |
| } | |
| if ($request->status == 'Approve') { | |
| //create or update attendance deatil | |
| $checkin_date = $request_attendance->check_in; | |
| $checkin_location = $request_attendance->check_in_location; | |
| $checkin_location_address = $request_attendance->check_in_location_address; | |
| $checkout_date = $request_attendance->check_out; | |
| $checkout_location = $request_attendance->check_out_location; | |
| $checkout_location_address = $request_attendance->check_out_location_address; | |
| $attendance_sett = $request_attendance->attendance_setting; | |
| $checkin_date_only = Carbon::parse($request_attendance->check_in, config('settings.time_zone')) | |
| ->setTimezone(config('settings.time_zone')) | |
| ->format(config('settings.php_date_format H:i:s')); | |
| $startDate = Carbon::parse($checkin_date_only . '00:00:00', config('settings.time_zone'))->setTimezone(config('app.time_zone')); | |
| // $startDate = $checkin_date_only; | |
| $endDate = Carbon::parse(Carbon::parse($checkin_date_only)->addDay()->toDateString() . '00:00:00', config('settings.time_zone'))->setTimezone(config('app.time_zone')); | |
| // $endDate = $checkout_date; | |
| // dd($checkin_date, $checkout_date, $checkin_date_only, $startDate, $endDate); | |
| $attendanceDetail = AttendanceDetail::where('user_id', '=', $user_id) | |
| ->whereBetween('check_in', [$checkin_date, $checkout_date]) | |
| ->first(); | |
| // dd($attendanceDetail); | |
| if (!empty($attendanceDetail)) { | |
| $attendance = $attendanceDetail; | |
| } else { | |
| $attendance = new AttendanceDetail(); | |
| $attendance->attendance_setting = $attendanceValue; | |
| $attendance->user_id = $user_id; | |
| $attendance->shift_start = $shiftStartTime; | |
| $attendance->shift_end = $shiftEndTime; | |
| } | |
| $attendance->mode = 'On Request'; | |
| $attendance->attendance_setting = $attendance_sett; | |
| $attendance->check_in = $checkin_date; | |
| $attendance->check_in_location = $checkin_location; | |
| $attendance->check_in_location_address = $checkin_location_address; | |
| $attendance->check_out = $checkout_date; | |
| $attendance->check_out_location = $checkout_location; | |
| $attendance->check_out_location_address = $checkout_location_address; | |
| $attendance->save(); | |
| $dcheck_in = Carbon::parse($checkin_date); | |
| $dcheck_in->setTimezone(config('settings.time_zone')); | |
| $dcheck_in = $dcheck_in->format(config('settings.php_date_format')); | |
| //if user is on leave | |
| $userOnLeave = ApplyLeave::where('from_date', '<=', $dcheck_in) | |
| ->where('to_date', '>=', $dcheck_in) | |
| ->where('status', 'Approve') | |
| ->where('user_id', $user_id) | |
| ->first(); | |
| if(!empty($userOnLeave)){ | |
| if($userOnLeave->leave_type == 'full_day'){ | |
| $reason = $userOnLeave->reason.' '.'(System : Leave length reduced due to approving attendance)'; | |
| if($userOnLeave->leave_length == 1){ | |
| if (strstr($userOnLeave->reason , 'System : Leave length reduced due to approving attendance)')){ | |
| $userOnLeave->update(['status' => 'cancel','leave_length' => 0]); | |
| }else{ | |
| $userOnLeave->update(['status' => 'cancel','leave_length' => 0,'reason' => $reason]); | |
| } | |
| }else if($userOnLeave->leave_length > 1){ | |
| if (strstr($userOnLeave->reason , 'System : Leave length reduced due to approving attendance)')){ | |
| $userOnLeave->update(['leave_length' => $userOnLeave->leave_length-1]); | |
| }else{ | |
| $userOnLeave->update(['leave_length' => $userOnLeave->leave_length-1,'reason' => $reason]); | |
| } | |
| } | |
| $length = 1; | |
| LeaveHelper::updateLeaveBalanceOnAdminCancelling($user_id,$userOnLeave->leave_id,$length); | |
| } | |
| } | |
| } | |
| $user_detail = UserDetail::where('user_id', $user_id)->first(); | |
| $attedance_date = Carbon::parse($request_attendance->check_in, Config('app.time_zone'))->format(config('settings.php_date_format')); | |
| //notification to user | |
| $title = "Attendance Request"; | |
| $message = "Your attendance has been " . $request_attendance->status . ' for ' . $attedance_date; | |
| $collaboratorMessage = $user_detail->user->name . ' ' . $user_detail->user->lastName . "'s attendance has been " . $request_attendance->status . ' for ' . $attedance_date . ' by ' . auth()->user()->name . ' ' . auth()->user()->lastName; | |
| $actionUrl = null; | |
| $arr = null; | |
| $arr = [$title, $message, $actionUrl]; | |
| $user_detail->user->notify(new AppNotifications($arr)); | |
| $firebaseObject = new FirebaseCloudMessaging(); | |
| $firebaseObject->sendFirebaseNotification($title,$message,$user_detail->user->id); | |
| //get collaborators | |
| $collaborators = userRequestCollaborator::where('module', 'attendance') | |
| ->where('context_id', $id) | |
| ->pluck('user_id')->toArray(); | |
| //primary reporting manager | |
| $primaryReportingManagerId = $user_detail->primary_reporting_manager_id; | |
| $collArr = [$title, $collaboratorMessage, null]; | |
| if (!empty($collaborators)) { | |
| if (in_array(auth()->user()->id, $collaborators)) { | |
| foreach ($collaborators as $collaborator) { | |
| $collaboratorUser = User::where('id', $collaborator)->first(); | |
| //send notification to all collaborators | |
| if(auth()->user()->id != $collaborator){ | |
| $collaboratorUser->notify(new AppNotifications($collArr)); | |
| $firebaseObject = new FirebaseCloudMessaging(); | |
| $firebaseObject->sendFirebaseNotification($title,$collaboratorMessage,$collaborator); | |
| } | |
| } | |
| }else{ | |
| foreach ($collaborators as $collaborator) { | |
| $collaboratorUser = User::where('id', $collaborator)->first(); | |
| //send notification to all collaborators | |
| $collaboratorUser->notify(new AppNotifications($collArr)); | |
| $firebaseObject = new FirebaseCloudMessaging(); | |
| $firebaseObject->sendFirebaseNotification($title,$collaboratorMessage,$collaborator); | |
| } | |
| } | |
| } | |
| //check if user has primary reporting manager | |
| if ($primaryReportingManagerId != 0 || $primaryReportingManagerId != NULL) { | |
| $primary_manger = User::where('id', $primaryReportingManagerId)->first(); | |
| if($primaryReportingManagerId != Auth::user()->id ){ | |
| $primary_manger->notify(new AppNotifications($collArr)); | |
| $firebaseObject = new FirebaseCloudMessaging(); | |
| $firebaseObject->sendFirebaseNotification($title,$collaboratorMessage,$primaryReportingManagerId); | |
| } | |
| } | |
| //secondary reporting managers | |
| $secondaryManagers = $user_detail->secondaryManager; | |
| if(!empty($secondaryManagers)){ | |
| foreach ($secondaryManagers as $secondaryManager) { | |
| if ($primaryReportingManagerId != $secondaryManager->id && $secondaryManager->id != Auth::user()->id && !in_array($secondaryManager->id, $collaborators)) { | |
| $secondaryManager->notify(new AppNotifications($collArr)); | |
| $firebaseObject = new FirebaseCloudMessaging(); | |
| $firebaseObject->sendFirebaseNotification($title,$collaboratorMessage,$secondaryManager->id); | |
| } | |
| } | |
| } | |
| if ($request_attendance->status == 'approved') { | |
| //Session::flash('success', 'Approved Attendance Successful!'); | |
| return response()->json(['status' => 200, 'collaborators'=> $collaborators ,'message' => 'Approved Attendance Successful!']); | |
| } else { | |
| //Session::flash('warning', 'Rejected Attendance Successful!'); | |
| return response()->json(['status' => 200, 'message' => 'Rejected Attendance Successful!']); | |
| } | |
| return response()->json(['status' => 200, 'message' => '']); | |
| } | |
| /** | |
| * Remove the specified resource from storage. | |
| * | |
| * @param int $id | |
| * @return \Illuminate\Http\Response | |
| */ | |
| public function destroy($id) | |
| { | |
| // | |
| } | |
| } |