} 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';
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']; } }