Example #1
0
 /**
  * Get criteria for Trigger
  *
  * return object
  */
 public function getTriggerCriteria()
 {
     try {
         $delimiter = \DBAdapter::getStringDelimiter();
         $criteria = new \Criteria("workflow");
         $criteria->addSelectColumn(\TriggersPeer::TRI_UID);
         $criteria->addAsColumn("TRI_TITLE", "CT.CON_VALUE");
         $criteria->addAsColumn("TRI_DESCRIPTION", "CD.CON_VALUE");
         $criteria->addSelectColumn(\TriggersPeer::TRI_TYPE);
         $criteria->addSelectColumn(\TriggersPeer::TRI_WEBBOT);
         $criteria->addSelectColumn(\TriggersPeer::TRI_PARAM);
         $criteria->addAlias("CT", \ContentPeer::TABLE_NAME);
         $criteria->addAlias("CD", \ContentPeer::TABLE_NAME);
         $arrayCondition = array();
         $arrayCondition[] = array(\TriggersPeer::TRI_UID, "CT.CON_ID", \Criteria::EQUAL);
         $arrayCondition[] = array("CT.CON_CATEGORY", $delimiter . "TRI_TITLE" . $delimiter, \Criteria::EQUAL);
         $arrayCondition[] = array("CT.CON_LANG", $delimiter . SYS_LANG . $delimiter, \Criteria::EQUAL);
         $criteria->addJoinMC($arrayCondition, \Criteria::LEFT_JOIN);
         $arrayCondition = array();
         $arrayCondition[] = array(\TriggersPeer::TRI_UID, "CD.CON_ID", \Criteria::EQUAL);
         $arrayCondition[] = array("CD.CON_CATEGORY", $delimiter . "TRI_DESCRIPTION" . $delimiter, \Criteria::EQUAL);
         $arrayCondition[] = array("CD.CON_LANG", $delimiter . SYS_LANG . $delimiter, \Criteria::EQUAL);
         $criteria->addJoinMC($arrayCondition, \Criteria::LEFT_JOIN);
         return $criteria;
     } catch (\Exception $e) {
         throw $e;
     }
 }
Example #2
0
 /**
  * Get list for Events
  * @var string $pro_uid. Uid for Process
  * @var string $filter.
  * @var string $evn_uid. Uid for Process
  *
  * @access public
  * @author Brayan Pereyra (Cochalo) <*****@*****.**>
  * @copyright Colosa - Bolivia
  *
  * @return array
  */
 public function getEvents($pro_uid, $filter = '', $evn_uid = '')
 {
     $pro_uid = $this->validateProUid($pro_uid);
     if ($evn_uid != '') {
         $evn_uid = $this->validateEvnUid($evn_uid);
     }
     $oProcess = new \Process();
     if (!$oProcess->processExists($pro_uid)) {
         throw new \Exception(\G::LoadTranslation("ID_PROCESS_NOT_EXIST", array('pro_uid', $pro_uid)));
     }
     $sDelimiter = \DBAdapter::getStringDelimiter();
     $oCriteria = new \Criteria('workflow');
     $oCriteria->addSelectColumn(\EventPeer::EVN_UID);
     $oCriteria->addSelectColumn(\EventPeer::EVN_ACTION);
     $oCriteria->addSelectColumn(\EventPeer::EVN_STATUS);
     $oCriteria->addSelectColumn(\EventPeer::EVN_WHEN_OCCURS);
     $oCriteria->addSelectColumn(\EventPeer::EVN_RELATED_TO);
     $oCriteria->addAsColumn('EVN_DESCRIPTION', \ContentPeer::CON_VALUE);
     $aConditions = array();
     $aConditions[] = array(\EventPeer::EVN_UID, \ContentPeer::CON_ID);
     $aConditions[] = array(\ContentPeer::CON_CATEGORY, $sDelimiter . 'EVN_DESCRIPTION' . $sDelimiter);
     $aConditions[] = array(\ContentPeer::CON_LANG, $sDelimiter . SYS_LANG . $sDelimiter);
     $oCriteria->addJoinMC($aConditions, \Criteria::LEFT_JOIN);
     $oCriteria->add(\EventPeer::PRO_UID, $pro_uid);
     if ($evn_uid != '') {
         $oCriteria->add(\EventPeer::EVN_UID, $evn_uid);
     }
     switch ($filter) {
         case 'message':
             $oCriteria->add(\EventPeer::EVN_ACTION, "SEND_MESSAGE");
             break;
         case 'conditional':
             $oCriteria->add(\EventPeer::EVN_ACTION, "EXECUTE_CONDITIONAL_TRIGGER");
             break;
         case 'multiple':
             $oCriteria->add(\EventPeer::EVN_ACTION, "EXECUTE_TRIGGER");
             break;
     }
     $eventsArray = array();
     $oDataset = \EventPeer::doSelectRS($oCriteria);
     $oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
     $oDataset->next();
     while ($aRow = $oDataset->getRow()) {
         $oEvent = new \Event();
         $aFields = $oEvent->load($aRow['EVN_UID']);
         $aRow = array_merge($aRow, $aFields);
         $eventsArray[] = array_change_key_case($aRow, CASE_LOWER);
         $oDataset->next();
     }
     if ($evn_uid != '' && empty($eventsArray)) {
         throw new \Exception(\G::LoadTranslation("ID_ROW_DOES_NOT_EXIST"));
     } elseif ($evn_uid != '' && !empty($eventsArray)) {
         return current($eventsArray);
     }
     return $eventsArray;
 }
Example #3
0
 public function getCriteriaDBSList($sProcessUID)
 {
     $sDelimiter = DBAdapter::getStringDelimiter();
     $oCriteria = new Criteria('workflow');
     $oCriteria->addSelectColumn(DbSourcePeer::DBS_UID);
     $oCriteria->addSelectColumn(DbSourcePeer::PRO_UID);
     $oCriteria->addSelectColumn(DbSourcePeer::DBS_TYPE);
     $oCriteria->addAsColumn("DBS_SERVER", "CASE WHEN " . DbSourcePeer::DBS_TYPE . " = 'oracle' AND " . DbSourcePeer::DBS_CONNECTION_TYPE . " = 'TNS' THEN CONCAT('[', " . DbSourcePeer::DBS_TNS . ", ']') ELSE " . DbSourcePeer::DBS_SERVER . " END");
     $oCriteria->addAsColumn("DBS_DATABASE_NAME", "CASE WHEN " . DbSourcePeer::DBS_TYPE . " = 'oracle' AND " . DbSourcePeer::DBS_CONNECTION_TYPE . " = 'TNS' THEN CONCAT('[', " . DbSourcePeer::DBS_TNS . ", ']') ELSE " . DbSourcePeer::DBS_DATABASE_NAME . " END");
     $oCriteria->addSelectColumn(DbSourcePeer::DBS_USERNAME);
     $oCriteria->addSelectColumn(DbSourcePeer::DBS_PASSWORD);
     $oCriteria->addSelectColumn(DbSourcePeer::DBS_PORT);
     $oCriteria->addAsColumn('DBS_DESCRIPTION', 'C.CON_VALUE');
     $oCriteria->addAlias('C', 'CONTENT');
     $aConditions = array();
     $aConditions[] = array(DbSourcePeer::DBS_UID, 'C.CON_ID');
     $aConditions[] = array('C.CON_CATEGORY', $sDelimiter . 'DBS_DESCRIPTION' . $sDelimiter);
     $aConditions[] = array('C.CON_LANG', $sDelimiter . SYS_LANG . $sDelimiter);
     $oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN);
     $oCriteria->add(DbSourcePeer::PRO_UID, $sProcessUID);
     return $oCriteria;
 }
Example #4
0
 /**
  * Verify if exists the title of a Department
  *
  * @param string $departmentTitle      Title
  * @param string $departmentUidExclude Unique id of Department to exclude
  *
  * return bool Return true if exists the title of a Department, false otherwise
  */
 public function existsTitle($departmentTitle, $departmentUidExclude = "")
 {
     try {
         $delimiter = \DBAdapter::getStringDelimiter();
         $criteria = new \Criteria("workflow");
         $criteria->addSelectColumn(\DepartmentPeer::DEP_UID);
         $criteria->addAlias("CT", \ContentPeer::TABLE_NAME);
         $arrayCondition = array();
         $arrayCondition[] = array(\DepartmentPeer::DEP_UID, "CT.CON_ID", \Criteria::EQUAL);
         $arrayCondition[] = array("CT.CON_CATEGORY", $delimiter . "DEPO_TITLE" . $delimiter, \Criteria::EQUAL);
         $arrayCondition[] = array("CT.CON_LANG", $delimiter . SYS_LANG . $delimiter, \Criteria::EQUAL);
         $criteria->addJoinMC($arrayCondition, \Criteria::LEFT_JOIN);
         if ($departmentUidExclude != "") {
             $criteria->add(\DepartmentPeer::DEP_UID, $departmentUidExclude, \Criteria::NOT_EQUAL);
         }
         $criteria->add("CT.CON_VALUE", $departmentTitle, \Criteria::EQUAL);
         $rsCriteria = \DepartmentPeer::doSelectRS($criteria);
         return $rsCriteria->next() ? true : false;
     } catch (\Exception $e) {
         throw $e;
     }
 }
Example #5
0
 public function getCriteriaDBSList($sProcessUID)
 {
     $sDelimiter = DBAdapter::getStringDelimiter();
     $oCriteria = new Criteria('workflow');
     $oCriteria->addSelectColumn(DbSourcePeer::DBS_UID);
     $oCriteria->addSelectColumn(DbSourcePeer::PRO_UID);
     $oCriteria->addSelectColumn(DbSourcePeer::DBS_TYPE);
     $oCriteria->addSelectColumn(DbSourcePeer::DBS_SERVER);
     $oCriteria->addSelectColumn(DbSourcePeer::DBS_DATABASE_NAME);
     $oCriteria->addSelectColumn(DbSourcePeer::DBS_USERNAME);
     $oCriteria->addSelectColumn(DbSourcePeer::DBS_PASSWORD);
     $oCriteria->addSelectColumn(DbSourcePeer::DBS_PORT);
     $oCriteria->addAsColumn('DBS_DESCRIPTION', 'C.CON_VALUE');
     $oCriteria->addAlias('C', 'CONTENT');
     $aConditions = array();
     $aConditions[] = array(DbSourcePeer::DBS_UID, 'C.CON_ID');
     $aConditions[] = array('C.CON_CATEGORY', $sDelimiter . 'DBS_DESCRIPTION' . $sDelimiter);
     $aConditions[] = array('C.CON_LANG', $sDelimiter . SYS_LANG . $sDelimiter);
     $oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN);
     $oCriteria->add(DbSourcePeer::PRO_UID, $sProcessUID);
     return $oCriteria;
 }
Example #6
0
 /**
  * Get SubProcess in Process
  *
  * return object
  */
 public function getSubprocesss($pro_uid, $tas_uid)
 {
     try {
         $pro_uid = $this->validateProUid($pro_uid);
         $tas_uid = $this->validateTasUid($tas_uid);
         $oCriteria = new \Criteria('workflow');
         $del = \DBAdapter::getStringDelimiter();
         $oCriteria->add(SubProcessPeer::PRO_PARENT, $pro_uid);
         $oCriteria->add(SubProcessPeer::TAS_PARENT, $tas_uid);
         $oCriteria->addAsColumn('CON_VALUE', 'C1.CON_VALUE', 'CON_TITLE');
         $oCriteria->addAlias("C1", 'CONTENT');
         $tasTitleConds = array();
         $tasTitleConds[] = array(SubProcessPeer::TAS_PARENT, 'C1.CON_ID');
         $tasTitleConds[] = array('C1.CON_CATEGORY', $del . 'TAS_TITLE' . $del);
         $tasTitleConds[] = array('C1.CON_LANG', $del . SYS_LANG . $del);
         $oCriteria->addJoinMC($tasTitleConds, \Criteria::LEFT_JOIN);
         $oDataset = SubProcessPeer::doSelectRS($oCriteria);
         $oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
         $oDataset->next();
         $aRow = $oDataset->getRow();
         $aRow = array_change_key_case($aRow, CASE_LOWER);
         $response['spr_uid'] = $aRow['sp_uid'];
         $response['spr_pro_parent'] = $aRow['pro_parent'];
         $response['spr_tas_parent'] = $aRow['tas_parent'];
         $response['spr_pro'] = $aRow['pro_uid'];
         $response['spr_tas'] = $aRow['tas_uid'];
         $response['spr_name'] = $aRow['con_value'];
         $response['spr_synchronous'] = $aRow['sp_synchronous'];
         $response['spr_variables_out'] = unserialize($aRow['sp_variables_out']);
         if ((int) $response['spr_synchronous'] === 1) {
             $response['spr_variables_in'] = unserialize($aRow['sp_variables_in']);
         }
         return $response;
     } catch (\Exception $e) {
         throw $e;
     }
 }
