예제 #1
0
 /**
  * Return a list of adhoc assignees of an activity
  *
  * @param string $sProcessUID {@min 32} {@max 32}
  * @param string $sTaskUID {@min 32} {@max 32}
  * @param string $filter
  * @param int    $start
  * @param int    $limit
  * @param string $type
  *
  * return array
  *
  * @access public
  */
 public function getTaskAdhocAssigneesAll($sProcessUID, $sTaskUID, $filter, $start, $limit, $type)
 {
     try {
         Validator::proUid($sProcessUID, '$prj_uid');
         $this->validateActUid($sTaskUID);
         $aUsers = array();
         $oTasks = new \Tasks();
         $aAux = $oTasks->getGroupsOfTask($sTaskUID, 2);
         $aGroupUids = array();
         foreach ($aAux as $aGroup) {
             $aGroupUids[] = $aGroup['GRP_UID'];
         }
         foreach ($aGroupUids as $results) {
             $oCriteria = new \Criteria('workflow');
             $oCriteria->addSelectColumn('USR_UID');
             $oCriteria->add(\GroupUserPeer::GRP_UID, $results);
             $oGroupDataset = \GroupUserPeer::doSelectRS($oCriteria);
             $oGroupDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
             while ($oGroupDataset->next()) {
                 $aGroupRow = $oGroupDataset->getRow();
                 $oGroupCriteria = new \Criteria('workflow');
                 $oGroupCriteria->addSelectColumn(\UsersPeer::USR_UID);
                 $oGroupCriteria->addSelectColumn(\UsersPeer::USR_FIRSTNAME);
                 $oGroupCriteria->addSelectColumn(\UsersPeer::USR_LASTNAME);
                 $oGroupCriteria->addSelectColumn(\UsersPeer::USR_USERNAME);
                 if ($filter != '') {
                     $oGroupCriteria->add($oGroupCriteria->getNewCriterion(\UsersPeer::USR_USERNAME, "%{$filter}%", \Criteria::LIKE)->addOr($oGroupCriteria->getNewCriterion(\UsersPeer::USR_FIRSTNAME, "%{$filter}%", \Criteria::LIKE))->addOr($oGroupCriteria->getNewCriterion(\UsersPeer::USR_LASTNAME, "%{$filter}%", \Criteria::LIKE)));
                 }
                 $oGroupCriteria->add(\UsersPeer::USR_UID, $aGroupRow["USR_UID"]);
                 $oUserDataset = \UsersPeer::doSelectRS($oGroupCriteria);
                 $oUserDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
                 $oUserDataset->next();
                 while ($aUserRow = $oUserDataset->getRow()) {
                     $aUsers[] = array('aas_uid' => $aUserRow['USR_UID'], 'aas_name' => $aUserRow['USR_FIRSTNAME'], 'aas_lastname' => $aUserRow['USR_LASTNAME'], 'aas_username' => $aUserRow['USR_USERNAME'], 'aas_type' => "user");
                     $oUserDataset->next();
                 }
             }
         }
         $oCriteria = new \Criteria('workflow');
         $oCriteria->addSelectColumn(\UsersPeer::USR_UID);
         $oCriteria->addSelectColumn(\UsersPeer::USR_FIRSTNAME);
         $oCriteria->addSelectColumn(\UsersPeer::USR_LASTNAME);
         $oCriteria->addSelectColumn(\UsersPeer::USR_USERNAME);
         if ($filter != '') {
             $oCriteria->add($oCriteria->getNewCriterion(\UsersPeer::USR_USERNAME, "%{$filter}%", \Criteria::LIKE)->addOr($oCriteria->getNewCriterion(\UsersPeer::USR_FIRSTNAME, "%{$filter}%", \Criteria::LIKE))->addOr($oCriteria->getNewCriterion(\UsersPeer::USR_LASTNAME, "%{$filter}%", \Criteria::LIKE)));
         }
         $oCriteria->addJoin(\TaskUserPeer::USR_UID, \UsersPeer::USR_UID, \Criteria::LEFT_JOIN);
         $oCriteria->add(\TaskUserPeer::TAS_UID, $sTaskUID);
         $oCriteria->add(\TaskUserPeer::TU_TYPE, 2);
         $oCriteria->add(\TaskUserPeer::TU_RELATION, 1);
         $oDataset = \TaskUserPeer::doSelectRS($oCriteria);
         $oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
         $oDataset->next();
         while ($aRow = $oDataset->getRow()) {
             if ($type == '' || $type == 'user') {
                 $aUsers[] = array('aas_uid' => $aRow['USR_UID'], 'aas_name' => $aRow['USR_FIRSTNAME'], 'aas_lastname' => $aRow['USR_LASTNAME'], 'aas_username' => $aRow['USR_USERNAME'], 'aas_type' => "user");
             }
             $oDataset->next();
         }
         $aUsersGroups = array();
         $exclude = array("");
         for ($i = 0; $i <= count($aUsers) - 1; $i++) {
             if (!in_array(trim($aUsers[$i]["aas_uid"]), $exclude)) {
                 $aUsersGroups[] = $aUsers[$i];
                 $exclude[] = trim($aUsers[$i]["aas_uid"]);
             }
         }
         if ($start) {
             if ($start < 0) {
                 throw new \Exception(\G::LoadTranslation("ID_INVALID_START"));
             }
         } else {
             $start = 0;
         }
         if (isset($limit)) {
             if ($limit < 0) {
                 throw new \Exception(\G::LoadTranslation("ID_INVALID_LIMIT"));
             } else {
                 if ($limit == 0) {
                     return array();
                 }
             }
         } else {
             $limit = count($aUsersGroups) + 1;
         }
         $aUsersGroups = $this->arrayPagination($aUsersGroups, $start, $limit);
         return $aUsersGroups;
     } catch (\Exception $e) {
         throw $e;
     }
 }
