Version 20.100.2: Sep 11, 2021 Queries moved to module swad_institution_database.

This commit is contained in:
acanas 2021-09-11 13:49:26 +02:00
parent 2c8264ae0b
commit c34477af92
6 changed files with 1202 additions and 1225 deletions

View File

@ -602,13 +602,14 @@ TODO: FIX BUG, URGENT! En las fechas como par
TODO: En las encuestas, que los estudiantes no puedan ver los resultados hasta que no finalice el plazo.
*/
#define Log_PLATFORM_VERSION "SWAD 20.100.1 (2021-09-10)"
#define Log_PLATFORM_VERSION "SWAD 20.100.2 (2021-09-11)"
#define CSS_FILE "swad20.45.css"
#define JS_FILE "swad20.69.1.js"
/*
TODO: Rename CENTRE to CENTER in help wiki.
TODO: Rename ASSESSMENT.Announcements to ASSESSMENT.Calls_for_exams
Version 20.100.2: Sep 11, 2021 Queries moved to module swad_institution_database. (314919 lines)
Version 20.100.1: Sep 10, 2021 Queries moved to module swad_institution_database. (314941 lines)
Version 20.100: Sep 10, 2021 New module swad_figure_database for database queries related to figures. (314940 lines)
Version 20.99: Sep 10, 2021 Queries moved to module swad_institution_database. (314758 lines)

File diff suppressed because it is too large Load Diff

View File

@ -12508,3 +12508,904 @@ Act_Action_t Brw_GetActionContract (void)
{
return Brw_ActContractFolder[Gbl.FileBrowser.Type];
}
/*****************************************************************************/
/*********************** Get the size of a file zone *************************/
/*****************************************************************************/
void Brw_DB_GetSizeOfFileZone (MYSQL_RES **mysql_res,
Brw_FileBrowser_t FileBrowser)
{
switch (Gbl.Scope.Current)
{
/* Scope = the whole platform */
case HieLvl_SYS:
switch (FileBrowser)
{
case Brw_UNKNOWN:
DB_QuerySELECT (mysql_res,"can not get size of a file browser",
"SELECT COUNT(DISTINCT CrsCod)," // row[0]
"COUNT(DISTINCT GrpCod)-1," // row[1]
"-1," // row[2]
"MAX(NumLevels)," // row[3]
"SUM(NumFolders)," // row[4]
"SUM(NumFiles)," // row[5]
"SUM(TotalSize)" // row[6]
" FROM "
"("
"SELECT Cod AS CrsCod,"
"-1 AS GrpCod,"
"NumLevels,"
"NumFolders,"
"NumFiles,"
"TotalSize"
" FROM brw_sizes"
" WHERE FileBrowser IN (%u,%u,%u,%u,%u,%u)"
" UNION "
"SELECT grp_types.CrsCod,"
"brw_sizes.Cod AS GrpCod,"
"brw_sizes.NumLevels,"
"brw_sizes.NumFolders,"
"brw_sizes.NumFiles,"
"brw_sizes.TotalSize"
" FROM grp_types,"
"grp_groups,"
"brw_sizes"
" WHERE grp_types.GrpTypCod=grp_groups.GrpTypCod"
" AND grp_groups.GrpCod=brw_sizes.Cod"
" AND brw_sizes.FileBrowser IN (%u,%u,%u,%u)"
") AS sizes",
(unsigned) Brw_ADMI_DOC_CRS,
(unsigned) Brw_ADMI_TCH_CRS,
(unsigned) Brw_ADMI_SHR_CRS,
(unsigned) Brw_ADMI_ASG_USR,
(unsigned) Brw_ADMI_WRK_USR,
(unsigned) Brw_ADMI_MRK_CRS,
(unsigned) Brw_ADMI_DOC_GRP,
(unsigned) Brw_ADMI_TCH_GRP,
(unsigned) Brw_ADMI_SHR_GRP,
(unsigned) Brw_ADMI_MRK_GRP);
break;
case Brw_ADMI_DOC_CRS:
case Brw_ADMI_TCH_CRS:
case Brw_ADMI_SHR_CRS:
case Brw_ADMI_MRK_CRS:
DB_QuerySELECT (mysql_res,"can not get size of a file browser",
"SELECT COUNT(DISTINCT Cod)," // row[0]
"-1," // row[1]
"-1," // row[2]
"MAX(NumLevels)," // row[3]
"SUM(NumFolders)," // row[4]
"SUM(NumFiles)," // row[5]
"SUM(TotalSize)" // row[6]
" FROM brw_sizes"
" WHERE FileBrowser=%u",
(unsigned) FileBrowser);
break;
case Brw_ADMI_DOC_GRP:
case Brw_ADMI_TCH_GRP:
case Brw_ADMI_SHR_GRP:
case Brw_ADMI_MRK_GRP:
DB_QuerySELECT (mysql_res,"can not get size of a file browser",
"SELECT COUNT(DISTINCT grp_types.CrsCod)," // row[0]
"COUNT(DISTINCT brw_sizes.Cod)," // row[1]
"-1," // row[2]
"MAX(brw_sizes.NumLevels)," // row[3]
"SUM(brw_sizes.NumFolders)," // row[4]
"SUM(brw_sizes.NumFiles)," // row[5]
"SUM(brw_sizes.TotalSize)" // row[6]
" FROM grp_types,"
"grp_groups,"
"brw_sizes"
" WHERE grp_types.GrpTypCod=grp_groups.GrpTypCod"
" AND grp_groups.GrpCod=brw_sizes.Cod"
" AND brw_sizes.FileBrowser=%u",
(unsigned) FileBrowser);
break;
case Brw_ADMI_ASG_USR:
case Brw_ADMI_WRK_USR:
DB_QuerySELECT (mysql_res,"can not get size of a file browser",
"SELECT COUNT(DISTINCT Cod)," // row[0]
"-1," // row[1]
"COUNT(DISTINCT ZoneUsrCod)," // row[2]
"MAX(NumLevels)," // row[3]
"SUM(NumFolders)," // row[4]
"SUM(NumFiles)," // row[5]
"SUM(TotalSize)" // row[6]
" FROM brw_sizes"
" WHERE FileBrowser=%u",
(unsigned) FileBrowser);
break;
case Brw_ADMI_BRF_USR:
DB_QuerySELECT (mysql_res,"can not get size of a file browser",
"SELECT -1," // row[0]
"-1," // row[1]
"COUNT(DISTINCT ZoneUsrCod)," // row[2]
"MAX(NumLevels)," // row[3]
"SUM(NumFolders)," // row[4]
"SUM(NumFiles)," // row[5]
"SUM(TotalSize)" // row[6]
" FROM brw_sizes"
" WHERE FileBrowser=%u",
(unsigned) FileBrowser);
break;
default:
Err_WrongFileBrowserExit ();
break;
}
break;
/* Scope = the current country */
case HieLvl_CTY:
switch (FileBrowser)
{
case Brw_UNKNOWN:
DB_QuerySELECT (mysql_res,"can not get size of a file browser",
"SELECT COUNT(DISTINCT CrsCod)," // row[0]
"COUNT(DISTINCT GrpCod)-1," // row[1]
"-1," // row[2]
"MAX(NumLevels)," // row[3]
"SUM(NumFolders)," // row[4]
"SUM(NumFiles)," // row[5]
"SUM(TotalSize)" // row[6]
" FROM "
"("
"SELECT brw_sizes.Cod AS CrsCod,"
"-1 AS GrpCod," // Course zones
"brw_sizes.NumLevels,"
"brw_sizes.NumFolders,"
"brw_sizes.NumFiles,"
"brw_sizes.TotalSize"
" FROM ins_instits,"
"ctr_centers,"
"deg_degrees,"
"crs_courses,"
"brw_sizes"
" WHERE ins_instits.CtyCod=%ld"
" AND ins_instits.InsCod=ctr_centers.InsCod"
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
" AND deg_degrees.DegCod=crs_courses.DegCod"
" AND crs_courses.CrsCod=brw_sizes.Cod"
" AND brw_sizes.FileBrowser IN (%u,%u,%u,%u,%u,%u)"
" UNION "
"SELECT grp_types.CrsCod,"
"brw_sizes.Cod AS GrpCod," // Group zones
"brw_sizes.NumLevels,"
"brw_sizes.NumFolders,"
"brw_sizes.NumFiles,"
"brw_sizes.TotalSize"
" FROM ins_instits,"
"ctr_centers,"
"deg_degrees,"
"crs_courses,"
"grp_types,"
"grp_groups,"
"brw_sizes"
" WHERE ins_instits.CtyCod=%ld"
" AND ins_instits.InsCod=ctr_centers.InsCod"
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
" AND deg_degrees.DegCod=crs_courses.DegCod"
" AND crs_courses.CrsCod=grp_types.CrsCod"
" AND grp_types.GrpTypCod=grp_groups.GrpTypCod"
" AND grp_groups.GrpCod=brw_sizes.Cod"
" AND brw_sizes.FileBrowser IN (%u,%u,%u,%u)"
") AS sizes",
Gbl.Hierarchy.Cty.CtyCod,
(unsigned) Brw_ADMI_DOC_CRS,
(unsigned) Brw_ADMI_TCH_CRS,
(unsigned) Brw_ADMI_SHR_CRS,
(unsigned) Brw_ADMI_ASG_USR,
(unsigned) Brw_ADMI_WRK_USR,
(unsigned) Brw_ADMI_MRK_CRS,
Gbl.Hierarchy.Cty.CtyCod,
(unsigned) Brw_ADMI_DOC_GRP,
(unsigned) Brw_ADMI_TCH_GRP,
(unsigned) Brw_ADMI_SHR_GRP,
(unsigned) Brw_ADMI_MRK_GRP);
break;
case Brw_ADMI_DOC_CRS:
case Brw_ADMI_TCH_CRS:
case Brw_ADMI_SHR_CRS:
case Brw_ADMI_MRK_CRS:
DB_QuerySELECT (mysql_res,"can not get size of a file browser",
"SELECT COUNT(DISTINCT brw_sizes.Cod)," // row[0]
"-1," // row[1]
"-1," // row[2]
"MAX(brw_sizes.NumLevels)," // row[3]
"SUM(brw_sizes.NumFolders)," // row[4]
"SUM(brw_sizes.NumFiles)," // row[5]
"SUM(brw_sizes.TotalSize)" // row[6]
" FROM ins_instits,"
"ctr_centers,"
"deg_degrees,"
"crs_courses,"
"brw_sizes"
" WHERE ins_instits.CtyCod=%ld"
" AND ins_instits.InsCod=ctr_centers.InsCod"
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
" AND deg_degrees.DegCod=crs_courses.DegCod"
" AND crs_courses.CrsCod=brw_sizes.Cod"
" AND brw_sizes.FileBrowser=%u",
Gbl.Hierarchy.Cty.CtyCod,
(unsigned) FileBrowser);
break;
case Brw_ADMI_DOC_GRP:
case Brw_ADMI_TCH_GRP:
case Brw_ADMI_SHR_GRP:
case Brw_ADMI_MRK_GRP:
DB_QuerySELECT (mysql_res,"can not get size of a file browser",
"SELECT COUNT(DISTINCT grp_types.CrsCod)," // row[0]
"COUNT(DISTINCT brw_sizes.Cod)," // row[1]
"-1," // row[2]
"MAX(brw_sizes.NumLevels)," // row[3]
"SUM(brw_sizes.NumFolders)," // row[4]
"SUM(brw_sizes.NumFiles)," // row[5]
"SUM(brw_sizes.TotalSize)" // row[6]
" FROM ins_instits,"
"ctr_centers,"
"deg_degrees,"
"crs_courses,"
"grp_types,"
"grp_groups,"
"brw_sizes"
" WHERE ins_instits.CtyCod=%ld"
" AND ins_instits.InsCod=ctr_centers.InsCod"
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
" AND deg_degrees.DegCod=crs_courses.DegCod"
" AND crs_courses.CrsCod=grp_types.CrsCod"
" AND grp_types.GrpTypCod=grp_groups.GrpTypCod"
" AND grp_groups.GrpCod=brw_sizes.Cod"
" AND brw_sizes.FileBrowser=%u",
Gbl.Hierarchy.Cty.CtyCod,
(unsigned) FileBrowser);
break;
case Brw_ADMI_ASG_USR:
case Brw_ADMI_WRK_USR:
DB_QuerySELECT (mysql_res,"can not get size of a file browser",
"SELECT COUNT(DISTINCT brw_sizes.Cod)," // row[0]
"-1," // row[1]
"COUNT(DISTINCT brw_sizes.ZoneUsrCod)," // row[2]
"MAX(brw_sizes.NumLevels)," // row[3]
"SUM(brw_sizes.NumFolders)," // row[4]
"SUM(brw_sizes.NumFiles)," // row[5]
"SUM(brw_sizes.TotalSize)" // row[6]
" FROM ins_instits,"
"ctr_centers,"
"deg_degrees,"
"crs_courses,"
"brw_sizes"
" WHERE ins_instits.CtyCod=%ld"
" AND ins_instits.InsCod=ctr_centers.InsCod"
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
" AND deg_degrees.DegCod=crs_courses.DegCod"
" AND crs_courses.CrsCod=brw_sizes.Cod"
" AND brw_sizes.FileBrowser=%u",
Gbl.Hierarchy.Cty.CtyCod,
(unsigned) FileBrowser);
break;
case Brw_ADMI_BRF_USR:
DB_QuerySELECT (mysql_res,"can not get size of a file browser",
"SELECT -1," // row[0]
"-1," // row[1]
"COUNT(DISTINCT brw_sizes.ZoneUsrCod)," // row[2]
"MAX(brw_sizes.NumLevels)," // row[3]
"SUM(brw_sizes.NumFolders)," // row[4]
"SUM(brw_sizes.NumFiles)," // row[5]
"SUM(brw_sizes.TotalSize)" // row[6]
" FROM ins_instits,"
"ctr_centers,"
"deg_degrees,"
"crs_courses,"
"crs_users,"
"brw_sizes"
" WHERE ins_instits.CtyCod=%ld"
" AND ins_instits.InsCod=ctr_centers.InsCod"
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
" AND deg_degrees.DegCod=crs_courses.DegCod"
" AND crs_courses.CrsCod=crs_users.CrsCod"
" AND crs_users.UsrCod=brw_sizes.ZoneUsrCod"
" AND brw_sizes.FileBrowser=%u",
Gbl.Hierarchy.Cty.CtyCod,
(unsigned) FileBrowser);
break;
default:
Err_WrongFileBrowserExit ();
break;
}
break;
/* Scope = the current institution */
case HieLvl_INS:
switch (FileBrowser)
{
case Brw_UNKNOWN:
DB_QuerySELECT (mysql_res,"can not get size of a file browser",
"SELECT COUNT(DISTINCT CrsCod)," // row[0]
"COUNT(DISTINCT GrpCod)-1," // row[1]
"-1," // row[2]
"MAX(NumLevels)," // row[3]
"SUM(NumFolders)," // row[4]
"SUM(NumFiles)," // row[5]
"SUM(TotalSize)" // row[6]
" FROM "
"("
"SELECT brw_sizes.Cod AS CrsCod,"
"-1 AS GrpCod," // Course zones
"brw_sizes.NumLevels,"
"brw_sizes.NumFolders,"
"brw_sizes.NumFiles,"
"brw_sizes.TotalSize"
" FROM ctr_centers,"
"deg_degrees,"
"crs_courses,"
"brw_sizes"
" WHERE ctr_centers.InsCod=%ld"
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
" AND deg_degrees.DegCod=crs_courses.DegCod"
" AND crs_courses.CrsCod=brw_sizes.Cod"
" AND brw_sizes.FileBrowser IN (%u,%u,%u,%u,%u,%u)"
" UNION "
"SELECT grp_types.CrsCod,"
"brw_sizes.Cod AS GrpCod," // Group zones
"brw_sizes.NumLevels,"
"brw_sizes.NumFolders,"
"brw_sizes.NumFiles,"
"brw_sizes.TotalSize"
" FROM ctr_centers,"
"deg_degrees,"
"crs_courses,"
"grp_types,"
"grp_groups,"
"brw_sizes"
" WHERE ctr_centers.InsCod=%ld"
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
" AND deg_degrees.DegCod=crs_courses.DegCod"
" AND crs_courses.CrsCod=grp_types.CrsCod"
" AND grp_types.GrpTypCod=grp_groups.GrpTypCod"
" AND grp_groups.GrpCod=brw_sizes.Cod"
" AND brw_sizes.FileBrowser IN (%u,%u,%u,%u)"
") AS sizes",
Gbl.Hierarchy.Ins.InsCod,
(unsigned) Brw_ADMI_DOC_CRS,
(unsigned) Brw_ADMI_TCH_CRS,
(unsigned) Brw_ADMI_SHR_CRS,
(unsigned) Brw_ADMI_ASG_USR,
(unsigned) Brw_ADMI_WRK_USR,
(unsigned) Brw_ADMI_MRK_CRS,
Gbl.Hierarchy.Ins.InsCod,
(unsigned) Brw_ADMI_DOC_GRP,
(unsigned) Brw_ADMI_TCH_GRP,
(unsigned) Brw_ADMI_SHR_GRP,
(unsigned) Brw_ADMI_MRK_GRP);
break;
case Brw_ADMI_DOC_CRS:
case Brw_ADMI_TCH_CRS:
case Brw_ADMI_SHR_CRS:
case Brw_ADMI_MRK_CRS:
DB_QuerySELECT (mysql_res,"can not get size of a file browser",
"SELECT COUNT(DISTINCT brw_sizes.Cod)," // row[0]
"-1," // row[1]
"-1," // row[2]
"MAX(brw_sizes.NumLevels)," // row[3]
"SUM(brw_sizes.NumFolders)," // row[4]
"SUM(brw_sizes.NumFiles)," // row[5]
"SUM(brw_sizes.TotalSize)" // row[6]
" FROM ctr_centers,"
"deg_degrees,"
"crs_courses,"
"brw_sizes"
" WHERE ctr_centers.InsCod=%ld"
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
" AND deg_degrees.DegCod=crs_courses.DegCod"
" AND crs_courses.CrsCod=brw_sizes.Cod"
" AND brw_sizes.FileBrowser=%u",
Gbl.Hierarchy.Ins.InsCod,
(unsigned) FileBrowser);
break;
case Brw_ADMI_DOC_GRP:
case Brw_ADMI_TCH_GRP:
case Brw_ADMI_SHR_GRP:
case Brw_ADMI_MRK_GRP:
DB_QuerySELECT (mysql_res,"can not get size of a file browser",
"SELECT COUNT(DISTINCT grp_types.CrsCod)," // row[0]
"COUNT(DISTINCT brw_sizes.Cod)," // row[1]
"-1," // row[2]
"MAX(brw_sizes.NumLevels)," // row[3]
"SUM(brw_sizes.NumFolders)," // row[4]
"SUM(brw_sizes.NumFiles)," // row[5]
"SUM(brw_sizes.TotalSize)" // row[6]
" FROM ctr_centers,"
"deg_degrees,"
"crs_courses,"
"grp_types,"
"grp_groups,"
"brw_sizes"
" WHERE ctr_centers.InsCod=%ld"
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
" AND deg_degrees.DegCod=crs_courses.DegCod"
" AND crs_courses.CrsCod=grp_types.CrsCod"
" AND grp_types.GrpTypCod=grp_groups.GrpTypCod"
" AND grp_groups.GrpCod=brw_sizes.Cod"
" AND brw_sizes.FileBrowser=%u",
Gbl.Hierarchy.Ins.InsCod,
(unsigned) FileBrowser);
break;
case Brw_ADMI_ASG_USR:
case Brw_ADMI_WRK_USR:
DB_QuerySELECT (mysql_res,"can not get size of a file browser",
"SELECT COUNT(DISTINCT brw_sizes.Cod)," // row[0]
"-1," // row[1]
"COUNT(DISTINCT brw_sizes.ZoneUsrCod)," // row[2]
"MAX(brw_sizes.NumLevels)," // row[3]
"SUM(brw_sizes.NumFolders)," // row[4]
"SUM(brw_sizes.NumFiles)," // row[5]
"SUM(brw_sizes.TotalSize)" // row[6]
" FROM ctr_centers,"
"deg_degrees,"
"crs_courses,"
"brw_sizes"
" WHERE ctr_centers.InsCod=%ld"
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
" AND deg_degrees.DegCod=crs_courses.DegCod"
" AND crs_courses.CrsCod=brw_sizes.Cod"
" AND brw_sizes.FileBrowser=%u",
Gbl.Hierarchy.Ins.InsCod,
(unsigned) FileBrowser);
break;
case Brw_ADMI_BRF_USR:
DB_QuerySELECT (mysql_res,"can not get size of a file browser",
"SELECT -1," // row[0]
"-1," // row[1]
"COUNT(DISTINCT brw_sizes.ZoneUsrCod)," // row[2]
"MAX(brw_sizes.NumLevels)," // row[3]
"SUM(brw_sizes.NumFolders)," // row[4]
"SUM(brw_sizes.NumFiles)," // row[5]
"SUM(brw_sizes.TotalSize)" // row[6]
" FROM ctr_centers,"
"deg_degrees,"
"crs_courses,"
"crs_users,"
"brw_sizes"
" WHERE ctr_centers.InsCod=%ld"
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
" AND deg_degrees.DegCod=crs_courses.DegCod"
" AND crs_courses.CrsCod=crs_users.CrsCod"
" AND crs_users.UsrCod=brw_sizes.ZoneUsrCod"
" AND brw_sizes.FileBrowser=%u",
Gbl.Hierarchy.Ins.InsCod,
(unsigned) FileBrowser);
break;
default:
Err_WrongFileBrowserExit ();
break;
}
break;
/* Scope = the current center */
case HieLvl_CTR:
switch (FileBrowser)
{
case Brw_UNKNOWN:
DB_QuerySELECT (mysql_res,"can not get size of a file browser",
"SELECT COUNT(DISTINCT CrsCod)," // row[0]
"COUNT(DISTINCT GrpCod)-1," // row[1]
"-1," // row[2]
"MAX(NumLevels)," // row[3]
"SUM(NumFolders)," // row[4]
"SUM(NumFiles)," // row[5]
"SUM(TotalSize)" // row[6]
" FROM "
"("
"SELECT brw_sizes.Cod AS CrsCod,"
"-1 AS GrpCod," // Course zones
"brw_sizes.NumLevels,"
"brw_sizes.NumFolders,"
"brw_sizes.NumFiles,"
"brw_sizes.TotalSize"
" FROM deg_degrees,"
"crs_courses,"
"brw_sizes"
" WHERE deg_degrees.CtrCod=%ld"
" AND deg_degrees.DegCod=crs_courses.DegCod"
" AND crs_courses.CrsCod=brw_sizes.Cod"
" AND brw_sizes.FileBrowser IN (%u,%u,%u,%u,%u,%u)"
" UNION "
"SELECT grp_types.CrsCod,"
"brw_sizes.Cod AS GrpCod," // Group zones
"brw_sizes.NumLevels,"
"brw_sizes.NumFolders,"
"brw_sizes.NumFiles,"
"brw_sizes.TotalSize"
" FROM deg_degrees,"
"crs_courses,"
"grp_types,"
"grp_groups,"
"brw_sizes"
" WHERE deg_degrees.CtrCod=%ld"
" AND deg_degrees.DegCod=crs_courses.DegCod"
" AND crs_courses.CrsCod=grp_types.CrsCod"
" AND grp_types.GrpTypCod=grp_groups.GrpTypCod"
" AND grp_groups.GrpCod=brw_sizes.Cod"
" AND brw_sizes.FileBrowser IN (%u,%u,%u,%u)"
") AS sizes",
Gbl.Hierarchy.Ctr.CtrCod,
(unsigned) Brw_ADMI_DOC_CRS,
(unsigned) Brw_ADMI_TCH_CRS,
(unsigned) Brw_ADMI_SHR_CRS,
(unsigned) Brw_ADMI_ASG_USR,
(unsigned) Brw_ADMI_WRK_USR,
(unsigned) Brw_ADMI_MRK_CRS,
Gbl.Hierarchy.Ctr.CtrCod,
(unsigned) Brw_ADMI_DOC_GRP,
(unsigned) Brw_ADMI_TCH_GRP,
(unsigned) Brw_ADMI_SHR_GRP,
(unsigned) Brw_ADMI_MRK_GRP);
break;
case Brw_ADMI_DOC_CRS:
case Brw_ADMI_TCH_CRS:
case Brw_ADMI_SHR_CRS:
case Brw_ADMI_MRK_CRS:
DB_QuerySELECT (mysql_res,"can not get size of a file browser",
"SELECT COUNT(DISTINCT brw_sizes.Cod)," // row[0]
"-1," // row[1]
"-1," // row[2]
"MAX(brw_sizes.NumLevels)," // row[3]
"SUM(brw_sizes.NumFolders)," // row[4]
"SUM(brw_sizes.NumFiles)," // row[5]
"SUM(brw_sizes.TotalSize)" // row[6]
" FROM deg_degrees,"
"crs_courses,"
"brw_sizes"
" WHERE deg_degrees.CtrCod=%ld"
" AND deg_degrees.DegCod=crs_courses.DegCod"
" AND crs_courses.CrsCod=brw_sizes.Cod"
" AND brw_sizes.FileBrowser=%u",
Gbl.Hierarchy.Ctr.CtrCod,
(unsigned) FileBrowser);
break;
case Brw_ADMI_DOC_GRP:
case Brw_ADMI_TCH_GRP:
case Brw_ADMI_SHR_GRP:
case Brw_ADMI_MRK_GRP:
DB_QuerySELECT (mysql_res,"can not get size of a file browser",
"SELECT COUNT(DISTINCT grp_types.CrsCod),"
"COUNT(DISTINCT brw_sizes.Cod)," // row[0]
"-1," // row[1]
"MAX(brw_sizes.NumLevels)," // row[2]
"SUM(brw_sizes.NumFolders)," // row[3]
"SUM(brw_sizes.NumFiles)," // row[4]
"SUM(brw_sizes.TotalSize)" // row[5]
" FROM deg_degrees,"
"crs_courses,"
"grp_types,"
"grp_groups,"
"brw_sizes"
" WHERE deg_degrees.CtrCod=%ld"
" AND deg_degrees.DegCod=crs_courses.DegCod"
" AND crs_courses.CrsCod=grp_types.CrsCod"
" AND grp_types.GrpTypCod=grp_groups.GrpTypCod"
" AND grp_groups.GrpCod=brw_sizes.Cod"
" AND brw_sizes.FileBrowser=%u",
Gbl.Hierarchy.Ctr.CtrCod,
(unsigned) FileBrowser);
break;
case Brw_ADMI_ASG_USR:
case Brw_ADMI_WRK_USR:
DB_QuerySELECT (mysql_res,"can not get size of a file browser",
"SELECT COUNT(DISTINCT brw_sizes.Cod)," // row[0]
"-1," // row[1]
"COUNT(DISTINCT brw_sizes.ZoneUsrCod)," // row[2]
"MAX(brw_sizes.NumLevels)," // row[3]
"SUM(brw_sizes.NumFolders)," // row[4]
"SUM(brw_sizes.NumFiles)," // row[5]
"SUM(brw_sizes.TotalSize)" // row[6]
" FROM deg_degrees,"
"crs_courses,"
"brw_sizes"
" WHERE deg_degrees.CtrCod=%ld"
" AND deg_degrees.DegCod=crs_courses.DegCod"
" AND crs_courses.CrsCod=brw_sizes.Cod"
" AND brw_sizes.FileBrowser=%u",
Gbl.Hierarchy.Ctr.CtrCod,
(unsigned) FileBrowser);
break;
case Brw_ADMI_BRF_USR:
DB_QuerySELECT (mysql_res,"can not get size of a file browser",
"SELECT -1," // row[0]
"-1," // row[1]
"COUNT(DISTINCT brw_sizes.ZoneUsrCod)," // row[2]
"MAX(brw_sizes.NumLevels)," // row[3]
"SUM(brw_sizes.NumFolders)," // row[4]
"SUM(brw_sizes.NumFiles)," // row[5]
"SUM(brw_sizes.TotalSize)" // row[6]
" FROM deg_degrees,"
"crs_courses,"
"crs_users,"
"brw_sizes"
" WHERE deg_degrees.CtrCod=%ld"
" AND deg_degrees.DegCod=crs_courses.DegCod"
" AND crs_courses.CrsCod=crs_users.CrsCod"
" AND crs_users.UsrCod=brw_sizes.ZoneUsrCod"
" AND brw_sizes.FileBrowser=%u",
Gbl.Hierarchy.Ctr.CtrCod,
(unsigned) FileBrowser);
break;
default:
Err_WrongFileBrowserExit ();
break;
}
break;
/* Scope = the current degree */
case HieLvl_DEG:
switch (FileBrowser)
{
case Brw_UNKNOWN:
DB_QuerySELECT (mysql_res,"can not get size of a file browser",
"SELECT COUNT(DISTINCT CrsCod)," // row[0]
"COUNT(DISTINCT GrpCod)-1," // row[1]
"-1," // row[2]
"MAX(NumLevels)," // row[3]
"SUM(NumFolders)," // row[4]
"SUM(NumFiles)," // row[5]
"SUM(TotalSize)" // row[6]
" FROM "
"("
"SELECT brw_sizes.Cod AS CrsCod,"
"-1 AS GrpCod," // Course zones
"brw_sizes.NumLevels,"
"brw_sizes.NumFolders,"
"brw_sizes.NumFiles,"
"brw_sizes.TotalSize"
" FROM crs_courses,"
"brw_sizes"
" WHERE crs_courses.DegCod=%ld"
" AND crs_courses.CrsCod=brw_sizes.Cod"
" AND brw_sizes.FileBrowser IN (%u,%u,%u,%u,%u,%u)"
" UNION "
"SELECT grp_types.CrsCod,"
"brw_sizes.Cod AS GrpCod," // Group zones
"brw_sizes.NumLevels,"
"brw_sizes.NumFolders,"
"brw_sizes.NumFiles,"
"brw_sizes.TotalSize"
" FROM crs_courses,"
"grp_types,"
"grp_groups,"
"brw_sizes"
" WHERE crs_courses.DegCod=%ld"
" AND crs_courses.CrsCod=grp_types.CrsCod"
" AND grp_types.GrpTypCod=grp_groups.GrpTypCod"
" AND grp_groups.GrpCod=brw_sizes.Cod"
" AND brw_sizes.FileBrowser IN (%u,%u,%u,%u)"
") AS sizes",
Gbl.Hierarchy.Deg.DegCod,
(unsigned) Brw_ADMI_DOC_CRS,
(unsigned) Brw_ADMI_TCH_CRS,
(unsigned) Brw_ADMI_SHR_CRS,
(unsigned) Brw_ADMI_ASG_USR,
(unsigned) Brw_ADMI_WRK_USR,
(unsigned) Brw_ADMI_MRK_CRS,
Gbl.Hierarchy.Deg.DegCod,
(unsigned) Brw_ADMI_DOC_GRP,
(unsigned) Brw_ADMI_TCH_GRP,
(unsigned) Brw_ADMI_SHR_GRP,
(unsigned) Brw_ADMI_MRK_GRP);
break;
case Brw_ADMI_DOC_CRS:
case Brw_ADMI_TCH_CRS:
case Brw_ADMI_SHR_CRS:
case Brw_ADMI_MRK_CRS:
DB_QuerySELECT (mysql_res,"can not get size of a file browser",
"SELECT COUNT(DISTINCT brw_sizes.Cod)," // row[0]
"-1," // row[1]
"-1," // row[2]
"MAX(brw_sizes.NumLevels)," // row[3]
"SUM(brw_sizes.NumFolders)," // row[4]
"SUM(brw_sizes.NumFiles)," // row[5]
"SUM(brw_sizes.TotalSize)" // row[6]
" FROM crs_courses,"
"brw_sizes"
" WHERE crs_courses.DegCod=%ld"
" AND crs_courses.CrsCod=brw_sizes.Cod"
" AND brw_sizes.FileBrowser=%u",
Gbl.Hierarchy.Deg.DegCod,
(unsigned) FileBrowser);
break;
case Brw_ADMI_DOC_GRP:
case Brw_ADMI_TCH_GRP:
case Brw_ADMI_SHR_GRP:
case Brw_ADMI_MRK_GRP:
DB_QuerySELECT (mysql_res,"can not get size of a file browser",
"SELECT COUNT(DISTINCT grp_types.CrsCod)," // row[0]
"COUNT(DISTINCT brw_sizes.Cod)," // row[1]
"-1," // row[2]
"MAX(brw_sizes.NumLevels)," // row[3]
"SUM(brw_sizes.NumFolders)," // row[4]
"SUM(brw_sizes.NumFiles)," // row[5]
"SUM(brw_sizes.TotalSize)" // row[6]
" FROM crs_courses,"
"grp_types,"
"grp_groups,"
"brw_sizes"
" WHERE crs_courses.DegCod=%ld"
" AND crs_courses.CrsCod=grp_types.CrsCod"
" AND grp_types.GrpTypCod=grp_groups.GrpTypCod"
" AND grp_groups.GrpCod=brw_sizes.Cod"
" AND brw_sizes.FileBrowser=%u",
Gbl.Hierarchy.Deg.DegCod,
(unsigned) FileBrowser);
break;
case Brw_ADMI_ASG_USR:
case Brw_ADMI_WRK_USR:
DB_QuerySELECT (mysql_res,"can not get size of a file browser",
"SELECT COUNT(DISTINCT brw_sizes.Cod)," // row[0]
"-1," // row[1]
"COUNT(DISTINCT brw_sizes.ZoneUsrCod)," // row[2]
"MAX(brw_sizes.NumLevels)," // row[3]
"SUM(brw_sizes.NumFolders)," // row[4]
"SUM(brw_sizes.NumFiles)," // row[5]
"SUM(brw_sizes.TotalSize)" // row[6]
" FROM crs_courses,"
"brw_sizes"
" WHERE crs_courses.DegCod=%ld"
" AND crs_courses.CrsCod=brw_sizes.Cod"
" AND brw_sizes.FileBrowser=%u",
Gbl.Hierarchy.Deg.DegCod,
(unsigned) FileBrowser);
break;
case Brw_ADMI_BRF_USR:
DB_QuerySELECT (mysql_res,"can not get size of a file browser",
"SELECT -1," // row[0]
"-1," // row[1]
"COUNT(DISTINCT brw_sizes.ZoneUsrCod)," // row[2]
"MAX(brw_sizes.NumLevels)," // row[3]
"SUM(brw_sizes.NumFolders)," // row[4]
"SUM(brw_sizes.NumFiles)," // row[5]
"SUM(brw_sizes.TotalSize)" // row[6]
" FROM crs_courses,"
"crs_users,"
"brw_sizes"
" WHERE crs_courses.DegCod=%ld"
" AND crs_courses.CrsCod=crs_users.CrsCod"
" AND crs_users.UsrCod=brw_sizes.ZoneUsrCod"
" AND brw_sizes.FileBrowser=%u",
Gbl.Hierarchy.Deg.DegCod,
(unsigned) FileBrowser);
break;
default:
Err_WrongFileBrowserExit ();
break;
}
break;
/* Scope = the current course */
case HieLvl_CRS:
switch (FileBrowser)
{
case Brw_UNKNOWN:
DB_QuerySELECT (mysql_res,"can not get size of a file browser",
"SELECT COUNT(DISTINCT CrsCod)," // row[0]
"COUNT(DISTINCT GrpCod)-1," // row[1]
"-1," // row[2]
"MAX(NumLevels)," // row[3]
"SUM(NumFolders)," // row[4]
"SUM(NumFiles)," // row[5]
"SUM(TotalSize)" // row[6]
" FROM "
"("
"SELECT Cod AS CrsCod,"
"-1 AS GrpCod," // Course zones
"NumLevels,"
"NumFolders,"
"NumFiles,"
"TotalSize"
" FROM brw_sizes"
" WHERE Cod=%ld"
" AND FileBrowser IN (%u,%u,%u,%u,%u,%u)"
" UNION "
"SELECT grp_types.CrsCod,"
"brw_sizes.Cod AS GrpCod," // Group zones
"brw_sizes.NumLevels,"
"brw_sizes.NumFolders,"
"brw_sizes.NumFiles,"
"brw_sizes.TotalSize"
" FROM grp_types,"
"grp_groups,"
"brw_sizes"
" WHERE grp_types.CrsCod=%ld"
" AND grp_types.GrpTypCod=grp_groups.GrpTypCod"
" AND grp_groups.GrpCod=brw_sizes.Cod"
" AND brw_sizes.FileBrowser IN (%u,%u,%u,%u)"
") AS sizes",
Gbl.Hierarchy.Crs.CrsCod,
(unsigned) Brw_ADMI_DOC_CRS,
(unsigned) Brw_ADMI_TCH_CRS,
(unsigned) Brw_ADMI_SHR_CRS,
(unsigned) Brw_ADMI_ASG_USR,
(unsigned) Brw_ADMI_WRK_USR,
(unsigned) Brw_ADMI_MRK_CRS,
Gbl.Hierarchy.Crs.CrsCod,
(unsigned) Brw_ADMI_DOC_GRP,
(unsigned) Brw_ADMI_TCH_GRP,
(unsigned) Brw_ADMI_SHR_GRP,
(unsigned) Brw_ADMI_MRK_GRP);
break;
case Brw_ADMI_DOC_CRS:
case Brw_ADMI_TCH_CRS:
case Brw_ADMI_SHR_CRS:
case Brw_ADMI_MRK_CRS:
DB_QuerySELECT (mysql_res,"can not get size of a file browser",
"SELECT 1," // row[0]
"-1," // row[1]
"-1," // row[2]
"MAX(NumLevels)," // row[3]
"SUM(NumFolders)," // row[4]
"SUM(NumFiles)," // row[5]
"SUM(TotalSize)" // row[6]
" FROM brw_sizes"
" WHERE Cod=%ld"
" AND FileBrowser=%u",
Gbl.Hierarchy.Crs.CrsCod,
(unsigned) FileBrowser);
break;
case Brw_ADMI_DOC_GRP:
case Brw_ADMI_TCH_GRP:
case Brw_ADMI_SHR_GRP:
case Brw_ADMI_MRK_GRP:
DB_QuerySELECT (mysql_res,"can not get size of a file browser",
"SELECT COUNT(DISTINCT grp_types.CrsCod)," // row[0]
"COUNT(DISTINCT brw_sizes.Cod)," // row[1]
"-1," // row[2]
"MAX(brw_sizes.NumLevels)," // row[3]
"SUM(brw_sizes.NumFolders)," // row[4]
"SUM(brw_sizes.NumFiles)," // row[5]
"SUM(brw_sizes.TotalSize)" // row[6]
" FROM grp_types,"
"grp_groups,"
"brw_sizes"
" WHERE grp_types.CrsCod=%ld"
" AND grp_types.GrpTypCod=grp_groups.GrpTypCod"
" AND grp_groups.GrpCod=brw_sizes.Cod"
" AND brw_sizes.FileBrowser=%u",
Gbl.Hierarchy.Crs.CrsCod,
(unsigned) FileBrowser);
break;
case Brw_ADMI_ASG_USR:
case Brw_ADMI_WRK_USR:
DB_QuerySELECT (mysql_res,"can not get size of a file browser",
"SELECT 1," // row[0]
"-1," // row[1]
"COUNT(DISTINCT ZoneUsrCod)," // row[2]
"MAX(NumLevels)," // row[3]
"SUM(NumFolders)," // row[4]
"SUM(NumFiles)," // row[5]
"SUM(TotalSize)" // row[6]
" FROM brw_sizes"
" WHERE Cod=%ld"
" AND FileBrowser=%u",
Gbl.Hierarchy.Crs.CrsCod,
(unsigned) FileBrowser);
break;
case Brw_ADMI_BRF_USR:
DB_QuerySELECT (mysql_res,"can not get size of a file browser",
"SELECT -1," // row[0]
"-1," // row[1]
"COUNT(DISTINCT brw_sizes.ZoneUsrCod)," // row[2]
"MAX(brw_sizes.NumLevels)," // row[3]
"SUM(brw_sizes.NumFolders)," // row[4]
"SUM(brw_sizes.NumFiles)," // row[5]
"SUM(brw_sizes.TotalSize)" // row[6]
" FROM crs_users,"
"brw_sizes"
" WHERE crs_users.CrsCod=%ld"
" AND crs_users.UsrCod=brw_sizes.ZoneUsrCod"
" AND brw_sizes.FileBrowser=%u",
Gbl.Hierarchy.Crs.CrsCod,
(unsigned) FileBrowser);
break;
default:
Err_WrongFileBrowserExit ();
break;
}
break;
default:
Err_WrongScopeExit ();
break;
}
}