Example #7
0
 public function getDepartmentsForUser($userUid)
 {
     $criteria = new Criteria('workflow');
     $criteria->addSelectColumn(UsersPeer::DEP_UID);
     $criteria->addAsColumn('DEP_TITLE', 'C.CON_VALUE');
     $criteria->addAlias('C', 'CONTENT');
     $criteria->addJoin(UsersPeer::DEP_UID, DepartmentPeer::DEP_UID, Criteria::LEFT_JOIN);
     $delimiter = DBAdapter::getStringDelimiter();
     $conditions = array();
     $conditions[] = array(DepartmentPeer::DEP_UID, 'C.CON_ID');
     $conditions[] = array('C.CON_CATEGORY', $delimiter . 'DEPO_TITLE' . $delimiter);
     $conditions[] = array('C.CON_LANG', $delimiter . SYS_LANG . $delimiter);
     $criteria->addJoinMC($conditions, Criteria::LEFT_JOIN);
     $criteria->add(UsersPeer::USR_UID, $userUid);
     $criteria->add(UsersPeer::DEP_UID, '', Criteria::NOT_EQUAL);
     $dataset = DepartmentPeer::doSelectRS($criteria);
     $dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
     $dataset->next();
     $departments = array();
     while ($row = $dataset->getRow()) {
         if (!isset($departments[$row['DEP_UID']])) {
             $departments[$row['DEP_UID']] = $row;
         }
         $dataset->next();
     }
     return $departments;
 }
 public function getExtTriggersList($start, $limit, $sProcessUID = '')
 {
     $sDelimiter = DBAdapter::getStringDelimiter();
     $oCriteria = new Criteria('workflow');
     $oCriteria->addSelectColumn(TriggersPeer::TRI_UID);
     $oCriteria->addSelectColumn(TriggersPeer::PRO_UID);
     $oCriteria->add(TriggersPeer::PRO_UID, $sProcessUID);
     $this->tmpCriteria = clone $oCriteria;
     $oCriteria->addAsColumn('TRI_TITLE', 'C1.CON_VALUE');
     $oCriteria->addAsColumn('TRI_DESCRIPTION', 'C2.CON_VALUE');
     $oCriteria->addAlias('C1', 'CONTENT');
     $oCriteria->addAlias('C2', 'CONTENT');
     $aConditions = array();
     $aConditions[] = array(TriggersPeer::TRI_UID, 'C1.CON_ID');
     $aConditions[] = array('C1.CON_CATEGORY', $sDelimiter . 'TRI_TITLE' . $sDelimiter);
     $aConditions[] = array('C1.CON_LANG', $sDelimiter . SYS_LANG . $sDelimiter);
     $oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN);
     $aConditions = array();
     $aConditions[] = array(TriggersPeer::TRI_UID, 'C2.CON_ID');
     $aConditions[] = array('C2.CON_CATEGORY', $sDelimiter . 'TRI_TITLE' . $sDelimiter);
     $aConditions[] = array('C2.CON_LANG', $sDelimiter . SYS_LANG . $sDelimiter);
     $oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN);
     $oCriteria->add(TriggersPeer::PRO_UID, $sProcessUID);
     $oCriteria->addAscendingOrderByColumn('TRI_TITLE');
     if ($start != '') {
         $oCriteria->setOffset($start);
     }
     if ($limit != '') {
         $oCriteria->setLimit($limit);
     }
     $oDataset = TriggersPeer::doSelectRS($oCriteria);
     $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
     $oDataset->next();
     $triggersArray = "";
     $triggersArray[] = array('TRI_UID' => 'char', 'PRO_UID' => 'char', 'TRI_TITLE' => 'char', 'TRI_DESCRIPTION' => 'char');
     while ($aRow = $oDataset->getRow()) {
         if ($aRow['TRI_TITLE'] == null || $aRow['TRI_TITLE'] == "") {
             // There is no translation for this Trigger name, try to get/regenerate the label
             $triggerO = new Triggers();
             $triggerObj = $triggerO->load($aRow['TRI_UID']);
             $aRow['TRI_TITLE'] = $triggerObj['TRI_TITLE'];
             $aRow['TRI_DESCRIPTION'] = $triggerObj['TRI_DESCRIPTION'];
         }
         $triggersArray[] = $aRow;
         $oDataset->next();
     }
     return $triggersArray;
 }
    /**
     * Assign a inputdocument supervisor of a process
     *
     * @param string $sProcessUID
     * @param string $sInputDocumentUID
     * @param int $sPuiPosition
     * @access public
     */

    public function addProcessSupervisorInputDocument($sProcessUID, $sInputDocumentUID, $sPuiPosition)
    {
        $oTypeInputDocument= \InputDocumentPeer::retrieveByPK($sInputDocumentUID);
        if (is_null( $oTypeInputDocument )) {
            throw new \Exception(\G::LoadTranslation("ID_DOES NOT_INPUT_DOCUMENT", array($sInputDocumentUID)));
        }
        $aResp = array();
        $sPuUIDT = array();
        $sDelimiter = \DBAdapter::getStringDelimiter();
        $oCriteria = new \Criteria('workflow');
        $oCriteria->addSelectColumn(\StepSupervisorPeer::STEP_UID);
        $oCriteria->addAsColumn('INP_DOC_TITLE', 'C.CON_VALUE');
        $oCriteria->addAlias('C', 'CONTENT');
        $aConditions = array();
        $aConditions[] = array(\StepSupervisorPeer::STEP_UID_OBJ, \InputDocumentPeer::INP_DOC_UID);
        $aConditions[] = array(\StepSupervisorPeer::STEP_TYPE_OBJ, $sDelimiter . 'INPUT_DOCUMENT' . $sDelimiter);
        $oCriteria->addJoinMC($aConditions, \Criteria::LEFT_JOIN);
        $aConditions = array();
        $aConditions[] = array(\InputDocumentPeer::INP_DOC_UID, 'C.CON_ID');
        $aConditions[] = array('C.CON_CATEGORY', $sDelimiter . 'INP_DOC_TITLE' . $sDelimiter);
        $aConditions[] = array('C.CON_LANG', $sDelimiter . SYS_LANG . $sDelimiter);
        $oCriteria->addJoinMC($aConditions, \Criteria::LEFT_JOIN);
        $oCriteria->add(\StepSupervisorPeer::PRO_UID, $sProcessUID);
        $oCriteria->add(\StepSupervisorPeer::STEP_UID_OBJ, $sInputDocumentUID);
        $oCriteria->add(\StepSupervisorPeer::STEP_TYPE_OBJ, 'INPUT_DOCUMENT');
        $oCriteria->addAscendingOrderByColumn(\StepSupervisorPeer::STEP_POSITION);
        $oDataset = \StepSupervisorPeer::doSelectRS($oCriteria);
        $oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
        $oDataset->next();
        while ($aRow = $oDataset->getRow()) {
            $sPuUIDT = $aRow['STEP_UID'];
            $oDataset->next();
        }
        if (sizeof($sPuUIDT) == 0) {
            $oStepSupervisor = new \StepSupervisor();
            $oStepSupervisor->create(array('PRO_UID' => $sProcessUID,
                                           'STEP_TYPE_OBJ' => "INPUT_DOCUMENT",
                                           'STEP_UID_OBJ' => $sInputDocumentUID,
                                           'STEP_POSITION' => $oStepSupervisor->getNextPosition($sProcessUID, "INPUT_DOCUMENT")));
            $sDelimiter = \DBAdapter::getStringDelimiter();
            $oCriteria = new \Criteria('workflow');
            $oCriteria->addSelectColumn(\StepSupervisorPeer::STEP_UID);
            $oCriteria->addSelectColumn(\StepSupervisorPeer::PRO_UID);
            $oCriteria->addSelectColumn(\StepSupervisorPeer::STEP_TYPE_OBJ);
            $oCriteria->addSelectColumn(\StepSupervisorPeer::STEP_UID_OBJ);
            $oCriteria->addSelectColumn(\StepSupervisorPeer::STEP_POSITION);
            $oCriteria->addAsColumn('INP_DOC_TITLE', 'C.CON_VALUE');
            $oCriteria->addAlias('C', 'CONTENT');
            $aConditions = array();
            $aConditions[] = array(\StepSupervisorPeer::STEP_UID_OBJ, \InputDocumentPeer::INP_DOC_UID);
            $aConditions[] = array(\StepSupervisorPeer::STEP_TYPE_OBJ, $sDelimiter . 'INPUT_DOCUMENT' . $sDelimiter);
            $oCriteria->addJoinMC($aConditions, \Criteria::LEFT_JOIN);
            $aConditions = array();
            $aConditions[] = array(\InputDocumentPeer::INP_DOC_UID, 'C.CON_ID');
            $aConditions[] = array('C.CON_CATEGORY', $sDelimiter . 'INP_DOC_TITLE' . $sDelimiter);
            $aConditions[] = array('C.CON_LANG', $sDelimiter . SYS_LANG . $sDelimiter);
            $oCriteria->addJoinMC($aConditions, \Criteria::LEFT_JOIN);
            $oCriteria->add(\StepSupervisorPeer::PRO_UID, $sProcessUID);
            $oCriteria->add(\StepSupervisorPeer::STEP_UID_OBJ, $sInputDocumentUID);
            $oCriteria->add(\StepSupervisorPeer::STEP_TYPE_OBJ, 'INPUT_DOCUMENT');
            $oCriteria->addAscendingOrderByColumn(\StepSupervisorPeer::STEP_POSITION);
            $oDataset = \StepSupervisorPeer::doSelectRS($oCriteria);
            $oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
            $oDataset->next();
            while ($aRow = $oDataset->getRow()) {
                $aResp = array('pui_uid' => $aRow['STEP_UID'],
                               'pui_position' => $aRow['STEP_POSITION'],
                               'input_doc_uid' => $aRow['STEP_UID_OBJ']);
                $oDataset->next();
                $aRespPosition = $this->updateProcessSupervisorInputDocument($sProcessUID ,$aRow['STEP_UID'], $sPuiPosition);
                $aResp = array_merge(array('input_doc_title' => $aRow['INP_DOC_TITLE']), $aRespPosition);
            }
            return $aResp;
        } else {
            throw new \Exception(\G::LoadTranslation("ID_RELATION_EXIST"));
        }
    }
Example #10
0
 public function getValidateSelfService($data)
 {
     $paused = false;
     $data = array_change_key_case($data, CASE_LOWER);
     $sTaskUID = $data['act_uid'];
     $caseType = isset($data['case_type']) ? $data['case_type'] == 'assigned' ? $data['case_type'] : 'unassigned' : 'unassigned';
     $response = new \stdclass();
     $oCriteria = new \Criteria();
     $arrayCondition = array();
     $arrayCondition[] = array(\AppDelegationPeer::APP_UID, \AppDelayPeer::APP_UID);
     $arrayCondition[] = array(\AppDelegationPeer::DEL_INDEX, \AppDelayPeer::APP_DEL_INDEX);
     $oCriteria->addJoinMC($arrayCondition, \Criteria::LEFT_JOIN);
     $oCriteria->add(\AppDelegationPeer::TAS_UID, $sTaskUID);
     $oCriteria->add(\AppDelayPeer::APP_DISABLE_ACTION_USER, "0");
     $oResult = \AppDelegationPeer::doSelectOne($oCriteria);
     if (!empty($oResult)) {
         $paused = true;
     }
     $response->paused = $paused;
     $oCriteria = new \Criteria();
     $oCriteria->add(\AppDelegationPeer::DEL_THREAD_STATUS, "OPEN");
     $oCriteria->add(\AppDelegationPeer::TAS_UID, $sTaskUID);
     if ($caseType == 'unassigned') {
         $oCriteria->add(\AppDelegationPeer::USR_UID, "", \Criteria::EQUAL);
     }
     $oApplication = \AppDelegationPeer::doSelectOne($oCriteria);
     $response->result = true;
     if (!empty($oApplication) || $paused) {
         $response->result = false;
         $response->message = G::LoadTranslation('ID_CURRENT_ASSING_TYPE_WITH_CASES');
     }
     return $response;
 }
Example #11
0
 public function getOwnersByType($data)
 {
     $this->setResponseType('json');
     $result = new stdclass();
     $result->status = 'OK';
     try {
         switch ($data->type) {
             case 'EVERYBODY':
                 $result->total = 0;
                 $result->owners = array();
                 break;
             case 'USER':
                 require_once 'classes/model/Users.php';
                 $users = array();
                 $usersInstance = new Users();
                 $allUsers = $usersInstance->getAll();
                 foreach ($allUsers->data as $user) {
                     $users[] = array('OWNER_UID' => $user['USR_UID'], 'OWNER_NAME' => $user['USR_FIRSTNAME'] . ' ' . $user['USR_LASTNAME']);
                 }
                 usort($users, function ($str1, $str2) {
                     return strcmp(strtolower($str1["OWNER_NAME"]), strtolower($str2["OWNER_NAME"]));
                 });
                 $result->total = $allUsers->totalCount;
                 $result->owners = $users;
                 break;
             case 'DEPARTMENT':
                 require_once 'classes/model/Department.php';
                 require_once 'classes/model/Content.php';
                 $departments = array();
                 //SELECT
                 $criteria = new Criteria('workflow');
                 $criteria->setDistinct();
                 $criteria->addSelectColumn(DepartmentPeer::DEP_UID);
                 $criteria->addSelectColumn(ContentPeer::CON_VALUE);
                 //FROM
                 $conditions = array();
                 $conditions[] = array(DepartmentPeer::DEP_UID, ContentPeer::CON_ID);
                 $conditions[] = array(ContentPeer::CON_CATEGORY, DBAdapter::getStringDelimiter() . 'DEPO_TITLE' . DBAdapter::getStringDelimiter());
                 $conditions[] = array(ContentPeer::CON_LANG, DBAdapter::getStringDelimiter() . 'en' . DBAdapter::getStringDelimiter());
                 $criteria->addJoinMC($conditions, Criteria::LEFT_JOIN);
                 //WHERE
                 $criteria->add(DepartmentPeer::DEP_STATUS, 'ACTIVE');
                 //ORDER BY
                 $criteria->addAscendingOrderByColumn(ContentPeer::CON_VALUE);
                 $dataset = DepartmentPeer::doSelectRS($criteria);
                 $dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
                 $dataset->next();
                 while ($row = $dataset->getRow()) {
                     $departments[] = array('OWNER_UID' => $row['DEP_UID'], 'OWNER_NAME' => $row['CON_VALUE']);
                     $dataset->next();
                 }
                 $result->total = DepartmentPeer::doCount($criteria);
                 $result->owners = $departments;
                 break;
             case 'GROUP':
                 require_once 'classes/model/Groupwf.php';
                 require_once 'classes/model/Content.php';
                 $groups = array();
                 //SELECT
                 $criteria = new Criteria('workflow');
                 $criteria->setDistinct();
                 $criteria->addSelectColumn(GroupwfPeer::GRP_UID);
                 $criteria->addSelectColumn(ContentPeer::CON_VALUE);
                 //FROM
                 $conditions = array();
                 $conditions[] = array(GroupwfPeer::GRP_UID, ContentPeer::CON_ID);
                 $conditions[] = array(ContentPeer::CON_CATEGORY, DBAdapter::getStringDelimiter() . 'GRP_TITLE' . DBAdapter::getStringDelimiter());
                 $conditions[] = array(ContentPeer::CON_LANG, DBAdapter::getStringDelimiter() . 'en' . DBAdapter::getStringDelimiter());
                 $criteria->addJoinMC($conditions, Criteria::LEFT_JOIN);
                 //WHERE
                 $criteria->add(GroupwfPeer::GRP_STATUS, 'ACTIVE');
                 //ORDER BY
                 $criteria->addAscendingOrderByColumn(ContentPeer::CON_VALUE);
                 $dataset = GroupwfPeer::doSelectRS($criteria);
                 $dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
                 $dataset->next();
                 while ($row = $dataset->getRow()) {
                     $groups[] = array('OWNER_UID' => $row['GRP_UID'], 'OWNER_NAME' => $row['CON_VALUE']);
                     $dataset->next();
                 }
                 $result->total = GroupwfPeer::doCount($criteria);
                 $result->owners = $groups;
                 break;
         }
     } catch (Exception $error) {
         $result->status = 'ERROR';
         $result->message = $error->getMessage();
     }
     return $result;
 }
