middleware('active.account'); } public function members() { $user = User::find(\Auth::user()->id); if ($user->isActiveShop() && $user->shop) { $shop_register_link = $user->shop->getSubdomain(false) . "/reg"; } else { $member_id = 'm' . ($user->id + config('mivita.add_number_id')); $shop_register_link = config('app.protocol') . config('app.domain') . config('app.tld_care') . '/reg/' . $member_id; } $data = [ 'shop_register_link' => $shop_register_link ]; return view('user.team.members', $data); } public function structure() { $user = User::find(\Auth::user()->id); $this->setFilterVars(); $TreeCalcBot = new TreeCalcBot(session('team_user_filter_month'), session('team_user_filter_year'), 'member'); $TreeCalcBot->initStructureUser($user->id); //for testing //$TreeCalcBot->initUser(56); $data = [ 'filter_months' => HTMLHelper::getTransMonths(), 'filter_years' => HTMLHelper::getYearRange(2022), 'TreeCalcBot' => $TreeCalcBot, ]; return view('user.team.structure', $data); } public function points() { $this->setFilterVars(); $user = User::find(\Auth::user()->id); $userSalesVolume = $user->getUserSalesVolume(intval(session('team_user_points_filter_month')), intval(session('team_user_points_filter_year')), 'first'); $data = [ 'userSalesVolume' => $userSalesVolume, 'filter_months' => HTMLHelper::getTransMonths(), 'filter_years' => HTMLHelper::getYearRange(2022), ]; return view('user.team.points', $data); } public function export() { $user = User::find(\Auth::user()->id); if (!$user->isVIP()) { abort(404); } $ExportBot = new ExportBot('member'); $ExportBot->initStructureUser($user, 'list'); //tree or list $data = [ 'ExportBot' => $ExportBot, ]; return view('user.team.export', $data); } public function userTeamExport() { if (Request::get('action') === "export") { $user = User::find(\Auth::user()->id); $ExportBot = new ExportBot('member'); $ExportBot->initStructureUser($user, 'list'); //tree or list $columns = []; $filename = __('team.filename_export') . date('Y-m-d-H-i-s'); $headers = array( __('tables.line'), __('tables.level'), __('tables.email'), __('tables.firstname'), __('tables.lastname'), __('tables.address'), __('tables.addition'), __('tables.postcode'), __('tables.city'), __('tables.country'), __('tables.phone'), __('tables.mobil'), __('tables.birthday'), __('tables.partner_since'), __('tables.account'), __('tables.account_to'), __('tables.sponsor'), ); if (isset($ExportBot->user_list->childs)) { foreach ($ExportBot->user_list->childs as $child) { $columns[] = array( __('tables.line') => $child->line, __('tables.level') => $child->level_name, __('tables.email') => $child->email, __('tables.firstname') => $child->first_name, __('tables.lastname') => $child->last_name, __('tables.address') => $child->address, __('tables.addition') => $child->address_2, __('tables.postcode') => $child->zipcode, __('tables.city') => $child->city, __('tables.country') => $child->country_id, __('tables.phone') => $child->phone, __('tables.mobil') => $child->mobil, __('tables.birthday') => $child->birthday, __('tables.partner_since') => $child->partner_since, __('tables.account') => ($child->active_account == 1 ? __('yes') : __('no')), __('tables.account_to') => $child->payment_account_date, __('tables.sponsor') => $child->sponsor_name, ); } } return Excel::download(new UserTeamExport($columns, $headers), $filename . '.xls'); } } private function setFilterVars() { if (!session('team_user_filter_month')) { session(['team_user_filter_month' => intval(date('m'))]); } if (!session('team_user_filter_year')) { session(['team_user_filter_year' => intval(date('Y'))]); } if (!session('team_user_points_filter_month')) { session(['team_user_points_filter_month' => intval(date('m'))]); } if (!session('team_user_points_filter_year')) { session(['team_user_points_filter_year' => intval(date('Y'))]); } if (Request::get('team_user_filter_month')) { session(['team_user_filter_month' => Request::get('team_user_filter_month')]); } if (Request::get('team_user_filter_year')) { session(['team_user_filter_year' => Request::get('team_user_filter_year')]); } if (Request::get('team_user_points_filter_month')) { session(['team_user_points_filter_month' => Request::get('team_user_points_filter_month')]); } if (Request::get('team_user_points_filter_year')) { session(['team_user_points_filter_year' => Request::get('team_user_points_filter_year')]); } } private function initSearchPoints() { $this->setFilterVars(); $user_id = \Auth::user()->id; $query = UserSalesVolume::with('user', 'user.account')->with('shopping_order')->select('user_sales_volumes.*') ->where('user_sales_volumes.user_id', '=', $user_id) ->where('user_sales_volumes.month', '=', Request::get('team_user_points_filter_month')) ->where('user_sales_volumes.year', '=', Request::get('team_user_points_filter_year')); return $query; } public function datatablePoints() { $query = $this->initSearchPoints(); return \DataTables::eloquent($query) ->addColumn('order', function (UserSalesVolume $UserSalesVolume) { if ($UserSalesVolume->shopping_order) { if ($UserSalesVolume->status === 1 && $UserSalesVolume->shopping_order->auth_user_id === $UserSalesVolume->user_id) { return '' . $UserSalesVolume->shopping_order->id . ''; } if (($UserSalesVolume->status === 2 || $UserSalesVolume->status === 3) && $UserSalesVolume->shopping_order->member_id === $UserSalesVolume->user_id) { 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('message', function (UserSalesVolume $UserSalesVolume) { return '' . $UserSalesVolume->message . ''; }) ->addColumn('info', function (UserSalesVolume $UserSalesVolume) { return '' . $UserSalesVolume->info . ''; }) ->orderColumn('id', 'id $1') ->orderColumn('order', 'order $1') ->orderColumn('status', 'status $1') ->orderColumn('message', 'message $1') ->orderColumn('info', 'info $1') ->rawColumns(['id', 'order', 'status_turnover', 'status', 'message', 'info', 'total_net']) ->make(true); } public function load() { $user = User::find(\Auth::user()->id); $userSalesVolume = $user->getUserSalesVolume(intval(session('team_user_points_filter_month')), intval(session('team_user_points_filter_year')), 'first'); $data = [ 'userSalesVolume' => $userSalesVolume, ]; $html = view('user.team._points_sum', $data)->render(); return response()->json(['response' => true, 'data' => $data, 'html' => $html]); } }