View File

@ -276,4 +276,7 @@ void Brw_RemoveOldFilesBriefcase (void);
Act_Action_t Brw_GetActionExpand (void);
Act_Action_t Brw_GetActionContract (void);
void Brw_DB_GetSizeOfFileZone (MYSQL_RES **mysql_res,
Brw_FileBrowser_t FileBrowser);
#endif

View File

@ -348,152 +348,275 @@ unsigned Ins_DB_GetFullListOfInssInCty (MYSQL_RES **mysql_res,long CtyCod)
}
/*****************************************************************************/
/**************** Get list of institutions in system ***************/
/**************** ordered by number of centers/degrees/courses ***************/
/*************** Get institutions ordered by number of centers ***************/
/*****************************************************************************/
unsigned Ins_DB_GetInssInCurrentSysOrderedByNumberOfCtrs (MYSQL_RES **mysql_res)
unsigned Ins_DB_GetInssOrderedByNumCtrs (MYSQL_RES **mysql_res)
{
return (unsigned)
DB_QuerySELECT (mysql_res,"can not get institutions",
"SELECT InsCod," // row[0]
"COUNT(*) AS N" // row[1]
" FROM ctr_centers"
" GROUP BY InsCod"
" ORDER BY N DESC");
}
unsigned Ins_DB_GetInssInCurrentSysOrderedByNumberOfDegs (MYSQL_RES **mysql_res)
{
return (unsigned)
DB_QuerySELECT (mysql_res,"can not get institutions",
"SELECT ctr_centers.InsCod," // row[0]
"COUNT(*) AS N" // row[1]
" FROM ctr_centers,"
"deg_degrees"
" WHERE ctr_centers.CtrCod=deg_degrees.CtrCod"
" GROUP BY InsCod"
" ORDER BY N DESC");
}
unsigned Ins_DB_GetInssInCurrentSysOrderedByNumberOfCrss (MYSQL_RES **mysql_res)
{
return (unsigned)
DB_QuerySELECT (mysql_res,"can not get institutions",
"SELECT ctr_centers.InsCod," // row[0]
"COUNT(*) AS N" // row[1]
" FROM ctr_centers,"
"deg_degrees,"
"crs_courses"
" WHERE ctr_centers.CtrCod=deg_degrees.CtrCod"
" AND deg_degrees.DegCod=crs_courses.DegCod"
" GROUP BY InsCod"
" ORDER BY N DESC");
switch (Gbl.Scope.Current)
{
case HieLvl_SYS:
return (unsigned)
DB_QuerySELECT (mysql_res,"can not get institutions",
"SELECT InsCod," // row[0]
"COUNT(*) AS N" // row[1]
" FROM ctr_centers"
" GROUP BY InsCod"
" ORDER BY N DESC");
case HieLvl_CTY:
return (unsigned)
DB_QuerySELECT (mysql_res,"can not get institutions",
"SELECT ctr_centers.InsCod," // row[0]
"COUNT(*) AS N" // row[1]
" FROM ins_instits,"
"ctr_centers"
" WHERE ins_instits.CtyCod=%ld"
" AND ins_instits.InsCod=ctr_centers.InsCod"
" GROUP BY ctr_centers.InsCod"
" ORDER BY N DESC",
Gbl.Hierarchy.Cty.CtyCod);
case HieLvl_INS:
case HieLvl_CTR:
case HieLvl_DEG:
case HieLvl_CRS:
return (unsigned)
DB_QuerySELECT (mysql_res,"can not get institutions",
"SELECT InsCod," // row[0]
"COUNT(*) AS N" // row[1]
" FROM ctr_centers"
" WHERE InsCod=%ld"
" GROUP BY InsCod",
Gbl.Hierarchy.Ins.InsCod);
default:
Err_WrongScopeExit ();
return 0; // Not reached
}
}
/*****************************************************************************/
/************ Get list of institutions in current country *******************/
/************ ordered by number of centers/degrees/courses *******************/
/************** Get institutions ordered by number of degrees ****************/
/*****************************************************************************/
unsigned Ins_DB_GetInssInCurrentCtyOrderedByNumberOfCtrs (MYSQL_RES **mysql_res)
unsigned Ins_DB_GetInssOrderedByNumDegs (MYSQL_RES **mysql_res)
{
return (unsigned)
DB_QuerySELECT (mysql_res,"can not get institutions",
"SELECT ctr_centers.InsCod," // row[0]
"COUNT(*) AS N" // row[1]
" FROM ins_instits,"
"ctr_centers"
" WHERE ins_instits.CtyCod=%ld"
" AND ins_instits.InsCod=ctr_centers.InsCod"
" GROUP BY ctr_centers.InsCod"
" ORDER BY N DESC",
Gbl.Hierarchy.Cty.CtyCod);
switch (Gbl.Scope.Current)
{
case HieLvl_SYS:
return (unsigned)
DB_QuerySELECT (mysql_res,"can not get institutions",
"SELECT ctr_centers.InsCod," // row[0]
"COUNT(*) AS N" // row[1]
" FROM ctr_centers,"
"deg_degrees"
" WHERE ctr_centers.CtrCod=deg_degrees.CtrCod"
" GROUP BY InsCod"
" ORDER BY N DESC");
case HieLvl_CTY:
return (unsigned)
DB_QuerySELECT (mysql_res,"can not get institutions",
"SELECT ctr_centers.InsCod," // row[0]
"COUNT(*) AS N" // row[1]
" FROM ins_instits,"
"ctr_centers,"
"deg_degrees"
" WHERE ins_instits.CtyCod=%ld"
" AND ins_instits.InsCod=ctr_centers.InsCod"
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
" GROUP BY ctr_centers.InsCod"
" ORDER BY N DESC",
Gbl.Hierarchy.Cty.CtyCod);
case HieLvl_INS:
case HieLvl_CTR:
case HieLvl_DEG:
case HieLvl_CRS:
return (unsigned)
DB_QuerySELECT (mysql_res,"can not get institutions",
"SELECT ctr_centers.InsCod," // row[0]
"COUNT(*) AS N" // row[1]
" FROM ctr_centers,"
"deg_degrees"
" WHERE ctr_centers.InsCod=%ld"
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
" GROUP BY ctr_centers.InsCod"
" ORDER BY N DESC",
Gbl.Hierarchy.Ins.InsCod);
default:
Err_WrongScopeExit ();
return 0; // Not reached
}
}
unsigned Ins_DB_GetInssInCurrentCtyOrderedByNumberOfDegs (MYSQL_RES **mysql_res)
{
return (unsigned)
DB_QuerySELECT (mysql_res,"can not get institutions",
"SELECT ctr_centers.InsCod," // row[0]
"COUNT(*) AS N" // row[1]
" FROM ins_instits,"
"ctr_centers,"
"deg_degrees"
" WHERE ins_instits.CtyCod=%ld"
" AND ins_instits.InsCod=ctr_centers.InsCod"
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
" GROUP BY ctr_centers.InsCod"
" ORDER BY N DESC",
Gbl.Hierarchy.Cty.CtyCod);
}
unsigned Ins_DB_GetInssInCurrentCtyOrderedByNumberOfCrss (MYSQL_RES **mysql_res)
{
return (unsigned)
DB_QuerySELECT (mysql_res,"can not get institutions",
"SELECT ctr_centers.InsCod," // row[0]
"COUNT(*) AS N" // row[1]
" FROM ins_instits,"
"ctr_centers,"
"deg_degrees,"
"crs_courses"
" WHERE ins_instits.CtyCod=%ld"
" AND ins_instits.InsCod=ctr_centers.InsCod"
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
" AND deg_degrees.DegCod=crs_courses.DegCod"
" GROUP BY ctr_centers.InsCod"
" ORDER BY N DESC",
Gbl.Hierarchy.Cty.CtyCod);
}
/*****************************************************************************/
/***** Get current institution and its number of centers/degrees/courses *****/
/*************** Get institutions ordered by number of courses ***************/
/*****************************************************************************/
unsigned Ins_DB_GetInssInCurrentInsOrderedByNumberOfCtrs (MYSQL_RES **mysql_res)
unsigned Ins_DB_GetInssOrderedByNumCrss (MYSQL_RES **mysql_res)
{
return (unsigned)
DB_QuerySELECT (mysql_res,"can not get institutions",
"SELECT InsCod," // row[0]
"COUNT(*) AS N" // row[1]
" FROM ctr_centers"
" WHERE InsCod=%ld"
" GROUP BY InsCod",
Gbl.Hierarchy.Ins.InsCod);
switch (Gbl.Scope.Current)
{
case HieLvl_SYS:
return (unsigned)
DB_QuerySELECT (mysql_res,"can not get institutions",
"SELECT ctr_centers.InsCod," // row[0]
"COUNT(*) AS N" // row[1]
" FROM ctr_centers,"
"deg_degrees,"
"crs_courses"
" WHERE ctr_centers.CtrCod=deg_degrees.CtrCod"
" AND deg_degrees.DegCod=crs_courses.DegCod"
" GROUP BY InsCod"
" ORDER BY N DESC");
case HieLvl_CTY:
return (unsigned)
DB_QuerySELECT (mysql_res,"can not get institutions",
"SELECT ctr_centers.InsCod," // row[0]
"COUNT(*) AS N" // row[1]
" FROM ins_instits,"
"ctr_centers,"
"deg_degrees,"
"crs_courses"
" WHERE ins_instits.CtyCod=%ld"
" AND ins_instits.InsCod=ctr_centers.InsCod"
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
" AND deg_degrees.DegCod=crs_courses.DegCod"
" GROUP BY ctr_centers.InsCod"
" ORDER BY N DESC",
Gbl.Hierarchy.Cty.CtyCod);
case HieLvl_INS:
case HieLvl_CTR:
case HieLvl_DEG:
case HieLvl_CRS:
return (unsigned)
DB_QuerySELECT (mysql_res,"can not get institutions",
"SELECT ctr_centers.InsCod," // row[0]
"COUNT(*) AS N" // row[1]
" FROM ctr_centers,"
"deg_degrees,"
"crs_courses"
" WHERE ctr_centers.InsCod=%ld"
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
" AND deg_degrees.DegCod=crs_courses.DegCod"
" GROUP BY ctr_centers.InsCod"
" ORDER BY N DESC",
Gbl.Hierarchy.Ins.InsCod);
default:
Err_WrongScopeExit ();
return 0; // Not reached
}
}
unsigned Ins_DB_GetInssInCurrentInsOrderedByNumberOfDegs (MYSQL_RES **mysql_res)
/*****************************************************************************/
/*************** Get institutions ordered by users in courses ****************/
/*****************************************************************************/
unsigned Ins_DB_GetInssOrderedByNumUsrsInCrss (MYSQL_RES **mysql_res)
{
return (unsigned)
DB_QuerySELECT (mysql_res,"can not get institutions",
"SELECT ctr_centers.InsCod," // row[0]
"COUNT(*) AS N" // row[1]
" FROM ctr_centers,"
"deg_degrees"
" WHERE ctr_centers.InsCod=%ld"
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
" GROUP BY ctr_centers.InsCod"
" ORDER BY N DESC",
Gbl.Hierarchy.Ins.InsCod);
/***** Get institutions ordered by number of users in courses *****/
switch (Gbl.Scope.Current)
{
case HieLvl_SYS:
return (unsigned)
DB_QuerySELECT (mysql_res,"can not get institutions",
"SELECT ctr_centers.InsCod," // row[0]
"COUNT(DISTINCT crs_users.UsrCod) AS N" // row[1]
" FROM ctr_centers,"
"deg_degrees,"
"crs_courses,"
"crs_users"
" WHERE ctr_centers.CtrCod=deg_degrees.CtrCod"
" AND deg_degrees.DegCod=crs_courses.DegCod"
" AND crs_courses.CrsCod=crs_users.CrsCod"
" GROUP BY InsCod"
" ORDER BY N DESC");
case HieLvl_CTY:
return (unsigned)
DB_QuerySELECT (mysql_res,"can not get institutions",
"SELECT ctr_centers.InsCod," // row[0]
"COUNT(DISTINCT crs_users.UsrCod) AS N" // row[1]
" FROM ins_instits,"
"ctr_centers,"
"deg_degrees,"
"crs_courses,"
"crs_users"
" WHERE ins_instits.CtyCod=%ld"
" AND ins_instits.InsCod=ctr_centers.InsCod"
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
" AND deg_degrees.DegCod=crs_courses.DegCod"
" AND crs_courses.CrsCod=crs_users.CrsCod"
" GROUP BY ctr_centers.InsCod"
" ORDER BY N DESC",
Gbl.Hierarchy.Cty.CtyCod);
case HieLvl_INS:
case HieLvl_CTR:
case HieLvl_DEG:
case HieLvl_CRS:
return (unsigned)
DB_QuerySELECT (mysql_res,"can not get institutions",
"SELECT ctr_centers.InsCod," // row[0]
"COUNT(DISTINCT crs_users.UsrCod) AS N" // row[1]
" FROM ctr_centers,"
"deg_degrees,"
"crs_courses,"
"crs_users"
" WHERE ctr_centers.InsCod=%ld"
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
" AND deg_degrees.DegCod=crs_courses.DegCod"
" AND crs_courses.CrsCod=crs_users.CrsCod"
" GROUP BY ctr_centers.InsCod"
" ORDER BY N DESC",
Gbl.Hierarchy.Ins.InsCod);
default:
Err_WrongScopeExit ();
return 0; // Not reached
}
}
unsigned Ins_DB_GetInssInCurrentInsOrderedByNumberOfCrss (MYSQL_RES **mysql_res)
/*****************************************************************************/
/** Get institutions ordered by number of users who claim to belong to them **/
/*****************************************************************************/
unsigned Ins_DB_GetInssOrderedByNumUsrsWhoClaimToBelongToThem (MYSQL_RES **mysql_res)
{
return (unsigned)
DB_QuerySELECT (mysql_res,"can not get institutions",
"SELECT ctr_centers.InsCod," // row[0]
"COUNT(*) AS N" // row[1]
" FROM ctr_centers,"
"deg_degrees,"
"crs_courses"
" WHERE ctr_centers.InsCod=%ld"
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
" AND deg_degrees.DegCod=crs_courses.DegCod"
" GROUP BY ctr_centers.InsCod"
" ORDER BY N DESC",
Gbl.Hierarchy.Ins.InsCod);
}
switch (Gbl.Scope.Current)
{
case HieLvl_SYS:
return (unsigned)
DB_QuerySELECT (mysql_res,"can not get institutions",
"SELECT InsCod," // row[0]
"COUNT(*) AS N" // row[1]
" FROM usr_data"
" WHERE InsCod>0"
" GROUP BY InsCod"
" ORDER BY N DESC");
case HieLvl_CTY:
return (unsigned)
DB_QuerySELECT (mysql_res,"can not get institutions",
"SELECT usr_data.InsCod," // row[0]
"COUNT(*) AS N" // row[1]
" FROM ins_instits,usr_data"
" WHERE ins_instits.CtyCod=%ld"
" AND ins_instits.InsCod=usr_data.InsCod"
" GROUP BY usr_data.InsCod"
" ORDER BY N DESC",
Gbl.Hierarchy.Cty.CtyCod);
case HieLvl_INS:
case HieLvl_CTR:
case HieLvl_DEG:
case HieLvl_CRS:
return (unsigned)
DB_QuerySELECT (mysql_res,"can not get institutions",
"SELECT InsCod," // row[0]
"COUNT(*) AS N" // row[1]
" FROM usr_data"
" WHERE InsCod=%ld"
" GROUP BY InsCod"
" ORDER BY N DESC",
Gbl.Hierarchy.Ins.InsCod);
default:
Err_WrongScopeExit ();
return 0; // Not reached
}
}
/*****************************************************************************/
/**************** Get number of institutions in a country ********************/

