ВОПРОС Начисления нескольким уровням рефералов

cristian2307

Местный
# Зачисляем пользователю
$result = $pdo->prepare("UPDATE `db_users_b` SET `money_b`=`money_b`+ :serebro,`to_referer`=`to_referer`+ :to_referer,`last_sbor` = :time,`insert_sum`=`insert_sum`+ :amount WHERE `id` = :user_id");
$result->execute(array(
'serebro' => $serebro,
'to_referer'=>$to_referer,
'time' => time(),
'amount' => $amount,
'user_id' => $user_id
));
$result = $pdo->prepare("UPDATE `db_users_b` SET `money_p`=`money_p`+ :to_referer,`from_referals`=`from_referals`+ :from_referals WHERE `id` = :referer_id");
$result->execute(array(
'to_referer' => $to_referer,
'from_referals' => $to_referer,
'referer_id' => $referer_id
));


У меня в базе 3 уровня рефералов, но при вставке баланса он учитывает только to_referer и не учитывает to_referer2 и to_referer3, что мне сделать, чтобы % начислялся и в остальных 2-х уровнях?

заранее спасибо.

Если вы поможете мне и это исправит ошибку, я могу дать 200 рублей тому, кто мне помог!
 
Последнее редактирование:

cristian2307

Местный
PHP:
<?PHP include("pages/account/head/_head_lk.php");?>
<?PHP
 if (!defined('AlexMoon') || AlexMoon !== true) { Header('Location: /404'); return; }
?>

<style>
[readonly] {
    background-color: #f5f5f5;
    border: solid 1px #a8a8a8;
}

textarea[readonly]:focus { /* WebKit: Google Chrome, Opera Next, Safari, etc. */
    outline: 0;
}
.form-control {
    -moz-border-radius: 2px;
    -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
    -webkit-border-radius: 2px;
    -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
    box-shadow: none;
    color: rgba(0, 0, 0, 0.6);
    font-size: 14px;
}
.form-control {
    display: block;
    width: 100%;
    padding: 6px 12px;
    font-size: 14px;
    line-height: 1.42857143;
    color: #456;
    background-color: #fff;
    background-image: none;
    -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075);
    box-shadow: inset 0 1px 1px rgba(0,0,0,.075);
    -webkit-transition: border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;
    -o-transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s;
    transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s;
}

</style> 


<script type="text/javascript">
$(document).ready(function() {
    $("#first-tab").addClass('btns');
});

function navigate_tabs(container, tab)
{   $(".e").css('display' , 'none');
    $(".b").css('display' , 'none');
    $(".c").css('display' , 'none');
    $(".d").css('display' , 'none');
    $(".a").css('display' , 'none');
    
    
    
    
    $("#"+tab).addClass('btns');
    $("."+container).show();
}
</script>

<div class="a">
<div  class="col-md-12">
<div style="background: rgba(0, 0, 0, .16);box-shadow: 0 6px 15px 0 rgba(0, 0, 0 , 0.15);border: 1px dashed rgba(214,191,169,.35);color:#d6bfa9;" class="card card-sm">
<div  class="card-body">
<div class="row align-items-center">
<div style="height:275px;" class="col-12">
    
    

<center>
<a style="font-size: 16px;" href="javascript:navigate_tabs('a','first-tab');" class="btns btn btn-azure" id="first-tab">FREEKASSA</a>
<a style="font-size: 16px;" href="javascript:navigate_tabs('b','second-tab');" class="btns btn btn-azure" id="second-tab">PAYEER</a>
<a style="font-size: 16px;" href="javascript:navigate_tabs('c','second-tab');" class="btns btn btn-azure" id="second-tab">ПРОМОКОД</a>
</center>
 
