From 7c724070dd06091831d429d31069130591aeae25 Mon Sep 17 00:00:00 2001 From: Paula Quispe Date: Thu, 5 Oct 2017 14:54:41 -0400 Subject: [PATCH] HOR-3938 --- .../engine/classes/model/AppDelegation.php | 28 +- .../src/ProcessMaker/BusinessModel/Cases.php | 1593 +++++++++-------- .../src/ProcessMaker/Services/Api/Cases.php | 300 ++-- .../src/ProcessMaker/Services/Api/Light.php | 11 +- 4 files changed, 1062 insertions(+), 870 deletions(-) diff --git a/workflow/engine/classes/model/AppDelegation.php b/workflow/engine/classes/model/AppDelegation.php index 75beda41d..540479493 100644 --- a/workflow/engine/classes/model/AppDelegation.php +++ b/workflow/engine/classes/model/AppDelegation.php @@ -788,18 +788,26 @@ class AppDelegation extends BaseAppDelegation return $data['TAS_UID']; } + /** + * This function get the current user related to the specific case and index + * @param string $appUid, Uid related to the case + * @param integer $index, Index to review + * @return array + */ public function getCurrentUsers($appUid, $index) { - $oCriteria = new Criteria(); - $oCriteria->addSelectColumn( AppDelegationPeer::USR_UID ); - $oCriteria->add( AppDelegationPeer::APP_UID, $appUid ); - $oCriteria->add( AppDelegationPeer::DEL_THREAD_STATUS, 'OPEN' ); - $oCriteria->add( AppDelegationPeer::DEL_INDEX, $index ); - $oRuleSet = AppDelegationPeer::doSelectRS( $oCriteria ); - $oRuleSet->setFetchmode( ResultSet::FETCHMODE_ASSOC ); - $oRuleSet->next(); - $data = $oRuleSet->getRow(); - return $data; + $criteria = new Criteria(); + $criteria->addSelectColumn( AppDelegationPeer::USR_UID ); + $criteria->add( AppDelegationPeer::APP_UID, $appUid ); + $criteria->add( AppDelegationPeer::DEL_THREAD_STATUS, 'OPEN' ); + $criteria->add( AppDelegationPeer::DEL_INDEX, $index ); + $dataResult = AppDelegationPeer::doSelectRS( $criteria ); + $dataResult->setFetchmode( ResultSet::FETCHMODE_ASSOC ); + if($dataResult->next()) { + return $dataResult->getRow(); + } else { + return []; + } } /** diff --git a/workflow/engine/src/ProcessMaker/BusinessModel/Cases.php b/workflow/engine/src/ProcessMaker/BusinessModel/Cases.php index 938a61b01..3a37ab6f0 100644 --- a/workflow/engine/src/ProcessMaker/BusinessModel/Cases.php +++ b/workflow/engine/src/ProcessMaker/BusinessModel/Cases.php @@ -1,19 +1,54 @@ formatFieldNameInUppercase)? strtoupper($fieldName) : strtolower($fieldName); + return ($this->formatFieldNameInUppercase) ? strtoupper($fieldName) : strtolower($fieldName); } catch (Exception $e) { throw $e; } @@ -55,14 +90,14 @@ class Cases /** * Throw the exception "The Case doesn't exist" * - * @param string $applicationUid Unique id of Case + * @param string $applicationUid Unique id of Case * @param string $fieldNameForException Field name for the exception * * @return void */ private function throwExceptionCaseDoesNotExist($applicationUid, $fieldNameForException) { - throw new Exception(\G::LoadTranslation( + throw new Exception(G::LoadTranslation( 'ID_CASE_DOES_NOT_EXIST2', [$fieldNameForException, $applicationUid] )); } @@ -70,8 +105,8 @@ class Cases /** * Verify if does not exist the Case in table APPLICATION * - * @param string $applicationUid Unique id of Case - * @param string $delIndex Delegation index + * @param string $applicationUid Unique id of Case + * @param string $delIndex Delegation index * @param string $fieldNameForException Field name for the exception * * return void Throw exception if does not exist the Case in table APPLICATION @@ -79,12 +114,12 @@ class Cases public function throwExceptionIfNotExistsCase($applicationUid, $delIndex, $fieldNameForException) { try { - $obj = \ApplicationPeer::retrieveByPK($applicationUid); + $obj = ApplicationPeer::retrieveByPK($applicationUid); $flag = is_null($obj); if (!$flag && $delIndex > 0) { - $obj = \AppDelegationPeer::retrieveByPK($applicationUid, $delIndex); + $obj = AppDelegationPeer::retrieveByPK($applicationUid, $delIndex); $flag = is_null($obj); } @@ -100,9 +135,9 @@ class Cases /** * Get Application record * - * @param string $applicationUid Unique id of Case - * @param array $arrayVariableNameForException Variable name for exception - * @param bool $throwException Flag to throw the exception if the main parameters are invalid or do not exist + * @param string $applicationUid Unique id of Case + * @param array $arrayVariableNameForException Variable name for exception + * @param bool $throwException Flag to throw the exception if the main parameters are invalid or do not exist * (TRUE: throw the exception; FALSE: returns FALSE) * * @return array Returns an array with Application record, ThrowTheException/FALSE otherwise @@ -113,7 +148,7 @@ class Cases $throwException = true ) { try { - $obj = \ApplicationPeer::retrieveByPK($applicationUid); + $obj = ApplicationPeer::retrieveByPK($applicationUid); if (is_null($obj)) { if ($throwException) { @@ -126,7 +161,7 @@ class Cases } //Return - return $obj->toArray(\BasePeer::TYPE_FIELDNAME); + return $obj->toArray(BasePeer::TYPE_FIELDNAME); } catch (Exception $e) { throw $e; } @@ -135,10 +170,10 @@ class Cases /** * Get AppDelegation record * - * @param string $applicationUid Unique id of Case - * @param int $delIndex Delegation index - * @param array $arrayVariableNameForException Variable name for exception - * @param bool $throwException Flag to throw the exception if the main parameters are invalid or do not exist + * @param string $applicationUid Unique id of Case + * @param int $delIndex Delegation index + * @param array $arrayVariableNameForException Variable name for exception + * @param bool $throwException Flag to throw the exception if the main parameters are invalid or do not exist * (TRUE: throw the exception; FALSE: returns FALSE) * * @return array Returns an array with AppDelegation record, ThrowTheException/FALSE otherwise @@ -150,11 +185,11 @@ class Cases $throwException = true ) { try { - $obj = \AppDelegationPeer::retrieveByPK($applicationUid, $delIndex); + $obj = AppDelegationPeer::retrieveByPK($applicationUid, $delIndex); if (is_null($obj)) { if ($throwException) { - throw new Exception(\G::LoadTranslation( + throw new Exception(G::LoadTranslation( 'ID_CASE_DEL_INDEX_DOES_NOT_EXIST', [ $arrayVariableNameForException['$applicationUid'], @@ -169,7 +204,7 @@ class Cases } //Return - return $obj->toArray(\BasePeer::TYPE_FIELDNAME); + return $obj->toArray(BasePeer::TYPE_FIELDNAME); } catch (Exception $e) { throw $e; } @@ -178,8 +213,8 @@ class Cases /** * Get list counters * - * @param string $userUid Unique id of User - * @param array $arrayType Type lists + * @param string $userUid Unique id of User + * @param array $arrayType Type lists * * @return array Return the list counters */ @@ -190,7 +225,7 @@ class Cases $solrConf = System::solrEnv(); if ($solrConf !== false) { - $ApplicationSolrIndex = new \AppSolr( + $ApplicationSolrIndex = new AppSolr( $solrConf['solr_enabled'], $solrConf['solr_host'], $solrConf['solr_instance'] @@ -201,7 +236,7 @@ class Cases } } - $appCacheView = new \AppCacheView(); + $appCacheView = new AppCacheView(); if ($solrEnabled) { $arrayListCounter = array_merge( @@ -229,7 +264,7 @@ class Cases * /light/unassigned * * @access public - * @param array $dataList, Data for list + * @param array $dataList , Data for list * @return array $response */ public function getList($dataList = array()) @@ -241,48 +276,48 @@ class Cases //We need to use the USR_UID for the cases in the list $userUid = isset($dataList["userUid"]) ? $dataList["userUid"] : $dataList["userId"]; - $callback = isset( $dataList["callback"] ) ? $dataList["callback"] : "stcCallback1001"; - $dir = isset( $dataList["dir"] ) ? $dataList["dir"] : "DESC"; - $sort = isset( $dataList["sort"] ) ? $dataList["sort"] : "APPLICATION.APP_NUMBER"; + $callback = isset($dataList["callback"]) ? $dataList["callback"] : "stcCallback1001"; + $dir = isset($dataList["dir"]) ? $dataList["dir"] : "DESC"; + $sort = isset($dataList["sort"]) ? $dataList["sort"] : "APPLICATION.APP_NUMBER"; if ($sort === 'APP_CACHE_VIEW.APP_NUMBER') { $sort = "APPLICATION.APP_NUMBER"; } - $start = isset( $dataList["start"] ) ? $dataList["start"] : "0"; - $limit = isset( $dataList["limit"] ) ? $dataList["limit"] : ""; - $filter = isset( $dataList["filter"] ) ? $dataList["filter"] : ""; - $process = isset( $dataList["process"] ) ? $dataList["process"] : ""; - $category = isset( $dataList["category"] ) ? $dataList["category"] : ""; - $status = isset( $dataList["status"] ) ? strtoupper( $dataList["status"] ) : ""; - $search = isset( $dataList["search"] ) ? $dataList["search"] : ""; - $action = isset( $dataList["action"] ) ? $dataList["action"] : "todo"; - $paged = isset( $dataList["paged"] ) ? $dataList["paged"] : true; + $start = isset($dataList["start"]) ? $dataList["start"] : "0"; + $limit = isset($dataList["limit"]) ? $dataList["limit"] : ""; + $filter = isset($dataList["filter"]) ? $dataList["filter"] : ""; + $process = isset($dataList["process"]) ? $dataList["process"] : ""; + $category = isset($dataList["category"]) ? $dataList["category"] : ""; + $status = isset($dataList["status"]) ? strtoupper($dataList["status"]) : ""; + $search = isset($dataList["search"]) ? $dataList["search"] : ""; + $action = isset($dataList["action"]) ? $dataList["action"] : "todo"; + $paged = isset($dataList["paged"]) ? $dataList["paged"] : true; $type = "extjs"; - $dateFrom = (!empty( $dataList["dateFrom"] )) ? substr( $dataList["dateFrom"], 0, 10 ) : ""; - $dateTo = (!empty( $dataList["dateTo"] )) ? substr( $dataList["dateTo"], 0, 10 ) : ""; - $newerThan = (!empty($dataList['newerThan']))? $dataList['newerThan'] : ''; - $oldestThan = (!empty($dataList['oldestthan']))? $dataList['oldestthan'] : ''; + $dateFrom = (!empty($dataList["dateFrom"])) ? substr($dataList["dateFrom"], 0, 10) : ""; + $dateTo = (!empty($dataList["dateTo"])) ? substr($dataList["dateTo"], 0, 10) : ""; + $newerThan = (!empty($dataList['newerThan'])) ? $dataList['newerThan'] : ''; + $oldestThan = (!empty($dataList['oldestthan'])) ? $dataList['oldestthan'] : ''; $apps = new Applications(); $response = $apps->getAll( - $userUid, - $start, - $limit, - $action, - $filter, - $search, - $process, - $status, - $type, - $dateFrom, - $dateTo, - $callback, - $dir, - (strpos($sort, ".") !== false)? $sort : "APP_CACHE_VIEW." . $sort, - $category, - true, - $paged, - $newerThan, - $oldestThan + $userUid, + $start, + $limit, + $action, + $filter, + $search, + $process, + $status, + $type, + $dateFrom, + $dateTo, + $callback, + $dir, + (strpos($sort, ".") !== false) ? $sort : "APP_CACHE_VIEW." . $sort, + $category, + true, + $paged, + $newerThan, + $oldestThan ); if (!empty($response['data'])) { foreach ($response['data'] as &$value) { @@ -292,7 +327,7 @@ class Cases if ($paged) { $response['total'] = $response['totalCount']; - $response['start'] = $start+1; + $response['start'] = $start + 1; $response['limit'] = $limit; $response['sort'] = G::toLower($sort); $response['dir'] = G::toLower($dir); @@ -302,13 +337,15 @@ class Cases } else { $response = $response['data']; } + return $response; } + /** * Search cases and get list of cases * * @access public - * @param array $dataList, Data for list + * @param array $dataList , Data for list * @return array $response */ public function getCasesSearch($dataList = array()) @@ -320,21 +357,21 @@ class Cases //We need to user the USR_ID for performance $userId = $dataList["userId"]; - $dir = isset( $dataList["dir"] ) ? $dataList["dir"] : "DESC"; - $sort = isset( $dataList["sort"] ) ? $dataList["sort"] : "APPLICATION.APP_NUMBER"; + $dir = isset($dataList["dir"]) ? $dataList["dir"] : "DESC"; + $sort = isset($dataList["sort"]) ? $dataList["sort"] : "APPLICATION.APP_NUMBER"; if ($sort === 'APP_CACHE_VIEW.APP_NUMBER') { $sort = "APPLICATION.APP_NUMBER"; } - $start = isset( $dataList["start"] ) ? $dataList["start"] : "0"; - $limit = isset( $dataList["limit"] ) ? $dataList["limit"] : ""; - $process = isset( $dataList["process"] ) ? $dataList["process"] : ""; - $category = isset( $dataList["category"] ) ? $dataList["category"] : ""; - $status = isset( $dataList["status"] ) ? strtoupper( $dataList["status"] ) : ""; - $user = isset( $dataList["user"] ) ? $dataList["user"] : ""; - $search = isset( $dataList["search"] ) ? $dataList["search"] : ""; - $dateFrom = (!empty( $dataList["dateFrom"] )) ? substr( $dataList["dateFrom"], 0, 10 ) : ""; - $dateTo = (!empty( $dataList["dateTo"] )) ? substr( $dataList["dateTo"], 0, 10 ) : ""; - $filterStatus = isset( $dataList["filterStatus"] ) ? strtoupper( $dataList["filterStatus"] ) : ""; + $start = isset($dataList["start"]) ? $dataList["start"] : "0"; + $limit = isset($dataList["limit"]) ? $dataList["limit"] : ""; + $process = isset($dataList["process"]) ? $dataList["process"] : ""; + $category = isset($dataList["category"]) ? $dataList["category"] : ""; + $status = isset($dataList["status"]) ? strtoupper($dataList["status"]) : ""; + $user = isset($dataList["user"]) ? $dataList["user"] : ""; + $search = isset($dataList["search"]) ? $dataList["search"] : ""; + $dateFrom = (!empty($dataList["dateFrom"])) ? substr($dataList["dateFrom"], 0, 10) : ""; + $dateTo = (!empty($dataList["dateTo"])) ? substr($dataList["dateTo"], 0, 10) : ""; + $filterStatus = isset($dataList["filterStatus"]) ? strtoupper($dataList["filterStatus"]) : ""; $apps = new Applications(); $response = $apps->searchAll( @@ -352,7 +389,7 @@ class Cases ); $response['total'] = 0; - $response['start'] = $start+1; + $response['start'] = $start + 1; $response['limit'] = $limit; $response['sort'] = G::toLower($sort); $response['dir'] = G::toLower($dir); @@ -380,7 +417,7 @@ class Cases try { $solrEnabled = 0; if (($solrEnv = System::solrEnv()) !== false) { - $appSolr = new \AppSolr( + $appSolr = new AppSolr( $solrEnv["solr_enabled"], $solrEnv["solr_host"], $solrEnv["solr_instance"] @@ -398,29 +435,29 @@ class Cases $columsToInclude = array("APP_UID"); $solrSearchText = null; //Todo - $solrSearchText = $solrSearchText . (($solrSearchText != null)? " OR " : null) . "(APP_STATUS:TO_DO AND APP_ASSIGNED_USERS:" . $userUid . ")"; + $solrSearchText = $solrSearchText . (($solrSearchText != null) ? " OR " : null) . "(APP_STATUS:TO_DO AND APP_ASSIGNED_USERS:" . $userUid . ")"; $delegationIndexes[] = "APP_ASSIGNED_USER_DEL_INDEX_" . $userUid . "_txt"; //Draft - $solrSearchText = $solrSearchText . (($solrSearchText != null)? " OR " : null) . "(APP_STATUS:DRAFT AND APP_DRAFT_USER:" . $userUid . ")"; + $solrSearchText = $solrSearchText . (($solrSearchText != null) ? " OR " : null) . "(APP_STATUS:DRAFT AND APP_DRAFT_USER:" . $userUid . ")"; //Index is allways 1 $solrSearchText = "($solrSearchText)"; //Add del_index dynamic fields to list of resulting columns $columsToIncludeFinal = array_merge($columsToInclude, $delegationIndexes); - $solrRequestData = \EntitySolrRequestData::createForRequestPagination( + $solrRequestData = EntitySolrRequestData::createForRequestPagination( array( - "workspace" => $solrEnv["solr_instance"], + "workspace" => $solrEnv["solr_instance"], "startAfter" => 0, - "pageSize" => 1000, + "pageSize" => 1000, "searchText" => $solrSearchText, "numSortingCols" => 1, "sortCols" => array("APP_NUMBER"), - "sortDir" => array(strtolower("DESC")), - "includeCols" => $columsToIncludeFinal, + "sortDir" => array(strtolower("DESC")), + "includeCols" => $columsToIncludeFinal, "resultFormat" => "json" ) ); //Use search index to return list of cases - $searchIndex = new \BpmnEngineServicesSearchIndex($appSolr->isSolrEnabled(), $solrEnv["solr_host"]); + $searchIndex = new BpmnEngineServicesSearchIndex($appSolr->isSolrEnabled(), $solrEnv["solr_host"]); //Execute query $solrQueryResult = $searchIndex->getDataTablePaginatedList($solrRequestData); //Get the missing data from database @@ -484,7 +521,7 @@ class Cases $array['app_create_date'] = $array['createDate']; $array['app_update_date'] = $array['updateDate']; $array['current_task'] = $array['currentUsers']; - for ($i = 0; $i<=count($array['current_task'])-1; $i++) { + for ($i = 0; $i <= count($array['current_task']) - 1; $i++) { $current_task = $array['current_task'][$i]; $current_task['usr_uid'] = $current_task['userId']; $current_task['usr_name'] = trim($current_task['userName']); @@ -521,16 +558,19 @@ class Cases $oResponse = json_decode(json_encode($array), false); $oResponse->current_task = $current_task; } + //Return return $oResponse; } } - } catch (\InvalidIndexSearchTextException $e) { + } catch (InvalidIndexSearchTextException $e) { $arrayData = array(); - $arrayData[] = array ("app_uid" => $e->getMessage(), - "app_name" => $e->getMessage(), - "del_index" => $e->getMessage(), - "pro_uid" => $e->getMessage()); + $arrayData[] = array( + "app_uid" => $e->getMessage(), + "app_name" => $e->getMessage(), + "del_index" => $e->getMessage(), + "pro_uid" => $e->getMessage() + ); throw (new Exception($arrayData)); } } else { @@ -555,7 +595,7 @@ class Cases $aCurrent_task = array(); - for ($i = 0; $i<=count($array['current_task'])-1; $i++) { + for ($i = 0; $i <= count($array['current_task']) - 1; $i++) { $current_task = $array['current_task'][$i]; $current_task['usr_uid'] = $current_task['userId']; $current_task['usr_name'] = trim($current_task['userName']); @@ -594,6 +634,7 @@ class Cases $current_task = json_decode(json_encode($aCurrent_task), false); $oResponse = json_decode(json_encode($array), false); $oResponse->current_task = $current_task; + //Return return $oResponse; } @@ -616,48 +657,51 @@ class Cases //Verify data $this->throwExceptionIfNotExistsCase($applicationUid, 0, $this->getFieldNameByFormatFieldName("APP_UID")); - $criteria = new \Criteria("workflow"); + $criteria = new Criteria("workflow"); - $criteria->addSelectColumn(\ApplicationPeer::APP_UID); + $criteria->addSelectColumn(ApplicationPeer::APP_UID); - $criteria->add(\ApplicationPeer::APP_UID, $applicationUid, \Criteria::EQUAL); - $criteria->add(\ApplicationPeer::APP_STATUS, "COMPLETED", \Criteria::EQUAL); + $criteria->add(ApplicationPeer::APP_UID, $applicationUid, Criteria::EQUAL); + $criteria->add(ApplicationPeer::APP_STATUS, "COMPLETED", Criteria::EQUAL); - $rsCriteria = \ApplicationPeer::doSelectRS($criteria); + $rsCriteria = ApplicationPeer::doSelectRS($criteria); if ($rsCriteria->next()) { - throw new Exception(\G::LoadTranslation("ID_CASE_NO_CURRENT_TASKS_BECAUSE_CASE_ITS_COMPLETED", array($this->getFieldNameByFormatFieldName("APP_UID"), $applicationUid))); + throw new Exception(G::LoadTranslation("ID_CASE_NO_CURRENT_TASKS_BECAUSE_CASE_ITS_COMPLETED", + array($this->getFieldNameByFormatFieldName("APP_UID"), $applicationUid))); } //Get data $result = array(); - $oCriteria = new \Criteria( 'workflow' ); - $del = \DBAdapter::getStringDelimiter(); - $oCriteria->addSelectColumn(\AppDelegationPeer::DEL_INDEX); - $oCriteria->addSelectColumn(\AppDelegationPeer::TAS_UID); - $oCriteria->addSelectColumn(\AppDelegationPeer::DEL_INIT_DATE); - $oCriteria->addSelectColumn(\AppDelegationPeer::DEL_TASK_DUE_DATE); - $oCriteria->addSelectColumn(\TaskPeer::TAS_TITLE); - $oCriteria->addJoin(\AppDelegationPeer::TAS_UID, \TaskPeer::TAS_UID); - $oCriteria->add( \AppDelegationPeer::APP_UID, $applicationUid ); - $oCriteria->add( \AppDelegationPeer::USR_UID, $userUid ); - $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 ); + $oCriteria = new Criteria('workflow'); + $del = DBAdapter::getStringDelimiter(); + $oCriteria->addSelectColumn(AppDelegationPeer::DEL_INDEX); + $oCriteria->addSelectColumn(AppDelegationPeer::TAS_UID); + $oCriteria->addSelectColumn(AppDelegationPeer::DEL_INIT_DATE); + $oCriteria->addSelectColumn(AppDelegationPeer::DEL_TASK_DUE_DATE); + $oCriteria->addSelectColumn(TaskPeer::TAS_TITLE); + $oCriteria->addJoin(AppDelegationPeer::TAS_UID, TaskPeer::TAS_UID); + $oCriteria->add(AppDelegationPeer::APP_UID, $applicationUid); + $oCriteria->add(AppDelegationPeer::USR_UID, $userUid); + $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 ('tas_uid' => $aRow['TAS_UID'], - 'tas_title' => $aRow['TAS_TITLE'], - 'del_index' => $aRow['DEL_INDEX'], - "del_init_date" => $aRow["DEL_INIT_DATE"] . "", - "del_task_due_date" => $aRow["DEL_TASK_DUE_DATE"]); + $result = array( + 'tas_uid' => $aRow['TAS_UID'], + 'tas_title' => $aRow['TAS_TITLE'], + 'del_index' => $aRow['DEL_INDEX'], + "del_init_date" => $aRow["DEL_INIT_DATE"] . "", + "del_task_due_date" => $aRow["DEL_TASK_DUE_DATE"] + ); $oDataset->next(); } //Return if (empty($result)) { - throw new Exception(\G::LoadTranslation("ID_CASES_INCORRECT_INFORMATION", array($applicationUid))); + throw new Exception(G::LoadTranslation("ID_CASES_INCORRECT_INFORMATION", array($applicationUid))); } else { return $result; } @@ -685,9 +729,9 @@ class Cases $variables = array_shift($variables); } Validator::proUid($processUid, '$pro_uid'); - $oTask = new \Task(); - if (! $oTask->taskExists($taskUid)) { - throw new Exception(\G::LoadTranslation("ID_INVALID_VALUE_FOR", array('tas_uid'))); + $oTask = new ModelTask(); + if (!$oTask->taskExists($taskUid)) { + throw new Exception(G::LoadTranslation("ID_INVALID_VALUE_FOR", array('tas_uid'))); } $fields = $ws->newCase($processUid, $userUid, $taskUid, $variables); $array = json_decode(json_encode($fields), true); @@ -703,6 +747,7 @@ class Cases unset($array['caseNumber']); } $oResponse = json_decode(json_encode($array), false); + //Return return $oResponse; } catch (Exception $e) { @@ -731,17 +776,17 @@ class Cases $variables = array(array()); } Validator::proUid($processUid, '$pro_uid'); - $user = new \Users(); - if (! $user->userExists( $userUid )) { - throw new Exception(\G::LoadTranslation("ID_INVALID_VALUE_FOR", array('usr_uid'))); + $user = new ModelUsers(); + if (!$user->userExists($userUid)) { + throw new Exception(G::LoadTranslation("ID_INVALID_VALUE_FOR", array('usr_uid'))); } $fields = $ws->newCaseImpersonate($processUid, $userUid, $variables, $taskUid); $array = json_decode(json_encode($fields), true); if ($array ["status_code"] != 0) { if ($array ["status_code"] == 12) { - throw (new Exception(\G::loadTranslation('ID_NO_STARTING_TASK') . '. tas_uid.')); + throw (new Exception(G::loadTranslation('ID_NO_STARTING_TASK') . '. tas_uid.')); } elseif ($array ["status_code"] == 13) { - throw (new Exception(\G::loadTranslation('ID_MULTIPLE_STARTING_TASKS') . '. tas_uid.')); + throw (new Exception(G::loadTranslation('ID_MULTIPLE_STARTING_TASKS') . '. tas_uid.')); } throw (new Exception($array ["message"])); } else { @@ -754,6 +799,7 @@ class Cases unset($array['caseNumber']); } $oResponse = json_decode(json_encode($array), false); + //Return return $oResponse; } catch (Exception $e) { @@ -791,7 +837,7 @@ class Cases unset($array['timestamp']); } } else { - throw new Exception(\G::LoadTranslation("ID_CASES_INCORRECT_INFORMATION", array($applicationUid))); + throw new Exception(G::LoadTranslation("ID_CASES_INCORRECT_INFORMATION", array($applicationUid))); } } catch (Exception $e) { throw $e; @@ -802,9 +848,9 @@ class Cases * Put cancel case * * @access public - * @param string $app_uid, Uid for case - * @param string $usr_uid, Uid for user - * @param string $del_index, Index for case + * @param string $app_uid , Uid for case + * @param string $usr_uid , Uid for user + * @param string $del_index , Index for case * @return array * * @author Brayan Pereyra (Cochalo) @@ -823,32 +869,32 @@ class Cases } Validator::isInteger($del_index, '$del_index'); - $case = new \Cases(); + $case = new ClassesCases(); $fields = $case->loadCase($app_uid); if ($fields['APP_STATUS'] == 'CANCELLED') { - throw (new Exception(\G::LoadTranslation("ID_CASE_ALREADY_CANCELED", array($app_uid)))); + throw (new Exception(G::LoadTranslation("ID_CASE_ALREADY_CANCELED", array($app_uid)))); } - $appCacheView = new \AppCacheView(); + $appCacheView = new AppCacheView(); $arrayProcess = $appCacheView->getProUidSupervisor($usr_uid); - $criteria = new \Criteria("workflow"); + $criteria = new Criteria("workflow"); - $criteria->addSelectColumn(\AppDelegationPeer::APP_UID); - $criteria->add(\AppDelegationPeer::APP_UID, $app_uid, \Criteria::EQUAL); - $criteria->add(\AppDelegationPeer::DEL_INDEX, $del_index, \Criteria::EQUAL); + $criteria->addSelectColumn(AppDelegationPeer::APP_UID); + $criteria->add(AppDelegationPeer::APP_UID, $app_uid, Criteria::EQUAL); + $criteria->add(AppDelegationPeer::DEL_INDEX, $del_index, Criteria::EQUAL); $criteria->add( - $criteria->getNewCriterion(\AppDelegationPeer::USR_UID, $usr_uid, \Criteria::EQUAL)->addOr( - $criteria->getNewCriterion(\AppDelegationPeer::PRO_UID, $arrayProcess, \Criteria::IN)) + $criteria->getNewCriterion(AppDelegationPeer::USR_UID, $usr_uid, Criteria::EQUAL)->addOr( + $criteria->getNewCriterion(AppDelegationPeer::PRO_UID, $arrayProcess, Criteria::IN)) ); - $rsCriteria = \AppDelegationPeer::doSelectRS($criteria); + $rsCriteria = AppDelegationPeer::doSelectRS($criteria); if (!$rsCriteria->next()) { - throw (new Exception(\G::LoadTranslation("ID_CASE_USER_INVALID_CANCEL_CASE", array($usr_uid)))); + throw (new Exception(G::LoadTranslation("ID_CASE_USER_INVALID_CANCEL_CASE", array($usr_uid)))); } - $case->cancelCase( $app_uid, $del_index, $usr_uid ); + $case->cancelCase($app_uid, $del_index, $usr_uid); } /** @@ -858,7 +904,7 @@ class Cases * @param string $app_uid , Uid for case * @param string $usr_uid , Uid for user * @param bool|string $del_index , Index for case - * @param null|string $unpaused_date, Date for unpaused + * @param null|string $unpaused_date , Date for unpaused * @return array * * @author Brayan Pereyra (Cochalo) @@ -878,45 +924,45 @@ class Cases Validator::isInteger($del_index, '$del_index'); - $case = new \Cases(); + $case = new ClassesCases(); $fields = $case->loadCase($app_uid); if ($fields['APP_STATUS'] == 'CANCELLED') { - throw (new Exception(\G::LoadTranslation("ID_CASE_IS_CANCELED", array($app_uid)))); + throw (new Exception(G::LoadTranslation("ID_CASE_IS_CANCELED", array($app_uid)))); } - $oDelay = new \AppDelay(); + $oDelay = new AppDelay(); if ($oDelay->isPaused($app_uid, $del_index)) { - throw (new Exception(\G::LoadTranslation("ID_CASE_PAUSED", array($app_uid)))); + throw (new Exception(G::LoadTranslation("ID_CASE_PAUSED", array($app_uid)))); } - $appCacheView = new \AppCacheView(); + $appCacheView = new AppCacheView(); $arrayProcess = $appCacheView->getProUidSupervisor($usr_uid); - $criteria = new \Criteria("workflow"); + $criteria = new Criteria("workflow"); - $criteria->addSelectColumn(\AppDelegationPeer::APP_UID); - $criteria->add(\AppDelegationPeer::APP_UID, $app_uid, \Criteria::EQUAL); - $criteria->add(\AppDelegationPeer::DEL_INDEX, $del_index, \Criteria::EQUAL); + $criteria->addSelectColumn(AppDelegationPeer::APP_UID); + $criteria->add(AppDelegationPeer::APP_UID, $app_uid, Criteria::EQUAL); + $criteria->add(AppDelegationPeer::DEL_INDEX, $del_index, Criteria::EQUAL); $criteria->add( - $criteria->getNewCriterion(\AppDelegationPeer::USR_UID, $usr_uid, \Criteria::EQUAL)->addOr( - $criteria->getNewCriterion(\AppDelegationPeer::PRO_UID, $arrayProcess, \Criteria::IN)) + $criteria->getNewCriterion(AppDelegationPeer::USR_UID, $usr_uid, Criteria::EQUAL)->addOr( + $criteria->getNewCriterion(AppDelegationPeer::PRO_UID, $arrayProcess, Criteria::IN)) ); - $criteria->add(\AppDelegationPeer::DEL_THREAD_STATUS, "OPEN", \Criteria::EQUAL); - $criteria->add(\AppDelegationPeer::DEL_FINISH_DATE, null, \Criteria::ISNULL); + $criteria->add(AppDelegationPeer::DEL_THREAD_STATUS, "OPEN", Criteria::EQUAL); + $criteria->add(AppDelegationPeer::DEL_FINISH_DATE, null, Criteria::ISNULL); - $rsCriteria = \AppDelegationPeer::doSelectRS($criteria); + $rsCriteria = AppDelegationPeer::doSelectRS($criteria); if (!$rsCriteria->next()) { - throw (new Exception(\G::LoadTranslation("ID_CASE_USER_INVALID_PAUSED_CASE", array($usr_uid)))); + throw (new Exception(G::LoadTranslation("ID_CASE_USER_INVALID_PAUSED_CASE", array($usr_uid)))); } if ($unpaused_date != null) { Validator::isDate($unpaused_date, 'Y-m-d', '$unpaused_date'); } - $case->pauseCase( $app_uid, $del_index, $usr_uid, $unpaused_date ); + $case->pauseCase($app_uid, $del_index, $usr_uid, $unpaused_date); } /** @@ -943,43 +989,43 @@ class Cases } Validator::isInteger($del_index, '$del_index'); - $oDelay = new \AppDelay(); + $oDelay = new AppDelay(); if (!$oDelay->isPaused($app_uid, $del_index)) { - throw (new Exception(\G::LoadTranslation("ID_CASE_NOT_PAUSED", array($app_uid)))); + throw (new Exception(G::LoadTranslation("ID_CASE_NOT_PAUSED", array($app_uid)))); } - $appCacheView = new \AppCacheView(); + $appCacheView = new AppCacheView(); $arrayProcess = $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::DEL_INDEX, $del_index, \Criteria::EQUAL); + $criteria = new Criteria("workflow"); + $criteria->addSelectColumn(AppDelegationPeer::APP_UID); + $criteria->add(AppDelegationPeer::APP_UID, $app_uid, Criteria::EQUAL); + $criteria->add(AppDelegationPeer::DEL_INDEX, $del_index, Criteria::EQUAL); $criteria->add( - $criteria->getNewCriterion(\AppDelegationPeer::USR_UID, $usr_uid, \Criteria::EQUAL)->addOr( - $criteria->getNewCriterion(\AppDelegationPeer::PRO_UID, $arrayProcess, \Criteria::IN)) + $criteria->getNewCriterion(AppDelegationPeer::USR_UID, $usr_uid, Criteria::EQUAL)->addOr( + $criteria->getNewCriterion(AppDelegationPeer::PRO_UID, $arrayProcess, Criteria::IN)) ); - $rsCriteria = \AppDelegationPeer::doSelectRS($criteria); + $rsCriteria = AppDelegationPeer::doSelectRS($criteria); if (!$rsCriteria->next()) { - throw (new Exception(\G::LoadTranslation("ID_CASE_USER_INVALID_UNPAUSE_CASE", array($usr_uid)))); + throw (new Exception(G::LoadTranslation("ID_CASE_USER_INVALID_UNPAUSE_CASE", array($usr_uid)))); } - $case = new \Cases(); - $case->unpauseCase( $app_uid, $del_index, $usr_uid ); + $case = new ClassesCases(); + $case->unpauseCase($app_uid, $del_index, $usr_uid); } /** * Put execute trigger case * * @access public - * @param string $appUid, Uid for case - * @param string $triUid, Uid for trigger - * @param string $userUid, Uid for user - * @param bool|string $delIndex, Index for case + * @param string $appUid , Uid for case + * @param string $triUid , Uid for trigger + * @param string $userUid , Uid for user + * @param bool|string $delIndex , Index for case * * @return array * @throws Exception @@ -1006,7 +1052,7 @@ class Cases global $RBAC; if (!method_exists($RBAC, 'initRBAC')) { - $RBAC = RBAC::getSingleton( PATH_DATA, session_id() ); + $RBAC = RBAC::getSingleton(PATH_DATA, session_id()); $RBAC->sSystem = 'PROCESSMAKER'; } @@ -1022,8 +1068,8 @@ class Cases * Delete case * * @access public - * @param string $app_uid, Uid for case - * @param string $usr_uid, Uid user + * @param string $app_uid , Uid for case + * @param string $usr_uid , Uid user * @return array * * @author Brayan Pereyra (Cochalo) @@ -1034,24 +1080,24 @@ class Cases Validator::isString($app_uid, '$app_uid'); Validator::appUid($app_uid, '$app_uid'); - $criteria = new \Criteria(); - $criteria->addSelectColumn( \ApplicationPeer::APP_STATUS ); - $criteria->addSelectColumn( \ApplicationPeer::APP_INIT_USER ); - $criteria->add( \ApplicationPeer::APP_UID, $app_uid, \Criteria::EQUAL ); - $dataset = \ApplicationPeer::doSelectRS($criteria); - $dataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC); + $criteria = new Criteria(); + $criteria->addSelectColumn(ApplicationPeer::APP_STATUS); + $criteria->addSelectColumn(ApplicationPeer::APP_INIT_USER); + $criteria->add(ApplicationPeer::APP_UID, $app_uid, Criteria::EQUAL); + $dataset = ApplicationPeer::doSelectRS($criteria); + $dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $dataset->next(); $aRow = $dataset->getRow(); if ($aRow['APP_STATUS'] != 'DRAFT') { - throw (new Exception(\G::LoadTranslation("ID_DELETE_CASE_NO_STATUS"))); + throw (new Exception(G::LoadTranslation("ID_DELETE_CASE_NO_STATUS"))); } if ($aRow['APP_INIT_USER'] != $usr_uid) { - throw (new Exception(\G::LoadTranslation("ID_DELETE_CASE_NO_OWNER"))); + throw (new Exception(G::LoadTranslation("ID_DELETE_CASE_NO_OWNER"))); } - $case = new \Cases(); - $case->removeCase( $app_uid ); + $case = new ClassesCases(); + $case->removeCase($app_uid); } /** @@ -1070,15 +1116,16 @@ class Cases if (!$delIndex) { $delIndex = AppDelegation::getCurrentIndex($applicationUid); //Check if the next task is a subprocess SYNCHRONOUS with a thread Open - $subAppData = new \SubApplication(); + $subAppData = new SubApplication(); $caseSubprocessPending = $subAppData->isSubProcessWithCasePending($applicationUid, $delIndex); if ($caseSubprocessPending) { - throw (new Exception(\G::LoadTranslation("ID_CASE_ALREADY_DERIVATED"))); + throw (new Exception(G::LoadTranslation("ID_CASE_ALREADY_DERIVATED"))); } } $ws = new WsBase(); - $fields = $ws->derivateCase($userUid, $applicationUid, $delIndex, $bExecuteTriggersBeforeAssignment = false); + $fields = $ws->derivateCase($userUid, $applicationUid, $delIndex, + $bExecuteTriggersBeforeAssignment = false); $array = json_decode(json_encode($fields), true); if ($array ["status_code"] != 0) { throw (new Exception($array ["message"])); @@ -1104,10 +1151,10 @@ class Cases public function getAllUploadedDocumentsCriteria($sProcessUID, $sApplicationUID, $sTasKUID, $sUserUID) { - $conf = new \Configurations(); + $conf = new Configurations(); $confEnvSetting = $conf->getFormats(); - $cases = new \cases(); + $cases = new ClassesCases(); $listing = false; $oPluginRegistry = PluginRegistry::loadSingleton(); @@ -1147,43 +1194,44 @@ class Cases } } $aDelete = $cases->getAllObjectsFrom($sProcessUID, $sApplicationUID, $sTasKUID, $sUserUID, 'DELETE'); - $oAppDocument = new \AppDocument(); - $oCriteria = new \Criteria('workflow'); - $oCriteria->add(\AppDocumentPeer::APP_UID, $sApplicationUID); - $oCriteria->add(\AppDocumentPeer::APP_DOC_TYPE, array('INPUT'), \Criteria::IN); - $oCriteria->add(\AppDocumentPeer::APP_DOC_STATUS, array('ACTIVE'), \Criteria::IN); + $oAppDocument = new AppDocument(); + $oCriteria = new Criteria('workflow'); + $oCriteria->add(AppDocumentPeer::APP_UID, $sApplicationUID); + $oCriteria->add(AppDocumentPeer::APP_DOC_TYPE, array('INPUT'), Criteria::IN); + $oCriteria->add(AppDocumentPeer::APP_DOC_STATUS, array('ACTIVE'), Criteria::IN); //$oCriteria->add(AppDocumentPeer::APP_DOC_UID, $aObjectPermissions['INPUT_DOCUMENTS'], Criteria::IN); $oCriteria->add( $oCriteria->getNewCriterion( - \AppDocumentPeer::APP_DOC_UID, $aObjectPermissions['INPUT_DOCUMENTS'], \Criteria::IN)-> - addOr($oCriteria->getNewCriterion(\AppDocumentPeer::USR_UID, array($sUserUID, '-1'), \Criteria::IN)) + AppDocumentPeer::APP_DOC_UID, $aObjectPermissions['INPUT_DOCUMENTS'], Criteria::IN)-> + addOr($oCriteria->getNewCriterion(AppDocumentPeer::USR_UID, array($sUserUID, '-1'), Criteria::IN)) ); $aConditions = array(); - $aConditions[] = array(\AppDocumentPeer::APP_UID, \AppDelegationPeer::APP_UID); - $aConditions[] = array(\AppDocumentPeer::DEL_INDEX, \AppDelegationPeer::DEL_INDEX); - $oCriteria->addJoinMC($aConditions, \Criteria::LEFT_JOIN); - $oCriteria->add(\AppDelegationPeer::PRO_UID, $sProcessUID); - $oCriteria->addAscendingOrderByColumn(\AppDocumentPeer::APP_DOC_INDEX); - $oDataset = \AppDocumentPeer::doSelectRS($oCriteria); - $oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC); + $aConditions[] = array(AppDocumentPeer::APP_UID, AppDelegationPeer::APP_UID); + $aConditions[] = array(AppDocumentPeer::DEL_INDEX, AppDelegationPeer::DEL_INDEX); + $oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN); + $oCriteria->add(AppDelegationPeer::PRO_UID, $sProcessUID); + $oCriteria->addAscendingOrderByColumn(AppDocumentPeer::APP_DOC_INDEX); + $oDataset = AppDocumentPeer::doSelectRS($oCriteria); + $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $oDataset->next(); $aInputDocuments = array(); $aInputDocuments[] = array( 'APP_DOC_UID' => 'char', 'DOC_UID' => 'char', 'APP_DOC_COMMENT' => 'char', - 'APP_DOC_FILENAME' => 'char', 'APP_DOC_INDEX' => 'integer' + 'APP_DOC_FILENAME' => 'char', + 'APP_DOC_INDEX' => 'integer' ); - $oUser = new \Users(); + $oUser = new ModelUsers(); while ($aRow = $oDataset->getRow()) { - $oCriteria2 = new \Criteria('workflow'); - $oCriteria2->add(\AppDelegationPeer::APP_UID, $sApplicationUID); - $oCriteria2->add(\AppDelegationPeer::DEL_INDEX, $aRow['DEL_INDEX']); - $oDataset2 = \AppDelegationPeer::doSelectRS($oCriteria2); - $oDataset2->setFetchmode(\ResultSet::FETCHMODE_ASSOC); + $oCriteria2 = new Criteria('workflow'); + $oCriteria2->add(AppDelegationPeer::APP_UID, $sApplicationUID); + $oCriteria2->add(AppDelegationPeer::DEL_INDEX, $aRow['DEL_INDEX']); + $oDataset2 = AppDelegationPeer::doSelectRS($oCriteria2); + $oDataset2->setFetchmode(ResultSet::FETCHMODE_ASSOC); $oDataset2->next(); $aRow2 = $oDataset2->getRow(); - $oTask = new \Task(); + $oTask = new ModelTask(); if ($oTask->taskExists($aRow2['TAS_UID'])) { $aTask = $oTask->load($aRow2['TAS_UID']); } else { @@ -1196,7 +1244,8 @@ class Cases try { $aAux1 = $oUser->load($aAux['USR_UID']); - $sUser = $conf->usersNameFormatBySetParameters($confEnvSetting["format"], $aAux1["USR_USERNAME"], $aAux1["USR_FIRSTNAME"], $aAux1["USR_LASTNAME"]); + $sUser = $conf->usersNameFormatBySetParameters($confEnvSetting["format"], $aAux1["USR_USERNAME"], + $aAux1["USR_FIRSTNAME"], $aAux1["USR_LASTNAME"]); } catch (Exception $oException) { $sUser = '***'; } @@ -1220,17 +1269,17 @@ class Cases $aFields['TITLE'] = $aFields['APP_DOC_COMMENT']; } //$aFields['POSITION'] = $_SESSION['STEP_POSITION']; - $aFields['CONFIRM'] = \G::LoadTranslation('ID_CONFIRM_DELETE_ELEMENT'); + $aFields['CONFIRM'] = G::LoadTranslation('ID_CONFIRM_DELETE_ELEMENT'); if (in_array($aRow['APP_DOC_UID'], $aDelete['INPUT_DOCUMENTS'])) { - $aFields['ID_DELETE'] = \G::LoadTranslation('ID_DELETE'); + $aFields['ID_DELETE'] = G::LoadTranslation('ID_DELETE'); } - $aFields['DOWNLOAD_LABEL'] = \G::LoadTranslation('ID_DOWNLOAD'); + $aFields['DOWNLOAD_LABEL'] = G::LoadTranslation('ID_DOWNLOAD'); $aFields['DOWNLOAD_LINK'] = "cases/cases_ShowDocument?a=" . $aRow['APP_DOC_UID'] . "&v=" . $aRow['DOC_VERSION']; $aFields['DOC_VERSION'] = $aRow['DOC_VERSION']; if (is_array($listing)) { foreach ($listing as $folderitem) { if ($folderitem->filename == $aRow['APP_DOC_UID']) { - $aFields['DOWNLOAD_LABEL'] = \G::LoadTranslation('ID_GET_EXTERNAL_FILE'); + $aFields['DOWNLOAD_LABEL'] = G::LoadTranslation('ID_GET_EXTERNAL_FILE'); $aFields['DOWNLOAD_LINK'] = $folderitem->downloadScript; continue; } @@ -1242,34 +1291,34 @@ class Cases } $oDataset->next(); } - $oAppDocument = new \AppDocument(); - $oCriteria = new \Criteria('workflow'); - $oCriteria->add(\AppDocumentPeer::APP_UID, $sApplicationUID); - $oCriteria->add(\AppDocumentPeer::APP_DOC_TYPE, array('ATTACHED'), \Criteria::IN); - $oCriteria->add(\AppDocumentPeer::APP_DOC_STATUS, array('ACTIVE'), \Criteria::IN); + $oAppDocument = new AppDocument(); + $oCriteria = new Criteria('workflow'); + $oCriteria->add(AppDocumentPeer::APP_UID, $sApplicationUID); + $oCriteria->add(AppDocumentPeer::APP_DOC_TYPE, array('ATTACHED'), Criteria::IN); + $oCriteria->add(AppDocumentPeer::APP_DOC_STATUS, array('ACTIVE'), Criteria::IN); $oCriteria->add( $oCriteria->getNewCriterion( - \AppDocumentPeer::APP_DOC_UID, $aObjectPermissions['INPUT_DOCUMENTS'], \Criteria::IN + AppDocumentPeer::APP_DOC_UID, $aObjectPermissions['INPUT_DOCUMENTS'], Criteria::IN )-> - addOr($oCriteria->getNewCriterion(\AppDocumentPeer::USR_UID, array($sUserUID, '-1'), \Criteria::IN))); + addOr($oCriteria->getNewCriterion(AppDocumentPeer::USR_UID, array($sUserUID, '-1'), Criteria::IN))); $aConditions = array(); - $aConditions[] = array(\AppDocumentPeer::APP_UID, \AppDelegationPeer::APP_UID); - $aConditions[] = array(\AppDocumentPeer::DEL_INDEX, \AppDelegationPeer::DEL_INDEX); - $oCriteria->addJoinMC($aConditions, \Criteria::LEFT_JOIN); - $oCriteria->add(\AppDelegationPeer::PRO_UID, $sProcessUID); - $oCriteria->addAscendingOrderByColumn(\AppDocumentPeer::APP_DOC_INDEX); - $oDataset = \AppDocumentPeer::doSelectRS($oCriteria); - $oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC); + $aConditions[] = array(AppDocumentPeer::APP_UID, AppDelegationPeer::APP_UID); + $aConditions[] = array(AppDocumentPeer::DEL_INDEX, AppDelegationPeer::DEL_INDEX); + $oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN); + $oCriteria->add(AppDelegationPeer::PRO_UID, $sProcessUID); + $oCriteria->addAscendingOrderByColumn(AppDocumentPeer::APP_DOC_INDEX); + $oDataset = AppDocumentPeer::doSelectRS($oCriteria); + $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $oDataset->next(); while ($aRow = $oDataset->getRow()) { - $oCriteria2 = new \Criteria('workflow'); - $oCriteria2->add(\AppDelegationPeer::APP_UID, $sApplicationUID); - $oCriteria2->add(\AppDelegationPeer::DEL_INDEX, $aRow['DEL_INDEX']); - $oDataset2 = \AppDelegationPeer::doSelectRS($oCriteria2); - $oDataset2->setFetchmode(\ResultSet::FETCHMODE_ASSOC); + $oCriteria2 = new Criteria('workflow'); + $oCriteria2->add(AppDelegationPeer::APP_UID, $sApplicationUID); + $oCriteria2->add(AppDelegationPeer::DEL_INDEX, $aRow['DEL_INDEX']); + $oDataset2 = AppDelegationPeer::doSelectRS($oCriteria2); + $oDataset2->setFetchmode(ResultSet::FETCHMODE_ASSOC); $oDataset2->next(); $aRow2 = $oDataset2->getRow(); - $oTask = new \Task(); + $oTask = new ModelTask(); if ($oTask->taskExists($aRow2['TAS_UID'])) { $aTask = $oTask->load($aRow2['TAS_UID']); } else { @@ -1280,7 +1329,8 @@ class Cases try { $aAux1 = $oUser->load($aAux['USR_UID']); - $sUser = $conf->usersNameFormatBySetParameters($confEnvSetting["format"], $aAux1["USR_USERNAME"], $aAux1["USR_FIRSTNAME"], $aAux1["USR_LASTNAME"]); + $sUser = $conf->usersNameFormatBySetParameters($confEnvSetting["format"], $aAux1["USR_USERNAME"], + $aAux1["USR_FIRSTNAME"], $aAux1["USR_LASTNAME"]); } catch (Exception $oException) { $sUser = '***'; } @@ -1315,26 +1365,27 @@ class Cases $oDataset->next(); } // Get input documents added/modified by a supervisor - Begin - $oAppDocument = new \AppDocument(); - $oCriteria = new \Criteria('workflow'); - $oCriteria->add(\AppDocumentPeer::APP_UID, $sApplicationUID); - $oCriteria->add(\AppDocumentPeer::APP_DOC_TYPE, array('INPUT'), \Criteria::IN); - $oCriteria->add(\AppDocumentPeer::APP_DOC_STATUS, array('ACTIVE'), \Criteria::IN); - $oCriteria->add(\AppDocumentPeer::DEL_INDEX, 100000); - $oCriteria->addJoin(\AppDocumentPeer::APP_UID, \ApplicationPeer::APP_UID, \Criteria::LEFT_JOIN); - $oCriteria->add(\ApplicationPeer::PRO_UID, $sProcessUID); - $oCriteria->addAscendingOrderByColumn(\AppDocumentPeer::APP_DOC_INDEX); - $oDataset = \AppDocumentPeer::doSelectRS($oCriteria); - $oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC); + $oAppDocument = new AppDocument(); + $oCriteria = new Criteria('workflow'); + $oCriteria->add(AppDocumentPeer::APP_UID, $sApplicationUID); + $oCriteria->add(AppDocumentPeer::APP_DOC_TYPE, array('INPUT'), Criteria::IN); + $oCriteria->add(AppDocumentPeer::APP_DOC_STATUS, array('ACTIVE'), Criteria::IN); + $oCriteria->add(AppDocumentPeer::DEL_INDEX, 100000); + $oCriteria->addJoin(AppDocumentPeer::APP_UID, ApplicationPeer::APP_UID, Criteria::LEFT_JOIN); + $oCriteria->add(ApplicationPeer::PRO_UID, $sProcessUID); + $oCriteria->addAscendingOrderByColumn(AppDocumentPeer::APP_DOC_INDEX); + $oDataset = AppDocumentPeer::doSelectRS($oCriteria); + $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $oDataset->next(); - $oUser = new \Users(); + $oUser = new ModelUsers(); while ($aRow = $oDataset->getRow()) { $aTask = array('TAS_TITLE' => '[ ' . G::LoadTranslation('ID_SUPERVISOR') . ' ]'); $aAux = $oAppDocument->load($aRow['APP_DOC_UID'], $aRow['DOC_VERSION']); $lastVersion = $oAppDocument->getLastAppDocVersion($aRow['APP_DOC_UID'], $sApplicationUID); try { $aAux1 = $oUser->load($aAux['USR_UID']); - $sUser = $conf->usersNameFormatBySetParameters($confEnvSetting["format"], $aAux1["USR_USERNAME"], $aAux1["USR_FIRSTNAME"], $aAux1["USR_LASTNAME"]); + $sUser = $conf->usersNameFormatBySetParameters($confEnvSetting["format"], $aAux1["USR_USERNAME"], + $aAux1["USR_FIRSTNAME"], $aAux1["USR_LASTNAME"]); } catch (Exception $oException) { $sUser = '***'; } @@ -1355,17 +1406,17 @@ class Cases $aFields['TITLE'] = $aFields['APP_DOC_COMMENT']; } //$aFields['POSITION'] = $_SESSION['STEP_POSITION']; - $aFields['CONFIRM'] = \G::LoadTranslation('ID_CONFIRM_DELETE_ELEMENT'); + $aFields['CONFIRM'] = G::LoadTranslation('ID_CONFIRM_DELETE_ELEMENT'); if (in_array($aRow['APP_DOC_UID'], $aDelete['INPUT_DOCUMENTS'])) { - $aFields['ID_DELETE'] = \G::LoadTranslation('ID_DELETE'); + $aFields['ID_DELETE'] = G::LoadTranslation('ID_DELETE'); } - $aFields['DOWNLOAD_LABEL'] = \G::LoadTranslation('ID_DOWNLOAD'); + $aFields['DOWNLOAD_LABEL'] = G::LoadTranslation('ID_DOWNLOAD'); $aFields['DOWNLOAD_LINK'] = "cases_ShowDocument?a=" . $aRow['APP_DOC_UID'] . "&v=" . $aRow['DOC_VERSION']; $aFields['DOC_VERSION'] = $aRow['DOC_VERSION']; if (is_array($listing)) { foreach ($listing as $folderitem) { if ($folderitem->filename == $aRow['APP_DOC_UID']) { - $aFields['DOWNLOAD_LABEL'] = \G::LoadTranslation('ID_GET_EXTERNAL_FILE'); + $aFields['DOWNLOAD_LABEL'] = G::LoadTranslation('ID_GET_EXTERNAL_FILE'); $aFields['DOWNLOAD_LINK'] = $folderitem->downloadScript; continue; } @@ -1382,9 +1433,10 @@ class Cases global $_DBArray; $_DBArray['inputDocuments'] = $aInputDocuments; - $oCriteria = new \Criteria('dbarray'); + $oCriteria = new Criteria('dbarray'); $oCriteria->setDBArrayTable('inputDocuments'); $oCriteria->addDescendingOrderByColumn('CREATE_DATE'); + return $oCriteria; } @@ -1401,10 +1453,10 @@ class Cases public function getAllGeneratedDocumentsCriteria($sProcessUID, $sApplicationUID, $sTasKUID, $sUserUID) { - $conf = new \Configurations(); + $conf = new Configurations(); $confEnvSetting = $conf->getFormats(); - $cases = new \cases(); + $cases = new ClassesCases(); $listing = false; $oPluginRegistry = PluginRegistry::loadSingleton(); @@ -1416,7 +1468,11 @@ class Cases } $aObjectPermissions = $cases->getAllObjects($sProcessUID, $sApplicationUID, $sTasKUID, $sUserUID); if (!is_array($aObjectPermissions)) { - $aObjectPermissions = array('DYNAFORMS' => array(-1),'INPUT_DOCUMENTS' => array(-1),'OUTPUT_DOCUMENTS' => array(-1)); + $aObjectPermissions = array( + 'DYNAFORMS' => array(-1), + 'INPUT_DOCUMENTS' => array(-1), + 'OUTPUT_DOCUMENTS' => array(-1) + ); } if (!isset($aObjectPermissions['DYNAFORMS'])) { $aObjectPermissions['DYNAFORMS'] = array(-1); @@ -1440,24 +1496,25 @@ class Cases } } $aDelete = $cases->getAllObjectsFrom($sProcessUID, $sApplicationUID, $sTasKUID, $sUserUID, 'DELETE'); - $oAppDocument = new \AppDocument(); - $oCriteria = new \Criteria('workflow'); - $oCriteria->add(\AppDocumentPeer::APP_UID, $sApplicationUID); - $oCriteria->add(\AppDocumentPeer::APP_DOC_TYPE, 'OUTPUT'); - $oCriteria->add(\AppDocumentPeer::APP_DOC_STATUS, array('ACTIVE'), \Criteria::IN); + $oAppDocument = new AppDocument(); + $oCriteria = new Criteria('workflow'); + $oCriteria->add(AppDocumentPeer::APP_UID, $sApplicationUID); + $oCriteria->add(AppDocumentPeer::APP_DOC_TYPE, 'OUTPUT'); + $oCriteria->add(AppDocumentPeer::APP_DOC_STATUS, array('ACTIVE'), Criteria::IN); //$oCriteria->add(AppDocumentPeer::APP_DOC_UID, $aObjectPermissions['OUTPUT_DOCUMENTS'], Criteria::IN); $oCriteria->add( $oCriteria->getNewCriterion( - \AppDocumentPeer::APP_DOC_UID, $aObjectPermissions['OUTPUT_DOCUMENTS'], \Criteria::IN)->addOr($oCriteria->getNewCriterion(\AppDocumentPeer::USR_UID, $sUserUID, \Criteria::EQUAL)) + AppDocumentPeer::APP_DOC_UID, $aObjectPermissions['OUTPUT_DOCUMENTS'], + Criteria::IN)->addOr($oCriteria->getNewCriterion(AppDocumentPeer::USR_UID, $sUserUID, Criteria::EQUAL)) ); $aConditions = array(); - $aConditions[] = array(\AppDocumentPeer::APP_UID, \AppDelegationPeer::APP_UID); - $aConditions[] = array(\AppDocumentPeer::DEL_INDEX, \AppDelegationPeer::DEL_INDEX); - $oCriteria->addJoinMC($aConditions, \Criteria::LEFT_JOIN); - $oCriteria->add(\AppDelegationPeer::PRO_UID, $sProcessUID); - $oCriteria->addAscendingOrderByColumn(\AppDocumentPeer::APP_DOC_INDEX); - $oDataset = \AppDocumentPeer::doSelectRS($oCriteria); - $oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC); + $aConditions[] = array(AppDocumentPeer::APP_UID, AppDelegationPeer::APP_UID); + $aConditions[] = array(AppDocumentPeer::DEL_INDEX, AppDelegationPeer::DEL_INDEX); + $oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN); + $oCriteria->add(AppDelegationPeer::PRO_UID, $sProcessUID); + $oCriteria->addAscendingOrderByColumn(AppDocumentPeer::APP_DOC_INDEX); + $oDataset = AppDocumentPeer::doSelectRS($oCriteria); + $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $oDataset->next(); $aOutputDocuments = array(); $aOutputDocuments[] = array( @@ -1467,16 +1524,16 @@ class Cases 'APP_DOC_FILENAME' => 'char', 'APP_DOC_INDEX' => 'integer' ); - $oUser = new \Users(); + $oUser = new ModelUsers(); while ($aRow = $oDataset->getRow()) { - $oCriteria2 = new \Criteria('workflow'); - $oCriteria2->add(\AppDelegationPeer::APP_UID, $sApplicationUID); - $oCriteria2->add(\AppDelegationPeer::DEL_INDEX, $aRow['DEL_INDEX']); - $oDataset2 = \AppDelegationPeer::doSelectRS($oCriteria2); - $oDataset2->setFetchmode(\ResultSet::FETCHMODE_ASSOC); + $oCriteria2 = new Criteria('workflow'); + $oCriteria2->add(AppDelegationPeer::APP_UID, $sApplicationUID); + $oCriteria2->add(AppDelegationPeer::DEL_INDEX, $aRow['DEL_INDEX']); + $oDataset2 = AppDelegationPeer::doSelectRS($oCriteria2); + $oDataset2->setFetchmode(ResultSet::FETCHMODE_ASSOC); $oDataset2->next(); $aRow2 = $oDataset2->getRow(); - $oTask = new \Task(); + $oTask = new ModelTask(); if ($oTask->taskExists($aRow2['TAS_UID'])) { $aTask = $oTask->load($aRow2['TAS_UID']); } else { @@ -1502,7 +1559,7 @@ class Cases if (is_array($listing)) { foreach ($listing as $folderitem) { if (($folderitem->filename == $aRow['APP_DOC_UID']) && ($folderitem->type == "PDF")) { - $filePdfLabel = \G::LoadTranslation('ID_GET_EXTERNAL_FILE') . " .pdf"; + $filePdfLabel = G::LoadTranslation('ID_GET_EXTERNAL_FILE') . " .pdf"; $filePdf = $folderitem->downloadScript; continue; } @@ -1518,7 +1575,7 @@ class Cases if (is_array($listing)) { foreach ($listing as $folderitem) { if (($folderitem->filename == $aRow['APP_DOC_UID']) && ($folderitem->type == "DOC")) { - $fileDocLabel = \G::LoadTranslation('ID_GET_EXTERNAL_FILE') . " .doc"; + $fileDocLabel = G::LoadTranslation('ID_GET_EXTERNAL_FILE') . " .doc"; $fileDoc = $folderitem->downloadScript; continue; } @@ -1545,7 +1602,7 @@ class Cases if (is_array($listing)) { foreach ($listing as $folderitem) { if (($folderitem->filename == $aRow['APP_DOC_UID']) && ($folderitem->type == "PDF")) { - $filePdfLabel = \G::LoadTranslation('ID_GET_EXTERNAL_FILE') . " .pdf"; + $filePdfLabel = G::LoadTranslation('ID_GET_EXTERNAL_FILE') . " .pdf"; $filePdf = $folderitem->downloadScript; continue; } @@ -1555,7 +1612,8 @@ class Cases } try { $aAux1 = $oUser->load($aAux['USR_UID']); - $sUser = $conf->usersNameFormatBySetParameters($confEnvSetting["format"], $aAux1["USR_USERNAME"], $aAux1["USR_FIRSTNAME"], $aAux1["USR_LASTNAME"]); + $sUser = $conf->usersNameFormatBySetParameters($confEnvSetting["format"], $aAux1["USR_USERNAME"], + $aAux1["USR_FIRSTNAME"], $aAux1["USR_LASTNAME"]); } catch (Exception $oException) { $sUser = '(USER DELETED)'; } @@ -1596,10 +1654,10 @@ class Cases $aFields['TITLE'] = $aFields['APP_DOC_COMMENT']; } //$aFields['POSITION'] = $_SESSION['STEP_POSITION']; - $aFields['CONFIRM'] = \G::LoadTranslation('ID_CONFIRM_DELETE_ELEMENT'); + $aFields['CONFIRM'] = G::LoadTranslation('ID_CONFIRM_DELETE_ELEMENT'); if (in_array($aRow['APP_DOC_UID'], $aObjectPermissions['OUTPUT_DOCUMENTS'])) { if (in_array($aRow['APP_DOC_UID'], $aDelete['OUTPUT_DOCUMENTS'])) { - $aFields['ID_DELETE'] = \G::LoadTranslation('ID_DELETE'); + $aFields['ID_DELETE'] = G::LoadTranslation('ID_DELETE'); } } $aOutputDocuments[] = $aFields; @@ -1609,9 +1667,10 @@ class Cases global $_DBArray; $_DBArray['outputDocuments'] = $aOutputDocuments; - $oCriteria = new \Criteria('dbarray'); + $oCriteria = new Criteria('dbarray'); $oCriteria->setDBArrayTable('outputDocuments'); $oCriteria->addDescendingOrderByColumn('CREATE_DATE'); + return $oCriteria; } @@ -1644,12 +1703,14 @@ class Cases } } } else { - $caseVariableAux = $this->__getFieldsAndValuesByDynaFormAndAppData($field, $appData, $caseVariable); + $caseVariableAux = $this->__getFieldsAndValuesByDynaFormAndAppData($field, $appData, + $caseVariable); $caseVariable = array_merge($caseVariable, $caseVariableAux); } } } } + return $caseVariable; } catch (Exception $e) { throw $e; @@ -1660,22 +1721,28 @@ class Cases * Get Case Variables * * @access public - * @param string $app_uid, Uid for case - * @param string $usr_uid, Uid for user - * @param string $dynaFormUid, Uid for dynaform + * @param string $app_uid , Uid for case + * @param string $usr_uid , Uid for user + * @param string $dynaFormUid , Uid for dynaform * @return array * * @author Brayan Pereyra (Cochalo) * @copyright Colosa - Bolivia */ - public function getCaseVariables($app_uid, $usr_uid, $dynaFormUid = null, $pro_uid = null, $act_uid = null, $app_index = null) - { + public function getCaseVariables( + $app_uid, + $usr_uid, + $dynaFormUid = null, + $pro_uid = null, + $act_uid = null, + $app_index = null + ) { Validator::isString($app_uid, '$app_uid'); Validator::appUid($app_uid, '$app_uid'); Validator::isString($usr_uid, '$usr_uid'); Validator::usrUid($usr_uid, '$usr_uid'); - $case = new \Cases(); + $case = new ClassesCases(); $fields = $case->loadCase($app_uid); $arrayCaseVariable = []; @@ -1686,15 +1753,15 @@ class Cases $data["CURRENT_DYNAFORM"] = $dynaFormUid; $pmDynaForm = new PmDynaform($data); $arrayDynaFormData = $pmDynaForm->getDynaform(); - $arrayDynContent = \G::json_decode($arrayDynaFormData['DYN_CONTENT']); + $arrayDynContent = G::json_decode($arrayDynaFormData['DYN_CONTENT']); $pmDynaForm->jsonr($arrayDynContent); - $arrayDynContent = \G::json_decode(\G::json_encode($arrayDynContent), true); + $arrayDynContent = G::json_decode(G::json_encode($arrayDynContent), true); $arrayAppData = $fields['APP_DATA']; $arrayCaseVariable = $this->__getFieldsAndValuesByDynaFormAndAppData( - $arrayDynContent['items'][0], $arrayAppData, $arrayCaseVariable + $arrayDynContent['items'][0], $arrayAppData, $arrayCaseVariable ); } else { $arrayCaseVariable = $fields['APP_DATA']; @@ -1702,20 +1769,20 @@ class Cases //Get historyDate for Dynaform if (!is_null($pro_uid) && !is_null($act_uid) && !is_null($app_index)) { - $oCriteriaAppHistory = new \Criteria("workflow"); - $oCriteriaAppHistory->addSelectColumn(\AppHistoryPeer::HISTORY_DATE); - $oCriteriaAppHistory->add(\AppHistoryPeer::APP_UID, $app_uid, \Criteria::EQUAL); - $oCriteriaAppHistory->add(\AppHistoryPeer::DEL_INDEX, $app_index, \Criteria::EQUAL); - $oCriteriaAppHistory->add(\AppHistoryPeer::PRO_UID, $pro_uid, \Criteria::EQUAL); - $oCriteriaAppHistory->add(\AppHistoryPeer::TAS_UID, $act_uid, \Criteria::EQUAL); - $oCriteriaAppHistory->add(\AppHistoryPeer::USR_UID, $usr_uid, \Criteria::EQUAL); + $oCriteriaAppHistory = new Criteria("workflow"); + $oCriteriaAppHistory->addSelectColumn(AppHistoryPeer::HISTORY_DATE); + $oCriteriaAppHistory->add(AppHistoryPeer::APP_UID, $app_uid, Criteria::EQUAL); + $oCriteriaAppHistory->add(AppHistoryPeer::DEL_INDEX, $app_index, Criteria::EQUAL); + $oCriteriaAppHistory->add(AppHistoryPeer::PRO_UID, $pro_uid, Criteria::EQUAL); + $oCriteriaAppHistory->add(AppHistoryPeer::TAS_UID, $act_uid, Criteria::EQUAL); + $oCriteriaAppHistory->add(AppHistoryPeer::USR_UID, $usr_uid, Criteria::EQUAL); if (!is_null($dynaFormUid)) { - $oCriteriaAppHistory->add(\AppHistoryPeer::DYN_UID, $dynaFormUid, \Criteria::EQUAL); + $oCriteriaAppHistory->add(AppHistoryPeer::DYN_UID, $dynaFormUid, Criteria::EQUAL); } $oCriteriaAppHistory->addDescendingOrderByColumn('HISTORY_DATE'); $oCriteriaAppHistory->setLimit(1); - $oDataset = \AppDocumentPeer::doSelectRS($oCriteriaAppHistory); - $oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC); + $oDataset = AppDocumentPeer::doSelectRS($oCriteriaAppHistory); + $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $oDataset->next(); if ($aRow = $oDataset->getRow()) { $dateHistory['SYS_VAR_UPDATE_DATE'] = $aRow['HISTORY_DATE']; @@ -1724,6 +1791,7 @@ class Cases } $arrayCaseVariable = array_merge($arrayCaseVariable, $dateHistory); } + return $arrayCaseVariable; } @@ -1731,16 +1799,16 @@ class Cases * 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 $del_index, Index for case - * @param string $usr_uid, Uid for user + * @param string $app_uid , Uid for case + * @param array $app_data , Data for case variables + * @param string $dyn_uid , Uid for dynaform + * @param string $del_index , Index for case + * @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 ,$del_index = 0) + public function setCaseVariables($app_uid, $app_data, $dyn_uid = null, $usr_uid, $del_index = 0) { Validator::isString($app_uid, '$app_uid'); Validator::appUid($app_uid, '$app_uid'); @@ -1751,27 +1819,27 @@ class Cases $arrayResult = $this->getStatusInfo($app_uid); if ($arrayResult["APP_STATUS"] == "CANCELLED") { - throw new Exception(\G::LoadTranslation("ID_CASE_CANCELLED", array($app_uid))); + 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))); + throw new Exception(G::LoadTranslation("ID_CASE_IS_COMPLETED", array($app_uid))); } - $appCacheView = new \AppCacheView(); + $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 = 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)) + $criteria->getNewCriterion(AppDelegationPeer::USR_UID, $usr_uid, Criteria::EQUAL)->addOr( + $criteria->getNewCriterion(AppDelegationPeer::PRO_UID, $isProcessSupervisor, Criteria::IN)) ); - $rsCriteria = \AppDelegationPeer::doSelectRS($criteria); + $rsCriteria = AppDelegationPeer::doSelectRS($criteria); if (!$rsCriteria->next()) { - throw (new Exception(\G::LoadTranslation("ID_NO_PERMISSION_NO_PARTICIPATED", array($usr_uid)))); + throw (new Exception(G::LoadTranslation("ID_NO_PERMISSION_NO_PARTICIPATED", array($usr_uid)))); } $_SESSION['APPLICATION'] = $app_uid; @@ -1787,7 +1855,7 @@ class Cases unset($app_data['__VARIABLE_DOCUMENT_DELETE__']); } - $case = new \Cases(); + $case = new ClassesCases(); $fields = $case->loadCase($app_uid, $del_index); $_POST['form'] = $app_data; @@ -1795,7 +1863,7 @@ class Cases $oDynaform = \DynaformPeer::retrieveByPK($dyn_uid); if ($oDynaform->getDynVersion() < 2) { - $oForm = new \Form ( $fields['PRO_UID'] . "/" . $dyn_uid, PATH_DYNAFORM ); + $oForm = new \Form ($fields['PRO_UID'] . "/" . $dyn_uid, PATH_DYNAFORM); $oForm->validatePost(); } } @@ -1824,7 +1892,7 @@ class Cases * Get Case Notes * * @access public - * @param string $app_uid, Uid for case + * @param string $app_uid , Uid for case * @return array * * @author Brayan Pereyra (Cochalo) @@ -1839,33 +1907,33 @@ class Cases Validator::isArray($data_get, '$data_get'); Validator::isArray($data_get, '$data_get'); - $start = isset( $data_get["start"] ) ? $data_get["start"] : "0"; - $limit = isset( $data_get["limit"] ) ? $data_get["limit"] : ""; - $sort = isset( $data_get["sort"] ) ? $data_get["sort"] : "APP_NOTES.NOTE_DATE"; - $dir = isset( $data_get["dir"] ) ? $data_get["dir"] : "DESC"; - $user = isset( $data_get["user"] ) ? $data_get["user"] : ""; - $dateFrom = (!empty( $data_get["dateFrom"] )) ? substr( $data_get["dateFrom"], 0, 10 ) : ""; - $dateTo = (!empty( $data_get["dateTo"] )) ? substr( $data_get["dateTo"], 0, 10 ) : ""; - $search = isset( $data_get["search"] ) ? $data_get["search"] : ""; - $paged = isset( $data_get["paged"] ) ? $data_get["paged"] : true; + $start = isset($data_get["start"]) ? $data_get["start"] : "0"; + $limit = isset($data_get["limit"]) ? $data_get["limit"] : ""; + $sort = isset($data_get["sort"]) ? $data_get["sort"] : "APP_NOTES.NOTE_DATE"; + $dir = isset($data_get["dir"]) ? $data_get["dir"] : "DESC"; + $user = isset($data_get["user"]) ? $data_get["user"] : ""; + $dateFrom = (!empty($data_get["dateFrom"])) ? substr($data_get["dateFrom"], 0, 10) : ""; + $dateTo = (!empty($data_get["dateTo"])) ? substr($data_get["dateTo"], 0, 10) : ""; + $search = isset($data_get["search"]) ? $data_get["search"] : ""; + $paged = isset($data_get["paged"]) ? $data_get["paged"] : true; - $case = new \Cases(); + $case = new ClassesCases(); $caseLoad = $case->loadCase($app_uid); - $pro_uid = $caseLoad['PRO_UID']; - $tas_uid = AppDelegation::getCurrentTask($app_uid); - $respView = $case->getAllObjectsFrom( $pro_uid, $app_uid, $tas_uid, $usr_uid, 'VIEW' ); - $respBlock = $case->getAllObjectsFrom( $pro_uid, $app_uid, $tas_uid, $usr_uid, 'BLOCK' ); + $pro_uid = $caseLoad['PRO_UID']; + $tas_uid = AppDelegation::getCurrentTask($app_uid); + $respView = $case->getAllObjectsFrom($pro_uid, $app_uid, $tas_uid, $usr_uid, 'VIEW'); + $respBlock = $case->getAllObjectsFrom($pro_uid, $app_uid, $tas_uid, $usr_uid, 'BLOCK'); if ($respView['CASES_NOTES'] == 0 && $respBlock['CASES_NOTES'] == 0) { - throw (new Exception(\G::LoadTranslation("ID_CASES_NOTES_NO_PERMISSIONS"))); + throw (new Exception(G::LoadTranslation("ID_CASES_NOTES_NO_PERMISSIONS"))); } if ($sort != 'APP_NOTE.NOTE_DATE') { $sort = G::toUpper($sort); - $columnsAppCacheView = \AppNotesPeer::getFieldNames(\BasePeer::TYPE_FIELDNAME); + $columnsAppCacheView = AppNotesPeer::getFieldNames(BasePeer::TYPE_FIELDNAME); if (!(in_array($sort, $columnsAppCacheView))) { $sort = 'APP_NOTES.NOTE_DATE'; } else { - $sort = 'APP_NOTES.'.$sort; + $sort = 'APP_NOTES.' . $sort; } } if ((int)$start == 1 || (int)$start == 0) { @@ -1917,6 +1985,7 @@ class Cases $con++; } } + return $response; } @@ -1924,8 +1993,8 @@ class Cases * Save new case note * * @access public - * @param string $app_uid, Uid for case - * @param array $app_data, Data for case variables + * @param string $app_uid , Uid for case + * @param array $app_data , Data for case variables * * @author Brayan Pereyra (Cochalo) * @copyright Colosa - Bolivia @@ -1940,19 +2009,19 @@ class Cases Validator::isString($note_content, '$note_content'); if (strlen($note_content) > 500) { - throw (new Exception(\G::LoadTranslation("ID_INVALID_MAX_PERMITTED", array($note_content,'500')))); + throw (new Exception(G::LoadTranslation("ID_INVALID_MAX_PERMITTED", array($note_content, '500')))); } Validator::isBoolean($send_mail, '$send_mail'); - $case = new \Cases(); + $case = new ClassesCases(); $caseLoad = $case->loadCase($app_uid); - $pro_uid = $caseLoad['PRO_UID']; - $tas_uid = AppDelegation::getCurrentTask($app_uid); - $respView = $case->getAllObjectsFrom( $pro_uid, $app_uid, $tas_uid, $usr_uid, 'VIEW' ); - $respBlock = $case->getAllObjectsFrom( $pro_uid, $app_uid, $tas_uid, $usr_uid, 'BLOCK' ); + $pro_uid = $caseLoad['PRO_UID']; + $tas_uid = AppDelegation::getCurrentTask($app_uid); + $respView = $case->getAllObjectsFrom($pro_uid, $app_uid, $tas_uid, $usr_uid, 'VIEW'); + $respBlock = $case->getAllObjectsFrom($pro_uid, $app_uid, $tas_uid, $usr_uid, 'BLOCK'); if ($respView['CASES_NOTES'] == 0 && $respBlock['CASES_NOTES'] == 0) { - throw (new Exception(\G::LoadTranslation("ID_CASES_NOTES_NO_PERMISSIONS"))); + throw (new Exception(G::LoadTranslation("ID_CASES_NOTES_NO_PERMISSIONS"))); } $note_content = addslashes($note_content); @@ -1971,17 +2040,17 @@ class Cases { try { return array( - $this->getFieldNameByFormatFieldName("TAS_UID") => $record["TAS_UID"], - $this->getFieldNameByFormatFieldName("TAS_TITLE") => $record["TAS_TITLE"] . "", + $this->getFieldNameByFormatFieldName("TAS_UID") => $record["TAS_UID"], + $this->getFieldNameByFormatFieldName("TAS_TITLE") => $record["TAS_TITLE"] . "", $this->getFieldNameByFormatFieldName("TAS_DESCRIPTION") => $record["TAS_DESCRIPTION"] . "", - $this->getFieldNameByFormatFieldName("TAS_START") => ($record["TAS_START"] == "TRUE")? 1 : 0, - $this->getFieldNameByFormatFieldName("TAS_TYPE") => $record["TAS_TYPE"], - $this->getFieldNameByFormatFieldName("TAS_DERIVATION") => $record["TAS_DERIVATION"], + $this->getFieldNameByFormatFieldName("TAS_START") => ($record["TAS_START"] == "TRUE") ? 1 : 0, + $this->getFieldNameByFormatFieldName("TAS_TYPE") => $record["TAS_TYPE"], + $this->getFieldNameByFormatFieldName("TAS_DERIVATION") => $record["TAS_DERIVATION"], $this->getFieldNameByFormatFieldName("TAS_ASSIGN_TYPE") => $record["TAS_ASSIGN_TYPE"], - $this->getFieldNameByFormatFieldName("USR_UID") => $record["USR_UID"] . "", - $this->getFieldNameByFormatFieldName("USR_USERNAME") => $record["USR_USERNAME"] . "", - $this->getFieldNameByFormatFieldName("USR_FIRSTNAME") => $record["USR_FIRSTNAME"] . "", - $this->getFieldNameByFormatFieldName("USR_LASTNAME") => $record["USR_LASTNAME"] . "" + $this->getFieldNameByFormatFieldName("USR_UID") => $record["USR_UID"] . "", + $this->getFieldNameByFormatFieldName("USR_USERNAME") => $record["USR_USERNAME"] . "", + $this->getFieldNameByFormatFieldName("USR_FIRSTNAME") => $record["USR_FIRSTNAME"] . "", + $this->getFieldNameByFormatFieldName("USR_LASTNAME") => $record["USR_LASTNAME"] . "" ); } catch (Exception $e) { throw $e; @@ -2008,7 +2077,7 @@ class Cases //Set variables $process = new \Process(); $application = new \Application(); - $conf = new \Configurations(); + $conf = new Configurations(); $arrayApplicationData = $application->Load($applicationUid); $processUid = $arrayApplicationData["PRO_UID"]; @@ -2019,28 +2088,28 @@ class Cases //Get data //SQL - $delimiter = \DBAdapter::getStringDelimiter(); + $delimiter = DBAdapter::getStringDelimiter(); - $criteria = new \Criteria("workflow"); + $criteria = new Criteria("workflow"); - $criteria->addSelectColumn(\TaskPeer::TAS_UID); - $criteria->addSelectColumn(\TaskPeer::TAS_TITLE); - $criteria->addSelectColumn(\TaskPeer::TAS_DESCRIPTION); - $criteria->addSelectColumn(\TaskPeer::TAS_START); - $criteria->addSelectColumn(\TaskPeer::TAS_TYPE); - $criteria->addSelectColumn(\TaskPeer::TAS_DERIVATION); - $criteria->addSelectColumn(\TaskPeer::TAS_ASSIGN_TYPE); - $criteria->addSelectColumn(\UsersPeer::USR_UID); - $criteria->addSelectColumn(\UsersPeer::USR_USERNAME); - $criteria->addSelectColumn(\UsersPeer::USR_FIRSTNAME); - $criteria->addSelectColumn(\UsersPeer::USR_LASTNAME); + $criteria->addSelectColumn(TaskPeer::TAS_UID); + $criteria->addSelectColumn(TaskPeer::TAS_TITLE); + $criteria->addSelectColumn(TaskPeer::TAS_DESCRIPTION); + $criteria->addSelectColumn(TaskPeer::TAS_START); + $criteria->addSelectColumn(TaskPeer::TAS_TYPE); + $criteria->addSelectColumn(TaskPeer::TAS_DERIVATION); + $criteria->addSelectColumn(TaskPeer::TAS_ASSIGN_TYPE); + $criteria->addSelectColumn(UsersPeer::USR_UID); + $criteria->addSelectColumn(UsersPeer::USR_USERNAME); + $criteria->addSelectColumn(UsersPeer::USR_FIRSTNAME); + $criteria->addSelectColumn(UsersPeer::USR_LASTNAME); - $criteria->addJoin(\TaskPeer::TAS_LAST_ASSIGNED, \UsersPeer::USR_UID, \Criteria::LEFT_JOIN); + $criteria->addJoin(TaskPeer::TAS_LAST_ASSIGNED, UsersPeer::USR_UID, Criteria::LEFT_JOIN); - $criteria->add(\TaskPeer::PRO_UID, $processUid, \Criteria::EQUAL); + $criteria->add(TaskPeer::PRO_UID, $processUid, Criteria::EQUAL); - $rsCriteria = \TaskPeer::doSelectRS($criteria); - $rsCriteria->setFetchmode(\ResultSet::FETCHMODE_ASSOC); + $rsCriteria = TaskPeer::doSelectRS($criteria); + $rsCriteria->setFetchmode(ResultSet::FETCHMODE_ASSOC); while ($rsCriteria->next()) { $row = $rsCriteria->getRow(); @@ -2049,23 +2118,23 @@ class Cases if ($row["TAS_TYPE"] == "NORMAL") { if (($row["TAS_TITLE"] . "" == "")) { //There is no Label in Current SYS_LANG language so try to find in English - by default - $task = new \Task(); + $task = new ModelTask(); $task->setTasUid($row["TAS_UID"]); $row["TAS_TITLE"] = $task->getTasTitle(); } } else { - $criteria2 = new \Criteria("workflow"); + $criteria2 = new Criteria("workflow"); - $criteria2->addSelectColumn(\SubProcessPeer::PRO_UID); - $criteria2->addSelectColumn(\TaskPeer::TAS_TITLE); - $criteria2->addSelectColumn(\TaskPeer::TAS_DESCRIPTION); - $criteria2->addJoin(\SubProcessPeer::TAS_PARENT, \TaskPeer::TAS_UID, \Criteria::LEFT_JOIN); - $criteria2->add(\SubProcessPeer::PRO_PARENT, $processUid); - $criteria2->add(\SubProcessPeer::TAS_PARENT, $row["TAS_UID"]); + $criteria2->addSelectColumn(SubProcessPeer::PRO_UID); + $criteria2->addSelectColumn(TaskPeer::TAS_TITLE); + $criteria2->addSelectColumn(TaskPeer::TAS_DESCRIPTION); + $criteria2->addJoin(SubProcessPeer::TAS_PARENT, TaskPeer::TAS_UID, Criteria::LEFT_JOIN); + $criteria2->add(SubProcessPeer::PRO_PARENT, $processUid); + $criteria2->add(SubProcessPeer::TAS_PARENT, $row["TAS_UID"]); - $rsCriteria2 = \SubProcessPeer::doSelectRS($criteria2); - $rsCriteria2->setFetchmode(\ResultSet::FETCHMODE_ASSOC); + $rsCriteria2 = SubProcessPeer::doSelectRS($criteria2); + $rsCriteria2->setFetchmode(ResultSet::FETCHMODE_ASSOC); $rsCriteria2->next(); @@ -2081,18 +2150,18 @@ class Cases $routeType = ""; $arrayRoute = array(); - $criteria2 = new \Criteria("workflow"); + $criteria2 = new Criteria("workflow"); - $criteria2->addAsColumn("ROU_NUMBER", \RoutePeer::ROU_CASE); - $criteria2->addSelectColumn(\RoutePeer::ROU_TYPE); - $criteria2->addSelectColumn(\RoutePeer::ROU_CONDITION); - $criteria2->addAsColumn("TAS_UID", \RoutePeer::ROU_NEXT_TASK); - $criteria2->add(\RoutePeer::PRO_UID, $processUid, \Criteria::EQUAL); - $criteria2->add(\RoutePeer::TAS_UID, $row["TAS_UID"], \Criteria::EQUAL); + $criteria2->addAsColumn("ROU_NUMBER", RoutePeer::ROU_CASE); + $criteria2->addSelectColumn(RoutePeer::ROU_TYPE); + $criteria2->addSelectColumn(RoutePeer::ROU_CONDITION); + $criteria2->addAsColumn("TAS_UID", RoutePeer::ROU_NEXT_TASK); + $criteria2->add(RoutePeer::PRO_UID, $processUid, Criteria::EQUAL); + $criteria2->add(RoutePeer::TAS_UID, $row["TAS_UID"], Criteria::EQUAL); $criteria2->addAscendingOrderByColumn("ROU_NUMBER"); - $rsCriteria2 = \RoutePeer::doSelectRS($criteria2); - $rsCriteria2->setFetchmode(\ResultSet::FETCHMODE_ASSOC); + $rsCriteria2 = RoutePeer::doSelectRS($criteria2); + $rsCriteria2->setFetchmode(ResultSet::FETCHMODE_ASSOC); while ($rsCriteria2->next()) { $row2 = $rsCriteria2->getRow(); @@ -2100,42 +2169,51 @@ class Cases $routeType = $row2["ROU_TYPE"]; $arrayRoute[] = array( - $this->getFieldNameByFormatFieldName("ROU_NUMBER") => (int)($row2["ROU_NUMBER"]), + $this->getFieldNameByFormatFieldName("ROU_NUMBER") => (int)($row2["ROU_NUMBER"]), $this->getFieldNameByFormatFieldName("ROU_CONDITION") => $row2["ROU_CONDITION"] . "", - $this->getFieldNameByFormatFieldName("TAS_UID") => $row2["TAS_UID"] + $this->getFieldNameByFormatFieldName("TAS_UID") => $row2["TAS_UID"] ); } //Delegations $arrayAppDelegation = array(); - $criteria2 = new \Criteria("workflow"); + $criteria2 = new Criteria("workflow"); - $criteria2->addSelectColumn(\AppDelegationPeer::DEL_INDEX); - $criteria2->addSelectColumn(\AppDelegationPeer::DEL_INIT_DATE); - $criteria2->addSelectColumn(\AppDelegationPeer::DEL_TASK_DUE_DATE); - $criteria2->addSelectColumn(\AppDelegationPeer::DEL_FINISH_DATE); - $criteria2->addSelectColumn(\UsersPeer::USR_UID); - $criteria2->addSelectColumn(\UsersPeer::USR_USERNAME); - $criteria2->addSelectColumn(\UsersPeer::USR_FIRSTNAME); - $criteria2->addSelectColumn(\UsersPeer::USR_LASTNAME); + $criteria2->addSelectColumn(AppDelegationPeer::DEL_INDEX); + $criteria2->addSelectColumn(AppDelegationPeer::DEL_INIT_DATE); + $criteria2->addSelectColumn(AppDelegationPeer::DEL_TASK_DUE_DATE); + $criteria2->addSelectColumn(AppDelegationPeer::DEL_FINISH_DATE); + $criteria2->addSelectColumn(UsersPeer::USR_UID); + $criteria2->addSelectColumn(UsersPeer::USR_USERNAME); + $criteria2->addSelectColumn(UsersPeer::USR_FIRSTNAME); + $criteria2->addSelectColumn(UsersPeer::USR_LASTNAME); - $criteria2->addJoin(\AppDelegationPeer::USR_UID, \UsersPeer::USR_UID, \Criteria::LEFT_JOIN); + $criteria2->addJoin(AppDelegationPeer::USR_UID, UsersPeer::USR_UID, Criteria::LEFT_JOIN); - $criteria2->add(\AppDelegationPeer::APP_UID, $applicationUid, \Criteria::EQUAL); - $criteria2->add(\AppDelegationPeer::TAS_UID, $row["TAS_UID"], \Criteria::EQUAL); - $criteria2->addAscendingOrderByColumn(\AppDelegationPeer::DEL_INDEX); + $criteria2->add(AppDelegationPeer::APP_UID, $applicationUid, Criteria::EQUAL); + $criteria2->add(AppDelegationPeer::TAS_UID, $row["TAS_UID"], Criteria::EQUAL); + $criteria2->addAscendingOrderByColumn(AppDelegationPeer::DEL_INDEX); - $rsCriteria2 = \AppDelegationPeer::doSelectRS($criteria2); - $rsCriteria2->setFetchmode(\ResultSet::FETCHMODE_ASSOC); + $rsCriteria2 = AppDelegationPeer::doSelectRS($criteria2); + $rsCriteria2->setFetchmode(ResultSet::FETCHMODE_ASSOC); while ($rsCriteria2->next()) { $row2 = $rsCriteria2->getRow(); $arrayAppDelegationDate = array( - "DEL_INIT_DATE" => array("date" => $row2["DEL_INIT_DATE"], "dateFormated" => \G::LoadTranslation("ID_CASE_NOT_YET_STARTED")), - "DEL_TASK_DUE_DATE" => array("date" => $row2["DEL_TASK_DUE_DATE"], "dateFormated" => \G::LoadTranslation("ID_CASE_NOT_YET_STARTED")), - "DEL_FINISH_DATE" => array("date" => $row2["DEL_FINISH_DATE"], "dateFormated" => \G::LoadTranslation("ID_NOT_FINISHED")) + "DEL_INIT_DATE" => array( + "date" => $row2["DEL_INIT_DATE"], + "dateFormated" => G::LoadTranslation("ID_CASE_NOT_YET_STARTED") + ), + "DEL_TASK_DUE_DATE" => array( + "date" => $row2["DEL_TASK_DUE_DATE"], + "dateFormated" => G::LoadTranslation("ID_CASE_NOT_YET_STARTED") + ), + "DEL_FINISH_DATE" => array( + "date" => $row2["DEL_FINISH_DATE"], + "dateFormated" => G::LoadTranslation("ID_NOT_FINISHED") + ) ); foreach ($arrayAppDelegationDate as $key => $value) { @@ -2147,7 +2225,7 @@ class Cases } } - $appDelegationDuration = \G::LoadTranslation("ID_NOT_FINISHED"); + $appDelegationDuration = G::LoadTranslation("ID_NOT_FINISHED"); if (!empty($row2["DEL_FINISH_DATE"]) && !empty($row2["DEL_INIT_DATE"])) { $t = strtotime($row2["DEL_FINISH_DATE"]) - strtotime($row2["DEL_INIT_DATE"]); @@ -2159,21 +2237,21 @@ class Cases $h = (int)($h); $m = (int)($m); - $appDelegationDuration = $h . " " . (($h == 1)? \G::LoadTranslation("ID_HOUR") : \G::LoadTranslation("ID_HOURS")); - $appDelegationDuration = $appDelegationDuration . " " . $m . " " . (($m == 1)? \G::LoadTranslation("ID_MINUTE") : \G::LoadTranslation("ID_MINUTES")); - $appDelegationDuration = $appDelegationDuration . " " . $s . " " . (($s == 1)? \G::LoadTranslation("ID_SECOND") : \G::LoadTranslation("ID_SECONDS")); + $appDelegationDuration = $h . " " . (($h == 1) ? G::LoadTranslation("ID_HOUR") : G::LoadTranslation("ID_HOURS")); + $appDelegationDuration = $appDelegationDuration . " " . $m . " " . (($m == 1) ? G::LoadTranslation("ID_MINUTE") : G::LoadTranslation("ID_MINUTES")); + $appDelegationDuration = $appDelegationDuration . " " . $s . " " . (($s == 1) ? G::LoadTranslation("ID_SECOND") : G::LoadTranslation("ID_SECONDS")); } $arrayAppDelegation[] = array( - $this->getFieldNameByFormatFieldName("DEL_INDEX") => (int)($row2["DEL_INDEX"]), - $this->getFieldNameByFormatFieldName("DEL_INIT_DATE") => $arrayAppDelegationDate["DEL_INIT_DATE"]["dateFormated"], + $this->getFieldNameByFormatFieldName("DEL_INDEX") => (int)($row2["DEL_INDEX"]), + $this->getFieldNameByFormatFieldName("DEL_INIT_DATE") => $arrayAppDelegationDate["DEL_INIT_DATE"]["dateFormated"], $this->getFieldNameByFormatFieldName("DEL_TASK_DUE_DATE") => $arrayAppDelegationDate["DEL_TASK_DUE_DATE"]["dateFormated"], - $this->getFieldNameByFormatFieldName("DEL_FINISH_DATE") => $arrayAppDelegationDate["DEL_FINISH_DATE"]["dateFormated"], - $this->getFieldNameByFormatFieldName("DEL_DURATION") => $appDelegationDuration, - $this->getFieldNameByFormatFieldName("USR_UID") => $row2["USR_UID"], - $this->getFieldNameByFormatFieldName("USR_USERNAME") => $row2["USR_USERNAME"] . "", - $this->getFieldNameByFormatFieldName("USR_FIRSTNAME") => $row2["USR_FIRSTNAME"] . "", - $this->getFieldNameByFormatFieldName("USR_LASTNAME") => $row2["USR_LASTNAME"] . "" + $this->getFieldNameByFormatFieldName("DEL_FINISH_DATE") => $arrayAppDelegationDate["DEL_FINISH_DATE"]["dateFormated"], + $this->getFieldNameByFormatFieldName("DEL_DURATION") => $appDelegationDuration, + $this->getFieldNameByFormatFieldName("USR_UID") => $row2["USR_UID"], + $this->getFieldNameByFormatFieldName("USR_USERNAME") => $row2["USR_USERNAME"] . "", + $this->getFieldNameByFormatFieldName("USR_FIRSTNAME") => $row2["USR_FIRSTNAME"] . "", + $this->getFieldNameByFormatFieldName("USR_LASTNAME") => $row2["USR_LASTNAME"] . "" ); } @@ -2181,30 +2259,30 @@ class Cases $status = ""; //$criteria2 - $criteria2 = new \Criteria("workflow"); + $criteria2 = new Criteria("workflow"); - $criteria2->addAsColumn("CANT", "COUNT(" . \AppDelegationPeer::APP_UID . ")"); - $criteria2->addAsColumn("FINISH", "MIN(" . \AppDelegationPeer::DEL_FINISH_DATE . ")"); - $criteria2->add(\AppDelegationPeer::APP_UID, $applicationUid, \Criteria::EQUAL); - $criteria2->add(\AppDelegationPeer::TAS_UID, $row["TAS_UID"], \Criteria::EQUAL); + $criteria2->addAsColumn("CANT", "COUNT(" . AppDelegationPeer::APP_UID . ")"); + $criteria2->addAsColumn("FINISH", "MIN(" . AppDelegationPeer::DEL_FINISH_DATE . ")"); + $criteria2->add(AppDelegationPeer::APP_UID, $applicationUid, Criteria::EQUAL); + $criteria2->add(AppDelegationPeer::TAS_UID, $row["TAS_UID"], Criteria::EQUAL); - $rsCriteria2 = \AppDelegationPeer::doSelectRS($criteria2); - $rsCriteria2->setFetchmode(\ResultSet::FETCHMODE_ASSOC); + $rsCriteria2 = AppDelegationPeer::doSelectRS($criteria2); + $rsCriteria2->setFetchmode(ResultSet::FETCHMODE_ASSOC); $rsCriteria2->next(); $row2 = $rsCriteria2->getRow(); //$criteria3 - $criteria3 = new \Criteria("workflow"); + $criteria3 = new Criteria("workflow"); - $criteria3->addSelectColumn(\AppDelegationPeer::DEL_FINISH_DATE); - $criteria3->add(\AppDelegationPeer::APP_UID, $applicationUid, \Criteria::EQUAL); - $criteria3->add(\AppDelegationPeer::TAS_UID, $row["TAS_UID"], \Criteria::EQUAL); - $criteria3->add(\AppDelegationPeer::DEL_FINISH_DATE, null, \Criteria::ISNULL); + $criteria3->addSelectColumn(AppDelegationPeer::DEL_FINISH_DATE); + $criteria3->add(AppDelegationPeer::APP_UID, $applicationUid, Criteria::EQUAL); + $criteria3->add(AppDelegationPeer::TAS_UID, $row["TAS_UID"], Criteria::EQUAL); + $criteria3->add(AppDelegationPeer::DEL_FINISH_DATE, null, Criteria::ISNULL); - $rsCriteria3 = \AppDelegationPeer::doSelectRS($criteria3); - $rsCriteria3->setFetchmode(\ResultSet::FETCHMODE_ASSOC); + $rsCriteria3 = AppDelegationPeer::doSelectRS($criteria3); + $rsCriteria3->setFetchmode(ResultSet::FETCHMODE_ASSOC); $rsCriteria3->next(); @@ -2273,11 +2351,10 @@ class Cases Validator::appUid($app_uid, '$app_uid'); Validator::isInteger($del_index, '$del_index'); - $oCase = new \Cases(); + $oCase = new ClassesCases(); $aField = $oCase->loadCase($app_uid, $del_index); - $tas_uid = $aField["TAS_UID"]; + $tas_uid = $aField["TAS_UID"]; - $task = new \Tasks(); $aField["APP_DATA"] = $oCase->executeTriggers($tas_uid, $obj_type, $obj_uid, "AFTER", $aField["APP_DATA"]); $aField = $oCase->updateCase($app_uid, $aField); } @@ -2286,7 +2363,7 @@ class Cases * Get Steps evaluate * * @access public - * @param string $app_uid, Uid for case + * @param string $app_uid , Uid for case * @param int $del_index , Index for case * @return array * @@ -2298,10 +2375,10 @@ class Cases Validator::appUid($app_uid, '$app_uid'); Validator::isInteger($del_index, '$del_index'); - $oCase = new \Cases(); + $oCase = new ClassesCases(); $aCaseField = $oCase->loadCase($app_uid, $del_index); - $tas_uid = $aCaseField["TAS_UID"]; - $pro_uid = $aCaseField["PRO_UID"]; + $tas_uid = $aCaseField["TAS_UID"]; + $pro_uid = $aCaseField["PRO_UID"]; $oApplication = new Applications(); $aField = $oApplication->getSteps($app_uid, $del_index, $tas_uid, $pro_uid); @@ -2317,7 +2394,11 @@ class Cases if ($rsCriteria->next()) { $record = $rsCriteria->getRow(); - $arrayData = ['APP_STATUS' => $record['APP_STATUS'], 'DEL_INDEX' => [], 'PRO_UID' => $record['PRO_UID']]; + $arrayData = [ + 'APP_STATUS' => $record['APP_STATUS'], + 'DEL_INDEX' => [], + 'PRO_UID' => $record['PRO_UID'] + ]; $arrayData['DEL_INDEX'][] = $record['DEL_INDEX']; while ($rsCriteria->next()) { @@ -2338,8 +2419,8 @@ class Cases * Get status info Case * * @param string $applicationUid Unique id of Case - * @param int $delIndex Delegation index - * @param string $userUid Unique id of User + * @param int $delIndex Delegation index + * @param string $userUid Unique id of User * * @return array Return an array with status info Case, array empty otherwise */ @@ -2347,36 +2428,37 @@ class Cases { try { //Verify data - $this->throwExceptionIfNotExistsCase($applicationUid, $delIndex, $this->getFieldNameByFormatFieldName("APP_UID")); + $this->throwExceptionIfNotExistsCase($applicationUid, $delIndex, + $this->getFieldNameByFormatFieldName("APP_UID")); //Get data //Status is PAUSED - $delimiter = \DBAdapter::getStringDelimiter(); + $delimiter = DBAdapter::getStringDelimiter(); - $criteria = new \Criteria("workflow"); + $criteria = new Criteria("workflow"); $criteria->setDistinct(); $criteria->addSelectColumn($delimiter . 'PAUSED' . $delimiter . ' AS APP_STATUS'); - $criteria->addSelectColumn(\AppDelayPeer::APP_DEL_INDEX . " AS DEL_INDEX"); - $criteria->addSelectColumn(\AppDelayPeer::PRO_UID); + $criteria->addSelectColumn(AppDelayPeer::APP_DEL_INDEX . " AS DEL_INDEX"); + $criteria->addSelectColumn(AppDelayPeer::PRO_UID); - $criteria->add(\AppDelayPeer::APP_UID, $applicationUid, \Criteria::EQUAL); - $criteria->add(\AppDelayPeer::APP_TYPE, "PAUSE", \Criteria::EQUAL); + $criteria->add(AppDelayPeer::APP_UID, $applicationUid, Criteria::EQUAL); + $criteria->add(AppDelayPeer::APP_TYPE, "PAUSE", Criteria::EQUAL); $criteria->add( - $criteria->getNewCriterion(\AppDelayPeer::APP_DISABLE_ACTION_USER, null, \Criteria::ISNULL)->addOr( - $criteria->getNewCriterion(\AppDelayPeer::APP_DISABLE_ACTION_USER, 0, \Criteria::EQUAL)) + $criteria->getNewCriterion(AppDelayPeer::APP_DISABLE_ACTION_USER, null, Criteria::ISNULL)->addOr( + $criteria->getNewCriterion(AppDelayPeer::APP_DISABLE_ACTION_USER, 0, Criteria::EQUAL)) ); if ($delIndex != 0) { - $criteria->add(\AppDelayPeer::APP_DEL_INDEX, $delIndex, \Criteria::EQUAL); + $criteria->add(AppDelayPeer::APP_DEL_INDEX, $delIndex, Criteria::EQUAL); } if ($userUid != "") { - $criteria->add(\AppDelayPeer::APP_DELEGATION_USER, $userUid, \Criteria::EQUAL); + $criteria->add(AppDelayPeer::APP_DELEGATION_USER, $userUid, Criteria::EQUAL); } - $rsCriteria = \AppDelayPeer::doSelectRS($criteria); - $rsCriteria->setFetchmode(\ResultSet::FETCHMODE_ASSOC); + $rsCriteria = AppDelayPeer::doSelectRS($criteria); + $rsCriteria->setFetchmode(ResultSet::FETCHMODE_ASSOC); $arrayData = $this->__getStatusInfoDataByRsCriteria($rsCriteria); @@ -2386,30 +2468,30 @@ class Cases //Status is UNASSIGNED if ($userUid != '') { - $appCacheView = new \AppCacheView(); + $appCacheView = new AppCacheView(); $criteria = $appCacheView->getUnassignedListCriteria($userUid); } else { - $criteria = new \Criteria('workflow'); + $criteria = new Criteria('workflow'); - $criteria->add(\AppCacheViewPeer::DEL_FINISH_DATE, null, \Criteria::ISNULL); - $criteria->add(\AppCacheViewPeer::USR_UID, '', \Criteria::EQUAL); + $criteria->add(AppCacheViewPeer::DEL_FINISH_DATE, null, Criteria::ISNULL); + $criteria->add(AppCacheViewPeer::USR_UID, '', Criteria::EQUAL); } $criteria->setDistinct(); $criteria->clearSelectColumns(); $criteria->addSelectColumn($delimiter . 'UNASSIGNED' . $delimiter . ' AS APP_STATUS'); - $criteria->addSelectColumn(\AppCacheViewPeer::DEL_INDEX); - $criteria->addSelectColumn(\AppCacheViewPeer::PRO_UID); + $criteria->addSelectColumn(AppCacheViewPeer::DEL_INDEX); + $criteria->addSelectColumn(AppCacheViewPeer::PRO_UID); - $criteria->add(\AppCacheViewPeer::APP_UID, $applicationUid, \Criteria::EQUAL); + $criteria->add(AppCacheViewPeer::APP_UID, $applicationUid, Criteria::EQUAL); if ($delIndex != 0) { - $criteria->add(\AppCacheViewPeer::DEL_INDEX, $delIndex, \Criteria::EQUAL); + $criteria->add(AppCacheViewPeer::DEL_INDEX, $delIndex, Criteria::EQUAL); } - $rsCriteria = \AppCacheViewPeer::doSelectRS($criteria); - $rsCriteria->setFetchmode(\ResultSet::FETCHMODE_ASSOC); + $rsCriteria = AppCacheViewPeer::doSelectRS($criteria); + $rsCriteria->setFetchmode(ResultSet::FETCHMODE_ASSOC); $arrayData = $this->__getStatusInfoDataByRsCriteria($rsCriteria); @@ -2418,40 +2500,44 @@ class Cases } //Status is TO_DO, DRAFT - $criteria = new \Criteria("workflow"); + $criteria = new Criteria("workflow"); $criteria->setDistinct(); - $criteria->addSelectColumn(\ApplicationPeer::APP_STATUS); - $criteria->addSelectColumn(\ApplicationPeer::PRO_UID); - $criteria->addSelectColumn(\AppDelegationPeer::DEL_INDEX); + $criteria->addSelectColumn(ApplicationPeer::APP_STATUS); + $criteria->addSelectColumn(ApplicationPeer::PRO_UID); + $criteria->addSelectColumn(AppDelegationPeer::DEL_INDEX); $arrayCondition = array(); - $arrayCondition[] = array(\ApplicationPeer::APP_UID, \AppDelegationPeer::APP_UID, \Criteria::EQUAL); - $arrayCondition[] = array(\ApplicationPeer::APP_UID, \AppThreadPeer::APP_UID, \Criteria::EQUAL); - $arrayCondition[] = array(\ApplicationPeer::APP_UID, $delimiter . $applicationUid . $delimiter, \Criteria::EQUAL); - $criteria->addJoinMC($arrayCondition, \Criteria::LEFT_JOIN); + $arrayCondition[] = array(ApplicationPeer::APP_UID, AppDelegationPeer::APP_UID, Criteria::EQUAL); + $arrayCondition[] = array(ApplicationPeer::APP_UID, AppThreadPeer::APP_UID, Criteria::EQUAL); + $arrayCondition[] = array( + ApplicationPeer::APP_UID, + $delimiter . $applicationUid . $delimiter, + Criteria::EQUAL + ); + $criteria->addJoinMC($arrayCondition, Criteria::LEFT_JOIN); $criteria->add( - $criteria->getNewCriterion(\ApplicationPeer::APP_STATUS, "TO_DO", \Criteria::EQUAL)->addAnd( - $criteria->getNewCriterion(\AppDelegationPeer::DEL_FINISH_DATE, null, \Criteria::ISNULL))->addAnd( - $criteria->getNewCriterion(\AppDelegationPeer::DEL_THREAD_STATUS, "OPEN"))->addAnd( - $criteria->getNewCriterion(\AppThreadPeer::APP_THREAD_STATUS, "OPEN")) + $criteria->getNewCriterion(ApplicationPeer::APP_STATUS, "TO_DO", Criteria::EQUAL)->addAnd( + $criteria->getNewCriterion(AppDelegationPeer::DEL_FINISH_DATE, null, Criteria::ISNULL))->addAnd( + $criteria->getNewCriterion(AppDelegationPeer::DEL_THREAD_STATUS, "OPEN"))->addAnd( + $criteria->getNewCriterion(AppThreadPeer::APP_THREAD_STATUS, "OPEN")) )->addOr( - $criteria->getNewCriterion(\ApplicationPeer::APP_STATUS, "DRAFT", \Criteria::EQUAL)->addAnd( - $criteria->getNewCriterion(\AppDelegationPeer::DEL_THREAD_STATUS, "OPEN"))->addAnd( - $criteria->getNewCriterion(\AppThreadPeer::APP_THREAD_STATUS, "OPEN")) + $criteria->getNewCriterion(ApplicationPeer::APP_STATUS, "DRAFT", Criteria::EQUAL)->addAnd( + $criteria->getNewCriterion(AppDelegationPeer::DEL_THREAD_STATUS, "OPEN"))->addAnd( + $criteria->getNewCriterion(AppThreadPeer::APP_THREAD_STATUS, "OPEN")) ); if ($delIndex != 0) { - $criteria->add(\AppDelegationPeer::DEL_INDEX, $delIndex, \Criteria::EQUAL); + $criteria->add(AppDelegationPeer::DEL_INDEX, $delIndex, Criteria::EQUAL); } if ($userUid != "") { - $criteria->add(\AppDelegationPeer::USR_UID, $userUid, \Criteria::EQUAL); + $criteria->add(AppDelegationPeer::USR_UID, $userUid, Criteria::EQUAL); } - $rsCriteria = \ApplicationPeer::doSelectRS($criteria); - $rsCriteria->setFetchmode(\ResultSet::FETCHMODE_ASSOC); + $rsCriteria = ApplicationPeer::doSelectRS($criteria); + $rsCriteria->setFetchmode(ResultSet::FETCHMODE_ASSOC); $arrayData = $this->__getStatusInfoDataByRsCriteria($rsCriteria); @@ -2460,34 +2546,38 @@ class Cases } //Status is CANCELLED, COMPLETED - $criteria = new \Criteria("workflow"); + $criteria = new Criteria("workflow"); - $criteria->addSelectColumn(\ApplicationPeer::APP_STATUS); - $criteria->addSelectColumn(\ApplicationPeer::PRO_UID); - $criteria->addSelectColumn(\AppDelegationPeer::DEL_INDEX); + $criteria->addSelectColumn(ApplicationPeer::APP_STATUS); + $criteria->addSelectColumn(ApplicationPeer::PRO_UID); + $criteria->addSelectColumn(AppDelegationPeer::DEL_INDEX); $arrayCondition = array(); - $arrayCondition[] = array(\ApplicationPeer::APP_UID, \AppDelegationPeer::APP_UID, \Criteria::EQUAL); - $arrayCondition[] = array(\ApplicationPeer::APP_UID, $delimiter . $applicationUid . $delimiter, \Criteria::EQUAL); - $criteria->addJoinMC($arrayCondition, \Criteria::LEFT_JOIN); + $arrayCondition[] = array(ApplicationPeer::APP_UID, AppDelegationPeer::APP_UID, Criteria::EQUAL); + $arrayCondition[] = array( + ApplicationPeer::APP_UID, + $delimiter . $applicationUid . $delimiter, + Criteria::EQUAL + ); + $criteria->addJoinMC($arrayCondition, Criteria::LEFT_JOIN); if ($delIndex != 0) { - $criteria->add(\AppDelegationPeer::DEL_INDEX, $delIndex, \Criteria::EQUAL); + $criteria->add(AppDelegationPeer::DEL_INDEX, $delIndex, Criteria::EQUAL); } if ($userUid != "") { - $criteria->add(\AppDelegationPeer::USR_UID, $userUid, \Criteria::EQUAL); + $criteria->add(AppDelegationPeer::USR_UID, $userUid, Criteria::EQUAL); } $criteria2 = clone $criteria; $criteria2->setDistinct(); - $criteria2->add(\ApplicationPeer::APP_STATUS, ['CANCELLED', 'COMPLETED'], \Criteria::IN); - $criteria2->add(\AppDelegationPeer::DEL_LAST_INDEX, 1, \Criteria::EQUAL); + $criteria2->add(ApplicationPeer::APP_STATUS, ['CANCELLED', 'COMPLETED'], Criteria::IN); + $criteria2->add(AppDelegationPeer::DEL_LAST_INDEX, 1, Criteria::EQUAL); - $rsCriteria2 = \ApplicationPeer::doSelectRS($criteria2); - $rsCriteria2->setFetchmode(\ResultSet::FETCHMODE_ASSOC); + $rsCriteria2 = ApplicationPeer::doSelectRS($criteria2); + $rsCriteria2->setFetchmode(ResultSet::FETCHMODE_ASSOC); $arrayData = $this->__getStatusInfoDataByRsCriteria($rsCriteria2); @@ -2501,12 +2591,12 @@ class Cases $criteria2->setDistinct(); $criteria2->clearSelectColumns(); $criteria2->addSelectColumn($delimiter . 'PARTICIPATED' . $delimiter . ' AS APP_STATUS'); - $criteria2->addSelectColumn(\AppDelegationPeer::DEL_INDEX); - $criteria2->addSelectColumn(\ApplicationPeer::APP_UID); - $criteria2->addSelectColumn(\ApplicationPeer::PRO_UID); + $criteria2->addSelectColumn(AppDelegationPeer::DEL_INDEX); + $criteria2->addSelectColumn(ApplicationPeer::APP_UID); + $criteria2->addSelectColumn(ApplicationPeer::PRO_UID); - $rsCriteria2 = \ApplicationPeer::doSelectRS($criteria2); - $rsCriteria2->setFetchmode(\ResultSet::FETCHMODE_ASSOC); + $rsCriteria2 = ApplicationPeer::doSelectRS($criteria2); + $rsCriteria2->setFetchmode(ResultSet::FETCHMODE_ASSOC); $arrayData = $this->__getStatusInfoDataByRsCriteria($rsCriteria2); @@ -2534,7 +2624,7 @@ class Cases try { Validator::usrUid($usrUid, '$usr_uid'); - $case = new \Cases(); + $case = new ClassesCases(); $response = $case->getProcessListStartCase($usrUid, $typeView); return $response; @@ -2556,27 +2646,27 @@ class Cases try { Validator::usrUid($usrUid, '$usr_uid'); - $user = new \Users(); + $user = new ModelUsers(); $fields = $user->load($usrUid); $bookmark = empty($fields['USR_BOOKMARK_START_CASES']) ? array() : unserialize($fields['USR_BOOKMARK_START_CASES']); //Getting group id and adding the user id - $group = new \Groups(); + $group = new Groups(); $groups = $group->getActiveGroupsForAnUser($usrUid); $groups[] = $usrUid; - $c = new \Criteria(); + $c = new Criteria(); $c->clearSelectColumns(); - $c->addSelectColumn(\TaskPeer::TAS_UID); - $c->addSelectColumn(\TaskPeer::TAS_TITLE); - $c->addSelectColumn(\TaskPeer::PRO_UID); - $c->addSelectColumn(\ProcessPeer::PRO_TITLE); - $c->addJoin(\TaskPeer::PRO_UID, \ProcessPeer::PRO_UID, \Criteria::LEFT_JOIN); - $c->addJoin(\TaskPeer::TAS_UID, \TaskUserPeer::TAS_UID, \Criteria::LEFT_JOIN); - $c->add(\ProcessPeer::PRO_STATUS, 'ACTIVE'); - $c->add(\TaskPeer::TAS_START, 'TRUE'); - $c->add(\TaskUserPeer::USR_UID, $groups, \Criteria::IN); - $c->add(\TaskPeer::TAS_UID, $bookmark, \Criteria::IN); + $c->addSelectColumn(TaskPeer::TAS_UID); + $c->addSelectColumn(TaskPeer::TAS_TITLE); + $c->addSelectColumn(TaskPeer::PRO_UID); + $c->addSelectColumn(ProcessPeer::PRO_TITLE); + $c->addJoin(TaskPeer::PRO_UID, ProcessPeer::PRO_UID, Criteria::LEFT_JOIN); + $c->addJoin(TaskPeer::TAS_UID, TaskUserPeer::TAS_UID, Criteria::LEFT_JOIN); + $c->add(ProcessPeer::PRO_STATUS, 'ACTIVE'); + $c->add(TaskPeer::TAS_START, 'TRUE'); + $c->add(TaskUserPeer::USR_UID, $groups, Criteria::IN); + $c->add(TaskPeer::TAS_UID, $bookmark, Criteria::IN); if ($typeView == 'category') { $c->addAsColumn('PRO_CATEGORY', 'PCS.PRO_CATEGORY'); @@ -2584,16 +2674,16 @@ class Cases $c->addAlias('PCS', 'PROCESS'); $c->addAlias('PCSCAT', 'PROCESS_CATEGORY'); $aConditions = array(); - $aConditions[] = array(\TaskPeer::PRO_UID, 'PCS.PRO_UID'); - $c->addJoinMC( $aConditions, \Criteria::LEFT_JOIN ); + $aConditions[] = array(TaskPeer::PRO_UID, 'PCS.PRO_UID'); + $c->addJoinMC($aConditions, Criteria::LEFT_JOIN); $aConditions = array(); $aConditions[] = array('PCS.PRO_CATEGORY', 'PCSCAT.CATEGORY_UID'); - $c->addJoinMC( $aConditions, \Criteria::LEFT_JOIN ); + $c->addJoinMC($aConditions, Criteria::LEFT_JOIN); } $c->setDistinct(); - $rs = \TaskPeer::doSelectRS($c); + $rs = TaskPeer::doSelectRS($c); - $rs->setFetchmode(\ResultSet::FETCHMODE_ASSOC); + $rs->setFetchmode(ResultSet::FETCHMODE_ASSOC); $processList = array(); while ($rs->next()) { $row = $rs->getRow(); @@ -2628,143 +2718,158 @@ class Cases /** * Get Users to reassign * - * @param string $userUid Unique id of User (User logged) - * @param string $taskUid Unique id of Task - * @param array $arrayFilterData Data of the filters - * @param string $sortField Field name to sort - * @param string $sortDir Direction of sorting (ASC, DESC) - * @param int $start Start - * @param int $limit Limit + * @param string $userUid Unique id of User (User logged) + * @param string $taskUid Unique id of Task + * @param array $arrayFilterData Data of the filters + * @param string $sortField Field name to sort + * @param string $sortDir Direction of sorting (ASC, DESC) + * @param int $start Start + * @param int $limit Limit * * @return array Return Users to reassign */ - public function getUsersToReassign($userUid, $taskUid, $arrayFilterData = null, $sortField = null, $sortDir = null, $start = null, $limit = null) - { + public function getUsersToReassign( + $userUid, + $taskUid, + $arrayFilterData = null, + $sortField = null, + $sortDir = null, + $start = null, + $limit = null + ) { try { $arrayUser = []; $numRecTotal = 0; //Set variables - $task = \TaskPeer::retrieveByPK($taskUid); + $task = TaskPeer::retrieveByPK($taskUid); $processUid = $task->getProUid(); - $user = new \ProcessMaker\BusinessModel\User(); - $task = new \Tasks(); - $group = new \Groups(); + $user = new BmUser(); + $task = new ClassesTasks(); + $group = new Groups(); //Set variables $filterName = 'filter'; if (!is_null($arrayFilterData) && is_array($arrayFilterData) && isset($arrayFilterData['filter'])) { $arrayAux = [ - '' => 'filter', - 'LEFT' => 'lfilter', + '' => 'filter', + 'LEFT' => 'lfilter', 'RIGHT' => 'rfilter' ]; - $filterName = $arrayAux[(isset($arrayFilterData['filterOption']))? $arrayFilterData['filterOption'] : '']; + $filterName = $arrayAux[(isset($arrayFilterData['filterOption'])) ? $arrayFilterData['filterOption'] : '']; } //Get data if (!is_null($limit) && $limit . '' == '0') { //Return return [ - 'total' => $numRecTotal, - 'start' => (int)((!is_null($start))? $start : 0), - 'limit' => (int)((!is_null($limit))? $limit : 0), - $filterName => (!is_null($arrayFilterData) && is_array($arrayFilterData) && isset($arrayFilterData['filter']))? $arrayFilterData['filter'] : '', - 'data' => $arrayUser + 'total' => $numRecTotal, + 'start' => (int)((!is_null($start)) ? $start : 0), + 'limit' => (int)((!is_null($limit)) ? $limit : 0), + $filterName => (!is_null($arrayFilterData) && is_array($arrayFilterData) && isset($arrayFilterData['filter'])) ? $arrayFilterData['filter'] : '', + 'data' => $arrayUser ]; } //Set variables - $processSupervisor = new \ProcessMaker\BusinessModel\ProcessSupervisor(); + $processSupervisor = new BmProcessSupervisor(); - $arrayResult = $processSupervisor->getProcessSupervisors($processUid, 'ASSIGNED', null, null, null, 'group'); + $arrayResult = $processSupervisor->getProcessSupervisors($processUid, 'ASSIGNED', null, null, null, + 'group'); $arrayGroupUid = array_merge( - array_map(function ($value) { return $value['GRP_UID']; }, $task->getGroupsOfTask($taskUid, 1)), //Groups - array_map(function ($value) { return $value['GRP_UID']; }, $task->getGroupsOfTask($taskUid, 2)), //AdHoc Groups - array_map(function ($value) { return $value['grp_uid']; }, $arrayResult['data']) //ProcessSupervisor Groups + array_map(function ($value) { + return $value['GRP_UID']; + }, $task->getGroupsOfTask($taskUid, 1)), //Groups + array_map(function ($value) { + return $value['GRP_UID']; + }, $task->getGroupsOfTask($taskUid, 2)), //AdHoc Groups + array_map(function ($value) { + return $value['grp_uid']; + }, $arrayResult['data']) //ProcessSupervisor Groups ); $sqlTaskUser = ' - SELECT ' . \TaskUserPeer::USR_UID . ' - FROM ' . \TaskUserPeer::TABLE_NAME . ' - WHERE ' . \TaskUserPeer::TAS_UID . ' = \'%s\' AND - ' . \TaskUserPeer::TU_TYPE . ' IN (1, 2) AND - ' . \TaskUserPeer::TU_RELATION . ' = 1 + SELECT ' . TaskUserPeer::USR_UID . ' + FROM ' . TaskUserPeer::TABLE_NAME . ' + WHERE ' . TaskUserPeer::TAS_UID . ' = \'%s\' AND + ' . TaskUserPeer::TU_TYPE . ' IN (1, 2) AND + ' . TaskUserPeer::TU_RELATION . ' = 1 '; $sqlGroupUser = ' - SELECT ' . \GroupUserPeer::USR_UID . ' - FROM ' . \GroupUserPeer::TABLE_NAME . ' - WHERE ' . \GroupUserPeer::GRP_UID . ' IN (%s) + SELECT ' . GroupUserPeer::USR_UID . ' + FROM ' . GroupUserPeer::TABLE_NAME . ' + WHERE ' . GroupUserPeer::GRP_UID . ' IN (%s) '; $sqlProcessSupervisor = ' - SELECT ' . \ProcessUserPeer::USR_UID . ' - FROM ' . \ProcessUserPeer::TABLE_NAME . ' - WHERE ' . \ProcessUserPeer::PRO_UID . ' = \'%s\' AND - ' . \ProcessUserPeer::PU_TYPE . ' = \'%s\' + SELECT ' . ProcessUserPeer::USR_UID . ' + FROM ' . ProcessUserPeer::TABLE_NAME . ' + WHERE ' . ProcessUserPeer::PRO_UID . ' = \'%s\' AND + ' . ProcessUserPeer::PU_TYPE . ' = \'%s\' '; $sqlUserToReassign = '(' . sprintf($sqlTaskUser, $taskUid) . ')'; if (!empty($arrayGroupUid)) { - $sqlUserToReassign .= ' UNION (' . sprintf($sqlGroupUser, '\'' . implode('\', \'', $arrayGroupUid) . '\'') . ')'; + $sqlUserToReassign .= ' UNION (' . sprintf($sqlGroupUser, + '\'' . implode('\', \'', $arrayGroupUid) . '\'') . ')'; } $sqlUserToReassign .= ' UNION (' . sprintf($sqlProcessSupervisor, $processUid, 'SUPERVISOR') . ')'; //Query - $criteria = new \Criteria('workflow'); + $criteria = new Criteria('workflow'); - $criteria->addSelectColumn(\UsersPeer::USR_UID); - $criteria->addSelectColumn(\UsersPeer::USR_USERNAME); - $criteria->addSelectColumn(\UsersPeer::USR_FIRSTNAME); - $criteria->addSelectColumn(\UsersPeer::USR_LASTNAME); + $criteria->addSelectColumn(UsersPeer::USR_UID); + $criteria->addSelectColumn(UsersPeer::USR_USERNAME); + $criteria->addSelectColumn(UsersPeer::USR_FIRSTNAME); + $criteria->addSelectColumn(UsersPeer::USR_LASTNAME); $criteria->addAlias('USER_TO_REASSIGN', '(' . $sqlUserToReassign . ')'); - $criteria->addJoin(\UsersPeer::USR_UID, 'USER_TO_REASSIGN.USR_UID', \Criteria::INNER_JOIN); + $criteria->addJoin(UsersPeer::USR_UID, 'USER_TO_REASSIGN.USR_UID', Criteria::INNER_JOIN); if (!is_null($arrayFilterData) && is_array($arrayFilterData) && isset($arrayFilterData['filter']) && trim($arrayFilterData['filter']) != '') { $arraySearch = [ - '' => '%' . $arrayFilterData['filter'] . '%', - 'LEFT' => $arrayFilterData['filter'] . '%', + '' => '%' . $arrayFilterData['filter'] . '%', + 'LEFT' => $arrayFilterData['filter'] . '%', 'RIGHT' => '%' . $arrayFilterData['filter'] ]; - $search = $arraySearch[(isset($arrayFilterData['filterOption']))? $arrayFilterData['filterOption'] : '']; + $search = $arraySearch[(isset($arrayFilterData['filterOption'])) ? $arrayFilterData['filterOption'] : '']; $criteria->add( - $criteria->getNewCriterion(\UsersPeer::USR_USERNAME, $search, \Criteria::LIKE)->addOr( - $criteria->getNewCriterion(\UsersPeer::USR_FIRSTNAME, $search, \Criteria::LIKE))->addOr( - $criteria->getNewCriterion(\UsersPeer::USR_LASTNAME, $search, \Criteria::LIKE)) + $criteria->getNewCriterion(UsersPeer::USR_USERNAME, $search, Criteria::LIKE)->addOr( + $criteria->getNewCriterion(UsersPeer::USR_FIRSTNAME, $search, Criteria::LIKE))->addOr( + $criteria->getNewCriterion(UsersPeer::USR_LASTNAME, $search, Criteria::LIKE)) ); } - $criteria->add(\UsersPeer::USR_STATUS, 'ACTIVE', \Criteria::EQUAL); + $criteria->add(UsersPeer::USR_STATUS, 'ACTIVE', Criteria::EQUAL); if (!$user->checkPermission($userUid, 'PM_SUPERVISOR')) { - $criteria->add(\UsersPeer::USR_UID, $userUid, \Criteria::NOT_EQUAL); + $criteria->add(UsersPeer::USR_UID, $userUid, Criteria::NOT_EQUAL); } //Number records total - $numRecTotal = \UsersPeer::doCount($criteria); + $numRecTotal = UsersPeer::doCount($criteria); //Query - $conf = new \Configurations(); - $sortFieldDefault = \UsersPeer::TABLE_NAME . '.' . $conf->userNameFormatGetFirstFieldByUsersTable(); + $conf = new Configurations(); + $sortFieldDefault = UsersPeer::TABLE_NAME . '.' . $conf->userNameFormatGetFirstFieldByUsersTable(); if (!is_null($sortField) && trim($sortField) != '') { $sortField = strtoupper($sortField); - if (in_array(\UsersPeer::TABLE_NAME . '.' . $sortField, $criteria->getSelectColumns())) { - $sortField = \UsersPeer::TABLE_NAME . '.' . $sortField; + if (in_array(UsersPeer::TABLE_NAME . '.' . $sortField, $criteria->getSelectColumns())) { + $sortField = UsersPeer::TABLE_NAME . '.' . $sortField; } else { $sortField = $sortFieldDefault; } @@ -2786,8 +2891,8 @@ class Cases $criteria->setLimit((int)($limit)); } - $rsCriteria = \UsersPeer::doSelectRS($criteria); - $rsCriteria->setFetchmode(\ResultSet::FETCHMODE_ASSOC); + $rsCriteria = UsersPeer::doSelectRS($criteria); + $rsCriteria->setFetchmode(ResultSet::FETCHMODE_ASSOC); while ($rsCriteria->next()) { $row = $rsCriteria->getRow(); @@ -2797,11 +2902,11 @@ class Cases //Return return [ - 'total' => $numRecTotal, - 'start' => (int)((!is_null($start))? $start : 0), - 'limit' => (int)((!is_null($limit))? $limit : 0), - $filterName => (!is_null($arrayFilterData) && is_array($arrayFilterData) && isset($arrayFilterData['filter']))? $arrayFilterData['filter'] : '', - 'data' => $arrayUser + 'total' => $numRecTotal, + 'start' => (int)((!is_null($start)) ? $start : 0), + 'limit' => (int)((!is_null($limit)) ? $limit : 0), + $filterName => (!is_null($arrayFilterData) && is_array($arrayFilterData) && isset($arrayFilterData['filter'])) ? $arrayFilterData['filter'] : '', + 'data' => $arrayUser ]; } catch (Exception $e) { throw $e; @@ -2828,12 +2933,13 @@ class Cases } $dataResponse = $data; $casesToReassign = $data['cases']; - $oCases = new \Cases(); + $oCases = new ClassesCases(); foreach ($casesToReassign as $key => $val) { - $appDelegation = \AppDelegationPeer::retrieveByPK($val['APP_UID'], $val['DEL_INDEX']); + $appDelegation = AppDelegationPeer::retrieveByPK($val['APP_UID'], $val['DEL_INDEX']); $existDelegation = $this->validateReassignData($appDelegation, $val, $data, 'DELEGATION_NOT_EXISTS'); if ($existDelegation) { - $existDelegation = $this->validateReassignData($appDelegation, $val, $data, 'USER_NOT_ASSIGNED_TO_TASK'); + $existDelegation = $this->validateReassignData($appDelegation, $val, $data, + 'USER_NOT_ASSIGNED_TO_TASK'); if ($existDelegation) { $usrUid = ''; if (array_key_exists('USR_UID', $val)) { @@ -2842,16 +2948,19 @@ class Cases } } if ($usrUid == '') { - $fields = $appDelegation->toArray(\BasePeer::TYPE_FIELDNAME); + $fields = $appDelegation->toArray(BasePeer::TYPE_FIELDNAME); $usrUid = $fields['USR_UID']; } //Will be not able reassign a case when is paused - $flagPaused = $this->validateReassignData($appDelegation, $val, $data, 'ID_REASSIGNMENT_PAUSED_ERROR'); + $flagPaused = $this->validateReassignData($appDelegation, $val, $data, + 'ID_REASSIGNMENT_PAUSED_ERROR'); //Current users of OPEN DEL_INDEX thread - $flagSameUser = $this->validateReassignData($appDelegation, $val, $data, 'REASSIGNMENT_TO_THE_SAME_USER'); + $flagSameUser = $this->validateReassignData($appDelegation, $val, $data, + 'REASSIGNMENT_TO_THE_SAME_USER'); //reassign case if ($flagPaused && $flagSameUser) { - $reassigned = $oCases->reassignCase($val['APP_UID'], $val['DEL_INDEX'], $usrUid, $data['usr_uid_target']); + $reassigned = $oCases->reassignCase($val['APP_UID'], $val['DEL_INDEX'], $usrUid, + $data['usr_uid_target']); $result = $reassigned ? 1 : 0; $this->messageResponse = [ 'APP_UID' => $val['APP_UID'], @@ -2865,6 +2974,7 @@ class Cases $dataResponse['cases'][$key] = $this->messageResponse; } unset($dataResponse['usr_uid_target']); + return G::json_encode($dataResponse); } @@ -2891,8 +3001,8 @@ class Cases } break; case 'USER_NOT_ASSIGNED_TO_TASK': - $task = new \ProcessMaker\BusinessModel\Task(); - $supervisor = new \ProcessMaker\BusinessModel\ProcessSupervisor(); + $task = new BmTask(); + $supervisor = new BmProcessSupervisor(); $taskUid = $appDelegation->getTasUid(); $flagBoolean = $task->checkUserOrGroupAssignedTask($taskUid, $data['usr_uid_target']); $flagps = $supervisor->isUserProcessSupervisor($appDelegation->getProUid(), $data['usr_uid_target']); @@ -2908,12 +3018,12 @@ class Cases } break; case 'ID_REASSIGNMENT_PAUSED_ERROR': - if (\AppDelay::isPaused($value['APP_UID'], $value['DEL_INDEX'])) { + if (AppDelay::isPaused($value['APP_UID'], $value['DEL_INDEX'])) { $this->messageResponse = [ 'APP_UID' => $value['APP_UID'], 'DEL_INDEX' => $value['DEL_INDEX'], 'RESULT' => 0, - 'STATUS' => \G::LoadTranslation('ID_REASSIGNMENT_PAUSED_ERROR') + 'STATUS' => G::LoadTranslation('ID_REASSIGNMENT_PAUSED_ERROR') ]; $return = false; } @@ -2938,12 +3048,13 @@ class Cases 'APP_UID' => $value['APP_UID'], 'DEL_INDEX' => $value['DEL_INDEX'], 'RESULT' => 0, - 'STATUS' => \G::LoadTranslation('ID_REASSIGNMENT_ERROR') + 'STATUS' => G::LoadTranslation('ID_REASSIGNMENT_ERROR') ]; $return = false; } break; } + return $return; } @@ -2957,37 +3068,36 @@ class Cases */ public function caseAlreadyRouted($app_uid, $del_index, $usr_uid = '') { - $c = new \Criteria('workflow'); - $c->add(\AppDelegationPeer::APP_UID, $app_uid); - $c->add(\AppDelegationPeer::DEL_INDEX, $del_index); + $c = new Criteria('workflow'); + $c->add(AppDelegationPeer::APP_UID, $app_uid); + $c->add(AppDelegationPeer::DEL_INDEX, $del_index); if (!empty($usr_uid)) { - $c->add(\AppDelegationPeer::USR_UID, $usr_uid); + $c->add(AppDelegationPeer::USR_UID, $usr_uid); } - $c->add(\AppDelegationPeer::DEL_FINISH_DATE, null, \Criteria::ISNULL); - return !(boolean) \AppDelegationPeer::doCount($c); + $c->add(AppDelegationPeer::DEL_FINISH_DATE, null, Criteria::ISNULL); + + return !(boolean)AppDelegationPeer::doCount($c); } public function checkUserHasPermissionsOrSupervisor($userUid, $applicationUid, $dynaformUid) { $arrayApplicationData = $this->getApplicationRecordByPk($applicationUid, [], false); //Check whether the process supervisor - $supervisor = new \ProcessMaker\BusinessModel\ProcessSupervisor(); + $supervisor = new BmProcessSupervisor(); $userAccess = $supervisor->isUserProcessSupervisor($arrayApplicationData['PRO_UID'], $userUid); if (!empty($dynaformUid)) { //Check if have objects assigned (Supervisor) - $cases = new \Cases(); - $resultDynaForm = $cases->getAllDynaformsStepsToRevise($applicationUid); - $flagSupervisors = false; - while ($resultDynaForm->next()) { - $row = $resultDynaForm->getRow(); - if ($row["STEP_UID_OBJ"] = $dynaformUid) { - $flagSupervisors = true; - break; - } - } + $flagSupervisors = $this->isSupervisorFromForm( + $userUid, + $applicationUid, + $dynaformUid, + $arrayApplicationData['PRO_UID'] + ); + //Check if have permissions VIEW - $case = new \Cases(); - $arrayAllObjectsFrom = $case->getAllObjectsFrom($arrayApplicationData['PRO_UID'], $applicationUid, '', $userUid, 'VIEW', 0); + $case = new ClassesCases(); + $arrayAllObjectsFrom = $case->getAllObjectsFrom($arrayApplicationData['PRO_UID'], $applicationUid, '', + $userUid, 'VIEW', 0); $flagPermissionsVIEW = false; if (array_key_exists('DYNAFORMS', $arrayAllObjectsFrom) && !empty($arrayAllObjectsFrom['DYNAFORMS']) @@ -2999,7 +3109,8 @@ class Cases } } //Check if have permissions BLOCK - $arrayAllObjectsFrom = $case->getAllObjectsFrom($arrayApplicationData['PRO_UID'], $applicationUid, '', $userUid, 'BLOCK', 0); + $arrayAllObjectsFrom = $case->getAllObjectsFrom($arrayApplicationData['PRO_UID'], $applicationUid, '', + $userUid, 'BLOCK', 0); $flagPermissionsBLOCK = false; if (array_key_exists('DYNAFORMS', $arrayAllObjectsFrom) && !empty($arrayAllObjectsFrom['DYNAFORMS']) @@ -3012,6 +3123,7 @@ class Cases } //check case Tracker $flagCaseTracker = $case->getAllObjectsTrackerDynaform($arrayApplicationData['PRO_UID'], $dynaformUid); + return ($flagSupervisors && $userAccess) || $flagPermissionsVIEW || $flagPermissionsBLOCK || $flagCaseTracker; } else { $arrayResult = $this->getStatusInfo($applicationUid, 0, $userUid); @@ -3019,6 +3131,7 @@ class Cases if ($arrayResult || $userAccess) { $flagParticipated = true; } + return $flagParticipated; } } @@ -3026,16 +3139,21 @@ class Cases /** * Delete MultipleFile in Case data * - * @param array $arrayApplicationData Case data - * @param string $variable1 Variable1 - * @param string $variable2 Variable2 - * @param string $type Type (NORMAL, GRID) - * @param array $arrayDocumentToDelete Document to delete + * @param array $arrayApplicationData Case data + * @param string $variable1 Variable1 + * @param string $variable2 Variable2 + * @param string $type Type (NORMAL, GRID) + * @param array $arrayDocumentToDelete Document to delete * * @return array Returns array with Case data updated */ - private function __applicationDataDeleteMultipleFile(array $arrayApplicationData, $variable1, $variable2, $type, array $arrayDocumentToDelete) - { + private function __applicationDataDeleteMultipleFile( + array $arrayApplicationData, + $variable1, + $variable2, + $type, + array $arrayDocumentToDelete + ) { if (array_key_exists($variable1, $arrayApplicationData) && is_array($arrayApplicationData[$variable1]) && !empty($arrayApplicationData[$variable1]) ) { @@ -3091,15 +3209,15 @@ class Cases /** * Delete MultipleFile * - * @param string $applicationUid Unique id of Case - * @param array $arrayVariableDocumentToDelete Variable with Documents to delete + * @param string $applicationUid Unique id of Case + * @param array $arrayVariableDocumentToDelete Variable with Documents to delete * * @return void */ public function deleteMultipleFile($applicationUid, array $arrayVariableDocumentToDelete) { - $case = new \Cases(); - $appDocument = new \AppDocument(); + $case = new ClassesCases(); + $appDocument = new AppDocument(); $arrayApplicationData = $this->getApplicationRecordByPk($applicationUid, [], false); $arrayApplicationData['APP_DATA'] = $case->unserializeData($arrayApplicationData['APP_DATA']); @@ -3166,7 +3284,7 @@ class Cases //The observations suggested by 'pull request' approver are applied (please see pull request). foreach ($arrayVariableDocumentToDelete as $key => $value) { if (isset($value['appDocUid'])) { - $appDocument->remove($value['appDocUid'], (int) (isset($value['version']) ? $value['version'] : 1)); + $appDocument->remove($value['appDocUid'], (int)(isset($value['version']) ? $value['version'] : 1)); if (is_string($arrayApplicationData['APP_DATA'][$key])) { try { $files = G::json_decode($arrayApplicationData['APP_DATA'][$key]); @@ -3177,7 +3295,8 @@ class Cases } $arrayApplicationData['APP_DATA'][$key] = G::json_encode($files); } catch (Exception $e) { - Bootstrap::registerMonolog('DeleteFile', 400, $e->getMessage(), $value, SYS_SYS, 'processmaker.log'); + Bootstrap::registerMonolog('DeleteFile', 400, $e->getMessage(), $value, SYS_SYS, + 'processmaker.log'); } } $flagDelete = true; @@ -3199,7 +3318,13 @@ class Cases * @param array $objectPermissions * @return array Returns array with all access */ - public function userAuthorization($usrUid, $proUid, $appUid, $rolesPermissions = array(), $objectPermissions = array()) { + public function userAuthorization( + $usrUid, + $proUid, + $appUid, + $rolesPermissions = array(), + $objectPermissions = array() + ) { $arrayAccess = array(); //User has participated @@ -3208,7 +3333,7 @@ class Cases $arrayAccess['participated'] = (count($aParticipated) == 0) ? false : true; //User is supervisor - $supervisor = new \ProcessMaker\BusinessModel\ProcessSupervisor(); + $supervisor = new BmProcessSupervisor(); $isSupervisor = $supervisor->isUserProcessSupervisor($proUid, $usrUid); $arrayAccess['supervisor'] = ($isSupervisor) ? true : false; @@ -3222,7 +3347,7 @@ class Cases //Object Permissions if (count($objectPermissions) > 0) { - $oCase = new \Cases(); + $oCase = new ClassesCases(); foreach ($objectPermissions as $key => $value) { $resPermission = $oCase->getAllObjectsFrom($proUid, $appUid, '', $usrUid, $value); if (isset($resPermission[$key])) { @@ -3274,13 +3399,13 @@ class Cases $result['USR_USERNAME'] = ''; global $RBAC; if (isset($RBAC) && isset($RBAC->aUserInfo)) { - $result['USER_LOGGED'] = $RBAC->aUserInfo['USER_INFO']['USR_UID']; - $result['USR_USERNAME'] = $RBAC->aUserInfo['USER_INFO']['USR_USERNAME']; + $result['USER_LOGGED'] = isset($RBAC->aUserInfo['USER_INFO']['USR_UID']) ? $RBAC->aUserInfo['USER_INFO']['USR_UID'] : ''; + $result['USR_USERNAME'] = isset($RBAC->aUserInfo['USER_INFO']['USR_USERNAME']) ? $RBAC->aUserInfo['USER_INFO']['USR_USERNAME'] : ''; } if (empty($result['USER_LOGGED'])) { $result['USER_LOGGED'] = Server::getUserId(); if (!empty($result['USER_LOGGED'])) { - $oUserLogged = new Users(); + $oUserLogged = new ModelUsers(); $oUserLogged->load($result['USER_LOGGED']); $result['USR_USERNAME'] = $oUserLogged->getUsrUsername(); } @@ -3288,6 +3413,7 @@ class Cases //the parameter dataVariable may contain additional elements $result = array_merge($dataVariable, $result); + return $result; } @@ -3304,18 +3430,19 @@ class Cases */ public function getLastParticipatedByUser($appUid, $userUid, $threadStatus = '') { - $criteria = new \Criteria('workflow'); - $criteria->addSelectColumn(\AppDelegationPeer::DEL_INDEX); - $criteria->addSelectColumn(\AppDelegationPeer::DEL_THREAD_STATUS); - $criteria->add(\AppDelegationPeer::APP_UID, $appUid, \Criteria::EQUAL); - $criteria->add(\AppDelegationPeer::USR_UID, $userUid, \Criteria::EQUAL); + $criteria = new Criteria('workflow'); + $criteria->addSelectColumn(AppDelegationPeer::DEL_INDEX); + $criteria->addSelectColumn(AppDelegationPeer::DEL_THREAD_STATUS); + $criteria->add(AppDelegationPeer::APP_UID, $appUid, Criteria::EQUAL); + $criteria->add(AppDelegationPeer::USR_UID, $userUid, Criteria::EQUAL); if (!empty($threadStatus)) { - $criteria->add(\AppDelegationPeer::DEL_THREAD_STATUS, $threadStatus, \Criteria::EQUAL); + $criteria->add(AppDelegationPeer::DEL_THREAD_STATUS, $threadStatus, Criteria::EQUAL); } - $dataSet = \AppDelegationPeer::doSelectRS($criteria); - $dataSet->setFetchmode(\ResultSet::FETCHMODE_ASSOC); + $dataSet = AppDelegationPeer::doSelectRS($criteria); + $dataSet->setFetchmode(ResultSet::FETCHMODE_ASSOC); $dataSet->next(); $row = $dataSet->getRow(); + return isset($row['DEL_INDEX']) ? $row['DEL_INDEX'] : 0; } @@ -3332,68 +3459,79 @@ class Cases */ public function getOneLastThread($appUid, $checkCaseIsPaused = false) { - $criteria = new \Criteria('workflow'); - $criteria->addSelectColumn(\AppDelegationPeer::DEL_INDEX); - $criteria->addSelectColumn(\AppDelegationPeer::DEL_THREAD_STATUS); - $criteria->add(\AppDelegationPeer::APP_UID, $appUid, \Criteria::EQUAL); - $dataSet = \AppDelegationPeer::doSelectRS($criteria); - $dataSet->setFetchmode(\ResultSet::FETCHMODE_ASSOC); + $criteria = new Criteria('workflow'); + $criteria->addSelectColumn(AppDelegationPeer::DEL_INDEX); + $criteria->addSelectColumn(AppDelegationPeer::DEL_THREAD_STATUS); + $criteria->add(AppDelegationPeer::APP_UID, $appUid, Criteria::EQUAL); + $dataSet = AppDelegationPeer::doSelectRS($criteria); + $dataSet->setFetchmode(ResultSet::FETCHMODE_ASSOC); $dataSet->next(); $row = $dataSet->getRow(); $delIndex = 0; while (is_array($row)) { $delIndex = $row['DEL_INDEX']; - if ($checkCaseIsPaused && \AppDelay::isPaused($appUid, $delIndex)) { + if ($checkCaseIsPaused && AppDelay::isPaused($appUid, $delIndex)) { return $delIndex; } $dataSet->next(); $row = $dataSet->getRow(); } + return $delIndex; } + /** * This function will be return the criteria for the search filter * * We considered in the search criteria the custom cases list, * the titles related to: caseTitle taskTitle processTitle and * the case number - * @param Criteria $criteria, must be contain the initial criteria for search - * @param string $listPeer, name of the list class - * @param string $search, the parameter for search in the table - * @param string $additionalClassName, name of the className of pmtable - * @param array $additionalColumns, columns related to the custom cases list + * @param Criteria $criteria , must be contain the initial criteria for search + * @param string $listPeer , name of the list class + * @param string $search , the parameter for search in the table + * @param string $additionalClassName , name of the className of pmtable + * @param array $additionalColumns , columns related to the custom cases list * @throws PropelException */ - public function getSearchCriteriaListCases(&$criteria, $listPeer ,$search, $additionalClassName = '', $additionalColumns = array() ) - { + public function getSearchCriteriaListCases( + &$criteria, + $listPeer, + $search, + $additionalClassName = '', + $additionalColumns = array() + ) { $oTmpCriteria = ''; //If we have additional tables configured in the custom cases list, prepare the variables for search if (count($additionalColumns) > 0) { require_once(PATH_DATA_SITE . 'classes' . PATH_SEP . $additionalClassName . '.php'); - $oNewCriteria = new \Criteria("workflow"); - $oTmpCriteria = $oNewCriteria->getNewCriterion(current($additionalColumns), "%" . $search . "%", \Criteria::LIKE); + $oNewCriteria = new Criteria("workflow"); + $oTmpCriteria = $oNewCriteria->getNewCriterion(current($additionalColumns), "%" . $search . "%", + Criteria::LIKE); //We prepare the query related to the custom cases list foreach (array_slice($additionalColumns, 1) as $value) { - $oTmpCriteria = $oNewCriteria->getNewCriterion($value, "%" . $search . "%", \Criteria::LIKE)->addOr($oTmpCriteria); + $oTmpCriteria = $oNewCriteria->getNewCriterion($value, "%" . $search . "%", + Criteria::LIKE)->addOr($oTmpCriteria); } } if (!empty($oTmpCriteria)) { $criteria->add( - $criteria->getNewCriterion($listPeer::APP_TITLE, '%' . $search . '%', \Criteria::LIKE)->addOr( - $criteria->getNewCriterion($listPeer::APP_TAS_TITLE, '%' . $search . '%', \Criteria::LIKE)->addOr( - $criteria->getNewCriterion($listPeer::APP_PRO_TITLE, '%' . $search . '%', \Criteria::LIKE)->addOr( - $criteria->getNewCriterion($listPeer::APP_NUMBER, $search, \Criteria::EQUAL)->addOr( - $oTmpCriteria - )))) + $criteria->getNewCriterion($listPeer::APP_TITLE, '%' . $search . '%', Criteria::LIKE)->addOr( + $criteria->getNewCriterion($listPeer::APP_TAS_TITLE, '%' . $search . '%', Criteria::LIKE)->addOr( + $criteria->getNewCriterion($listPeer::APP_PRO_TITLE, '%' . $search . '%', + Criteria::LIKE)->addOr( + $criteria->getNewCriterion($listPeer::APP_NUMBER, $search, Criteria::EQUAL)->addOr( + $oTmpCriteria + )))) ); } else { $criteria->add( - $criteria->getNewCriterion($listPeer::APP_TITLE, '%' . $search . '%', \Criteria::LIKE)->addOr( - $criteria->getNewCriterion($listPeer::APP_TAS_TITLE, '%' . $search . '%', \Criteria::LIKE)->addOr( - $criteria->getNewCriterion($listPeer::APP_PRO_TITLE, '%' . $search . '%', \Criteria::LIKE)->addOr( - $criteria->getNewCriterion($listPeer::APP_NUMBER, $search, \Criteria::EQUAL)))) + $criteria->getNewCriterion($listPeer::APP_TITLE, '%' . $search . '%', Criteria::LIKE)->addOr( + $criteria->getNewCriterion($listPeer::APP_TAS_TITLE, '%' . $search . '%', Criteria::LIKE)->addOr( + $criteria->getNewCriterion($listPeer::APP_PRO_TITLE, '%' . $search . '%', + Criteria::LIKE)->addOr( + $criteria->getNewCriterion($listPeer::APP_NUMBER, $search, Criteria::EQUAL)))) ); } } @@ -3402,23 +3540,29 @@ class Cases * This function get the table.column by order by the result * We can include the additional table related to the custom cases list * - * @param string $listPeer, name of the list class - * @param string $field, name of the fieldName - * @param string $sort, name of column by sort - * @param string $defaultSort, name of column by sort default - * @param string $additionalClassName, name of the className of pmTable - * @param array $additionalColumns, columns related to the custom cases list with the format TABLE_NAME.COLUMN_NAME + * @param string $listPeer , name of the list class + * @param string $field , name of the fieldName + * @param string $sort , name of column by sort + * @param string $defaultSort , name of column by sort default + * @param string $additionalClassName , name of the className of pmTable + * @param array $additionalColumns , columns related to the custom cases list with the format TABLE_NAME.COLUMN_NAME * @return string $tableName */ - public function getSortColumn($listPeer, $field, $sort, $defaultSort, $additionalClassName = '', $additionalColumns = array()) - { + public function getSortColumn( + $listPeer, + $field, + $sort, + $defaultSort, + $additionalClassName = '', + $additionalColumns = array() + ) { $columnSort = $defaultSort; $tableName = ''; //We will check if the column by sort is a LIST table $columnsList = $listPeer::getFieldNames($field); if (in_array($sort, $columnsList)) { - $columnSort = $listPeer::TABLE_NAME . '.' . $sort; + $columnSort = $listPeer::TABLE_NAME . '.' . $sort; } else { //We will sort by CUSTOM CASE LIST table if (count($additionalColumns) > 0) { @@ -3435,4 +3579,45 @@ class Cases return $columnSort; } + + /** + * This function verify if the user is a supervisor + * If we send the formUid we will to review if has the object form assigned + * + * @param string $usrUid, Uid related to the user + * @param string $appUid, Uid related to the case + * @param string $formUid, Uid related to the dynaform + * @param string $proUid, Uid related to the process + * + * @return boolean + */ + public function isSupervisorFromForm($usrUid, $appUid, $formUid, $proUid = '') + { + + //We will to search the proUid related to the appUid + if (empty($proUid)) { + $arrayApplicationData = $this->getApplicationRecordByPk($appUid, [], false); + $proUid = $arrayApplicationData['PRO_UID']; + } + + $supervisor = new BmProcessSupervisor(); + $isSupervisor = $supervisor->isUserProcessSupervisor($proUid, $usrUid); + + //We will check if the supervisor has the object form assigned + if ($isSupervisor) { + $cases = new ClassesCases(); + $resultDynaForm = $cases->getAllDynaformsStepsToRevise($appUid); + $isSupervisor = false; + while ($resultDynaForm->next()) { + $row = $resultDynaForm->getRow(); + //Review if the supervisor has the form assigned + if ($row["STEP_UID_OBJ"] === $formUid) { + $isSupervisor = true; + break; + } + } + } + + return $isSupervisor; + } } diff --git a/workflow/engine/src/ProcessMaker/Services/Api/Cases.php b/workflow/engine/src/ProcessMaker/Services/Api/Cases.php index 47818ac73..fb09e7320 100644 --- a/workflow/engine/src/ProcessMaker/Services/Api/Cases.php +++ b/workflow/engine/src/ProcessMaker/Services/Api/Cases.php @@ -1,11 +1,20 @@ parameters[$arrayArgs['app_index']]; $userUid = $this->getUserId(); //Check if the user has the case - $appDelegation = new \AppDelegation(); + $appDelegation = new AppDelegation(); $aCurUser = $appDelegation->getCurrentUsers($applicationUid, $delIndex); if (!empty($aCurUser)) { foreach ($aCurUser as $key => $value) { @@ -52,16 +61,37 @@ class Cases extends Api } } //Check if the user has Permissions - $oCases = new \ProcessMaker\BusinessModel\Cases(); + $oCases = new BmCases(); return $oCases->checkUserHasPermissionsOrSupervisor($userUid, $applicationUid, $dynaformUid); break; + case 'doPutCaseVariables': + $applicationUid = $this->parameters[$arrayArgs['app_uid']]; + $dynaformUid = $this->parameters[$arrayArgs['dyn_uid']]; + $delIndex = $this->parameters[$arrayArgs['del_index']]; + $userUid = $this->getUserId(); + + //Check if the user has the case currently + $appDelegation = new AppDelegation(); + $currentUser = $appDelegation->getCurrentUsers($applicationUid, $delIndex); + foreach ($currentUser as $key => $value) { + if ($value === $userUid) { + return true; + } + } + + //Check if the user is a supervisor + //Unlike GET, it is not enough to have the processPermission for update the variables + $cases = new BmCases(); + $isSupervisor = $cases->isSupervisorFromForm($userUid, $applicationUid, $dynaformUid); + return $isSupervisor; + break; case 'doPostReassign': $arrayParameters = $this->parameters[0]['cases']; $usrUid = $this->getUserId(); //Check if the user is supervisor process - $case = new \ProcessMaker\BusinessModel\Cases(); - $user = new \ProcessMaker\BusinessModel\User(); + $case = new BmCases(); + $user = new BmUser(); $count = 0; @@ -71,7 +101,7 @@ class Cases extends Api if (!empty($arrayApplicationData)) { if (!$user->checkPermission($usrUid, 'PM_REASSIGNCASE')) { if ($user->checkPermission($usrUid, 'PM_REASSIGNCASE_SUPERVISOR')) { - $supervisor = new \ProcessMaker\BusinessModel\ProcessSupervisor(); + $supervisor = new BmProcessSupervisor(); $flagps = $supervisor->isUserProcessSupervisor($arrayApplicationData['PRO_UID'], $usrUid); if (!$flagps) { $count = $count + 1; @@ -90,20 +120,20 @@ class Cases extends Api $appUid = $this->parameters[$arrayArgs['app_uid']]; $usrUid = $this->getUserId(); //Check if the user is supervisor process - $case = new \ProcessMaker\BusinessModel\Cases(); - $user = new \ProcessMaker\BusinessModel\User(); + $case = new BmCases(); + $user = new BmUser(); $arrayApplicationData = $case->getApplicationRecordByPk($appUid, [], false); if (!empty($arrayApplicationData)) { - $criteria = new \Criteria("workflow"); - $criteria->addSelectColumn(\AppDelegationPeer::APP_UID); - $criteria->add(\AppDelegationPeer::APP_UID, $appUid); - $criteria->add(\AppDelegationPeer::USR_UID, $usrUid); + $criteria = new Criteria("workflow"); + $criteria->addSelectColumn(AppDelegationPeer::APP_UID); + $criteria->add(AppDelegationPeer::APP_UID, $appUid); + $criteria->add(AppDelegationPeer::USR_UID, $usrUid); $criteria->setLimit(1); - $rsCriteria = \AppDelegationPeer::doSelectRS($criteria); + $rsCriteria = AppDelegationPeer::doSelectRS($criteria); if ($rsCriteria->next()) { return true; } else { - $supervisor = new \ProcessMaker\BusinessModel\ProcessSupervisor(); + $supervisor = new BmProcessSupervisor(); $flagps = $supervisor->isUserProcessSupervisor($arrayApplicationData['PRO_UID'], $usrUid); return $flagps; } @@ -131,7 +161,7 @@ class Cases extends Api } return false; - } catch (\Exception $e) { + } catch (Exception $e) { throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()); } } @@ -147,9 +177,7 @@ class Cases extends Api * @param string $pro_uid {@from path} * @param string $search {@from path} * @return array - * - * @author Brayan Pereyra (Cochalo) - * @copyright Colosa - Bolivia + * @throws Exception * * @url GET */ @@ -174,11 +202,11 @@ class Cases extends Api $dataList['category'] = $cat_uid; $dataList['process'] = $pro_uid; $dataList['search'] = $search; - $oCases = new \ProcessMaker\BusinessModel\Cases(); + $oCases = new BmCases(); $response = $oCases->getList($dataList); return DateTime::convertUtcToIso8601($response, $this->arrayFieldIso8601); - } catch (\Exception $e) { + } catch (Exception $e) { throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage())); } } @@ -194,9 +222,7 @@ class Cases extends Api * @param string $pro_uid {@from path} * @param string $search {@from path} * @return array - * - * @author Brayan Pereyra (Cochalo) - * @copyright Colosa - Bolivia + * @throws Exception * * @url GET /paged */ @@ -221,10 +247,10 @@ class Cases extends Api $dataList['category'] = $cat_uid; $dataList['process'] = $pro_uid; $dataList['search'] = $search; - $oCases = new \ProcessMaker\BusinessModel\Cases(); + $oCases = new BmCases(); $response = $oCases->getList($dataList); return DateTime::convertUtcToIso8601($response, $this->arrayFieldIso8601); - } catch (\Exception $e) { + } catch (Exception $e) { throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage())); } } @@ -240,9 +266,7 @@ class Cases extends Api * @param string $pro_uid {@from path} * @param string $search {@from path} * @return array - * - * @author Brayan Pereyra (Cochalo) - * @copyright Colosa - Bolivia + * @throws Exception * * @url GET /draft */ @@ -267,10 +291,10 @@ class Cases extends Api $dataList['category'] = $cat_uid; $dataList['process'] = $pro_uid; $dataList['search'] = $search; - $oCases = new \ProcessMaker\BusinessModel\Cases(); + $oCases = new BmCases(); $response = $oCases->getList($dataList); return DateTime::convertUtcToIso8601($response, $this->arrayFieldIso8601); - } catch (\Exception $e) { + } catch (Exception $e) { throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage())); } } @@ -286,9 +310,7 @@ class Cases extends Api * @param string $pro_uid {@from path} * @param string $search {@from path} * @return array - * - * @author Brayan Pereyra (Cochalo) - * @copyright Colosa - Bolivia + * @throws Exception * * @url GET /draft/paged */ @@ -313,10 +335,10 @@ class Cases extends Api $dataList['category'] = $cat_uid; $dataList['process'] = $pro_uid; $dataList['search'] = $search; - $oCases = new \ProcessMaker\BusinessModel\Cases(); + $oCases = new BmCases(); $response = $oCases->getList($dataList); return DateTime::convertUtcToIso8601($response, $this->arrayFieldIso8601); - } catch (\Exception $e) { + } catch (Exception $e) { throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage())); } } @@ -332,9 +354,7 @@ class Cases extends Api * @param string $pro_uid {@from path} * @param string $search {@from path} * @return array - * - * @author Brayan Pereyra (Cochalo) - * @copyright Colosa - Bolivia + * @throws Exception * * @url GET /participated */ @@ -359,10 +379,10 @@ class Cases extends Api $dataList['category'] = $cat_uid; $dataList['process'] = $pro_uid; $dataList['search'] = $search; - $oCases = new \ProcessMaker\BusinessModel\Cases(); + $oCases = new BmCases(); $response = $oCases->getList($dataList); return DateTime::convertUtcToIso8601($response, $this->arrayFieldIso8601); - } catch (\Exception $e) { + } catch (Exception $e) { throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage())); } } @@ -378,9 +398,7 @@ class Cases extends Api * @param string $pro_uid {@from path} * @param string $search {@from path} * @return array - * - * @author Brayan Pereyra (Cochalo) - * @copyright Colosa - Bolivia + * @throws Exception * * @url GET /participated/paged */ @@ -405,10 +423,10 @@ class Cases extends Api $dataList['category'] = $cat_uid; $dataList['process'] = $pro_uid; $dataList['search'] = $search; - $oCases = new \ProcessMaker\BusinessModel\Cases(); + $oCases = new BmCases(); $response = $oCases->getList($dataList); return DateTime::convertUtcToIso8601($response, $this->arrayFieldIso8601); - } catch (\Exception $e) { + } catch (Exception $e) { throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage())); } } @@ -424,9 +442,7 @@ class Cases extends Api * @param string $pro_uid {@from path} * @param string $search {@from path} * @return array - * - * @author Brayan Pereyra (Cochalo) - * @copyright Colosa - Bolivia + * @throws Exception * * @url GET /unassigned */ @@ -451,10 +467,10 @@ class Cases extends Api $dataList['category'] = $cat_uid; $dataList['process'] = $pro_uid; $dataList['search'] = $search; - $oCases = new \ProcessMaker\BusinessModel\Cases(); + $oCases = new BmCases(); $response = $oCases->getList($dataList); return DateTime::convertUtcToIso8601($response, $this->arrayFieldIso8601); - } catch (\Exception $e) { + } catch (Exception $e) { throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage())); } } @@ -470,9 +486,7 @@ class Cases extends Api * @param string $pro_uid {@from path} * @param string $search {@from path} * @return array - * - * @author Brayan Pereyra (Cochalo) - * @copyright Colosa - Bolivia + * @throws Exception * * @url GET /unassigned/paged */ @@ -497,10 +511,10 @@ class Cases extends Api $dataList['category'] = $cat_uid; $dataList['process'] = $pro_uid; $dataList['search'] = $search; - $oCases = new \ProcessMaker\BusinessModel\Cases(); + $oCases = new BmCases(); $response = $oCases->getList($dataList); return DateTime::convertUtcToIso8601($response, $this->arrayFieldIso8601); - } catch (\Exception $e) { + } catch (Exception $e) { throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage())); } } @@ -516,9 +530,7 @@ class Cases extends Api * @param string $pro_uid {@from path} * @param string $search {@from path} * @return array - * - * @author Brayan Pereyra (Cochalo) - * @copyright Colosa - Bolivia + * @throws Exception * * @url GET /paused */ @@ -543,10 +555,10 @@ class Cases extends Api $dataList['category'] = $cat_uid; $dataList['process'] = $pro_uid; $dataList['search'] = $search; - $oCases = new \ProcessMaker\BusinessModel\Cases(); + $oCases = new BmCases(); $response = $oCases->getList($dataList); return DateTime::convertUtcToIso8601($response, $this->arrayFieldIso8601); - } catch (\Exception $e) { + } catch (Exception $e) { throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage())); } } @@ -562,9 +574,7 @@ class Cases extends Api * @param string $pro_uid {@from path} * @param string $search {@from path} * @return array - * - * @author Brayan Pereyra (Cochalo) - * @copyright Colosa - Bolivia + * @throws Exception * * @url GET /paused/paged */ @@ -589,10 +599,10 @@ class Cases extends Api $dataList['category'] = $cat_uid; $dataList['process'] = $pro_uid; $dataList['search'] = $search; - $oCases = new \ProcessMaker\BusinessModel\Cases(); + $oCases = new BmCases(); $response = $oCases->getList($dataList); return DateTime::convertUtcToIso8601($response, $this->arrayFieldIso8601); - } catch (\Exception $e) { + } catch (Exception $e) { throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage())); } } @@ -612,9 +622,7 @@ class Cases extends Api * @param string $date_to {@from path} * @param string $search {@from path} * @return array - * - * @author Brayan Pereyra (Cochalo) - * @copyright Colosa - Bolivia + * @throws Exception * * @url GET /advanced-search */ @@ -647,10 +655,10 @@ class Cases extends Api $dataList['dateFrom'] = $date_from; $dataList['dateTo'] = $date_to; $dataList['search'] = $search; - $oCases = new \ProcessMaker\BusinessModel\Cases(); + $oCases = new BmCases(); $response = $oCases->getList($dataList); return DateTime::convertUtcToIso8601($response, $this->arrayFieldIso8601); - } catch (\Exception $e) { + } catch (Exception $e) { throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage())); } } @@ -670,9 +678,7 @@ class Cases extends Api * @param string $date_to {@from path} * @param string $search {@from path} * @return array - * - * @author Brayan Pereyra (Cochalo) - * @copyright Colosa - Bolivia + * @throws Exception * * @url GET /advanced-search/paged */ @@ -705,10 +711,10 @@ class Cases extends Api $dataList['dateFrom'] = $date_from; $dataList['dateTo'] = $date_to; $dataList['search'] = $search; - $oCases = new \ProcessMaker\BusinessModel\Cases(); + $oCases = new BmCases(); $response = $oCases->getList($dataList); return DateTime::convertUtcToIso8601($response, $this->arrayFieldIso8601); - } catch (\Exception $e) { + } catch (Exception $e) { throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage())); } } @@ -719,17 +725,19 @@ class Cases extends Api * @url GET /:app_uid * * @param string $app_uid {@min 32}{@max 32} + * @return array + * @throws Exception */ public function doGetCaseInfo($app_uid) { try { - $case = new \ProcessMaker\BusinessModel\Cases(); + $case = new BmCases(); $case->setFormatFieldNameInUppercase(false); $caseInfo = $case->getCaseInfo($app_uid, $this->getUserId()); $caseInfo = DateTime::convertUtcToIso8601($caseInfo, $this->arrayFieldIso8601); return $caseInfo; - } catch (\Exception $e) { + } catch (Exception $e) { throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()); } } @@ -742,7 +750,7 @@ class Cases extends Api public function doGetTaskCase($app_uid) { try { - $case = new \ProcessMaker\BusinessModel\Cases(); + $case = new BmCases(); $case->setFormatFieldNameInUppercase(false); $arrayData = $case->getTaskCase($app_uid, $this->getUserId()); @@ -750,7 +758,7 @@ class Cases extends Api $response = $arrayData; return DateTime::convertUtcToIso8601($response, $this->arrayFieldIso8601); - } catch (\Exception $e) { + } catch (Exception $e) { throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage())); } } @@ -767,10 +775,10 @@ class Cases extends Api { try { $userUid = $this->getUserId(); - $cases = new \ProcessMaker\BusinessModel\Cases(); + $cases = new BmCases(); $oData = $cases->addCase($pro_uid, $tas_uid, $userUid, $variables); return $oData; - } catch (\Exception $e) { + } catch (Exception $e) { throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage())); } } @@ -787,10 +795,10 @@ class Cases extends Api public function doPostCaseImpersonate($pro_uid, $usr_uid, $tas_uid, $variables = null) { try { - $cases = new \ProcessMaker\BusinessModel\Cases(); + $cases = new BmCases(); $oData = $cases->addCaseImpersonate($pro_uid, $usr_uid, $tas_uid, $variables); return $oData; - } catch (\Exception $e) { + } catch (Exception $e) { throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage())); } } @@ -807,9 +815,9 @@ class Cases extends Api { try { $userUid = $this->getUserId(); - $cases = new \ProcessMaker\BusinessModel\Cases(); + $cases = new BmCases(); $cases->updateReassignCase($app_uid, $userUid, $del_index, $usr_uid_source, $usr_uid_target); - } catch (\Exception $e) { + } catch (Exception $e) { throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage())); } } @@ -825,9 +833,9 @@ class Cases extends Api { try { $userUid = $this->getUserId(); - $cases = new \ProcessMaker\BusinessModel\Cases(); + $cases = new BmCases(); $cases->updateRouteCase($app_uid, $userUid, $del_index); - } catch (\Exception $e) { + } catch (Exception $e) { throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage())); } } @@ -846,9 +854,9 @@ class Cases extends Api { try { $userUid = $this->getUserId(); - $cases = new \ProcessMaker\BusinessModel\Cases(); + $cases = new BmCases(); $cases->putCancelCase($cas_uid, $userUid); - } catch (\Exception $e) { + } catch (Exception $e) { throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage())); } } @@ -858,9 +866,7 @@ class Cases extends Api * * @param string $cas_uid {@min 1}{@max 32} * @param string $unpaused_date {@from body} - * - * @author Brayan Pereyra (Cochalo) - * @copyright Colosa - Bolivia + * @throws Exception * * @url PUT /:cas_uid/pause */ @@ -868,13 +874,13 @@ class Cases extends Api { try { $userUid = $this->getUserId(); - $cases = new \ProcessMaker\BusinessModel\Cases(); + $cases = new BmCases(); if ($unpaused_date == null) { $cases->putPauseCase($cas_uid, $userUid); } else { $cases->putPauseCase($cas_uid, $userUid, false, $unpaused_date); } - } catch (\Exception $e) { + } catch (Exception $e) { throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage())); } } @@ -883,9 +889,7 @@ class Cases extends Api * Unpause Case * * @param string $cas_uid {@min 1}{@max 32} - * - * @author Brayan Pereyra (Cochalo) - * @copyright Colosa - Bolivia + * @throws Exception * * @url PUT /:cas_uid/unpause */ @@ -893,9 +897,9 @@ class Cases extends Api { try { $userUid = $this->getUserId(); - $cases = new \ProcessMaker\BusinessModel\Cases(); + $cases = new BmCases(); $cases->putUnpauseCase($cas_uid, $userUid); - } catch (\Exception $e) { + } catch (Exception $e) { throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage())); } } @@ -905,9 +909,7 @@ class Cases extends Api * * @param string $cas_uid {@min 1}{@max 32} * @param string $tri_uid {@min 1}{@max 32} - * - * @author Brayan Pereyra (Cochalo) - * @copyright Colosa - Bolivia + * @throws Exception * * @url PUT /:cas_uid/execute-trigger/:tri_uid */ @@ -915,9 +917,9 @@ class Cases extends Api { try { $userUid = $this->getUserId(); - $cases = new \ProcessMaker\BusinessModel\Cases(); + $cases = new BmCases(); $cases->putExecuteTriggerCase($cas_uid, $tri_uid, $userUid); - } catch (\Exception $e) { + } catch (Exception $e) { throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage())); } } @@ -926,9 +928,7 @@ class Cases extends Api * Delete Case * * @param string $cas_uid {@min 1}{@max 32} - * - * @author Brayan Pereyra (Cochalo) - * @copyright Colosa - Bolivia + * @throws Exception * * @url DELETE /:cas_uid */ @@ -936,9 +936,9 @@ class Cases extends Api { try { $usr_uid = $this->getUserId(); - $cases = new \ProcessMaker\BusinessModel\Cases(); + $cases = new BmCases(); $cases->deleteCase($cas_uid, $usr_uid); - } catch (\Exception $e) { + } catch (Exception $e) { throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage())); } } @@ -962,10 +962,10 @@ class Cases extends Api { try { $usr_uid = $this->getUserId(); - $cases = new \ProcessMaker\BusinessModel\Cases(); + $cases = new BmCases(); $response = $cases->getCaseVariables($app_uid, $usr_uid, $dyn_uid, $pro_uid, $act_uid, $app_index); return DateTime::convertUtcToIso8601($response); - } catch (\Exception $e) { + } catch (Exception $e) { throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage())); } } @@ -977,9 +977,7 @@ class Cases extends Api * @param array $request_data * @param string $dyn_uid {@from path} * @param int $del_index {@from path} - * - * @author Brayan Pereyra (Cochalo) - * @copyright Colosa - Bolivia + * @throws Exception * * @url PUT /:app_uid/variable */ @@ -987,10 +985,10 @@ class Cases extends Api { try { $usr_uid = $this->getUserId(); - $cases = new \ProcessMaker\BusinessModel\Cases(); + $cases = new BmCases(); $request_data = \ProcessMaker\Util\DateTime::convertDataToUtc($request_data); $cases->setCaseVariables($app_uid, $request_data, $dyn_uid, $usr_uid, $del_index); - } catch (\Exception $e) { + } catch (Exception $e) { throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage())); } } @@ -1008,9 +1006,7 @@ class Cases extends Api * @param string $date_to {@from path} * @param string $search {@from path} * @return array - * - * @author Brayan Pereyra (Cochalo) - * @copyright Colosa - Bolivia + * @throws Exception * * @url GET /:app_uid/notes */ @@ -1038,10 +1034,10 @@ class Cases extends Api $dataList['search'] = $search; $usr_uid = $this->getUserId(); - $cases = new \ProcessMaker\BusinessModel\Cases(); + $cases = new BmCases(); $response = $cases->getCaseNotes($app_uid, $usr_uid, $dataList); return DateTime::convertUtcToIso8601($response, $this->arrayFieldIso8601); - } catch (\Exception $e) { + } catch (Exception $e) { throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage())); } } @@ -1058,9 +1054,7 @@ class Cases extends Api * @param string $date_to {@from path} * @param string $search {@from path} * @return array - * - * @author Brayan Pereyra (Cochalo) - * @copyright Colosa - Bolivia + * @throws Exception * * @url GET /:app_uid/notes/paged */ @@ -1086,10 +1080,10 @@ class Cases extends Api $dataList['search'] = $search; $usr_uid = $this->getUserId(); - $cases = new \ProcessMaker\BusinessModel\Cases(); + $cases = new BmCases(); $response = $cases->getCaseNotes($app_uid, $usr_uid, $dataList); return DateTime::convertUtcToIso8601($response, $this->arrayFieldIso8601); - } catch (\Exception $e) { + } catch (Exception $e) { throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage())); } } @@ -1100,9 +1094,7 @@ class Cases extends Api * @param string $app_uid {@min 1}{@max 32} * @param string $note_content {@min 1}{@max 500} * @param int $send_mail {@choice 1,0} - * - * @author Brayan Pereyra (Cochalo) - * @copyright Colosa - Bolivia + * @throws Exception * * @url POST /:app_uid/note */ @@ -1110,10 +1102,10 @@ class Cases extends Api { try { $usr_uid = $this->getUserId(); - $cases = new \ProcessMaker\BusinessModel\Cases(); + $cases = new BmCases(); $send_mail = ($send_mail == 0) ? false : true; $cases->saveCaseNote($app_uid, $usr_uid, $note_content, $send_mail); - } catch (\Exception $e) { + } catch (Exception $e) { throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage())); } } @@ -1126,13 +1118,13 @@ class Cases extends Api public function doGetTasks($app_uid) { try { - $case = new \ProcessMaker\BusinessModel\Cases(); + $case = new BmCases(); $case->setFormatFieldNameInUppercase(false); $response = $case->getTasks($app_uid); return DateTime::convertUtcToIso8601($response, $this->arrayFieldIso8601); - } catch (\Exception $e) { + } catch (Exception $e) { throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()); } } @@ -1144,17 +1136,16 @@ class Cases extends Api * @param int $del_index {@from body} * @param string $obj_type {@from body} * @param string $obj_uid {@from body} - * - * @copyright Colosa - Bolivia + * @throws Exception * * @url PUT /:app_uid/execute-triggers */ public function doPutExecuteTriggers($app_uid, $del_index, $obj_type, $obj_uid) { try { - $cases = new \ProcessMaker\BusinessModel\Cases(); + $cases = new BmCases(); $cases->putExecuteTriggers($app_uid, $del_index, $obj_type, $obj_uid); - } catch (\Exception $e) { + } catch (Exception $e) { throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage())); } } @@ -1169,13 +1160,13 @@ class Cases extends Api public function doGetSteps($app_uid, $del_index) { try { - $case = new \ProcessMaker\BusinessModel\Cases(); + $case = new BmCases(); $case->setFormatFieldNameInUppercase(false); $response = $case->getSteps($app_uid, $del_index); return $response; - } catch (\Exception $e) { + } catch (Exception $e) { throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()); } } @@ -1187,6 +1178,7 @@ class Cases extends Api * * @param string $type_view {@from path} * @return array + * @throws Exception * */ public function doGetCasesListStarCase( @@ -1194,12 +1186,12 @@ class Cases extends Api ) { try { $usr_uid = $this->getUserId(); - $case = new \ProcessMaker\BusinessModel\Cases(); + $case = new BmCases(); $response = $case->getCasesListStarCase($usr_uid, $type_view); return $response; - } catch (\Exception $e) { + } catch (Exception $e) { throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()); } } @@ -1211,6 +1203,7 @@ class Cases extends Api * * @param string $type_view {@from path} * @return array + * @throws Exception * */ public function doGetCasesListBookmarkStarCase( @@ -1218,12 +1211,12 @@ class Cases extends Api ) { try { $usr_uid = $this->getUserId(); - $case = new \ProcessMaker\BusinessModel\Cases(); + $case = new BmCases(); $response = $case->getCasesListBookmarkStarCase($usr_uid, $type_view); return $response; - } catch (\Exception $e) { + } catch (Exception $e) { throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()); } } @@ -1234,15 +1227,16 @@ class Cases extends Api * @url POST /bookmark/:tas_uid * * @param string $tas_uid {@min 32}{@max 32} + * @throws Exception * */ public function doPostBookmarkStartCase($tas_uid) { try { $userLoggedUid = $this->getUserId(); - $user = new \ProcessMaker\BusinessModel\User(); + $user = new BmUser(); $user->updateBookmark($userLoggedUid, $tas_uid, 'INSERT'); - } catch (\Exception $e) { + } catch (Exception $e) { throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()); } } @@ -1252,15 +1246,16 @@ class Cases extends Api * @url DELETE /bookmark/:tas_uid * * @param string $tas_uid {@min 32}{@max 32} + * @throws Exception * */ public function doDeleteBookmarkStartCase($tas_uid) { try { $userLoggedUid = $this->getUserId(); - $user = new \ProcessMaker\BusinessModel\User(); + $user = new BmUser(); $user->updateBookmark($userLoggedUid, $tas_uid, 'DELETE'); - } catch (\Exception $e) { + } catch (Exception $e) { throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()); } } @@ -1273,15 +1268,16 @@ class Cases extends Api * @class AccessControl {@className \ProcessMaker\Services\Api\Cases} * * @param array $request_data + * @throws Exception * */ public function doPostReassign($request_data) { try { - $case = new \ProcessMaker\BusinessModel\Cases(); + $case = new BmCases(); $response = $case->doPostReassign($request_data); return $response; - } catch (\Exception $e) { + } catch (Exception $e) { throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()); } } diff --git a/workflow/engine/src/ProcessMaker/Services/Api/Light.php b/workflow/engine/src/ProcessMaker/Services/Api/Light.php index d5d849b73..d0e27612b 100644 --- a/workflow/engine/src/ProcessMaker/Services/Api/Light.php +++ b/workflow/engine/src/ProcessMaker/Services/Api/Light.php @@ -1715,24 +1715,26 @@ class Light extends Api /** * Put Case Variables + * @access protected + * @class AccessControl {@className \ProcessMaker\Services\Api\Cases} + * @url PUT /:app_uid/variable * * @param string $app_uid {@min 1}{@max 32} * @param array $request_data * @param string $dyn_uid {@from path} * @param int $del_index {@from path} * - * @url PUT /:app_uid/variable + * @return void + * @throws RestException */ public function doPutCaseVariables($app_uid, $request_data, $dyn_uid = '', $del_index = 0) { try { //Check if the user is a supervisor or have permissions $usr_uid = $this->getUserId(); - $cases = new BusinessModelCases(); - $hasAccess = $cases->checkUserHasPermissionsOrSupervisor($usr_uid, $app_uid, $dyn_uid); //When the user is a supervisor del_index is 0 - if ($del_index <= 0 && !$hasAccess) { + if ($del_index < 0) { throw (new Exception(G::LoadTranslation('ID_INVALID_VALUE_EXPECTING_POSITIVE_INTEGER', array('del_index')), Api::STAT_APP_EXCEPTION)); } @@ -1740,6 +1742,7 @@ class Light extends Api throw (new Exception(G::LoadTranslation('ID_CAN_NOT_BE_NULL', array('del_index')), Api::STAT_APP_EXCEPTION)); } + $cases = new BusinessModelCases(); if ($del_index > 0) { if ($cases->caseAlreadyRouted($app_uid, $del_index, $usr_uid)) { throw (new Exception(G::LoadTranslation('ID_CASE_ALREADY_DERIVATED'), Api::STAT_APP_EXCEPTION));