argument('user_id'); $month = (int) $this->argument('month'); $year = (int) $this->argument('year'); $this->info("Testing account data for User ID: {$userId}, Month: {$month}, Year: {$year}"); $this->line(''); // Lade User mit Account $user = User::with('account', 'user_level')->find($userId); if (! $user) { $this->error("User {$userId} not found"); return 1; } $this->info("User found: {$user->email}"); $this->info('Account ID: '.($user->account_id ?? 'NULL')); if ($user->account) { $this->info('Account loaded: YES'); $this->info('Account m_account: '.($user->account->m_account ?? 'NULL')); $this->info('Account first_name: '.($user->account->first_name ?? 'NULL')); $this->info('Account last_name: '.($user->account->last_name ?? 'NULL')); $this->info('Account birthday: '.($user->account->birthday ?? 'NULL')); $this->info('Account phone: '.($user->account->getPhoneNumber() ?? 'NULL')); } else { $this->warn('Account loaded: NO'); } $this->line(''); $this->info('Testing BusinessUserItemOptimized...'); // Erstelle Date Object $date = new stdClass; $date->month = $month; $date->year = $year; $date->start_date = "{$year}-{$month}-01 00:00:00"; $date->end_date = date('Y-m-t 23:59:59', strtotime("{$year}-{$month}-01")); // Teste BusinessUserItemOptimized $TreeCalcBot = new TreeCalcBotOptimized($date->month, $date->year, 'admin'); $TreeCalcBot->initBusinesslUserDetail($user, true); $businessUserItem = $TreeCalcBot->getItem(); $bUser = $businessUserItem->getBUser(); $this->line(''); $this->info('Results from BusinessUserItemOptimized:'); $this->info('m_account: '.($bUser->m_account ?? 'NULL')); $this->info('first_name: '.($bUser->first_name ?? 'NULL')); $this->info('last_name: '.($bUser->last_name ?? 'NULL')); $this->info('user_birthday: '.($bUser->user_birthday ?? 'NULL')); $this->info('user_phone: '.($bUser->user_phone ?? 'NULL')); $this->info('email: '.($bUser->email ?? 'NULL')); $this->line(''); $this->info('Sales Volume Fields:'); $this->info('sales_volume_KP_points: '.($bUser->sales_volume_KP_points ?? 'NULL')); $this->info('sales_volume_TP_points: '.($bUser->sales_volume_TP_points ?? 'NULL')); $this->info('sales_volume_points_shop: '.($bUser->sales_volume_points_shop ?? 'NULL')); $this->info('sales_volume_points_KP_sum: '.($bUser->sales_volume_points_KP_sum ?? 'NULL')); $this->info('sales_volume_points_TP_sum: '.($bUser->sales_volume_points_TP_sum ?? 'NULL')); $this->info('sales_volume_total: '.($bUser->sales_volume_total ?? 'NULL')); $this->info('sales_volume_total_shop: '.($bUser->sales_volume_total_shop ?? 'NULL')); $this->info('sales_volume_total_sum: '.($bUser->sales_volume_total_sum ?? 'NULL')); $this->line(''); $this->info('Commission Fields:'); $this->info('payline_points: '.($bUser->payline_points ?? 'NULL')); $this->info('commission_pp_total: '.($bUser->commission_pp_total ?? 'NULL')); $this->info('commission_shop_sales: '.($bUser->commission_shop_sales ?? 'NULL')); $this->info('commission_growth_total: '.($bUser->commission_growth_total ?? 'NULL')); // Test UserSalesVolume directly $this->line(''); $this->info('Testing UserSalesVolume data directly:'); $userSalesVolume = $user->getUserSalesVolume($month, $year, 'first'); if ($userSalesVolume) { $this->info("UserSalesVolume found: ID {$userSalesVolume->id}"); $this->info('month_KP_points: '.($userSalesVolume->month_KP_points ?? 'NULL')); $this->info('month_TP_points: '.($userSalesVolume->month_TP_points ?? 'NULL')); $this->info('month_shop_points: '.($userSalesVolume->month_shop_points ?? 'NULL')); $this->info('month_total_net: '.($userSalesVolume->month_total_net ?? 'NULL')); $this->info('month_shop_total_net: '.($userSalesVolume->month_shop_total_net ?? 'NULL')); } else { $this->warn("No UserSalesVolume found for month {$month}/{$year}"); // Check if any UserSalesVolume exists for this user $anyVolume = UserSalesVolume::where('user_id', $userId)->orderBy('year', 'desc')->orderBy('month', 'desc')->first(); if ($anyVolume) { $this->info("Latest UserSalesVolume found: {$anyVolume->month}/{$anyVolume->year}"); } else { $this->warn('No UserSalesVolume records found for this user at all'); } } $this->line(''); // Prüfe ob UserBusiness bereits gespeichert ist $existingUserBusiness = UserBusiness::where('user_id', $userId) ->where('month', $month) ->where('year', $year) ->first(); if ($existingUserBusiness) { $this->info('Existing UserBusiness found:'); $this->info('m_account: '.($existingUserBusiness->m_account ?? 'NULL')); $this->info('first_name: '.($existingUserBusiness->first_name ?? 'NULL')); $this->info('last_name: '.($existingUserBusiness->last_name ?? 'NULL')); $this->info('user_birthday: '.($existingUserBusiness->user_birthday ?? 'NULL')); $this->info('user_phone: '.($existingUserBusiness->user_phone ?? 'NULL')); $this->info('email: '.($existingUserBusiness->email ?? 'NULL')); } else { $this->info('No existing UserBusiness found for this period'); } if ($this->option('commissions')) { $this->line(''); $this->info('Testing UserBusiness Commissions to Credit...'); if ($existingUserBusiness) { try { $userPaymentCredits = new UserPaymentCredits($month, $year); $ret = $userPaymentCredits->addUserCreditItem($existingUserBusiness); $this->info('UserBusinessCredit calculated:'); $this->info('User ID: '.$ret->user_id); $this->info('Team Commission: '.$ret->commission_pp_total); $this->info('Shop Commission: '.$ret->commission_shop_sales); } catch (\Exception $e) { $this->error('Error calculating commissions: '.$e->getMessage()); } } else { $this->warn('No UserBusiness record found, cannot calculate commissions.'); } } $this->line(''); $this->info('✅ Test completed successfully'); return 0; } catch (\Exception $e) { $this->error('Test failed with error: '.$e->getMessage()); $this->error('Stack trace: '.$e->getTraceAsString()); return 1; } } }