예제 #1
0
파일: fns-main.php 프로젝트: scuba323/dcoin
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;
    }
}