HOR-4404
This commit is contained in:
@@ -448,50 +448,6 @@ class AppCacheView extends BaseAppCacheView
|
||||
return $this->getUnassigned($userUid, false);
|
||||
}
|
||||
|
||||
public function getProUidSupervisor($userUid)
|
||||
{
|
||||
//finding cases PRO_UID where $userUid is supervising
|
||||
require_once ('classes/model/ProcessUser.php');
|
||||
require_once ('classes/model/GroupUser.php');
|
||||
|
||||
$oCriteria = new Criteria('workflow');
|
||||
|
||||
if (!empty($userUid)) {
|
||||
$oCriteria->add(ProcessUserPeer::USR_UID, $userUid);
|
||||
}
|
||||
|
||||
$oCriteria->add(ProcessUserPeer::PU_TYPE, 'SUPERVISOR');
|
||||
$oDataset = ProcessUserPeer::doSelectRS($oCriteria);
|
||||
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
||||
$oDataset->next();
|
||||
$aProcesses = array();
|
||||
|
||||
while ($aRow = $oDataset->getRow()) {
|
||||
$aProcesses[] = $aRow['PRO_UID'];
|
||||
$oDataset->next();
|
||||
}
|
||||
|
||||
$oCriteria = new Criteria('workflow');
|
||||
$oCriteria->addSelectColumn(ProcessUserPeer::PRO_UID);
|
||||
$oCriteria->add(ProcessUserPeer::PU_TYPE, 'GROUP_SUPERVISOR');
|
||||
$oCriteria->addJoin(ProcessUserPeer::USR_UID, GroupUserPeer::GRP_UID, Criteria::LEFT_JOIN);
|
||||
|
||||
if (!empty($userUid)) {
|
||||
$oCriteria->add(GroupUserPeer::USR_UID, $userUid);
|
||||
}
|
||||
|
||||
$oDataset = ProcessUserPeer::doSelectRS($oCriteria);
|
||||
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
||||
$oDataset->next();
|
||||
|
||||
while ($aRow = $oDataset->getRow()) {
|
||||
$aProcesses[] = $aRow['PRO_UID'];
|
||||
$oDataset->next();
|
||||
}
|
||||
|
||||
return $aProcesses;
|
||||
}
|
||||
|
||||
/**
|
||||
* gets the PAUSED cases list criteria
|
||||
* param $userUid the current userUid
|
||||
@@ -509,7 +465,8 @@ class AppCacheView extends BaseAppCacheView
|
||||
$criteria = $this->addPMFieldsToCriteria('paused');
|
||||
}
|
||||
|
||||
$aProcesses = $this->getProUidSupervisor($userUid);
|
||||
$processUser = new ProcessUser();
|
||||
$listProcess = $processUser->getProUidSupervisor($userUid);
|
||||
|
||||
//add a validation to show the processes of which $userUid is supervisor
|
||||
//$criteria->add(AppCacheViewPeer::USR_UID, $userUid);
|
||||
@@ -517,16 +474,16 @@ class AppCacheView extends BaseAppCacheView
|
||||
if (!empty($userUid)) {
|
||||
$criterionAux = $criteria->getNewCriterion(AppCacheViewPeer::USR_UID, $userUid, Criteria::EQUAL);
|
||||
|
||||
if ($flagSupervisor && !empty($aProcesses)) {
|
||||
if ($flagSupervisor && !empty($listProcess)) {
|
||||
$criterionAux = $criterionAux->addOr(
|
||||
$criteria->getNewCriterion(AppCacheViewPeer::PRO_UID, $aProcesses, Criteria::IN)
|
||||
$criteria->getNewCriterion(AppCacheViewPeer::PRO_UID, $listProcess, Criteria::IN)
|
||||
);
|
||||
}
|
||||
|
||||
$criteria->add($criterionAux);
|
||||
} else {
|
||||
if ($flagSupervisor && !empty($aProcesses)) {
|
||||
$criteria->add(AppCacheViewPeer::PRO_UID, $aProcesses, Criteria::IN);
|
||||
if ($flagSupervisor && !empty($listProcess)) {
|
||||
$criteria->add(AppCacheViewPeer::PRO_UID, $listProcess, Criteria::IN);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -576,7 +533,8 @@ class AppCacheView extends BaseAppCacheView
|
||||
*/
|
||||
public function getToRevise($userUid, $doCount)
|
||||
{
|
||||
$aProcesses = $this->getProUidSupervisor($userUid, $doCount);
|
||||
$processUser = new ProcessUser();
|
||||
$listProcess = $processUser->getProUidSupervisor($userUid);
|
||||
|
||||
if ($doCount && !isset($this->confCasesList['PMTable']) && !empty($this->confCasesList['PMTable'])) {
|
||||
$c = new Criteria('workflow');
|
||||
@@ -584,7 +542,7 @@ class AppCacheView extends BaseAppCacheView
|
||||
$c = $this->addPMFieldsToCriteria('todo');
|
||||
}
|
||||
|
||||
$c->add(AppCacheViewPeer::PRO_UID, $aProcesses, Criteria::IN);
|
||||
$c->add(AppCacheViewPeer::PRO_UID, $listProcess, Criteria::IN);
|
||||
$c->add(AppCacheViewPeer::APP_STATUS, 'TO_DO');
|
||||
$c->add(AppCacheViewPeer::DEL_FINISH_DATE, null, Criteria::ISNULL);
|
||||
$c->add(AppCacheViewPeer::APP_THREAD_STATUS, 'OPEN');
|
||||
@@ -1168,9 +1126,10 @@ class AppCacheView extends BaseAppCacheView
|
||||
GLOBAL $RBAC;
|
||||
$aUser = $RBAC->userObj->load( $_SESSION['USER_LOGGED'] );
|
||||
|
||||
$aProcesses = $this->getProUidSupervisor($aUser['USR_UID']);
|
||||
$processUser = new ProcessUser();
|
||||
$listProcess = $processUser->getProUidSupervisor($aUser['USR_UID']);
|
||||
$criteria = $this->getToReassign($userUid, true);
|
||||
$criteria->add(AppCacheViewPeer::PRO_UID, $aProcesses, Criteria::IN);
|
||||
$criteria->add(AppCacheViewPeer::PRO_UID, $listProcess, Criteria::IN);
|
||||
return $criteria;
|
||||
}
|
||||
|
||||
@@ -1183,9 +1142,10 @@ class AppCacheView extends BaseAppCacheView
|
||||
GLOBAL $RBAC;
|
||||
$aUser = $RBAC->userObj->load( $_SESSION['USER_LOGGED'] );
|
||||
|
||||
$aProcesses = $this->getProUidSupervisor($aUser['USR_UID']);
|
||||
$processUser = new ProcessUser();
|
||||
$listProcess = $processUser->getProUidSupervisor($aUser['USR_UID']);
|
||||
$criteria = $this->getToReassign($userUid, false);
|
||||
$criteria->add(AppCacheViewPeer::PRO_UID, $aProcesses, Criteria::IN);
|
||||
$criteria->add(AppCacheViewPeer::PRO_UID, $listProcess, Criteria::IN);
|
||||
return $criteria;
|
||||
}
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
require_once 'classes/model/om/BaseListInbox.php';
|
||||
use ProcessMaker\BusinessModel\Cases as BmCases;
|
||||
use ProcessMaker\BusinessModel\User as BmUser;
|
||||
|
||||
/**
|
||||
* Skeleton subclass for representing a row from the 'LIST_INBOX' table.
|
||||
@@ -417,12 +418,24 @@ class ListInbox extends BaseListInbox implements ListInterface
|
||||
break;
|
||||
case 'to_revise':
|
||||
$criteria->add(ListInboxPeer::APP_STATUS, 'TO_DO', Criteria::EQUAL);
|
||||
$oAppCache = new AppCacheView();
|
||||
$aProcesses = $oAppCache->getProUidSupervisor($usrUid);
|
||||
$criteria->add(ListInboxPeer::PRO_UID, $aProcesses, Criteria::IN);
|
||||
$processUser = new ProcessUser();
|
||||
$listProcess = $processUser->getProUidSupervisor($usrUid);
|
||||
$criteria->add(ListInboxPeer::PRO_UID, $listProcess, Criteria::IN);
|
||||
break;
|
||||
case 'to_reassign':
|
||||
global $RBAC;
|
||||
$criteria->add(ListInboxPeer::APP_STATUS, 'TO_DO', Criteria::EQUAL);
|
||||
$user = new BmUser();
|
||||
$listProcess = $user->getProcessToReassign(['PM_REASSIGNCASE','PM_REASSIGNCASE_SUPERVISOR']);
|
||||
|
||||
//If is not a supervisor and does not have the permission for view all cases we can not list cases
|
||||
//If is a supervisor, we can list only his processes
|
||||
if (
|
||||
(empty($listProcess) && $RBAC->userCanAccess('PM_REASSIGNCASE') !== 1) ||
|
||||
(is_array($listProcess) && count($listProcess) > 0)
|
||||
) {
|
||||
$criteria->add(ListInboxPeer::PRO_UID, $listProcess, Criteria::IN);
|
||||
}
|
||||
if ($usrUid !== '') {
|
||||
$criteria->add(ListInboxPeer::USR_UID, $usrUid, Criteria::EQUAL);
|
||||
}
|
||||
@@ -617,6 +630,15 @@ class ListInbox extends BaseListInbox implements ListInterface
|
||||
return $data;
|
||||
}
|
||||
|
||||
/**
|
||||
* This function get the TAS_PRIORITY_VARIABLE related to the task
|
||||
*
|
||||
* @param string $taskUid
|
||||
* @param string $proUid
|
||||
* @param string $appUid
|
||||
*
|
||||
* @return integer
|
||||
*/
|
||||
public function getTaskPriority($taskUid, $proUid, $appUid)
|
||||
{
|
||||
$criteria = new Criteria();
|
||||
@@ -639,6 +661,14 @@ class ListInbox extends BaseListInbox implements ListInterface
|
||||
return $priority != "" ? $priority : 3;
|
||||
}
|
||||
|
||||
/**
|
||||
* This function get the TAS_PRIORITY_VARIABLE related to the task
|
||||
*
|
||||
* @param array $filters
|
||||
* @param string $fieldName
|
||||
*
|
||||
* @return mixed null|string
|
||||
*/
|
||||
public function getAppDelegationInfo($filters, $fieldName)
|
||||
{
|
||||
$criteria = new Criteria();
|
||||
@@ -655,8 +685,10 @@ class ListInbox extends BaseListInbox implements ListInterface
|
||||
|
||||
/**
|
||||
* Returns the number of cases of a user
|
||||
*
|
||||
* @param string $usrUid
|
||||
* @param array $filters
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
public function getCountList($usrUid, $filters = array())
|
||||
|
||||
@@ -4,9 +4,6 @@
|
||||
* @package workflow.engine.classes.model
|
||||
*/
|
||||
|
||||
//require_once 'classes/model/om/BaseProcessUser.php';
|
||||
|
||||
|
||||
/**
|
||||
* Skeleton subclass for representing a row from the 'PROCESS_USER' table.
|
||||
*
|
||||
@@ -127,5 +124,55 @@ class ProcessUser extends BaseProcessUser
|
||||
throw ($oError);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the list of process where the user is supervisor
|
||||
* finding cases PRO_UID where $userUid is supervising
|
||||
*
|
||||
* @param string $userUid
|
||||
*
|
||||
* @return array
|
||||
* @throws Exception
|
||||
*/
|
||||
public function getProUidSupervisor($userUid)
|
||||
{
|
||||
try {
|
||||
|
||||
$processes = [];
|
||||
|
||||
//Get the process when the user is supervisor
|
||||
$criteria = new Criteria('workflow');
|
||||
$criteria->add(ProcessUserPeer::PU_TYPE, 'SUPERVISOR');
|
||||
$criteria->add(ProcessUserPeer::USR_UID, $userUid);
|
||||
$dataset = ProcessUserPeer::doSelectRS($criteria);
|
||||
$dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
||||
$dataset->next();
|
||||
|
||||
while ($row = $dataset->getRow()) {
|
||||
$processes[] = $row['PRO_UID'];
|
||||
$dataset->next();
|
||||
}
|
||||
|
||||
//Get the process when the user is assigned into the group supervisor
|
||||
$criteria = new Criteria('workflow');
|
||||
$criteria->add(ProcessUserPeer::PU_TYPE, 'GROUP_SUPERVISOR');
|
||||
$criteria->addSelectColumn(ProcessUserPeer::PRO_UID);
|
||||
$criteria->addJoin(ProcessUserPeer::USR_UID, GroupUserPeer::GRP_UID, Criteria::LEFT_JOIN);
|
||||
$criteria->add(GroupUserPeer::USR_UID, $userUid);
|
||||
$dataset = ProcessUserPeer::doSelectRS($criteria);
|
||||
$dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
||||
$dataset->next();
|
||||
|
||||
while ($row = $dataset->getRow()) {
|
||||
$processes[] = $row['PRO_UID'];
|
||||
$dataset->next();
|
||||
}
|
||||
|
||||
return $processes;
|
||||
|
||||
} catch (Exception $e) {
|
||||
throw $e;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user