Projektarbeit/Projektbetreuer MODUL FAS Online

This commit is contained in:
Andreas Österreicher
2007-07-09 15:14:28 +00:00
parent 9b177e3868
commit 3745744376
14 changed files with 2139 additions and 259 deletions
+11 -9
View File
@@ -70,16 +70,18 @@ class person
function person($conn, $person_id=null, $unicode=false)
{
$this->conn = $conn;
if($unicode)
$qry = "SET CLIENT_ENCODING TO 'UNICODE';";
else
$qry = "SET CLIENT_ENCODING TO 'LATIN9';";
if(!pg_query($conn,$qry))
if(!$unicode==null)
{
$this->errormsg = "Encoding konnte nicht gesetzt werden\n";
return false;
if($unicode)
$qry = "SET CLIENT_ENCODING TO 'UNICODE';";
else
$qry = "SET CLIENT_ENCODING TO 'LATIN9';";
if(!pg_query($conn,$qry))
{
$this->errormsg = "Encoding konnte nicht gesetzt werden\n";
return false;
}
}
if($person_id != null)
+172 -44
View File
@@ -46,7 +46,7 @@ class projektarbeit
var $freigegeben; // @var boolean
var $gesperrtbis; // @var date
var $stundensatz; // @var numeric(6,2)
var $gesamtstunden; // @var integer
var $gesamtstunden; // @var numeric(8,2)
var $themenbereich; // @var sting
var $anmerkung; // @var string
var $ext_id; // @var integer
@@ -64,30 +64,81 @@ class projektarbeit
function projektarbeit($conn,$projektarbeit_id=null, $unicode=false)
{
$this->conn = $conn;
if ($unicode)
if($unicode!=null)
{
$qry = "SET CLIENT_ENCODING TO 'UNICODE';";
if ($unicode)
{
$qry = "SET CLIENT_ENCODING TO 'UNICODE';";
}
else
{
$qry="SET CLIENT_ENCODING TO 'LATIN9';";
}
if(!pg_query($conn,$qry))
{
$this->errormsg = "Encoding konnte nicht gesetzt werden";
return false;
}
}
else
{
$qry="SET CLIENT_ENCODING TO 'LATIN9';";
}
if(!pg_query($conn,$qry))
{
$this->errormsg = "Encoding konnte nicht gesetzt werden";
return false;
}
//if($projektarbeit_id != null) $this->load($projektarbeit_id);
if($projektarbeit_id != null)
$this->load($projektarbeit_id);
}
/**
* Laedt die Funktion mit der ID $projektarbeit_id
* @param $projektarbeit_id ID der zu ladenden Funktion
* Laedt die Projektarbeit mit der ID $projektarbeit_id
* @param $projektarbeit_id ID der zu ladenden Projektarbeit
* @return true wenn ok, false im Fehlerfall
*/
function load($projektarbeit_id)
{
//noch nicht implementiert
if(!is_numeric($projektarbeit_id))
{
$this->errormsg = 'Projektarbeit_id muss eine gueltige Zahl sein';
return false;
}
$qry = "SELECT * FROM lehre.tbl_projektarbeit WHERE projektarbeit_id='$projektarbeit_id'";
if($result = pg_query($this->conn, $qry))
{
if($row = pg_fetch_object($result))
{
$this->projektarbeit_id = $row->projektarbeit_id;
$this->projekttyp_kurzbz = $row->projekttyp_kurzbz;
$this->titel = $row->titel;
$this->lehreinheit_id = $row->lehreinheit_id;
$this->student_uid = $row->student_uid;
$this->firma_id = $row->firma_id;
$this->note = $row->note;
$this->punkte = $row->punkte;
$this->beginn = $row->beginn;
$this->ende = $row->ende;
$this->faktor = $row->faktor;
$this->freigegeben = ($row->freigegeben=='t'?true:false);
$this->gesperrtbis = $row->gesperrtbis;
$this->stundensatz = $row->stundensatz;
$this->gesamtstunden = $row->gesamtstunden;
$this->themenbereich = $row->themenbereich;
$this->anmerkung = $row->anmerkung;
$this->ext_id = $row->ext_id;
$this->insertamum = $row->insertamum;
$this->insertvon = $row->insertvon;
$this->updateamum = $row->updateamum;
$this->updatevon = $row->updatevon;
return true;
}
else
{
$this->errormsg = 'Datensatz wurde nicht gefunden';
return false;
}
}
else
{
$this->errormsg = 'Fehler beim Laden der Daten';
return false;
}
}
/**
@@ -99,17 +150,17 @@ class projektarbeit
//Gesamtlaenge pruefen
//$this->errormsg='Eine der Gesamtlaengen wurde ueberschritten';
if ($this->projektarbeit_kurzbz=null)
if ($this->projekttyp_kurzbz==null)
{
$this->errormsg='Projektarbeit_kurzbz darf nicht NULL sein! - student_uid: '.$this->student_uid;
$this->errormsg='Projekttyp_kurzbz darf nicht NULL sein! - student_uid: '.$this->student_uid;
}
if ($this->lehreinheit_id=null)
if ($this->lehreinheit_id==null)
{
$this->errormsg='Lehreinheit_id darf nicht NULL sein! - student_uid: '.$this->student_uid;
}
if(strlen($this->projektarbeit_kurzbz)>16)
if(strlen($this->projekttyp_kurzbz)>16)
{
$this->errormsg = 'Projektarbeit_kurzbz darf nicht länger als 16 Zeichen sein - student_uid: '.$this->student_uid;
$this->errormsg = 'Projektyp_kurzbz darf nicht länger als 16 Zeichen sein - student_uid: '.$this->student_uid;
return false;
}
if(strlen($this->titel)>256)
@@ -177,17 +228,20 @@ class projektarbeit
* andernfalls wird der Datensatz mit der ID in $projektarbeit_id aktualisiert
* @return true wenn ok, false im Fehlerfall
*/
function save()
function save($new=null)
{
//Variablen pruefen
if(!$this->checkvars())
return false;
if($this->new)
if($new==null)
$new = $this->new;
if($new)
{
//Neuen Datensatz einfuegen
$qry='INSERT INTO lehre.tbl_projektarbeit (projekttyp_kurzbz, titel, lehreinheit_id, student_uid, firma_id, note, punkte,
$qry='BEGIN; INSERT INTO lehre.tbl_projektarbeit (projekttyp_kurzbz, titel, lehreinheit_id, student_uid, firma_id, note, punkte,
beginn, ende, faktor, freigegeben, gesperrtbis, stundensatz, gesamtstunden, themenbereich, anmerkung,
ext_id, insertamum, insertvon, updateamum, updatevon) VALUES('.
$this->addslashes($this->projekttyp_kurzbz).', '.
@@ -238,31 +292,40 @@ class projektarbeit
'gesamtstunden='.$this->addslashes($this->gesamtstunden).', '.
'themenbereich='.$this->addslashes($this->themenbereich).', '.
'anmerkung='.$this->addslashes($this->anmerkung).', '.
'updateamum= now(), '.
'updatevon='.$this->addslashes($this->updatevon).' '.
//'firmentyp='.$this->addslashes($this->firmentyp_kurzbz).' '.
'updateamum= now(), '.
'updatevon='.$this->addslashes($this->updatevon).' '.
'WHERE projektarbeit_id='.$this->addslashes($this->projektarbeit_id).';';
}
//echo $qry;
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)))
if($new)
{
$this->errormsg = 'Fehler beim Auslesen der Log-Sequence';
return false;
//Sequence auslesen
$qry = "SELECT currval('lehre.tbl_projektarbeit_projektarbeit_id_seq') as id;";
if($result = pg_query($this->conn, $qry))
{
if($row = pg_fetch_object($result))
{
$this->projektarbeit_id = $row->id;
pg_query($this->conn, 'COMMIT');
return true;
}
else
{
$this->errormsg = 'Fehler beim Auslesen der Sequence';
pg_query($this->conn, 'ROLLBACK;');
return false;
}
}
else
{
$this->errormsg = 'Fehler beim Auslesen der Sequence';
pg_query($this->conn, 'ROLLBACK;');
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;
} */
return true;
}
else
@@ -279,7 +342,72 @@ class projektarbeit
*/
function delete($projektarbeit_id)
{
//noch nicht implementiert!
if(!is_numeric($projektarbeit_id))
{
$this->errormsg = 'Projektarbeit_id ist ungueltig';
return true;
}
$qry = "DELETE FROM lehre.tbl_projektarbeit WHERE projektarbeit_id='$projektarbeit_id'";
if(pg_query($this->conn, $qry))
{
return true;
}
else
{
$this->errormsg = 'Fehler beim Loeschen des Datensatzes';
return false;
}
}
// ********************************************
// * Laedt alle Projektarbeiten eines Studenten
// * @param student_uid
// * @return true wenn ok, false wenn Fehler
// ********************************************
function getProjektarbeit($student_uid)
{
$qry = "SELECT * FROM lehre.tbl_projektarbeit WHERE student_uid='".addslashes($student_uid)."'";
if($result = pg_query($this->conn, $qry))
{
while($row = pg_fetch_object($result))
{
$obj = new projektarbeit($this->conn, null, null);
$obj->projektarbeit_id = $row->projektarbeit_id;
$obj->projekttyp_kurzbz = $row->projekttyp_kurzbz;
$obj->titel = $row->titel;
$obj->lehreinheit_id = $row->lehreinheit_id;
$obj->student_uid = $row->student_uid;
$obj->firma_id = $row->firma_id;
$obj->note = $row->note;
$obj->punkte = $row->punkte;
$obj->beginn = $row->beginn;
$obj->ende = $row->ende;
$obj->faktor = $row->faktor;
$obj->freigegeben = ($row->freigegeben=='t'?true:false);
$obj->gesperrtbis = $row->gesperrtbis;
$obj->stundensatz = $row->stundensatz;
$obj->gesamtstunden = $row->gesamtstunden;
$obj->themenbereich = $row->themenbereich;
$obj->anmerkung = $row->anmerkung;
$obj->ext_id = $row->ext_id;
$obj->insertamum = $row->insertamum;
$obj->insertvon = $row->insertvon;
$obj->updateamum = $row->updateamum;
$obj->updatevon = $row->updatevon;
$this->result[] = $obj;
}
}
else
{
$this->errormsg = 'Fehler beim Laden der Daten';
return false;
}
}
}
?>
+154 -55
View File
@@ -32,21 +32,22 @@ class projektbetreuer
var $result = array(); // @var adresse Objekt
//Tabellenspalten
var $person_id; // @var integer
var $person_id; // @var integer
var $projektarbeit_id; // @var integer
var $note; // @var integer
var $betreuerart; // @var character(1) b-Bachelorarbeitsbetreuer, d-Diplomarbeitsbetreuer, g-Diplomarbeitsbegutachter
var $note; // @var integer
var $betreuerart_kurzbz;// @var varchar
var $faktor; // @var numeric(3,2)
var $name; // @var string
var $name; // @var string
var $punkte; // @var numeric(6,2)
var $stunden; // @var integer
var $stunden; // @var numeric(8,4)
var $stundensatz; // @var numeric(6,2)
var $ext_id; // @var integer
var $insertamum; // @var timestamp
var $insertvon; // @var bigint
var $insertvon; // @var bigint
var $updateamum; // @var timestamp
var $updatevon; // @var bigint
var $updatevon; // @var bigint
var $person_id_old;
/**
* Konstruktor
@@ -56,20 +57,24 @@ class projektbetreuer
function projektbetreuer($conn, $person_id=null, $projektarbeit_id=null, $unicode=false)
{
$this->conn = $conn;
if ($unicode)
if($unicode!=null)
{
$qry = "SET CLIENT_ENCODING TO 'UNICODE';";
if ($unicode)
{
$qry = "SET CLIENT_ENCODING TO 'UNICODE';";
}
else
{
$qry="SET CLIENT_ENCODING TO 'LATIN9';";
}
if(!pg_query($conn,$qry))
{
$this->errormsg = "Encoding konnte nicht gesetzt werden";
return false;
}
}
else
{
$qry="SET CLIENT_ENCODING TO 'LATIN9';";
}
if(!pg_query($conn,$qry))
{
$this->errormsg = "Encoding konnte nicht gesetzt werden";
return false;
}
//if($projektarbeit_id != null && $person_id!=null) $this->load($person_id, $projektarbeit_id);
if($projektarbeit_id != null && $person_id!=null)
$this->load($person_id, $projektarbeit_id);
}
/**
@@ -80,7 +85,51 @@ class projektbetreuer
*/
function load($person_id, $projektarbeit_id)
{
//noch nicht implementiert
if(!is_numeric($person_id))
{
$this->errormsg = 'Person_id muss eine gueltige Zahl sein';
return false;
}
if(!is_numeric($projektarbeit_id))
{
$this->errormsg = 'Projektarbeit_id muss eine gueltige Zahl sein';
return false;
}
$qry = "SELECT * FROM lehre.tbl_projektbetreuer WHERE person_id='$person_id' AND projektarbeit_id='$projektarbeit_id'";
if($result = pg_query($this->conn, $qry))
{
if($row = pg_fetch_object($result))
{
$this->person_id = $row->person_id;
$this->projektarbeit_id = $row->projektarbeit_id;
$this->note = $row->note;
$this->betreuerart_kurzbz = $row->betreuerart_kurzbz;
$this->faktor = $row->faktor;
$this->name = $row->name;
$this->punkte = $row->punkte;
$this->stunden = $row->stunden;
$this->stundensatz = $row->stundensatz;
$this->updateamum = $row->updateamum;
$this->updatevon = $row->updatevon;
$this->insertamum = $row->insertamum;
$this->insertvon = $row->insertvon;
$this->ext_id = $row->ext_id;
return true;
}
else
{
$this->errormsg = 'Datensatz wurde nicht gefunden';
return false;
}
}
else
{
$this->errormsg = 'Fehler beim Laden der Daten';
return false;
}
}
/**
@@ -93,9 +142,9 @@ class projektbetreuer
//Gesamtlaenge pruefen
//$this->errormsg='Eine der Gesamtlaengen wurde ueberschritten';
if(strlen($this->betreuerart)>1)
if(strlen($this->betreuerart_kurzbz)>16)
{
$this->errormsg = 'betreuerart darf nicht länger als 1 Zeichen sein - person_id/projektarbeit: '.$this->person_id.'/'.$this->projektarbeit_id;
$this->errormsg = 'betreuerart darf nicht länger als 16 Zeichen sein - person_id/projektarbeit: '.$this->person_id.'/'.$this->projektarbeit_id;
return false;
}
if(strlen($this->name)>32)
@@ -109,7 +158,7 @@ class projektbetreuer
$this->errormsg = 'Note muß ein numerischer Wert sein - person_id/projektarbeit: '.$this->person_id.'/'.$this->projektarbeit_id;
return false;
}
if(!is_numeric($this->Punkte))
if(!is_numeric($this->punkte))
{
$this->errormsg = 'Punkte muß ein numerischer Wert sein - person_id/projektarbeit: '.$this->person_id.'/'.$this->projektarbeit_id;
}
@@ -128,6 +177,7 @@ class projektbetreuer
$this->errormsg = '';
return true;
}
// ************************************************
// * wenn $var '' ist wird "null" zurueckgegeben
// * wenn $var !='' ist werden datenbankkritische
@@ -138,28 +188,31 @@ class projektbetreuer
{
return ($var!=''?"'".addslashes($var)."'":'null');
}
/**
* Speichert den aktuellen Datensatz in die Datenbank
* Wenn $neu auf true gesetzt ist wird ein neuer Datensatz angelegt
* andernfalls wird der Datensatz aktualisiert
* @return true wenn ok, false im Fehlerfall
*/
function save()
function save($new=null)
{
if($new==null)
$new = $this->new;
//Variablen pruefen
if(!$this->checkvars())
return false;
if($this->new)
if($new)
{
//Neuen Datensatz einfuegen
$qry='INSERT INTO lehre.tbl_projektbetreuer (person_id, projektarbeit_id, note, betreuerart, faktor, name,
//Neuen Datensatz einfuegen
$qry='INSERT INTO lehre.tbl_projektbetreuer (person_id, projektarbeit_id, note, betreuerart_kurzbz, faktor, name,
punkte, stunden, stundensatz, ext_id, insertamum, insertvon, updateamum, updatevon) VALUES('.
$this->addslashes($this->person_id).', '.
$this->addslashes($this->projektarbeit_id).', '.
$this->addslashes($this->note).', '.
$this->addslashes($this->betreuerart).', '.
$this->addslashes($this->betreuerart_kurzbz).', '.
$this->addslashes($this->faktor).', '.
$this->addslashes($this->name).', '.
$this->addslashes($this->punkte).', '.
@@ -172,6 +225,8 @@ class projektbetreuer
else
{
//Updaten des bestehenden Datensatzes
if($this->person_id_old=='')
$this->person_id_old = $this->person_id;
//Pruefen ob projektarbeit_id eine gueltige Zahl ist
if(!is_numeric($this->projektarbeit_id))
@@ -179,6 +234,7 @@ class projektbetreuer
$this->errormsg = 'projektarbeit_id muss eine gueltige Zahl sein';
return false;
}
//Pruefen ob person_id eine gueltige Zahl ist
if(!is_numeric($this->person_id))
{
@@ -188,39 +244,20 @@ class projektbetreuer
$qry='UPDATE lehre.tbl_projektbetreuer SET '.
'person_id='.$this->addslashes($this->person_id).', '.
'projektarbeit_id='.$this->addslashes($this->projektarbeit_id).', '.
'note='.$this->addslashes($this->note).', '.
'betreuerart='.$this->addslashes($this->betreuerart).', '.
'betreuerart_kurzbz='.$this->addslashes($this->betreuerart_kurzbz).', '.
'faktor='.$this->addslashes($this->faktor).', '.
'name='.$this->addslashes($this->name).', '.
'punkte'.$this->addslashes($this->punkte).', '.
'punkte='.$this->addslashes($this->punkte).', '.
'stunden='.$this->addslashes($this->stunden).', '.
'stundensatz='.$this->addslashes($this->stundensatz).', '.
'updateamum= now(), '.
'updatevon='.$this->addslashes($this->updatevon).' '.
'firmentyp='.$this->addslashes($this->firmentyp_kurzbz).' '.
'WHERE projektarbeit_id='.$this->addslashes($this->projektarbeit_id).';';
'updateamum='.$this->addslashes($this->updateamum).', '.
'updatevon='.$this->addslashes($this->updatevon).' '.
"WHERE projektarbeit_id='".addslashes($this->projektarbeit_id)."' AND person_id='".addslashes($this->person_id_old)."';";
}
//echo $qry;
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;
} */
{
return true;
}
else
@@ -238,7 +275,69 @@ class projektbetreuer
*/
function delete($person_id, $projektarbeit_id)
{
//noch nicht implementiert!
if(!is_numeric($person_id))
{
$this->errormsg = 'Person_id muss eine gueltige Zahl sein';
return false;
}
if(!is_numeric($projektarbeit_id))
{
$this->errormsg = 'Projektarbeit_id muss eine gueltige Zahl sein';
return false;
}
$qry = "DELETE FROM lehre.tbl_projektbetreuer WHERE person_id='".$person_id."' AND projektarbeit_id='".$projektarbeit_id."';";
if(pg_query($this->conn, $qry))
{
return true;
}
else
{
$this->errormsg = 'Fehler beim Loeschen des Datensatzes';
return false;
}
}
// ************************************************
// * Liefert alle Betreuer zu einer Projektarbeit
// * @param projektarbeit_id
// ************************************************
function getProjektbetreuer($projektarbeit_id)
{
if(!is_numeric($projektarbeit_id))
{
$this->errormsg = 'Projektarbeit_id muss eine gueltige Zahl sein';
return false;
}
$qry = "SELECT * FROM lehre.tbl_projektbetreuer WHERE projektarbeit_id='".$projektarbeit_id."' ORDER BY name";
if($result = pg_query($this->conn, $qry))
{
while($row = pg_fetch_object($result))
{
$obj = new projektbetreuer($this->conn, null, null, null);
$obj->person_id = $row->person_id;
$obj->projektarbeit_id = $row->projektarbeit_id;
$obj->note = $row->note;
$obj->betreuerart_kurzbz = $row->betreuerart_kurzbz;
$obj->faktor = $row->faktor;
$obj->name = $row->name;
$obj->punkte = $row->punkte;
$obj->stunden = $row->stunden;
$obj->stundensatz = $row->stundensatz;
$obj->updateamum = $row->updateamum;
$obj->updatevon = $row->updatevon;
$obj->insertamum = $row->insertamum;
$obj->insertvon = $row->insertvon;
$obj->ext_id = $row->ext_id;
$this->result[] = $obj;
}
}
}
}
?>