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 $businessUserItem = new BusinessUserItemOptimized($date); $businessUserItem->makeUserFromModel($user, true); $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 = \App\Models\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; } } }