Files
FHC-Core/include/fas/lehrveranstaltung.class.php
T
Andreas Österreicher c5fb04adb5 Include VZ Bereinigung
2006-12-11 16:06:13 +00:00

427 lines
14 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?php
/**
* Klasse lehrveranstaltung (FAS-Online)
* @create 16-03-2006
*/
class lehrveranstaltung
{
var $conn; // @var resource DB-Handle
var $errormsg; // @var string
var $new; // @var boolean
var $result = array(); // @var lehrveranstaltung Objekt
var $lehrveranstaltung_id; // @var integer
var $art; // @var integer
var $ausbildungssemester_id; // @var integer
var $beschreibung; // @var string
var $ectspunkte; // @var float
var $fachbereich_id; // @var integer
var $kategorie; // @var integer
var $kurzbezeichnung; // @var string
var $name; // @var string
var $notenlektor_id; // @var integer
var $nummer; // @var string
var $nummerintern; // @var integer
var $sortierung; // @var integer
var $studentenwochenstunden; // @var float
var $studiengang_id; // @var integer
var $studiensemester_id; // @var integer
var $updateamum=0; // @var timestamp
var $updatevon; // @var string
/**
* Konstruktor
* @param $conn Connection zur Datenbank
* $lehrveranstaltung_id ID der zu ladenden Lehrveranstaltung
*/
function lehrveranstaltung($conn, $lehrveranstaltung_id=null)
{
$this->conn = $conn;
$qry = "SET CLIENT_ENCODING TO 'UNICODE';";
if(!pg_query($conn,$qry))
{
$this->errormsg = "Encoding konnte nicht gesetzt werden";
return false;
}
if($lehrveranstaltung_id != null)
$this->load($lehrveranstaltung_id);
}
/**
* Laedt einen Datensatz
* @param $lehrveranstaltung_id ID des zu ladenden Datensatzes
* @return true wenn ok, false im Fehlerfall
*/
function load($lehrveranstaltung_id)
{
//gueltigkeit von lehrveranstaltung_id pruefen
if(!is_numeric($lehrveranstaltung_id) || $lehrveranstaltung_id == '')
{
$this->errormsg = 'lehrveranstaltung_id muss eine gueltige Zahl sein';
return false;
}
$qry = "SELECT * FROM lehrveranstaltung WHERE lehrveranstaltung_pk = '$lehrveranstaltung_id';";
if(!$res = pg_query($this->conn, $qry))
{
$this->errormsg = 'Datensatz konnte nicht geladen werden';
return false;
}
if($row = pg_fetch_object($res))
{
$this->lehrveranstaltung_id = $row->lehrveranstaltung_pk;
$this->art = $row->art;
$this->ausbildungssemester_id = $row->ausbildungssemester_fk;
$this->beschreibung = $row->beschreibung;
$this->ectspunkte = $row->ectspunkte;
$this->fachbereich_id = $row->fachbereich_fk;
$this->kategorie = $row->kategorie;
$this->kurzbezeichnung = $row->kurzbezeichnung;
$this->name = $row->name;
$this->notenlektor_id = $row->notenlektor_fk;
$this->nummer = $row->nummer;
$this->nummerintern = $row->nummerintern;
$this->sortierung = $row->sortierung;
$this->studentenwochenstunden = $row->studentenwochenstunden;
$this->studiengang_id = $row->studiengang_fk;
$this->studiensemester_id = $row->studiensemester_fk;
$this->updateamum = $row->creationdate;
$this->updatevon = $row->creationuser;
}
else
{
$this->errormsg = 'Datensatz konnte nicht geladen werden';
return false;
}
return true;
}
/**
* Liefert alle Lehrveranstaltungen
* @return true wenn ok, false im Fehlerfall
*/
function getAll()
{
$qry = "SELECT * FROM lehrveranstaltung;";
if(!$res = pg_query($this->conn, $qry))
{
$this->errormsg = 'Datensatz konnte nicht geladen werden';
return false;
}
while($row = pg_fetch_object($res))
{
$lv_obj = new lehrveranstaltung($this->conn);
$lv_obj->lehrveranstaltung_id = $row->lehrveranstaltung_pk;
$lv_obj->art = $row->art;
$lv_obj->ausbildungssemester_id = $row->ausbildungssemester_fk;
$lv_obj->beschreibung = $row->beschreibung;
$lv_obj->ectspunkte = $row->ectspunkte;
$lv_obj->fachbereich_id = $row->fachbereich_fk;
$lv_obj->kategorie = $row->kategorie;
$lv_obj->kurzbezeichnung = $row->kurzbezeichnung;
$lv_obj->name = $row->name;
$lv_obj->notenlektor_id = $row->notenlektor_fk;
$lv_obj->nummer = $row->nummer;
$lv_obj->nummerintern = $row->nummerintern;
$lv_obj->sortierung = $row->sortierung;
$lv_obj->studentenwochenstunden = $row->studentenwochenstunden;
$lv_obj->studiengang_id = $row->studiengang_fk;
$lv_obj->studiensemester_id = $row->studiensemester_fk;
$lv_obj->updateamum = $row->creationdate;
$lv_obj->updatevon = $row->creationuser;
$this->result[] = $lv_obj;
}
return true;
}
/**
* Liefert alle Lehrveranstaltungen zu einem Studiengang/Studiensemester/Ausbildungssemester
* @param $studiengang_id ID des Studienganges
* $studiensemester_id ID des Studiensemesters (optional)
* $ausbildungssemester_id ID des ausbildungssemesters (optional)
* @return true wenn ok, false im Fehlerfall
*/
function load_lva($studiengang_id, $studiensemester_id=null, $ausbildungssemester_id=null)
{
//Variablen pruefen
if(!is_numeric($studiengang_id) || $studiengang_id =='')
{
$this->errormsg = 'studiengang_id muss eine gueltige Zahl sein';
return false;
}
if($studiensemester_id != null && (!is_numeric($studiensemester_id) || $studiensemester_id == ''))
{
$this->errormsg = 'studiensemester_id muss eine gueltige Zahl sein';
return false;
}
if($ausbildungssemester_id != null && (!is_numeric($ausbildungssemester_id) || $ausbildungssemester_id == ''))
{
$this->errormsg = 'ausbildungssemester_id muss eine gueltige Zahl sein';
return false;
}
//Select Befehl zusammenbauen
$qry = "SELECT * FROM lehrveranstaltung WHERE studiengang_fk = '$studiengang_id'";
if($studiensemester_id != null)
$qry .= " AND studiensemester_fk = '$studiensemester_id'";
if($ausbildungssemester_id != null)
$qry .= " AND ausbildungssemester_fk = '$ausbildungssemester_id'";
$qry .= " ORDER BY name";
//Datensaetze laden
if(!$res = pg_query($this->conn, $qry))
{
$this->errormsg = 'Datensatz konnte nicht geladen werden';
return false;
}
while($row = pg_fetch_object($res))
{
$lv_obj = new lehrveranstaltung($this->conn);
$lv_obj->lehrveranstaltung_id = $row->lehrveranstaltung_pk;
$lv_obj->art = $row->art;
$lv_obj->ausbildungssemester_id = $row->ausbildungssemester_fk;
$lv_obj->beschreibung = $row->beschreibung;
$lv_obj->ectspunkte = $row->ectspunkte;
$lv_obj->fachbereich_id = $row->fachbereich_fk;
$lv_obj->kategorie = $row->kategorie;
$lv_obj->kurzbezeichnung = $row->kurzbezeichnung;
$lv_obj->name = $row->name;
$lv_obj->notenlektor_id = $row->notenlektor_fk;
$lv_obj->nummer = $row->nummer;
$lv_obj->nummerintern = $row->nummerintern;
$lv_obj->sortierung = $row->sortierung;
$lv_obj->studentenwochenstunden = $row->studentenwochenstunden;
$lv_obj->studiengang_id = $row->studiengang_fk;
$lv_obj->studiensemester_id = $row->studiensemester_fk;
$lv_obj->updateamum = $row->creationdate;
$lv_obj->updatevon = $row->creationuser;
$this->result[] = $lv_obj;
}
return true;
}
/**
* Prueft die Gueltigkeit der Variablen
* @return true wenn ok, false im Fehlerfall
*/
function checkvars()
{
$this->name = str_replace("'",'´',$this->name);
$this->nummer = str_replace("'",'´',$this->nummer);
$this->kurzbezeichnung = str_replace("'",'´',$this->kurzbezeichnung);
//Laenge Pruefen
$this->errormsg = 'Eine der Gesamtlaengen wurde ueberschritten';
if(strlen($this->name)>255)
{
$this->errormsg = 'Name darf nicht laenger als 255 Zeichen sein';
return false;
}
if(strlen($this->nummer)>20)
{
$this->errormsg = 'Nummer darf nicht laenger als 20 Zeichen sein';
return false;
}
if(strlen($this->kurzbezeichnung)>20)
{
$this->errormsg = 'kurzbezeichnung darf nicht laenger als 20 Zeichen sein';
return false;
}
if(!is_numeric($this->fachbereich_id))
{
$this->errormsg = 'Fachbereich_id ist ungueltig';
return false;
}
if(!is_numeric($this->studiengang_id))
{
$this->errormsg = 'Studiengang_id ist ungueltig';
return false;
}
if(!is_numeric($this->ausbildungssemester_id))
{
$this->errormsg = 'Ausbildungssemester_id ist ungueltig';
return false;
}
if($this->art!='' && !is_numeric($this->art))
{
$this->errormsg = 'Art ist ungueltig';
return false;
}
if($this->studentenwochenstunden!='' && !is_numeric($this->studentenwochenstunden))
{
$this->errormsg = 'Studentenwochenstunden ist ungueltig';
return false;
}
if($this->kategorie!='' && !is_numeric($this->kategorie))
{
$this->errormsg = "Kategorie ist ungueltig";
return false;
}
if($this->ectspunkte!='' && !is_numeric($this->ectspunkte))
{
$this->errormsg = 'ECTSPunkte sind ungueltig';
return false;
}
if($this->notentlektor_id!='' && !is_numeric($this->notenlektor_id))
{
$this->errormsg = 'Notenlektor ist ungueltig';
return false;
}
if($this->sortierung!='' && !is_numeric($this->sortierung))
{
$this->errormsg = 'Sortierung ist ungueltig';
return false;
}
if($this->nummerintern!='' && !is_numeric($this->nummerintern))
{
$this->errormsg = 'NummerIntern ist ungueltig';
return false;
}
if(!is_numeric($this->studiensemester_id))
{
$this->errormsg = 'Studiensemester_id ist ungueltig';
return false;
}
$this->errormsg = '';
return true;
}
/**
* Speichert den aktuellen Datensatz
* @return true wenn ok, false im Fehlerfall
*/
function save()
{
//Gueltigkeit der Variablen pruefen
if(!$this->checkvars())
return false;
if($this->new)
{
//Neuen Datensatz anlegen
//naechste ID aus der Sequence holen
$qry = "SELECT nextval('lehrveranstaltung_seq') as id;";
if(!$row = pg_fetch_object(pg_query($this->conn, $qry)))
{
$this->errormsg = 'Sequence konnte nicht ausgelesen werden';
return false;
}
$this->lehrveranstaltung_id = $row->id;
$qry = "INSERT INTO lehrveranstaltung(lehrveranstaltung_pk, fachbereich_fk, studiengang_fk, ausbildungssemester_fk,".
" name, nummer, kurzbezeichnung, beschreibung, art, studentenwochenstunden, creationdate, creationuser,".
" kategorie, ectspunkte, studiensemester_fk, notenlektor_fk, sortierung, nummerintern) VALUES(".
" '$this->lehrveranstaltung_id', '$this->fachbereich_id', '$this->studiengang_id', '$this->ausbildungssemester_id',".
" '$this->name', '$this->nummer', '$this->kurzbezeichnung', '$this->beschreibung', '$this->art',".
" '$this->studentenwochenstunden', now(), $this->updatevon, '$this->kategorie', '$this->ectspunkte', '$this->studiensemester_id',".
" '$this->notenlektor_id', '$this->sortierung', '$this->nummerintern');";
}
else
{
//bestehenden Datensatz akualisieren
//Pruefen ob lehrveranstaltung_id eine gueltige Zahl ist
if(!is_numeric($this->lehrveranstaltung_id) || $this->lehrveranstaltung_id == '')
{
$this->errormsg = 'lehrveranstaltung_id muss eine gueltige Zahl sein';
return false;
}
$qry = "UPDATE lehrveranstaltung SET fachbereich_fk = '$this->fachbereich_id', studiengang_fk = '$this->studiengang_id',".
" ausbildungssemester_fk = '$this->ausbildungssemester_id', name = '$this->name', nummer = '$this->nummer',".
" kurzbezeichnung = '$this->kurzbezeichnung', beschreibung = '$this->beschreibung', art = '$this->art',".
" studentenwochenstunden = '$this->studentenwochenstunden', kategorie = '$this->kategorie', ".
" ectspunkte = '$this->ectspunkte', studiensemester_fk = '$this->studiensemester_id',".
" notenlektor_fk = '$this->notenlektor_id', sortierung = '$this->sortierung', nummerintern = '$this->nummerintern'".
" WHERE lehrveranstaltung_pk = '$this->lehrveranstaltung_id';";
}
if(pg_query($this->conn, $qry))
{
//Log schreiben
$sql = $qry;
$qry = "SELECT nextval('log_seq') as id;";
if(!$row = pg_fetch_object(pg_query($this->conn, $qry)))
{
$this->errormsg = 'Fehler beim Auslesen der Log-Sequence';
return false;
}
$qry = "INSERT INTO log(log_pk, creationdate, creationuser, sql) VALUES('$row->id', now(), '$this->updatevon', '".addslashes($sql)."')";
if(pg_query($this->conn, $qry))
return true;
else
{
$this->errormsg = 'Fehler beim Speichern des Log-Eintrages';
return false;
}
}
else
{
$this->errormsg = 'Fehler beim speichern des Datensatzes';
return false;
}
}
/**
* Loescht einen Datensatz
* @param $lehrveranstaltung_id ID des zu loeeschenden Datensatzes
* @return true wenn ok, false im Fehlerfall
*/
function delete($lehrveranstaltung_id)
{
//lehrveranstaltung_id auf gueltigkeit pruefen
if(!is_numeric($lehrveranstaltung_id) || $lehrveranstaltung_id == '')
{
$this->errormsg = 'lehrveranstaltung_id muss eine gueltige Zahl sein';
return false;
}
//Loeschen des Datensatzes
$qry = "DELETE FROM lehrveranstaltung WHERE lehrveranstaltung_pk = '$lehrveranstaltung_id';";
if(pg_query($this->conn, $qry))
{
//Log schreiben
$sql = $qry;
$qry = "SELECT nextval('log_seq') as id;";
if(!$row = pg_fetch_object(pg_query($this->conn, $qry)))
{
$this->errormsg = 'Fehler beim Auslesen der Log-Sequence';
return false;
}
$qry = "INSERT INTO log(log_pk, creationdate, creationuser, sql) VALUES('$row->id', now(), '$this->updatevon', '".addslashes($sql)."')";
if(pg_query($this->conn, $qry))
return true;
else
{
$this->errormsg = 'Fehler beim Speichern des Log-Eintrages';
return false;
}
}
else
{
$this->errormsg = 'Fehler beim loeschen des Datensatzes';
return false;
}
}
}
?>