BUG 4715 I add assigned group to supervisor user

I add assigned to superisor user in cases to groups
This commit is contained in:
Brayan Osmar Pereyra Suxo
2012-10-04 15:19:31 -04:00
parent 65e75911c9
commit f12c66426c
7 changed files with 176 additions and 30 deletions

View File

@@ -3149,18 +3149,78 @@ class processMap {
* @return object(Criteria) $oCriteria
*/
function listProcessesUser($sProcessUID) {
$aResp = array(
array(
'LA_PU_UID' => 'char',
'LA_PRO_UID' => 'char',
'LA_USR_UID' => 'char',
'LA_PU_NAME' => 'char',
'LA_PU_TYPE_NAME' => 'char')
);
// Groups
$oCriteria = new Criteria('workflow');
$oCriteria->addSelectColumn(ProcessUserPeer::PU_UID);
$oCriteria->addSelectColumn(ProcessUserPeer::USR_UID);
$oCriteria->addSelectColumn(ProcessUserPeer::PRO_UID);
$oCriteria->addAsColumn('GRP_TITLE', ContentPeer::CON_VALUE);
$aConditions [] = array(ProcessUserPeer::USR_UID, ContentPeer::CON_ID);
$aConditions [] = array(ContentPeer::CON_CATEGORY, DBAdapter::getStringDelimiter () . 'GRP_TITLE' . DBAdapter::getStringDelimiter ());
$aConditions [] = array(ContentPeer::CON_LANG, DBAdapter::getStringDelimiter () . SYS_LANG . DBAdapter::getStringDelimiter ());
$oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN);
$oCriteria->add(ProcessUserPeer::PU_TYPE, 'GROUP_SUPERVISOR');
$oCriteria->add(ProcessUserPeer::PRO_UID, $sProcessUID);
$oCriteria->addAscendingOrderByColumn(ContentPeer::CON_VALUE);
$oDataset = ProcessUserPeer::doSelectRS($oCriteria);
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
$oDataset->next();
while ($aRow = $oDataset->getRow()) {
$aResp[] = array(
'LA_PU_UID' => $aRow['PU_UID'],
'LA_PRO_UID' => $aRow['PRO_UID'],
'LA_USR_UID' => $aRow['USR_UID'],
'LA_PU_NAME' => $aRow['GRP_TITLE'],
'LA_PU_TYPE_NAME' => 'Group');
$oDataset->next();
}
// Users
$oCriteria = new Criteria('workflow');
$oCriteria->addSelectColumn(ProcessUserPeer::PU_UID);
$oCriteria->addSelectColumn(ProcessUserPeer::USR_UID);
$oCriteria->addSelectColumn(ProcessUserPeer::PRO_UID);
$oCriteria->addSelectColumn(ProcessUserPeer::PU_TYPE);
$oCriteria->addSelectColumn(UsersPeer::USR_FIRSTNAME);
$oCriteria->addSelectColumn(UsersPeer::USR_LASTNAME);
$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);
return $oCriteria;
$oCriteria->addAscendingOrderByColumn(UsersPeer::USR_FIRSTNAME);
$oDataset = ProcessUserPeer::doSelectRS($oCriteria);
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
$oDataset->next();
while ($aRow = $oDataset->getRow()) {
$aResp[] = array(
'LA_PU_UID' => $aRow['PU_UID'],
'LA_PRO_UID' => $aRow['PRO_UID'],
'LA_USR_UID' => $aRow['USR_UID'],
'LA_PU_NAME' => $aRow['USR_FIRSTNAME'] . ' ' . $aRow['USR_LASTNAME'],
'LA_PU_TYPE_NAME' => 'User');
$oDataset->next();
}
global $_DBArray;
$_DBArray['data'] = $aResp;
$_SESSION['_DBArray'] = $_DBArray;
$LiCriteria = new Criteria('dbarray');
$LiCriteria->setDBArrayTable('data');
return $LiCriteria;
}
/**
@@ -3175,16 +3235,54 @@ class processMap {
$oCriteria = new Criteria('workflow');
$oCriteria->addSelectColumn(ProcessUserPeer::USR_UID);
$oCriteria->addSelectColumn(ProcessUserPeer::PU_TYPE);
$oCriteria->add(ProcessUserPeer::PRO_UID, $sProcessUID);
$oCriteria->add(ProcessUserPeer::PU_TYPE, 'SUPERVISOR');
$oCriteria->add(ProcessUserPeer::PU_TYPE, '%SUPERVISOR%', Criteria::LIKE);
$oDataset = ProcessUserPeer::doSelectRS($oCriteria);
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
$oDataset->next();
$aUIDS = array();
$aGRUS = array();
while ($aRow = $oDataset->getRow()) {
$aUIDS [] = $aRow ['USR_UID'];
if ($aRow['PU_TYPE'] == 'SUPERVISOR') {
$aUIDS [] = $aRow ['USR_UID'];
} else {
$aGRUS [] = $aRow ['USR_UID'];
}
$oDataset->next();
}
$aRespLi = array(
array(
'UID' => 'char',
'USER_GROUP' => 'char',
'TYPE_UID' => 'char',
'PRO_UID' => 'char')
);
$oCriteria = new Criteria('workflow');
$oCriteria->addSelectColumn(GroupwfPeer::GRP_UID);
$oCriteria->addAsColumn('GRP_TITLE', ContentPeer::CON_VALUE);
$aConditions [] = array(GroupwfPeer::GRP_UID, ContentPeer::CON_ID);
$aConditions [] = array(ContentPeer::CON_CATEGORY, DBAdapter::getStringDelimiter () . 'GRP_TITLE' . DBAdapter::getStringDelimiter ());
$aConditions [] = array(ContentPeer::CON_LANG, DBAdapter::getStringDelimiter () . SYS_LANG . DBAdapter::getStringDelimiter ());
$oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN);
$oCriteria->add(GroupwfPeer::GRP_UID, $aGRUS, Criteria::NOT_IN);
$oCriteria->addAscendingOrderByColumn(ContentPeer::CON_VALUE);
$oDataset = GroupwfPeer::doSelectRS($oCriteria);
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
$oDataset->next();
while ($aRow = $oDataset->getRow()) {
$aRespLi[] = array( 'UID' => $aRow['GRP_UID'],
'USER_GROUP' => $aRow['GRP_TITLE'],
'TYPE_UID' => 'Group',
'PRO_UID' => $sProcessUID);
$oDataset->next();
}
$sDelimiter = DBAdapter::getStringDelimiter ();
$oCriteria = new Criteria('workflow');
$oCriteria->addSelectColumn(UsersPeer::USR_UID);
@@ -3217,7 +3315,26 @@ class processMap {
$oCriteria->addSelectColumn(UsersPeer::USR_FIRSTNAME);
$oCriteria->addSelectColumn(UsersPeer::USR_LASTNAME);
$oCriteria->add(UsersPeer::USR_UID, $aUIDS, Criteria::IN);
return $oCriteria;
$oCriteria->addAscendingOrderByColumn(UsersPeer::USR_FIRSTNAME);
$oDataset = UsersPeer::doSelectRS($oCriteria);
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
$oDataset->next();
while ($aRow = $oDataset->getRow()) {
$aRespLi[] = array('UID' => $aRow['USR_UID'],
'USER_GROUP' => $aRow['USR_FIRSTNAME'] . ' ' . $aRow['USR_LASTNAME'],
'TYPE_UID' => 'User',
'PRO_UID' => $sProcessUID);
$oDataset->next();
}
global $_DBArray;
$_DBArray['data'] = $aRespLi;
$_SESSION['_DBArray'] = $_DBArray;
$LsCriteria = new Criteria('dbarray');
$LsCriteria->setDBArrayTable('data');
return $LsCriteria;
}
/**
@@ -3227,9 +3344,13 @@ class processMap {
* @param string $sUsrUID
* @return void
*/
function assignProcessUser($sProcessUID, $sUsrUID) {
function assignProcessUser($sProcessUID, $sUsrUID, $sTypeUID) {
$oProcessUser = new ProcessUser ( );
$oProcessUser->create(array('PU_UID' => G::generateUniqueID (), 'PRO_UID' => $sProcessUID, 'USR_UID' => $sUsrUID, 'PU_TYPE' => 'SUPERVISOR'));
$puType = 'SUPERVISOR';
if ($sTypeUID == 'Group') {
$puType = 'GROUP_SUPERVISOR';
}
$oProcessUser->create(array('PU_UID' => G::generateUniqueID (), 'PRO_UID' => $sProcessUID, 'USR_UID' => $sUsrUID, 'PU_TYPE' => $puType));
}
/**

View File

@@ -422,6 +422,7 @@ class AppCacheView extends BaseAppCacheView
public function getToRevise($userUid, $doCount)
{
require_once ('classes/model/ProcessUser.php');
require_once ('classes/model/GroupUser.php');
//adding configuration fields from the configuration options
//and forming the criteria object
@@ -438,6 +439,21 @@ class AppCacheView extends BaseAppCacheView
$oDataset->next();
}
$oCriteria = new Criteria('workflow');
$oCriteria->addSelectColumn(ProcessUserPeer::PRO_UID);
$oCriteria->add(ProcessUserPeer::PU_TYPE, 'GROUP_SUPERVISOR');
$oCriteria->addJoin(ProcessUserPeer::USR_UID, GroupUserPeer::USR_UID, Criteria::LEFT_JOIN);
$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();
}
if ($doCount && !isset($this->confCasesList['PMTable']) && !empty($this->confCasesList['PMTable'])) {
$c = new Criteria('workflow');
} else {

View File

@@ -106,10 +106,19 @@ try {
$oProcessMap->webEntry_new($oData->PRO_UID);
break;
case 'assignProcessUser':
$oProcessMap->assignProcessUser($oData->PRO_UID, $oData->USR_UID);
$oProcessMap->assignProcessUser($oData->PRO_UID, $oData->USR_UID, $oData->TYPE_UID);
G::LoadClass('processMap');
$oProcessMap = new ProcessMap();
$oProcessMap->listProcessesUser($oData->PRO_UID);
break;
case 'removeProcessUser':
$oProcessMap->removeProcessUser($oData->PU_UID);
foreach ($_SESSION['_DBArray']['data'] as $key => $value) {
if ($value['LA_PU_UID'] == $oData->PU_UID) {
unset($_SESSION['_DBArray']['data'][$key]);
break;
}
}
break;
case 'supervisorDynaforms':
$oProcessMap->supervisorDynaforms($oData->pro_uid);

View File

@@ -41,7 +41,7 @@ try {
G::LoadClass('processMap');
$oProcessMap = new ProcessMap();
$c = $oProcessMap->listProcessesUser($sProUid);
$oHeadPublisher =& headPublisher::getSingleton();
$oHeadPublisher->addScriptFile('/jscore/processmap/core/processUser.js');

View File

@@ -41,11 +41,11 @@ var availableProcessesUser = function(PRO_UID) {
oRPC.make();
};
var assignProcessUser = function(sProcessUID, sUserUID) {
var assignProcessUser = function(sProcessUID, sUserUID, sTypeUID) {
var oRPC = new leimnud.module.rpc.xmlhttp({
url : '../processes/processes_Ajax',
async: false,
args : "action=assignProcessUser&data="+{PRO_UID:sProcessUID,USR_UID:sUserUID}.toJSONString()
args : "action=assignProcessUser&data="+{PRO_UID:sProcessUID,USR_UID:sUserUID,TYPE_UID:sTypeUID}.toJSONString()
});
oRPC.make();
oPanel1.remove();

View File

@@ -1,20 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<dynaForm type="pagetable" sqlConnection="" rowsPerPage="10" menu="processes/processes_Assignuser" name="processes_User">
<PU_UID type="hidden" showInTable="0"/>
<LA_PU_UID type="hidden" showInTable="0"/>
<PRO_UID type="hidden" showInTable="0"/>
<LA_PRO_UID type="hidden" showInTable="0"/>
<USR_UID type="hidden" showInTable="0"/>
<LA_USR_UID type="hidden" showInTable="0"/>
<USR_FIRSTNAME type="text" titlealign="left" colWidth="100">
<en>First name</en>
</USR_FIRSTNAME>
<LA_PU_NAME type="text" titlealign="left" colWidth="250">
<en>User or Group</en>
</LA_PU_NAME>
<USR_LASTNAME type="text" align="right" colWidth="100">
<en>Last name</en>
</USR_LASTNAME>
<LA_PU_TYPE_NAME type="text" align="right" colWidth="100">
<en>Type</en>
</LA_PU_TYPE_NAME>
<REMOVE type="link" colWidth="40" value="@G::LoadTranslation(ID_DE_ASSIGN)" link="#" onclick="removeProcessUser(@QPU_UID);return false;"/>
<REMOVE type="link" colWidth="40" value="@G::LoadTranslation(ID_DE_ASSIGN)" link="#" onclick="removeProcessUser(@QLA_PU_UID);return false;"/>
</dynaForm>

View File

@@ -1,12 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<dynaForm type="pagetable" menu="processes/processes_availableProcessesUserOptions" searchBy="USR_FIRSTNAME|USR_LASTNAME" sqlConnection="" rowsPerPage="10">
<dynaForm type="pagetable" menu="processes/processes_availableProcessesUserOptions" searchBy="USER_GROUP" sqlConnection="" rowsPerPage="10">
<PRO_UID type="hidden" showInTable="0"/>
<USR_UID type="hidden" showInTable="0"/>
<USR_FIRSTNAME type="text" titlealign="left" colWidth="100">
<en>First name</en>
</USR_FIRSTNAME>
<USR_LASTNAME type="text" align="right" colWidth="100">
<en>Last name</en>
</USR_LASTNAME>
<ASSIGN type="link" colWidth="40" value="@G::LoadTranslation(ID_ASSIGN)" link="#" onclick="assignProcessUser(@QPRO_UID, @QUSR_UID);return false;"/>
<UID type="hidden" showInTable="0"/>
<USER_GROUP type="text" titlealign="left" colWidth="150">
<en>User or Group</en>
</USER_GROUP>
<TYPE_UID type="text" align="right" colWidth="80">
<en>Type</en>
</TYPE_UID>
<ASSIGN type="link" colWidth="40" value="@G::LoadTranslation(ID_ASSIGN)" link="#" onclick="assignProcessUser(@QPRO_UID, @QUID, @QTYPE_UID);return false;"/>
</dynaForm>