View File

@ -61,17 +61,11 @@ unsigned Ins_DB_GetInssInCtyOrderedByShrtName (MYSQL_RES **mysql_res,long CtyCod
unsigned Ins_DB_GetInssInCtyOrderedByFullName (MYSQL_RES **mysql_res,long CtyCod);
unsigned Ins_DB_GetFullListOfInssInCty (MYSQL_RES **mysql_res,long CtyCod);
unsigned Ins_DB_GetInssInCurrentSysOrderedByNumberOfCtrs (MYSQL_RES **mysql_res);
unsigned Ins_DB_GetInssInCurrentSysOrderedByNumberOfDegs (MYSQL_RES **mysql_res);
unsigned Ins_DB_GetInssInCurrentSysOrderedByNumberOfCrss (MYSQL_RES **mysql_res);
unsigned Ins_DB_GetInssInCurrentCtyOrderedByNumberOfCtrs (MYSQL_RES **mysql_res);
unsigned Ins_DB_GetInssInCurrentCtyOrderedByNumberOfDegs (MYSQL_RES **mysql_res);
unsigned Ins_DB_GetInssInCurrentCtyOrderedByNumberOfCrss (MYSQL_RES **mysql_res);
unsigned Ins_DB_GetInssInCurrentInsOrderedByNumberOfCtrs (MYSQL_RES **mysql_res);
unsigned Ins_DB_GetInssInCurrentInsOrderedByNumberOfDegs (MYSQL_RES **mysql_res);
unsigned Ins_DB_GetInssInCurrentInsOrderedByNumberOfCrss (MYSQL_RES **mysql_res);
unsigned Ins_DB_GetInssOrderedByNumCtrs (MYSQL_RES **mysql_res);
unsigned Ins_DB_GetInssOrderedByNumDegs (MYSQL_RES **mysql_res);
unsigned Ins_DB_GetInssOrderedByNumCrss (MYSQL_RES **mysql_res);
unsigned Ins_DB_GetInssOrderedByNumUsrsInCrss (MYSQL_RES **mysql_res);
unsigned Ins_DB_GetInssOrderedByNumUsrsWhoClaimToBelongToThem (MYSQL_RES **mysql_res);
unsigned Ins_DB_GetNumInssInCty (long CtyCod);