3 $monLibrary = dirname(__FILE__) .
"/../library";
4 require_once(
"$monLibrary/cu_top.i");
5 require_once(
"$monLibrary/ck_hticket.i");
14 dms_import(array(
"operation" =>
"string",
"cucode" =>
"string",
"username" =>
"string",
"search" =>
"string"));
16 $operation = trim($operation);
17 $cucode = preg_replace(
"/[^A-Za-z0-9]/",
"",$cucode);
18 $username = prep_save($username);
19 $search = prep_save($search);
23 if (strlen($cucode) > 0 && strlen($search) > 0) {
24 searchUser($dbh, $cucode, $username, $search);
28 $returnArray = array(
"error" => array(
"Operation not found."));
31 header(
'Content-type: application/json');
33 function searchUser($dbh, $cucode, $username, $search=
null) {
35 # retrieve and return a list of cu codes 39 $usersearch->dbh = $dbh;
40 $usersearch->UserName = $username;
41 $usersearch->Cu = $cucode;
42 $usersearch->Search = $search;
43 $usersearch->Results =
null;
46 $exact_match = $usersearch->LookUpByUserName($search);
50 $usersearch->SearchByUserAny($search);
52 if (empty($exact_match)) {
53 echo HCU_JsonEncode($usersearch->Results);
55 echo HCU_JsonEncode(array_merge($exact_match, $usersearch->Results));
57 return array(
"error" => array(),
"code" => 0);
63 public $cucode =
null;
64 public $UserName =
null;
65 public $UserEmail =
null;
66 public $PrimaryAccount =
null;
67 public $Search =
null;
68 public $Results =
null;
70 function LookUpByUserName($p_search) {
73 $sql =
"select u.user_name, u.email, maa.accountnumber 74 from {$this->Cu}user u 75 left join (select row_number() over (partition by ua.user_id, ua.accountnumber) as rown, ua.user_id, ua.accountnumber from {$this->Cu}useraccounts ua 76 inner join {$this->Cu}memberacct ma on ua.accountnumber = ma.accountnumber) maa on u.user_id = maa.user_id and maa.rown = 1 where user_name = '$p_search'";
77 $p_rs = db_query($sql, $this->dbh);
78 while($p_element = db_fetch_assoc($p_rs)) {
79 $p_array[] = [
'user_name' => str_replace($p_search,
"<b>" . $p_search .
"</b>", trim($p_element[
"user_name"])),
80 'email' => str_replace($p_search,
"<b>" . $p_search.
"</b>", trim($p_element[
"email"])),
81 'accountnumber' => str_replace($p_search,
"<b>" . $p_search .
"</b>", trim($p_element[
"accountnumber"])),
82 'search' => trim($p_element[
"user_name"]) .
"|" . trim($p_element[
"email"]) .
"|" . trim($p_element[
"accountnumber"])];
84 $this->Results = $p_array;
88 function SearchByUserAny($p_search) {
90 $sql =
"select u.user_name, u.email, maa.accountnumber 91 from {$this->Cu}user u 92 left join (select row_number() over (partition by ua.user_id, ua.accountnumber) as rown, ua.user_id, ua.accountnumber from {$this->Cu}useraccounts ua 93 inner join {$this->Cu}memberacct ma on ua.accountnumber = ma.accountnumber) maa on u.user_id = maa.user_id and maa.rown = 1 94 where maa.accountnumber like '%$p_search%' or lower(user_name) like lower('%$p_search%') or lower(email) like lower('%$p_search%')";
95 $p_rs = db_query($sql, $this->dbh);
96 while($p_element = db_fetch_assoc($p_rs)) {
97 $p_array[] = [
'user_name' => str_replace($p_search,
"<b>" . $p_search .
"</b>", trim($p_element[
"user_name"])),
98 'email' => str_replace($p_search,
"<b>" . $p_search.
"</b>", trim($p_element[
"email"])),
99 'accountnumber' => str_replace($p_search,
"<b>" . $p_search.
"</b>", trim($p_element[
"accountnumber"])),
100 'search' => trim($p_element[
"user_name"]) .
"|" . trim($p_element[
"email"]) .
"|" . trim($p_element[
"accountnumber"])];
102 $this->Results = $p_array;