@ -16,31 +16,110 @@ require_once api_get_path(LIBRARY_PATH) . 'plugin.class.php';
*/
function sync()
{
$tableBuySessionRelCourse = Database::get_main_table(TABLE_BUY_SESSION_COURSE);
$tableSessionRelCourse = Database::get_main_table(TABLE_MAIN_SESSION_COURSE);
$sql = "UPDATE $tableBuySessionRelCourse SET sync = 0";
Database::query($sql);
$sql = "SELECT id_session, course_code, nbr_users FROM $tableSessionRelCourse";
$res = Database::query($sql);
while ($row = Database::fetch_assoc($res)) {
$sql = "SELECT 1 FROM $tableBuySessionRelCourse WHERE id_session='" . $row['id'] . "';";
Database::query($sql);
if (Database::affected_rows() > 0) {
$sql = "UPDATE $tableBuySessionRelCourse SET sync = 1 WHERE id_session='" . $row['id'] . "';";
Database::query($sql);
} else {
$sql = "INSERT INTO $tableBuySessionRelCourse (id_session, course_code, nbr_users, sync)
VALUES ('" . $row['id_session'] . "', '" . $row['course_code'] . "', '" . $row['nbr_users'] . "', 1);";
Database::query($sql);
}
}
$sql = "DELETE FROM $tableBuySessionRelCourse WHERE sync = 0;";
Database::query($sql);
$tableBuyCourse = Database::get_main_table(TABLE_BUY_COURSE);
$tableCourse = Database::get_main_table(TABLE_MAIN_COURSE);
$tableCourse = Database::get_main_table(TABLE_MAIN_COURSE);
$sql = "UPDATE $tableBuyCourse SET sync = 0";
Database::query($sql);
$sql = "SELECT id FROM $tableCourse";
$sql = "SELECT id, code, title FROM $tableCourse";
$res = Database::query($sql);
while ($row = Database::fetch_assoc($res)) {
$sql = "SELECT id_session FROM $tableBuySessionRelCourse
WHERE course_code = '" . $row['code'] . "' LIMIT 1";
$courseIdSession = Database::fetch_assoc(Database::query($sql))['id_session'];
if (!is_numeric($courseIdSession)) {
$courseIdSession = 0;
}
$sql = "SELECT 1 FROM $tableBuyCourse WHERE course_id='" . $row['id'] . "';";
Database::query($sql);
if (Database::affected_rows() > 0) {
$sql = "UPDATE $tableBuyCourse SET sync = 1 WHERE course_id='" . $row['id'] . "';";
$sql = "UPDATE $tableBuyCourse SET sync = 1, session_id = $courseIdSession WHERE course_id='" . $row['id'] . "';";
Database::query($sql);
} else {
$sql = "INSERT INTO $tableBuyCourse (course_id, visible, sync) VALUES ('" . $row['id'] . "', 0, 1);";
$sql = "INSERT INTO $tableBuyCourse (session_id, course_id, code, title, visible, sync)
VALUES ('" . $courseIdSession . "', '" . $row['id'] . "', '" .
$row['code'] . "', '" . $row['title'] . "', 0, 1);";
Database::query($sql);
}
}
$sql = "DELETE FROM $tableBuyCourse WHERE sync = 0;";
Database::query($sql);
$tableBuySession = Database::get_main_table(TABLE_BUY_SESSION);
$tableSession = Database::get_main_table(TABLE_MAIN_SESSION);
$sql = "UPDATE $tableBuySession SET sync = 0";
Database::query($sql);
$sql = "SELECT id, name, date_start, date_end FROM $tableSession";
$res = Database::query($sql);
while ($row = Database::fetch_assoc($res)) {
$sql = "SELECT 1 FROM $tableBuySession WHERE session_id='" . $row['id'] . "';";
Database::query($sql);
if (Database::affected_rows() > 0) {
$sql = "UPDATE $tableBuySession SET sync = 1 WHERE session_id='" . $row['id'] . "';";
Database::query($sql);
} else {
$sql = "INSERT INTO $tableBuySession (session_id, name, date_start, date_end, visible, sync)
VALUES ('" . $row['id'] . "', '" . $row['name'] . "', '" .
$row['date_start'] . "', '" . $row['date_end'] . "', 0, 1);";
Database::query($sql);
}
}
$sql = "DELETE FROM $tableBuySession WHERE sync = 0;";
Database::query($sql);
}
/**
* List courses detils from the buy-course table and the course table
* List sessions details from the buy-session table and the session table
* @return array Results (list of session details)
*/
function listSessions()
{
$tableBuySession = Database::get_main_table(TABLE_BUY_SESSION);
$tableSession = Database::get_main_table(TABLE_MAIN_SESSION);
$sql = "SELECT a.session_id, a.visible, a.price, b.*
FROM $tableBuySession a, $tableSession b
WHERE a.session_id = b.id;";
$res = Database::query($sql);
$aux = array();
while ($row = Database::fetch_assoc($res)) {
$aux[] = $row;
}
return $aux;
}
/**
* List courses details from the buy-course table and the course table
* @return array Results (list of courses details)
*/
function listCourses()
@ -60,6 +139,97 @@ function listCourses()
return $aux;
}
/**
*
*/
function userSessionList()
{
$tableBuySession = Database::get_main_table(TABLE_BUY_SESSION);
$tableSession = Database::get_main_table(TABLE_MAIN_SESSION);
$tableBuySessionRelCourse = Database::get_main_table(TABLE_BUY_SESSION_COURSE);
$tableSessionRelCourse = Database::get_main_table(TABLE_MAIN_SESSION_COURSE);
$tableBuyCourse = Database::get_main_table(TABLE_BUY_COURSE);
$tableCourse = Database::get_main_table(TABLE_MAIN_COURSE);
$tableSessionRelUser = Database::get_main_table(TABLE_MAIN_SESSION_USER);
$tableBuySessionTemporal = Database::get_main_table(TABLE_BUY_SESSION_TEMPORAL);
// get existing sessions
$sql = "SELECT a.session_id, a.visible, a.price, b.*
FROM $tableBuySession a, $tableSession b
WHERE a.session_id = b.id AND a.visible = 1;";
$resSessions = Database::query($sql);
$auxSessions = array();
// loop through all sessions
while ($rowSession = Database::fetch_assoc($resSessions)) {
// get courses of current session
$sqlSessionCourse = "SELECT DISTINCT a.id_session, a.course_code, a.nbr_users
FROM $tableBuySessionRelCourse a, $tableSessionRelCourse b
WHERE a.id_session = b.id_session AND a.id_session = " . $rowSession['session_id'] . ";";
$resSessionCourse = Database::query($sqlSessionCourse);
$aux = array();
// loop through courses of current session
while ($rowSessionCourse = Database::fetch_assoc($resSessionCourse)) {
// get course of current session
$sql = "SELECT a.course_id, a.session_id, a.visible, a.price, b.*
FROM $tableBuyCourse a, $tableCourse b
WHERE a.code = b.code AND a.code = '" . $rowSessionCourse['course_code'] . "' AND a.visible = 1;";
$res = Database::query($sql);
// loop inside a course of current session
while ($row = Database::fetch_assoc($res)) {
//check teacher
$sql = "SELECT lastname, firstname
FROM course_rel_user a, user b
WHERE a.course_code='" . $row['code'] . "'
AND a.role< >'' AND a.role< >'NULL'
AND a.user_id=b.user_id;";
$tmp = Database::query($sql);
$rowTmp = Database::fetch_assoc($tmp);
$row['teacher'] = $rowTmp['firstname'] . ' ' . $rowTmp['lastname'];
//check images
if (file_exists("../../courses/" . $row['code'] . "/course-pic85x85.png")) {
$row['course_img'] = "courses/" . $row['code'] . "/course-pic85x85.png";
} else {
$row['course_img'] = "main/img/without_picture.png";
}
$row['price'] = number_format($row['price'], 2, '.', ' ');
$aux[] = $row;
}
}
//check if the user is enrolled in the current session
if (isset($_SESSION['_user']) || $_SESSION['_user']['user_id'] != '') {
$sql = "SELECT 1 FROM $tableSessionRelUser
WHERE user_id='" . $_SESSION['_user']['user_id'] . "';";
Database::query($sql);
if (Database::affected_rows() > 0) {
$rowSession['enrolled'] = "YES";
} else {
$sql = "SELECT 1 FROM $tableBuySessionTemporal
WHERE user_id='" . $_SESSION['_user']['user_id'] . "';";
Database::query($sql);
if (Database::affected_rows() > 0) {
$rowSession['enrolled'] = "TMP";
} else {
$rowSession['enrolled'] = "NO";
}
}
} else {
$sql = "SELECT 1 FROM $tableBuySessionTemporal
WHERE user_id='" . $_SESSION['_user']['user_id'] . "';";
Database::query($sql);
if (Database::affected_rows() > 0) {
$rowSession['enrolled'] = "TMP";
} else {
$rowSession['enrolled'] = "NO";
}
}
// add courses to current session
$rowSession['courses'] = $aux;
// add the current whole session
$auxSessions[] = $rowSession;
}
return $auxSessions;
}
/**
*
*/
@ -72,7 +242,7 @@ function userCourseList()
$sql = "SELECT a.course_id, a.visible, a.price, b.*
FROM $tableBuyCourse a, $tableCourse b
WHERE a.course_id = b.id AND a.visible = 1;";
WHERE a.course_id = b.id AND a.session_id = 0 AND a. visible = 1;";
$res = Database::query($sql);
$aux = array();
while ($row = Database::fetch_assoc($res)) {
@ -132,7 +302,24 @@ function userCourseList()
/**
*
*/
function checkUserCourse($course, $user)
function checkUserBuy($parameter, $user, $type = 'COURSE')
{
$sql = "SELECT 1 FROM %s WHERE %s ='" . $parameter . "' AND id_user='" . $user . "';";
$sql = $type === 'SESSION' ?
sprintf($sql, Database::get_main_table(TABLE_MAIN_SESSION_USER), 'id_session') :
sprintf($sql, Database::get_main_table(TABLE_MAIN_COURSE_USER), 'course_code');
Database::query($sql);
if (Database::affected_rows() > 0) {
return true;
} else {
return false;
}
}
/**
*
*/
/*function checkUserCourse($course, $user)
{
$tableCourseRelUser = Database::get_main_table(TABLE_MAIN_COURSE_USER);
$sql = "SELECT 1 FROM $tableCourseRelUser
@ -144,12 +331,29 @@ function checkUserCourse($course, $user)
} else {
return false;
}
}*/
/**
*
*/
function checkUserBuyTransfer($parameter, $user, $type = 'COURSE')
{
$sql = "SELECT 1 FROM %s WHERE %s ='" . $parameter . "' AND id_user='" . $user . "';";
$sql = $type === 'SESSION' ?
sprintf($sql, Database::get_main_table(TABLE_BUY_SESSION_TEMPORAL), 'session_id') :
sprintf($sql, Database::get_main_table(TABLE_BUY_COURSE_TEMPORAL), 'course_code');
Database::query($sql);
if (Database::affected_rows() > 0) {
return true;
} else {
return false;
}
}
/**
*
*/
function checkUserCourseTransfer($course, $user)
/* function checkUserCourseTransfer($course, $user)
{
$tableBuyCourseTemporal = Database::get_main_table(TABLE_BUY_COURSE_TEMPORAL);
$sql = "SELECT 1 FROM $tableBuyCourseTemporal
@ -161,7 +365,7 @@ function checkUserCourseTransfer($course, $user)
} else {
return false;
}
}
}*/
/**
*
@ -279,6 +483,96 @@ function findCurrency()
return $row['currency_code'];
}
/**
* Extended information about the session (from the session table as well as
* the buy_session table)
* @param string $code The session code
* @return array Info about the session
*/
function sessionInfo($code) //TODO
{
$tableBuySession = Database::get_main_table(TABLE_BUY_SESSION);
$tableSession = Database::get_main_table(TABLE_MAIN_SESSION);
$tableBuySessionRelCourse = Database::get_main_table(TABLE_BUY_SESSION_COURSE);
$tableSessionRelCourse = Database::get_main_table(TABLE_MAIN_SESSION_COURSE);
$tableBuyCourse = Database::get_main_table(TABLE_BUY_COURSE);
$tableCourse = Database::get_main_table(TABLE_MAIN_COURSE);
$tableSessionRelUser = Database::get_main_table(TABLE_MAIN_SESSION_USER);
//$tableBuyCourseTemporal = Database::get_main_table(TABLE_BUY_COURSE_TEMPORAL);
$tableBuySessionTemporal = Database::get_main_table(TABLE_BUY_SESSION_TEMPORAL);
$code = Database::escape_string($code);
$sql = "SELECT a.session_id, a.visible, a.price, b.*
FROM $tableBuySession a, $tableSession b
WHERE a.session_id=b.id
AND a.visible = 1
AND b.id = '" . $code . "';";
$res = Database::query($sql);
$rowSession = Database::fetch_assoc($res);
$sqlSessionCourse = "SELECT DISTINCT a.id_session, a.course_code, a.nbr_users
FROM $tableBuySessionRelCourse a, $tableSessionRelCourse b
WHERE a.id_session = b.id_session AND a.id_session = " . $rowSession['session_id'] . ";";
$resSessionCourse = Database::query($sqlSessionCourse);
$aux = array();
// loop through courses of current session
while ($rowSessionCourse = Database::fetch_assoc($resSessionCourse)) {
// get course of current session
$sql = "SELECT a.course_id, a.session_id, a.visible, a.price, b.*
FROM $tableBuyCourse a, $tableCourse b
WHERE a.code = b.code AND a.code = '" . $rowSessionCourse['course_code'] . "' AND a.visible = 1;";
$res = Database::query($sql);
// loop inside a course of current session
while ($row = Database::fetch_assoc($res)) {
//check teacher
$sql = "SELECT lastname, firstname
FROM course_rel_user a, user b
WHERE a.course_code='" . $row['code'] . "'
AND a.role< >'' AND a.role< >'NULL'
AND a.user_id=b.user_id;";
$tmp = Database::query($sql);
$rowTmp = Database::fetch_assoc($tmp);
$row['teacher'] = $rowTmp['firstname'] . ' ' . $rowTmp['lastname'];
//check images
if (file_exists("../../courses/" . $row['code'] . "/course-pic85x85.png")) {
$row['course_img'] = "courses/" . $row['code'] . "/course-pic85x85.png";
} else {
$row['course_img'] = "main/img/without_picture.png";
}
$row['price'] = number_format($row['price'], 2, '.', ' ');
$aux[] = $row;
}
}
//check if the user is enrolled in the current session
if (isset($_SESSION['_user']) || $_SESSION['_user']['user_id'] != '') {
$sql = "SELECT 1 FROM $tableSessionRelUser
WHERE user_id='" . $_SESSION['_user']['user_id'] . "';";
Database::query($sql);
if (Database::affected_rows() > 0) {
$rowSession['enrolled'] = "YES";
} else {
$sql = "SELECT 1 FROM $tableBuySessionTemporal
WHERE user_id='" . $_SESSION['_user']['user_id'] . "';";
Database::query($sql);
if (Database::affected_rows() > 0) {
$rowSession['enrolled'] = "TMP";
} else {
$rowSession['enrolled'] = "NO";
}
}
} else {
$sql = "SELECT 1 FROM $tableBuySessionTemporal
WHERE user_id='" . $_SESSION['_user']['user_id'] . "';";
Database::query($sql);
if (Database::affected_rows() > 0) {
$rowSession['enrolled'] = "TMP";
} else {
$rowSession['enrolled'] = "NO";
}
}
// add courses to current session
$rowSession['courses'] = $aux;
return $rowSession;
}
/**
* Extended information about the course (from the course table as well as
* the buy_course table)
@ -366,10 +660,12 @@ function randomText($long = 6, $minWords = true, $maxWords = true, $number = tru
* Generates an order reference
* @result string A reference number
*/
function calculateReference()
function calculateReference($bc_codetext )
{
$tableBuyCourseTemporal = Database::get_main_table(TABLE_BUY_COURSE_TEMPORAL);
$sql = "SELECT MAX(cod) as cod FROM $tableBuyCourseTemporal";
$tableBuyTemporal = $bc_codetext === 'THIS_IS_A_SESSION' ?
Database::get_main_table(TABLE_BUY_SESSION_TEMPORAL) :
Database::get_main_table(TABLE_BUY_COURSE_TEMPORAL);
$sql = "SELECT MAX(cod) as cod FROM $tableBuyTemporal";
$res = Database::query($sql);
$row = Database::fetch_assoc($res);
if ($row['cod'] != '') {
@ -379,7 +675,6 @@ function calculateReference()
}
$randomText = randomText();
$reference .= $randomText;
return $reference;
}
/**
@ -387,10 +682,12 @@ function calculateReference()
* @result array List of orders
* @todo Enable pagination
*/
function pendingList()
function pendingList($bc_codetext )
{
$tableBuyCourseTemporal = Database::get_main_table(TABLE_BUY_COURSE_TEMPORAL);
$sql = "SELECT * FROM $tableBuyCourseTemporal;";
$tableBuyTemporal = $bc_codetext === 'THIS_IS_A_SESSION' ?
Database::get_main_table(TABLE_BUY_SESSION_TEMPORAL) :
Database::get_main_table(TABLE_BUY_COURSE_TEMPORAL);
$sql = "SELECT * FROM $tableBuyTemporal;";
$res = Database::query($sql);
$aux = array();
while ($row = Database::fetch_assoc($res)) {