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);
//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")) {
$Criteria->addAlias( 'PU', 'USERS' );
$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
$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;
}
@@ -429,7 +430,6 @@ class Applications
require_once (PATH_DB . SYS_SYS . PATH_SEP . "classes" . PATH_SEP . $tableName . ".php");
}
}
$totalCount = AppCacheViewPeer::doCount($CriteriaCount, $distinct);
}
@@ -528,13 +528,14 @@ class Applications
$maxDataset->close();
}*/
//Current delegation (*)
if (($action == "sent" || $action == "search" || $action == "simple_search" || $action == "to_revise" || $action == "to_reassign") && ($status != "TO_DO")) {
//Current delegation (*) || $action == "search" || $action == "to_revise"
if (($action == "sent" || $action == "simple_search" || $action == "to_reassign") && ($status != "TO_DO")) {
//Current task
$aRow["APP_TAS_TITLE"] = $aRow["APPCVCR_APP_TAS_TITLE"];
//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_FIRSTNAME"] = $aRow["USRCR_USR_FIRSTNAME"];
$aRow["USR_LASTNAME"] = $aRow["USRCR_USR_LASTNAME"];

View File

@@ -507,7 +507,7 @@ class Cases
* @return Fields
*/
public function loadCase($sAppUid, $iDelIndex = 0)
public function loadCase($sAppUid, $iDelIndex = 0, $jump = '')
{
try {
$oApp = new Application;
@@ -575,9 +575,25 @@ class Cases
$aFields['DEL_FINISH_DATE'] = $aAppDel['DEL_FINISH_DATE'];
$aFields['CURRENT_USER_UID'] = $aAppDel['USR_UID'];
try {
//$oCurUser = new Users();
//$oCurUser->load($aAppDel['USR_UID']);
//$aFields['CURRENT_USER'] = $oCurUser->getUsrFirstname() . ' ' . $oCurUser->getUsrLastname();
$oCurUser = new Users();
$oCurUser->load($aAppDel['USR_UID']);
$aFields['CURRENT_USER'] = $oCurUser->getUsrFirstname() . ' ' . $oCurUser->getUsrLastname();
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']);
$aFields['CURRENT_USER'] = $oCurUser->getUsrFirstname() . ' ' . $oCurUser->getUsrLastname();
}
} catch (Exception $oError) {
$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
*
@@ -290,7 +325,7 @@ class AppDelegation extends BaseAppDelegation
$aCalendarUID = '';
}
//use the dates class to calculate dates
//use the dates class to calculate dates
$calendar = new calendar();
if ($calendar->pmCalendarUid == '') {

View File

@@ -188,7 +188,14 @@ try {
$_SESSION['INDEX'] = $row['DEL_INDEX'];
$_SESSION['PROCESS'] = $aFields['PRO_UID'];
$_SESSION['TASK'] = - 1;
$Fields = $oCase->loadCase( $_SESSION['APPLICATION'], $_SESSION['INDEX'] );
//$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']);
}
$_SESSION['CURRENT_TASK'] = $Fields['TAS_UID'];
$_SESSION['STEP_POSITION'] = 0;
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 */
$oCase = new Cases();
$Fields = $oCase->loadCase( $_SESSION['APPLICATION'], $_SESSION['INDEX'] );
//$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']);
}
$participated = $oCase->userParticipatedInCase( $_GET['APP_UID'], $_SESSION['USER_LOGGED'] );
if ($RBAC->userCanAccess( 'PM_ALLCASES' ) < 0 && $participated == 0) {
@@ -110,9 +116,21 @@ $aProc = $objProc->load( $Fields['PRO_UID'] );
$Fields['PRO_TITLE'] = $aProc['PRO_TITLE'];
$objTask = new Task();
$aTask = $objTask->load( $Fields['TAS_UID'] );
$Fields['TAS_TITLE'] = $aTask['TAS_TITLE'];
//$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'] );
$Fields['TAS_TITLE'] = $aTask['TAS_TITLE'];
}
$oHeadPublisher = & headPublisher::getSingleton();
$oHeadPublisher->addScriptFile( '/jscore/cases/core/cases_Step.js' );
$G_PUBLISH = new Publisher();

View File

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