mirror of https://github.com/acanas/swad-core.git
Version 18.11.8
This commit is contained in:
parent
7bfe4197e8
commit
0ef767800c
13
swad_ID.c
13
swad_ID.c
|
@ -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);
|
||||
|
|
|
@ -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)
|
||||
|
|
129
swad_connected.c
129
swad_connected.c
|
@ -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:
|
||||
|
|
|
@ -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"
|
||||
|
|
112
swad_holiday.c
112
swad_holiday.c
|
@ -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);
|
||||
|
|
292
swad_indicator.c
292
swad_indicator.c
|
@ -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;
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
|
Loading…
Reference in New Issue