|
@@ -16,6 +16,9 @@ class SessionManager
|
|
|
{
|
|
|
public static $_debug = false;
|
|
|
|
|
|
+ /**
|
|
|
+ *
|
|
|
+ */
|
|
|
public function __construct()
|
|
|
{
|
|
|
|
|
@@ -1536,7 +1539,6 @@ class SessionManager
|
|
|
$empty_users = true,
|
|
|
$send_email = false
|
|
|
) {
|
|
|
-
|
|
|
if ($id_session != strval(intval($id_session))) {
|
|
|
return false;
|
|
|
}
|
|
@@ -1567,7 +1569,13 @@ class SessionManager
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-
|
|
|
+ $sql = "SELECT id_user FROM $tbl_session_rel_course_rel_user
|
|
|
+ WHERE id_session = '$id_session' AND status = 0";
|
|
|
+ $result = Database::query($sql);
|
|
|
+ $existingUsers = array();
|
|
|
+ while ($row = Database::fetch_array($result)) {
|
|
|
+ $existingUsers[] = $row['id_user'];
|
|
|
+ }
|
|
|
|
|
|
$sql = "SELECT course_code FROM $tbl_session_rel_course
|
|
|
WHERE id_session = '$id_session'";
|
|
@@ -1992,7 +2000,6 @@ class SessionManager
|
|
|
*/
|
|
|
public static function update_session_extra_field_value($session_id, $fname, $fvalue = '')
|
|
|
{
|
|
|
-
|
|
|
$t_sf = Database::get_main_table(TABLE_MAIN_SESSION_FIELD);
|
|
|
$t_sfv = Database::get_main_table(TABLE_MAIN_SESSION_FIELD_VALUES);
|
|
|
$fname = Database::escape_string($fname);
|
|
@@ -2231,7 +2238,8 @@ class SessionManager
|
|
|
}
|
|
|
|
|
|
//Setting session_category_id to 0
|
|
|
- $sql = "UPDATE $tbl_session SET session_category_id = 0 WHERE session_category_id IN (" . $id_checked . ")";
|
|
|
+ $sql = "UPDATE $tbl_session SET session_category_id = 0
|
|
|
+ WHERE session_category_id IN (" . $id_checked . ")";
|
|
|
Database::query($sql);
|
|
|
|
|
|
$sql = "SELECT id FROM $tbl_session WHERE session_category_id IN (" . $id_checked . ")";
|
|
@@ -2251,21 +2259,29 @@ class SessionManager
|
|
|
|
|
|
// Add event to system log
|
|
|
$user_id = api_get_user_id();
|
|
|
- event_system(LOG_SESSION_CATEGORY_DELETE, LOG_SESSION_CATEGORY_ID, $id_checked, api_get_utc_datetime(), $user_id);
|
|
|
+ event_system(
|
|
|
+ LOG_SESSION_CATEGORY_DELETE,
|
|
|
+ LOG_SESSION_CATEGORY_ID,
|
|
|
+ $id_checked,
|
|
|
+ api_get_utc_datetime(),
|
|
|
+ $user_id
|
|
|
+ );
|
|
|
|
|
|
// delete extra session fields where field variable is "PERIODO"
|
|
|
$t_sf = Database::get_main_table(TABLE_MAIN_SESSION_FIELD);
|
|
|
$t_sfv = Database::get_main_table(TABLE_MAIN_SESSION_FIELD_VALUES);
|
|
|
|
|
|
- $sql = "SELECT t_sfv.field_id FROM $t_sfv t_sfv, $t_sf t_sf WHERE t_sfv.session_id = '$id_checked' AND t_sf.field_variable = 'PERIODO' ";
|
|
|
+ $sql = "SELECT t_sfv.field_id FROM $t_sfv t_sfv, $t_sf t_sf
|
|
|
+ WHERE t_sfv.session_id = '$id_checked' AND t_sf.field_variable = 'PERIODO' ";
|
|
|
$rs_field = Database::query($sql);
|
|
|
|
|
|
$field_id = 0;
|
|
|
if (Database::num_rows($rs_field) > 0) {
|
|
|
$row_field = Database::fetch_row($rs_field);
|
|
|
$field_id = $row_field[0];
|
|
|
- $sql_delete_sfv = "DELETE FROM $t_sfv WHERE session_id = '$id_checked' AND field_id = '$field_id'";
|
|
|
- Database::query($sql_delete_sfv);
|
|
|
+ $sql = "DELETE FROM $t_sfv
|
|
|
+ WHERE session_id = '$id_checked' AND field_id = '$field_id'";
|
|
|
+ Database::query($sql);
|
|
|
}
|
|
|
|
|
|
$sql = "SELECT * FROM $t_sfv WHERE field_id = '$field_id' ";
|
|
@@ -2281,7 +2297,8 @@ class SessionManager
|
|
|
|
|
|
/**
|
|
|
* Get a list of sessions of which the given conditions match with an = 'cond'
|
|
|
- * @param array $conditions a list of condition (example : array('status =' =>STUDENT) or array('s.name LIKE' => "%$needle%")
|
|
|
+ * @param array $conditions a list of condition example :
|
|
|
+ * array('status' => STUDENT) or array('s.name LIKE' => "%$needle%")
|
|
|
* @param array $order_by a list of fields on which sort
|
|
|
* @return array An array with all sessions of the platform.
|
|
|
* @todo optional course code parameter, optional sorting parameters...
|
|
@@ -2335,8 +2352,8 @@ class SessionManager
|
|
|
*/
|
|
|
public static function get_session_category($id)
|
|
|
{
|
|
|
- $id = intval($id);
|
|
|
$tbl_session_category = Database::get_main_table(TABLE_MAIN_SESSION_CATEGORY);
|
|
|
+ $id = intval($id);
|
|
|
$sql = "SELECT id, name, date_start, date_end FROM $tbl_session_category WHERE id= $id";
|
|
|
$result = Database::query($sql);
|
|
|
$num = Database::num_rows($result);
|
|
@@ -2373,8 +2390,12 @@ class SessionManager
|
|
|
* @param bool - optional, if is true the user don't be a coach now, otherwise it'll assign a coach
|
|
|
* @return bool true if there are affected rows, otherwise false
|
|
|
*/
|
|
|
- public static function set_coach_to_course_session($user_id, $session_id = 0, $course_code = '', $nocoach = false)
|
|
|
- {
|
|
|
+ public static function set_coach_to_course_session(
|
|
|
+ $user_id,
|
|
|
+ $session_id = 0,
|
|
|
+ $course_code = '',
|
|
|
+ $nocoach = false
|
|
|
+ ) {
|
|
|
// Definition of variables
|
|
|
$user_id = intval($user_id);
|
|
|
|
|
@@ -2403,12 +2424,14 @@ class SessionManager
|
|
|
if (Database::num_rows($rs_check_user) > 0) {
|
|
|
if ($nocoach) {
|
|
|
// check if user_id exits int session_rel_user
|
|
|
- $sql = "SELECT id_user FROM $tbl_session_rel_user WHERE id_session = '$session_id' AND id_user = '$user_id'";
|
|
|
+ $sql = "SELECT id_user FROM $tbl_session_rel_user
|
|
|
+ WHERE id_session = '$session_id' AND id_user = '$user_id'";
|
|
|
$res = Database::query($sql);
|
|
|
|
|
|
if (Database::num_rows($res) > 0) {
|
|
|
// The user don't be a coach now
|
|
|
- $sql = "UPDATE $tbl_session_rel_course_rel_user SET status = 0 WHERE id_session = '$session_id' AND course_code = '$course_code' AND id_user = '$user_id' ";
|
|
|
+ $sql = "UPDATE $tbl_session_rel_course_rel_user SET status = 0
|
|
|
+ WHERE id_session = '$session_id' AND course_code = '$course_code' AND id_user = '$user_id' ";
|
|
|
Database::query($sql);
|
|
|
if (Database::affected_rows() > 0)
|
|
|
return true;
|
|
@@ -2416,7 +2439,8 @@ class SessionManager
|
|
|
return false;
|
|
|
} else {
|
|
|
// The user don't be a coach now
|
|
|
- $sql = "DELETE FROM $tbl_session_rel_course_rel_user WHERE id_session = '$session_id' AND course_code = '$course_code' AND id_user = '$user_id' ";
|
|
|
+ $sql = "DELETE FROM $tbl_session_rel_course_rel_user
|
|
|
+ WHERE id_session = '$session_id' AND course_code = '$course_code' AND id_user = '$user_id' ";
|
|
|
Database::query($sql);
|
|
|
if (Database::affected_rows() > 0)
|
|
|
return true;
|
|
@@ -2426,7 +2450,8 @@ class SessionManager
|
|
|
} else {
|
|
|
// Assign user like a coach to course
|
|
|
// First check if the user is registered in the course
|
|
|
- $sql = "SELECT id_user FROM $tbl_session_rel_course_rel_user WHERE id_session = '$session_id' AND course_code = '$course_code' AND id_user = '$user_id'";
|
|
|
+ $sql = "SELECT id_user FROM $tbl_session_rel_course_rel_user
|
|
|
+ WHERE id_session = '$session_id' AND course_code = '$course_code' AND id_user = '$user_id'";
|
|
|
$rs_check = Database::query($sql);
|
|
|
|
|
|
// Then update or insert.
|
|
@@ -2440,7 +2465,8 @@ class SessionManager
|
|
|
return false;
|
|
|
}
|
|
|
} else {
|
|
|
- $sql = "INSERT INTO $tbl_session_rel_course_rel_user(id_session, course_code, id_user, status) VALUES('$session_id', '$course_code', '$user_id', 2)";
|
|
|
+ $sql = "INSERT INTO $tbl_session_rel_course_rel_user(id_session, course_code, id_user, status)
|
|
|
+ VALUES('$session_id', '$course_code', '$user_id', 2)";
|
|
|
Database::query($sql);
|
|
|
if (Database::affected_rows() > 0) {
|
|
|
return true;
|
|
@@ -2456,12 +2482,18 @@ class SessionManager
|
|
|
|
|
|
/**
|
|
|
* Subscribes sessions to human resource manager (Dashboard feature)
|
|
|
- * @param int Human Resource Manager id
|
|
|
- * @param array Sessions id
|
|
|
+ * @param array $userInfo Human Resource Manager info
|
|
|
+ * @param array $sessions_list Sessions id
|
|
|
+ * @param bool $sendEmail
|
|
|
+ * @param bool $removeOldConnections
|
|
|
* @return int
|
|
|
* */
|
|
|
- public static function suscribe_sessions_to_hr_manager($userInfo, $sessions_list, $sendEmail = false, $removeOldConnections = true)
|
|
|
- {
|
|
|
+ public static function suscribe_sessions_to_hr_manager(
|
|
|
+ $userInfo,
|
|
|
+ $sessions_list,
|
|
|
+ $sendEmail = false,
|
|
|
+ $removeOldConnections = true
|
|
|
+ ) {
|
|
|
// Database Table Definitions
|
|
|
$tbl_session_rel_user = Database::get_main_table(TABLE_MAIN_SESSION_USER);
|
|
|
$tbl_session_rel_access_url = Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_SESSION);
|
|
@@ -2647,14 +2679,13 @@ class SessionManager
|
|
|
$orderCondition = " ORDER BY s.name ";
|
|
|
}
|
|
|
|
|
|
-
|
|
|
$whereConditions = null;
|
|
|
$sessionCourseConditions = null;
|
|
|
$sessionConditions = null;
|
|
|
$sessionQuery = null;
|
|
|
$courseSessionQuery = null;
|
|
|
|
|
|
- switch($status) {
|
|
|
+ switch ($status) {
|
|
|
case DRH:
|
|
|
$sessionQuery = "SELECT sru.id_session
|
|
|
FROM
|
|
@@ -2741,6 +2772,7 @@ class SessionManager
|
|
|
}
|
|
|
|
|
|
if (!empty($orderBy)) {
|
|
|
+ $orderBy = Database::escape_string($orderBy);
|
|
|
$orderBy = "ORDER BY $orderBy";
|
|
|
} else {
|
|
|
if (SessionManager::orderCourseIsEnabled()) {
|
|
@@ -2861,7 +2893,8 @@ class SessionManager
|
|
|
$course_name = Database::escape_string($course_name);
|
|
|
|
|
|
// select the courses
|
|
|
- $sql = "SELECT * FROM $tbl_course c INNER JOIN $tbl_session_rel_course src
|
|
|
+ $sql = "SELECT * FROM $tbl_course c
|
|
|
+ INNER JOIN $tbl_session_rel_course src
|
|
|
ON c.code = src.course_code
|
|
|
WHERE src.id_session LIKE '$session_id'";
|
|
|
if (!empty($course_name)) {
|
|
@@ -2888,8 +2921,9 @@ class SessionManager
|
|
|
*/
|
|
|
public static function getCourseCountBySessionId($session_id, $keyword = null)
|
|
|
{
|
|
|
- $tbl_course = Database::get_main_table(TABLE_MAIN_COURSE);
|
|
|
- $tbl_session_rel_course = Database::get_main_table(TABLE_MAIN_SESSION_COURSE);
|
|
|
+ $tbl_course = Database::get_main_table(TABLE_MAIN_COURSE);
|
|
|
+ $tbl_session_rel_course = Database::get_main_table(TABLE_MAIN_SESSION_COURSE);
|
|
|
+ $session_id = intval($session_id);
|
|
|
|
|
|
// select the courses
|
|
|
$sql = "SELECT COUNT(c.code) count
|
|
@@ -2915,19 +2949,25 @@ class SessionManager
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * Get the session id based on the original id and field name in the extra fields. Returns 0 if session was not found
|
|
|
+ * Get the session id based on the original id and field name in the extra fields.
|
|
|
+ * Returns 0 if session was not found
|
|
|
*
|
|
|
- * @param string Original session id
|
|
|
- * @param string Original field name
|
|
|
+ * @param string $original_session_id_value Original session id
|
|
|
+ * @param string $original_session_id_name Original field name
|
|
|
* @return int Session id
|
|
|
*/
|
|
|
public static function get_session_id_from_original_id($original_session_id_value, $original_session_id_name)
|
|
|
{
|
|
|
$t_sfv = Database::get_main_table(TABLE_MAIN_SESSION_FIELD_VALUES);
|
|
|
$table_field = Database::get_main_table(TABLE_MAIN_SESSION_FIELD);
|
|
|
+ $original_session_id_value = Database::escape_string($original_session_id_value);
|
|
|
+ $original_session_id_name = Database::escape_string($original_session_id_name);
|
|
|
+
|
|
|
$sql = "SELECT session_id
|
|
|
FROM $table_field sf INNER JOIN $t_sfv sfv ON sfv.field_id=sf.id
|
|
|
- WHERE field_variable='$original_session_id_name' AND field_value='$original_session_id_value'";
|
|
|
+ WHERE
|
|
|
+ field_variable='$original_session_id_name' AND
|
|
|
+ field_value='$original_session_id_value'";
|
|
|
$res_session = Database::query($sql);
|
|
|
$row = Database::fetch_object($res_session);
|
|
|
if ($row) {
|
|
@@ -2939,8 +2979,8 @@ class SessionManager
|
|
|
|
|
|
/**
|
|
|
* Get users by session
|
|
|
- * @param int session id
|
|
|
- * @param int filter by status coach = 2
|
|
|
+ * @param int $id session id
|
|
|
+ * @param int $status filter by status coach = 2
|
|
|
* @return array a list with an user list
|
|
|
*/
|
|
|
public static function get_users_by_session($id, $status = null)
|
|
@@ -2972,7 +3012,7 @@ class SessionManager
|
|
|
|
|
|
/**
|
|
|
* The general coach (field: session.id_coach)
|
|
|
- * @param int user id
|
|
|
+ * @param int $user_id user id
|
|
|
* @return array
|
|
|
*/
|
|
|
public static function get_sessions_by_general_coach($user_id)
|
|
@@ -2980,7 +3020,7 @@ class SessionManager
|
|
|
$session_table = Database::get_main_table(TABLE_MAIN_SESSION);
|
|
|
$user_id = intval($user_id);
|
|
|
|
|
|
- // session where we are general coach
|
|
|
+ // Session where we are general coach
|
|
|
$sql = "SELECT DISTINCT *
|
|
|
FROM $session_table
|
|
|
WHERE id_coach = $user_id";
|