BUG-14390 Process Supervisor - Review

In Review section a case in a parallel task the Current User will be the same on both tasks
This commit is contained in:
norahmollo
2014-04-23 16:28:02 -04:00
parent 7e3a1871a0
commit 1456c99a1d
6 changed files with 96 additions and 14 deletions

View File

@@ -200,6 +200,7 @@ class Applications
$CriteriaCount->addJoinMC($arrayCondition, Criteria::LEFT_JOIN); $CriteriaCount->addJoinMC($arrayCondition, Criteria::LEFT_JOIN);
//Previous user //Previous user
if (($action == "todo" || $action == "selfservice" || $action == "unassigned" || $action == "paused" || $action == "to_revise" || $action == "sent") || ($status == "TO_DO" || $status == "DRAFT" || $status == "PAUSED" || $status == "CANCELLED" || $status == "COMPLETED")) { if (($action == "todo" || $action == "selfservice" || $action == "unassigned" || $action == "paused" || $action == "to_revise" || $action == "sent") || ($status == "TO_DO" || $status == "DRAFT" || $status == "PAUSED" || $status == "CANCELLED" || $status == "COMPLETED")) {
$Criteria->addAlias( 'PU', 'USERS' ); $Criteria->addAlias( 'PU', 'USERS' );
$Criteria->addJoin( AppCacheViewPeer::PREVIOUS_USR_UID, 'PU.USR_UID', Criteria::LEFT_JOIN ); $Criteria->addJoin( AppCacheViewPeer::PREVIOUS_USR_UID, 'PU.USR_UID', Criteria::LEFT_JOIN );
@@ -407,7 +408,7 @@ class Applications
//Check also $distinct in the method getListCounters(), this in AppCacheView.php //Check also $distinct in the method getListCounters(), this in AppCacheView.php
$distinct = true; $distinct = true;
if (($action == "todo" || $action == "selfservice" || $action == "unassigned" || $action == "to_reassign") || ($status == "TO_DO")) { if (($action == "todo" || $action == "selfservice" || $action == "unassigned" || $action == "to_reassign" || $action == "to_revise") || ($status == "TO_DO")) {
$distinct = false; $distinct = false;
} }
@@ -429,7 +430,6 @@ class Applications
require_once (PATH_DB . SYS_SYS . PATH_SEP . "classes" . PATH_SEP . $tableName . ".php"); require_once (PATH_DB . SYS_SYS . PATH_SEP . "classes" . PATH_SEP . $tableName . ".php");
} }
} }
$totalCount = AppCacheViewPeer::doCount($CriteriaCount, $distinct); $totalCount = AppCacheViewPeer::doCount($CriteriaCount, $distinct);
} }
@@ -528,13 +528,14 @@ class Applications
$maxDataset->close(); $maxDataset->close();
}*/ }*/
//Current delegation (*) //Current delegation (*) || $action == "search" || $action == "to_revise"
if (($action == "sent" || $action == "search" || $action == "simple_search" || $action == "to_revise" || $action == "to_reassign") && ($status != "TO_DO")) { if (($action == "sent" || $action == "simple_search" || $action == "to_reassign") && ($status != "TO_DO")) {
//Current task //Current task
$aRow["APP_TAS_TITLE"] = $aRow["APPCVCR_APP_TAS_TITLE"]; $aRow["APP_TAS_TITLE"] = $aRow["APPCVCR_APP_TAS_TITLE"];
//Current user //Current user
if ($action != "to_reassign" ) { //if ($action != "to_reassign" ) {
if (($action != "to_reassign") && ($action != "search") && ($action != "to revise")) {
$aRow["USR_UID"] = $aRow["USRCR_USR_UID"]; $aRow["USR_UID"] = $aRow["USRCR_USR_UID"];
$aRow["USR_FIRSTNAME"] = $aRow["USRCR_USR_FIRSTNAME"]; $aRow["USR_FIRSTNAME"] = $aRow["USRCR_USR_FIRSTNAME"];
$aRow["USR_LASTNAME"] = $aRow["USRCR_USR_LASTNAME"]; $aRow["USR_LASTNAME"] = $aRow["USRCR_USR_LASTNAME"];

View File

@@ -507,7 +507,7 @@ class Cases
* @return Fields * @return Fields
*/ */
public function loadCase($sAppUid, $iDelIndex = 0) public function loadCase($sAppUid, $iDelIndex = 0, $jump = '')
{ {
try { try {
$oApp = new Application; $oApp = new Application;
@@ -575,9 +575,25 @@ class Cases
$aFields['DEL_FINISH_DATE'] = $aAppDel['DEL_FINISH_DATE']; $aFields['DEL_FINISH_DATE'] = $aAppDel['DEL_FINISH_DATE'];
$aFields['CURRENT_USER_UID'] = $aAppDel['USR_UID']; $aFields['CURRENT_USER_UID'] = $aAppDel['USR_UID'];
try { try {
//$oCurUser = new Users();
//$oCurUser->load($aAppDel['USR_UID']);
//$aFields['CURRENT_USER'] = $oCurUser->getUsrFirstname() . ' ' . $oCurUser->getUsrLastname();
$oCurUser = new Users(); $oCurUser = new Users();
if ($jump != '') {
$aCases = $oAppDel->LoadParallel($sAppUid);
$aFields['TAS_UID'] = '';
$aFields['CURRENT_USER'] = '';
foreach ($aCases as $key => $value) {
$oCurUser->load($value['USR_UID']);
$aFields['CURRENT_USER'][]= $oCurUser->getUsrFirstname() . ' ' . $oCurUser->getUsrLastname();
$aFields['TAS_UID'].= $value['TAS_UID'].'-';
}
$aFields['CURRENT_USER'] = implode(" - ", array_values($aFields['CURRENT_USER']));
} else {
$oCurUser->load($aAppDel['USR_UID']); $oCurUser->load($aAppDel['USR_UID']);
$aFields['CURRENT_USER'] = $oCurUser->getUsrFirstname() . ' ' . $oCurUser->getUsrLastname(); $aFields['CURRENT_USER'] = $oCurUser->getUsrFirstname() . ' ' . $oCurUser->getUsrLastname();
}
} catch (Exception $oError) { } catch (Exception $oError) {
$aFields['CURRENT_USER'] = ''; $aFields['CURRENT_USER'] = '';
} }

View File

@@ -203,6 +203,41 @@ class AppDelegation extends BaseAppDelegation
} }
} }
/* Load the Application Delegation row specified in [app_id] column value.
*
* @param string $AppUid the uid of the application
* @return array $Fields the fields
*/
public function LoadParallel ($AppUid)
{
$c = new Criteria( 'workflow' );
$c->addSelectColumn( AppDelegationPeer::APP_UID );
$c->addSelectColumn( AppDelegationPeer::DEL_INDEX );
$c->addSelectColumn( AppDelegationPeer::PRO_UID );
$c->addSelectColumn( AppDelegationPeer::TAS_UID );
$c->addSelectColumn( AppDelegationPeer::USR_UID );
$c->add( AppDelegationPeer::DEL_THREAD_STATUS, 'OPEN' );
$c->add( AppDelegationPeer::APP_UID, $AppUid );
$c->addDescendingOrderByColumn( AppDelegationPeer::DEL_INDEX );
$rs = AppDelegationPeer::doSelectRS( $c );
$row= $rs->setFetchmode( ResultSet::FETCHMODE_ASSOC );
$rs->next();
$row = $rs->getRow();
while (is_array($row)) {
$case['TAS_UID'] = $row['TAS_UID'];
$case['USR_UID'] = $row['USR_UID'];
$aCases[] = $case;
$rs->next();
$row = $rs->getRow();
}
return $aCases;
}
/** /**
* Update the application row * Update the application row
* *

View File

@@ -188,7 +188,14 @@ try {
$_SESSION['INDEX'] = $row['DEL_INDEX']; $_SESSION['INDEX'] = $row['DEL_INDEX'];
$_SESSION['PROCESS'] = $aFields['PRO_UID']; $_SESSION['PROCESS'] = $aFields['PRO_UID'];
$_SESSION['TASK'] = - 1; $_SESSION['TASK'] = - 1;
//$Fields = $oCase->loadCase( $_SESSION['APPLICATION'], $_SESSION['INDEX'] );
if ($_action == 'jump') {
$Fields = $oCase->loadCase( $_SESSION['APPLICATION'], $_SESSION['INDEX'], 1);
$_SESSION['ACTION'] = 'jump';
} else {
$Fields = $oCase->loadCase( $_SESSION['APPLICATION'], $_SESSION['INDEX']); $Fields = $oCase->loadCase( $_SESSION['APPLICATION'], $_SESSION['INDEX']);
}
$_SESSION['CURRENT_TASK'] = $Fields['TAS_UID']; $_SESSION['CURRENT_TASK'] = $Fields['TAS_UID'];
$_SESSION['STEP_POSITION'] = 0; $_SESSION['STEP_POSITION'] = 0;
require_once (PATH_METHODS . 'cases' . PATH_SEP . 'cases_Resume.php'); require_once (PATH_METHODS . 'cases' . PATH_SEP . 'cases_Resume.php');

View File

@@ -49,7 +49,13 @@ $G_ID_SUB_MENU_SELECTED = '_';
/* Prepare page before to show */ /* Prepare page before to show */
$oCase = new Cases(); $oCase = new Cases();
//$Fields = $oCase->loadCase( $_SESSION['APPLICATION'], $_SESSION['INDEX'] );
if (isset($_SESSION['ACTION']) && ($_SESSION['ACTION'] == 'jump')) {
$Fields = $oCase->loadCase( $_SESSION['APPLICATION'], $_SESSION['INDEX'], $_SESSION['ACTION']);
} else {
$Fields = $oCase->loadCase( $_SESSION['APPLICATION'], $_SESSION['INDEX']); $Fields = $oCase->loadCase( $_SESSION['APPLICATION'], $_SESSION['INDEX']);
}
$participated = $oCase->userParticipatedInCase( $_GET['APP_UID'], $_SESSION['USER_LOGGED'] ); $participated = $oCase->userParticipatedInCase( $_GET['APP_UID'], $_SESSION['USER_LOGGED'] );
if ($RBAC->userCanAccess( 'PM_ALLCASES' ) < 0 && $participated == 0) { if ($RBAC->userCanAccess( 'PM_ALLCASES' ) < 0 && $participated == 0) {
@@ -110,9 +116,21 @@ $aProc = $objProc->load( $Fields['PRO_UID'] );
$Fields['PRO_TITLE'] = $aProc['PRO_TITLE']; $Fields['PRO_TITLE'] = $aProc['PRO_TITLE'];
$objTask = new Task(); $objTask = new Task();
//$aTask = $objTask->load( $Fields['TAS_UID'] );
//$Fields['TAS_TITLE'] = $aTask['TAS_TITLE'];
if (isset($_SESSION['ACTION']) && ($_SESSION['ACTION'] == 'jump')) {
$task = explode('-', $Fields['TAS_UID']);
$Fields['TAS_TITLE'] = '';
for( $i = 0; $i < sizeof($task)-1; $i ++ ) {
$aTask = $objTask->load( $task[$i] );
$Fields['TAS_TITLE'][] = $aTask['TAS_TITLE'];
}
$Fields['TAS_TITLE'] = implode(" - ", array_values($Fields['TAS_TITLE']));
} else {
$aTask = $objTask->load( $Fields['TAS_UID'] ); $aTask = $objTask->load( $Fields['TAS_UID'] );
$Fields['TAS_TITLE'] = $aTask['TAS_TITLE']; $Fields['TAS_TITLE'] = $aTask['TAS_TITLE'];
}
$oHeadPublisher = & headPublisher::getSingleton(); $oHeadPublisher = & headPublisher::getSingleton();
$oHeadPublisher->addScriptFile( '/jscore/cases/core/cases_Step.js' ); $oHeadPublisher->addScriptFile( '/jscore/cases/core/cases_Step.js' );
$G_PUBLISH = new Publisher(); $G_PUBLISH = new Publisher();

View File

@@ -61,7 +61,12 @@ foreach ($_GET as $k => $v) {
$uri .= ($uri == '') ? "$k=$v" : "&$k=$v"; $uri .= ($uri == '') ? "$k=$v" : "&$k=$v";
} }
//$case = $oCase->loadCase( $_GET['APP_UID'], $_GET['DEL_INDEX'] );
if( isset($_GET['action']) && ($_GET['action'] == 'jump') ) {
$case = $oCase->loadCase( $_GET['APP_UID'], $_GET['DEL_INDEX'], $_GET['action']);
} else {
$case = $oCase->loadCase( $_GET['APP_UID'], $_GET['DEL_INDEX'] ); $case = $oCase->loadCase( $_GET['APP_UID'], $_GET['DEL_INDEX'] );
}
if (! isset( $_GET['to_revise'] )) { if (! isset( $_GET['to_revise'] )) {
$script = 'cases_Open?'; $script = 'cases_Open?';