date = $date; return $this; } public function makeUser(User $user){ $this->id = $user->id; $this->m_level = $user->m_level; $this->m_sponsor = $user->m_sponsor; $this->user_level = $user->user_level ? $user->user_level->name : ''; $this->active_account = $user->payment_account ? Carbon::parse($user->payment_account)->gt(Carbon::parse($this->date->start_date)) : false; $this->payment_account_date = $user->payment_account ? $user->getPaymentAccountDateFormat(false) : "-"; $this->active_date = $user->active_date ? $user->getActiveDateFormat() : "-"; $this->m_account = $user->account->m_account; $this->email = $user->email; $this->first_name = $user->account->first_name; $this->last_name = $user->account->last_name; $this->sales_volume_points = $user->getUserSalesVolumeBy($this->date->month, $this->date->year, 'sales_volume_points'); $this->sales_volume_points_shop = $user->getUserSalesVolumeBy($this->date->month, $this->date->year, 'sales_volume_points_shop'); $this->sales_volume_points_sum = $user->getUserSalesVolumeBy($this->date->month, $this->date->year, 'sales_volume_points_sum'); $this->sales_volume_total = $user->getUserSalesVolumeBy($this->date->month, $this->date->year, 'sales_volume_total'); $this->sales_volume_total_shop = $user->getUserSalesVolumeBy($this->date->month, $this->date->year, 'sales_volume_total_shop'); $this->sales_volume_total_sum = $user->getUserSalesVolumeBy($this->date->month, $this->date->year, 'sales_volume_total_sum'); if($user->user_level){ $this->margin = $user->user_level->margin; $this->margin_shop = $user->user_level->margin_shop; $this->qual_kp = $user->user_level->qual_kp; $this->qual_tp = $user->user_level->qual_tp; }else{ $this->margin = 0; $this->margin_shop = 0; $this->qual_kp = 0; $this->qual_tp = 0; } } public function addUserID(){ TreeCalcBot::addUserID($this->id); } public function isQualKP(){ return ($this->sales_volume_points_sum >= $this->qual_kp) ? true : false; } public function getRestQualKP(){ return $this->sales_volume_points_sum - $this->qual_kp; } public function checkSponsor(){ if($this->m_sponsor === null){ $this->m_sponsor_name = 'Keinen Sponsor zugewiesen'; return; } $user = User::find($this->m_sponsor); if($user){ if($user->account){ $this->m_sponsor_name = 'Sponsor: '.$user->account->first_name.' '.$user->account->last_name.' | '.$user->email.' | '.$user->account->m_account; }else{ $this->m_sponsor_name = 'Sponsor: '.$user->email; } return; } $this->m_sponsor_name = 'Sponsor wurde gelöscht.'; return; } public function readParentsUser(){ $users = User::with('account')->select('users.*') ->where('users.deleted_at', '=', null) ->where('users.id', '!=', 1) ->where('users.admin', "<", 4) ->where('users.m_level', "!=", null) ->where('users.m_sponsor', "=", $this->id) //<- need the id for parents / sponsors ->where('users.payment_account', "!=", null) ->where('users.active_date', "<=", $this->date->end_date) ->get(); if($users){ foreach($users as $user){ $TreeUserItem = new TreeUserItem($this->date); $TreeUserItem->makeUser($user); $TreeUserItem->addUserID(); $this->items[] = $TreeUserItem; } } foreach($this->items as $item){ $item->readParentsUser(); } } }