BUG 7338 User profile Replaced by doesn't work when PM derivate a case
- In the class "derivation" doesn't exist the validation for the "Replaced By" field - Added the business logic to set the replaced by user when a case is derivated
This commit is contained in:
@@ -274,12 +274,10 @@ class Derivation
|
||||
$oUser = UsersPeer::retrieveByPK( $row['USR_UID'] );
|
||||
if( $oUser->getUsrStatus() == 'ACTIVE' ){
|
||||
$users[$row['USR_UID']] = $row['USR_UID'];
|
||||
} else if($oUser->getUsrStatus() == 'VACATION'){
|
||||
//this a litle hook for this issue,...
|
||||
//TODO if the user in getUsrReplacedBy() is not assignet to the same task,. will have problems,....
|
||||
$UsrReplace = $oUser->getUsrReplacedBy();
|
||||
if( trim($UsrReplace) != ''){
|
||||
//$users[$UsrReplace] = $UsrReplace;
|
||||
} else {
|
||||
$userUID = $this->checkReplacedByUser($oUser);
|
||||
if ($userUID != '') {
|
||||
$users[$userUID] = $userUID;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -394,7 +392,7 @@ class Derivation
|
||||
$variable = str_replace ( '@@', '', $nextAssignedTask['TAS_ASSIGN_VARIABLE'] );
|
||||
if ( isset ( $AppFields['APP_DATA'][$variable] ) ) {
|
||||
if ($AppFields['APP_DATA'][$variable] != '') {
|
||||
$value = $AppFields['APP_DATA'][$variable];
|
||||
$value = $this->checkReplacedByUser($AppFields['APP_DATA'][$variable]);
|
||||
$userFields = $this->getUsersFullNameFromArray ($value);
|
||||
if (is_null($userFields)) {
|
||||
throw ( new Exception("Task doesn't have a valid user in variable $variable.") ) ;
|
||||
@@ -419,7 +417,7 @@ class Derivation
|
||||
$userFields['USR_EMAIL'] = '';
|
||||
|
||||
//get the report_to user & its full info
|
||||
$useruid = $this->getDenpendentUser($tasInfo['USER_UID']);
|
||||
$useruid = $this->getDenpendentUser($this->checkReplacedByUser($tasInfo['USER_UID']));
|
||||
|
||||
if (isset($useruid) && $useruid != '') {
|
||||
$userFields = $this->getUsersFullNameFromArray($useruid);
|
||||
@@ -1031,8 +1029,28 @@ class Derivation
|
||||
$aData[$aKey] = $userid;
|
||||
}
|
||||
return $aGrp;
|
||||
//var_dump($aDerivation);
|
||||
//die;
|
||||
}
|
||||
|
||||
function checkReplacedByUser($user)
|
||||
{
|
||||
if (get_class($user) != 'Users') {
|
||||
$userInstance = UsersPeer::retrieveByPK($user);
|
||||
} else {
|
||||
$userInstance = $user;
|
||||
}
|
||||
if (!is_object($userInstance)) {
|
||||
throw new Exception("The user with the UID '$user' doesn't exist.");
|
||||
}
|
||||
if ($userInstance->getUsrStatus() == 'ACTIVE') {
|
||||
return $userInstance->getUsrUid();
|
||||
} else {
|
||||
$userReplace = trim($userInstance->getUsrReplacedBy());
|
||||
if ($userReplace != '') {
|
||||
return $this->checkReplacedByUser(UsersPeer::retrieveByPK($userReplace));
|
||||
} else {
|
||||
return '';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -56,6 +56,9 @@ switch($_POST['action'])
|
||||
$oCriteria->addSelectColumn(UsersPeer::USR_LASTNAME);
|
||||
$oCriteria->addSelectColumn(UsersPeer::USR_EMAIL);
|
||||
$oCriteria->add(UsersPeer::USR_STATUS,'ACTIVE');
|
||||
if (isset($_POST['USR_UID'])) {
|
||||
$oCriteria->add(UsersPeer::USR_UID, $_POST['USR_UID'], Criteria::NOT_EQUAL);
|
||||
}
|
||||
$oDataset = UsersPeer::doSelectRS($oCriteria);
|
||||
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
||||
|
||||
|
||||
@@ -273,7 +273,7 @@ Ext.onReady(function () {
|
||||
method: "POST"
|
||||
}),
|
||||
|
||||
baseParams: {"action": "usersList"},
|
||||
baseParams: {"action": "usersList", "USR_UID": USR_UID},
|
||||
|
||||
reader: new Ext.data.JsonReader({
|
||||
fields: [
|
||||
|
||||
Reference in New Issue
Block a user