commonUtil = $commonUtil; $this->moduleUtil = $moduleUtil; } /** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function index() { if (! auth()->user()->can('user.view') && ! auth()->user()->can('user.create')) { abort(403, 'Unauthorized action.'); } if (request()->ajax()) { $business_id = request()->session()->get('user.business_id'); $users = User::where('business_id', $business_id) ->where('is_cmmsn_agnt', 1) ->select(['id', DB::raw("CONCAT(COALESCE(surname, ''), ' ', COALESCE(first_name, ''), ' ', COALESCE(last_name, '')) as full_name"), 'email', 'contact_no', 'address', 'cmmsn_percent', ]); return Datatables::of($users) ->addColumn( 'action', '@can("user.update")   @endcan @can("user.delete") @endcan' ) ->filterColumn('full_name', function ($query, $keyword) { $query->whereRaw("CONCAT(COALESCE(surname, ''), ' ', COALESCE(first_name, ''), ' ', COALESCE(last_name, '')) like ?", ["%{$keyword}%"]); }) ->removeColumn('id') ->rawColumns(['action']) ->make(true); } return view('sales_commission_agent.index'); } /** * Show the form for creating a new resource. * * @return \Illuminate\Http\Response */ public function create() { if (! auth()->user()->can('user.create')) { abort(403, 'Unauthorized action.'); } return view('sales_commission_agent.create'); } /** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(Request $request) { if (! auth()->user()->can('user.create')) { abort(403, 'Unauthorized action.'); } try { $input = $request->only(['surname', 'first_name', 'last_name', 'email', 'address', 'contact_no', 'cmmsn_percent', 'username', 'password']); $input['cmmsn_percent'] = $this->commonUtil->num_uf($input['cmmsn_percent']); $business_id = $request->session()->get('user.business_id'); $input['business_id'] = $business_id; $input['allow_login'] = ! empty($request->input('allow_login')) ? 1 : 0; $input['is_cmmsn_agnt'] = 1; $input['user_type'] = 'user_marketer'; if (! empty($input['allow_login']) && ! \Modules\Portal\Utils\PortalUtil::hasPortalSubscription($business_id, \Modules\Portal\Utils\PortalUtil::PORTAL_MARKETER, $this->moduleUtil)) { return ['success' => false, 'msg' => \Modules\Portal\Utils\PortalUtil::loginDeniedMessage(\Modules\Portal\Utils\PortalUtil::PORTAL_MARKETER)]; } if (empty($input['allow_login'])) { $input['username'] = null; $input['password'] = null; } elseif (! empty($input['password'])) { $input['password'] = \Hash::make($input['password']); } $user = User::create($input); $output = ['success' => true, 'msg' => __('lang_v1.commission_agent_added_success'), ]; } catch (\Exception $e) { \Log::emergency('File:'.$e->getFile().'Line:'.$e->getLine().'Message:'.$e->getMessage()); $output = ['success' => false, 'msg' => __('messages.something_went_wrong'), ]; } return $output; } /** * Show the form for editing the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function edit($id) { if (! auth()->user()->can('user.update')) { abort(403, 'Unauthorized action.'); } $user = User::findOrFail($id); return view('sales_commission_agent.edit') ->with(compact('user')); } /** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param int $id * @return \Illuminate\Http\Response */ public function update(Request $request, $id) { if (! auth()->user()->can('user.update')) { abort(403, 'Unauthorized action.'); } if (request()->ajax()) { try { $input = $request->only(['surname', 'first_name', 'last_name', 'email', 'address', 'contact_no', 'cmmsn_percent']); $input['cmmsn_percent'] = $this->commonUtil->num_uf($input['cmmsn_percent']); $business_id = $request->session()->get('user.business_id'); $user = User::where('id', $id) ->where('business_id', $business_id) ->where('is_cmmsn_agnt', 1) ->first(); $user->update($input); $output = ['success' => true, 'msg' => __('lang_v1.commission_agent_updated_success'), ]; } catch (\Exception $e) { \Log::emergency('File:'.$e->getFile().'Line:'.$e->getLine().'Message:'.$e->getMessage()); $output = ['success' => false, 'msg' => __('messages.something_went_wrong'), ]; } return $output; } } /** * Remove the specified resource from storage. * * @param int $id * @return \Illuminate\Http\Response */ public function destroy($id) { if (! auth()->user()->can('user.delete')) { abort(403, 'Unauthorized action.'); } if (request()->ajax()) { try { $business_id = request()->session()->get('user.business_id'); User::where('id', $id) ->where('business_id', $business_id) ->where('is_cmmsn_agnt', 1) ->delete(); $output = ['success' => true, 'msg' => __('lang_v1.commission_agent_deleted_success'), ]; } catch (\Exception $e) { \Log::emergency('File:'.$e->getFile().'Line:'.$e->getLine().'Message:'.$e->getMessage()); $output = ['success' => false, 'msg' => __('messages.something_went_wrong'), ]; } return $output; } } }