<center style="font-size: 16px;"> <img style="width: 300px;margin-top: 0.5rem;" title='freekassa' src='/style/444/cabinet/kassa.png'><br>
Деньги на баланс зачисляются в автоматическом режиме.<BR /><BR />
</center>
<?
/// Если сумма отправлена из формы, начинаем тут работать
if(isset($_POST['amount'])){
    $amount = $_POST['amount'];
    
    # Заносим в БД
    $db->Query("INSERT INTO db_payeer_insert (user_id, user, sum, date_add) VALUES ('$usid','$usname','$amount','".time()."')");
    $order_id         = $db->LastInsert();
    $currency = 'RUB';
    $merchant_id    = $config->FKMerchant;
    $merchant_secret    = $config->FKSecret;
    $sign = md5($merchant_id.":".$amount.":".$merchant_secret.":".$currency.":".$order_id);
    ?>
    
    <div class="s_divide"></div>
        <div class="clear"></div>
        <div class="line_divider"></div>

    <div class="line_divider"></div>
            <center>
                <form method="GET" action="https://pay.freekassa.ru/" accept-charset="UTF-8" name="pay_form" id="pay_form">
                <input type="hidden" name="m"                value="<?=$merchant_id;?>" />
                <input type="hidden" name="oa"                value="<?=$amount;?>" />
                <input type="hidden" name="currency"        value="<?=$currency;?>" />
                <input type="hidden" name="o"                value="<?=$order_id;?>" />
                <input type="hidden" name="s"                 value="<?=$sign;?>" />
                
            </form>
            
                Перенаправление...
            </center>
            <script>$('#pay_form').submit();</script>
            <center><h3>&#169;</h3></center>
    <div class="clear"></div>
    <div class="s_divide"></div>
    <div class="line_divider"></div>
    <div class="text_pages_bottom"></div>

    <?php
    return;
}

    ?>
    <center>
    <form method="POST" action="" >
 <input type="hidden" name="s" id="s" value="0">
    <input type="hidden" name="us_id" id="us_id" value="680">
    <input type="hidden" name="o" id="desc" value="680" />

<table width="38%" border="0" align="center">
 
<tr >
    <td ><font color="#d6bfa9">Введите сумму :</font> </td>
    <td style="border:0px;" align="center">
        <input type="text" class="form-control" style="text-align: center;height: 30px;width: 200px;font-size: 15px;background: rgba(0, 0, 0, .20);border: 1px dotted rgba(214,191,169,.35);border-radius: 0.3rem;color:#c7a687;" name="amount" id="sum" value="100" size="7" id="oa" > </td>
  </tr>
  <tr>
    <td style="border:0px;" colspan="2" align="center">
      <input style="font-size: 17px;height: 35px;width: 200px;margin-top: 1.4rem;padding-top: 4;" type="submit" id="submit"  class="btns btn btn-azure" value="Пополнить" ></td>
  </tr>
</table>

</form>
        </center>
    
    
    
</div>
</div>
</div>
</div>
</div>










<div class="col-12">
<div style="background: rgba(0, 0, 0, .16);box-shadow: 0 6px 15px 0 rgba(0, 0, 0 , 0.15);border: 1px dashed rgba(214,191,169,.35);color:#d6bfa9;" class="card">
<div class="card-header">
<h4 class="card-title">Последние пополнения</h4>
</div>

<table  class="table table-vcenter card-table">
<thead>
<tr >
<th style="text-align: center;width:25%;background: rgba(0,0,0,.18);color:#c7a687;">ID</th>
<th style="text-align: center;width:25%;background: rgba(0,0,0,.18);color:#c7a687;">Сумма</th>
<th style="text-align: center;width:25%;background: rgba(0,0,0,.18);color:#c7a687;">Дата</th>
<th style="text-align: center;width:25%;background: rgba(0,0,0,.18);color:#c7a687;">Статус</th>
</tr>
</thead>

<tbody>
<?PHP
  $db->Query("SELECT * FROM db_payeer_insert WHERE user_id = '$usid' ORDER BY id DESC LIMIT 10");
    if($db->NumRows() > 0){
          while($ref = $db->FetchArray()){
     $status_array = array( 0 => "Ожидание", 1 => "Пополнено", 2 => "Отменена" );
        ?>
<tr>
<td style="text-align: center;width:25%;"><?=$ref["id"]; ?></td>
<td style="text-align: center;width:25%;"><?=$ref["sum"]; ?> RUB</td>
<td style="text-align: center;width:25%;"><?=date("d.m.Y",$ref["date_add"]); ?></td>
<td style="text-align: center;width:25%;"><?=$status_array[$ref["status"]]; ?></td>
</tr>


  <?PHP
    
        }
    }else echo '<tr>
<td style="text-align: center;" colspan="4">Нет записей !</center></td>
</tr>'
  ?>
</tbody>

</table>

</div>
</div>


</div>












