File: //var/www/html/punjabcabs/app/Http/Controllers/Resource/ProviderResource.php___18022020
<?php
namespace App\Http\Controllers\Resource;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Database\Eloquent\ModelNotFoundException;
use DB;
use Exception;
use Setting;
use Storage;
use Mail;
use Twilio;
use \Carbon\Carbon;
use App\Provider;
use App\UserRequestPayment;
use App\UserRequests;
use App\Helpers\Helper;
use App\ProviderDevice;
use App\ProviderService;
use App\ProviderApplication;
class ProviderResource extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index(Request $request)
{
$AllProviders = Provider::with('service','accepted','cancelled')
->orderBy('id', 'DESC');
if(request()->has('fleet')){
$providers = $AllProviders->where('fleet',$request->fleet)->get();
$fleet=$request->fleet;
}else{
$providers = $AllProviders->get();
$fleet='';
}
return view('admin.providers.index', compact('providers','fleet'));
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
return view('admin.providers.create');
}
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function provider_row(Request $request){
$columns = array(
0 =>'id',
1 =>'full_name',
2=> 'email',
3=> 'mobile',
4=> 'total_requests',
5=> 'accepted_requests',
6=> 'cancelled_requests',
7=> 'documents',
8=> 'action',
);
$AllProviders = Provider::with('service','totalrequest','accepted','cancelled');
if(request()->has('fleet')){
$providerslist = $AllProviders->where('fleet',$request->fleet);
}else{
$providerslist = $AllProviders;
}
$totalData = $providerslist->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')))
{
$providers = $providerslist->offset($start)
->limit($limit)
->orderBy('id','desc')
->get();
}
else {
$search = $request->input('search.value');
$providers = $providerslist->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 = $providerslist->where('first_name','LIKE',"%{$search}%")
->orWhere('last_name', 'LIKE',"%{$search}%")
->orWhere('email', 'LIKE',"%{$search}%")
->orWhere('mobile', 'LIKE',"%{$search}%")
->count();
}
$data = array();
if(!empty($providers))
{
foreach ($providers as $index => $provider)
{
if($provider->first_name != ''){ $first_name = $provider->first_name;}else{$first_name = "";}
if($provider->last_name != ''){ $last_name = $provider->last_name;}else{$last_name = "";}
if($provider->email != ''){ $email = $provider->email;}else{$email = "";}
if($provider->mobile != ''){ $mobile = $provider->mobile;}else{$mobile = "";}
if($provider->pending_documents() > 0 || $provider->service == null){
$documents = '<a class="btn btn-danger btn-rounded btn-block label-right waves-effect waves-light" href="'.route('admin.provider.document.index', $provider->id ).'">'.trans("admin.member.attention").'<span class="btn-label">'.$provider->pending_documents().'</span></a>';
}else{
$documents = '<a class="btn btn-success btn-rounded btn-block waves-effect waves-light" href="'.route('admin.provider.document.index', $provider->id ).'">'.trans("admin.member.all_set").'</a>';
}
if($provider->status == 'approved'){
$enable = '<a class="btn btn-danger btn-rounded btn-block waves-effect waves-light" href="'.route('admin.provider.disapprove', $provider->id ).'">'.trans("admin.member.disable").'</a>';
}else{
$enable = '<a class="btn btn-success btn-rounded btn-block waves-effect waves-light" href="'.route('admin.provider.approve', $provider->id ).'">'.trans("admin.member.enable").'</a>';
}
$button ='<button type="button"
class="btn btn-info btn-rounded btn-block dropdown-toggle"
data-toggle="dropdown">Action
<span class="caret"></span>
</button>
<ul class="dropdown-menu">
<li>
<a href="'.route('admin.provider.request', $provider->id).'" class="btn btn-default"><i class="fa fa-search"></i> '.trans("admin.member.history").'</a>
</li>
<li>
<a href="'.route('admin.provider.statement', $provider->id).'" class="btn btn-default"><i class="fa fa-account"></i> '.trans("admin.member.statement").'</a>
</li>
<li>
<a href="'.route('admin.provider.edit', $provider->id).'" class="btn btn-default"><i class="fa fa-pencil"></i> '.trans("admin.member.edit").'</a>
</li>
<li>
<form action="'.route('admin.provider.logout', $provider->id) .'" method="POST">
'.csrf_field().'
<input type="hidden" name="_method" value="POST">
<button class="btn btn-default look-a-log" onclick="return confirm(`Do you want to logout this provider?`)"><i class="fa fa-sign-out"></i> '.trans("admin.member.logout").'</button>
</form>
</li>
<li>
<form action="'.route('admin.provider.destroy', $provider->id).'" method="POST">
'.csrf_field().'
<input type="hidden" name="_method" value="DELETE">
<button class="btn btn-default look-a-like" onclick="return confirm(`Are you sure?`)"><i class="fa fa-trash"></i> '.trans("admin.member.delete").'</button>
</form>
</li>
</ul>';
$action = '<div class="input-group-btn">'.$enable.$button.'</div>';
$nestedData['id'] = $start + 1;
$nestedData['full_name'] = $first_name.''.$last_name;
$nestedData['email'] = $email;
$nestedData['mobile'] = $mobile;
$nestedData['total_requests'] = $provider->totalrequest->count();
$nestedData['accepted_requests'] = $provider->accepted->count();
$nestedData['cancelled_requests'] = $provider->cancelled->count();
$nestedData['documents'] = $documents;
$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);
}
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function track(Request $request)
{
$AllProviders = Provider::with('service')
->orderBy('id', 'DESC');
if(request()->has('fleet')){
$providers = $AllProviders->where('fleet',$request->fleet)->get();
$fleet=$request->fleet;
}else{
$providers = $AllProviders->get();
$fleet='';
}
return view('admin.providers.track', compact('providers','fleet'));
}
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function track_row(Request $request){
$columns = array(
0 =>'id',
1 =>'full_name',
2=> 'mobile',
3=> 'last_login',
4=> 'last_logout',
5=> 'login_status',
);
$AllProviders = Provider::with('service');
if(request()->has('fleet')){
$providerslist = $AllProviders->where('fleet',$request->fleet);
}else{
$providerslist = $AllProviders;
}
$totalData = $providerslist->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')))
{
$providers = $providerslist->offset($start)
->limit($limit)
->orderBy('id','desc')
->get();
}
else {
$search = $request->input('search.value');
$providers = $providerslist->where('first_name','LIKE',"%{$search}%")
->orWhere('last_name', 'LIKE',"%{$search}%")
->orWhere('mobile', 'LIKE',"%{$search}%")
->offset($start)
->limit($limit)
->orderBy('id','desc')
->get();
$totalFiltered = $providerslist->where('first_name','LIKE',"%{$search}%")
->orWhere('last_name', 'LIKE',"%{$search}%")
->orWhere('mobile', 'LIKE',"%{$search}%")
->count();
}
$data = array();
if(!empty($providers))
{
foreach ($providers as $index => $provider)
{
if($provider->first_name != ''){ $first_name = $provider->first_name;}else{$first_name = "";}
if($provider->last_name != ''){ $last_name = $provider->last_name;}else{$last_name = "";}
if($provider->mobile != ''){ $mobile = $provider->mobile;}else{$mobile = "";}
if($provider->login_at != ''){ $login_at = $provider->login_at;}else{$login_at = "";}
if($provider->logout_at != ''){ $logout_at = $provider->logout_at;}else{$logout_at = "";}
if($provider->service){
if($provider->login_status == 1){
$login_status = '<label class="btn btn-sm btn-rounded btn-primary waves-effect waves-light">'.trans("admin.member.yes").'</label>';
}else{
$login_status = '<label class="btn btn-rounded btn-sm btn-warning waves-effect waves-light">'.trans("admin.member.no").'</label>';
}
}else{
$login_status = '<label class="btn btn-rounded btn-sm btn-warning waves-effect waves-light">'.trans("admin.member.no").'</label>';
}
$nestedData['id'] = $start + 1;
$nestedData['full_name'] = $first_name.''.$last_name;
$nestedData['mobile'] = $mobile;
$nestedData['last_login'] = $login_at;
$nestedData['last_logout'] = $logout_at;
$nestedData['login_status'] = $login_status;
$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:providers,email|email|max:255',
'mobile' => 'digits_between:6,13',
'avatar' => 'mimes:jpeg,jpg,bmp,png|max:5242880',
'password' => 'required|min:6|confirmed',
]);
try{
$provider = $request->all();
$provider['password'] = bcrypt($request->password);
$provider['mobile'] = Setting::get('country_code', '+91').$request->mobile;
if($request->hasFile('avatar')) {
$provider['avatar'] = $request->avatar->store('provider/profile');
}
$provider = Provider::create($provider);
return back()->with('flash_success','Provider Details Saved Successfully');
}
catch (Exception $e) {
return back()->with('flash_error', 'Provider Not Found');
}
}
/**
* Display the specified resource.
*
* @param \App\Provider $provider
* @return \Illuminate\Http\Response
*/
public function show($id)
{
try {
$provider = Provider::findOrFail($id);
return view('admin.providers.provider-details', compact('provider'));
} catch (ModelNotFoundException $e) {
return $e;
}
}
/**
* Show the form for editing the specified resource.
*
* @param \App\Provider $provider
* @return \Illuminate\Http\Response
*/
public function edit($id)
{
try {
$provider = Provider::findOrFail($id);
return view('admin.providers.edit',compact('provider'));
} catch (ModelNotFoundException $e) {
return $e;
}
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param \App\Provider $provider
* @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',
'avatar' => 'mimes:jpeg,jpg,bmp,png|max:5242880',
]);
try {
$provider = Provider::findOrFail($id);
if($request->hasFile('avatar')) {
if($provider->avatar) {
Storage::delete($provider->avatar);
}
$provider->avatar = $request->avatar->store('provider/profile');
}
$provider->first_name = $request->first_name;
$provider->last_name = $request->last_name;
$provider->printer_no = $request->printer_no;
$provider->mobile = Setting::get('country_code', '+91').$request->mobile;
$provider->save();
return redirect()->route('admin.provider.index')->with('flash_success', 'Provider Updated Successfully');
}
catch (ModelNotFoundException $e) {
return back()->with('flash_error', 'Provider Not Found');
}
}
/**
* Remove the specified resource from storage.
*
* @param \App\Provider $provider
* @return \Illuminate\Http\Response
*/
public function destroy($id)
{
try {
Provider::find($id)->delete();
return back()->with('message', 'Provider deleted successfully');
}
catch (Exception $e) {
return back()->with('flash_error', 'Provider Not Found');
}
}
/**
* Remove the specified resource from storage.
*
* @param \App\Provider $provider
* @return \Illuminate\Http\Response
*/
public function approve($id)
{
try {
$Provider = Provider::findOrFail($id);
if($Provider->service) {
if($Provider->service->license_status ==2){
return redirect()->route('admin.provider.document.index', $id)->with('flash_error', "Driver License certificate Expired");
}
if($Provider->service->insurance_status ==2){
return redirect()->route('admin.provider.document.index', $id)->with('flash_error', "Driver Insurance certificate Expired");
}
$Provider->update(['status' => 'approved']);
//sms and email----------------
$user = Provider::with('service')->findOrFail($id);
if(Setting::get('mail_enable', 0) == 1) {
Mail::send('emails.driver-approved', ['user' => $user], function ($message) use ($user){
$message->to($user->email, $user->first_name)->subject(config('app.name').' Request Approval');
});
}
if(Setting::get('sms_enable', 0) == 1) {
$mobile = $user->mobile;
$message = 'You have become the authorised driver of '.config('app.name').' Name:'.$user->first_name.' '.$user->first_name.', Phone:'.$user->mobile.', Service Number:'.$user->service->service_number.', Service Model:'.$user->service->service_model.'. Regards '.config('app.name');
try {
Twilio::message($mobile, $message);
} catch ( \Services_Twilio_RestException $e ) {
//return $e->getMessage();
}
}
//---------------------
return back()->with('flash_success', "Provider Approved");
} else {
return redirect()->route('admin.provider.document.index', $id)->with('flash_error', "Provider has not been assigned a service type!");
}
} catch (ModelNotFoundException $e) {
return back()->with('flash_error', "Something went wrong! Please try again later.");
}
}
/**
* Remove the specified resource from storage.
*
* @param \App\Provider $provider
* @return \Illuminate\Http\Response
*/
public function disapprove($id)
{
Provider::where('id',$id)->update(['status' => 'banned']);
return back()->with('flash_success', "Provider Disapproved");
}
/**
* Remove the specified resource from storage.
*
* @param \App\Provider $provider
* @return \Illuminate\Http\Response
*/
public function request($id){
try{
$requests = UserRequests::where('user_requests.provider_id',$id)
->RequestHistory()
->get();
$user_id = '';
$provider_id = $id;
return view('admin.request.index', compact('requests','user_id','provider_id'));
} catch (Exception $e) {
return back()->with('flash_error','Something Went Wrong!');
}
}
/**
* account statements.
*
* @param \App\Provider $provider
* @return \Illuminate\Http\Response
*/
public function statement($id){
try{
$Provider = Provider::find($id);
$providerid = $id;
$Joined = $Provider->created_at ? '- Joined '.$Provider->created_at->diffForHumans() : '';
$page = $Provider->first_name."'s Overall Statement ". $Joined;
return view('admin.providers.provider-content', compact('page','providerid'));
} catch (Exception $e) {
return back()->with('flash_error','Something Went Wrong!');
}
}
/**
* provider base statements rows.
*
* @param \App\Provider $provider
* @return \Illuminate\Http\Response
*/
public function provider_content(Request $request){
$columns = array(
0 =>'id',
1 =>'booking_id',
2=> 's_address',
3=> 'd_address',
4=> 'detail',
5=> 'created_at',
6=> 'status',
7=> 'payment_mode',
8=> 'total',
9=> 'commission',
10=> 'earned',
);
$fromdate = '';
$todate = Carbon::now();
$payment_type ='';
$tripstatus ='';
$id = $request->providerid;
if($request->fromdate !=''){
$fromdate = Helper::date_formatter($request->fromdate);
}
if($request->todate !=''){
$todate = Helper::date_formatter($request->todate);
}
if($request->has('payment')){
$payment_type = $request->payment;
}
if($request->has('tripstatus')){
$tripstatus = $request->tripstatus;
}
$main_detail = UserRequests::with('payment')
->where('provider_id',$id)
->where('created_at', '>=', $fromdate)
->where('created_at', '<', $todate)
->where('status', 'LIKE', '%'.$tripstatus.'%')
->where('payment_mode','LIKE', '%'.$payment_type.'%');
$cancel_rides = UserRequests::where('status','CANCELLED')
->where('provider_id',$id)
->where('created_at', '>=', $fromdate)
->where('created_at', '<', $todate)
->where('status', 'LIKE', '%'.$tripstatus.'%')
->where('payment_mode','LIKE', '%'.$payment_type.'%');
$revenue = UserRequestPayment::whereHas('request', function($query) use($id) {
$query->where('provider_id', $id );
})->select(\DB::raw(
'SUM(total) as overall, SUM(commision) as commission'
))->where('created_at', '>=', $fromdate)
->where('created_at', '<', $todate)->get();
$total_cancel = $cancel_rides->count();
$total_revenue = currency($revenue[0]->overall);
$total_commission = currency($revenue[0]->commission);
$totalData = $main_detail->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')))
{
$rides = $main_detail
->offset($start)
->limit($limit)
->orderBy('id','desc')
->get();
}
else {
$search = $request->input('search.value');
$rides = $main_detail
->where('booking_id','LIKE',"%{$search}%")
->orWhere('s_address', 'LIKE',"%{$search}%")
->orWhere('d_address', 'LIKE',"%{$search}%")
->orWhere('created_at', 'LIKE',"%{$search}%")
->offset($start)
->limit($limit)
->orderBy('id','desc')
->get();
$totalFiltered = $main_detail
->where('booking_id','LIKE',"%{$search}%")
->orWhere('s_address', 'LIKE',"%{$search}%")
->orWhere('d_address', 'LIKE',"%{$search}%")
->orWhere('created_at', 'LIKE',"%{$search}%")
->count();
}
$data = array();
if(!empty($rides))
{
foreach ($rides as $index => $ride)
{
$view = route('admin.requests.show',$ride->id);
if($ride->s_address != ''){ $s_address = $ride->s_address;}else{$s_address = "Not Provided";}
if($ride->d_address != ''){ $d_address = $ride->d_address;}else{$d_address = "Not Provided";}
if($ride->status != 'CANCELLED'){ $detail = '<a class="text-primary" href="'.$view.'"><div class="label label-table label-info">'.trans("admin.member.view").'</div></a>'; }else{$detail= '<span>'.trans("admin.member.no_details_found").'</span>'; }
if($ride->status == "COMPLETED"){$status = '<span class="label label-table label-success">'.$ride->status.'</span>';}
elseif($ride->status == "CANCELLED"){$status = '<span class="label label-table label-danger">'.$ride->status.'</span>';}
else{$status = '<span class="label label-table label-primary">'.$ride->status.'</span>';}
$nestedData['id'] = $start + 1;
$nestedData['booking_id'] = $ride->booking_id;
$nestedData['s_address'] = $s_address;
$nestedData['d_address'] = $d_address;
$nestedData['detail'] = $detail;
$nestedData['created_at'] = date('d M Y',strtotime($ride->created_at));
$nestedData['status'] = $status;
$nestedData['payment_mode'] = $ride->payment_mode;
$nestedData['total'] = currency($ride->payment['total']);
$nestedData['commission'] = currency($ride->payment['commision']);
$nestedData['earned'] = currency($ride->payment['total'] - $ride->payment['commision']);
$data[] = $nestedData;
$start++;
}
}
$percentage = 0.00;
if($total_cancel != 0){
$percentage = round($total_cancel / $totalFiltered, 2);
}
$json_data = array(
"draw" => intval($request->input('draw')),
"recordsTotal" => intval($totalData),
"recordsFiltered" => intval($totalFiltered),
"data" => $data,
"cancel_rides" => $total_cancel,
"revenue" => $total_revenue,
"commission" => $total_commission,
"percentage" => $percentage
);
echo json_encode($json_data);
}
public function Accountstatement($id){
try{
$Provider = Provider::find($id);
$providerid = $id;
$Joined = $Provider->created_at ? '- Joined '.$Provider->created_at->diffForHumans() : '';
$page = $Provider->first_name."'s Overall Statement ". $Joined;
return view('account.providers.provider-content', compact('page','providerid'));
} catch (Exception $e) {
return back()->with('flash_error','Something Went Wrong!');
}
}
/**
* provider base statements rows.
*
* @param \App\Provider $provider
* @return \Illuminate\Http\Response
*/
public function account_content(Request $request){
$columns = array(
0 =>'id',
1 =>'booking_id',
2=> 's_address',
3=> 'd_address',
4=> 'detail',
5=> 'created_at',
6=> 'status',
7=> 'payment_mode',
8=> 'total',
9=> 'commission',
10=> 'earned',
);
$fromdate = '';
$todate = Carbon::now();
$payment_type ='';
$tripstatus ='';
$id = $request->providerid;
if($request->fromdate !=''){
$fromdate = Helper::date_formatter($request->fromdate);
}
if($request->todate !=''){
$todate = Helper::date_formatter($request->todate);
}
if($request->has('payment')){
$payment_type = $request->payment;
}
if($request->has('tripstatus')){
$tripstatus = $request->tripstatus;
}
$main_detail = UserRequests::with('payment')
->where('provider_id',$id)
->where('created_at', '>=', $fromdate)
->where('created_at', '<', $todate)
->where('status', 'LIKE', '%'.$tripstatus.'%')
->where('payment_mode','LIKE', '%'.$payment_type.'%');
$cancel_rides = UserRequests::where('status','CANCELLED')
->where('provider_id',$id)
->where('created_at', '>=', $fromdate)
->where('created_at', '<', $todate)
->where('status', 'LIKE', '%'.$tripstatus.'%')
->where('payment_mode','LIKE', '%'.$payment_type.'%');
$revenue = UserRequestPayment::whereHas('request', function($query) use($id) {
$query->where('provider_id', $id );
})->select(\DB::raw(
'SUM(total) as overall, SUM(commision) as commission'
))->where('created_at', '>=', $fromdate)
->where('created_at', '<', $todate)->get();
$total_cancel = $cancel_rides->count();
$total_revenue = currency($revenue[0]->overall);
$total_commission = currency($revenue[0]->commission);
$totalData = $main_detail->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')))
{
$rides = $main_detail
->offset($start)
->limit($limit)
->orderBy('id','desc')
->get();
}
else {
$search = $request->input('search.value');
$rides = $main_detail
->where('booking_id','LIKE',"%{$search}%")
->orWhere('s_address', 'LIKE',"%{$search}%")
->orWhere('d_address', 'LIKE',"%{$search}%")
->orWhere('created_at', 'LIKE',"%{$search}%")
->offset($start)
->limit($limit)
->orderBy('id','desc')
->get();
$totalFiltered = $main_detail
->where('booking_id','LIKE',"%{$search}%")
->orWhere('s_address', 'LIKE',"%{$search}%")
->orWhere('d_address', 'LIKE',"%{$search}%")
->orWhere('created_at', 'LIKE',"%{$search}%")
->count();
}
$data = array();
if(!empty($rides))
{
foreach ($rides as $index => $ride)
{
$view = route('account.requests.show',$ride->id);
if($ride->s_address != ''){ $s_address = $ride->s_address;}else{$s_address = "Not Provided";}
if($ride->d_address != ''){ $d_address = $ride->d_address;}else{$d_address = "Not Provided";}
if($ride->status != 'CANCELLED'){ $detail = '<a class="text-primary" href="'.$view.'"><div class="label label-table label-info">'.trans("admin.member.view").'</div></a>'; }else{$detail= '<span>'.trans("admin.member.no_details_found").'</span>'; }
if($ride->status == "COMPLETED"){$status = '<span class="label label-table label-success">'.$ride->status.'</span>';}
elseif($ride->status == "CANCELLED"){$status = '<span class="label label-table label-danger">'.$ride->status.'</span>';}
else{$status = '<span class="label label-table label-primary">'.$ride->status.'</span>';}
$nestedData['id'] = $start + 1;
$nestedData['booking_id'] = $ride->booking_id;
$nestedData['s_address'] = $s_address;
$nestedData['d_address'] = $d_address;
$nestedData['detail'] = $detail;
$nestedData['created_at'] = date('d-m-Y',strtotime($ride->created_at));
$nestedData['status'] = $status;
$nestedData['payment_mode'] = $ride->payment_mode;
$nestedData['total'] = currency($ride->payment['total']);
$nestedData['commission'] = currency($ride->payment['commision']);
$nestedData['earned'] = currency($ride->payment['total'] - $ride->payment['commision']);
$data[] = $nestedData;
$start++;
}
}
$percentage = 0.00;
if($total_cancel != 0){
$percentage = round($total_cancel / $totalFiltered, 2);
}
$json_data = array(
"draw" => intval($request->input('draw')),
"recordsTotal" => intval($totalData),
"recordsFiltered" => intval($totalFiltered),
"data" => $data,
"cancel_rides" => $total_cancel,
"revenue" => $total_revenue,
"commission" => $total_commission,
"percentage" => $percentage
);
echo json_encode($json_data);
}
public function logout($id)
{
try {
ProviderDevice::where('provider_id', $id)->update(['udid'=> '', 'token' => '']);
ProviderService::where('provider_id',$id)->update(['status' => 'offline']);
return back()->with('flash_success','Provider Logged out successfully');
} catch (Exception $e) {
return back()->with('flash_error','Something Went Wrong!');
}
}
/**
* Remove the specified resource from storage.
*
* @param \App\Provider $provider
* @return \Illuminate\Http\Response
*/
public function application($id){
try{
$Provider = Provider::findOrFail($id);
$ProviderApplication = ProviderApplication::where('provider_id',$id)->first();
return view('admin.providers.document.application', compact('Provider', 'ProviderApplication'));
} catch (Exception $e) {
return back()->with('flash_error','Something Went Wrong!');
}
}
}