PM-3659 "Uso de interface lenta (assignment rules) cuando..." SOLVED
Issue:
Uso de interface lenta (assignment rules) cuando se tienen varios usuarios (40000)
Cause:
No se realizo de manera correcta el paginado de registros
Solution:
> Se a implementado los siguientes end-points:
GET /api/1.0/{workspace}/project/{prj_uid}/activity/{act_uid}/assignee/paged
GET /api/1.0/{workspace}/project/{prj_uid}/activity/{act_uid}/available-assignee/paged
GET /api/1.0/{workspace}/project/{prj_uid}/activity/{act_uid}/adhoc-assignee/paged
GET /api/1.0/{workspace}/project/{prj_uid}/activity/{act_uid}/adhoc-available-assignee/paged
Estos end-points aceptan los siguientes parametros:
/paged?filter={filter}&start={start}&limit={limit}&type={type}
/paged?lfilter={lfilter}&start={start}&limit={limit}&type={type}
/paged?rfilter={rfilter}&start={start}&limit={limit}&type={type}
Donde:
filter: Representa la busqueda de registros que contienen este valor
lfilter: Representa la busqueda de registros que empiezan con este valor
rfilter: Representa la busqueda de registros que terminan con este valor
type: Acepta los siguentes valores: "user", "group"
Ejemplo:
GET /api/1.0/{workspace}/project/{prj_uid}/activity/{act_uid}/assignee/paged?start=0&limit=3
<<<<< 200
{
"total": 15,
"start": 0,
"limit": 3,
"filter": "",
"data": [
{
"aas_uid": "60593768854492f8fa43aa2064326562",
"aas_name": "GROUP1 (2 Users)",
"aas_lastname": "",
"aas_username": "",
"aas_type": "group"
},
{
"aas_uid": "11886228656016c9329c898096916123",
"aas_name": "GROUP2 (1 User)",
"aas_lastname": "",
"aas_username": "",
"aas_type": "group"
},
{
"aas_uid": "52242914255f202805bd552031573543",
"aas_name": "user1",
"aas_lastname": "user1",
"aas_username": "user1",
"aas_type": "user"
}
]
}
> Se a mejorado los siguientes end-points:
GET /api/1.0/{workspace}/users?filter={filter}&start={start}&limit={limit}
GET /api/1.0/{workspace}/users?lfilter={lfilter}&start={start}&limit={limit}
GET /api/1.0/{workspace}/users?rfilter={rfilter}&start={start}&limit={limit}
GET /api/1.0/{workspace}/groups?filter={filter}&start={start}&limit={limit}
GET /api/1.0/{workspace}/groups?lfilter={lfilter}&start={start}&limit={limit}
GET /api/1.0/{workspace}/groups?rfilter={rfilter}&start={start}&limit={limit}
This commit is contained in:
@@ -460,31 +460,76 @@ class Group
|
||||
try {
|
||||
$arrayGroup = array();
|
||||
|
||||
$numRecTotal = 0;
|
||||
|
||||
//Verify data
|
||||
$process = new \ProcessMaker\BusinessModel\Process();
|
||||
|
||||
$process->throwExceptionIfDataNotMetPagerVarDefinition(array("start" => $start, "limit" => $limit), $this->arrayFieldNameForException);
|
||||
|
||||
//Get data
|
||||
if (!is_null($limit) && $limit . "" == "0") {
|
||||
return $arrayGroup;
|
||||
//Set variables
|
||||
$filterName = "filter";
|
||||
|
||||
if (!is_null($arrayFilterData) && is_array($arrayFilterData) && isset($arrayFilterData["filter"])) {
|
||||
$arrayAux = array(
|
||||
"" => "filter",
|
||||
"LEFT" => "lfilter",
|
||||
"RIGHT" => "rfilter"
|
||||
);
|
||||
|
||||
$filterName = $arrayAux[(isset($arrayFilterData["filterOption"]))? $arrayFilterData["filterOption"] : ""];
|
||||
}
|
||||
|
||||
//Get data
|
||||
if (!is_null($limit) && $limit . "" == "0") {
|
||||
//Return
|
||||
return array(
|
||||
"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" => $arrayGroup
|
||||
);
|
||||
}
|
||||
|
||||
//Set variables
|
||||
$arrayTotalUsersByGroup = $this->getTotalUsersByGroup();
|
||||
$arrayTotalTasksByGroup = $this->getTotalTasksByGroup();
|
||||
|
||||
//SQL
|
||||
//Query
|
||||
$criteria = $this->getGroupCriteria();
|
||||
|
||||
if (!is_null($arrayFilterData) && is_array($arrayFilterData) && isset($arrayFilterData["filter"]) && trim($arrayFilterData["filter"]) != "") {
|
||||
$criteria->add(\ContentPeer::CON_VALUE, "%" . $arrayFilterData["filter"] . "%", \Criteria::LIKE);
|
||||
$arraySearch = array(
|
||||
"" => "%" . $arrayFilterData["filter"] . "%",
|
||||
"LEFT" => $arrayFilterData["filter"] . "%",
|
||||
"RIGHT" => "%" . $arrayFilterData["filter"]
|
||||
);
|
||||
|
||||
$search = $arraySearch[(isset($arrayFilterData["filterOption"]))? $arrayFilterData["filterOption"] : ""];
|
||||
|
||||
$criteria->add(\ContentPeer::CON_VALUE, $search, \Criteria::LIKE);
|
||||
}
|
||||
|
||||
//SQL
|
||||
//Number records total
|
||||
$criteriaCount = clone $criteria;
|
||||
|
||||
$criteriaCount->clearSelectColumns();
|
||||
$criteriaCount->addSelectColumn("COUNT(" . \GroupwfPeer::GRP_UID . ") AS NUM_REC");
|
||||
|
||||
$rsCriteriaCount = \GroupwfPeer::doSelectRS($criteriaCount);
|
||||
$rsCriteriaCount->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
|
||||
|
||||
$result = $rsCriteriaCount->next();
|
||||
$row = $rsCriteriaCount->getRow();
|
||||
|
||||
$numRecTotal = (int)($row["NUM_REC"]);
|
||||
|
||||
//Query
|
||||
if (!is_null($sortField) && trim($sortField) != "") {
|
||||
$sortField = strtoupper($sortField);
|
||||
|
||||
if (in_array($sortField, array("GRP_UID", "GRP_STATUS", "GRP_LDAP_DN", "GRP_UX"))) {
|
||||
if (in_array(\GroupwfPeer::TABLE_NAME . "." . $sortField, $criteria->getSelectColumns())) {
|
||||
$sortField = \GroupwfPeer::TABLE_NAME . "." . $sortField;
|
||||
} else {
|
||||
$sortField = "GRP_TITLE";
|
||||
@@ -520,7 +565,13 @@ class Group
|
||||
}
|
||||
|
||||
//Return
|
||||
return $arrayGroup;
|
||||
return array(
|
||||
"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" => $arrayGroup
|
||||
);
|
||||
} catch (\Exception $e) {
|
||||
throw $e;
|
||||
}
|
||||
@@ -635,7 +686,7 @@ class Group
|
||||
}
|
||||
|
||||
/**
|
||||
* return permissions of user
|
||||
* return permissions of user
|
||||
*/
|
||||
public function loadUserRolePermission ($sSystem, $sUser)
|
||||
{
|
||||
@@ -748,11 +799,11 @@ class Group
|
||||
$rsCriteria = \UsersPeer::doSelectRS($criteria);
|
||||
$rsCriteria->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
|
||||
|
||||
if (isset($flagPermission) && $flagPermission){
|
||||
if (isset($flagPermission) && $flagPermission) {
|
||||
\G::LoadSystem('rbac');
|
||||
while ($rsCriteria->next()) {
|
||||
$row = $rsCriteria->getRow();
|
||||
|
||||
|
||||
$aPermissions = $this->loadUserRolePermission("PROCESSMAKER", $row['USR_UID']);
|
||||
$bInclude = false;
|
||||
|
||||
@@ -768,7 +819,7 @@ class Group
|
||||
} else {
|
||||
while ($rsCriteria->next()) {
|
||||
$row = $rsCriteria->getRow();
|
||||
|
||||
|
||||
$arrayUser[] = $this->getUserDataFromRecord($row);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -169,10 +169,10 @@ class Process
|
||||
public function throwExceptionIfDataNotMetFieldDefinition($arrayData, $arrayFieldDefinition, $arrayFieldNameForException, $flagValidateRequired = true)
|
||||
{
|
||||
try {
|
||||
|
||||
|
||||
\G::LoadSystem('inputfilter');
|
||||
$filter = new \InputFilter();
|
||||
|
||||
|
||||
if ($flagValidateRequired) {
|
||||
foreach ($arrayFieldDefinition as $key => $value) {
|
||||
$fieldName = $key;
|
||||
@@ -191,7 +191,7 @@ class Process
|
||||
foreach ($arrayData as $key => $value) {
|
||||
$fieldName = $key;
|
||||
$fieldValue = $value;
|
||||
|
||||
|
||||
|
||||
if (isset($arrayFieldDefinition[$fieldName])) {
|
||||
$fieldNameAux = (isset($arrayFieldNameForException[$arrayFieldDefinition[$fieldName]["fieldNameAux"]]))? $arrayFieldNameForException[$arrayFieldDefinition[$fieldName]["fieldNameAux"]] : "";
|
||||
@@ -435,38 +435,6 @@ class Process
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Verify if doesn't exists the Task in table TASK
|
||||
*
|
||||
* @param string $processUid Unique id of Process
|
||||
* @param string $taskUid Unique id of Task
|
||||
* @param string $fieldNameForException Field name for the exception
|
||||
*
|
||||
* return void Throw exception if doesn't exists the Task in table TASK
|
||||
*/
|
||||
public function throwExceptionIfNotExistsTask($processUid, $taskUid, $fieldNameForException)
|
||||
{
|
||||
try {
|
||||
$criteria = new \Criteria("workflow");
|
||||
|
||||
$criteria->addSelectColumn(\TaskPeer::TAS_UID);
|
||||
|
||||
if ($processUid != "") {
|
||||
$criteria->add(\TaskPeer::PRO_UID, $processUid, \Criteria::EQUAL);
|
||||
}
|
||||
|
||||
$criteria->add(\TaskPeer::TAS_UID, $taskUid, \Criteria::EQUAL);
|
||||
|
||||
$rsCriteria = \TaskPeer::doSelectRS($criteria);
|
||||
|
||||
if (!$rsCriteria->next()) {
|
||||
throw new \Exception(\G::LoadTranslation("ID_ACTIVITY_DOES_NOT_EXIST", array($fieldNameForException, $taskUid)));
|
||||
}
|
||||
} catch (\Exception $e) {
|
||||
throw $e;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Verify if doesn't exists the Template in Routing Screen Template
|
||||
*
|
||||
|
||||
@@ -211,22 +211,6 @@ class Step
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Verify if doesn't exist the Task in table TASK
|
||||
*
|
||||
* @param string $taskUid Unique id of Task
|
||||
*
|
||||
* return void Throw exception if doesn't exist the Task in table TASK
|
||||
*/
|
||||
public function throwExceptionIfNotExistsTask($taskUid)
|
||||
{
|
||||
$task = new \Task();
|
||||
|
||||
if (!$task->taskExists($taskUid)) {
|
||||
throw new \Exception(\G::LoadTranslation("ID_ACTIVITY_DOES_NOT_EXIST", array($this->arrayParamException["taskUid"], $taskUid)));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Verify if doesn't exist the Process in table PROCESS
|
||||
*
|
||||
@@ -260,10 +244,12 @@ class Step
|
||||
unset($arrayData["STEP_UID"]);
|
||||
|
||||
//Verify data
|
||||
$this->throwExceptionIfNotExistsTask($taskUid);
|
||||
$task = new \ProcessMaker\BusinessModel\Task();
|
||||
|
||||
$this->throwExceptionIfNotExistsProcess($processUid);
|
||||
|
||||
$task->throwExceptionIfNotExistsTask($processUid, $taskUid, $this->arrayParamException["taskUid"]);
|
||||
|
||||
if (!isset($arrayData["STEP_TYPE_OBJ"])) {
|
||||
throw new \Exception(\G::LoadTranslation("ID_UNDEFINED_VALUE_IS_REQUIRED", array($this->arrayParamException["stepTypeObj"])));
|
||||
}
|
||||
@@ -495,7 +481,9 @@ class Step
|
||||
$step->setArrayParamException($this->arrayParamException);
|
||||
|
||||
//Verify data
|
||||
$this->throwExceptionIfNotExistsTask($taskUid);
|
||||
$task = new \ProcessMaker\BusinessModel\Task();
|
||||
|
||||
$task->throwExceptionIfNotExistsTask("", $taskUid, $this->arrayParamException["taskUid"]);
|
||||
|
||||
//Get data
|
||||
$criteria = new \Criteria("workflow");
|
||||
@@ -638,7 +626,9 @@ class Step
|
||||
}
|
||||
|
||||
if ($stepUid == "") {
|
||||
$this->throwExceptionIfNotExistsTask($taskUid);
|
||||
$task = new \ProcessMaker\BusinessModel\Task();
|
||||
|
||||
$task->throwExceptionIfNotExistsTask("", $taskUid, $this->arrayParamException["taskUid"]);
|
||||
}
|
||||
|
||||
//Get data
|
||||
@@ -753,7 +743,9 @@ class Step
|
||||
}
|
||||
|
||||
if ($stepUid == "") {
|
||||
$this->throwExceptionIfNotExistsTask($taskUid);
|
||||
$task = new \ProcessMaker\BusinessModel\Task();
|
||||
|
||||
$task->throwExceptionIfNotExistsTask("", $taskUid, $this->arrayParamException["taskUid"]);
|
||||
}
|
||||
|
||||
//Get data
|
||||
@@ -937,10 +929,12 @@ class Step
|
||||
unset($arrayData["STEP_UID"]);
|
||||
|
||||
//Verify data
|
||||
$this->throwExceptionIfNotExistsTask($taskUid);
|
||||
$task = new \ProcessMaker\BusinessModel\Task();
|
||||
|
||||
$this->throwExceptionIfNotExistsProcess($processUid);
|
||||
|
||||
$task->throwExceptionIfNotExistsTask($processUid, $taskUid, $this->arrayParamException["taskUid"]);
|
||||
|
||||
if (!isset($arrayData["STEP_TYPE_OBJ"])) {
|
||||
throw new \Exception(\G::LoadTranslation("ID_UNDEFINED_VALUE_IS_REQUIRED", array($this->arrayParamException["stepTypeObj"])));
|
||||
}
|
||||
|
||||
@@ -64,18 +64,34 @@ class Task
|
||||
}
|
||||
|
||||
/**
|
||||
* Verify if doesn't exist the Task in table TASK
|
||||
* Verify if doesn't exists the Task
|
||||
*
|
||||
* @param string $taskUid Unique id of Task
|
||||
* @param string $processUid Unique id of Process
|
||||
* @param string $taskUid Unique id of Task
|
||||
* @param string $fieldNameForException Field name for the exception
|
||||
*
|
||||
* return void Throw exception if doesn't exist the Task in table TASK
|
||||
* return void Throw exception if doesn't exists the Task
|
||||
*/
|
||||
public function throwExceptionIfNotExistsTask($taskUid)
|
||||
public function throwExceptionIfNotExistsTask($processUid, $taskUid, $fieldNameForException)
|
||||
{
|
||||
$task = new \Task();
|
||||
try {
|
||||
$criteria = new \Criteria("workflow");
|
||||
|
||||
if (!$task->taskExists($taskUid)) {
|
||||
throw new \Exception(\G::LoadTranslation("ID_ACTIVITY_DOES_NOT_EXIST", array($this->arrayParamException["taskUid"], $taskUid)));
|
||||
$criteria->addSelectColumn(\TaskPeer::TAS_UID);
|
||||
|
||||
if ($processUid != "") {
|
||||
$criteria->add(\TaskPeer::PRO_UID, $processUid, \Criteria::EQUAL);
|
||||
}
|
||||
|
||||
$criteria->add(\TaskPeer::TAS_UID, $taskUid, \Criteria::EQUAL);
|
||||
|
||||
$rsCriteria = \TaskPeer::doSelectRS($criteria);
|
||||
|
||||
if (!$rsCriteria->next()) {
|
||||
throw new \Exception(\G::LoadTranslation("ID_ACTIVITY_DOES_NOT_EXIST", array($fieldNameForException, $taskUid)));
|
||||
}
|
||||
} catch (\Exception $e) {
|
||||
throw $e;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -475,7 +491,7 @@ class Task
|
||||
$arrayAvailableStep = array();
|
||||
|
||||
//Verify data
|
||||
$this->throwExceptionIfNotExistsTask($taskUid);
|
||||
$this->throwExceptionIfNotExistsTask("", $taskUid, $this->arrayParamException["taskUid"]);
|
||||
|
||||
//Load Task
|
||||
$task = new \Task();
|
||||
@@ -678,7 +694,7 @@ class Task
|
||||
$step->setArrayParamException($this->arrayParamException);
|
||||
|
||||
//Verify data
|
||||
$this->throwExceptionIfNotExistsTask($taskUid);
|
||||
$this->throwExceptionIfNotExistsTask("", $taskUid, $this->arrayParamException["taskUid"]);
|
||||
|
||||
//Get data
|
||||
$criteria = new \Criteria("workflow");
|
||||
@@ -753,277 +769,383 @@ class Task
|
||||
}
|
||||
|
||||
/**
|
||||
* Return a assignee list of an activity
|
||||
* Get data of a Task-Assignee from a record
|
||||
*
|
||||
* @param string $sProcessUID {@min 32} {@max 32}
|
||||
* @param string $sTaskUID {@min 32} {@max 32}
|
||||
* @param string $filter
|
||||
* @param int $start
|
||||
* @param int $limit
|
||||
* @param string $type
|
||||
* @param array $record Record
|
||||
* @param int $taskUserType
|
||||
*
|
||||
* return array
|
||||
*
|
||||
* @access public
|
||||
* return array Return an array with data Task-Assignee
|
||||
*/
|
||||
public function getTaskAssignees($sProcessUID, $sTaskUID, $filter, $start, $limit, $type)
|
||||
public function getTaskAssigneeDataFromRecord(array $record, $taskUserType)
|
||||
{
|
||||
try {
|
||||
require_once (PATH_RBAC_HOME . "engine" . PATH_SEP . "classes" . PATH_SEP . "model" . PATH_SEP . "RbacUsers.php");
|
||||
require_once (PATH_TRUNK . "workflow" . PATH_SEP . "engine" . PATH_SEP . "classes" . PATH_SEP . "model" . PATH_SEP . "TaskUser.php");
|
||||
require_once (PATH_TRUNK . "workflow" . PATH_SEP . "engine" . PATH_SEP . "classes" . PATH_SEP . "model" . PATH_SEP . "GroupUser.php");
|
||||
Validator::proUid($sProcessUID, '$prj_uid');
|
||||
$this->validateActUid($sTaskUID);
|
||||
$aUsers = array();
|
||||
$sDelimiter = \DBAdapter::getStringDelimiter();
|
||||
$oCriteria = new \Criteria('workflow');
|
||||
$oCriteria->addAsColumn('GRP_TITLE', 'C.CON_VALUE');
|
||||
$oCriteria->addSelectColumn(\TaskUserPeer::TAS_UID);
|
||||
$oCriteria->addSelectColumn(\TaskUserPeer::USR_UID);
|
||||
$oCriteria->addSelectColumn(\TaskUserPeer::TU_TYPE);
|
||||
$oCriteria->addSelectColumn(\TaskUserPeer::TU_RELATION);
|
||||
$oCriteria->addAlias('C', 'CONTENT');
|
||||
$aConditions = array();
|
||||
$aConditions[] = array(\TaskUserPeer::USR_UID, 'C.CON_ID' );
|
||||
$aConditions[] = array('C.CON_CATEGORY', $sDelimiter . 'GRP_TITLE' . $sDelimiter );
|
||||
$aConditions[] = array('C.CON_LANG', $sDelimiter . SYS_LANG . $sDelimiter );
|
||||
$oCriteria->addJoinMC($aConditions, \Criteria::LEFT_JOIN);
|
||||
$oCriteria->add(\TaskUserPeer::TAS_UID, $sTaskUID);
|
||||
$oCriteria->add(\TaskUserPeer::TU_TYPE, 1);
|
||||
$oCriteria->add(\TaskUserPeer::TU_RELATION, 2);
|
||||
$oDataset = \TaskUserPeer::doSelectRS($oCriteria);
|
||||
$oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
|
||||
$oDataset->next();
|
||||
$c = 0;
|
||||
$oTasks = new \Tasks();
|
||||
$aAux = $oTasks->getGroupsOfTask($sTaskUID, 1);
|
||||
$aUIDS1 = array();
|
||||
foreach ($aAux as $aGroup) {
|
||||
$aUIDS1[] = $aGroup['GRP_UID'];
|
||||
switch ($taskUserType) {
|
||||
case 1:
|
||||
return array(
|
||||
"aas_uid" => $record[0],
|
||||
"aas_name" => $record[1],
|
||||
"aas_lastname" => $record[2],
|
||||
"aas_username" => $record[3],
|
||||
"aas_type" => $record[4]
|
||||
);
|
||||
break;
|
||||
case 2:
|
||||
return array(
|
||||
"ada_uid" => $record[0],
|
||||
"ada_name" => $record[1],
|
||||
"ada_lastname" => $record[2],
|
||||
"ada_username" => $record[3],
|
||||
"ada_type" => $record[4]
|
||||
);
|
||||
break;
|
||||
}
|
||||
$criteria = new \Criteria( 'workflow' );
|
||||
$criteria->addSelectColumn( \GroupwfPeer::GRP_UID );
|
||||
$criteria->addSelectColumn( \GroupwfPeer::GRP_STATUS );
|
||||
$criteria->addSelectColumn( \GroupwfPeer::GRP_UX );
|
||||
$criteria->addAsColumn( 'GRP_TITLE', \ContentPeer::CON_VALUE );
|
||||
$criteria->addJoin( \GroupwfPeer::GRP_UID, \ContentPeer::CON_ID, \Criteria::LEFT_JOIN );
|
||||
$criteria->add( \ContentPeer::CON_CATEGORY, 'GRP_TITLE' );
|
||||
$criteria->add( \ContentPeer::CON_LANG, SYS_LANG );
|
||||
$criteria->addAscendingOrderByColumn( \ContentPeer::CON_VALUE );
|
||||
if ($filter != '') {
|
||||
$criteria->add( \ContentPeer::CON_VALUE, '%' . $filter . '%', \Criteria::LIKE );
|
||||
}
|
||||
$oDataset = \GroupwfPeer::doSelectRS( $criteria );
|
||||
$oDataset->setFetchmode( \ResultSet::FETCHMODE_ASSOC );
|
||||
$groups = array ();
|
||||
while ($oDataset->next()) {
|
||||
$groups[] = $oDataset->getRow();
|
||||
}
|
||||
$result = array ('rows' => $groups);
|
||||
foreach ($result['rows'] as $results) {
|
||||
if (in_array($results['GRP_UID'], $aUIDS1)) {
|
||||
$c++;
|
||||
$oCriteria = new \Criteria('workflow');
|
||||
$oCriteria->addSelectColumn('COUNT(*) AS MEMBERS_NUMBER');
|
||||
$oCriteria->add(\GroupUserPeer::GRP_UID, $results['GRP_UID']);
|
||||
$oDataset2 = \GroupUserPeer::doSelectRS($oCriteria);
|
||||
$oDataset2->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
|
||||
$oDataset2->next();
|
||||
$aRow2 = $oDataset2->getRow();
|
||||
if ($type == '' || $type == 'group') {
|
||||
$aUsers[] = array('aas_uid' => $results['GRP_UID'],
|
||||
'aas_name' => (!isset($aRow2['GROUP_INACTIVE']) ? $results['GRP_TITLE'] .
|
||||
' (' . $aRow2['MEMBERS_NUMBER'] . ' ' .
|
||||
((int) $aRow2['MEMBERS_NUMBER'] == 1 ? \G::LoadTranslation('ID_USER') : \G::LoadTranslation('ID_USERS')).
|
||||
')' . '' : $results['GRP_TITLE'] . ' ' . $aRow2['GROUP_INACTIVE']),
|
||||
'aas_lastname' => "",
|
||||
'aas_username' => "",
|
||||
'aas_type' => "group" );
|
||||
}
|
||||
}
|
||||
}
|
||||
$oCriteria = new \Criteria('workflow');
|
||||
$oCriteria->addSelectColumn(\UsersPeer::USR_FIRSTNAME);
|
||||
$oCriteria->addSelectColumn(\UsersPeer::USR_LASTNAME);
|
||||
$oCriteria->addSelectColumn(\UsersPeer::USR_USERNAME);
|
||||
$oCriteria->addSelectColumn(\UsersPeer::USR_EMAIL);
|
||||
if ($filter != '') {
|
||||
$oCriteria->add( $oCriteria->getNewCriterion( \UsersPeer::USR_USERNAME, "%$filter%", \Criteria::LIKE )->addOr( $oCriteria->getNewCriterion( \UsersPeer::USR_FIRSTNAME, "%$filter%", \Criteria::LIKE ) )->addOr( $oCriteria->getNewCriterion( \UsersPeer::USR_LASTNAME, "%$filter%", \Criteria::LIKE ) ) );
|
||||
}
|
||||
$oCriteria->addSelectColumn(\TaskUserPeer::TAS_UID);
|
||||
$oCriteria->addSelectColumn(\TaskUserPeer::USR_UID);
|
||||
$oCriteria->addSelectColumn(\TaskUserPeer::TU_TYPE);
|
||||
$oCriteria->addSelectColumn(\TaskUserPeer::TU_RELATION);
|
||||
$oCriteria->addJoin(\TaskUserPeer::USR_UID, \UsersPeer::USR_UID, \Criteria::LEFT_JOIN);
|
||||
$oCriteria->add(\TaskUserPeer::TAS_UID, $sTaskUID);
|
||||
$oCriteria->add(\TaskUserPeer::TU_TYPE, 1);
|
||||
$oCriteria->add(\TaskUserPeer::TU_RELATION, 1);
|
||||
$oDataset = \TaskUserPeer::doSelectRS($oCriteria);
|
||||
$oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
|
||||
$oDataset->next();
|
||||
while ($aRow = $oDataset->getRow()) {
|
||||
if ($type == '' || $type == 'user') {
|
||||
$aUsers[] = array('aas_uid' => $aRow['USR_UID'],
|
||||
'aas_name' => $aRow['USR_FIRSTNAME'],
|
||||
'aas_lastname' => $aRow['USR_LASTNAME'],
|
||||
'aas_username' => $aRow['USR_USERNAME'],
|
||||
'aas_type' => "user" );
|
||||
}
|
||||
$oDataset->next();
|
||||
}
|
||||
if ($start) {
|
||||
if ($start < 0) {
|
||||
throw (new \Exception( 'Invalid value specified for start.'));
|
||||
}
|
||||
} else {
|
||||
$start = 0;
|
||||
}
|
||||
if (isset($limit)) {
|
||||
if ($limit < 0) {
|
||||
throw (new \Exception( 'Invalid value specified for limit.'));
|
||||
} else {
|
||||
if ($limit == 0) {
|
||||
return array();
|
||||
}
|
||||
}
|
||||
} else {
|
||||
$limit = count($aUsers) + 1;
|
||||
}
|
||||
$aUsers = $this->arrayPagination($aUsers, $start, $limit);
|
||||
return $aUsers;
|
||||
} catch (\Exception $e) {
|
||||
throw $e;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the available users and users groups to assigned to an activity
|
||||
* Return an assignee list of an activity
|
||||
*
|
||||
* @param string $sProcessUID {@min 32} {@max 32}
|
||||
* @param string $sTaskUID {@min 32} {@max 32}
|
||||
* @param string $filter
|
||||
* @param string $processUid
|
||||
* @param string $taskUid
|
||||
* @param string $option
|
||||
* @param int $taskUserType
|
||||
* @param array $arrayFilterData
|
||||
* @param int $start
|
||||
* @param int $limit
|
||||
* @param string $type
|
||||
*
|
||||
* return array
|
||||
*
|
||||
* @access public
|
||||
*/
|
||||
public function getTaskAvailableAssignee($sProcessUID, $sTaskUID, $filter, $start, $limit, $type)
|
||||
public function getTaskAssignees($processUid, $taskUid, $option, $taskUserType, $arrayFilterData = null, $start = null, $limit = null, $type = null)
|
||||
{
|
||||
try {
|
||||
require_once (PATH_RBAC_HOME . "engine" . PATH_SEP . "classes" . PATH_SEP . "model" . PATH_SEP . "RbacUsers.php");
|
||||
require_once (PATH_TRUNK . "workflow" . PATH_SEP . "engine" . PATH_SEP . "classes" . PATH_SEP . "model" . PATH_SEP . "TaskUser.php");
|
||||
require_once (PATH_TRUNK . "workflow" . PATH_SEP . "engine" . PATH_SEP . "classes" . PATH_SEP . "model" . PATH_SEP . "GroupUser.php");
|
||||
Validator::proUid($sProcessUID, '$prj_uid');
|
||||
$this->validateActUid($sTaskUID);
|
||||
$iType = 1;
|
||||
$oTasks = new \Tasks();
|
||||
$aAux = $oTasks->getGroupsOfTask($sTaskUID, $iType);
|
||||
$aUIDS1 = array();
|
||||
$aUIDS2 = array();
|
||||
foreach ($aAux as $aGroup) {
|
||||
$aUIDS1[] = $aGroup['GRP_UID'];
|
||||
$arrayAssignee = array();
|
||||
|
||||
$numRecTotal = 0;
|
||||
$startbk = $start;
|
||||
$limitbk = $limit;
|
||||
|
||||
//Verify data
|
||||
$process = new \ProcessMaker\BusinessModel\Process();
|
||||
|
||||
$process->throwExceptionIfDataNotMetPagerVarDefinition(array("start" => $start, "limit" => $limit), array("start" => "start", "limit" => "limit"));
|
||||
|
||||
$arrayFieldDefinition = array(
|
||||
"OPTION" => array("type" => "string", "required" => true, "empty" => false, "defaultValues" => array("ASSIGNEE", "AVAILABLE"), "fieldNameAux" => "option"),
|
||||
"TASK_USER_TYPE" => array("type" => "int", "required" => true, "empty" => false, "defaultValues" => array(1, 2), "fieldNameAux" => "taskUserType")
|
||||
);
|
||||
|
||||
$process->throwExceptionIfDataNotMetFieldDefinition(array("OPTION" => $option, "TASK_USER_TYPE" => $taskUserType), $arrayFieldDefinition, array("option" => "option", "taskUserType" => "taskUserType"), false);
|
||||
|
||||
//Set variables
|
||||
$filterName = "filter";
|
||||
|
||||
if (!is_null($arrayFilterData) && is_array($arrayFilterData) && isset($arrayFilterData["filter"])) {
|
||||
$arrayAux = array(
|
||||
"" => "filter",
|
||||
"LEFT" => "lfilter",
|
||||
"RIGHT" => "rfilter"
|
||||
);
|
||||
|
||||
$filterName = $arrayAux[(isset($arrayFilterData["filterOption"]))? $arrayFilterData["filterOption"] : ""];
|
||||
}
|
||||
$aAux = $oTasks->getUsersOfTask($sTaskUID, $iType);
|
||||
foreach ($aAux as $aUser) {
|
||||
$aUIDS2[] = $aUser['USR_UID'];
|
||||
|
||||
//Get data
|
||||
if (!is_null($limit) && $limit . "" == "0") {
|
||||
//Return
|
||||
return array(
|
||||
"total" => $numRecTotal,
|
||||
"start" => (int)((!is_null($startbk))? $startbk : 0),
|
||||
"limit" => (int)((!is_null($limitbk))? $limitbk : 0),
|
||||
$filterName => (!is_null($arrayFilterData) && is_array($arrayFilterData) && isset($arrayFilterData["filter"]))? $arrayFilterData["filter"] : "",
|
||||
"data" => $arrayAssignee
|
||||
);
|
||||
}
|
||||
$aUsers = array();
|
||||
$c = 0;
|
||||
$oTasks = new \Tasks();
|
||||
$aAux = $oTasks->getGroupsOfTask($sTaskUID, 1);
|
||||
$aUIDS1 = array();
|
||||
foreach ($aAux as $aGroup) {
|
||||
$aUIDS1[] = $aGroup['GRP_UID'];
|
||||
|
||||
//Verify data
|
||||
$process->throwExceptionIfNotExistsProcess($processUid, "prj_uid");
|
||||
|
||||
$this->throwExceptionIfNotExistsTask($processUid, $taskUid, "act_uid");
|
||||
|
||||
//Set variables
|
||||
$numRecTotalGroup = 0;
|
||||
$numRecTotalUser = 0;
|
||||
|
||||
switch ($option) {
|
||||
case "ASSIGNEE":
|
||||
break;
|
||||
case "AVAILABLE":
|
||||
$task = new \Tasks();
|
||||
|
||||
$arrayGroupUid = array();
|
||||
|
||||
foreach ($task->getGroupsOfTask($taskUid, $taskUserType) as $value) {
|
||||
$arrayGroupUid[] = $value['GRP_UID'];
|
||||
}
|
||||
|
||||
$arrayUserUid = array();
|
||||
|
||||
foreach ($task->getUsersOfTask($taskUid, $taskUserType) as $value) {
|
||||
$arrayUserUid[] = $value['USR_UID'];
|
||||
}
|
||||
break;
|
||||
}
|
||||
$criteria = new \Criteria( 'workflow' );
|
||||
$criteria->addSelectColumn( \GroupwfPeer::GRP_UID );
|
||||
$criteria->addSelectColumn( \GroupwfPeer::GRP_STATUS );
|
||||
$criteria->addSelectColumn( \GroupwfPeer::GRP_UX );
|
||||
$criteria->addAsColumn( 'GRP_TITLE', \ContentPeer::CON_VALUE );
|
||||
$criteria->addJoin( \GroupwfPeer::GRP_UID, \ContentPeer::CON_ID, \Criteria::LEFT_JOIN );
|
||||
$criteria->add(\GroupwfPeer::GRP_STATUS, "ACTIVE", \Criteria::EQUAL);
|
||||
$criteria->add( \ContentPeer::CON_CATEGORY, 'GRP_TITLE' );
|
||||
$criteria->add( \ContentPeer::CON_LANG, SYS_LANG );
|
||||
$criteria->addAscendingOrderByColumn( \ContentPeer::CON_VALUE );
|
||||
if ($filter != '') {
|
||||
$criteria->add( \ContentPeer::CON_VALUE, '%' . $filter . '%', \Criteria::LIKE );
|
||||
|
||||
//Groups
|
||||
//Query
|
||||
if (empty($type) || $type == "group") {
|
||||
$criteriaGroup = new \Criteria("workflow");
|
||||
|
||||
$criteriaGroup->addSelectColumn(\GroupwfPeer::GRP_UID);
|
||||
$criteriaGroup->addAsColumn("GRP_TITLE", \ContentPeer::CON_VALUE);
|
||||
|
||||
switch ($option) {
|
||||
case "ASSIGNEE":
|
||||
$criteriaGroup->addJoin(\TaskUserPeer::USR_UID, \GroupwfPeer::GRP_UID, \Criteria::LEFT_JOIN);
|
||||
$criteriaGroup->add(\TaskUserPeer::TAS_UID, $taskUid, \Criteria::EQUAL);
|
||||
$criteriaGroup->add(\TaskUserPeer::TU_TYPE, $taskUserType, \Criteria::EQUAL);
|
||||
$criteriaGroup->add(\TaskUserPeer::TU_RELATION, 2, \Criteria::EQUAL);
|
||||
break;
|
||||
case "AVAILABLE":
|
||||
$criteriaGroup->add(\GroupwfPeer::GRP_UID, $arrayGroupUid, \Criteria::NOT_IN);
|
||||
break;
|
||||
}
|
||||
|
||||
$criteriaGroup->addJoin(\GroupwfPeer::GRP_UID, \ContentPeer::CON_ID, \Criteria::LEFT_JOIN);
|
||||
$criteriaGroup->add(\ContentPeer::CON_CATEGORY, "GRP_TITLE", \Criteria::EQUAL);
|
||||
$criteriaGroup->add(\ContentPeer::CON_LANG, SYS_LANG, \Criteria::EQUAL);
|
||||
|
||||
if (!is_null($arrayFilterData) && is_array($arrayFilterData) && isset($arrayFilterData["filter"]) && trim($arrayFilterData["filter"]) != "") {
|
||||
$arraySearch = array(
|
||||
"" => "%" . $arrayFilterData["filter"] . "%",
|
||||
"LEFT" => $arrayFilterData["filter"] . "%",
|
||||
"RIGHT" => "%" . $arrayFilterData["filter"]
|
||||
);
|
||||
|
||||
$search = $arraySearch[(isset($arrayFilterData["filterOption"]))? $arrayFilterData["filterOption"] : ""];
|
||||
|
||||
$criteriaGroup->add(\ContentPeer::CON_VALUE, $search, \Criteria::LIKE);
|
||||
}
|
||||
|
||||
$criteriaGroup->add(\GroupwfPeer::GRP_STATUS, "ACTIVE", \Criteria::EQUAL);
|
||||
|
||||
//Number records total
|
||||
$criteriaCount = clone $criteriaGroup;
|
||||
|
||||
$criteriaCount->clearSelectColumns();
|
||||
$criteriaCount->addSelectColumn("COUNT(" . \GroupwfPeer::GRP_UID . ") AS NUM_REC");
|
||||
|
||||
switch ($option) {
|
||||
case "ASSIGNEE":
|
||||
$rsCriteriaCount = \TaskUserPeer::doSelectRS($criteriaCount);
|
||||
break;
|
||||
case "AVAILABLE":
|
||||
$rsCriteriaCount = \GroupwfPeer::doSelectRS($criteriaCount);
|
||||
break;
|
||||
}
|
||||
|
||||
$rsCriteriaCount->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
|
||||
|
||||
$result = $rsCriteriaCount->next();
|
||||
$row = $rsCriteriaCount->getRow();
|
||||
|
||||
$numRecTotalGroup = (int)($row["NUM_REC"]);
|
||||
$numRecTotal = $numRecTotal + $numRecTotalGroup;
|
||||
}
|
||||
$oDataset = \GroupwfPeer::doSelectRS( $criteria );
|
||||
$oDataset->setFetchmode( \ResultSet::FETCHMODE_ASSOC );
|
||||
$groups = array ();
|
||||
while ($oDataset->next()) {
|
||||
$groups[] = $oDataset->getRow();
|
||||
|
||||
//Users
|
||||
//Query
|
||||
if (empty($type) || $type == "user") {
|
||||
$criteriaUser = new \Criteria("workflow");
|
||||
|
||||
$criteriaUser->addSelectColumn(\UsersPeer::USR_UID);
|
||||
$criteriaUser->addSelectColumn(\UsersPeer::USR_USERNAME);
|
||||
$criteriaUser->addSelectColumn(\UsersPeer::USR_FIRSTNAME);
|
||||
$criteriaUser->addSelectColumn(\UsersPeer::USR_LASTNAME);
|
||||
|
||||
switch ($option) {
|
||||
case "ASSIGNEE":
|
||||
$criteriaUser->addJoin(\TaskUserPeer::USR_UID, \UsersPeer::USR_UID, \Criteria::LEFT_JOIN);
|
||||
$criteriaUser->add(\TaskUserPeer::TAS_UID, $taskUid, \Criteria::EQUAL);
|
||||
$criteriaUser->add(\TaskUserPeer::TU_TYPE, $taskUserType, \Criteria::EQUAL);
|
||||
$criteriaUser->add(\TaskUserPeer::TU_RELATION, 1, \Criteria::EQUAL);
|
||||
break;
|
||||
case "AVAILABLE":
|
||||
$criteriaUser->add(\UsersPeer::USR_UID, $arrayUserUid, \Criteria::NOT_IN);
|
||||
break;
|
||||
}
|
||||
|
||||
if (!is_null($arrayFilterData) && is_array($arrayFilterData) && isset($arrayFilterData["filter"]) && trim($arrayFilterData["filter"]) != "") {
|
||||
$arraySearch = array(
|
||||
"" => "%" . $arrayFilterData["filter"] . "%",
|
||||
"LEFT" => $arrayFilterData["filter"] . "%",
|
||||
"RIGHT" => "%" . $arrayFilterData["filter"]
|
||||
);
|
||||
|
||||
$search = $arraySearch[(isset($arrayFilterData["filterOption"]))? $arrayFilterData["filterOption"] : ""];
|
||||
|
||||
$criteriaUser->add(
|
||||
$criteriaUser->getNewCriterion(\UsersPeer::USR_USERNAME, $search, \Criteria::LIKE)->addOr(
|
||||
$criteriaUser->getNewCriterion(\UsersPeer::USR_FIRSTNAME, $search, \Criteria::LIKE))->addOr(
|
||||
$criteriaUser->getNewCriterion(\UsersPeer::USR_LASTNAME, $search, \Criteria::LIKE))
|
||||
);
|
||||
}
|
||||
|
||||
$criteriaUser->add(\UsersPeer::USR_STATUS, "ACTIVE", \Criteria::EQUAL);
|
||||
|
||||
//Number records total
|
||||
$criteriaCount = clone $criteriaUser;
|
||||
|
||||
$criteriaCount->clearSelectColumns();
|
||||
$criteriaCount->addSelectColumn("COUNT(" . \UsersPeer::USR_UID . ") AS NUM_REC");
|
||||
|
||||
switch ($option) {
|
||||
case "ASSIGNEE":
|
||||
$rsCriteriaCount = \TaskUserPeer::doSelectRS($criteriaCount);
|
||||
break;
|
||||
case "AVAILABLE":
|
||||
$rsCriteriaCount = \UsersPeer::doSelectRS($criteriaCount);
|
||||
break;
|
||||
}
|
||||
|
||||
$rsCriteriaCount->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
|
||||
|
||||
$result = $rsCriteriaCount->next();
|
||||
$row = $rsCriteriaCount->getRow();
|
||||
|
||||
$numRecTotalUser = (int)($row["NUM_REC"]);
|
||||
$numRecTotal = $numRecTotal + $numRecTotalUser;
|
||||
}
|
||||
$result = array ('rows' => $groups);
|
||||
foreach ($result['rows'] as $results) {
|
||||
if (! in_array($results['GRP_UID'], $aUIDS1)) {
|
||||
$c++;
|
||||
$oCriteria = new \Criteria('workflow');
|
||||
$oCriteria->addSelectColumn('COUNT(*) AS MEMBERS_NUMBER');
|
||||
$oCriteria->add(\GroupUserPeer::GRP_UID, $results['GRP_UID']);
|
||||
$oDataset2 = \GroupUserPeer::doSelectRS($oCriteria);
|
||||
$oDataset2->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
|
||||
$oDataset2->next();
|
||||
$aRow2 = $oDataset2->getRow();
|
||||
if ($type == '' || $type == 'group') {
|
||||
$aUsers[] = array('aas_uid' => $results['GRP_UID'],
|
||||
'aas_name' => (!isset($aRow2['GROUP_INACTIVE']) ? $results['GRP_TITLE'] .
|
||||
' (' . $aRow2['MEMBERS_NUMBER'] . ' ' .
|
||||
((int) $aRow2['MEMBERS_NUMBER'] == 1 ? \G::LoadTranslation('ID_USER') : \G::LoadTranslation('ID_USERS')).
|
||||
')' . '' : $results['GRP_TITLE'] . ' ' . $aRow2['GROUP_INACTIVE']),
|
||||
'aas_lastname' => "",
|
||||
'aas_username' => "",
|
||||
'aas_type' => "group" );
|
||||
|
||||
//Groups
|
||||
//Query
|
||||
if (empty($type) || $type == "group") {
|
||||
$criteriaGroup->addAscendingOrderByColumn("GRP_TITLE");
|
||||
|
||||
if (!is_null($start)) {
|
||||
$criteriaGroup->setOffset((int)($start));
|
||||
}
|
||||
|
||||
if (!is_null($limit)) {
|
||||
$criteriaGroup->setLimit((int)($limit));
|
||||
}
|
||||
|
||||
switch ($option) {
|
||||
case "ASSIGNEE":
|
||||
$rsCriteriaGroup = \TaskUserPeer::doSelectRS($criteriaGroup);
|
||||
break;
|
||||
case "AVAILABLE":
|
||||
$rsCriteriaGroup = \GroupwfPeer::doSelectRS($criteriaGroup);
|
||||
break;
|
||||
}
|
||||
|
||||
$rsCriteriaGroup->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
|
||||
|
||||
$numRecGroup = 0;
|
||||
|
||||
while ($rsCriteriaGroup->next()) {
|
||||
$row = $rsCriteriaGroup->getRow();
|
||||
|
||||
$criteria2 = new \Criteria("workflow");
|
||||
|
||||
$criteria2->addSelectColumn("COUNT(" . \GroupUserPeer::GRP_UID . ") AS NUM_MEM");
|
||||
$criteria2->add(\GroupUserPeer::GRP_UID, $row["GRP_UID"], \Criteria::EQUAL);
|
||||
|
||||
$rsCriteria2 = \GroupUserPeer::doSelectRS($criteria2);
|
||||
$rsCriteria2->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
|
||||
|
||||
$result = $rsCriteria2->next();
|
||||
$row2 = $rsCriteria2->getRow();
|
||||
|
||||
$arrayAssignee[] = $this->getTaskAssigneeDataFromRecord(
|
||||
array(
|
||||
$row["GRP_UID"],
|
||||
$row["GRP_TITLE"] . " (" . $row2["NUM_MEM"] . " " . \G::LoadTranslation(((int)($row2["NUM_MEM"]) == 1)? "ID_USER" : "ID_USERS") . ")",
|
||||
"",
|
||||
"",
|
||||
"group"
|
||||
),
|
||||
$taskUserType
|
||||
);
|
||||
|
||||
$numRecGroup++;
|
||||
}
|
||||
}
|
||||
|
||||
//Users
|
||||
//Query
|
||||
if (empty($type) || $type == "user") {
|
||||
$flagUser = true;
|
||||
|
||||
if ($numRecTotalGroup > 0) {
|
||||
if ($numRecGroup > 0) {
|
||||
if (!is_null($limit)) {
|
||||
if ($numRecGroup < (int)($limit)) {
|
||||
$start = 0;
|
||||
$limit = $limit - $numRecGroup;
|
||||
} else {
|
||||
$flagUser = false;
|
||||
}
|
||||
} else {
|
||||
$start = 0;
|
||||
}
|
||||
} else {
|
||||
$start = (int)($start) - $numRecTotalGroup;
|
||||
}
|
||||
}
|
||||
|
||||
if ($flagUser) {
|
||||
//Users
|
||||
//Query
|
||||
$criteriaUser->addAscendingOrderByColumn(\UsersPeer::USR_FIRSTNAME);
|
||||
|
||||
if (!is_null($start)) {
|
||||
$criteriaUser->setOffset((int)($start));
|
||||
}
|
||||
|
||||
if (!is_null($limit)) {
|
||||
$criteriaUser->setLimit((int)($limit));
|
||||
}
|
||||
|
||||
switch ($option) {
|
||||
case "ASSIGNEE":
|
||||
$rsCriteriaUser = \TaskUserPeer::doSelectRS($criteriaUser);
|
||||
break;
|
||||
case "AVAILABLE":
|
||||
$rsCriteriaUser = \UsersPeer::doSelectRS($criteriaUser);
|
||||
break;
|
||||
}
|
||||
|
||||
$rsCriteriaUser->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
|
||||
|
||||
while ($rsCriteriaUser->next()) {
|
||||
$row = $rsCriteriaUser->getRow();
|
||||
|
||||
|
||||
$arrayAssignee[] = $this->getTaskAssigneeDataFromRecord(
|
||||
array(
|
||||
$row["USR_UID"],
|
||||
$row["USR_FIRSTNAME"],
|
||||
$row["USR_LASTNAME"],
|
||||
$row["USR_USERNAME"],
|
||||
"user"
|
||||
),
|
||||
$taskUserType
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
$oCriteria = new \Criteria('workflow');
|
||||
$oCriteria->addSelectColumn(\UsersPeer::USR_UID);
|
||||
$oCriteria->addSelectColumn(\UsersPeer::USR_USERNAME);
|
||||
$oCriteria->addSelectColumn(\UsersPeer::USR_FIRSTNAME);
|
||||
$oCriteria->addSelectColumn(\UsersPeer::USR_LASTNAME);
|
||||
$oCriteria->addSelectColumn(\UsersPeer::USR_EMAIL);
|
||||
if ($filter != '') {
|
||||
$oCriteria->add( $oCriteria->getNewCriterion( \UsersPeer::USR_USERNAME, "%$filter%", \Criteria::LIKE )->addOr( $oCriteria->getNewCriterion( \UsersPeer::USR_FIRSTNAME, "%$filter%", \Criteria::LIKE ) )->addOr( $oCriteria->getNewCriterion( \UsersPeer::USR_LASTNAME, "%$filter%", \Criteria::LIKE ) ) );
|
||||
}
|
||||
$oCriteria->add(\UsersPeer::USR_STATUS, 'ACTIVE');
|
||||
$oCriteria->add(\UsersPeer::USR_UID, $aUIDS2, \Criteria::NOT_IN);
|
||||
$oDataset = \UsersPeer::doSelectRS($oCriteria);
|
||||
$oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
|
||||
$oDataset->next();
|
||||
while ($aRow = $oDataset->getRow()) {
|
||||
if ($type == '' || $type == 'user') {
|
||||
$aUsers[] = array('aas_uid' => $aRow['USR_UID'],
|
||||
'aas_name' => $aRow['USR_FIRSTNAME'],
|
||||
'aas_lastname' => $aRow['USR_LASTNAME'],
|
||||
'aas_username' => $aRow['USR_USERNAME'],
|
||||
'aas_type' => "user" );
|
||||
}
|
||||
$oDataset->next();
|
||||
}
|
||||
if ($start) {
|
||||
if ($start < 0) {
|
||||
throw new \Exception(\G::LoadTranslation("ID_INVALID_START"));
|
||||
}
|
||||
} else {
|
||||
$start = 0;
|
||||
}
|
||||
if (isset($limit)) {
|
||||
if ($limit < 0) {
|
||||
throw new \Exception(\G::LoadTranslation("ID_INVALID_LIMIT"));
|
||||
} else {
|
||||
if ($limit == 0) {
|
||||
return array();
|
||||
}
|
||||
}
|
||||
} else {
|
||||
$limit = count($aUsers) + 1;
|
||||
}
|
||||
$aUsers = $this->arrayPagination($aUsers, $start, $limit);
|
||||
return $aUsers;
|
||||
|
||||
//Return
|
||||
return array(
|
||||
"total" => $numRecTotal,
|
||||
"start" => (int)((!is_null($startbk))? $startbk : 0),
|
||||
"limit" => (int)((!is_null($limitbk))? $limitbk : 0),
|
||||
$filterName => (!is_null($arrayFilterData) && is_array($arrayFilterData) && isset($arrayFilterData["filter"]))? $arrayFilterData["filter"] : "",
|
||||
"data" => $arrayAssignee
|
||||
);
|
||||
} catch (\Exception $e) {
|
||||
throw $e;
|
||||
}
|
||||
@@ -1253,283 +1375,6 @@ class Task
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Return a adhoc assignee list of an activity
|
||||
*
|
||||
* @param string $sProcessUID {@min 32} {@max 32}
|
||||
* @param string $sTaskUID {@min 32} {@max 32}
|
||||
* @param string $filter
|
||||
* @param int $start
|
||||
* @param int $limit
|
||||
* @param string $type
|
||||
*
|
||||
* return array
|
||||
*
|
||||
* @access public
|
||||
*/
|
||||
public function getTaskAdhocAssignees($sProcessUID, $sTaskUID, $filter, $start, $limit, $type)
|
||||
{
|
||||
try {
|
||||
require_once (PATH_RBAC_HOME . "engine" . PATH_SEP . "classes" . PATH_SEP . "model" . PATH_SEP . "RbacUsers.php");
|
||||
require_once (PATH_TRUNK . "workflow" . PATH_SEP . "engine" . PATH_SEP . "classes" . PATH_SEP . "model" . PATH_SEP . "TaskUser.php");
|
||||
require_once (PATH_TRUNK . "workflow" . PATH_SEP . "engine" . PATH_SEP . "classes" . PATH_SEP . "model" . PATH_SEP . "GroupUser.php");
|
||||
Validator::proUid($sProcessUID, '$prj_uid');
|
||||
$this->validateActUid($sTaskUID);
|
||||
$aUsers = array();
|
||||
$sDelimiter = \DBAdapter::getStringDelimiter();
|
||||
$oCriteria = new \Criteria('workflow');
|
||||
$oCriteria->addAsColumn('GRP_TITLE', 'C.CON_VALUE');
|
||||
$oCriteria->addSelectColumn(\TaskUserPeer::TAS_UID);
|
||||
$oCriteria->addSelectColumn(\TaskUserPeer::USR_UID);
|
||||
$oCriteria->addSelectColumn(\TaskUserPeer::TU_TYPE);
|
||||
$oCriteria->addSelectColumn(\TaskUserPeer::TU_RELATION);
|
||||
$oCriteria->addAlias('C', 'CONTENT');
|
||||
$aConditions = array();
|
||||
$aConditions[] = array(\TaskUserPeer::USR_UID, 'C.CON_ID' );
|
||||
$aConditions[] = array('C.CON_CATEGORY', $sDelimiter . 'GRP_TITLE' . $sDelimiter );
|
||||
$aConditions[] = array('C.CON_LANG', $sDelimiter . SYS_LANG . $sDelimiter );
|
||||
$oCriteria->addJoinMC($aConditions, \Criteria::LEFT_JOIN);
|
||||
$oCriteria->add(\TaskUserPeer::TAS_UID, $sTaskUID);
|
||||
$oCriteria->add(\TaskUserPeer::TU_TYPE, 2);
|
||||
$oCriteria->add(\TaskUserPeer::TU_RELATION, 2);
|
||||
$oDataset = \TaskUserPeer::doSelectRS($oCriteria);
|
||||
$oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
|
||||
$oDataset->next();
|
||||
$c = 0;
|
||||
$oTasks = new \Tasks();
|
||||
$aAux = $oTasks->getGroupsOfTask($sTaskUID, 2);
|
||||
$aUIDS1 = array();
|
||||
foreach ($aAux as $aGroup) {
|
||||
$aUIDS1[] = $aGroup['GRP_UID'];
|
||||
}
|
||||
$criteria = new \Criteria( 'workflow' );
|
||||
$criteria->addSelectColumn( \GroupwfPeer::GRP_UID );
|
||||
$criteria->addSelectColumn( \GroupwfPeer::GRP_STATUS );
|
||||
$criteria->addSelectColumn( \GroupwfPeer::GRP_UX );
|
||||
$criteria->addAsColumn( 'GRP_TITLE', \ContentPeer::CON_VALUE );
|
||||
$criteria->addJoin( \GroupwfPeer::GRP_UID, \ContentPeer::CON_ID, \Criteria::LEFT_JOIN );
|
||||
$criteria->add( \ContentPeer::CON_CATEGORY, 'GRP_TITLE' );
|
||||
$criteria->add( \ContentPeer::CON_LANG, SYS_LANG );
|
||||
$criteria->addAscendingOrderByColumn( \ContentPeer::CON_VALUE );
|
||||
if ($filter != '') {
|
||||
$criteria->add( \ContentPeer::CON_VALUE, '%' . $filter . '%', \Criteria::LIKE );
|
||||
}
|
||||
$oDataset = \GroupwfPeer::doSelectRS( $criteria );
|
||||
$oDataset->setFetchmode( \ResultSet::FETCHMODE_ASSOC );
|
||||
$groups = array ();
|
||||
while ($oDataset->next()) {
|
||||
$groups[] = $oDataset->getRow();
|
||||
}
|
||||
$result = array ('rows' => $groups);
|
||||
foreach ($result['rows'] as $results) {
|
||||
if (in_array($results['GRP_UID'], $aUIDS1)) {
|
||||
$c++;
|
||||
$oCriteria = new \Criteria('workflow');
|
||||
$oCriteria->addSelectColumn('COUNT(*) AS MEMBERS_NUMBER');
|
||||
$oCriteria->add(\GroupUserPeer::GRP_UID, $results['GRP_UID']);
|
||||
$oDataset2 = \GroupUserPeer::doSelectRS($oCriteria);
|
||||
$oDataset2->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
|
||||
$oDataset2->next();
|
||||
$aRow2 = $oDataset2->getRow();
|
||||
if ($type == '' || $type == 'group') {
|
||||
$aUsers[] = array('ada_uid' => $results['GRP_UID'],
|
||||
'ada_name' => (!isset($aRow2['GROUP_INACTIVE']) ? $results['GRP_TITLE'] .
|
||||
' (' . $aRow2['MEMBERS_NUMBER'] . ' ' .
|
||||
((int) $aRow2['MEMBERS_NUMBER'] == 1 ? \G::LoadTranslation('ID_USER') : \G::LoadTranslation('ID_USERS')).
|
||||
')' . '' : $results['GRP_TITLE'] . ' ' . $aRow2['GROUP_INACTIVE']),
|
||||
'ada_lastname' => "",
|
||||
'ada_username' => "",
|
||||
'ada_type' => "group" );
|
||||
}
|
||||
}
|
||||
}
|
||||
$oCriteria = new \Criteria('workflow');
|
||||
$oCriteria->addSelectColumn(\UsersPeer::USR_FIRSTNAME);
|
||||
$oCriteria->addSelectColumn(\UsersPeer::USR_LASTNAME);
|
||||
$oCriteria->addSelectColumn(\UsersPeer::USR_USERNAME);
|
||||
$oCriteria->addSelectColumn(\UsersPeer::USR_EMAIL);
|
||||
if ($filter != '') {
|
||||
$oCriteria->add( $oCriteria->getNewCriterion( \UsersPeer::USR_USERNAME, "%$filter%", \Criteria::LIKE )->addOr( $oCriteria->getNewCriterion( \UsersPeer::USR_FIRSTNAME, "%$filter%", \Criteria::LIKE ) )->addOr( $oCriteria->getNewCriterion( \UsersPeer::USR_LASTNAME, "%$filter%", \Criteria::LIKE ) ) );
|
||||
}
|
||||
$oCriteria->addSelectColumn(\TaskUserPeer::TAS_UID);
|
||||
$oCriteria->addSelectColumn(\TaskUserPeer::USR_UID);
|
||||
$oCriteria->addSelectColumn(\TaskUserPeer::TU_TYPE);
|
||||
$oCriteria->addSelectColumn(\TaskUserPeer::TU_RELATION);
|
||||
$oCriteria->addJoin(\TaskUserPeer::USR_UID, \UsersPeer::USR_UID, \Criteria::LEFT_JOIN);
|
||||
$oCriteria->add(\TaskUserPeer::TAS_UID, $sTaskUID);
|
||||
$oCriteria->add(\TaskUserPeer::TU_TYPE, 2);
|
||||
$oCriteria->add(\TaskUserPeer::TU_RELATION, 1);
|
||||
$oDataset = \TaskUserPeer::doSelectRS($oCriteria);
|
||||
$oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
|
||||
$oDataset->next();
|
||||
while ($aRow = $oDataset->getRow()) {
|
||||
if ($type == '' || $type == 'user') {
|
||||
$aUsers[] = array('ada_uid' => $aRow['USR_UID'],
|
||||
'ada_name' => $aRow['USR_FIRSTNAME'],
|
||||
'ada_lastname' => $aRow['USR_LASTNAME'],
|
||||
'ada_username' => $aRow['USR_USERNAME'],
|
||||
'ada_type' => "user" );
|
||||
}
|
||||
$oDataset->next();
|
||||
}
|
||||
if ($start) {
|
||||
if ($start < 0) {
|
||||
throw new \Exception(\G::LoadTranslation("ID_INVALID_START"));
|
||||
}
|
||||
} else {
|
||||
$start = 0;
|
||||
}
|
||||
if (isset($limit)) {
|
||||
if ($limit < 0) {
|
||||
throw new \Exception(\G::LoadTranslation("ID_INVALID_LIMIT"));
|
||||
} else {
|
||||
if ($limit == 0) {
|
||||
return array();
|
||||
}
|
||||
}
|
||||
} else {
|
||||
$limit = count($aUsers) + 1;
|
||||
}
|
||||
$aUsers = $this->arrayPagination($aUsers, $start, $limit);
|
||||
return $aUsers;
|
||||
} catch (\Exception $e) {
|
||||
throw $e;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the available adhoc users and users groups to assigned to an activity
|
||||
*
|
||||
* @param string $sProcessUID {@min 32} {@max 32}
|
||||
* @param string $sTaskUID {@min 32} {@max 32}
|
||||
* @param string $filter
|
||||
* @param int $start
|
||||
* @param int $limit
|
||||
* @param string $type
|
||||
*
|
||||
* return array
|
||||
*
|
||||
* @access public
|
||||
*/
|
||||
public function getTaskAvailableAdhocAssignee($sProcessUID, $sTaskUID, $filter, $start, $limit, $type)
|
||||
{
|
||||
try {
|
||||
require_once (PATH_RBAC_HOME . "engine" . PATH_SEP . "classes" . PATH_SEP . "model" . PATH_SEP . "RbacUsers.php");
|
||||
require_once (PATH_TRUNK . "workflow" . PATH_SEP . "engine" . PATH_SEP . "classes" . PATH_SEP . "model" . PATH_SEP . "TaskUser.php");
|
||||
require_once (PATH_TRUNK . "workflow" . PATH_SEP . "engine" . PATH_SEP . "classes" . PATH_SEP . "model" . PATH_SEP . "GroupUser.php");
|
||||
Validator::proUid($sProcessUID, '$prj_uid');
|
||||
$this->validateActUid($sTaskUID);
|
||||
$iType = 2;
|
||||
$oTasks = new \Tasks();
|
||||
$aAux = $oTasks->getGroupsOfTask($sTaskUID, $iType);
|
||||
$aUIDS1 = array();
|
||||
$aUIDS2 = array();
|
||||
foreach ($aAux as $aGroup) {
|
||||
$aUIDS1[] = $aGroup['GRP_UID'];
|
||||
}
|
||||
$aAux = $oTasks->getUsersOfTask($sTaskUID, $iType);
|
||||
foreach ($aAux as $aUser) {
|
||||
$aUIDS2[] = $aUser['USR_UID'];
|
||||
}
|
||||
$aUsers = array();
|
||||
$c = 0;
|
||||
$oTasks = new \Tasks();
|
||||
$aAux = $oTasks->getGroupsOfTask($sTaskUID, 2);
|
||||
$aUIDS1 = array();
|
||||
foreach ($aAux as $aGroup) {
|
||||
$aUIDS1[] = $aGroup['GRP_UID'];
|
||||
}
|
||||
$criteria = new \Criteria( 'workflow' );
|
||||
$criteria->addSelectColumn( \GroupwfPeer::GRP_UID );
|
||||
$criteria->addSelectColumn( \GroupwfPeer::GRP_STATUS );
|
||||
$criteria->addSelectColumn( \GroupwfPeer::GRP_UX );
|
||||
$criteria->add(\GroupwfPeer::GRP_STATUS, "ACTIVE", \Criteria::EQUAL);
|
||||
$criteria->addAsColumn( 'GRP_TITLE', \ContentPeer::CON_VALUE );
|
||||
$criteria->addJoin( \GroupwfPeer::GRP_UID, \ContentPeer::CON_ID, \Criteria::LEFT_JOIN );
|
||||
$criteria->add( \ContentPeer::CON_CATEGORY, 'GRP_TITLE' );
|
||||
$criteria->add( \ContentPeer::CON_LANG, SYS_LANG );
|
||||
$criteria->addAscendingOrderByColumn( \ContentPeer::CON_VALUE );
|
||||
if ($filter != '') {
|
||||
$criteria->add( \ContentPeer::CON_VALUE, '%' . $filter . '%', \Criteria::LIKE );
|
||||
}
|
||||
$oDataset = \GroupwfPeer::doSelectRS( $criteria );
|
||||
$oDataset->setFetchmode( \ResultSet::FETCHMODE_ASSOC );
|
||||
$groups = array ();
|
||||
while ($oDataset->next()) {
|
||||
$groups[] = $oDataset->getRow();
|
||||
}
|
||||
$result = array ('rows' => $groups);
|
||||
foreach ($result['rows'] as $results) {
|
||||
if (! in_array($results['GRP_UID'], $aUIDS1)) {
|
||||
$c++;
|
||||
$oCriteria = new \Criteria('workflow');
|
||||
$oCriteria->addSelectColumn('COUNT(*) AS MEMBERS_NUMBER');
|
||||
$oCriteria->add(\GroupUserPeer::GRP_UID, $results['GRP_UID']);
|
||||
$oDataset2 = \GroupUserPeer::doSelectRS($oCriteria);
|
||||
$oDataset2->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
|
||||
$oDataset2->next();
|
||||
$aRow2 = $oDataset2->getRow();
|
||||
if ($type == '' || $type == 'group') {
|
||||
$aUsers[] = array('ada_uid' => $results['GRP_UID'],
|
||||
'ada_name' => (!isset($aRow2['GROUP_INACTIVE']) ? $results['GRP_TITLE'] .
|
||||
' (' . $aRow2['MEMBERS_NUMBER'] . ' ' .
|
||||
((int) $aRow2['MEMBERS_NUMBER'] == 1 ? \G::LoadTranslation('ID_USER') : \G::LoadTranslation('ID_USERS')).
|
||||
')' . '' : $results['GRP_TITLE'] . ' ' . $aRow2['GROUP_INACTIVE']),
|
||||
'ada_lastname' => "",
|
||||
'ada_username' => "",
|
||||
'ada_type' => "group" );
|
||||
}
|
||||
}
|
||||
}
|
||||
$oCriteria = new \Criteria('workflow');
|
||||
$oCriteria->addSelectColumn(\UsersPeer::USR_UID);
|
||||
$oCriteria->addSelectColumn(\UsersPeer::USR_USERNAME);
|
||||
$oCriteria->addSelectColumn(\UsersPeer::USR_FIRSTNAME);
|
||||
$oCriteria->addSelectColumn(\UsersPeer::USR_LASTNAME);
|
||||
$oCriteria->addSelectColumn(\UsersPeer::USR_EMAIL);
|
||||
if ($filter != '') {
|
||||
$oCriteria->add( $oCriteria->getNewCriterion( \UsersPeer::USR_USERNAME, "%$filter%", \Criteria::LIKE )->addOr( $oCriteria->getNewCriterion( \UsersPeer::USR_FIRSTNAME, "%$filter%", \Criteria::LIKE ) )->addOr( $oCriteria->getNewCriterion( \UsersPeer::USR_LASTNAME, "%$filter%", \Criteria::LIKE ) ) );
|
||||
}
|
||||
$oCriteria->add(\UsersPeer::USR_STATUS, 'ACTIVE');
|
||||
$oCriteria->add(\UsersPeer::USR_UID, $aUIDS2, \Criteria::NOT_IN);
|
||||
$oDataset = \UsersPeer::doSelectRS($oCriteria);
|
||||
$oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
|
||||
$oDataset->next();
|
||||
while ($aRow = $oDataset->getRow()) {
|
||||
if ($type == '' || $type == 'user') {
|
||||
$aUsers[] = array('ada_uid' => $aRow['USR_UID'],
|
||||
'ada_name' => $aRow['USR_FIRSTNAME'],
|
||||
'ada_lastname' => $aRow['USR_LASTNAME'],
|
||||
'ada_username' => $aRow['USR_USERNAME'],
|
||||
'ada_type' => "user" );
|
||||
}
|
||||
$oDataset->next();
|
||||
}
|
||||
if ($start) {
|
||||
if ($start < 0) {
|
||||
throw new \Exception(\G::LoadTranslation("ID_INVALID_START"));
|
||||
}
|
||||
} else {
|
||||
$start = 0;
|
||||
}
|
||||
if (isset($limit)) {
|
||||
if ($limit < 0) {
|
||||
throw new \Exception(\G::LoadTranslation("ID_INVALID_LIMIT"));
|
||||
} else {
|
||||
if ($limit == 0) {
|
||||
return array();
|
||||
}
|
||||
}
|
||||
} else {
|
||||
$limit = count($aUsers) + 1;
|
||||
}
|
||||
$aUsers = $this->arrayPagination($aUsers, $start, $limit);
|
||||
return $aUsers;
|
||||
} catch (\Exception $e) {
|
||||
throw $e;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Return a single Adhoc user or group assigned to an activity
|
||||
*
|
||||
@@ -1751,7 +1596,8 @@ class Task
|
||||
if (! is_null( $oTaskUser )) {
|
||||
\TaskUserPeer::doDelete($oCriteria);
|
||||
|
||||
$arrayTaskAdhocAssignees = $this->getTaskAdhocAssignees($sProcessUID, $sTaskUID, "", null, null, "");
|
||||
$arrayAux = $this->getTaskAssignees($sProcessUID, $sTaskUID, "ASSIGNEE", 2);
|
||||
$arrayTaskAdhocAssignees = $arrayAux["data"];
|
||||
|
||||
if (empty($arrayTaskAdhocAssignees)) {
|
||||
$task = new \Task();
|
||||
|
||||
@@ -4,7 +4,6 @@ use \G;
|
||||
|
||||
class User
|
||||
{
|
||||
//--- ---
|
||||
private $arrayFieldDefinition = array(
|
||||
"USR_UID" => array("type" => "string", "required" => false, "empty" => false, "defaultValues" => array(), "fieldNameAux" => "usrUid"),
|
||||
"USR_FIRSTNAME" => array("type" => "string", "required" => true, "empty" => false, "defaultValues" => array(), "fieldNameAux" => "usrFirstname"),
|
||||
@@ -29,7 +28,6 @@ class User
|
||||
"USR_BIRTHDAY" => array("type" => "date", "required" => false, "empty" => true, "defaultValues" => array(), "fieldNameAux" => "usrBirthday"),
|
||||
"USR_FAX" => array("type" => "string", "required" => false, "empty" => true, "defaultValues" => array(), "fieldNameAux" => "usrFax"),
|
||||
"USR_CELLULAR" => array("type" => "string", "required" => false, "empty" => true, "defaultValues" => array(), "fieldNameAux" => "usrCellular"),
|
||||
|
||||
/*----------------------------------********---------------------------------*/
|
||||
"USR_COST_BY_HOUR" => array("type" => "string", "required" => false, "empty" => true, "defaultValues" => array(), "fieldNameAux" => "usrCostByHour"),
|
||||
"USR_UNIT_COST" => array("type" => "string", "required" => false, "empty" => true, "defaultValues" => array(), "fieldNameAux" => "usrUnitCost"),
|
||||
@@ -348,7 +346,7 @@ class User
|
||||
return array(
|
||||
$this->getFieldNameByFormatFieldName("USR_UID") => $record["USR_UID"],
|
||||
$this->getFieldNameByFormatFieldName("USR_USERNAME") => $record["USR_USERNAME"],
|
||||
$this->getFieldNameByFormatFieldName("USR_PASSWORD") => $record["USR_PASSWORD"],
|
||||
//$this->getFieldNameByFormatFieldName("USR_PASSWORD") => $record["USR_PASSWORD"],
|
||||
$this->getFieldNameByFormatFieldName("USR_FIRSTNAME") => $record["USR_FIRSTNAME"],
|
||||
$this->getFieldNameByFormatFieldName("USR_LASTNAME") => $record["USR_LASTNAME"],
|
||||
$this->getFieldNameByFormatFieldName("USR_EMAIL") => $record["USR_EMAIL"],
|
||||
@@ -759,7 +757,6 @@ class User
|
||||
throw $e;
|
||||
}
|
||||
}
|
||||
//--- /---
|
||||
|
||||
/**
|
||||
* Create User Uid
|
||||
@@ -777,7 +774,7 @@ class User
|
||||
if ($pluginRegistry->existsTrigger(PM_BEFORE_CREATE_USER)) {
|
||||
try {
|
||||
$pluginRegistry->executeTriggers(PM_BEFORE_CREATE_USER, null);
|
||||
} catch(Exception $error) {
|
||||
} catch (Exception $error) {
|
||||
throw new Exception($error->getMessage());
|
||||
}
|
||||
}
|
||||
@@ -1031,51 +1028,130 @@ class User
|
||||
/**
|
||||
* Get all Users
|
||||
*
|
||||
* @param string $filter
|
||||
* @param int $start
|
||||
* @param int $limit
|
||||
* @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 an array with all Users
|
||||
*/
|
||||
public function getUsers($filter, $start, $limit)
|
||||
public function getUsers($arrayFilterData = null, $sortField = null, $sortDir = null, $start = null, $limit = null)
|
||||
{
|
||||
try {
|
||||
$aUserInfo = array();
|
||||
require_once (PATH_TRUNK . "workflow" . PATH_SEP . "engine" . PATH_SEP . "classes" . PATH_SEP . "model" . PATH_SEP . "Users.php");
|
||||
$arrayUser = array();
|
||||
|
||||
$oCriteria = $this->getUserCriteria();
|
||||
$numRecTotal = 0;
|
||||
|
||||
if ($filter != '') {
|
||||
$oCriteria->add( $oCriteria->getNewCriterion( \UsersPeer::USR_USERNAME, "%$filter%", \Criteria::LIKE )->addOr( $oCriteria->getNewCriterion( \UsersPeer::USR_FIRSTNAME, "%$filter%", \Criteria::LIKE ) )->addOr( $oCriteria->getNewCriterion( \UsersPeer::USR_LASTNAME, "%$filter%", \Criteria::LIKE ) ) );
|
||||
//Verify data
|
||||
$process = new \ProcessMaker\BusinessModel\Process();
|
||||
|
||||
$process->throwExceptionIfDataNotMetPagerVarDefinition(array("start" => $start, "limit" => $limit), array("start" => "start", "limit" => "limit"));
|
||||
|
||||
//Set variables
|
||||
$filterName = "filter";
|
||||
|
||||
if (!is_null($arrayFilterData) && is_array($arrayFilterData) && isset($arrayFilterData["filter"])) {
|
||||
$arrayAux = array(
|
||||
"" => "filter",
|
||||
"LEFT" => "lfilter",
|
||||
"RIGHT" => "rfilter"
|
||||
);
|
||||
|
||||
$filterName = $arrayAux[(isset($arrayFilterData["filterOption"]))? $arrayFilterData["filterOption"] : ""];
|
||||
}
|
||||
if ($start) {
|
||||
if ($start < 0) {
|
||||
throw new \Exception(\G::LoadTranslation("ID_INVALID_START"));
|
||||
|
||||
//Get data
|
||||
if (!is_null($limit) && $limit . "" == "0") {
|
||||
//Return
|
||||
return array(
|
||||
"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
|
||||
);
|
||||
}
|
||||
|
||||
//Query
|
||||
$criteria = $this->getUserCriteria();
|
||||
|
||||
if (!is_null($arrayFilterData) && is_array($arrayFilterData) && isset($arrayFilterData["filter"]) && trim($arrayFilterData["filter"]) != "") {
|
||||
$arraySearch = array(
|
||||
"" => "%" . $arrayFilterData["filter"] . "%",
|
||||
"LEFT" => $arrayFilterData["filter"] . "%",
|
||||
"RIGHT" => "%" . $arrayFilterData["filter"]
|
||||
);
|
||||
|
||||
$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->add(\UsersPeer::USR_STATUS, "ACTIVE", \Criteria::EQUAL);
|
||||
|
||||
//Number records total
|
||||
$criteriaCount = clone $criteria;
|
||||
|
||||
$criteriaCount->clearSelectColumns();
|
||||
$criteriaCount->addSelectColumn("COUNT(" . \UsersPeer::USR_UID . ") AS NUM_REC");
|
||||
|
||||
$rsCriteriaCount = \UsersPeer::doSelectRS($criteriaCount);
|
||||
$rsCriteriaCount->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
|
||||
|
||||
$result = $rsCriteriaCount->next();
|
||||
$row = $rsCriteriaCount->getRow();
|
||||
|
||||
$numRecTotal = (int)($row["NUM_REC"]);
|
||||
|
||||
//Query
|
||||
if (!is_null($sortField) && trim($sortField) != "") {
|
||||
$sortField = strtoupper($sortField);
|
||||
|
||||
if (in_array(\UsersPeer::TABLE_NAME . "." . $sortField, $criteria->getSelectColumns())) {
|
||||
$sortField = \UsersPeer::TABLE_NAME . "." . $sortField;
|
||||
} else {
|
||||
$oCriteria->setOffset($start);
|
||||
$sortField = \UsersPeer::USR_FIRSTNAME;
|
||||
}
|
||||
} else {
|
||||
$sortField = \UsersPeer::USR_FIRSTNAME;
|
||||
}
|
||||
if ($limit != '') {
|
||||
if ($limit < 0) {
|
||||
throw new \Exception(\G::LoadTranslation("ID_INVALID_LIMIT"));
|
||||
} else {
|
||||
if ($limit == 0) {
|
||||
return $aUserInfo;
|
||||
} else {
|
||||
$oCriteria->setLimit($limit);
|
||||
}
|
||||
}
|
||||
|
||||
if (!is_null($sortDir) && trim($sortDir) != "" && strtoupper($sortDir) == "DESC") {
|
||||
$criteria->addDescendingOrderByColumn($sortField);
|
||||
} else {
|
||||
$criteria->addAscendingOrderByColumn($sortField);
|
||||
}
|
||||
$oCriteria->add(\UsersPeer::USR_STATUS, "ACTIVE", \Criteria::EQUAL);
|
||||
$oDataset = \UsersPeer::doSelectRS($oCriteria);
|
||||
$oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
|
||||
while ($oDataset->next()) {
|
||||
$aRow1 = $oDataset->getRow();
|
||||
$aRow1 = array_change_key_case($aRow1, CASE_LOWER);
|
||||
$aUserInfo[] = $aRow1;
|
||||
|
||||
if (!is_null($start)) {
|
||||
$criteria->setOffset((int)($start));
|
||||
}
|
||||
|
||||
if (!is_null($limit)) {
|
||||
$criteria->setLimit((int)($limit));
|
||||
}
|
||||
|
||||
$rsCriteria = \UsersPeer::doSelectRS($criteria);
|
||||
$rsCriteria->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
|
||||
|
||||
while ($rsCriteria->next()) {
|
||||
$row = $rsCriteria->getRow();
|
||||
|
||||
$arrayUser[] = $this->getUserDataFromRecord($row);
|
||||
}
|
||||
|
||||
//Return
|
||||
return $aUserInfo;
|
||||
return array(
|
||||
"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;
|
||||
}
|
||||
@@ -1146,3 +1222,4 @@ class User
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -255,7 +255,9 @@ class WebEntry
|
||||
}
|
||||
|
||||
if (isset($arrayData["TAS_UID"])) {
|
||||
$process->throwExceptionIfNotExistsTask($processUid, $arrayData["TAS_UID"], $this->arrayFieldNameForException["taskUid"]);
|
||||
$task = new \ProcessMaker\BusinessModel\Task();
|
||||
|
||||
$task->throwExceptionIfNotExistsTask($processUid, $arrayData["TAS_UID"], $this->arrayFieldNameForException["taskUid"]);
|
||||
}
|
||||
|
||||
if (isset($arrayData["DYN_UID"])) {
|
||||
|
||||
@@ -34,15 +34,20 @@ class Group extends Api
|
||||
/**
|
||||
* @url GET
|
||||
*/
|
||||
public function index($filter = null, $start = null, $limit = null)
|
||||
public function index($filter = null, $lfilter = null, $rfilter = null, $start = null, $limit = null)
|
||||
{
|
||||
try {
|
||||
$group = new \ProcessMaker\BusinessModel\Group();
|
||||
$group->setFormatFieldNameInUppercase(false);
|
||||
|
||||
$response = $group->getGroups(array("filter" => $filter), null, null, $start, $limit);
|
||||
$arrayFilterData = array(
|
||||
"filter" => (!is_null($filter))? $filter : ((!is_null($lfilter))? $lfilter : ((!is_null($rfilter))? $rfilter : null)),
|
||||
"filterOption" => (!is_null($filter))? "" : ((!is_null($lfilter))? "LEFT" : ((!is_null($rfilter))? "RIGHT" : ""))
|
||||
);
|
||||
|
||||
return $response;
|
||||
$response = $group->getGroups($arrayFilterData, null, null, $start, $limit);
|
||||
|
||||
return $response["data"];
|
||||
} catch (\Exception $e) {
|
||||
throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()));
|
||||
}
|
||||
|
||||
@@ -11,56 +11,66 @@ use \Luracast\Restler\RestException;
|
||||
*/
|
||||
class Assignee extends Api
|
||||
{
|
||||
private $task;
|
||||
|
||||
/**
|
||||
* @url GET /:prjUid/activity/:actUid/assignee
|
||||
*
|
||||
* @param string $prjUid {@min 32} {@max 32}
|
||||
* @param string $actUid {@min 32} {@max 32}
|
||||
* @param string $filter
|
||||
* @param int $start
|
||||
* @param int $limit
|
||||
* @param string $type
|
||||
* Constructor of the class
|
||||
*
|
||||
* return void
|
||||
*/
|
||||
public function doGetActivityAssignees($prjUid, $actUid, $filter = '', $start = null, $limit = null, $type = '')
|
||||
public function __construct()
|
||||
{
|
||||
$response = array();
|
||||
try {
|
||||
$task = new \ProcessMaker\BusinessModel\Task();
|
||||
$arrayData = $task->getTaskAssignees($prjUid, $actUid, $filter, $start, $limit, $type);
|
||||
//Response
|
||||
$response = $arrayData;
|
||||
$this->task = new \ProcessMaker\BusinessModel\Task();
|
||||
} catch (\Exception $e) {
|
||||
//Response
|
||||
throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage());
|
||||
}
|
||||
return $response;
|
||||
}
|
||||
|
||||
/**
|
||||
* @url GET /:prjUid/activity/:actUid/available-assignee
|
||||
*
|
||||
* @param string $prjUid {@min 32} {@max 32}
|
||||
* @param string $actUid {@min 32} {@max 32}
|
||||
* @param string $filter
|
||||
* @param int $start
|
||||
* @param int $limit
|
||||
* @param string $type
|
||||
* @url GET /:prj_uid/activity/:act_uid/assignee/paged
|
||||
* @url GET /:prj_uid/activity/:act_uid/assignee
|
||||
*
|
||||
* @param string $prj_uid {@min 32}{@max 32}
|
||||
* @param string $act_uid {@min 32}{@max 32}
|
||||
*/
|
||||
public function doGetActivityAvailableAssignee($prjUid, $actUid, $filter = '', $start = null, $limit = null, $type = '')
|
||||
public function doGetActivityAssignees($prj_uid, $act_uid, $filter = null, $lfilter = null, $rfilter = null, $start = null, $limit = null, $type = null)
|
||||
{
|
||||
$response = array();
|
||||
try {
|
||||
$task = new \ProcessMaker\BusinessModel\Task();
|
||||
$arrayData = $task->getTaskAvailableAssignee($prjUid, $actUid, $filter, $start, $limit, $type);
|
||||
//Response
|
||||
$response = $arrayData;
|
||||
$arrayFilterData = array(
|
||||
"filter" => (!is_null($filter))? $filter : ((!is_null($lfilter))? $lfilter : ((!is_null($rfilter))? $rfilter : null)),
|
||||
"filterOption" => (!is_null($filter))? "" : ((!is_null($lfilter))? "LEFT" : ((!is_null($rfilter))? "RIGHT" : ""))
|
||||
);
|
||||
|
||||
$response = $this->task->getTaskAssignees($prj_uid, $act_uid, "ASSIGNEE", 1, $arrayFilterData, $start, $limit, $type);
|
||||
|
||||
return (preg_match("/^.*\/paged.*$/", $this->restler->url))? $response : $response["data"];
|
||||
} catch (\Exception $e) {
|
||||
throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @url GET /:prj_uid/activity/:act_uid/available-assignee/paged
|
||||
* @url GET /:prj_uid/activity/:act_uid/available-assignee
|
||||
*
|
||||
* @param string $prj_uid {@min 32}{@max 32}
|
||||
* @param string $act_uid {@min 32}{@max 32}
|
||||
*/
|
||||
public function doGetActivityAvailableAssignees($prj_uid, $act_uid, $filter = null, $lfilter = null, $rfilter = null, $start = null, $limit = null, $type = null)
|
||||
{
|
||||
try {
|
||||
$arrayFilterData = array(
|
||||
"filter" => (!is_null($filter))? $filter : ((!is_null($lfilter))? $lfilter : ((!is_null($rfilter))? $rfilter : null)),
|
||||
"filterOption" => (!is_null($filter))? "" : ((!is_null($lfilter))? "LEFT" : ((!is_null($rfilter))? "RIGHT" : ""))
|
||||
);
|
||||
|
||||
$response = $this->task->getTaskAssignees($prj_uid, $act_uid, "AVAILABLE", 1, $arrayFilterData, $start, $limit, $type);
|
||||
|
||||
return (preg_match("/^.*\/paged.*$/", $this->restler->url))? $response : $response["data"];
|
||||
} catch (\Exception $e) {
|
||||
//Response
|
||||
throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage());
|
||||
}
|
||||
return $response;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -69,21 +79,16 @@ class Assignee extends Api
|
||||
* @param string $prjUid {@min 32} {@max 32}
|
||||
* @param string $actUid {@min 32} {@max 32}
|
||||
* @param string $aasUid {@min 32} {@max 32}
|
||||
*
|
||||
*/
|
||||
public function doGetActivityAssignee($prjUid, $actUid, $aasUid)
|
||||
{
|
||||
$response = array();
|
||||
try {
|
||||
$task = new \ProcessMaker\BusinessModel\Task();
|
||||
$objectData = $task->getTaskAssignee($prjUid, $actUid, $aasUid);
|
||||
//Response
|
||||
$response = $objectData;
|
||||
$response = $this->task->getTaskAssignee($prjUid, $actUid, $aasUid);
|
||||
|
||||
return $response;
|
||||
} catch (\Exception $e) {
|
||||
//Response
|
||||
throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage());
|
||||
}
|
||||
return $response;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -99,10 +104,8 @@ class Assignee extends Api
|
||||
public function doPostActivityAssignee($prjUid, $actUid, $aas_uid, $aas_type)
|
||||
{
|
||||
try {
|
||||
$task = new \ProcessMaker\BusinessModel\Task();
|
||||
$task->addTaskAssignee($prjUid, $actUid, $aas_uid, $aas_type);
|
||||
$this->task->addTaskAssignee($prjUid, $actUid, $aas_uid, $aas_type);
|
||||
} catch (\Exception $e) {
|
||||
//Response
|
||||
throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage());
|
||||
}
|
||||
}
|
||||
@@ -113,69 +116,60 @@ class Assignee extends Api
|
||||
* @param string $prjUid {@min 32} {@max 32}
|
||||
* @param string $actUid {@min 32} {@max 32}
|
||||
* @param string $aasUid {@min 32} {@max 32}
|
||||
*
|
||||
*/
|
||||
public function doDeleteActivityAssignee($prjUid, $actUid, $aasUid)
|
||||
{
|
||||
try {
|
||||
$task = new \ProcessMaker\BusinessModel\Task();
|
||||
$task->removeTaskAssignee($prjUid, $actUid, $aasUid);
|
||||
$this->task->removeTaskAssignee($prjUid, $actUid, $aasUid);
|
||||
} catch (\Exception $e) {
|
||||
//Response
|
||||
throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @url GET /:prjUid/activity/:actUid/adhoc-assignee
|
||||
*
|
||||
* @param string $prjUid {@min 32} {@max 32}
|
||||
* @param string $actUid {@min 32} {@max 32}
|
||||
* @param string $filter
|
||||
* @param int $start
|
||||
* @param int $limit
|
||||
* @param string $type
|
||||
* @url GET /:prj_uid/activity/:act_uid/adhoc-assignee/paged
|
||||
* @url GET /:prj_uid/activity/:act_uid/adhoc-assignee
|
||||
*
|
||||
* @param string $prj_uid {@min 32}{@max 32}
|
||||
* @param string $act_uid {@min 32}{@max 32}
|
||||
*/
|
||||
public function doGetActivityAdhocAssignees($prjUid, $actUid, $filter = '', $start = null, $limit = null, $type = '')
|
||||
public function doGetActivityAdhocAssignees($prj_uid, $act_uid, $filter = null, $lfilter = null, $rfilter = null, $start = null, $limit = null, $type = null)
|
||||
{
|
||||
$response = array();
|
||||
try {
|
||||
$task = new \ProcessMaker\BusinessModel\Task();
|
||||
$arrayData = $task->getTaskAdhocAssignees($prjUid, $actUid, $filter, $start, $limit, $type);
|
||||
//Response
|
||||
$response = $arrayData;
|
||||
$arrayFilterData = array(
|
||||
"filter" => (!is_null($filter))? $filter : ((!is_null($lfilter))? $lfilter : ((!is_null($rfilter))? $rfilter : null)),
|
||||
"filterOption" => (!is_null($filter))? "" : ((!is_null($lfilter))? "LEFT" : ((!is_null($rfilter))? "RIGHT" : ""))
|
||||
);
|
||||
|
||||
$response = $this->task->getTaskAssignees($prj_uid, $act_uid, "ASSIGNEE", 2, $arrayFilterData, $start, $limit, $type);
|
||||
|
||||
return (preg_match("/^.*\/paged.*$/", $this->restler->url))? $response : $response["data"];
|
||||
} catch (\Exception $e) {
|
||||
//Response
|
||||
throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage());
|
||||
}
|
||||
return $response;
|
||||
}
|
||||
|
||||
/**
|
||||
* @url GET /:prjUid/activity/:actUid/adhoc-available-assignee
|
||||
*
|
||||
* @param string $prjUid {@min 32} {@max 32}
|
||||
* @param string $actUid {@min 32} {@max 32}
|
||||
* @param string $filter
|
||||
* @param int $start
|
||||
* @param int $limit
|
||||
* @param string $type
|
||||
* @url GET /:prj_uid/activity/:act_uid/adhoc-available-assignee/paged
|
||||
* @url GET /:prj_uid/activity/:act_uid/adhoc-available-assignee
|
||||
*
|
||||
* @param string $prj_uid {@min 32}{@max 32}
|
||||
* @param string $act_uid {@min 32}{@max 32}
|
||||
*/
|
||||
public function doGetActivityAvailableAdhocAssignee($prjUid, $actUid, $filter = '', $start = null, $limit = null, $type = '')
|
||||
public function doGetActivityAdhocAvailableAssignees($prj_uid, $act_uid, $filter = null, $lfilter = null, $rfilter = null, $start = null, $limit = null, $type = null)
|
||||
{
|
||||
$response = array();
|
||||
try {
|
||||
$task = new \ProcessMaker\BusinessModel\Task();
|
||||
$arrayData = $task->getTaskAvailableAdhocAssignee($prjUid, $actUid, $filter, $start, $limit, $type);
|
||||
//Response
|
||||
$response = $arrayData;
|
||||
$arrayFilterData = array(
|
||||
"filter" => (!is_null($filter))? $filter : ((!is_null($lfilter))? $lfilter : ((!is_null($rfilter))? $rfilter : null)),
|
||||
"filterOption" => (!is_null($filter))? "" : ((!is_null($lfilter))? "LEFT" : ((!is_null($rfilter))? "RIGHT" : ""))
|
||||
);
|
||||
|
||||
$response = $this->task->getTaskAssignees($prj_uid, $act_uid, "AVAILABLE", 2, $arrayFilterData, $start, $limit, $type);
|
||||
|
||||
return (preg_match("/^.*\/paged.*$/", $this->restler->url))? $response : $response["data"];
|
||||
} catch (\Exception $e) {
|
||||
//Response
|
||||
throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage());
|
||||
}
|
||||
return $response;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -184,21 +178,16 @@ class Assignee extends Api
|
||||
* @param string $prjUid {@min 32} {@max 32}
|
||||
* @param string $actUid {@min 32} {@max 32}
|
||||
* @param string $assUid {@min 32} {@max 32}
|
||||
*
|
||||
*/
|
||||
public function doGetActivityAdhocAssignee($prjUid, $actUid, $aasUid)
|
||||
{
|
||||
$response = array();
|
||||
try {
|
||||
$task = new \ProcessMaker\BusinessModel\Task();
|
||||
$objectData = $task->getTaskAdhocAssignee($prjUid, $actUid, $aasUid);
|
||||
//Response
|
||||
$response = $objectData;
|
||||
$response = $this->task->getTaskAdhocAssignee($prjUid, $actUid, $aasUid);
|
||||
|
||||
return $response;
|
||||
} catch (\Exception $e) {
|
||||
//Response
|
||||
throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage());
|
||||
}
|
||||
return $response;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -214,10 +203,8 @@ class Assignee extends Api
|
||||
public function doPostActivityAdhocAssignee($prjUid, $actUid, $ada_uid, $ada_type)
|
||||
{
|
||||
try {
|
||||
$task = new \ProcessMaker\BusinessModel\Task();
|
||||
$task->addTaskAdhocAssignee($prjUid, $actUid, $ada_uid, $ada_type);
|
||||
$this->task->addTaskAdhocAssignee($prjUid, $actUid, $ada_uid, $ada_type);
|
||||
} catch (\Exception $e) {
|
||||
//Response
|
||||
throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage());
|
||||
}
|
||||
}
|
||||
@@ -228,15 +215,12 @@ class Assignee extends Api
|
||||
* @param string $prjUid {@min 32} {@max 32}
|
||||
* @param string $actUid {@min 32} {@max 32}
|
||||
* @param string $adaUid {@min 32} {@max 32}
|
||||
*
|
||||
*/
|
||||
public function doDeleteActivityAdhocAssignee($prjUid, $actUid, $adaUid)
|
||||
{
|
||||
try {
|
||||
$task = new \ProcessMaker\BusinessModel\Task();
|
||||
$task->removeTaskAdhocAssignee($prjUid, $actUid, $adaUid);
|
||||
$this->task->removeTaskAdhocAssignee($prjUid, $actUid, $adaUid);
|
||||
} catch (\Exception $e) {
|
||||
//Response
|
||||
throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage());
|
||||
}
|
||||
}
|
||||
@@ -250,21 +234,16 @@ class Assignee extends Api
|
||||
* @param int $start
|
||||
* @param int $limit
|
||||
* @param string $type
|
||||
*
|
||||
*/
|
||||
public function doGetActivityAssigneesAll($prjUid, $actUid, $filter = '', $start = null, $limit = null, $type = '')
|
||||
public function doGetActivityAssigneesAll($prjUid, $actUid, $filter = null, $start = null, $limit = null, $type = null)
|
||||
{
|
||||
$response = array();
|
||||
try {
|
||||
$task = new \ProcessMaker\BusinessModel\Task();
|
||||
$arrayData = $task->getTaskAssigneesAll($prjUid, $actUid, $filter, $start, $limit, $type);
|
||||
//Response
|
||||
$response = $arrayData;
|
||||
$arrayData = $this->task->getTaskAssigneesAll($prjUid, $actUid, $filter, $start, $limit, $type);
|
||||
|
||||
return $response;
|
||||
} catch (\Exception $e) {
|
||||
//Response
|
||||
throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage());
|
||||
}
|
||||
return $response;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -276,21 +255,17 @@ class Assignee extends Api
|
||||
* @param int $start
|
||||
* @param int $limit
|
||||
* @param string $type
|
||||
*
|
||||
*/
|
||||
public function doGetActivityAdhocAssigneesAll($prjUid, $actUid, $filter = '', $start = null, $limit = null, $type = '')
|
||||
public function doGetActivityAdhocAssigneesAll($prjUid, $actUid, $filter = null, $start = null, $limit = null, $type = null)
|
||||
{
|
||||
$response = array();
|
||||
try {
|
||||
$task = new \ProcessMaker\BusinessModel\Task();
|
||||
$arrayData = $task->getTaskAdhocAssigneesAll($prjUid, $actUid, $filter, $start, $limit, $type);
|
||||
//Response
|
||||
$response = $arrayData;
|
||||
$response = $this->task->getTaskAdhocAssigneesAll($prjUid, $actUid, $filter, $start, $limit, $type);
|
||||
|
||||
return $response;
|
||||
} catch (\Exception $e) {
|
||||
//Response
|
||||
throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage());
|
||||
}
|
||||
return $response;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -33,18 +33,23 @@ class User extends Api
|
||||
|
||||
/**
|
||||
* @url GET
|
||||
* @param string $filter
|
||||
* @param int $start
|
||||
* @param int $limit
|
||||
*/
|
||||
public function doGetUsers($filter = '', $start = null, $limit = null)
|
||||
public function index($filter = null, $lfilter = null, $rfilter = null, $start = null, $limit = null)
|
||||
{
|
||||
try {
|
||||
$user = new \ProcessMaker\BusinessModel\User();
|
||||
$response = $user->getUsers($filter, $start, $limit);
|
||||
return $response;
|
||||
$user->setFormatFieldNameInUppercase(false);
|
||||
|
||||
$arrayFilterData = array(
|
||||
"filter" => (!is_null($filter))? $filter : ((!is_null($lfilter))? $lfilter : ((!is_null($rfilter))? $rfilter : null)),
|
||||
"filterOption" => (!is_null($filter))? "" : ((!is_null($lfilter))? "LEFT" : ((!is_null($rfilter))? "RIGHT" : ""))
|
||||
);
|
||||
|
||||
$response = $user->getUsers($arrayFilterData, null, null, $start, $limit);
|
||||
|
||||
return $response["data"];
|
||||
} catch (\Exception $e) {
|
||||
throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()));
|
||||
throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -57,6 +62,8 @@ class User extends Api
|
||||
{
|
||||
try {
|
||||
$user = new \ProcessMaker\BusinessModel\User();
|
||||
$user->setFormatFieldNameInUppercase(false);
|
||||
|
||||
$response = $user->getUser($usr_uid);
|
||||
return $response;
|
||||
} catch (\Exception $e) {
|
||||
@@ -131,3 +138,4 @@ class User extends Api
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user