BUG-11374 Process Supervisor unable to adhoc assign to self SOLVED

- No se podia reasigna un caso a un supervisor.
- Se agrega la funcionalidad para que el supervisor aparesca en el listado de reasignacion.
- Solo el supervisor se pude reasignar a si mismo el caso y no hacia otros supervisores.
This commit is contained in:
Marco Antonio Nina
2013-08-29 09:01:53 -04:00
parent 11adb2fd1b
commit f0eb425ec4

View File

@@ -71,11 +71,81 @@ $aUsersInvolved = Array();
$ConfEnv = $oConf->getFormats();
$rows = $oCases->getUsersToReassign($TaskUid, $sReassignFromUser);
$flagSupervisors = false;
foreach ($rows as $row) {
$sCaseUser = G::getFormatUserList( $ConfEnv['format'], $row );
$aUsersInvolved[] = array ('userUid' => $row['USR_UID'], 'userFullname' => $sCaseUser);
if ($row['USR_UID'] == $sReassignFromUser) {
$flagSupervisors = true;
}
}
if (!$flagSupervisors) {
G::LoadClass('application');
$application = new Application();
$appData = $application->Load($appUid);
$aResp =array();
$sProcessUID =$appData ['PRO_UID'];
// Users
$oCriteria = new Criteria('workflow');
$oCriteria->addSelectColumn(ProcessUserPeer::PU_UID);
$oCriteria->addSelectColumn(ProcessUserPeer::USR_UID);
$oCriteria->addSelectColumn(ProcessUserPeer::PRO_UID);
$oCriteria->addSelectColumn(UsersPeer::USR_FIRSTNAME);
$oCriteria->addSelectColumn(UsersPeer::USR_LASTNAME);
$oCriteria->addSelectColumn(UsersPeer::USR_USERNAME);
$oCriteria->addSelectColumn(UsersPeer::USR_EMAIL);
$oCriteria->addJoin(ProcessUserPeer::USR_UID, UsersPeer::USR_UID, Criteria::LEFT_JOIN);
$oCriteria->add(ProcessUserPeer::PU_TYPE, 'SUPERVISOR');
$oCriteria->add(ProcessUserPeer::PRO_UID, $sProcessUID);
$oCriteria->add(ProcessUserPeer::USR_UID, $sReassignFromUser);
$oCriteria->addAscendingOrderByColumn(UsersPeer::USR_FIRSTNAME);
$oDataset = ProcessUserPeer::doSelectRS($oCriteria);
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
$oDataset->next();
$flagSupervisors = false;
while ($aRow = $oDataset->getRow()) {
$supervisors = G::getFormatUserList( $ConfEnv['format'], $aRow );
$aUsersInvolved[] = array ('userUid' => $aRow['USR_UID'], 'userFullname' => $supervisors);
$oDataset->next();
$flagSupervisors = true;
}
if (!$flagSupervisors) {
// Groups
$oCriteria = new Criteria('workflow');
$oCriteria->addSelectColumn(ProcessUserPeer::PU_UID);
$oCriteria->addSelectColumn(ProcessUserPeer::USR_UID);
$oCriteria->addSelectColumn(ProcessUserPeer::PRO_UID);
$oCriteria->addSelectColumn(UsersPeer::USR_UID);
$oCriteria->addSelectColumn(UsersPeer::USR_FIRSTNAME);
$oCriteria->addSelectColumn(UsersPeer::USR_LASTNAME);
$oCriteria->addSelectColumn(UsersPeer::USR_USERNAME);
$oCriteria->addSelectColumn(UsersPeer::USR_EMAIL);
$oCriteria->addJoin(ProcessUserPeer::USR_UID, GroupUserPeer::GRP_UID, Criteria::LEFT_JOIN);
$oCriteria->addJoin(GroupUserPeer::USR_UID, UsersPeer::USR_UID, Criteria::LEFT_JOIN);
$oCriteria->add(ProcessUserPeer::PU_TYPE, 'GROUP_SUPERVISOR');
$oCriteria->add(ProcessUserPeer::PRO_UID, $sProcessUID);
$oCriteria->add(GroupUserPeer::USR_UID, $sReassignFromUser);
$oDataset = ProcessUserPeer::doSelectRS($oCriteria);
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
$oDataset->next();
while ($aRow = $oDataset->getRow()) {
$supervisors = G::getFormatUserList( $ConfEnv['format'], $aRow );
$aUsersInvolved[] = array ('userUid' => $aRow['USR_UID'], 'userFullname' => $supervisors);
$oDataset->next();
}
}
}
// $oTmp = new stdClass();
// $oTmp->items = $aUsersInvolved;