moduleUtil = $moduleUtil; $this->callQueueService = $callQueueService; } protected function authorizeAccess(): void { $business_id = request()->session()->get('user.business_id'); TelemarketingUtil::authorizeTelemarketing($this->moduleUtil, $business_id, 'crm.telemarketing.view_all_queue'); } public function index() { $this->authorizeAccess(); $business_id = request()->session()->get('user.business_id'); if (request()->ajax()) { $this->callQueueService->syncQueueForBusiness($business_id); $query = CrmCallQueue::where('crm_call_queues.business_id', $business_id) ->join('crm_phone_follow_ups', 'crm_call_queues.phone_follow_up_id', '=', 'crm_phone_follow_ups.id') ->leftJoin('users', 'crm_call_queues.locked_by', '=', 'users.id') ->select( 'crm_call_queues.*', 'crm_phone_follow_ups.mobile_number', 'crm_phone_follow_ups.company_name', 'crm_phone_follow_ups.contact_name', \DB::raw("CONCAT(COALESCE(users.first_name, ''), ' ', COALESCE(users.last_name, '')) as locked_user_name") ); if (! empty(request()->get('status'))) { $query->where('crm_call_queues.status', request()->get('status')); } return Datatables::of($query) ->editColumn('status', function ($row) { return ''.$row->status.''; }) ->rawColumns(['status']) ->make(true); } return view('crm::telemarketing.queue.index'); } public function sync() { $this->authorizeAccess(); $business_id = request()->session()->get('user.business_id'); $this->callQueueService->syncQueueForBusiness($business_id); return redirect()->back()->with('status', ['success' => 1, 'msg' => __('crm::lang.queue_synced')]); } }