Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
| Total | |
0.00% |
0 / 1 |
|
0.00% |
0 / 8 |
CRAP | |
0.00% |
0 / 129 |
| ShiftController | |
0.00% |
0 / 1 |
|
0.00% |
0 / 8 |
812 | |
0.00% |
0 / 129 |
| index | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 6 |
|||
| shiftlistdata | |
0.00% |
0 / 1 |
182 | |
0.00% |
0 / 53 |
|||
| create | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 7 |
|||
| store | |
0.00% |
0 / 1 |
6 | |
0.00% |
0 / 19 |
|||
| show | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 1 |
|||
| edit | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 11 |
|||
| update | |
0.00% |
0 / 1 |
72 | |
0.00% |
0 / 28 |
|||
| destroy | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 4 |
|||
| <?php | |
| namespace App\Http\Controllers\Admin; | |
| use Illuminate\Http\Request; | |
| use App\Http\Controllers\Controller; | |
| use App\Models\Admin\Shift; | |
| use App\Models\Admin\BufferOn; | |
| use App\Models\Admin\Weekend; | |
| use Illuminate\Support\Facades\Validator; | |
| use App\Models\Auth\UserShift; | |
| use App\Models\Admin\UserDetail; | |
| use Session; | |
| use Carbon\Carbon; | |
| use App\Models\Admin\TeamShiftDetail; | |
| use App\Models\Admin\UserDetailShift; | |
| use App\Helpers\AttendanceHelper; | |
| class ShiftController extends Controller | |
| { | |
| /** | |
| * Display a listing of the resource. | |
| * | |
| * @return \Illuminate\Http\Response | |
| */ | |
| public function index(Request $request) | |
| { | |
| $title = '/Setup/Shift'; | |
| $backurl = route('home'); | |
| // For Attendance Marking | |
| $val = AttendanceHelper::getAttendanceMarkValue(); | |
| $valTeam = AttendanceHelper::getAttendanceTeam($request); | |
| $valUser = AttendanceHelper::getAttendanceUser($request); | |
| return view('administrationForms.Shift.ShiftTable', compact('title','backurl','val','valTeam','valUser')); | |
| } | |
| public function shiftlistdata(Request $request) | |
| { | |
| $column_key = array("0"=>"shift","1"=>"start_time","2" =>"end_time"); | |
| $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 (shift Like '%$search%' OR start_time Like '%$search%' OR end_time Like '%$search%')"; | |
| } | |
| $count_model = Shift::whereRaw($where_condition)->count(); | |
| $total_app_count = $count_model; | |
| $totalFiltered = $count_model; | |
| $data_model = Shift::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->shift; | |
| $shiftStartTime = Carbon::parse($database_model->start_time,config('app.timezone')); | |
| $shiftStartTime->setTimezone(Config('settings.time_zone')); | |
| $shiftStartTime = $shiftStartTime->toTimeString(); | |
| $shiftStartTime = date(Config('settings.time_format'), strtotime($shiftStartTime)); | |
| $shiftEndTime = Carbon::parse($database_model->end_time,config('app.timezone')); | |
| $shiftEndTime->setTimezone(Config('settings.time_zone')); | |
| $shiftEndTime = $shiftEndTime->toTimeString(); | |
| $shiftEndTime = date(Config('settings.time_format'), strtotime($shiftEndTime)); | |
| $nestedData['starttime'] = $shiftStartTime; | |
| $nestedData['endtime'] = $shiftEndTime; | |
| $nestedData['action'] = '-'; | |
| $edit_link = ''; | |
| if(auth()->user()->can('Edit Shifts module')) | |
| { | |
| $edit_route = route('shift.edit',$database_model->id); | |
| $edit_link = '<a href="'.$edit_route.'" data-original-title="Edit"> <i class="icon-pencil7" title="edit" style="color:#3699FF !important;"></i> </a>'; | |
| $nestedData['action'] = $edit_link; | |
| } | |
| if(auth()->user()->can('Delete Shifts module')) | |
| { | |
| $userShift = UserDetailShift::where('shift_id','=',$database_model->id)->count(); | |
| $isused = '0'; | |
| $teamshift = TeamShiftDetail::where('shift_id','=',$database_model->id)->count(); | |
| if((isset($userShift) && !empty($userShift)) || (isset($teamshift) && !empty($teamshift))) | |
| { | |
| $isused = '1'; | |
| } | |
| $delete_link = '<a href="#" title="Delete" data-original-title="Delete" style="padding-left: 5px"; onclick="deleteShift('.$database_model->id.','.$isused.');" ><i class="icon-bin" style="color:#dc3545 !important;"></i></a>'; | |
| $nestedData['action'] = $edit_link.' '.$delete_link; | |
| } | |
| $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(Request $request) | |
| { | |
| $title = '/Setup/Create Shift'; | |
| $backurl = route('shift.index'); | |
| $buffers = BufferOn::all(); | |
| $val = AttendanceHelper::getAttendanceMarkValue(); | |
| $valTeam = AttendanceHelper::getAttendanceTeam($request); | |
| $valUser = AttendanceHelper::getAttendanceUser($request); | |
| return view('administrationForms.Shift.ShiftForm',compact('title','buffers','backurl','val','valTeam','valUser')); | |
| } | |
| /** | |
| * Store a newly created resource in storage. | |
| * | |
| * @param \Illuminate\Http\Request $request | |
| * @return \Illuminate\Http\Response | |
| */ | |
| public function store(Request $request) | |
| { | |
| $validator = Validator::make($request->all(), [ | |
| 'shift' => 'required|unique:shifts,shift|max:255', | |
| 'start_time' => 'required', | |
| 'end_time' => 'required', | |
| 'buffer_on_checkin' => 'required', | |
| 'buffer_on_checkout' => 'required', | |
| // 'buffer_on_id' => 'required', | |
| ]); | |
| if ($validator->fails()) | |
| { | |
| return redirect()->route('shift.create')->withErrors($validator); | |
| } | |
| else | |
| { | |
| $request->start_time = Carbon::parse($request->start_time,config('settings.time_zone')); | |
| $request->start_time->setTimezone(Config('app.timezone')); | |
| $start_time = $request->start_time->toTimeString(); | |
| $request->end_time = Carbon::parse($request->end_time,config('settings.time_zone')); | |
| $request->end_time->setTimezone(Config('app.timezone')); | |
| $end_time = $request->end_time->toTimeString(); | |
| $request->request->add(['buffer_on_checkin' => $request->buffer_on_checkin.':00']); | |
| $request->request->add(['start_time' => $start_time]); | |
| $request->request->add(['end_time' => $end_time]); | |
| $request->request->add(['buffer_on_checkout' => $request->buffer_on_checkout.':00']); | |
| $shift = Shift::create($request->all()); | |
| /** | |
| * Add entry of weekend | |
| **/ | |
| $request->request->add(['shift_id' => $shift->id]); //add shift id | |
| $weekend = Weekend::create($request->all()); | |
| Session::flash('success', 'Shift Added Successfully!'); | |
| return redirect()->route('shift.index'); | |
| } | |
| } | |
| /** | |
| * 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(Request $request,$id) | |
| { | |
| $title = '/Setup/Edit Shift'; | |
| $backurl = route('shift.index'); | |
| $shift = Shift::find($id); | |
| $shift->weekend; | |
| $buffersEdits = BufferOn::all(); | |
| $bufferArr = $shift; | |
| Session::flash('warning', 'Edit Shift'); | |
| // For Attendance Marking | |
| $val = AttendanceHelper::getAttendanceMarkValue(); | |
| $valTeam = AttendanceHelper::getAttendanceTeam($request); | |
| $valUser = AttendanceHelper::getAttendanceUser($request); | |
| return view('administrationForms.Shift.ShiftForm', compact('shift','title','buffersEdits','bufferArr','backurl','val','valTeam','valUser')); | |
| } | |
| /** | |
| * Update the specified resource in storage. | |
| * | |
| * @param \Illuminate\Http\Request $request | |
| * @param int $id | |
| * @return \Illuminate\Http\Response | |
| */ | |
| public function update(Request $request, $id) | |
| { | |
| /** | |
| * Checked the value exist in the request or not | |
| **/ | |
| if($request->monday == null) { $request['monday'] = "0"; } | |
| if($request->tuesday == null) { $request['tuesday'] = "0";} | |
| if($request->wednesday == null) { $request['wednesday'] = "0";} | |
| if($request->thursday == null) { $request['thursday'] = "0"; } | |
| if($request->friday == null) { $request['friday'] = "0"; } | |
| if($request->saturday == null) { $request['saturday'] = "0"; } | |
| if($request->sunday == null) { $request['sunday'] = "0"; } | |
| $this->validate($request,[ | |
| 'shift' => 'required|max:190|unique:shifts,shift,' . $id, | |
| 'start_time' => 'required', | |
| 'end_time' => 'required', | |
| 'buffer_on_checkin' => 'required', | |
| 'buffer_on_checkout' => 'required', | |
| // 'buffer_on_id' => 'required', | |
| ]); | |
| $request->start_time = Carbon::parse($request->start_time,config('settings.time_zone')); | |
| $request->start_time->setTimezone(Config('app.timezone')); | |
| $start_time = $request->start_time->toTimeString(); | |
| $request->end_time = Carbon::parse($request->end_time,config('settings.time_zone')); | |
| $request->end_time->setTimezone(Config('app.timezone')); | |
| $end_time = $request->end_time->toTimeString(); | |
| //exit; | |
| $shift = Shift::find($id); | |
| $request->request->add(['buffer_on_checkin' => $request->buffer_on_checkin.':00']); | |
| $request->request->add(['start_time' => $start_time]); | |
| $request->request->add(['end_time' => $end_time]); | |
| $request->request->add(['buffer_on_checkout' => $request->buffer_on_checkout.':00']); | |
| $shift->update($request->only(['shift','start_time','end_time','buffer_on_checkin','buffer_on_checkout'])); | |
| $shift->weekend->update($request->only(['monday','tuesday','wednesday','thursday','friday','saturday','sunday'])); | |
| Session::flash('success', 'Shift Updated Successfully!'); | |
| return redirect()->route('shift.index')->withErrors($this); | |
| } | |
| /** | |
| * Remove the specified resource from storage. | |
| * | |
| * @param int $id | |
| * @return \Illuminate\Http\Response | |
| */ | |
| public function destroy(Request $request) | |
| { | |
| $id = $request->id; | |
| $shift = Shift::find($id); | |
| $shift->delete(); | |
| return response()->json(['success_flag'=>1,'success_message'=>'Shift Deleted Successfully']); | |
| } | |
| } |