/** * 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; } }
/** * 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; } }
/** * 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']; }
/** * 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; }
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; }
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; }
/** * 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; } }
$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();
/** * 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; } }
/** * 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; } }
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();
/** * 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; }
/** * * @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; }
$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']);
/** * 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; } }
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; }
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")); } }
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; } }
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; }
/** * 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; }
/** * 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; } }
/** * 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; } }
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; }
$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']; }
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; }
/** * 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; } }
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; }