File: //var/www/html/punjabcabs/Original_Backup/app/Http/Controllers/Resource/UserResource.php
<?php
namespace App\Http\Controllers\Resource;
use App\User;
use App\Provider;
use App\UserRequests;
use Illuminate\Http\Request;
use App\Helpers\Helper;
use Illuminate\Database\Eloquent\ModelNotFoundException;
use App\Http\Controllers\Controller;
use Exception;
use Setting;
class UserResource extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
$users = User::orderBy('created_at' , 'desc')->get();
return view('admin.users.index', compact('users'));
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
$providers = Provider::select('id','first_name','last_name','mobile')->get();
return view('admin.users.create', compact('providers'));
}
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function user_row(Request $request){
$columns = array(
0 =>'id',
1 =>'first_name',
2=> 'last_name',
3=> 'email',
4=> 'mobile',
5=> 'rating',
6=> 'wallet_balance',
7=> 'points',
8=> 'action',
);
$totalData = User::count();
$totalFiltered = $totalData;
$limit = $request->input('length');
$start = $request->input('start');
$order = $columns[$request->input('order.0.column')];
$dir = $request->input('order.0.dir');
if(empty($request->input('search.value')))
{
$users = User::offset($start)
->limit($limit)
->orderBy('id','desc')
->get();
}
else {
$search = $request->input('search.value');
$users = User::where('first_name','LIKE',"%{$search}%")
->orWhere('last_name', 'LIKE',"%{$search}%")
->orWhere('email', 'LIKE',"%{$search}%")
->orWhere('mobile', 'LIKE',"%{$search}%")
->offset($start)
->limit($limit)
->orderBy('id','desc')
->get();
$totalFiltered = User::where('first_name','LIKE',"%{$search}%")
->orWhere('last_name', 'LIKE',"%{$search}%")
->orWhere('email', 'LIKE',"%{$search}%")
->orWhere('mobile', 'LIKE',"%{$search}%")
->count();
}
$data = array();
if(!empty($users))
{
foreach ($users as $index => $user)
{
if($user->first_name != ''){ $first_name = $user->first_name;}else{$first_name = "";}
if($user->last_name != ''){ $last_name = $user->last_name;}else{$last_name = "";}
if($user->email != ''){ $email = $user->email;}else{$email = "";}
if($user->mobile != ''){ $mobile = $user->mobile;}else{$mobile = "";}
if($user->wallet_balance != ''){ $wallet_balance = currency().$user->wallet_balance;}else{$wallet_balance = "";}
$points = '<span class="label label-table label-primary">'.$user->cancel_points.'</span>';
$action = '<form action="'.route('admin.user.destroy', $user->id).'" method="POST">
'.csrf_field().'
<input type="hidden" name="_method" value="DELETE">
<a href="'. route('admin.user.request', $user->id).'" class="btn btn-info btn-rounded label-left b-a-0 waves-effect waves-light"><span class="btn-label"><i class="fa fa-search"></i></span>'.trans("admin.member.history").'</a>
<a href="'.route('admin.user.edit', $user->id).'" class="btn btn-success btn-rounded label-left b-a-0 waves-effect waves-light"><span class="btn-label"><i class="fa fa-pencil"></i></span>'.trans("admin.member.edit").'</a>
<button class="btn btn-danger btn-rounded label-left b-a-0 waves-effect waves-light" onclick="return confirm(`Are you sure?`)"><span class="btn-label"><i class="fa fa-trash"></i></span> '.trans("admin.member.delete").'</button>
</form>';
$nestedData['id'] = $start + 1;
$nestedData['first_name'] = $first_name;
$nestedData['last_name'] = $last_name;
$nestedData['email'] = $email;
$nestedData['mobile'] = $mobile;
$nestedData['rating'] = $user->rating;
$nestedData['wallet_balance'] = currency($user->wallet_balance);
$nestedData['points'] = $points;
$nestedData['action'] = $action;
$data[] = $nestedData;
$start++;
}
}
$json_data = array(
"draw" => intval($request->input('draw')),
"recordsTotal" => intval($totalData),
"recordsFiltered" => intval($totalFiltered),
"data" => $data
);
echo json_encode($json_data);
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
$this->validate($request, [
'first_name' => 'required|max:255',
'last_name' => 'required|max:255',
'email' => 'required|unique:users,email|email|max:255',
'mobile' => 'digits_between:6,13',
'picture' => 'mimes:jpeg,jpg,bmp,png|max:5242880',
'password' => 'required|min:6|confirmed',
]);
try{
$user = $request->all();
$user['payment_mode'] = 'CASH';
$user['password'] = bcrypt($request->password);
$user['mobile'] = Setting::get('country_code', '+91').$request->mobile;
$user['favourite_driver'] = implode(',',$request->favourite_driver);
if($request->hasFile('picture')) {
$user['picture'] = $request->picture->store('user/profile');
}
$user = User::create($user);
return back()->with('flash_success','User Details Saved Successfully');
}
catch (Exception $e) {
return back()->with('flash_error', 'User Not Found');
}
}
/**
* Display the specified resource.
*
* @param \App\User $user
* @return \Illuminate\Http\Response
*/
public function show($id)
{
try {
$user = User::findOrFail($id);
return view('admin.users.user-details', compact('user'));
} catch (ModelNotFoundException $e) {
return $e;
}
}
/**
* Show the form for editing the specified resource.
*
* @param \App\User $user
* @return \Illuminate\Http\Response
*/
public function edit($id)
{
try {
$user = User::findOrFail($id);
$providers = Provider::select('id','first_name','last_name','mobile')->get();
return view('admin.users.edit',compact('user','providers'));
} catch (ModelNotFoundException $e) {
return $e;
}
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param \App\User $user
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id)
{
$this->validate($request, [
'first_name' => 'required|max:255',
'last_name' => 'required|max:255',
'mobile' => 'digits_between:6,13',
'picture' => 'mimes:jpeg,jpg,bmp,png|max:5242880',
]);
try {
$user = User::findOrFail($id);
if($request->hasFile('picture')) {
Storage::delete($user->picture);
$user->picture = $request->picture->store('user/profile');
}
$user->first_name = $request->first_name;
$user->last_name = $request->last_name;
$user->mobile = Setting::get('country_code', '+91').$request->mobile;
$user->favourite_driver = implode(',',$request->favourite_driver);
$user->save();
return redirect()->route('admin.user.index')->with('flash_success', 'User Updated Successfully');
}
catch (ModelNotFoundException $e) {
return back()->with('flash_error', 'User Not Found');
}
}
/**
* Remove the specified resource from storage.
*
* @param \App\User $user
* @return \Illuminate\Http\Response
*/
public function destroy($id)
{
try {
User::find($id)->delete();
return back()->with('message', 'User deleted successfully');
}
catch (Exception $e) {
return back()->with('flash_error', 'User Not Found');
}
}
/**
* Remove the specified resource from storage.
*
* @param \App\Provider $provider
* @return \Illuminate\Http\Response
*/
public function request($id){
try{
$requests = UserRequests::where('user_requests.user_id',$id)
->RequestHistory()
->get();
$user_id = $id;
$provider_id = '';
return view('admin.request.index', compact('requests','user_id','provider_id'));
}
catch (Exception $e) {
return back()->with('flash_error','Something Went Wrong!');
}
}
}