11 $monLibrary = dirname(__FILE__) .
"/../library";
12 $sharedLibrary = dirname(__FILE__) .
"../../shared/library";
13 require_once(
"$monLibrary/cu_top.i");
15 $string = array(
"filter" => FILTER_SANITIZE_STRING);
16 $params = array(
"operation" => $string,
"memberNumber" => $string,
"numRows" => $string,
"userName" => $string,
"email" => $string,
"cu" => $string);
17 $vars = array(
"operation" =>
"",
"memberNumber" =>
"",
"numRows" =>
"",
"userName" =>
"",
"email" =>
"",
"cu" =>
"");
18 HCU_ImportVars($vars,
"", $params);
20 $operation = HCU_array_key_value(
"operation", $vars);
21 $operation = $operation ===
false ?
"" : trim($operation);
22 $showSQL = $SYSENV[
"devmode"];
27 $returnArray = ReadUserList($dbh, $SYSENV, $vars);
30 $returnArray = array(
"error" =>
"Operation is not known.",
"data" => array());
34 header(
'Content-type: application/json');
36 unset($returnArray[
"sql"]);
38 print HCU_JsonEncode($returnArray);
48 function GetMaxRowsList() {
49 return array(
"50",
"100",
"ALL");
68 function ReadUserList($dbh, $SYSENV, $params) {
69 $logger = $SYSENV[
"logger"];
75 $cu = HCU_array_key_value(
"cu", $params);
76 $cu = $cu ===
false ?
"" : trim($cu);
78 $memberNumber = HCU_array_key_value(
"memberNumber", $params);
79 $memberNumber = $memberNumber ===
false ?
"" : trim($memberNumber);
81 $numRows = HCU_array_key_value(
"numRows", $params);
82 $numRows = $numRows ===
false ?
"" : trim($numRows);
84 $userName = HCU_array_key_value(
"userName", $params);
85 $userName = $userName ===
false ?
"" : trim($userName);
87 $email = HCU_array_key_value(
"email", $params);
88 $email = $email ===
false ?
"" : trim($email);
93 throw new exception(
"Cu must be defined.", 2);
96 if ($memberNumber !=
"") {
97 if (preg_match(
'/\D/', trim($memberNumber)) !== 0) {
98 throw new exception(
"Member must be a number.", 3);
100 $where[] =
"maa.accountnumber = '" . prep_save(intval($memberNumber), 12) .
"'";
103 if (!in_array($numRows, GetMaxRowsList())) {
104 throw new exception(
"Max rows must be either 50, 100, or ALL.", 4);
106 $limit = $numRows ==
"ALL" ?
"" :
"limit $numRows";
108 if ($userName !=
"") {
109 $where[] =
"u.user_name = '" . prep_save($userName, 50) .
"'";
113 if (!validateEmail($email)) {
114 throw new exception(
"Email is not valid.", 5);
116 $where[] =
"u.email = '" . prep_save($email, 255) .
"'";
119 $where = count($where) > 0 ?
"where " . implode(
" and ", $where) :
"";
121 $preppedCu = prep_save($cu, 12);
122 $sql =
"select case when u.lastlogin = '' then 1 else 0 end as sort, u.lastlogin, u.user_id as login, u.user_name as user, u.email, maa.accountnumber as member, maa.estmnt_flag 123 from (select user_id, user_name, email, coalesce(trim(lastlogin), '') as lastlogin from ${preppedCu}user) u 124 inner join (select ma.accountnumber, ma.estmnt_flag, ua.user_id from ${preppedCu}memberacct ma 125 inner join (select row_number() over(partition by user_id, accountnumber) as rown, accountnumber, user_id from ${preppedCu}useraccounts) ua 126 on ma.accountnumber = ua.accountnumber and ua.rown = 1) maa on u.user_id = maa.user_id 127 $where order by 1, 2 desc $limit";
131 $sth = db_query($sql, $dbh);
133 throw new exception(
"Select query failed.", 1);
137 for($i = 0; $row = db_fetch_assoc($sth, $i); $i++) {
138 $row[
"lastLogin"] = isset($row[
"lastlogin"]) ? $row[
"lastlogin"] :
"";
139 $row[
"hasEstmnt"] = isset($row[
"estmnt_flag"]) ? trim($row[
"estmnt_flag"]) ==
"Y" :
false;
140 $row[
"member"] = isset($row[
"member"]) ? trim($row[
"member"]) :
"";
141 unset($row[
"estmnt_flag"]);
142 unset($row[
"lastlogin"]);
146 $returnArray = array(
"error" =>
"",
"data" => $list,
"sql" => $sqls);
147 }
catch (exception $e) {
148 $logger->error(
"Error: ". $e->getMessage());
149 $code =
"HCU-" . str_pad(strval($e->getCode()), 4, STR_PAD_LEFT,
"0");
150 $returnArray = array(
"error" =>
"A problem occurred. $code",
"data" => array(),
"sql" => $sqls);