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)
|
if (UsrDat->UsrCod > 0)
|
||||||
{
|
{
|
||||||
/***** Get user's IDs from database *****/
|
/***** Get user's IDs from database *****/
|
||||||
// First the confirmed (Confirmed == 'Y')
|
// First the confirmed (Confirmed == 'Y')
|
||||||
// Then the unconfirmed (Confirmed == 'N')
|
// Then the unconfirmed (Confirmed == 'N')
|
||||||
DB_BuildQuery ("SELECT UsrID,Confirmed FROM usr_IDs"
|
NumIDs = (unsigned) DB_QuerySELECT (&mysql_res,"can not get user's IDs",
|
||||||
" WHERE UsrCod=%ld"
|
"SELECT UsrID,Confirmed FROM usr_IDs"
|
||||||
" ORDER BY Confirmed DESC,UsrID",
|
" WHERE UsrCod=%ld"
|
||||||
UsrDat->UsrCod);
|
" ORDER BY Confirmed DESC,UsrID",
|
||||||
if ((NumIDs = (unsigned) DB_QuerySELECT_new (&mysql_res,"can not get user's IDs")))
|
UsrDat->UsrCod);
|
||||||
|
if (NumIDs)
|
||||||
{
|
{
|
||||||
/***** Allocate space for the list *****/
|
/***** Allocate space for the list *****/
|
||||||
ID_ReallocateListIDs (UsrDat,NumIDs);
|
ID_ReallocateListIDs (UsrDat,NumIDs);
|
||||||
|
|
|
@ -355,10 +355,11 @@ En OpenSWAD:
|
||||||
ps2pdf source.ps destination.pdf
|
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 CSS_FILE "swad18.4.css"
|
||||||
#define JS_FILE "swad17.17.1.js"
|
#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.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.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)
|
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)
|
switch (Gbl.Scope.Current)
|
||||||
{
|
{
|
||||||
case Sco_SCOPE_SYS: // Show connected users in the whole platform
|
case Sco_SCOPE_SYS: // Show connected users in the whole platform
|
||||||
DB_BuildQuery ("SELECT COUNT(DISTINCT connected.UsrCod),"
|
DB_QuerySELECT (&mysql_res,"can not get number"
|
||||||
"COUNT(DISTINCT usr_data.Sex),MIN(usr_data.Sex)"
|
" of connected users"
|
||||||
" FROM connected,usr_data"
|
" who belong to this location",
|
||||||
" WHERE connected.UsrCod=usr_data.UsrCod");
|
"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;
|
break;
|
||||||
case Sco_SCOPE_CTY: // Show connected users in the current country
|
case Sco_SCOPE_CTY: // Show connected users in the current country
|
||||||
DB_BuildQuery ("SELECT COUNT(DISTINCT connected.UsrCod),"
|
DB_QuerySELECT (&mysql_res,"can not get number"
|
||||||
"COUNT(DISTINCT usr_data.Sex),MIN(usr_data.Sex)"
|
" of connected users"
|
||||||
" FROM institutions,centres,degrees,courses,crs_usr,connected,usr_data"
|
" who belong to this location",
|
||||||
" WHERE institutions.CtyCod=%ld"
|
"SELECT COUNT(DISTINCT connected.UsrCod),"
|
||||||
" AND institutions.InsCod=centres.InsCod"
|
"COUNT(DISTINCT usr_data.Sex),MIN(usr_data.Sex)"
|
||||||
" AND centres.CtrCod=degrees.CtrCod"
|
" FROM institutions,centres,degrees,courses,crs_usr,connected,usr_data"
|
||||||
" AND degrees.DegCod=courses.DegCod"
|
" WHERE institutions.CtyCod=%ld"
|
||||||
" AND courses.CrsCod=crs_usr.CrsCod"
|
" AND institutions.InsCod=centres.InsCod"
|
||||||
" AND crs_usr.UsrCod=connected.UsrCod"
|
" AND centres.CtrCod=degrees.CtrCod"
|
||||||
" AND connected.UsrCod=usr_data.UsrCod",
|
" AND degrees.DegCod=courses.DegCod"
|
||||||
Gbl.CurrentCty.Cty.CtyCod);
|
" AND courses.CrsCod=crs_usr.CrsCod"
|
||||||
|
" AND crs_usr.UsrCod=connected.UsrCod"
|
||||||
|
" AND connected.UsrCod=usr_data.UsrCod",
|
||||||
|
Gbl.CurrentCty.Cty.CtyCod);
|
||||||
break;
|
break;
|
||||||
case Sco_SCOPE_INS: // Show connected users in the current institution
|
case Sco_SCOPE_INS: // Show connected users in the current institution
|
||||||
DB_BuildQuery ("SELECT COUNT(DISTINCT connected.UsrCod),"
|
DB_QuerySELECT (&mysql_res,"can not get number"
|
||||||
"COUNT(DISTINCT usr_data.Sex),MIN(usr_data.Sex)"
|
" of connected users"
|
||||||
" FROM centres,degrees,courses,crs_usr,connected,usr_data"
|
" who belong to this location",
|
||||||
" WHERE centres.InsCod=%ld"
|
"SELECT COUNT(DISTINCT connected.UsrCod),"
|
||||||
" AND centres.CtrCod=degrees.CtrCod"
|
"COUNT(DISTINCT usr_data.Sex),MIN(usr_data.Sex)"
|
||||||
" AND degrees.DegCod=courses.DegCod"
|
" FROM centres,degrees,courses,crs_usr,connected,usr_data"
|
||||||
" AND courses.CrsCod=crs_usr.CrsCod"
|
" WHERE centres.InsCod=%ld"
|
||||||
" AND crs_usr.UsrCod=connected.UsrCod"
|
" AND centres.CtrCod=degrees.CtrCod"
|
||||||
" AND connected.UsrCod=usr_data.UsrCod",
|
" AND degrees.DegCod=courses.DegCod"
|
||||||
Gbl.CurrentIns.Ins.InsCod);
|
" AND courses.CrsCod=crs_usr.CrsCod"
|
||||||
|
" AND crs_usr.UsrCod=connected.UsrCod"
|
||||||
|
" AND connected.UsrCod=usr_data.UsrCod",
|
||||||
|
Gbl.CurrentIns.Ins.InsCod);
|
||||||
break;
|
break;
|
||||||
case Sco_SCOPE_CTR: // Show connected users in the current centre
|
case Sco_SCOPE_CTR: // Show connected users in the current centre
|
||||||
DB_BuildQuery ("SELECT COUNT(DISTINCT connected.UsrCod),"
|
DB_QuerySELECT (&mysql_res,"can not get number"
|
||||||
"COUNT(DISTINCT usr_data.Sex),MIN(usr_data.Sex)"
|
" of connected users"
|
||||||
" FROM degrees,courses,crs_usr,connected,usr_data"
|
" who belong to this location",
|
||||||
" WHERE degrees.CtrCod=%ld"
|
"SELECT COUNT(DISTINCT connected.UsrCod),"
|
||||||
" AND degrees.DegCod=courses.DegCod"
|
"COUNT(DISTINCT usr_data.Sex),MIN(usr_data.Sex)"
|
||||||
" AND courses.CrsCod=crs_usr.CrsCod"
|
" FROM degrees,courses,crs_usr,connected,usr_data"
|
||||||
" AND crs_usr.UsrCod=connected.UsrCod"
|
" WHERE degrees.CtrCod=%ld"
|
||||||
" AND connected.UsrCod=usr_data.UsrCod",
|
" AND degrees.DegCod=courses.DegCod"
|
||||||
Gbl.CurrentCtr.Ctr.CtrCod);
|
" AND courses.CrsCod=crs_usr.CrsCod"
|
||||||
|
" AND crs_usr.UsrCod=connected.UsrCod"
|
||||||
|
" AND connected.UsrCod=usr_data.UsrCod",
|
||||||
|
Gbl.CurrentCtr.Ctr.CtrCod);
|
||||||
break;
|
break;
|
||||||
case Sco_SCOPE_DEG: // Show connected users in the current degree
|
case Sco_SCOPE_DEG: // Show connected users in the current degree
|
||||||
DB_BuildQuery ("SELECT COUNT(DISTINCT connected.UsrCod),"
|
DB_QuerySELECT (&mysql_res,"can not get number"
|
||||||
"COUNT(DISTINCT usr_data.Sex),MIN(usr_data.Sex)"
|
" of connected users"
|
||||||
" FROM courses,crs_usr,connected,usr_data"
|
" who belong to this location",
|
||||||
" WHERE courses.DegCod=%ld"
|
"SELECT COUNT(DISTINCT connected.UsrCod),"
|
||||||
" AND courses.CrsCod=crs_usr.CrsCod"
|
"COUNT(DISTINCT usr_data.Sex),MIN(usr_data.Sex)"
|
||||||
" AND crs_usr.UsrCod=connected.UsrCod"
|
" FROM courses,crs_usr,connected,usr_data"
|
||||||
" AND connected.UsrCod=usr_data.UsrCod",
|
" WHERE courses.DegCod=%ld"
|
||||||
Gbl.CurrentDeg.Deg.DegCod);
|
" AND courses.CrsCod=crs_usr.CrsCod"
|
||||||
|
" AND crs_usr.UsrCod=connected.UsrCod"
|
||||||
|
" AND connected.UsrCod=usr_data.UsrCod",
|
||||||
|
Gbl.CurrentDeg.Deg.DegCod);
|
||||||
break;
|
break;
|
||||||
case Sco_SCOPE_CRS: // Show connected users in the current course
|
case Sco_SCOPE_CRS: // Show connected users in the current course
|
||||||
DB_BuildQuery ("SELECT COUNT(DISTINCT connected.UsrCod),"
|
DB_QuerySELECT (&mysql_res,"can not get number"
|
||||||
"COUNT(DISTINCT usr_data.Sex),MIN(usr_data.Sex)"
|
" of connected users"
|
||||||
" FROM crs_usr,connected,usr_data"
|
" who belong to this location",
|
||||||
" WHERE crs_usr.CrsCod=%ld"
|
"SELECT COUNT(DISTINCT connected.UsrCod),"
|
||||||
" AND crs_usr.UsrCod=connected.UsrCod"
|
"COUNT(DISTINCT usr_data.Sex),MIN(usr_data.Sex)"
|
||||||
" AND connected.UsrCod=usr_data.UsrCod",
|
" FROM crs_usr,connected,usr_data"
|
||||||
Gbl.CurrentCrs.Crs.CrsCod);
|
" WHERE crs_usr.CrsCod=%ld"
|
||||||
|
" AND crs_usr.UsrCod=connected.UsrCod"
|
||||||
|
" AND connected.UsrCod=usr_data.UsrCod",
|
||||||
|
Gbl.CurrentCrs.Crs.CrsCod);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
Lay_WrongScopeExit ();
|
Lay_WrongScopeExit ();
|
||||||
|
@ -765,11 +783,14 @@ static void Con_GetNumConnectedUsrsWithARoleBelongingCurrentLocation (Rol_Role_t
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case Rol_GST:
|
case Rol_GST:
|
||||||
DB_BuildQuery ("SELECT COUNT(DISTINCT connected.UsrCod),"
|
DB_QuerySELECT (&mysql_res,"can not get number"
|
||||||
"COUNT(DISTINCT usr_data.Sex),MIN(usr_data.Sex)"
|
" of connected users"
|
||||||
" FROM connected,usr_data"
|
" who belong to this location",
|
||||||
" WHERE connected.UsrCod NOT IN (SELECT UsrCod FROM crs_usr)"
|
"SELECT COUNT(DISTINCT connected.UsrCod),"
|
||||||
" AND connected.UsrCod=usr_data.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;
|
break;
|
||||||
case Rol_STD:
|
case Rol_STD:
|
||||||
case Rol_NET:
|
case Rol_NET:
|
||||||
|
|
|
@ -27,6 +27,8 @@
|
||||||
/********************************* Headers ***********************************/
|
/********************************* Headers ***********************************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
|
#include <mysql/mysql.h> // To access MySQL databases
|
||||||
|
|
||||||
#include "swad_action.h"
|
#include "swad_action.h"
|
||||||
#include "swad_constant.h"
|
#include "swad_constant.h"
|
||||||
#include "swad_hierarchy.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");
|
sprintf (OrderBySubQuery,"StartDate,Place");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
DB_BuildQuery ("(SELECT holidays.HldCod,holidays.PlcCod,"
|
Gbl.Hlds.Num =
|
||||||
"places.FullName as Place,HldTyp,"
|
(unsigned) DB_QuerySELECT (&mysql_res,"can not get holidays",
|
||||||
"DATE_FORMAT(holidays.StartDate,'%%Y%%m%%d') AS StartDate,"
|
"(SELECT holidays.HldCod,"
|
||||||
"DATE_FORMAT(holidays.EndDate,'%%Y%%m%%d') AS EndDate,"
|
"holidays.PlcCod,"
|
||||||
"holidays.Name"
|
"places.FullName as Place,"
|
||||||
" FROM holidays,places"
|
"holidays.HldTyp,"
|
||||||
" WHERE holidays.InsCod=%ld"
|
"DATE_FORMAT(holidays.StartDate,'%%Y%%m%%d') AS StartDate,"
|
||||||
" AND holidays.PlcCod=places.PlcCod"
|
"DATE_FORMAT(holidays.EndDate,'%%Y%%m%%d') AS EndDate,"
|
||||||
" AND places.InsCod=%ld)"
|
"holidays.Name"
|
||||||
" UNION "
|
" FROM holidays,places"
|
||||||
"(SELECT HldCod,PlcCod,'' as Place,HldTyp,"
|
" WHERE holidays.InsCod=%ld"
|
||||||
"DATE_FORMAT(StartDate,'%%Y%%m%%d') AS StartDate,"
|
" AND holidays.PlcCod=places.PlcCod"
|
||||||
"DATE_FORMAT(EndDate,'%%Y%%m%%d') AS EndDate,Name"
|
" AND places.InsCod=%ld)"
|
||||||
" FROM holidays"
|
" UNION "
|
||||||
" WHERE InsCod=%ld"
|
"(SELECT HldCod,"
|
||||||
" AND PlcCod NOT IN"
|
"PlcCod,"
|
||||||
"(SELECT DISTINCT PlcCod FROM places WHERE InsCod=%ld))"
|
"'' as Place,"
|
||||||
" ORDER BY %s",
|
"HldTyp,"
|
||||||
Gbl.CurrentIns.Ins.InsCod,
|
"DATE_FORMAT(StartDate,'%%Y%%m%%d') AS StartDate,"
|
||||||
Gbl.CurrentIns.Ins.InsCod,
|
"DATE_FORMAT(EndDate,'%%Y%%m%%d') AS EndDate,"
|
||||||
Gbl.CurrentIns.Ins.InsCod,
|
"Name"
|
||||||
Gbl.CurrentIns.Ins.InsCod,
|
" FROM holidays"
|
||||||
OrderBySubQuery);
|
" WHERE InsCod=%ld"
|
||||||
if ((Gbl.Hlds.Num = (unsigned) DB_QuerySELECT_new (&mysql_res,"can not get holidays"))) // Holidays found...
|
" 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 *****/
|
/***** Create list of holidays *****/
|
||||||
if ((Gbl.Hlds.Lst = (struct Holiday *) calloc ((size_t) Gbl.Hlds.Num,sizeof (struct Holiday))) == NULL)
|
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.");
|
Lay_ShowErrorAndExit ("Wrong code of holiday.");
|
||||||
|
|
||||||
/***** Get data of holiday from database *****/
|
/***** Get data of holiday from database *****/
|
||||||
DB_BuildQuery ("(SELECT holidays.PlcCod,places.FullName as Place,HldTyp,"
|
if (DB_QuerySELECT (&mysql_res,"can not get data of a holiday",
|
||||||
"DATE_FORMAT(holidays.StartDate,'%%Y%%m%%d'),"
|
"(SELECT holidays.PlcCod,"
|
||||||
"DATE_FORMAT(holidays.EndDate,'%%Y%%m%%d'),holidays.Name"
|
"places.FullName as Place,"
|
||||||
" FROM holidays,places"
|
"holidays.HldTyp,"
|
||||||
" WHERE holidays.HldCod=%ld"
|
"DATE_FORMAT(holidays.StartDate,'%%Y%%m%%d'),"
|
||||||
" AND holidays.InsCod=%ld"
|
"DATE_FORMAT(holidays.EndDate,'%%Y%%m%%d'),"
|
||||||
" AND holidays.PlcCod=places.PlcCod"
|
"holidays.Name"
|
||||||
" AND places.InsCod=%ld)"
|
" FROM holidays,places"
|
||||||
" UNION "
|
" WHERE holidays.HldCod=%ld"
|
||||||
"(SELECT PlcCod,'' as Place,HldTyp,"
|
" AND holidays.InsCod=%ld"
|
||||||
"DATE_FORMAT(StartDate,'%%Y%%m%%d'),"
|
" AND holidays.PlcCod=places.PlcCod"
|
||||||
"DATE_FORMAT(EndDate,'%%Y%%m%%d'),Name"
|
" AND places.InsCod=%ld)"
|
||||||
" FROM holidays"
|
" UNION "
|
||||||
" WHERE HldCod=%ld"
|
"(SELECT PlcCod,"
|
||||||
" AND InsCod=%ld"
|
"'' as Place,"
|
||||||
" AND PlcCod NOT IN"
|
"HldTyp,"
|
||||||
"(SELECT DISTINCT PlcCod FROM places WHERE InsCod=%ld))",
|
"DATE_FORMAT(StartDate,'%%Y%%m%%d'),"
|
||||||
Hld->HldCod,
|
"DATE_FORMAT(EndDate,'%%Y%%m%%d'),"
|
||||||
Gbl.CurrentIns.Ins.InsCod,
|
"Name"
|
||||||
Gbl.CurrentIns.Ins.InsCod,
|
" FROM holidays"
|
||||||
Hld->HldCod,
|
" WHERE HldCod=%ld"
|
||||||
Gbl.CurrentIns.Ins.InsCod,
|
" AND InsCod=%ld"
|
||||||
Gbl.CurrentIns.Ins.InsCod);
|
" AND PlcCod NOT IN"
|
||||||
if (DB_QuerySELECT_new (&mysql_res,"can not get data of a holiday")) // Holiday found...
|
"(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 */
|
/* Get row */
|
||||||
row = mysql_fetch_row (mysql_res);
|
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)
|
static unsigned Ind_GetTableOfCourses (MYSQL_RES **mysql_res)
|
||||||
{
|
{
|
||||||
|
unsigned NumCrss = 0; // Initialized to avoid warning
|
||||||
|
|
||||||
switch (Gbl.Scope.Current)
|
switch (Gbl.Scope.Current)
|
||||||
{
|
{
|
||||||
case Sco_SCOPE_SYS:
|
case Sco_SCOPE_SYS:
|
||||||
if (Gbl.Stat.DptCod >= 0) // 0 means another department
|
if (Gbl.Stat.DptCod >= 0) // 0 means another department
|
||||||
{
|
{
|
||||||
if (Gbl.Stat.DegTypCod > 0)
|
if (Gbl.Stat.DegTypCod > 0)
|
||||||
DB_BuildQuery ("SELECT DISTINCTROW degrees.FullName,courses.FullName,courses.CrsCod,courses.InsCrsCod"
|
NumCrss =
|
||||||
" FROM degrees,courses,crs_usr,usr_data"
|
(unsigned) DB_QuerySELECT (mysql_res,"can not get courses",
|
||||||
" WHERE degrees.DegTypCod=%ld"
|
"SELECT DISTINCTROW degrees.FullName,courses.FullName,courses.CrsCod,courses.InsCrsCod"
|
||||||
" AND degrees.DegCod=courses.DegCod"
|
" FROM degrees,courses,crs_usr,usr_data"
|
||||||
" AND courses.CrsCod=crs_usr.CrsCod"
|
" WHERE degrees.DegTypCod=%ld"
|
||||||
" AND crs_usr.Role=%u"
|
" AND degrees.DegCod=courses.DegCod"
|
||||||
" AND crs_usr.UsrCod=usr_data.UsrCod"
|
" AND courses.CrsCod=crs_usr.CrsCod"
|
||||||
" AND usr_data.DptCod=%ld"
|
" AND crs_usr.Role=%u"
|
||||||
" ORDER BY degrees.FullName,courses.FullName",
|
" AND crs_usr.UsrCod=usr_data.UsrCod"
|
||||||
Gbl.Stat.DegTypCod,
|
" AND usr_data.DptCod=%ld"
|
||||||
(unsigned) Rol_TCH,
|
" ORDER BY degrees.FullName,courses.FullName",
|
||||||
Gbl.Stat.DptCod);
|
Gbl.Stat.DegTypCod,
|
||||||
|
(unsigned) Rol_TCH,
|
||||||
|
Gbl.Stat.DptCod);
|
||||||
else
|
else
|
||||||
DB_BuildQuery ("SELECT DISTINCTROW degrees.FullName,courses.FullName,courses.CrsCod,courses.InsCrsCod"
|
NumCrss =
|
||||||
" FROM degrees,courses,crs_usr,usr_data"
|
(unsigned) DB_QuerySELECT (mysql_res,"can not get courses",
|
||||||
" WHERE degrees.DegCod=courses.DegCod"
|
"SELECT DISTINCTROW degrees.FullName,courses.FullName,courses.CrsCod,courses.InsCrsCod"
|
||||||
" AND courses.CrsCod=crs_usr.CrsCod"
|
" FROM degrees,courses,crs_usr,usr_data"
|
||||||
" AND crs_usr.Role=%u"
|
" WHERE degrees.DegCod=courses.DegCod"
|
||||||
" AND crs_usr.UsrCod=usr_data.UsrCod"
|
" AND courses.CrsCod=crs_usr.CrsCod"
|
||||||
" AND usr_data.DptCod=%ld"
|
" AND crs_usr.Role=%u"
|
||||||
" ORDER BY degrees.FullName,courses.FullName",
|
" AND crs_usr.UsrCod=usr_data.UsrCod"
|
||||||
(unsigned) Rol_TCH,
|
" AND usr_data.DptCod=%ld"
|
||||||
Gbl.Stat.DptCod);
|
" ORDER BY degrees.FullName,courses.FullName",
|
||||||
|
(unsigned) Rol_TCH,
|
||||||
|
Gbl.Stat.DptCod);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (Gbl.Stat.DegTypCod > 0)
|
if (Gbl.Stat.DegTypCod > 0)
|
||||||
DB_BuildQuery ("SELECT degrees.FullName,courses.FullName,courses.CrsCod,courses.InsCrsCod"
|
NumCrss =
|
||||||
" FROM degrees,courses"
|
(unsigned) DB_QuerySELECT (mysql_res,"can not get courses",
|
||||||
" WHERE degrees.DegTypCod=%ld"
|
"SELECT degrees.FullName,courses.FullName,courses.CrsCod,courses.InsCrsCod"
|
||||||
" AND degrees.DegCod=courses.DegCod"
|
" FROM degrees,courses"
|
||||||
" ORDER BY degrees.FullName,courses.FullName",
|
" WHERE degrees.DegTypCod=%ld"
|
||||||
Gbl.Stat.DegTypCod);
|
" AND degrees.DegCod=courses.DegCod"
|
||||||
|
" ORDER BY degrees.FullName,courses.FullName",
|
||||||
|
Gbl.Stat.DegTypCod);
|
||||||
else
|
else
|
||||||
DB_BuildQuery ("SELECT degrees.FullName,courses.FullName,courses.CrsCod,courses.InsCrsCod"
|
NumCrss =
|
||||||
" FROM degrees,courses"
|
(unsigned) DB_QuerySELECT (mysql_res,"can not get courses",
|
||||||
" WHERE degrees.DegCod=courses.DegCod"
|
"SELECT degrees.FullName,courses.FullName,courses.CrsCod,courses.InsCrsCod"
|
||||||
" ORDER BY degrees.FullName,courses.FullName");
|
" FROM degrees,courses"
|
||||||
|
" WHERE degrees.DegCod=courses.DegCod"
|
||||||
|
" ORDER BY degrees.FullName,courses.FullName");
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case Sco_SCOPE_CTY:
|
case Sco_SCOPE_CTY:
|
||||||
if (Gbl.Stat.DptCod >= 0) // 0 means another department
|
if (Gbl.Stat.DptCod >= 0) // 0 means another department
|
||||||
DB_BuildQuery ("SELECT DISTINCTROW degrees.FullName,courses.FullName,courses.CrsCod,courses.InsCrsCod"
|
NumCrss =
|
||||||
" FROM institutions,centres,degrees,courses,crs_usr,usr_data"
|
(unsigned) DB_QuerySELECT (mysql_res,"can not get courses",
|
||||||
" WHERE institutions.CtyCod=%ld"
|
"SELECT DISTINCTROW degrees.FullName,courses.FullName,courses.CrsCod,courses.InsCrsCod"
|
||||||
" AND institutions.InsCod=centres.InsCod"
|
" FROM institutions,centres,degrees,courses,crs_usr,usr_data"
|
||||||
" AND centres.CtrCod=degrees.CtrCod"
|
" WHERE institutions.CtyCod=%ld"
|
||||||
" AND degrees.DegCod=courses.DegCod"
|
" AND institutions.InsCod=centres.InsCod"
|
||||||
" AND courses.CrsCod=crs_usr.CrsCod"
|
" AND centres.CtrCod=degrees.CtrCod"
|
||||||
" AND crs_usr.Role=%u"
|
" AND degrees.DegCod=courses.DegCod"
|
||||||
" AND crs_usr.UsrCod=usr_data.UsrCod"
|
" AND courses.CrsCod=crs_usr.CrsCod"
|
||||||
" AND usr_data.DptCod=%ld"
|
" AND crs_usr.Role=%u"
|
||||||
" ORDER BY degrees.FullName,courses.FullName",
|
" AND crs_usr.UsrCod=usr_data.UsrCod"
|
||||||
Gbl.CurrentCty.Cty.CtyCod,
|
" AND usr_data.DptCod=%ld"
|
||||||
(unsigned) Rol_TCH,
|
" ORDER BY degrees.FullName,courses.FullName",
|
||||||
Gbl.Stat.DptCod);
|
Gbl.CurrentCty.Cty.CtyCod,
|
||||||
|
(unsigned) Rol_TCH,
|
||||||
|
Gbl.Stat.DptCod);
|
||||||
else
|
else
|
||||||
DB_BuildQuery ("SELECT degrees.FullName,courses.FullName,courses.CrsCod,courses.InsCrsCod"
|
NumCrss =
|
||||||
" FROM institutions,centres,degrees,courses"
|
(unsigned) DB_QuerySELECT (mysql_res,"can not get courses",
|
||||||
" WHERE institutions.CtyCod=%ld"
|
"SELECT degrees.FullName,courses.FullName,courses.CrsCod,courses.InsCrsCod"
|
||||||
" AND institutions.InsCod=centres.InsCod"
|
" FROM institutions,centres,degrees,courses"
|
||||||
" AND centres.CtrCod=degrees.CtrCod"
|
" WHERE institutions.CtyCod=%ld"
|
||||||
" AND degrees.DegCod=courses.DegCod"
|
" AND institutions.InsCod=centres.InsCod"
|
||||||
" ORDER BY degrees.FullName,courses.FullName",
|
" AND centres.CtrCod=degrees.CtrCod"
|
||||||
Gbl.CurrentCty.Cty.CtyCod);
|
" AND degrees.DegCod=courses.DegCod"
|
||||||
|
" ORDER BY degrees.FullName,courses.FullName",
|
||||||
|
Gbl.CurrentCty.Cty.CtyCod);
|
||||||
break;
|
break;
|
||||||
case Sco_SCOPE_INS:
|
case Sco_SCOPE_INS:
|
||||||
if (Gbl.Stat.DptCod >= 0) // 0 means another department
|
if (Gbl.Stat.DptCod >= 0) // 0 means another department
|
||||||
DB_BuildQuery ("SELECT DISTINCTROW degrees.FullName,courses.FullName,courses.CrsCod,courses.InsCrsCod"
|
NumCrss =
|
||||||
" FROM centres,degrees,courses,crs_usr,usr_data"
|
(unsigned) DB_QuerySELECT (mysql_res,"can not get courses",
|
||||||
" WHERE centres.InsCod=%ld"
|
"SELECT DISTINCTROW degrees.FullName,courses.FullName,courses.CrsCod,courses.InsCrsCod"
|
||||||
" AND centres.CtrCod=degrees.CtrCod"
|
" FROM centres,degrees,courses,crs_usr,usr_data"
|
||||||
" AND degrees.DegCod=courses.DegCod"
|
" WHERE centres.InsCod=%ld"
|
||||||
" AND courses.CrsCod=crs_usr.CrsCod"
|
" AND centres.CtrCod=degrees.CtrCod"
|
||||||
" AND crs_usr.Role=%u"
|
" AND degrees.DegCod=courses.DegCod"
|
||||||
" AND crs_usr.UsrCod=usr_data.UsrCod"
|
" AND courses.CrsCod=crs_usr.CrsCod"
|
||||||
" AND usr_data.DptCod=%ld"
|
" AND crs_usr.Role=%u"
|
||||||
" ORDER BY degrees.FullName,courses.FullName",
|
" AND crs_usr.UsrCod=usr_data.UsrCod"
|
||||||
Gbl.CurrentIns.Ins.InsCod,
|
" AND usr_data.DptCod=%ld"
|
||||||
(unsigned) Rol_TCH,
|
" ORDER BY degrees.FullName,courses.FullName",
|
||||||
Gbl.Stat.DptCod);
|
Gbl.CurrentIns.Ins.InsCod,
|
||||||
|
(unsigned) Rol_TCH,
|
||||||
|
Gbl.Stat.DptCod);
|
||||||
else
|
else
|
||||||
DB_BuildQuery ("SELECT degrees.FullName,courses.FullName,courses.CrsCod,courses.InsCrsCod"
|
NumCrss =
|
||||||
" FROM centres,degrees,courses"
|
(unsigned) DB_QuerySELECT (mysql_res,"can not get courses",
|
||||||
" WHERE centres.InsCod=%ld"
|
"SELECT degrees.FullName,courses.FullName,courses.CrsCod,courses.InsCrsCod"
|
||||||
" AND centres.CtrCod=degrees.CtrCod"
|
" FROM centres,degrees,courses"
|
||||||
" AND degrees.DegCod=courses.DegCod"
|
" WHERE centres.InsCod=%ld"
|
||||||
" ORDER BY degrees.FullName,courses.FullName",
|
" AND centres.CtrCod=degrees.CtrCod"
|
||||||
Gbl.CurrentIns.Ins.InsCod);
|
" AND degrees.DegCod=courses.DegCod"
|
||||||
|
" ORDER BY degrees.FullName,courses.FullName",
|
||||||
|
Gbl.CurrentIns.Ins.InsCod);
|
||||||
break;
|
break;
|
||||||
case Sco_SCOPE_CTR:
|
case Sco_SCOPE_CTR:
|
||||||
if (Gbl.Stat.DptCod >= 0) // 0 means another department
|
if (Gbl.Stat.DptCod >= 0) // 0 means another department
|
||||||
DB_BuildQuery ("SELECT DISTINCTROW degrees.FullName,courses.FullName,courses.CrsCod,courses.InsCrsCod"
|
NumCrss =
|
||||||
" FROM degrees,courses,crs_usr,usr_data"
|
(unsigned) DB_QuerySELECT (mysql_res,"can not get courses",
|
||||||
" WHERE degrees.CtrCod=%ld"
|
"SELECT DISTINCTROW degrees.FullName,courses.FullName,courses.CrsCod,courses.InsCrsCod"
|
||||||
" AND degrees.DegCod=courses.DegCod"
|
" FROM degrees,courses,crs_usr,usr_data"
|
||||||
" AND courses.CrsCod=crs_usr.CrsCod"
|
" WHERE degrees.CtrCod=%ld"
|
||||||
" AND crs_usr.Role=%u"
|
" AND degrees.DegCod=courses.DegCod"
|
||||||
" AND crs_usr.UsrCod=usr_data.UsrCod"
|
" AND courses.CrsCod=crs_usr.CrsCod"
|
||||||
" AND usr_data.DptCod=%ld"
|
" AND crs_usr.Role=%u"
|
||||||
" ORDER BY degrees.FullName,courses.FullName",
|
" AND crs_usr.UsrCod=usr_data.UsrCod"
|
||||||
Gbl.CurrentCtr.Ctr.CtrCod,
|
" AND usr_data.DptCod=%ld"
|
||||||
(unsigned) Rol_TCH,
|
" ORDER BY degrees.FullName,courses.FullName",
|
||||||
Gbl.Stat.DptCod);
|
Gbl.CurrentCtr.Ctr.CtrCod,
|
||||||
|
(unsigned) Rol_TCH,
|
||||||
|
Gbl.Stat.DptCod);
|
||||||
else
|
else
|
||||||
DB_BuildQuery ("SELECT degrees.FullName,courses.FullName,courses.CrsCod,courses.InsCrsCod"
|
NumCrss =
|
||||||
" FROM degrees,courses"
|
(unsigned) DB_QuerySELECT (mysql_res,"can not get courses",
|
||||||
" WHERE degrees.CtrCod=%ld"
|
"SELECT degrees.FullName,courses.FullName,courses.CrsCod,courses.InsCrsCod"
|
||||||
" AND degrees.DegCod=courses.DegCod"
|
" FROM degrees,courses"
|
||||||
" ORDER BY degrees.FullName,courses.FullName",
|
" WHERE degrees.CtrCod=%ld"
|
||||||
Gbl.CurrentCtr.Ctr.CtrCod);
|
" AND degrees.DegCod=courses.DegCod"
|
||||||
|
" ORDER BY degrees.FullName,courses.FullName",
|
||||||
|
Gbl.CurrentCtr.Ctr.CtrCod);
|
||||||
break;
|
break;
|
||||||
case Sco_SCOPE_DEG:
|
case Sco_SCOPE_DEG:
|
||||||
if (Gbl.Stat.DptCod >= 0) // 0 means another department
|
if (Gbl.Stat.DptCod >= 0) // 0 means another department
|
||||||
DB_BuildQuery ("SELECT DISTINCTROW degrees.FullName,courses.FullName,courses.CrsCod,courses.InsCrsCod"
|
NumCrss =
|
||||||
" FROM degrees,courses,crs_usr,usr_data"
|
(unsigned) DB_QuerySELECT (mysql_res,"can not get courses",
|
||||||
" WHERE degrees.DegCod=%ld"
|
"SELECT DISTINCTROW degrees.FullName,courses.FullName,courses.CrsCod,courses.InsCrsCod"
|
||||||
" AND degrees.DegCod=courses.DegCod"
|
" FROM degrees,courses,crs_usr,usr_data"
|
||||||
" AND courses.CrsCod=crs_usr.CrsCod"
|
" WHERE degrees.DegCod=%ld"
|
||||||
" AND crs_usr.Role=%u"
|
" AND degrees.DegCod=courses.DegCod"
|
||||||
" AND crs_usr.UsrCod=usr_data.UsrCod"
|
" AND courses.CrsCod=crs_usr.CrsCod"
|
||||||
" AND usr_data.DptCod=%ld"
|
" AND crs_usr.Role=%u"
|
||||||
" ORDER BY degrees.FullName,courses.FullName",
|
" AND crs_usr.UsrCod=usr_data.UsrCod"
|
||||||
Gbl.CurrentDeg.Deg.DegCod,
|
" AND usr_data.DptCod=%ld"
|
||||||
(unsigned) Rol_TCH,
|
" ORDER BY degrees.FullName,courses.FullName",
|
||||||
Gbl.Stat.DptCod);
|
Gbl.CurrentDeg.Deg.DegCod,
|
||||||
|
(unsigned) Rol_TCH,
|
||||||
|
Gbl.Stat.DptCod);
|
||||||
else
|
else
|
||||||
DB_BuildQuery ("SELECT degrees.FullName,courses.FullName,courses.CrsCod,courses.InsCrsCod"
|
NumCrss =
|
||||||
" FROM degrees,courses"
|
(unsigned) DB_QuerySELECT (mysql_res,"can not get courses",
|
||||||
" WHERE degrees.DegCod=%ld"
|
"SELECT degrees.FullName,courses.FullName,courses.CrsCod,courses.InsCrsCod"
|
||||||
" AND degrees.DegCod=courses.DegCod"
|
" FROM degrees,courses"
|
||||||
" ORDER BY degrees.FullName,courses.FullName",
|
" WHERE degrees.DegCod=%ld"
|
||||||
Gbl.CurrentDeg.Deg.DegCod);
|
" AND degrees.DegCod=courses.DegCod"
|
||||||
|
" ORDER BY degrees.FullName,courses.FullName",
|
||||||
|
Gbl.CurrentDeg.Deg.DegCod);
|
||||||
break;
|
break;
|
||||||
case Sco_SCOPE_CRS:
|
case Sco_SCOPE_CRS:
|
||||||
if (Gbl.Stat.DptCod >= 0) // 0 means another department
|
if (Gbl.Stat.DptCod >= 0) // 0 means another department
|
||||||
DB_BuildQuery ("SELECT DISTINCTROW degrees.FullName,courses.FullName,courses.CrsCod,courses.InsCrsCod"
|
NumCrss =
|
||||||
" FROM degrees,courses,crs_usr,usr_data"
|
(unsigned) DB_QuerySELECT (mysql_res,"can not get courses",
|
||||||
" WHERE courses.CrsCod=%ld"
|
"SELECT DISTINCTROW degrees.FullName,courses.FullName,courses.CrsCod,courses.InsCrsCod"
|
||||||
" AND degrees.DegCod=courses.DegCod"
|
" FROM degrees,courses,crs_usr,usr_data"
|
||||||
" AND courses.CrsCod=crs_usr.CrsCod"
|
" WHERE courses.CrsCod=%ld"
|
||||||
" AND crs_usr.CrsCod=%ld"
|
" AND degrees.DegCod=courses.DegCod"
|
||||||
" AND crs_usr.Role=%u"
|
" AND courses.CrsCod=crs_usr.CrsCod"
|
||||||
" AND crs_usr.UsrCod=usr_data.UsrCod"
|
" AND crs_usr.CrsCod=%ld"
|
||||||
" AND usr_data.DptCod=%ld"
|
" AND crs_usr.Role=%u"
|
||||||
" ORDER BY degrees.FullName,courses.FullName",
|
" AND crs_usr.UsrCod=usr_data.UsrCod"
|
||||||
Gbl.CurrentCrs.Crs.CrsCod,
|
" AND usr_data.DptCod=%ld"
|
||||||
Gbl.CurrentCrs.Crs.CrsCod,
|
" ORDER BY degrees.FullName,courses.FullName",
|
||||||
(unsigned) Rol_TCH,
|
Gbl.CurrentCrs.Crs.CrsCod,
|
||||||
Gbl.Stat.DptCod);
|
Gbl.CurrentCrs.Crs.CrsCod,
|
||||||
|
(unsigned) Rol_TCH,
|
||||||
|
Gbl.Stat.DptCod);
|
||||||
else
|
else
|
||||||
DB_BuildQuery ("SELECT degrees.FullName,courses.FullName,courses.CrsCod,courses.InsCrsCod"
|
NumCrss =
|
||||||
" FROM degrees,courses"
|
(unsigned) DB_QuerySELECT (mysql_res,"can not get courses",
|
||||||
" WHERE courses.CrsCod=%ld"
|
"SELECT degrees.FullName,courses.FullName,courses.CrsCod,courses.InsCrsCod"
|
||||||
" AND degrees.DegCod=courses.DegCod"
|
" FROM degrees,courses"
|
||||||
" ORDER BY degrees.FullName,courses.FullName",
|
" WHERE courses.CrsCod=%ld"
|
||||||
Gbl.CurrentCrs.Crs.CrsCod);
|
" AND degrees.DegCod=courses.DegCod"
|
||||||
|
" ORDER BY degrees.FullName,courses.FullName",
|
||||||
|
Gbl.CurrentCrs.Crs.CrsCod);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
Lay_WrongScopeExit ();
|
Lay_WrongScopeExit ();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
return (unsigned) DB_QuerySELECT_new (mysql_res,"can not get courses");
|
return NumCrss;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
Loading…
Reference in New Issue