'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);
}
}