function do_logs()
{
    global $db, $all_count, $count, $start;
    $t = new_smarty();
    $vars = get_input_vars();
    /*******************************************/
    $q_where_options = array('date' => 'Date of transaction (format yyyy-mm-dd)', 'dat' => 'Date of rebilling (format yyyy-mm-dd)', 'login' => 'Username', 'name_l' => 'Last Name', 'payment_id' => 'Payment#');
    $start = intval($vars['start']);
    $count = 40;
    $where = construct_where($vars['q'], $vars['q_where']);
    $all_count = $db->query_one("SELECT COUNT(*)\n             FROM {$db->config[prefix]}rebill_log rl\n             LEFT JOIN {$db->config[prefix]}payments p ON rl.payment_id = p.payment_id\n             LEFT JOIN {$db->config[prefix]}members u ON p.member_id = u.member_id\n             WHERE 1 {$where}");
    $list = $db->query_all("SELECT rl.*, \n\t\t\t u.member_id, u.login, u.name_f, u.name_l,\n\t\t\t p.product_id, pr.title\n             FROM {$db->config[prefix]}rebill_log rl\n             LEFT JOIN {$db->config[prefix]}payments p ON rl.payment_id = p.payment_id\n             LEFT JOIN {$db->config[prefix]}members u ON p.member_id = u.member_id\n             LEFT JOIN {$db->config[prefix]}products pr ON p.product_id = pr.product_id \n             WHERE 1 {$where}\n             ORDER BY rebill_log_id DESC\n             LIMIT {$start}, {$count}");
    $status_strings = array(CC_RESULT_INTERNAL_ERROR => "<font color=red>Internal error</font>", CC_RESULT_SUCCESS => "<b>OK</b>", CC_RESULT_DECLINE_TEMP => "<font color=red>Declined</font>", CC_RESULT_DECLINE_PERM => "<font color=red>Declined perm</font>", CC_RESULT_IGNORE => "<font color=red>Unknown</font>");
    foreach ($list as $k => $r) {
        $list[$k]['status_string'] = $status_strings[$r['status']];
    }
    $t->assign('list', $list);
    $t->assign('count', $count);
    $t->assign('q_where_options', $q_where_options);
    $t->display('admin/rebill_log.html');
}
Exemple #2
0
function json_query($request_id, $params)
{
    global $response, $sugar_config;
    global $beanFiles, $beanList;
    $json = getJSONobj();
    if ($sugar_config['list_max_entries_per_page'] < 31) {
        // override query limits
        $sugar_config['list_max_entries_per_page'] = 31;
    }
    $args = $params[0];
    //decode condition parameter values..
    if (is_array($args['conditions'])) {
        foreach ($args['conditions'] as $key => $condition) {
            if (!empty($condition['value'])) {
                $where = $json->decode(utf8_encode($condition['value']));
                // cn: bug 12693 - API change due to CSRF security changes.
                $where = empty($where) ? $condition['value'] : $where;
                $args['conditions'][$key]['value'] = $where;
            }
        }
    }
    $list_return = array();
    if (!empty($args['module'])) {
        $args['modules'] = array($args['module']);
    }
    foreach ($args['modules'] as $module) {
        require_once $beanFiles[$beanList[$module]];
        $focus = new $beanList[$module]();
        $query_orderby = '';
        if (!empty($args['order'])) {
            $query_orderby = preg_replace('/[^\\w_.-]+/i', '', $args['order']['by']);
            if (!empty($args['order']['desc'])) {
                $query_orderby .= " DESC";
            } else {
                $query_orderby .= " ASC";
            }
        }
        $query_limit = '';
        if (!empty($args['limit'])) {
            $query_limit = (int) $args['limit'];
        }
        $query_where = construct_where($args, $focus->table_name, $module);
        $list_arr = array();
        if ($focus->ACLAccess('ListView', true)) {
            $focus->ungreedy_count = false;
            $curlist = $focus->get_list($query_orderby, $query_where, 0, $query_limit, -1, 0);
            $list_return = array_merge($list_return, $curlist['list']);
        }
    }
    $app_list_strings = null;
    for ($i = 0; $i < count($list_return); $i++) {
        if (isset($list_return[$i]->emailAddress) && is_object($list_return[$i]->emailAddress)) {
            $list_return[$i]->emailAddress->handleLegacyRetrieve($list_return[$i]);
        }
        $list_arr[$i] = array();
        $list_arr[$i]['fields'] = array();
        $list_arr[$i]['module'] = $list_return[$i]->object_name;
        foreach ($args['field_list'] as $field) {
            if (!empty($list_return[$i]->field_name_map[$field]['sensitive'])) {
                continue;
            }
            // handle enums
            if (isset($list_return[$i]->field_name_map[$field]['type']) && $list_return[$i]->field_name_map[$field]['type'] == 'enum' || isset($list_return[$i]->field_name_map[$field]['custom_type']) && $list_return[$i]->field_name_map[$field]['custom_type'] == 'enum') {
                // get fields to match enum vals
                if (empty($app_list_strings)) {
                    if (isset($_SESSION['authenticated_user_language']) && $_SESSION['authenticated_user_language'] != '') {
                        $current_language = $_SESSION['authenticated_user_language'];
                    } else {
                        $current_language = $sugar_config['default_language'];
                    }
                    $app_list_strings = return_app_list_strings_language($current_language);
                }
                // match enum vals to text vals in language pack for return
                if (!empty($app_list_strings[$list_return[$i]->field_name_map[$field]['options']])) {
                    $list_return[$i]->{$field} = $app_list_strings[$list_return[$i]->field_name_map[$field]['options']][$list_return[$i]->{$field}];
                }
            }
            $list_arr[$i]['fields'][$field] = $list_return[$i]->{$field};
        }
    }
    $response['id'] = $request_id;
    $response['result'] = array("list" => $list_arr);
    $json_response = $json->encode($response, true);
    echo $json_response;
}
function json_email($request_id, &$params)
{
    global $json, $response, $sugar_config;
    $args = $params[0];
    if ($sugar_config['list_max_entries_per_page'] < 50) {
        // override query limits
        $sugar_config['list_max_entries_per_page'] = 50;
    }
    global $beanFiles, $beanList;
    $list_return = array();
    if (!empty($args['module'])) {
        $args['modules'] = array($args['module']);
    }
    foreach ($args['modules'] as $module) {
        require_once $beanFiles[$beanList[$module]];
        $focus = new $beanList[$module]();
        $query_orderby = '';
        if (!empty($args['order'])) {
            $query_orderby = $args['order'];
        }
        $query_limit = '';
        if (!empty($args['limit'])) {
            $query_limit = $args['limit'];
        }
        $query_where = construct_where($args, $focus->table_name);
        $list_arr = array();
        $curlist = $focus->get_list($query_orderby, $query_where, 0, $query_limit, -1, 0);
        $list_return = array_merge($list_return, $curlist['list']);
    }
    for ($i = 0; $i < count($list_return); $i++) {
        $list_arr[$i] = array();
        $list_arr[$i]['fields'] = array();
        $list_arr[$i]['module'] = $list_return[$i]->object_name;
        foreach ($args['field_list'] as $field) {
            $list_arr[$i]['fields'][$field] = $list_return[$i]->{$field};
        }
    }
    $response['id'] = $request_id;
    $response['result'] = array("list" => $list_arr);
    $json_response = $json->encode($response['result']);
    print "{\"id\":\"{$request_id}\",\"result\":{$json_response}}";
    exit;
}
        case 'ip_exact':
            return "AND ip = '{$q}'";
        case 'subject':
            $a = @split(':', $q, 2);
            if (count($a) == 1) {
                return "AND tablename = '{$q}' OR record_id = '{$q}'";
            } else {
                return "AND tablename = '{$a['0']}' AND record_id = '{$a['1']}'";
            }
    }
}
/*******************************************/
$q_where_options = array('message' => 'Message', 'admin_login' => 'Admin Login', 'ip' => 'IP Address (broad match)', 'ip_exact' => 'IP Address (exact match)', 'subject' => 'Subject (table:record_id)');
$start = intval($vars['start']);
$count = 40;
$where = construct_where($vars['q'], $vars['q_where']);
$all_count = $db->query_one("SELECT COUNT(*)\n             FROM {$db->config[prefix]}admin_log al\n             LEFT JOIN {$db->config[prefix]}admins a USING (admin_id)\n             WHERE 1 {$where}");
$list = $db->query_all("SELECT al.*, IFNULL(a.login, al.admin_login) as admin_login\n             FROM {$db->config[prefix]}admin_log al\n             LEFT JOIN {$db->config[prefix]}admins a USING (admin_id)\n             WHERE 1 {$where}\n             ORDER BY dattm DESC\n             LIMIT {$start}, {$count}");
foreach ($list as $k => $r) {
    switch ($r['tablename']) {
        case 'members':
            $list[$k]['record_link'] = "users.php?member_id={$r['record_id']}&action=edit";
            break;
        case 'admins':
            $list[$k]['record_link'] = "admins.php?admin_id={$r['record_id']}&action=edit";
            break;
        case 'coupons':
            $list[$k]['record_link'] = "coupons.php?batch_id={$r['record_id']}&action=view_batch";
            break;
        case 'products':
            $list[$k]['record_link'] = "products.php?product_id={$r['record_id']}&action=edit";