예제 #2
0
 public function getExtTaskUsersAdHocCriteria($start, $limit, $sTaskUID = '', $iType = 1)
 {
     try {
         $aUsers = array();
         $aUsers[] = array('LABEL' => 'char', 'TAS_UID' => 'char', 'USR_UID' => 'char', 'TU_TYPE' => 'integer', 'TU_RELATION' => 'integer');
         $sDelimiter = DBAdapter::getStringDelimiter();
         $oCriteria = new Criteria('workflow');
         $oCriteria->addAsColumn('GRP_TITLE', 'C.CON_VALUE');
         $oCriteria->addSelectColumn(TaskUserPeer::TAS_UID);
         $oCriteria->addSelectColumn(TaskUserPeer::USR_UID);
         $oCriteria->addSelectColumn(TaskUserPeer::TU_TYPE);
         $oCriteria->addSelectColumn(TaskUserPeer::TU_RELATION);
         $oCriteria->addAlias('C', 'CONTENT');
         $aConditions = array();
         $aConditions[] = array(TaskUserPeer::USR_UID, 'C.CON_ID');
         $aConditions[] = array('C.CON_CATEGORY', $sDelimiter . 'GRP_TITLE' . $sDelimiter);
         $aConditions[] = array('C.CON_LANG', $sDelimiter . SYS_LANG . $sDelimiter);
         $oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN);
         $oCriteria->add(TaskUserPeer::TAS_UID, $sTaskUID);
         $oCriteria->add(TaskUserPeer::TU_TYPE, $iType);
         $oCriteria->add(TaskUserPeer::TU_RELATION, 2);
         $this->tmpCriteria = clone $oCriteria;
         if ($start != '') {
             $oCriteria->setOffset($start);
         }
         if ($limit != '') {
             $oCriteria->setLimit($limit);
         }
         $oDataset = TaskUserPeer::doSelectRS($oCriteria);
         $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
         $oDataset->next();
         $c = 0;
         while ($aRow = $oDataset->getRow()) {
             $c++;
             $oGroup = new Groupwf();
             $aFields = $oGroup->load($aRow['USR_UID']);
             if ($aFields['GRP_STATUS'] == 'ACTIVE') {
                 $oCriteria = new Criteria('workflow');
                 $oCriteria->addSelectColumn('COUNT(*) AS MEMBERS_NUMBER');
                 $oCriteria->add(GroupUserPeer::GRP_UID, $aRow['USR_UID']);
                 $oDataset2 = GroupUserPeer::doSelectRS($oCriteria);
                 $oDataset2->setFetchmode(ResultSet::FETCHMODE_ASSOC);
                 $oDataset2->next();
                 $aRow2 = $oDataset2->getRow();
             } else {
                 $aRow2['GROUP_INACTIVE'] = '<strong>(' . G::LoadTranslation('ID_GROUP_INACTIVE') . ')</strong>';
             }
             $aUsers[] = array('LABEL' => !isset($aRow2['GROUP_INACTIVE']) ? $aRow['GRP_TITLE'] . ' <a href="#" onclick="usersGroup(\'' . $aRow['USR_UID'] . '\', \'' . $c . '\');return false;"><font color="green"><strong>(' . $aRow2['MEMBERS_NUMBER'] . ' ' . ((int) $aRow2['MEMBERS_NUMBER'] == 1 ? G::LoadTranslation('ID_USER') : G::LoadTranslation('ID_USERS')) . ')</strong></font></a> <br /><div id="users' . $c . '" style="display: none"></div>' : $aRow['GRP_TITLE'] . ' ' . $aRow2['GROUP_INACTIVE'], 'TAS_UID' => $aRow['TAS_UID'], 'USR_UID' => $aRow['USR_UID'], 'TU_TYPE' => $aRow['TU_TYPE'], 'TU_RELATION' => $aRow['TU_RELATION']);
             $oDataset->next();
         }
         $oCriteria = new Criteria('workflow');
         $oCriteria->addSelectColumn(UsersPeer::USR_FIRSTNAME);
         $oCriteria->addSelectColumn(UsersPeer::USR_LASTNAME);
         $oCriteria->addSelectColumn(TaskUserPeer::TAS_UID);
         $oCriteria->addSelectColumn(TaskUserPeer::USR_UID);
         $oCriteria->addSelectColumn(TaskUserPeer::TU_TYPE);
         $oCriteria->addSelectColumn(TaskUserPeer::TU_RELATION);
         $oCriteria->addJoin(TaskUserPeer::USR_UID, UsersPeer::USR_UID, Criteria::LEFT_JOIN);
         $oCriteria->add(TaskUserPeer::TAS_UID, $sTaskUID);
         $oCriteria->add(TaskUserPeer::TU_TYPE, $iType);
         $oCriteria->add(TaskUserPeer::TU_RELATION, 1);
         $oDataset = TaskUserPeer::doSelectRS($oCriteria);
         $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
         $oDataset->next();
         while ($aRow = $oDataset->getRow()) {
             $aUsers[] = array('LABEL' => $aRow['USR_FIRSTNAME'] . ' ' . $aRow['USR_LASTNAME'], 'TAS_UID' => $aRow['TAS_UID'], 'USR_UID' => $aRow['USR_UID'], 'TU_TYPE' => $aRow['TU_TYPE'], 'TU_RELATION' => $aRow['TU_RELATION']);
             $oDataset->next();
         }
         global $_DBArray;
         $_DBArray = isset($_SESSION['_DBArray']) ? $_SESSION['_DBArray'] : '';
         $_DBArray['taskUsers'] = $aUsers;
         $_SESSION['_DBArray'] = $_DBArray;
         G::LoadClass('ArrayPeer');
         $oCriteria = new Criteria('dbarray');
         $oCriteria->setDBArrayTable('taskUsers');
         $oCriteria->addDescendingOrderByColumn(TaskUserPeer::TU_RELATION);
         $oCriteria->addAscendingOrderByColumn('LABEL');
         return $oCriteria;
     } catch (Exception $oError) {
         throw $oError;
     }
 }
