public function getUsersAndGroupForModuleList($module, $view) { $currentUser = Users_Record_Model::getCurrentUserModel(); $db = PearDatabase::getInstance(); $userEntityInfo = Vtiger_Functions::getEntityModuleInfo('Users'); $table = $userEntityInfo['tablename']; $columnsName = explode(',', $userEntityInfo['fieldname']); $queryGenerator = new QueryGenerator($module, $currentUser); $queryGenerator->initForCustomViewById($view); $queryGenerator->setFields(['assigned_user_id']); $queryGenerator->addCustomColumn('vtiger_groups.groupname'); foreach ($columnsName as &$column) { $queryGenerator->addCustomColumn($table . '.' . $column); } $listQuery = $queryGenerator->getQuery('SELECT DISTINCT'); $listQuery .= ' ORDER BY last_name ASC, first_name ASC'; $result = $db->query($listQuery); $users = $group = []; while ($row = $db->fetch_array($result)) { if (isset($row['groupname'])) { $group[$row['smownerid']] = $row['groupname']; } else { $name = ''; foreach ($columnsName as &$column) { $name .= $row[$column] . ' '; } $users[$row['smownerid']] = trim($name); } } return ['users' => $users, 'group' => $group]; }
public function getUsersAndGroupForModuleList($module, $view) { $currentUser = Users_Record_Model::getCurrentUserModel(); $db = PearDatabase::getInstance(); $queryGenerator = new QueryGenerator($module, $currentUser); $queryGenerator->initForCustomViewById($view); $queryGenerator->setFields(['assigned_user_id']); $queryGenerator->addCustomColumn('vtiger_users.first_name'); $queryGenerator->addCustomColumn('vtiger_users.last_name'); $queryGenerator->addCustomColumn('vtiger_groups.groupname'); $listQuery = $queryGenerator->getQuery('SELECT DISTINCT'); $result = $db->query($listQuery); $users = $group = []; while ($row = $db->fetch_array($result)) { if (isset($row['groupname'])) { $group[$row['smownerid']] = $row['groupname']; } else { $users[$row['smownerid']] = $row['last_name'] . ' ' . $row['first_name']; } } return ['users' => $users, 'group' => $group]; }
public function getSearchViewList($module, $view) { $currentUser = Users_Record_Model::getCurrentUserModel(); $db = PearDatabase::getInstance(); $queryGenerator = new QueryGenerator($module, $currentUser); $meta = $queryGenerator->getMeta($module); $baseTable = $meta->getEntityBaseTable(); $tableIndexList = $meta->getEntityTableIndexList(); $baseTableIndex = $tableIndexList[$baseTable]; $queryGenerator->initForCustomViewById($view); $queryGenerator->setFields([]); $queryGenerator->addCustomColumn('userid'); $queryGenerator->addCustomFrom(['joinType' => 'INNER', 'relatedTable' => 'u_yf_crmentity_showners', 'relatedIndex' => 'crmid', 'baseTable' => $baseTable, 'baseIndex' => $baseTableIndex]); $listQuery = $queryGenerator->getQuery('SELECT DISTINCT'); $result = $db->query($listQuery); $users = $group = []; while ($id = $db->getSingleValue($result)) { $name = self::getUserName($id); if ($name !== false) { $users[$id] = $name; continue; } $name = self::getGroupName($id); if ($name !== false) { $group[$id] = $name; continue; } } asort($users); asort($group); return ['users' => $users, 'group' => $group]; }