Exemple #1
0
}
if (!$tpl['sell_currency_id']) {
    $tpl['sell_currency_id'] = 72;
}
$tpl['buy_currency_name'] = $tpl['currency_list_name'][$tpl['buy_currency_id']];
$tpl['sell_currency_name'] = $tpl['currency_list_name'][$tpl['sell_currency_id']];
$res = $db->query(__FILE__, __LINE__, __FUNCTION__, __CLASS__, __METHOD__, "\n\t\tSELECT *\n\t\tFROM `" . DB_PREFIX . "forex_orders`\n\t\tWHERE `buy_currency_id` = {$tpl['buy_currency_id']} AND\n\t\t\t\t\t `sell_currency_id` = {$tpl['sell_currency_id']} AND\n\t\t\t\t\t `empty_block_id` = 0 AND\n\t\t\t\t\t `del_block_id` = 0\n\t\t");
while ($row = $db->fetchArray($res)) {
    $tpl['buy_orders'][] = $row;
}
$res = $db->query(__FILE__, __LINE__, __FUNCTION__, __CLASS__, __METHOD__, "\n\t\tSELECT *\n\t\tFROM `" . DB_PREFIX . "forex_orders`\n\t\tWHERE `buy_currency_id` =  {$tpl['sell_currency_id']} AND\n\t\t\t\t\t `sell_currency_id` = {$tpl['buy_currency_id']} AND\n\t\t\t\t\t `empty_block_id` = 0 AND\n\t\t\t\t\t `del_block_id` = 0\n\t\t");
while ($row = $db->fetchArray($res)) {
    $tpl['sell_orders'][] = $row;
}
$res = $db->query(__FILE__, __LINE__, __FUNCTION__, __CLASS__, __METHOD__, "\n\t\tSELECT *\n\t\tFROM `" . DB_PREFIX . "forex_orders`\n\t\tWHERE `user_id` =  {$user_id} AND\n\t\t\t\t\t `empty_block_id` = 0 AND\n\t\t\t\t\t `del_block_id` = 0\n\t\t");
while ($row = $db->fetchArray($res)) {
    $tpl['my_orders'][] = $row;
}
// получаем список кошельков, на которых есть FC
$res = $db->query(__FILE__, __LINE__, __FUNCTION__, __CLASS__, __METHOD__, "\n\t\t\tSELECT *\n\t\t\tFROM `" . DB_PREFIX . "wallets`\n\t\t\tWHERE `user_id` = {$user_id} AND\n\t\t\t\t\t\t `currency_id` IN ({$tpl['sell_currency_id']}, {$tpl['buy_currency_id']})\n\t\t\t");
while ($row = $db->fetchArray($res)) {
    $row['amount'] += calc_profit_($row['currency_id'], $row['amount'], $user_id, $db, $row['last_update'], time(), 'wallet');
    $row['amount'] = floor(round($row['amount'], 3) * 100) / 100;
    $forex_orders_amount = $db->query(__FILE__, __LINE__, __FUNCTION__, __CLASS__, __METHOD__, "\n\t\t\t\tSELECT sum(`amount`)\n\t\t\t\tFROM `" . DB_PREFIX . "forex_orders`\n\t\t\t\tWHERE `user_id` = {$user_id} AND\n\t\t\t\t\t\t\t `sell_currency_id` = {$row['currency_id']} AND\n\t\t\t\t\t\t\t `del_block_id` = 0\n\t\t\t\t", 'fetch_one');
    $row['amount'] -= $forex_orders_amount;
    $tpl['wallets_amounts'][$row['currency_id']] = $row['amount'];
}
// нужна мин. комиссия на пуле для перевода монет
$tpl['config'] = get_node_config();
$tpl['config']['commission'] = json_decode($tpl['config']['commission'], true);
require_once ABSPATH . 'templates/currency_exchange.tpl';
Exemple #2
0
function get_promised_amounts($user_id)
{
    global $db, $tpl, $lng;
    // то, что уже в блоках
    $res = $db->query(__FILE__, __LINE__, __FUNCTION__, __CLASS__, __METHOD__, "\n\t\tSELECT *\n\t\tFROM `" . DB_PREFIX . "promised_amount`\n\t\tWHERE `user_id` = {$user_id}\n\t\t");
    while ($row = $db->fetchArray($res)) {
        // есть ли просроченные запросы
        $cash_request_pending = $db->query(__FILE__, __LINE__, __FUNCTION__, __CLASS__, __METHOD__, "\n\t\t\t\tSELECT `status`\n\t\t\t\tFROM `" . DB_PREFIX . "cash_requests`\n\t\t\t\tWHERE `to_user_id` = {$user_id} AND\n\t\t\t\t\t\t\t `del_block_id` = 0 AND\n\t\t\t\t\t\t\t `for_repaid_del_block_id` = 0 AND\n\t\t\t\t\t\t\t `time` < " . (time() - $tpl['variables']['cash_request_time']) . " AND\n\t\t\t\t\t\t\t `status` = 'pending'\n\t\t\t\tLIMIT 1\n\t\t\t\t", 'fetch_one');
        if ($cash_request_pending && $row['currency_id'] > 1 && $row['status'] == 'mining') {
            $row['status'] = 'for_repaid';
            // и заодно проверим, можно ли делать актуализацию обещанных сумм
            $tpl['actualization_promised_amounts'] = $db->query(__FILE__, __LINE__, __FUNCTION__, __CLASS__, __METHOD__, "\n\t\t\t\tSELECT `id`\n\t\t\t\tFROM `" . DB_PREFIX . "promised_amount`\n\t\t\t\tWHERE `status` = 'mining' AND\n\t\t\t\t\t\t\t `user_id` = {$user_id} AND\n\t\t\t\t\t\t\t `currency_id` > 1 AND\n\t\t\t\t\t\t\t `del_block_id` = 0 AND\n\t\t\t\t\t\t\t `del_mining_block_id` = 0 AND\n\t\t\t\t\t\t\t (`cash_request_out_time` > 0 AND `cash_request_out_time` < " . (time() - $tpl['variables']['cash_request_time']) . ")\n\t\t\t\t", 'fetch_one');
        }
        $row['tdc'] = $row['tdc_amount'];
        if ($row['del_block_id']) {
            continue;
        }
        if ($row['status'] == 'mining') {
            $row['tdc'] += calc_profit_($row['currency_id'], $row['amount'] + $row['tdc_amount'], $user_id, $db, $row['tdc_amount_update'], time(), 'mining');
            $row['tdc'] = floor($row['tdc'] * 100000000) / 100000000;
        } else {
            if ($row['status'] == 'repaid') {
                $row['tdc'] = $row['tdc_amount'] + calc_profit_($row['currency_id'], $row['tdc_amount'], $user_id, $db, $row['tdc_amount_update'], time(), 'repaid');
                $row['tdc'] = floor($row['tdc'] * 100000000) / 100000000;
            } else {
                $row['tdc'] = $row['tdc_amount'];
            }
        }
        $row['status_text'] = $lng['status_' . $row['status']];
        $row['max_amount'] = $db->query(__FILE__, __LINE__, __FUNCTION__, __CLASS__, __METHOD__, "\n\t\t\t\tSELECT `amount`\n\t\t\t\tFROM `" . DB_PREFIX . "max_promised_amounts`\n\t\t\t\tWHERE `currency_id` = {$row['currency_id']}\n\t\t\t\tORDER BY `block_id` DESC\n\t\t\t\tLIMIT 1\n\t\t\t\t", 'fetch_one');
        $row['max_other_currencies'] = $db->query(__FILE__, __LINE__, __FUNCTION__, __CLASS__, __METHOD__, "\n\t\t\t\tSELECT `max_other_currencies`\n\t\t\t\tFROM `" . DB_PREFIX . "currency`\n\t\t\t\tWHERE `id` = {$row['currency_id']}\n\t\t\t\tLIMIT 1\n\t\t\t\t", 'fetch_one');
        // для WOC amount не учитывается. Вместо него берется max_promised_amount
        if ($row['currency_id'] == 1) {
            $row['amount'] = $row['max_amount'];
        }
        // обещанная не может быть больше max_promised_amounts
        if ($row['amount'] > $row['max_amount']) {
            $row['amount'] = $row['max_amount'];
        }
        if ($row['status'] == 'repaid') {
            $row['amount'] = 0;
        }
        // последний статус юзера
        $pct_status = $db->query(__FILE__, __LINE__, __FUNCTION__, __CLASS__, __METHOD__, "\n\t\t\t\tSELECT `status`\n\t\t\t\tFROM `" . DB_PREFIX . "points_status`\n\t\t\t\tWHERE `user_id` = {$user_id}\n\t\t\t\tORDER BY `time_start` DESC\n\t\t\t\tLIMIT 1\n\t\t\t\t", 'fetch_one');
        if (!$pct_status) {
            $pct_status = 'user';
        }
        $pct = $db->query(__FILE__, __LINE__, __FUNCTION__, __CLASS__, __METHOD__, "\n\t\t\t\tSELECT `{$pct_status}`\n\t\t\t\tFROM `" . DB_PREFIX . "pct`\n\t\t\t\tWHERE `currency_id` = {$row['currency_id']}\n\t\t\t\tORDER BY `block_id` DESC\n\t\t\t\tLIMIT 1\n\t\t\t\t", 'fetch_one');
        $row['pct_sec'] = $pct;
        $row['pct'] = round((pow(1 + $pct, 3600 * 24 * 365) - 1) * 100, 2);
        // тут accepted значит просто попало в блок
        $tpl['promised_amount_list']['accepted'][] = $row;
        // для вывода на главную общей инфы
        $tpl['promised_amount_list_gen'][$row['currency_id']]['tdc'] += $row['tdc'];
        $tpl['promised_amount_list_gen'][$row['currency_id']]['amount'] += $row['amount'];
        $tpl['promised_amount_list_gen'][$row['currency_id']]['pct_sec'] = $row['pct_sec'];
        $tpl['promised_amount_list_gen'][$row['currency_id']]['currency_id'] = $row['currency_id'];
    }
}