예제 #3
0
 /**
  * Get all users assigned to Group
  *
  * @param string $gprUid
  * @return array $rows
  */
 public function getAllGroupUser($gprUid)
 {
     $oCriteria = new Criteria('workflow');
     $oCriteria->add(GroupUserPeer::GRP_UID, $gprUid);
     $oDataset = GroupUserPeer::doSelectRS($oCriteria);
     $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
     $rows = array();
     while ($oDataset->next()) {
         $row = $oDataset->getRow();
         $g = new Groupwf();
         try {
             $grpRow = $g->load($row['GRP_UID']);
             $row = array_merge($row, $grpRow);
             $rows[] = $row;
         } catch (Exception $e) {
             continue;
         }
     }
     return $rows;
 }
예제 #4
0
 /**
  * Of to assign a group from a task
  * @param string $sTaskUID
  * @param string $sGroupUID
  * @param integer $iType
  * @return boolean
  */
 public function ofToAssignGroup($sTaskUID = '', $sGroupUID = '', $iType = 0)
 {
     try {
         $oTaskUser = new TaskUser();
         $oCriteria = new Criteria('workflow');
         $oCriteria->add(GroupUserPeer::GRP_UID, $sGroupUID);
         $oDataset = GroupUserPeer::doSelectRS($oCriteria);
         $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
         $oDataset->next();
         while ($aGroupUser = $oDataset->getRow()) {
             $oCriteria = new Criteria('workflow');
             $oCriteria->add(TaskUserPeer::TAS_UID, $sTaskUID);
             $oCriteria->add(TaskUserPeer::USR_UID, $aGroupUser['USR_UID']);
             $oDataset2 = TaskUserPeer::doSelectRS($oCriteria);
             $oDataset2->setFetchmode(ResultSet::FETCHMODE_ASSOC);
             $oDataset2->next();
             $aRow = $oDataset2->getRow();
             if (is_array($aRow)) {
                 $this->ofToAssignUser($sTaskUID, $aGroupUser['USR_UID'], $iType);
             }
             $oDataset->next();
         }
         return $oTaskUser->remove($sTaskUID, $sGroupUID, $iType, 2);
     } catch (Exception $oError) {
         throw $oError;
     }
 }
