Field] = $key->Field; } foreach ($columns as $col) { if (request('filter') == $col) { $filter = request('filter'); $keyword = request('keyword'); $table_arr = ['staff_id']; if (in_array($col, $table_arr)) { $key = $this->get_filter_ids($filter, $keyword); if (!empty($key)) { $keyword = $key; } } $network_operators = $network_operators->where($col, 'like', '%'.$keyword.'%'); $queries[$col] = request('keyword'); } } $network_operators = $network_operators->with('account_manager_info', 'country_info')->orderBy('created_at', 'DESC')->paginate(40)->appends($queries); $data = [ 'page_title' => 'Network Operators', 'columns' => Arr::except($columns, $exclude_arr), 'network_operators' => $network_operators ]; return view('network_ops.index', $data); } /** * Show the form for creating a new resource. * * @return \Illuminate\Http\Response */ public function create() { $countries = Models\Country::pluck('en_short_name','alpha_2_code'); $account_manager = Models\SystemUser::pluck('name', 'id'); $data = [ 'page_title' => 'Create Network Operator', 'countries'=> $countries, 'account_manager' => $account_manager ]; return view('network_ops.create', $data); } /** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(Request $request) { $request->validate([ 'name' => 'required', 'country' => 'required', 'account_manager_id' => 'required', ]); $operator_arr = [ 'name' => $request->name, 'country' => $request->country, 'account_manager_id' => $request->account_manager_id ]; $saved = Models\NetworkOps::create($operator_arr); Session::flash('success_message', 'Network Operator successfully added'); return redirect(url('network_ops')); } /** * Display the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function show($id) { $operator_arr = Models\NetworkOps::find($id); $data = [ 'page_title' => 'Network Operator Show', 'operator_arr' => $operator_arr ]; return view('network_ops.show', $data); } /** * Show the form for editing the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function edit($id) { $network_arr = Models\NetworkOps::findOrFail($id); $countries = Models\Country::pluck('en_short_name','alpha_2_code'); $account_manager = Models\SystemUser::pluck('name', 'id'); $data = [ 'page_title' => 'Edit Network Operator', 'network_arr' => $network_arr, 'countries'=> $countries, 'account_manager' => $account_manager ]; return view('network_ops.edit', $data); } /** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param int $id * @return \Illuminate\Http\Response */ public function update(Request $request, $id) { $request->validate([ 'name' => 'required', 'country' => 'required', 'account_manager_id' => 'required', ]); $operator_update = Models\NetworkOps::find($id); $operator_update->name = $request->name; $operator_update->country = $request->country; $operator_update->account_manager_id = $request->account_manager_id; $result = $operator_update->save(); Session::flash('success_message', 'Network Operator successfully Updated'); return redirect(url('network_ops')); } /** * Remove the specified resource from storage. * * @param int $id * @return \Illuminate\Http\Response */ public function destroy($id) { $result = Models\NetworkOps::destroy($id); if (request()->ajax()) { $result_arr = ['code' => 1]; return response()->json($result_arr); } Session::flash('success_message', 'Network Operator successfully deleted!'); return redirect(route('network_ops.index')); } public function get_filter_ids($filter, $keyword){ switch ($filter) { case 'name': $id = Models\NetworkOps::where('name', 'like', "%$keyword%")->get(['id']); if ($id->isEmpty()) { return ''; } $step = json_decode($id); $the_id = $step[0]->id; return (count($step) > 0 ) ? $step[0]->id : ""; break; case 'country': $id = Models\Country::where('alpha_2_code', 'like', "%$keyword%")->orWhere('alpha_3_code', 'like', "%$keyword%")->orWhere('en_short_name', 'like', "%$keyword%")->get(['id']); if ($id->isEmpty()) { return ''; } $step = json_decode($id); $the_id = $step[0]->id; return (count($step) > 0 ) ? $step[0]->id : ""; break; case 'account_manager_id': $id = Models\SyatemUser::where('name', 'like', "%$keyword%")->get(['id']); if ($id->isEmpty()) { return ''; } $step = json_decode($id); $the_id = $step[0]->id; return (count($step) > 0 ) ? $step[0]->id : ""; break; default: return ''; break; } } }