<div class="b" style="display: none;">
<div  class="col-md-12">
<div style="background: rgba(0, 0, 0, .16);box-shadow: 0 6px 15px 0 rgba(0, 0, 0 , 0.15);border: 1px dashed rgba(214,191,169,.35);color:#d6bfa9;" class="card card-sm">
<div class="card-body">
<div class="row align-items-center">
<div style="height:300px;" class="col-12">
    
    

<center>
<a style="font-size: 16px;" href="javascript:navigate_tabs('a','first-tab');" class="btns btn btn-azure" id="first-tab">FREEKASSA</a>
<a style="font-size: 16px;" href="javascript:navigate_tabs('b','second-tab');" class="btns btn btn-azure" id="second-tab">PAYEER</a>
<a style="font-size: 16px;" href="javascript:navigate_tabs('c','second-tab');" class="btns btn btn-azure" id="second-tab">ПРОМОКОД</a>
</center>
 <br>   
<center style="font-size: 16px;"> <img style="width: 180px;margin-top: -1.0rem;" title='Payeer' src='/style/444/cabinet/Payeer1.png'><br>
<p style="margin-top: 0.5rem;">Деньги на баланс зачисляются в автоматическом режиме.<BR />
Отправьте перевод с кошелька Payeer <font color="#c7a687">на <?=$config->AccountNumber;?></font>, введите номер операции в поле ниже. <BR />
После автоматической проверки перевода Вам будут зачислены средства.</p><br />
</center>


    <center>


<div class="silver-bk">


<?PHP
/// db_payeer_insert
if(isset($_POST['txn'])){
    $txn = intval($_POST['txn']);
    $result = $pdo->prepare("SELECT COUNT(`id`) FROM `db_payeer_insert` WHERE `operation_id` = :txn");
    $result->execute(array('txn'=>$txn));
    if($result->fetchColumn() == 0){
        $payeer = new rfs_payeer($config->AccountNumber, $config->apiId, $config->apiKey);
        if ($payeer->isAuth()){
            $data = $payeer->getHistoryInfo($txn);
            if(empty($data['auth_error'])){
                if($config->AccountNumber == $data['info']['to']){
                    if($data['info']['status'] == 'execute'){
                        if($data['info']['type'] == 'transfer'){
                            if($data['info']['protect'] == 'N'){
                                if($data['info']['curOut'] == 'RUB'){
                                    $result = $pdo->prepare("SELECT COUNT(`id`) FROM `db_payeer_insert` WHERE `operation_id` = :txn");
                                    $result->execute(array('txn'=>$txn));
                                    if($result->fetchColumn() == 0){
                                        $amount = $data['info']['sumOut'];
                                        $result = $pdo->prepare("INSERT INTO `db_payeer_insert` (`user_id`,`user`,`sum`,`date_add`,`description`,`operation_id`,`status`) VALUES (:user_id,:user_name,:amount,:time,:description,:txn,:status)");
                                        $result->execute(array(
                                            'user_id' => $user_id,
                                            'user_name'=>$user_name,
                                            'amount'=>$amount,
                                            'time'=>strtotime($data['info']['dateCreate']),
                                            'description'=>'Payeer',
                                            'txn'=>$txn,
                                            'status'=>1
                                        ));
                                        $referer_id = $user_data['referer_id'];
                                        # Зачисляем баланс
                                        $serebro = $db_config['ser_per_wmr'] * $amount;
                                        # Бонус при первом пополнении
                                        $serebro = $user_data['insert_sum'] == 0 ? $serebro + $serebro * $config->bonusFirstInsert/100 : $serebro;
                                        # Отчисления рефералу
                                        $to_referer = $serebro * $config->toRefererFromInsert / 100;
                                        # Зачисляем пользователю
                                        $result = $pdo->prepare("UPDATE `db_users_b` SET `money_b`=`money_b`+ :serebro,`to_referer`=`to_referer`+ :to_referer,`last_sbor` = :time,`insert_sum`=`insert_sum`+ :amount WHERE `id` = :user_id");
                                        $result->execute(array(
                                            'serebro' => $serebro,
                                            'to_referer'=>$to_referer,
                                            'time' => time(),
                                            'amount' => $amount,
                                            'user_id' => $user_id
                                        ));
                                        # Зачисляем средства рефереру
                                        $result = $pdo->prepare("UPDATE `db_users_b` SET `money_p`=`money_p`+ :to_referer,`from_referals`=`from_referals`+ :from_referals WHERE `id` = :referer_id");
                                        $result->execute(array(
                                            'to_referer' => $to_referer,
                                            'from_referals' => $to_referer,
                                            'referer_id' => $referer_id
                                        ));
                                        # Статистика пополнений
                                        $da = time();
                                        $dd = $da + 60*60*24*15;
                                        $result = $pdo->prepare("INSERT INTO db_insert_money (`user`,`user_id`,`money`,`serebro`,`date_add`,`date_del`) VALUES (:user_name,:user_id,:amount,:serebro,:da,:dd)");
                                        $result->execute(array(
                                            'user_name' => $user_name,
                                            'user_id' => $user_id,
                                            'amount' => $amount,
                                            'serebro' => $serebro,
                                            'da' => $da,
                                            'dd' => $dd
                                        ));
                                        # Обновление статистики сайта
                                        $pdo->query("UPDATE `db_stats` SET `all_insert` = `all_insert` + '$amount' WHERE `id` = '1'");
                                        echo
                                        "<script>
    swal(
  'Успешно!',
  'Баланс успешно пополнен !',
  'success'
)
    

</script>";
header("Refresh: 4; URL=/account/insert");
                                    }else{
                                        echo
                                        "<script>
    swal(
  'Ошибка!',
  'Неверный номер операции !',
  'error'
)
    

</script>";
                                    }
                                }else{
                                    echo
                                    "<script>
    swal(
  'Ошибка!',
  'Отправляйте переводы только в RUB !',
  'error'
)
    

</script>";
                                }
                            }else{
                                echo
                                "<script>
    swal(
  'Ошибка!',
  'Отправляйте перевод без протекции !',
  'error'
)
    

</script>";
                            }
                        }else{
                            echo
                            "<script>
    swal(
  'Ошибка!',
  'Неверный номер операции !',
  'error'
)
    

</script>";
                        }
                    }else{
                        echo
                        "<script>
    swal(
  'Ошибка!',
  'Неверный номер операции !',
  'error'
)
    

</script>";
                    }
                }else{
                    echo
                    "<script>
    swal(
  'Ошибка!',
  'Неверный номер операции !',
  'error'
)
    

</script>";
                }
            }else{
                var_dump($data['errors']);
            }
        }
    }else{
        echo "<script>
    swal(
  'Ошибка!',
  'Неверный номер операции !',
  'error'
)
    

</script>";
    }
}
?>
<form style="margin-top: -1.1rem;" method="POST" action="">
    <table width="46%" border="0" align="center">
 