예제 #5
0
 /**
  * Get data of total Users by Group
  *
  * @param string $groupUid Unique id of Group
  *
  * return array Return an array with data of total Users by Group
  */
 public function getTotalUsersByGroup($groupUid = "")
 {
     try {
         $arrayData = array();
         //Verif data
         if ($groupUid != "") {
             $this->throwExceptionIfNotExistsGroup($groupUid, $this->arrayFieldNameForException["groupUid"]);
         }
         //Get data
         $criteria = new \Criteria("workflow");
         $criteria->addSelectColumn(\GroupUserPeer::GRP_UID);
         $criteria->addAsColumn("NUM_REC", "COUNT(" . \GroupUserPeer::GRP_UID . ")");
         $criteria->addJoin(\GroupUserPeer::USR_UID, \UsersPeer::USR_UID, \Criteria::INNER_JOIN);
         if ($groupUid != "") {
             $criteria->add(\GroupUserPeer::GRP_UID, $groupUid, \Criteria::EQUAL);
         }
         $criteria->add(\UsersPeer::USR_STATUS, "CLOSED", \Criteria::NOT_EQUAL);
         $criteria->addGroupByColumn(\GroupUserPeer::GRP_UID);
         $rsCriteria = \GroupUserPeer::doSelectRS($criteria);
         $rsCriteria->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
         while ($rsCriteria->next()) {
             $row = $rsCriteria->getRow();
             $arrayData[$row["GRP_UID"]] = (int) $row["NUM_REC"];
         }
         //Return
         return $arrayData;
     } catch (\Exception $e) {
         throw $e;
     }
 }
예제 #6
0
 /**
  * Method to do selects.
  *
  * @param      Criteria $criteria The Criteria object used to build the SELECT statement.
  * @param      Connection $con
  * @return     array Array of selected Objects
  * @throws     PropelException Any exceptions caught during processing will be
  *		 rethrown wrapped into a PropelException.
  */
 public static function doSelect(Criteria $criteria, $con = null)
 {
     return GroupUserPeer::populateObjects(GroupUserPeer::doSelectRS($criteria, $con));
 }
예제 #7
0
 /**
  * Get Available Groups for a single user
  *
  * @author Qennix
  * @param string $sUserUid
  * @return object
  */
 function getAvailableGroupsCriteria($sUserUid, $filter = '')
 {
     try {
         $oCriteria = new Criteria('workflow');
         $oCriteria->addSelectColumn(GroupUserPeer::GRP_UID);
         $oCriteria->add(GroupUserPeer::USR_UID, $sUserUid);
         $oCriteria->add(GroupUserPeer::GRP_UID, '', Criteria::NOT_EQUAL);
         $oDataset = GroupUserPeer::doSelectRS($oCriteria);
         $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
         $oDataset->next();
         $gUIDs = array();
         while ($aRow = $oDataset->getRow()) {
             $gUIDs[] = $aRow['GRP_UID'];
             $oDataset->next();
         }
         $oCriteria = new Criteria('workflow');
         $oCriteria->addSelectColumn(GroupwfPeer::GRP_UID);
         $oCriteria->addSelectColumn(GroupwfPeer::GRP_STATUS);
         $oCriteria->addSelectColumn(ContentPeer::CON_VALUE);
         $oCriteria->addJoin(GroupwfPeer::GRP_UID, ContentPeer::CON_ID, Criteria::LEFT_JOIN);
         $oCriteria->add(GroupwfPeer::GRP_UID, $gUIDs, Criteria::NOT_IN);
         $oCriteria->add(GroupwfPeer::GRP_STATUS, 'ACTIVE');
         $oCriteria->add(ContentPeer::CON_CATEGORY, 'GRP_TITLE');
         $oCriteria->add(ContentPeer::CON_LANG, SYS_LANG);
         if ($filter != '') {
             $oCriteria->add(ContentPeer::CON_VALUE, '%' . $filter . '%', Criteria::LIKE);
         }
         return $oCriteria;
     } catch (exception $e) {
         throw $e;
     }
 }
