BUG 9721 Reassign cases not working properly on Parallel tasks SOLVED

- The TAS_UID was not sent and used when get the users list
- TAS_UID is send and some other validations was added
This commit is contained in:
Julio Cesar Laura
2012-09-11 13:47:14 -04:00
parent 6df68aa579
commit 3671451838
9 changed files with 48 additions and 28 deletions

View File

@@ -105,7 +105,7 @@ class Applications
$Criteria->addAsColumn('USR_USERNAME', 'CU.USR_USERNAME');
// Fix for previous user
if ($action == 'todo' || $action == 'selfservice' || $action =='unassigned' || $action == 'paused' || $action == 'to_revise') {
if ($action == 'todo' || $action == 'selfservice' || $action =='unassigned' || $action == 'paused' || $action == 'to_revise' || $action == 'sent') {
$Criteria->addAlias('PU', 'USERS');
$Criteria->addJoin(AppCacheViewPeer::PREVIOUS_USR_UID, 'PU.USR_UID', Criteria::LEFT_JOIN);
$Criteria->addAsColumn('PREVIOUS_USR_FIRSTNAME', 'PU.USR_FIRSTNAME');
@@ -305,7 +305,7 @@ class Applications
$Criteria->setOffset( $start );
/*
// this is the optimal way or query to render the cases search list
// fixing the bug related to the wrong data displayed in the list
if ( $action == 'search' ) {
@@ -323,7 +323,6 @@ class Applications
$params = array ( $maxDelIndexList );
}
*/
//execute the query
$oDataset = AppCacheViewPeer::doSelectRS($Criteria);
@@ -344,7 +343,7 @@ class Applications
* but Propel might not support it and subqueries can be slower for larger
* datasets).
*/
if ($action == 'sent' || $action == 'search') {
/*if ($action == 'sent' || $action == 'search') {
$maxCriteria = new Criteria('workflow');
$maxCriteria->add(AppCacheViewPeer::APP_UID, $aRow['APP_UID'], Criteria::EQUAL);
$maxCriteria->addDescendingOrderByColumn(AppCacheViewPeer::DEL_INDEX);
@@ -361,7 +360,7 @@ class Applications
}
$maxDataset->close();
}
}*/
if (!isset($aRow['APP_CURRENT_USER']))
$aRow['APP_CURRENT_USER'] = "[Unassigned]";

View File

@@ -56,7 +56,7 @@ class AppCacheView extends BaseAppCacheView
break;
case 'sent':
$criteria = $this->getSentCountCriteria($userUid);
return AppCacheViewPeer::doCount($criteria, true);
//return AppCacheViewPeer::doCount($criteria, true);
break;
case 'selfservice':
$criteria = $this->getUnassignedCountCriteria($userUid);
@@ -207,12 +207,13 @@ class AppCacheView extends BaseAppCacheView
*/
public function getSentCountCriteria($userUid)
{
$criteria = new Criteria('workflow');
/*$criteria = new Criteria('workflow');
$criteria = $this->addPMFieldsToCriteria('sent');
$criteria->add(AppCacheViewPeer::USR_UID, $userUid);
return $criteria;
return $criteria;*/
return $this->getSentListCriteria($userUid);
}
/**
@@ -226,9 +227,11 @@ class AppCacheView extends BaseAppCacheView
//$criteria->addAsColumn('MAX_DEL_INDEX', 'MAX(' . AppDelegationPeer::DEL_INDEX . ')');
//$criteria->addJoin(AppCacheViewPeer::APP_UID , AppDelegationPeer::APP_UID, Criteria::LEFT_JOIN);
$criteria->add(AppCacheViewPeer::USR_UID, $userUid);
$criteria->addGroupByColumn(AppCacheViewPeer::APP_UID);
//$criteria->add(AppCacheViewPeer::USR_UID, $userUid);
//$criteria->addGroupByColumn(AppCacheViewPeer::APP_UID);
//$criteria->addGroupByColumn(AppCacheViewPeer::APP_);
$criteria->add(AppCacheViewPeer::PREVIOUS_USR_UID, $userUid);
$criteria->add(AppCacheViewPeer::DEL_FINISH_DATE, null, Criteria::ISNULL);
return $criteria;
}
@@ -571,10 +574,11 @@ class AppCacheView extends BaseAppCacheView
public function getSearchCountCriteria()
{
//$criteria = new Criteria('workflow');
$criteria = $this->addPMFieldsToCriteria('sent');
//$criteria = $this->addPMFieldsToCriteria('sent');
return $criteria;
//return $criteria;
//return $this->getSearchCriteria(true);
return $this->getSearchListCriteria();
}
public function getSearchAllCount()

View File

@@ -215,6 +215,8 @@ class Ajax
global $G_TABLE;
global $RBAC;
G::LoadClass('processMap');
$oTemplatePower = new TemplatePower(PATH_TPL . 'processes/processes_Map.html');
$oTemplatePower->prepare();
$G_PUBLISH = new Publisher();
@@ -224,6 +226,7 @@ class Ajax
//$oHeadPublisher->addScriptfile('/jscore/processmap/core/processmap.js');
$oHeadPublisher->addScriptCode('
var maximunX = ' . processMap::getMaximunTaskX($_SESSION['PROCESS']) . ';
window.onload = function(){
var pb=leimnud.dom.capture("tag.body 0");
Pm=new processmap();

View File

@@ -430,6 +430,9 @@
$caseReaderFields[] = array( 'name' => 'APP_UID' );
$caseReaderFields[] = array( 'name' => 'USR_UID' );
$caseReaderFields[] = array( 'name' => 'PREVIOUS_USR_UID' );
$caseReaderFields[] = array( 'name' => 'PREVIOUS_USR_FIRSTNAME' );
$caseReaderFields[] = array( 'name' => 'PREVIOUS_USR_LASTNAME' );
$caseReaderFields[] = array( 'name' => 'PREVIOUS_USR_USERNAME' );
$caseReaderFields[] = array( 'name' => 'APP_NUMBER' );
$caseReaderFields[] = array( 'name' => 'APP_STATUS' );
$caseReaderFields[] = array( 'name' => 'DEL_INDEX' );

View File

@@ -78,12 +78,14 @@ switch (($_POST['action'])?$_POST['action']:$_REQUEST['action']) {
G::RenderPage('publish', 'raw');
break;
case 'showProcessMap':
G::LoadClass('processMap');
$oTemplatePower = new TemplatePower(PATH_TPL . 'processes/processes_Map.html');
$oTemplatePower->prepare();
$G_PUBLISH = new Publisher();
$G_PUBLISH->AddContent('template', '', '', '', $oTemplatePower);
$oHeadPublisher = & headPublisher::getSingleton();
$oHeadPublisher->addScriptCode('
var maximunX = ' . processMap::getMaximunTaskX($_SESSION['PROCESS']) . ';
var pb=leimnud.dom.capture("tag.body 0");
Pm=new processmap();

View File

@@ -46,7 +46,7 @@ function array_sort($array, $on, $order=SORT_ASC, $query='')
foreach ($sortable_array as $k => $v) {
if ($query==''){
$new_array[] = $array[$k];
}
}
else {
if ( preg_match("/".$query."/i", $array[$k]['userFullname']) ) {
$new_array[] = $array[$k];
@@ -57,11 +57,11 @@ function array_sort($array, $on, $order=SORT_ASC, $query='')
return $new_array;
}
// $APP_UIDS = explode(',', $_POST['APP_UID']);
$appUid = isset($_POST['application']) ? $_POST['application'] : '';
// $processUid = isset($_POST['process']) ? $_POST['process'] : '';
// $TaskUid = isset($_POST['task']) ? $_POST['task'] : '';
$sReassignFromUser = isset($_POST['user']) ? $_POST['user'] : '';
$TaskUid = isset($_POST['task']) ? $_POST['task'] : '';
$sReassignFromUser = isset($_POST['currentUser']) ? $_POST['currentUser'] : '';
G::LoadClass('tasks');
G::LoadClass('groups');
@@ -76,25 +76,25 @@ function array_sort($array, $on, $order=SORT_ASC, $query='')
$aCasesList = Array();
// foreach ( $APP_UIDS as $APP_UID ) {
$aCase = $oCases->loadCaseInCurrentDelegation($appUid);
//$aCase = $oCases->loadCaseInCurrentDelegation($appUid);
$aUsersInvolved = Array();
$aCaseGroups = $oTasks->getGroupsOfTask($aCase['TAS_UID'], 1);
$oConf = new Configurations;
$aCaseGroups = $oTasks->getGroupsOfTask($TaskUid, 1);
$oConf = new Configurations;
$ConfEnv= $oConf->getFormats();
foreach ( $aCaseGroups as $aCaseGroup ) {
$aCaseUsers = $oGroups->getUsersOfGroup($aCaseGroup['GRP_UID']);
foreach ( $aCaseUsers as $aCaseUser ) {
if ( $aCaseUser['USR_UID'] != $sReassignFromUser ) {
$aCaseUserRecord = $oUser->load($aCaseUser['USR_UID']);
$sCaseUser = G::getFormatUserList ($ConfEnv['format'],$aCaseUserRecord);
$sCaseUser = G::getFormatUserList ($ConfEnv['format'],$aCaseUserRecord);
// $aUsersInvolved[] = array ( 'userUid' => $aCaseUser['USR_UID'] , 'userFullname' => $aCaseUserRecord['USR_FIRSTNAME'] . ' ' . $aCaseUserRecord['USR_LASTNAME']); // . ' (' . $aCaseUserRecord['USR_USERNAME'] . ')';
$aUsersInvolved[] = array ( 'userUid' => $aCaseUser['USR_UID'] , 'userFullname' => $sCaseUser); // . ' (' . $aCaseUserRecord['USR_USERNAME'] . ')';
}
}
}
$aCaseUsers = $oTasks->getUsersOfTask($aCase['TAS_UID'], 1);
$aCaseUsers = $oTasks->getUsersOfTask($TaskUid, 1);
foreach ( $aCaseUsers as $aCaseUser ) {
if ( $aCaseUser['USR_UID'] != $sReassignFromUser ) {
$aCaseUserRecord = $oUser->load($aCaseUser['USR_UID']);
@@ -105,7 +105,7 @@ function array_sort($array, $on, $order=SORT_ASC, $query='')
}
// $oTmp = new stdClass();
// $oTmp->items = $aUsersInvolved;
$result = array();
$aUsersInvolved = array_sort($aUsersInvolved,'userFullname',SORT_ASC, $query);
$result = array();
$aUsersInvolved = array_sort($aUsersInvolved,'userFullname',SORT_ASC, $query);
$result['data'] = $aUsersInvolved;
print G::json_encode( $result ) ;

View File

@@ -53,6 +53,7 @@ switch (($aCaseTracker['CT_MAP_TYPE'])) {
break;
case 'PROCESSMAP':
G::LoadClass('case');
G::LoadClass('processMap');
$oCase = new Cases();
$aFields = $oCase->loadCase($_SESSION['APPLICATION']);
if (isset($aFields['TITLE'])) {
@@ -72,6 +73,7 @@ switch (($aCaseTracker['CT_MAP_TYPE'])) {
$G_PUBLISH->AddContent('template', '', '', '', $oTemplatePower);
$oHeadPublisher = & headPublisher::getSingleton();
$oHeadPublisher->addScriptCode('
var maximunX = ' . processMap::getMaximunTaskX($_SESSION['PROCESS']) . ';
leimnud.event.add(window,"load",function(){
var pb = leimnud.dom.capture("tag.body 0");
pm = new processmap();

View File

@@ -852,7 +852,7 @@ Ext.onReady ( function() {
'select': function() {
filterProcess = comboAllUsers.value;
if (filterProcess==''){
/*if (filterProcess==''){
btnSelectAll.hide();
btnUnSelectAll.hide();
btnReassign.hide();
@@ -861,7 +861,7 @@ Ext.onReady ( function() {
btnSelectAll.show();
btnUnSelectAll.show();
btnReassign.show();
}
}*/
storeCases.setBaseParam( 'user', filterProcess);
storeCases.load({params:{user: filterProcess, start : 0 , limit : pageSize}});
}},
@@ -1741,6 +1741,8 @@ var gridForm = new Ext.FormPanel({
click: function() {
rows = this.getSelectionModel().getSelections();
var application = '';
var task = '';
var currentUser = '';
comboUsersToReassign.disable();
if( rows.length > 0 ) {
comboUsersToReassign.enable();
@@ -1748,13 +1750,17 @@ var gridForm = new Ext.FormPanel({
for(i=0; i<rows.length; i++) {
// filtering duplicate tasks
application = rows[i].get('APP_UID');
task = rows[i].get('TAS_UID');
currentUser = rows[i].get('USR_UID');
}
} else {
}
comboUsersToReassign.clearValue();
storeUsersToReassign.removeAll();
storeUsersToReassign.setBaseParam('application',application);
storeUsersToReassign.setBaseParam('application', application);
storeUsersToReassign.setBaseParam('task', task);
storeUsersToReassign.setBaseParam('currentUser', currentUser);
storeUsersToReassign.load();
//alert(record.USERS);

View File

@@ -55,7 +55,8 @@ Ext.onReady(function(){
x : 100,
y : 100,
constrain : true,
items : [treeToRevise]
items : [treeToRevise],
closeAction : 'hide'
});
}
};