Viewing file: DriverController.php (20.16 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
namespace App\Http\Controllers;
use App\Models\Driver; use App\Models\Plan; use App\Models\User; use App\Models\Utility; use Illuminate\Http\Request; use Lab404\Impersonate\Impersonate; use Illuminate\Support\Facades\Hash; use Spatie\Permission\Models\Role; use File; use Illuminate\Support\Str;
class DriverController extends Controller { public function index(){ $requested_drivers = User::where('created_by',\Auth::user()->creatorId()) ->where('type','driver') ->where('email_verified_at',NULL)->count(); $drivers = User::where('type','driver')->where('created_by', '=', \Auth::user()->creatorId())->orderByDesc('created_at')->get(); return view('driver.index',compact('drivers','requested_drivers')); }
public function details($id){
$driver = User::where('type','driver')->where('created_by', '=', \Auth::user()->creatorId())->where('id', $id)->firstOrFail(); return view('driver.details',compact('driver')); }
public function downloadFile(Request $request){
$file=$request->file;
if(!$file){ return abort('404'); } if(!file_exists(storage_path('uploads/avatar/'.$file))){ return abort('404'); }
return response()->download(storage_path('uploads/avatar/'.$file));
}
public function create(){ return view('driver.create'); } public function store(Request $request){
$validator = \Validator::make( $request->all(), [ 'name' => 'required', 'email' => 'required|email|unique:users', ] ); if($validator->fails()) { $messages = $validator->getMessageBag();
return redirect()->back()->with('error', $messages->first()); } $objUser = \Auth::user()->creatorId(); $objUser = User::find($objUser); $plan = Plan::find($objUser->plan);
$role_nm = Role::findByName('driver'); $role_name = $role_nm->name;
$total_drivers= User::where('type', 'driver')->where('created_by',\Auth::user()->creatorId())->count(); $total_drivers=$total_drivers==0?0:$total_drivers + 1; $userPlan = \App\Models\Plan::getPlan(\Auth::user()->show_dashboard());
if($role_name=='driver'){
if ($userPlan && $userPlan->max_drivers != -1 && $plan->max_drivers < $total_drivers) { return redirect()->back()->with('error', __('Your driver limit is over, Please upgrade plan.')); }
$driver = new User(); $driver->name = $request->name; $driver->email = $request->email; $driver->phone_number = $request->phone_number; $driver->driver_language = $request->driver_language; $driver->driver_record = $request->driver_record; $driver->email_verified_at = now(); $driver->type = 'driver'; $driver->password = Hash::make($request->password);
if ($request->hasFile('driver_profile_image')) {
$filenameWithExt = $request->file('driver_profile_image')->getClientOriginalName(); $filename = pathinfo($filenameWithExt, PATHINFO_FILENAME); $extension = $request->file('driver_profile_image')->getClientOriginalExtension(); $fileNameToStore = $filename . '_' . time() . '.' . $extension; $settings = Utility::getStorageSetting(); if ($settings['storage_setting'] == 'local') { $dir = 'uploads/avatar/'; } else { $dir = 'uploads/avatar'; } $image_path = $dir . $driver['avatar'];
if(File::exists($image_path)) { File::delete($image_path); } $url = ''; $path = Utility::upload_file($request, 'driver_profile_image', $fileNameToStore, $dir, []); if ($path['flag'] == 1) { $url = $path['url']; } else { return redirect()->route('driver.index', \Auth::user()->id)->with('error', __($path['msg'])); }
}
if ($request->hasFile('license_info_file')) {
$filenameWithExt = $request->file('license_info_file')->getClientOriginalName(); $filename = pathinfo($filenameWithExt, PATHINFO_FILENAME); $extension = $request->file('license_info_file')->getClientOriginalExtension(); $license_info_file = $filename . '_' . time() . '.' . $extension; $settings = Utility::getStorageSetting(); if ($settings['storage_setting'] == 'local') { $dir = 'uploads/avatar/'; } else { $dir = 'uploads/avatar'; } $image_path = $dir . $driver['avatar'];
if(File::exists($image_path)) { File::delete($image_path); } $url = ''; $path = Utility::upload_file($request, 'license_info_file', $license_info_file, $dir, []); if ($path['flag'] == 1) { $url = $path['url']; } else { return redirect()->route('driver.index', \Auth::user()->id)->with('error', __($path['msg'])); }
}
if ($request->hasFile('insurance_info_file')) {
$filenameWithExt = $request->file('insurance_info_file')->getClientOriginalName(); $filename = pathinfo($filenameWithExt, PATHINFO_FILENAME); $extension = $request->file('insurance_info_file')->getClientOriginalExtension(); $insurance_info_file = $filename . '_' . time() . '.' . $extension; $settings = Utility::getStorageSetting(); if ($settings['storage_setting'] == 'local') { $dir = 'uploads/avatar/'; } else { $dir = 'uploads/avatar'; } $image_path = $dir . $driver['avatar'];
if(File::exists($image_path)) { File::delete($image_path); } $url = ''; $path = Utility::upload_file($request, 'insurance_info_file', $insurance_info_file, $dir, []); if ($path['flag'] == 1) { $url = $path['url']; } else { return redirect()->route('driver.index', \Auth::user()->id)->with('error', __($path['msg'])); }
}
if ($request->hasFile('driver_record_file')) {
$filenameWithExt = $request->file('driver_record_file')->getClientOriginalName(); $filename = pathinfo($filenameWithExt, PATHINFO_FILENAME); $extension = $request->file('driver_record_file')->getClientOriginalExtension(); $driver_record_file = $filename . '_' . time() . '.' . $extension; $settings = Utility::getStorageSetting(); if ($settings['storage_setting'] == 'local') { $dir = 'uploads/avatar/'; } else { $dir = 'uploads/avatar'; } $image_path = $dir . $driver['avatar'];
if(File::exists($image_path)) { File::delete($image_path); } $url = ''; $path = Utility::upload_file($request, 'driver_record_file', $driver_record_file, $dir, []); if ($path['flag'] == 1) { $url = $path['url']; } else { return redirect()->route('driver.index', \Auth::user()->id)->with('error', __($path['msg'])); }
}
$driver->license_info = $request->license_info; $driver->insurance_info = $request->insurance_info; if (!empty($request->driver_profile_image)) { $driver->profile_image = $fileNameToStore; }
if (!empty($request->license_info_file)) { $driver->license_info_file = $license_info_file; }
if (!empty($request->insurance_info_file)) { $driver->insurance_info_file = $insurance_info_file; }
if (!empty($request->driver_record_file)) { $driver->driver_record_file = $driver_record_file; }
$driver->created_by = \Auth::user()->creatorId(); $role_r = Role::findByName('driver'); $driver->assignRole($role_r); $driver->driver_status='active'; $driver->save();
$driver->access_token=$driver->createToken('authToken')->plainTextToken; $driver->save();
return redirect()->route('driver.index')->with('success', __('Driver successfully create.')); if ($request['type'] != 'client') { \App\Models\Utility::employeeDetails($user->id, \Auth::user()->creatorId()); }
}
} public function edit($id) { $driver = User::findOrFail($id);
if ($driver->created_by == \Auth::user()->creatorId()) { return view('driver.edit', compact('driver')); } }
public function update(Request $request){ $driver = User::findOrFail($request->id); if($driver->created_by == \Auth::user()->creatorId()) { $validator = \Validator::make( $request->all(), [ 'name' => 'required', 'email' => 'required|email|unique:users,email,' . $driver->id, ] ); if($validator->fails()) { $messages = $validator->getMessageBag();
return redirect()->back()->with('error', $messages->first()); }
$driver->name = $request->name; $driver->email = $request->email; $driver->phone_number = $request->phone_number; $driver->driver_language = $request->driver_language; $driver->driver_record = $request->driver_record; if($request->password){ $driver->password = Hash::make($request->password); } if ($request->hasFile('driver_profile_image')) {
$filenameWithExt = $request->file('driver_profile_image')->getClientOriginalName(); $filename = pathinfo($filenameWithExt, PATHINFO_FILENAME); $extension = $request->file('driver_profile_image')->getClientOriginalExtension(); $fileNameToStore = $filename . '_' . time() . '.' . $extension; $settings = Utility::getStorageSetting(); if ($settings['storage_setting'] == 'local') { $dir = 'uploads/avatar/'; } else { $dir = 'uploads/avatar'; } $image_path = $dir . $driver['avatar'];
if(File::exists($image_path)) { File::delete($image_path); } $url = ''; $path = Utility::upload_file($request, 'driver_profile_image', $fileNameToStore, $dir, []); if ($path['flag'] == 1) { $url = $path['url']; } else { return redirect()->route('driver.index', \Auth::user()->id)->with('error', __($path['msg'])); }
}
if ($request->hasFile('license_info_file')) {
$filenameWithExt = $request->file('license_info_file')->getClientOriginalName(); $filename = pathinfo($filenameWithExt, PATHINFO_FILENAME); $extension = $request->file('license_info_file')->getClientOriginalExtension(); $license_info_file = $filename . '_' . time() . '.' . $extension; $settings = Utility::getStorageSetting(); if ($settings['storage_setting'] == 'local') { $dir = 'uploads/avatar/'; } else { $dir = 'uploads/avatar'; } $image_path = $dir . $driver['avatar'];
if(File::exists($image_path)) { File::delete($image_path); } $url = ''; $path = Utility::upload_file($request, 'license_info_file', $license_info_file, $dir, []); if ($path['flag'] == 1) { $url = $path['url']; } else { return redirect()->route('driver.index', \Auth::user()->id)->with('error', __($path['msg'])); }
}
if ($request->hasFile('insurance_info_file')) {
$filenameWithExt = $request->file('insurance_info_file')->getClientOriginalName(); $filename = pathinfo($filenameWithExt, PATHINFO_FILENAME); $extension = $request->file('insurance_info_file')->getClientOriginalExtension(); $insurance_info_file = $filename . '_' . time() . '.' . $extension; $settings = Utility::getStorageSetting(); if ($settings['storage_setting'] == 'local') { $dir = 'uploads/avatar/'; } else { $dir = 'uploads/avatar'; } $image_path = $dir . $driver['avatar'];
if(File::exists($image_path)) { File::delete($image_path); } $url = ''; $path = Utility::upload_file($request, 'insurance_info_file', $insurance_info_file, $dir, []); if ($path['flag'] == 1) { $url = $path['url']; } else { return redirect()->route('driver.index', \Auth::user()->id)->with('error', __($path['msg'])); }
}
if ($request->hasFile('driver_record_file')) {
$filenameWithExt = $request->file('driver_record_file')->getClientOriginalName(); $filename = pathinfo($filenameWithExt, PATHINFO_FILENAME); $extension = $request->file('driver_record_file')->getClientOriginalExtension(); $driver_record_file = $filename . '_' . time() . '.' . $extension; $settings = Utility::getStorageSetting(); if ($settings['storage_setting'] == 'local') { $dir = 'uploads/avatar/'; } else { $dir = 'uploads/avatar'; } $image_path = $dir . $driver['avatar'];
if(File::exists($image_path)) { File::delete($image_path); } $url = ''; $path = Utility::upload_file($request, 'driver_record_file', $driver_record_file, $dir, []); if ($path['flag'] == 1) { $url = $path['url']; } else { return redirect()->route('driver.index', \Auth::user()->id)->with('error', __($path['msg'])); }
}
if (!empty($request->driver_profile_image)) { $driver->profile_image = $fileNameToStore; }
if (!empty($request->license_info_file)) { $driver->license_info_file = $license_info_file; }
if (!empty($request->insurance_info_file)) { $driver->insurance_info_file = $insurance_info_file; }
if (!empty($request->driver_record_file)) { $driver->driver_record_file = $driver_record_file; }
$driver->license_info = $request->license_info; $driver->insurance_info = $request->insurance_info; $driver->created_by = \Auth::user()->creatorId(); $role_r = Role::findByName('driver'); $driver->assignRole($role_r); $driver->save();
if(!$driver->access_token){ $driver->access_token=$driver->createToken('authToken')->plainTextToken; $driver->save(); } return redirect()->route('driver.index')->with('success', __('Driver successfully updated.')); } } public function destroy($id){ $driver = User::findOrFail($id); if($driver->created_by == \Auth::user()->creatorId()) { $driver->delete(); return redirect()->route('driver.index')->with('success', __('Driver successfully deleted.')); } else { return redirect()->back()->with('error', __('Permission denied.')); } }
public function LoginWithDriver(Request $request, User $user, $id) { $user = User::find($id); if ($user && auth()->check()) { Impersonate::take($request->user(), $user); $cookie=cookie('token', $user->access_token,60*24*365*2,null,null,null,false); return redirect()->route('driver.dashboard')->cookie($cookie); } } public function show(){
} public function driver_request(){ $auth = \Auth::user(); if($auth->type !='company'){ return redirect()->back()->with('error', __('Permission denied.')); } $requested_drivers = User::where('created_by',\Auth::user()->creatorId()) ->where('type','driver') ->whereNull('email_verified_at') ->whereNull('driver_status') ->orWhere('driver_status','!=','active') ->get(); $data['requested_drivers'] = $requested_drivers; $data['requested_driver_count'] = $requested_drivers->count(); return view('driver.driver_request',$data); } public function driver_request_status($id, Request $request){ $driver = User::where('created_by',\Auth::user()->creatorId()) ->where('type','driver') ->where('id',$id)->firstOrFail();
if($request->status=='approved'){ $driver->driver_status='active'; $driver->save(); }else{ $driver->driver_status='inactive'; $driver->save(); }
return redirect()->route('driver.request')->with('success', __('Driver Request status successfully updated.')); }
}
|