Example #12
0
 /** 
  * This function looks for an special case it has a condition
  * 
  * 
  * @name generatedReport2_filter
  *
  * @param string $from
  * @param string $to
  * @param string $startedby
  * @return object
  */
 function generatedReport2_filter($from, $to, $startedby)
 {
     $this->reportsPatch();
     require_once 'classes/model/AppDelegation.php';
     require_once 'classes/model/Application.php';
     require_once 'classes/model/Users.php';
     $oCriteria = new Criteria('workflow');
     $del = DBAdapter::getStringDelimiter();
     $oCriteria->addSelectColumn(AppDelegationPeer::PRO_UID);
     $oCriteria->addAsColumn("MIN", "MIN(" . AppDelegationPeer::DEL_DURATION . ")");
     $oCriteria->addAsColumn("MAX", "MAX(" . AppDelegationPeer::DEL_DURATION . ")");
     $oCriteria->addAsColumn('PRO_TITLE', 'C1.CON_VALUE');
     $oCriteria->addAlias("C1", 'CONTENT');
     $proTitleConds = array();
     $proTitleConds[] = array(AppDelegationPeer::PRO_UID, 'C1.CON_ID');
     $proTitleConds[] = array('C1.CON_CATEGORY', $del . 'PRO_TITLE' . $del);
     $proTitleConds[] = array('C1.CON_LANG', $del . SYS_LANG . $del);
     $oCriteria->addJoinMC($proTitleConds, Criteria::LEFT_JOIN);
     $oCriteria->addGroupByColumn(AppDelegationPeer::PRO_UID);
     $oCriteria->addGroupByColumn('C1.CON_VALUE');
     $oCriteria->add($oCriteria->getNewCriterion(AppDelegationPeer::DEL_INIT_DATE, $from . ' 00:00:00', Criteria::GREATER_EQUAL)->addAnd($oCriteria->getNewCriterion(AppDelegationPeer::DEL_INIT_DATE, $to . ' 23:59:59', Criteria::LESS_EQUAL)));
     if ($startedby != '') {
         $oCriteria->add(AppDelegationPeer::USR_UID, $startedby);
     }
     $oDataset = AppDelegationPeer::doSelectRS($oCriteria);
     $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
     $oDataset->next();
     $month = date('Y-m-d', mktime(0, 0, 0, date("m") - 1, date("d"), date("Y")));
     $lastmonth = date('Y-m-d', mktime(0, 0, 0, date("m") - 2, date("d"), date("Y")));
     $day = mktime(0, 0, 0, date("m"), date("d") - 1, date("Y"));
     $lastday = mktime(0, 0, 0, date("m"), date("d") - 2, date("Y"));
     $aProcess[] = array('PRO_UID' => 'char', 'PRO_TITLE' => 'char', 'CANTCASES' => 'integer', 'MIN' => 'float', 'MAX' => 'float', 'CASELASTMONTH' => 'integer', 'CASELASTDAY' => 'integer');
     while ($aRow = $oDataset->getRow()) {
         $oCriteria2 = new Criteria('workflow');
         $oCriteria2->addSelectColumn(ApplicationPeer::PRO_UID);
         $oCriteria2->addAsColumn("CANTCASES", "COUNT(*)");
         $oCriteria2->add(ApplicationPeer::PRO_UID, $aRow['PRO_UID']);
         if ($startedby != '') {
             $oCriteria2->add(ApplicationPeer::APP_INIT_USER, $startedby);
         }
         $oCriteria2->addGroupByColumn(ApplicationPeer::PRO_UID);
         $oDataset2 = AppDelegationPeer::doSelectRS($oCriteria2);
         $oDataset2->setFetchmode(ResultSet::FETCHMODE_ASSOC);
         $oDataset2->next();
         $aRow2 = $oDataset2->getRow();
         $cant = $aRow2['CANTCASES'];
         $oCriteria2 = new Criteria('workflow');
         $oCriteria2->addSelectColumn(ApplicationPeer::PRO_UID);
         $oCriteria2->addAsColumn("CANTCASES", "COUNT(*)");
         $oCriteria2->add(ApplicationPeer::PRO_UID, $aRow['PRO_UID']);
         $oCriteria2->add(ApplicationPeer::APP_INIT_DATE, $lastmonth, Criteria::GREATER_EQUAL);
         $oCriteria2->add(ApplicationPeer::APP_INIT_DATE, $month, Criteria::LESS_EQUAL);
         if ($startedby != '') {
             $oCriteria2->add(ApplicationPeer::APP_INIT_USER, $startedby);
         }
         $oCriteria2->addGroupByColumn(ApplicationPeer::PRO_UID);
         $oDataset2 = AppDelegationPeer::doSelectRS($oCriteria2);
         $oDataset2->setFetchmode(ResultSet::FETCHMODE_ASSOC);
         $oDataset2->next();
         $aRow2 = $oDataset2->getRow();
         $cant1 = $aRow2['CANTCASES'];
         $oCriteria2 = new Criteria('workflow');
         $oCriteria2->addSelectColumn(ApplicationPeer::PRO_UID);
         $oCriteria2->addAsColumn("CANTCASES", "COUNT(*)");
         $oCriteria2->add(ApplicationPeer::PRO_UID, $aRow['PRO_UID']);
         $oCriteria2->add(ApplicationPeer::APP_INIT_DATE, $lastday, Criteria::GREATER_EQUAL);
         $oCriteria2->add(ApplicationPeer::APP_INIT_DATE, $day, Criteria::LESS_EQUAL);
         if ($startedby != '') {
             $oCriteria2->add(ApplicationPeer::APP_INIT_USER, $startedby);
         }
         $oCriteria2->addGroupByColumn(ApplicationPeer::PRO_UID);
         $oDataset2 = AppDelegationPeer::doSelectRS($oCriteria2);
         $oDataset2->setFetchmode(ResultSet::FETCHMODE_ASSOC);
         $oDataset2->next();
         $aRow2 = $oDataset2->getRow();
         $cant2 = $aRow2['CANTCASES'];
         /*$aProcess[] = array('PRO_UID'   => $aRow['PRO_UID'],
            'PRO_TITLE' => $aRow['PRO_TITLE'],
            'CANTCASES' => $cant,
            'CASELASTMONTH' => $cant1,
            'CASELASTDAY' => $cant2
           );*/
         $aProcess[] = array('PRO_UID' => $aRow['PRO_UID'], 'PRO_TITLE' => $aRow['PRO_TITLE'], 'CANTCASES' => $cant, 'MIN' => number_format($aRow['MIN'], 2), 'MAX' => number_format($aRow['MAX'], 2), 'CASELASTMONTH' => number_format($cant1, 2), 'CASELASTDAY' => number_format($cant2, 2));
         $oDataset->next();
     }
     global $_DBArray;
     $_DBArray['reports'] = $aProcess;
     $_SESSION['_DBArray'] = $_DBArray;
     G::LoadClass('ArrayPeer');
     $oCriteria = new Criteria('dbarray');
     $oCriteria->setDBArrayTable('reports');
     return $oCriteria;
 }
Example #13
0
 function calculateExecutionDateMultiple()
 {
     try {
         $rowsCreated = 0;
         $rowsRejected = 0;
         G::LoadClass('dates');
         $oDates = new dates();
         // SELECT TASK2.* ,
         //   EVENT.EVN_UID, EVENT.PRO_UID, EVENT.EVN_TAS_UID_FROM,
         //   EVENT.EVN_TAS_ESTIMATED_DURATION, EVENT.EVN_WHEN,
         //   EVENT.EVN_WHEN_OCCURS, EVENT.EVN_RELATED_TO, APP_DELEGATION.APP_UID, APP_DELEGATION.DEL_INDEX, APP_DELEGATION.TAS_UID,
         //   APP_DELEGATION.DEL_DELEGATE_DATE, APP_DELEGATION.DEL_INIT_DATE, APP_DELEGATION.DEL_TASK_DUE_DATE,
         //   APP_DELEGATION.DEL_FINISH_DATE
         // FROM
         //   APP_DELEGATION
         //   LEFT JOIN EVENT ON (APP_DELEGATION.TAS_UID=EVENT.EVN_TAS_UID_FROM)
         //   LEFT JOIN APP_EVENT ON (APP_DELEGATION.APP_UID=APP_EVENT.APP_UID AND APP_DELEGATION.DEL_INDEX=APP_EVENT.DEL_INDEX)
         //   LEFT JOIN APP_DELEGATION AS TASK2 ON (TASK2.TAS_UID = EVENT.EVN_TAS_UID_TO AND TASK2.APP_UID = APP_DELEGATION.APP_UID )
         //
         // WHERE
         //   APP_EVENT.APP_UID IS NULL
         //   AND EVENT.EVN_STATUS='ACTIVE'
         //   AND EVENT.EVN_RELATED_TO='MULTIPLE'
         //   AND TASK2.DEL_FINISH_DATE IS NULL
         //get info about the Event and the APP_DELEGATION to process
         $oCriteria = new Criteria('workflow');
         $oCriteria->addSelectColumn(EventPeer::EVN_UID);
         $oCriteria->addSelectColumn(EventPeer::PRO_UID);
         $oCriteria->addSelectColumn(EventPeer::EVN_TAS_UID_FROM);
         $oCriteria->addSelectColumn(EventPeer::EVN_TAS_ESTIMATED_DURATION);
         $oCriteria->addSelectColumn(EventPeer::EVN_WHEN);
         $oCriteria->addSelectColumn(EventPeer::EVN_WHEN_OCCURS);
         $oCriteria->addSelectColumn(EventPeer::EVN_RELATED_TO);
         $oCriteria->addSelectColumn(AppDelegationPeer::APP_UID);
         $oCriteria->addSelectColumn(AppDelegationPeer::DEL_INDEX);
         $oCriteria->addSelectColumn(AppDelegationPeer::TAS_UID);
         $oCriteria->addSelectColumn(AppDelegationPeer::DEL_DELEGATE_DATE);
         $oCriteria->addSelectColumn(AppDelegationPeer::DEL_INIT_DATE);
         $oCriteria->addSelectColumn(AppDelegationPeer::DEL_TASK_DUE_DATE);
         $oCriteria->addSelectColumn(AppDelegationPeer::DEL_FINISH_DATE);
         $aConditions = array();
         $aConditions[] = array(AppDelegationPeer::TAS_UID, EventPeer::EVN_TAS_UID_FROM);
         //$aConditions[] = array(AppDelegationPeer::DEL_FINISH_DATE, null, Criteria::IS_NULL );
         $oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN);
         $aConditions = array();
         $aConditions[] = array(AppDelegationPeer::APP_UID, AppEventPeer::APP_UID);
         $aConditions[] = array(AppDelegationPeer::DEL_INDEX, AppEventPeer::DEL_INDEX);
         $aConditions[] = array(EventPeer::EVN_UID, AppEventPeer::EVN_UID);
         $oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN);
         $oCriteria->addAlias('DEL2', 'APP_DELEGATION');
         $aConditions = array();
         $aConditions[] = array(AppDelegationPeer::APP_UID, 'DEL2.APP_UID');
         $aConditions[] = array(EventPeer::EVN_TAS_UID_TO, 'DEL2.TAS_UID');
         $oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN);
         $oCriteria->add(AppEventPeer::APP_UID, null, Criteria::ISNULL);
         $oCriteria->add(EventPeer::EVN_STATUS, 'ACTIVE');
         $oCriteria->add(EventPeer::EVN_RELATED_TO, 'MULTIPLE');
         $oCriteria->add('DEL2.DEL_FINISH_DATE', null, Criteria::ISNULL);
         //      $oCriteria->add(AppDelegationPeer::DEL_DELEGATE_DATE, date('Y-m-d') , Criteria::GREATER_THAN );
         $oDataset = EventPeer::doSelectRs($oCriteria);
         $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
         $oDataset->next();
         while ($aData = $oDataset->getRow()) {
             $estimatedDuration = (double) $aData['EVN_TAS_ESTIMATED_DURATION'];
             $when = (double) $aData['EVN_WHEN'];
             $whenOccurs = $aData['EVN_WHEN_OCCURS'];
             if ($whenOccurs == 'AFTER_TIME') {
                 //for multiple $sDueDate = date('Y-m-d H:i:s', $oDates->calculateDate($aData['DEL_DELEGATE_DATE'], $estimatedDuration, 'days', 1));
                 $sDueDate = $aData['DEL_TASK_DUE_DATE'];
                 $calculatedDueDateA = $oDates->calculateDate($sDueDate, $when, 'days', 1);
                 $sActionDate = date('Y-m-d H:i:s', $calculatedDueDateA['DUE_DATE_SECONDS']);
                 $validStartDate = $sActionDate >= $aData['DEL_DELEGATE_DATE'];
             } else {
                 $sDueDate = $aData['DEL_DELEGATE_DATE'];
                 $calculatedDueDateA = $oDates->calculateDate($sDueDate, $when, 'days', 1);
                 $sActionDate = date('Y-m-d H:i:s', $calculatedDueDateA['DUE_DATE_SECONDS']);
                 $validStartDate = $sActionDate >= $aData['DEL_DELEGATE_DATE'];
             }
             $aData['APP_EVN_ACTION_DATE'] = $sActionDate;
             if ($validStartDate) {
                 $rowsCreated++;
                 $oAppEvent = new AppEvent();
                 $oAppEvent->create($aData);
             } else {
                 $rowsRejected++;
                 $aData['APP_EVN_STATUS'] = 'INVALID';
                 $oAppEvent = new AppEvent();
                 $oAppEvent->create($aData);
             }
             $oDataset->next();
         }
         return "Created {$rowsCreated} MULTIPLE rows in APP_EVENT and rejected {$rowsRejected} rows ";
     } catch (Exception $oError) {
         throw new Exception($oError->getMessage());
     }
 }
