Example #1
0
 /**
  * Verify if exists the title of a Group
  *
  * @param string $groupTitle      Title
  * @param string $groupUidExclude Unique id of Group to exclude
  *
  * return bool Return true if exists the title of a Group, false otherwise
  */
 public function existsTitle($groupTitle, $groupUidExclude = "")
 {
     try {
         $delimiter = \DBAdapter::getStringDelimiter();
         $criteria = new \Criteria("workflow");
         $criteria->addSelectColumn(\GroupwfPeer::GRP_UID);
         $criteria->addAlias("CT", \ContentPeer::TABLE_NAME);
         $arrayCondition = array();
         $arrayCondition[] = array(\GroupwfPeer::GRP_UID, "CT.CON_ID", \Criteria::EQUAL);
         $arrayCondition[] = array("CT.CON_CATEGORY", $delimiter . "GRP_TITLE" . $delimiter, \Criteria::EQUAL);
         $arrayCondition[] = array("CT.CON_LANG", $delimiter . SYS_LANG . $delimiter, \Criteria::EQUAL);
         $criteria->addJoinMC($arrayCondition, \Criteria::LEFT_JOIN);
         if ($groupUidExclude != "") {
             $criteria->add(\GroupwfPeer::GRP_UID, $groupUidExclude, \Criteria::NOT_EQUAL);
         }
         $criteria->add("CT.CON_VALUE", $groupTitle, \Criteria::EQUAL);
         $rsCriteria = \GroupwfPeer::doSelectRS($criteria);
         if ($rsCriteria->next()) {
             return true;
         } else {
             return false;
         }
     } catch (\Exception $e) {
         throw $e;
     }
 }
Example #2
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 #3
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;
 }
 public function loadByCategoryId($sCategoryUid)
 {
     $c = new Criteria('workflow');
     $del = DBAdapter::getStringDelimiter();
     $c->clearSelectColumns();
     $c->addSelectColumn(ProcessCategoryPeer::CATEGORY_NAME);
     $c->add(ProcessCategoryPeer::CATEGORY_UID, $sCategoryUid);
     $dataset = ProcessCategoryPeer::doSelectRS($c);
     $dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
     $dataset->next();
     $aRow = $dataset->getRow();
     return $aRow['CATEGORY_NAME'];
 }
Example #5
0
 /**
  * Get the evn_description column value.
  *
  * @return string
  */
 public function loadDefaultAccount()
 {
     $c = new Criteria('workflow');
     $del = DBAdapter::getStringDelimiter();
     $c->clearSelectColumns();
     $c->addSelectColumn(EmailServerPeer::MESS_ACCOUNT);
     $c->add(EmailServerPeer::MESS_DEFAULT, 1);
     $rs = EmailServerPeer::doSelectRS($c, Propel::getDBConnection('workflow_ro'));
     $rs->setFetchmode(ResultSet::FETCHMODE_ASSOC);
     $rs->next();
     $row = $rs->getRow();
     $response = $row;
     return $response;
 }
