mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-06-01 20:29:29 +00:00
TEIL 2: FAS-UI an 16 stellige SVNR angepasst + Uhrzeitfeld für Abschlusspruefung eingefügt
This commit is contained in:
Regular → Executable
+380
-375
@@ -1,375 +1,380 @@
|
||||
<?php
|
||||
/* Copyright (C) 2006 FH 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 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: Christian Paminger <christian.paminger@technikum-wien.at>,
|
||||
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
|
||||
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
|
||||
*/
|
||||
/**
|
||||
* 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;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
<?php
|
||||
/* Copyright (C) 2006 FH 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 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: Christian Paminger <christian.paminger@technikum-wien.at>,
|
||||
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
|
||||
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
|
||||
*/
|
||||
/**
|
||||
* 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;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
|
||||
@@ -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
|
||||
|
||||
Regular → Executable
+54
-52
@@ -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<pruefung>".'
|
||||
<abschlusspruefung_id><![CDATA['.$row->abschlusspruefung_id.']]></abschlusspruefung_id>
|
||||
<student_uid><![CDATA['.$row->student_uid.']]></student_uid>
|
||||
@@ -233,6 +233,7 @@ if($db->db_query($qry))
|
||||
<akadgrad_id><![CDATA['.$row->akadgrad_id.']]></akadgrad_id>
|
||||
<datum><![CDATA['.$datum_obj->convertISODate($row->datum).']]></datum>
|
||||
<datum_iso><![CDATA['.$row->datum.']]></datum_iso>
|
||||
<uhrzeit><![CDATA['.$row->uhrzeit.']]></uhrzeit>
|
||||
<sponsion><![CDATA['.$datum_obj->convertISODate($row->sponsion).']]></sponsion>
|
||||
<sponsion_iso><![CDATA['.$row->sponsion.']]></sponsion_iso>
|
||||
<pruefungstyp_kurzbz><![CDATA['.$row->pruefungstyp_kurzbz.']]></pruefungstyp_kurzbz>
|
||||
@@ -285,7 +286,7 @@ if($db->db_query($qry))
|
||||
<datum_projekt><![CDATA['.$datum_projekt.']]></datum_projekt>
|
||||
<datum_projekt2><![CDATA['.$datum_projekt.']]></datum_projekt2>
|
||||
<ort_datum><![CDATA['.date('d.m.Y').']]></ort_datum>';
|
||||
|
||||
|
||||
echo "\n\t</pruefung>";
|
||||
}
|
||||
|
||||
@@ -318,31 +319,32 @@ if ($xmlformat=='rdf')
|
||||
$pruefer3 = $person->nachname;
|
||||
|
||||
echo '
|
||||
<RDF:li>
|
||||
<RDF:Description id="'.$row->abschlusspruefung_id.'" about="'.$rdf_url.'/'.$row->abschlusspruefung_id.'" >
|
||||
<ABSCHLUSSPRUEFUNG:abschlusspruefung_id><![CDATA['.$row->abschlusspruefung_id.']]></ABSCHLUSSPRUEFUNG:abschlusspruefung_id>
|
||||
<ABSCHLUSSPRUEFUNG:student_uid><![CDATA['.$row->student_uid.']]></ABSCHLUSSPRUEFUNG:student_uid>
|
||||
<ABSCHLUSSPRUEFUNG:vorsitz><![CDATA['.$row->vorsitz.']]></ABSCHLUSSPRUEFUNG:vorsitz>
|
||||
<ABSCHLUSSPRUEFUNG:vorsitz_nachname><![CDATA['.$vorsitz.']]></ABSCHLUSSPRUEFUNG:vorsitz_nachname>
|
||||
<ABSCHLUSSPRUEFUNG:pruefer1><![CDATA['.$row->pruefer1.']]></ABSCHLUSSPRUEFUNG:pruefer1>
|
||||
<ABSCHLUSSPRUEFUNG:pruefer1_nachname><![CDATA['.$pruefer1.']]></ABSCHLUSSPRUEFUNG:pruefer1_nachname>
|
||||
<ABSCHLUSSPRUEFUNG:pruefer2><![CDATA['.$row->pruefer2.']]></ABSCHLUSSPRUEFUNG:pruefer2>
|
||||
<ABSCHLUSSPRUEFUNG:pruefer2_nachname><![CDATA['.$pruefer2.']]></ABSCHLUSSPRUEFUNG:pruefer2_nachname>
|
||||
<ABSCHLUSSPRUEFUNG:pruefer3><![CDATA['.$row->pruefer3.']]></ABSCHLUSSPRUEFUNG:pruefer3>
|
||||
<ABSCHLUSSPRUEFUNG:pruefer3_nachname><![CDATA['.$pruefer3.']]></ABSCHLUSSPRUEFUNG:pruefer3_nachname>
|
||||
<ABSCHLUSSPRUEFUNG:abschlussbeurteilung_kurzbz><![CDATA['.$row->abschlussbeurteilung_kurzbz.']]></ABSCHLUSSPRUEFUNG:abschlussbeurteilung_kurzbz>
|
||||
<ABSCHLUSSPRUEFUNG:notekommpruef><![CDATA['.$row->note.']]></ABSCHLUSSPRUEFUNG:notekommpruef>
|
||||
<ABSCHLUSSPRUEFUNG:akadgrad_id><![CDATA['.$row->akadgrad_id.']]></ABSCHLUSSPRUEFUNG:akadgrad_id>
|
||||
<ABSCHLUSSPRUEFUNG:datum><![CDATA['.$datum_obj->convertISODate($row->datum).']]></ABSCHLUSSPRUEFUNG:datum>
|
||||
<ABSCHLUSSPRUEFUNG:datum_iso><![CDATA['.$row->datum.']]></ABSCHLUSSPRUEFUNG:datum_iso>
|
||||
<ABSCHLUSSPRUEFUNG:sponsion><![CDATA['.$datum_obj->convertISODate($row->sponsion).']]></ABSCHLUSSPRUEFUNG:sponsion>
|
||||
<ABSCHLUSSPRUEFUNG:sponsion_iso><![CDATA['.$row->sponsion.']]></ABSCHLUSSPRUEFUNG:sponsion_iso>
|
||||
<ABSCHLUSSPRUEFUNG:pruefungstyp_kurzbz><![CDATA['.$row->pruefungstyp_kurzbz.']]></ABSCHLUSSPRUEFUNG:pruefungstyp_kurzbz>
|
||||
<ABSCHLUSSPRUEFUNG:beschreibung><![CDATA['.$row->beschreibung.']]></ABSCHLUSSPRUEFUNG:beschreibung>
|
||||
<ABSCHLUSSPRUEFUNG:anmerkung><![CDATA['.$row->anmerkung.']]></ABSCHLUSSPRUEFUNG:anmerkung>
|
||||
</RDF:Description>
|
||||
</RDF:li>
|
||||
';
|
||||
<RDF:li>
|
||||
<RDF:Description id="'.$row->abschlusspruefung_id.'" about="'.$rdf_url.'/'.$row->abschlusspruefung_id.'" >
|
||||
<ABSCHLUSSPRUEFUNG:abschlusspruefung_id><![CDATA['.$row->abschlusspruefung_id.']]></ABSCHLUSSPRUEFUNG:abschlusspruefung_id>
|
||||
<ABSCHLUSSPRUEFUNG:student_uid><![CDATA['.$row->student_uid.']]></ABSCHLUSSPRUEFUNG:student_uid>
|
||||
<ABSCHLUSSPRUEFUNG:vorsitz><![CDATA['.$row->vorsitz.']]></ABSCHLUSSPRUEFUNG:vorsitz>
|
||||
<ABSCHLUSSPRUEFUNG:vorsitz_nachname><![CDATA['.$vorsitz.']]></ABSCHLUSSPRUEFUNG:vorsitz_nachname>
|
||||
<ABSCHLUSSPRUEFUNG:pruefer1><![CDATA['.$row->pruefer1.']]></ABSCHLUSSPRUEFUNG:pruefer1>
|
||||
<ABSCHLUSSPRUEFUNG:pruefer1_nachname><![CDATA['.$pruefer1.']]></ABSCHLUSSPRUEFUNG:pruefer1_nachname>
|
||||
<ABSCHLUSSPRUEFUNG:pruefer2><![CDATA['.$row->pruefer2.']]></ABSCHLUSSPRUEFUNG:pruefer2>
|
||||
<ABSCHLUSSPRUEFUNG:pruefer2_nachname><![CDATA['.$pruefer2.']]></ABSCHLUSSPRUEFUNG:pruefer2_nachname>
|
||||
<ABSCHLUSSPRUEFUNG:pruefer3><![CDATA['.$row->pruefer3.']]></ABSCHLUSSPRUEFUNG:pruefer3>
|
||||
<ABSCHLUSSPRUEFUNG:pruefer3_nachname><![CDATA['.$pruefer3.']]></ABSCHLUSSPRUEFUNG:pruefer3_nachname>
|
||||
<ABSCHLUSSPRUEFUNG:abschlussbeurteilung_kurzbz><![CDATA['.$row->abschlussbeurteilung_kurzbz.']]></ABSCHLUSSPRUEFUNG:abschlussbeurteilung_kurzbz>
|
||||
<ABSCHLUSSPRUEFUNG:notekommpruef><![CDATA['.$row->note.']]></ABSCHLUSSPRUEFUNG:notekommpruef>
|
||||
<ABSCHLUSSPRUEFUNG:akadgrad_id><![CDATA['.$row->akadgrad_id.']]></ABSCHLUSSPRUEFUNG:akadgrad_id>
|
||||
<ABSCHLUSSPRUEFUNG:datum><![CDATA['.$datum_obj->convertISODate($row->datum).']]></ABSCHLUSSPRUEFUNG:datum>
|
||||
<ABSCHLUSSPRUEFUNG:datum_iso><![CDATA['.$row->datum.']]></ABSCHLUSSPRUEFUNG:datum_iso>
|
||||
<ABSCHLUSSPRUEFUNG:uhrzeit><![CDATA['.$row->uhrzeit.']]></ABSCHLUSSPRUEFUNG:uhrzeit>
|
||||
<ABSCHLUSSPRUEFUNG:sponsion><![CDATA['.$datum_obj->convertISODate($row->sponsion).']]></ABSCHLUSSPRUEFUNG:sponsion>
|
||||
<ABSCHLUSSPRUEFUNG:sponsion_iso><![CDATA['.$row->sponsion.']]></ABSCHLUSSPRUEFUNG:sponsion_iso>
|
||||
<ABSCHLUSSPRUEFUNG:pruefungstyp_kurzbz><![CDATA['.$row->pruefungstyp_kurzbz.']]></ABSCHLUSSPRUEFUNG:pruefungstyp_kurzbz>
|
||||
<ABSCHLUSSPRUEFUNG:beschreibung><![CDATA['.$row->beschreibung.']]></ABSCHLUSSPRUEFUNG:beschreibung>
|
||||
<ABSCHLUSSPRUEFUNG:anmerkung><![CDATA['.$row->anmerkung.']]></ABSCHLUSSPRUEFUNG:anmerkung>
|
||||
</RDF:Description>
|
||||
</RDF:li>
|
||||
';
|
||||
}
|
||||
echo '
|
||||
<RDF:RDF
|
||||
@@ -370,7 +372,7 @@ if ($xmlformat=='rdf')
|
||||
else
|
||||
die('Student_uid oder Abschlusspruefung_id muss uebergeben werden');
|
||||
|
||||
|
||||
|
||||
echo ' </RDF:Seq>';
|
||||
echo '</RDF:RDF>';
|
||||
} //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</abschlusspruefung>";
|
||||
} //endof xmlformat==xml
|
||||
?>
|
||||
?>
|
||||
|
||||
+520
-8
@@ -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 '<strong>lehre.tbl_studienplan_lehrveranstaltung: ' . $db->db_last_error() . '</strong><br>';
|
||||
else
|
||||
echo ' lehre.tbl_studienplan_lehrveranstaltung: Spalte curriculum hinzugefügt.<br>';
|
||||
|
||||
$qry = "ALTER TABLE lehre.tbl_studienplan_lehrveranstaltung ADD COLUMN curriculum BOOLEAN DEFAULT TRUE;";
|
||||
|
||||
if (!$db->db_query($qry))
|
||||
echo '<strong>lehre.tbl_studienplan_lehrveranstaltung: ' . $db->db_last_error() . '</strong><br>';
|
||||
else
|
||||
echo ' lehre.tbl_studienplan_lehrveranstaltung: Spalte curriculum hinzugefügt.<br>';
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//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."<br>";
|
||||
$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 "<span style='margin-left:20px;'>added " .$rrd->dep_name."</span><br>";
|
||||
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 "<span style='margin-left:40px;'>view " . $rrd->dep_name . " not found!<br>";
|
||||
var_dump($qry_view_deps);
|
||||
echo "</span><br>";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
//********************************DROP ALL VIEWS RECURSIVELY********************************
|
||||
echo "<br><br>LÖSCHEN:<br>";
|
||||
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 '<strong>public.tbl_person: '.$db->db_last_error().'</strong><br>';
|
||||
else
|
||||
echo 'public.tbl_person: svnr auf varchar(16) erhöht<br>';
|
||||
|
||||
//********************************CREATE ALL VIEWS AGAIN********************************
|
||||
echo "<br><br>NEU ANLEGEN:<br>";
|
||||
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<br>";
|
||||
$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 "<br><br>ENDLESS!<br>";
|
||||
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.'<br>';
|
||||
//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<br>";
|
||||
|
||||
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 "<div style='color:red;'> ACHTUNG: Konnte ".$p["grantee"]." keine ".$p["privilege_type"]." rechte an $vk gewähren!</div>";
|
||||
}
|
||||
|
||||
$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 "<br><br>ENDLESS!<br>";
|
||||
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.'<br>';
|
||||
//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 '<strong>public.tbl_person: '.$db->db_last_error().'</strong><br>';
|
||||
$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."'<br>";
|
||||
}
|
||||
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 '<strong>lehre.tbl_abschlusspruefung: '.$db->db_last_error().'</strong><br>';
|
||||
else
|
||||
echo 'lehre.tbl_abschlusspruefung: spalte uhrzeit hinzugefügt';
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// *** Pruefung und hinzufuegen der neuen Attribute und Tabellen
|
||||
echo '<H2>Pruefe Tabellen und Attribute!</H2>';
|
||||
|
||||
@@ -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"),
|
||||
|
||||
Reference in New Issue
Block a user