Example #14
0
     global $G_PUBLISH;
     $G_PUBLISH = new Publisher();
     $G_PUBLISH->AddContent('propeltable', 'paged-table', 'tracker/tracker_StageTasks', $oCriteria, array('PRO_UID' => $oData->pro_uid, 'STG_UID' => $oData->stg_uid));
     G::RenderPage('publish', 'raw');
     break;
 case 'availableTasksForTheStage':
     require_once 'classes/model/Process.php';
     require_once 'classes/model/Task.php';
     $oCriteria = new Criteria('workflow');
     $oCriteria->addSelectColumn(TaskPeer::TAS_UID);
     $oCriteria->addAsColumn('TAS_TITLE', ContentPeer::CON_VALUE);
     $aConditions = array();
     $aConditions[] = array(0 => TaskPeer::TAS_UID, 1 => ContentPeer::CON_ID);
     $aConditions[] = array(0 => ContentPeer::CON_CATEGORY, 1 => DBAdapter::getStringDelimiter() . 'TAS_TITLE' . DBAdapter::getStringDelimiter());
     $aConditions[] = array(0 => ContentPeer::CON_LANG, 1 => DBAdapter::getStringDelimiter() . SYS_LANG . DBAdapter::getStringDelimiter());
     $oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN);
     $oCriteria->add(TaskPeer::PRO_UID, $_POST['PRO_UID']);
     $oCriteria->add(TaskPeer::STG_UID, '');
     $oCriteria->addAscendingOrderByColumn('TAS_TITLE');
     global $G_PUBLISH;
     $G_PUBLISH = new Publisher();
     $G_PUBLISH->AddContent('propeltable', 'paged-table', 'tracker/tracker_AvailableStageTasks', $oCriteria, array('STG_UID' => $_POST['STG_UID']));
     G::RenderPage('publish', 'raw');
     break;
 case 'assignTaskToStage':
     require_once 'classes/model/Task.php';
     $oCriteria1 = new Criteria('workflow');
     $oCriteria1->add(TaskPeer::TAS_UID, $_POST['TAS_UID']);
     $oCriteria2 = new Criteria('workflow');
     $oCriteria2->add(TaskPeer::STG_UID, $_POST['STG_UID']);
     BasePeer::doUpdate($oCriteria1, $oCriteria2, Propel::getConnection('workflow'));
Example #15
0
    public function getSelfServiceCasesByEvaluate($userUid)

    {

        try {

            G::LoadClass("groups");



            $arrayAppAssignSelfServiceValueData = array();



            //Get APP_UIDs

            $group = new Groups();



            $arrayUid   = $group->getActiveGroupsForAnUser($userUid); //Set UIDs of Groups (Groups of User)

            $arrayUid[] = $userUid;                                   //Set UID of User



            $criteria = new Criteria("workflow");



            $criteria->setDistinct();

            $criteria->addSelectColumn(AppAssignSelfServiceValuePeer::APP_UID);

            $criteria->addSelectColumn(AppAssignSelfServiceValuePeer::DEL_INDEX);

            $criteria->addSelectColumn(AppAssignSelfServiceValuePeer::TAS_UID);



            $arrayCondition = array();

            $arrayCondition[] = array(AppAssignSelfServiceValuePeer::APP_UID, AppDelegationPeer::APP_UID, Criteria::EQUAL);

            $arrayCondition[] = array(AppAssignSelfServiceValuePeer::DEL_INDEX, AppDelegationPeer::DEL_INDEX, Criteria::EQUAL);

            $arrayCondition[] = array(AppAssignSelfServiceValuePeer::TAS_UID, AppDelegationPeer::TAS_UID, Criteria::EQUAL);

            $criteria->addJoinMC($arrayCondition, Criteria::LEFT_JOIN);



            $criteria->add(AppDelegationPeer::USR_UID, "", Criteria::EQUAL);

            $criteria->add(AppDelegationPeer::DEL_THREAD_STATUS, "OPEN", Criteria::EQUAL);



            $criterionAux = null;



            foreach ($arrayUid as $value) {

                if (is_null($criterionAux)) {

                    $criterionAux = $criteria->getNewCriterion(AppAssignSelfServiceValuePeer::GRP_UID, "%$value%", Criteria::LIKE);

                } else {

                    $criterionAux = $criteria->getNewCriterion(AppAssignSelfServiceValuePeer::GRP_UID, "%$value%", Criteria::LIKE)->addOr($criterionAux);

                }

            }



            $criteria->add($criterionAux);



            $rsCriteria = AppAssignSelfServiceValuePeer::doSelectRS($criteria);

            $rsCriteria->setFetchmode(ResultSet::FETCHMODE_ASSOC);



            while ($rsCriteria->next()) {

                $row = $rsCriteria->getRow();



                $arrayAppAssignSelfServiceValueData[] = array(

                    "APP_UID" => $row["APP_UID"],

                    "DEL_INDEX" => $row["DEL_INDEX"],

                    "TAS_UID" => $row["TAS_UID"]

                );

            }



            //Return

            return $arrayAppAssignSelfServiceValueData;

        } catch (Exception $e) {

            throw $e;

        }

    }
Example #16
0
 /**
  * Get available Case Tracker Objects of a Process
  *
  * @param string $processUid Unique id of Process
  *
  * return array Return an array with the Case Tracker Objects available of a Process
  */
 public function getAvailableCaseTrackerObjects($processUid)
 {
     try {
         $arrayAvailableCaseTrackerObject = array();
         //Verify data
         $process = new \ProcessMaker\BusinessModel\Process();
         $process->throwExceptionIfNotExistsProcess($processUid, "prj_uid");
         //Get Uids
         $arrayDynaFormUid = array();
         $arrayInputDocumentUid = array();
         $arrayOutputDocumentUid = array();
         $criteria = new \Criteria("workflow");
         $criteria->add(\CaseTrackerObjectPeer::PRO_UID, $processUid, \Criteria::EQUAL);
         $rsCriteria = \CaseTrackerObjectPeer::doSelectRS($criteria);
         $rsCriteria->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
         while ($rsCriteria->next()) {
             $row = $rsCriteria->getRow();
             switch ($row["CTO_TYPE_OBJ"]) {
                 case "DYNAFORM":
                     $arrayDynaFormUid[] = $row["CTO_UID_OBJ"];
                     break;
                 case "INPUT_DOCUMENT":
                     $arrayInputDocumentUid[] = $row["CTO_UID_OBJ"];
                     break;
                 case "OUTPUT_DOCUMENT":
                     $arrayOutputDocumentUid[] = $row["CTO_UID_OBJ"];
                     break;
             }
         }
         //Array DB
         $arrayCaseTrackerObject = array();
         $delimiter = \DBAdapter::getStringDelimiter();
         //DynaForms
         $criteria = new \Criteria("workflow");
         $criteria->addSelectColumn(\DynaformPeer::DYN_UID);
         $criteria->addAsColumn("DYN_TITLE", "CT.CON_VALUE");
         $criteria->addAsColumn("DYN_DESCRIPTION", "CD.CON_VALUE");
         $criteria->addAlias("CT", \ContentPeer::TABLE_NAME);
         $criteria->addAlias("CD", \ContentPeer::TABLE_NAME);
         $arrayCondition = array();
         $arrayCondition[] = array(\DynaformPeer::DYN_UID, "CT.CON_ID", \Criteria::EQUAL);
         $arrayCondition[] = array("CT.CON_CATEGORY", $delimiter . "DYN_TITLE" . $delimiter, \Criteria::EQUAL);
         $arrayCondition[] = array("CT.CON_LANG", $delimiter . SYS_LANG . $delimiter, \Criteria::EQUAL);
         $criteria->addJoinMC($arrayCondition, \Criteria::LEFT_JOIN);
         $arrayCondition = array();
         $arrayCondition[] = array(\DynaformPeer::DYN_UID, "CD.CON_ID", \Criteria::EQUAL);
         $arrayCondition[] = array("CD.CON_CATEGORY", $delimiter . "DYN_DESCRIPTION" . $delimiter, \Criteria::EQUAL);
         $arrayCondition[] = array("CD.CON_LANG", $delimiter . SYS_LANG . $delimiter, \Criteria::EQUAL);
         $criteria->addJoinMC($arrayCondition, \Criteria::LEFT_JOIN);
         $criteria->add(\DynaformPeer::PRO_UID, $processUid, \Criteria::EQUAL);
         $criteria->add(\DynaformPeer::DYN_UID, $arrayDynaFormUid, \Criteria::NOT_IN);
         $criteria->add(\DynaformPeer::DYN_TYPE, "xmlform", \Criteria::EQUAL);
         $rsCriteria = \DynaformPeer::doSelectRS($criteria);
         $rsCriteria->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
         while ($rsCriteria->next()) {
             $row = $rsCriteria->getRow();
             if ($row["DYN_TITLE"] . "" == "") {
                 //There is no transaltion for this Document name, try to get/regenerate the label
                 $row["DYN_TITLE"] = \Content::Load("DYN_TITLE", "", $row["DYN_UID"], SYS_LANG);
             }
             $arrayCaseTrackerObject[] = array("obj_uid" => $row["DYN_UID"], "obj_title" => $row["DYN_TITLE"], "obj_description" => $row["DYN_DESCRIPTION"], "obj_type" => "DYNAFORM");
         }
         //InputDocuments
         $criteria = new \Criteria("workflow");
         $criteria->addSelectColumn(\InputDocumentPeer::INP_DOC_UID);
         $criteria->addAsColumn("INP_DOC_TITLE", "CT.CON_VALUE");
         $criteria->addAsColumn("INP_DOC_DESCRIPTION", "CD.CON_VALUE");
         $criteria->addAlias("CT", \ContentPeer::TABLE_NAME);
         $criteria->addAlias("CD", \ContentPeer::TABLE_NAME);
         $arrayCondition = array();
         $arrayCondition[] = array(\InputDocumentPeer::INP_DOC_UID, "CT.CON_ID", \Criteria::EQUAL);
         $arrayCondition[] = array("CT.CON_CATEGORY", $delimiter . "INP_DOC_TITLE" . $delimiter, \Criteria::EQUAL);
         $arrayCondition[] = array("CT.CON_LANG", $delimiter . SYS_LANG . $delimiter, \Criteria::EQUAL);
         $criteria->addJoinMC($arrayCondition, \Criteria::LEFT_JOIN);
         $arrayCondition = array();
         $arrayCondition[] = array(\InputDocumentPeer::INP_DOC_UID, "CD.CON_ID", \Criteria::EQUAL);
         $arrayCondition[] = array("CD.CON_CATEGORY", $delimiter . "INP_DOC_DESCRIPTION" . $delimiter, \Criteria::EQUAL);
         $arrayCondition[] = array("CD.CON_LANG", $delimiter . SYS_LANG . $delimiter, \Criteria::EQUAL);
         $criteria->addJoinMC($arrayCondition, \Criteria::LEFT_JOIN);
         $criteria->add(\InputDocumentPeer::PRO_UID, $processUid, \Criteria::EQUAL);
         $criteria->add(\InputDocumentPeer::INP_DOC_UID, $arrayInputDocumentUid, \Criteria::NOT_IN);
         $rsCriteria = \InputDocumentPeer::doSelectRS($criteria);
         $rsCriteria->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
         while ($rsCriteria->next()) {
             $row = $rsCriteria->getRow();
             if ($row["INP_DOC_TITLE"] . "" == "") {
                 //There is no transaltion for this Document name, try to get/regenerate the label
                 $row["INP_DOC_TITLE"] = \Content::Load("INP_DOC_TITLE", "", $row["INP_DOC_UID"], SYS_LANG);
             }
             $arrayCaseTrackerObject[] = array("obj_uid" => $row["INP_DOC_UID"], "obj_title" => $row["INP_DOC_TITLE"], "obj_description" => $row["INP_DOC_DESCRIPTION"], "obj_type" => "INPUT_DOCUMENT");
         }
         //OutputDocuments
         $criteria = new \Criteria("workflow");
         $criteria->addSelectColumn(\OutputDocumentPeer::OUT_DOC_UID);
         $criteria->addAsColumn("OUT_DOC_TITLE", "CT.CON_VALUE");
         $criteria->addAsColumn("OUT_DOC_DESCRIPTION", "CD.CON_VALUE");
         $criteria->addAlias("CT", \ContentPeer::TABLE_NAME);
         $criteria->addAlias("CD", \ContentPeer::TABLE_NAME);
         $arrayCondition = array();
         $arrayCondition[] = array(\OutputDocumentPeer::OUT_DOC_UID, "CT.CON_ID", \Criteria::EQUAL);
         $arrayCondition[] = array("CT.CON_CATEGORY", $delimiter . "OUT_DOC_TITLE" . $delimiter, \Criteria::EQUAL);
         $arrayCondition[] = array("CT.CON_LANG", $delimiter . SYS_LANG . $delimiter, \Criteria::EQUAL);
         $criteria->addJoinMC($arrayCondition, \Criteria::LEFT_JOIN);
         $arrayCondition = array();
         $arrayCondition[] = array(\OutputDocumentPeer::OUT_DOC_UID, "CD.CON_ID", \Criteria::EQUAL);
         $arrayCondition[] = array("CD.CON_CATEGORY", $delimiter . "OUT_DOC_DESCRIPTION" . $delimiter, \Criteria::EQUAL);
         $arrayCondition[] = array("CD.CON_LANG", $delimiter . SYS_LANG . $delimiter, \Criteria::EQUAL);
         $criteria->addJoinMC($arrayCondition, \Criteria::LEFT_JOIN);
         $criteria->add(\OutputDocumentPeer::PRO_UID, $processUid, \Criteria::EQUAL);
         $criteria->add(\OutputDocumentPeer::OUT_DOC_UID, $arrayOutputDocumentUid, \Criteria::NOT_IN);
         $rsCriteria = \OutputDocumentPeer::doSelectRS($criteria);
         $rsCriteria->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
         while ($rsCriteria->next()) {
             $row = $rsCriteria->getRow();
             if ($row["OUT_DOC_TITLE"] . "" == "") {
                 //There is no transaltion for this Document name, try to get/regenerate the label
                 $row["OUT_DOC_TITLE"] = \Content::Load("OUT_DOC_TITLE", "", $row["OUT_DOC_UID"], SYS_LANG);
             }
             $arrayCaseTrackerObject[] = array("obj_uid" => $row["OUT_DOC_UID"], "obj_title" => $row["OUT_DOC_TITLE"], "obj_description" => $row["OUT_DOC_DESCRIPTION"], "obj_type" => "OUTPUT_DOCUMENT");
         }
         $arrayCaseTrackerObject = \ProcessMaker\Util\ArrayUtil::sort($arrayCaseTrackerObject, array("obj_type", "obj_title"), SORT_ASC);
         return $arrayCaseTrackerObject;
     } catch (\Exception $e) {
         throw $e;
     }
 }