Example #6
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 #7
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 #8
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 #9
0
$req = $_POST['request'];
switch ($req) {
    case 'showUsers':
        /* 
        		  $sql = "SELECT USR_UID, USR_EMAIL, CONCAT(USR_FIRSTNAME, ' ' , USR_LASTNAME) AS USR_FULLNAME FROM USERS WHERE USR_STATUS = 'ACTIVE' AND USR_EMAIL <> ''";
        */
        $sDataBase = 'database_' . strtolower(DB_ADAPTER);
        if (G::LoadSystemExist($sDataBase)) {
            G::LoadSystem($sDataBase);
            $oDataBase = new database();
            $sConcat = $oDataBase->concatString("USR_FIRSTNAME", "' '", "USR_LASTNAME");
        }
        $sql = " SELECT USR_UID, USR_EMAIL, " . $sConcat . " AS USR_FULLNAME FROM USERS " . " WHERE USR_STATUS = 'ACTIVE' AND USR_EMAIL <> ''";
        $oCriteria = new Criteria('workflow');
        $del = DBAdapter::getStringDelimiter();
        $con = Propel::getConnection("workflow");
        $stmt = $con->prepareStatement($sql);
        $rs = $stmt->executeQuery();
        $aRows[] = array('USR_UID' => 'char', 'USR_EMAIL' => 'char', 'USR_FULLNAME' => 'char');
        while ($rs->next()) {
            $aRows[] = array('USR_UID' => $rs->getString('USR_UID'), 'USR_EMAIL' => $rs->getString('USR_EMAIL'), 'USR_FULLNAME' => $rs->getString('USR_FULLNAME'));
        }
        //echo '<pre>';		print_r($aRows);
        global $_DBArray;
        $_DBArray['virtualtable'] = $aRows;
        $_SESSION['_DBArray'] = $_DBArray;
        G::LoadClass('ArrayPeer');
        $oCriteria = new Criteria('dbarray');
        $oCriteria->setDBArrayTable('virtualtable');
        $G_PUBLISH = new Publisher();
Example #10
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 #11
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 #12
0
     if (strpos($_POST['server'], "\\")) {
         $_POST['port'] = 'none';
     }
     $aData = array('DBS_UID' => $_POST['dbs_uid'], 'PRO_UID' => $_SESSION['PROCESS'], 'DBS_TYPE' => $_POST['type'], 'DBS_SERVER' => $_POST['server'], 'DBS_DATABASE_NAME' => $_POST['db_name'], 'DBS_USERNAME' => $_POST['user'], 'DBS_PASSWORD' => ($_POST['passwd'] == 'none' ? "" : G::encrypt($_POST['passwd'], $_POST['db_name'])) . "_2NnV3ujj3w", 'DBS_PORT' => $_POST['port'] == 'none' ? "" : $_POST['port'], 'DBS_ENCODE' => $_POST['enc']);
     $oDBSource->update($aData);
     $oContent->addContent('DBS_DESCRIPTION', '', $_POST['dbs_uid'], SYS_LANG, $_POST['desc']);
     break;
 case 'saveConnection':
     $oDBSource = new DbSource();
     $oContent = new Content();
     if (strpos($_POST['server'], "\\")) {
         $_POST['port'] = 'none';
     }
     $aData = array('PRO_UID' => $_SESSION['PROCESS'], 'DBS_TYPE' => $_POST['type'], 'DBS_SERVER' => $_POST['server'], 'DBS_DATABASE_NAME' => $_POST['db_name'], 'DBS_USERNAME' => $_POST['user'], 'DBS_PASSWORD' => ($_POST['passwd'] == 'none' ? "" : G::encrypt($_POST['passwd'], $_POST['db_name'])) . "_2NnV3ujj3w", 'DBS_PORT' => $_POST['port'] == 'none' ? "" : $_POST['port'], 'DBS_ENCODE' => $_POST['enc']);
     $newid = $oDBSource->create($aData);
     $sDelimiter = DBAdapter::getStringDelimiter();
     $oContent->addContent('DBS_DESCRIPTION', '', $newid, SYS_LANG, $_POST['desc']);
     break;
 case 'deleteDbConnection':
     try {
         $oDBSource = new DbSource();
         $oContent = new Content();
         $DBS_UID = $_POST['dbs_uid'];
         $PRO_UID = $_SESSION['PROCESS'];
         $oDBSource->remove($DBS_UID, $PRO_UID);
         $oContent->removeContent('DBS_DESCRIPTION', "", $DBS_UID);
         $result->success = true;
         $result->msg = G::LoadTranslation('ID_DBCONNECTION_REMOVED');
     } catch (Exception $e) {
         $result->success = false;
         $result->msg = $e->getMessage();
Example #13
0
 /** 
  * Patch for reports by The Answer (17-10-2k8)
  * 
  * 
  * @name reportsPatch
  *
  * param 
  * @return void
  */
 function reportsPatch()
 {
     require_once 'classes/model/AppDelegation.php';
     $oCriteria = new Criteria('workflow');
     $del = DBAdapter::getStringDelimiter();
     $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_FINISH_DATE);
     $oCriteria->addSelectColumn(AppDelegationPeer::DEL_DURATION);
     $oDataset = AppDelegationPeer::doSelectRS($oCriteria);
     $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
     $oDataset->next();
     while ($aRow = $oDataset->getRow()) {
         $oAppDelegation = new AppDelegation();
         $aData['APP_UID'] = $aRow['APP_UID'];
         $aData['DEL_INDEX'] = $aRow['DEL_INDEX'];
         $aData['DEL_DELEGATE_DATE'] = $aRow['DEL_DELEGATE_DATE'];
         if ($aRow['DEL_INIT_DATE'] == NULL) {
             $aData['DEL_INIT_DATE'] = $aRow['DEL_DELEGATE_DATE'];
         } else {
             $aData['DEL_INIT_DATE'] = $aRow['DEL_INIT_DATE'];
         }
         //$aData['DEL_FINISH_DATE']=$aRow['DEL_FINISH_DATE'];
         if ($aRow['DEL_DURATION'] != 0) {
             G::LoadClass('dates');
             $oDates = new dates();
             $aData['DEL_DURATION'] = $oDates->calculateDuration($aData['DEL_INIT_DATE'], $aRow['DEL_FINISH_DATE'], null, null, $aRow['TAS_UID']);
         }
         $oAppDelegation->update($aData);
         $oDataset->next();
     }
     return;
 }
Example #14
0
    /**
     * 
     * @url POST /forwardMail
     */
    public function forwardMail($params)
    {
        if (!isset($_REQUEST['REQ_UID'])) {
            $_REQUEST['REQ_UID'] = '';
        }

        $criteria = new Criteria();
        $criteria->addSelectColumn(AbeConfigurationPeer::ABE_UID);
        $criteria->addSelectColumn(AbeConfigurationPeer::PRO_UID);
        $criteria->addSelectColumn(AbeConfigurationPeer::TAS_UID);

        $criteria->addSelectColumn(AbeRequestsPeer::ABE_REQ_UID);
        $criteria->addSelectColumn(AbeRequestsPeer::APP_UID);
        $criteria->addSelectColumn(AbeRequestsPeer::DEL_INDEX);
        $criteria->addSelectColumn(AbeRequestsPeer::ABE_REQ_SENT_TO);
        $criteria->addSelectColumn(AbeRequestsPeer::ABE_REQ_SUBJECT);
        $criteria->addSelectColumn(AbeRequestsPeer::ABE_REQ_BODY);
        $criteria->addSelectColumn(AbeRequestsPeer::ABE_REQ_ANSWERED);
        $criteria->addSelectColumn(AbeRequestsPeer::ABE_REQ_STATUS);

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

        $criteria->add(AbeRequestsPeer::ABE_REQ_UID, $_REQUEST['REQ_UID']);
        $criteria->addJoin(AbeRequestsPeer::ABE_UID, AbeConfigurationPeer::ABE_UID);
        $criteria->addJoin(AppDelegationPeer::APP_UID, AbeRequestsPeer::APP_UID);
        $criteria->addJoin(AppDelegationPeer::DEL_INDEX, AbeRequestsPeer::DEL_INDEX);
        $resultRes = AbeRequestsPeer::doSelectRS($criteria);
        $resultRes->setFetchmode(ResultSet::FETCHMODE_ASSOC);

        $resultRes->next();
        $dataRes = Array();

        if ($dataRes = $resultRes->getRow()) {
            if (is_null($dataRes['DEL_FINISH_DATE'])) {
                require_once 'classes/model/Configuration.php';
                G::LoadClass('spool');

                $configuration = new Configuration();
                $sDelimiter = DBAdapter::getStringDelimiter();
                $criteria = new Criteria('workflow');
                $criteria->add(ConfigurationPeer::CFG_UID, 'Emails');
                $criteria->add(ConfigurationPeer::OBJ_UID, '');
                $criteria->add(ConfigurationPeer::PRO_UID, '');
                $criteria->add(ConfigurationPeer::USR_UID, '');
                $criteria->add(ConfigurationPeer::APP_UID, '');

                if (ConfigurationPeer::doCount($criteria) == 0) {
                    $configuration->create(array('CFG_UID' => 'Emails', 'OBJ_UID' => '', 'CFG_VALUE' => '', 'PRO_UID' => '', 'USR_UID' => '', 'APP_UID' => ''));
                    $newConfiguration = array();
                } else {
                    $newConfiguration = $configuration->load('Emails', '', '', '', '');

                    if ($newConfiguration['CFG_VALUE'] != '') {
                        $newConfiguration = unserialize($newConfiguration['CFG_VALUE']);
                    } else {
                        $newConfiguration = array();
                    }
                }

                $spool = new spoolRun();
                $spool->setConfig(array(
                    'MESS_ENGINE' => $newConfiguration['MESS_ENGINE'],
                    'MESS_SERVER' => $newConfiguration['MESS_SERVER'],
                    'MESS_PORT' => $newConfiguration['MESS_PORT'],
                    'MESS_ACCOUNT' => $newConfiguration['MESS_ACCOUNT'],
                    'MESS_PASSWORD' => $newConfiguration['MESS_PASSWORD'],
                    'SMTPAuth' => $newConfiguration['MESS_RAUTH']
                ));

                $spool->create(array(
                    'msg_uid' => '',
                    'app_uid' => $dataRes['APP_UID'],
                    'del_index' => $dataRes['DEL_INDEX'],
                    'app_msg_type' => 'TEST',
                    'app_msg_subject' => $dataRes['ABE_REQ_SUBJECT'],
                    'app_msg_from' => $newConfiguration['MESS_ACCOUNT'],
                    'app_msg_to' => $dataRes['ABE_REQ_SENT_TO'],
                    'app_msg_body' => $dataRes['ABE_REQ_BODY'],
                    'app_msg_cc' => '',
                    'app_msg_bcc' => '',
                    'app_msg_attach' => '',
                    'app_msg_template' => '',
                    'app_msg_status' => 'pending'
                ));

                if ($spool->sendMail()) {
                    $dataRes['ABE_REQ_STATUS'] = 'SENT';

                    $message = 'The email was resend to: ' . $dataRes['ABE_REQ_SENT_TO'];
                } else {
                    $dataRes['ABE_REQ_STATUS'] = 'ERROR';
                    $message = 'There was a problem sending the email to: ' . $dataRes['ABE_REQ_SENT_TO'] . ', please try later.';
                }

                try {
                    $abeRequestsInstance = new AbeRequests();
                    $abeRequestsInstance->createOrUpdate($dataRes);
                } catch (Exception $error) {
                    throw $error;
                }
            } else {
                $message = 'Unable to send email, the task is closed.';
            }
        } else {
            $message = 'An unexpected error occurred please try again later.';
        }

        return $message;
    }
Example #15
0
     $oCriteria->addAscendingOrderByColumn('TAS_TITLE');
     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']);
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
 public function loadByUsername($sUsername)
 {
     $c = new Criteria('workflow');
     $del = DBAdapter::getStringDelimiter();
     $c->clearSelectColumns();
     $c->addSelectColumn(UsersPeer::USR_UID);
     $c->addSelectColumn(UsersPeer::USR_USERNAME);
     $c->addSelectColumn(UsersPeer::USR_STATUS);
     $c->add(UsersPeer::USR_USERNAME, $sUsername);
     return $c;
 }
    /**
     * 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 #20
0
 public function sendNoteNotification($appUid, $usrUid, $noteContent, $noteRecipients, $sFrom = "")
 {
     try {
         require_once 'classes/model/Configuration.php';
         $oConfiguration = new Configuration();
         $sDelimiter = DBAdapter::getStringDelimiter();
         $oCriteria = new Criteria('workflow');
         $oCriteria->add(ConfigurationPeer::CFG_UID, 'Emails');
         $oCriteria->add(ConfigurationPeer::OBJ_UID, '');
         $oCriteria->add(ConfigurationPeer::PRO_UID, '');
         $oCriteria->add(ConfigurationPeer::USR_UID, '');
         $oCriteria->add(ConfigurationPeer::APP_UID, '');
         if (ConfigurationPeer::doCount($oCriteria) == 0) {
             $oConfiguration->create(array('CFG_UID' => 'Emails', 'OBJ_UID' => '', 'CFG_VALUE' => '', 'PRO_UID' => '', 'USR_UID' => '', 'APP_UID' => ''));
             $aConfiguration = array();
         } else {
             $aConfiguration = $oConfiguration->load('Emails', '', '', '', '');
             if ($aConfiguration['CFG_VALUE'] != '') {
                 $aConfiguration = unserialize($aConfiguration['CFG_VALUE']);
                 $passwd = $aConfiguration['MESS_PASSWORD'];
                 $passwdDec = G::decrypt($passwd, 'EMAILENCRYPT');
                 $auxPass = explode('hash:', $passwdDec);
                 if (count($auxPass) > 1) {
                     if (count($auxPass) == 2) {
                         $passwd = $auxPass[1];
                     } else {
                         array_shift($auxPass);
                         $passwd = implode('', $auxPass);
                     }
                 }
                 $aConfiguration['MESS_PASSWORD'] = $passwd;
             } else {
                 $aConfiguration = array();
             }
         }
         if (!isset($aConfiguration['MESS_ENABLED']) || $aConfiguration['MESS_ENABLED'] != '1') {
             return false;
         }
         $oUser = new Users();
         $aUser = $oUser->load($usrUid);
         $authorName = ($aUser['USR_FIRSTNAME'] != '' || $aUser['USR_LASTNAME'] != '' ? $aUser['USR_FIRSTNAME'] . ' ' . $aUser['USR_LASTNAME'] . ' ' : '') . '<' . $aUser['USR_EMAIL'] . '>';
         G::LoadClass('case');
         $oCase = new Cases();
         $aFields = $oCase->loadCase($appUid);
         $configNoteNotification['subject'] = G::LoadTranslation('ID_MESSAGE_SUBJECT_NOTE_NOTIFICATION') . " @#APP_TITLE ";
         $configNoteNotification['body'] = G::LoadTranslation('ID_CASE') . ": @#APP_TITLE<br />" . G::LoadTranslation('ID_AUTHOR') . ": {$authorName}<br /><br />{$noteContent}";
         /*
         if ($sFrom == '') {
             $sFrom = '"ProcessMaker"';
         }
         */
         if (isset($aConfiguration['MESS_FROM_NAME']) && $aConfiguration['MESS_FROM_NAME'] != '') {
             $sFrom = $aConfiguration['MESS_FROM_NAME'];
         }
         $hasEmailFrom = preg_match('/(.+)@(.+)\\.(.+)/', $sFrom, $match);
         if (!$hasEmailFrom || strpos($sFrom, $aConfiguration['MESS_ACCOUNT']) === false) {
             if ($aConfiguration['MESS_ENGINE'] != 'MAIL' && $aConfiguration['MESS_ACCOUNT'] != '') {
                 $sFrom .= ' <' . $aConfiguration['MESS_ACCOUNT'] . '>';
             } else {
                 if ($aConfiguration['MESS_ENGINE'] == 'MAIL') {
                     $sFrom .= ' <info@' . gethostbyaddr('127.0.0.1') . '>';
                 } else {
                     if ($aConfiguration['MESS_SERVER'] != '') {
                         if ($sAux = @gethostbyaddr($aConfiguration['MESS_SERVER'])) {
                             $sFrom .= ' <info@' . $sAux . '>';
                         } else {
                             $sFrom .= ' <info@' . $aConfiguration['MESS_SERVER'] . '>';
                         }
                     } else {
                         $sFrom .= ' <*****@*****.**>';
                     }
                 }
             }
         }
         $sSubject = G::replaceDataField($configNoteNotification['subject'], $aFields);
         $sBody = nl2br(G::replaceDataField($configNoteNotification['body'], $aFields));
         G::LoadClass('spool');
         $oUser = new Users();
         $recipientsArray = explode(",", $noteRecipients);
         foreach ($recipientsArray as $recipientUid) {
             $aUser = $oUser->load($recipientUid);
             $sTo = ($aUser['USR_FIRSTNAME'] != '' || $aUser['USR_LASTNAME'] != '' ? $aUser['USR_FIRSTNAME'] . ' ' . $aUser['USR_LASTNAME'] . ' ' : '') . '<' . $aUser['USR_EMAIL'] . '>';
             $oSpool = new spoolRun();
             if ($aConfiguration['MESS_RAUTH'] == false || is_string($aConfiguration['MESS_RAUTH']) && $aConfiguration['MESS_RAUTH'] == 'false') {
                 $aConfiguration['MESS_RAUTH'] = 0;
             } else {
                 $aConfiguration['MESS_RAUTH'] = 1;
             }
             $oSpool->setConfig(array('MESS_ENGINE' => $aConfiguration['MESS_ENGINE'], 'MESS_SERVER' => $aConfiguration['MESS_SERVER'], 'MESS_PORT' => $aConfiguration['MESS_PORT'], 'MESS_ACCOUNT' => $aConfiguration['MESS_ACCOUNT'], 'MESS_PASSWORD' => $aConfiguration['MESS_PASSWORD'], 'SMTPAuth' => $aConfiguration['MESS_RAUTH'] == '1' ? true : false, 'SMTPSecure' => isset($aConfiguration['SMTPSecure']) ? $aConfiguration['SMTPSecure'] : ''));
             $oSpool->create(array('msg_uid' => '', 'app_uid' => $appUid, 'del_index' => 0, 'app_msg_type' => 'DERIVATION', 'app_msg_subject' => $sSubject, 'app_msg_from' => $sFrom, 'app_msg_to' => $sTo, 'app_msg_body' => $sBody, 'app_msg_cc' => '', 'app_msg_bcc' => '', 'app_msg_attach' => '', 'app_msg_template' => '', 'app_msg_status' => 'pending'));
             if ($aConfiguration['MESS_BACKGROUND'] == '' || $aConfiguration['MESS_TRY_SEND_INMEDIATLY'] == '1') {
                 $oSpool->sendMail();
             }
         }
         //Send derivation notification - End
     } catch (Exception $oException) {
         throw $oException;
     }
 }
