This commit is contained in:
kindlm
2016-03-07 17:34:20 +01:00
33 changed files with 6934 additions and 5042 deletions
+245
View File
@@ -0,0 +1,245 @@
<?php
/* Copyright (C) 2015 fhcomplete.org
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Stefan Puraner <stefan.puraner@technikum-wien.at>
*/
/**
* Klasse Bewerbungstermin
* @create 10-01-2007
*/
require_once(dirname(__FILE__).'/basis_db.class.php');
class bewerbungstermin extends basis_db
{
public $new; // boolean
public $result = array();
//Tabellenspalten
public $bewerbungstermin_id;// integer
public $studiengang_kz; //integer
public $studiensemester_kurzbz; // string
public $beginn; // timestamp
public $ende; // timestamp
public $nachfrist; // boolean
public $nachfrist_ende; // timestamp
public $anmerkung; // string
public $insertamum; // timestamp
public $insertvon; // bigint
public $updateamum; // timestamp
public $updatevon; // bigint
/**
* Konstruktor
* @param $reihungstest_id ID der Adresse die geladen werden soll (Default=null)
*/
public function __construct($bewerbungstermin_id=null)
{
parent::__construct();
if(!is_null($bewerbungstermin_id))
$this->load($bewerbungstermin_id);
}
/**
* Laedt den Fördervertrag mit der ID $foerdervertrag_id
* @param $foerdervertrag_id ID des zu ladenden Fördervertrags
* @return true wenn ok, false im Fehlerfall
*/
public function load($bewerbungstermin_id)
{
if(!is_numeric($bewerbungstermin_id))
{
$this->errormsg = 'bewerbungstermin_id ist ungueltig';
return false;
}
$qry = "SELECT * FROM public.tbl_bewerbungstermine WHERE bewerbungstermin_id=".$this->db_add_param($bewerbungstermin_id, FHC_INTEGER, false);
if($this->db_query($qry))
{
if($row = $this->db_fetch_object())
{
$this->bewerbungstermin_id = $row->bewerbungstermin_id;
$this->studiengang_kz = $row->studiengang_kz;
$this->studiensemester_kurzbz = $row->studiensemester_kurzbz;
$this->beginn = $row->beginn;
$this->ende = $row->ende;
$this->nachfrist = $row->nachfrist;
$this->nachfrist_ende = $row->nachfrist_ende;
$this->anmerkung = $row->anmerkung;
$this->insertamum = $row->insertamum;
$this->insertvon = $row->insertvon;
$this->updateamum = $row->updateamum;
$this->updatevon = $row->updatevon;
return true;
}
else
{
$this->errormsg = 'Bewerbungstermin existiert nicht';
return false;
}
}
else
{
$this->errormsg = 'Fehler beim Laden des Bewerbungstermins';
return false;
}
}
/**
* Liefert alle Förderverträge
*/
public function getBewerbungstermine($studiengang_kz, $studiensemester_kurzbz=null, $sort=null)
{
$qry = "SELECT * FROM public.tbl_bewerbungstermine WHERE studiengang_kz=".$this->db_add_param($studiengang_kz, FHC_INTEGER);
if($studiensemester_kurzbz!=null)
$qry.=" AND studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz);
if($sort != null)
{
$qry.=" ORDER BY ".$sort;
}
$qry.=";";
if($this->db_query($qry))
{
while($row = $this->db_fetch_object())
{
$obj = new bewerbungstermin();
$obj->bewerbungstermin_id = $row->bewerbungstermin_id;
$obj->studiengang_kz = $row->studiengang_kz;
$obj->studiensemester_kurzbz = $row->studiensemester_kurzbz;
$obj->beginn = $row->beginn;
$obj->ende = $row->ende;
$obj->nachfrist = $this->db_parse_bool($row->nachfrist);
$obj->nachfrist_ende = $row->nachfrist_ende;
$obj->anmerkung = $row->anmerkung;
$obj->insertamum = $row->insertamum;
$obj->insertvon = $row->insertvon;
$obj->updateamum = $row->updateamum;
$obj->updatevon = $row->updatevon;
$this->result[] = $obj;
}
return true;
}
else
{
$this->errormsg = 'Fehler beim Laden der Bewerbungstermine.';
return false;
}
}
/**
* Prueft die Variablen auf Gueltigkeit
* @return true wenn ok, false im Fehlerfall
*/
private function validate()
{
return true;
}
/**
* Speichert den aktuellen Datensatz in die Datenbank
* Wenn $neu auf true gesetzt ist wird ein neuer Datensatz angelegt
* andernfalls wird der Datensatz mit der ID in $reihungstest_id aktualisiert
* @return true wenn ok, false im Fehlerfall
*/
public function save()
{
if(!$this->validate())
return false;
if($this->new)
{
//Neuen Datensatz einfuegen
$qry='BEGIN; INSERT INTO public.tbl_bewerbungstermine(studiensemester_kurzbz, studiengang_kz, beginn, ende, nachfrist, nachfrist_ende, anmerkung, insertamum, insertvon) VALUES('.
$this->db_add_param($this->studiensemester_kurzbz).', '.
$this->db_add_param($this->studiengang_kz, FHC_INTEGER).', '.
$this->db_add_param($this->beginn).', '.
$this->db_add_param($this->ende).', '.
$this->db_add_param($this->nachfrist, FHC_BOOLEAN).', '.
$this->db_add_param($this->nachfrist_ende).', '.
$this->db_add_param($this->anmerkung).', now(),'.
$this->db_add_param($this->insertvon).');';
}
else
{
$qry='UPDATE public.tbl_bewerbungstermine SET '.
'studiensemester_kurzbz='.$this->db_add_param($this->studiensemester_kurzbz).', '.
'studiengang_kz='.$this->db_add_param($this->studiengang_kz,FHC_INTEGER).', '.
'beginn='.$this->db_add_param($this->beginn).', '.
'ende='.$this->db_add_param($this->ende).', '.
'nachfrist='.$this->db_add_param($this->nachfrist, FHC_BOOLEAN).', '.
'nachfrist_ende='.$this->db_add_param($this->nachfrist_ende).', '.
'anmerkung='.$this->db_add_param($this->anmerkung).', '.
'updateamum= now(), '.
'updatevon='.$this->db_add_param($this->updatevon).' '.
'WHERE bewerbungstermin_id='.$this->db_add_param($this->bewerbungstermin_id, FHC_INTEGER, false).';';
}
if($this->db_query($qry))
{
if($this->new)
{
$qry = "SELECT currval('public.tbl_bewerbungstermine_bewerbungstermin_id_seq') as id";
if($this->db_query($qry))
{
if($row = $this->db_fetch_object())
{
$this->foerdervertrag_id = $row->id;
$this->db_query('COMMIT');
return true;
}
else
{
$this->errormsg = 'Fehler beim Auslesen der Sequence';
$this->db_query('ROLLBACK');
return false;
}
}
else
{
$this->errormsg = 'Fehler beim Auslesen der Sequence';
$this->db_query('ROLLBACK');
return false;
}
}
return true;
}
else
{
$this->errormsg = 'Fehler beim Speichern der Daten';
return false;
}
}
public function delete($bewerbungstermin_id)
{
$qry = "DELETE from public.tbl_bewerbungstermine WHERE bewerbungstermin_id=".$this->db_add_param($bewerbungstermin_id);
if(!$this->db_query($qry))
{
$this->errormsg = 'Fehler beim Löschen der Daten';
return false;
}
return true;
}
}
+30 -5
View File
@@ -66,6 +66,7 @@ class lehrveranstaltung extends basis_db
public $bezeichnung_arr = array();
public $semester_alternativ; // smallint
public $farbe;
public $lehrauftrag=true;
public $studienplan_lehrveranstaltung_id;
public $studienplan_lehrveranstaltung_id_parent;
@@ -82,6 +83,7 @@ class lehrveranstaltung extends basis_db
public $benotung=false;
public $lvinfo=false;
public $curriculum=true;
public $export=true;
/**
* Konstruktor
@@ -161,6 +163,7 @@ class lehrveranstaltung extends basis_db
$this->benotung = $this->db_parse_bool($row->benotung);
$this->lvinfo = $this->db_parse_bool($row->lvinfo);
$this->lehrauftrag = $this->db_parse_bool($row->lehrauftrag);
$this->bezeichnung_arr['German'] = $this->bezeichnung;
$this->bezeichnung_arr['English'] = $this->bezeichnung_english;
@@ -229,6 +232,7 @@ class lehrveranstaltung extends basis_db
$lv_obj->benotung = $this->db_parse_bool($row->benotung);
$lv_obj->lvinfo = $this->db_parse_bool($row->lvinfo);
$lv_obj->lehrauftrag = $this->db_parse_bool($row->lehrauftrag);
$lv_obj->bezeichnung_arr['German'] = $row->bezeichnung;
$lv_obj->bezeichnung_arr['English'] = $row->bezeichnung_english;
@@ -363,6 +367,7 @@ class lehrveranstaltung extends basis_db
$lv_obj->farbe = $row->farbe;
$lv_obj->benotung = $this->db_parse_bool($row->benotung);
$lv_obj->lvinfo = $this->db_parse_bool($row->lvinfo);
$lv_obj->lehrauftrag = $this->db_parse_bool($row->lehrauftrag);
$lv_obj->bezeichnung_arr['German'] = $row->bezeichnung;
$lv_obj->bezeichnung_arr['English'] = $row->bezeichnung_english;
@@ -492,6 +497,7 @@ class lehrveranstaltung extends basis_db
$lv_obj->farbe = $row->farbe;
$lv_obj->benotung = $this->db_parse_bool($row->benotung);
$lv_obj->lvinfo = $this->db_parse_bool($row->lvinfo);
$lv_obj->lehrauftrag = $this->db_parse_bool($row->lehrauftrag);
$lv_obj->bezeichnung_arr['German'] = $row->bezeichnung;
$lv_obj->bezeichnung_arr['English'] = $row->bezeichnung_english;
@@ -572,6 +578,7 @@ class lehrveranstaltung extends basis_db
$lv_obj->farbe = $row->farbe;
$lv_obj->benotung = $this->db_parse_bool($row->benotung);
$lv_obj->lvinfo = $this->db_parse_bool($row->lvinfo);
$lv_obj->lehrauftrag = $this->db_parse_bool($row->lehrauftrag);
$lv_obj->bezeichnung_arr['German'] = $row->bezeichnung;
$lv_obj->bezeichnung_arr['English'] = $row->bezeichnung_english;
@@ -730,7 +737,7 @@ class lehrveranstaltung extends basis_db
semester, ects, semesterstunden, anmerkung, lehre, lehreverzeichnis, aktiv, insertamum,
insertvon, planfaktor, planlektoren, planpersonalkosten, plankostenprolektor, updateamum, updatevon, sort,
zeugnis, projektarbeit, sprache, koordinator, bezeichnung_english, orgform_kurzbz, incoming, lehrtyp_kurzbz, oe_kurzbz,
raumtyp_kurzbz, anzahlsemester, semesterwochen, lvnr, semester_alternativ, farbe,sws,lvs,alvs,lvps,las,benotung,lvinfo) VALUES (' .
raumtyp_kurzbz, anzahlsemester, semesterwochen, lvnr, semester_alternativ, farbe,sws,lvs,alvs,lvps,las,benotung,lvinfo, lehrauftrag) VALUES (' .
$this->db_add_param($this->studiengang_kz) . ', ' .
$this->db_add_param($this->bezeichnung) . ', ' .
$this->db_add_param($this->kurzbz) . ', ' .
@@ -772,7 +779,8 @@ class lehrveranstaltung extends basis_db
$this->db_add_param($this->lvps).','.
$this->db_add_param($this->las).','.
$this->db_add_param($this->benotung, FHC_BOOLEAN).','.
$this->db_add_param($this->lvinfo, FHC_BOOLEAN)
$this->db_add_param($this->lvinfo, FHC_BOOLEAN).','.
$this->db_add_param($this->lehrauftrag, FHC_BOOLEAN)
.');';
}
else
@@ -825,7 +833,8 @@ class lehrveranstaltung extends basis_db
'lvps = '.$this->db_add_param($this->lvps).', '.
'las = '.$this->db_add_param($this->las).', '.
'benotung = '.$this->db_add_param($this->benotung, FHC_BOOLEAN).', '.
'lvinfo = '.$this->db_add_param($this->lvinfo, FHC_BOOLEAN).' '.
'lvinfo = '.$this->db_add_param($this->lvinfo, FHC_BOOLEAN).', '.
'lehrauftrag = '.$this->db_add_param($this->lehrauftrag, FHC_BOOLEAN).' '.
'WHERE lehrveranstaltung_id = ' . $this->db_add_param($this->lehrveranstaltung_id, FHC_INTEGER, false) . ';';
}
@@ -933,6 +942,7 @@ class lehrveranstaltung extends basis_db
$lv_obj->farbe = $row->farbe;
$lv_obj->benotung = $this->db_parse_bool($row->benotung);
$lv_obj->lvinfo = $this->db_parse_bool($row->lvinfo);
$lv_obj->lehrauftrag = $this->db_parse_bool($row->lehrauftrag);
$lv_obj->bezeichnung_arr['German'] = $row->bezeichnung;
$lv_obj->bezeichnung_arr['English'] = $row->bezeichnung_english;
@@ -1025,6 +1035,7 @@ class lehrveranstaltung extends basis_db
$l->farbe = $row->farbe;
$l->benotung = $this->db_parse_bool($row->benotung);
$l->lvinfo = $this->db_parse_bool($row->lvinfo);
$l->lehrauftrag = $this->db_parse_bool($row->lehrauftrag);
$l->bezeichnung_arr['German'] = $row->bezeichnung;
$l->bezeichnung_arr['English'] = $row->bezeichnung_english;
@@ -1142,6 +1153,7 @@ class lehrveranstaltung extends basis_db
$lv_obj->farbe = $row->farbe;
$lv_obj->benotung = $this->db_parse_bool($row->benotung);
$lv_obj->lvinfo = $this->db_parse_bool($row->lvinfo);
$lv_obj->lehrauftrag = $this->db_parse_bool($row->lehrauftrag);
$lv_obj->bezeichnung_arr['German'] = $row->bezeichnung;
$lv_obj->bezeichnung_arr['English'] = $row->bezeichnung_english;
@@ -1176,7 +1188,8 @@ class lehrveranstaltung extends basis_db
tbl_studienplan_lehrveranstaltung.koordinator as stpllv_koordinator,
tbl_studienplan_lehrveranstaltung.studienplan_lehrveranstaltung_id_parent,
tbl_studienplan_lehrveranstaltung.sort stpllv_sort,
tbl_studienplan_lehrveranstaltung.curriculum
tbl_studienplan_lehrveranstaltung.curriculum,
tbl_studienplan_lehrveranstaltung.export
FROM lehre.tbl_lehrveranstaltung
JOIN lehre.tbl_studienplan_lehrveranstaltung
USING(lehrveranstaltung_id)
@@ -1234,6 +1247,7 @@ class lehrveranstaltung extends basis_db
$obj->stpllv_sort = $row->stpllv_sort;
$obj->benotung = $this->db_parse_bool($row->benotung);
$obj->lvinfo = $this->db_parse_bool($row->lvinfo);
$obj->lehrauftrag = $this->db_parse_bool($row->lehrauftrag);
$obj->bezeichnung_arr['German'] = $row->bezeichnung;
$obj->bezeichnung_arr['English'] = $row->bezeichnung_english;
@@ -1246,6 +1260,7 @@ class lehrveranstaltung extends basis_db
$obj->studienplan_lehrveranstaltung_id = $row->studienplan_lehrveranstaltung_id;
$obj->studienplan_lehrveranstaltung_id_parent = $row->studienplan_lehrveranstaltung_id_parent;
$obj->curriculum = $this->db_parse_bool($row->curriculum);
$obj->export = $this->db_parse_bool($row->export);
$obj->new = false;
$this->lehrveranstaltungen[] = $obj;
@@ -1322,6 +1337,7 @@ class lehrveranstaltung extends basis_db
$obj->benotung = $this->db_parse_bool($lv->benotung);
$obj->lvinfo =$this->db_parse_bool( $lv->lvinfo);
$obj->zeugnis = $this->db_parse_bool($lv->zeugnis);
$obj->lehrauftrag = $this->db_parse_bool($lv->lehrauftrag);
$values[] = $obj;
@@ -1346,6 +1362,7 @@ class lehrveranstaltung extends basis_db
$obj->benotung = $this->db_parse_bool($this->benotung);
$obj->lvinfo =$this->db_parse_bool( $this->lvinfo);
$obj->zeugnis = $this->db_parse_bool($this->zeugnis);
$obj->lehrauftrag = $this->db_parse_bool($this->lehrauftrag);
$values[] = $obj;
}
@@ -1395,7 +1412,9 @@ class lehrveranstaltung extends basis_db
$obj->lvinfo = $lv->lvinfo;
$obj->zeugnis = $lv->zeugnis;
$obj->curriculum = $lv->curriculum;
$obj->export = $lv->export;
$obj->lehrauftrag = $lv->lehrauftrag;
$obj->lehre = $lv->lehre;
$obj->children = array();
if(count($lv->childs) > 0)
{
@@ -1424,6 +1443,7 @@ class lehrveranstaltung extends basis_db
$obj->lvinfo =$this->db_parse_bool( $this->lvinfo);
$obj->zeugnis = $this->db_parse_bool($this->zeugnis);
$obj->curriculum = $this->db_parse_bool($this->curriculum);
$obj->lehrauftrag = $this->lehrauftrag;
$values[] = $obj;
}
@@ -1525,6 +1545,7 @@ class lehrveranstaltung extends basis_db
$lv_obj->farbe = $row->farbe;
$lv_obj->benotung = $this->db_parse_bool($row->benotung);
$lv_obj->lvinfo = $this->db_parse_bool($row->lvinfo);
$lv_obj->lehrauftrag = $this->db_parse_bool($row->lehrauftrag);
$lv_obj->bezeichnung_arr['German'] = $row->bezeichnung;
$lv_obj->bezeichnung_arr['English'] = $row->bezeichnung_english;
@@ -1690,6 +1711,7 @@ class lehrveranstaltung extends basis_db
$lv_obj->oe_kurzbz = $row->oe_kurzbz;
$lv_obj->benotung = $this->db_parse_bool($row->benotung);
$lv_obj->lvinfo = $this->db_parse_bool($row->lvinfo);
$lv_obj->lehrauftrag = $this->db_parse_bool($row->lehrauftrag);
$lv_obj->bezeichnung_arr['German'] = $row->bezeichnung;
$lv_obj->bezeichnung_arr['English'] = $row->bezeichnung_english;
@@ -1817,6 +1839,7 @@ class lehrveranstaltung extends basis_db
$lv_obj->farbe = $row->farbe;
$lv_obj->benotung = $this->db_parse_bool($row->benotung);
$lv_obj->lvinfo = $this->db_parse_bool($row->lvinfo);
$lv_obj->lehrauftrag = $this->db_parse_bool($row->lehrauftrag);
$lv_obj->studiengang_kurzbzlang = $row->studiengang_kurzbzlang;
@@ -1942,6 +1965,7 @@ class lehrveranstaltung extends basis_db
$lv_obj->farbe = $row->farbe;
$lv_obj->benotung = $this->db_parse_bool($row->benotung);
$lv_obj->lvinfo = $this->db_parse_bool($row->lvinfo);
$lv_obj->lehrauftrag = $this->db_parse_bool($row->lehrauftrag);
$lv_obj->bezeichnung_arr['German'] = $row->bezeichnung;
$lv_obj->bezeichnung_arr['English'] = $row->bezeichnung_english;
@@ -2206,6 +2230,7 @@ class lehrveranstaltung extends basis_db
$obj->farbe = $row->farbe;
$obj->benotung = $this->db_parse_bool($row->benotung);
$obj->lvinfo = $this->db_parse_bool($row->lvinfo);
$obj->lehrauftrag = $this->db_parse_bool($row->lehrauftrag);
$obj->bezeichnung_arr['German'] = $row->bezeichnung;
$obj->bezeichnung_arr['English'] = $row->bezeichnung_english;
+19 -15
View File
@@ -21,7 +21,7 @@
require_once(dirname(__FILE__)."/jquery.php");
echo '
<script>
var TARGET = "";
var SERVICE_TARGET = "";
function _GET()
{
var url = window.location.href;
@@ -37,16 +37,16 @@ echo '
return vars;
}
function AJAXCall(info, successfunction)
function AJAXCall(action, successfunction)
{
if(TARGET == "")
if(SERVICE_TARGET == "")
die("Es wurde kein AJAX-Target angegeben");
$.ajax(
{
url: TARGET,
url: SERVICE_TARGET,
type: "POST",
dataType: "html",
data: info,
data: action,
timeout: 5000
}).done(function(result)
@@ -60,17 +60,20 @@ echo '
die(result);
return false;
}
if(res.erfolg)
if(res.return)
{
try
if(res.action != "")
{
var ret = JSON.parse(res.info);
successfunction(ret);
}
catch(e)
{
die(res.info);
try
{
var ret = JSON.parse(res.action);
}
catch(e)
{
die(action.action + "<br><br>" + res.action);
}
}
successfunction(ret);
}
else
{
@@ -79,13 +82,14 @@ echo '
}).fail(function(jqXHR, status)
{
die(status);
die("AJAX failed: " + status);
});
}
function die(msg)
{
document.body.innerHTML = msg;
var full = "<h1 style=\'color:#900;\'>Fehler:</h1><div>"+msg+"</div>";
document.body.innerHTML = full;
throw new Error(msg);
}
+6 -7
View File
@@ -31,12 +31,12 @@ function returnAJAX($success, $obj)
//if there is an error
if(error_get_last())
$ret = array(
"erfolg" => false,
"return" => false,
);
else if(!$success)
{
$ret = array(
"erfolg" => false,
"return" => false,
"message" => $obj,
);
}
@@ -44,20 +44,19 @@ function returnAJAX($success, $obj)
else if (!$getuid = get_uid())
{
$ret = array(
"erfolg" => false,
"return" => false,
);
}
//if everything worked fine
else
{
$ret = array(
"erfolg" => true,
"user" => $getuid,
"info" => $obj,
"return" => true,
"action" => $obj,
);
}
echo json_encode($ret);
if($ret["erfolg"] === false)
if($ret["return"] === false)
die("");
}
?>
File diff suppressed because it is too large Load Diff
+128 -60
View File
@@ -20,6 +20,7 @@
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
require_once(dirname(__FILE__).'/person.class.php');
require_once(dirname(__FILE__).'/log.class.php');
class prestudent extends person
{
@@ -46,17 +47,17 @@ class prestudent extends person
public $punkte; //rt_gesamtpunkte
public $rt_punkte1;
public $rt_punkte2;
public $rt_punkte3 = 0;
public $bismelden = true;
public $rt_punkte3 = 0;
public $bismelden = true;
public $anmerkung;
public $anmerkung_status;
public $mentor;
public $ext_id_prestudent;
public $dual = false;
public $zgvdoktor_code;
public $zgvdoktorort;
public $zgvdoktordatum;
public $zgvdoktornation;
public $dual = false;
public $zgvdoktor_code;
public $zgvdoktorort;
public $zgvdoktordatum;
public $zgvdoktornation;
public $status_kurzbz;
public $studiensemester_kurzbz;
@@ -565,8 +566,8 @@ class prestudent extends person
(
SELECT
*, (SELECT status_kurzbz FROM tbl_prestudentstatus
WHERE prestudent_id=prestudent.prestudent_id $stsemqry
ORDER BY datum DESC, insertamum DESC, ext_id DESC LIMIT 1) AS rolle
WHERE prestudent_id=prestudent.prestudent_id $stsemqry
ORDER BY datum DESC, insertamum DESC, ext_id DESC LIMIT 1) AS rolle
FROM tbl_prestudent prestudent ORDER BY prestudent_id
) a, tbl_prestudentstatus, tbl_person
WHERE a.rolle=tbl_prestudentstatus.status_kurzbz AND
@@ -1118,9 +1119,9 @@ class prestudent extends person
$obj->ext_id_prestudent = $row->ext_id;
$obj->dual = $this->db_parse_bool($row->dual);
$obj->ausstellungsstaat = $row->ausstellungsstaat;
$obj->zgvdoktor_code = $row->zgvdoktor_code;
$obj->zgvdoktorort = $row->zgvdoktorort;
$obj->zgvdoktordatum = $row->zgvdoktordatum;
$obj->zgvdoktor_code = $row->zgvdoktor_code;
$obj->zgvdoktorort = $row->zgvdoktorort;
$obj->zgvdoktordatum = $row->zgvdoktordatum;
$this->result[] = $obj;
}
@@ -1133,56 +1134,60 @@ class prestudent extends person
}
}
/**
* Gibt die eingetragenen ZGV zurück
* @return array
*/
public function getZgv() {
/**
* Gibt die eingetragenen ZGV zurück
* @return array
*/
public function getZgv()
{
$zgv = array(
'bachelor' => array(),
'master' => array(),
// 'doktor' => array(),
);
$attribute = array(
'art',
'ort',
'datum',
'nation',
);
$db_attribute = array(
'zgv_code',
'zgvort',
'zgvdatum',
'zgvnation',
'zgvmas_code',
'zgvmaort',
'zgvmadatum',
'zgvmanation',
'zgvdoktor_code',
'zgvdoktorort',
'zgvdoktordatum',
'zgvdoktornation',
);
$zgv = array
(
'bachelor' => array(),
'master' => array(),
//'doktor' => array(),
);
$attribute = array
(
'art',
'ort',
'datum',
'nation',
);
$db_attribute = array
(
'zgv_code',
'zgvort',
'zgvdatum',
'zgvnation',
'zgvmas_code',
'zgvmaort',
'zgvmadatum',
'zgvmanation',
'zgvdoktor_code',
'zgvdoktorort',
'zgvdoktordatum',
'zgvdoktornation',
);
foreach($this->result as $prestudent) {
foreach($zgv as &$value) {
foreach($attribute as $attribut) {
$db_attribute_name = current($db_attribute);
if($prestudent->$db_attribute_name) {
$value[$attribut] = $prestudent->$db_attribute_name;
}
next($db_attribute);
}
}
reset($db_attribute);
}
return $zgv;
}
foreach($this->result as $prestudent)
{
foreach($zgv as &$value)
{
foreach($attribute as $attribut)
{
$db_attribute_name = current($db_attribute);
if($prestudent->$db_attribute_name)
{
$value[$attribut] = $prestudent->$db_attribute_name;
}
next($db_attribute);
}
}
reset($db_attribute);
}
return $zgv;
}
/**
* Liefert die Anzahl der Bewerber im ausgewaehlten Bereich
@@ -1711,4 +1716,67 @@ 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;
}
$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
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;
}
}
}
+32 -15
View File
@@ -42,8 +42,11 @@ class projekt extends basis_db
public $insertvon; // string
public $updateamum; // timestamp
public $updatevon; // string
public $budget;
public $farbe;
public $budget;
public $farbe;
public $anzahl_ma; // integer
public $aufwand_pt; // integer
/**
@@ -79,7 +82,9 @@ class projekt extends basis_db
$this->ende = $row->ende;
$this->oe_kurzbz= $row->oe_kurzbz;
$this->budget= $row->budget;
$this->farbe= $row->farbe;
$this->farbe= $row->farbe;
$this->anzahl_ma = $row->anzahl_ma;
$this->aufwand_pt = $row->aufwand_pt;
return true;
}
@@ -129,8 +134,10 @@ class projekt extends basis_db
$obj->ende = $row->ende;
$obj->oe_kurzbz = $row->oe_kurzbz;
$obj->budget = $row->budget;
$obj->farbe = $row->farbe;
$obj->aufwandstyp_kurzbz = $row->aufwandstyp_kurzbz;
$obj->farbe = $row->farbe;
$obj->aufwandstyp_kurzbz = $row->aufwandstyp_kurzbz;
$obj->anzahl_ma = $row->anzahl_ma;
$obj->aufwand_pt = $row->aufwand_pt;
$this->result[] = $obj;
}
@@ -171,8 +178,10 @@ class projekt extends basis_db
$obj->ende = $row->ende;
$obj->oe_kurzbz = $row->oe_kurzbz;
$obj->budget = $row->budget;
$obj->farbe = $row->farbe;
$obj->farbe = $row->farbe;
$obj->anzahl_ma = $row->anzahl_ma;
$obj->aufwand_pt = $row->aufwand_pt;
$this->result[] = $obj;
}
return true;
@@ -211,9 +220,11 @@ class projekt extends basis_db
$obj->ende = $row->ende;
$obj->oe_kurzbz = $row->oe_kurzbz;
$obj->budget = $row->budget;
$obj->farbe = $row->farbe;
$obj->aufwandstyp_kurzbz = $row->aufwandstyp_kurzbz;
$obj->farbe = $row->farbe;
$obj->aufwandstyp_kurzbz = $row->aufwandstyp_kurzbz;
$obj->anzahl_ma = $row->anzahl_ma;
$obj->aufwand_pt = $row->aufwand_pt;
$this->result[] = $obj;
}
return true;
@@ -280,7 +291,7 @@ class projekt extends basis_db
{
//Neuen Datensatz einfuegen
$qry='INSERT INTO fue.tbl_projekt (projekt_kurzbz, nummer, titel,beschreibung, beginn, ende, budget, farbe, oe_kurzbz, aufwandstyp_kurzbz) VALUES('.
$qry='INSERT INTO fue.tbl_projekt (projekt_kurzbz, nummer, titel,beschreibung, beginn, ende, budget, farbe, oe_kurzbz, aufwand_pt, anzahl_ma, aufwandstyp_kurzbz) VALUES('.
$this->db_add_param($this->projekt_kurzbz).', '.
$this->db_add_param($this->nummer).', '.
$this->db_add_param($this->titel).', '.
@@ -289,7 +300,9 @@ class projekt extends basis_db
$this->db_add_param($this->ende).', '.
$this->db_add_param($this->budget).', '.
$this->db_add_param($this->farbe).', '.
$this->db_add_param($this->oe_kurzbz).','.
$this->db_add_param($this->oe_kurzbz).','.
$this->db_add_param($this->aufwand_pt).','.
$this->db_add_param($this->anzahl_ma).','.
$this->db_add_param($this->aufwandstyp_kurzbz).');';
}
else
@@ -305,7 +318,9 @@ class projekt extends basis_db
'ende='.$this->db_add_param($this->ende).', '.
'budget='.$this->db_add_param($this->budget).', '.
'farbe='.$this->db_add_param($this->farbe).', '.
'oe_kurzbz='.$this->db_add_param($this->oe_kurzbz).', '.
'oe_kurzbz='.$this->db_add_param($this->oe_kurzbz).', '.
'anzahl_ma='.$this->db_add_param($this->anzahl_ma).', '.
'aufwand_pt='.$this->db_add_param($this->aufwand_pt).', '.
'aufwandstyp_kurzbz='.$this->db_add_param($this->aufwandstyp_kurzbz).' '.
'WHERE projekt_kurzbz='.$this->db_add_param($this->projekt_kurzbz).';';
}
@@ -416,8 +431,10 @@ class projekt extends basis_db
$this->ende = $row->ende;
$this->oe_kurzbz= $row->oe_kurzbz;
$this->budget= $row->budget;
$this->farbe= $row->farbe;
$this->farbe= $row->farbe;
$this->anzahl_ma = $row->anzahl_ma;
$this->aufwand_pt = $row->aufwand_pt;
return true;
}
else
+143 -72
View File
@@ -1,24 +1,24 @@
<?php
/*
* studienordnung.class.php
*
*
* Copyright 2013 fhcomplete.org
*
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
* MA 02110-1301, USA.
*
*
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>
* Andreas Österreicher <andreas.oesterreicher@technikum-wien.at>
@@ -44,6 +44,9 @@ class studienordnung extends basis_db
protected $studiengangbezeichnung_englisch; // varchar (256)
protected $studiengangkurzbzlang; // varchar (256)
protected $akadgrad_id; // integer (FK akadgrad)
protected $status_kurzbz; //varchar(32)
protected $standort_id;
protected $orgform_kurzbz;
protected $updateamum; // timestamp
protected $updatevon; // varchar
protected $insertamum; // timestamp
@@ -56,7 +59,7 @@ class studienordnung extends basis_db
{
parent::__construct();
}
public function __set($name,$value)
{
switch ($name)
@@ -75,7 +78,7 @@ class studienordnung extends basis_db
{
return $this->$name;
}
/**
* Laedt die Studienordnung mit der ID $studienordnung_id
* @param $studienordnung_id ID der zu ladenden Studienordnung
@@ -112,6 +115,8 @@ class studienordnung extends basis_db
$this->studiengangbezeichnung_englisch = $row->studiengangbezeichnung_englisch;
$this->studiengangkurzbzlang = $row->studiengangkurzbzlang;
$this->akadgrad_id = $row->akadgrad_id;
$this->status_kurzbz = $row->status_kurzbz;
$this->standort_id = $row->standort_id;
$this->updateamum = $row->updateamum;
$this->updatevon = $row->updatevon;
$this->insertamum = $row->insertamum;
@@ -144,22 +149,16 @@ class studienordnung extends basis_db
if(is_null($studiensemester_kurzbz))
{
$qry = 'SELECT
*
FROM
lehre.tbl_studienordnung
WHERE
studiengang_kz='.$this->db_add_param($studiengang_kz, FHC_INTEGER, false);
$qry = 'SELECT sto.*, s.bezeichnung as status_bezeichnung FROM lehre.tbl_studienordnung sto
JOIN lehre.tbl_studienordnungstatus s USING(status_kurzbz)
WHERE studiengang_kz='.$this->db_add_param($studiengang_kz, FHC_INTEGER, false);
}
else
{
$qry = 'SELECT
*
FROM
lehre.tbl_studienordnung
LEFT JOIN lehre.tbl_studienordnung_semester USING (studienordnung_id)
WHERE
studiengang_kz='.$this->db_add_param($studiengang_kz, FHC_INTEGER, false);
$qry = 'SELECT sto.*, s.bezeichnung as status_bezeichnung, sem.* FROM lehre.tbl_studienordnung sto
JOIN lehre.tbl_studienordnungstatus s USING(status_kurzbz)
LEFT JOIN lehre.tbl_studienordnung_semester sem USING (studienordnung_id)
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);
@@ -188,6 +187,9 @@ class studienordnung extends basis_db
$obj->studiengangbezeichnung_englisch = $row->studiengangbezeichnung_englisch;
$obj->studiengangkurzbzlang = $row->studiengangkurzbzlang;
$obj->akadgrad_id = $row->akadgrad_id;
$obj->status_kurzbz = $row->status_kurzbz;
$obj->status_bezeichnung = $row->status_bezeichnung;
$obj->standort_id = $row->standort_id;
$obj->updateamum = $row->updateamum;
$obj->updatevon = $row->updatevon;
$obj->insertamum = $row->insertamum;
@@ -269,7 +271,7 @@ class studienordnung extends basis_db
$this->errormsg = '';
return true;
}
/**
* Speichert den aktuellen Datensatz in die Datenbank
* @return true wenn ok, false im Fehlerfall
@@ -283,7 +285,7 @@ class studienordnung extends basis_db
if($this->new)
{
//Neuen Datensatz einfuegen
$qry='BEGIN;INSERT INTO lehre.tbl_studienordnung (studiengang_kz, version, bezeichnung, ects, gueltigvon, gueltigbis, studiengangbezeichnung, studiengangbezeichnung_englisch, studiengangkurzbzlang, akadgrad_id, insertamum, insertvon) VALUES ('.
$qry='BEGIN;INSERT INTO lehre.tbl_studienordnung (studiengang_kz, version, bezeichnung, ects, gueltigvon, gueltigbis, studiengangbezeichnung, studiengangbezeichnung_englisch, studiengangkurzbzlang, akadgrad_id, standort_id, status_kurzbz, insertamum, insertvon) VALUES ('.
$this->db_add_param($this->studiengang_kz, FHC_INTEGER).', '.
$this->db_add_param($this->version).', '.
$this->db_add_param($this->bezeichnung).', '.
@@ -294,6 +296,8 @@ class studienordnung extends basis_db
$this->db_add_param($this->studiengangbezeichnung_englisch).', '.
$this->db_add_param($this->studiengangkurzbzlang).', '.
$this->db_add_param($this->akadgrad_id,FHC_INTEGER).', '.
$this->db_add_param($this->standort_id,FHC_INTEGER).', '.
$this->db_add_param($this->status_kurzbz).', '.
' now(), '.
$this->db_add_param($this->insertvon).');';
}
@@ -316,11 +320,13 @@ class studienordnung extends basis_db
' studiengangbezeichnung_englisch='.$this->db_add_param($this->studiengangbezeichnung_englisch).', '.
' studiengangkurzbzlang='.$this->db_add_param($this->studiengangkurzbzlang).','.
' akadgrad_id='.$this->db_add_param($this->akadgrad_id, FHC_INTEGER).', '.
' standort_id='.$this->db_add_param($this->standort_id, FHC_INTEGER).', '.
' status_kurzbz='.$this->db_add_param($this->status_kurzbz, FHC_INTEGER).', '.
' updateamum= now(), '.
' updatevon='.$this->db_add_param($this->updatevon).' '.
' WHERE studienordnung_id='.$this->db_add_param($this->studienordnung_id, FHC_INTEGER, false).';';
}
if($this->db_query($qry))
{
if($this->new)
@@ -410,6 +416,8 @@ class studienordnung extends basis_db
$obj->studiengangbezeichnung_englisch = $row->studiengangbezeichnung_englisch;
$obj->studiengangkurzbzlang = $row->studiengangkurzbzlang;
$obj->akadgrad_id = $row->akadgrad_id;
$obj->standort_id = $row->standort_id;
$obj->status_kurzbz = $row->status_kurzbz;
$obj->updateamum = $row->updateamum;
$obj->updatevon = $row->updatevon;
$obj->insertamum = $row->insertamum;
@@ -433,6 +441,8 @@ class studienordnung extends basis_db
$obj->studiengangbezeichnung_englisch = $this->studiengangbezeichnung_englisch;
$obj->studiengangkurzbzlang = $this->studiengangkurzbzlang;
$obj->akadgrad_id = $this->akadgrad_id;
$obj->standort_id = $this->standort_id;
$obj->status_kurzbz = $this->status_kurzbz;
$obj->updateamum = $this->updateamum;
$obj->updatevon = $this->updatevon;
$obj->insertamum = $this->insertamum;
@@ -441,7 +451,7 @@ class studienordnung extends basis_db
}
return $data;
}
/**
* speichert die Semesterzuordnung für die Studieordnung
* @param int $studienordnung_id Die ID der Studienordnung
@@ -455,21 +465,21 @@ class studienordnung extends basis_db
$this->errormsg = 'studienordnung_id muss eine gueltige Zahl sein';
return false;
}
if(!is_string($studiensemester_kurzbz) || strlen($studiensemester_kurzbz)!=6)
{
$this->errormsg = 'studiensemester_kurzbz muss ein String mit 6 Zeichen sein';
return false;
}
if(!is_numeric($ausbildungssemester))
{
$this->errormsg = 'ausbildungssemester muss eine gueltige Zahl sein';
return false;
}
//lvar_dump($this->isZuordnungGuelitg($studiensemester_kurzbz));
//Prüfung ob Zuordnung im Gültigkeitszeitraum der Studienordnung
//if(($studiensemester_kurzbz >= $this->gueltigvon && $studiensemester_kurzbz <= $this->gueltigbis) || ($studiensemester_kurzbz >= $this->gueltigvon && $this->gueltigbis == null))
if($this->isZuordnungGuelitg($studiensemester_kurzbz))
@@ -502,7 +512,7 @@ class studienordnung extends basis_db
}
return true;
}
/**
* prüft ob die Semesterzuordnung für die Studieordnung bereits vorhanden ist
* @param int $studienordnung_id Die ID der Studienordnung
@@ -516,24 +526,24 @@ class studienordnung extends basis_db
$this->errormsg = 'studienordnung_id muss eine gueltige Zahl sein';
return false;
}
if(!is_string($studiensemester_kurzbz) || strlen($studiensemester_kurzbz)!=6)
{
$this->errormsg = 'studiensemester_kurzbz muss ein String mit 6 Zeichen sein';
return false;
}
if(!is_numeric($ausbildungssemester))
{
$this->errormsg = 'ausbildungssemester muss eine gueltige Zahl sein';
return false;
}
$qry = 'SELECT * FROM lehre.tbl_studienordnung_semester WHERE
studienordnung_id='.$this->db_add_param($studienordnung_id).' AND
studiensemester_kurzbz='.$this->db_add_param($studiensemester_kurzbz).' AND
$qry = 'SELECT * FROM lehre.tbl_studienordnung_semester WHERE
studienordnung_id='.$this->db_add_param($studienordnung_id).' AND
studiensemester_kurzbz='.$this->db_add_param($studiensemester_kurzbz).' AND
semester='.$this->db_add_param($ausbildungssemester).';';
if($this->db_query($qry))
{
if($this->db_num_rows() == 1)
@@ -548,7 +558,7 @@ class studienordnung extends basis_db
}
return false;
}
/**
* prüft ob die Studienordnung aktiv ist
* @param int $studienordnung_id Die ID der Studienordnung
@@ -563,9 +573,9 @@ class studienordnung extends basis_db
return false;
}
$qry = 'SELECT * FROM lehre.tbl_studienordnung_semester WHERE
$qry = 'SELECT * FROM lehre.tbl_studienordnung_semester WHERE
studienordnung_id='.$this->db_add_param($studienordnung_id).';';
if($this->db_query($qry))
{
if($this->db_num_rows() >= 1)
@@ -576,7 +586,7 @@ class studienordnung extends basis_db
}
return false;
}
/**
* lädt alle zugeordneten Semester einer Studienordnung
* @param int $studienordnung_id ID der Studienordnung
@@ -588,24 +598,24 @@ class studienordnung extends basis_db
$this->errormsg = 'studienordnung_id muss eine gueltige Zahl sein';
return false;
}
/* $qry = 'SELECT DISTINCT studiensemester_kurzbz, MAX(semester)
FROM lehre.tbl_studienordnung_semester
FROM lehre.tbl_studienordnung_semester
WHERE studienordnung_id='.$this->db_add_param($studienordnung_id).' GROUP BY studiensemester_kurzbz ORDER BY MAX(semester);';
*/
$qry = 'SELECT DISTINCT studiensemester_kurzbz, tbl_studiensemester.start
FROM
lehre.tbl_studienordnung_semester
FROM
lehre.tbl_studienordnung_semester
JOIN public.tbl_studiensemester USING(studiensemester_kurzbz)
WHERE studienordnung_id='.$this->db_add_param($studienordnung_id).'
ORDER BY tbl_studiensemester.start, studiensemester_kurzbz';
if(!$this->db_query($qry))
{
$this->errormsg = 'Fehler bei einer Datenbankabfrage';
return false;
}
$data = array();
while($row = $this->db_fetch_object())
{
@@ -614,20 +624,20 @@ class studienordnung extends basis_db
}
return $data;
}
public function loadAusbildungsemesterFromStudiensemester($studienordnung_id, $studiensemester_kurzbz)
{
$qry = 'SELECT semester
FROM lehre.tbl_studienordnung_semester
WHERE studienordnung_id='.$this->db_add_param($studienordnung_id).' AND
studiensemester_kurzbz='.$this->db_add_param($studiensemester_kurzbz).'
$qry = 'SELECT semester
FROM lehre.tbl_studienordnung_semester
WHERE studienordnung_id='.$this->db_add_param($studienordnung_id).' AND
studiensemester_kurzbz='.$this->db_add_param($studiensemester_kurzbz).'
ORDER BY semester;';
if(!$this->db_query($qry))
{
return false;
}
$data = array();
while($row = $this->db_fetch_object())
{
@@ -635,7 +645,7 @@ class studienordnung extends basis_db
}
return $data;
}
public function deleteSemesterZuordnung($studienordnung_id, $studiensemester_kurzbz, $studiensemester=NULL)
{
if(!is_numeric($studienordnung_id))
@@ -643,21 +653,21 @@ class studienordnung extends basis_db
$this->errormsg = 'studienordnung_id muss eine gueltige Zahl sein';
return false;
}
if(!is_string($studiensemester_kurzbz) || strlen($studiensemester_kurzbz)!=6)
{
$this->errormsg = 'studiensemester_kurzbz muss ein String mit 6 Zeichen sein';
return false;
}
$qry = 'DELETE FROM lehre.tbl_studienordnung_semester
WHERE studienordnung_id='.$this->db_add_param($studienordnung_id).' AND
$qry = 'DELETE FROM lehre.tbl_studienordnung_semester
WHERE studienordnung_id='.$this->db_add_param($studienordnung_id).' AND
studiensemester_kurzbz='.$this->db_add_param($studiensemester_kurzbz).'';
if($studiensemester !== null)
$qry.=' AND semester='.$this->db_add_param ($studiensemester).'';
$qry.=';';
if($this->db_query($qry))
{
return true;
@@ -668,7 +678,7 @@ class studienordnung extends basis_db
return false;
}
}
protected function isZuordnungGuelitg($studiensemester_kurzbz)
{
$studiensemester = new studiensemester();
@@ -676,12 +686,12 @@ class studienordnung extends basis_db
$semGueltigVon = $studiensemester->begin->start;
//$semGueltigBis = $studiensemester->ende->ende;
$studiensemester = new studiensemester();
$studiensemester->getTimestamp($this->gueltigvon);
$stoGueltigVon = $studiensemester->begin->start;
if($this->gueltigbis != null)
{
$studiensemester = new studiensemester();
@@ -698,7 +708,7 @@ class studienordnung extends basis_db
}
return false;
}
/**
* Laedt die Studienordnung zu der uebergebenen studienplan_id
* @param $studienplan_id der zu ladenden Studienordnung
@@ -735,6 +745,8 @@ class studienordnung extends basis_db
$this->studiengangbezeichnung_englisch = $row->studiengangbezeichnung_englisch;
$this->studiengangkurzbzlang = $row->studiengangkurzbzlang;
$this->akadgrad_id = $row->akadgrad_id;
$this->standort_id = $row->standort_id;
$this->status_kurzbz = $row->status_kurzbz;
$this->updateamum = $row->updateamum;
$this->updatevon = $row->updatevon;
$this->insertamum = $row->insertamum;
@@ -748,7 +760,7 @@ class studienordnung extends basis_db
$this->new=false;
return true;
}
/**
* Laedt alle Studienordnungen zu einem Studiengang der uebergeben wird, die noch nicht aktiv sind
* @param $studiengang_kz Kennzahl des Studiengangs
@@ -765,13 +777,13 @@ class studienordnung extends basis_db
return false;
}
$qry = 'SELECT
*
FROM
lehre.tbl_studienordnung
WHERE
$qry = 'SELECT
*
FROM
lehre.tbl_studienordnung
WHERE
studiengang_kz='.$this->db_add_param($studiengang_kz, FHC_INTEGER, false);
if(!$this->db_query($qry))
{
$this->errormsg = 'Fehler bei einer Datenbankabfrage';
@@ -793,6 +805,8 @@ class studienordnung extends basis_db
$obj->studiengangbezeichnung_englisch = $row->studiengangbezeichnung_englisch;
$obj->studiengangkurzbzlang = $row->studiengangkurzbzlang;
$obj->akadgrad_id = $row->akadgrad_id;
$this->standort_id = $row->standort_id;
$this->status_kurzbz = $row->status_kurzbz;
$obj->updateamum = $row->updateamum;
$obj->updatevon = $row->updatevon;
$obj->insertamum = $row->insertamum;
@@ -800,7 +814,7 @@ class studienordnung extends basis_db
$obj->new = false;
$this->result[] = $obj;
}
foreach($this->result as $key => $obj)
{
if($this->isAktiv($obj->studienordnung_id))
@@ -809,8 +823,65 @@ class studienordnung extends basis_db
}
}
array_values($this->result);
return true;
}
public function loadStudienordnungWithStatus($studiengang_kz, $status_kurzbz)
{
$qry = "SELECT sto.*, s.bezeichnung as status_bezeichnung "
. "FROM lehre.tbl_studienordnung sto "
. "JOIN lehre.tbl_studienordnungstatus s USING(status_kurzbz) "
. "WHERE status_kurzbz=" . $this->db_add_param($status_kurzbz, FHC_STRING) . ""
. " AND studiengang_kz=" . $this->db_add_param($studiengang_kz, FHC_INTEGER) . ";";
if (!$this->db_query($qry))
{
$this->errormsg = 'Fehler bei einer Datenbankabfrage';
return false;
}
while ($row = $this->db_fetch_object())
{
$obj = new studienordnung();
$obj->studienordnung_id = $row->studienordnung_id;
$obj->studiengang_kz = $row->studiengang_kz;
$obj->version = $row->version;
$obj->bezeichnung = $row->bezeichnung;
$obj->ects = $row->ects;
$obj->gueltigvon = $row->gueltigvon;
$obj->gueltigbis = $row->gueltigbis;
$obj->studiengangbezeichnung = $row->studiengangbezeichnung;
$obj->studiengangbezeichnung_englisch = $row->studiengangbezeichnung_englisch;
$obj->studiengangkurzbzlang = $row->studiengangkurzbzlang;
$obj->akadgrad_id = $row->akadgrad_id;
$obj->status_kurzbz = $row->status_kurzbz;
$obj->status_bezeichnung = $row->status_bezeichnung;
$obj->begruendung = json_decode($row->begruendung);
$obj->studiengangsart = $row->studiengangsart;
$obj->standort_id = $row->standort_id;
$obj->updateamum = $row->updateamum;
$obj->updatevon = $row->updatevon;
$obj->insertamum = $row->insertamum;
$obj->insertvon = $row->insertvon;
$obj->new = false;
$this->result[] = $obj;
}
return true;
}
public function changeState($studienordnung_id, $status_kurzbz)
{
$qry = "UPDATE lehre.tbl_studienordnung SET status_kurzbz=" . $this->db_add_param($status_kurzbz)
. " WHERE studienordnung_id=" . $this->db_add_param($studienordnung_id) . ";";
if (!$this->db_query($qry))
{
$this->errormsg = "Status konnte nicht geändert werden.";
return false;
}
return true;
}
}
?>
+341 -112
View File
@@ -46,6 +46,9 @@ class studienplan extends basis_db
protected $updatevon; // varchar
protected $insertamum; // timestamp
protected $insertvon; // varchar
protected $ects_stpl;
protected $pflicht_sws;
protected $pflicht_lvs;
//Tabellenspalten für Zwischentabelle tbl_studienplan_lehrveranstaltung
protected $studienplan_lehrveranstaltung_id; //integer
@@ -111,6 +114,9 @@ class studienplan extends basis_db
$this->aktiv = $this->db_parse_bool($row->aktiv);
$this->semesterwochen = $row->semesterwochen;
$this->testtool_sprachwahl = $this->db_parse_bool($row->testtool_sprachwahl);
$this->ects_stpl = $row->ects_stpl;
$this->pflicht_lvs = $row->pflicht_lvs;
$this->pflicht_sws = $row->pflicht_sws;
$this->updateamum = $row->updateamum;
$this->updatevon = $row->updatevon;
$this->insertamum = $row->insertamum;
@@ -164,6 +170,9 @@ class studienplan extends basis_db
$obj->aktiv = $this->db_parse_bool($row->aktiv);
$obj->semesterwochen = $row->semesterwochen;
$obj->testtool_sprachwahl = $this->db_parse_bool($row->testtool_sprachwahl);
$obj->ects_stpl = $row->ects_stpl;
$obj->pflicht_lvs = $row->pflicht_lvs;
$obj->pflicht_sws = $row->pflicht_sws;
$obj->updateamum = $row->updateamum;
$obj->updatevon = $row->updatevon;
$obj->insertamum = $row->insertamum;
@@ -257,7 +266,7 @@ class studienplan extends basis_db
//Neuen Datensatz einfuegen
$qry='BEGIN;INSERT INTO lehre.tbl_studienplan (studienordnung_id, orgform_kurzbz,version,
bezeichnung, regelstudiendauer, sprache, aktiv, semesterwochen, testtool_sprachwahl,
insertamum, insertvon) VALUES ('.
pflicht_sws, pflicht_lvs, ects_stpl, insertamum, insertvon) VALUES ('.
$this->db_add_param($this->studienordnung_id, FHC_INTEGER).', '.
$this->db_add_param($this->orgform_kurzbz).', '.
$this->db_add_param($this->version).', '.
@@ -267,6 +276,9 @@ class studienplan extends basis_db
$this->db_add_param($this->aktiv, FHC_BOOLEAN).', '.
$this->db_add_param($this->semesterwochen,FHC_INTEGER).', '.
$this->db_add_param($this->testtool_sprachwahl,FHC_BOOLEAN).', '.
$this->db_add_param($this->pflicht_sws) . ', ' .
$this->db_add_param($this->pflicht_lvs) . ', ' .
$this->db_add_param($this->ects_stpl) . ', ' .
'now(), '.
$this->db_add_param($this->insertvon).');';
}
@@ -288,6 +300,9 @@ class studienplan extends basis_db
' aktiv='.$this->db_add_param($this->aktiv, FHC_BOOLEAN).', '.
' semesterwochen='.$this->db_add_param($this->semesterwochen, FHC_INTEGER).', '.
' testtool_sprachwahl='.$this->db_add_param($this->testtool_sprachwahl, FHC_BOOLEAN).','.
' ects_stpl=' . $this->db_add_param($this->ects_stpl) . ',' .
' pflicht_sws=' . $this->db_add_param($this->pflicht_sws, FHC_INTEGER) . ',' .
' pflicht_lvs=' . $this->db_add_param($this->pflicht_lvs, FHC_INTEGER) . ',' .
' updateamum= now(), '.
' updatevon='.$this->db_add_param($this->updatevon).' '.
' WHERE studienplan_id='.$this->db_add_param($this->studienplan_id, FHC_INTEGER, false).';';
@@ -472,7 +487,7 @@ class studienplan extends basis_db
{
//Neuen Datensatz einfuegen
$qry = 'BEGIN;INSERT INTO lehre.tbl_studienplan_lehrveranstaltung (studienplan_id, lehrveranstaltung_id,
semester,studienplan_lehrveranstaltung_id_parent,pflicht, koordinator,
semester,studienplan_lehrveranstaltung_id_parent,pflicht, koordinator, curriculum, export
insertamum, insertvon) VALUES (' .
$this->db_add_param($this->studienplan_id, FHC_INTEGER) . ', ' .
$this->db_add_param($this->lehrveranstaltung_id, FHC_INTEGER) . ', ' .
@@ -480,6 +495,8 @@ class studienplan extends basis_db
$this->db_add_param($this->studienplan_lehrveranstaltung_id_parent, FHC_INTEGER) . ', ' .
$this->db_add_param($this->pflicht, FHC_BOOLEAN) . ', ' .
$this->db_add_param($this->koordinator) . ', ' .
$this->db_add_param($this->curriculum) . ', ' .
$this->db_add_param($this->export) . ', ' .
'now(), ' .
$this->db_add_param($this->insertvon) . ');';
}
@@ -499,6 +516,8 @@ class studienplan extends basis_db
' studienplan_lehrveranstaltung_id_parent=' . $this->db_add_param($this->studienplan_lehrveranstaltung_id_parent, FHC_INTEGER) . ', ' .
' pflicht=' . $this->db_add_param($this->pflicht, FHC_BOOLEAN) . ', ' .
' koordinator=' . $this->db_add_param($this->koordinator) . ', ' .
' curriculum=' . $this->db_add_param($this->curriculum, FHC_BOOLEAN) . ', ' .
' export=' . $this->db_add_param($this->export, FHC_BOOLEAN) . ', ' .
' updateamum= now(), ' .
' updatevon=' . $this->db_add_param($this->updatevon) . ' ' .
' WHERE studienplan_lehrveranstaltung_id=' . $this->db_add_param($this->studienplan_lehrveranstaltung_id, FHC_INTEGER, false) . ';';
@@ -584,6 +603,8 @@ class studienplan extends basis_db
$this->updateamum = $row->updateamum;
$this->updatevon = $row->updatevon;
$this->sort = $row->sort;
$this->curriculum = $row->curriculum;
$this->export = $row->export;
$this->new=false;
return true;
}
@@ -701,125 +722,333 @@ class studienplan extends basis_db
}
}
/**
* Holt alle Studienplaene eines Studienganges
* @param $studiengang_kz
*/
function getStudienplaene($studiengang_kz)
{
$qry = "SELECT
distinct tbl_studienplan.*
FROM
lehre.tbl_studienplan
JOIN lehre.tbl_studienordnung USING(studienordnung_id)
WHERE
tbl_studienordnung.studiengang_kz=".$this->db_add_param($studiengang_kz, FHC_INTEGER);
if($result = $this->db_query($qry))
{
while($row = $this->db_fetch_object($result))
{
$obj = new studienplan();
$obj->studienplan_id = $row->studienplan_id;
$obj->studienordnung_id = $row->studienordnung_id;
$obj->orgform_kurzbz = $row->orgform_kurzbz;
$obj->version = $row->version;
$obj->bezeichnung = $row->bezeichnung;
$obj->regelstudiendauer = $row->regelstudiendauer;
$obj->sprache = $row->sprache;
$obj->aktiv = $this->db_parse_bool($row->aktiv);
$obj->semesterwochen = $row->semesterwochen;
$obj->testtool_sprachwahl = $this->db_parse_bool($row->testtool_sprachwahl);
$obj->updateamum = $row->updateamum;
$obj->updatevon = $row->updatevon;
$obj->insertamum = $row->insertamum;
$obj->insertvon = $row->insertvon;
$obj->new=false;
$this->result[] = $obj;
}
return true;
}
}
/**
* Speichert die Sortierung
* @param type $tudienplan_lehrveranstaltung_id
* @param type $sort
*/
function saveSortierung($studienplan_lehrveranstaltung_id, $sort)
{
if($studienplan_lehrveranstaltung_id==NULL)
$studienplan_lehrveranstaltung_id = $this->studienplan_lehrveranstaltung_id;
if($sort==NULL)
$sort = $this->sort;
if(!(is_numeric($sort) || is_null($sort)))
/**
* Holt alle Studienplaene eines Studienganges
* @param $studiengang_kz
*/
function getStudienplaene($studiengang_kz)
{
$this->errormsg = "Es muss eine Zahl als Sortierungswert angegeben werden.";
return false;
$qry = "SELECT
distinct tbl_studienplan.*
FROM
lehre.tbl_studienplan
JOIN lehre.tbl_studienordnung USING(studienordnung_id)
WHERE
tbl_studienordnung.studiengang_kz=".$this->db_add_param($studiengang_kz, FHC_INTEGER);
if($result = $this->db_query($qry))
{
while($row = $this->db_fetch_object($result))
{
$obj = new studienplan();
$obj->studienplan_id = $row->studienplan_id;
$obj->studienordnung_id = $row->studienordnung_id;
$obj->orgform_kurzbz = $row->orgform_kurzbz;
$obj->version = $row->version;
$obj->bezeichnung = $row->bezeichnung;
$obj->regelstudiendauer = $row->regelstudiendauer;
$obj->sprache = $row->sprache;
$obj->aktiv = $this->db_parse_bool($row->aktiv);
$obj->semesterwochen = $row->semesterwochen;
$obj->testtool_sprachwahl = $this->db_parse_bool($row->testtool_sprachwahl);
$obj->updateamum = $row->updateamum;
$obj->updatevon = $row->updatevon;
$obj->insertamum = $row->insertamum;
$obj->insertvon = $row->insertvon;
$obj->new=false;
$this->result[] = $obj;
}
return true;
}
}
$qry = 'UPDATE lehre.tbl_studienplan_lehrveranstaltung '
/**
* Speichert die Sortierung
* @param type $tudienplan_lehrveranstaltung_id
* @param type $sort
*/
function saveSortierung($studienplan_lehrveranstaltung_id, $sort)
{
if($studienplan_lehrveranstaltung_id==NULL)
$studienplan_lehrveranstaltung_id = $this->studienplan_lehrveranstaltung_id;
if($sort==NULL)
$sort = $this->sort;
if(!(is_numeric($sort) || is_null($sort)))
{
$this->errormsg = "Es muss eine Zahl als Sortierungswert angegeben werden.";
return false;
}
$qry = 'UPDATE lehre.tbl_studienplan_lehrveranstaltung '
. 'SET sort='.$this->db_add_param($sort)
. ' WHERE studienplan_lehrveranstaltung_id='.$this->db_add_param($studienplan_lehrveranstaltung_id).';';
$this->orgform_kurzbz = $qry;
if(!$this->db_query($qry))
{
$this->errormsg = "Fehler beim speichern der Sortierung.";
return false;
$this->orgform_kurzbz = $qry;
if(!$this->db_query($qry))
{
$this->errormsg = "Fehler beim speichern der Sortierung.";
return false;
}
return true;
}
return true;
}
/**
* Laedt die Studienplaene zu denen eine Lehrveranstaltung zugeordnet ist
*/
public function getStudienplanLehrveranstaltung($lehrveranstaltung_id, $studiensemester_kurzbz)
{
$qry= "
SELECT
distinct tbl_studienplan.*
FROM
lehre.tbl_studienplan
JOIN lehre.tbl_studienplan_lehrveranstaltung USING(studienplan_id)
WHERE
tbl_studienplan_lehrveranstaltung.lehrveranstaltung_id=".$this->db_add_param($lehrveranstaltung_id, FHC_INTEGER)."
AND EXISTS (
SELECT 1 FROM lehre.tbl_studienordnung_semester
WHERE studienordnung_id=tbl_studienplan.studienordnung_id
AND studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz)."
AND semester = tbl_studienplan_lehrveranstaltung.semester)
ORDER BY bezeichnung";
/**
* Laedt die Studienplaene zu denen eine Lehrveranstaltung zugeordnet ist
*/
public function getStudienplanLehrveranstaltung($lehrveranstaltung_id, $studiensemester_kurzbz)
{
$qry= "
SELECT
distinct tbl_studienplan.*
FROM
lehre.tbl_studienplan
JOIN lehre.tbl_studienplan_lehrveranstaltung USING(studienplan_id)
WHERE
tbl_studienplan_lehrveranstaltung.lehrveranstaltung_id=".$this->db_add_param($lehrveranstaltung_id, FHC_INTEGER)."
AND EXISTS (
SELECT 1 FROM lehre.tbl_studienordnung_semester
WHERE studienordnung_id=tbl_studienplan.studienordnung_id
AND studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz)."
AND semester = tbl_studienplan_lehrveranstaltung.semester)
ORDER BY bezeichnung";
if($result = $this->db_query($qry))
{
while($row = $this->db_fetch_object($result))
{
$obj = new studienplan();
if($result = $this->db_query($qry))
{
while($row = $this->db_fetch_object($result))
{
$obj = new studienplan();
$obj->studienplan_id = $row->studienplan_id;
$obj->studienordnung_id = $row->studienordnung_id;
$obj->orgform_kurzbz = $row->orgform_kurzbz;
$obj->version = $row->version;
$obj->bezeichnung = $row->bezeichnung;
$obj->regelstudiendauer = $row->regelstudiendauer;
$obj->sprache = $row->sprache;
$obj->aktiv = $this->db_parse_bool($row->aktiv);
$obj->semesterwochen = $row->semesterwochen;
$obj->testtool_sprachwahl = $this->db_parse_bool($row->testtool_sprachwahl);
$obj->updateamum = $row->updateamum;
$obj->updatevon = $row->updatevon;
$obj->insertamum = $row->insertamum;
$obj->insertvon = $row->insertvon;
$obj->new=false;
$obj->studienplan_id = $row->studienplan_id;
$obj->studienordnung_id = $row->studienordnung_id;
$obj->orgform_kurzbz = $row->orgform_kurzbz;
$obj->version = $row->version;
$obj->bezeichnung = $row->bezeichnung;
$obj->regelstudiendauer = $row->regelstudiendauer;
$obj->sprache = $row->sprache;
$obj->aktiv = $this->db_parse_bool($row->aktiv);
$obj->semesterwochen = $row->semesterwochen;
$obj->testtool_sprachwahl = $this->db_parse_bool($row->testtool_sprachwahl);
$obj->updateamum = $row->updateamum;
$obj->updatevon = $row->updatevon;
$obj->insertamum = $row->insertamum;
$obj->insertvon = $row->insertvon;
$obj->new=false;
$this->result[] = $obj;
}
return true;
}
}
$this->result[] = $obj;
}
return true;
}
}
/**
* speichert die Semesterzuordnung für die Studieordnung
* @param int $$studienplan_id Die ID des Studienplans
* @param string $studiensemester_kurzbz Kurzbezeichnung des Studiensemesters
* @param int $ausbildungssemester Ausbildungssemester als Zahl
*/
public function saveSemesterZuordnung($zuordnung = array())
{
if (is_array($zuordnung))
{
$qry = "";
foreach ($zuordnung as $key)
{
if (!is_numeric($key["studienplan_id"]))
{
$this->errormsg = 'studienplan_id muss eine gueltige Zahl sein';
return false;
}
if (!is_string($key["studiensemester_kurzbz"]) || strlen($key["studiensemester_kurzbz"]) != 6)
{
$this->errormsg = 'studiensemester_kurzbz muss ein String mit 6 Zeichen sein';
return false;
}
if (!is_numeric($key["ausbildungssemester"]))
{
$this->errormsg = 'ausbildungssemester muss eine gueltige Zahl sein';
return false;
}
$qry .= "INSERT INTO lehre.tbl_studienplan_semester (studienplan_id, studiensemester_kurzbz, semester) VALUES (" .
$this->db_add_param($key["studienplan_id"]) . ', ' .
$this->db_add_param($key["studiensemester_kurzbz"]) . ', ' .
$this->db_add_param($key["ausbildungssemester"]) . '); ';
}
if (!$this->db_query($qry))
{
$this->errormsg = 'Fehler beim Speichern des Datensatzes';
return false;
}
return true;
}
else
{
$this->errormsg = 'Der übergebene Parameter ist kein Array.';
return false;
}
return false;
}
/**
* lädt alle zugeordneten Semester eines Studienplans
* @param int $studienplan ID
*/
public function loadStudiensemesterFromStudienplan($studienplan_id)
{
if (!is_numeric($studienplan_id))
{
$this->errormsg = 'studienplan_id muss eine gueltige Zahl sein';
return false;
}
$qry = 'SELECT DISTINCT studiensemester_kurzbz, tbl_studiensemester.start
FROM
lehre.tbl_studienplan_semester
JOIN public.tbl_studiensemester USING(studiensemester_kurzbz)
WHERE studienplan_id=' . $this->db_add_param($studienplan_id) . '
ORDER BY tbl_studiensemester.start, studiensemester_kurzbz';
if (!$this->db_query($qry))
{
$this->errormsg = 'Fehler bei einer Datenbankabfrage';
return false;
}
$data = array();
while ($row = $this->db_fetch_object())
{
$obj = new stdClass();
$data[] = $row->studiensemester_kurzbz;
}
return $data;
}
public function loadAusbildungsemesterFromStudiensemester($studienplan_id, $studiensemester_kurzbz)
{
$qry = 'SELECT semester
FROM lehre.tbl_studienplan_semester
WHERE studienplan_id=' . $this->db_add_param($studienplan_id) . ' AND
studiensemester_kurzbz=' . $this->db_add_param($studiensemester_kurzbz) . '
ORDER BY semester;';
if (!$this->db_query($qry))
{
return false;
}
$data = array();
while ($row = $this->db_fetch_object())
{
$data[] = $row->semester;
}
return $data;
}
function isSemesterZugeordnet($studienplan_id, $studiensemester_kurzbz, $ausbildungssemester)
{
if (!is_numeric($studienplan_id))
{
$this->errormsg = 'studienplan_id muss eine gueltige Zahl sein';
return false;
}
if (!is_string($studiensemester_kurzbz) || strlen($studiensemester_kurzbz) != 6)
{
$this->errormsg = 'studiensemester_kurzbz muss ein String mit 6 Zeichen sein';
return false;
}
if (!is_numeric($ausbildungssemester))
{
$this->errormsg = 'ausbildungssemester muss eine gueltige Zahl sein';
return false;
}
$qry = 'SELECT * FROM lehre.tbl_studienplan_semester WHERE
studienplan_id=' . $this->db_add_param($studienplan_id) . ' AND
studiensemester_kurzbz=' . $this->db_add_param($studiensemester_kurzbz) . ' AND
semester=' . $this->db_add_param($ausbildungssemester) . ';';
if ($this->db_query($qry))
{
if ($this->db_num_rows() == 1)
{
return true;
}
if ($this->db_num_rows() == 0)
{
return false;
}
return false;
}
return false;
}
public function deleteSemesterZuordnung($studienplan_id, $studiensemester_kurzbz, $ausbildungssemester = NULL)
{
if (!is_numeric($studienplan_id))
{
$this->errormsg = 'studienplan_id muss eine gueltige Zahl sein';
return false;
}
if (!is_string($studiensemester_kurzbz) || strlen($studiensemester_kurzbz) != 6)
{
$this->errormsg = 'studiensemester_kurzbz muss ein String mit 6 Zeichen sein';
return false;
}
$qry = 'DELETE FROM lehre.tbl_studienplan_semester
WHERE studienplan_id=' . $this->db_add_param($studienplan_id) . ' AND
studiensemester_kurzbz=' . $this->db_add_param($studiensemester_kurzbz) . '';
if ($ausbildungssemester !== null)
$qry.=' AND semester=' . $this->db_add_param($ausbildungssemester) . '';
$qry.=';';
if ($this->db_query($qry))
{
return true;
}
else
{
$this->errormsg = 'Fehler beim Löschen der Zuordnung' . "\n";
return false;
}
}
/**
* prüft ob dem Studienplan Semester zugeordnet sind (Gültigkeit)
* @param int $studienplan_id Die ID des Studienplans
*/
public function hasSemesterZugeordnet($studienplan_id)
{
if (!is_numeric($studienplan_id))
{
$this->errormsg = 'studienplan_id muss eine gueltige Zahl sein';
return false;
}
$qry = 'SELECT * FROM lehre.tbl_studienplan_semester WHERE
studienplan_id=' . $this->db_add_param($studienplan_id) . ';';
if ($this->db_query($qry))
{
if ($this->db_num_rows() >= 1)
{
return true;
}
return false;
}
return false;
}
}
?>
+191 -93
View File
@@ -1,24 +1,24 @@
<?php
/*
* studienplatz.class.php
*
*
* Copyright 2013 Technikum-Wien
*
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty oferr
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
* MA 02110-1301, USA.
*
*
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>
* Werner Masik <werner@gefi.at>
@@ -29,35 +29,39 @@ require_once(__DIR__ .'/functions.inc.php');
class studienplatz extends basis_db
{
/** @var $new boolean */
private $new = true;
private $new = true;
/** @var DB-Result */
private $result;
/** @var object */
public $studienplatz = array();
public $studienplatz = array();
//Tabellenspalten
/** @var integer */
private $studienplatz_id;
private $studienplatz_id;
/** @var integer */
private $studiengang_kz;
private $studiengang_kz;
/** @var string */
private $orgform_kurzbz;
private $orgform_kurzbz;
/** @var string */
private $studiensemester_kurzbz;
/** @var integer */
private $ausbildungssemester;
private $ausbildungssemester;
/** @var integer */
private $gpz;
private $gpz;
/** @var integer */
private $npz;
private $npz;
/** @var timestamp */
private $updateamum;
private $updateamum;
/** @var string */
private $updatevon;
private $updatevon;
/** @var timestamp */
private $insertamum;
private $insertamum;
/** @var string */
private $insertvon;
private $insertvon;
/** @var integer */
private $apz;
/** @var integer */
private $studienplan_id;
/**
* Konstruktor
@@ -66,7 +70,7 @@ class studienplatz extends basis_db
public function __construct($studienplatz_id=null)
{
parent::__construct();
if(!is_null($studienplatz_id))
$this->load($studienplatz_id);
}
@@ -76,9 +80,10 @@ class studienplatz extends basis_db
switch ($name)
{
case 'gpz':
case 'npz':
case 'ausbildungssemester':
case 'npz':
case 'ausbildungssemester':
case 'studienplatz_id':
case 'studienplan_id':
if ($value != null && !is_numeric($value))
throw new Exception("Attribute $name must be numeric! ($value)");
$this->$name=$value;
@@ -92,8 +97,8 @@ class studienplatz extends basis_db
{
return $this->$name;
}
/**
* Laedt einzelnen Studienplatz der ID $studienplatz_id
* @param integer $studienplatz_id ID des zu ladenden Studienplatzes
@@ -126,7 +131,6 @@ class studienplatz extends basis_db
$this->errormsg = 'Es ist kein Datensatz mit dieser ID vorhanden';
return false;
}
return true;
}
@@ -135,31 +139,33 @@ class studienplatz extends basis_db
* @param type $target
* @param type $row
*/
private function mapRow($target,$row) {
$target->studienplatz_id = $row->studienplatz_id;
$target->studiengang_kz = $row->studiengang_kz;
$target->orgform_kurzbz = $row->orgform_kurzbz;
$target->studiensemester_kurzbz = $row->studiensemester_kurzbz;
$target->ausbildungssemester = $row->ausbildungssemester;
$target->gpz = $row->gpz;
$target->npz = $row->npz;
$target->updateamum = $row->updateamum;
$target->updatevon = $row->updatevon;
$target->insertamum = $row->insertamum;
$target->insertvon = $row->insertvon;
$target->new = false;
private function mapRow($target,$row) {
$target->studienplatz_id = $row->studienplatz_id;
$target->studiengang_kz = $row->studiengang_kz;
$target->orgform_kurzbz = $row->orgform_kurzbz;
$target->studiensemester_kurzbz = $row->studiensemester_kurzbz;
$target->ausbildungssemester = $row->ausbildungssemester;
$target->gpz = $row->gpz;
$target->npz = $row->npz;
$target->updateamum = $row->updateamum;
$target->updatevon = $row->updatevon;
$target->insertamum = $row->insertamum;
$target->insertvon = $row->insertvon;
$target->apz = $row->apz;
$target->studienplan_id = $row->studienplan_id;
$target->new = false;
}
/**
* Laedt alle Studienplaetze zu einem Studiengang und Semester. Ergebnis
* steht in result, wobei es nur einen Datensatz geben kann, wenn
* keinAusbildungssemester = true ist.
* @param integer $studiengang_kz
* @param integer $studiengang_kz
* @param string studiensemester_kurzbz
* @param string orgform_kurzbz
* @param boolean Ausbildungssemester ist optional. Wenn true werden
* nur Datensätze geladen wo das Ausbildungssemester null ist. Wenn
* false werden alle geladen wo ein Ausbildungssemester eingetragen
* nur Datensätze geladen wo das Ausbildungssemester null ist. Wenn
* false werden alle geladen wo ein Ausbildungssemester eingetragen
* ist.
* @return true wenn ok, false im Fehlerfall
*/
@@ -179,22 +185,63 @@ class studienplatz extends basis_db
//" AND art=".$this->db_add_param($art, FHC_STRING, false).
" AND orgform_kurzbz=".$this->db_add_param($orgform, FHC_STRING, false).
" AND ausbildungssemester ".($keinAusbildungssemester ? 'is null':'is not null');
$this->result = array();
if(!$this->db_query($qry))
{
$this->result = array();
if(!$this->db_query($qry))
{
return false;
}
while($row = $this->db_fetch_object())
{
$rec = new studienplatz();
$this->mapRow($rec, $row);
$this->result[] = $rec;
}
$rec = new studienplatz();
$this->mapRow($rec, $row);
$this->result[] = $rec;
}
return true;
}
/**
* Laedt alle Studienplaetze zu einem Studiengang und Semester. Ergebnis
* steht in result, wobei es nur einen Datensatz geben kann, wenn
* keinAusbildungssemester = true ist.
* @param integer $studiengang_kz
* @param string studiensemester_kurzbz
* @param boolean Ausbildungssemester ist optional. Wenn true werden
* nur Datensätze geladen wo das Ausbildungssemester null ist. Wenn
* false werden alle geladen wo ein Ausbildungssemester eingetragen
* ist.
* @return true wenn ok, false im Fehlerfall
*/
public function load_studiengang_studiensemester($studiengang_kz, $studiensemester_kurzbz, $keinAusbildungssemester = true)
{
//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';
return false;
}
//Lesen der Daten aus der Datenbank
$qry = "SELECT * FROM lehre.tbl_studienplatz RIGHT JOIN lehre.tbl_studienplan using(studienplan_id) WHERE studiengang_kz=".
$this->db_add_param($studiengang_kz, FHC_INTEGER, false).
" AND studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz, FHC_STRING, false).
" AND ausbildungssemester ".($keinAusbildungssemester ? 'is null':'is not null').
" AND studienplan_id IS NOT NULL;";
$this->result = array();
if(!$this->db_query($qry))
{
return false;
}
while($row = $this->db_fetch_object())
{
$this->result[] = $row;
}
return true;
}
/**
* 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
@@ -207,10 +254,10 @@ class studienplatz extends basis_db
{
// Semesterliste für where klausel erzeugen:
$startSemester= 'WS'.substr($studienjahr,0,4);
$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,
@@ -220,30 +267,69 @@ class studienplatz extends basis_db
sum(case when orgform_kurzbz='VZ' then gpz else 0 end) as gpz_vz,
sum(case when orgform_kurzbz='BB' then gpz else 0 end) as gpz_bb,
sum(case when orgform_kurzbz='VBB' then gpz 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))
{
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->gpz_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;
}
$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->gpz_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;
}
/**
* Liefert alle Studienplätze eines Studiengangs und Semesters
* @param string $stg_kz z.B: -16
* @param string $studiensemester_kurzbz z.B: WS2015
* @return boolean|array false bei Fehler
*/
public function getFromStgKzAndStudsem($stg_kz, $studiensemester_kurzbz)
{
if(!is_numeric($stg_kz))
{
$this->errormsg='stg_kz muss eine gueltige Zahl sein';
return false;
}
if($studiensemester_kurzbz == "")
{
$this->errormsg='Es wurde kein gueltiges studiensemester_kurzbz uerbergeben';
return false;
}
//Lesen der Daten aus der Datenbank
$qry = "SELECT * FROM lehre.tbl_studienplatz
JOIN public.tbl_studiengang using(studiengang_kz)
WHERE studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz)."
AND studiengang_kz=".$this->db_add_param($stg_kz, FHC_INTEGER);
if($this->db_query($qry))
{
$result = array();
while($row = $this->db_fetch_object())
{
$result[] = $row;
}
return $result;
}
return false;
}
/**
* Prueft die Variablen auf Gueltigkeit
@@ -260,7 +346,7 @@ class studienplatz extends basis_db
{
$this->errormsg='studiengang_kz enthaelt ungueltige Zeichen';
return false;
}
}
if(mb_strlen($this->orgform_kurzbz)>3)
{
$this->errormsg = 'orgform_kurzbz darf nicht länger als 3 Zeichen sein';
@@ -284,11 +370,19 @@ class studienplatz extends basis_db
{
$this->errormsg='npz enthaelt ungueltige Zeichen';
return false;
}if(!is_numeric($this->apz) && $this->apz!='')
{
$this->errormsg='apz enthaelt ungueltige Zeichen';
return false;
}if(!is_numeric($this->studienplan_id) && $this->studienplan_id!='')
{
$this->errormsg='studienplan_id enthaelt ungueltige Zeichen';
return false;
}
$this->errormsg = '';
return true;
}
/**
* Speichert den aktuellen Datensatz in die Datenbank
* Wenn $neu auf true gesetzt ist wird ein neuer Datensatz angelegt
@@ -305,20 +399,22 @@ class studienplatz extends basis_db
{
//Neuen Datensatz einfuegen
$qry='BEGIN;INSERT INTO lehre.tbl_studienplatz ('.
'studiengang_kz, orgform_kurzbz, studiensemester_kurzbz, '.
'ausbildungssemester, gpz, npz, insertamum, insertvon, '.
'updateamum, updatevon) VALUES('.
$this->db_add_param($this->studiengang_kz, FHC_INTEGER).', '.
$this->db_add_param($this->orgform_kurzbz).', '.
$this->db_add_param($this->studiensemester_kurzbz).', '.
$this->db_add_param($this->ausbildungssemester, FHC_INTEGER).', '.
//$this->db_add_param($this->art).', '.
$this->db_add_param($this->gpz, FHC_INTEGER).', '.
$this->db_add_param($this->npz, FHC_INTEGER).', '.
'now(), '.
$this->db_add_param($this->insertvon).', '.
'now(), '.
$this->db_add_param($this->updatevon).');';
'studiengang_kz, orgform_kurzbz, studiensemester_kurzbz, '.
'ausbildungssemester, gpz, npz, apz, studienplan_id insertamum, insertvon, '.
'updateamum, updatevon) VALUES('.
$this->db_add_param($this->studiengang_kz, FHC_INTEGER).', '.
$this->db_add_param($this->orgform_kurzbz).', '.
$this->db_add_param($this->studiensemester_kurzbz).', '.
$this->db_add_param($this->ausbildungssemester, FHC_INTEGER).', '.
//$this->db_add_param($this->art).', '.
$this->db_add_param($this->gpz, FHC_INTEGER).', '.
$this->db_add_param($this->npz, FHC_INTEGER).', '.
$this->db_add_param($this->apz, FHC_INTEGER).', '.
$this->db_add_param($this->studienplan_id, FHC_INTEGER).', '.
'now(), '.
$this->db_add_param($this->insertvon).', '.
'now(), '.
$this->db_add_param($this->updatevon).');';
}
else
{
@@ -328,19 +424,21 @@ class studienplatz extends basis_db
$this->errormsg = 'studienplatz_id muss eine gueltige Zahl sein';
return false;
}
$qry='UPDATE lehre.tbl_studienplatz SET'.
$qry='UPDATE lehre.tbl_studienplatz SET'.
' studiengang_kz='.$this->db_add_param($this->studiengang_kz).', '.
' orgform_kurzbz='.$this->db_add_param($this->orgform_kurzbz).', '.
' studiensemester_kurzbz='.$this->db_add_param($this->studiensemester_kurzbz).', '.
' ausbildungssemester='.$this->db_add_param($this->ausbildungssemester).', '.
' ausbildungssemester='.$this->db_add_param($this->ausbildungssemester).', '.
//' art='.$this->db_add_param($this->art).', '.
' gpz='.$this->db_add_param($this->gpz).', '.
' npz='.$this->db_add_param($this->npz).', '.
' updateamum= now(), '.
' updatevon='.$this->db_add_param($this->updatevon).
' WHERE studienplatz_id='.$this->db_add_param($this->studienplatz_id, FHC_INTEGER, false).';';
' gpz='.$this->db_add_param($this->gpz).', '.
' npz='.$this->db_add_param($this->npz).', '.
' apz='.$this->db_add_param($this->apz, FHC_INTEGER).', '.
' studienplan_id='.$this->db_add_param($this->studienplan_id, FHC_INTEGER).', '.
' updateamum= now(), '.
' updatevon='.$this->db_add_param($this->updatevon).
' WHERE studienplatz_id='.$this->db_add_param($this->studienplatz_id, FHC_INTEGER, false).';';
}
if($this->db_query($qry))
{
if($this->new)
@@ -371,7 +469,7 @@ class studienplatz extends basis_db
}
else
{
{
return false;
}
return $this->studienplatz_id;
@@ -399,7 +497,7 @@ class studienplatz extends basis_db
return true;
}
else
{
{
return false;
}
}
@@ -42,3 +42,9 @@ TD,TH
{
font-size: 9pt;
}
table.tablesorter tbody td
{
margin: 0;
padding: 0;
vertical-align: middle;
}