Version 18.11.8

This commit is contained in:
Antonio Cañas Vargas 2018-10-31 13:00:40 +01:00
parent 7bfe4197e8
commit 0ef767800c
6 changed files with 311 additions and 240 deletions

View File

@ -99,13 +99,14 @@ void ID_GetListIDsFromUsrCod (struct UsrData *UsrDat)
if (UsrDat->UsrCod > 0)
{
/***** Get user's IDs from database *****/
// First the confirmed (Confirmed == 'Y')
// First the confirmed (Confirmed == 'Y')
// Then the unconfirmed (Confirmed == 'N')
DB_BuildQuery ("SELECT UsrID,Confirmed FROM usr_IDs"
" WHERE UsrCod=%ld"
" ORDER BY Confirmed DESC,UsrID",
UsrDat->UsrCod);
if ((NumIDs = (unsigned) DB_QuerySELECT_new (&mysql_res,"can not get user's IDs")))
NumIDs = (unsigned) DB_QuerySELECT (&mysql_res,"can not get user's IDs",
"SELECT UsrID,Confirmed FROM usr_IDs"
" WHERE UsrCod=%ld"
" ORDER BY Confirmed DESC,UsrID",
UsrDat->UsrCod);
if (NumIDs)
{
/***** Allocate space for the list *****/
ID_ReallocateListIDs (UsrDat,NumIDs);

View File

@ -355,10 +355,11 @@ En OpenSWAD:
ps2pdf source.ps destination.pdf
*/
#define Log_PLATFORM_VERSION "SWAD 18.11.7 (2018-10-31)"
#define Log_PLATFORM_VERSION "SWAD 18.11.8 (2018-10-31)"
#define CSS_FILE "swad18.4.css"
#define JS_FILE "swad17.17.1.js"
/*
Version 18.11.8: Oct 31, 2018 Joining building and performing query into one function. (235810 lines)
Version 18.11.7: Oct 31, 2018 Joining building and performing query into one function. (235741 lines)
Version 18.11.6: Oct 31, 2018 Joining building and performing query into one function. (235687 lines)
Version 18.11.5: Oct 31, 2018 Joining building and performing query into one function. (235619 lines)

View File

@ -699,65 +699,83 @@ static void Con_GetNumConnectedUsrsWithARoleBelongingCurrentLocation (Rol_Role_t
switch (Gbl.Scope.Current)
{
case Sco_SCOPE_SYS: // Show connected users in the whole platform
DB_BuildQuery ("SELECT COUNT(DISTINCT connected.UsrCod),"
"COUNT(DISTINCT usr_data.Sex),MIN(usr_data.Sex)"
" FROM connected,usr_data"
" WHERE connected.UsrCod=usr_data.UsrCod");
DB_QuerySELECT (&mysql_res,"can not get number"
" of connected users"
" who belong to this location",
"SELECT COUNT(DISTINCT connected.UsrCod),"
"COUNT(DISTINCT usr_data.Sex),MIN(usr_data.Sex)"
" FROM connected,usr_data"
" WHERE connected.UsrCod=usr_data.UsrCod");
break;
case Sco_SCOPE_CTY: // Show connected users in the current country
DB_BuildQuery ("SELECT COUNT(DISTINCT connected.UsrCod),"
"COUNT(DISTINCT usr_data.Sex),MIN(usr_data.Sex)"
" FROM institutions,centres,degrees,courses,crs_usr,connected,usr_data"
" WHERE institutions.CtyCod=%ld"
" AND institutions.InsCod=centres.InsCod"
" AND centres.CtrCod=degrees.CtrCod"
" AND degrees.DegCod=courses.DegCod"
" AND courses.CrsCod=crs_usr.CrsCod"
" AND crs_usr.UsrCod=connected.UsrCod"
" AND connected.UsrCod=usr_data.UsrCod",
Gbl.CurrentCty.Cty.CtyCod);
DB_QuerySELECT (&mysql_res,"can not get number"
" of connected users"
" who belong to this location",
"SELECT COUNT(DISTINCT connected.UsrCod),"
"COUNT(DISTINCT usr_data.Sex),MIN(usr_data.Sex)"
" FROM institutions,centres,degrees,courses,crs_usr,connected,usr_data"
" WHERE institutions.CtyCod=%ld"
" AND institutions.InsCod=centres.InsCod"
" AND centres.CtrCod=degrees.CtrCod"
" AND degrees.DegCod=courses.DegCod"
" AND courses.CrsCod=crs_usr.CrsCod"
" AND crs_usr.UsrCod=connected.UsrCod"
" AND connected.UsrCod=usr_data.UsrCod",
Gbl.CurrentCty.Cty.CtyCod);
break;
case Sco_SCOPE_INS: // Show connected users in the current institution
DB_BuildQuery ("SELECT COUNT(DISTINCT connected.UsrCod),"
"COUNT(DISTINCT usr_data.Sex),MIN(usr_data.Sex)"
" FROM centres,degrees,courses,crs_usr,connected,usr_data"
" WHERE centres.InsCod=%ld"
" AND centres.CtrCod=degrees.CtrCod"
" AND degrees.DegCod=courses.DegCod"
" AND courses.CrsCod=crs_usr.CrsCod"
" AND crs_usr.UsrCod=connected.UsrCod"
" AND connected.UsrCod=usr_data.UsrCod",
Gbl.CurrentIns.Ins.InsCod);
DB_QuerySELECT (&mysql_res,"can not get number"
" of connected users"
" who belong to this location",
"SELECT COUNT(DISTINCT connected.UsrCod),"
"COUNT(DISTINCT usr_data.Sex),MIN(usr_data.Sex)"
" FROM centres,degrees,courses,crs_usr,connected,usr_data"
" WHERE centres.InsCod=%ld"
" AND centres.CtrCod=degrees.CtrCod"
" AND degrees.DegCod=courses.DegCod"
" AND courses.CrsCod=crs_usr.CrsCod"
" AND crs_usr.UsrCod=connected.UsrCod"
" AND connected.UsrCod=usr_data.UsrCod",
Gbl.CurrentIns.Ins.InsCod);
break;
case Sco_SCOPE_CTR: // Show connected users in the current centre
DB_BuildQuery ("SELECT COUNT(DISTINCT connected.UsrCod),"
"COUNT(DISTINCT usr_data.Sex),MIN(usr_data.Sex)"
" FROM degrees,courses,crs_usr,connected,usr_data"
" WHERE degrees.CtrCod=%ld"
" AND degrees.DegCod=courses.DegCod"
" AND courses.CrsCod=crs_usr.CrsCod"
" AND crs_usr.UsrCod=connected.UsrCod"
" AND connected.UsrCod=usr_data.UsrCod",
Gbl.CurrentCtr.Ctr.CtrCod);
DB_QuerySELECT (&mysql_res,"can not get number"
" of connected users"
" who belong to this location",
"SELECT COUNT(DISTINCT connected.UsrCod),"
"COUNT(DISTINCT usr_data.Sex),MIN(usr_data.Sex)"
" FROM degrees,courses,crs_usr,connected,usr_data"
" WHERE degrees.CtrCod=%ld"
" AND degrees.DegCod=courses.DegCod"
" AND courses.CrsCod=crs_usr.CrsCod"
" AND crs_usr.UsrCod=connected.UsrCod"
" AND connected.UsrCod=usr_data.UsrCod",
Gbl.CurrentCtr.Ctr.CtrCod);
break;
case Sco_SCOPE_DEG: // Show connected users in the current degree
DB_BuildQuery ("SELECT COUNT(DISTINCT connected.UsrCod),"
"COUNT(DISTINCT usr_data.Sex),MIN(usr_data.Sex)"
" FROM courses,crs_usr,connected,usr_data"
" WHERE courses.DegCod=%ld"
" AND courses.CrsCod=crs_usr.CrsCod"
" AND crs_usr.UsrCod=connected.UsrCod"
" AND connected.UsrCod=usr_data.UsrCod",
Gbl.CurrentDeg.Deg.DegCod);
DB_QuerySELECT (&mysql_res,"can not get number"
" of connected users"
" who belong to this location",
"SELECT COUNT(DISTINCT connected.UsrCod),"
"COUNT(DISTINCT usr_data.Sex),MIN(usr_data.Sex)"
" FROM courses,crs_usr,connected,usr_data"
" WHERE courses.DegCod=%ld"
" AND courses.CrsCod=crs_usr.CrsCod"
" AND crs_usr.UsrCod=connected.UsrCod"
" AND connected.UsrCod=usr_data.UsrCod",
Gbl.CurrentDeg.Deg.DegCod);
break;
case Sco_SCOPE_CRS: // Show connected users in the current course
DB_BuildQuery ("SELECT COUNT(DISTINCT connected.UsrCod),"
"COUNT(DISTINCT usr_data.Sex),MIN(usr_data.Sex)"
" FROM crs_usr,connected,usr_data"
" WHERE crs_usr.CrsCod=%ld"
" AND crs_usr.UsrCod=connected.UsrCod"
" AND connected.UsrCod=usr_data.UsrCod",
Gbl.CurrentCrs.Crs.CrsCod);
DB_QuerySELECT (&mysql_res,"can not get number"
" of connected users"
" who belong to this location",
"SELECT COUNT(DISTINCT connected.UsrCod),"
"COUNT(DISTINCT usr_data.Sex),MIN(usr_data.Sex)"
" FROM crs_usr,connected,usr_data"
" WHERE crs_usr.CrsCod=%ld"
" AND crs_usr.UsrCod=connected.UsrCod"
" AND connected.UsrCod=usr_data.UsrCod",
Gbl.CurrentCrs.Crs.CrsCod);
break;
default:
Lay_WrongScopeExit ();
@ -765,11 +783,14 @@ static void Con_GetNumConnectedUsrsWithARoleBelongingCurrentLocation (Rol_Role_t
}
break;
case Rol_GST:
DB_BuildQuery ("SELECT COUNT(DISTINCT connected.UsrCod),"
"COUNT(DISTINCT usr_data.Sex),MIN(usr_data.Sex)"
" FROM connected,usr_data"
" WHERE connected.UsrCod NOT IN (SELECT UsrCod FROM crs_usr)"
" AND connected.UsrCod=usr_data.UsrCod");
DB_QuerySELECT (&mysql_res,"can not get number"
" of connected users"
" who belong to this location",
"SELECT COUNT(DISTINCT connected.UsrCod),"
"COUNT(DISTINCT usr_data.Sex),MIN(usr_data.Sex)"
" FROM connected,usr_data"
" WHERE connected.UsrCod NOT IN (SELECT UsrCod FROM crs_usr)"
" AND connected.UsrCod=usr_data.UsrCod");
break;
case Rol_STD:
case Rol_NET:

View File

@ -27,6 +27,8 @@
/********************************* Headers ***********************************/
/*****************************************************************************/
#include <mysql/mysql.h> // To access MySQL databases
#include "swad_action.h"
#include "swad_constant.h"
#include "swad_hierarchy.h"

View File

@ -269,30 +269,39 @@ void Hld_GetListHolidays (void)
sprintf (OrderBySubQuery,"StartDate,Place");
break;
}
DB_BuildQuery ("(SELECT holidays.HldCod,holidays.PlcCod,"
"places.FullName as Place,HldTyp,"
"DATE_FORMAT(holidays.StartDate,'%%Y%%m%%d') AS StartDate,"
"DATE_FORMAT(holidays.EndDate,'%%Y%%m%%d') AS EndDate,"
"holidays.Name"
" FROM holidays,places"
" WHERE holidays.InsCod=%ld"
" AND holidays.PlcCod=places.PlcCod"
" AND places.InsCod=%ld)"
" UNION "
"(SELECT HldCod,PlcCod,'' as Place,HldTyp,"
"DATE_FORMAT(StartDate,'%%Y%%m%%d') AS StartDate,"
"DATE_FORMAT(EndDate,'%%Y%%m%%d') AS EndDate,Name"
" FROM holidays"
" WHERE InsCod=%ld"
" AND PlcCod NOT IN"
"(SELECT DISTINCT PlcCod FROM places WHERE InsCod=%ld))"
" ORDER BY %s",
Gbl.CurrentIns.Ins.InsCod,
Gbl.CurrentIns.Ins.InsCod,
Gbl.CurrentIns.Ins.InsCod,
Gbl.CurrentIns.Ins.InsCod,
OrderBySubQuery);
if ((Gbl.Hlds.Num = (unsigned) DB_QuerySELECT_new (&mysql_res,"can not get holidays"))) // Holidays found...
Gbl.Hlds.Num =
(unsigned) DB_QuerySELECT (&mysql_res,"can not get holidays",
"(SELECT holidays.HldCod,"
"holidays.PlcCod,"
"places.FullName as Place,"
"holidays.HldTyp,"
"DATE_FORMAT(holidays.StartDate,'%%Y%%m%%d') AS StartDate,"
"DATE_FORMAT(holidays.EndDate,'%%Y%%m%%d') AS EndDate,"
"holidays.Name"
" FROM holidays,places"
" WHERE holidays.InsCod=%ld"
" AND holidays.PlcCod=places.PlcCod"
" AND places.InsCod=%ld)"
" UNION "
"(SELECT HldCod,"
"PlcCod,"
"'' as Place,"
"HldTyp,"
"DATE_FORMAT(StartDate,'%%Y%%m%%d') AS StartDate,"
"DATE_FORMAT(EndDate,'%%Y%%m%%d') AS EndDate,"
"Name"
" FROM holidays"
" WHERE InsCod=%ld"
" AND PlcCod NOT IN"
"(SELECT DISTINCT PlcCod FROM places"
" WHERE InsCod=%ld))"
" ORDER BY %s",
Gbl.CurrentIns.Ins.InsCod,
Gbl.CurrentIns.Ins.InsCod,
Gbl.CurrentIns.Ins.InsCod,
Gbl.CurrentIns.Ins.InsCod,
OrderBySubQuery);
if (Gbl.Hlds.Num) // Holidays found...
{
/***** Create list of holidays *****/
if ((Gbl.Hlds.Lst = (struct Holiday *) calloc ((size_t) Gbl.Hlds.Num,sizeof (struct Holiday))) == NULL)
@ -375,30 +384,37 @@ static void Hld_GetDataOfHolidayByCod (struct Holiday *Hld)
Lay_ShowErrorAndExit ("Wrong code of holiday.");
/***** Get data of holiday from database *****/
DB_BuildQuery ("(SELECT holidays.PlcCod,places.FullName as Place,HldTyp,"
"DATE_FORMAT(holidays.StartDate,'%%Y%%m%%d'),"
"DATE_FORMAT(holidays.EndDate,'%%Y%%m%%d'),holidays.Name"
" FROM holidays,places"
" WHERE holidays.HldCod=%ld"
" AND holidays.InsCod=%ld"
" AND holidays.PlcCod=places.PlcCod"
" AND places.InsCod=%ld)"
" UNION "
"(SELECT PlcCod,'' as Place,HldTyp,"
"DATE_FORMAT(StartDate,'%%Y%%m%%d'),"
"DATE_FORMAT(EndDate,'%%Y%%m%%d'),Name"
" FROM holidays"
" WHERE HldCod=%ld"
" AND InsCod=%ld"
" AND PlcCod NOT IN"
"(SELECT DISTINCT PlcCod FROM places WHERE InsCod=%ld))",
Hld->HldCod,
Gbl.CurrentIns.Ins.InsCod,
Gbl.CurrentIns.Ins.InsCod,
Hld->HldCod,
Gbl.CurrentIns.Ins.InsCod,
Gbl.CurrentIns.Ins.InsCod);
if (DB_QuerySELECT_new (&mysql_res,"can not get data of a holiday")) // Holiday found...
if (DB_QuerySELECT (&mysql_res,"can not get data of a holiday",
"(SELECT holidays.PlcCod,"
"places.FullName as Place,"
"holidays.HldTyp,"
"DATE_FORMAT(holidays.StartDate,'%%Y%%m%%d'),"
"DATE_FORMAT(holidays.EndDate,'%%Y%%m%%d'),"
"holidays.Name"
" FROM holidays,places"
" WHERE holidays.HldCod=%ld"
" AND holidays.InsCod=%ld"
" AND holidays.PlcCod=places.PlcCod"
" AND places.InsCod=%ld)"
" UNION "
"(SELECT PlcCod,"
"'' as Place,"
"HldTyp,"
"DATE_FORMAT(StartDate,'%%Y%%m%%d'),"
"DATE_FORMAT(EndDate,'%%Y%%m%%d'),"
"Name"
" FROM holidays"
" WHERE HldCod=%ld"
" AND InsCod=%ld"
" AND PlcCod NOT IN"
"(SELECT DISTINCT PlcCod FROM places"
" WHERE InsCod=%ld))",
Hld->HldCod,
Gbl.CurrentIns.Ins.InsCod,
Gbl.CurrentIns.Ins.InsCod,
Hld->HldCod,
Gbl.CurrentIns.Ins.InsCod,
Gbl.CurrentIns.Ins.InsCod)) // Holiday found...
{
/* Get row */
row = mysql_fetch_row (mysql_res);

View File

@ -327,176 +327,206 @@ static void Ind_GetParamNumIndicators (void)
static unsigned Ind_GetTableOfCourses (MYSQL_RES **mysql_res)
{
unsigned NumCrss = 0; // Initialized to avoid warning
switch (Gbl.Scope.Current)
{
case Sco_SCOPE_SYS:
if (Gbl.Stat.DptCod >= 0) // 0 means another department
{
if (Gbl.Stat.DegTypCod > 0)
DB_BuildQuery ("SELECT DISTINCTROW degrees.FullName,courses.FullName,courses.CrsCod,courses.InsCrsCod"
" FROM degrees,courses,crs_usr,usr_data"
" WHERE degrees.DegTypCod=%ld"
" AND degrees.DegCod=courses.DegCod"
" AND courses.CrsCod=crs_usr.CrsCod"
" AND crs_usr.Role=%u"
" AND crs_usr.UsrCod=usr_data.UsrCod"
" AND usr_data.DptCod=%ld"
" ORDER BY degrees.FullName,courses.FullName",
Gbl.Stat.DegTypCod,
(unsigned) Rol_TCH,
Gbl.Stat.DptCod);
NumCrss =
(unsigned) DB_QuerySELECT (mysql_res,"can not get courses",
"SELECT DISTINCTROW degrees.FullName,courses.FullName,courses.CrsCod,courses.InsCrsCod"
" FROM degrees,courses,crs_usr,usr_data"
" WHERE degrees.DegTypCod=%ld"
" AND degrees.DegCod=courses.DegCod"
" AND courses.CrsCod=crs_usr.CrsCod"
" AND crs_usr.Role=%u"
" AND crs_usr.UsrCod=usr_data.UsrCod"
" AND usr_data.DptCod=%ld"
" ORDER BY degrees.FullName,courses.FullName",
Gbl.Stat.DegTypCod,
(unsigned) Rol_TCH,
Gbl.Stat.DptCod);
else
DB_BuildQuery ("SELECT DISTINCTROW degrees.FullName,courses.FullName,courses.CrsCod,courses.InsCrsCod"
" FROM degrees,courses,crs_usr,usr_data"
" WHERE degrees.DegCod=courses.DegCod"
" AND courses.CrsCod=crs_usr.CrsCod"
" AND crs_usr.Role=%u"
" AND crs_usr.UsrCod=usr_data.UsrCod"
" AND usr_data.DptCod=%ld"
" ORDER BY degrees.FullName,courses.FullName",
(unsigned) Rol_TCH,
Gbl.Stat.DptCod);
NumCrss =
(unsigned) DB_QuerySELECT (mysql_res,"can not get courses",
"SELECT DISTINCTROW degrees.FullName,courses.FullName,courses.CrsCod,courses.InsCrsCod"
" FROM degrees,courses,crs_usr,usr_data"
" WHERE degrees.DegCod=courses.DegCod"
" AND courses.CrsCod=crs_usr.CrsCod"
" AND crs_usr.Role=%u"
" AND crs_usr.UsrCod=usr_data.UsrCod"
" AND usr_data.DptCod=%ld"
" ORDER BY degrees.FullName,courses.FullName",
(unsigned) Rol_TCH,
Gbl.Stat.DptCod);
}
else
{
if (Gbl.Stat.DegTypCod > 0)
DB_BuildQuery ("SELECT degrees.FullName,courses.FullName,courses.CrsCod,courses.InsCrsCod"
" FROM degrees,courses"
" WHERE degrees.DegTypCod=%ld"
" AND degrees.DegCod=courses.DegCod"
" ORDER BY degrees.FullName,courses.FullName",
Gbl.Stat.DegTypCod);
NumCrss =
(unsigned) DB_QuerySELECT (mysql_res,"can not get courses",
"SELECT degrees.FullName,courses.FullName,courses.CrsCod,courses.InsCrsCod"
" FROM degrees,courses"
" WHERE degrees.DegTypCod=%ld"
" AND degrees.DegCod=courses.DegCod"
" ORDER BY degrees.FullName,courses.FullName",
Gbl.Stat.DegTypCod);
else
DB_BuildQuery ("SELECT degrees.FullName,courses.FullName,courses.CrsCod,courses.InsCrsCod"
" FROM degrees,courses"
" WHERE degrees.DegCod=courses.DegCod"
" ORDER BY degrees.FullName,courses.FullName");
NumCrss =
(unsigned) DB_QuerySELECT (mysql_res,"can not get courses",
"SELECT degrees.FullName,courses.FullName,courses.CrsCod,courses.InsCrsCod"
" FROM degrees,courses"
" WHERE degrees.DegCod=courses.DegCod"
" ORDER BY degrees.FullName,courses.FullName");
}
break;
case Sco_SCOPE_CTY:
if (Gbl.Stat.DptCod >= 0) // 0 means another department
DB_BuildQuery ("SELECT DISTINCTROW degrees.FullName,courses.FullName,courses.CrsCod,courses.InsCrsCod"
" FROM institutions,centres,degrees,courses,crs_usr,usr_data"
" WHERE institutions.CtyCod=%ld"
" AND institutions.InsCod=centres.InsCod"
" AND centres.CtrCod=degrees.CtrCod"
" AND degrees.DegCod=courses.DegCod"
" AND courses.CrsCod=crs_usr.CrsCod"
" AND crs_usr.Role=%u"
" AND crs_usr.UsrCod=usr_data.UsrCod"
" AND usr_data.DptCod=%ld"
" ORDER BY degrees.FullName,courses.FullName",
Gbl.CurrentCty.Cty.CtyCod,
(unsigned) Rol_TCH,
Gbl.Stat.DptCod);
NumCrss =
(unsigned) DB_QuerySELECT (mysql_res,"can not get courses",
"SELECT DISTINCTROW degrees.FullName,courses.FullName,courses.CrsCod,courses.InsCrsCod"
" FROM institutions,centres,degrees,courses,crs_usr,usr_data"
" WHERE institutions.CtyCod=%ld"
" AND institutions.InsCod=centres.InsCod"
" AND centres.CtrCod=degrees.CtrCod"
" AND degrees.DegCod=courses.DegCod"
" AND courses.CrsCod=crs_usr.CrsCod"
" AND crs_usr.Role=%u"
" AND crs_usr.UsrCod=usr_data.UsrCod"
" AND usr_data.DptCod=%ld"
" ORDER BY degrees.FullName,courses.FullName",
Gbl.CurrentCty.Cty.CtyCod,
(unsigned) Rol_TCH,
Gbl.Stat.DptCod);
else
DB_BuildQuery ("SELECT degrees.FullName,courses.FullName,courses.CrsCod,courses.InsCrsCod"
" FROM institutions,centres,degrees,courses"
" WHERE institutions.CtyCod=%ld"
" AND institutions.InsCod=centres.InsCod"
" AND centres.CtrCod=degrees.CtrCod"
" AND degrees.DegCod=courses.DegCod"
" ORDER BY degrees.FullName,courses.FullName",
Gbl.CurrentCty.Cty.CtyCod);
NumCrss =
(unsigned) DB_QuerySELECT (mysql_res,"can not get courses",
"SELECT degrees.FullName,courses.FullName,courses.CrsCod,courses.InsCrsCod"
" FROM institutions,centres,degrees,courses"
" WHERE institutions.CtyCod=%ld"
" AND institutions.InsCod=centres.InsCod"
" AND centres.CtrCod=degrees.CtrCod"
" AND degrees.DegCod=courses.DegCod"
" ORDER BY degrees.FullName,courses.FullName",
Gbl.CurrentCty.Cty.CtyCod);
break;
case Sco_SCOPE_INS:
if (Gbl.Stat.DptCod >= 0) // 0 means another department
DB_BuildQuery ("SELECT DISTINCTROW degrees.FullName,courses.FullName,courses.CrsCod,courses.InsCrsCod"
" FROM centres,degrees,courses,crs_usr,usr_data"
" WHERE centres.InsCod=%ld"
" AND centres.CtrCod=degrees.CtrCod"
" AND degrees.DegCod=courses.DegCod"
" AND courses.CrsCod=crs_usr.CrsCod"
" AND crs_usr.Role=%u"
" AND crs_usr.UsrCod=usr_data.UsrCod"
" AND usr_data.DptCod=%ld"
" ORDER BY degrees.FullName,courses.FullName",
Gbl.CurrentIns.Ins.InsCod,
(unsigned) Rol_TCH,
Gbl.Stat.DptCod);
NumCrss =
(unsigned) DB_QuerySELECT (mysql_res,"can not get courses",
"SELECT DISTINCTROW degrees.FullName,courses.FullName,courses.CrsCod,courses.InsCrsCod"
" FROM centres,degrees,courses,crs_usr,usr_data"
" WHERE centres.InsCod=%ld"
" AND centres.CtrCod=degrees.CtrCod"
" AND degrees.DegCod=courses.DegCod"
" AND courses.CrsCod=crs_usr.CrsCod"
" AND crs_usr.Role=%u"
" AND crs_usr.UsrCod=usr_data.UsrCod"
" AND usr_data.DptCod=%ld"
" ORDER BY degrees.FullName,courses.FullName",
Gbl.CurrentIns.Ins.InsCod,
(unsigned) Rol_TCH,
Gbl.Stat.DptCod);
else
DB_BuildQuery ("SELECT degrees.FullName,courses.FullName,courses.CrsCod,courses.InsCrsCod"
" FROM centres,degrees,courses"
" WHERE centres.InsCod=%ld"
" AND centres.CtrCod=degrees.CtrCod"
" AND degrees.DegCod=courses.DegCod"
" ORDER BY degrees.FullName,courses.FullName",
Gbl.CurrentIns.Ins.InsCod);
NumCrss =
(unsigned) DB_QuerySELECT (mysql_res,"can not get courses",
"SELECT degrees.FullName,courses.FullName,courses.CrsCod,courses.InsCrsCod"
" FROM centres,degrees,courses"
" WHERE centres.InsCod=%ld"
" AND centres.CtrCod=degrees.CtrCod"
" AND degrees.DegCod=courses.DegCod"
" ORDER BY degrees.FullName,courses.FullName",
Gbl.CurrentIns.Ins.InsCod);
break;
case Sco_SCOPE_CTR:
if (Gbl.Stat.DptCod >= 0) // 0 means another department
DB_BuildQuery ("SELECT DISTINCTROW degrees.FullName,courses.FullName,courses.CrsCod,courses.InsCrsCod"
" FROM degrees,courses,crs_usr,usr_data"
" WHERE degrees.CtrCod=%ld"
" AND degrees.DegCod=courses.DegCod"
" AND courses.CrsCod=crs_usr.CrsCod"
" AND crs_usr.Role=%u"
" AND crs_usr.UsrCod=usr_data.UsrCod"
" AND usr_data.DptCod=%ld"
" ORDER BY degrees.FullName,courses.FullName",
Gbl.CurrentCtr.Ctr.CtrCod,
(unsigned) Rol_TCH,
Gbl.Stat.DptCod);
NumCrss =
(unsigned) DB_QuerySELECT (mysql_res,"can not get courses",
"SELECT DISTINCTROW degrees.FullName,courses.FullName,courses.CrsCod,courses.InsCrsCod"
" FROM degrees,courses,crs_usr,usr_data"
" WHERE degrees.CtrCod=%ld"
" AND degrees.DegCod=courses.DegCod"
" AND courses.CrsCod=crs_usr.CrsCod"
" AND crs_usr.Role=%u"
" AND crs_usr.UsrCod=usr_data.UsrCod"
" AND usr_data.DptCod=%ld"
" ORDER BY degrees.FullName,courses.FullName",
Gbl.CurrentCtr.Ctr.CtrCod,
(unsigned) Rol_TCH,
Gbl.Stat.DptCod);
else
DB_BuildQuery ("SELECT degrees.FullName,courses.FullName,courses.CrsCod,courses.InsCrsCod"
" FROM degrees,courses"
" WHERE degrees.CtrCod=%ld"
" AND degrees.DegCod=courses.DegCod"
" ORDER BY degrees.FullName,courses.FullName",
Gbl.CurrentCtr.Ctr.CtrCod);
NumCrss =
(unsigned) DB_QuerySELECT (mysql_res,"can not get courses",
"SELECT degrees.FullName,courses.FullName,courses.CrsCod,courses.InsCrsCod"
" FROM degrees,courses"
" WHERE degrees.CtrCod=%ld"
" AND degrees.DegCod=courses.DegCod"
" ORDER BY degrees.FullName,courses.FullName",
Gbl.CurrentCtr.Ctr.CtrCod);
break;
case Sco_SCOPE_DEG:
if (Gbl.Stat.DptCod >= 0) // 0 means another department
DB_BuildQuery ("SELECT DISTINCTROW degrees.FullName,courses.FullName,courses.CrsCod,courses.InsCrsCod"
" FROM degrees,courses,crs_usr,usr_data"
" WHERE degrees.DegCod=%ld"
" AND degrees.DegCod=courses.DegCod"
" AND courses.CrsCod=crs_usr.CrsCod"
" AND crs_usr.Role=%u"
" AND crs_usr.UsrCod=usr_data.UsrCod"
" AND usr_data.DptCod=%ld"
" ORDER BY degrees.FullName,courses.FullName",
Gbl.CurrentDeg.Deg.DegCod,
(unsigned) Rol_TCH,
Gbl.Stat.DptCod);
NumCrss =
(unsigned) DB_QuerySELECT (mysql_res,"can not get courses",
"SELECT DISTINCTROW degrees.FullName,courses.FullName,courses.CrsCod,courses.InsCrsCod"
" FROM degrees,courses,crs_usr,usr_data"
" WHERE degrees.DegCod=%ld"
" AND degrees.DegCod=courses.DegCod"
" AND courses.CrsCod=crs_usr.CrsCod"
" AND crs_usr.Role=%u"
" AND crs_usr.UsrCod=usr_data.UsrCod"
" AND usr_data.DptCod=%ld"
" ORDER BY degrees.FullName,courses.FullName",
Gbl.CurrentDeg.Deg.DegCod,
(unsigned) Rol_TCH,
Gbl.Stat.DptCod);
else
DB_BuildQuery ("SELECT degrees.FullName,courses.FullName,courses.CrsCod,courses.InsCrsCod"
" FROM degrees,courses"
" WHERE degrees.DegCod=%ld"
" AND degrees.DegCod=courses.DegCod"
" ORDER BY degrees.FullName,courses.FullName",
Gbl.CurrentDeg.Deg.DegCod);
NumCrss =
(unsigned) DB_QuerySELECT (mysql_res,"can not get courses",
"SELECT degrees.FullName,courses.FullName,courses.CrsCod,courses.InsCrsCod"
" FROM degrees,courses"
" WHERE degrees.DegCod=%ld"
" AND degrees.DegCod=courses.DegCod"
" ORDER BY degrees.FullName,courses.FullName",
Gbl.CurrentDeg.Deg.DegCod);
break;
case Sco_SCOPE_CRS:
if (Gbl.Stat.DptCod >= 0) // 0 means another department
DB_BuildQuery ("SELECT DISTINCTROW degrees.FullName,courses.FullName,courses.CrsCod,courses.InsCrsCod"
" FROM degrees,courses,crs_usr,usr_data"
" WHERE courses.CrsCod=%ld"
" AND degrees.DegCod=courses.DegCod"
" AND courses.CrsCod=crs_usr.CrsCod"
" AND crs_usr.CrsCod=%ld"
" AND crs_usr.Role=%u"
" AND crs_usr.UsrCod=usr_data.UsrCod"
" AND usr_data.DptCod=%ld"
" ORDER BY degrees.FullName,courses.FullName",
Gbl.CurrentCrs.Crs.CrsCod,
Gbl.CurrentCrs.Crs.CrsCod,
(unsigned) Rol_TCH,
Gbl.Stat.DptCod);
NumCrss =
(unsigned) DB_QuerySELECT (mysql_res,"can not get courses",
"SELECT DISTINCTROW degrees.FullName,courses.FullName,courses.CrsCod,courses.InsCrsCod"
" FROM degrees,courses,crs_usr,usr_data"
" WHERE courses.CrsCod=%ld"
" AND degrees.DegCod=courses.DegCod"
" AND courses.CrsCod=crs_usr.CrsCod"
" AND crs_usr.CrsCod=%ld"
" AND crs_usr.Role=%u"
" AND crs_usr.UsrCod=usr_data.UsrCod"
" AND usr_data.DptCod=%ld"
" ORDER BY degrees.FullName,courses.FullName",
Gbl.CurrentCrs.Crs.CrsCod,
Gbl.CurrentCrs.Crs.CrsCod,
(unsigned) Rol_TCH,
Gbl.Stat.DptCod);
else
DB_BuildQuery ("SELECT degrees.FullName,courses.FullName,courses.CrsCod,courses.InsCrsCod"
" FROM degrees,courses"
" WHERE courses.CrsCod=%ld"
" AND degrees.DegCod=courses.DegCod"
" ORDER BY degrees.FullName,courses.FullName",
Gbl.CurrentCrs.Crs.CrsCod);
NumCrss =
(unsigned) DB_QuerySELECT (mysql_res,"can not get courses",
"SELECT degrees.FullName,courses.FullName,courses.CrsCod,courses.InsCrsCod"
" FROM degrees,courses"
" WHERE courses.CrsCod=%ld"
" AND degrees.DegCod=courses.DegCod"
" ORDER BY degrees.FullName,courses.FullName",
Gbl.CurrentCrs.Crs.CrsCod);
break;
default:
Lay_WrongScopeExit ();
break;
}
return (unsigned) DB_QuerySELECT_new (mysql_res,"can not get courses");
return NumCrss;
}
/*****************************************************************************/