'aktiv', 2 => 'nicht aktiv', 3 => 'alle']; private $month; private $year; public function __construct() { $this->middleware('admin'); } public function show() { $this->setFilterVars(); $data = [ 'filter_months' => HTMLHelper::$months, 'filter_years' => HTMLHelper::getYearRange(), 'filter_active' => $this->filter_active, ]; return view('admin.business.show', $data); } public function structure() { $this->setFilterVars(); $this->month = session('business_user_filter_month'); $this->year = session('business_user_filter_year'); $TreeCalcBot = new TreeCalcBot($this->month, $this->year, 'admin'); $TreeCalcBot->initStructureAdmin(); $data = [ 'filter_months' => HTMLHelper::$months, 'filter_years' => HTMLHelper::getYearRange(), 'TreeCalcBot' => $TreeCalcBot, ]; return view('admin.business.structure', $data); } public function userDetail($user_id) { $user = User::findOrFail($user_id); $this->setFilterVars(); $data = []; $data['month'] = session('business_user_filter_month'); $data['year'] = session('business_user_filter_year'); $TreeCalcBot = new TreeCalcBot($data['month'], $data['year'], 'admin'); $TreeCalcBot->initBusinesslUserDetail($user); if(!$TreeCalcBot->business_user){ abort(403, 'no user found'); } return view('admin.business.user_detail', compact('TreeCalcBot', 'user', 'data')); } public function userStore($user_id) { dd('function on: App\Console\Commands\BusinessStore'); /*$data = Request::all(); $user = User::findOrFail($data['user_id']); $TreeCalcBot = new TreeCalcBot($data['month'], $data['year'], 'admin'); $TreeCalcBot->initBusinesslUserDetail($user); if(!$TreeCalcBot->business_user){ abort(403, 'no user found'); } //$TreeCalcBot->storeBusinesslUser();*/ //return back(); } private function setFilterVars(){ if(!session('business_user_filter_month')){ session(['business_user_filter_month' => intval(date('m'))]); } if(!session('business_user_filter_year')){ session(['business_user_filter_year' => intval(date('Y'))]); } if(!session('business_user_filter_active')){ session(['business_user_filter_active' => 1]); } if(Request::get('business_user_filter_name')){ session(['business_user_filter_name' => Request::get('business_user_filter_name')]); } if(Request::get('business_user_filter_active')){ session(['business_user_filter_active' => Request::get('business_user_filter_active')]); } if(Request::get('business_user_filter_month')){ session(['business_user_filter_month' => Request::get('business_user_filter_month')]); } if(Request::get('business_user_filter_year')){ session(['business_user_filter_year' => Request::get('business_user_filter_year')]); } } public function userDatatable() { $this->month = Request::get('business_user_filter_month'); $this->year = Request::get('business_user_filter_year'); //only the currently month get from Users -> older month from UserBusiness //return $this->userCurrentlyDatatable(); if(TreeCalcBot::isFromStored($this->month, $this->year)){ return $this->userStoredDatatable(); }else{ return $this->userCurrentlyDatatable(); } } private function initStoredSearch($archive = false, $request = true) { $this->setFilterVars(); $query = UserBusiness::select('user_businesses.*')->where('month', $this->month)->where('year', $this->year); if(Request::get('business_user_filter_active')){ if(Request::get('business_user_filter_active') == 1){ $query->where('user_businesses.active_account', 1); } if(Request::get('business_user_filter_active') == 2){ $query->where('user_businesses.active_account', 0); } if(Request::get('business_user_filter_active') == 3){ //both -> payment_account only not null } } return $query; } private function userStoredDatatable() { $query = $this->initStoredSearch(); return \DataTables::eloquent($query) ->addColumn('id', function (UserBusiness $userBusiness) { return ''; //.''; }) ->addColumn('m_account', function (UserBusiness $userBusiness) { return $userBusiness->m_account; }) ->addColumn('user_level', function (UserBusiness $userBusiness) { return $userBusiness->user_level_name; }) ->addColumn('is_qual_kp', function (UserBusiness $userBusiness) { if($userBusiness->m_level_id){ $isQualKP = ($userBusiness->sales_volume_points_sum >= $userBusiness->qual_kp) ? true : false; return ' KD '.$userBusiness->qual_kp.''; } return '-'; }) ->addColumn('sales_volume_points', function (UserBusiness $userBusiness) { return '
'.$userBusiness->sales_volume_points_sum.'
'. 'E: '.$userBusiness->sales_volume_points.' | S: '.$userBusiness->sales_volume_points_shop.''; }) ->addColumn('sales_volume_total', function (UserBusiness $userBusiness) { return '
'.formatNumber($userBusiness->sales_volume_total_sum).' €
'. 'E: '.formatNumber($userBusiness->sales_volume_total).' | S: '.formatNumber($userBusiness->sales_volume_total_shop).''; }) ->addColumn('email', function (UserBusiness $userBusiness) { return $userBusiness->email; }) ->addColumn('first_name', function (UserBusiness $userBusiness) { return $userBusiness->first_name; }) ->addColumn('last_name', function (UserBusiness $userBusiness) { return $userBusiness->last_name; }) ->addColumn('sponsor', function (UserBusiness $userBusiness) { if($userBusiness->sponsor){ $sponsor = ""; if($userBusiness->sponsor->is_sponsor){ $sponsor .= $userBusiness->sponsor->first_name." ".$userBusiness->sponsor->last_name; $sponsor .= "  ".'
'; $sponsor .= ''.$userBusiness->sponsor->email; $sponsor .= ' | '.$userBusiness->sponsor->m_account; $sponsor .= ''; } return $sponsor; } return '-'; }) ->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('m_account', 'm_account $1') ->orderColumn('email', 'email $1') ->orderColumn('first_name', 'first_name $1') ->orderColumn('last_name', 'last_name $1') ->orderColumn('active_account', 'payment_account $1') ->rawColumns(['id', 'is_qual_kp', 'sales_volume_points', 'sales_volume_total', 'sponsor', 'active_account']) ->make(true); } private function initCurrentlySearch($archive = false, $request = true) { $this->setFilterVars(); $query = User::join('user_accounts', 'account_id', '=', 'user_accounts.id') ->select('users.*', 'user_accounts.m_account', 'user_accounts.first_name', 'user_accounts.last_name') ->where('users.deleted_at', '=', null) ->where('users.id', '!=', 1) ->where('users.admin', "<", 4) ->where('users.m_level', "!=", null) ->where('users.payment_account', "!=", null); // $query = User::with('account')->select('users.*') if(Request::get('business_user_filter_active')){ if(Request::get('business_user_filter_active') == 1){ $query->where('users.payment_account', ">=", now()); } if(Request::get('business_user_filter_active') == 2){ $query->where('users.payment_account', "<", now()); } if(Request::get('business_user_filter_active') == 3){ //both -> payment_account only not null } } return $query; } private function userCurrentlyDatatable() { $query = $this->initCurrentlySearch(); return \DataTables::eloquent($query) ->addColumn('id', function (User $user) { return ''; //.''; }) ->addColumn('m_account', function (User $user) { return $user->account ? $user->account->m_account : ''; }) ->addColumn('user_level', function (User $user) { return $user->user_level ? $user->user_level->name : ''; }) ->addColumn('is_qual_kp', function (User $user) { if($user->user_level){ $qual_kp = $user->user_level->qual_kp; $sales_volume_points_sum = $user->getUserSalesVolumeBy($this->month, $this->year, 'sales_volume_points_sum'); $isQualKP = ($sales_volume_points_sum >= $qual_kp) ? true : false; return ' KD '.$qual_kp.''; } return '-'; }) ->addColumn('sales_volume_points', function (User $user) { return '
'.$user->getUserSalesVolumeBy($this->month, $this->year, 'sales_volume_points_sum').'
'. 'E: '.$user->getUserSalesVolumeBy($this->month, $this->year, 'sales_volume_points').' | S: '.$user->getUserSalesVolumeBy($this->month, $this->year, 'sales_volume_points_shop').''; }) ->addColumn('sales_volume_total', function (User $user) { return '
'.formatNumber($user->getUserSalesVolumeBy($this->month, $this->year, 'sales_volume_total_sum')).' €
'. 'E: '.formatNumber($user->getUserSalesVolumeBy($this->month, $this->year, 'sales_volume_total')).' | S: '.formatNumber($user->getUserSalesVolumeBy($this->month, $this->year, 'sales_volume_total_shop')).''; }) ->addColumn('email', function (User $user) { return $user->email; }) ->addColumn('first_name', function (User $user) { return $user->account ? $user->account->first_name : ''; }) ->addColumn('last_name', function (User $user) { return $user->account ? $user->account->last_name : ''; }) ->addColumn('sponsor', function (User $user) { if($user->user_sponsor){ $sponsor = ""; if($user->user_sponsor->account){ $sponsor .= $user->user_sponsor->account->first_name." ".$user->user_sponsor->account->last_name; $sponsor .= "  ".'
'; } $sponsor .= ''.$user->user_sponsor->email; if($user->user_sponsor->account){ $sponsor .= ' | '.$user->user_sponsor->account->m_account; } $sponsor .= ''; return $sponsor; } return '-'; }) ->addColumn('active_account', function (User $user) { return get_active_badge($user->isActiveAccount()); }) ->addColumn('payment_account_date', function (User $user) { return $user->payment_account ? $user->getPaymentAccountDateFormat(false) : "-"; }) ->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', 'm_account $1') ->orderColumn('m_account', 'm_account $1') ->orderColumn('first_name', 'first_name $1') ->orderColumn('email', 'email $1') ->orderColumn('last_name', 'last_name $1') ->orderColumn('active_account', 'payment_account $1') ->rawColumns(['id', 'is_qual_kp', 'sales_volume_points', 'sales_volume_total', 'sponsor', 'active_account']) ->make(true); } }