function calc_profit_($currency_id, $amount, $user_id, $db, $last_update, $end_time, $type) { $user_holidays = array(); $pct_array = array(); $max_promised_amounts = array(); $repaid_amount = 0; $res = $db->query(__FILE__, __LINE__, __FUNCTION__, __CLASS__, __METHOD__, "\n\t\t\t\t\tSELECT *\n\t\t\t\t\tFROM `" . DB_PREFIX . "pct`\n\t\t\t\t\tWHERE `currency_id` = {$currency_id}\n\t\t\t\t\tORDER BY `time` ASC\n\t\t\t\t\t"); while ($row0 = $db->fetchArray($res)) { $pct_array[$row0['time']]['miner'] = $row0['miner']; $pct_array[$row0['time']]['user'] = $row0['user']; } $cash_request_status = $db->query(__FILE__, __LINE__, __FUNCTION__, __CLASS__, __METHOD__, "\n\t\t\tSELECT `status`\n\t\t\tFROM `" . DB_PREFIX . "cash_requests`\n\t\t\tWHERE `to_user_id` = {$user_id} AND\n\t\t\t\t\t\t `del_block_id` = 0 AND\n\t\t\t\t\t\t `for_repaid_del_block_id` = 0 AND\n\t\t\t\t\t\t `status` = 'pending'\n\t\t\tLIMIT 1\n\t\t\t", 'fetch_one'); if ($type == 'wallet') { $points_status_array = array(0 => 'user'); } else { if ($type == 'mining') { // обычная обещанная сумма $points_status_array = ParseData::getPointsStatus($user_id, $db); $user_holidays = ParseData::getHolidays($user_id, $db); $res = $db->query(__FILE__, __LINE__, __FUNCTION__, __CLASS__, __METHOD__, "\n\t\t\t\t\tSELECT *\n\t\t\t\t\tFROM `" . DB_PREFIX . "max_promised_amounts`\n\t\t\t\t\tWHERE `currency_id` = {$currency_id}\n\t\t\t\t\tORDER BY `time` ASC\n\t\t\t\t\t"); while ($row = $db->fetchArray($res)) { $max_promised_amounts[$row['time']] = $row['amount']; } $repaid_amount = $db->query(__FILE__, __LINE__, __FUNCTION__, __CLASS__, __METHOD__, "\n\t\t\t\tSELECT `amount`\n\t\t\t\tFROM `" . DB_PREFIX . "promised_amount`\n\t\t\t\tWHERE `status` = 'repaid' AND\n\t\t\t\t\t\t\t `currency_id` = {$currency_id} AND\n\t\t\t\t\t\t\t `user_id` = {$user_id}\n\t\t\t\t", 'fetch_one'); } else { if ($type == 'repaid') { // погашенная обещанная сумма $points_status_array = ParseData::getPointsStatus($user_id, $db); } } } if (($type == 'mining' || $type == 'repaid') && !$cash_request_status || $type == 'wallet') { return ParseData::calc_profit($amount, $last_update, $end_time, $pct_array, $points_status_array, $user_holidays, $max_promised_amounts, $currency_id, $repaid_amount); } else { return 0; } }