예제 #8
0
 /**
  * Return the users to assigned to a process
  *
  * @param string $sProcessUID {@min 32} {@max 32}
  *
  * return array
  *
  * @access public
  */
 public function getProjectUsers($sProcessUID)
 {
     try {
         Validator::proUid($sProcessUID, '$prj_uid');
         $aUsers = array();
         $sDelimiter = \DBAdapter::getStringDelimiter();
         $oCriteria = new \Criteria('workflow');
         $oCriteria->setDistinct();
         $oCriteria->addSelectColumn(\UsersPeer::USR_FIRSTNAME);
         $oCriteria->addSelectColumn(\UsersPeer::USR_LASTNAME);
         $oCriteria->addSelectColumn(\UsersPeer::USR_USERNAME);
         $oCriteria->addSelectColumn(\UsersPeer::USR_EMAIL);
         $oCriteria->addSelectColumn(\TaskUserPeer::TAS_UID);
         $oCriteria->addSelectColumn(\TaskUserPeer::USR_UID);
         $oCriteria->addSelectColumn(\TaskUserPeer::TU_TYPE);
         $oCriteria->addSelectColumn(\TaskUserPeer::TU_RELATION);
         $oCriteria->addJoin(\TaskUserPeer::USR_UID, \UsersPeer::USR_UID, \Criteria::LEFT_JOIN);
         $oCriteria->addJoin(\TaskUserPeer::TAS_UID, \TaskPeer::TAS_UID, \Criteria::LEFT_JOIN);
         $oCriteria->add(\TaskPeer::PRO_UID, $sProcessUID);
         $oCriteria->add(\TaskUserPeer::TU_TYPE, 1);
         $oDataset = \TaskUserPeer::doSelectRS($oCriteria);
         $oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
         $oDataset->next();
         while ($aRow = $oDataset->getRow()) {
             if ($aRow['TU_RELATION'] == 1) {
                 $aUsers[] = array('usr_uid' => $aRow['USR_UID'], 'usr_username' => $aRow['USR_USERNAME'], 'usr_firstname' => $aRow['USR_FIRSTNAME'], 'usr_lastname' => $aRow['USR_LASTNAME']);
             } else {
                 $criteria = new \Criteria("workflow");
                 $criteria->addSelectColumn(\UsersPeer::USR_UID);
                 $criteria->addJoin(\GroupUserPeer::USR_UID, \UsersPeer::USR_UID, \Criteria::INNER_JOIN);
                 $criteria->add(\GroupUserPeer::GRP_UID, $aRow['USR_UID'], \Criteria::EQUAL);
                 $criteria->add(\UsersPeer::USR_STATUS, "CLOSED", \Criteria::NOT_EQUAL);
                 $rsCriteria = \GroupUserPeer::doSelectRS($criteria);
                 $rsCriteria->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
                 while ($rsCriteria->next()) {
                     $row = $rsCriteria->getRow();
                     $oCriteriaU = new \Criteria('workflow');
                     $oCriteriaU->setDistinct();
                     $oCriteriaU->addSelectColumn(\UsersPeer::USR_FIRSTNAME);
                     $oCriteriaU->addSelectColumn(\UsersPeer::USR_LASTNAME);
                     $oCriteriaU->addSelectColumn(\UsersPeer::USR_USERNAME);
                     $oCriteriaU->addSelectColumn(\UsersPeer::USR_EMAIL);
                     $oCriteriaU->add(\UsersPeer::USR_UID, $row['USR_UID']);
                     $oDatasetU = \UsersPeer::doSelectRS($oCriteriaU);
                     $oDatasetU->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
                     while ($oDatasetU->next()) {
                         $aRowU = $oDatasetU->getRow();
                         $aUsers[] = array('usr_uid' => $row['USR_UID'], 'usr_username' => $aRowU['USR_USERNAME'], 'usr_firstname' => $aRowU['USR_FIRSTNAME'], 'usr_lastname' => $aRowU['USR_LASTNAME']);
                     }
                 }
             }
             $oDataset->next();
         }
         $aUsersGroups = array();
         $exclude = array("");
         for ($i = 0; $i <= count($aUsers) - 1; $i++) {
             if (!in_array(trim($aUsers[$i]["usr_uid"]), $exclude)) {
                 $aUsersGroups[] = $aUsers[$i];
                 $exclude[] = trim($aUsers[$i]["usr_uid"]);
             }
         }
         return $aUsersGroups;
     } catch (Exception $e) {
         throw $e;
     }
 }