Example #17
0
 function getUsersTask($TAS_UID, $TU_TYPE = 1)
 {
     require_once 'classes/model/Users.php';
     $groupsTask = array();
     $usersTask = array();
     //getting task's users
     $criteria = new Criteria('workflow');
     $criteria->addSelectColumn(UsersPeer::USR_FIRSTNAME);
     $criteria->addSelectColumn(UsersPeer::USR_LASTNAME);
     $criteria->addSelectColumn(UsersPeer::USR_USERNAME);
     $criteria->addSelectColumn(TaskUserPeer::TAS_UID);
     $criteria->addSelectColumn(TaskUserPeer::USR_UID);
     $criteria->addSelectColumn(TaskUserPeer::TU_TYPE);
     $criteria->addSelectColumn(TaskUserPeer::TU_RELATION);
     $criteria->addJoin(TaskUserPeer::USR_UID, UsersPeer::USR_UID, Criteria::LEFT_JOIN);
     $criteria->add(TaskUserPeer::TAS_UID, $TAS_UID);
     $criteria->add(TaskUserPeer::TU_TYPE, $TU_TYPE);
     $criteria->add(TaskUserPeer::TU_RELATION, 1);
     $dataset = TaskUserPeer::doSelectRS($criteria);
     $dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
     while ($dataset->next()) {
         $usersTask[] = $dataset->getRow();
     }
     //getting task's groups
     $delimiter = DBAdapter::getStringDelimiter();
     $criteria = new Criteria('workflow');
     $criteria->addAsColumn('GRP_TITLE', 'CONTENT.CON_VALUE');
     $criteria->addSelectColumn(TaskUserPeer::TAS_UID);
     $criteria->addSelectColumn(TaskUserPeer::USR_UID);
     $criteria->addSelectColumn(TaskUserPeer::TU_TYPE);
     $criteria->addSelectColumn(TaskUserPeer::TU_RELATION);
     $aConditions[] = array(TaskUserPeer::USR_UID, 'CONTENT.CON_ID');
     $aConditions[] = array('CONTENT.CON_CATEGORY', $delimiter . 'GRP_TITLE' . $delimiter);
     $aConditions[] = array('CONTENT.CON_LANG', $delimiter . SYS_LANG . $delimiter);
     $criteria->addJoinMC($aConditions, Criteria::LEFT_JOIN);
     $criteria->add(TaskUserPeer::TAS_UID, $TAS_UID);
     $criteria->add(TaskUserPeer::TU_TYPE, $TU_TYPE);
     $criteria->add(TaskUserPeer::TU_RELATION, 2);
     $dataset = TaskUserPeer::doSelectRS($criteria);
     $dataset = TaskUserPeer::doSelectRS($criteria);
     $dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
     while ($dataset->next()) {
         $usersTask[] = $dataset->getRow();
     }
     $result->data = $usersTask;
     $result->totalCount = sizeof($usersTask);
     return $result;
 }
Example #18
0
function executeCaseSelfService()
{
    try {
        global $sFilter;
        if ($sFilter != "" && strpos($sFilter, "unassigned-case") === false) {
            return false;
        }
        $criteria = new Criteria("workflow");
        //SELECT
        $criteria->addSelectColumn(AppCacheViewPeer::APP_UID);
        $criteria->addSelectColumn(AppCacheViewPeer::DEL_INDEX);
        $criteria->addSelectColumn(AppCacheViewPeer::DEL_DELEGATE_DATE);
        $criteria->addSelectColumn(AppCacheViewPeer::APP_NUMBER);
        $criteria->addSelectColumn(AppCacheViewPeer::PRO_UID);
        $criteria->addSelectColumn(TaskPeer::TAS_UID);
        $criteria->addSelectColumn(TaskPeer::TAS_SELFSERVICE_TIME);
        $criteria->addSelectColumn(TaskPeer::TAS_SELFSERVICE_TIME_UNIT);
        $criteria->addSelectColumn(TaskPeer::TAS_SELFSERVICE_TRIGGER_UID);
        //FROM
        $condition = array();
        $condition[] = array(AppCacheViewPeer::TAS_UID, TaskPeer::TAS_UID);
        $condition[] = array(TaskPeer::TAS_SELFSERVICE_TIMEOUT, 1);
        $criteria->addJoinMC($condition, Criteria::LEFT_JOIN);
        //WHERE
        $criteria->add(AppCacheViewPeer::USR_UID, "");
        $criteria->add(AppCacheViewPeer::DEL_THREAD_STATUS, "OPEN");
        //QUERY
        $rsCriteria = AppCacheViewPeer::doSelectRS($criteria);
        $rsCriteria->setFetchmode(ResultSet::FETCHMODE_ASSOC);
        setExecutionMessage("Unassigned case");
        saveLog("unassignedCase", "action", "Unassigned case", "c");
        $date = new dates();
        while ($rsCriteria->next()) {
            $row = $rsCriteria->getRow();
            $appcacheAppUid = $row["APP_UID"];
            $appcacheDelIndex = $row["DEL_INDEX"];
            $appcacheDelDelegateDate = $row["DEL_DELEGATE_DATE"];
            $appcacheAppNumber = $row["APP_NUMBER"];
            $appcacheProUid = $row["PRO_UID"];
            $taskUid = $row["TAS_UID"];
            $taskSelfServiceTime = intval($row["TAS_SELFSERVICE_TIME"]);
            $taskSelfServiceTimeUnit = $row["TAS_SELFSERVICE_TIME_UNIT"];
            $taskSelfServiceTriggerUid = $row["TAS_SELFSERVICE_TRIGGER_UID"];
            $dueDate = $date->calculateDate($appcacheDelDelegateDate, $taskSelfServiceTime, $taskSelfServiceTimeUnit, 1);
            if (time() > $dueDate["DUE_DATE_SECONDS"]) {
                $sessProcess = null;
                $sessProcessSw = 0;
                //Load data
                $case = new Cases();
                $appFields = $case->loadCase($appcacheAppUid);
                $appFields["APP_DATA"]["APPLICATION"] = $appcacheAppUid;
                if (isset($_SESSION["PROCESS"])) {
                    $sessProcess = $_SESSION["PROCESS"];
                    $sessProcessSw = 1;
                }
                $_SESSION["PROCESS"] = $appFields["PRO_UID"];
                //Execute trigger
                $criteriaTgr = new Criteria();
                $criteriaTgr->add(TriggersPeer::TRI_UID, $taskSelfServiceTriggerUid);
                $rsCriteriaTgr = TriggersPeer::doSelectRS($criteriaTgr);
                $rsCriteriaTgr->setFetchmode(ResultSet::FETCHMODE_ASSOC);
                if ($rsCriteriaTgr->next()) {
                    $row = $rsCriteriaTgr->getRow();
                    if (is_array($row) && $row["TRI_TYPE"] == "SCRIPT") {
                        $arrayCron = unserialize(trim(@file_get_contents(PATH_DATA . "cron")));
                        $arrayCron["processcTimeProcess"] = 60;
                        //Minutes
                        $arrayCron["processcTimeStart"] = time();
                        @file_put_contents(PATH_DATA . "cron", serialize($arrayCron));
                        //Trigger
                        global $oPMScript;
                        $oPMScript = new PMScript();
                        $oPMScript->setFields($appFields["APP_DATA"]);
                        $oPMScript->setScript($row["TRI_WEBBOT"]);
                        $oPMScript->execute();
                        $appFields["APP_DATA"] = array_merge($appFields["APP_DATA"], $oPMScript->aFields);
                        $case->updateCase($appFields["APP_UID"], $appFields);
                        saveLog("unassignedCase", "action", "OK Executed tigger to the case {$appcacheAppNumber}");
                    }
                }
                unset($_SESSION["PROCESS"]);
                if ($sessProcessSw == 1) {
                    $_SESSION["PROCESS"] = $sessProcess;
                }
            }
        }
        setExecutionResultMessage("DONE");
    } catch (Exception $e) {
        setExecutionResultMessage("WITH ERRORS", "error");
        eprintln("  '-" . $e->getMessage(), "red");
        saveLog("unassignedCase", "error", "Error in unassigned case: " . $e->getMessage());
    }
}
Example #19
0
 /**
  * Get criteria for DynaForm
  *
  * return object
  */
 public function getDynaFormCriteria()
 {
     try {
         $delimiter = \DBAdapter::getStringDelimiter();
         $criteria = new \Criteria("workflow");
         $criteria->addSelectColumn(\DynaformPeer::DYN_UID);
         $criteria->addAsColumn("DYN_TITLE", "CT.CON_VALUE");
         $criteria->addAsColumn("DYN_DESCRIPTION", "CD.CON_VALUE");
         $criteria->addSelectColumn(\DynaformPeer::DYN_TYPE);
         $criteria->addSelectColumn(\DynaformPeer::DYN_CONTENT);
         $criteria->addSelectColumn(\DynaformPeer::DYN_VERSION);
         $criteria->addSelectColumn(\DynaformPeer::DYN_UPDATE_DATE);
         $criteria->addAlias("CT", \ContentPeer::TABLE_NAME);
         $criteria->addAlias("CD", \ContentPeer::TABLE_NAME);
         $arrayCondition = array();
         $arrayCondition[] = array(\DynaformPeer::DYN_UID, "CT.CON_ID", \Criteria::EQUAL);
         $arrayCondition[] = array("CT.CON_CATEGORY", $delimiter . "DYN_TITLE" . $delimiter, \Criteria::EQUAL);
         $arrayCondition[] = array("CT.CON_LANG", $delimiter . SYS_LANG . $delimiter, \Criteria::EQUAL);
         $criteria->addJoinMC($arrayCondition, \Criteria::LEFT_JOIN);
         $arrayCondition = array();
         $arrayCondition[] = array(\DynaformPeer::DYN_UID, "CD.CON_ID", \Criteria::EQUAL);
         $arrayCondition[] = array("CD.CON_CATEGORY", $delimiter . "DYN_DESCRIPTION" . $delimiter, \Criteria::EQUAL);
         $arrayCondition[] = array("CD.CON_LANG", $delimiter . SYS_LANG . $delimiter, \Criteria::EQUAL);
         $criteria->addJoinMC($arrayCondition, \Criteria::LEFT_JOIN);
         return $criteria;
     } catch (\Exception $e) {
         throw $e;
     }
 }
