10.April 2026
This commit is contained in:
parent
a00c42e770
commit
f58c709945
208 changed files with 19280 additions and 2914 deletions
|
|
@ -8,6 +8,9 @@ use App\Cron\UserPaymentCredits;
|
|||
use App\Models\Setting;
|
||||
use App\Models\UserBusiness;
|
||||
use App\Models\UserBusinessStructure;
|
||||
use App\Models\UserSalesVolume;
|
||||
use App\Services\BusinessPlan\SalesPointsVolume;
|
||||
use App\User;
|
||||
use Illuminate\Console\Command;
|
||||
|
||||
class BusinessStoreOptimized extends Command
|
||||
|
|
@ -163,6 +166,10 @@ class BusinessStoreOptimized extends Command
|
|||
$this->userLevelUpdate();
|
||||
});
|
||||
|
||||
$this->executeWithErrorHandling('Monthly Qual-KP Bonus Points', function () {
|
||||
\Log::channel('cron')->info('RUN Command BusinessStoreOptimized Monthly Qual-KP Bonus Points');
|
||||
$this->assignMonthlyQualKpBonusPoints();
|
||||
});
|
||||
// Auskommentierte Prozesse bleiben inaktiv
|
||||
// $this->userCreatePaymentCreditsPDF();
|
||||
// $this->storeBusinessStructureUsersDetailPeriod(1, 6);
|
||||
|
|
@ -377,6 +384,58 @@ class BusinessStoreOptimized extends Command
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Schreibt ausgewählten Usern einmal pro Monat ihre Level-qual_kp als KP-Bonus gut.
|
||||
* Idempotent: Ein bereits vorhandener Eintrag für diesen Monat/Jahr wird übersprungen.
|
||||
*
|
||||
* @var array<int> User-IDs die den monatlichen Qual-KP-Bonus erhalten sollen
|
||||
*/
|
||||
private function assignMonthlyQualKpBonusPoints(): void
|
||||
{
|
||||
$bonusUserIds = [486];
|
||||
|
||||
$month = date('m');
|
||||
$year = date('Y');
|
||||
|
||||
$users = User::query()
|
||||
->whereIn('id', $bonusUserIds)
|
||||
->whereNotNull('m_level')
|
||||
->with('user_level')
|
||||
->get()
|
||||
->filter(fn (User $user) => $user->user_level && $user->user_level->qual_kp > 0);
|
||||
|
||||
$assigned = 0;
|
||||
$skipped = 0;
|
||||
|
||||
foreach ($users as $user) {
|
||||
$alreadyExists = UserSalesVolume::where('user_id', $user->id)
|
||||
->where('month', $month)
|
||||
->where('year', $year)
|
||||
->where('info', 'qual_kp_bonus')
|
||||
->exists();
|
||||
|
||||
if ($alreadyExists) {
|
||||
$skipped++;
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
SalesPointsVolume::addSalesPointsVolume([
|
||||
'user_id' => $user->id,
|
||||
'points' => $user->user_level->qual_kp,
|
||||
'status_points' => 2,
|
||||
'total_net' => 0,
|
||||
'status_turnover' => 1,
|
||||
'info' => 'qual_kp_bonus',
|
||||
]);
|
||||
|
||||
$assigned++;
|
||||
}
|
||||
|
||||
$this->info("Qual-KP Bonus: {$assigned} zugewiesen, {$skipped} übersprungen (bereits vorhanden)");
|
||||
\Log::channel('cron')->info("Qual-KP Bonus Points: assigned={$assigned}, skipped={$skipped}");
|
||||
}
|
||||
|
||||
private function logExecutionTime($message)
|
||||
{
|
||||
$diff = microtime(true) - $this->timeStart;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue