/** * Implementation for 'GET' method for Rest API * * @param mixed $dynUid Primary key * * @return array $result Returns array within multiple records or a single record depending if * a single selection was requested passing id(s) as param */ protected function get($dynUid = null) { $result = array(); try { $noArguments = true; $argumentList = func_get_args(); foreach ($argumentList as $arg) { if (!is_null($arg)) { $noArguments = false; } } if ($noArguments) { $criteria = new Criteria('workflow'); $criteria->addSelectColumn(DynaformPeer::DYN_UID); $criteria->addSelectColumn(DynaformPeer::PRO_UID); $criteria->addSelectColumn(DynaformPeer::DYN_TYPE); $criteria->addSelectColumn(DynaformPeer::DYN_FILENAME); $dataset = AppEventPeer::doSelectRS($criteria); $dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); while ($dataset->next()) { $result[] = $dataset->getRow(); } } else { $record = DynaformPeer::retrieveByPK($dynUid); if ($record) { $result = $record->toArray(BasePeer::TYPE_FIELDNAME); } else { $paramValues = ""; foreach ($argumentList as $arg) { $paramValues .= strlen($paramValues) ? ', ' : ''; if (!is_null($arg)) { $paramValues .= "{$arg}"; } else { $paramValues .= "NULL"; } } throw new RestException(417, "table Dynaform ({$paramValues})"); } } } catch (RestException $e) { throw new RestException($e->getCode(), $e->getMessage()); } catch (Exception $e) { throw new RestException(412, $e->getMessage()); } return $result; }
/** * Put Set Case Variables * * @access public * @param string $app_uid, Uid for case * @param array $app_data, Data for case variables * @param string $dyn_uid, Uid for dynaform * @param string $usr_uid, Uid for user * * @author Brayan Pereyra (Cochalo) <*****@*****.**> * @copyright Colosa - Bolivia */ public function setCaseVariables($app_uid, $app_data, $dyn_uid = null, $usr_uid) { Validator::isString($app_uid, '$app_uid'); Validator::appUid($app_uid, '$app_uid'); Validator::isArray($app_data, '$app_data'); Validator::isString($usr_uid, '$usr_uid'); Validator::usrUid($usr_uid, '$usr_uid'); $arrayResult = $this->getStatusInfo($app_uid); if ($arrayResult["APP_STATUS"] == "CANCELLED") { throw new \Exception(\G::LoadTranslation("ID_CASE_CANCELLED", array($app_uid))); } if ($arrayResult["APP_STATUS"] == "COMPLETED") { throw new \Exception(\G::LoadTranslation("ID_CASE_IS_COMPLETED", array($app_uid))); } $appCacheView = new \AppCacheView(); $isProcessSupervisor = $appCacheView->getProUidSupervisor($usr_uid); $criteria = new \Criteria("workflow"); $criteria->addSelectColumn(\AppDelegationPeer::APP_UID); $criteria->add(\AppDelegationPeer::APP_UID, $app_uid, \Criteria::EQUAL); $criteria->add(\AppDelegationPeer::USR_UID, $usr_uid, \Criteria::EQUAL); $criteria->add( $criteria->getNewCriterion(\AppDelegationPeer::USR_UID, $usr_uid, \Criteria::EQUAL)->addOr( $criteria->getNewCriterion(\AppDelegationPeer::PRO_UID, $isProcessSupervisor, \Criteria::IN)) ); $rsCriteria = \AppDelegationPeer::doSelectRS($criteria); if (!$rsCriteria->next()) { throw (new \Exception(\G::LoadTranslation("ID_NO_PERMISSION_NO_PARTICIPATED", array($usr_uid)))); } $_SESSION['APPLICATION'] = $app_uid; $_SESSION['USER_LOGGED'] = $usr_uid; $case = new \Cases(); $fields = $case->loadCase($app_uid); $_POST['form'] = $app_data; if (!is_null($dyn_uid) && $dyn_uid != '') { $oDynaform = \DynaformPeer::retrieveByPK($dyn_uid); if ($oDynaform->getDynVersion() < 2) { $oForm = new \Form ( $fields['PRO_UID'] . "/" . $dyn_uid, PATH_DYNAFORM ); $oForm->validatePost(); } } $data['APP_DATA'] = array_merge($fields['APP_DATA'], $_POST['form']); $case->updateCase($app_uid, $data); }
public function verifyExistingName($sName, $sProUid) { $sNameDyanform = urldecode($sName); $sProUid = urldecode($sProUid); $oCriteria = new Criteria('workflow'); $oCriteria->addSelectColumn(DynaformPeer::DYN_UID); $oCriteria->add(DynaformPeer::PRO_UID, $sProUid); $oDataset = DynaformPeer::doSelectRS($oCriteria); $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $flag = true; while ($oDataset->next() && $flag) { $aRow = $oDataset->getRow(); $oCriteria1 = new Criteria('workflow'); $oCriteria1->addSelectColumn('COUNT(*) AS DYNAFORMS'); $oCriteria1->add(ContentPeer::CON_CATEGORY, 'DYN_TITLE'); $oCriteria1->add(ContentPeer::CON_ID, $aRow['DYN_UID']); $oCriteria1->add(ContentPeer::CON_VALUE, $sNameDyanform); $oCriteria1->add(ContentPeer::CON_LANG, SYS_LANG); $oDataset1 = ContentPeer::doSelectRS($oCriteria1); $oDataset1->setFetchmode(ResultSet::FETCHMODE_ASSOC); $oDataset1->next(); $aRow1 = $oDataset1->getRow(); if ($aRow1['DYNAFORMS']) { $flag = false; break; } } return $flag; }
if ($_REQUEST['DEL_INDEX'] == '') { throw new Exception('The parameter DEL_INDEX is empty.'); } G::LoadClass('case'); G::LoadClass('pmDynaform'); $cases = new Cases(); $caseFields = $cases->loadCase(G::decrypt($_REQUEST['APP_UID'], URL_KEY),G::decrypt($_REQUEST['DEL_INDEX'], URL_KEY)); // $criteria = new Criteria(); $criteria->addSelectColumn(DynaformPeer::DYN_CONTENT); $criteria->addSelectColumn(DynaformPeer::PRO_UID); $criteria->add(DynaformPeer::DYN_UID, G::decrypt($_REQUEST['DYN_UID'], URL_KEY)); $result = DynaformPeer::doSelectRS($criteria); $result->setFetchmode(ResultSet::FETCHMODE_ASSOC); $result->next(); $configuration = $result->getRow(); $action = 'ActionsByEmailDataFormPost.php?APP_UID=' . $_REQUEST['APP_UID'] . '&DEL_INDEX=' . $_REQUEST['DEL_INDEX'] . '&ABER=' . $_REQUEST['ABER']; $record['DYN_CONTENT'] = $configuration['DYN_CONTENT']; $record['PRO_UID'] = $configuration['PRO_UID']; $record['CURRENT_DYNAFORM'] = G::decrypt($_REQUEST['DYN_UID'], URL_KEY); $record['APP_UID'] = $_REQUEST['APP_UID']; $record['DEL_INDEX'] = $_REQUEST['DEL_INDEX']; $record['ABER'] = $_REQUEST['ABER']; if (is_null($caseFields['DEL_FINISH_DATE'])) { $a = new pmDynaform($record); $a->printABE($action,$record); } else {
public function deleteLanguage($dyn_uid, $lang) { $con = Propel::getConnection(DynaformPeer::DATABASE_NAME); $con->begin(); $oPro = DynaformPeer::retrieveByPk($dyn_uid); $dyn_labels = \G::json_decode($oPro->getDynLabel()); unset($dyn_labels->{$lang}); $oPro->setDynLabel(G::json_encode($dyn_labels)); $oPro->save(); $con->commit(); }
} //G::genericForceLogin( 'WF_MYINFO' , 'login/noViewPage', $urlLogin = '******' ); require_once 'classes/model/Dynaform.php'; require_once 'classes/model/Content.php'; if (isset($_POST['function'])) { $sfunction = $_POST['function']; } elseif (isset($_POST['functions'])) { $sfunction = $_POST['functions']; } if (isset($sfunction) && $sfunction == 'lookforNameDynaform') { $snameDyanform = urldecode($_POST['NAMEDYNAFORM']); $sPRO_UID = urldecode($_POST['proUid']); $oCriteria = new Criteria('workflow'); $oCriteria->addSelectColumn(DynaformPeer::DYN_UID); $oCriteria->add(DynaformPeer::PRO_UID, $sPRO_UID); $oDataset = DynaformPeer::doSelectRS($oCriteria); $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $flag = true; while ($oDataset->next() && $flag) { $aRow = $oDataset->getRow(); $oCriteria1 = new Criteria('workflow'); $oCriteria1->addSelectColumn('COUNT(*) AS DYNAFORMS'); $oCriteria1->add(ContentPeer::CON_CATEGORY, 'DYN_TITLE'); $oCriteria1->add(ContentPeer::CON_ID, $aRow['DYN_UID']); $oCriteria1->add(ContentPeer::CON_VALUE, $snameDyanform); $oCriteria1->add(ContentPeer::CON_LANG, SYS_LANG); $oDataset1 = ContentPeer::doSelectRS($oCriteria1); $oDataset1->setFetchmode(ResultSet::FETCHMODE_ASSOC); $oDataset1->next(); $aRow1 = $oDataset1->getRow(); if ($aRow1['DYNAFORMS']) {
G::LoadClass('dynaFormField'); if (!(isset($_GET['A']) && $_GET['A'] !== '')) { return; } $file = G::decrypt($_GET['A'], URL_KEY); $dbc = new DBConnection(PATH_DYNAFORM . $file . '.xml', '', '', '', 'myxml'); $ses = new DBSession($dbc); //TODO: Improve how to obtain the PRO_UID. $aFile = explode('/', str_replace('\\', '/', $file)); $proUid = $aFile[0]; $dynUid = str_replace("_tmp0", "", $aFile[1]); require_once 'classes/model/Dynaform.php'; $k = new Criteria('workflow'); $k->addSelectColumn(DynaformPeer::DYN_TYPE); $k->add(DynaformPeer::DYN_UID, $dynUid); $ods = DynaformPeer::doSelectRS($k); $ods->next(); $row = $ods->getRow(); $dynType = $row[0]; $Fields['PME_DYN_TYPE'] = $dynType; $fields = new DynaFormField($dbc); $fields->Fields['XMLNODE_NAME'] = isset($_GET['XMLNODE_NAME']) ? urldecode($_GET['XMLNODE_NAME']) : ''; $fields->Load($fields->Fields['XMLNODE_NAME']); /* Start Comment: Modify the options grid to set dynamically the language * label columns. */ // $dbc2 = new DBConnection( PATH_XMLFORM . 'dynaforms/fields/_options.xml' ,'','','','myxml' ); // $ses2 = new DBSession($dbc2); // $ses2->execute("DELETE FROM dynaForm WHERE XMLNODE_NAME like 'LABEL_%' "); // $ses2->execute("DELETE FROM dynaForm WHERE XMLNODE_NAME = '' "); // $langs=array(SYS_LANG/*,'es','fa'*/);
/** * verify if a dynaform is assigned some dynaform * * @param string $proUid the uid of the process * @param string $dynUid the uid of the dynaform * * @return array */ public function verifyDynaformAssignDynaform($dynUid, $proUid) { $res = array(); $oCriteria = new Criteria(); $oCriteria->addSelectColumn(DynaformPeer::DYN_UID); $oCriteria->add(DynaformPeer::PRO_UID, $proUid); $oCriteria->add(DynaformPeer::DYN_UID, $dynUid, Criteria::NOT_EQUAL); $oCriteria->add(DynaformPeer::DYN_CONTENT, "%" . $dynUid . "%", Criteria::LIKE); $oDataset = DynaformPeer::doSelectRS($oCriteria); $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); while ($oDataset->next()) { $res[] = $oDataset->getRow(); } return $res; }
/** * Get all dynaform variables * * @param $sProcessUID */ public function getDynaformVariables($sProcessUID,$excludeFieldsList,$allowed = true) { $dynaformVariables = array(); $oC = new Criteria( 'workflow' ); $oC->addSelectColumn( DynaformPeer::DYN_CONTENT ); $oC->add( DynaformPeer::PRO_UID, $sProcessUID ); $oData = DynaformPeer::doSelectRS( $oC ); $oData->setFetchmode( ResultSet::FETCHMODE_ASSOC ); $oData->next(); while ($aRowd = $oData->getRow()) { $dynaform = G::json_decode($aRowd['DYN_CONTENT'],true); if(is_array($dynaform) && sizeof($dynaform)) { $items = $dynaform['items'][0]['items']; foreach($items as $key => $val){ foreach($val as $column) { if($allowed) { if(isset($column['type']) && !in_array( $column['type'], $excludeFieldsList )){ if(array_key_exists('variable',$column)) { if($column['variable'] != "") { $dynaformVariables[] = $column['variable']; } } } } else { if(isset($column['type']) && in_array( $column['type'], $excludeFieldsList )){ if(array_key_exists('variable',$column)) { if($column['variable'] != "") { $dynaformVariables[] = $column['variable']; } } } } } } } $oData->next(); } return array_unique($dynaformVariables); }
/** * Assign a dynaform supervisor of a process * * @param string $sProcessUID * @param string $sDynUID * @param int $sPudPosition * @access public */ public function addProcessSupervisorDynaform($sProcessUID, $sDynUID, $sPudPosition) { $oTypeDynaform = \DynaformPeer::retrieveByPK($sDynUID); if (is_null( $oTypeDynaform )) { throw new \Exception(\G::LoadTranslation("ID_DOES NOT_DYNAFORM", array($sDynUID))); } $aResp = array(); $sPuUIDT = array(); $sDelimiter = \DBAdapter::getStringDelimiter(); $oCriteria = new \Criteria('workflow'); $oCriteria->addSelectColumn(\StepSupervisorPeer::STEP_UID); $oCriteria->addAsColumn('DYN_TITLE', 'C.CON_VALUE'); $oCriteria->addAlias('C', 'CONTENT'); $aConditions = array(); $aConditions[] = array(\StepSupervisorPeer::STEP_UID_OBJ, \DynaformPeer::DYN_UID ); $aConditions[] = array(\StepSupervisorPeer::STEP_TYPE_OBJ, $sDelimiter . 'DYNAFORM' . $sDelimiter ); $oCriteria->addJoinMC($aConditions, \Criteria::LEFT_JOIN); $aConditions = array(); $aConditions[] = array(\DynaformPeer::DYN_UID, 'C.CON_ID' ); $aConditions[] = array('C.CON_CATEGORY', $sDelimiter . 'DYN_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, $sDynUID); $oCriteria->add(\StepSupervisorPeer::STEP_TYPE_OBJ, 'DYNAFORM'); $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' => "DYNAFORM", 'STEP_UID_OBJ' => $sDynUID, 'STEP_POSITION' => $oStepSupervisor->getNextPosition($sProcessUID, "DYNAFORM"))); $sDelimiter = \DBAdapter::getStringDelimiter(); $oCriteria = new \Criteria('workflow'); $oCriteria->addSelectColumn(\StepSupervisorPeer::STEP_UID); $oCriteria->addSelectColumn(\StepSupervisorPeer::PRO_UID); $oCriteria->addSelectColumn(\StepSupervisorPeer::STEP_UID_OBJ); $oCriteria->addSelectColumn(\StepSupervisorPeer::STEP_POSITION); $oCriteria->addAsColumn('DYN_TITLE', 'C.CON_VALUE'); $oCriteria->addAlias('C', 'CONTENT'); $aConditions = array(); $aConditions[] = array(\StepSupervisorPeer::STEP_UID_OBJ, \DynaformPeer::DYN_UID ); $aConditions[] = array(\StepSupervisorPeer::STEP_TYPE_OBJ, $sDelimiter . 'DYNAFORM' . $sDelimiter ); $oCriteria->addJoinMC($aConditions, \Criteria::LEFT_JOIN); $aConditions = array(); $aConditions[] = array(\DynaformPeer::DYN_UID, 'C.CON_ID' ); $aConditions[] = array('C.CON_CATEGORY', $sDelimiter . 'DYN_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, $sDynUID); $oCriteria->add(\StepSupervisorPeer::STEP_TYPE_OBJ, 'DYNAFORM'); $oCriteria->addAscendingOrderByColumn(\StepSupervisorPeer::STEP_POSITION); $oDataset = \StepSupervisorPeer::doSelectRS($oCriteria); $oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC); $oDataset->next(); while ($aRow = $oDataset->getRow()) { $aResp = array('pud_uid' => $aRow['STEP_UID'], 'pud_position' => $aRow['STEP_POSITION'], 'dyn_uid' => $aRow['STEP_UID_OBJ']); $oDataset->next(); $aRespPosition = $this->updateProcessSupervisorDynaform($sProcessUID ,$aRow['STEP_UID'], $sPudPosition); $aResp = array_merge(array('dyn_title' => $aRow['DYN_TITLE']), $aRespPosition); } return $aResp; } else { throw new \Exception(\G::LoadTranslation("ID_RELATION_EXIST")); } }
/** * Retrieve multiple objects by pkey. * * @param array $pks List of primary keys * @param Connection $con the connection to use * @throws PropelException Any exceptions caught during processing will be * rethrown wrapped into a PropelException. */ public static function retrieveByPKs($pks, $con = null) { if ($con === null) { $con = Propel::getConnection(self::DATABASE_NAME); } $objs = null; if (empty($pks)) { $objs = array(); } else { $criteria = new Criteria(); $criteria->add(DynaformPeer::DYN_UID, $pks, Criteria::IN); $objs = DynaformPeer::doSelect($criteria, $con); } return $objs; }
/** * Get the uids of the grids into a xml form * * @param string $sproUid the uid of the process * @param string $sdbsUid the uid of the db connection * @author krlos <*****@*****.**> */ function lookingforUidGrids($sproUid, $sObjUID) { require_once "classes/model/DynaformPeer.php"; G::LoadSystem('dynaformhandler'); $uidsGrids = array(); $oC = new Criteria('workflow'); $oC->add(DynaformPeer::DYN_UID, $sObjUID); $oC->add(DynaformPeer::PRO_UID, $sproUid); $oDataset = DynaformPeer::doSelectRS($oC); $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $oDataset->next(); $aRow = $oDataset->getRow(); if ($aRow['DYN_TYPE'] == 'xmlform') { $oC1 = new Criteria('workflow'); $oC1->add(DynaformPeer::PRO_UID, $sproUid); $oC1->add(DynaformPeer::DYN_TYPE, "xmlform"); $oDataset = DynaformPeer::doSelectRS($oC1); $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); while ($oDataset->next()) { $aRow1 = $oDataset->getRow(); $dynHandler = new dynaFormHandler(PATH_DYNAFORM . $sproUid . "/" . $sObjUID . ".xml"); $dynFields = $dynHandler->getFields(); $sxmlgrid = ''; $sType = ''; $check = 0; foreach ($dynFields as $field) { $sType = $this->getAttribute($field, 'type'); if ($sType == 'grid') { $sxmlgrid = $this->getAttribute($field, 'xmlgrid'); //print_r($sxmlgrid);print"<hr>"; $aGridInfo = explode("/", $sxmlgrid); $uidsGrids[] = $aGridInfo[1]; } } } return $uidsGrids; } }
public function getSteps ($appUid, $index, $tasUid, $proUid) { //require_once 'classes/model/Step.php'; //require_once 'classes/model/Content.php'; //require_once 'classes/model/AppDocument.php'; //require_once 'classes/model/InputDocumentPeer.php'; //require_once 'classes/model/OutputDocument.php'; //require_once 'classes/model/Dynaform.php'; //G::LoadClass( 'pmScript' ); G::LoadClass( 'case' ); $steps = Array (); $case = new Cases(); $step = new Step(); $appDocument = new AppDocument(); $caseSteps = $step->getAllCaseSteps( $proUid, $tasUid, $appUid ); //getting externals steps $oPluginRegistry = &PMPluginRegistry::getSingleton(); $eSteps = $oPluginRegistry->getSteps(); $externalSteps = array (); foreach ($eSteps as $externalStep) { $externalSteps[$externalStep->sStepId] = $externalStep; } //getting the case record if ($appUid) { $caseData = $case->loadCase( $appUid ); $pmScript = new PMScript(); $pmScript->setFields( $caseData['APP_DATA'] ); } $externalStepCount = 0; foreach ($caseSteps as $caseStep) { // if it has a condition if (trim( $caseStep->getStepCondition() ) != '') { $pmScript->setScript( $caseStep->getStepCondition() ); if (! $pmScript->evaluate()) { //evaluated false, jump & continue with the others steps continue; } } $stepUid = $caseStep->getStepUidObj(); $stepType = $caseStep->getStepTypeObj(); $stepPosition = $caseStep->getStepPosition(); $stepItem = array (); $stepItem['id'] = $stepUid; $stepItem['type'] = $stepType; switch ($stepType) { case 'DYNAFORM': $oDocument = DynaformPeer::retrieveByPK( $stepUid ); $stepItem['title'] = $oDocument->getDynTitle(); $stepItem['url'] = "cases/cases_Step?UID=$stepUid&TYPE=$stepType&POSITION=$stepPosition&ACTION=EDIT"; $stepItem['version'] = $oDocument->getDynVersion(); break; case 'OUTPUT_DOCUMENT': $oDocument = OutputDocumentPeer::retrieveByPK( $caseStep->getStepUidObj() ); $outputDoc = $appDocument->getObject( $appUid, $index, $caseStep->getStepUidObj(), 'OUTPUT' ); $stepItem['title'] = $oDocument->getOutDocTitle(); if ($outputDoc['APP_DOC_UID']) { $stepItem['url'] = "cases/cases_Step?UID=$stepUid&TYPE=$stepType&POSITION=$stepPosition&ACTION=VIEW&DOC={$outputDoc['APP_DOC_UID']}"; } else { $stepItem['url'] = "cases/cases_Step?UID=$stepUid&TYPE=$stepType&POSITION=$stepPosition&ACTION=GENERATE"; } break; case 'INPUT_DOCUMENT': $oDocument = InputDocumentPeer::retrieveByPK( $stepUid ); $stepItem['title'] = $oDocument->getInpDocTitle(); $stepItem['url'] = "cases/cases_Step?UID=$stepUid&TYPE=$stepType&POSITION=$stepPosition&ACTION=ATTACH"; break; case 'EXTERNAL': $stepTitle = 'unknown ' . $caseStep->getStepUidObj(); $oPluginRegistry = PMPluginRegistry::getSingleton(); $externalStep = $externalSteps[$caseStep->getStepUidObj()]; $stepItem['id'] = $externalStep->sStepId; $stepItem['title'] = $externalStep->sStepTitle; $stepItem['url'] = "cases/cases_Step?UID={$externalStep->sStepId}&TYPE=EXTERNAL&POSITION=$stepPosition&ACTION=EDIT"; break; } $steps[] = $stepItem; } //last, assign task $stepItem = array (); $stepItem['id'] = '-1'; $stepItem['type'] = ''; $stepItem['title'] = G::LoadTranslation( 'ID_ASSIGN_TASK' ); $stepItem['url'] = "cases/cases_Step?TYPE=ASSIGN_TASK&UID=-1&POSITION=10000&ACTION=ASSIGN"; $steps[] = $stepItem; return $steps; }
/** * Populates the object using an array. * * This is particularly useful when populating an object from one of the * request arrays (e.g. $_POST). This method goes through the column * names, checking to see whether a matching key exists in populated * array. If so the setByName() method is called for that column. * * You can specify the key type of the array by additionally passing one * of the class type constants TYPE_PHPNAME, TYPE_COLNAME, TYPE_FIELDNAME, * TYPE_NUM. The default key type is the column's phpname (e.g. 'authorId') * * @param array $arr An array to populate the object from. * @param string $keyType The type of keys the array uses. * @return void */ public function fromArray($arr, $keyType = BasePeer::TYPE_PHPNAME) { $keys = DynaformPeer::getFieldNames($keyType); if (array_key_exists($keys[0], $arr)) { $this->setDynUid($arr[$keys[0]]); } if (array_key_exists($keys[1], $arr)) { $this->setProUid($arr[$keys[1]]); } if (array_key_exists($keys[2], $arr)) { $this->setDynType($arr[$keys[2]]); } if (array_key_exists($keys[3], $arr)) { $this->setDynFilename($arr[$keys[3]]); } }
public function getConditionScript($DYN_UID) { require_once 'classes/model/Dynaform.php'; G::LoadSystem('dynaformhandler'); $oDynaform = DynaformPeer::retrieveByPk($DYN_UID); $PRO_UID = $oDynaform->getProUid(); $this->oDynaformHandler = new dynaFormHandler(PATH_DYNAFORM . "{$PRO_UID}/{$DYN_UID}" . '.xml'); $aDynaformFields = $this->oDynaformHandler->getFieldNames(); for ($i = 0; $i < count($aDynaformFields); $i++) { $aDynaformFields[$i] = "'{$aDynaformFields[$i]}'"; } $sDynaformFieldsAsStrings = implode(',', $aDynaformFields); $aRows = $this->getAllByDynUid($DYN_UID, 'active'); $sCode = ''; if (sizeof($aRows) != 0) { foreach ($aRows as $aRow) { $hashCond = md5($aRow['FCD_UID']); $sCondition = $this->parseCondition($aRow['FCD_CONDITION']); $sCondition = addslashes($sCondition); $sCode .= "function __condition__{$hashCond}() { "; $sCode .= "if( eval(\"{$sCondition}\") ) { "; $aFields = explode(',', $aRow['FCD_FIELDS']); switch ($aRow['FCD_FUNCTION']) { case 'show': foreach ($aFields as $aField) { $sCode .= "showRowById('{$aField}');"; } break; case 'showOnly': $sCode .= "hideRowsById(Array({$sDynaformFieldsAsStrings}));"; foreach ($aFields as $aField) { $sCode .= "showRowById('{$aField}');"; } break; case 'showAll': $sCode .= "showRowsById(Array({$sDynaformFieldsAsStrings}));"; break; case 'hide': foreach ($aFields as $aField) { $sCode .= "hideRowById('{$aField}');"; } break; case 'hideOnly': $sCode .= "showRowsById(Array({$sDynaformFieldsAsStrings}));"; foreach ($aFields as $aField) { $sCode .= "hideRowById('{$aField}');"; } break; case 'hideAll': $aDynaFields = array(); $aEventOwner = explode(',', $aRow['FCD_EVENT_OWNERS']); foreach ($aDynaformFields as $sDynaformFields) { if (!in_array(str_replace("'", "", $sDynaformFields), $aEventOwner)) { $aDynaFields[] = $sDynaformFields; } } $sDynaformFieldsAsStrings = implode(',', $aDynaFields); $sCode .= "hideRowsById(Array({$sDynaformFieldsAsStrings}));"; break; } $sCode .= " } "; $sCode .= "} "; $aFieldOwners = explode(',', $aRow['FCD_EVENT_OWNERS']); $aEvents = explode(',', $aRow['FCD_EVENTS']); if (in_array('onchange', $aEvents)) { foreach ($aFieldOwners as $aField) { //verify the field type $node = $this->oDynaformHandler->getNode($aField); $nodeType = $node->getAttribute('type'); switch ($nodeType) { case 'checkbox': $sJSEvent = 'click'; break; case 'text': case 'textarea': case 'currency': case 'percentage': $sJSEvent = 'blur'; break; default: $sJSEvent = 'change'; break; } $sCode .= "leimnud.event.add(getField('{$aField}'), '{$sJSEvent}', function() {"; $sCode .= " __condition__{$hashCond}(); "; $sCode .= "}.extend(getField('{$aField}')));"; } } if (in_array('onload', $aEvents)) { foreach ($aFieldOwners as $aField) { $sCode .= " __condition__{$hashCond}(); "; } } } return $sCode; } else { return null; } }
/** * getAvailableCaseTrackerObjectsCriteria * * @param string $sProcessUID Default value empty * @return object(Criteria) $oCriteria */ public function getAvailableExtCaseTrackerObjects($sProcessUID = '') { $oCriteria = $this->getCaseTrackerObjectsCriteria($sProcessUID); $oDataset = CaseTrackerObjectPeer::doSelectRS($oCriteria); $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $oDataset->next(); $aDynaformsUIDS = array(); $aInputsUIDS = array(); $aOutputsUIDS = array(); while ($aRow = $oDataset->getRow()) { switch ($aRow['CTO_TYPE_OBJ']) { case 'DYNAFORM': $aDynaformsUIDS[] = $aRow['CTO_UID_OBJ']; break; case 'INPUT_DOCUMENT': $aInputsUIDS[] = $aRow['CTO_UID_OBJ']; break; case 'OUTPUT_DOCUMENT': $aOutputsUIDS[] = $aRow['CTO_UID_OBJ']; break; } $oDataset->next(); } $aAvailableObjects = array(); $aAvailableObjects[] = array('OBJECT_UID' => 'char', 'OBJECT_TYPE' => 'char', 'OBJECT_TITLE' => 'char'); $sDelimiter = DBAdapter::getStringDelimiter(); $oCriteria = new Criteria('workflow'); $oCriteria->addSelectColumn(DynaformPeer::DYN_UID); $oCriteria->addAsColumn('DYN_TITLE', 'C.CON_VALUE'); $oCriteria->addAlias('C', 'CONTENT'); $aConditions = array(); $aConditions[] = array(DynaformPeer::DYN_UID, 'C.CON_ID'); $aConditions[] = array('C.CON_CATEGORY', $sDelimiter . 'DYN_TITLE' . $sDelimiter); $aConditions[] = array('C.CON_LANG', $sDelimiter . SYS_LANG . $sDelimiter); $oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN); $oCriteria->add(DynaformPeer::PRO_UID, $sProcessUID); $oCriteria->add(DynaformPeer::DYN_TYPE, 'xmlform'); $oCriteria->add(DynaformPeer::DYN_UID, $aDynaformsUIDS, Criteria::NOT_IN); $oDataset = DynaformPeer::doSelectRS($oCriteria); $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $oDataset->next(); while ($aRow = $oDataset->getRow()) { $aAvailableObjects[] = array('OBJECT_UID' => $aRow['DYN_UID'], 'OBJECT_TYPE' => 'DYNAFORM', 'OBJECT_TITLE' => $aRow['DYN_TITLE']); $oDataset->next(); } $oCriteria = new Criteria('workflow'); $oCriteria->addSelectColumn(InputDocumentPeer::INP_DOC_UID); $oCriteria->addAsColumn('INP_DOC_TITLE', 'C.CON_VALUE'); $oCriteria->addAlias('C', 'CONTENT'); $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(InputDocumentPeer::PRO_UID, $sProcessUID); $oCriteria->add(InputDocumentPeer::INP_DOC_UID, $aInputsUIDS, Criteria::NOT_IN); $oDataset = InputDocumentPeer::doSelectRS($oCriteria); $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $oDataset->next(); while ($aRow = $oDataset->getRow()) { $aAvailableObjects[] = array('OBJECT_UID' => $aRow['INP_DOC_UID'], 'OBJECT_TYPE' => 'INPUT_DOCUMENT', 'OBJECT_TITLE' => $aRow['INP_DOC_TITLE']); $oDataset->next(); } $oCriteria = new Criteria('workflow'); $oCriteria->addSelectColumn(OutputDocumentPeer::OUT_DOC_UID); $oCriteria->addAsColumn('OUT_DOC_TITLE', 'C.CON_VALUE'); $oCriteria->addAlias('C', 'CONTENT'); $aConditions = array(); $aConditions[] = array(OutputDocumentPeer::OUT_DOC_UID, 'C.CON_ID'); $aConditions[] = array('C.CON_CATEGORY', $sDelimiter . 'OUT_DOC_TITLE' . $sDelimiter); $aConditions[] = array('C.CON_LANG', $sDelimiter . SYS_LANG . $sDelimiter); $oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN); $oCriteria->add(OutputDocumentPeer::PRO_UID, $sProcessUID); $oCriteria->add(OutputDocumentPeer::OUT_DOC_UID, $aOutputsUIDS, Criteria::NOT_IN); $oDataset = OutputDocumentPeer::doSelectRS($oCriteria); $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $oDataset->next(); while ($aRow = $oDataset->getRow()) { $aAvailableObjects[] = array('OBJECT_UID' => $aRow['OUT_DOC_UID'], 'OBJECT_TYPE' => 'OUTPUT_DOCUMENT', 'OBJECT_TITLE' => $aRow['OUT_DOC_TITLE']); $oDataset->next(); } return $aAvailableObjects; /*global $_DBArray; $_DBArray = (isset($_SESSION ['_DBArray']) ? $_SESSION ['_DBArray'] : ''); $_DBArray ['availableObjects'] = $aAvailableObjects; $_SESSION ['_DBArray'] = $_DBArray; G::LoadClass('ArrayPeer'); $oCriteria = new Criteria('dbarray'); $oCriteria->setDBArrayTable('availableObjects'); return $oCriteria;*/ }
while (!feof($hd)) { $line = fgets($hd, 4096); fwrite($hd1, str_replace($DYN_UID, $dynUid, $line)); } } fclose($hd); fclose($hd1); // check if the template file also exists if (isset($templateHd)) { while (!feof($templateHd)) { $line = fgets($templateHd, 4096); fwrite($templateHd1, str_replace($DYN_UID, $dynUid, $line)); } fclose($templateHd); fclose($templateHd1); } $criteria = processMap::getDynaformsCriteria($PRO_UID); //FROM //WHERE //QUERY $rsCriteria = DynaformPeer::doSelectRS($criteria); $rsCriteria->setFetchmode(ResultSet::FETCHMODE_ASSOC); $arrayData = array(); while ($rsCriteria->next()) { $row = $rsCriteria->getRow(); $arrayData[] = array("value" => $row["DYN_UID"], "text" => htmlentities($row["DYN_TITLE"], ENT_QUOTES, "utf-8")); } echo G::json_encode(array("data" => $arrayData, "length" => count($arrayData))); } catch (Exception $e) { return (array) $e; }
/** * Populates the object using an array. * * This is particularly useful when populating an object from one of the * request arrays (e.g. $_POST). This method goes through the column * names, checking to see whether a matching key exists in populated * array. If so the setByName() method is called for that column. * * You can specify the key type of the array by additionally passing one * of the class type constants TYPE_PHPNAME, TYPE_COLNAME, TYPE_FIELDNAME, * TYPE_NUM. The default key type is the column's phpname (e.g. 'authorId') * * @param array $arr An array to populate the object from. * @param string $keyType The type of keys the array uses. * @return void */ public function fromArray($arr, $keyType = BasePeer::TYPE_PHPNAME) { $keys = DynaformPeer::getFieldNames($keyType); if (array_key_exists($keys[0], $arr)) { $this->setDynUid($arr[$keys[0]]); } if (array_key_exists($keys[1], $arr)) { $this->setProUid($arr[$keys[1]]); } if (array_key_exists($keys[2], $arr)) { $this->setDynType($arr[$keys[2]]); } if (array_key_exists($keys[3], $arr)) { $this->setDynFilename($arr[$keys[3]]); } if (array_key_exists($keys[4], $arr)) { $this->setDynContent($arr[$keys[4]]); } if (array_key_exists($keys[5], $arr)) { $this->setDynLabel($arr[$keys[5]]); } if (array_key_exists($keys[6], $arr)) { $this->setDynVersion($arr[$keys[6]]); } if (array_key_exists($keys[7], $arr)) { $this->setDynUpdateDate($arr[$keys[7]]); } }
/** * Function getGridsVars * * @access public * @param eter string $sProcessUID * @return array */ function getGridsVars($sProcessUID) { $aFields = array(); $aFieldsNames = array(); require_once 'classes/model/Dynaform.php'; $oCriteria = new Criteria('workflow'); $oCriteria->addSelectColumn(DynaformPeer::DYN_FILENAME); $oCriteria->add(DynaformPeer::PRO_UID, $sProcessUID); $oDataset = DynaformPeer::doSelectRS($oCriteria); $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $oDataset->next(); while ($aRow = $oDataset->getRow()) { $G_FORM = new Form($aRow['DYN_FILENAME'], PATH_DYNAFORM, SYS_LANG); if ($G_FORM->type == 'xmlform') { foreach ($G_FORM->fields as $k => $v) { if ($v->type == 'grid') { if (!in_array($k, $aFieldsNames)) { $aFields[] = array('sName' => $k, 'sXmlForm' => str_replace($sProcessUID . '/', '', $v->xmlGrid)); $aFieldsNames[] = $k; } } } } $oDataset->next(); } return $aFields; }
/** * Get data of a DynaForm * * @param string $projectUid Unique id of Project * @param string $dynaFormUid Unique id of DynaForm * * return array Return an array with data of a DynaForm */ public function getDynaFormFields($projectUid, $dynaFormUid) { try { $arrayVariables = array(); $arrayVariablesDef = array(); //Verify data Validator::proUid($projectUid, '$prj_uid'); $this->throwExceptionIfNotExistsDynaForm($dynaFormUid, "", $this->arrayFieldNameForException["dynaFormUid"]); $criteria = new \Criteria("workflow"); $criteria->addSelectColumn(\DynaformPeer::DYN_CONTENT); $criteria->add(\DynaformPeer::DYN_UID, $dynaFormUid, \Criteria::EQUAL); $rsCriteria = \DynaformPeer::doSelectRS($criteria); $rsCriteria->setFetchmode(\ResultSet::FETCHMODE_ASSOC); $rsCriteria->next(); $aRow = $rsCriteria->getRow(); $contentDecode = json_decode($aRow['DYN_CONTENT'], true); $content = $contentDecode['items'][0]['items']; foreach ($content as $key => $value) { $valueType = isset($value[0]["valueType"]) ? $value[0]["valueType"] : null; $maxLength = isset($value[0]["maxLength"]) ? $value[0]["maxLength"] : null; $label = isset($value[0]["label"]) ? $value[0]["label"] : null; $defaultValue = isset($value[0]["defaultValue"]) ? $value[0]["defaultValue"] : null; $required = isset($value[0]["required"]) ? $value[0]["required"] : null; $dbConnection = isset($value[0]["dbConnection"]) ? $value[0]["dbConnection"] : null; $sql = isset($value[0]["sql"]) ? $value[0]["sql"] : null; $options = isset($value[0]["options"]) ? $value[0]["options"] : null; if (isset($value[0]["variable"])) { $variable = $value[0]["variable"]; $criteria = new \Criteria("workflow"); $criteria->addSelectColumn(\ProcessVariablesPeer::VAR_NAME); $criteria->addSelectColumn(\ProcessVariablesPeer::VAR_FIELD_TYPE); $criteria->addSelectColumn(\ProcessVariablesPeer::VAR_FIELD_SIZE); $criteria->addSelectColumn(\ProcessVariablesPeer::VAR_LABEL); $criteria->addSelectColumn(\ProcessVariablesPeer::VAR_DBCONNECTION); $criteria->addSelectColumn(\ProcessVariablesPeer::VAR_SQL); $criteria->addSelectColumn(\ProcessVariablesPeer::VAR_NULL); $criteria->addSelectColumn(\ProcessVariablesPeer::VAR_DEFAULT); $criteria->addSelectColumn(\ProcessVariablesPeer::VAR_ACCEPTED_VALUES); $criteria->add(\ProcessVariablesPeer::PRJ_UID, $projectUid, \Criteria::EQUAL); $criteria->add(\ProcessVariablesPeer::VAR_NAME, $variable, \Criteria::EQUAL); $rsCriteria = \ProcessVariablesPeer::doSelectRS($criteria); $rsCriteria->setFetchmode(\ResultSet::FETCHMODE_ASSOC); $rsCriteria->next(); while ($aRow = $rsCriteria->getRow()) { $valueTypeMerged = $valueType == null && $valueType == '' ? $aRow['VAR_FIELD_TYPE'] : $valueType; $maxLengthMerged = $maxLength == null && $maxLength == '' ? (int) $aRow['VAR_FIELD_SIZE'] : $maxLength; $labelMerged = $label == null && $label == '' ? $aRow['VAR_LABEL'] : $label; $defaultValueMerged = $defaultValue == null && $defaultValue == '' ? $aRow['VAR_DEFAULT'] : $defaultValue; $requiredMerged = $required == null && $required == '' ? $aRow['VAR_NULL'] == 1 ? false : true : $required; $dbConnectionMerged = $dbConnection == null && $dbConnection == '' ? $aRow['VAR_DBCONNECTION'] : $dbConnection; $sqlMerged = $sql == null && $sql == '' ? $aRow['VAR_SQL'] : $sql; $optionsMerged = $options == null && $options == '' ? $aRow['VAR_ACCEPTED_VALUES'] : $options; $aVariables = array('valueType' => $valueTypeMerged, 'maxLength' => $maxLengthMerged, 'label' => $labelMerged, 'defaultValue' => $defaultValueMerged, 'required' => $requiredMerged, 'dbConnection' => $dbConnectionMerged, 'sql' => $sqlMerged, 'options' => $optionsMerged); //fields properties if (isset($value[0]["pickType"])) { $aVariables = array_merge(array('pickType' => $value[0]["pickType"]), $aVariables); } if (isset($value[0]["placeHolder"])) { $aVariables = array_merge(array('placeHolder' => $value[0]["placeHolder"]), $aVariables); } if (isset($value[0]["dependentsField"])) { $aVariables = array_merge(array('dependentsField' => $value[0]["dependentsField"]), $aVariables); } if (isset($value[0]["hint"])) { $aVariables = array_merge(array('hint' => $value[0]["hint"]), $aVariables); } if (isset($value[0]["readonly"])) { $aVariables = array_merge(array('readonly' => $value[0]["readonly"]), $aVariables); } if (isset($value[0]["colSpan"])) { $aVariables = array_merge(array('colSpan' => $value[0]["colSpan"]), $aVariables); } if (isset($value[0]["type"])) { $aVariables = array_merge(array('type' => $value[0]["type"]), $aVariables); } if (isset($value[0]["name"])) { $aVariables = array_merge(array('name' => $value[0]["name"]), $aVariables); } $aVariables = array_merge(array('variable' => $variable), $aVariables); $arrayVariables[] = $aVariables; $rsCriteria->next(); } } else { $arrayVariablesDef[] = $value[0]; } } $arrayVariables = array_merge($arrayVariables, $arrayVariablesDef); //Return return $arrayVariables; } catch (\Exception $e) { throw $e; } }
/** * Prints the components of the toolBar * * @param string $value * @return string */ public function render($value) { $url = $this->file; if ($this->home === "methods") { $url = G::encryptlink(SYS_URI . $url); } if ($this->home === "public_html") { $url = '/' . $url; } $urlAlt = $this->fileAlt; if ($this->fileAlt !== '') { if ($this->home === "methods") { $urlAlt = G::encryptlink(SYS_URI . $urlAlt); } if ($this->home === "public_html") { $urlAlt = '/' . $urlAlt; } } $this->url = $url; $this->urlAlt = $urlAlt; switch ($this->buttonType) { case 'image': $html = ''; if ($this->hoverMethod === 'back') { $html = '<img src="' . htmlentities($url, ENT_QUOTES, 'utf-8') . '"' . ($this->style ? ' style="' . $this->style . '"' : '') . ' onmouseover=\'backImage(this,"url(' . htmlentities($urlAlt, ENT_QUOTES, 'utf-8') . ') no-repeat")\' onmouseout=\'backImage(this,"")\' title=\'' . addslashes($this->label) . '\' />'; } elseif ($this->hoverMethod === 'switch') { $html = '<img src="' . htmlentities($url, ENT_QUOTES, 'utf-8') . '"' . ($this->style ? ' style="' . $this->style . '"' : '') . ' onmouseover=\'switchImage(this,"' . htmlentities($url, ENT_QUOTES, 'utf-8') . '","' . htmlentities($urlAlt, ENT_QUOTES, 'utf-8') . '")\' onmouseout=\'switchImage(this,"' . htmlentities($url, ENT_QUOTES, 'utf-8') . '","' . htmlentities($urlAlt, ENT_QUOTES, 'utf-8') . '")\'/>'; } else { $html = '<img src="' . htmlentities($url, ENT_QUOTES, 'utf-8') . '"' . ($this->style ? ' style="' . $this->style . '"' : '') . '/>'; } break; case 'text': $html = $this->htmlentities($this->label, ENT_QUOTES, 'utf-8'); break; case 'html': $html = '<div ' . ' onmouseover=\'backImage(this,"url(' . htmlentities($urlAlt, ENT_QUOTES, 'utf-8') . ') no-repeat")\' onmouseout=\'backImage(this,"")\' style="width:25px;height:25px;margin-bottom:3px">' . $this->label . '</div>'; //$html=$this->label; break; case 'image/text': $html = '<img src="' . htmlentities($url, ENT_QUOTES, 'utf-8') . '"' . ($this->style ? ' style="' . $this->style . '"' : '') . '/><br/>' . $this->htmlentities($this->label, ENT_QUOTES, 'utf-8'); break; case 'text/image': $html = $this->htmlentities($this->label, ENT_QUOTES, 'utf-8') . '<br/><img src="' . htmlentities($url, ENT_QUOTES, 'utf-8') . '"' . ($this->style ? ' style="' . $this->style . '"' : '') . '/>'; break; case 'dropdown': $html = ''; if (isset($this->owner->values['PRO_UID'])) { G::LoadClass('processMap'); $criteria = processMap::getDynaformsCriteria($this->owner->values['PRO_UID']); $dataset = DynaformPeer::doSelectRS($criteria); if ($dataset->getRecordCount() > 0) { $html .= '<span style="display:inline-block; font-size: 8pt;margin-left: 5px;margin-bottom: 3px;">' . G::LoadTranslation('ID_DYNAFORM'); $html .= ': <select id="_dynaformsList_" onchange="window.location = \'dynaforms_Editor?PRO_UID=' . $this->owner->values['PRO_UID']; $html .= '&DYN_UID=\' + this.value;" class="module_app_input___gray">'; $dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $dataset->next(); while ($row = $dataset->getRow()) { $html .= '<option value="' . $row['DYN_UID'] . '"'; $html .= ($this->owner->values['DYN_UID'] == $row['DYN_UID'] ? ' selected="selected"' : '') . '>'; $html .= htmlentities($row['DYN_TITLE'], ENT_QUOTES, 'utf-8') . '</option>'; $dataset->next(); } $html .= '</select></span>'; } } return $html; break; case 'class': $html = '<a href="#" onclick="' . $this->onclick . '" onmouseover="backImage(this, \'url(/images/dynamicForm/hover.gif) no-repeat\')" onmouseout="backImage(this, \'\')" style="height:25px;margin-bottom:3px"> <div class="' . $this->class . '" title="' . strip_tags($this->label) . '" style="height:25px;margin-bottom:3px"></div> </a>'; return $html; } return '<a class="toolButton" ' . ($this->buttonStyle ? ' style="' . $this->buttonStyle . '"' : '') . ($this->onclick ? ' onclick="' . htmlentities($this->onclick, ENT_QUOTES, 'utf-8') . '"' : '') . '>' . $html . '</a>'; }
/** * 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; } }
public function getAllObjectsFromProcess($PRO_UID, $OBJ_TYPE = '%') { $RESULT = Array(); $oCriteria = new Criteria('workflow'); $oCriteria->addSelectColumn(AppDocumentPeer::APP_DOC_UID); $oCriteria->addSelectColumn(AppDocumentPeer::APP_UID); $oCriteria->addSelectColumn(AppDocumentPeer::DEL_INDEX); $oCriteria->addSelectColumn(AppDocumentPeer::DOC_UID); $oCriteria->addSelectColumn(AppDocumentPeer::USR_UID); $oCriteria->addSelectColumn(AppDocumentPeer::APP_DOC_TYPE); $oCriteria->addSelectColumn(AppDocumentPeer::APP_DOC_CREATE_DATE); $oCriteria->addSelectColumn(AppDocumentPeer::APP_DOC_INDEX); $oCriteria->addSelectColumn(AppDocumentPeer::DOC_VERSION); $oCriteria->add(ApplicationPeer::PRO_UID, $PRO_UID); $oCriteria->addJoin(ApplicationPeer::APP_UID, AppDocumentPeer::APP_UID); $oCriteria->add(AppDocumentPeer::APP_DOC_TYPE, $OBJ_TYPE, Criteria::LIKE); $oDataset = DynaformPeer::doSelectRS($oCriteria); $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); while ($oDataset->next()) { $row = $oDataset->getRow(); $oAppDocument = new AppDocument(); $oAppDocument->Fields = $oAppDocument->load($row['APP_DOC_UID'], $row['DOC_VERSION']); $row['APP_DOC_FILENAME'] = $oAppDocument->Fields['APP_DOC_FILENAME']; array_push($RESULT, $row); } return $RESULT; }
public function deleteProcess($sProcessUID, $flagRemoveCases = true) { try { //G::LoadClass('case'); //G::LoadClass('reportTables'); //Instance all classes necesaries $oProcess = new \Process(); $oDynaform = new \Dynaform(); $oInputDocument = new \InputDocument(); $oOutputDocument = new \OutputDocument(); $oTrigger = new \Triggers(); $oRoute = new \Route(); $oGateway = new \Gateway(); $oEvent = new \Event(); $oSwimlaneElement = new \SwimlanesElements(); $oConfiguration = new \Configuration(); $oDbSource = new \DbSource(); $oReportTable = new \ReportTables(); $oCaseTracker = new \CaseTracker(); $oCaseTrackerObject = new \CaseTrackerObject(); //Update PROCESS_FILES_CHECKED $configuration = \ConfigurationPeer::retrieveByPK("PROCESS_FILES_CHECKED", "", "", "", ""); if (!is_null($configuration)) { $arrayProjectUid = unserialize($configuration->getCfgValue()); unset($arrayProjectUid[$sProcessUID]); $conf = new \Configuration(); $result = $conf->update(array("CFG_UID" => "PROCESS_FILES_CHECKED", "OBJ_UID" => "", "CFG_VALUE" => serialize($arrayProjectUid), "PRO_UID" => "", "USR_UID" => "", "APP_UID" => "")); } //Delete the applications of process if ($flagRemoveCases) { $case = new \Cases(); $criteria = new \Criteria("workflow"); $criteria->addSelectColumn(\ApplicationPeer::APP_UID); $criteria->add(\ApplicationPeer::PRO_UID, $sProcessUID, \Criteria::EQUAL); $rsCriteria = \ApplicationPeer::doSelectRS($criteria); $rsCriteria->setFetchmode(\ResultSet::FETCHMODE_ASSOC); while ($rsCriteria->next()) { $row = $rsCriteria->getRow(); $result = $case->removeCase($row["APP_UID"]); } } //Delete the tasks of process $oCriteria = new Criteria('workflow'); $oCriteria->add(\TaskPeer::PRO_UID, $sProcessUID); $oDataset = \TaskPeer::doSelectRS($oCriteria); $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $oDataset->next(); while ($aRow = $oDataset->getRow()) { //$this->deleteTask($aRow['TAS_UID']); $oTasks = new \Tasks(); $oTasks->deleteTask($aRow['TAS_UID']); $oDataset->next(); } //Delete the dynaforms of process $oCriteria = new Criteria('workflow'); $oCriteria->add(\DynaformPeer::PRO_UID, $sProcessUID); $oDataset = \DynaformPeer::doSelectRS($oCriteria); $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $oDataset->next(); while ($aRow = $oDataset->getRow()) { $oDynaform->remove($aRow['DYN_UID']); $oDataset->next(); } //Delete the input documents of process $oCriteria = new Criteria('workflow'); $oCriteria->add(\InputDocumentPeer::PRO_UID, $sProcessUID); $oDataset = \InputDocumentPeer::doSelectRS($oCriteria); $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $oDataset->next(); while ($aRow = $oDataset->getRow()) { $oInputDocument->remove($aRow['INP_DOC_UID']); $oDataset->next(); } //Delete the output documents of process $oCriteria = new Criteria('workflow'); $oCriteria->add(\OutputDocumentPeer::PRO_UID, $sProcessUID); $oDataset = \OutputDocumentPeer::doSelectRS($oCriteria); $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $oDataset->next(); while ($aRow = $oDataset->getRow()) { $oOutputDocument->remove($aRow['OUT_DOC_UID']); $oDataset->next(); } //Delete the triggers of process $oCriteria = new Criteria('workflow'); $oCriteria->add(\TriggersPeer::PRO_UID, $sProcessUID); $oDataset = \TriggersPeer::doSelectRS($oCriteria); $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $oDataset->next(); while ($aRow = $oDataset->getRow()) { $oTrigger->remove($aRow['TRI_UID']); $oDataset->next(); } //Delete the routes of process $oCriteria = new Criteria('workflow'); $oCriteria->add(\RoutePeer::PRO_UID, $sProcessUID); $oDataset = \RoutePeer::doSelectRS($oCriteria); $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $oDataset->next(); while ($aRow = $oDataset->getRow()) { $oRoute->remove($aRow['ROU_UID']); $oDataset->next(); } //Delete the gateways of process $oCriteria = new Criteria('workflow'); $oCriteria->add(\GatewayPeer::PRO_UID, $sProcessUID); $oDataset = \GatewayPeer::doSelectRS($oCriteria); $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $oDataset->next(); while ($aRow = $oDataset->getRow()) { $oGateway->remove($aRow['GAT_UID']); $oDataset->next(); } //Delete the Event of process $oCriteria = new Criteria('workflow'); $oCriteria->add(\EventPeer::PRO_UID, $sProcessUID); $oDataset = \EventPeer::doSelectRS($oCriteria); $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $oDataset->next(); while ($aRow = $oDataset->getRow()) { $oEvent->remove($aRow['EVN_UID']); $oDataset->next(); } //Delete the swimlanes elements of process $oCriteria = new Criteria('workflow'); $oCriteria->add(\SwimlanesElementsPeer::PRO_UID, $sProcessUID); $oDataset = \SwimlanesElementsPeer::doSelectRS($oCriteria); $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $oDataset->next(); while ($aRow = $oDataset->getRow()) { $oSwimlaneElement->remove($aRow['SWI_UID']); $oDataset->next(); } //Delete the configurations of process $oCriteria = new Criteria('workflow'); $oCriteria->add(\ConfigurationPeer::PRO_UID, $sProcessUID); $oDataset = \ConfigurationPeer::doSelectRS($oCriteria); $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $oDataset->next(); while ($aRow = $oDataset->getRow()) { $oConfiguration->remove($aRow['CFG_UID'], $aRow['OBJ_UID'], $aRow['PRO_UID'], $aRow['USR_UID'], $aRow['APP_UID']); $oDataset->next(); } //Delete the DB sources of process $oCriteria = new Criteria('workflow'); $oCriteria->add(\DbSourcePeer::PRO_UID, $sProcessUID); $oDataset = \DbSourcePeer::doSelectRS($oCriteria); $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $oDataset->next(); while ($aRow = $oDataset->getRow()) { /** * note added by gustavo cruz gustavo-at-colosa-dot-com 27-01-2010 * in order to solve the bug 0004389, we use the validation function Exists * inside the remove function in order to verify if the DbSource record * exists in the Database, however there is a strange behavior within the * propel engine, when the first record is erased somehow the "_deleted" * attribute of the next row is set to true, so when propel tries to erase * it, obviously it can't and trows an error. With the "Exist" function * we ensure that if there is the record in the database, the _delete attribute must be false. * * note added by gustavo cruz gustavo-at-colosa-dot-com 28-01-2010 * I have just identified the source of the issue, when is created a $oDbSource DbSource object * it's used whenever a record is erased or removed in the db, however the problem * it's that the same object is used every time, and the delete method invoked * sets the _deleted attribute to true when its called, of course as we use * the same object, the first time works fine but trowns an error with the * next record, cos it's the same object and the delete method checks if the _deleted * attribute it's true or false, the attrib _deleted is setted to true the * first time and later is never changed, the issue seems to be part of * every remove function in the model classes, not only DbSource * i recommend that a more general solution must be achieved to resolve * this issue in every model class, to prevent future problems. */ $oDbSource->remove($aRow['DBS_UID'], $sProcessUID); $oDataset->next(); } //Delete the supervisors $oCriteria = new Criteria('workflow'); $oCriteria->add(\ProcessUserPeer::PRO_UID, $sProcessUID); \ProcessUserPeer::doDelete($oCriteria); //Delete the object permissions $oCriteria = new Criteria('workflow'); $oCriteria->add(\ObjectPermissionPeer::PRO_UID, $sProcessUID); \ObjectPermissionPeer::doDelete($oCriteria); //Delete the step supervisors $oCriteria = new Criteria('workflow'); $oCriteria->add(\StepSupervisorPeer::PRO_UID, $sProcessUID); \StepSupervisorPeer::doDelete($oCriteria); //Delete the report tables $oCriteria = new Criteria('workflow'); $oCriteria->add(\ReportTablePeer::PRO_UID, $sProcessUID); $oDataset = \ReportTablePeer::doSelectRS($oCriteria); $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $oDataset->next(); while ($aRow = $oDataset->getRow()) { $oReportTable->deleteReportTable($aRow['REP_TAB_UID']); $oDataset->next(); } //Delete case tracker configuration $oCaseTracker->remove($sProcessUID); //Delete case tracker objects $oCriteria = new Criteria('workflow'); $oCriteria->add(\CaseTrackerObjectPeer::PRO_UID, $sProcessUID); \ProcessUserPeer::doDelete($oCriteria); //Delete SubProcess $criteria = new \Criteria("workflow"); $criteria->add(\SubProcessPeer::PRO_PARENT, $sProcessUID, \Criteria::EQUAL); $result = \SubProcessPeer::doDelete($criteria); //Delete WebEntries $webEntry = new \ProcessMaker\BusinessModel\WebEntry(); $criteria = new \Criteria("workflow"); $criteria->addSelectColumn(\WebEntryPeer::WE_UID); $criteria->add(\WebEntryPeer::PRO_UID, $sProcessUID, \Criteria::EQUAL); $rsCriteria = \WebEntryPeer::doSelectRS($criteria); $rsCriteria->setFetchmode(\ResultSet::FETCHMODE_ASSOC); while ($rsCriteria->next()) { $row = $rsCriteria->getRow(); $webEntry->delete($row["WE_UID"]); } //Delete WebEntry-Events $webEntryEvent = new \ProcessMaker\BusinessModel\WebEntryEvent(); $criteria = new \Criteria("workflow"); $criteria->addSelectColumn(\WebEntryEventPeer::WEE_UID); $criteria->add(\WebEntryEventPeer::PRJ_UID, $sProcessUID, \Criteria::EQUAL); $rsCriteria = \WebEntryEventPeer::doSelectRS($criteria); $rsCriteria->setFetchmode(\ResultSet::FETCHMODE_ASSOC); while ($rsCriteria->next()) { $row = $rsCriteria->getRow(); $webEntryEvent->delete($row["WEE_UID"]); } //Delete MessageTypes $messageType = new \ProcessMaker\BusinessModel\MessageType(); $criteria = new \Criteria("workflow"); $criteria->addSelectColumn(\MessageTypePeer::MSGT_UID); $criteria->add(\MessageTypePeer::PRJ_UID, $sProcessUID, \Criteria::EQUAL); $rsCriteria = \MessageTypePeer::doSelectRS($criteria); $rsCriteria->setFetchmode(\ResultSet::FETCHMODE_ASSOC); while ($rsCriteria->next()) { $row = $rsCriteria->getRow(); $messageType->delete($row["MSGT_UID"]); } //Delete Message-Event-Relation $messageEventRelation = new \ProcessMaker\BusinessModel\MessageEventRelation(); $messageEventRelation->deleteWhere(array(\MessageEventRelationPeer::PRJ_UID => $sProcessUID)); //Delete Message-Event-Task-Relation $elementTaskRelation = new \ProcessMaker\BusinessModel\ElementTaskRelation(); $elementTaskRelation->deleteWhere(array(\ElementTaskRelationPeer::PRJ_UID => $sProcessUID)); //Delete Message-Event-Definition $messageEventDefinition = new \ProcessMaker\BusinessModel\MessageEventDefinition(); $criteria = new \Criteria("workflow"); $criteria->addSelectColumn(\MessageEventDefinitionPeer::MSGED_UID); $criteria->add(\MessageEventDefinitionPeer::PRJ_UID, $sProcessUID, \Criteria::EQUAL); $rsCriteria = \MessageEventDefinitionPeer::doSelectRS($criteria); $rsCriteria->setFetchmode(\ResultSet::FETCHMODE_ASSOC); while ($rsCriteria->next()) { $row = $rsCriteria->getRow(); $messageEventDefinition->delete($row["MSGED_UID"]); } //Delete Script-Task $scriptTask = new \ProcessMaker\BusinessModel\ScriptTask(); $scriptTask->deleteWhere(array(\ScriptTaskPeer::PRJ_UID => array($sProcessUID, \Criteria::EQUAL))); //Delete Timer-Event $timerEvent = new \ProcessMaker\BusinessModel\TimerEvent(); $timerEvent->deleteWhere(array(\TimerEventPeer::PRJ_UID => array($sProcessUID, \Criteria::EQUAL))); //Delete Email-Event $emailEvent = new \ProcessMaker\BusinessModel\EmailEvent(); $criteria = new \Criteria("workflow"); $criteria->addSelectColumn(\EmailEventPeer::EMAIL_EVENT_UID); $criteria->add(\EmailEventPeer::PRJ_UID, $sProcessUID, \Criteria::EQUAL); $rsCriteria = \EmailEventPeer::doSelectRS($criteria); $rsCriteria->setFetchmode(\ResultSet::FETCHMODE_ASSOC); while ($rsCriteria->next()) { $row = $rsCriteria->getRow(); $emailEvent->delete($sProcessUID, $row["EMAIL_EVENT_UID"], false); } //Delete files Manager $filesManager = new \ProcessMaker\BusinessModel\FilesManager(); $criteria = new \Criteria("workflow"); $criteria->addSelectColumn(\ProcessFilesPeer::PRF_UID); $criteria->add(\ProcessFilesPeer::PRO_UID, $sProcessUID, \Criteria::EQUAL); $rsCriteria = \ProcessFilesPeer::doSelectRS($criteria); $rsCriteria->setFetchmode(\ResultSet::FETCHMODE_ASSOC); while ($rsCriteria->next()) { $row = $rsCriteria->getRow(); $filesManager->deleteProcessFilesManager($sProcessUID, $row["PRF_UID"]); } //Delete the actions by email $oCriteria = new Criteria('workflow'); $oCriteria->add(\AbeConfigurationPeer::PRO_UID, $sProcessUID); \AbeConfigurationPeer::doDelete($oCriteria); //Delete the process try { $oProcess->remove($sProcessUID); } catch (\Exception $oError) { throw $oError; } return true; } catch (\Exception $oError) { throw $oError; } }
/** * this function remove all Process except the PROCESS ROW * * @param string $sProUid * @return boolean */ public function removeProcessRows ($sProUid) { try { //Instance all classes necesaries $oProcess = new Process(); $oDynaform = new Dynaform(); $oInputDocument = new InputDocument(); $oOutputDocument = new OutputDocument(); $oTrigger = new Triggers(); $oStepTrigger = new StepTrigger(); $oRoute = new Route(); $oStep = new Step(); $oSubProcess = new SubProcess(); $oCaseTracker = new CaseTracker(); $oCaseTrackerObject = new CaseTrackerObject(); $oObjectPermission = new ObjectPermission(); $oSwimlaneElement = new SwimlanesElements(); $oConnection = new DbSource(); $oStage = new Stage(); $oEvent = new Event(); $oCaseScheduler = new CaseScheduler(); $oConfig = new Configuration(); //Delete the tasks of process $oCriteria = new Criteria( 'workflow' ); $oCriteria->add( TaskPeer::PRO_UID, $sProUid ); $oDataset = TaskPeer::doSelectRS( $oCriteria ); $oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC ); $oDataset->next(); $oTask = new Task(); while ($aRow = $oDataset->getRow()) { $oCriteria = new Criteria( 'workflow' ); $oCriteria->add( StepTriggerPeer::TAS_UID, $aRow['TAS_UID'] ); StepTriggerPeer::doDelete( $oCriteria ); if ($oTask->taskExists( $aRow['TAS_UID'] )) { $oTask->remove( $aRow['TAS_UID'] ); } $oDataset->next(); } //Delete the dynaforms of process $oCriteria = new Criteria( 'workflow' ); $oCriteria->add( DynaformPeer::PRO_UID, $sProUid ); $oDataset = DynaformPeer::doSelectRS( $oCriteria ); $oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC ); $oDataset->next(); while ($aRow = $oDataset->getRow()) { $sWildcard = PATH_DYNAFORM . $aRow['PRO_UID'] . PATH_SEP . $aRow['DYN_UID'] . '_tmp*'; foreach (glob( $sWildcard ) as $fn) { @unlink( $fn ); } $sWildcard = PATH_DYNAFORM . $aRow['PRO_UID'] . PATH_SEP . $aRow['DYN_UID'] . '.*'; foreach (glob( $sWildcard ) as $fn) { @unlink( $fn ); } if ($oDynaform->dynaformExists( $aRow['DYN_UID'] )) { $oDynaform->remove( $aRow['DYN_UID'] ); } $oDataset->next(); } //Delete the input documents of process $oCriteria = new Criteria( 'workflow' ); $oCriteria->add( InputDocumentPeer::PRO_UID, $sProUid ); $oDataset = InputDocumentPeer::doSelectRS( $oCriteria ); $oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC ); $oDataset->next(); while ($aRow = $oDataset->getRow()) { if ($oInputDocument->InputExists( $aRow['INP_DOC_UID'] )) { $oInputDocument->remove( $aRow['INP_DOC_UID'] ); } $oDataset->next(); } //Delete the output documents of process $oCriteria = new Criteria( 'workflow' ); $oCriteria->add( OutputDocumentPeer::PRO_UID, $sProUid ); $oDataset = OutputDocumentPeer::doSelectRS( $oCriteria ); $oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC ); $oDataset->next(); while ($aRow = $oDataset->getRow()) { if ($oOutputDocument->OutputExists( $aRow['OUT_DOC_UID'] )) { $oOutputDocument->remove( $aRow['OUT_DOC_UID'] ); } $oDataset->next(); } //Delete the steps $oCriteria = new Criteria( 'workflow' ); $oCriteria->add( StepPeer::PRO_UID, $sProUid ); $oDataset = StepPeer::doSelectRS( $oCriteria ); $oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC ); $oDataset->next(); while ($aRow = $oDataset->getRow()) { //Delete the steptrigger of process /*$oCriteria = new Criteria('workflow'); $oCriteria->add(StepTriggerPeer::STEP_UID, $aRow['STEP_UID']); $oDataseti = StepTriggerPeer::doSelectRS($oCriteria); $oDataseti->setFetchmode(ResultSet::FETCHMODE_ASSOC); $oDataseti->next(); while ($aRowi = $oDataseti->getRow()) { if ($oStepTrigger->stepTriggerExists($aRowi['STEP_UID'], $aRowi['TAS_UID'], $aRowi['TRI_UID'], $aRowi['ST_TYPE'])) $oStepTrigger->remove($aRowi['STEP_UID'], $aRowi['TAS_UID'], $aRowi['TRI_UID'], $aRowi['ST_TYPE']); $oDataseti->next(); }*/ $oStep->remove( $aRow['STEP_UID'] ); $oDataset->next(); } //Delete the StepSupervisor $oCriteria = new Criteria( 'workflow' ); $oCriteria->add( StepSupervisorPeer::PRO_UID, $sProUid ); $oDataset = StepSupervisorPeer::doSelectRS( $oCriteria ); $oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC ); $oDataset->next(); while ($aRow = $oDataset->getRow()) { if ($oStep->StepExists( $aRow['STEP_UID'] )) { $oStep->remove( $aRow['STEP_UID'] ); } $oDataset->next(); } //Delete the triggers of process $oCriteria = new Criteria( 'workflow' ); $oCriteria->add( TriggersPeer::PRO_UID, $sProUid ); $oDataset = TriggersPeer::doSelectRS( $oCriteria ); $oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC ); $oDataset->next(); while ($aRow = $oDataset->getRow()) { if ($oTrigger->TriggerExists( $aRow['TRI_UID'] )) { $oTrigger->remove( $aRow['TRI_UID'] ); } $oDataset->next(); } //Delete the routes of process $oCriteria = new Criteria( 'workflow' ); $oCriteria->add( RoutePeer::PRO_UID, $sProUid ); $oDataset = RoutePeer::doSelectRS( $oCriteria ); $oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC ); $oDataset->next(); while ($aRow = $oDataset->getRow()) { if ($oRoute->routeExists( $aRow['ROU_UID'] )) { $oRoute->remove( $aRow['ROU_UID'] ); } $oDataset->next(); } //Delete the swimlanes elements of process $oCriteria = new Criteria( 'workflow' ); $oCriteria->add( SwimlanesElementsPeer::PRO_UID, $sProUid ); $oDataset = SwimlanesElementsPeer::doSelectRS( $oCriteria ); $oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC ); $oDataset->next(); while ($aRow = $oDataset->getRow()) { if ($oSwimlaneElement->swimlanesElementsExists( $aRow['SWI_UID'] )) { $oSwimlaneElement->remove( $aRow['SWI_UID'] ); } $oDataset->next(); } //Delete the DB connections of process $oCriteria = new Criteria( 'workflow' ); $oCriteria->add( DbSourcePeer::PRO_UID, $sProUid ); $oDataset = DbSourcePeer::doSelectRS( $oCriteria ); $oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC ); $oDataset->next(); while ($aRow = $oDataset->getRow()) { if ($oConnection->Exists( $aRow['DBS_UID'], $aRow['PRO_UID'] )) { $oConnection->remove( $aRow['DBS_UID'], $aRow['PRO_UID'] ); } $oDataset->next(); } //Delete the sub process of process $oCriteria = new Criteria( 'workflow' ); $oCriteria->add( SubProcessPeer::PRO_PARENT, $sProUid ); $oDataset = SubProcessPeer::doSelectRS( $oCriteria ); $oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC ); $oDataset->next(); while ($aRow = $oDataset->getRow()) { if ($oSubProcess->subProcessExists( $aRow['SP_UID'] )) { $oSubProcess->remove( $aRow['SP_UID'] ); } $oDataset->next(); } //Delete the caseTracker of process $oCriteria = new Criteria( 'workflow' ); $oCriteria->add( CaseTrackerPeer::PRO_UID, $sProUid ); $oDataset = CaseTrackerPeer::doSelectRS( $oCriteria ); $oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC ); $oDataset->next(); while ($aRow = $oDataset->getRow()) { if ($oCaseTracker->caseTrackerExists( $aRow['PRO_UID'] )) { $oCaseTracker->remove( $aRow['PRO_UID'] ); } $oDataset->next(); } //Delete the caseTrackerObject of process $oCriteria = new Criteria( 'workflow' ); $oCriteria->add( CaseTrackerObjectPeer::PRO_UID, $sProUid ); $oDataset = CaseTrackerObjectPeer::doSelectRS( $oCriteria ); $oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC ); $oDataset->next(); while ($aRow = $oDataset->getRow()) { if ($oCaseTrackerObject->caseTrackerObjectExists( $aRow['CTO_UID'] )) { $oCaseTrackerObject->remove( $aRow['CTO_UID'] ); } $oDataset->next(); } //Delete the ObjectPermission of process $oCriteria = new Criteria( 'workflow' ); $oCriteria->add( ObjectPermissionPeer::PRO_UID, $sProUid ); $oDataset = ObjectPermissionPeer::doSelectRS( $oCriteria ); $oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC ); $oDataset->next(); while ($aRow = $oDataset->getRow()) { if ($oObjectPermission->Exists( $aRow['OP_UID'] )) { $oObjectPermission->remove( $aRow['OP_UID'] ); } $oDataset->next(); } //Delete the Stage of process $oCriteria = new Criteria( 'workflow' ); $oCriteria->add( StagePeer::PRO_UID, $sProUid ); $oDataset = StagePeer::doSelectRS( $oCriteria ); $oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC ); $oDataset->next(); while ($aRow = $oDataset->getRow()) { if ($oStage->Exists( $aRow['STG_UID'] )) { $oStage->remove( $aRow['STG_UID'] ); } $oDataset->next(); } //Delete the Event of process $oCriteria = new Criteria( 'workflow' ); $oCriteria->add( EventPeer::PRO_UID, $sProUid ); $oDataset = EventPeer::doSelectRS( $oCriteria ); $oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC ); $oDataset->next(); while ($aRow = $oDataset->getRow()) { if ($oEvent->Exists( $aRow['EVN_UID'] )) { $oEvent->remove( $aRow['EVN_UID'] ); } $oDataset->next(); if ($oEvent->existsByTaskUidFrom( $aRow['TAS_UID'] )) { $aRowEvent = $oEvent->getRowByTaskUidFrom( $aRow['TAS_UID'] ); $oEvent->remove( $aRowEvent['EVN_UID'] ); } $oDataset->next(); } //Delete the CaseScheduler of process $oCriteria = new Criteria( 'workflow' ); $oCriteria->add( CaseSchedulerPeer::PRO_UID, $sProUid ); $oDataset = CaseSchedulerPeer::doSelectRS( $oCriteria ); $oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC ); $oDataset->next(); while ($aRow = $oDataset->getRow()) { if ($oCaseScheduler->Exists( $aRow['SCH_UID'] )) { $oCaseScheduler->remove( $aRow['SCH_UID'] ); } $oDataset->next(); } //Delete the TaskExtraProperties of the process $oCriteria = new Criteria( 'workflow' ); $oCriteria->addSelectColumn( ConfigurationPeer::CFG_UID ); $oCriteria->addSelectColumn( ConfigurationPeer::OBJ_UID ); $oCriteria->addSelectColumn( ConfigurationPeer::CFG_VALUE ); $oCriteria->addSelectColumn( TaskPeer::PRO_UID ); $oCriteria->addSelectColumn( ConfigurationPeer::USR_UID ); $oCriteria->addSelectColumn( ConfigurationPeer::APP_UID ); $oCriteria->add( TaskPeer::PRO_UID, $sProUid ); $oCriteria->add( ConfigurationPeer::CFG_UID, 'TAS_EXTRA_PROPERTIES' ); $oCriteria->addJoin( ConfigurationPeer::OBJ_UID, TaskPeer::TAS_UID ); $oDataset = ConfigurationPeer::doSelectRS( $oCriteria ); $oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC ); $oDataset->next(); while ($aRow = $oDataset->getRow()) { if ($oConfig->exists($aRow['CFG_UID'], $aRow['OBJ_UID'], $aRow['PRO_UID'], $aRow['USR_UID'], $aRow['APP_UID'])) { $oConfig->remove( $aRow['CFG_UID'], $aRow['OBJ_UID'], $aRow['PRO_UID'], $aRow['USR_UID'], $aRow['APP_UID'] ); } $oDataset->next(); } return true; } catch (Exception $oError) { throw ($oError); } }
/** * Get the list of dynaform file names associated with the specified process * from database * * @param string $ProUID * process identifier * @return array of dynaform file names */ public function getProcessDynaformFileNames($ProUID) { $dynaformFileNames = array(); $c = new Criteria(); $c->addSelectColumn(DynaformPeer::DYN_FILENAME); $c->add(DynaformPeer::PRO_UID, $ProUID); $rs = DynaformPeer::doSelectRS($c); $rs->setFetchmode(ResultSet::FETCHMODE_ASSOC); $rs->next(); $row = $rs->getRow(); while (is_array($row)) { $dynaformFileNames[] = $row; $rs->next(); $row = $rs->getRow(); } return $dynaformFileNames; }
/** * Get all dynaform fields inside all grids from a process * * @param $proUid */ public function _getGridFields($proUid) { require_once 'classes/model/Dynaform.php'; G::loadSystem('dynaformhandler'); $aFields = array(); $aFieldsNames = array(); $oCriteria = new Criteria('workflow'); $oCriteria->addSelectColumn(DynaformPeer::DYN_FILENAME); $oCriteria->add(DynaformPeer::PRO_UID, $proUid); $oCriteria->add(DynaformPeer::DYN_TYPE, 'xmlform'); $oDataset = DynaformPeer::doSelectRS($oCriteria); $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $oDataset->next(); while ($aRow = $oDataset->getRow()) { //$G_FORM = new Form($aRow['DYN_FILENAME'], PATH_DYNAFORM, SYS_LANG); $dynaformHandler = new dynaformHandler(PATH_DYNAFORM . $aRow['DYN_FILENAME'] . '.xml'); $nodeFieldsList = $dynaformHandler->getFields(); foreach ($nodeFieldsList as $node) { $arrayNode = $dynaformHandler->getArray($node); $fieldName = $arrayNode['__nodeName__']; $fieldType = $arrayNode['type']; if ($fieldType == 'grid') { if (!in_array($fieldName, $aFieldsNames)) { $aFields[] = array('name' => $fieldName, 'xmlform' => str_replace($proUid . '/', '', $arrayNode['xmlgrid'])); $aFieldsNames[] = $fieldName; } } } $oDataset->next(); } return $aFields; }
catch (err) { parent.location = parent.location; } </script>'); } try { if ($_GET['APP_UID'] !== $_SESSION['APPLICATION']) { throw new Exception(G::LoadTranslation('ID_INVALID_APPLICATION_ID_MSG', array('<a href=\'' . $_SERVER['HTTP_REFERER'] . '\'>{1}</a>', G::LoadTranslation('ID_REOPEN')))); } /* * PMDynaform * DYN_VERSION is 1: classic Dynaform, * DYN_VERSION is 2: responsive form, Pmdynaform. */ $dynaForm = DynaformPeer::retrieveByPK($_GET["UID"]); $swpmdynaform = !is_null($dynaForm) && $dynaForm->getDynVersion() == 2; if ($swpmdynaform) { $pmdynaform = $_POST["form"]; } $oForm = new Form($_SESSION["PROCESS"] . "/" . $_GET["UID"], PATH_DYNAFORM); $oForm->validatePost(); //Includes G::LoadClass("case"); //Load the variables $oCase = new Cases(); $oCase->thisIsTheCurrentUser($_SESSION["APPLICATION"], $_SESSION["INDEX"], $_SESSION["USER_LOGGED"], "REDIRECT", "casesListExtJs"); $Fields = $oCase->loadCase($_SESSION["APPLICATION"]); if ($swpmdynaform) { $Fields["APP_DATA"] = array_merge($Fields["APP_DATA"], $pmdynaform); }
/** * Get available Steps of a Task * * @param string $taskUid Unique id of Task * * return array Return an array with the Steps available of a Task */ public function getAvailableSteps($taskUid) { try { $arrayAvailableStep = array(); //Verify data $this->throwExceptionIfNotExistsTask("", $taskUid, $this->arrayParamException["taskUid"]); //Load Task $task = new \Task(); $arrayTaskData = $task->load($taskUid); $processUid = $arrayTaskData["PRO_UID"]; //Get data //Get Uids $arrayUid = array(); $task = new \Tasks(); $arrayStep = $task->getStepsOfTask($taskUid); foreach ($arrayStep as $step) { $arrayUid[] = $step["STEP_UID_OBJ"]; } //Array DB $arraydbStep = 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, $arrayUid, \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); } $arraydbStep[] = array($this->getFieldNameByFormatFieldName("OBJ_UID") => $row["DYN_UID"], $this->getFieldNameByFormatFieldName("OBJ_TITLE") => $row["DYN_TITLE"], $this->getFieldNameByFormatFieldName("OBJ_DESCRIPTION") => $row["DYN_DESCRIPTION"], $this->getFieldNameByFormatFieldName("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, $arrayUid, \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); } $arraydbStep[] = array($this->getFieldNameByFormatFieldName("OBJ_UID") => $row["INP_DOC_UID"], $this->getFieldNameByFormatFieldName("OBJ_TITLE") => $row["INP_DOC_TITLE"], $this->getFieldNameByFormatFieldName("OBJ_DESCRIPTION") => $row["INP_DOC_DESCRIPTION"], $this->getFieldNameByFormatFieldName("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, $arrayUid, \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); } $arraydbStep[] = array($this->getFieldNameByFormatFieldName("OBJ_UID") => $row["OUT_DOC_UID"], $this->getFieldNameByFormatFieldName("OBJ_TITLE") => $row["OUT_DOC_TITLE"], $this->getFieldNameByFormatFieldName("OBJ_DESCRIPTION") => $row["OUT_DOC_DESCRIPTION"], $this->getFieldNameByFormatFieldName("OBJ_TYPE") => "OUTPUT_DOCUMENT"); } //Call plugin $pluginRegistry =& \PMPluginRegistry::getSingleton(); $externalSteps = $pluginRegistry->getSteps(); if (is_array($externalSteps) && count($externalSteps) > 0) { foreach ($externalSteps as $key => $value) { $arraydbStep[] = array($this->getFieldNameByFormatFieldName("OBJ_UID") => $value->sStepId, $this->getFieldNameByFormatFieldName("OBJ_TITLE") => $value->sStepTitle, $this->getFieldNameByFormatFieldName("OBJ_DESCRIPTION") => "", $this->getFieldNameByFormatFieldName("OBJ_TYPE") => "EXTERNAL"); } } if (!empty($arraydbStep)) { $arraydbStep = Util\ArrayUtil::sort($arraydbStep, array($this->getFieldNameByFormatFieldName("OBJ_TYPE"), $this->getFieldNameByFormatFieldName("OBJ_TITLE")), SORT_ASC); } return $arraydbStep; } catch (\Exception $e) { throw $e; } }
/** * Put Set Case Variables * * @access public * @param string $app_uid, Uid for case * @param array $app_data, Data for case variables * @param string $dyn_uid, Uid for dynaform * * @author Brayan Pereyra (Cochalo) <*****@*****.**> * @copyright Colosa - Bolivia */ public function setCaseVariables($app_uid, $app_data, $dyn_uid = null) { Validator::isString($app_uid, '$app_uid'); Validator::appUid($app_uid, '$app_uid'); Validator::isArray($app_data, '$app_data'); $case = new \Cases(); $fields = $case->loadCase($app_uid); $_POST['form'] = $app_data; if (!is_null($dyn_uid) && $dyn_uid != '') { $oDynaform = \DynaformPeer::retrieveByPK($dyn_uid); if ($oDynaform->getDynVersion() < 2) { $oForm = new \Form ( $fields['PRO_UID'] . "/" . $dyn_uid, PATH_DYNAFORM ); $oForm->validatePost(); } } $data['APP_DATA'] = array_merge($fields['APP_DATA'], $_POST['form']); $case->updateCase($app_uid, $data); }