Example #20
0
 /**
  * Get criteria for Web Entry
  *
  * return object
  */
 public function getWebEntryCriteria()
 {
     try {
         $delimiter = \DBAdapter::getStringDelimiter();
         $criteria = new \Criteria("workflow");
         $criteria->addSelectColumn(\WebEntryPeer::WE_UID);
         $criteria->addSelectColumn(\WebEntryPeer::PRO_UID);
         $criteria->addSelectColumn(\WebEntryPeer::TAS_UID);
         $criteria->addSelectColumn(\WebEntryPeer::DYN_UID);
         $criteria->addSelectColumn(\WebEntryPeer::USR_UID);
         $criteria->addAsColumn("WE_TITLE", "CT.CON_VALUE");
         $criteria->addAsColumn("WE_DESCRIPTION", "CD.CON_VALUE");
         $criteria->addSelectColumn(\WebEntryPeer::WE_METHOD);
         $criteria->addSelectColumn(\WebEntryPeer::WE_INPUT_DOCUMENT_ACCESS);
         $criteria->addSelectColumn(\WebEntryPeer::WE_DATA);
         $criteria->addSelectColumn(\WebEntryPeer::WE_CREATE_USR_UID);
         $criteria->addSelectColumn(\WebEntryPeer::WE_UPDATE_USR_UID);
         $criteria->addSelectColumn(\WebEntryPeer::WE_CREATE_DATE);
         $criteria->addSelectColumn(\WebEntryPeer::WE_UPDATE_DATE);
         $criteria->addAlias("CT", \ContentPeer::TABLE_NAME);
         $criteria->addAlias("CD", \ContentPeer::TABLE_NAME);
         $arrayCondition = array();
         $arrayCondition[] = array(\WebEntryPeer::WE_UID, "CT.CON_ID", \Criteria::EQUAL);
         $arrayCondition[] = array("CT.CON_CATEGORY", $delimiter . "WE_TITLE" . $delimiter, \Criteria::EQUAL);
         $arrayCondition[] = array("CT.CON_LANG", $delimiter . SYS_LANG . $delimiter, \Criteria::EQUAL);
         $criteria->addJoinMC($arrayCondition, \Criteria::LEFT_JOIN);
         $arrayCondition = array();
         $arrayCondition[] = array(\WebEntryPeer::WE_UID, "CD.CON_ID", \Criteria::EQUAL);
         $arrayCondition[] = array("CD.CON_CATEGORY", $delimiter . "WE_DESCRIPTION" . $delimiter, \Criteria::EQUAL);
         $arrayCondition[] = array("CD.CON_LANG", $delimiter . SYS_LANG . $delimiter, \Criteria::EQUAL);
         $criteria->addJoinMC($arrayCondition, \Criteria::LEFT_JOIN);
         return $criteria;
     } catch (\Exception $e) {
         throw $e;
     }
 }
Example #21
0
     $oConf->loadConfig($x, 'APP_CACHE_VIEW_ENGINE', '', '', '', '');
     $appCacheViewEngine = $oConf->aConfig;
     $lang = isset($appCacheViewEngine['LANG']) ? $appCacheViewEngine['LANG'] : 'en';
     $cProcess = new Criteria('workflow');
     $cProcess->clearSelectColumns();
     $cProcess->addSelectColumn(ProcessPeer::PRO_UID);
     $cProcess->addSelectColumn(ContentPeer::CON_VALUE);
     if ($categoryUid) {
         $cProcess->add(ProcessPeer::PRO_CATEGORY, $categoryUid);
     }
     $del = DBAdapter::getStringDelimiter();
     $conds = array();
     $conds[] = array(ProcessPeer::PRO_UID, ContentPeer::CON_ID);
     $conds[] = array(ContentPeer::CON_CATEGORY, $del . 'PRO_TITLE' . $del);
     $conds[] = array(ContentPeer::CON_LANG, $del . $lang . $del);
     $cProcess->addJoinMC($conds, Criteria::LEFT_JOIN);
     $cProcess->add(ProcessPeer::PRO_STATUS, 'ACTIVE');
     $cProcess->addAscendingOrderByColumn(ContentPeer::CON_VALUE);
     $oDataset = ProcessPeer::doSelectRS($cProcess);
     $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
     $oDataset->next();
     while ($aRow = $oDataset->getRow()) {
         $processes[] = array($aRow['PRO_UID'], $aRow['CON_VALUE']);
         $oDataset->next();
     }
     return print G::json_encode($processes);
     break;
 case 'unassigned':
     $cProcess = $oAppCache->getUnassignedListCriteria($userUid);
     break;
 case 'paused':
Example #22
0
 /**
  * Get the list of groups of unassigned users of the specified task from
  * database
  *
  * @param string $ProUID
  *          Process identifier
  * @param string $TaskUID
  *          task identifier
  * @return array of unassigned user groups
  */
 public function getTaskUnassignedUsersGroupsData($ProUID, $TaskUID)
 {
     $unassignedUsersGroups = array();
     $c = new Criteria();
     $c->addSelectColumn(TaskUserPeer::USR_UID);
     $c->addSelectColumn(TaskUserPeer::TU_RELATION);
     $aConditions = array();
     $aConditions[] = array(TaskPeer::TAS_UID, TaskUserPeer::TAS_UID);
     $aConditions[] = array(TaskPeer::TAS_ASSIGN_TYPE, DBAdapter::getStringDelimiter() . 'SELF_SERVICE' . DBAdapter::getStringDelimiter());
     $c->addJoinMC($aConditions, Criteria::JOIN);
     $c->add(TaskPeer::PRO_UID, $ProUID);
     $c->add(TaskPeer::TAS_UID, $TaskUID);
     $rs = TaskPeer::doSelectRS($c);
     $rs->setFetchmode(ResultSet::FETCHMODE_ASSOC);
     // echo $c->toString();
     $rs->next();
     $row = $rs->getRow();
     while (is_array($row)) {
         $unassignedUsersGroups[] = $row;
         $rs->next();
         $row = $rs->getRow();
     }
     return $unassignedUsersGroups;
 }
Example #23
0
    public function getAdvancedSearch($sCase, $sProcess, $sTask, $sCurrentUser, $sSentby, $sLastModFrom, $sLastModTo, $sStatus, $permisse, $userlogged, $aSupervisor)

    {

        $sTypeList = '';

        $sUIDUserLogged = '';



        $c = new Criteria('workflow');

        $c->clearSelectColumns();

        $c->addSelectColumn(ApplicationPeer::APP_UID);

        $c->addSelectColumn(ApplicationPeer::APP_NUMBER);

        $c->addSelectColumn(ApplicationPeer::APP_UPDATE_DATE);

        $c->addSelectColumn(AppDelegationPeer::DEL_PRIORITY);

        //$c->addSelectColumn(AppDelegationPeer::DEL_TASK_DUE_DATE);

        $c->addAsColumn(

                'DEL_TASK_DUE_DATE', " IF (" . AppDelegationPeer::DEL_TASK_DUE_DATE . " <= NOW(), CONCAT('<span style=\'color:red\';>', " .

                AppDelegationPeer::DEL_TASK_DUE_DATE . ", '</span>'), " . AppDelegationPeer::DEL_TASK_DUE_DATE . ") ");

        $c->addSelectColumn(AppDelegationPeer::DEL_INDEX);

        $c->addSelectColumn(AppDelegationPeer::TAS_UID);

        $c->addSelectColumn(AppDelegationPeer::DEL_INIT_DATE);

        $c->addSelectColumn(AppDelegationPeer::DEL_FINISH_DATE);

        $c->addSelectColumn(UsersPeer::USR_UID);

        $c->addAsColumn('APP_CURRENT_USER', "CONCAT(USERS.USR_LASTNAME, ' ', USERS.USR_FIRSTNAME)");

        $c->addSelectColumn(ApplicationPeer::APP_STATUS);

        $c->addAsColumn('APP_TITLE', 'APP_TITLE.CON_VALUE');

        $c->addAsColumn('APP_PRO_TITLE', 'PRO_TITLE.CON_VALUE');

        $c->addAsColumn('APP_TAS_TITLE', 'TAS_TITLE.CON_VALUE');

        //$c->addAsColumn('APP_DEL_PREVIOUS_USER', 'APP_LAST_USER.USR_USERNAME');

        $c->addAsColumn(

                'APP_DEL_PREVIOUS_USER', "CONCAT(APP_LAST_USER.USR_LASTNAME, ' ', APP_LAST_USER.USR_FIRSTNAME)"

        );



        $c->addAlias("APP_TITLE", 'CONTENT');

        $c->addAlias("PRO_TITLE", 'CONTENT');

        $c->addAlias("TAS_TITLE", 'CONTENT');

        $c->addAlias("APP_PREV_DEL", 'APP_DELEGATION');

        $c->addAlias("APP_LAST_USER", 'USERS');



        $c->addJoin(ApplicationPeer::APP_UID, AppDelegationPeer::APP_UID, Criteria::LEFT_JOIN);

        $c->addJoin(AppDelegationPeer::TAS_UID, TaskPeer::TAS_UID, Criteria::LEFT_JOIN);

        $appThreadConds[] = array(ApplicationPeer::APP_UID, AppThreadPeer::APP_UID);

        $appThreadConds[] = array(AppDelegationPeer::DEL_INDEX, AppThreadPeer::DEL_INDEX);

        $c->addJoinMC($appThreadConds, Criteria::LEFT_JOIN);

        $c->addJoin(AppDelegationPeer::USR_UID, UsersPeer::USR_UID, Criteria::LEFT_JOIN);



        $del = DBAdapter::getStringDelimiter();

        $appTitleConds = array();

        $appTitleConds[] = array(ApplicationPeer::APP_UID, 'APP_TITLE.CON_ID');

        $appTitleConds[] = array('APP_TITLE.CON_CATEGORY', $del . 'APP_TITLE' . $del);

        $appTitleConds[] = array('APP_TITLE.CON_LANG', $del . SYS_LANG . $del);

        $c->addJoinMC($appTitleConds, Criteria::LEFT_JOIN);



        $proTitleConds = array();

        $proTitleConds[] = array(ApplicationPeer::PRO_UID, 'PRO_TITLE.CON_ID');

        $proTitleConds[] = array('PRO_TITLE.CON_CATEGORY', $del . 'PRO_TITLE' . $del);

        $proTitleConds[] = array('PRO_TITLE.CON_LANG', $del . SYS_LANG . $del);

        $c->addJoinMC($proTitleConds, Criteria::LEFT_JOIN);



        $tasTitleConds = array();

        $tasTitleConds[] = array(AppDelegationPeer::TAS_UID, 'TAS_TITLE.CON_ID');

        $tasTitleConds[] = array('TAS_TITLE.CON_CATEGORY', $del . 'TAS_TITLE' . $del);

        $tasTitleConds[] = array('TAS_TITLE.CON_LANG', $del . SYS_LANG . $del);

        $c->addJoinMC($tasTitleConds, Criteria::LEFT_JOIN);



        $prevConds = array();

        $prevConds[] = array(ApplicationPeer::APP_UID, 'APP_PREV_DEL.APP_UID');

        $prevConds[] = array('APP_PREV_DEL.DEL_INDEX', AppDelegationPeer::DEL_PREVIOUS);

        $c->addJoinMC($prevConds, Criteria::LEFT_JOIN);



        $usrConds = array();

        $usrConds[] = array('APP_PREV_DEL.USR_UID', 'APP_LAST_USER.USR_UID');

        $c->addJoinMC($usrConds, Criteria::LEFT_JOIN);



        $c->add(TaskPeer::TAS_TYPE, 'SUBPROCESS', Criteria::NOT_EQUAL);



        $c->add(

                $c->getNewCriterion(AppThreadPeer::APP_THREAD_STATUS, 'OPEN')->

                        addOr($c->getNewCriterion(ApplicationPeer::APP_STATUS, 'COMPLETED')->

                                addAnd($c->getNewCriterion(AppDelegationPeer::DEL_PREVIOUS, 0)))

        );



        if ($sCase != '') {

            $c->add(ApplicationPeer::APP_NUMBER, $sCase);

        }

        if ($sProcess != '') {

            $c->add(ApplicationPeer::PRO_UID, $sProcess);

        }

        if ($sTask != '' && $sTask != "0" && $sTask != 0) {

            $c->add(AppDelegationPeer::TAS_UID, $sTask);

        }

        if ($sCurrentUser != '') {

            $c->add(ApplicationPeer::APP_CUR_USER, $sCurrentUser);

        }

        if ($sSentby != '') {

            $c->add('APP_PREV_DEL.USR_UID', $sSentby);

        }

        if ($sLastModFrom != '0000-00-00' && $sLastModTo != '0000-00-00' && $sLastModFrom != '' && $sLastModTo != '') {

            $c->add(

                    $c->getNewCriterion(ApplicationPeer::APP_UPDATE_DATE, $sLastModFrom . ' 00:00:00', Criteria::GREATER_EQUAL)->

                            addAnd($c->getNewCriterion(ApplicationPeer::APP_UPDATE_DATE, $sLastModTo . ' 23:59:59', Criteria::LESS_EQUAL))

            );

        }

        if ($sStatus != '') {

            if ($sStatus != 'gral') {

                $c->add(ApplicationPeer::APP_STATUS, $sStatus);

            }

        }



        if ($permisse != 0) {

            $c->add(

                    $c->getNewCriterion(AppDelegationPeer::USR_UID, $userlogged)->

                            addOr($c->getNewCriterion(AppDelegationPeer::PRO_UID, $aSupervisor, Criteria::IN))

            );

        }



        $c->addDescendingOrderByColumn(ApplicationPeer::APP_NUMBER);



        return $c;

    }
     }
     break;
 case 'showImportForm':
     require_once 'classes/model/Dynaform.php';
     require_once 'classes/model/Content.php';
     $uidDynafom = $_POST['DYN_UID'];
     $oCriteria = new Criteria('workflow');
     $oCriteria->clearSelectColumns();
     $oCriteria->addSelectColumn(DynaformPeer::DYN_FILENAME);
     $oCriteria->addAsColumn('DYNA_NAME', 'C_DYNA.CON_VALUE');
     $oCriteria->addAsColumn('PROC_NAME', 'C_PROC.CON_VALUE');
     $oCriteria->addAlias("C_DYNA", "CONTENT");
     $oCriteria->addAlias("C_PROC", "CONTENT");
     $arrayCondition = array();
     $arrayCondition[] = array(DynaformPeer::DYN_UID, "C_DYNA.CON_ID");
     $oCriteria->addJoinMC($arrayCondition, Criteria::LEFT_JOIN);
     $arrayCondition = array();
     $arrayCondition[] = array(DynaformPeer::PRO_UID, "C_PROC.CON_ID");
     $oCriteria->addJoinMC($arrayCondition, Criteria::LEFT_JOIN);
     $oCriteria->add('C_DYNA.CON_LANG', SYS_LANG);
     $oCriteria->add('C_DYNA.CON_CATEGORY', 'DYN_TITLE');
     $oCriteria->add('C_PROC.CON_LANG', SYS_LANG);
     $oCriteria->add('C_PROC.CON_CATEGORY', 'PRO_TITLE');
     $oCriteria->add(DynaformPeer::DYN_UID, $uidDynafom, Criteria::NOT_EQUAL);
     $oCriteria->addAscendingOrderByColumn('PROC_NAME');
     $oCriteria->addAscendingOrderByColumn('DYNA_NAME');
     $oDataset = DynaformPeer::doSelectRS($oCriteria);
     $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
     $oDataset->next();
     $aRow = $oDataset->getRow();
     $select = '<select name="form[IMPORT_DYNA]" id="form[IMPORT_DYNA]"  width="300" style="width: 300px" class="module_app_input___gray">';
Example #25
0
    /**

     * task Case

     *

     * @param string sessionId : The session ID which is obtained when logging in

     * @param string caseId : The case ID. The caseList() function can be used to find the ID number for cases

     * @return $result returns the current task for a given case. Note that the logged-in user must have privileges

     * to access the task

     */

    public function taskCase ($caseId)

    {

        $result = array ();

        try {

            $oCriteria = new Criteria( 'workflow' );

            $del       = DBAdapter::getStringDelimiter();

            $oCriteria->addSelectColumn( AppDelegationPeer::DEL_INDEX );

            $oCriteria->addSelectColumn( AppDelegationPeer::TAS_UID );



            $oCriteria->addAsColumn( 'TAS_TITLE', 'C1.CON_VALUE' );

            $oCriteria->addAlias( "C1", 'CONTENT' );

            $tasTitleConds   = array ();

            $tasTitleConds[] = array (AppDelegationPeer::TAS_UID,'C1.CON_ID');

            $tasTitleConds[] = array ('C1.CON_CATEGORY',$del . 'TAS_TITLE' . $del);

            $tasTitleConds[] = array ('C1.CON_LANG',$del . SYS_LANG . $del);

            $oCriteria->addJoinMC( $tasTitleConds, Criteria::LEFT_JOIN );



            $oCriteria->add( AppDelegationPeer::APP_UID, $caseId );

            $oCriteria->add( AppDelegationPeer::DEL_THREAD_STATUS, 'OPEN' );

            $oCriteria->add( AppDelegationPeer::DEL_FINISH_DATE, null, Criteria::ISNULL );

            $oDataset = AppDelegationPeer::doSelectRS( $oCriteria );

            $oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC );

            $oDataset->next();



            while ($aRow = $oDataset->getRow()) {

                $result[] = array (

                    'guid'     => $aRow['TAS_UID'],

                    'name'     => $aRow['TAS_TITLE'],

                    'delegate' => $aRow['DEL_INDEX']

                );

                $oDataset->next();

            }



            return $result;

        } catch (Exception $e) {

            $result[] = array ('guid' => $e->getMessage(),'name' => $e->getMessage(), 'delegate' => $e->getMessage() );



            return $result;

        }

    }
Example #26
0
 public function getFolderContent($folderID, $docIdFilter = array(), $keyword = null, $searchType = null, $limit = 0, $start = 0, $user = '', $onlyActive = false)
 {
     require_once "classes/model/AppDocument.php";
     require_once "classes/model/InputDocument.php";
     require_once "classes/model/OutputDocument.php";
     require_once "classes/model/Users.php";
     G::LoadClass('case');
     $oCase = new Cases();
     G::LoadClass('process');
     $oProcess = new Process();
     $oAppDocument = new AppDocument();
     $oCriteria = new Criteria();
     if (is_array($docIdFilter) && count($docIdFilter) > 0) {
         //Search by App Doc UID no matter what Folder it is
         $oCriteria->add(AppDocumentPeer::APP_DOC_UID, $docIdFilter, CRITERIA::IN);
     } elseif ($folderID != null) {
         if ($folderID == "/") {
             $oCriteria->add(AppDocumentPeer::FOLDER_UID, array('root', '', null), CRITERIA::IN);
         } else {
             $oCriteria->add(AppDocumentPeer::FOLDER_UID, $folderID);
         }
     } elseif ($searchType == "TAG") {
         $oCriteria->add(AppDocumentPeer::APP_DOC_TAGS, "%" . $keyword . "%", CRITERIA::LIKE);
     }
     if ($user != '') {
         require_once "classes/model/AppDelegation.php";
         $criteria = new Criteria();
         $criteria->addSelectColumn(AppDelegationPeer::APP_UID);
         $criteria->setDistinct();
         $conditions = array();
         $conditions[] = array(AppDelegationPeer::APP_UID, AppDocumentPeer::APP_UID);
         $conditions[] = array(AppDelegationPeer::DEL_INDEX, AppDocumentPeer::DEL_INDEX);
         $criteria->addJoinMC($conditions, Criteria::LEFT_JOIN);
         $criteria->add(AppDelegationPeer::USR_UID, $user);
         $rs2 = AppDocumentPeer::doSelectRS($criteria);
         $rs2->setFetchmode(ResultSet::FETCHMODE_ASSOC);
         $data = array();
         while ($rs2->next()) {
             $row = $rs2->getRow();
             $data[] = $row['APP_UID'];
         }
         $oCriteria->add(AppDocumentPeer::APP_UID, $data, CRITERIA::IN);
     }
     if ($onlyActive) {
         $oCriteria->add(AppDocumentPeer::APP_DOC_STATUS, 'ACTIVE');
     }
     $numRecTotal = AppDocumentPeer::doCount($oCriteria);
     $auxCriteria = clone $oCriteria;
     $auxCriteria->addJoin(AppDocumentPeer::DOC_UID, OutputDocumentPeer::OUT_DOC_UID);
     $auxCriteria->add(AppDocumentPeer::APP_DOC_TYPE, 'OUTPUT');
     $auxCriteria->add(OutputDocumentPeer::OUT_DOC_UID, '-1', Criteria::NOT_EQUAL);
     $auxCriteria->add(OutputDocumentPeer::OUT_DOC_GENERATE, 'BOTH');
     $numRecTotal += AppDocumentPeer::doCount($auxCriteria);
     $oCase->verifyTable();
     $oCriteria->addAscendingOrderByColumn(AppDocumentPeer::APP_DOC_INDEX);
     $oCriteria->addDescendingOrderByColumn(AppDocumentPeer::DOC_VERSION);
     $response['documents'] = array();
     $oCriteria->setLimit($limit);
     $oCriteria->setOffset($start);
     $rs = AppDocumentPeer::doSelectRS($oCriteria);
     $rs->setFetchmode(ResultSet::FETCHMODE_ASSOC);
     $rs->next();
     $filesResult = array();
     while (is_array($row = $rs->getRow())) {
         //**** start get Doc Info
         $oApp = new Application();
         if ($oApp->exists($row['APP_UID']) || $row['APP_UID'] == "00000000000000000000000000000000") {
             //$completeInfo = array("APP_DOC_FILENAME" => $row ["APP_DOC_UID"],"APP_DOC_UID"=>$row ['APP_UID']);
             $completeInfo = $this->getCompleteDocumentInfo($row['APP_UID'], $row['APP_DOC_UID'], $row['DOC_VERSION'], $row['DOC_UID'], $row['USR_UID']);
             $oAppDocument = new AppDocument();
             $lastVersion = $oAppDocument->getLastAppDocVersion($row['APP_DOC_UID'], $row['APP_UID']);
             //$filesResult [] = $completeInfo;
             if ($completeInfo['APP_DOC_STATUS'] != "DELETED") {
                 if (in_array($row['APP_DOC_UID'], $completeInfo['INPUT_DOCUMENTS']) || in_array($row['APP_DOC_UID'], $completeInfo['OUTPUT_DOCUMENTS']) || in_array($completeInfo['USR_UID'], array($_SESSION['USER_LOGGED'], '-1'))) {
                     if (count($docIdFilter) > 0) {
                         if (in_array($row['APP_DOC_UID'], $docIdFilter)) {
                             $response['documents'][] = $completeInfo;
                         }
                     } elseif ($lastVersion == $row['DOC_VERSION']) {
                         //Only Last Document version
                         if ($searchType == "ALL") {
                             // If search in name of docs is active then filter
                             if (stripos($completeInfo['APP_DOC_FILENAME'], $keyword) !== false || stripos($completeInfo['APP_DOC_TAGS'], $keyword) !== false) {
                                 $response['documents'][] = $completeInfo;
                             }
                         } else {
                             //No search filter active
                             $response['documents'][] = $completeInfo;
                         }
                     }
                 }
             }
         }
         $rs->next();
     }
     $response["totalDocumentsCount"] = $numRecTotal;
     return $response;
 }
Example #27
0
 /**
  * Get criteria for InputDocument
  *
  * return object
  */
 public function getInputDocumentCriteria()
 {
     try {
         $delimiter = \DBAdapter::getStringDelimiter();
         $criteria = new \Criteria("workflow");
         $criteria->addSelectColumn(\InputDocumentPeer::INP_DOC_UID);
         $criteria->addAsColumn("INP_DOC_TITLE", "CT.CON_VALUE");
         $criteria->addAsColumn("INP_DOC_DESCRIPTION", "CD.CON_VALUE");
         $criteria->addSelectColumn(\InputDocumentPeer::INP_DOC_FORM_NEEDED);
         $criteria->addSelectColumn(\InputDocumentPeer::INP_DOC_ORIGINAL);
         $criteria->addSelectColumn(\InputDocumentPeer::INP_DOC_PUBLISHED);
         $criteria->addSelectColumn(\InputDocumentPeer::INP_DOC_VERSIONING);
         $criteria->addSelectColumn(\InputDocumentPeer::INP_DOC_DESTINATION_PATH);
         $criteria->addSelectColumn(\InputDocumentPeer::INP_DOC_TAGS);
         $criteria->addSelectColumn(\InputDocumentPeer::INP_DOC_TYPE_FILE);
         $criteria->addSelectColumn(\InputDocumentPeer::INP_DOC_MAX_FILESIZE);
         $criteria->addSelectColumn(\InputDocumentPeer::INP_DOC_MAX_FILESIZE_UNIT);
         $criteria->addAlias("CT", \ContentPeer::TABLE_NAME);
         $criteria->addAlias("CD", \ContentPeer::TABLE_NAME);
         $arrayCondition = array();
         $arrayCondition[] = array(\InputDocumentPeer::INP_DOC_UID, "CT.CON_ID", \Criteria::EQUAL);
         $arrayCondition[] = array("CT.CON_CATEGORY", $delimiter . "INP_DOC_TITLE" . $delimiter, \Criteria::EQUAL);
         $arrayCondition[] = array("CT.CON_LANG", $delimiter . SYS_LANG . $delimiter, \Criteria::EQUAL);
         $criteria->addJoinMC($arrayCondition, \Criteria::LEFT_JOIN);
         $arrayCondition = array();
         $arrayCondition[] = array(\InputDocumentPeer::INP_DOC_UID, "CD.CON_ID", \Criteria::EQUAL);
         $arrayCondition[] = array("CD.CON_CATEGORY", $delimiter . "INP_DOC_DESCRIPTION" . $delimiter, \Criteria::EQUAL);
         $arrayCondition[] = array("CD.CON_LANG", $delimiter . SYS_LANG . $delimiter, \Criteria::EQUAL);
         $criteria->addJoinMC($arrayCondition, \Criteria::LEFT_JOIN);
         return $criteria;
     } catch (\Exception $e) {
         throw $e;
     }
 }
