'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::getTransMonths(), '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::getTransMonths(), '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 (!session('business_user_filter_depiction')) { session(['business_user_filter_depiction' => 'active']); } if (Request::get('business_user_filter_depiction')) { session(['business_user_filter_depiction' => Request::get('business_user_filter_depiction')]); } if (Request::get('business_user_filter_name')) { session(['business_user_filter_name' => Request::get('business_user_filter_name')]); } else { session(['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 '' . (config('app.debug') === true ? '' : ''); }) ->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 ' KU ' . $userBusiness->qual_kp . ''; } return '-'; }) ->addColumn('sales_volume_KP_points', function (UserBusiness $userBusiness) { return '
' . $userBusiness->sales_volume_points_sum . '
' . 'E: ' . $userBusiness->sales_volume_KP_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_KP_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 '' . (config('app.debug') === true ? '' : ''); }) ->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->getLang('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_KP_sum'); $isQualKP = ($sales_volume_points_sum >= $qual_kp) ? true : false; return ' KU ' . $qual_kp . ''; } return '-'; }) ->addColumn('sales_volume_KP_points', function (User $user) { return '
' . $user->getUserSalesVolumeBy($this->month, $this->year, 'sales_volume_points_KP_sum') . '
' . 'E: ' . $user->getUserSalesVolumeBy($this->month, $this->year, 'sales_volume_KP_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_KP_points', 'sales_volume_total', 'sponsor', 'active_account']) ->make(true); } }