diff --git a/include/abschlusspruefung.class.php b/include/abschlusspruefung.class.php old mode 100644 new mode 100755 index 271ce391f..f26690bee --- a/include/abschlusspruefung.class.php +++ b/include/abschlusspruefung.class.php @@ -1,375 +1,380 @@ -, - * Andreas Oesterreicher and - * Rudolf Hangl . - */ -/** - * Klasse zur Verwaltung der Abschlusspruefungen - */ -require_once(dirname(__FILE__).'/basis_db.class.php'); - -class abschlusspruefung extends basis_db -{ - public $new; - public $result = array(); - - //Tabellenspalten - public $abschlusspruefung_id; - public $student_uid; - public $vorsitz; - public $pruefer1; - public $pruefer2; - public $pruefer3; - public $abschlussbeurteilung_kurzbz; - public $note; - public $akadgrad_id; - public $datum; - public $sponsion; - public $pruefungstyp_kurzbz; - public $anmerkung; - public $updateamum; - public $updatevon; - public $insertamum; - public $insertvon; - public $ext_id; - - /** - * Konstruktor - * @param abschlusspruefung_id ID des zu ladenden Datensatzes - */ - public function __construct($abschlusspruefung_id=null) - { - parent::__construct(); - - if(!is_null($abschlusspruefung_id)) - $this->load($abschlusspruefung_id); - } - - /** - * Laedt einen Datensatz - * @param abschlusspruefung_id ID des zu ladenden Datensatzes - */ - public function load($abschlusspruefung_id) - { - //id auf Gueltigkeit pruefen - if(!is_numeric($abschlusspruefung_id)) - { - $this->errormsg = 'abschlusspruefung_id muss eine gueltige Zahl sein'; - return false; - } - - //laden des Datensatzes - $qry = "SELECT - * - FROM - lehre.tbl_abschlusspruefung - JOIN lehre.tbl_pruefungstyp USING (pruefungstyp_kurzbz) - WHERE abschlusspruefung_id=".$this->db_add_param($abschlusspruefung_id, FHC_INTEGER, false).";"; - - if($this->db_query($qry)) - { - if($row = $this->db_fetch_object()) - { - $this->abschlusspruefung_id = $row->abschlusspruefung_id; - $this->student_uid = $row->student_uid; - $this->vorsitz = $row->vorsitz; - $this->pruefer1 = $row->pruefer1; - $this->pruefer2 = $row->pruefer2; - $this->pruefer3 = $row->pruefer3; - $this->abschlussbeurteilung_kurzbz = $row->abschlussbeurteilung_kurzbz; - $this->note = $row->note; - $this->akadgrad_id = $row->akadgrad_id; - $this->datum = $row->datum; - $this->sponsion = $row->sponsion; - $this->pruefungstyp_kurzbz = $row->pruefungstyp_kurzbz; - $this->beschreibung = $row->beschreibung; - $this->anmerkung = $row->anmerkung; - $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 = 'Fehler bei der Datenbankabfrage'; - return false; - } - } - else - { - $this->errormsg = 'Fehler bei der Datenbankabfrage'; - return false; - } - } - - /** - * Loescht einen Datensatz - * @param abschlusspruefung_id ID des zu loeschenden Datensatzes - * @return true wenn ok, false im Fehlerfall - */ - public function delete($abschlusspruefung_id) - { - //abschlusspruefung_id auf Gueltigkeit pruefen - if(!is_numeric($abschlusspruefung_id)) - { - $this->errormsg = 'abschlusspruefung_id muss eine gueltige Zahl sein'; - return false; - } - - $qry = "DELETE FROM lehre.tbl_abschlusspruefung - WHERE abschlusspruefung_id=".$this->db_add_param($abschlusspruefung_id, FHC_INTEGER, false).";"; - - if($this->db_query($qry)) - { - return true; - } - else - { - $this->errormsg = 'Fehler beim Loeschen'; - return false; - } - } - - /** - * Prueft die Daten vor dem Speichern - * - * @return true wenn ok, false wenn Fehler - */ - protected function validate() - { - if($this->akadgrad_id=='') - { - $this->errormsg = 'AkadGrad muss eingegeben werden'; - return false; - } - if($this->pruefungstyp_kurzbz=='') - { - $this->errormsg = 'Pruefungstyp muss eingetragen werden'; - return false; - } - if($this->student_uid=='') - { - $this->errormsg = 'UID muss eingetragen werden'; - return false; - } - return true; - } - - /** - * Speichert den aktuellen Datensatz - * Wenn $neu auf true gesetzt ist wird ein neuer Datensatz angelegt - * andernfalls wird der Datensatz mit der ID in $akte_id aktualisiert - * @return true wenn ok, false im Fehlerfall - */ - public function save($new=null) - { - if(!$this->validate()) - return false; - if($new==null) - $new = $this->new; - - if($new) - { - //Neuen Datensatz anlegen - $qry = "BEGIN;INSERT INTO lehre.tbl_abschlusspruefung (student_uid, vorsitz, pruefer1, - pruefer2, pruefer3, abschlussbeurteilung_kurzbz, akadgrad_id, datum, sponsion, - pruefungstyp_kurzbz, anmerkung, updateamum, updatevon, insertamum, insertvon, - note) VALUES (". - $this->db_add_param($this->student_uid).', '. - $this->db_add_param($this->vorsitz).', '. - $this->db_add_param($this->pruefer1).', '. - $this->db_add_param($this->pruefer2).', '. - $this->db_add_param($this->pruefer3).', '. - $this->db_add_param($this->abschlussbeurteilung_kurzbz).', '. - $this->db_add_param($this->akadgrad_id, FHC_INTEGER).', '. - $this->db_add_param($this->datum).', '. - $this->db_add_param($this->sponsion).', '. - $this->db_add_param($this->pruefungstyp_kurzbz).', '. - $this->db_add_param($this->anmerkung).', '. - $this->db_add_param($this->updateamum).', '. - $this->db_add_param($this->updatevon).', '. - $this->db_add_param($this->insertamum).', '. - $this->db_add_param($this->insertvon).', '. - $this->db_add_param($this->note, FHC_INTEGER).');'; - - } - else - { - //Bestehenden Datensatz aktualisieren - $qry= "UPDATE lehre.tbl_abschlusspruefung SET". - " student_uid=".$this->db_add_param($this->student_uid).",". - " vorsitz=".$this->db_add_param($this->vorsitz).",". - " pruefer1=".$this->db_add_param($this->pruefer1).",". - " pruefer2=".$this->db_add_param($this->pruefer2).",". - " pruefer3=".$this->db_add_param($this->pruefer3).",". - " abschlussbeurteilung_kurzbz=".$this->db_add_param($this->abschlussbeurteilung_kurzbz).",". - " note=".$this->db_add_param($this->note, FHC_INTEGER).",". - " akadgrad_id=".$this->db_add_param($this->akadgrad_id, FHC_INTEGER).",". - " datum=".$this->db_add_param($this->datum).",". - " sponsion=".$this->db_add_param($this->sponsion).",". - " pruefungstyp_kurzbz=".$this->db_add_param($this->pruefungstyp_kurzbz).",". - " anmerkung=".$this->db_add_param($this->anmerkung).",". - " updateamum=".$this->db_add_param($this->updateamum).",". - " updatevon=".$this->db_add_param($this->updatevon). - " WHERE abschlusspruefung_id=".$this->db_add_param($this->abschlusspruefung_id, FHC_INTEGER, false); - } - - if($this->db_query($qry)) - { - if($new) - { - $qry = "SELECT currval('lehre.tbl_abschlusspruefung_abschlusspruefung_id') as id"; - if($this->db_query($qry)) - { - if($row = $this->db_fetch_object()) - { - $this->abschlusspruefung_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; - } - } - else - - return true; - } - else - { - $this->errormsg = 'Fehler beim Speichern des Datensatzes'; - return false; - } - } - - /** - * Laedt alle Abschlusspruefungen eines Studenten - * @param student_uid UID des Studenten - * @return true wenn ok, false wenn Fehler - */ - public function getAbschlusspruefungen($student_uid) - { - $qry = "SELECT - * - FROM - lehre.tbl_abschlusspruefung - JOIN lehre.tbl_pruefungstyp USING (pruefungstyp_kurzbz) - WHERE student_uid=".$this->db_add_param($student_uid, FHC_STRING, false)." - ORDER BY datum DESC"; - - if($this->db_query($qry)) - { - while($row = $this->db_fetch_object()) - { - $obj = new abschlusspruefung(); - - $obj->abschlusspruefung_id = $row->abschlusspruefung_id; - $obj->student_uid = $row->student_uid; - $obj->vorsitz = $row->vorsitz; - $obj->pruefer1 = $row->pruefer1; - $obj->pruefer2 = $row->pruefer2; - $obj->pruefer3 = $row->pruefer3; - $obj->abschlussbeurteilung_kurzbz = $row->abschlussbeurteilung_kurzbz; - $obj->note = $row->note; - $obj->akadgrad_id = $row->akadgrad_id; - $obj->datum = $row->datum; - $obj->sponsion = $row->sponsion; - $obj->pruefungstyp_kurzbz = $row->pruefungstyp_kurzbz; - $obj->beschreibung = $row->beschreibung; - $obj->anmerkung = $row->anmerkung; - $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; - } - return true; - } - else - { - $this->errormsg = 'Fehler beim Laden der Daten'; - return false; - } - } - - - /** - * Liefert die letzte Abschlussprüfung eines Studenten - * @param type $student_uid - */ - public function getLastAbschlusspruefung($student_uid) - { - $qry = "SELECT - * - FROM - lehre.tbl_abschlusspruefung - JOIN lehre.tbl_pruefungstyp USING (pruefungstyp_kurzbz) - WHERE student_uid=".$this->db_add_param($student_uid, FHC_STRING, false)." - ORDER BY datum DESC LIMIT 1"; - - if($this->db_query($qry)) - { - if($row = $this->db_fetch_object()) - { - $this->abschlusspruefung_id = $row->abschlusspruefung_id; - $this->student_uid = $row->student_uid; - $this->vorsitz = $row->vorsitz; - $this->pruefer1 = $row->pruefer1; - $this->pruefer2 = $row->pruefer2; - $this->pruefer3 = $row->pruefer3; - $this->abschlussbeurteilung_kurzbz = $row->abschlussbeurteilung_kurzbz; - $this->note = $row->note; - $this->akadgrad_id = $row->akadgrad_id; - $this->datum = $row->datum; - $this->sponsion = $row->sponsion; - $this->pruefungstyp_kurzbz = $row->pruefungstyp_kurzbz; - $this->beschreibung = $row->beschreibung; - $this->anmerkung = $row->anmerkung; - $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 = 'Fehler beim Laden der Daten'; - return false; - } - } - -} -?> +, + * Andreas Oesterreicher and + * Rudolf Hangl . + */ +/** + * Klasse zur Verwaltung der Abschlusspruefungen + */ +require_once(dirname(__FILE__).'/basis_db.class.php'); + +class abschlusspruefung extends basis_db +{ + public $new; + public $result = array(); + + //Tabellenspalten + public $abschlusspruefung_id; + public $student_uid; + public $vorsitz; + public $pruefer1; + public $pruefer2; + public $pruefer3; + public $abschlussbeurteilung_kurzbz; + public $note; + public $akadgrad_id; + public $datum; + public $uhrzeit; + public $sponsion; + public $pruefungstyp_kurzbz; + public $anmerkung; + public $updateamum; + public $updatevon; + public $insertamum; + public $insertvon; + public $ext_id; + + /** + * Konstruktor + * @param abschlusspruefung_id ID des zu ladenden Datensatzes + */ + public function __construct($abschlusspruefung_id=null) + { + parent::__construct(); + + if(!is_null($abschlusspruefung_id)) + $this->load($abschlusspruefung_id); + } + + /** + * Laedt einen Datensatz + * @param abschlusspruefung_id ID des zu ladenden Datensatzes + */ + public function load($abschlusspruefung_id) + { + //id auf Gueltigkeit pruefen + if(!is_numeric($abschlusspruefung_id)) + { + $this->errormsg = 'abschlusspruefung_id muss eine gueltige Zahl sein'; + return false; + } + + //laden des Datensatzes + $qry = "SELECT + * + FROM + lehre.tbl_abschlusspruefung + JOIN lehre.tbl_pruefungstyp USING (pruefungstyp_kurzbz) + WHERE abschlusspruefung_id=".$this->db_add_param($abschlusspruefung_id, FHC_INTEGER, false).";"; + + if($this->db_query($qry)) + { + if($row = $this->db_fetch_object()) + { + $this->abschlusspruefung_id = $row->abschlusspruefung_id; + $this->student_uid = $row->student_uid; + $this->vorsitz = $row->vorsitz; + $this->pruefer1 = $row->pruefer1; + $this->pruefer2 = $row->pruefer2; + $this->pruefer3 = $row->pruefer3; + $this->abschlussbeurteilung_kurzbz = $row->abschlussbeurteilung_kurzbz; + $this->note = $row->note; + $this->akadgrad_id = $row->akadgrad_id; + $this->datum = $row->datum; + $this->uhrzeit = $row->uhrzeit; + $this->sponsion = $row->sponsion; + $this->pruefungstyp_kurzbz = $row->pruefungstyp_kurzbz; + $this->beschreibung = $row->beschreibung; + $this->anmerkung = $row->anmerkung; + $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 = 'Fehler bei der Datenbankabfrage'; + return false; + } + } + else + { + $this->errormsg = 'Fehler bei der Datenbankabfrage'; + return false; + } + } + + /** + * Loescht einen Datensatz + * @param abschlusspruefung_id ID des zu loeschenden Datensatzes + * @return true wenn ok, false im Fehlerfall + */ + public function delete($abschlusspruefung_id) + { + //abschlusspruefung_id auf Gueltigkeit pruefen + if(!is_numeric($abschlusspruefung_id)) + { + $this->errormsg = 'abschlusspruefung_id muss eine gueltige Zahl sein'; + return false; + } + + $qry = "DELETE FROM lehre.tbl_abschlusspruefung + WHERE abschlusspruefung_id=".$this->db_add_param($abschlusspruefung_id, FHC_INTEGER, false).";"; + + if($this->db_query($qry)) + { + return true; + } + else + { + $this->errormsg = 'Fehler beim Loeschen'; + return false; + } + } + + /** + * Prueft die Daten vor dem Speichern + * + * @return true wenn ok, false wenn Fehler + */ + protected function validate() + { + if($this->akadgrad_id=='') + { + $this->errormsg = 'AkadGrad muss eingegeben werden'; + return false; + } + if($this->pruefungstyp_kurzbz=='') + { + $this->errormsg = 'Pruefungstyp muss eingetragen werden'; + return false; + } + if($this->student_uid=='') + { + $this->errormsg = 'UID muss eingetragen werden'; + return false; + } + return true; + } + + /** + * Speichert den aktuellen Datensatz + * Wenn $neu auf true gesetzt ist wird ein neuer Datensatz angelegt + * andernfalls wird der Datensatz mit der ID in $akte_id aktualisiert + * @return true wenn ok, false im Fehlerfall + */ + public function save($new=null) + { + if(!$this->validate()) + return false; + if($new==null) + $new = $this->new; + + if($new) + { + //Neuen Datensatz anlegen + $qry = "BEGIN;INSERT INTO lehre.tbl_abschlusspruefung (student_uid, vorsitz, pruefer1, + pruefer2, pruefer3, abschlussbeurteilung_kurzbz, akadgrad_id, datum, uhrzeit, sponsion, + pruefungstyp_kurzbz, anmerkung, updateamum, updatevon, insertamum, insertvon, + note) VALUES (". + $this->db_add_param($this->student_uid).', '. + $this->db_add_param($this->vorsitz).', '. + $this->db_add_param($this->pruefer1).', '. + $this->db_add_param($this->pruefer2).', '. + $this->db_add_param($this->pruefer3).', '. + $this->db_add_param($this->abschlussbeurteilung_kurzbz).', '. + $this->db_add_param($this->akadgrad_id, FHC_INTEGER).', '. + $this->db_add_param($this->datum).', '. + $this->db_add_param($this->uhrzeit, FHC_STRING, false).', '. + $this->db_add_param($this->sponsion).', '. + $this->db_add_param($this->pruefungstyp_kurzbz).', '. + $this->db_add_param($this->anmerkung).', '. + $this->db_add_param($this->updateamum).', '. + $this->db_add_param($this->updatevon).', '. + $this->db_add_param($this->insertamum).', '. + $this->db_add_param($this->insertvon).', '. + $this->db_add_param($this->note, FHC_INTEGER).');'; + + } + else + { + //Bestehenden Datensatz aktualisieren + $qry= "UPDATE lehre.tbl_abschlusspruefung SET". + " student_uid=".$this->db_add_param($this->student_uid).",". + " vorsitz=".$this->db_add_param($this->vorsitz).",". + " pruefer1=".$this->db_add_param($this->pruefer1).",". + " pruefer2=".$this->db_add_param($this->pruefer2).",". + " pruefer3=".$this->db_add_param($this->pruefer3).",". + " abschlussbeurteilung_kurzbz=".$this->db_add_param($this->abschlussbeurteilung_kurzbz).",". + " note=".$this->db_add_param($this->note, FHC_INTEGER).",". + " akadgrad_id=".$this->db_add_param($this->akadgrad_id, FHC_INTEGER).",". + " datum=".$this->db_add_param($this->datum).",". + " uhrzeit=".$this->db_add_param($this->uhrzeit, FHC_STRING, false).",". + " sponsion=".$this->db_add_param($this->sponsion).",". + " pruefungstyp_kurzbz=".$this->db_add_param($this->pruefungstyp_kurzbz).",". + " anmerkung=".$this->db_add_param($this->anmerkung).",". + " updateamum=".$this->db_add_param($this->updateamum).",". + " updatevon=".$this->db_add_param($this->updatevon). + " WHERE abschlusspruefung_id=".$this->db_add_param($this->abschlusspruefung_id, FHC_INTEGER, false); + } + + if($this->db_query($qry)) + { + if($new) + { + $qry = "SELECT currval('lehre.tbl_abschlusspruefung_abschlusspruefung_id') as id"; + if($this->db_query($qry)) + { + if($row = $this->db_fetch_object()) + { + $this->abschlusspruefung_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; + } + } + else + return true; + } + else + { + $this->errormsg = 'Fehler beim Speichern des Datensatzes'; + return false; + } + } + + /** + * Laedt alle Abschlusspruefungen eines Studenten + * @param student_uid UID des Studenten + * @return true wenn ok, false wenn Fehler + */ + public function getAbschlusspruefungen($student_uid) + { + $qry = "SELECT + * + FROM + lehre.tbl_abschlusspruefung + JOIN lehre.tbl_pruefungstyp USING (pruefungstyp_kurzbz) + WHERE student_uid=".$this->db_add_param($student_uid, FHC_STRING, false)." + ORDER BY datum DESC"; + + if($this->db_query($qry)) + { + while($row = $this->db_fetch_object()) + { + $obj = new abschlusspruefung(); + + $obj->abschlusspruefung_id = $row->abschlusspruefung_id; + $obj->student_uid = $row->student_uid; + $obj->vorsitz = $row->vorsitz; + $obj->pruefer1 = $row->pruefer1; + $obj->pruefer2 = $row->pruefer2; + $obj->pruefer3 = $row->pruefer3; + $obj->abschlussbeurteilung_kurzbz = $row->abschlussbeurteilung_kurzbz; + $obj->note = $row->note; + $obj->akadgrad_id = $row->akadgrad_id; + $obj->datum = $row->datum; + $obj->uhrzeit = $row->uhrzeit; + $obj->sponsion = $row->sponsion; + $obj->pruefungstyp_kurzbz = $row->pruefungstyp_kurzbz; + $obj->beschreibung = $row->beschreibung; + $obj->anmerkung = $row->anmerkung; + $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; + } + return true; + } + else + { + $this->errormsg = 'Fehler beim Laden der Daten'; + return false; + } + } + + + /** + * Liefert die letzte Abschlussprüfung eines Studenten + * @param type $student_uid + */ + public function getLastAbschlusspruefung($student_uid) + { + $qry = "SELECT + * + FROM + lehre.tbl_abschlusspruefung + JOIN lehre.tbl_pruefungstyp USING (pruefungstyp_kurzbz) + WHERE student_uid=".$this->db_add_param($student_uid, FHC_STRING, false)." + ORDER BY datum DESC LIMIT 1"; + + if($this->db_query($qry)) + { + if($row = $this->db_fetch_object()) + { + $this->abschlusspruefung_id = $row->abschlusspruefung_id; + $this->student_uid = $row->student_uid; + $this->vorsitz = $row->vorsitz; + $this->pruefer1 = $row->pruefer1; + $this->pruefer2 = $row->pruefer2; + $this->pruefer3 = $row->pruefer3; + $this->abschlussbeurteilung_kurzbz = $row->abschlussbeurteilung_kurzbz; + $this->note = $row->note; + $this->akadgrad_id = $row->akadgrad_id; + $this->datum = $row->datum; + $this->uhrzeit = $row->uhrzeit; + $this->sponsion = $row->sponsion; + $this->pruefungstyp_kurzbz = $row->pruefungstyp_kurzbz; + $this->beschreibung = $row->beschreibung; + $this->anmerkung = $row->anmerkung; + $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 = 'Fehler beim Laden der Daten'; + return false; + } + } + +} +?> diff --git a/include/person.class.php b/include/person.class.php index 1e6779b58..d8ea01d53 100644 --- a/include/person.class.php +++ b/include/person.class.php @@ -47,7 +47,7 @@ class person extends basis_db public $foto; // text public $anmerkungen; // varchar(256) public $homepage; // varchar(256) - public $svnr; // char(10) + public $svnr; // varchar(16) public $ersatzkennzeichen; // char(10) public $familienstand; // char(1) public $anzahlkinder; // smalint @@ -239,9 +239,9 @@ class person extends basis_db $this->errormsg = 'Homepage darf nicht laenger als 256 Zeichen sein'; return false; } - if(mb_strlen($this->svnr)>10) + if(mb_strlen($this->svnr)>16) { - $this->errormsg = 'SVNR darf nicht laenger als 10 Zeichen sein'; + $this->errormsg = 'SVNR darf nicht laenger als 16 Zeichen sein'; return false; } @@ -251,13 +251,14 @@ class person extends basis_db return false; } - if($this->svnr!='') + if(mb_strlen($this->svnr) != 16 && mb_strlen($this->svnr) != 10) + { + $this->errormsg = 'SVNR muss 10 oder 16 Zeichen lang sein'; + return false; + } + + if($this->svnr!='' && mb_strlen($this->svnr)==10) { - if(mb_strlen($this->svnr)!=10) - { - $this->errormsg = 'Sozialversicherungsnummer muss 10stellig sein'; - return false; - } //SVNR mit Pruefziffer pruefen //Die 4. Stelle in der SVNR ist die Pruefziffer //(Summe von (gewichtung[i]*svnr[i])) modulo 11 ergibt diese Pruefziffer diff --git a/rdf/abschlusspruefung.rdf.php b/rdf/abschlusspruefung.rdf.php old mode 100644 new mode 100755 index 7a9ad66f6..671d1f4b9 --- a/rdf/abschlusspruefung.rdf.php +++ b/rdf/abschlusspruefung.rdf.php @@ -54,13 +54,13 @@ $datum_obj = new datum(); $db = new basis_db(); $abschlussbeurteilung_arr = array(); -$abschlussbeurteilung_arrEnglish = array(); +$abschlussbeurteilung_arrEnglish = array(); $qry = "SELECT * FROM lehre.tbl_abschlussbeurteilung"; if($db->db_query($qry)) while($row = $db->db_fetch_object()) { $abschlussbeurteilung_arr[$row->abschlussbeurteilung_kurzbz]=$row->bezeichnung; - $abschlussbeurteilung_arrEng[$row->abschlussbeurteilung_kurzbz]=$row->bezeichnung_english; + $abschlussbeurteilung_arrEng[$row->abschlussbeurteilung_kurzbz]=$row->bezeichnung_english; } $note_arr = array(); @@ -68,7 +68,7 @@ $qry = "SELECT * FROM lehre.tbl_note"; if($db->db_query($qry)) while($row = $db->db_fetch_object()) $note_arr[$row->note]=$row->anmerkung; - + function draw_content_xml($row) { global $rdf_url, $datum_obj, $abschlussbeurteilung_arr, $abschlussbeurteilung_arrEng, $note_arr; @@ -91,7 +91,7 @@ if($db->db_query($qry)) $studiengang = new studiengang($student->studiengang_kz); $akadgrad = new akadgrad($row->akadgrad_id); - + if($mitarbeiter->load($row->vorsitz)) { $vorsitz = trim($mitarbeiter->titelpre.' '.$mitarbeiter->vorname.' '.$mitarbeiter->nachname.' '.$mitarbeiter->titelpost); @@ -103,7 +103,7 @@ if($db->db_query($qry)) $pruefer2 = trim($person->titelpre.' '.$person->vorname.' '.$person->nachname.' '.$person->titelpost); if($person->load($row->pruefer3)) $pruefer3 = trim($person->titelpre.' '.$person->vorname.' '.$person->nachname.' '.$person->titelpost); - + $qry = "SELECT * FROM public.tbl_benutzerfunktion JOIN campus.vw_mitarbeiter USING(uid) WHERE funktion_kurzbz='rek'"; $rektor = ''; $db = new basis_db(); @@ -111,8 +111,8 @@ if($db->db_query($qry)) if($db->db_query($qry)) if($row_rek = $db->db_fetch_object()) $rektor = $row_rek->titelpre.' '.$row_rek->vorname.' '.$row_rek->nachname.' '.$row_rek->titelpost; - $qry = "SELECT * FROM (SELECT titel as themenbereich, ende, projektarbeit_id, note, beginn FROM lehre.tbl_projektarbeit a - WHERE student_uid='$student->uid' AND (projekttyp_kurzbz='Bachelor' OR projekttyp_kurzbz='Diplom' OR projekttyp_kurzbz='Master' OR projekttyp_kurzbz='Dissertation' OR projekttyp_kurzbz='Lizenziat' OR projekttyp_kurzbz='Magister') + $qry = "SELECT * FROM (SELECT titel as themenbereich, ende, projektarbeit_id, note, beginn FROM lehre.tbl_projektarbeit a + WHERE student_uid='$student->uid' AND (projekttyp_kurzbz='Bachelor' OR projekttyp_kurzbz='Diplom' OR projekttyp_kurzbz='Master' OR projekttyp_kurzbz='Dissertation' OR projekttyp_kurzbz='Lizenziat' OR projekttyp_kurzbz='Magister') ORDER BY beginn DESC, projektarbeit_id ASC LIMIT 2) as a ORDER BY beginn asc"; $themenbereich=''; $datum_projekt=''; @@ -122,9 +122,9 @@ if($db->db_query($qry)) $note = ''; $note2=''; $datum_projekt2=''; - + if($result_proj = $db->db_query($qry)) - { + { if($row_proj = $db->db_fetch_object($result_proj)) { $qry_bet = "SELECT titelpre, vorname, nachname, titelpost FROM lehre.tbl_projektbetreuer JOIN public.tbl_person USING(person_id) WHERE projektarbeit_id='$row_proj->projektarbeit_id' AND (betreuerart_kurzbz in('Erstbegutachter', 'Erstbetreuer', 'Betreuer', 'Begutacher')) LIMIT 1"; @@ -140,7 +140,7 @@ if($db->db_query($qry)) $lehrveranstaltung = new lehrveranstaltung($lehreinheit->lehrveranstaltung_id); $projektnote = new note($note); } - + if($row_proj = $db->db_fetch_object($result_proj)) { $qry_bet = "SELECT titelpre, vorname, nachname, titelpost FROM lehre.tbl_projektbetreuer JOIN public.tbl_person USING(person_id) WHERE projektarbeit_id='$row_proj->projektarbeit_id' AND (betreuerart_kurzbz in('Erstbegutachter', 'Erstbetreuer', 'Betreuer', 'Begutacher')) LIMIT 1"; @@ -153,24 +153,24 @@ if($db->db_query($qry)) $datum_projekt2 = $datum_obj->convertISODate($row_proj->ende); } } - + switch($student->anrede) { case 'Herr': $anrede_engl = 'Mr'; break; case 'Frau': $anrede_engl = 'Ms'; break; default: $anrede_engl = ''; break; } - + if($student->anrede == 'Herr') $anrede = 'Herrn'; - else + else $anrede = $student->anrede; - - - + + + if($row->sponsion=='') $row->sponsion=$row->datum; - + if($studiengang->typ=='m') { $stg_art='Master-Studiengang'; @@ -186,11 +186,11 @@ if($db->db_query($qry)) $stg_art='Diplom-Studiengang'; $stg_art_engl='diploma'; } - + $oe = new organisationseinheit(); $parents = $oe->getParents($studiengang->oe_kurzbz); $oe_parent = ""; - + foreach ($parents as $parent) { $oe_temp = new organisationseinheit(); @@ -201,21 +201,21 @@ if($db->db_query($qry)) break; } } - + $studiengang_bezeichnung2 = explode(" ", $studiengang->bezeichnung, 2); $name = trim($student->titelpre.' '.trim($student->vorname.' '.$student->vornamen).' '.$student->nachname.($student->titelpost!=''?', '.$student->titelpost:'')); - + //Wenn Lehrgang, dann Erhalter-KZ vor die Studiengangs-Kz hängen if ($student->studiengang_kz<0) { $stg = new studiengang(); $stg->load($student->studiengang_kz); - + $studiengang_kz = sprintf("%03s", $stg->erhalter_kz).sprintf("%04s", abs($student->studiengang_kz)); } else $studiengang_kz = sprintf("%04s", abs($student->studiengang_kz)); - + echo "\t".' abschlusspruefung_id.']]> student_uid.']]> @@ -233,6 +233,7 @@ if($db->db_query($qry)) akadgrad_id.']]> convertISODate($row->datum).']]> datum.']]> + uhrzeit.']]> convertISODate($row->sponsion).']]> sponsion.']]> pruefungstyp_kurzbz.']]> @@ -285,7 +286,7 @@ if($db->db_query($qry)) '; - + echo "\n\t"; } @@ -318,31 +319,32 @@ if ($xmlformat=='rdf') $pruefer3 = $person->nachname; echo ' - - - abschlusspruefung_id.']]> - student_uid.']]> - vorsitz.']]> - - pruefer1.']]> - - pruefer2.']]> - - pruefer3.']]> - - abschlussbeurteilung_kurzbz.']]> - note.']]> - akadgrad_id.']]> - convertISODate($row->datum).']]> - datum.']]> - convertISODate($row->sponsion).']]> - sponsion.']]> - pruefungstyp_kurzbz.']]> - beschreibung.']]> - anmerkung.']]> - - - '; + + + abschlusspruefung_id.']]> + student_uid.']]> + vorsitz.']]> + + pruefer1.']]> + + pruefer2.']]> + + pruefer3.']]> + + abschlussbeurteilung_kurzbz.']]> + note.']]> + akadgrad_id.']]> + convertISODate($row->datum).']]> + datum.']]> + uhrzeit.']]> + convertISODate($row->sponsion).']]> + sponsion.']]> + pruefungstyp_kurzbz.']]> + beschreibung.']]> + anmerkung.']]> + + + '; } echo ' '; echo ''; } //endof xmlformat==rdf @@ -384,7 +386,7 @@ elseif ($xmlformat=='xml') { $uids = explode(';',$_GET['uid']); - foreach ($uids as $uid) + foreach ($uids as $uid) { if($uid!='') { @@ -416,4 +418,4 @@ elseif ($xmlformat=='xml') echo "\n"; } //endof xmlformat==xml -?> \ No newline at end of file +?> diff --git a/system/dbupdate_3.2.php b/system/dbupdate_3.2.php index 56ad8cdc7..cae045455 100644 --- a/system/dbupdate_3.2.php +++ b/system/dbupdate_3.2.php @@ -170,15 +170,527 @@ if(!$result = @$db->db_query("SELECT bisorgform_kurzbz FROM bis.tbl_orgform LIMI //Spalte curriculum in lehre.tbl_studienordnung_lehrveranstaltung if (!$result = @$db->db_query("SELECT curriculum FROM lehre.tbl_studienplan_lehrveranstaltung LIMIT 1;")) { - $qry = "ALTER TABLE lehre.tbl_studienplan_lehrveranstaltung ADD COLUMN curriculum BOOLEAN DEFAULT TRUE;"; - - if (!$db->db_query($qry)) - echo 'lehre.tbl_studienplan_lehrveranstaltung: ' . $db->db_last_error() . '
'; - else - echo ' lehre.tbl_studienplan_lehrveranstaltung: Spalte curriculum hinzugefügt.
'; - + $qry = "ALTER TABLE lehre.tbl_studienplan_lehrveranstaltung ADD COLUMN curriculum BOOLEAN DEFAULT TRUE;"; + + if (!$db->db_query($qry)) + echo 'lehre.tbl_studienplan_lehrveranstaltung: ' . $db->db_last_error() . '
'; + else + echo ' lehre.tbl_studienplan_lehrveranstaltung: Spalte curriculum hinzugefügt.
'; } + + + + + + +//sozialversicherungsnummer auf char(16) erhöhen +/**********************************************************ANFANG SVNR ÄNDERUNG**************************************************************************/ +if($result = @$db->db_query("SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA='public' AND TABLE_NAME='tbl_person' AND COLUMN_NAME = 'svnr' AND DATA_TYPE='character varying' AND character_maximum_length='16';")) +{ + if($db->db_num_rows($result)==0) + { + //********************************GENERIC******************************** + $views=array(); + $success = true; + + //********************************GET ALL NEEDED VIEWS******************************** + + $qry=" + SELECT column_name as spalte, table_name as tabelle, table_schema as schema + FROM information_schema.columns + WHERE + column_name in('svnr') + AND data_type='character' + AND character_maximum_length='10' + ORDER BY table_name DESC, column_name"; + + + if($result = $db->db_query($qry)) + { + $db->db_query('BEGIN'); + while($row = $db->db_fetch_object($result)) + { + $comment = ""; + + //Alle Views die Spalten enthalten die geaendert werden loeschen + if(substr($row->tabelle,0,3)=='vw_') + { + $qry_view = "SELECT * FROM pg_views WHERE viewname='$row->tabelle' AND schemaname='$row->schema'"; + if($result_view = $db->db_query($qry_view)) + { + if($row_view = $db->db_fetch_object($result_view)) + { + if($row_view->schemaname != "public") + $key = $row_view->schemaname.".".$row_view->viewname; + else + $key = $row_view->viewname; + + if(!isset($views[$key])) + { + $privileges = array(); + + //get all privileges of this view + $qry_view_priv = "SELECT * + FROM information_schema.role_table_grants + WHERE table_schema='".$row_view->schemaname."' + AND table_name='".$row_view->viewname."';"; + + if($result_view_priv = $db->db_query($qry_view_priv)) + { + while($row_view_priv = $db->db_fetch_object($result_view_priv)) + { + $privileges[] = array( + "grantee" => $row_view_priv->grantee, + "privilege_type" => $row_view_priv->privilege_type, + ); + } + } + + + + + //get the comment of the view + $qry_view_comment = "SELECT nspname, cl.relname, obj_description(cl.oid) + FROM pg_class cl, pg_catalog.pg_namespace ns + WHERE ns.oid=cl.relnamespace + AND cl.relname='".$row_view->viewname."' + AND nspname='".$row_view->schemaname."';"; + + if($result_view_comment = $db->db_query($qry_view_comment)) + { + if($row_view_comment = $db->db_fetch_object($result_view_comment)) + { + $comment = $row_view_comment->obj_description; + } + } + + + + + //save the view informations for later + $views[$key]['definition']=$row_view->definition; + $views[$key]['schema']=$row_view->schemaname; + $views[$key]['viewname']=$row_view->viewname; + $views[$key]['dropped']=false; + $views[$key]['privileges']=$privileges; + $views[$key]['comment']=$comment; + + + //resolve dependencys + echo "resolving deps for " . $key."
"; + $qry_RECURSIVE_DEPS = + "WITH RECURSIVE dep_recursive AS ( + + SELECT + 0 AS \"level\", + '".$key."' AS \"dep_name\", + '' AS \"dep_table\", + '' AS \"dep_type\", + '' AS \"ref_name\", + '' AS \"ref_type\" + + UNION ALL + + SELECT + level + 1 AS \"level\", + depedencies.dep_name, + depedencies.dep_table, + depedencies.dep_type, + depedencies.ref_name, + depedencies.ref_type + FROM ( + WITH classType AS ( + SELECT + oid, + CASE relkind + WHEN 'm' THEN 'MATERIALIZED VIEW'::text + WHEN 'r' THEN 'TABLE'::text + WHEN 'i' THEN 'INDEX'::text + WHEN 'S' THEN 'SEQUENCE'::text + WHEN 'v' THEN 'VIEW'::text + WHEN 'c' THEN 'TYPE'::text + WHEN 't' THEN 'TABLE'::text + END AS \"type\" + FROM pg_class + ) + + SELECT DISTINCT + CASE classid + WHEN 'pg_class'::regclass THEN objid::regclass::text + WHEN 'pg_type'::regclass THEN objid::regtype::text + WHEN 'pg_proc'::regclass THEN objid::regprocedure::text + WHEN 'pg_constraint'::regclass THEN (SELECT conname FROM pg_constraint WHERE OID = objid) + WHEN 'pg_attrdef'::regclass THEN 'default' + WHEN 'pg_rewrite'::regclass THEN (SELECT ev_class::regclass::text FROM pg_rewrite WHERE OID = objid) + WHEN 'pg_trigger'::regclass THEN (SELECT tgname FROM pg_trigger WHERE OID = objid) + ELSE objid::text + END AS \"dep_name\", + CASE classid + WHEN 'pg_constraint'::regclass THEN (SELECT conrelid::regclass::text FROM pg_constraint WHERE OID = objid) + WHEN 'pg_attrdef'::regclass THEN (SELECT adrelid::regclass::text FROM pg_attrdef WHERE OID = objid) + WHEN 'pg_trigger'::regclass THEN (SELECT tgrelid::regclass::text FROM pg_trigger WHERE OID = objid) + ELSE '' + END AS \"dep_table\", + CASE classid + WHEN 'pg_class'::regclass THEN (SELECT TYPE FROM classType WHERE OID = objid) + WHEN 'pg_type'::regclass THEN 'TYPE' + WHEN 'pg_proc'::regclass THEN 'FUNCTION' + WHEN 'pg_constraint'::regclass THEN 'TABLE CONSTRAINT' + WHEN 'pg_attrdef'::regclass THEN 'TABLE DEFAULT' + WHEN 'pg_rewrite'::regclass THEN (SELECT TYPE FROM classType WHERE OID = (SELECT ev_class FROM pg_rewrite WHERE OID = objid)) + WHEN 'pg_trigger'::regclass THEN 'TRIGGER' + ELSE objid::text + END AS \"dep_type\", + CASE refclassid + WHEN 'pg_class'::regclass THEN refobjid::regclass::text + WHEN 'pg_type'::regclass THEN refobjid::regtype::text + WHEN 'pg_proc'::regclass THEN refobjid::regprocedure::text + ELSE refobjid::text + END AS \"ref_name\", + CASE refclassid + WHEN 'pg_class'::regclass THEN (SELECT TYPE FROM classType WHERE OID = refobjid) + WHEN 'pg_type'::regclass THEN 'TYPE' + WHEN 'pg_proc'::regclass THEN 'FUNCTION' + ELSE refobjid::text + END AS \"ref_type\", + CASE deptype + WHEN 'n' THEN 'normal' + WHEN 'a' THEN 'automatic' + WHEN 'i' THEN 'internal' + WHEN 'e' THEN 'extension' + WHEN 'p' THEN 'pinned' + END AS \"dependency type\" + FROM pg_catalog.pg_depend + WHERE deptype = 'n' + AND refclassid NOT IN (2615, 2612) + + ) depedencies + JOIN dep_recursive ON (dep_recursive.dep_name = depedencies.ref_name) + WHERE depedencies.ref_name NOT IN(depedencies.dep_name, depedencies.dep_table) + + ) + + SELECT + MAX(level) AS \"level\", + dep_name, + MIN(dep_table) AS \"dep_table\", + MIN(dep_type) AS \"dep_type\", + string_agg(ref_name, ', ') AS \"ref_names\", + string_agg(ref_type, ', ') AS \"ref_types\" + FROM dep_recursive + WHERE level > 0 + AND dep_type='VIEW' + GROUP BY dep_name + ORDER BY level desc, dep_name;"; + + if($res_RECURSIVE_DEPS = $db->db_query($qry_RECURSIVE_DEPS)) + { + while($rrd = $db->db_fetch_object($res_RECURSIVE_DEPS)) + { + $comment_deps = ""; + + echo "added " .$rrd->dep_name."
"; + if(strpos($rrd->dep_name,".") !== false) + $qry_view_deps = "SELECT * FROM pg_views WHERE (schemaname || '.' || viewname)='$rrd->dep_name'"; + else + $qry_view_deps = "SELECT * FROM pg_views WHERE viewname='$rrd->dep_name' AND schemaname='public'"; + + if($result_view_deps = $db->db_query($qry_view_deps)) + { + if($row_view_deps = $db->db_fetch_object($result_view_deps)) + { + $key_deps = $row_view_deps->schemaname.".".$row_view_deps->viewname; + if(!isset($views[$key_deps])) + { + $privileges = array(); + + //get all privileges of this view + $qry_view_priv = "SELECT * + FROM information_schema.role_table_grants + WHERE table_schema='".$row_view_deps->schemaname."' + AND table_name='".$row_view_deps->viewname."';"; + + if($result_view_priv = $db->db_query($qry_view_priv)) + { + while($row_view_priv = $db->db_fetch_object($result_view_priv)) + { + $privileges[] = array( + "grantee" => $row_view_priv->grantee, + "privilege_type" => $row_view_priv->privilege_type, + ); + } + } + + + + //get the comment of the view + $qry_view_comment = "SELECT nspname, cl.relname, obj_description(cl.oid) + FROM pg_class cl, pg_catalog.pg_namespace ns + WHERE ns.oid=cl.relnamespace + AND cl.relname='".$row_view_deps->viewname."' + AND nspname='".$row_view_deps->schemaname."';"; + + if($result_view_comment = $db->db_query($qry_view_comment)) + { + if($row_view_comment = $db->db_fetch_object($result_view_comment)) + { + $comment_deps = $row_view_comment->obj_description; + } + } + + + + $views[$key_deps]['definition']=$row_view_deps->definition; + $views[$key_deps]['schema']=$row_view_deps->schemaname; + $views[$key_deps]['viewname']=$row_view_deps->viewname; + $views[$key_deps]['dropped']=false; + $views[$key_deps]['privileges']=$privileges; + $views[$key_deps]['comment']=$comment_deps; + } + } + else + { + echo "view " . $rrd->dep_name . " not found!
"; + var_dump($qry_view_deps); + echo "

"; + } + } + } + } + } + } + } + } + } + //********************************DROP ALL VIEWS RECURSIVELY******************************** + echo "

LÖSCHEN:
"; + if(!drop_all_views_recursively($db, $views)){$success = false;} + + + + + + //********************************CHANGE DATATYPE******************************** + $qry_alter = " + ALTER TABLE public.tbl_person ALTER COLUMN svnr TYPE varchar(16);"; + + if(!$db->db_query($qry_alter)) + echo 'public.tbl_person: '.$db->db_last_error().'
'; + else + echo 'public.tbl_person: svnr auf varchar(16) erhöht
'; + + //********************************CREATE ALL VIEWS AGAIN******************************** + echo "

NEU ANLEGEN:
"; + if(!create_all_views_recursively($db, $views)){$success = false;} + + if($success) + $db->db_query('COMMIT'); + else + $db->db_query('ROLLBACK'); + } + } +} + + + +//RECURSIVE DROP FUNCTIONS +function recursiveDrop($db, &$allviews, $lastcount) +{ + + $nc = 0; + foreach($allviews as $vk => $v) + { + if(!$allviews[$vk]["dropped"]) + { + $db->db_query('SAVEPOINT drop_'.$v['schema'].'_'.$v['viewname'].';'); + + $qry_drp_view = "DROP VIEW ".$vk.";"; + if(@$db->db_query($qry_drp_view)) + { + echo $vk ." DROPPED
"; + $allviews[$vk]["dropped"] = true; + continue; + } + $nc ++; //count the not dropped + $db->db_query('ROLLBACK TO drop_'.$v['schema'].'_'.$v['viewname'].';'); + } + } + + if($lastcount == 0) + return true; + + + if($nc == $lastcount) + { + echo "

ENDLESS!
"; + printAllUndroppedViews($allviews); + return false; + } + + + + $lastcount = $nc; + return recursiveDrop($db, $allviews, $lastcount); +} + + + + +function drop_all_views_recursively($db, &$allviews) +{ + return recursiveDrop($db, $allviews, count($allviews)); +} + + + + +function printAllUndroppedViews($allviews) +{ + foreach($allviews as $vk => $v) + { + if(!$v["dropped"]) + { + echo $vk.'
'; + //var_dump($v); + } + } +} + + + + + +//RECURSIVE CREATE FUNCTIONS +function recursiveCreate($db, &$allviews, $lastcount) +{ + $nc = 0; + foreach($allviews as $vk => $v) + { + if($allviews[$vk]["dropped"]) + { + $db->db_query('SAVEPOINT create_'.$v['schema'].'_'.$v['viewname'].';'); + + $qry_drp_view = "CREATE VIEW ".$vk." AS ".$v["definition"].";"; + if($v["comment"] != "") + { + $qry_drp_view .= "COMMENT ON VIEW $vk IS '".$v["comment"]."';"; + } + + if(@$db->db_query($qry_drp_view)) + { + echo $vk ." CREATED
"; + + foreach($v["privileges"] as $p) + { + $qry_add_privileges = "GRANT ".$p["privilege_type"]." ON ".$vk." TO ".$p["grantee"].";"; + if(!$db->db_query($qry_add_privileges)) + echo "
ACHTUNG: Konnte ".$p["grantee"]." keine ".$p["privilege_type"]." rechte an $vk gewähren!
"; + } + + $allviews[$vk]["dropped"] = false; + continue; + } + $nc ++; //count the not created + $db->db_query('ROLLBACK TO create_'.$v['schema'].'_'.$v['viewname'].';'); + } + } + + if($lastcount == 0) + return true; + + + + if($nc == $lastcount) + { + echo "

ENDLESS!
"; + printAllDroppedViews($allviews); + return false; + } + + + $lastcount = $nc; + return recursiveCreate($db, $allviews, $lastcount); +} + + + + +function create_all_views_recursively($db, &$allviews) +{ + return recursiveCreate($db, $allviews, count($allviews)); +} + + + + +function printAllDroppedViews($allviews) +{ + foreach($allviews as $vk => $v) + { + if($v["dropped"]) + { + echo $vk.'
'; + //var_dump($v); + } + } +} + + + + + + + + + + +/***********************************************************ENDE SVNR ÄNDERUNG***********************************************************/ + + +//SVNR check auf char_length(16) || char_length(10) einfuegen + +if($result = @$db->db_query("SELECT * FROM information_schema.table_constraints WHERE constraint_schema='public' AND table_name='tbl_person' AND constraint_name='chk_person_svnr' LIMIT 1;")) +{ + if($db->db_num_rows($result)==0) + { + $qry = "ALTER TABLE public.tbl_person ADD CONSTRAINT chk_person_svnr CHECK ((char_length(svnr) = 10) OR (char_length(svnr) = 16) OR svnr IS NULL);"; + + if(!$db->db_query($qry)) + { + echo 'public.tbl_person: '.$db->db_last_error().'
'; + $qry = "SELECT * FROM public.tbl_person WHERE char_length(svnr) != 10 AND char_length(svnr) != 16 AND svnr IS NOT NULL;"; + $res = $db->db_query($qry); + while($r = $db->db_fetch_object($res)) + echo $r->person_id . ": " . $r->vorname . " " . $r->nachname . ": '" . $r->svnr."'
"; + } + else + echo 'public.tbl_person: Spalte svnr: Check auf char_length(10) oder char_length(16) hinzugefuegt'; + } +} + + + + + +//uhrzeit zu tbl_abschlusspruefung hinzufuegen +if(!$result = @$db->db_query("SELECT uhrzeit from lehre.tbl_abschlusspruefung LIMIT 1;")) +{ + $qry="ALTER TABLE lehre.tbl_abschlusspruefung ADD COLUMN uhrzeit time;"; + + if(!$db->db_query($qry)) + echo 'lehre.tbl_abschlusspruefung: '.$db->db_last_error().'
'; + else + echo 'lehre.tbl_abschlusspruefung: spalte uhrzeit hinzugefügt'; +} + + + + + + + + // *** Pruefung und hinzufuegen der neuen Attribute und Tabellen echo '

Pruefe Tabellen und Attribute!

'; @@ -278,7 +790,7 @@ $tabellen=array( "kommune.tbl_wettbewerbteam" => array("team_kurzbz","wettbewerb_kurzbz","rang","punkte"), "kommune.tbl_wettbewerbtyp" => array("wbtyp_kurzbz","bezeichnung","farbe"), "lehre.tbl_abschlussbeurteilung" => array("abschlussbeurteilung_kurzbz","bezeichnung","bezeichnung_english"), - "lehre.tbl_abschlusspruefung" => array("abschlusspruefung_id","student_uid","vorsitz","pruefer1","pruefer2","pruefer3","abschlussbeurteilung_kurzbz","akadgrad_id","pruefungstyp_kurzbz","datum","sponsion","anmerkung","updateamum","updatevon","insertamum","insertvon","ext_id","note"), + "lehre.tbl_abschlusspruefung" => array("abschlusspruefung_id","student_uid","vorsitz","pruefer1","pruefer2","pruefer3","abschlussbeurteilung_kurzbz","akadgrad_id","pruefungstyp_kurzbz","datum","uhrzeit","sponsion","anmerkung","updateamum","updatevon","insertamum","insertvon","ext_id","note"), "lehre.tbl_akadgrad" => array("akadgrad_id","akadgrad_kurzbz","studiengang_kz","titel","geschlecht"), "lehre.tbl_anrechnung" => array("anrechnung_id","prestudent_id","lehrveranstaltung_id","begruendung_id","lehrveranstaltung_id_kompatibel","genehmigt_von","insertamum","insertvon","updateamum","updatevon","ext_id"), "lehre.tbl_anrechnung_begruendung" => array("begruendung_id","bezeichnung"),