I am working on a referral system that allows users to earn a certain percentage from their direct referrals, but after being promoted to "teamLead" by admin, they can now continuously earn from their structure up to a set level. My challenge is that I want the structure function to run only when the user role is == 4, which is teamLead.
This is the code structure for ordinary users.
if(!empty($user->referal))
{
$ref_bonuses = ref_set::all();
if(env('REF_TYPE') == 'once' && count($ref_bonuses) > 0)
{
$ref_cnt = env('REF_LEVEL_CNT');
$new_ref_user = $user->referal;
$itr_cnt = 0;
$refExist = ref::where('user_id', $user->id)->get();
if(count($refExist) == 0)
{
while ($itr_cnt <= $ref_cnt-1)
{
$refUser = User::where('username', $new_ref_user)->get();
if(count($refUser) > 0)
{
$ref = new ref;
$ref->user_id = $user->id;
$ref->username = $new_ref_user;
$ref->wdr = 0;
$ref->currency = env('CURRENCY');
$ref->amount = $capital * $ref_bonuses[$itr_cnt]->val;
$ref->level = $itr_cnt+1;
$ref->save();
$refUser[0]->ref_bal += $capital * $ref_bonuses[$itr_cnt]->val;
$new_ref_user = $refUser[0]->referal;
$refUser[0]->save();
}
$itr_cnt += 1;
if(env('REF_SYSTEM') == 'Single_level')
{
break;
}
}
}
}
Under the users' table, I have a column for roles. goldLead=2, support=3, teamLead=4; but I want only role 4 (teamLead) to earn from their structure, which means they can earn direct and indirect refer.
if (\DB::table('users')->where('role', 4)->exists()) {
if( count($ref_bonuses) > 0)
{
$ref_cnt = env('REF_LEVEL_CNT');
$new_ref_user = $user->referal;
$itr_cnt = 0;
while ($itr_cnt <= $ref_cnt-1)
{
$refUser = User::where('username', $new_ref_user)->get();
if(count($refUser) > 0)
{
$ref = new ref;
$ref->user_id = $user->id;
$ref->username = $new_ref_user;
$ref->wdr = 0;
$ref->currency = env('CURRENCY');
$ref->amount = $capital * $ref_bonuses[$itr_cnt]->val;
$ref->level = $itr_cnt+1;
$ref->save();
$refUser[0]->ref_bal += $capital * $ref_bonuses[$itr_cnt]->val;
$refUser[0]->save();
$new_ref_user = $refUser[0]->referal;
}
$itr_cnt += 1;
if(env('REF_SYSTEM') == 'Single_level')
{
break;
}
}
}
}
Thank you for help.