PM-3705: 18640: Subdepartments sin supervisors no hacen report to al inmediato supervisor del department.
. se corrigio el problema Se corrigio las observaciones .
This commit is contained in:
@@ -347,6 +347,10 @@ class Department extends BaseDepartment
|
|||||||
$selectCriteria = new Criteria( 'workflow' );
|
$selectCriteria = new Criteria( 'workflow' );
|
||||||
$selectCriteria->add( UsersPeer::DEP_UID, $depId );
|
$selectCriteria->add( UsersPeer::DEP_UID, $depId );
|
||||||
$selectCriteria->add( UsersPeer::USR_UID, $managerId, Criteria::NOT_EQUAL );
|
$selectCriteria->add( UsersPeer::USR_UID, $managerId, Criteria::NOT_EQUAL );
|
||||||
|
|
||||||
|
if(empty($depParent)) {
|
||||||
|
$depParent = $depId;
|
||||||
|
}
|
||||||
|
|
||||||
// Create a Criteria object includes the value you want to set
|
// Create a Criteria object includes the value you want to set
|
||||||
$updateCriteria = new Criteria( 'workflow' );
|
$updateCriteria = new Criteria( 'workflow' );
|
||||||
@@ -389,7 +393,41 @@ class Department extends BaseDepartment
|
|||||||
}
|
}
|
||||||
$oDataset->next();
|
$oDataset->next();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$this->updateUserReportsTo($depId);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function updateUserReportsTo($depId)
|
||||||
|
{
|
||||||
|
$departments = $this->getChildDepartments($depId);
|
||||||
|
$departments = explode("_",$departments);
|
||||||
|
$departments = array_filter(array_unique($departments));
|
||||||
|
foreach($departments as $depUid) {
|
||||||
|
$mgrParentId = $this->getDepartmentParentManager($depUid);
|
||||||
|
$conn = Propel::getConnection( UsersPeer::DATABASE_NAME );
|
||||||
|
$selectCriteria = new Criteria( 'workflow' );
|
||||||
|
$selectCriteria->add( UsersPeer::DEP_UID, $depUid );
|
||||||
|
$updateCriteria = new Criteria( 'workflow' );
|
||||||
|
$updateCriteria->add( UsersPeer::USR_REPORTS_TO, $mgrParentId );
|
||||||
|
BasePeer::doUpdate( $selectCriteria, $updateCriteria, $conn );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getChildDepartments($depId)
|
||||||
|
{
|
||||||
|
$depIds = "";
|
||||||
|
$depIds .= $depId."_";
|
||||||
|
$childrenCriteria = new Criteria( 'workflow' );
|
||||||
|
$childrenCriteria->add( DepartmentPeer::DEP_PARENT, $depId );
|
||||||
|
$oDataset = DepartmentPeer::doSelectRS( $childrenCriteria );
|
||||||
|
$oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC );
|
||||||
|
$oDataset->next();
|
||||||
|
while ($aRow = $oDataset->getRow()) {
|
||||||
|
$depId = $aRow['DEP_UID'];
|
||||||
|
$depIds .= $this->getChildDepartments($depId);
|
||||||
|
$oDataset->next();
|
||||||
|
}
|
||||||
|
return $depIds;
|
||||||
}
|
}
|
||||||
|
|
||||||
//add an user to a department and sync all about manager info
|
//add an user to a department and sync all about manager info
|
||||||
@@ -700,5 +738,19 @@ class Department extends BaseDepartment
|
|||||||
}
|
}
|
||||||
return $departments;
|
return $departments;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function getDepartmentParentManager($depId)
|
||||||
|
{
|
||||||
|
$managerUid = "";
|
||||||
|
$depInfo = $this->Load($depId);
|
||||||
|
if(empty($depInfo['DEP_MANAGER'])) {
|
||||||
|
if(!empty($depInfo['DEP_PARENT'])) {
|
||||||
|
$managerUid = $this->getDepartmentParentManager($depInfo['DEP_PARENT']);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$managerUid = $depInfo['DEP_MANAGER'];
|
||||||
|
}
|
||||||
|
return $managerUid;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user