/** * Возвращает должность (строку), на которой находится * сотрудник с указанным $employeeId. * * @param int $employeeId Идентификатор сотрудника. * * @return Rp_Db_View_Row_TreePost или null, если должность не найдена. */ public function findByEmployeeId($employeeId) { $postsEmployees = new Rp_Db_View_TreePosts_Employees(); $postIds = $postsEmployees->fetchPostIds($employeeId); return $this->find($postIds)->current(); }
/** * Возвращает функциональных руководителей сотрудника. * * @return Rp_Db_View_Rowset */ public function getFuncManagers() { if (empty($this->_func_managers)) { $treePost = $this->getTreePost(); $postsEmps = new Rp_Db_View_TreePosts_Func(); $empIds = $postsEmps->fetchFuncEmployeeIds($treePost->id); // возвращаем массив post_func_id, затем по ним ищем employee_id $emp = new Rp_Db_View_TreePosts_Employees(); $func = $emp->fetchEmployeeIds($empIds); // находим employee_id функциональных руководителей $this->_func_managers = $this->getView()->find($func); } return $this->_func_managers; }