Example #21
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;

    }
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
    /**

     * 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 #24
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;
     }
 }
Example #25
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 #26
0
         $criteria->addAscendingOrderByColumn($sort);
     } else {
         $criteria->addDescendingOrderByColumn($sort);
     }
 } else {
     $oCriteria->addDescendingOrderByColumn(AppMessagePeer::APP_MSG_SEND_DATE);
 }
 if ($limit != '') {
     $criteria->setLimit($limit);
     $criteria->setOffset($start);
 }
 $criteria->addJoin(AppMessagePeer::APP_UID, ApplicationPeer::APP_UID);
 $conditions = array();
 $conditions[] = array(ApplicationPeer::PRO_UID, 'C2.CON_ID');
 $conditions[] = array('C2.CON_CATEGORY', DBAdapter::getStringDelimiter() . 'PRO_TITLE' . DBAdapter::getStringDelimiter());
 $conditions[] = array('C2.CON_LANG', DBAdapter::getStringDelimiter() . SYS_LANG . DBAdapter::getStringDelimiter());
 $criteria->addJoinMC($conditions, Criteria::LEFT_JOIN);
 $result = AppMessagePeer::doSelectRS($criteria);
 $result->setFetchmode(ResultSet::FETCHMODE_ASSOC);
 $data = array();
 $dataPro = array();
 $index = 1;
 $content = new Content();
 $tasTitleDefault = G::LoadTranslation('ID_TASK_NOT_RELATED');
 while ($result->next()) {
     $row = $result->getRow();
     $row['APP_MSG_FROM'] = htmlentities($row['APP_MSG_FROM'], ENT_QUOTES, "UTF-8");
     $row['APP_MSG_STATUS'] = ucfirst($row['APP_MSG_STATUS']);
     if ($row['DEL_INDEX'] != 0) {
         $index = $row['DEL_INDEX'];
     }
Example #27
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;
 }
Example #28
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 #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;
 }
 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;
 }