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.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.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]); } }