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;
}
}