Example #28
0
    public function getDirectoryContentSortedBy ($folderID, $docIdFilter = array(), $keyword = null, $searchType = null, $limit = 0, $start = 0, $user = '', $onlyActive = false, $direction = 'ASC', $ColumnSort = 'appDocCreateDate', $search = null)
    {
        G::LoadClass( 'case' );
        $oCase = new Cases();
        G::LoadClass( 'process' );
        $oProcess = new Process();

        $oAppDocument = new AppDocument();
        $oCriteria = new Criteria();
        $oCriteria->addSelectColumn( AppDocumentPeer::APP_DOC_UID);
        $oCriteria->addSelectColumn( AppDocumentPeer::DOC_VERSION);
        $oCriteria->addSelectColumn( AppDocumentPeer::APP_UID);
        $oCriteria->addSelectColumn( AppDocumentPeer::DEL_INDEX);
        $oCriteria->addSelectColumn( AppDocumentPeer::DOC_UID);
        $oCriteria->addSelectColumn( AppDocumentPeer::USR_UID);
        $oCriteria->addSelectColumn( AppDocumentPeer::APP_DOC_TYPE);
        $oCriteria->addSelectColumn( AppDocumentPeer::APP_DOC_CREATE_DATE);
        $oCriteria->addSelectColumn( AppDocumentPeer::APP_DOC_INDEX);
        $oCriteria->addSelectColumn( AppDocumentPeer::FOLDER_UID);
        $oCriteria->addSelectColumn( AppDocumentPeer::APP_DOC_PLUGIN);
        $oCriteria->addSelectColumn( AppDocumentPeer::APP_DOC_TAGS);
        $oCriteria->addSelectColumn( AppDocumentPeer::APP_DOC_STATUS);
        $oCriteria->addSelectColumn( AppDocumentPeer::APP_DOC_STATUS_DATE);
        $oCriteria->addSelectColumn( AppDocumentPeer::APP_DOC_FIELDNAME);

        if ((is_array( $docIdFilter )) && (count( $docIdFilter ) > 0)) {
            //Search by App Doc UID no matter what Folder it is
            $oCriteria->add( AppDocumentPeer::APP_DOC_UID, $docIdFilter, CRITERIA::IN );
        } elseif ($folderID != null) {
            if ($folderID == "/") {
                $oCriteria->add( AppDocumentPeer::FOLDER_UID, array ('root','',null), CRITERIA::IN );
            } else {
                $oCriteria->add( AppDocumentPeer::FOLDER_UID, $folderID );
            }
        } elseif ($searchType == "TAG") {
            $oCriteria->add( AppDocumentPeer::APP_DOC_TAGS, "%" . $keyword . "%", CRITERIA::LIKE );
        }

        require_once ("classes/model/AppDelegation.php");
        if ($user != '') {
            require_once ("classes/model/AppDelegation.php");
            $criteria = new Criteria();
            $criteria->addSelectColumn( AppDelegationPeer::APP_UID );
            $criteria->setDistinct();

            $conditions = array ();
            $conditions[] = array (AppDelegationPeer::APP_UID,AppDocumentPeer::APP_UID);
            $conditions[] = array (AppDelegationPeer::DEL_INDEX,AppDocumentPeer::DEL_INDEX);

            $criteria->addJoinMC( $conditions, Criteria::LEFT_JOIN );

            $criteria->add( AppDelegationPeer::USR_UID, $user );

            $rs2 = AppDocumentPeer::doSelectRS( $criteria );

            $rs2->setFetchmode( ResultSet::FETCHMODE_ASSOC );
            $data = array ();
            while ($rs2->next()) {
                $row = $rs2->getRow();
                $data[] = $row['APP_UID'];
            }
            $oCriteria->add( AppDocumentPeer::APP_UID, $data, CRITERIA::IN );
        }

        if ($onlyActive) {
            $oCriteria->add( AppDocumentPeer::APP_DOC_STATUS, 'ACTIVE' );
        }

        $oCriteria->addSelectColumn( ContentPeer::CON_VALUE . ' AS NAME');
        $oCriteria->add( ContentPeer::CON_CATEGORY, "APP_DOC_FILENAME");
        $oCriteria->add( ContentPeer::CON_LANG, SYS_LANG);
        $oCriteria->addJoin( AppDocumentPeer::APP_DOC_UID, ContentPeer::CON_ID, Criteria::LEFT_JOIN );

        $oCriteria->addSelectColumn( UsersPeer::USR_FIRSTNAME);
        $oCriteria->addSelectColumn( UsersPeer::USR_LASTNAME);
        $oCriteria->addJoin( AppDocumentPeer::USR_UID, UsersPeer::USR_UID, Criteria::LEFT_JOIN );

        if ($search) {
            $oCriteria->add(
                $oCriteria->getNewCriterion( ContentPeer::CON_VALUE, '%' . $search . '%', Criteria::LIKE )->
                    addOr( $oCriteria->getNewCriterion( UsersPeer::USR_FIRSTNAME, '%' . $search . '%', Criteria::LIKE )->
                    addOr( $oCriteria->getNewCriterion( UsersPeer::USR_LASTNAME, '%' . $search . '%', Criteria::LIKE )))
                );
        }

        $numRecTotal = AppDocumentPeer::doCount($oCriteria);

        $oCase->verifyTable();

        //Need to review hot to get the Column Type name
        switch($ColumnSort) {
            case 'appDocCreateDate' :
                $ColumnSort = AppDocumentPeer::APP_DOC_CREATE_DATE;
                break;
            case 'name' :
                $ColumnSort = 'NAME';
                break;
            default:
                break;
        }

        if($direction == 'ASC') {
            $oCriteria->addAscendingOrderByColumn( $ColumnSort );
        } else {
            $oCriteria->addDescendingOrderByColumn( $ColumnSort );
        }

        $response['documents'] = array ();

        $oCriteria->setLimit( $limit );
        $oCriteria->setOffset( $start );

        $rs = AppDocumentPeer::doSelectRS( $oCriteria );
        $rs->setFetchmode( ResultSet::FETCHMODE_ASSOC );
        $rs->next();
        $filesResult = array ();
        while (is_array( $row = $rs->getRow() )) {
            //**** start get Doc Info
            $oApp = new Application();
            if (($oApp->exists( $row['APP_UID'] )) || ($row['APP_UID'] == "00000000000000000000000000000000")) {
                //$completeInfo = array("APP_DOC_FILENAME" => $row ["APP_DOC_UID"],"APP_DOC_UID"=>$row ['APP_UID']);
                $completeInfo = $this->getCompleteDocumentInfo( $row['APP_UID'], $row['APP_DOC_UID'], $row['DOC_VERSION'], $row['DOC_UID'], $row['USR_UID'] );
                $oAppDocument = new AppDocument();
                $lastVersion = $oAppDocument->getLastAppDocVersion( $row['APP_DOC_UID'], $row['APP_UID'] );

                if ($completeInfo['APP_DOC_STATUS'] != "DELETED") {
                    if (in_array($row["APP_DOC_UID"], $completeInfo["INPUT_DOCUMENTS"]) || in_array($row["APP_DOC_UID"], $completeInfo["OUTPUT_DOCUMENTS"]) || in_array($completeInfo["USR_UID"], array($_SESSION["USER_LOGGED"], "-1")) || $user == "") {
                        if (count( $docIdFilter ) > 0) {
                            if (in_array( $row['APP_DOC_UID'], $docIdFilter )) {
                                $response['documents'][] = $completeInfo;
                            }
                        } else {
                            if ($lastVersion == $row["DOC_VERSION"]) {
                                //Only Last Document version
                                if ($searchType == "ALL") {
                                    //If search in name of docs is active then filter
                                    if (stripos($completeInfo["APP_DOC_FILENAME"], $keyword) !== false || stripos($completeInfo["APP_DOC_TAGS"], $keyword) !== false) {
                                        $response["documents"][] = $completeInfo;
                                    }
                                } else {
                                    //No search filter active
                                    $response["documents"][] = $completeInfo;
                                }
                            }
                        }
                    }
                }
            }

            $rs->next();
        }

        $response["totalDocumentsCount"] = $numRecTotal;

        return $response;
    }
Example #29
0
 function getProcessArray($action, $userUid)
 {
     global $oAppCache;
     $processes = array();
     $processes[] = array("", G::LoadTranslation("ID_ALL_PROCESS"));
     switch ($action) {
         case "simple_search":
         case "search":
             //In search action, the query to obtain all process is too slow, so we need to query directly to
             //process and content tables, and for that reason we need the current language in AppCacheView.
             G::loadClass("configuration");
             $oConf = new Configurations();
             $oConf->loadConfig($x, "APP_CACHE_VIEW_ENGINE", "", "", "", "");
             $appCacheViewEngine = $oConf->aConfig;
             $lang = isset($appCacheViewEngine["LANG"]) ? $appCacheViewEngine["LANG"] : "en";
             $cProcess = new Criteria("workflow");
             $cProcess->clearSelectColumns();
             $cProcess->addSelectColumn(ProcessPeer::PRO_UID);
             $cProcess->addSelectColumn(ContentPeer::CON_VALUE);
             $del = DBAdapter::getStringDelimiter();
             $conds = array();
             $conds[] = array(ProcessPeer::PRO_UID, ContentPeer::CON_ID);
             $conds[] = array(ContentPeer::CON_CATEGORY, $del . "PRO_TITLE" . $del);
             $conds[] = array(ContentPeer::CON_LANG, $del . $lang . $del);
             $cProcess->addJoinMC($conds, Criteria::LEFT_JOIN);
             $cProcess->add(ProcessPeer::PRO_STATUS, "ACTIVE");
             $oDataset = ProcessPeer::doSelectRS($cProcess);
             $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
             $oDataset->next();
             while ($aRow = $oDataset->getRow()) {
                 $processes[] = array($aRow["PRO_UID"], $aRow["CON_VALUE"]);
                 $oDataset->next();
             }
             return $processes;
             break;
         case "consolidated":
         default:
             $cProcess = $oAppCache->getToDoListCriteria($userUid);
             //fast enough
             break;
     }
     $cProcess->clearSelectColumns();
     $cProcess->setDistinct();
     $cProcess->addSelectColumn(AppCacheViewPeer::PRO_UID);
     $cProcess->addSelectColumn(AppCacheViewPeer::APP_PRO_TITLE);
     $oDataset = AppCacheViewPeer::doSelectRS($cProcess);
     $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
     $oDataset->next();
     while ($aRow = $oDataset->getRow()) {
         $processes[] = array($aRow["PRO_UID"], $aRow["APP_PRO_TITLE"]);
         $oDataset->next();
     }
     return $processes;
 }
Example #30
0
    /**

     * Return a single Adhoc user or group assigned to an activity

     *

     * @param string $sProcessUID {@min 32} {@max 32}

     * @param string $sTaskUID {@min 32} {@max 32}

     * @param string $sAssigneeUID {@min 32} {@max 32}

     *

     * return array

     *

     * @access public

     */

    public function getTaskAdhocAssignee($sProcessUID, $sTaskUID, $sAssigneeUID)

    {

        try {

            Validator::proUid($sProcessUID, '$prj_uid');

            $this->validateActUid($sTaskUID);

            $iType = 2;

            $aUsers = array();

            $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::USR_UID, $sAssigneeUID);

            $oCriteria->add(\TaskUserPeer::TAS_UID, $sTaskUID);

            $oCriteria->add(\TaskUserPeer::TU_TYPE, $iType);

            $oCriteria->add(\TaskUserPeer::TU_RELATION, 2);

            $oDataset = \TaskUserPeer::doSelectRS($oCriteria);

            $oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC);

            $oDataset->next();

            $c = 0;

            $oTasks = new \Tasks();

            $aAux = $oTasks->getGroupsOfTask($sTaskUID, 2);

            $aUIDS1 = array();

            foreach ($aAux as $aGroup) {

                $aUIDS1[] = $aGroup['GRP_UID'];

            }

            $criteria = new \Criteria( 'workflow' );

            $criteria->addSelectColumn( \GroupwfPeer::GRP_UID );

            $criteria->addSelectColumn( \GroupwfPeer::GRP_STATUS );

            $criteria->addSelectColumn( \GroupwfPeer::GRP_UX );

            $criteria->addAsColumn( 'GRP_TITLE', \ContentPeer::CON_VALUE );

            $criteria->addJoin( \GroupwfPeer::GRP_UID, \ContentPeer::CON_ID, \Criteria::LEFT_JOIN );

            $criteria->add( \ContentPeer::CON_CATEGORY, 'GRP_TITLE' );

            $criteria->add( \ContentPeer::CON_LANG, SYS_LANG );

            $criteria->add( \GroupwfPeer::GRP_UID, $sAssigneeUID);

            $criteria->addAscendingOrderByColumn( \ContentPeer::CON_VALUE );

            $oDataset = \GroupwfPeer::doSelectRS( $criteria );

            $oDataset->setFetchmode( \ResultSet::FETCHMODE_ASSOC );

            $groups = array ();

            while ($oDataset->next()) {

                $groups[] = $oDataset->getRow();

            }

            $result = array ('rows' => $groups);

            foreach ($result['rows'] as $results) {

                if (in_array($results['GRP_UID'], $aUIDS1)) {

                    $c++;

                    $oCriteria = new \Criteria('workflow');

                    $oCriteria->addSelectColumn('COUNT(*) AS MEMBERS_NUMBER');

                    $oCriteria->add(\GroupUserPeer::GRP_UID, $results['GRP_UID']);

                    $oDataset2 = \GroupUserPeer::doSelectRS($oCriteria);

                    $oDataset2->setFetchmode(\ResultSet::FETCHMODE_ASSOC);

                    $oDataset2->next();

                    $aRow2 = $oDataset2->getRow();

                    $aUsers[] = array('ada_uid' => $results['GRP_UID'],

                                      'ada_name' => (!isset($aRow2['GROUP_INACTIVE']) ? $results['GRP_TITLE'] .

                                      ' (' . $aRow2['MEMBERS_NUMBER'] . ' ' .

                                      ((int) $aRow2['MEMBERS_NUMBER'] == 1 ? \G::LoadTranslation('ID_USER') : \G::LoadTranslation('ID_USERS')).

                                      ')' . '' : $results['GRP_TITLE'] . ' ' . $aRow2['GROUP_INACTIVE']),

                                      'ada_lastname' => "",

                                      'ada_username' => "",

                                      'ada_type' => "group" );

                }

            }

            $oCriteria = new \Criteria('workflow');

            $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->add(\TaskUserPeer::USR_UID, $sAssigneeUID);

            $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('ada_uid' => $aRow['USR_UID'],

                                'ada_name' => $aRow['USR_FIRSTNAME'],

                                'ada_lastname' => $aRow['USR_LASTNAME'],

                                'ada_username' => $aRow['USR_USERNAME'],

                                'ada_type' => "user" );

                $oDataset->next();

            }

            if (empty($aUsers)) {

                throw new \Exception(\G::LoadTranslation("ID_RECORD_NOT_FOUND", array($sAssigneeUID)));

            } else {

                return $aUsers;

            }

        } catch (\Exception $e) {

            throw $e;

        }

    }