/
home
/
sjslayjy
/
public_html
/
mosaram
/
app
/
Http
/
Controllers
/
Upload File
HOME
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use DB; class HomeController extends Controller { public function getUserStatus(){ $data = array(); $ids = \App\TrackUser::select(DB::raw('max(id) as id'))->groupBy('user_id')->get(); $data['user_status'] = \App\TrackUser::whereIn('id',$ids)->get(); return view('show-user-status', $data); } public function routeMap(Request $request){ $data['users'] = \DB::table('users')->where('is_active',1)->get(); if($request->isMethod('post')) { $validator = \Validator::make($request->all(),array( 'user_id' => 'required', 'route_date' => 'required' ),array( 'user_id.required' => 'Please select user', 'route_date.required' => 'Date is required' )); if($validator->fails()){ return redirect()->back()->withErrors($validator) ->withInput(); }else{ $data['route_data'] = \App\TrackUser::where('user_id',$request->user_id)->whereDate('updated_at',date($request->route_date))->get(); $data['userId'] = $request->user_id; } } return view('route-map',$data); } public function tomtomMap(Request $request){ $data['users'] = \DB::table('users')->where('is_active',1)->get(); if($request->isMethod('post')) { $validator = \Validator::make($request->all(),array( 'user_id' => 'required', 'route_date' => 'required' ),array( 'user_id.required' => 'Please select user', 'route_date.required' => 'Date is required' )); if($validator->fails()){ return redirect()->back()->withErrors($validator) ->withInput(); }else{ $data['route_data'] = \App\TrackUser::where('user_id',$request->user_id)->whereDate('updated_at',date($request->route_date))->get(); $data['userId'] = $request->user_id; } } return view('tom-tom-test',$data); } public function get_dashboard_page() { $data['location_set'] = \DB::table('addlocation')->get(); $data['today_active_users'] = \App\TrackUser::join('users','users.id','track_users.user_id')->whereRaw('track_users.id in (select min(track_users.id) as tid from track_users where date(track_users.created_at) = CURDATE() group by track_users.user_id)')->select('track_users.*','users.name as name')->get(); $data['users'] = \DB::table('users')->where('is_active',1)->get(); $data['todayAttendances'] = \App\Location::whereDate('location.created_at',date('Y-m-d'))->join('users','users.id','location.user_id')->select('users.name as user','users.id as id','location.in_time as in_time','location.out_time as out_time')->orderBy('location.id','desc')->get(); $ids = \App\TrackUser::select(DB::raw('max(id) as id'))->groupBy('user_id')->get(); $data['user_status'] = \App\TrackUser::whereIn('id',$ids)->get(); //$data['battery_status'] = \App\TrackUser::whereIn('id',$ids)->get(); return view('tdashboard',$data); } public static function getuserbyid($val){ $sql="SELECT * FROM users where id='$val'"; $results = DB::select($sql); return $results; } public function get_callforajax(REQUEST $request) { date_default_timezone_set("Asia/Calcutta"); $loc1=array(); // return view('home'); $sql="SELECT * FROM track_users WHERE id IN( SELECT MAX(id) AS id FROM track_users WHERE date(created_at) = CURDATE() GROUP BY user_id)"; //$results = DB::select($sql); $locations = DB::select($sql); ///echo json_decode($locations,true); $i=1; foreach($locations as $loc) { // echo $loc->city; $sql="SELECT * FROM users where id='$loc->user_id'"; $results = DB::select($sql); $loc1[]=array('name'=>$results[0]->name,'lat'=>$loc->lat,'lng'=>$loc->lng,'idd'=>$i); $i++; $datas = \DB::table('addlocation')->get(); foreach($datas as $locate){ $coordinates = $locate->ltlong; $parts = explode(',', $coordinates); $latitude = $parts[0]; $longitude = $parts[1]; //Attendance Mark Code. $warehouse1=$this->calculateDistanceBetweenTwoPoints($latitude,$longitude,$loc->lat,$loc->lng,'FT',true,5); if($warehouse1<=10) { $date=date('Y-m-d'); $date1=date('Y-m-d h:i:s'); $date2=date('h:i:s'); $date3=date('h'); $sql="SELECT * FROM location where user_id='$loc->user_id' and in_time LIKE '%$date%'"; $results = DB::select($sql); if(empty($results)) { DB::table('location')->insert( array('user_id' => "$loc->user_id", 'lat' => "$loc->lat", 'lng' => "$loc->lng", 'in_time' =>$date1,'location_range'=>"$warehouse1",'type'=>'P','hours_stay'=>'00:00') ); } else{ if($date3>=10 && $date3<=19){ // DB::statement("update location set "); $time=$results[0]->hours_stay; $endTime = strtotime("+5 minutes", strtotime($time)); DB::update("update location set hours_stay='$endTime' set where user_id='$loc->user_id' and in_time LIKE '%$date%'"); } } } } } echo json_encode($loc1); } public function calculateDistanceBetweenTwoPoints($latitudeOne='', $longitudeOne='', $latitudeTwo='', $longitudeTwo='',$distanceUnit ='',$round=false,$decimalPoints='') { if (empty($decimalPoints)) { $decimalPoints = '3'; } if (empty($distanceUnit)) { $distanceUnit = 'KM'; } $distanceUnit = strtolower($distanceUnit); $pointDifference = $longitudeOne - $longitudeTwo; $toSin = (sin(deg2rad($latitudeOne)) * sin(deg2rad($latitudeTwo))) + (cos(deg2rad($latitudeOne)) * cos(deg2rad($latitudeTwo)) * cos(deg2rad($pointDifference))); $toAcos = acos($toSin); $toRad2Deg = rad2deg($toAcos); $toMiles = $toRad2Deg * 60 * 1.1515; $toKilometers = $toMiles * 1.609344; $toNauticalMiles = $toMiles * 0.8684; $toMeters = $toKilometers * 1000; $toFeets = $toMiles * 5280; $toYards = $toFeets / 3; switch (strtoupper($distanceUnit)) { case 'ML'://miles $toMiles = ($round == true ? round($toMiles) : round($toMiles, $decimalPoints)); return $toMiles; break; case 'KM'://Kilometers $toKilometers = ($round == true ? round($toKilometers) : round($toKilometers, $decimalPoints)); return $toKilometers; break; case 'MT'://Meters $toMeters = ($round == true ? round($toMeters) : round($toMeters, $decimalPoints)); return $toMeters; break; case 'FT'://feets $toFeets = ($round == true ? round($toFeets) : round($toFeets, $decimalPoints)); return $toFeets; break; case 'YD'://yards $toYards = ($round == true ? round($toYards) : round($toYards, $decimalPoints)); return $toYards; break; case 'NM'://Nautical miles $toNauticalMiles = ($round == true ? round($toNauticalMiles) : round($toNauticalMiles, $decimalPoints)); return $toNauticalMiles; break; } } public function getUserRoute(Request $request){ $fromdate = $request->mydate.$request->fromTime; $todate = $request->mydate.$request->toTime; $from_date = date("Y-m-d H:i:s", strtotime($fromdate)); $to_date = date("Y-m-d H:i:s", strtotime($todate)); // $userRoutes = DB::table('track_users')->join('users','users.id','=','track_users.user_id')->select('track_users.lat as lat','track_users.lng as lng', 'users.name as name','track_users.updated_at as update_date_time')->whereDate('track_users.created_at', '=', $request->mydate)->where('track_users.user_id',$request->id)->get(); $userRoutes = DB::table('track_users')->join('users','users.id','=','track_users.user_id')->select('track_users.lat as lat','track_users.lng as lng', 'users.name as name','track_users.updated_at as update_date_time')->whereBetween('track_users.created_at', [$from_date, $to_date])->where('track_users.user_id',$request->id)->get(); $resLenth = count($userRoutes); $temVar=""; foreach($userRoutes as $key=>$value){ $temVar .= $value->lng.','.$value->lat.';'; if($key == $resLenth-1){ $temVar .= $value->lng.','.$value->lat; } } // tom tom api start $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => "https://api.tomtom.com/snapToRoads/1?key=GAsAx89SXt0DUaUVB7cdbyFjWkmRC83Z&points=$temVar", CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_TIMEOUT => 30000, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "GET", CURLOPT_HTTPHEADER => array( // Set Here Your Requesred Headers 'Content-Type: application/json', ), )); $response = curl_exec($curl); $err = curl_error($curl); curl_close($curl); if ($err) { //dd("error"); echo "cURL Error #:" . $err; } else { $points = json_decode($response); $totalData = []; if($resLenth > 2){ $points= (array)$points; foreach($points['route'] as $keys=>$values){ $values = (array)$values; $coordinates = $values['geometry']->coordinates; foreach($coordinates as $key=>$coordinate){ $data['lng'] = $coordinate[0]; $data['lat'] = $coordinate[1]; $data['name'] = $userRoutes[0]->name; //$data['update_date_time'] = "2023-02-15 17:55:09"; array_push($totalData,$data); } } } } return response()->json($totalData); } }