diff --git a/main/inc/lib/course.lib.php b/main/inc/lib/course.lib.php index 5f576dc41c..4588d2a89b 100755 --- a/main/inc/lib/course.lib.php +++ b/main/inc/lib/course.lib.php @@ -2314,21 +2314,29 @@ class CourseManager { * @param int Relation type **/ public static function suscribe_courses_to_hr_manager($hr_manager_id,$courses_list) { + global $_configuration; + + // Database Table Definitions + $tbl_course = Database::get_main_table(TABLE_MAIN_COURSE); + $tbl_course_rel_user = Database::get_main_table(TABLE_MAIN_COURSE_USER); + $tbl_course_rel_access_url = Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_COURSE); - // Database Table Definitions - $tbl_course = Database::get_main_table(TABLE_MAIN_COURSE); - $tbl_course_rel_user = Database::get_main_table(TABLE_MAIN_COURSE_USER); - - $hr_manager_id = intval($hr_manager_id); - $affected_rows = 0; + $hr_manager_id = intval($hr_manager_id); + $affected_rows = 0; - //Deleting assigned courses to hrm_id - $sql = "SELECT course_code FROM $tbl_course_rel_user WHERE user_id = $hr_manager_id AND relation_type=".COURSE_RELATION_TYPE_RRHH." "; - $result = Database::query($sql); - if (Database::num_rows($result) > 0) { - $sql = "DELETE FROM $tbl_course_rel_user WHERE user_id = $hr_manager_id AND relation_type=".COURSE_RELATION_TYPE_RRHH." "; - Database::query($sql); - } + //Deleting assigned courses to hrm_id + if ($_configuration['multiple_access_urls']) { + $sql = "SELECT s.course_code FROM $tbl_course_rel_user s INNER JOIN $tbl_course_rel_access_url a ON (a.course_code = s.course_code) WHERE user_id = $hr_manager_id AND relation_type=".COURSE_RELATION_TYPE_RRHH." AND access_url_id = ".api_get_current_access_url_id().""; + } else { + $sql = "SELECT course_code FROM $tbl_course_rel_user WHERE user_id = $hr_manager_id AND relation_type=".COURSE_RELATION_TYPE_RRHH." "; + } + $result = Database::query($sql); + if (Database::num_rows($result) > 0) { + while ($row = Database::fetch_array($result)) { + $sql = "DELETE FROM $tbl_course_rel_user WHERE course_code = '{$row['course_code']}' AND user_id = $hr_manager_id AND relation_type=".COURSE_RELATION_TYPE_RRHH." "; + Database::query($sql); + } + } // inserting new courses list if (is_array($courses_list)) { diff --git a/main/inc/lib/sessionmanager.lib.php b/main/inc/lib/sessionmanager.lib.php index 24a8c88688..7abd0482b1 100755 --- a/main/inc/lib/sessionmanager.lib.php +++ b/main/inc/lib/sessionmanager.lib.php @@ -1077,23 +1077,30 @@ class SessionManager { * @param int Relation type **/ public static function suscribe_sessions_to_hr_manager($hr_manager_id,$sessions_list) { + global $_configuration; + // Database Table Definitions + $tbl_session = Database::get_main_table(TABLE_MAIN_SESSION); + $tbl_session_rel_user = Database::get_main_table(TABLE_MAIN_SESSION_USER); + $tbl_session_rel_course_user = Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER); + $tbl_session_rel_access_url = Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_SESSION); + + $hr_manager_id = intval($hr_manager_id); + $affected_rows = 0; + + //Deleting assigned sessions to hrm_id + if ($_configuration['multiple_access_urls']) { + $sql = "SELECT id_session FROM $tbl_session_rel_user s INNER JOIN $tbl_session_rel_access_url a ON (a.session_id = s.id_session) WHERE id_user = $hr_manager_id AND relation_type=".SESSION_RELATION_TYPE_RRHH." AND access_url_id = ".api_get_current_access_url_id().""; + } else { + $sql = "SELECT id_session FROM $tbl_session_rel_user s WHERE id_user = $hr_manager_id AND relation_type=".SESSION_RELATION_TYPE_RRHH.""; + } + $result = Database::query($sql); - // Database Table Definitions - $tbl_session = Database::get_main_table(TABLE_MAIN_SESSION); - $tbl_session_rel_user = Database::get_main_table(TABLE_MAIN_SESSION_USER); - $tbl_session_rel_course_user = Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER); - - $hr_manager_id = intval($hr_manager_id); - $affected_rows = 0; - - //Deleting assigned sessions to hrm_id - $sql = "SELECT id_session FROM $tbl_session_rel_user WHERE id_user = $hr_manager_id AND relation_type=".SESSION_RELATION_TYPE_RRHH." "; - $result = Database::query($sql); - - if (Database::num_rows($result) > 0) { - $sql = "DELETE FROM $tbl_session_rel_user WHERE id_user = $hr_manager_id AND relation_type=".SESSION_RELATION_TYPE_RRHH." "; - Database::query($sql); - } + if (Database::num_rows($result) > 0) { + while ($row = Database::fetch_array($result)) { + $sql = "DELETE FROM $tbl_session_rel_user WHERE id_session = {$row['id_session']} AND id_user = $hr_manager_id AND relation_type=".SESSION_RELATION_TYPE_RRHH." "; + Database::query($sql); + } + } /* //Deleting assigned courses in sessions to hrm_id diff --git a/main/inc/lib/usermanager.lib.php b/main/inc/lib/usermanager.lib.php index c8fa24c0ee..da2bc5a4e0 100755 --- a/main/inc/lib/usermanager.lib.php +++ b/main/inc/lib/usermanager.lib.php @@ -3082,20 +3082,28 @@ class UserManager **/ public static function suscribe_users_to_hr_manager($hr_dept_id, $users_id) { - // Database Table Definitions - $tbl_user = Database::get_main_table(TABLE_MAIN_USER); - $tbl_user_rel_user = Database::get_main_table(TABLE_MAIN_USER_REL_USER); - - $hr_dept_id = intval($hr_dept_id); - $affected_rows = 0; - //Deleting assigned users to hrm_id - $sql = "SELECT user_id FROM $tbl_user_rel_user WHERE friend_user_id = $hr_dept_id AND relation_type = '".USER_RELATION_TYPE_RRHH."' "; - $result = Database::query($sql,__FILE__,__LINE__); - - if (Database::num_rows($result) > 0) { - $sql = "DELETE FROM $tbl_user_rel_user WHERE friend_user_id = $hr_dept_id AND relation_type = '".USER_RELATION_TYPE_RRHH."' "; - Database::query($sql,__FILE__,__LINE__); - } + global $_configuration; + // Database Table Definitions + $tbl_user = Database::get_main_table(TABLE_MAIN_USER); + $tbl_user_rel_user = Database::get_main_table(TABLE_MAIN_USER_REL_USER); + $tbl_user_rel_access_url = Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_USER); + + $hr_dept_id = intval($hr_dept_id); + $affected_rows = 0; + + if ($_configuration['multiple_access_urls']) { + //Deleting assigned users to hrm_id + $sql = "SELECT s.user_id FROM $tbl_user_rel_user s INNER JOIN $tbl_user_rel_access_url a ON (a.user_id = s.user_id) WHERE friend_user_id = $hr_dept_id AND relation_type = '".USER_RELATION_TYPE_RRHH."' AND access_url_id = ".api_get_current_access_url_id().""; + } else { + $sql = "SELECT user_id FROM $tbl_user_rel_user WHERE friend_user_id = $hr_dept_id AND relation_type = '".USER_RELATION_TYPE_RRHH."' "; + } + $result = Database::query($sql,__FILE__,__LINE__); + if (Database::num_rows($result) > 0) { + while ($row = Database::fetch_array($result)) { + $sql = "DELETE FROM $tbl_user_rel_user WHERE user_id = '{$row['user_id']}' AND friend_user_id = $hr_dept_id AND relation_type = '".USER_RELATION_TYPE_RRHH."' "; + Database::query($sql,__FILE__,__LINE__); + } + } // inserting new user list if (is_array($users_id)) {