'nur Provisionen', 2 => 'alle']; public function __construct() { $this->middleware('admin'); } public function index() { $filter_members = UserBusiness::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_show' => $this->filter_show, ]; return view('admin.business.commissions', $data); } public function store(){ $data = Request::all(); dd($data); return redirect(route('admin_business_commissions')); } private function setFilterVars(){ if(!session('commissions_filter_month')){ session(['commissions_filter_month' => intval(date('m'))]); } if(!session('commissions_filter_year')){ session(['commissions_filter_year' => intval(date('Y'))]); } if(!session('commissions_filter_show')){ session(['commissions_filter_show' => 1]); } session(['commissions_filter_member_id' => Request::get('commissions_filter_member_id')]); if(Request::get('commissions_filter_month')){ session(['commissions_filter_month' => Request::get('commissions_filter_month')]); } if(Request::get('commissions_filter_year')){ session(['commissions_filter_year' => Request::get('commissions_filter_year')]); } if(Request::get('commissions_filter_show')){ session(['commissions_filter_show' => Request::get('commissions_filter_show')]); } } private function initSearch() { $this->setFilterVars(); $query = UserBusiness::select('user_businesses.*') ->where('user_businesses.month', '=', Request::get('commissions_filter_month')) ->where('user_businesses.year', '=', Request::get('commissions_filter_year')); if(intval(Request::get('commissions_filter_show')) === 1){ $query->where(function($q) { return $q->where('user_businesses.commission_pp_total', '>', 0) ->orWhere('user_businesses.commission_shop_sales', '>', 0); }); } if(Request::get('commissions_filter_member_id')){ $query->where('user_businesses.user_id', '=', Request::get('commissions_filter_member_id')); } return $query; } public function datatable(){ $query = $this->initSearch(); return \DataTables::eloquent($query) /* ->addColumn('id', function (UserSalesVolume $UserSalesVolume) { return ''; })*/ ->addColumn('commission_total', function (UserBusiness $UserBusiness) { $commission_total = $UserBusiness->commission_pp_total + $UserBusiness->commission_shop_sales; return $commission_total > 0 ? ''.formatNumber($commission_total).' €' : $commission_total.' €'; }) ->addColumn('commission_pp_total', function (UserBusiness $UserBusiness) { return $UserBusiness->commission_pp_total > 0 ? ''.formatNumber($UserBusiness->commission_pp_total).' €' : $UserBusiness->commission_pp_total.' €'; }) ->addColumn('commission_shop_sales', function (UserBusiness $UserBusiness) { return $UserBusiness->commission_shop_sales > 0 ? ''.formatNumber($UserBusiness->commission_shop_sales).' €' : $UserBusiness->commission_shop_sales.' €'; }) ->addColumn('active_account', function (UserBusiness $userBusiness) { return get_active_badge($userBusiness->active_account); }) ->addColumn('payment_account_date', function (UserBusiness $userBusiness) { return $userBusiness->active_date ? formatDate($userBusiness->active_date) : "-"; }) /* ->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('commission_pp_total', 'commission_pp_total $1') ->orderColumn('commission_shop_sales', 'commission_shop_sales $1') ->orderColumn('email', 'users.email $1') ->orderColumn('m_account', 'm_account $1') ->orderColumn('first_name', 'first_name $1') ->orderColumn('last_name', 'last_name $1') ->rawColumns(['id', 'commission_total', 'commission_pp_total', 'commission_shop_sales', 'active_account']) ->make(true); } }