<tr >
    <td ><font color="#d6bfa9">Введите номер операции :</font> </td>
    <td style="border:0px;" align="center">
        <input type="text" class="form-control" style="text-align: center;height: 30px;width: 200px;font-size: 15px;background: rgba(0, 0, 0, .20);border: 1px dotted rgba(214,191,169,.35);border-radius: 0.3rem;color:#c7a687;" name="txn" placeholder="ID операции"> </td>
  </tr>
  <tr>
    <td style="border:0px;" colspan="2" align="center">
      <input style="font-size: 17px;height: 35px;width: 200px;margin-top: 1.4rem;padding-top: 4;" type="submit" id="submit"  class="btns btn btn-azure" value="Пополнить" ></td>
  </tr>
</table>

    
</form>
<div class="clr"></div>       
</div>

        </center>
    
    
    
</div>
</div>
</div>
</div>
</div>










<div class="col-12">
<div style="background: rgba(0, 0, 0, .16);box-shadow: 0 6px 15px 0 rgba(0, 0, 0 , 0.15);border: 1px dashed rgba(214,191,169,.35);color:#d6bfa9;" class="card">
<div class="card-header">
<h4 class="card-title">Последние пополнения</h4>
</div>

<table class="table table-vcenter card-table">
<thead>
<tr>
<th style="text-align: center;width:25%;background: rgba(0,0,0,.18);color:#c7a687;">ID</th>
<th style="text-align: center;width:25%;background: rgba(0,0,0,.18);color:#c7a687;">Сумма</th>
<th style="text-align: center;width:25%;background: rgba(0,0,0,.18);color:#c7a687;">Дата</th>
<th style="text-align: center;width:25%;background: rgba(0,0,0,.18);color:#c7a687;">Статус</th>
</tr>
</thead>

