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'); }
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";