Client für FÖBisAktive, Bug Fixes, Performance Verbesserungen

This commit is contained in:
Werner Masik
2014-07-24 05:24:48 +00:00
parent 4670cac3f5
commit 49ce61d9b5
3 changed files with 333 additions and 1 deletions
+51 -1
View File
@@ -24,6 +24,7 @@
* Werner Masik <werner@gefi.at>
*/
require_once(dirname(__FILE__).'/basis_db.class.php');
require_once(__DIR__ .'/functions.inc.php');
class studienplatz extends basis_db
{
@@ -167,7 +168,7 @@ class studienplatz extends basis_db
//Pruefen ob $studiengang_kz eine gueltige Zahl ist
if(!is_numeric($studiengang_kz) || $studiengang_kz == '')
{
$this->errormsg = '$studiengang_kz muss eine gültige Zahl sein';
$this->errormsg = 'studiengang_kz muss eine gültige Zahl sein';
return false;
}
@@ -194,6 +195,55 @@ class studienplatz extends basis_db
}
/**
* Liefert Array mit GPZ und NPZ für die FÖBis relevanten Orgformen (BB, VZ, VBB).
* Dient als Ersatz für load_studiengang_studiensemester_orgform weil hiermit
* alle Daten mit einer Abfrage geholt werden können.
* @param type $studienjahr z.B: 2013
* @param type $zeitraum z.B: 10 [Semester]
* @return boolean|array false bei Fehler
*/
public function getAnzahlAlleOrgformen($studienjahr, $zeitraum)
{
// Semesterliste für where klausel erzeugen:
$startSemester= 'WS'.substr($studienjahr,0,4);
$semesterList = generateSemesterList($startSemester,($zeitraum*2)-1);
$semesterList_comma_separated = "'".join("','",$semesterList)."'";
//Lesen der Daten aus der Datenbank
$qry = "SELECT studiensemester_kurzbz,studiengang_kz,
sum(case when orgform_kurzbz='VZ' then npz else 0 end) as npz_vz,
sum(case when orgform_kurzbz='BB' then npz else 0 end) as npz_bb,
sum(case when orgform_kurzbz='VBB' then npz else 0 end) as npz_vbb,
sum(npz) as npz_gesamt,
sum(case when orgform_kurzbz='VZ' then npz else 0 end) as gpz_vz,
sum(case when orgform_kurzbz='BB' then npz else 0 end) as gpz_bb,
sum(case when orgform_kurzbz='VBB' then npz else 0 end) as gpz_vbb,
sum(gpz) as gpz_gesamt
FROM lehre.tbl_studienplatz
WHERE ausbildungssemester is null and studiensemester_kurzbz IN ($semesterList_comma_separated)
group by studiensemester_kurzbz,studiengang_kz";
$this->result = array();
if(!$this->db_query($qry))
{
return false;
}
$result = array();
while($row = $this->db_fetch_object())
{
$result[$row->studiensemester_kurzbz][$row->studiengang_kz]['BB']['NPZ'] = $row->npz_bb;
$result[$row->studiensemester_kurzbz][$row->studiengang_kz]['VZ']['NPZ'] = $row->npz_vz;
$result[$row->studiensemester_kurzbz][$row->studiengang_kz]['VBB']['NPZ'] = $row->npz_vbb;
$result[$row->studiensemester_kurzbz][$row->studiengang_kz]['gesamt']['NPZ'] = $row->npz_gesamt;
$result[$row->studiensemester_kurzbz][$row->studiengang_kz]['BB']['GPZ'] = $row->npz_bb;
$result[$row->studiensemester_kurzbz][$row->studiengang_kz]['VZ']['GPZ'] = $row->gpz_vz;
$result[$row->studiensemester_kurzbz][$row->studiengang_kz]['VBB']['GPZ'] = $row->gpz_vbb;
$result[$row->studiensemester_kurzbz][$row->studiengang_kz]['gesamt']['GPZ'] = $row->gpz_gesamt;
}
return $result;
}
/**
* Prueft die Variablen auf Gueltigkeit