<tbody>
<?PHP
  $db->Query("SELECT * FROM db_payeer_insert WHERE user_id = '$usid' ORDER BY id DESC LIMIT 10");
    if($db->NumRows() > 0){
          while($ref = $db->FetchArray()){
     $status_array = array( 0 => "Ожидание", 1 => "Пополнено", 2 => "Отменена" );
        ?>
<tr>
<td style="text-align: center;width:25%;"><?=$ref["id"]; ?></td>
<td style="text-align: center;width:25%;"><?=$ref["sum"]; ?> RUB</td>
<td style="text-align: center;width:25%;"><?=date("d.m.Y",$ref["date_add"]); ?></td>
<td style="text-align: center;width:25%;"><?=$status_array[$ref["status"]]; ?></td>
</tr>


  <?PHP
    
        }
    }else echo '<tr>
<td style="text-align: center;" colspan="4">Нет записей !</center></td>
</tr>'
  ?>
</tbody>

</table>

</div>
</div>


</div>








<div class="c" style="display: none;">
<div  class="col-md-12">
<div style="background: rgba(0, 0, 0, .16);box-shadow: 0 6px 15px 0 rgba(0, 0, 0 , 0.15);border: 1px dashed rgba(214,191,169,.35);color:#d6bfa9;" class="card card-sm">
<div  class="card-body">
<div class="row align-items-center">
<div style="height:282px;" class="col-12">
    
    

<center>
<a style="font-size: 16px;" href="javascript:navigate_tabs('a','first-tab');" class="btns btn btn-azure" id="first-tab">FREEKASSA</a>
<a style="font-size: 16px;" href="javascript:navigate_tabs('b','second-tab');" class="btns btn btn-azure" id="second-tab">PAYEER</a>
<a style="font-size: 16px;" href="javascript:navigate_tabs('c','second-tab');" class="btns btn btn-azure" id="second-tab">ПРОМОКОД</a>
</center>
 
<h4 class="card-title" style="font-size: 16px;margin-top: 2.2rem;"><center>Тут вы можете активировать промокод.<br><font color="#c7a687" style="font-size: 13px;">ПРОМОКОД МОЖНО ПОЛУЧИТЬ ТОЛЬКО ОТ АДМИНИСТРАЦИИ. ПО АКЦИЯМ В ГРУППЕ ВК ИЛИ НА ФОРУМАХ. <br></font></br></p>
</center>
      
    <?


if(isset($_POST['promocod']) && !empty($_POST['promocod']))
{
    $code = strip_tags($_POST['promocod']);
    $db->Query("SELECT * FROM db_promocod WHERE code='$code' AND status='0'");
    if($db->NumRows() == 1){
        $code_info = $db->FetchArray();
        $type = $code_info["element"];
        $count = $code_info["summa"];
        $db->Query("UPDATE db_users_b SET {$type} = {$type} + {$count} WHERE id = '$usid'");//Прибавляем промокод
        $db->Query("UPDATE db_promocod SET status=1 WHERE code='$code'");// Отмечаем что он активирован
        echo
        "<script>
    swal(
  'Успешно!',
  'Вы успешно активировали и получили {$count} RUB',
  'success'
)
    </script>";
    }else echo
    
"<script>
    swal(
  'Ошибка!',
  'Промокод не существует !',
  'error'
)
    

</script>";
}
?>
  <center>  <form action="" name="activate" method="post">


<input type="text" style="width:430px;height:45px;margin-top: 0.3rem;font-size: 16px;text-align: center;background: rgba(0, 0, 0, .20);border: 1px dotted rgba(214,191,169,.35);border-radius: 0.3rem;color:#c7a687;" class="form-control" autocomplete="off" placeholder="Промокод (XXXXX-XXXXX-XXXXX-XXXXX-XXXXX)"  name="promocod" required >
<button style="font-size: 16px;margin-top: 1.2rem;"  type="submit"   class="btn btn-azure">Активировать промокод</button>             
        
<BR />

</form> </center>
 
      
          </h4>


    
    
    
</div>
</div>
</div>
</div>
</div>













</div>








</div>
</div>
</div>
</div>
</div>
 </div>
</div>
<?PHP include("pages/account/foot/_foot_lk.php");?>
 
Верх