From 0b4124c833e224723807d00fc85672a90eec7773 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Tue, 19 Nov 2013 14:05:40 +0000 Subject: [PATCH] LVRegeln --- include/lvregel.class.php | 595 ++++++++++++++++++++++++ include/note.class.php | 23 +- include/studienordnung.class.php | 46 +- include/studienplan.class.php | 40 ++ soap/fhcomplete.php | 7 +- system/checksystem.php | 14 +- vilesci/lehre/studienordnung.inc.php | 1 + vilesci/lehre/studienordnung.js | 2 +- vilesci/lehre/studienordnung.php | 27 ++ vilesci/lehre/studienordnung_lvregel.js | 293 ++++++++++++ 10 files changed, 1017 insertions(+), 31 deletions(-) create mode 100644 include/lvregel.class.php create mode 100644 vilesci/lehre/studienordnung_lvregel.js diff --git a/include/lvregel.class.php b/include/lvregel.class.php new file mode 100644 index 000000000..360469dc3 --- /dev/null +++ b/include/lvregel.class.php @@ -0,0 +1,595 @@ + and + */ +/** + * Klasse lvregel + * Verwaltet die Regeln zu einer Lehrveranstaltung zB + * - Anmeldung zu Lehrveranstaltungen + * - Vollstaendigkeit von Modulen etc + */ +require_once(dirname(__FILE__).'/basis_db.class.php'); +require_once(dirname(__FILE__).'/student.class.php'); + +class lvregel extends basis_db +{ + protected $new=true; // boolean + public $result = array(); // Result Objekt + + //Tabellenspalten + protected $lvregel_id; // serial + protected $lvregeltyp_kurzbz; // varchar(32) + protected $studienplan_lehrveranstaltung_id; // integer + protected $lvregel_id_parent; // integer + protected $lehrveranstaltung_id; // intger + protected $operator; // varchar(1) + protected $parameter; // text + protected $insertamum; // timestamp + protected $insertvon; // varchar(32) + protected $updateamum; // timestamp + protected $updatevon; // varchar(32) + + protected $lvregeltyp_arr=array(); + protected $bezeichnung; //varchar(256) + + /** + * Konstruktor + */ + public function __construct() + { + parent::__construct(); + } + + /** + * Setter + */ + public function __set($name, $value) + { + $this->$name = $value; + } + + /** + * Getter + */ + public function __get($name) + { + return $this->$name; + } + + /** + * Laedt die Regel mit der ID $lvregel_id + * @param $lvregel_id ID der zu ladenden Regel + * @return true wenn ok, false im Fehlerfall + */ + public function load($lvregel_id) + { + //Pruefen ob lvregel_id eine gueltige Zahl ist + if(!is_numeric($lvregel_id) || $lvregel_id == '') + { + $this->errormsg = 'ID muss eine Zahl sein'; + return false; + } + + //Daten aus der Datenbank lesen + $qry = "SELECT * FROM lehre.tbl_lvregel WHERE lvregel_id=".$this->db_add_param($lvregel_id, FHC_INTEGER, false); + + if(!$this->db_query($qry)) + { + $this->errormsg = 'Fehler bei einer Datenbankabfrage'; + return false; + } + + if($row = $this->db_fetch_object()) + { + $this->lvregel_id = $row->lvregel_id; + $this->lvregeltyp_kurzbz = $row->lvregeltyp_kurzbz; + $this->studienplan_lehrveranstaltung_id = $row->studienplan_lehrveranstaltung_id; + $this->lvregel_id_parent = $row->lvregel_id_parent; + $this->lehrveranstaltung_id = $row->lehrveranstaltung_id; + $this->operator = $row->operator; + $this->parameter = $row->parameter; + $this->insertamum = $row->insertamum; + $this->insertvon = $row->insertvon; + $this->updatevon = $row->updatevon; + $this->updateamum = $row->updateamum; + + $this->new = false; + } + else + { + $this->errormsg = 'Es ist kein Datensatz mit dieser ID vorhanden'; + return false; + } + + return true; + } + + /** + * Prueft die Variablen auf Gueltigkeit + * @return true wenn ok, false im Fehlerfall + */ + protected function validate() + { + //Zahlenfelder pruefen + if(!is_numeric($this->lvregel_id) && $this->lvregel_id!='') + { + $this->errormsg='lvregel_id enthaelt ungueltige Zeichen'; + return false; + } + if(!is_numeric($this->studienplan_lehrveranstaltung_id) && $this->studienplan_lehrveranstaltung_id!='') + { + $this->errormsg = 'Studienplan_lehrveranstaltung_id ist ungueltigt'; + return false; + } + if(!is_numeric($this->lvregel_id_parent) && $this->lvregel_id_parent!='') + { + $this->errormsg = 'LVRegelIDParent ist ungueltig'; + return false; + } + if(!is_numeric($this->lehrveranstaltung_id) && $this->lehrveranstaltung_id!='') + { + $this->errormsg = 'Lehrveranstaltung_id ist ungueltig'; + return false; + } + + //Gesamtlaenge pruefen + if(mb_strlen($this->lvregeltyp_kurzbz)>32) + { + $this->errormsg = 'lvregeltyp darf nicht länger als 32 Zeichen sein'; + return false; + } + if(mb_strlen($this->operator)>1) + { + $this->errormsg = 'Operator darf nicht länger als 1 Zeichen sein'; + return false; + } + if($this->operator!='u' && $this->operator!='o' && $this->operator!='x') + { + $this->errormsg = 'Operator ist ungueltig'; + return false; + } + + $this->errormsg = ''; + return true; + } + + /** + * Speichert den aktuellen Datensatz in die Datenbank + * Wenn $neu auf true gesetzt ist wird ein neuer Datensatz angelegt + * andernfalls wird der Datensatz mit der ID in $lvregel_id aktualisiert + * @return true wenn ok, false im Fehlerfall + */ + public function save() + { + //Variablen pruefen + if(!$this->validate()) + return false; + + if($this->new) + { + //Neuen Datensatz einfuegen + $qry='BEGIN;INSERT INTO lehre.tbl_lvregel (lvregeltyp_kurzbz, studienplan_lehrveranstaltung_id, + lvregel_id_parent, lehrveranstaltung_id, operator, parameter, insertamum, insertvon) VALUES('. + $this->db_add_param($this->lvregeltyp_kurzbz).', '. + $this->db_add_param($this->studienplan_lehrveranstaltung_id, FHC_INTEGER).', '. + $this->db_add_param($this->lvregel_id_parent, FHC_INTEGER).', '. + $this->db_add_param($this->lehrveranstaltung_id, FHC_INTEGER).', '. + $this->db_add_param($this->operator).', '. + $this->db_add_param($this->parameter).', '. + ' now(), '. + $this->db_add_param($this->insertvon).');'; + } + else + { + //Pruefen ob lvregel_id eine gueltige Zahl ist + if(!is_numeric($this->lvregel_id)) + { + $this->errormsg = 'lvregel_id muss eine gueltige Zahl sein'; + return false; + } + $qry='UPDATE lehre.tbl_lvregel SET'. + ' lvregeltyp_kurzbz = '.$this->db_add_param($this->lvregeltyp_kurzbz).', '. + ' studienplan_lehrveranstaltung_id='.$this->db_add_param($this->studienplan_lehrveranstaltung_id, FHC_INTEGER).', '. + ' lvregel_id_parent='.$this->db_add_param($this->lvregel_id_parent, FHC_INTEGER).', '. + ' lehrveranstaltung_id='.$this->db_add_param($this->lehrveranstaltung_id, FHC_INTEGER).', '. + ' operator='.$this->db_add_param($this->operator).', '. + ' parameter='.$this->db_add_param($this->parameter).', '. + ' updateamum= now(), '. + ' updatevon='.$this->db_add_param($this->updatevon).' '. + 'WHERE lvregel_id='.$this->db_add_param($this->lvregel_id, FHC_INTEGER, false).';'; + } + + if($this->db_query($qry)) + { + if($this->new) + { + //naechste ID aus der Sequence holen + $qry="SELECT currval('lehre.seq_lvregel_lvregel_id') as id;"; + if($this->db_query($qry)) + { + if($row = $this->db_fetch_object()) + { + $this->lvregel_id = $row->id; + $this->db_query('COMMIT'); + } + else + { + $this->db_query('ROLLBACK'); + $this->errormsg = "Fehler beim Auslesen der Sequence"; + return false; + } + } + else + { + $this->db_query('ROLLBACK'); + $this->errormsg = 'Fehler beim Auslesen der Sequence'; + return false; + } + } + + } + else + { + $this->errormsg = 'Fehler beim Speichern des LVRegel-Datensatzes'; + return false; + } + return $this->lvregel_id; + } + + /** + * Loescht den Datenensatz mit der ID die uebergeben wird + * @param $lvregel_id ID die geloescht werden soll + * @return true wenn ok, false im Fehlerfall + */ + public function delete($lvregel_id) + { + //Pruefen ob lvregel_id eine gueltige Zahl ist + if(!is_numeric($lvregel_id) || $lvregel_id == '') + { + $this->errormsg = 'lvregel_id muss eine gültige Zahl sein'."\n"; + return false; + } + + //loeschen des Datensatzes + $qry="DELETE FROM lehre.tbl_lvregel WHERE lvregel_id=".$this->db_add_param($lvregel_id, FHC_INTEGER, false).";"; + + if($this->db_query($qry)) + { + return true; + } + else + { + $this->errormsg = 'Fehler beim Löschen der Daten'."\n"; + return false; + } + } + + /** + * Laedt alle LVRegelTypen + */ + public function loadLVRegelTypen() + { + $qry = 'SELECT * FROM lehre.tbl_lvregeltyp ORDER BY bezeichnung'; + if($result = $this->db_query($qry)) + { + while($row = $this->db_fetch_object($result)) + { + $obj = new lvregel(); + $obj->lvregeltyp_kurzbz = $row->lvregeltyp_kurzbz; + $obj->bezeichnung = $row->bezeichnung; + + $this->result[] = $obj; + $this->lvregeltyp_arr[$row->lvregeltyp_kurzbz]=$row->bezeichnung; + } + return true; + } + else + { + $this->errormsg = 'Fehler beim Laden der Daten'; + return false; + } + } + + /** + * Prueft ob eine Regel zu einer Lehrveranstaltungzuordnung vorhanden ist + */ + public function exists($studienplan_lehrveranstaltung_id) + { + $qry = 'SELECT 1 FROM lehre.tbl_lvregel WHERE studienplan_lehrveranstaltung_id='.$this->db_add_param($studienplan_lehrveranstaltung_id, FHC_INTEGER); + + if($result = $this->db_query($qry)) + { + if($this->db_num_rows($result)>0) + return true; + else + return false; + } + else + { + $this->errormsg = 'Fehler beim Laden der Daten'; + return false; + } + } + + /** + * Laedt alle Regeln zu einer StudienplanLehrveranstaltung Zuordnung + * @param $studienplan_lehrveranstaltung_id + */ + public function loadLVRegeln($studienplan_lehrveranstaltung_id) + { + $qry = 'SELECT + * + FROM + lehre.tbl_lvregel + WHERE + studienplan_lehrveranstaltung_id='.$this->db_add_param($studienplan_lehrveranstaltung_id, FHC_INTEGER, false).' + ORDER BY lvregel_id'; + + if($result = $this->db_query($qry)) + { + while($row = $this->db_fetch_object($result)) + { + $obj = new lvregel(); + + $obj->lvregel_id = $row->lvregel_id; + $obj->lvregeltyp_kurzbz = $row->lvregeltyp_kurzbz; + $obj->studienplan_lehrveranstaltung_id = $row->studienplan_lehrveranstaltung_id; + $obj->lvregel_id_parent = $row->lvregel_id_parent; + $obj->lehrveranstaltung_id = $row->lehrveranstaltung_id; + $obj->operator = $row->operator; + $obj->parameter = $row->parameter; + $obj->insertamum = $row->insertamum; + $obj->insertvon = $row->insertvon; + $obj->updatevon = $row->updatevon; + $obj->updateamum = $row->updateamum; + + $this->result[] = $obj; + } + return true; + } + else + { + $this->errormsg = 'Fehler beim Laden der Daten'; + return false; + } + } + + /** + * Liefert die Lehrveranstaltungen als verschachtelten Tree + */ + public function getLVRegelTree($studienplan_lehrveranstaltung_id) + { + if($this->loadLVRegeln($studienplan_lehrveranstaltung_id)) + { + $tree=array(); + foreach($this->result as $row) + { + if($row->lvregel_id_parent=='') + { + $tree[$row->lvregel_id]=$row->cleanResult(); + $tree[$row->lvregel_id]['childs'] = $this->getLVRegelTreeChilds($row->lvregel_id); + } + } + return $tree; + } + } + + /** + * Generiert die Subtrees des Lehrveranstaltungstrees + */ + protected function getLVRegelTreeChilds($lvregel_id) + { + $childs = array(); + foreach($this->result as $row) + { + if($row->lvregel_id_parent===$lvregel_id) + { + $childs[$row->lvregel_id]=$row->cleanResult(); + $childs[$row->lvregel_id]['childs'] = $this->getLVRegelTreeChilds($row->lvregel_id); + } + } + return $childs; + } + + public function cleanResult() + { + $data = array(); + + if(count($this->result)>0) + { + foreach($this->result as $row) + { + $obj = new stdClass(); + + $obj->lvregel_id = $row->lvregel_id; + $obj->lvregeltyp_kurzbz = $row->lvregeltyp_kurzbz; + $obj->studienplan_lehrveranstaltung_id = $row->studienplan_lehrveranstaltung_id; + $obj->lvregel_id_parent = $row->lvregel_id_parent; + $obj->lehrveranstaltung_id = $row->lehrveranstaltung_id; + $obj->operator = $row->operator; + $obj->parameter = $row->parameter; + $obj->insertamum = $row->insertamum; + $obj->insertvon = $row->insertvon; + $obj->updatevon = $row->updatevon; + $obj->updateamum = $row->updateamum; + + $obj->lvregeltyp_kurzbz = $row->lvregeltyp_kurzbz; + $obj->bezeichnung = $row->bezeichnung; + $data[]=$obj; + } + } + else + { + $obj = new stdClass(); + + $obj->lvregel_id = $this->lvregel_id; + $obj->lvregeltyp_kurzbz = $this->lvregeltyp_kurzbz; + $obj->studienplan_lehrveranstaltung_id = $this->studienplan_lehrveranstaltung_id; + $obj->lvregel_id_parent = $this->lvregel_id_parent; + $obj->lehrveranstaltung_id = $this->lehrveranstaltung_id; + $obj->operator = $this->operator; + $obj->parameter = $this->parameter; + $obj->insertamum = $this->insertamum; + $obj->insertvon = $this->insertvon; + $obj->updatevon = $this->updatevon; + $obj->updateamum = $this->updateamum; + + $obj->lvregeltyp_kurzbz = $this->lvregeltyp_kurzbz; + $obj->bezeichnung = $this->bezeichnung; + + $data[]=$obj; + } + return $data; + } + + /** + * Prüft ob sich eine Studierender zu einer Lehrveranstaltung anmelden darf + * @param $uid UID des Studierenden + * @param $studienplan_lehrveranstaltung_id ID der Lehrveranstaltungszuordnung + */ + public function isZugangsberechtigt($uid, $studienplan_lehrveranstaltung_id) + { + $this->debug('Teste Zugangsberechtigung für '.$uid); + if($result = $this->getLVRegelTree($studienplan_lehrveranstaltung_id)) + { + return $this->TestRegeln($uid, $result); + } + } + + public function TestRegeln($uid, $regel_obj) + { + $retval=true; + foreach($regel_obj as $regel) + { + $this->debug('
'); + $testval = $this->Test($uid, $regel); + $retval = $this->Compare($regel[0]->operator, $retval, $testval); + $this->debug(' - RETVAL:'.($retval?'TRUE':'FALSE')); + } + + return $retval; + } + + public function Compare($operator, $retval, $testval) + { + switch($operator) + { + case 'u': + $this->debug(($retval?'T':'F').' && '.($testval?'T':'F')); + $retval=($retval && $testval); + $this->debug('='.($retval?'T':'F')); + break; + case 'o': + $this->debug(($retval?'T':'F').' || '.($testval?'T':'F')); + $retval=($retval || $testval); + $this->debug('='.($retval?'T':'F')); + break; + case 'x': + $this->debug(($retval?'T':'F').' XOR '.($testval?'T':'F')); + $retval=($retval xor $testval); + $this->debug('='.($retval?'T':'F')); + break; + } + return $retval; + } + + public function Test($uid, $regel_obj) + { + $regel = $regel_obj[0]; + + $this->debug('Teste Regel '.$regel->lvregel_id); + + switch($regel->lvregeltyp_kurzbz) + { + case 'ausbsemmin': + $this->debug('Regeltyp ausbsemmin'); + + $student = new student(); + $student->load($uid); + + if($student->semester>=$regel->parameter) + { + $this->debug('StudSem: '.$student->semester.' >= RegelParam: '.$regel->parameter); + $this->debug('TRUE'); + $retval = true; + } + else + { + $this->debug('StudSem: '.$student->semester.' >= RegelParam: '.$regel->parameter); + $this->debug('FALSE'); + $retval = false; + } + break; + + + case 'lvpositiv': + $this->debug('Regeltyp lvpositiv'); + $qry = "SELECT + * + FROM + lehre.tbl_zeugnisnote + JOIN lehre.tbl_note USING(note) + WHERE + tbl_note.positiv + AND student_uid=".$this->db_add_param($uid)." + AND lehrveranstaltung_id=".$this->db_add_param($regel->lehrveranstaltung_id); + + if($result = $this->db_query($qry)) + { + if($row = $this->db_fetch_object($result)) + { + $this->debug('Positive Note gefunden:'.$row->note); + $this->debug('TRUE'); + $retval = true; + } + else + { + $this->debug('Keine positive Note'); + $this->debug('FALSE'); + $retval = false; + } + } + else + { + $this->debug('Fehler bei Abfrage'); + $this->errormsg = 'Fehler bei Abfrage'; + $retval = false; + } + break; + + default: + // Eventuell in Addons nach Regeltypen suchen + break; + } + if(isset($regel_obj['childs']) && count($regel_obj['childs'])>0) + { + $this->debug('
- Subregel '.$regel->lvregel_id.' -'); + $testval = $this->TestRegeln($uid, $regel_obj['childs']); + $retval = $this->Compare($regel->operator, $retval, $testval); + $this->debug('
- Subregel '.$regel->lvregel_id.' Ende-'); + } + + return $retval; + } + + public function debug($msg) + { + echo ' '.$msg; + } +} +?> diff --git a/include/note.class.php b/include/note.class.php index 289412f29..c8ed3f908 100644 --- a/include/note.class.php +++ b/include/note.class.php @@ -36,6 +36,7 @@ class note extends basis_db public $bezeichnung; // varchar(32) public $anmerkung; // varchar(256) public $farbe; + public $positiv=true; // boolean /** * Konstruktor @@ -76,6 +77,7 @@ class note extends basis_db $this->bezeichnung = $row->bezeichnung; $this->anmerkung = $row->anmerkung; $this->farbe = $row->farbe; + $this->positiv = $this->db_parse_bool($row->positiv); return true; } else @@ -122,18 +124,20 @@ class note extends basis_db if($new) { //Neuen Datensatz einfuegen - $qry='INSERT INTO lehre.tbl_note (note, bezeichnung, anmerkung) VALUES('. - $this->addslashes($this->note).', '. - $this->addslashes($this->bezeichnung).', '. - $this->addslashes($this->anmerkung).');'; + $qry='INSERT INTO lehre.tbl_note (note, bezeichnung, anmerkung, positiv) VALUES('. + $this->db_add_param($this->note).', '. + $this->db_add_param($this->bezeichnung).', '. + $this->db_add_param($this->anmerkung).', '. + $this->db_add_param($this->positiv, FHC_BOOLEAN).');'; } else { $qry='UPDATE lehre.tbl_note SET '. - 'note='.$this->addslashes($this->note).', '. - 'bezeichnung='.$this->addslashes($this->bezeichnung).', '. - 'anmerkung='.$this->addslashes($this->anmerkung).', '. - 'WHERE note='.$this->addslashes($this->note).';'; + 'note='.$this->db_add_param($this->note).', '. + 'bezeichnung='.$this->db_add_param($this->bezeichnung).', '. + 'anmerkung='.$this->db_add_param($this->anmerkung).', '. + 'positiv='.$this->db_add_param($this->positiv, FHC_BOOLEAN).' '. + 'WHERE note='.$this->db_add_param($this->note).';'; } if($this->db_query($qry)) @@ -165,6 +169,7 @@ class note extends basis_db $n->bezeichnung = $row->bezeichnung; $n->anmerkung = $row->anmerkung; $n->farbe = $row->farbe; + $n->positiv = $this->db_parse_bool($row->positiv); $this->result[] = $n; } @@ -177,4 +182,4 @@ class note extends basis_db } } } -?> \ No newline at end of file +?> diff --git a/include/studienordnung.class.php b/include/studienordnung.class.php index cc86b1e51..802c98a75 100644 --- a/include/studienordnung.class.php +++ b/include/studienordnung.class.php @@ -143,19 +143,31 @@ class studienordnung extends basis_db return false; } - $qry = 'SELECT - * - FROM - lehre.tbl_studienordnung - LEFT JOIN lehre.tbl_studienordnung_semester USING (studienordnung_id) - WHERE - studiengang_kz='.$this->db_add_param($studiengang_kz, FHC_INTEGER, false); + if(is_null($studiensemester_kurzbz)) + { + $qry = 'SELECT + * + FROM + lehre.tbl_studienordnung + WHERE + studiengang_kz='.$this->db_add_param($studiengang_kz, FHC_INTEGER, false); + } + else + { + $qry = 'SELECT + * + FROM + lehre.tbl_studienordnung + LEFT JOIN lehre.tbl_studienordnung_semester USING (studienordnung_id) + WHERE + studiengang_kz='.$this->db_add_param($studiengang_kz, FHC_INTEGER, false); + + if (!is_null($studiensemester_kurzbz)) + $qry.=" AND studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz, FHC_STRING,false); + if (!is_null($semester)) + $qry.=" AND semester=".$this->db_add_param($semester, FHC_INTEGER,false); + } - if (!is_null($studiensemester_kurzbz)) - $qry.=" AND studiensemester_kurzb=".$this->db_add_param($studiensemester_kurzbz, FHC_STRING,false); - if (!is_null($semester)) - $qry.=" AND semester=".$this->db_add_param($semester, FHC_INTEGER,false); - if(!$this->db_query($qry)) { $this->errormsg = 'Fehler bei einer Datenbankabfrage'; @@ -184,10 +196,12 @@ class studienordnung extends basis_db $obj->insertvon = $row->insertvon; $obj->new = false; - $obj->studiensemester_kurzbz = $row->studiensemester_kurzbz; - $obj->semester = $row->semester; - $obj->studienordnung_semester_id = $row->studienordnung_semester_id; - + if(!is_null($studiensemester_kurzbz)) + { + $obj->studiensemester_kurzbz = $row->studiensemester_kurzbz; + $obj->semester = $row->semester; + $obj->studienordnung_semester_id = $row->studienordnung_semester_id; + } $this->result[] = $obj; } return true; diff --git a/include/studienplan.class.php b/include/studienplan.class.php index 46bfe86fe..367af63c3 100644 --- a/include/studienplan.class.php +++ b/include/studienplan.class.php @@ -579,5 +579,45 @@ class studienplan extends basis_db } return $this->studienplan_lehrveranstaltung_id; } + + /** + * Laedt einen StudienplanLehrveranstaltung Eintrag + * + * @param $studienplan_lehrveranstaltung_id ID der Zuordnung + */ + public function loadStudienplanLehrveranstaltung($studienplan_lehrveranstaltung_id) + { + $qry = "SELECT * FROM lehre.tbl_studienplan_lehrveranstaltung WHERE studienplan_lehrveranstaltung_id=".$this->db_add_param($studienplan_lehrveranstaltung_id); + + if($result = $this->db_query($qry)) + { + if($row = $this->db_fetch_object($result)) + { + $this->studienplan_lehrveranstaltung_id = $row->studienplan_lehrveranstaltung_id; + $this->semester = $row->semester; + $this->pflicht = $this->db_parse_bool($row->pflicht); + $this->studienplan_id = $row->studienplan_id; + $this->koordinator = $row->koordinator; + $this->studienplan_lehrveranstaltung_id_parent = $row->studienplan_lehrveranstaltung_id_parent; + $this->lehrveranstaltung_id = $row->lehrveranstaltung_id; + $this->insertamum = $row->insertamum; + $this->insertvon = $row->insertvon; + $this->updateamum = $row->updateamum; + $this->updatevon = $row->updatevon; + $this->new=false; + return true; + } + else + { + $this->errormsg = 'Fehler beim Laden der Daten'; + return false; + } + } + else + { + $this->errormsg = 'Fehler beim Laden der Daten'; + return false; + } + } } ?> diff --git a/soap/fhcomplete.php b/soap/fhcomplete.php index 0b7e03deb..1202fd2b6 100644 --- a/soap/fhcomplete.php +++ b/soap/fhcomplete.php @@ -63,7 +63,7 @@ $uid = get_uid(); $wsrecht = new webservicerecht(); if(!$wsrecht->isUserAuthorized($uid, $method, $class)) - die('Sie haben keine Berechtigung fuer diesen Vorgang'); + die('Sie haben keine Berechtigung fuer diesen Vorgang:'.$class.'->'.$method); // Funktion aufrufen $obj = new $class(); @@ -78,7 +78,6 @@ if(mb_stristr($method,'save')) if(isset($loaddata['method'])) { - var_dump($loaddata); if(!$wsrecht->isUserAuthorized($uid, $loaddata['method'])) die('keine Berechtigung'); @@ -107,7 +106,6 @@ if(mb_stristr($method,'save')) if(!$error) { - var_dump($savedata); // Attribute zuweisen zum Speichern foreach($savedata as $key=>$value) { @@ -116,9 +114,10 @@ if(mb_stristr($method,'save')) } } -if(!$error && call_user_func_array(array($obj, $method), $parameter)) +if(!$error && ($return = call_user_func_array(array($obj, $method), $parameter))) { $data['result']=$obj->cleanResult(); + $data['return']=$return; $data['error']='false'; $data['errormsg']=''; } diff --git a/system/checksystem.php b/system/checksystem.php index 8646acb25..494d588ce 100644 --- a/system/checksystem.php +++ b/system/checksystem.php @@ -586,6 +586,18 @@ if(!$result = @$db->db_query("SELECT klasse from system.tbl_webservicerecht LIMI echo 'system.tbl_webservicerecht: Spalte klasse hinzugefügt'; } +// tbl_note neue Spalte Positiv +if(!$result = @$db->db_query("SELECT positiv from lehre.tbl_note LIMIT 1;")) +{ + $qry = "ALTER TABLE lehre.tbl_note ADD COLUMN positiv boolean NOT NULL DEFAULT true; + UPDATE lehre.tbl_note SET positiv=false WHERE note in(0,5,7,9,13,14,15)"; + + if(!$db->db_query($qry)) + echo 'lehre.tbl_note: '.$db->db_last_error().'
'; + else + echo 'lehre.tbl_note: Spalte positiv hinzugefügt'; +} + echo '
'; $tabellen=array( @@ -691,7 +703,7 @@ $tabellen=array( "lehre.tbl_lvregeltyp" => array("lvregeltyp_kurzbz","bezeichnung"), "lehre.tbl_moodle" => array("lehrveranstaltung_id","lehreinheit_id","moodle_id","mdl_course_id","studiensemester_kurzbz","gruppen","insertamum","insertvon","moodle_version"), "lehre.tbl_moodle_version" => array("moodle_version","bezeichnung","pfad"), - "lehre.tbl_note" => array("note","bezeichnung","anmerkung","farbe"), + "lehre.tbl_note" => array("note","bezeichnung","anmerkung","farbe","positiv"), "lehre.tbl_projektarbeit" => array("projektarbeit_id","projekttyp_kurzbz","titel","lehreinheit_id","student_uid","firma_id","note","punkte","beginn","ende","faktor","freigegeben","gesperrtbis","stundensatz","gesamtstunden","themenbereich","anmerkung","updateamum","updatevon","insertamum","insertvon","ext_id","titel_english","seitenanzahl","abgabedatum","kontrollschlagwoerter","schlagwoerter","schlagwoerter_en","abstract", "abstract_en", "sprache"), "lehre.tbl_projektbetreuer" => array("person_id","projektarbeit_id","betreuerart_kurzbz","note","faktor","name","punkte","stunden","stundensatz","updateamum","updatevon","insertamum","insertvon","ext_id"), "lehre.tbl_projekttyp" => array("projekttyp_kurzbz","bezeichnung"), diff --git a/vilesci/lehre/studienordnung.inc.php b/vilesci/lehre/studienordnung.inc.php index a2544056f..e4d90cabd 100644 --- a/vilesci/lehre/studienordnung.inc.php +++ b/vilesci/lehre/studienordnung.inc.php @@ -30,6 +30,7 @@ require_once('../../include/studiensemester.class.php'); require_once('../../include/organisationsform.class.php'); require_once('../../include/sprache.class.php'); require_once('../../include/akadgrad.class.php'); +require_once('../../include/lvregel.class.php'); $uid = get_uid(); $db = new basis_db(); diff --git a/vilesci/lehre/studienordnung.js b/vilesci/lehre/studienordnung.js index d2a5dfb1d..b4af3d87f 100644 --- a/vilesci/lehre/studienordnung.js +++ b/vilesci/lehre/studienordnung.js @@ -101,7 +101,7 @@ function drawStudienordnungen(data) for(i in data) { - obj=obj+'
  • '+data[i].bezeichnung+'
  • '; + obj=obj+'
  • '+data[i].bezeichnung+'
  • '; } obj=obj+''; $('#studienordnung').html(obj); diff --git a/vilesci/lehre/studienordnung.php b/vilesci/lehre/studienordnung.php index 9d4654995..97a94ad34 100644 --- a/vilesci/lehre/studienordnung.php +++ b/vilesci/lehre/studienordnung.php @@ -57,6 +57,8 @@ echo ' + + + "; if(!$rechte->isBerechtigt('lehre/studienordnung')) @@ -139,6 +153,7 @@ echo '

    +