Вход Регистрация
Файл: upload/pages/admin/profit/project-profit.php
Строк: 133
<?php
require_once ($_SERVER['DOCUMENT_ROOT'] . '/core/core.php');

if (
$users_perms['manage_payment'] != 1) {
    
RedirectToPage('/');
    exit();
}

$profit FetchAssoc(dbquery("SELECT * FROM `project_profit` WHERE `id` = '1'"));
$transaction dbquery("SELECT * FROM `transactions` WHERE `us` = '0' ORDER BY `id` DESC");

if (isset(
$_POST['payout_profit'])) {
    
check_csrf();
    
    if (
$users_perms['manage_payment'] != 1) {
        
RedirectToPage('/');
        exit();
    }
    
    
$amount intval($_POST['amount']);

    
// --- ЗАЩИТА ОТ ПОВТОРНЫХ ДЕЙСТВИЙ ---
    
dbquery("START TRANSACTION");

    
// Блокируем строку дохода
    
$profit FetchAssoc(dbquery("
        SELECT fullprofit 
        FROM project_profit 
        WHERE id = '1' 
        FOR UPDATE
    "
));

    
// Если нет строки или денег не хватает — откат
    
if (!$profit || getAvailableAdminBalance(0$profit['fullprofit']) < $amount || $amount <= 0) {
        
dbquery("ROLLBACK");
        
showAlert('Ошибка''fail''Недостаточно средств или неверная сумма!');
        
ReloadPage();
        exit();
    }
    
// ------------------------------------

    // Генерируем уникальный ID транзакции
    
$orderDigits OrderGenKey();

    
// Создаем транзакцию
    
insertTransaction($amount0102$orderDigits);

    
// Списываем доход
    
$upd dbquery("
        UPDATE project_profit 
        SET fullprofit = fullprofit - ? 
        WHERE id = '1'
    "
, [$amount]);

    if (!
$upd) {
        
dbquery("ROLLBACK");
        
showAlert('Ошибка''fail''При списании средств произошла ошибка!');
        
ReloadPage();
        exit();
    }

    
// --- ФИКСИРУЕМ ВСЁ ---
    
dbquery("COMMIT");

    
// --- ВНЕ ТРАНЗАКЦИИ ---
    
showAlert('Успешно''success''Выплата успешно создана!');
    
ReloadPage();
    exit(
'ok');
}


echo 
'<div class="modal fade" id="payout-project" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true">
  <div class="modal-dialog">
    <div class="modal-content">
      <div class="modal-header">
        <h5 class="modal-title" id="exampleModalLabel">Выплата дохода</h5>
        <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"><i class = "fas fa-xmark"></i></button>
      </div>
      <div class="modal-body">
        <span>Введите сумму выплаты:</span><br>
      </div>
      <div class="modal-footer">
      <form method="post">
        <input type="hidden" name="csrf_token" value="' 
$_SESSION['csrf_token'] . '">
        <input type="number" name="amount" min="1" id="modal-number-input">
        <input class="button" type="submit" name="payout_profit" style="float: right; margin-left: 5px;" value="Выплатить">
        </form>
      </div>
    </div>
  </div>
</div>'
;

echo 
'<div class="home_us tematic">';

$breadcrumbs generateBreadcrumbs([
    [
'/''Главная'],
    [
'/admin''Админ панель'],
    [
'#''Доход проекта']
]);

$html $breadcrumbs['html'];
$json_ld $breadcrumbs['json_ld'];

echo 
$html;
echo 
'<script type="application/ld+json">' $json_ld '</script>';

echo 
'<div class="head_box section-header">
<div class="box_title">Доход проекта</div>
</div>'
;

echo 
'<div class="side_in_count">';

include (
$_SERVER['DOCUMENT_ROOT'] . '/core/elements/sidebars/panel.php');

echo 
'<div class="box-back-pan nonback">
<div class="balance_head-block adm">
<div class="balance_summ number">' 
$profit['fullprofit'] . '₽</div>
<div class="succ_money-info">
<div class="balance_summ_succ">На удержании: <span class="number">' 
getFrozenBalance(0) . '₽</span></div>
<div class="balance_summ_succ">Доступно к снятию: <span class="number">' 
getAvailableAdminBalance(0$profit['fullprofit']) . '₽</span></div>
</div>
<a class="btn button" data-bs-toggle="modal" data-bs-target="#payout-project">Создать выплату</a>
</div>'
;
while (
$transact FetchAssoc($transaction)) {
    echo 
'<div class="transaction_box">
    <div class="transaction_flex">
    <div class="transaction_info">
    <div class="transaction_title-info name">' 
TransactionType($transact['k_type'] ?? '-') . '</div>
    <div class="transaction_title-info">' 
vremja($transact['k_time'] ?? time()) . '</div>
    <div class="transaction_order-info">id-' 
. ($transact['k_order'] ?? '?') . '</div>
    <div class="transaction_title-info prefix'
;
    if (
$transact['status'] == 0) {
        echo 
' err';
    }
    
    if (
$transact['status'] == 1) {
        echo 
' ok';
    }
    
    if (
$transact['status'] == 2) {
        echo 
' load';
    }
    
    if (
$transact['status'] == 3) {
        echo 
' udr';
    }
    
    if (
$transact['status'] == 4) {
        echo 
' err';
    }
    
    echo 
'">' TransactionStatus($transact['status'] ?? '-') . '</div>
    </div>
    <div class="transaction_summ'
;
    if (
$transact['k_ord'] == 0) {
        echo 
' mns';
    }
    echo 
'">' TransactionORD($transact['k_ord'] ?? '-') . ' <span class="number">' . ($transact['summ'] ?? '') . '</span> ₽</div>
    </div>
    </div>'
;
}
echo 
'</div>';

echo 
'</div>';
echo 
'</div>';

$page_html ob_get_clean();
require_once (
$_SERVER['DOCUMENT_ROOT'] . '/layout.php');
?>
Онлайн: 1
Реклама