argument('customer_id')); if (! $customer) { $this->error('مشتری پیدا نشد.'); return 1; } $referrer = $customer->referrer(); $this->line("مشتری: #{$customer->id} {$customer->name} | referral_to_id={$customer->referral_to_id}"); $this->line($referrer ? "معرف: #{$referrer->id} {$referrer->name} | referral_id={$referrer->referral_id}" : 'معرف: یافت نشد'); if (! $referrer) { return 1; } $already = TransactionsAdmin::where('customer_id', $customer->id) ->where('customer_to_id', $referrer->id) ->whereIn('note', \App\Http\Controllers\Controller::accountingReferralRewardDescAliases()) ->exists(); if ($already) { $this->warn('پاداش معرف قبلاً واریز شده؛ کاری انجام نشد.'); return 0; } if ($this->option('dry-run')) { $this->info('dry-run: پاداش هنوز واریز نشده و آمادهٔ واریز است.'); return 0; } // جبران صریح: بدون وابستگی به has_page_earn_money / تعداد دقیق سفارش $requireOrder = (bool) $this->option('require-order'); $gifts->givePendingGifts($customer, $requireOrder); $given = TransactionsAdmin::where('customer_id', $customer->id) ->where('customer_to_id', $referrer->id) ->whereIn('note', \App\Http\Controllers\Controller::accountingReferralRewardDescAliases()) ->exists(); if ($given) { $this->info('پاداش معرف با موفقیت واریز شد.'); return 0; } $this->error('واریز انجام نشد (سفارش/سقف معرفی/مقدار gift_for_referrer را چک کنید).'); return 1; } }