Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
| Total | |
0.00% |
0 / 1 |
|
0.00% |
0 / 9 |
CRAP | |
0.00% |
0 / 101 |
| LeaveBalanceReportController | |
0.00% |
0 / 1 |
|
0.00% |
0 / 9 |
870 | |
0.00% |
0 / 101 |
| index | |
0.00% |
0 / 1 |
72 | |
0.00% |
0 / 31 |
|||
| leavebalancereportdata | |
0.00% |
0 / 1 |
72 | |
0.00% |
0 / 35 |
|||
| 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 |
|||
| updateUserLeaveBalance | |
0.00% |
0 / 1 |
56 | |
0.00% |
0 / 29 |
|||
| <?php | |
| namespace App\Http\Controllers\Reports; | |
| use Illuminate\Http\Request; | |
| use App\Http\Controllers\Controller; | |
| use App\Models\Auth\User; | |
| use App\Models\Leave\LeaveEntitlement; | |
| use App\Models\Admin\Leave; | |
| use DB; | |
| use Carbon\CarbonPeriod; | |
| use Carbon\Carbon; | |
| use Auth; | |
| use Session; | |
| use GetShiftDetailHelper; | |
| use App\Models\Admin\UserDetail; | |
| use App\Helpers\AttendanceHelper; | |
| use App\Helpers\LeaveLogHelper; | |
| class LeaveBalanceReportController extends Controller | |
| { | |
| //private $dataArr, $columnHeaders; | |
| /** | |
| * Display a listing of the resource. | |
| * | |
| * @return \Illuminate\Http\Response | |
| */ | |
| public function index(Request $request) | |
| { | |
| $title = '/Reports/Leave Balance Report'; | |
| if(auth()->user()->can('View All Leave Balance')){ | |
| $users = User::with('userdetailWithTeam')->get(); | |
| }else if(auth()->user()->can('View Reporting Employees Leave Balance')){ | |
| $userIds = GetShiftDetailHelper::getMyReportingEmployees(); | |
| $users = User::whereIn('id', $userIds)->with('userdetailWithTeam')->get(); | |
| } | |
| else{ | |
| //View Self Leave Balance | |
| $users = User::where('id', auth()->id())->with('userdetailWithTeam')->get(); | |
| } | |
| $leaves = DB::table('leaves')->whereNull('deleted_at')->get(); | |
| foreach ($users as $user) { | |
| # code... | |
| $leaveBalances = []; | |
| // return $user->userdetailWithTeam; | |
| //$user['team'] = isset($user['userdetailWithTeam']['teams'][0]) ? $user['userdetailWithTeam']['teams'][0]->team : ''; | |
| $user['team'] = !empty($user->userdetail->primaryTeamName->team) ? $user->userdetail->primaryTeamName->team : '-'; | |
| foreach ($leaves as $leave) { | |
| $leaveEntitlementQuery = array( | |
| 'user_id' => $user->id, | |
| 'year' => Carbon::now()->year, | |
| 'leave_id' => $leave->id | |
| ); | |
| $leaveEntitlementArr = LeaveEntitlement::where($leaveEntitlementQuery)->get(); | |
| $leaveBalance = null; | |
| foreach ($leaveEntitlementArr as $leaveEntitlement) { | |
| $leaveBalance = $leaveEntitlement->leave_balance; | |
| } | |
| if ($leaveBalance == null) { | |
| $leaveBalance = 0; | |
| } | |
| $leaveBalances[] = array( | |
| 'id' => $leave->id, | |
| 'name' => $leave->name, | |
| 'abbr' => $leave->abbr, | |
| 'leave_balance' => $leaveBalance | |
| ); | |
| } | |
| $user['leaveBalances'] = $leaveBalances; | |
| } | |
| // For Attendance Marking | |
| $val = AttendanceHelper::getAttendanceMarkValue(); | |
| $valTeam = AttendanceHelper::getAttendanceTeam($request); | |
| $valUser = AttendanceHelper::getAttendanceUser($request); | |
| // return $users; | |
| return view('Reports.LeaveBalanceReport',compact('users','title','leaves','val','valTeam','valUser')); | |
| } | |
| public function leavebalancereportdata(Request $request) | |
| { | |
| $column_key = array("0"=>"name","1"=>"","2" =>"","3"=>"","4"=>""); | |
| $where_condition = "1 = 1"; | |
| $order_key = $request->input('order')[0]['column']; | |
| $order = $column_key[$order_key]; | |
| $dir = $request->input('order')[0]['dir']; | |
| if(trim($dir)==''){ | |
| $dir = 'desc'; | |
| } | |
| if ($order != '') { | |
| $orderBy = " ORDER BY ".$order." ".$dir; | |
| } | |
| if(null !==($request->input('search.value')) && trim($request->input('search.value'))!=''){ | |
| $search = $request->input('search.value'); | |
| $where_condition .= " AND (name Like '%$search%' OR lastName Like '%$search%')"; | |
| } | |
| $count_model = User::with('userdetailWithTeam')->get(); | |
| $total_app_count = $count_model; | |
| $totalFiltered = $count_model; | |
| $data_model = User::whereRaw($where_condition) | |
| ->orderBy($order , $dir) | |
| ->offset( intval($request->input('start')))->limit(intval($request->input('length'))) | |
| ->get(); | |
| $data = array(); | |
| if(count($data_model)>0){ | |
| foreach($data_model as $database_model){ | |
| $nestedData['name'] = $database_model->name.' '.$database_model->lastName; | |
| $nestedData['role'] = $database_model->getRoleNames()->first(); | |
| // $nestedData['team'] = !empty($database_model->userdetailWithTeam()->first()) ? $database_model->userdetailWithTeam()->first()->teams[0]['team']: ''; | |
| $nestedData['team'] = !empty($user->userdetail->primaryTeamName->team) ? $user->userdetail->primaryTeamName->team : ''; | |
| $edit = route('user-tab.edit',$database_model->id); | |
| $nestedData['edit'] = '<a href="'.$edit.'"><button class="btn btn-info icon-pencil7"></button></a>'; | |
| $delete = route('deleteuser',$database_model->id); | |
| $nestedData['delete'] = '<a href="'.$delete.'"><button class="btn btn-danger icon-bin"></button></a>'; | |
| $data[] = $nestedData; | |
| } | |
| } | |
| $json_data = array( | |
| "draw" => intval( $request->input('draw')), | |
| "recordsTotal" => intval( $total_app_count ), | |
| "recordsFiltered" => intval($total_app_count ), | |
| "data" => $data, // total data array | |
| ); | |
| echo json_encode($json_data);exit; | |
| } | |
| /** | |
| * 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) | |
| { | |
| } | |
| /** | |
| * Remove the specified resource from storage. | |
| * | |
| * @return \Illuminate\Http\Response | |
| */ | |
| public function updateUserLeaveBalance(Request $request) | |
| { | |
| $user = User::find($request->user_id); | |
| $userid=Auth::user()->id; | |
| $leaveLogHelper = new LeaveLogHelper; | |
| // update in leave entitlements | |
| foreach ($request->all() as $key => $value) { | |
| if(is_int($key)) { // means it is leave id actually. | |
| $leaveEntitlementFindQuery = array( | |
| 'user_id' => $request->user_id, | |
| 'leave_id' => $key, | |
| 'year' => Carbon::now()->year | |
| ); | |
| $leaveEntitlementUpdateData = array( | |
| 'leave_balance' => $value | |
| ); | |
| $leaveEntitlement = LeaveEntitlement::where($leaveEntitlementFindQuery)->first(); | |
| // ->update($leaveEntitlementUpdateData); | |
| if(isset($leaveEntitlement)) { | |
| $previousLeaveBalance = $leaveEntitlement->leave_balance; | |
| $leaveEntitlement->leave_balance = $value; | |
| $leaveEntitlement->save(); | |
| //change the leave log balance | |
| if ($previousLeaveBalance < $value) { | |
| $leaveLogHelper->updateLeaveLog($value - $previousLeaveBalance,"ADDED",$request->user_id,$key,"Leave add-on",$userid); | |
| } else if ($previousLeaveBalance > $value) { | |
| $leaveLogHelper->updateLeaveLog( $previousLeaveBalance - $value,"SUBTRACTED",$request->user_id,$key, "Leave deduction",$userid); | |
| } | |
| } else { | |
| // create leaveentitlement | |
| $leave = Leave::where('id', $key)->first(); | |
| // return $leave; | |
| $leaveEntitlementData = array( | |
| 'user_id' => $request->user_id, | |
| 'leave_id' => $key, | |
| 'leave_balance' => $value, | |
| 'year' => Carbon::now()->year, | |
| 'entitled_leaves' => $leave->n_days | |
| ); | |
| // return $leaveEntitlementData; | |
| LeaveEntitlement::create($leaveEntitlementData); | |
| if($value != 0){ | |
| $leaveLogHelper->updateLeaveLog( $value,"ADDED",$request->user_id,$key,"Leave add-on",$userid); | |
| } | |
| } | |
| } | |
| } | |
| Session::flash('success', 'Leave Details Saved Successfully !'); | |
| return redirect()->route('leave-balance-report.index'); | |
| } | |
| } |