middleware('admin'); } public function index() { $filter_members = UserSalesVolume::join('users', 'user_id', '=', 'users.id') ->groupBy('user_id')->join('user_accounts', 'account_id', '=', 'user_accounts.id') ->select('users.id', 'users.email', 'user_accounts.first_name', 'user_accounts.last_name')->get(); $this->setFilterVars(); $data = [ 'filter_months' => HTMLHelper::getTransMonths(), 'filter_years' => HTMLHelper::getYearRange(), 'filter_members' => $filter_members, 'filter_status_types' => UserSalesVolume::getTransStatusType(), ]; return view('admin.business.points', $data); } public function store(){ $data = Request::all(); if(!isset($data['action'])){ return back(); } if(!isset($data['change_member_key']) || $data['change_member_key'] !== config('mivita.edit_data_pass')){ \Session()->flash('alert-error', 'Das Passwort ist falsch.'); return back(); } if(!isset($data['is_checked_action'])){ \Session()->flash('alert-error', 'Änderung nicht bestätigt'); return back(); } if($data['action'] === 'add_user_sales_volume'){ SalesPointsVolume::addSalesPointsVolume($data); return back(); } if($data['action'] === 'edit_user_sales_volume'){ SalesPointsVolume::editSalesPointsVolume($data); return back(); } dd($data); return redirect(route('admin_business_points')); } private function setFilterVars(){ if(!session('points_filter_month')){ session(['points_filter_month' => intval(date('m'))]); } if(!session('points_filter_year')){ session(['points_filter_year' => intval(date('Y'))]); } session(['points_filter_member_id' => Request::get('points_filter_member_id')]); session(['points_filter_status_type_id' => Request::get('points_filter_status_type_id')]); if(Request::get('points_filter_month')){ session(['points_filter_month' => Request::get('points_filter_month')]); } if(Request::get('points_filter_year')){ session(['points_filter_year' => Request::get('points_filter_year')]); } } private function initSearch() { $this->setFilterVars(); //$query = UserSalesVolume::with('user', 'user.account')->with('shopping_order')->select('user_sales_volumes.*') $query = UserSalesVolume::join('users', 'user_id', '=', 'users.id')->join('user_accounts', 'account_id', '=', 'user_accounts.id') ->select('user_sales_volumes.*', 'users.email', 'user_accounts.m_account', 'user_accounts.first_name', 'user_accounts.last_name') ->where('user_sales_volumes.month', '=', Request::get('points_filter_month')) ->where('user_sales_volumes.year', '=', Request::get('points_filter_year')); if(Request::get('points_filter_member_id')){ $query->where('user_sales_volumes.user_id', '=', Request::get('points_filter_member_id')); } if(Request::get('points_filter_status_type_id')){ $query->where('user_sales_volumes.status', '=', Request::get('points_filter_status_type_id')); } return $query; } public function datatable(){ $query = $this->initSearch(); return \DataTables::eloquent($query) ->addColumn('id', function (UserSalesVolume $UserSalesVolume) { return ''; }) ->addColumn('order', function (UserSalesVolume $UserSalesVolume) { if($UserSalesVolume->shopping_order){ if($UserSalesVolume->status === 1){ return ''.$UserSalesVolume->shopping_order->id.''; } if($UserSalesVolume->status === 2 || $UserSalesVolume->status === 3){ return ''.$UserSalesVolume->shopping_order->id.''; } } return ''; }) ->addColumn('total_net', function (UserSalesVolume $UserSalesVolume) { return formatNumber($UserSalesVolume->total_net).' €'; }) ->addColumn('status_turnover', function (UserSalesVolume $UserSalesVolume) { return ''.$UserSalesVolume->getStatusTurnoverType().''; }) ->addColumn('status', function (UserSalesVolume $UserSalesVolume) { return ''.$UserSalesVolume->getStatusType().''; }) ->addColumn('status_points', function (UserSalesVolume $UserSalesVolume) { return ''.$UserSalesVolume->getStatusPointsType().''; }) ->addColumn('message', function (UserSalesVolume $UserSalesVolume) { return ''.$UserSalesVolume->message.''; }) ->addColumn('info', function (UserSalesVolume $UserSalesVolume) { return ''.$UserSalesVolume->info.''; }) ->filterColumn('m_account', function($query, $keyword) { if($keyword != ""){ $query->whereRaw("m_account LIKE ?", '%'.$keyword.'%'); } }) ->filterColumn('first_name', function($query, $keyword) { if($keyword != ""){ $query->whereRaw("first_name LIKE ?", '%'.$keyword.'%'); } }) ->filterColumn('last_name', function($query, $keyword) { if($keyword != ""){ $query->whereRaw("last_name LIKE ?", '%'.$keyword.'%'); } }) ->filterColumn('email', function($query, $keyword) { if($keyword != ""){ $query->whereRaw("email LIKE ?", '%'.$keyword.'%'); } }) ->orderColumn('id', 'id $1') ->orderColumn('order', 'order $1') ->orderColumn('status', 'status $1') ->orderColumn('message', 'message $1') ->orderColumn('info', 'info $1') ->orderColumn('total_net', 'total_net $1') ->orderColumn('email', 'email $1') ->orderColumn('m_account', 'm_account $1') ->orderColumn('first_name', 'first_name $1') ->orderColumn('last_name', 'last_name $1') ->rawColumns(['id', 'order', 'status_turnover', 'status', 'status_points', 'message', 'info', 'total_net']) ->make(true); } }