Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
| Total | |
0.00% |
0 / 1 |
|
0.00% |
0 / 8 |
CRAP | |
0.00% |
0 / 134 |
| CompOffLeaveReportController | |
0.00% |
0 / 1 |
|
0.00% |
0 / 8 |
930 | |
0.00% |
0 / 134 |
| index | |
0.00% |
0 / 1 |
12 | |
0.00% |
0 / 16 |
|||
| 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 |
132 | |
0.00% |
0 / 58 |
|||
| updateFromHomePage | |
0.00% |
0 / 1 |
132 | |
0.00% |
0 / 55 |
|||
| destroy | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 1 |
|||
| <?php | |
| namespace App\Http\Controllers\Leave; | |
| use App\Http\Controllers\FirebaseController\FirebaseCloudMessaging; | |
| use Illuminate\Http\Request; | |
| use App\Http\Controllers\Controller; | |
| use App\Models\Leave\ApplyLeave; | |
| use App\Models\Leave\RejectedLeave; | |
| use App\Models\Leave\LeaveEntitlement; | |
| use App\Models\Auth\User; | |
| use Session; | |
| use Auth; | |
| use DB; | |
| use Carbon\Carbon; | |
| use App\Notifications\AppNotifications; | |
| use GetShiftDetailHelper; | |
| use App\Models\Auth\userRequestCollaborator; | |
| use App\Models\Auth\UserRequestDiscuss; | |
| use App\Helpers\LeaveHelper; | |
| use App\Models\Leave\CompOffLeave; | |
| use App\Models\Admin\Leave; | |
| use App\Models\Leave\RejectedCompOffLeave; | |
| use App\Helpers\AttendanceHelper; | |
| class CompOffLeaveReportController extends Controller | |
| { | |
| /** | |
| * Display a listing of the resource. | |
| * | |
| * @return \Illuminate\Http\Response | |
| */ | |
| public function index(Request $request) | |
| { | |
| $title = '/Leave/Approve Comp Off Leave Balance'; | |
| $Appliedleave = []; | |
| if (auth()->user()->can('View All leave requests')) { | |
| $compOffleave = CompOffLeave::where('status', 'pending')->whereHas('user', function ($query) { | |
| $query->whereNull('deleted_at'); | |
| })->orderBy('created_at', 'DESC')->get(); | |
| } else if (auth()->user()->can('View All leave requests of team')) { | |
| $userIds = GetShiftDetailHelper::getMyteamMembers(); | |
| $compOffleave = CompOffLeave::whereIn('user_id', $userIds)->where('status', 'pending')->whereHas('user', function ($query) { | |
| $query->whereNull('deleted_at'); | |
| })->orderBy('created_at', 'DESC')->get(); | |
| } else { | |
| //View All leave requests of assigned employees | |
| $userIds = GetShiftDetailHelper::getMyReportingEmployees(); | |
| $compOffleave = CompOffLeave::whereIn('user_id', $userIds)->where('status', 'pending')->whereHas('user', function ($query) { | |
| $query->whereNull('deleted_at'); | |
| })->orderBy('created_at', 'DESC')->get(); | |
| } | |
| // For Attendance Marking | |
| $val = AttendanceHelper::getAttendanceMarkValue(); | |
| $valTeam = AttendanceHelper::getAttendanceTeam($request); | |
| $valUser = AttendanceHelper::getAttendanceUser($request); | |
| return view('administrationForms.LeavePolicy.LeaveReport.CompOffLeaveReportTable', compact('title', 'compOffleave','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) | |
| { | |
| $todayDate = Carbon::now(config('settings.time_zone')); | |
| if ($request->has('approver_comments')) { | |
| $status = $request->status_reject; | |
| $approver_comments = $request->approver_comments; | |
| } else { | |
| $approver_comments = null; | |
| $status = $request->status; | |
| if ($status == '') { | |
| return redirect()->back()->with('warning', 'Please select status and update'); | |
| } | |
| } | |
| $leaves = CompOffLeave::find($id); | |
| if($leaves->is_future == 'false'){ | |
| $leaves->is_process = 'true'; | |
| } | |
| $leaves->approved_date = $todayDate; | |
| $leaves->update(['status' => $status]); | |
| //notification to user | |
| $user = User::find($leaves->user_id); | |
| $date = Carbon::parse($leaves->date)->format('jS M Y'); | |
| if ($status == 'Approve') { | |
| $leave_status = 'approved'; | |
| } else if ($status == 'Reject') { | |
| $leave_status = 'rejected'; | |
| } | |
| $title = "Leave request"; | |
| if ($request->has('approver_comments') && $status == 'Reject') { | |
| $rejected_leave = new RejectedCompOffLeave(); | |
| $rejected_leave->date = $leaves->date; | |
| $rejected_leave->is_process = 'true'; | |
| $rejected_leave->is_future = $leaves->is_future; | |
| $rejected_leave->user_id = $leaves->user_id; | |
| $rejected_leave->leave_id = $leaves->leave_id; | |
| $rejected_leave->approver_comments = $approver_comments; | |
| $rejected_leave->save(); | |
| $leaves->delete(); | |
| $message = 'Your Comp Off leave for ' . $date . ' has been ' . $leave_status . ' due to ' . $approver_comments; | |
| }else{ | |
| if($leaves->is_future == 'false'){ | |
| $leaveEntitlementFindQuery = array( | |
| 'user_id' => $user->id, | |
| 'leave_id' => $leaves->leave_id, | |
| 'year' => Carbon::now(config('settings.time_zone'))->year | |
| ); | |
| $leaveEntitlement = LeaveEntitlement::where($leaveEntitlementFindQuery)->first(); | |
| if(isset($leaveEntitlement)) { | |
| $leaveEntitlement->leave_balance = 1 + $leaveEntitlement->leave_balance; | |
| $leaveEntitlement->save(); | |
| } else { | |
| $checkCompOffLeave = Leave::where('id',$leaves->leave_id)->first(); | |
| $leaveEntitlementData = array( | |
| 'user_id' => $user->id, | |
| 'leave_id' => $leaves->leave_id, | |
| 'leave_balance' => 1, | |
| 'year' => Carbon::now(config('settings.time_zone'))->year, | |
| 'entitled_leaves' => $checkCompOffLeave->n_days | |
| ); | |
| // return $leaveEntitlementData; | |
| LeaveEntitlement::create($leaveEntitlementData); | |
| } | |
| $message = 'Your Comp Off leave for ' . $date . ' has been ' . $leave_status; | |
| }else{ | |
| $message = 'Your Comp Off leave for ' . $date . ' has been ' . $leave_status.'. Leave balance will add, when mark attendance '; | |
| } | |
| } | |
| $actionUrl = 'comp-off-leave-report.index'; | |
| $arr = null; | |
| $arr = [$title, $message, $actionUrl]; | |
| $user->notify(new AppNotifications($arr)); | |
| $firebaseObject = new FirebaseCloudMessaging(); | |
| $firebaseObject->sendFirebaseNotification($title,$message,$user->id); | |
| if ($status == 'Approve') { | |
| Session::flash('success', ' Comp Off Leave Balance Approved Successfully!'); | |
| } else { | |
| Session::flash('warning', ' Comp Off Leave Balance Rejected Successfully!'); | |
| } | |
| //return redirect()->route('leave-report.index')->withErrors($this); | |
| return redirect()->back()->withErrors($this); | |
| } | |
| public function updateFromHomePage(Request $request, $id) | |
| { | |
| $todayDate = Carbon::now(config('settings.time_zone')); | |
| if ($request->has('approver_comments')) { | |
| $status = $request->status_reject; | |
| $approver_comments = $request->approver_comments; | |
| } else { | |
| $approver_comments = null; | |
| $status = $request->status; | |
| if ($status == '') { | |
| return redirect()->back()->with('warning', 'Please select status and update'); | |
| } | |
| } | |
| $leaves = CompOffLeave::find($id); | |
| if($leaves->is_future == 'false'){ | |
| $leaves->is_process = 'true'; | |
| } | |
| $leaves->approved_date = $todayDate; | |
| $leaves->update(['status' => $status]); | |
| //notification to user | |
| $user = User::find($leaves->user_id); | |
| $date = Carbon::parse($leaves->date)->format('jS M Y'); | |
| if ($status == 'Approve') { | |
| $leave_status = 'approved'; | |
| } else if ($status == 'Reject') { | |
| $leave_status = 'rejected'; | |
| } | |
| $title = "Leave request"; | |
| if ($request->has('approver_comments') && $status == 'Reject') { | |
| $rejected_leave = new RejectedCompOffLeave(); | |
| $rejected_leave->date = $leaves->date; | |
| $rejected_leave->is_process = 'true'; | |
| $rejected_leave->is_future = $leaves->is_future; | |
| $rejected_leave->user_id = $leaves->user_id; | |
| $rejected_leave->leave_id = $leaves->leave_id; | |
| $rejected_leave->approver_comments = $approver_comments; | |
| $rejected_leave->save(); | |
| $leaves->delete(); | |
| $message = 'Your Comp Off leave for ' . $date . ' has been ' . $leave_status . ' due to ' . $approver_comments; | |
| }else{ | |
| if($leaves->is_future == 'false'){ | |
| $leaveEntitlementFindQuery = array( | |
| 'user_id' => $user->id, | |
| 'leave_id' => $leaves->leave_id, | |
| 'year' => Carbon::now(config('settings.time_zone'))->year | |
| ); | |
| $leaveEntitlement = LeaveEntitlement::where($leaveEntitlementFindQuery)->first(); | |
| if(isset($leaveEntitlement)) { | |
| $leaveEntitlement->leave_balance = 1 + $leaveEntitlement->leave_balance; | |
| $leaveEntitlement->save(); | |
| } else { | |
| $checkCompOffLeave = Leave::where('id',$leaves->leave_id)->first(); | |
| $leaveEntitlementData = array( | |
| 'user_id' => $user->id, | |
| 'leave_id' => $leaves->leave_id, | |
| 'leave_balance' => 1, | |
| 'year' => Carbon::now(config('settings.time_zone'))->year, | |
| 'entitled_leaves' => $checkCompOffLeave->n_days | |
| ); | |
| // return $leaveEntitlementData; | |
| LeaveEntitlement::create($leaveEntitlementData); | |
| } | |
| $message = 'Your Comp Off leave for ' . $date . ' has been ' . $leave_status; | |
| }else{ | |
| $message = 'Your Comp Off leave for ' . $date . ' has been ' . $leave_status.'. Leave balance will add, when mark attendance '; | |
| } | |
| } | |
| $actionUrl = 'comp-off-leave-report.index'; | |
| $arr = null; | |
| $arr = [$title, $message, $actionUrl]; | |
| $user->notify(new AppNotifications($arr)); | |
| if ($status == 'Approve') { | |
| //Session::flash('success', 'Approve Leave Successful!'); | |
| return response()->json(['status' => 200, 'message' => 'Approved Request Successful!']); | |
| } else { | |
| //Session::flash('warning', 'Reject Leave Successful!'); | |
| return response()->json(['status' => 200, 'message' => 'Rejected Request Successful!']); | |
| } | |
| return response()->json(['status' => 200, 'message' => '']); | |
| } | |
| /** | |
| * Remove the specified resource from storage. | |
| * | |
| * @param int $id | |
| * @return \Illuminate\Http\Response | |
| */ | |
| public function destroy($id) | |
| { | |
| // | |
| } | |
| } |