SettingsHelper = new SettingsHelper(); $this->UserHelper = new UserHelper(); } public function internal(Request $request) { $user = Auth::user(); $company_users = $this->UserHelper->getCompanyUsers(); $company_users = $company_users->pluck('id')->toArray(); // Get all extensions for this company $conds = [ 'from' => Carbon::now()->startOfDay()->format('Y-m-d H:i:s'), 'to' => Carbon::now()->endOfDay()->format('Y-m-d H:i:s') ]; if ($request->has('daterange')) { $range = explode(' - ', $request->daterange); try { $conds['from'] = Carbon::createFromFormat('Y-m-d H:i:s', $range[0])->format('Y-m-d H:i:s'); $conds['to'] = Carbon::createFromFormat('Y-m-d H:i:s', $range[1])->format('Y-m-d H:i:s'); } catch (\Exception $e) {} } if ($request->ajax()) { $data = DB::table('asteriskcdrdb.cdr') ->leftJoin('users as caller', 'caller.id', '=', 'cdr.src') ->leftJoin('users as callee', 'callee.id', '=', 'cdr.dst') ->select( 'cdr.userfield', 'cdr.linkedid', 'cdr.calldate', 'cdr.src', 'caller.name as src_name', 'cdr.dst', 'callee.name as dst_name', 'cdr.duration', 'cdr.billsec', DB::raw('(cdr.duration - cdr.billsec) AS ringtime'), 'cdr.disposition' ) ->whereBetween('cdr.calldate', [$conds['from'], $conds['to']]) ->whereIn('cdr.src', $company_users) ->whereIn('cdr.dst', $company_users); return DataTables::of($data) ->addIndexColumn() ->addColumn('action', function($record){ if(\Auth::user()->hasPermissionTo('reporting.listen')){ $display_url = route('reporting.listen.page', ['id' => $record->linkedid]); if(is_null($record->userfield) || empty($record->userfield)){ $btn = 'Listen'; }elseif($record->userfield == 1){ $btn = 'Listen'; } return $btn; } return "Not Avail"; }) ->editColumn('calldate', function($row) { return date('Y-m-d h:i:s A',strtotime($row->calldate)); }) ->rawColumns(['action']) ->make(true); } $filter_area = view('reporting::widgets.filter_area'); $filter_area->with('conds', $conds); $filter_area->with('submit_route', route('reporting.internal')); $view = view('reporting::internal'); $view->with('filter_area', $filter_area); $view->with('conds', $conds); return $view; } }