/
home
/
sjslayjy
/
public_html
/
mosaram
/
app
/
Http
/
Controllers
/
Upload File
HOME
<?php namespace App\Http\Controllers; use App\Users; use Illuminate\Http\Request; use DB; use DateTime; use DataTables; class addlocationController extends Controller { public function addUsers(){ return view("addUsers"); } public function addUserinsert(Request $req){ $req->validate([ 'name' => 'required|string|min:3|max:255', // 'address'=>'required|string|min:3|max:255', // 'lat'=>'required', // 'lng' => 'required', ]); $location = new Users; $location->name=$req->name; // $location->address=$req->address; // $location->lat=$req->lat; // $location->lng=$req->lng; $location->save(); return redirect('adduser')->with('success','save data'); } public function addusershow(){ $data['userlocation'] = \DB::table('users')->get(); //dd($data); return view('addUsers',$data); } public function adduserdestroy($id) { $Users = new Users; $Users = Users_Locations::find($id); $Users->delete($id); return response()->json([ 'success' => 'Record has been deleted successfully!' ]); } // public function adduseredit($id) // { // $addusers = Users_Locations::find($id); // return response()->json($addusers); // } public function attendance(){ $data['users'] = \App\Location::groupBy('user_id')->get(); $data['total_present'] = \DB::table('location')->whereDate('created_at', date('Y-m-d'))->groupBy('user_id')->get()->count(); $data['total_absent'] = "4"; return view('attendance',$data); } public function attendanceReport(Request $request){ $data['attendanceReports'] = \App\Location::whereDate('created_at',date('Y-m-d'))->groupBy('user_id')->get(); $data['users'] = \DB::table('users')->where('is_active',1)->get(); $temUsers = \App\Location::whereDate('created_at',date('Y-m-d'))->groupBy('user_id')->get(); if(count($temUsers)>0){ $temTimes =array(); foreach($temUsers as $val){ $stay_times = \App\Location::whereDate('created_at',date('Y-m-d'))->where('user_id',$val->user_id)->get('hours_stay'); if(count($stay_times)>0){ $total_time = "00:00:00"; foreach($stay_times as $stay_time){ $time2 = $stay_time->hours_stay; $secs = strtotime($time2)-strtotime("00:00:00"); $total_time = date("H:i:s",strtotime($total_time)+$secs); } }else{ $data['totalTimes'] = null; } array_push($temTimes,$total_time); } $data['totalTimes'] = $temTimes; }else{ $data['totalTimes'] = null; } $data['attendanceReports1'] = \App\Location::select(DB::raw('max(out_time) as outTime'))->whereDate('created_at',date('Y-m-d'))->groupBy('user_id')->get(); if($request->isMethod('post')) { $validator = \Validator::make($request->all(),array( 'user_id' => 'required', 'attendance_date' => 'required' ),array( 'user_id.required' => 'Please select user', 'attendance_date.required' => 'Date is required' )); if($validator->fails()){ return redirect()->back()->withErrors($validator) ->withInput(); }else{ $data['userAndDateWiseReports'] = \App\Location::where('user_id',$request->user_id)->whereDate('created_at',date($request->attendance_date))->groupBy('user_id')->get(); $stay_times = \App\Location::where('user_id',$request->user_id)->whereDate('created_at',date($request->attendance_date))->whereNotNull('hours_stay')->get('hours_stay'); if(count($stay_times)>0){ $total_time = "00:00:00"; foreach($stay_times as $stay_time){ $time2 = $stay_time->hours_stay; $secs = strtotime($time2)-strtotime("00:00:00"); $total_time = date("H:i:s",strtotime($total_time)+$secs); } $data['total_time'] = $total_time; }else{ $data['total_time'] = null; } $data['userAndDateWiseReports1'] = \App\Location::where('user_id',$request->user_id)->whereNotNull('out_time')->whereDate('created_at',date($request->attendance_date))->orderBy('id','desc')->first(); $data['userId'] = $request->user_id; } } return view('attendance-report',$data); } public function attendanceDayReport(Request $request){ $data['attendanceReports'] = \App\Location::whereDate('created_at',date('Y-m-d', strtotime($request->dates)))->groupBy('user_id')->get(); $data['users'] = \DB::table('users')->where('is_active',1)->get(); $temUsers = \App\Location::whereDate('created_at',date('Y-m-d' , strtotime($request->dates)))->groupBy('user_id')->get(); if(count($temUsers)>0){ $temTimes =array(); foreach($temUsers as $val){ $stay_times = \App\Location::whereDate('created_at',date('Y-m-d',strtotime($val->created_at)))->where('user_id',$val->user_id)->get('hours_stay'); if(count($stay_times)>0){ $total_time = "00:00:00"; foreach($stay_times as $stay_time){ $time2 = $stay_time->hours_stay; $secs = strtotime($time2)-strtotime("00:00:00"); $total_time = date("H:i:s",strtotime($total_time)+$secs); } }else{ $data['totalTimes'] = null; } array_push($temTimes,$total_time); } $data['totalTimes'] = $temTimes; }else{ $data['totalTimes'] = null; } $data['attendanceReports1'] = \App\Location::select(DB::raw('max(out_time) as outTime'))->whereDate('created_at',date('Y-m-d', strtotime($request->dates)))->groupBy('user_id')->get(); return view('day-attendance-report',$data); } public function attendanceChart(){ $data['users'] = \App\Location::groupBy('user_id')->get(); $data['month'] = ""; $data['year'] = ""; return view('attendance-chart',$data); } public function attendanceChartFilter(Request $request){ $data['users'] = \App\Location::groupBy('user_id')->get(); $data['month'] = $request->month; $data['year'] = $request->year; return view('attendance-chart',$data); } public function attendanceInOutByDate($id,$date){ $data['inOutDetails'] = \DB::table('location')->where('user_id',$id)->whereDate('created_at',date('Y-m-d',strtotime($date)))->orderBy('updated_at','asc')->get(); if(count($data['inOutDetails'])>0){ return view('in-out-time-modal',$data); } } public function addlocationinsert(Request $req){ $req->validate([ 'name' => 'required|string|min:3|max:255', 'lat'=>'required', 'lng' => 'required', 'location_range' => 'required', 'end_time' => 'required', ]); $addlocation = new location; $addlocation->name=$req->name; $addlocation->lat=$req->lat; $addlocation->lng=$req->lng; $addlocation->location_range=$req->location_range; $addlocation->type=$req->type; $addlocation->end_time=$req->end_time; // dd($addlocation); $addlocation->save(); return redirect('addlocation')->with('success','save data'); } public function addlocationshow(){ $data['warehouselocation'] = \DB::table('location')->get(); return view('addlocation',$data); } public function addlocationdestroy($id) { $Users = new location; $Users = location::find($id); $Users->delete($id); return response()->json([ 'success' => 'Record has been deleted successfully!' ]); } public function getEditlocation(){ $data = array(); $data['location'] = location::first(); return view('addlocation',$data); } public static function getuser($id){ $data= \DB::table('users') ->where('id',$id) ->get(); return $data; } public function addfilter(REQUEST $request){ // print_r('asdfghjkmnbvcxzxcvb'); $sql="select * from location "; $conditions = array(); if($request->post('sql_query')!=""){ $conditions[] = "user_id='".$request->post('sql_query')."'"; } if($request->post('mydate')!=""){ $conditions[] = "DATE(in_time) >= '".$request->post('mydate')."'"; } // if($request->post('fromdate')!=""){ // $conditions[] = "DATE(in_time) <= '".$request->post('fromdate')."'"; // } if (count($conditions) > 0) { $sql .= " WHERE " . implode(' AND ', $conditions); } //echo $sql; // exit; // echo "select * from location where user_id='".$request->post('sql_query')."'"; $data['userlocation'] =DB::select(DB::raw($sql)); //print_r($data['userlocation']); // $data['userlocation'] = \DB::table('location') // ->where('user_id',$request->post('sql_query')) // ->get(); $data['sql_query'] =$request->post('sql_query'); $data['mydate'] =$request->post('mydate'); $data['fromdate'] =$request->post('fromdate'); $data['users'] = \DB::table('users') ->orderBy('id', 'DESC') ->get(); // exit; return view('filter',$data); // print_r(count ($filter)); } public static function getuserbydateandid($id,$date) { $sql="select * from track_users where user_id='$id' and DATE(created_at)='".date('Y-m-d',strtotime($date))."'"; $data =DB::select(DB::raw($sql)); $timearray=array(); foreach($data as $d){ $format = 'Y-m-d H:i:s'; $date = \DateTime::createFromFormat($format, $d->created_at); $timearray[]= $date->format('H:i:s'); } // print_r($timearray); $time = 0; //$time_arr = array("23:59","01:01","2:50"); foreach ($timearray as $time_val) { $time +=self::explode_time($time_val); // this fucntion will convert all hh:mm to seconds } return self::second_to_hhmm($time); } public static function explode_time($time) { //explode time and convert into seconds $time = explode(':', $time); $time = $time[0] * 3600 + $time[1] * 60; return $time; } public static function second_to_hhmm($time) { $hour = floor($time / 3600); $minute = strval(floor(($time % 3600) / 60)); if ($minute == 0) { $minute = "00"; } else { $minute = $minute; } $time = $hour . ":" . $minute; return $time; } public function getStaus(){ return redirect()->route('get_user_status'); $data['gpsStatus'] = \DB::table('gps_status') ->join('users', 'users.id', '=', 'gps_status.user_id') ->select('gps_status.status','gps_status.created_at','users.name','gps_status.batterylevel') ->get(); return view('gps_status',$data); } public function filter(REQUEST $request){ // print_r('asdfghjkmnbvcxzxcvb'); $sql="select * from location "; $conditions = array(); if($request->post('sql_query')!=""){ $conditions[] = "user_id='".$request->post('sql_query')."'"; } if($request->post('mydate')!=""){ $conditions[] = "DATE(in_time) >= '".$request->post('mydate')."'"; } if (count($conditions) > 0) { $sql .= " WHERE " . implode(' AND ', $conditions); } $data['userlocation'] =DB::select(DB::raw($sql)); $data['sql_query'] =$request->post('sql_query'); $data['mydate'] =$request->post('mydate'); $data['fromdate'] =$request->post('fromdate'); $data['users'] = \DB::table('users') ->orderBy('id', 'DESC') ->get(); // exit; return view('filter',$data); // print_r(count ($filter)); } }