This commit is contained in:
kindlm
2016-06-27 11:33:25 +02:00
12 changed files with 698 additions and 226 deletions
+5 -2
View File
@@ -1177,7 +1177,7 @@ class lehrveranstaltung extends basis_db
* @param $semeser Semester optional
* @return boolean true wenn ok, false im Fehlerfall
*/
public function loadLehrveranstaltungStudienplan($studienplan_id, $semester = null)
public function loadLehrveranstaltungStudienplan($studienplan_id, $semester = null, $order=null)
{
if (!is_numeric($studienplan_id) || $studienplan_id === '')
{
@@ -1204,7 +1204,10 @@ class lehrveranstaltung extends basis_db
{
$qry.=" AND tbl_studienplan_lehrveranstaltung.semester=" . $this->db_add_param($semester, FHC_INTEGER);
}
$qry.=" ORDER BY stpllv_sort, semester, sort";
if(is_null($order))
$qry.=" ORDER BY stpllv_sort, semester, sort";
else
$qry.=' ORDER BY '.$order;
$this->lehrveranstaltungen = array();
if ($result = $this->db_query($qry))
{
-99
View File
@@ -1733,103 +1733,4 @@ class prestudent extends person
return false;
}
}
/**
* Laedt alle Studenten eines Studienplans und eines Studiensemesters
* @param $studienplan_id
* @param $studiensemester_kurzbz
* @param $studiengang_kz
* @return array mit allen Prestudenten, welche sich für den angegebenen Studienplan im angegebenen Semester beworben haben
*/
public function getAllStudentenFromStudienplanAndStudsem($studienplan_id, $studiensemester_kurzbz, $studiengang_kz)
{
if(!is_numeric($studienplan_id))
{
$this->errormsg = 'studienplan_id ist ungueltig';
return false;
}
if(!$studiensemester_kurzbz || $studiensemester_kurzbz == "")
{
$this->errormsg = 'studiensemester_kurzbz ist ungueltig';
return false;
}
$stg_obj = new studiengang();
$stg_obj->load($studiengang_kz);
if($stg_obj->typ=='m')
{
$qry = "SELECT DISTINCT prestudent_id, vorname, nachname, gebdatum, rt_gesamtpunkte, tbl_prestudent.studiengang_kz, bis.tbl_zgvgruppe.bezeichnung, get_rolle_prestudent(prestudent_id, null) as laststatus,
(Select anmerkung from public.tbl_prestudentstatus where prestudent_id=tbl_prestudent.prestudent_id AND studiensemester_kurzbz=". $this->db_add_param($studiensemester_kurzbz)."
AND status_kurzbz='Bewerber') as anmerkung
FROM
public.tbl_prestudent
JOIN public.tbl_person USING(person_id)
LEFT JOIN bis.tbl_zgvgruppe_zuordnung USING(zgvmas_code)
LEFT JOIN bis.tbl_zgvgruppe USING(gruppe_kurzbz)
WHERE
tbl_prestudent.studiengang_kz=". $this->db_add_param($studiengang_kz)."
AND EXISTS(
SELECT
1
FROM
public.tbl_prestudentstatus
WHERE
tbl_prestudent.prestudent_id=tbl_prestudentstatus.prestudent_id
AND studiensemester_kurzbz=". $this->db_add_param($studiensemester_kurzbz)."
AND status_kurzbz='Bewerber'
AND (
studienplan_id=". $this->db_add_param($studienplan_id)."
OR
(anmerkung like '%' || (SELECT orgform_kurzbz || '_' || sprache FROM lehre.tbl_studienplan WHERE studienplan_id=". $this->db_add_param($studienplan_id).") || '%')
)
);";
}
else
{
$qry = "SELECT DISTINCT prestudent_id, vorname, nachname, gebdatum, rt_gesamtpunkte, tbl_prestudent.studiengang_kz, bis.tbl_zgvgruppe.bezeichnung, get_rolle_prestudent(prestudent_id, null) as laststatus,
(Select anmerkung from public.tbl_prestudentstatus where prestudent_id=tbl_prestudent.prestudent_id AND studiensemester_kurzbz=". $this->db_add_param($studiensemester_kurzbz)."
AND status_kurzbz='Bewerber') as anmerkung
FROM
public.tbl_prestudent
JOIN public.tbl_person USING(person_id)
LEFT JOIN bis.tbl_zgvgruppe_zuordnung USING(zgv_code)
LEFT JOIN bis.tbl_zgvgruppe USING(gruppe_kurzbz)
WHERE
tbl_prestudent.studiengang_kz=". $this->db_add_param($studiengang_kz)."
AND EXISTS(
SELECT
1
FROM
public.tbl_prestudentstatus
WHERE
tbl_prestudent.prestudent_id=tbl_prestudentstatus.prestudent_id
AND studiensemester_kurzbz=". $this->db_add_param($studiensemester_kurzbz)."
AND status_kurzbz='Bewerber'
AND (
studienplan_id=". $this->db_add_param($studienplan_id)."
OR
(anmerkung like '%' || (SELECT orgform_kurzbz || '_' || sprache FROM lehre.tbl_studienplan WHERE studienplan_id=". $this->db_add_param($studienplan_id).") || '%')
)
);";
}
if($result = $this->db_query($qry))
{
$ret = array();
while($row = $this->db_fetch_object($result))
$ret[] = $row;
return $ret;
}
else
{
$this->errormsg = 'Fehler beim Laden der Daten';
return false;
}
}
}
+135 -71
View File
@@ -16,15 +16,15 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at>,
* Rudolf Hangl <rudolf.hangl@technikum-wien.at> and
* Gerald Raab <gerald.raab@technikum-wien.at>.
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at>,
* Rudolf Hangl <rudolf.hangl@technikum-wien.at> and
* Gerald Raab <gerald.raab@technikum-wien.at>.
*/
require_once(dirname(__FILE__).'/basis_db.class.php');
class studiengang extends basis_db
{
public $new; // boolean
public $new; // boolean
public $result = array(); // studiengang Objekt
public $studiengang_kz; // integer
@@ -63,7 +63,7 @@ class studiengang extends basis_db
public $projektarbeit_note_anzeige; // boolean
public $bezeichnung_arr = array();
public $beschreibung;
public $beschreibung;
/**
* Konstruktor
@@ -75,13 +75,6 @@ class studiengang extends basis_db
if(!is_null($studiengang_kz))
$this->load($studiengang_kz);
//$this->getAllTypes();
/* $this->studiengang_typ_arr["b"] = "Bachelor";
$this->studiengang_typ_arr["d"] = "Diplom";
$this->studiengang_typ_arr["m"] = "Master";
$this->studiengang_typ_arr["l"] = "LLL";
$this->studiengang_typ_arr["e"] = "Erhalter"; */
}
public function __get($value)
@@ -234,22 +227,16 @@ class studiengang extends basis_db
/**
* Gibt alle Studiengaenge zurueck, fuer die man sich online bewerben kann
* @param array $studiensemester_kurzbz default: null Array aus Studiensemestern fuer die man sich onlinebewerben kann
* @return boolean
*/
public function getAllForBewerbung($studiensemester_kurzbz_arr=null)
public function getAllForBewerbung()
{
$qry = 'SELECT DISTINCT studiengang_kz, typ, organisationseinheittyp_kurzbz, studiengangbezeichnung, standort, studiengangbezeichnung_englisch, lgartcode, tbl_lgartcode.bezeichnung '
. 'FROM lehre.vw_studienplan '
. 'LEFT JOIN bis.tbl_lgartcode USING (lgartcode) '
. 'WHERE onlinebewerbung IS TRUE '
. 'AND aktiv IS TRUE ';
/*if (!is_null($studiensemester_kurzbz_arr))
{
$studiensemester_kurzbz_arr = $this->implode4SQL($studiensemester_kurzbz_arr);
$qry .= ' AND studiensemester_kurzbz IN('.$studiensemester_kurzbz_arr.')';
}*/
$qry .= ' ORDER BY typ, studiengangbezeichnung, tbl_lgartcode.bezeichnung ASC';
if(!$result = $this->db_query($qry))
@@ -693,56 +680,62 @@ class studiengang extends basis_db
return $result;
}
public function getStudiengangTyp($typ)
{
$qry = "SELECT * FROM public.tbl_studiengangstyp WHERE typ =".$this->db_add_param($typ,FHC_STRING).";";
/**
* Laedt einen Studiengangstyp
*
* @param $typ Studiengangstyp
* @return boolean true wenn erfolgreich geladen, false im Fehlerfall
*/
public function getStudiengangTyp($typ)
{
$qry = "SELECT * FROM public.tbl_studiengangstyp WHERE typ =".$this->db_add_param($typ,FHC_STRING).";";
if($result = $this->db_query($qry))
{
if($row = $this->db_fetch_object($result))
{
$this->typ = $row->typ;
$this->bezeichnung = $row->bezeichnung;
$this->beschreibung = $row->beschreibung;
}
if($result = $this->db_query($qry))
{
if($row = $this->db_fetch_object($result))
{
$this->typ = $row->typ;
$this->bezeichnung = $row->bezeichnung;
$this->beschreibung = $row->beschreibung;
}
return true;
}
else
{
$this->errormsg = "Fehler bei der Abfrage aufgetreten";
return false;
}
}
return true;
}
else
{
$this->errormsg = "Fehler bei der Abfrage aufgetreten";
return false;
}
}
/**
* @param $studiengaenge array
* @return array|bool
*/
public function getTypes($studiengaenge) {
/**
* @param $studiengaenge array
* @return array|bool
*/
public function getTypes($studiengaenge) {
$qry = 'SELECT distinct typ ' .
'FROM public.tbl_studiengang ' .
'WHERE studiengang_kz IN (' . implode(',', $studiengaenge) . ')';
$qry = 'SELECT distinct typ ' .
'FROM public.tbl_studiengang ' .
'WHERE studiengang_kz IN (' . implode(',', $studiengaenge) . ')';
$types = array();
$types = array();
if($result = $this->db_query($qry))
{
while($row = $this->db_fetch_object($result)) {
if($result = $this->db_query($qry))
{
while($row = $this->db_fetch_object($result)) {
$types[] = $row->typ;
$types[] = $row->typ;
}
}
return $types;
}
else
{
$this->errormsg = "Fehler bei der Abfrage aufgetreten";
return false;
}
}
return $types;
}
else
{
$this->errormsg = "Fehler bei der Abfrage aufgetreten";
return false;
}
}
/**
* Sucht nach einem Studiengang
@@ -751,13 +744,13 @@ class studiengang extends basis_db
*/
public function search($searchItem)
{
$qry = 'SELECT * FROM public.tbl_studiengang WHERE
LOWER(bezeichnung) LIKE LOWER(\'%'.$this->db_escape((implode(' ',$searchItem))).'%\') OR
LOWER(english) LIKE LOWER(\'%'.$this->db_escape((implode(' ',$searchItem))).'%\')
ORDER BY typ,bezeichnung;';
$qry = 'SELECT * FROM public.tbl_studiengang WHERE
LOWER(bezeichnung) LIKE LOWER(\'%'.$this->db_escape((implode(' ',$searchItem))).'%\') OR
LOWER(english) LIKE LOWER(\'%'.$this->db_escape((implode(' ',$searchItem))).'%\')
ORDER BY typ,bezeichnung;';
if($this->db_query($qry))
{
if($this->db_query($qry))
{
while($row = $this->db_fetch_object())
{
$obj = new studiengang();
@@ -799,12 +792,12 @@ class studiengang extends basis_db
$this->result[] = $obj;
}
return true;
}
else
{
}
else
{
$this->errormsg = 'Fehler beim Laden des Studiengangs';
return false;
}
}
}
/**
@@ -911,4 +904,75 @@ class studiengang extends basis_db
return false;
}
}
/**
* Laedt die Studiengänge die innerhalb eines Studiensemesters gültig sind
* @param $studiensemester_kurzbz
*/
public function loadStudiengangFromStudiensemester($studiensemester_kurzbz)
{
$qry = "SELECT
distinct tbl_studiengang.*
FROM
public.tbl_studiengang
JOIN lehre.tbl_studienordnung USING(studiengang_kz)
JOIN lehre.tbl_studienplan USING(studienordnung_id)
JOIN lehre.tbl_studienplan_semester USING(studienplan_id)
WHERE
tbl_studienplan_semester.studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz)."
ORDER BY
typ, kurzbz";
if($this->db_query($qry))
{
while($row = $this->db_fetch_object())
{
$obj = new studiengang();
$obj->studiengang_kz = $row->studiengang_kz;
$obj->kurzbz = $row->kurzbz;
$obj->kurzbzlang = $row->kurzbzlang;
$obj->bezeichnung = $row->bezeichnung;
$obj->english = $row->english;
$obj->typ = $row->typ;
$obj->farbe = $row->farbe;
$obj->email = $row->email;
$obj->max_semester = $row->max_semester;
$obj->max_verband = $row->max_verband;
$obj->max_gruppe = $row->max_gruppe;
$obj->erhalter_kz = $row->erhalter_kz;
$obj->bescheid = $row->bescheid;
$obj->bescheidbgbl1 = $row->bescheidbgbl1;
$obj->bescheidbgbl2 = $row->bescheidbgbl2;
$obj->bescheidgz = $row->bescheidgz;
$obj->bescheidvom = $row->bescheidvom;
$obj->ext_id = $row->ext_id;
$obj->kuerzel = mb_strtoupper($row->typ . $row->kurzbz);
$obj->orgform_kurzbz = $row->orgform_kurzbz;
$obj->zusatzinfo_html = $row->zusatzinfo_html;
$obj->sprache = $row->sprache;
$obj->testtool_sprachwahl = $this->db_parse_bool($row->testtool_sprachwahl);
$obj->studienplaetze = $row->studienplaetze;
$obj->oe_kurzbz = $row->oe_kurzbz;
$obj->lgartcode = $row->lgartcode;
$obj->telefon = $row->telefon;
$obj->titelbescheidvom = $row->titelbescheidvom;
$obj->onlinebewerbung = $this->db_parse_bool($row->onlinebewerbung);
$obj->moodle = $this->db_parse_bool($row->moodle);
$obj->mischform = $this->db_parse_bool($row->mischform);
$obj->projektarbeit_note_anzeige = $this->db_parse_bool($row->projektarbeit_note_anzeige);
$obj->bezeichnung_arr['German'] = $obj->bezeichnung;
$obj->bezeichnung_arr['English'] = $obj->english;
$this->result[] = $obj;
}
return true;
}
else
{
$this->errormsg = "Fehler bei der Datenbankabfrage aufgetreten.";
return false;
}
}
}
+9 -3
View File
@@ -149,24 +149,30 @@ class studienordnung extends basis_db
if(is_null($studiensemester_kurzbz))
{
$qry = 'SELECT sto.*, s.bezeichnung as status_bezeichnung FROM lehre.tbl_studienordnung sto
$qry = 'SELECT sto.*, s.bezeichnung as status_bezeichnung, tbl_studiensemester.start as gueltig_startdatum
FROM lehre.tbl_studienordnung sto
LEFT JOIN lehre.tbl_studienordnungstatus s USING(status_kurzbz)
LEFT JOIN public.tbl_studiensemester ON(sto.gueltigvon=tbl_studiensemester.studiensemester_kurzbz)
WHERE studiengang_kz='.$this->db_add_param($studiengang_kz, FHC_INTEGER, false);
}
else
{
$qry = 'SELECT distinct sto.*, s.bezeichnung as status_bezeichnung, sem.* FROM lehre.tbl_studienordnung sto
$qry = 'SELECT distinct sto.*, s.bezeichnung as status_bezeichnung, sem.*, tbl_studiensemester.start as gueltig_startdatum
FROM lehre.tbl_studienordnung sto
JOIN lehre.tbl_studienordnungstatus s USING(status_kurzbz)
LEFT JOIN lehre.tbl_studienplan USING(studienordnung_id)
LEFT JOIN lehre.tbl_studienplan_semester sem USING (studienplan_id)
LEFT JOIN public.tbl_studiensemester ON(sto.gueltigvon=tbl_studiensemester.studiensemester_kurzbz)
WHERE studiengang_kz='.$this->db_add_param($studiengang_kz, FHC_INTEGER, false);
if (!is_null($studiensemester_kurzbz))
$qry.=" AND studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz, FHC_STRING,false);
$qry.=" AND sem.studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz, FHC_STRING,false);
if (!is_null($semester))
$qry.=" AND semester=".$this->db_add_param($semester, FHC_INTEGER,false);
}
$qry.=" ORDER BY gueltig_startdatum desc";
if(!$this->db_query($qry))
{
$this->errormsg = 'Fehler bei einer Datenbankabfrage';
+36 -35
View File
@@ -157,6 +157,7 @@ class studienplan extends basis_db
if(!is_null($orgform_kurzbz))
$qry.=" AND orgform_kurzbz=".$this->db_add_param($orgform_kurzbz);
$qry.=" ORDER BY bezeichnung";
if($this->db_query($qry))
{
@@ -703,42 +704,42 @@ class studienplan extends basis_db
function getStudienplaeneFromSem($studiengang_kz, $studiensemester_kurzbz, $ausbildungssemester="", $orgform_kurzbz = "")
{
$qry = "SELECT
studienplan_id,
studienordnung_id,
orgform_kurzbz,
tbl_studienplan.version AS version_studienplan,
tbl_studienplan.bezeichnung AS bezeichnung_studienplan,
regelstudiendauer,
sprache,
aktiv,
semesterwochen,
testtool_sprachwahl,
tbl_studienplan.insertamum AS insertamum_studienplan,
tbl_studienplan.insertvon AS insertvon_studienplan,
tbl_studienplan.updateamum AS updateamum_studienplan,
tbl_studienplan.updatevon AS updatevon_studienplan,
ects_stpl,
pflicht_sws,
pflicht_lvs,
studiengang_kz,
studienplan_id,
studienordnung_id,
orgform_kurzbz,
tbl_studienplan.version AS version_studienplan,
tbl_studienplan.bezeichnung AS bezeichnung_studienplan,
regelstudiendauer,
sprache,
aktiv,
semesterwochen,
testtool_sprachwahl,
tbl_studienplan.insertamum AS insertamum_studienplan,
tbl_studienplan.insertvon AS insertvon_studienplan,
tbl_studienplan.updateamum AS updateamum_studienplan,
tbl_studienplan.updatevon AS updatevon_studienplan,
ects_stpl,
pflicht_sws,
pflicht_lvs,
studiengang_kz,
tbl_studienordnung.version AS version_studienordnung,
gueltigvon,
gueltigbis,
tbl_studienordnung.bezeichnung AS bezeichnung_studienordnung,
ects,
studiengangbezeichnung,
studiengangbezeichnung_englisch,
studiengangkurzbzlang,
akadgrad_id,
tbl_studienordnung.insertamum AS insertamum_studienordnung,
tbl_studienordnung.insertvon AS insertvon_studienordnung,
tbl_studienordnung.updateamum AS updateamum_studienordnung,
tbl_studienordnung.updatevon AS updatevon_studienordnung,
status_kurzbz,
standort_id,
studienplan_semester_id,
studiensemester_kurzbz,
semester
gueltigvon,
gueltigbis,
tbl_studienordnung.bezeichnung AS bezeichnung_studienordnung,
ects,
studiengangbezeichnung,
studiengangbezeichnung_englisch,
studiengangkurzbzlang,
akadgrad_id,
tbl_studienordnung.insertamum AS insertamum_studienordnung,
tbl_studienordnung.insertvon AS insertvon_studienordnung,
tbl_studienordnung.updateamum AS updateamum_studienordnung,
tbl_studienordnung.updatevon AS updatevon_studienordnung,
status_kurzbz,
standort_id,
studienplan_semester_id,
studiensemester_kurzbz,
semester
FROM
lehre.tbl_studienplan
JOIN lehre.tbl_studienordnung USING(studienordnung_id)