Merge branch 'master' into eine_uid

This commit is contained in:
Andreas Moik
2016-04-06 11:25:46 +02:00
298 changed files with 42951 additions and 19686 deletions
+379 -375
View File
@@ -1,375 +1,379 @@
<?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>,
* Rudolf Hangl <rudolf.hangl@technikum-wien.at> and
* Andreas Moik <moik@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;
}
}
}
?>
+27 -27
View File
@@ -16,8 +16,9 @@
* 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>.
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at>,
* Rudolf Hangl <rudolf.hangl@technikum-wien.at> and
* Andreas Moik <moik@technikum-wien.at>.
*/
/**
* Klasse Adresse
@@ -279,20 +280,20 @@ class adresse extends basis_db
{
//Neuen Datensatz einfuegen
$qry='BEGIN;INSERT INTO public.tbl_adresse (person_id, name, strasse, plz, typ, ort, nation, insertamum, insertvon,
gemeinde, heimatadresse, zustelladresse, firma_id, updateamum, updatevon) VALUES('.
$this->db_add_param($this->person_id, FHC_INTEGER).', '.
$this->db_add_param($this->name).', '.
$this->db_add_param($this->strasse).', '.
$this->db_add_param($this->plz).', '.
$this->db_add_param(trim($this->typ)).', '.
$this->db_add_param($this->ort).', '.
$this->db_add_param($this->nation).', now(), '.
$this->db_add_param($this->insertvon).', '.
$this->db_add_param($this->gemeinde).', '.
$this->db_add_param($this->heimatadresse,FHC_BOOLEAN, false).', '.
$this->db_add_param($this->zustelladresse,FHC_BOOLEAN, false).', '.
$this->db_add_param($this->firma_id, FHC_INTEGER).', now(), '.
$this->db_add_param($this->updatevon).');';
gemeinde, heimatadresse, zustelladresse, firma_id, updateamum, updatevon) VALUES('.
$this->db_add_param($this->person_id, FHC_INTEGER).', '.
$this->db_add_param($this->name).', '.
$this->db_add_param($this->strasse).', '.
$this->db_add_param($this->plz).', '.
$this->db_add_param(trim($this->typ)).', '.
$this->db_add_param($this->ort).', '.
$this->db_add_param($this->nation).', now(), '.
$this->db_add_param($this->insertvon).', '.
$this->db_add_param($this->gemeinde).', '.
$this->db_add_param($this->heimatadresse,FHC_BOOLEAN, false).', '.
$this->db_add_param($this->zustelladresse,FHC_BOOLEAN, false).', '.
$this->db_add_param($this->firma_id, FHC_INTEGER).', now(), '.
$this->db_add_param($this->updatevon).');';
}
else
{
@@ -307,16 +308,16 @@ class adresse extends basis_db
' name='.$this->db_add_param($this->name).', '.
' strasse='.$this->db_add_param($this->strasse).', '.
' plz='.$this->db_add_param($this->plz).', '.
' typ='.$this->db_add_param(trim($this->typ)).', '.
' ort='.$this->db_add_param($this->ort).', '.
' nation='.$this->db_add_param($this->nation).', '.
' gemeinde='.$this->db_add_param($this->gemeinde).', '.
' firma_id='.$this->db_add_param($this->firma_id, FHC_INTEGER).','.
' updateamum= now(), '.
' updatevon='.$this->db_add_param($this->updatevon).', '.
' heimatadresse='.$this->db_add_param($this->heimatadresse, FHC_BOOLEAN, false).', '.
' zustelladresse='.$this->db_add_param($this->zustelladresse, FHC_BOOLEAN, false).' '.
'WHERE adresse_id='.$this->db_add_param($this->adresse_id, FHC_INTEGER, false).';';
' typ='.$this->db_add_param(trim($this->typ)).', '.
' ort='.$this->db_add_param($this->ort).', '.
' nation='.$this->db_add_param($this->nation).', '.
' gemeinde='.$this->db_add_param($this->gemeinde).', '.
' firma_id='.$this->db_add_param($this->firma_id, FHC_INTEGER).','.
' updateamum= now(), '.
' updatevon='.$this->db_add_param($this->updatevon).', '.
' heimatadresse='.$this->db_add_param($this->heimatadresse, FHC_BOOLEAN, false).', '.
' zustelladresse='.$this->db_add_param($this->zustelladresse, FHC_BOOLEAN, false).' '.
'WHERE adresse_id='.$this->db_add_param($this->adresse_id, FHC_INTEGER, false).';';
}
if($this->db_query($qry))
@@ -432,7 +433,6 @@ class adresse extends basis_db
$this->errormsg = 'Es ist kein Datensatz mit dieser ID vorhanden';
return false;
}
return true;
}
}
+165 -159
View File
@@ -1,159 +1,165 @@
<?php
/* Copyright (C) 2006 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>.
*/
require_once(dirname(__FILE__).'/basis_db.class.php');
class akadgrad extends basis_db
{
public $new;
public $result = array();
//Tabellenspalten
public $akadgrad_id;
public $akadgrad_kurzbz;
public $studiengang_kz;
public $titel;
public $geschlecht;
/**
* Konstruktor
* @param akadgrad_id ID des zu ladenden Datensatzes
*/
public function __construct($akadgrad_id=null)
{
parent::__construct();
if(!is_null($akadgrad_id))
$this->load($akadgrad_id);
}
/**
* Laedt einen Datensatz
* @param akadgrad_id ID des zu ladenden Datensatzes
*/
public function load($akadgrad_id)
{
//akadgrad_id auf gueltigkeit pruefen
if(!is_numeric($akadgrad_id) || $akadgrad_id == '')
{
$this->errormsg = 'akadgrad_id muss eine gültige Zahl sein';
return false;
}
//laden des Datensatzes
$qry = "SELECT * FROM lehre.tbl_akadgrad WHERE akadgrad_id=".$this->db_add_param($akadgrad_id, FHC_INTEGER);
if($this->db_query($qry))
{
if($row = $this->db_fetch_object())
{
$this->akadgrad_id = $row->akadgrad_id;
$this->akadgrad_kurzbz = $row->akadgrad_kurzbz;
$this->studiengang_kz = $row->studiengang_kz;
$this->titel = $row->titel;
$this->geschlecht = $row->geschlecht;
return true;
}
else
{
$this->errormsg = 'Fehler bei der Datenbankabfrage';
return false;
}
}
else
{
$this->errormsg = 'Fehler bei der Datenbankabfrage';
return false;
}
}
/**
* Laedt alle Eintraege
*/
public function getAll()
{
//laden des Datensatzes
$qry = "SELECT * FROM lehre.tbl_akadgrad";
if($this->db_query($qry))
{
while($row = $this->db_fetch_object())
{
$obj = new akadgrad();
$obj->akadgrad_id = $row->akadgrad_id;
$obj->akadgrad_kurzbz = $row->akadgrad_kurzbz;
$obj->studiengang_kz = $row->studiengang_kz;
$obj->titel = $row->titel;
$obj->geschlecht = $row->geschlecht;
$this->result[] = $obj;
}
return true;
}
else
{
$this->errormsg = 'Fehler bei der Datenbankabfrage';
return false;
}
}
/**
* Liefert den Akademischen Grad eines Studenten aus der Tabelle Akadgrad
* @param student_uid
*/
public function getAkadgradStudent($student_uid)
{
//laden des Datensatzes
$qry = "SELECT * FROM lehre.tbl_akadgrad WHERE
studiengang_kz = ( SELECT studiengang_kz FROM public.tbl_student WHERE student_uid=".$this->db_add_param($student_uid).") AND
( geschlecht = ( SELECT geschlecht FROM public.tbl_student
JOIN public.tbl_benutzer ON (student_uid=uid)
JOIN public.tbl_person USING (person_id)
WHERE student_uid=".$this->db_add_param($student_uid).")
OR geschlecht IS NULL)
LIMIT 1";
if($this->db_query($qry))
{
if($row = $this->db_fetch_object())
{
$this->akadgrad_id = $row->akadgrad_id;
$this->akadgrad_kurzbz = $row->akadgrad_kurzbz;
$this->studiengang_kz = $row->studiengang_kz;
$this->titel = $row->titel;
$this->geschlecht = $row->geschlecht;
return true;
}
else
{
$this->errormsg = 'Fehler bei der Datenbankabfrage';
return false;
}
}
else
{
$this->errormsg = 'Fehler bei der Datenbankabfrage';
return false;
}
}
}
?>
<?php
/* Copyright (C) 2006 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>,
* Rudolf Hangl <rudolf.hangl@technikum-wien.at> and
* Andreas Moik <moik@technikum-wien.at>.
*/
require_once(dirname(__FILE__).'/basis_db.class.php');
class akadgrad extends basis_db
{
public $new;
public $result = array();
//Tabellenspalten
public $akadgrad_id;
public $akadgrad_kurzbz;
public $studiengang_kz;
public $titel;
public $geschlecht;
/**
* Konstruktor
* @param akadgrad_id ID des zu ladenden Datensatzes
*/
public function __construct($akadgrad_id=null)
{
parent::__construct();
if(!is_null($akadgrad_id))
$this->load($akadgrad_id);
}
/**
* Laedt einen Datensatz
* @param akadgrad_id ID des zu ladenden Datensatzes
*/
public function load($akadgrad_id)
{
//akadgrad_id auf gueltigkeit pruefen
if(!is_numeric($akadgrad_id) || $akadgrad_id == '')
{
$this->errormsg = 'akadgrad_id muss eine gültige Zahl sein';
return false;
}
//laden des Datensatzes
$qry = "SELECT * FROM lehre.tbl_akadgrad WHERE akadgrad_id=".$this->db_add_param($akadgrad_id, FHC_INTEGER);
if($this->db_query($qry))
{
if($row = $this->db_fetch_object())
{
$this->akadgrad_id = $row->akadgrad_id;
$this->akadgrad_kurzbz = $row->akadgrad_kurzbz;
$this->studiengang_kz = $row->studiengang_kz;
$this->titel = $row->titel;
$this->geschlecht = $row->geschlecht;
return true;
}
else
{
$this->errormsg = 'Fehler bei der Datenbankabfrage';
return false;
}
}
else
{
$this->errormsg = 'Fehler bei der Datenbankabfrage';
return false;
}
}
/**
* Laedt alle Eintraege
*/
public function getAll()
{
//laden des Datensatzes
$qry = "SELECT * FROM lehre.tbl_akadgrad";
if($this->db_query($qry))
{
while($row = $this->db_fetch_object())
{
$obj = new akadgrad();
$obj->akadgrad_id = $row->akadgrad_id;
$obj->akadgrad_kurzbz = $row->akadgrad_kurzbz;
$obj->studiengang_kz = $row->studiengang_kz;
$obj->titel = $row->titel;
$obj->geschlecht = $row->geschlecht;
$this->result[] = $obj;
}
return true;
}
else
{
$this->errormsg = 'Fehler bei der Datenbankabfrage';
return false;
}
}
/**
* Liefert den Akademischen Grad eines Studenten aus der Tabelle Akadgrad
* @param student_uid
*/
public function getAkadgradStudent($student_uid)
{
//laden des Datensatzes
$qry = "SELECT * FROM lehre.tbl_akadgrad WHERE
studiengang_kz = ( SELECT studiengang_kz FROM public.tbl_student WHERE student_uid=".$this->db_add_param($student_uid).") AND
( geschlecht = ( SELECT geschlecht FROM public.tbl_student
JOIN public.tbl_benutzer ON (student_uid=uid)
JOIN public.tbl_person USING (person_id)
WHERE student_uid=".$this->db_add_param($student_uid).")
OR geschlecht IS NULL)
LIMIT 1";
if($this->db_query($qry))
{
if($row = $this->db_fetch_object())
{
$this->akadgrad_id = $row->akadgrad_id;
$this->akadgrad_kurzbz = $row->akadgrad_kurzbz;
$this->studiengang_kz = $row->studiengang_kz;
$this->titel = $row->titel;
$this->geschlecht = $row->geschlecht;
return true;
}
else
{
$this->errormsg = 'Fehler bei der Datenbankabfrage';
return false;
}
}
else
{
$this->errormsg = 'Fehler bei der Datenbankabfrage';
return false;
}
}
public function __toString()
{
return $this->akadgrad_kurzbz;
}
}
?>
+439 -388
View File
@@ -1,388 +1,439 @@
<?php
/* Copyright (C) 2006 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>.
*/
require_once(dirname(__FILE__).'/basis_db.class.php');
class akte extends basis_db
{
public $new;
public $result = array();
//Tabellenspalten
public $akte_id;
public $person_id;
public $dokument_kurzbz;
public $inhalt;
public $mimetype;
public $erstelltam;
public $gedruckt;
public $titel;
public $bezeichnung;
public $updateamum;
public $updatevon;
public $insertamum;
public $insertvon;
public $uid;
public $ext_id;
public $dms_id;
public $nachgereicht;
public $anmerkung;
public $titel_intern;
public $anmerkung_intern;
/**
* Konstruktor
* @param akte_id ID des zu ladenden Datensatzes
*/
public function __construct($akte_id=null)
{
parent::__construct();
if(!is_null($akte_id))
$this->load($akte_id);
}
/**
* Laedt einen Datensatz
* @param akte_id ID des zu ladenden Datensatzes
*/
public function load($akte_id)
{
//akte_id auf gueltigkeit pruefen
if(!is_numeric($akte_id) || $akte_id == '')
{
$this->errormsg = 'akte_id muss eine gueltige Zahl sein';
return false;
}
//laden des Datensatzes
$qry = "SELECT * FROM public.tbl_akte WHERE akte_id=".$this->db_add_param($akte_id, FHC_INTEGER);
if($this->db_query($qry))
{
if($row = $this->db_fetch_object())
{
$this->akte_id = $row->akte_id;
$this->person_id = $row->person_id;
$this->dokument_kurzbz = $row->dokument_kurzbz;
$this->inhalt = $row->inhalt;
$this->mimetype = $row->mimetype;
$this->erstelltam = $row->erstelltam;
$this->gedruckt = $this->db_parse_bool($row->gedruckt);
$this->titel = $row->titel;
$this->bezeichnung = $row->bezeichnung;
$this->updateamum = $row->updateamum;
$this->updatevon = $row->updatevon;
$this->insertamum = $row->insertamum;
$this->insertvon = $row->insertvon;
$this->uid = $row->uid;
$this->dms_id = $row->dms_id;
$this->anmerkung = $row->anmerkung;
$this->nachgereicht = $this->db_parse_bool($row->nachgereicht);
$this->titel_intern = $row->titel_intern;
$this->anmerkung_intern = $row->anmerkung_intern;
return true;
}
else
{
$this->errormsg = 'Fehler bei der Datenbankabfrage';
return false;
}
}
else
{
$this->errormsg = 'Fehler bei der Datenbankabfrage';
return false;
}
}
/**
* Loescht einen Datensatz
* @param akte_id ID des zu loeschenden Datensatzes
* @return true wenn ok, false im Fehlerfall
*/
public function delete($akte_id)
{
//akte_id auf gueltigkeit pruefen
if(!is_numeric($akte_id) || $akte_id == '')
{
$this->errormsg = 'akte_id muss eine gueltige Zahl sein';
return false;
}
$qry = "DELETE FROM public.tbl_akte WHERE akte_id=".$this->db_add_param($akte_id, FHC_INTEGER);
if($this->db_query($qry))
{
//Log schreiben
return true;
}
else
{
$this->errormsg = 'Fehler beim Löschen';
return false;
}
}
/**
* Prueft die Variablen vor dem Speichern
*
* @return true wenn ok, sonst false
*/
protected function validate()
{
if($this->person_id=='')
{
$this->errormsg = 'Person ID muss angegeben werden';
return false;
}
if($this->dokument_kurzbz=='')
{
$this->errormsg = 'DokumentKurzbz muss angegeben 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 public.tbl_akte (person_id, dokument_kurzbz, inhalt, mimetype, erstelltam, gedruckt, titel,
bezeichnung, updateamum, updatevon, insertamum, insertvon, uid, dms_id, nachgereicht, anmerkung, titel_intern, anmerkung_intern ) VALUES (".
$this->db_add_param($this->person_id, FHC_INTEGER).', '.
$this->db_add_param($this->dokument_kurzbz).', '.
$this->db_add_param($this->inhalt).', '.
$this->db_add_param($this->mimetype).', '.
$this->db_add_param($this->erstelltam).', '.
$this->db_add_param($this->gedruckt, FHC_BOOLEAN).', '.
$this->db_add_param($this->titel).', '.
$this->db_add_param($this->bezeichnung).', '.
$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->uid).','.
$this->db_add_param($this->dms_id, FHC_INTEGER).','.
$this->db_add_param($this->nachgereicht, FHC_BOOLEAN).','.
$this->db_add_param($this->anmerkung).','.
$this->db_add_param($this->titel_intern).','.
$this->db_add_param($this->anmerkung_intern).');';
}
else
{
//Bestehenden Datensatz aktualisieren
$qry= "UPDATE public.tbl_akte SET".
" person_id=".$this->db_add_param($this->person_id, FHC_INTEGER).",".
" dokument_kurzbz=".$this->db_add_param($this->dokument_kurzbz).",".
" inhalt=".$this->db_add_param($this->inhalt).",".
" mimetype=".$this->db_add_param($this->mimetype).",".
" erstelltam=".$this->db_add_param($this->erstelltam).",".
" gedruckt=".$this->db_add_param($this->gedruckt,FHC_BOOLEAN).",".
" titel=".$this->db_add_param($this->titel).",".
" bezeichnung=".$this->db_add_param($this->bezeichnung).",".
" updateamum=".$this->db_add_param($this->updateamum).",".
" updatevon=".$this->db_add_param($this->updatevon).",".
" uid=".$this->db_add_param($this->uid).",".
" dms_id=".$this->db_add_param($this->dms_id, FHC_INTEGER).",".
" nachgereicht=".$this->db_add_param($this->nachgereicht, FHC_BOOLEAN).",".
" anmerkung=".$this->db_add_param($this->anmerkung).",".
" titel_intern=".$this->db_add_param($this->titel_intern).",".
" anmerkung_intern=".$this->db_add_param($this->anmerkung_intern).
" WHERE akte_id=".$this->db_add_param($this->akte_id, FHC_INTEGER);
}
if($this->db_query($qry))
{
if($new)
{
$qry = "SELECT currval('public.tbl_akte_akte_id_seq') as id";
if($this->db_query($qry))
{
if($row = $this->db_fetch_object())
{
$this->akte_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;
}
}
/**
* Liefert die Akten einer Person
*
* @param $person_id
* @param $dokument_kurzbz
* @param $stg_kz -> wenn gesetzt werden nur Akten angezeigt die ZUSÄTZLICH zum Studiengang abgegeben worden sind ohne Zeugnis
* @param $prestudent_id -> gesetzt wenn auch stg_kz gesetzt ist um sicherzugehen, dass Akten, die er schon für seinen Studiengang abgegeben hat,
* nicht mehr angezeigt werden
* @return true wenn ok, sonst false
*/
public function getAkten($person_id, $dokument_kurzbz=null, $stg_kz = null, $prestudent_id= null)
{
$qry = "SELECT
akte_id, person_id, dokument_kurzbz, mimetype, erstelltam, gedruckt, titel_intern, anmerkung_intern,
titel, bezeichnung, updateamum, insertamum, updatevon, insertvon, uid, dms_id, anmerkung, nachgereicht,
CASE WHEN inhalt is not null THEN true ELSE false END as inhalt_vorhanden
FROM public.tbl_akte WHERE person_id=".$this->db_add_param($person_id, FHC_INTEGER);
if($dokument_kurzbz!=null)
$qry.=" AND dokument_kurzbz=".$this->db_add_param($dokument_kurzbz);
if($stg_kz != null && $prestudent_id != null)
$qry.=" AND dokument_kurzbz not in (SELECT dokument_kurzbz FROM public.tbl_dokument JOIN public.tbl_dokumentstudiengang USING(dokument_kurzbz)
WHERE studiengang_kz= ".$this->db_add_param($stg_kz).") AND dokument_kurzbz NOT IN ('Zeugnis') AND dokument_kurzbz NOT IN
(SELECT dokument_kurzbz FROM public.tbl_dokumentprestudent JOIN public.tbl_dokument USING(dokument_kurzbz)
WHERE prestudent_id=".$this->db_add_param($prestudent_id).")";
$qry.=" ORDER BY erstelltam";
$this->errormsg = $qry;
if($this->db_query($qry))
{
while($row = $this->db_fetch_object())
{
$akten = new akte();
$akten->akte_id = $row->akte_id;
$akten->person_id = $row->person_id;
$akten->dokument_kurzbz = $row->dokument_kurzbz;
//$akte->inhalt = $row->inhalt;
$akten->inhalt_vorhanden = $this->db_parse_bool($row->inhalt_vorhanden);
$akten->mimetype = $row->mimetype;
$akten->erstelltam = $row->erstelltam;
$akten->gedruckt = $this->db_parse_bool($row->gedruckt);
$akten->titel = $row->titel;
$akten->bezeichnung = $row->bezeichnung;
$akten->updateamum = $row->updateamum;
$akten->updatevon = $row->updatevon;
$akten->insertamum = $row->insertamum;
$akten->insertvon = $row->insertvon;
$akten->uid = $row->uid;
$akten->dms_id = $row->dms_id;
$akten->nachgereicht = $this->db_parse_bool($row->nachgereicht);
$akten->anmerkung = $row->anmerkung;
$akten->titel_intern = $row->titel_intern;
$akten->anmerkung_intern = $row->anmerkung_intern;
$this->result[] = $akten;
}
return true;
}
else
{
$this->errormsg = 'Fehler beim Laden der Daten';
return false;
}
}
/**
* Liefert die Akten die ein Outgoing sehen darf
*
* @param $person_id
* @return true wenn ok, sonst false
*/
public function getAktenOutgoing($person_id)
{
$qry = "SELECT
akte_id, person_id, dokument_kurzbz, mimetype, erstelltam, gedruckt,
titel, bezeichnung, updateamum, insertamum, updatevon, insertvon, uid,
dms_id,nachgereicht,anmerkung,titel_intern,anmerkung_intern
FROM public.tbl_akte WHERE person_id=".$this->db_add_param($person_id, FHC_INTEGER);
$qry.=" AND dokument_kurzbz IN ('Lebenslf','Motivat','LearnAgr')";
$qry.=" ORDER BY erstelltam";
if($this->db_query($qry))
{
while($row = $this->db_fetch_object())
{
$akten = new akte();
$akten->akte_id = $row->akte_id;
$akten->person_id = $row->person_id;
$akten->dokument_kurzbz = $row->dokument_kurzbz;
//$akte->inhalt = $row->inhalt;
$akten->mimetype = $row->mimetype;
$akten->erstelltam = $row->erstelltam;
$akten->gedruckt = $this->db_parse_bool($row->gedruckt);
$akten->titel = $row->titel;
$akten->bezeichnung = $row->bezeichnung;
$akten->updateamum = $row->updateamum;
$akten->updatevon = $row->updatevon;
$akten->insertamum = $row->insertamum;
$akten->insertvon = $row->insertvon;
$akten->uid = $row->uid;
$akten->dms_id = $row->dms_id;
$akten->nachgereicht = $this->db_parse_bool($row->nachgereicht);
$akten->anmerkung = $row->anmerkung;
$akten->titel_intern = $row->titel_intern;
$akten->anmerkung_intern = $row->anmerkung_intern;
$this->result[] = $akten;
}
return true;
}
else
{
$this->errormsg = 'Fehler beim Laden der Daten';
return false;
}
}
}
?>
<?php
/* Copyright (C) 2006 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>,
* Rudolf Hangl <rudolf.hangl@technikum-wien.at> and
* Andreas Moik <moik@technikum-wien.at>.
*/
require_once(dirname(__FILE__).'/basis_db.class.php');
class akte extends basis_db
{
public $new;
public $result = array();
//Tabellenspalten
public $akte_id;
public $person_id;
public $dokument_kurzbz;
public $inhalt;
public $mimetype;
public $erstelltam;
public $gedruckt;
public $titel;
public $bezeichnung;
public $updateamum;
public $updatevon;
public $insertamum;
public $insertvon;
public $uid;
public $ext_id;
public $dms_id;
public $nachgereicht;
public $anmerkung;
public $titel_intern;
public $anmerkung_intern;
/**
* Konstruktor
* @param akte_id ID des zu ladenden Datensatzes
*/
public function __construct($akte_id=null)
{
parent::__construct();
if(!is_null($akte_id))
$this->load($akte_id);
}
/**
* Laedt einen Datensatz
* @param akte_id ID des zu ladenden Datensatzes
*/
public function load($akte_id)
{
//akte_id auf gueltigkeit pruefen
if(!is_numeric($akte_id) || $akte_id == '')
{
$this->errormsg = 'akte_id muss eine gueltige Zahl sein';
return false;
}
//laden des Datensatzes
$qry = "SELECT * FROM public.tbl_akte WHERE akte_id=".$this->db_add_param($akte_id, FHC_INTEGER);
if($this->db_query($qry))
{
if($row = $this->db_fetch_object())
{
$this->akte_id = $row->akte_id;
$this->person_id = $row->person_id;
$this->dokument_kurzbz = $row->dokument_kurzbz;
$this->inhalt = $row->inhalt;
$this->mimetype = $row->mimetype;
$this->erstelltam = $row->erstelltam;
$this->gedruckt = $this->db_parse_bool($row->gedruckt);
$this->titel = $row->titel;
$this->bezeichnung = $row->bezeichnung;
$this->updateamum = $row->updateamum;
$this->updatevon = $row->updatevon;
$this->insertamum = $row->insertamum;
$this->insertvon = $row->insertvon;
$this->uid = $row->uid;
$this->dms_id = $row->dms_id;
$this->anmerkung = $row->anmerkung;
$this->nachgereicht = $this->db_parse_bool($row->nachgereicht);
$this->titel_intern = $row->titel_intern;
$this->anmerkung_intern = $row->anmerkung_intern;
return true;
}
else
{
$this->errormsg = 'Fehler bei der Datenbankabfrage';
return false;
}
}
else
{
$this->errormsg = 'Fehler bei der Datenbankabfrage';
return false;
}
}
/**
* Loescht einen Datensatz
* @param akte_id ID des zu loeschenden Datensatzes
* @return true wenn ok, false im Fehlerfall
*/
public function delete($akte_id)
{
//akte_id auf gueltigkeit pruefen
if(!is_numeric($akte_id) || $akte_id == '')
{
$this->errormsg = 'akte_id muss eine gueltige Zahl sein';
return false;
}
$qry = "DELETE FROM public.tbl_akte WHERE akte_id=".$this->db_add_param($akte_id, FHC_INTEGER);
if($this->db_query($qry))
{
//Log schreiben
return true;
}
else
{
$this->errormsg = 'Fehler beim Löschen';
return false;
}
}
/**
* Prueft die Variablen vor dem Speichern
*
* @return true wenn ok, sonst false
*/
protected function validate()
{
if($this->person_id=='')
{
$this->errormsg = 'Person ID muss angegeben werden';
return false;
}
if($this->dokument_kurzbz=='')
{
$this->errormsg = 'DokumentKurzbz muss angegeben 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 public.tbl_akte (person_id, dokument_kurzbz, inhalt, mimetype, erstelltam, gedruckt, titel,
bezeichnung, updateamum, updatevon, insertamum, insertvon, uid, dms_id, nachgereicht, anmerkung, titel_intern, anmerkung_intern ) VALUES (".
$this->db_add_param($this->person_id, FHC_INTEGER).', '.
$this->db_add_param($this->dokument_kurzbz).', '.
$this->db_add_param($this->inhalt).', '.
$this->db_add_param($this->mimetype).', '.
$this->db_add_param($this->erstelltam).', '.
$this->db_add_param($this->gedruckt, FHC_BOOLEAN).', '.
$this->db_add_param($this->titel).', '.
$this->db_add_param($this->bezeichnung).', '.
$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->uid).','.
$this->db_add_param($this->dms_id, FHC_INTEGER).','.
$this->db_add_param($this->nachgereicht, FHC_BOOLEAN).','.
$this->db_add_param($this->anmerkung).','.
$this->db_add_param($this->titel_intern).','.
$this->db_add_param($this->anmerkung_intern).');';
}
else
{
//Bestehenden Datensatz aktualisieren
$qry= "UPDATE public.tbl_akte SET".
" person_id=".$this->db_add_param($this->person_id, FHC_INTEGER).",".
" dokument_kurzbz=".$this->db_add_param($this->dokument_kurzbz).",".
" inhalt=".$this->db_add_param($this->inhalt).",".
" mimetype=".$this->db_add_param($this->mimetype).",".
" erstelltam=".$this->db_add_param($this->erstelltam).",".
" gedruckt=".$this->db_add_param($this->gedruckt,FHC_BOOLEAN).",".
" titel=".$this->db_add_param($this->titel).",".
" bezeichnung=".$this->db_add_param($this->bezeichnung).",".
" updateamum=".$this->db_add_param($this->updateamum).",".
" updatevon=".$this->db_add_param($this->updatevon).",".
" uid=".$this->db_add_param($this->uid).",".
" dms_id=".$this->db_add_param($this->dms_id, FHC_INTEGER).",".
" nachgereicht=".$this->db_add_param($this->nachgereicht, FHC_BOOLEAN).",".
" anmerkung=".$this->db_add_param($this->anmerkung).",".
" titel_intern=".$this->db_add_param($this->titel_intern).",".
" anmerkung_intern=".$this->db_add_param($this->anmerkung_intern).
" WHERE akte_id=".$this->db_add_param($this->akte_id, FHC_INTEGER);
}
if($this->db_query($qry))
{
if($new)
{
$qry = "SELECT currval('public.tbl_akte_akte_id_seq') as id";
if($this->db_query($qry))
{
if($row = $this->db_fetch_object())
{
$this->akte_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;
}
}
/**
* Liefert die Akten einer Person
*
* @param $person_id
* @param $dokument_kurzbz
* @param $stg_kz -> wenn gesetzt werden nur Akten angezeigt die ZUSÄTZLICH zum Studiengang abgegeben worden sind ohne Zeugnis
* @param $prestudent_id -> gesetzt wenn auch stg_kz gesetzt ist um sicherzugehen, dass Akten, die er schon für seinen Studiengang abgegeben hat,
* nicht mehr angezeigt werden
* @return true wenn ok, sonst false
*/
public function getAkten($person_id, $dokument_kurzbz=null, $stg_kz = null, $prestudent_id= null)
{
$qry = "SELECT
akte_id, person_id, dokument_kurzbz, mimetype, erstelltam, gedruckt, titel_intern, anmerkung_intern,
titel, bezeichnung, updateamum, insertamum, updatevon, insertvon, uid, dms_id, anmerkung, nachgereicht,
CASE WHEN inhalt is not null THEN true ELSE false END as inhalt_vorhanden
FROM public.tbl_akte WHERE person_id=".$this->db_add_param($person_id, FHC_INTEGER);
if($dokument_kurzbz!=null)
$qry.=" AND dokument_kurzbz=".$this->db_add_param($dokument_kurzbz);
if($stg_kz != null && $prestudent_id != null)
$qry.=" AND dokument_kurzbz not in (SELECT dokument_kurzbz FROM public.tbl_dokument JOIN public.tbl_dokumentstudiengang USING(dokument_kurzbz)
WHERE studiengang_kz= ".$this->db_add_param($stg_kz).") AND dokument_kurzbz NOT IN ('Zeugnis') AND dokument_kurzbz NOT IN
(SELECT dokument_kurzbz FROM public.tbl_dokumentprestudent JOIN public.tbl_dokument USING(dokument_kurzbz)
WHERE prestudent_id=".$this->db_add_param($prestudent_id).")";
$qry.=" ORDER BY erstelltam";
$this->errormsg = $qry;
if($this->db_query($qry))
{
while($row = $this->db_fetch_object())
{
$akten = new akte();
$akten->akte_id = $row->akte_id;
$akten->person_id = $row->person_id;
$akten->dokument_kurzbz = $row->dokument_kurzbz;
//$akte->inhalt = $row->inhalt;
$akten->inhalt_vorhanden = $this->db_parse_bool($row->inhalt_vorhanden);
$akten->mimetype = $row->mimetype;
$akten->erstelltam = $row->erstelltam;
$akten->gedruckt = $this->db_parse_bool($row->gedruckt);
$akten->titel = $row->titel;
$akten->bezeichnung = $row->bezeichnung;
$akten->updateamum = $row->updateamum;
$akten->updatevon = $row->updatevon;
$akten->insertamum = $row->insertamum;
$akten->insertvon = $row->insertvon;
$akten->uid = $row->uid;
$akten->dms_id = $row->dms_id;
$akten->nachgereicht = $this->db_parse_bool($row->nachgereicht);
$akten->anmerkung = $row->anmerkung;
$akten->titel_intern = $row->titel_intern;
$akten->anmerkung_intern = $row->anmerkung_intern;
$this->result[] = $akten;
}
return true;
}
else
{
$this->errormsg = 'Fehler beim Laden der Daten';
return false;
}
}
/**
* Liefert die Akten die ein Outgoing sehen darf
*
* @param $person_id
* @return true wenn ok, sonst false
*/
public function getAktenOutgoing($person_id)
{
$qry = "SELECT
akte_id, person_id, dokument_kurzbz, mimetype, erstelltam, gedruckt,
titel, bezeichnung, updateamum, insertamum, updatevon, insertvon, uid,
dms_id,nachgereicht,anmerkung,titel_intern,anmerkung_intern
FROM public.tbl_akte WHERE person_id=".$this->db_add_param($person_id, FHC_INTEGER);
$qry.=" AND dokument_kurzbz IN ('Lebenslf','Motivat','LearnAgr')";
$qry.=" ORDER BY erstelltam";
if($this->db_query($qry))
{
while($row = $this->db_fetch_object())
{
$akten = new akte();
$akten->akte_id = $row->akte_id;
$akten->person_id = $row->person_id;
$akten->dokument_kurzbz = $row->dokument_kurzbz;
//$akte->inhalt = $row->inhalt;
$akten->mimetype = $row->mimetype;
$akten->erstelltam = $row->erstelltam;
$akten->gedruckt = $this->db_parse_bool($row->gedruckt);
$akten->titel = $row->titel;
$akten->bezeichnung = $row->bezeichnung;
$akten->updateamum = $row->updateamum;
$akten->updatevon = $row->updatevon;
$akten->insertamum = $row->insertamum;
$akten->insertvon = $row->insertvon;
$akten->uid = $row->uid;
$akten->dms_id = $row->dms_id;
$akten->nachgereicht = $this->db_parse_bool($row->nachgereicht);
$akten->anmerkung = $row->anmerkung;
$akten->titel_intern = $row->titel_intern;
$akten->anmerkung_intern = $row->anmerkung_intern;
$this->result[] = $akten;
}
return true;
}
else
{
$this->errormsg = 'Fehler beim Laden der Daten';
return false;
}
}
/**
* Liefert die Akten anhand der dms_id
*
* @param $person_id
* @return true wenn ok, sonst false
*/
public function getAktenDms($dms_id)
{
$qry = "SELECT
akte_id, person_id, dokument_kurzbz, mimetype, erstelltam, gedruckt,
titel, bezeichnung, updateamum, insertamum, updatevon, insertvon, uid,
dms_id,nachgereicht,anmerkung,titel_intern,anmerkung_intern
FROM public.tbl_akte WHERE dms_id=".$this->db_add_param($dms_id, FHC_INTEGER)."
ORDER BY erstelltam";
if($this->db_query($qry))
{
while($row = $this->db_fetch_object())
{
$akten = new akte();
$akten->akte_id = $row->akte_id;
$akten->person_id = $row->person_id;
$akten->dokument_kurzbz = $row->dokument_kurzbz;
//$akte->inhalt = $row->inhalt;
$akten->mimetype = $row->mimetype;
$akten->erstelltam = $row->erstelltam;
$akten->gedruckt = $this->db_parse_bool($row->gedruckt);
$akten->titel = $row->titel;
$akten->bezeichnung = $row->bezeichnung;
$akten->updateamum = $row->updateamum;
$akten->updatevon = $row->updatevon;
$akten->insertamum = $row->insertamum;
$akten->insertvon = $row->insertvon;
$akten->uid = $row->uid;
$akten->dms_id = $row->dms_id;
$akten->nachgereicht = $this->db_parse_bool($row->nachgereicht);
$akten->anmerkung = $row->anmerkung;
$akten->titel_intern = $row->titel_intern;
$akten->anmerkung_intern = $row->anmerkung_intern;
$this->result[] = $akten;
}
return true;
}
else
{
$this->errormsg = 'Fehler beim Laden der Daten';
return false;
}
}
}
?>
+530 -530
View File
File diff suppressed because it is too large Load Diff
+303 -247
View File
@@ -16,282 +16,338 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Nikolaus Krondraf <nikolaus.krondraf@technikum-wien.at>
* Authors: Nikolaus Krondraf <nikolaus.krondraf@technikum-wien.at> and
* Andreas Moik <moik@technikum-wien.at>.
*/
require_once(dirname(__FILE__) . '/basis_db.class.php');
require_once(dirname(__FILE__) . '/datum.class.php');
require_once(dirname(__FILE__) . '/lehrveranstaltung.class.php');
class anrechnung extends basis_db {
class anrechnung extends basis_db
{
public $errormsg;
public $new;
public $result;
// Tabellenspalten
public $anrechnung_id; // integer
public $prestudent_id; // integer
public $lehrveranstaltung_id; // integer
public $begruendung_id; // integer
public $lehrveranstaltung_id_kompatibel; // integer
public $genehmigt_von; // varchar(32)
public $insertamum; // timestamp
public $insertvon; // varchar(32)
public $updateamum; // timestamp
public $updatevon; // varchar(32)
public $begruendungen = array();
public $errormsg;
public $new;
public $result;
// Tabellenspalten
public $anrechnung_id; // integer
public $prestudent_id; // integer
public $lehrveranstaltung_id; // integer
public $begruendung_id; // integer
public $lehrveranstaltung_id_kompatibel; // integer
public $genehmigt_von; // varchar(32)
public $insertamum; // timestamp
public $insertvon; // varchar(32)
public $updateamum; // timestamp
public $updatevon; // varchar(32)
public $begruendungen = array();
/**
* Konstruktor - Laedt optional eine Anrechnung
* @param $anrechnung_id
*/
public function __construct($anrechnung_id = null) {
parent::__construct();
if ($anrechnung_id != null)
$this->load($anrechnung_id);
}
public function validate() {
if (!is_numeric($this->prestudent_id)) {
$this->errormsg = "Prestudent_id ist ungueltig";
return false;
/**
* Konstruktor - Laedt optional eine Anrechnung
* @param $anrechnung_id
*/
public function __construct($anrechnung_id = null)
{
parent::__construct();
if ($anrechnung_id != null)
$this->load($anrechnung_id);
}
if (!is_numeric($this->lehrveranstaltung_id)) {
$this->errormsg = "Wählen Sie eine Lehrveranstaltung aus";
return false;
public function validate()
{
if (!is_numeric($this->prestudent_id))
{
$this->errormsg = "Prestudent_id ist ungueltig";
return false;
}
if (!is_numeric($this->lehrveranstaltung_id))
{
$this->errormsg = "Wählen Sie eine Lehrveranstaltung aus";
return false;
}
if (!is_numeric($this->begruendung_id))
{
$this->errormsg = "Wählen Sie eine Begründung aus";
return false;
}
if ($this->begruendung_id == "2" && !is_numeric($this->lehrveranstaltung_id_kompatibel))
{
$this->errormsg = "Wählen Sie eine kompatible Lehrveranstaltung aus";
return false;
}
if (empty($this->genehmigt_von))
{
$this->errormsg = "Wählen Sie die Person aus, die die Anrechnung genehmigt hat";
return false;
}
return true;
}
if (!is_numeric($this->begruendung_id)) {
$this->errormsg = "Wählen Sie eine Begründung aus";
return false;
/**
* Lädt eine Anrechnung
* @param $anrechnung_id ID der Anrechnung
* @return true wenn ok, false im Fehlerfall
*/
public function getAnrechnung($anrechnung_id)
{
$qry = "SELECT anrechnung_id, prestudent_id, lehrveranstaltung_id, begruendung_id, bezeichnung AS begruendung, "
. "lehrveranstaltung_id_kompatibel, genehmigt_von, insertamum, insertvon, updateamum, updatevon "
. "FROM lehre.tbl_anrechnung "
. "JOIN lehre.tbl_anrechnung_begruendung USING (begruendung_id) "
. "WHERE anrechnung_id = " . $this->db_add_param($anrechnung_id);
if ($result = $this->db_query($qry))
{
if ($row = $this->db_fetch_object($result))
{
$datum = new datum();
$lehrveranstaltung = new lehrveranstaltung($row->lehrveranstaltung_id);
$row->insertamum = $datum->convertISODate($row->insertamum);
$row->lehrveranstaltung_bez = $lehrveranstaltung->bezeichnung;
if ($row->lehrveranstaltung_id_kompatibel != '')
{
$lehrveranstaltung = new lehrveranstaltung($row->lehrveranstaltung_id_kompatibel);
$row->lehrveranstaltung_bez_kompatibel = $lehrveranstaltung->bezeichnung;
}
else
$row->lehrveranstaltung_bez_kompatibel = null;
$this->result[] = $row;
}
else
{
$this->errormsg = 'Es wurde kein Datensatz mit dieser ID gefunden';
return false;
}
}
else
{
$this->errormsg = 'Fehler beim Laden der Daten';
return false;
}
}
/**
* Speichert eine Anrechnung
* @return true wenn ok, false im Fehlerfall
*/
public function save()
{
if (!$this->validate())
return false;
if ($this->new == "1")
{
// Neuen Datensatz anlegen
$qry = 'INSERT INTO lehre.tbl_anrechnung (prestudent_id, lehrveranstaltung_id, begruendung_id, lehrveranstaltung_id_kompatibel, genehmigt_von, insertamum, insertvon, updateamum, updatevon) VALUES (' .
$this->db_add_param($this->prestudent_id) . ', ' .
$this->db_add_param($this->lehrveranstaltung_id) . ', ' .
$this->db_add_param($this->begruendung_id) . ', ' .
$this->db_add_param($this->lehrveranstaltung_id_kompatibel) . ', ' .
$this->db_add_param($this->genehmigt_von) . ', ' .
'NOW(),' .
$this->db_add_param($this->insertvon) . ', ' .
'NOW(),' .
$this->db_add_param($this->updatevon) . ') RETURNING anrechnung_id;';
}
else
{
// Datensatz aktualisieren
$qry = 'UPDATE lehre.tbl_anrechnung SET '
. 'lehrveranstaltung_id = ' . $this->db_add_param($this->lehrveranstaltung_id) . ', '
. 'begruendung_id = ' . $this->db_add_param($this->begruendung_id) . ', '
. 'lehrveranstaltung_id_kompatibel = ' . $this->db_add_param($this->lehrveranstaltung_id_kompatibel) . ', '
. 'genehmigt_von = ' . $this->db_add_param($this->genehmigt_von) . ', '
. 'updateamum = NOW(), '
. 'updatevon = ' . $this->db_add_param($this->updatevon) . ' '
. 'WHERE anrechnung_id = ' . $this->db_add_param($this->anrechnung_id);
}
if ($this->db_query($qry))
{
$this->anrechnung_id = $this->db_fetch_object()->anrechnung_id;
return true;
}
else
{
$this->errormsg = 'Fehler beim Speichern der Anrechnung: ' . $this->db_last_error();
return false;
}
}
if ($this->begruendung_id == "2" && !is_numeric($this->lehrveranstaltung_id_kompatibel)) {
$this->errormsg = "Wählen Sie eine kompatible Lehrveranstaltung aus";
return false;
/**
* Gibt alle Anrechnungen eines Prestudenten zurück
* @param $prestudent_id
* @return true wenn ok, false im Fehlerfall
*/
public function getAnrechnungPrestudent($prestudent_id)
{
$qry = "SELECT anrechnung_id, prestudent_id, lehrveranstaltung_id, begruendung_id, bezeichnung AS begruendung, "
. "lehrveranstaltung_id_kompatibel, genehmigt_von , insertamum, insertvon, updateamum, updatevon "
. "FROM lehre.tbl_anrechnung "
. "JOIN lehre.tbl_anrechnung_begruendung USING (begruendung_id) "
. "WHERE prestudent_id = " . $this->db_add_param($prestudent_id);
if ($this->db_query($qry))
{
$datum = new datum();
while ($row = $this->db_fetch_object())
{
$row->insertamum = $datum->convertISODate($row->insertamum);
$lehrveranstaltung = new lehrveranstaltung($row->lehrveranstaltung_id);
$row->lehrveranstaltung_bez = $lehrveranstaltung->bezeichnung;
if ($row->lehrveranstaltung_id_kompatibel != '')
{
$lehrveranstaltung = new lehrveranstaltung($row->lehrveranstaltung_id_kompatibel);
$row->lehrveranstaltung_bez_kompatibel = $lehrveranstaltung->bezeichnung;
}
else
$row->lehrveranstaltung_bez_kompatibel = null;
$this->result[] = $row;
}
return true;
}
else
{
$this->errormsg = 'Datensatz konnte nicht geladen werden';
return false;
}
}
if (empty($this->genehmigt_von)) {
$this->errormsg = "Wählen Sie die Person aus, die die Anrechnung genehmigt hat";
return false;
/**
* Loescht eine Anrechnung
* @param $anrechnung_id
* @return true wenn ok, false im Fehlerfall
*/
public function delete($anrechnung_id)
{
$qry = "DELETE FROM lehre.tbl_anrechnung WHERE anrechnung_id = " . $this->db_add_param($anrechnung_id);
if ($this->db_query($qry))
{
return true;
}
else
{
$this->errormsg = 'Datensatz konnte nicht geloescht werden';
return false;
}
}
return true;
}
/**
* Lädt eine Anrechnung
* @param $anrechnung_id ID der Anrechnung
* @return true wenn ok, false im Fehlerfall
*/
public function getAnrechnung($anrechnung_id) {
$qry = "SELECT anrechnung_id, prestudent_id, lehrveranstaltung_id, begruendung_id, bezeichnung AS begruendung, "
. "lehrveranstaltung_id_kompatibel, genehmigt_von, insertamum, insertvon, updateamum, updatevon "
. "FROM lehre.tbl_anrechnung "
. "JOIN lehre.tbl_anrechnung_begruendung USING (begruendung_id) "
. "WHERE anrechnung_id = " . $this->db_add_param($anrechnung_id);
if ($result = $this->db_query($qry)) {
if ($row = $this->db_fetch_object($result)) {
$datum = new datum();
$lehrveranstaltung = new lehrveranstaltung($row->lehrveranstaltung_id);
$row->insertamum = $datum->convertISODate($row->insertamum);
$row->lehrveranstaltung_bez = $lehrveranstaltung->bezeichnung;
if ($row->lehrveranstaltung_id_kompatibel != '') {
$lehrveranstaltung = new lehrveranstaltung($row->lehrveranstaltung_id_kompatibel);
$row->lehrveranstaltung_bez_kompatibel = $lehrveranstaltung->bezeichnung;
} else
$row->lehrveranstaltung_bez_kompatibel = null;
$this->result[] = $row;
}
else {
$this->errormsg = 'Es wurde kein Datensatz mit dieser ID gefunden';
return false;
}
} else {
$this->errormsg = 'Fehler beim Laden der Daten';
return false;
}
}
/**
* Speichert eine Anrechnung
* @return true wenn ok, false im Fehlerfall
*/
public function save() {
if (!$this->validate())
return false;
if ($this->new == "1") {
// Neuen Datensatz anlegen
$qry = 'INSERT INTO lehre.tbl_anrechnung (prestudent_id, lehrveranstaltung_id, begruendung_id, lehrveranstaltung_id_kompatibel, genehmigt_von, insertamum, insertvon, updateamum, updatevon) VALUES (' .
$this->db_add_param($this->prestudent_id) . ', ' .
$this->db_add_param($this->lehrveranstaltung_id) . ', ' .
$this->db_add_param($this->begruendung_id) . ', ' .
$this->db_add_param($this->lehrveranstaltung_id_kompatibel) . ', ' .
$this->db_add_param($this->genehmigt_von) . ', ' .
'NOW(),' .
$this->db_add_param($this->insertvon) . ', ' .
'NOW(),' .
$this->db_add_param($this->updatevon) . ') RETURNING anrechnung_id;';
} else {
// Datensatz aktualisieren
$qry = 'UPDATE lehre.tbl_anrechnung SET '
. 'lehrveranstaltung_id = ' . $this->db_add_param($this->lehrveranstaltung_id) . ', '
. 'begruendung_id = ' . $this->db_add_param($this->begruendung_id) . ', '
. 'lehrveranstaltung_id_kompatibel = ' . $this->db_add_param($this->lehrveranstaltung_id_kompatibel) . ', '
. 'genehmigt_von = ' . $this->db_add_param($this->genehmigt_von) . ', '
. 'updateamum = NOW(), '
. 'updatevon = ' . $this->db_add_param($this->updatevon) . ' '
. 'WHERE anrechnung_id = ' . $this->db_add_param($this->anrechnung_id);
}
if ($this->db_query($qry)) {
$this->anrechnung_id = $this->db_fetch_object()->anrechnung_id;
return true;
} else {
$this->errormsg = 'Fehler beim Speichern der Anrechnung: ' . $this->db_last_error();
return false;
}
}
/**
* Gibt alle Anrechnungen eines Prestudenten zurück
* @param $prestudent_id
* @return true wenn ok, false im Fehlerfall
*/
public function getAnrechnungPrestudent($prestudent_id) {
$qry = "SELECT anrechnung_id, prestudent_id, lehrveranstaltung_id, begruendung_id, bezeichnung AS begruendung, "
. "lehrveranstaltung_id_kompatibel, genehmigt_von , insertamum, insertvon, updateamum, updatevon "
. "FROM lehre.tbl_anrechnung "
. "JOIN lehre.tbl_anrechnung_begruendung USING (begruendung_id) "
. "WHERE prestudent_id = " . $this->db_add_param($prestudent_id);
if ($this->db_query($qry)) {
$datum = new datum();
while ($row = $this->db_fetch_object()) {
$row->insertamum = $datum->convertISODate($row->insertamum);
$lehrveranstaltung = new lehrveranstaltung($row->lehrveranstaltung_id);
$row->lehrveranstaltung_bez = $lehrveranstaltung->bezeichnung;
if ($row->lehrveranstaltung_id_kompatibel != '') {
$lehrveranstaltung = new lehrveranstaltung($row->lehrveranstaltung_id_kompatibel);
$row->lehrveranstaltung_bez_kompatibel = $lehrveranstaltung->bezeichnung;
} else
$row->lehrveranstaltung_bez_kompatibel = null;
$this->result[] = $row;
}
return true;
}
else {
$this->errormsg = 'Datensatz konnte nicht geladen werden';
return false;
}
}
/**
* Loescht eine Anrechnung
* @param $anrechnung_id
* @return true wenn ok, false im Fehlerfall
*/
public function delete($anrechnung_id) {
$qry = "DELETE FROM lehre.tbl_anrechnung WHERE anrechnung_id = " . $this->db_add_param($anrechnung_id);
if ($this->db_query($qry)) {
return true;
} else {
$this->errormsg = 'Datensatz konnte nicht geloescht werden';
return false;
}
}
/**
* Gibt die Anzahl der Notizen für eine Anrechnung zurück
* @param $anrechung_id
* @return Anzahl der Notizen, false im Fehlerfall
*/
public function getAnzahlNotizen($anrechung_id) {
$qry = "SELECT COUNT(*) AS anzahl "
/**
* Gibt die Anzahl der Notizen für eine Anrechnung zurück
* @param $anrechung_id
* @return Anzahl der Notizen, false im Fehlerfall
*/
public function getAnzahlNotizen($anrechung_id)
{
$qry = "SELECT COUNT(*) AS anzahl "
. "FROM public.tbl_notizzuordnung "
. "WHERE anrechnung_id = " . $this->db_add_param($anrechung_id);
if ($result = $this->db_query($qry)) {
if ($row = $this->db_fetch_object($result)) {
return $row->anzahl;
} else {
$this->errormsg = 'Daten konnten nicht geladen werden';
return false;
}
} else {
$this->errormsg = 'Daten konnten nicht geladen werden';
return false;
if ($result = $this->db_query($qry))
{
if ($row = $this->db_fetch_object($result))
{
return $row->anzahl;
}
else
{
$this->errormsg = 'Daten konnten nicht geladen werden';
return false;
}
}
else
{
$this->errormsg = 'Daten konnten nicht geladen werden';
return false;
}
}
}
/**
* Gibt alle möglichen Begründungen zurück
* @return array Array der Begründungen
*/
public function getAllBegruendung() {
$qry = 'SELECT * FROM lehre.tbl_anrechnung_begruendung';
/**
* Gibt alle möglichen Begründungen zurück
* @return array Array der Begründungen
*/
public function getAllBegruendung()
{
$qry = 'SELECT * FROM lehre.tbl_anrechnung_begruendung';
if ($this->db_query($qry)) {
while ($row = $this->db_fetch_object()) {
$stdobj = new stdClass();
$stdobj->begruendung_id = $row->begruendung_id;
$stdobj->bezeichnung = $row->bezeichnung;
array_push($this->begruendungen, $stdobj);
}
return true;
} else {
$this->errormsg = 'Daten konnten nicht geladen werden';
return false;
if ($this->db_query($qry))
{
while ($row = $this->db_fetch_object())
{
$stdobj = new stdClass();
$stdobj->begruendung_id = $row->begruendung_id;
$stdobj->bezeichnung = $row->bezeichnung;
array_push($this->begruendungen, $stdobj);
}
return true;
}
else
{
$this->errormsg = 'Daten konnten nicht geladen werden';
return false;
}
}
}
/**
* Lädt eine Anrechnung
* @param $anrechnung_id ID der Anrechnung
* @return true wenn ok, false im Fehlerfall
*/
public function load($anrechnung_id) {
$qry = "SELECT anrechnung_id, prestudent_id, lehrveranstaltung_id, begruendung_id, bezeichnung AS begruendung, "
/**
* Lädt eine Anrechnung
* @param $anrechnung_id ID der Anrechnung
* @return true wenn ok, false im Fehlerfall
*/
public function load($anrechnung_id)
{
$qry = "SELECT anrechnung_id, prestudent_id, lehrveranstaltung_id, begruendung_id, bezeichnung AS begruendung, "
. "lehrveranstaltung_id_kompatibel, genehmigt_von, insertamum, insertvon, updateamum, updatevon "
. "FROM lehre.tbl_anrechnung "
. "JOIN lehre.tbl_anrechnung_begruendung USING (begruendung_id) "
. "WHERE anrechnung_id = " . $this->db_add_param($anrechnung_id);
if ($result = $this->db_query($qry)) {
if ($row = $this->db_fetch_object($result)) {
$this->anrechnung_id = $row->anrechnung_id;
$this->prestudent_id = $row->prestudent_id;
$this->lehrveranstaltung_id = $row->lehrveranstaltung_id;
$this->lehrveranstaltung_id_kompatibel = $row->lehrveranstaltung_id_kompatibel;
$this->begruendung_id = $row->begruendung_id;
$this->begruendung = $row->begruendung;
$this->genehmigt_von = $row->genehmigt_von;
$datum = new datum();
$lehrveranstaltung = new lehrveranstaltung($row->lehrveranstaltung_id);
$this->insertamum = $datum->convertISODate($row->insertamum);
$this->lehrveranstaltung_bez = $lehrveranstaltung->bezeichnung;
if ($row->lehrveranstaltung_id_kompatibel != '') {
$lehrveranstaltung = new lehrveranstaltung($row->lehrveranstaltung_id_kompatibel);
$this->lehrveranstaltung_bez_kompatibel = $lehrveranstaltung->bezeichnung;
} else
$this->lehrveranstaltung_bez_kompatibel = null;
}
else {
$this->errormsg = 'Es wurde kein Datensatz mit dieser ID gefunden';
return false;
}
} else {
$this->errormsg = 'Fehler beim Laden der Daten';
return false;
if ($result = $this->db_query($qry))
{
if ($row = $this->db_fetch_object($result))
{
$this->anrechnung_id = $row->anrechnung_id;
$this->prestudent_id = $row->prestudent_id;
$this->lehrveranstaltung_id = $row->lehrveranstaltung_id;
$this->lehrveranstaltung_id_kompatibel = $row->lehrveranstaltung_id_kompatibel;
$this->begruendung_id = $row->begruendung_id;
$this->begruendung = $row->begruendung;
$this->genehmigt_von = $row->genehmigt_von;
$datum = new datum();
$lehrveranstaltung = new lehrveranstaltung($row->lehrveranstaltung_id);
$this->insertamum = $datum->convertISODate($row->insertamum);
$this->lehrveranstaltung_bez = $lehrveranstaltung->bezeichnung;
if ($row->lehrveranstaltung_id_kompatibel != '')
{
$lehrveranstaltung = new lehrveranstaltung($row->lehrveranstaltung_id_kompatibel);
$this->lehrveranstaltung_bez_kompatibel = $lehrveranstaltung->bezeichnung;
}
else
$this->lehrveranstaltung_bez_kompatibel = null;
}
else
{
$this->errormsg = 'Es wurde kein Datensatz mit dieser ID gefunden';
return false;
}
}
else
{
$this->errormsg = 'Fehler beim Laden der Daten';
return false;
}
}
}
}
+112
View File
@@ -435,6 +435,38 @@ class anwesenheit extends basis_db
}
}
/**
* Prueft ob Anwesenheiten erfasst wurden
* @param $lehreinheit_id ID der Lehreinheit
* @param $datum Datum
* @param $uid UID des Studierenden
* @return boolean true wenn vorhanden, sonst false
*/
public function AnwesenheitEntryExists($lehreinheit_id, $datum, $uid=null)
{
$qry = "SELECT
1
FROM
campus.tbl_anwesenheit
WHERE
lehreinheit_id=".$this->db_add_param($lehreinheit_id)."
AND datum=".$this->db_add_param($datum)."
AND uid=".$this->db_add_param($uid);
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 die Anwesenheiten in Prozent von Studierenden bei Lehrveranstaltungen
* Wenn die StudentUID uebergeben wird, werden alle Lehrveranstaltungen zu denen der Studierenden zugeteilt ist inkl Prozent der Anwesenheit
@@ -524,4 +556,84 @@ class anwesenheit extends basis_db
return false;
}
}
/**
* Aendert die bestehende Anwesenheit
* @param $lehreinheit_id ID der Lehreinheit
* @param $datum Datum
* @param $uid UID des Studierenden
* @return boolean true ok, sonst false
*/
public function AnwesenheitToggle($lehreinheit_id, $datum, $uid)
{
if($this->AnwesenheitEntryExists($lehreinheit_id, $datum, $uid))
{
$qry = "UPDATE
campus.tbl_anwesenheit
SET anwesend= NOT anwesend
WHERE
lehreinheit_id=".$this->db_add_param($lehreinheit_id)."
AND datum=".$this->db_add_param($datum)."
AND uid=".$this->db_add_param($uid);
if($result = $this->db_query($qry))
{
if($this->db_affected_rows($result)>0)
return true;
else
{
$this->errormsg='Anwesenheitsliste wurde noch nicht erfasst';
return false;
}
}
else
{
$this->errormsg = 'Fehler beim Laden der Daten';
return false;
}
}
else
{
// Anwesenheitsliste wurde noch nicht erfasst. Eintrag neu anlegen
// Einheiten ermitteln
$qry = "SELECT
distinct stunde
FROM
lehre.tbl_stundenplan
WHERE
lehreinheit_id=".$this->db_add_param($lehreinheit_id)."
AND datum=".$this->db_add_param($datum);
if($result = $this->db_query($qry))
{
if($anzahl = $this->db_num_rows($result))
{
$einheiten = $anzahl;
}
}
if($einheiten>0)
{
$this->lehreinheit_id=$lehreinheit_id;
$this->datum = $datum;
$this->uid = $uid;
$this->anwesend=true;
$this->new=true;
$this->einheiten=$einheiten;
if($this->save())
return true;
else
{
$this->errormsg = 'Fehler beim Speichern der Daten';
return true;
}
}
else
{
$this->errormsg = 'Anzahl der Einheiten fuer diesen Tag konnte nicht ermittelt werden';
return false;
}
}
}
}
+14 -13
View File
@@ -16,7 +16,7 @@
* 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>
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at>
*
*/
/**
@@ -38,6 +38,7 @@ abstract class db extends basis
define('FHC_INTEGER',1);
define('FHC_STRING',2);
define('FHC_BOOLEAN',3);
define('FHC_LANG_ARRAY',4);
}
if (is_null(db::$db_conn))
$this->db_connect();
@@ -56,7 +57,7 @@ abstract class db extends basis
abstract function db_affected_rows($result=null);
abstract function db_result_seek($result=null, $offset);
abstract function db_last_error();
abstract function db_free_result($result=null);
abstract function db_free_result($result=null);
abstract function db_version();
abstract function db_escape($var);
abstract function db_null_value($var, $qoute=true);
@@ -67,7 +68,7 @@ abstract class db extends basis
abstract function db_getResultJSON($result = null);
abstract function db_parse_array($var);
/**
* Erzeugt aus den Funktionsparameter eine SQL Abfrage
* --- Wird in der Art Sonderzeichen gefunden wird dieses als FunktionsParmeter verarbeitet
@@ -95,7 +96,7 @@ abstract class db extends basis
$where=(!is_null($pWhere)?trim($pWhere):'');
$order=(!is_null($pOrder)?trim($pOrder):'');
$limit=(is_numeric($pLimit)?$pLimit:'');
if (empty($sql) && empty($art))
{
$this->errormsg='die SQL Art fehlt!';
@@ -123,7 +124,7 @@ abstract class db extends basis
$sql.=($where?' '.trim($where).' ':'');
else
$sql.=($where?' where '.trim($where).' ':'');
if ($art=='select')
if ($art=='select')
{
// FIXME: If $where is e.g. 'orderstatus' because there's a column named orderstatus, this would
// fail horribly? Same for the 'where'-stuff above. -MP
@@ -131,22 +132,22 @@ abstract class db extends basis
$sql.=($order?trim($order).' ':'');
else
$sql.=($order?' order by '.trim($order).' ':'');
}
if ($art=='select')
}
if ($art=='select')
{
if (strstr('limit',strtolower($where)))
$sql.=($limit?trim($limit).' ':'');
else
else
$sql.=($limit?' limit '.trim($limit).' ':'');
}
}
if (!$results=$this->db_query($sql))
{
$this->errormsg=$this->db_last_error();
return false;
}
if ($art!='select' && empty($pSql))
return true;
@@ -159,9 +160,9 @@ abstract class db extends basis
$rows=array();
while($row = $this->db_fetch_object($results))
$rows[]=$row;
return $rows;
}
return $rows;
}
}
require_once(dirname(__FILE__).'/'.DB_SYSTEM.'.class.php');
+245
View File
@@ -0,0 +1,245 @@
<?php
/* Copyright (C) 2015 fhcomplete.org
*
* 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: Stefan Puraner <stefan.puraner@technikum-wien.at>
*/
/**
* Klasse Bewerbungstermin
* @create 10-01-2007
*/
require_once(dirname(__FILE__).'/basis_db.class.php');
class bewerbungstermin extends basis_db
{
public $new; // boolean
public $result = array();
//Tabellenspalten
public $bewerbungstermin_id;// integer
public $studiengang_kz; //integer
public $studiensemester_kurzbz; // string
public $beginn; // timestamp
public $ende; // timestamp
public $nachfrist; // boolean
public $nachfrist_ende; // timestamp
public $anmerkung; // string
public $insertamum; // timestamp
public $insertvon; // bigint
public $updateamum; // timestamp
public $updatevon; // bigint
/**
* Konstruktor
* @param $reihungstest_id ID der Adresse die geladen werden soll (Default=null)
*/
public function __construct($bewerbungstermin_id=null)
{
parent::__construct();
if(!is_null($bewerbungstermin_id))
$this->load($bewerbungstermin_id);
}
/**
* Laedt den Fördervertrag mit der ID $foerdervertrag_id
* @param $foerdervertrag_id ID des zu ladenden Fördervertrags
* @return true wenn ok, false im Fehlerfall
*/
public function load($bewerbungstermin_id)
{
if(!is_numeric($bewerbungstermin_id))
{
$this->errormsg = 'bewerbungstermin_id ist ungueltig';
return false;
}
$qry = "SELECT * FROM public.tbl_bewerbungstermine WHERE bewerbungstermin_id=".$this->db_add_param($bewerbungstermin_id, FHC_INTEGER, false);
if($this->db_query($qry))
{
if($row = $this->db_fetch_object())
{
$this->bewerbungstermin_id = $row->bewerbungstermin_id;
$this->studiengang_kz = $row->studiengang_kz;
$this->studiensemester_kurzbz = $row->studiensemester_kurzbz;
$this->beginn = $row->beginn;
$this->ende = $row->ende;
$this->nachfrist = $row->nachfrist;
$this->nachfrist_ende = $row->nachfrist_ende;
$this->anmerkung = $row->anmerkung;
$this->insertamum = $row->insertamum;
$this->insertvon = $row->insertvon;
$this->updateamum = $row->updateamum;
$this->updatevon = $row->updatevon;
return true;
}
else
{
$this->errormsg = 'Bewerbungstermin existiert nicht';
return false;
}
}
else
{
$this->errormsg = 'Fehler beim Laden des Bewerbungstermins';
return false;
}
}
/**
* Liefert alle Förderverträge
*/
public function getBewerbungstermine($studiengang_kz, $studiensemester_kurzbz=null, $sort=null)
{
$qry = "SELECT * FROM public.tbl_bewerbungstermine WHERE studiengang_kz=".$this->db_add_param($studiengang_kz, FHC_INTEGER);
if($studiensemester_kurzbz!=null)
$qry.=" AND studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz);
if($sort != null)
{
$qry.=" ORDER BY ".$sort;
}
$qry.=";";
if($this->db_query($qry))
{
while($row = $this->db_fetch_object())
{
$obj = new bewerbungstermin();
$obj->bewerbungstermin_id = $row->bewerbungstermin_id;
$obj->studiengang_kz = $row->studiengang_kz;
$obj->studiensemester_kurzbz = $row->studiensemester_kurzbz;
$obj->beginn = $row->beginn;
$obj->ende = $row->ende;
$obj->nachfrist = $this->db_parse_bool($row->nachfrist);
$obj->nachfrist_ende = $row->nachfrist_ende;
$obj->anmerkung = $row->anmerkung;
$obj->insertamum = $row->insertamum;
$obj->insertvon = $row->insertvon;
$obj->updateamum = $row->updateamum;
$obj->updatevon = $row->updatevon;
$this->result[] = $obj;
}
return true;
}
else
{
$this->errormsg = 'Fehler beim Laden der Bewerbungstermine.';
return false;
}
}
/**
* Prueft die Variablen auf Gueltigkeit
* @return true wenn ok, false im Fehlerfall
*/
private function validate()
{
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 $reihungstest_id aktualisiert
* @return true wenn ok, false im Fehlerfall
*/
public function save()
{
if(!$this->validate())
return false;
if($this->new)
{
//Neuen Datensatz einfuegen
$qry='BEGIN; INSERT INTO public.tbl_bewerbungstermine(studiensemester_kurzbz, studiengang_kz, beginn, ende, nachfrist, nachfrist_ende, anmerkung, insertamum, insertvon) VALUES('.
$this->db_add_param($this->studiensemester_kurzbz).', '.
$this->db_add_param($this->studiengang_kz, FHC_INTEGER).', '.
$this->db_add_param($this->beginn).', '.
$this->db_add_param($this->ende).', '.
$this->db_add_param($this->nachfrist, FHC_BOOLEAN).', '.
$this->db_add_param($this->nachfrist_ende).', '.
$this->db_add_param($this->anmerkung).', now(),'.
$this->db_add_param($this->insertvon).');';
}
else
{
$qry='UPDATE public.tbl_bewerbungstermine SET '.
'studiensemester_kurzbz='.$this->db_add_param($this->studiensemester_kurzbz).', '.
'studiengang_kz='.$this->db_add_param($this->studiengang_kz,FHC_INTEGER).', '.
'beginn='.$this->db_add_param($this->beginn).', '.
'ende='.$this->db_add_param($this->ende).', '.
'nachfrist='.$this->db_add_param($this->nachfrist, FHC_BOOLEAN).', '.
'nachfrist_ende='.$this->db_add_param($this->nachfrist_ende).', '.
'anmerkung='.$this->db_add_param($this->anmerkung).', '.
'updateamum= now(), '.
'updatevon='.$this->db_add_param($this->updatevon).' '.
'WHERE bewerbungstermin_id='.$this->db_add_param($this->bewerbungstermin_id, FHC_INTEGER, false).';';
}
if($this->db_query($qry))
{
if($this->new)
{
$qry = "SELECT currval('public.tbl_bewerbungstermine_bewerbungstermin_id_seq') as id";
if($this->db_query($qry))
{
if($row = $this->db_fetch_object())
{
$this->foerdervertrag_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;
}
}
return true;
}
else
{
$this->errormsg = 'Fehler beim Speichern der Daten';
return false;
}
}
public function delete($bewerbungstermin_id)
{
$qry = "DELETE from public.tbl_bewerbungstermine WHERE bewerbungstermin_id=".$this->db_add_param($bewerbungstermin_id);
if(!$this->db_query($qry))
{
$this->errormsg = 'Fehler beim Löschen der Daten';
return false;
}
return true;
}
}
+121 -121
View File
@@ -1,121 +1,121 @@
<?php
/* Copyright (C) 2006 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: Werner Masik <werner@gefi.at>
*/
require_once(dirname(__FILE__).'/basis_db.class.php');
class bisorgform extends basis_db
{
public $new;
public $result = array();
//Tabellenspalten
public $bisorgform_kurzbz;
public $code;
/**
* Konstruktor
* @param code des zu ladenden Datensatzes
*/
public function __construct($code=null)
{
parent::__construct();
if(!is_null($code))
$this->load($code);
}
/**
* Laedt einen Datensatz
* @param code des zu ladenden Datensatzes
*/
public function load($code)
{
//code auf gueltigkeit pruefen
if(!is_numeric($code) || $code == '')
{
$this->errormsg = 'code muss eine gueltige Zahl sein';
return false;
}
//laden des Datensatzes
$qry = "SELECT
distinct code,bisorgform_kurzbz
FROM
bis.tbl_orgform
WHERE
code=".$this->db_add_param($code, FHC_INTEGER);
if($this->db_query($qry))
{
if($row = $this->db_fetch_object())
{
$this->bisorgform_kurzbz = $row->bisorgform_kurzbz;
$this->code = $row->code;
return true;
}
else
{
$this->errormsg = 'Fehler bei der Datenbankabfrage';
return false;
}
}
else
{
$this->errormsg = 'Fehler bei der Datenbankabfrage';
return false;
}
}
/**
* Laedt alle BIS Orgformen
* @return List mit Orgformen wenn ok, false wenn Fehler
*/
public function getList()
{
//laden des Datensatzes
$qry = "SELECT
distinct code,bisorgform_kurzbz
FROM
bis.tbl_bisorgfom
ORDER BY code";
if($this->db_query($qry))
{
$this->result = array();
while($row = $this->db_fetch_object())
{
$obj = new bisorgform();
$obj->bisorgform_kurzbz = $row->bisorgform_kurzbz;
$obj->code = $row->code;
$this->result[] = $obj;
}
return $this->result;
}
else
{
$this->errormsg = 'Fehler bei der Datenbankabfrage';
return false;
}
}
}
?>
<?php
/* Copyright (C) 2006 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: Werner Masik <werner@gefi.at>
*/
require_once(dirname(__FILE__).'/basis_db.class.php');
class bisorgform extends basis_db
{
public $new;
public $result = array();
//Tabellenspalten
public $bisorgform_kurzbz;
public $code;
/**
* Konstruktor
* @param code des zu ladenden Datensatzes
*/
public function __construct($code=null)
{
parent::__construct();
if(!is_null($code))
$this->load($code);
}
/**
* Laedt einen Datensatz
* @param code des zu ladenden Datensatzes
*/
public function load($code)
{
//code auf gueltigkeit pruefen
if(!is_numeric($code) || $code == '')
{
$this->errormsg = 'code muss eine gueltige Zahl sein';
return false;
}
//laden des Datensatzes
$qry = "SELECT
distinct code,bisorgform_kurzbz
FROM
bis.tbl_orgform
WHERE
code=".$this->db_add_param($code, FHC_INTEGER);
if($this->db_query($qry))
{
if($row = $this->db_fetch_object())
{
$this->bisorgform_kurzbz = $row->bisorgform_kurzbz;
$this->code = $row->code;
return true;
}
else
{
$this->errormsg = 'Fehler bei der Datenbankabfrage';
return false;
}
}
else
{
$this->errormsg = 'Fehler bei der Datenbankabfrage';
return false;
}
}
/**
* Laedt alle BIS Orgformen
* @return List mit Orgformen wenn ok, false wenn Fehler
*/
public function getList()
{
//laden des Datensatzes
$qry = "SELECT
distinct code,bisorgform_kurzbz
FROM
bis.tbl_bisorgform
ORDER BY code";
if($this->db_query($qry))
{
$this->result = array();
while($row = $this->db_fetch_object())
{
$obj = new bisorgform();
$obj->bisorgform_kurzbz = $row->bisorgform_kurzbz;
$obj->code = $row->code;
$this->result[] = $obj;
}
return $this->result;
}
else
{
$this->errormsg = 'Fehler bei der Datenbankabfrage';
return false;
}
}
}
?>
+18 -9
View File
@@ -237,8 +237,7 @@ class dokument extends basis_db
$qry.=$this->db_add_param($value).',';
foreach($this->dokumentbeschreibung_mehrsprachig as $key=>$value)
$qry.=$this->db_add_param($value).',';
$this->db_add_param($this->bezeichnung).');';
$qry.= $this->db_add_param($this->bezeichnung).');';
}
else
{
@@ -255,7 +254,7 @@ class dokument extends basis_db
$qry.=" dokumentbeschreibung_mehrsprachig[$idx]=".$this->db_add_param($value).",";
}
$qry = mb_substr($qry,0,-1);
$qry.='WHERE dokument_kurzbz = '.$this->db_add_param($this->dokument_kurzbz);
$qry.=' WHERE dokument_kurzbz = '.$this->db_add_param($this->dokument_kurzbz);
}
if($this->db_query($qry))
@@ -451,12 +450,19 @@ class dokument extends basis_db
/**
* Liefert alle Dokumenttypen
* @param string $not_in Kommagetrennter String von dokument_kurzbz. Optional. Um bestimmte Dokumente (zB Zeugnis, welcher fix im Core vorhanden sein muss) auszuschließen.
* @return true wenn ok false im Fehlerfall
*/
public function getAllDokumente()
public function getAllDokumente($not_in='')
{
$qry = "SELECT * FROM public.tbl_dokument ORDER BY bezeichnung;";
$qry = "SELECT * FROM public.tbl_dokument ";
if($not_in!='')
{
$qry .= " WHERE dokument_kurzbz NOT IN (".$this->implode4SQL(explode(',', $not_in)).")";
}
$qry .= " ORDER BY bezeichnung;";
if($this->db_query($qry))
{
while($row = $this->db_fetch_object())
@@ -744,16 +750,18 @@ class dokument extends basis_db
* Optional kann auch eine studiengang_kz uebergeben werden, ob speziell dort das Dokument akzeptiert wurde
* @param $dokument_kurzbz
* @param $person_id
* @param $studiengang_kz integer
* @param $studiengang_kz integer oder array aus mehreren studiengang_kz
* @return boolean true wenn akzeptiert, false wenn noch nicht akzeptiert
*/
function akzeptiert($dokument_kurzbz, $person_id, $studiengang_kz=null)
{
if($studiengang_kz!='' && !is_numeric($studiengang_kz))
if(($studiengang_kz!='' && !is_numeric($studiengang_kz)) && !is_array($studiengang_kz))
{
$this->errormsg = 'Studiengang_kz ist ungueltig';
return false;
}
if(is_array($studiengang_kz))
$studiengang_kz = $this->implode4SQL($studiengang_kz);
$qry = "SELECT
*
@@ -764,7 +772,8 @@ class dokument extends basis_db
dokument_kurzbz=".$this->db_add_param($dokument_kurzbz)."
AND tbl_prestudent.person_id=".$this->db_add_param($person_id);
if ($studiengang_kz!='')
$qry .= " AND studiengang_kz=".$this->db_add_param($dokument_kurzbz, FHC_INTEGER);
$qry .= " AND studiengang_kz IN (".$studiengang_kz.")";
if($result = $this->db_query($qry))
{
if($this->db_num_rows($result)>0)
+7 -2
View File
@@ -450,14 +450,19 @@ class firma extends basis_db
/**
* Laedt alle Firmen eines bestimmen Firmentyps
* @param boolean $aktiv Default NULL
* @return true wenn ok, false im Fehlerfall
*/
public function getFirmen($firmentyp_kurzbz='')
public function getFirmen($firmentyp_kurzbz='', $aktiv=null)
{
$qry = "SElECT * FROM public.tbl_firma";
$qry = "SELECT * FROM public.tbl_firma";
if($firmentyp_kurzbz!='')
$qry.=" WHERE firmentyp_kurzbz=".$this->db_add_param($firmentyp_kurzbz);
if(!is_null($aktiv))
$qry.=" AND aktiv=".$this->db_add_param($aktiv, FHC_BOOLEAN);
$qry.=" ORDER BY name;";
if($this->db_query($qry))
+2 -1
View File
@@ -283,6 +283,7 @@ class gebiet extends basis_db
public function check_gebiet($gebiet_id)
{
$this->errormsg = '';
$this->warningmsg = '';
$this->load($gebiet_id);
//wenn levels verwendet werden muss maxfragen gesetzt sein
@@ -416,7 +417,7 @@ class gebiet extends basis_db
{
while($row = $this->db_fetch_object())
{
$this->errormsg .= "Frage Nummer $row->nummer (ID: $row->frage_id) Sprache $row->sprache hat mehrere gleiche Antworten.\n";
$this->warningmsg .= "Frage Nummer $row->nummer (ID: $row->frage_id) Sprache $row->sprache hat mehrere gleiche Antworten.\n";
}
}
+62 -62
View File
@@ -314,7 +314,7 @@ class jahresplan extends basis_db
$this->inhalt='';
$this->start='';
$this->ende='';
$this->ende='';
$this->insertamum='';
$this->insertvon='';
@@ -324,17 +324,17 @@ class jahresplan extends basis_db
$this->freigabevon='';
// Suchfelder
$this->start_jahr='';
$this->ende_jahr='';
$this->start_jahr_monat='';
$this->ende_jahr_monat='';
$this->start_jahr_woche='';
$this->ende_jahr_woche='';
$this->suchtext='';
$this->freigabe=false;
$this->start_jahr='';
$this->ende_jahr='';
$this->start_jahr_monat='';
$this->ende_jahr_monat='';
$this->start_jahr_woche='';
$this->ende_jahr_woche='';
$this->suchtext='';
$this->freigabe=false;
$this->result=array();
}
@@ -395,10 +395,11 @@ class jahresplan extends basis_db
$fildsValue.="'".addslashes($this->updatevon)."',";
$fildsValue.=(is_null($this->freigabeamum) || empty($this->freigabeamum)?'null':"'".addslashes($this->freigabeamum)."'").",";
$fildsValue.=(is_null($this->freigabevon) || empty($this->freigabevon)?'null':"'".addslashes($this->freigabevon)."'");
$qry.=" insert into ".$this->schemaSQL.".tbl_veranstaltung (".$fildsList.") values (".$fildsValue.") ";
$qry.=" insert into ".$this->schemaSQL.".tbl_veranstaltung (".$fildsList.") values (".$fildsValue.") ";
}
else
{
$fildsValue.=(!empty($fildsValue)?',':'')."veranstaltungskategorie_kurzbz='".addslashes($this->veranstaltungskategorie_kurzbz)."'";
$fildsValue.=(!empty($fildsValue)?',':'')."beschreibung='".addslashes($this->beschreibung)."'";
$fildsValue.=(!empty($fildsValue)?',':'')."inhalt='".addslashes($this->inhalt)."'";
@@ -410,41 +411,40 @@ class jahresplan extends basis_db
$fildsValue.=(!empty($fildsValue)?',':'')."freigabeamum=null";
else
$fildsValue.=(!empty($fildsValue)?',':'')."freigabeamum='".addslashes($this->freigabeamum)."'";
$fildsValue.=(!empty($fildsValue)?',':'')."freigabevon='".addslashes($this->freigabevon)."'";
$fildsValue.=(!empty($fildsValue)?',':'').(is_null($this->freigabevon) || empty($this->freigabevon)?"freigabevon=null":"freigabevon='".addslashes($this->freigabevon)."'");
$qry.=" update ".$this->schemaSQL.".tbl_veranstaltung set ";
$qry.=$fildsValue;
$qry.=" where veranstaltung_id='".addslashes($this->veranstaltung_id)."' ";
}
}
if(!$this->db_query($qry))
{
if (empty($this->errormsg))
$this->errormsg = 'Fehler beim Speichern des Datensatzes';
return false;
}
}
if($this->new)
{
{
$qry=" select max(".$this->schemaSQL.".tbl_veranstaltung.veranstaltung_id) from ".$this->schemaSQL.".tbl_veranstaltung; ";
if(!$this->db_query($qry))
{
if (empty($this->errormsg))
$this->errormsg = 'Fehler beim lesen des neuen Datensatzes';
return false;
}
}
if (!$row = $this->db_fetch_object())
{
if (empty($this->errormsg))
$this->errormsg = 'Fehler beim ermitteln des neuen Datensatzes';
return false;
return false;
}
$this->veranstaltung_id=$row->max;
}
// Beim Lesen ist ein Fehler aufgetreten
$this->freigabe=false;
$veranstaltung_id=$this->veranstaltung_id;
$this->freigabe=false;
$veranstaltung_id=$this->veranstaltung_id;
$this->InitVeranstaltung();
$this->veranstaltung_id=$veranstaltung_id;
if (!$this->loadVeranstaltung())
@@ -489,7 +489,7 @@ class jahresplan extends basis_db
$qry.=" WHERE veranstaltung_id =".$this->veranstaltung_id."; ";
$qry.=" COMMIT; ";
if($this->db_query($qry))
return true;
else
@@ -499,11 +499,11 @@ class jahresplan extends basis_db
return false;
}
}
/**
* Lesen der Veranstaltung
* @return Array mit Veranstaltungs-Objekt wenn ok, false im Fehlerfall
*/
*/
public function loadVeranstaltung($veranstaltungskategorie_kurzbz="",$veranstaltung_id="",$freigabe="",$show_only_public_kategorie="")
{
//Init
@@ -512,19 +512,19 @@ class jahresplan extends basis_db
$this->errormsg='';
$this->result=array();
if ($veranstaltung_id!='')
if ($veranstaltung_id!='')
$this->veranstaltung_id=$veranstaltung_id;
if (!empty($veranstaltungskategorie_kurzbz))
$this->veranstaltungskategorie_kurzbz=$veranstaltungskategorie_kurzbz;
if ($freigabe!='')
if ($freigabe!='')
$this->freigabe=$freigabe;
if ($show_only_public_kategorie!='')
if ($show_only_public_kategorie!='')
$this->show_only_public_kategorie=$show_only_public_kategorie;
$qry.="SELECT tbl_veranstaltung.* ";
$qry.="SELECT tbl_veranstaltung.* ";
$qry.=", to_char(tbl_veranstaltung.start, 'YYYYMMDD') as \"start_jjjjmmtt\" ";
$qry.=", to_char(tbl_veranstaltung.ende, 'YYYYMMDD') as \"ende_jjjjmmtt\" ";
@@ -570,71 +570,71 @@ class jahresplan extends basis_db
$qry.=", to_char(tbl_veranstaltung.freigabeamum, 'HH24:MI') as \"freigabeamum_zeit\" ";
$qry.=", EXTRACT(EPOCH FROM tbl_veranstaltung.freigabeamum) as \"freigabeamum_timestamp\" ";
$qry.=",tbl_veranstaltungskategorie.*,tbl_veranstaltungskategorie.veranstaltungskategorie_kurzbz as kategorie_kurzbz ";
$qry.=",tbl_veranstaltungskategorie.*,tbl_veranstaltungskategorie.veranstaltungskategorie_kurzbz as kategorie_kurzbz ";
$qry.=" FROM ".$this->schemaSQL.".tbl_veranstaltungskategorie ";
$qry.=" LEFT JOIN ".$this->schemaSQL.".tbl_veranstaltung ON ".$this->schemaSQL.".tbl_veranstaltung.veranstaltungskategorie_kurzbz=".$this->schemaSQL.".tbl_veranstaltungskategorie.veranstaltungskategorie_kurzbz ";
$qry.=" LEFT JOIN ".$this->schemaSQL.".tbl_veranstaltung ON ".$this->schemaSQL.".tbl_veranstaltung.veranstaltungskategorie_kurzbz=".$this->schemaSQL.".tbl_veranstaltungskategorie.veranstaltungskategorie_kurzbz ";
$qry.=" WHERE ".$this->schemaSQL.".tbl_veranstaltungskategorie.veranstaltungskategorie_kurzbz>'' ";
if ($this->freigabe)
{
$qry.=" AND ".$this->schemaSQL.".tbl_veranstaltung.freigabevon>'' ";
}
// Suche nach einer einzigen Veranstaltung_id
if (!is_array($this->veranstaltung_id) && !empty($this->veranstaltung_id) )
// Suche nach einer einzigen Veranstaltung_id
if (!is_array($this->veranstaltung_id) && !empty($this->veranstaltung_id) )
{
if(!is_numeric($this->veranstaltung_id))
{
$this->errormsg = 'Veranstaltung_id ist ungueltig';
return false;
}
$qry.=" AND ".$this->schemaSQL.".tbl_veranstaltung.veranstaltung_id='".addslashes($this->veranstaltung_id)."' ";
}
elseif (is_array($this->veranstaltung_id) && count($this->veranstaltung_id)>0 )
{
$qry.=" AND ".$this->schemaSQL.".tbl_veranstaltung.veranstaltung_id in (".addslashes(implode(",",$this->veranstaltung_id)).") ";
}
// Suche nach einer einzigen Veranstaltungskategorie_kurzbz
if (!is_array($this->veranstaltungskategorie_kurzbz) && $this->veranstaltungskategorie_kurzbz!='' )
{
$qry.=" AND ".$this->schemaSQL.".tbl_veranstaltungskategorie.veranstaltungskategorie_kurzbz='".addslashes($this->veranstaltungskategorie_kurzbz)."' ";
}
elseif (is_array($this->veranstaltungskategorie_kurzbz) && count($this->veranstaltungskategorie_kurzbz)>0 )
{
$qry.=" AND ".$this->schemaSQL.".tbl_veranstaltungskategorie.veranstaltungskategorie_kurzbz in ('".implode("','",$this->veranstaltungskategorie_kurzbz)."') ";
$qry.=" AND ".$this->schemaSQL.".tbl_veranstaltung.veranstaltung_id='".addslashes($this->veranstaltung_id)."' ";
}
elseif (is_array($this->veranstaltung_id) && count($this->veranstaltung_id)>0 )
{
$qry.=" AND ".$this->schemaSQL.".tbl_veranstaltung.veranstaltung_id in (".addslashes(implode(",",$this->veranstaltung_id)).") ";
}
// Suche nach einer einzigen Veranstaltungskategorie_kurzbz
if (!is_array($this->veranstaltungskategorie_kurzbz) && $this->veranstaltungskategorie_kurzbz!='' )
{
$qry.=" AND ".$this->schemaSQL.".tbl_veranstaltungskategorie.veranstaltungskategorie_kurzbz='".addslashes($this->veranstaltungskategorie_kurzbz)."' ";
}
elseif (is_array($this->veranstaltungskategorie_kurzbz) && count($this->veranstaltungskategorie_kurzbz)>0 )
{
$qry.=" AND ".$this->schemaSQL.".tbl_veranstaltungskategorie.veranstaltungskategorie_kurzbz in ('".implode("','",$this->veranstaltungskategorie_kurzbz)."') ";
}
if (!empty($this->start) && empty($this->ende) )
$qry.=" AND ".$this->schemaSQL.".tbl_veranstaltung.start=to_timestamp(".$this->start.") ";
$qry.=" AND ".$this->schemaSQL.".tbl_veranstaltung.start=to_timestamp(".$this->start.") ";
else if (empty($this->start) && !empty($this->ende) )
$qry.=" AND ".$this->schemaSQL.".tbl_veranstaltung.ende=to_timestamp(".$this->ende.") ";
$qry.=" AND ".$this->schemaSQL.".tbl_veranstaltung.ende=to_timestamp(".$this->ende.") ";
else if (!empty($this->start) && !empty($this->ende) )
{
$qry.=" AND to_timestamp(".$this->start.") >=to_timestamp(".$this->schemaSQL.".tbl_veranstaltung.start) ";
$qry.=" AND to_timestamp(".$this->ende.") <= to_timestamp(".$this->schemaSQL.".tbl_veranstaltung.ende) ";
}
$qry.=" AND to_timestamp(".$this->start.") >=to_timestamp(".$this->schemaSQL.".tbl_veranstaltung.start) ";
$qry.=" AND to_timestamp(".$this->ende.") <= to_timestamp(".$this->schemaSQL.".tbl_veranstaltung.ende) ";
}
if (!empty($this->start_jahr) && empty($this->ende_jahr))
$qry.=" AND to_char(".$this->schemaSQL.".tbl_veranstaltung.start, 'YYYY')='".addslashes($this->start_jahr)."'";
$qry.=" AND to_char(".$this->schemaSQL.".tbl_veranstaltung.start, 'YYYY')='".addslashes($this->start_jahr)."'";
elseif (empty($this->start_jahr) && !empty($this->ende_jahr) )
$qry.=" AND to_char(".$this->schemaSQL.".tbl_veranstaltung.ende, 'YYYY')='".addslashes($this->ende_jahr)."'";
$qry.=" AND to_char(".$this->schemaSQL.".tbl_veranstaltung.ende, 'YYYY')='".addslashes($this->ende_jahr)."'";
elseif (empty($this->start_jahr) && !empty($this->ende_jahr) )
{
$qry.=" AND '".addslashes($this->start_jahr)."' between to_char(".$this->schemaSQL.".tbl_veranstaltung.start, 'YYYY') AND to_char(".$this->schemaSQL.".tbl_veranstaltung.ende, 'YYYY') ";
$qry.=" AND '".addslashes($this->ende_jahr)."' between to_char(".$this->schemaSQL.".tbl_veranstaltung.start, 'YYYY') AND to_char(".$this->schemaSQL.".tbl_veranstaltung.ende, 'YYYY') ";
$qry.=" AND '".addslashes($this->start_jahr)."' between to_char(".$this->schemaSQL.".tbl_veranstaltung.start, 'YYYY') AND to_char(".$this->schemaSQL.".tbl_veranstaltung.ende, 'YYYY') ";
$qry.=" AND '".addslashes($this->ende_jahr)."' between to_char(".$this->schemaSQL.".tbl_veranstaltung.start, 'YYYY') AND to_char(".$this->schemaSQL.".tbl_veranstaltung.ende, 'YYYY') ";
}
if (!empty($this->start_jahr_monat) && empty($this->ende_jahr_monat) )
$qry.=" AND '".addslashes($this->start_jahr_monat)."' between to_char(".$this->schemaSQL.".tbl_veranstaltung.start, 'YYYYMM') and to_char(".$this->schemaSQL.".tbl_veranstaltung.ende, 'YYYYMM')";
$qry.=" AND '".addslashes($this->start_jahr_monat)."' between to_char(".$this->schemaSQL.".tbl_veranstaltung.start, 'YYYYMM') and to_char(".$this->schemaSQL.".tbl_veranstaltung.ende, 'YYYYMM')";
elseif (empty($this->start_jahr_monat) && !empty($this->ende_jahr_monat) )
$qry.=" AND '".addslashes($this->start_jahr_monat)."' between to_char(".$this->schemaSQL.".tbl_veranstaltung.start, 'YYYYMM') and to_char(".$this->schemaSQL.".tbl_veranstaltung.ende, 'YYYYMM')";
$qry.=" AND '".addslashes($this->start_jahr_monat)."' between to_char(".$this->schemaSQL.".tbl_veranstaltung.start, 'YYYYMM') and to_char(".$this->schemaSQL.".tbl_veranstaltung.ende, 'YYYYMM')";
elseif (!empty($this->start_jahr_monat) && !empty($this->ende_jahr_monat) )
{
$qry.=" AND '".addslashes($this->start_jahr_monat)."' between to_char(".$this->schemaSQL.".tbl_veranstaltung.start, 'YYYYMM') AND to_char(".$this->schemaSQL.".tbl_veranstaltung.ende, 'YYYYMM') ";
$qry.=" AND '".addslashes($this->ende_jahr_monat)."' between to_char(".$this->schemaSQL.".tbl_veranstaltung.start, 'YYYYMM') AND to_char(".$this->schemaSQL.".tbl_veranstaltung.ende, 'YYYYMM') ";
$qry.=" AND '".addslashes($this->start_jahr_monat)."' between to_char(".$this->schemaSQL.".tbl_veranstaltung.start, 'YYYYMM') AND to_char(".$this->schemaSQL.".tbl_veranstaltung.ende, 'YYYYMM') ";
$qry.=" AND '".addslashes($this->ende_jahr_monat)."' between to_char(".$this->schemaSQL.".tbl_veranstaltung.start, 'YYYYMM') AND to_char(".$this->schemaSQL.".tbl_veranstaltung.ende, 'YYYYMM') ";
}
if (!empty($this->start_jahr_woche) && empty($this->ende_jahr_woche) )
@@ -868,4 +868,4 @@ class jahresplan extends basis_db
}
}
}
?>
?>
+13 -5
View File
@@ -453,8 +453,12 @@ class konto extends basis_db
*/
public function getDifferenz($buchungsnr)
{
$qry = "SELECT sum(betrag) as differenz FROM public.tbl_konto
WHERE buchungsnr=".$this->db_add_param($buchungsnr, FHC_INTEGER)." OR buchungsnr_verweis=".$this->db_add_param($buchungsnr, FHC_INTEGER);
$qry = "SELECT
sum(betrag) as differenz FROM public.tbl_konto
WHERE
(buchungsnr=".$this->db_add_param($buchungsnr, FHC_INTEGER)." OR buchungsnr_verweis=".$this->db_add_param($buchungsnr, FHC_INTEGER).")
OR
(buchungsnr=(SELECT buchungsnr_verweis FROM public.tbl_konto WHERE buchungsnr=".$this->db_add_param($buchungsnr, FHC_INTEGER).") OR buchungsnr_verweis=(SELECT buchungsnr_verweis FROM public.tbl_konto WHERE buchungsnr=".$this->db_add_param($buchungsnr, FHC_INTEGER)."))";
if($this->db_query($qry))
{
@@ -489,7 +493,7 @@ class konto extends basis_db
AND tbl_benutzer.person_id = tbl_konto.person_id
AND tbl_konto.studiengang_kz=tbl_student.studiengang_kz
AND tbl_konto.buchungstyp_kurzbz = 'Studiengebuehr' ORDER BY buchungsnr";
if($this->db_query($subqry))
{
if ($this->db_num_rows()==0)
@@ -629,7 +633,7 @@ class konto extends basis_db
* student_uid und studiensemester
* gibt true/false zurueck und setzt bei true das buchungsdatum $this->buchungsdatum
*/
public function getLastStSemBuchungstypen($uid, $buchungstyp_kurzbz_array)
public function getLastStSemBuchungstypen($uid, $buchungstyp_kurzbz_array, $studiensemester_kurzbz=null)
{
$subqry = "SELECT tbl_konto.buchungsnr, tbl_konto.buchungsdatum, tbl_konto.buchungsnr_verweis, tbl_konto.studiensemester_kurzbz
FROM
@@ -640,7 +644,11 @@ class konto extends basis_db
WHERE
tbl_benutzer.uid = ".$this->db_add_param($uid)."
AND tbl_konto.studiengang_kz=tbl_student.studiengang_kz
AND tbl_konto.buchungstyp_kurzbz in(".$this->db_implode4SQL($buchungstyp_kurzbz_array).")
AND tbl_konto.buchungstyp_kurzbz in(".$this->db_implode4SQL($buchungstyp_kurzbz_array).")";
if(!is_null($studiensemester_kurzbz))
$subqry.=" AND studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz);
$subqry.="
ORDER BY tbl_studiensemester.start DESC";
if($result = $this->db_query($subqry))
+7 -3
View File
@@ -491,12 +491,13 @@ class lehreinheitmitarbeiter extends basis_db
}
/**
* Laedt die Lektoren einer Lehrveranstlatung in einem Studiensemester
* Laedt die Lektoren einer Lehrveranstaltung in einem Studiensemester
* @param lehrveranstaltung_id
* @param studiensemester_kurzbz
* @param integer lehreinheit_id Optional Lehreinheit_id
* @return array + true wenn ok / false im Fehlerfall
*/
public function getMitarbeiterLV($lehrveranstaltung_id, $studiensemester_kurzbz)
public function getMitarbeiterLV($lehrveranstaltung_id, $studiensemester_kurzbz, $lehreinheit_id=null)
{
if(!is_numeric($lehrveranstaltung_id))
{
@@ -504,7 +505,7 @@ class lehreinheitmitarbeiter extends basis_db
return false;
}
$qry = "SELECT
$qry = "SELECT DISTINCT
vw_mitarbeiter.uid, vorname, nachname, titelpre, titelpost
FROM
lehre.tbl_lehreinheitmitarbeiter
@@ -513,6 +514,9 @@ class lehreinheitmitarbeiter extends basis_db
WHERE
lehrveranstaltung_id=".$this->db_add_param($lehrveranstaltung_id, FHC_INTEGER)."
AND tbl_lehreinheit.studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz);
if(!is_null($lehreinheit_id))
$qry .=" AND tbl_lehreinheit.lehreinheit_id=".$this->db_add_param($lehreinheit_id, FHC_INTEGER);
$qry .=" ORDER BY nachname, vorname;";
if($this->db_query($qry))
+4 -1
View File
@@ -950,7 +950,8 @@ class lehrstunde extends basis_db
CASE WHEN gruppe_kurzbz is not null THEN gruppe_kurzbz
ELSE (SELECT UPPER(typ || kurzbz) FROM public.tbl_studiengang WHERE studiengang_kz=stpl.studiengang_kz) || COALESCE(stpl.semester,'0') || COALESCE(stpl.verband,'') || COALESCE(stpl.gruppe,'')
END) as gruppen, array_agg(mitarbeiter_uid) as lektoren,
array_agg(ort_kurzbz) as orte
array_agg(ort_kurzbz) as orte,
array_agg(titel) as titel
FROM
lehre.tbl_".$db_stpl_table." as stpl
JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
@@ -993,6 +994,7 @@ class lehrstunde extends basis_db
$qry.="GROUP BY stpl.datum, stpl.unr, stpl.lehreinheit_id, lehrfach.bezeichnung
ORDER BY stpl.datum, min(stpl.stunde), stpl.unr, stpl.lehreinheit_id";
if($result = $this->db_query($qry))
{
while($row = $this->db_fetch_object($result))
@@ -1005,6 +1007,7 @@ class lehrstunde extends basis_db
$obj->gruppen = array_unique($this->db_parse_array($row->gruppen));
$obj->lektoren = array_unique($this->db_parse_array($row->lektoren));
$obj->orte = array_unique($this->db_parse_array($row->orte));
$obj->titel = array_filter(array_unique($this->db_parse_array($row->titel)));
$obj->lehrfach_bezeichnung = $row->lehrfach_bezeichnung;
$obj->lehreinheit_id = $row->lehreinheit_id;
+120 -6
View File
@@ -66,6 +66,7 @@ class lehrveranstaltung extends basis_db
public $bezeichnung_arr = array();
public $semester_alternativ; // smallint
public $farbe;
public $lehrauftrag=true;
public $studienplan_lehrveranstaltung_id;
public $studienplan_lehrveranstaltung_id_parent;
@@ -79,6 +80,11 @@ class lehrveranstaltung extends basis_db
public $lvps;
public $las;
public $benotung=false;
public $lvinfo=false;
public $curriculum=true;
public $export=true;
/**
* Konstruktor
* @param $lehrveranstaltung_id ID der zu ladenden Lehrveranstaltung
@@ -155,7 +161,14 @@ class lehrveranstaltung extends basis_db
$this->lvps = $row->lvps;
$this->las = $row->las;
$this->benotung = $this->db_parse_bool($row->benotung);
$this->lvinfo = $this->db_parse_bool($row->lvinfo);
$this->lehrauftrag = $this->db_parse_bool($row->lehrauftrag);
// FIXME: LV-Bezeichnung richtig mehrsprachig machen
// Zwischenzeitlich 'Italian' zum bezeichnung_arr dazugegeben
$this->bezeichnung_arr['German'] = $this->bezeichnung;
$this->bezeichnung_arr['Italian'] = $this->bezeichnung;
$this->bezeichnung_arr['English'] = $this->bezeichnung_english;
if ($this->bezeichnung_arr['English'] == '')
$this->bezeichnung_arr['English'] = $this->bezeichnung_arr['German'];
@@ -220,6 +233,10 @@ class lehrveranstaltung extends basis_db
$lv_obj->semester_alternativ = $row->semester_alternativ;
$lv_obj->farbe = $row->farbe;
$lv_obj->benotung = $this->db_parse_bool($row->benotung);
$lv_obj->lvinfo = $this->db_parse_bool($row->lvinfo);
$lv_obj->lehrauftrag = $this->db_parse_bool($row->lehrauftrag);
$lv_obj->bezeichnung_arr['German'] = $row->bezeichnung;
$lv_obj->bezeichnung_arr['English'] = $row->bezeichnung_english;
if ($lv_obj->bezeichnung_arr['English'] == '')
@@ -351,6 +368,9 @@ class lehrveranstaltung extends basis_db
$lv_obj->lvnr = $row->lvnr;
$lv_obj->semester_alternativ = $row->semester_alternativ;
$lv_obj->farbe = $row->farbe;
$lv_obj->benotung = $this->db_parse_bool($row->benotung);
$lv_obj->lvinfo = $this->db_parse_bool($row->lvinfo);
$lv_obj->lehrauftrag = $this->db_parse_bool($row->lehrauftrag);
$lv_obj->bezeichnung_arr['German'] = $row->bezeichnung;
$lv_obj->bezeichnung_arr['English'] = $row->bezeichnung_english;
@@ -478,6 +498,9 @@ class lehrveranstaltung extends basis_db
$lv_obj->lvnr = $row->lvnr;
$lv_obj->semester_alternativ = $row->semester_alternativ;
$lv_obj->farbe = $row->farbe;
$lv_obj->benotung = $this->db_parse_bool($row->benotung);
$lv_obj->lvinfo = $this->db_parse_bool($row->lvinfo);
$lv_obj->lehrauftrag = $this->db_parse_bool($row->lehrauftrag);
$lv_obj->bezeichnung_arr['German'] = $row->bezeichnung;
$lv_obj->bezeichnung_arr['English'] = $row->bezeichnung_english;
@@ -556,6 +579,9 @@ class lehrveranstaltung extends basis_db
$lv_obj->lvnr = $row->lvnr;
$lv_obj->semester_alternativ = $row->semester_alternativ;
$lv_obj->farbe = $row->farbe;
$lv_obj->benotung = $this->db_parse_bool($row->benotung);
$lv_obj->lvinfo = $this->db_parse_bool($row->lvinfo);
$lv_obj->lehrauftrag = $this->db_parse_bool($row->lehrauftrag);
$lv_obj->bezeichnung_arr['German'] = $row->bezeichnung;
$lv_obj->bezeichnung_arr['English'] = $row->bezeichnung_english;
@@ -714,7 +740,7 @@ class lehrveranstaltung extends basis_db
semester, ects, semesterstunden, anmerkung, lehre, lehreverzeichnis, aktiv, insertamum,
insertvon, planfaktor, planlektoren, planpersonalkosten, plankostenprolektor, updateamum, updatevon, sort,
zeugnis, projektarbeit, sprache, koordinator, bezeichnung_english, orgform_kurzbz, incoming, lehrtyp_kurzbz, oe_kurzbz,
raumtyp_kurzbz, anzahlsemester, semesterwochen, lvnr, semester_alternativ, farbe,sws,lvs,alvs,lvps,las) VALUES (' .
raumtyp_kurzbz, anzahlsemester, semesterwochen, lvnr, semester_alternativ, farbe,sws,lvs,alvs,lvps,las,benotung,lvinfo, lehrauftrag) VALUES (' .
$this->db_add_param($this->studiengang_kz) . ', ' .
$this->db_add_param($this->bezeichnung) . ', ' .
$this->db_add_param($this->kurzbz) . ', ' .
@@ -754,7 +780,11 @@ class lehrveranstaltung extends basis_db
$this->db_add_param($this->lvs).','.
$this->db_add_param($this->alvs).','.
$this->db_add_param($this->lvps).','.
$this->db_add_param($this->las).');';
$this->db_add_param($this->las).','.
$this->db_add_param($this->benotung, FHC_BOOLEAN).','.
$this->db_add_param($this->lvinfo, FHC_BOOLEAN).','.
$this->db_add_param($this->lehrauftrag, FHC_BOOLEAN)
.');';
}
else
{
@@ -804,7 +834,10 @@ class lehrveranstaltung extends basis_db
'lvs = '.$this->db_add_param($this->lvs).', '.
'alvs = '.$this->db_add_param($this->alvs).', '.
'lvps = '.$this->db_add_param($this->lvps).', '.
'las = '.$this->db_add_param($this->las).' '.
'las = '.$this->db_add_param($this->las).', '.
'benotung = '.$this->db_add_param($this->benotung, FHC_BOOLEAN).', '.
'lvinfo = '.$this->db_add_param($this->lvinfo, FHC_BOOLEAN).', '.
'lehrauftrag = '.$this->db_add_param($this->lehrauftrag, FHC_BOOLEAN).' '.
'WHERE lehrveranstaltung_id = ' . $this->db_add_param($this->lehrveranstaltung_id, FHC_INTEGER, false) . ';';
}
@@ -910,6 +943,9 @@ class lehrveranstaltung extends basis_db
$lv_obj->lvnr = $row->lvnr;
$lv_obj->semester_alternativ = $row->semester_alternativ;
$lv_obj->farbe = $row->farbe;
$lv_obj->benotung = $this->db_parse_bool($row->benotung);
$lv_obj->lvinfo = $this->db_parse_bool($row->lvinfo);
$lv_obj->lehrauftrag = $this->db_parse_bool($row->lehrauftrag);
$lv_obj->bezeichnung_arr['German'] = $row->bezeichnung;
$lv_obj->bezeichnung_arr['English'] = $row->bezeichnung_english;
@@ -1000,6 +1036,9 @@ class lehrveranstaltung extends basis_db
$l->lvnr = $row->lvnr;
$l->semester_alternativ = $row->semester_alternativ;
$l->farbe = $row->farbe;
$l->benotung = $this->db_parse_bool($row->benotung);
$l->lvinfo = $this->db_parse_bool($row->lvinfo);
$l->lehrauftrag = $this->db_parse_bool($row->lehrauftrag);
$l->bezeichnung_arr['German'] = $row->bezeichnung;
$l->bezeichnung_arr['English'] = $row->bezeichnung_english;
@@ -1115,6 +1154,9 @@ class lehrveranstaltung extends basis_db
$lv_obj->lvnr = $row->lvnr;
$lv_obj->semester_alternativ = $row->semester_alternativ;
$lv_obj->farbe = $row->farbe;
$lv_obj->benotung = $this->db_parse_bool($row->benotung);
$lv_obj->lvinfo = $this->db_parse_bool($row->lvinfo);
$lv_obj->lehrauftrag = $this->db_parse_bool($row->lehrauftrag);
$lv_obj->bezeichnung_arr['German'] = $row->bezeichnung;
$lv_obj->bezeichnung_arr['English'] = $row->bezeichnung_english;
@@ -1148,7 +1190,10 @@ class lehrveranstaltung extends basis_db
tbl_studienplan_lehrveranstaltung.pflicht as stpllv_pflicht,
tbl_studienplan_lehrveranstaltung.koordinator as stpllv_koordinator,
tbl_studienplan_lehrveranstaltung.studienplan_lehrveranstaltung_id_parent,
tbl_studienplan_lehrveranstaltung.sort stpllv_sort
tbl_studienplan_lehrveranstaltung.sort stpllv_sort,
tbl_studienplan_lehrveranstaltung.curriculum,
tbl_studienplan_lehrveranstaltung.export,
tbl_studienplan_lehrveranstaltung.genehmigung
FROM lehre.tbl_lehrveranstaltung
JOIN lehre.tbl_studienplan_lehrveranstaltung
USING(lehrveranstaltung_id)
@@ -1204,6 +1249,9 @@ class lehrveranstaltung extends basis_db
$obj->semester_alternativ = $row->semester_alternativ;
$obj->farbe = $row->farbe;
$obj->stpllv_sort = $row->stpllv_sort;
$obj->benotung = $this->db_parse_bool($row->benotung);
$obj->lvinfo = $this->db_parse_bool($row->lvinfo);
$obj->lehrauftrag = $this->db_parse_bool($row->lehrauftrag);
$obj->bezeichnung_arr['German'] = $row->bezeichnung;
$obj->bezeichnung_arr['English'] = $row->bezeichnung_english;
@@ -1215,6 +1263,9 @@ class lehrveranstaltung extends basis_db
$obj->stpllv_koordinator = $row->stpllv_koordinator;
$obj->studienplan_lehrveranstaltung_id = $row->studienplan_lehrveranstaltung_id;
$obj->studienplan_lehrveranstaltung_id_parent = $row->studienplan_lehrveranstaltung_id_parent;
$obj->curriculum = $this->db_parse_bool($row->curriculum);
$obj->export = $this->db_parse_bool($row->export);
$obj->genehmigung = $this->db_parse_bool($row->genehmigung);
$obj->new = false;
$this->lehrveranstaltungen[] = $obj;
@@ -1261,6 +1312,31 @@ class lehrveranstaltung extends basis_db
}
return $childs;
}
/**
* Generiert die Subtrees des Lehrveranstaltungstrees
*/
public function hasChildren($studienplan_lehrveranstaltung_id)
{
$childs = array();
foreach ($this->lehrveranstaltungen as $row)
{
if ($row->studienplan_lehrveranstaltung_id_parent === $studienplan_lehrveranstaltung_id)
{
$childs[$row->studienplan_lehrveranstaltung_id] = $row;
$childs[$row->studienplan_lehrveranstaltung_id]->childs = $this->getLehrveranstaltungTreeChilds($row->studienplan_lehrveranstaltung_id);
}
}
if(count($childs) > 0)
{
return true;
}
else
{
return false;
}
}
/**
* Baut die Datenstruktur für senden als JSON Objekt auf
@@ -1288,6 +1364,10 @@ class lehrveranstaltung extends basis_db
$obj->stpllv_koordinator = $lv->stpllv_koordinator;
$obj->oe_kurzbz = $lv->oe_kurzbz;
$obj->lvnr = $lv->lvnr;
$obj->benotung = $this->db_parse_bool($lv->benotung);
$obj->lvinfo =$this->db_parse_bool( $lv->lvinfo);
$obj->zeugnis = $this->db_parse_bool($lv->zeugnis);
$obj->lehrauftrag = $this->db_parse_bool($lv->lehrauftrag);
$values[] = $obj;
@@ -1309,6 +1389,10 @@ class lehrveranstaltung extends basis_db
$obj->stpllv_koordinator = $this->stpllv_koordinator;
$obj->oe_kurzbz = $this->oe_kurzbz;
$obj->lvnr = $this->lvnr;
$obj->benotung = $this->db_parse_bool($this->benotung);
$obj->lvinfo =$this->db_parse_bool( $this->lvinfo);
$obj->zeugnis = $this->db_parse_bool($this->zeugnis);
$obj->lehrauftrag = $this->db_parse_bool($this->lehrauftrag);
$values[] = $obj;
}
@@ -1354,7 +1438,13 @@ class lehrveranstaltung extends basis_db
$obj->orgform_kurzbz = $lv->orgform_kurzbz;
$obj->incoming = $lv->incoming;
$obj->sprache = $lv->sprache;
$obj->benotung = $lv->benotung;
$obj->lvinfo = $lv->lvinfo;
$obj->zeugnis = $lv->zeugnis;
$obj->curriculum = $lv->curriculum;
$obj->export = $lv->export;
$obj->lehrauftrag = $lv->lehrauftrag;
$obj->lehre = $lv->lehre;
$obj->children = array();
if(count($lv->childs) > 0)
{
@@ -1379,6 +1469,11 @@ class lehrveranstaltung extends basis_db
$obj->stpllv_pflicht = $this->stpllv_pflicht;
$obj->stpllv_koordinator = $this->stpllv_koordinator;
$obj->lvnr = $this->lvnr;
$obj->benotung = $this->db_parse_bool($this->benotung);
$obj->lvinfo =$this->db_parse_bool( $this->lvinfo);
$obj->zeugnis = $this->db_parse_bool($this->zeugnis);
$obj->curriculum = $this->db_parse_bool($this->curriculum);
$obj->lehrauftrag = $this->lehrauftrag;
$values[] = $obj;
}
@@ -1478,6 +1573,9 @@ class lehrveranstaltung extends basis_db
$lv_obj->orgform_kurzbz = $row->orgform_kurzbz;
$lv_obj->lehrtyp_kurzbz = $row->lehrtyp_kurzbz;
$lv_obj->farbe = $row->farbe;
$lv_obj->benotung = $this->db_parse_bool($row->benotung);
$lv_obj->lvinfo = $this->db_parse_bool($row->lvinfo);
$lv_obj->lehrauftrag = $this->db_parse_bool($row->lehrauftrag);
$lv_obj->bezeichnung_arr['German'] = $row->bezeichnung;
$lv_obj->bezeichnung_arr['English'] = $row->bezeichnung_english;
@@ -1641,6 +1739,9 @@ class lehrveranstaltung extends basis_db
$lv_obj->semester_alternativ = $row->semester_alternativ;
$lv_obj->farbe = $row->farbe;
$lv_obj->oe_kurzbz = $row->oe_kurzbz;
$lv_obj->benotung = $this->db_parse_bool($row->benotung);
$lv_obj->lvinfo = $this->db_parse_bool($row->lvinfo);
$lv_obj->lehrauftrag = $this->db_parse_bool($row->lehrauftrag);
$lv_obj->bezeichnung_arr['German'] = $row->bezeichnung;
$lv_obj->bezeichnung_arr['English'] = $row->bezeichnung_english;
@@ -1766,6 +1867,9 @@ class lehrveranstaltung extends basis_db
$lv_obj->lvnr = $row->lvnr;
$lv_obj->semester_alternativ = $row->semester_alternativ;
$lv_obj->farbe = $row->farbe;
$lv_obj->benotung = $this->db_parse_bool($row->benotung);
$lv_obj->lvinfo = $this->db_parse_bool($row->lvinfo);
$lv_obj->lehrauftrag = $this->db_parse_bool($row->lehrauftrag);
$lv_obj->studiengang_kurzbzlang = $row->studiengang_kurzbzlang;
@@ -1889,6 +1993,9 @@ class lehrveranstaltung extends basis_db
$lv_obj->lvnr = $row->lvnr;
$lv_obj->semester_alternativ = $row->semester_alternativ;
$lv_obj->farbe = $row->farbe;
$lv_obj->benotung = $this->db_parse_bool($row->benotung);
$lv_obj->lvinfo = $this->db_parse_bool($row->lvinfo);
$lv_obj->lehrauftrag = $this->db_parse_bool($row->lehrauftrag);
$lv_obj->bezeichnung_arr['German'] = $row->bezeichnung;
$lv_obj->bezeichnung_arr['English'] = $row->bezeichnung_english;
@@ -1912,7 +2019,7 @@ class lehrveranstaltung extends basis_db
* @param string $studiensemester_kurzbz Kurzbezeichnung des Studiensemesters
* @return boolean|array false, wenn eine Fehler auftritt; Array mit UIDs wenn erfolgreich
*/
public function getStudentsOfLv($lehrveranstaltung_id, $studiensemester_kurzbz=null)
public function getStudentsOfLv($lehrveranstaltung_id, $studiensemester_kurzbz=null, $lehreinheit_id=null)
{
if(!is_numeric($lehrveranstaltung_id))
{
@@ -1927,6 +2034,10 @@ class lehrveranstaltung extends basis_db
{
$qry .= ' AND studiensemester_kurzbz='.$this->db_add_param($studiensemester_kurzbz);
}
if(!is_null($lehreinheit_id))
{
$qry .= ' AND lehreinheit_id='.$this->db_add_param($lehreinheit_id);
}
$qry .= ';';
if($this->db_query($qry))
@@ -2147,6 +2258,9 @@ class lehrveranstaltung extends basis_db
$obj->lvnr = $row->lvnr;
$obj->semester_alternativ = $row->semester_alternativ;
$obj->farbe = $row->farbe;
$obj->benotung = $this->db_parse_bool($row->benotung);
$obj->lvinfo = $this->db_parse_bool($row->lvinfo);
$obj->lehrauftrag = $this->db_parse_bool($row->lehrauftrag);
$obj->bezeichnung_arr['German'] = $row->bezeichnung;
$obj->bezeichnung_arr['English'] = $row->bezeichnung_english;
+79 -78
View File
@@ -43,7 +43,7 @@ class mantis extends basis_db
public $issue_summary; //Zusammendassung
public $issue_reproducibility; //Reproduzierbar
public $issue_date_submitted; //Meldungsdatum
public $issue_sponsorship_total;
public $issue_sponsorship_total;
public $issue_projection; //Projektion
public $issue_eta; //Aufwand
public $issue_resolution; //Lösung
@@ -52,10 +52,11 @@ class mantis extends basis_db
public $issue_due_date;
public $issue_steps_to_reproduce;
public $issue_additional_information;
public $issue_tags;
public $issue_tags;
public $soapClient;
public $errormsg;
public $result=array();
/**
* Konstruktor
@@ -71,61 +72,61 @@ class mantis extends basis_db
*/
public function initSoapClient()
{
try
{
$this->soapClient = new SoapClient(MANTIS_PFAD);
try
{
$this->soapClient = new SoapClient(MANTIS_PFAD);
}
catch (Exception $e)
{
{
echo $e->getMessage();
}
}
/**
*
*
* @param type $issue_tags
* @return type
*/
public function setTags($issue_tags)
{
$tags = array();
$tags = array();
$tags_array = explode(',', $issue_tags);
// Hole alle Tags
$params_tags=array('username' => MANTIS_USERNAME, 'password' => MANTIS_PASSWORT, 'page_number'=>1, 'per_page'=>20);
$result_tags = $this->soapClient->__soapCall('mc_tag_get_all',$params_tags);
$test = array();
$test = $result_tags->results;
$test = array();
$test = $result_tags->results;
foreach($tags_array as $t)
{
$tags_help = new stdClass();
$tags_help->name = trim($t);
$tags_help->name = trim($t);
foreach($result_tags->results as $rt)
{
if($rt->name == $tags_help->name)
{
$tags_help->id = $rt->id;
$tags_help->id = $rt->id;
}
}
//$tags_help->id = 10;
$tags[] = $tags_help;
//$tags_help->id = 10;
$tags[] = $tags_help;
}
$params=array('username' => MANTIS_USERNAME, 'password' => MANTIS_PASSWORT,'issue_id' =>$this->issue_id, $tags);
$result = $this->soapClient->__soapCall('mc_issue_set_tags',$params);
return $result;
}
/**
* Ticket Update
*/
@@ -140,13 +141,13 @@ class mantis extends basis_db
'priority'=>array('id'=>$this->issue_priority->id),
'additional_information'=>$this->issue_additional_information,
'reporter'=>array('id'=>$this->issue_reporter_id),
);
);
$params=array('username' => MANTIS_USERNAME, 'password' => MANTIS_PASSWORT,'issueId' => $this->issue_id, $issue);
$result = $this->soapClient->__soapCall('mc_issue_update',$params);
return $result;
}
/**
* Neues Ticket anlegen
*/
@@ -161,84 +162,84 @@ class mantis extends basis_db
'priority'=>array('id'=>$this->issue_priority->id),
'additional_information'=>$this->issue_additional_information,
);
$params=array('username' => MANTIS_USERNAME, 'password' => MANTIS_PASSWORT, $issue);
$result = $this->soapClient->__soapCall('mc_issue_add',$params);
return $result;
}
/**
* Ticket holen
*/
public function getIssue($issue_id=1)
{
try
try
{
$params=array('username' => MANTIS_USERNAME, 'password' => MANTIS_PASSWORT,'issue_id' => $issue_id);
$result = $this->soapClient->__soapCall('mc_issue_get',$params);
$this->issue_id = $result->id;
$this->issue_id = $result->id;
$this->issue_view_state = new stdclass();
$this->issue_view_state->id = $result->view_state->id;
$this->issue_view_state->name = $result->view_state->name;
$this->issue_last_updated = $result->last_updated;
$this->issue_view_state->id = $result->view_state->id;
$this->issue_view_state->name = $result->view_state->name;
$this->issue_last_updated = $result->last_updated;
$this->issue_project = new stdclass();
$this->issue_project->id = $result->project->id;
$this->issue_project->name = $result->project->name;
$this->issue_category = $result->category;
$this->issue_project->id = $result->project->id;
$this->issue_project->name = $result->project->name;
$this->issue_category = $result->category;
$this->issue_priority = new stdclass();
$this->issue_priority->id = $result->priority->id;
$this->issue_priority->name = $result->priority->name;
$this->issue_priority->name = $result->priority->name;
$this->issue_severity = new stdclass();
$this->issue_severity->id = $result->severity->id;
$this->issue_severity->name = $result->severity->name;
$this->issue_severity->id = $result->severity->id;
$this->issue_severity->name = $result->severity->name;
$this->issue_status = new stdclass();
$this->issue_status->id = $result->status->id;
$this->issue_status->name = $result->status->name;
$this->issue_status->id = $result->status->id;
$this->issue_status->name = $result->status->name;
$this->issue_reporter = new stdclass();
$this->issue_reporter->id = $result->reporter->id;
$this->issue_reporter->name = $result->reporter->name;
$this->issue_reporter->real_name = $result->reporter->real_name;
$this->issue_reporter->email = $result->reporter->email;
$this->issue_summary = $result->summary;
$this->issue_reporter->id = $result->reporter->id;
$this->issue_reporter->name = $result->reporter->name;
$this->issue_reporter->real_name = $result->reporter->real_name;
$this->issue_reporter->email = $result->reporter->email;
$this->issue_summary = $result->summary;
$this->issue_reproducibility = new stdclass();
$this->issue_reproducibility->id = $result->reproducibility->id;
$this->issue_reproducibility->name = $result->reproducibility->name;
$this->issue_date_submitted = $result->date_submitted;
$this->issue_sponsorship_total = $result->sponsorship_total;
$this->issue_reproducibility->name = $result->reproducibility->name;
$this->issue_date_submitted = $result->date_submitted;
$this->issue_sponsorship_total = $result->sponsorship_total;
$this->issue_projection = new stdclass();
$this->issue_projection->id = $result->projection->id;
$this->issue_projection->name = $result->projection->name;
$this->issue_projection->id = $result->projection->id;
$this->issue_projection->name = $result->projection->name;
$this->issue_eta = new stdclass();
$this->issue_eta->id = $result->eta->id;
$this->issue_eta->id = $result->eta->id;
$this->issue_eta->name = $result->eta->name;
$this->issue_resolution = new stdclass();
$this->issue_resolution->id = $result->resolution->id;
$this->issue_resolution->name = $result->resolution->name;
$this->issue_tags = new stdclass();
$anzTags = count($result->tags);
$i = 1;
$this->issue_resolution->id = $result->resolution->id;
$this->issue_resolution->name = $result->resolution->name;
$this->issue_tags = new stdclass();
$anzTags = count($result->tags);
$i = 1;
foreach($result->tags as $r)
{
if($i == $anzTags)
$this->issue_tags->name.= $r->name;
$this->issue_tags->name.= $r->name;
else
$this->issue_tags->name.=$r->name.',';
$i++;
$this->issue_tags->name.=$r->name.',';
$i++;
}
if($anzTags == 0)
$this->issue_tags->name = '';
$this->issue_tags->name = '';
$this->issue_description = $result->description;
//$this->issue_attachments = $result->attachments;
$this->issue_due_date = $result->due_date;
$this->issue_description = $result->description;
//$this->issue_attachments = $result->attachments;
$this->issue_due_date = $result->due_date;
$this->issue_steps_to_reproduce = (isset($result->steps_to_reproduce)?$result->steps_to_reproduce:'');
$this->issue_additional_information = (isset($result->additional_information)?$result->additional_information:'');
return true;
}
catch (SoapFault $fault)
}
catch (SoapFault $fault)
{
$this->errormsg="SOAP-Fehler: ".$fault->faultstring;
return false;
@@ -254,7 +255,7 @@ class mantis extends basis_db
try
{
$params=array('username' => MANTIS_USERNAME, 'password' => MANTIS_PASSWORT);
$result = $this->soapClient->__soapCall('mc_projects_get_user_accessible',$params);
foreach($result as $row)
@@ -265,7 +266,7 @@ class mantis extends basis_db
$obj->issue_project->id = $row->id;
$this->result[] = $obj;
if(isset($row->subprojects))
{
foreach($row->subprojects as $row_sub)
@@ -274,15 +275,15 @@ class mantis extends basis_db
$obj->issue_project = new stdclass();
$obj->issue_project->name = $row_sub->name;
$obj->issue_project->id = $row_sub->id;
$this->result[] = $obj;
}
}
}
}
return true;
}
catch (SoapFault $fault)
}
catch (SoapFault $fault)
{
$this->errormsg="SOAP-Fehler: ".$fault->faultstring;
return false;
@@ -307,8 +308,8 @@ class mantis extends basis_db
$this->result[] = $obj;
}
return true;
}
catch (SoapFault $fault)
}
catch (SoapFault $fault)
{
$this->errormsg="SOAP-Fehler: ".$fault->faultstring;
return false;
+35
View File
@@ -0,0 +1,35 @@
<?php
/* Copyright (C) 2016 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: Andreas Moik <moik@technikum-wien.at>
*/
//require_once(dirname(__FILE__).'/config/vilesci.config.inc.php'); Muss vor dieser Datei eingebunden werden!
$dr = DOC_ROOT;
$dr = str_replace($_SERVER["DOCUMENT_ROOT"], "", $dr);
if($dr=='')
$dr='/';
//Originaldateien des Herstellers
echo '<link rel="stylesheet" type="text/css" href="'.$dr.'vendor/FHC-vendor/angular-tablesort/tablesort.css">';
echo '<script src="'.$dr.'vendor/FHC-vendor/angular-tablesort/js/angular-tablesort.js"></script>';
//Anpassungen
echo '<link rel="stylesheet" type="text/css" href="'.$dr.'include/vendor_custom/angular-tablesorter/tablesort.css">';
?>
+31
View File
@@ -0,0 +1,31 @@
<?php
/* Copyright (C) 2015 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: Andreas Moik <moik@technikum-wien.at>
*/
//require_once(dirname(__FILE__).'/config/vilesci.config.inc.php'); Muss vor dieser Datei eingebunden werden!
$dr = DOC_ROOT;
$dr = str_replace($_SERVER["DOCUMENT_ROOT"], "", $dr);
if($dr=='')
$dr='/';
//Originaldateien des Herstellers
echo '<script src="'.$dr.'vendor/components/angular.js/angular.min.js"></script>';
?>
+2 -1
View File
@@ -21,7 +21,8 @@
$dr = DOC_ROOT;
$dr = str_replace($_SERVER["DOCUMENT_ROOT"], "", $dr);
if($dr=='')
$dr='/';
//Originaldateien des Herstellers
echo '<link rel="stylesheet" type="text/css" href="'.$dr.'vendor/FHC-vendor/easyui/themes/icon.css">';
+2 -1
View File
@@ -21,7 +21,8 @@
$dr = DOC_ROOT;
$dr = str_replace($_SERVER["DOCUMENT_ROOT"], "", $dr);
if($dr=='')
$dr='/';
//Originaldateien des Herstellers
echo '<link rel="stylesheet" type="text/css" href="'.$dr.'vendor/FHC-vendor/jquery-tablesorter/css/theme.default.css">';
+2
View File
@@ -21,6 +21,8 @@
$dr = DOC_ROOT;
$dr = str_replace($_SERVER["DOCUMENT_ROOT"], "", $dr);
if($dr=='')
$dr='/';
//Originaldateien des Herstellers
echo '<script src="'.$dr.'vendor/components/jquery/jquery.min.js"></script>';
+105
View File
@@ -0,0 +1,105 @@
<?php
/* Copyright (C) 2016 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: Andreas Moik <moik@technikum-wien.at>
*/
require_once(dirname(__FILE__)."/jquery.php");
echo '
<script>
var SERVICE_TARGET = "";
function _GET()
{
var url = window.location.href;
if(url.slice(-1) === "#")
url = url.slice(0,-1);
var vars = {};
var parts = url.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value)
{
vars[key] = value;
});
return vars;
}
function AJAXCall(action, successfunction)
{
if(SERVICE_TARGET == "")
die("Es wurde kein AJAX-Target angegeben");
$.ajax(
{
url: SERVICE_TARGET,
type: "POST",
dataType: "html",
data: action,
timeout: 5000
}).done(function(result)
{
try
{
var res = JSON.parse(result);
}
catch (e)
{
die(result);
return false;
}
if(res.return)
{
if(res.action != "")
{
try
{
var ret = JSON.parse(res.action);
}
catch(e)
{
die(action.action + "<br><br>" + res.action);
}
}
successfunction(ret);
}
else
{
die(res.message);
}
}).fail(function(jqXHR, status)
{
die("AJAX failed: " + status);
});
}
function die(msg)
{
var full = "<h1 style=\'color:#900;\'>Fehler:</h1><div>"+msg+"</div>";
document.body.innerHTML = full;
throw new Error(msg);
}
function isObject(val)
{
if (val === null) { return false;}
return ( (typeof val === "function") || (typeof val === "object") );
}
</script>';
?>
+62
View File
@@ -0,0 +1,62 @@
<?php
/* Copyright (C) 2015 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: Andreas Moik <moik@technikum-wien.at>
*/
require_once('../../config/vilesci.config.inc.php');
require_once('../../include/functions.inc.php');
require_once('../../include/datum.class.php');
require_once('../../include/person.class.php');
require_once('../../include/benutzer.class.php');
require_once('../../include/benutzerberechtigung.class.php');
function returnAJAX($success, $obj)
{
//if there is an error
if(error_get_last())
$ret = array(
"return" => false,
);
else if(!$success)
{
$ret = array(
"return" => false,
"message" => $obj,
);
}
//if we dont have a valid user
else if (!$getuid = get_uid())
{
$ret = array(
"return" => false,
);
}
//if everything worked fine
else
{
$ret = array(
"return" => true,
"action" => $obj,
);
}
echo json_encode($ret);
if($ret["return"] === false)
die("");
}
?>
File diff suppressed because it is too large Load Diff
+62
View File
@@ -499,5 +499,67 @@ class ort extends basis_db
}
return true;
}
/**
* Laedt einen Ort (Limit 1) anhand seiner Planbezeichnung
* @param boolean aktiv (optional) default:true
* @param boolean lehre (optional) default:true
* @return true wenn ok, false im Fehlerfall
*/
public function getOrtByPlanbezeichnung($planbezeichnung, $aktiv=true, $lehre=true)
{
$qry = 'SELECT * FROM public.tbl_ort WHERE planbezeichnung='.$this->db_add_param($planbezeichnung);
if(!is_null($aktiv))
{
$qry .= ' AND aktiv='.$this->db_add_param($aktiv, FHC_BOOLEAN);
}
if(!is_null($lehre))
{
$qry .= ' AND lehre='.$this->db_add_param($lehre, FHC_BOOLEAN);
}
$qry .= ' ORDER BY ort_kurzbz LIMIT 1;';
if(!$this->db_query($qry))
{
$this->errormsg = 'Fehler beim Laden der Datensaetze';
return false;
}
if($this->db_query($qry))
{
while($row = $this->db_fetch_object())
{
$ort_obj = new ort();
$ort_obj->ort_kurzbz = $row->ort_kurzbz;
$ort_obj->bezeichnung = $row->bezeichnung;
$ort_obj->planbezeichnung = $row->planbezeichnung;
$ort_obj->max_person = $row->max_person;
$ort_obj->aktiv = $this->db_parse_bool($row->aktiv);
$ort_obj->lehre = $this->db_parse_bool($row->lehre);
$ort_obj->lageplan = $row->lageplan;
$ort_obj->dislozierung = $row->dislozierung;
$ort_obj->kosten = $row->kosten;
$ort_obj->reservieren = $this->db_parse_bool($row->reservieren);
$ort_obj->ausstattung = $row->ausstattung;
$ort_obj->stockwerk = $row->stockwerk;
$ort_obj->standort_id = $row->standort_id;
$ort_obj->telefonklappe = $row->telefonklappe;
$ort_obj->content_id = $row->content_id;
$ort_obj->m2 = $row->m2;
$ort_obj->oe_kurzbz = $row->oe_kurzbz;
$ort_obj->gebteil = $row->gebteil;
$this->result[] = $ort_obj;
}
return true;
}
else
{
$this->errormsg = 'Fehler beim Laden der Datensaetze';
return false;
}
}
}
?>
+10 -9
View File
@@ -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($this->svnr!='' && 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
+62 -7
View File
@@ -22,6 +22,7 @@
/**
* Datenbank Abstraktionsklasse fuer Postgresql Datenbank
*/
require_once('sprache.class.php');
class basis_db extends db
{
@@ -292,6 +293,27 @@ class basis_db extends db
$var = $this->db_null_value($var, false);
break;
case FHC_LANG_ARRAY:
$sprache = new sprache();
$sprache->getAll(true);
$buf = $var;
$var = array();
$languages = $sprache->getAllIndexesSorted();
foreach($languages as $sk => $sp)
{
if(!$sp || !isset($buf[$sp]))
$var[$sk] = "";
else
$var[$sk] = $this->db_escape($buf[$sp]);
}
$var = str_replace('\\', '\\\\', $var);
$var = str_replace('"', '\\\"', $var);
$var = '\'{"' . join('","', $var) . '"}\'';
break;
case FHC_BOOLEAN:
if($var===true)
$var='true';
@@ -350,15 +372,48 @@ class basis_db extends db
*/
public function db_parse_array($var)
{
if ($var == '')
if ($var == '')
return;
preg_match_all('/(?<=^\{|,)(([^,"{]*)|\s*"((?:[^"\\\\]|\\\\(?:.|[0-9]+|x[0-9a-f]+))*)"\s*)(,|(?<!^\{)(?=\}$))/i', $var, $matches, PREG_SET_ORDER);
$values = array();
foreach ($matches as $match)
preg_match_all('/(?<=^\{|,)(([^,"{]*)|\s*"((?:[^"\\\\]|\\\\(?:.|[0-9]+|x[0-9a-f]+))*)"\s*)(,|(?<!^\{)(?=\}$))/i', $var, $matches, PREG_SET_ORDER);
$values = array();
foreach ($matches as $match)
{
$values[] = $match[3] != '' ? stripcslashes($match[3]) : (strtolower($match[2]) == 'null' ? null : $match[2]);
}
return $values;
$values[] = $match[3] != '' ? stripcslashes($match[3]) : (strtolower($match[2]) == 'null' ? null : $match[2]);
}
return $values;
}
/**
* Erstellt aus einem DB Array ein PHP Array
* @param $var DB Result Array Spalte
* @return php array
*/
public function db_parse_lang_array($var)
{
if ($var == '')
return;
preg_match_all('/(?<=^\{|,)(([^,"{]*)|\s*"((?:[^"\\\\]|\\\\(?:.|[0-9]+|x[0-9a-f]+))*)"\s*)(,|(?<!^\{)(?=\}$))/i', $var, $matches, PREG_SET_ORDER);
$values = array();
$sprache = new sprache();
$sprache->loadIndexArray();
$sprache = new sprache();
$sprache->getAll(true);
$languages = $sprache->getAllIndexesSorted();
foreach ($matches as $mk => $match)
{
$values[$languages[$mk+1]] = $match[3] != '' ? stripcslashes($match[3]) : (strtolower($match[2]) == 'null' ? null : $match[2]);
}
return $values;
}
}
function indexSort($a, $b)
{
return strcmp($a->index, $b->index);
}
?>
+132 -61
View File
@@ -20,6 +20,7 @@
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
require_once(dirname(__FILE__).'/person.class.php');
require_once(dirname(__FILE__).'/log.class.php');
class prestudent extends person
{
@@ -46,17 +47,17 @@ class prestudent extends person
public $punkte; //rt_gesamtpunkte
public $rt_punkte1;
public $rt_punkte2;
public $rt_punkte3 = 0;
public $bismelden = true;
public $rt_punkte3 = 0;
public $bismelden = true;
public $anmerkung;
public $anmerkung_status;
public $mentor;
public $ext_id_prestudent;
public $dual = false;
public $zgvdoktor_code;
public $zgvdoktorort;
public $zgvdoktordatum;
public $zgvdoktornation;
public $dual = false;
public $zgvdoktor_code;
public $zgvdoktorort;
public $zgvdoktordatum;
public $zgvdoktornation;
public $status_kurzbz;
public $studiensemester_kurzbz;
@@ -565,8 +566,8 @@ class prestudent extends person
(
SELECT
*, (SELECT status_kurzbz FROM tbl_prestudentstatus
WHERE prestudent_id=prestudent.prestudent_id $stsemqry
ORDER BY datum DESC, insertamum DESC, ext_id DESC LIMIT 1) AS rolle
WHERE prestudent_id=prestudent.prestudent_id $stsemqry
ORDER BY datum DESC, insertamum DESC, ext_id DESC LIMIT 1) AS rolle
FROM tbl_prestudent prestudent ORDER BY prestudent_id
) a, tbl_prestudentstatus, tbl_person
WHERE a.rolle=tbl_prestudentstatus.status_kurzbz AND
@@ -587,8 +588,11 @@ class prestudent extends person
case "interessenten":
$qry.=" AND a.rolle='Interessent'";
break;
case "bewerbungnichtabgeschickt":
$qry.=" AND a.rolle='Interessent' AND bewerbung_abgeschicktamum is null";
break;
case "bewerbungabgeschickt":
$qry.=" AND a.rolle='Interessent' AND bewerbung_abgeschicktamum is not null";
$qry.=" AND a.rolle='Interessent' AND bewerbung_abgeschicktamum is not null AND bestaetigtam is null";
break;
case "statusbestaetigt":
$qry.=" AND a.rolle='Interessent' AND bestaetigtam is not null";
@@ -1115,9 +1119,9 @@ class prestudent extends person
$obj->ext_id_prestudent = $row->ext_id;
$obj->dual = $this->db_parse_bool($row->dual);
$obj->ausstellungsstaat = $row->ausstellungsstaat;
$obj->zgvdoktor_code = $row->zgvdoktor_code;
$obj->zgvdoktorort = $row->zgvdoktorort;
$obj->zgvdoktordatum = $row->zgvdoktordatum;
$obj->zgvdoktor_code = $row->zgvdoktor_code;
$obj->zgvdoktorort = $row->zgvdoktorort;
$obj->zgvdoktordatum = $row->zgvdoktordatum;
$this->result[] = $obj;
}
@@ -1130,56 +1134,60 @@ class prestudent extends person
}
}
/**
* Gibt die eingetragenen ZGV zurück
* @return array
*/
public function getZgv() {
/**
* Gibt die eingetragenen ZGV zurück
* @return array
*/
public function getZgv()
{
$zgv = array(
'bachelor' => array(),
'master' => array(),
// 'doktor' => array(),
);
$attribute = array(
'art',
'ort',
'datum',
'nation',
);
$db_attribute = array(
'zgv_code',
'zgvort',
'zgvdatum',
'zgvnation',
'zgvmas_code',
'zgvmaort',
'zgvmadatum',
'zgvmanation',
'zgvdoktor_code',
'zgvdoktorort',
'zgvdoktordatum',
'zgvdoktornation',
);
$zgv = array
(
'bachelor' => array(),
'master' => array(),
//'doktor' => array(),
);
$attribute = array
(
'art',
'ort',
'datum',
'nation',
);
$db_attribute = array
(
'zgv_code',
'zgvort',
'zgvdatum',
'zgvnation',
'zgvmas_code',
'zgvmaort',
'zgvmadatum',
'zgvmanation',
'zgvdoktor_code',
'zgvdoktorort',
'zgvdoktordatum',
'zgvdoktornation',
);
foreach($this->result as $prestudent) {
foreach($zgv as &$value) {
foreach($attribute as $attribut) {
$db_attribute_name = current($db_attribute);
if($prestudent->$db_attribute_name) {
$value[$attribut] = $prestudent->$db_attribute_name;
}
next($db_attribute);
}
}
reset($db_attribute);
}
return $zgv;
}
foreach($this->result as $prestudent)
{
foreach($zgv as &$value)
{
foreach($attribute as $attribut)
{
$db_attribute_name = current($db_attribute);
if($prestudent->$db_attribute_name)
{
$value[$attribut] = $prestudent->$db_attribute_name;
}
next($db_attribute);
}
}
reset($db_attribute);
}
return $zgv;
}
/**
* Liefert die Anzahl der Bewerber im ausgewaehlten Bereich
@@ -1708,4 +1716,67 @@ class prestudent extends person
return false;
}
}
/**
* Laedt alle Studenten eines Studienplans und eines Studiensemesters
* @param $studienplan_id
* @param $studiensemester_kurzbz
* @param $studiengang_kz
* @return array mit allen Prestudenten, welche sich für den angegebenen Studienplan im angegebenen Semester beworben haben
*/
public function getAllStudentenFromStudienplanAndStudsem($studienplan_id, $studiensemester_kurzbz, $studiengang_kz)
{
if(!is_numeric($studienplan_id))
{
$this->errormsg = 'studienplan_id ist ungueltig';
return false;
}
if(!$studiensemester_kurzbz || $studiensemester_kurzbz == "")
{
$this->errormsg = 'studiensemester_kurzbz ist ungueltig';
return false;
}
$qry = "SELECT DISTINCT prestudent_id, vorname, nachname, gebdatum, rt_gesamtpunkte, tbl_prestudent.studiengang_kz, bis.tbl_zgvgruppe.bezeichnung, get_rolle_prestudent(prestudent_id, null) as laststatus
FROM
public.tbl_prestudent
JOIN public.tbl_person USING(person_id)
LEFT JOIN bis.tbl_zgvgruppe_zuordnung USING(zgv_code)
LEFT JOIN bis.tbl_zgvgruppe USING(gruppe_kurzbz)
WHERE
tbl_prestudent.studiengang_kz=". $this->db_add_param($studiengang_kz)."
AND EXISTS(
SELECT
1
FROM
public.tbl_prestudentstatus
WHERE
tbl_prestudent.prestudent_id=tbl_prestudentstatus.prestudent_id
AND studiensemester_kurzbz=". $this->db_add_param($studiensemester_kurzbz)."
AND status_kurzbz='Bewerber'
AND (
studienplan_id=". $this->db_add_param($studienplan_id)."
OR
(anmerkung like '%' || (SELECT orgform_kurzbz || '_' || sprache FROM lehre.tbl_studienplan WHERE studienplan_id=". $this->db_add_param($studienplan_id).") || '%')
)
);";
if($result = $this->db_query($qry))
{
$ret = array();
while($row = $this->db_fetch_object($result))
$ret[] = $row;
return $ret;
}
else
{
$this->errormsg = 'Fehler beim Laden der Daten';
return false;
}
}
}
+32 -15
View File
@@ -42,8 +42,11 @@ class projekt extends basis_db
public $insertvon; // string
public $updateamum; // timestamp
public $updatevon; // string
public $budget;
public $farbe;
public $budget;
public $farbe;
public $anzahl_ma; // integer
public $aufwand_pt; // integer
/**
@@ -79,7 +82,9 @@ class projekt extends basis_db
$this->ende = $row->ende;
$this->oe_kurzbz= $row->oe_kurzbz;
$this->budget= $row->budget;
$this->farbe= $row->farbe;
$this->farbe= $row->farbe;
$this->anzahl_ma = $row->anzahl_ma;
$this->aufwand_pt = $row->aufwand_pt;
return true;
}
@@ -129,8 +134,10 @@ class projekt extends basis_db
$obj->ende = $row->ende;
$obj->oe_kurzbz = $row->oe_kurzbz;
$obj->budget = $row->budget;
$obj->farbe = $row->farbe;
$obj->aufwandstyp_kurzbz = $row->aufwandstyp_kurzbz;
$obj->farbe = $row->farbe;
$obj->aufwandstyp_kurzbz = $row->aufwandstyp_kurzbz;
$obj->anzahl_ma = $row->anzahl_ma;
$obj->aufwand_pt = $row->aufwand_pt;
$this->result[] = $obj;
}
@@ -171,8 +178,10 @@ class projekt extends basis_db
$obj->ende = $row->ende;
$obj->oe_kurzbz = $row->oe_kurzbz;
$obj->budget = $row->budget;
$obj->farbe = $row->farbe;
$obj->farbe = $row->farbe;
$obj->anzahl_ma = $row->anzahl_ma;
$obj->aufwand_pt = $row->aufwand_pt;
$this->result[] = $obj;
}
return true;
@@ -211,9 +220,11 @@ class projekt extends basis_db
$obj->ende = $row->ende;
$obj->oe_kurzbz = $row->oe_kurzbz;
$obj->budget = $row->budget;
$obj->farbe = $row->farbe;
$obj->aufwandstyp_kurzbz = $row->aufwandstyp_kurzbz;
$obj->farbe = $row->farbe;
$obj->aufwandstyp_kurzbz = $row->aufwandstyp_kurzbz;
$obj->anzahl_ma = $row->anzahl_ma;
$obj->aufwand_pt = $row->aufwand_pt;
$this->result[] = $obj;
}
return true;
@@ -280,7 +291,7 @@ class projekt extends basis_db
{
//Neuen Datensatz einfuegen
$qry='INSERT INTO fue.tbl_projekt (projekt_kurzbz, nummer, titel,beschreibung, beginn, ende, budget, farbe, oe_kurzbz, aufwandstyp_kurzbz) VALUES('.
$qry='INSERT INTO fue.tbl_projekt (projekt_kurzbz, nummer, titel,beschreibung, beginn, ende, budget, farbe, oe_kurzbz, aufwand_pt, anzahl_ma, aufwandstyp_kurzbz) VALUES('.
$this->db_add_param($this->projekt_kurzbz).', '.
$this->db_add_param($this->nummer).', '.
$this->db_add_param($this->titel).', '.
@@ -289,7 +300,9 @@ class projekt extends basis_db
$this->db_add_param($this->ende).', '.
$this->db_add_param($this->budget).', '.
$this->db_add_param($this->farbe).', '.
$this->db_add_param($this->oe_kurzbz).','.
$this->db_add_param($this->oe_kurzbz).','.
$this->db_add_param($this->aufwand_pt).','.
$this->db_add_param($this->anzahl_ma).','.
$this->db_add_param($this->aufwandstyp_kurzbz).');';
}
else
@@ -305,7 +318,9 @@ class projekt extends basis_db
'ende='.$this->db_add_param($this->ende).', '.
'budget='.$this->db_add_param($this->budget).', '.
'farbe='.$this->db_add_param($this->farbe).', '.
'oe_kurzbz='.$this->db_add_param($this->oe_kurzbz).', '.
'oe_kurzbz='.$this->db_add_param($this->oe_kurzbz).', '.
'anzahl_ma='.$this->db_add_param($this->anzahl_ma).', '.
'aufwand_pt='.$this->db_add_param($this->aufwand_pt).', '.
'aufwandstyp_kurzbz='.$this->db_add_param($this->aufwandstyp_kurzbz).' '.
'WHERE projekt_kurzbz='.$this->db_add_param($this->projekt_kurzbz).';';
}
@@ -416,8 +431,10 @@ class projekt extends basis_db
$this->ende = $row->ende;
$this->oe_kurzbz= $row->oe_kurzbz;
$this->budget= $row->budget;
$this->farbe= $row->farbe;
$this->farbe= $row->farbe;
$this->anzahl_ma = $row->anzahl_ma;
$this->aufwand_pt = $row->aufwand_pt;
return true;
}
else
+58 -52
View File
@@ -15,7 +15,7 @@
* 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>,
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
@@ -30,12 +30,12 @@ class pruefling extends basis_db
public $registriert;
public $prestudent_id;
public $semester;
// ErgebnisArray
public $result=array();
public $num_rows=0;
public $new;
/**
* Konstruktor - Laedt optional einen pruefling
* @param $frage_id Frage die geladen werden soll (default=null)
@@ -47,7 +47,7 @@ class pruefling extends basis_db
if($pruefling_id != null)
$this->load($pruefling_id);
}
/**
* Laedt Pruefling mit der uebergebenen ID
* @param $pruefling_id ID der Frage die geladen werden soll
@@ -55,7 +55,7 @@ class pruefling extends basis_db
public function load($pruefling_id)
{
$qry = "SELECT * FROM testtool.tbl_pruefling WHERE pruefling_id=".$this->db_add_param($pruefling_id, FHC_INTEGER);
if($this->db_query($qry))
{
if($row = $this->db_fetch_object())
@@ -68,21 +68,21 @@ class pruefling extends basis_db
$this->semester = $row->semester;
return true;
}
else
else
{
$this->errormsg = "Kein Eintrag gefunden fuer $pruefling_id";
return false;
}
}
}
else
else
{
$this->errormsg = "Fehler beim Laden";
return false;
}
}
}
/**
* Prueft die Variablen vor dem Speichern
* Prueft die Variablen vor dem Speichern
* auf Gueltigkeit.
* @return true wenn ok, false im Fehlerfall
*/
@@ -90,7 +90,7 @@ class pruefling extends basis_db
{
return true;
}
/**
* Speichert die Benutzerdaten in die Datenbank
* Wenn $new auf true gesetzt ist wird ein neuer Datensatz angelegt
@@ -102,7 +102,7 @@ class pruefling extends basis_db
//Variablen auf Gueltigkeit pruefen
if(!$this->validate())
return false;
if($this->new) //Wenn new true ist dann ein INSERT absetzen ansonsten ein UPDATE
{
$qry = 'BEGIN;INSERT INTO testtool.tbl_pruefling (studiengang_kz, idnachweis, registriert, prestudent_id, semester) VALUES('.
@@ -113,7 +113,7 @@ class pruefling extends basis_db
$this->db_add_param($this->semester).");";
}
else
{
{
$qry = 'UPDATE testtool.tbl_pruefling SET'.
' studiengang_kz='.$this->db_add_param($this->studiengang_kz, FHC_INTEGER).','.
' idnachweis='.$this->db_add_param($this->idnachweis).','.
@@ -122,7 +122,7 @@ class pruefling extends basis_db
' prestudent_id='.$this->db_add_param($this->prestudent_id, FHC_INTEGER).
" WHERE pruefling_id=".$this->db_add_param($this->pruefling_id, FHC_INTEGER, false).";";
}
if($this->db_query($qry))
{
if($this->new)
@@ -136,7 +136,7 @@ class pruefling extends basis_db
$this->db_query('COMMIT;');
return true;
}
else
else
{
$this->db_query('ROLLBACK;');
$this->errormsg = 'Fehler beim Lesen der Sequence';
@@ -150,19 +150,19 @@ class pruefling extends basis_db
return false;
}
}
else
else
{
return true;
}
}
else
{
else
{
$this->db_query('ROLLBACK');
$this->errormsg = 'Fehler beim Speichern der Frage';
return false;
}
}
/**
* Laedt einen Puefling anhand der Prestudent_id
*
@@ -172,7 +172,7 @@ class pruefling extends basis_db
public function getPruefling($prestudent_id)
{
$qry = "SELECT * FROM testtool.tbl_pruefling WHERE prestudent_id=".$this->db_add_param($prestudent_id, FHC_INTEGER);
if($this->db_query($qry))
{
if($row = $this->db_fetch_object())
@@ -185,21 +185,21 @@ class pruefling extends basis_db
$this->semester = $row->semester;
return true;
}
else
else
{
$this->errormsg = "Kein Eintrag gefunden";
return false;
}
}
}
else
else
{
$this->errormsg = "Fehler beim Laden";
return false;
}
}
}
/**
* Ermittelt den aktuellen Level (schwierigkeitsgrad der Frage)
* Ermittelt den aktuellen Level (schwierigkeitsgrad der Frage)
* des Prueflings fuer das uebergebene Gebiet
*
* @param $pruefling_id
@@ -208,17 +208,17 @@ class pruefling extends basis_db
public function getPrueflingLevel($pruefling_id, $gebiet_id)
{
$gebiet = new gebiet($gebiet_id);
//wenn Levelsystem fuer dieses Gebiet aktiviert ist
if($gebiet->level_start!='')
{
//Maximal und Minimal Level fuer dieses Gebiet ermitteln
$max_level = 0;
$min_level = 0;
$qry = "SELECT max(level) as max, min(level) as min FROM testtool.tbl_frage
$qry = "SELECT max(level) as max, min(level) as min FROM testtool.tbl_frage
WHERE gebiet_id=".$this->db_add_param($gebiet_id, FHC_INTEGER);
if($this->db_query($qry))
{
if($row = $this->db_fetch_object())
@@ -226,24 +226,24 @@ class pruefling extends basis_db
$max_level = $row->max;
$min_level = $row->min;
}
else
else
{
$this->errormsg = 'unbekannter Fehler in getPrueflingLevel';
return false;
}
}
else
else
{
$this->errormsg = 'Fehler beim Ermitteln des Pruefling-Levels';
return false;
}
//alle bisherigen Antworten fuer dieses Gebiet holen
$qry = "SELECT
tbl_vorschlag.punkte
FROM
testtool.tbl_pruefling_frage
JOIN testtool.tbl_vorschlag USING(frage_id)
FROM
testtool.tbl_pruefling_frage
JOIN testtool.tbl_vorschlag USING(frage_id)
JOIN testtool.tbl_antwort USING(vorschlag_id)
JOIN testtool.tbl_frage USING(frage_id)
WHERE
@@ -251,7 +251,7 @@ class pruefling extends basis_db
tbl_pruefling_frage.pruefling_id=".$this->db_add_param($pruefling_id, FHC_INTEGER)." AND
tbl_antwort.pruefling_id = tbl_pruefling_frage.pruefling_id
ORDER BY tbl_pruefling_frage.nummer ASC";
$aktueller_level=$gebiet->level_start;
$anzahl_richtig=0;
$anzahl_falsch=0;
@@ -265,13 +265,13 @@ class pruefling extends basis_db
$anzahl_richtig++;
$anzahl_falsch=0;
}
else
else
{
//wenn die Frage falsch beantwortet wurde dann falsch-zaehler erhoehen
$anzahl_richtig=0;
$anzahl_falsch++;
}
//wenn einer der Zaehler das Sprunglevel erreicht hat, dann
//in ein anderes Level springen
if($anzahl_richtig==$gebiet->level_sprung_auf)
@@ -286,54 +286,60 @@ class pruefling extends basis_db
$anzahl_richtig=0;
$anzahl_falsch=0;
}
//aktueller level darf nicht kleiner/groesser als der minimal/maximal Level sein
if($aktueller_level<$min_level)
$aktueller_level=$min_level;
if($aktueller_level>$max_level)
$aktueller_level=$max_level;
}
return $aktueller_level;
}
else
else
{
$this->errormsg = 'Fehler bei einer Abfrage';
return false;
}
}
else
else
return -1;
}
/**
* Berechnet das Reihungstestergebnis fuer einen Prestudenten
*
* @param $prestudent_id
* @return Endpunkte des Reihungstests
*/
public function getReihungstestErgebnis($prestudent_id)
public function getReihungstestErgebnis($prestudent_id, $punkte=false)
{
$qry = "SELECT * FROM testtool.vw_auswertung
$qry = "SELECT * FROM testtool.vw_auswertung
WHERE prestudent_id=".$this->db_add_param($prestudent_id, FHC_INTEGER);
$ergebnis=0;
if($this->db_query($qry))
{
while($row = $this->db_fetch_object())
{
//wenn maxpunkte ueberschritten wurde -> 100%
if($row->punkte>=$row->maxpunkte)
{
$prozent=100;
$row->punkte = $row->maxpunkte;
}
else
$prozent = ($row->punkte/$row->maxpunkte)*100;
$ergebnis+=$prozent*$row->gewicht;
if($punkte)
$ergebnis +=$row->punkte;
else
$ergebnis+=$prozent*$row->gewicht;
}
return $ergebnis;
}
else
else
{
$this->errormsg = 'Fehler bei einer Abfrage';
return false;
+14 -9
View File
@@ -227,7 +227,7 @@ class reihungstest extends basis_db
'studiensemester_kurzbz='.$this->db_add_param($this->studiensemester_kurzbz).' '.
'WHERE reihungstest_id='.$this->db_add_param($this->reihungstest_id, FHC_INTEGER, false).';';
}
if($this->db_query($qry))
{
if($this->new)
@@ -277,11 +277,11 @@ class reihungstest extends basis_db
if ($studiensemester_kurzbz!=null)
$qry .=" AND studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz, FHC_STRING, false);
if ($order!=null)
$qry .=" ORDER BY ".$order;
$qry.= ";";
if($this->db_query($qry))
@@ -326,12 +326,16 @@ class reihungstest extends basis_db
*/
public function getZukuenftige($include_id, $studiengang_kz)
{
$qry = "SELECT *, '1' as sortierung,(SELECT upper(typ || kurzbz) FROM public.tbl_studiengang WHERE studiengang_kz=tbl_reihungstest.studiengang_kz) as stg FROM public.tbl_reihungstest WHERE datum>=now()-'1 days'::interval AND studiengang_kz=".$this->db_add_param($studiengang_kz)."
$qry = "
SELECT *, (SELECT count(*) FROM public.tbl_prestudent WHERE reihungstest_id=a.reihungstest_id) as angemeldete_teilnehmer
FROM (
SELECT *, '1' as sortierung,(SELECT upper(typ || kurzbz) FROM public.tbl_studiengang WHERE studiengang_kz=tbl_reihungstest.studiengang_kz) as stg FROM public.tbl_reihungstest WHERE datum>=now()-'1 days'::interval AND studiengang_kz=".$this->db_add_param($studiengang_kz)."
UNION
SELECT *, '2' as sortierung,(SELECT upper(typ || kurzbz) FROM public.tbl_studiengang WHERE studiengang_kz=tbl_reihungstest.studiengang_kz) as stg FROM public.tbl_reihungstest WHERE datum>=now()-'1 days'::interval AND studiengang_kz!=".$this->db_add_param($studiengang_kz)."
UNION
SELECT *, '0' as sortierung,(SELECT upper(typ || kurzbz) FROM public.tbl_studiengang WHERE studiengang_kz=tbl_reihungstest.studiengang_kz) as stg FROM public.tbl_reihungstest WHERE reihungstest_id=".$this->db_add_param($include_id)."
ORDER BY sortierung, stg, datum";
ORDER BY sortierung, stg, datum
) a";
if($this->db_query($qry))
{
@@ -354,6 +358,7 @@ class reihungstest extends basis_db
$obj->oeffentlich = $this->db_parse_bool($row->oeffentlich);
$obj->freigeschaltet = $this->db_parse_bool($row->freigeschaltet);
$obj->studiensemester_kurzbz =$row->studiensemester_kurzbz;
$obj->angemeldete_teilnehmer = $row->angemeldete_teilnehmer;
$this->result[] = $obj;
}
@@ -416,17 +421,17 @@ class reihungstest extends basis_db
return $obj->anzahl;
}
public function delete($reihungstest_id)
{
$qry = "DELETE from public.tbl_reihungstest WHERE reihungstest_id=".$this->db_add_param($reihungstest_id);
if(!$this->db_query($qry))
{
$this->errormsg = 'Fehler beim Löschen der Daten';
return false;
}
return true;
}
}
Regular → Executable
+149 -111
View File
@@ -17,7 +17,7 @@
*
* Authors: Karl Burkhart <burkhart@technikum-wien.at>.
*/
require_once(dirname(__FILE__).'/basis_db.class.php');
class ressource extends basis_db
@@ -31,13 +31,13 @@ class ressource extends basis_db
public $beschreibung; //string
public $mitarbeiter_uid; //string
public $student_uid; //string
public $betriebsmittel_id; //integer
public $firma_id; //integer
public $betriebsmittel_id; //integer
public $firma_id; //integer
public $insertamum; //timestamp
public $insertvon; //string
public $updateamum; //timestamp
public $updatevon; //string
// zwischentabelle projekt_ressource
public $projekt_ressource_id;
public $projektphase_id;
@@ -53,7 +53,7 @@ class ressource extends basis_db
{
parent::__construct();
if($ressource_id != null)
if($ressource_id != null)
$this->load($ressource_id);
}
@@ -69,9 +69,9 @@ class ressource extends basis_db
$this->errormsg = 'Ressource_id muss eine gueltige Zahl sein';
return false;
}
$qry = "SELECT * FROM fue.tbl_ressource WHERE ressource_id=".$this->db_add_param($ressource_id, FHC_INTEGER);
if($this->db_query($qry))
{
if($row = $this->db_fetch_object())
@@ -86,16 +86,17 @@ class ressource extends basis_db
$this->insertamum = $row->insertamum;
$this->insertvon = $row->insertvon;
$this->updateamum = $row->updateamum;
$this->updatevon = $row->updatevon;
$this->updatevon = $row->updatevon;
$this->funktion_kurzbz = $row->funktion_kurzbz;
return true;
}
else
else
{
$this->errormsg = 'Datensatz wurde nicht gefunden';
return false;
}
}
else
else
{
$this->errormsg = 'Fehler beim Laden der Daten';
return false;
@@ -104,21 +105,21 @@ class ressource extends basis_db
/**
* Laedt alle Ressourcen
* @param $projekt_kurzbz, wenn null -> werden alle ressourcen geladen
* @param $projekt_kurzbz, wenn null -> werden alle ressourcen geladen
* @return true wenn ok, false im Fehlerfall
*/
public function getAllRessourcen()
{
$qry = "SELECT * FROM fue.tbl_ressource order by bezeichnung";
$this->result=array();
if($this->db_query($qry))
{
while($row = $this->db_fetch_object())
{
$obj = new ressource();
$obj->ressource_id = $row->ressource_id;
$obj->bezeichnung = $row->bezeichnung;
$obj->beschreibung = $row->beschreibung;
@@ -129,39 +130,39 @@ class ressource extends basis_db
$obj->insertamum = $row->insertamum;
$obj->insertvon = $row->insertvon;
$obj->updateamum = $row->updateamum;
$obj->updatevon = $row->updatevon;
$obj->updatevon = $row->updatevon;
$this->result[] = $obj;
}
//var_dump($this->result);
return true;
}
else
else
{
$this->errormsg = 'Fehler beim Laden der Daten';
return false;
}
}
/**
*
*
* Lädt alle Ressourcen zu einem Projekt
* @param $project_kurzbz
* @return true wenn ok, false im Fehlerfall
*/
public function getProjectRessourcen($project_kurzbz)
{
$qry = "SELECT ressource.*, project.projekt_ressource_id, project.aufwand FROM fue.tbl_ressource as ressource
JOIN fue.tbl_projekt_ressource project ON(project.ressource_id = ressource.ressource_id)
$qry = "SELECT ressource.*, project.projekt_ressource_id, project.aufwand, project.funktion_kurzbz FROM fue.tbl_ressource as ressource
JOIN fue.tbl_projekt_ressource project ON(project.ressource_id = ressource.ressource_id)
WHERE project.projekt_kurzbz =".$this->db_add_param($project_kurzbz).";";
$this->result=array();
if($this->db_query($qry))
{
while($row = $this->db_fetch_object())
{
$obj = new ressource();
$obj->ressource_id = $row->ressource_id;
$obj->bezeichnung = $row->bezeichnung;
$obj->beschreibung = $row->beschreibung;
@@ -173,41 +174,77 @@ class ressource extends basis_db
$obj->insertvon = $row->insertvon;
$obj->updateamum = $row->updateamum;
$obj->updatevon = $row->updatevon;
$obj->aufwand = $row->aufwand;
$obj->aufwand = $row->aufwand;
$obj->funktion_kurzbz = $row->funktion_kurzbz;
$obj->projekt_ressource_id= $row->projekt_ressource_id;
$this->result[] = $obj;
}
//var_dump($this->result);
return true;
}
else
else
{
$this->errormsg = 'Fehler beim Laden der Daten';
return false;
}
}
/**
*
*
* Lädt die Projektressource
* @param $project_ressource_id
* @return true wenn ok, false im Fehlerfall
*/
public function getSingleProjektRessource($projekt_ressource_id)
{
$qry = "select * from fue.tbl_projekt_ressource where projekt_ressource_id = ".$this->db_add_param($projekt_ressource_id);
$this->result=array();
if($this->db_query($qry))
{
if($row = $this->db_fetch_object())
{
$this->ressource_id = $row->ressource_id;
$this->beschreibung = $row->beschreibung;
$this->aufwand = $row->aufwand;
$this->funktion_kurzbz = $row->funktion_kurzbz;
$this->projekt_ressource_id= $row->projekt_ressource_id;
$this->projekt_kurzbz = $row->projekt_kurzbz;
$this->projektphase_id = $row->projektphase_id;
return true;
}
//var_dump($this->result);
return true;
}
else
{
$this->errormsg = 'Fehler beim Laden der Daten';
return false;
}
}
/**
*
* Lädt alle Ressourcen zu einer Phase
* @param $project_kurzbz
* @return true wenn ok, false im Fehlerfall
*/
public function getPhaseRessourcen($projektphase_id)
{
$qry = "SELECT ressource.*, project.aufwand, project.projekt_ressource_id FROM fue.tbl_ressource as ressource
JOIN fue.tbl_projekt_ressource project ON(project.ressource_id = ressource.ressource_id)
$qry = "SELECT ressource.*, project.aufwand, project.funktion_kurzbz, project.projekt_ressource_id FROM fue.tbl_ressource as ressource
JOIN fue.tbl_projekt_ressource project ON(project.ressource_id = ressource.ressource_id)
WHERE project.projektphase_id =".$this->db_add_param($projektphase_id, FHC_INTEGER).";";
$this->result=array();
if($this->db_query($qry))
{
while($row = $this->db_fetch_object())
{
$obj = new ressource();
$obj->ressource_id = $row->ressource_id;
$obj->bezeichnung = $row->bezeichnung;
$obj->beschreibung = $row->beschreibung;
@@ -219,20 +256,21 @@ class ressource extends basis_db
$obj->insertvon = $row->insertvon;
$obj->updateamum = $row->updateamum;
$obj->updatevon = $row->updatevon;
$obj->aufwand = $row->aufwand;
$obj->aufwand = $row->aufwand;
$obj->funktion_kurzbz = $row->funktion_kurzbz;
$obj->projekt_ressource_id = $row->projekt_ressource_id;
$this->result[] = $obj;
}
//var_dump($this->result);
return true;
}
else
else
{
$this->errormsg = 'Fehler beim Laden der Daten';
return false;
}
}
/**
* Speichert den aktuellen Datensatz in die Datenbank
* Wenn $neu auf true gesetzt ist wird ein neuer Datensatz angelegt
@@ -240,14 +278,14 @@ class ressource extends basis_db
* @return true wenn ok, false im Fehlerfall
*/
public function saveProjektRessource($new=null)
{
{
if($new==null)
$new = $this->new;
if($new)
{
//Neuen Datensatz einfuegen
$qry='BEGIN; INSERT INTO fue.tbl_projekt_ressource (projektphase_id, projekt_kurzbz,
$qry='BEGIN; INSERT INTO fue.tbl_projekt_ressource (projektphase_id, projekt_kurzbz,
ressource_id, funktion_kurzbz, beschreibung, aufwand) VALUES ('.
$this->db_add_param($this->projektphase_id, FHC_INTEGER).', '.
$this->db_add_param($this->projekt_kurzbz).', '.
@@ -268,7 +306,7 @@ class ressource extends basis_db
'aufwand='.$this->db_add_param($this->aufwand).' '.
'WHERE projekt_ressource_id='.$this->db_add_param($this->projekt_ressource_id, FHC_INTEGER).';';
}
if($this->db_query($qry))
{
if($new)
@@ -283,21 +321,21 @@ class ressource extends basis_db
$this->db_query('COMMIT');
return true;
}
else
else
{
$this->errormsg = 'Fehler beim Auslesen der Sequence';
$this->db_query('ROLLBACK;');
return false;
}
}
else
else
{
$this->errormsg = 'Fehler beim Auslesen der Sequence';
$this->db_query('ROLLBACK;');
return false;
}
}
return true;
}
else
@@ -305,7 +343,7 @@ class ressource extends basis_db
$this->errormsg = $qry;
return false;
}
}
}
/**
* Speichert den aktuellen Datensatz in die Datenbank
@@ -314,14 +352,14 @@ class ressource extends basis_db
* @return true wenn ok, false im Fehlerfall
*/
public function save($new=null)
{
{
if($new==null)
$new = $this->new;
if($new)
{
//Neuen Datensatz einfuegen
$qry='BEGIN; INSERT INTO fue.tbl_ressource (bezeichnung, beschreibung,
$qry='BEGIN; INSERT INTO fue.tbl_ressource (bezeichnung, beschreibung,
mitarbeiter_uid, student_uid, betriebsmittel_id, firma_id, insertvon, insertamum, updatevon, updateamum) VALUES ('.
$this->db_add_param($this->bezeichnung).', '.
$this->db_add_param($this->beschreibung).', '.
@@ -346,7 +384,7 @@ class ressource extends basis_db
'updatevon='.$this->db_add_param($this->updatevon).' '.
'WHERE ressource_id='.$this->db_add_param($this->ressource_id, FHC_INTEGER).';';
}
if($this->db_query($qry))
{
if($new)
@@ -361,21 +399,21 @@ class ressource extends basis_db
$this->db_query('COMMIT');
return true;
}
else
else
{
$this->errormsg = 'Fehler beim Auslesen der Sequence';
$this->db_query('ROLLBACK;');
return false;
}
}
else
else
{
$this->errormsg = 'Fehler beim Auslesen der Sequence';
$this->db_query('ROLLBACK;');
return false;
}
}
return true;
}
else
@@ -384,8 +422,8 @@ class ressource extends basis_db
return false;
}
}
/**
* Laedt die Ressource mit der ID $ressource_id
* @param $ressource_id ID der zu ladenden Ressource
@@ -398,9 +436,9 @@ class ressource extends basis_db
$this->errormsg = 'Ressource_id muss eine gueltige Zahl sein';
return false;
}
$qry = "SELECT * FROM fue.tbl_projekt_ressource WHERE projekt_ressource_id=".$this->db_add_param($projekt_ressource_id, FHC_INTEGER);
if($this->db_query($qry))
{
if($row = $this->db_fetch_object())
@@ -414,13 +452,13 @@ class ressource extends basis_db
return true;
}
else
else
{
$this->errormsg = 'Datensatz wurde nicht gefunden';
return false;
}
}
else
else
{
$this->errormsg = 'Fehler beim Laden der Daten';
return false;
@@ -429,26 +467,26 @@ class ressource extends basis_db
/**
* Liefert die Ressourcen aller Projekte die zu einem bestimmten Datum aktiv sind
*
*
* @param $datum
*/
public function getProjektRessourceDatum($datum, $endedatum)
{
$qry = "
SELECT
SELECT
distinct
tbl_projekt_ressource.*, tbl_projekt.beginn as start, tbl_projekt.ende,
tbl_ressource.student_uid, tbl_ressource.mitarbeiter_uid, tbl_ressource.betriebsmittel_id, tbl_ressource.firma_id,
tbl_projekt_ressource.*, tbl_projekt.beginn as start, tbl_projekt.ende,
tbl_ressource.student_uid, tbl_ressource.mitarbeiter_uid, tbl_ressource.betriebsmittel_id, tbl_ressource.firma_id,
tbl_ressource.bezeichnung, tbl_ressource.beschreibung
FROM
FROM
fue.tbl_ressource
JOIN fue.tbl_projekt_ressource USING(ressource_id)
JOIN fue.tbl_projekt USING(projekt_kurzbz)
WHERE
(tbl_projekt.beginn<=".$this->db_add_param($endedatum)." OR tbl_projekt.beginn is null) AND
(tbl_projekt.ende>=".$this->db_add_param($datum)." OR tbl_projekt.ende is null)
(tbl_projekt.beginn<=".$this->db_add_param($endedatum)." OR tbl_projekt.beginn is null) AND
(tbl_projekt.ende>=".$this->db_add_param($datum)." OR tbl_projekt.ende is null)
ORDER BY bezeichnung";
if($result = $this->db_query($qry))
{
while($row = $this->db_fetch_object($result))
@@ -459,7 +497,7 @@ class ressource extends basis_db
$obj->projektphase_id = $row->projektphase_id;
$obj->start = $row->start;
$obj->ende = $row->ende;
$obj->ressource_id = $row->ressource_id;
$obj->student_uid = $row->student_uid;
$obj->mitarbeiter_uid = $row->mitarbeiter_uid;
@@ -468,39 +506,39 @@ class ressource extends basis_db
$obj->bezeichnung = $row->bezeichnung;
$obj->beschreibung = $row->beschreibung;
$obj->aufwand = $row->aufwand;
$this->result[] = $obj;
}
}
}
}
/**
* Liefert die Ressourcen aller Projektphasen die zu einem bestimmten Datum aktiv sind
*
*
* @param $datum
*/
public function getProjektphaseRessourceDatum($datum, $endedatum, $projekt_kurzbz=null)
{
$qry = "
SELECT
SELECT
distinct
tbl_projekt_ressource.*, tbl_projektphase.start, tbl_projektphase.ende,
tbl_ressource.student_uid, tbl_ressource.mitarbeiter_uid, tbl_ressource.betriebsmittel_id, tbl_ressource.firma_id,
tbl_projekt_ressource.*, tbl_projektphase.start, tbl_projektphase.ende,
tbl_ressource.student_uid, tbl_ressource.mitarbeiter_uid, tbl_ressource.betriebsmittel_id, tbl_ressource.firma_id,
tbl_ressource.bezeichnung, tbl_ressource.beschreibung
FROM
FROM
fue.tbl_ressource
JOIN fue.tbl_projekt_ressource USING(ressource_id)
JOIN fue.tbl_projektphase USING(projektphase_id)
WHERE
(tbl_projektphase.start<=".$this->db_add_param($endedatum)." OR tbl_projektphase.start is null) AND
(tbl_projektphase.ende>=".$this->db_add_param($datum)." OR tbl_projektphase.ende is null)
(tbl_projektphase.start<=".$this->db_add_param($endedatum)." OR tbl_projektphase.start is null) AND
(tbl_projektphase.ende>=".$this->db_add_param($datum)." OR tbl_projektphase.ende is null)
";
if(!is_null($projekt_kurzbz))
{
$qry.=" AND tbl_projektphase.projekt_kurzbz=".$this->db_add_param($projekt_kurzbz);
}
$qry.=" ORDER BY tbl_ressource.bezeichnung";
if($result = $this->db_query($qry))
{
while($row = $this->db_fetch_object($result))
@@ -511,7 +549,7 @@ class ressource extends basis_db
$obj->projektphase_id = $row->projektphase_id;
$obj->start = $row->start;
$obj->ende = $row->ende;
$obj->ressource_id = $row->ressource_id;
$obj->student_uid = $row->student_uid;
$obj->mitarbeiter_uid = $row->mitarbeiter_uid;
@@ -520,7 +558,7 @@ class ressource extends basis_db
$obj->bezeichnung = $row->bezeichnung;
$obj->beschreibung = $row->beschreibung;
$obj->aufwand = $row->aufwand;
$this->result[] = $obj;
}
}
@@ -530,7 +568,7 @@ class ressource extends basis_db
return false;
}
}
/**
* Liefert die Ressourcen aller Projektphasen die zu einem bestimmten Datum aktiv sind
*
@@ -555,12 +593,12 @@ class ressource extends basis_db
((tbl_projektphase.ende>=".$this->db_add_param($datum)." OR tbl_projektphase.ende is null) AND
(tbl_projekttask.ende>=".$this->db_add_param($datum)." OR tbl_projekttask.ende is null))
";
if(!is_null($projekt_kurzbz))
{
$qry.=" AND projekt_kurzbz=".$this->db_add_param($projekt_kurzbz);
}
if($result = $this->db_query($qry))
{
while($row = $this->db_fetch_object($result))
@@ -571,7 +609,7 @@ class ressource extends basis_db
$obj->projektphase_id = $row->projektphase_id;
$obj->start = $row->start;
$obj->ende = $row->ende;
$obj->ressource_id = $row->ressource_id;
$obj->student_uid = $row->student_uid;
$obj->mitarbeiter_uid = $row->mitarbeiter_uid;
@@ -580,7 +618,7 @@ class ressource extends basis_db
$obj->bezeichnung = $row->bezeichnung;
$obj->beschreibung = $row->beschreibung;
$obj->aufwand = $row->aufwand;
$this->result[] = $obj;
}
}
@@ -590,64 +628,64 @@ class ressource extends basis_db
return false;
}
}
/**
* Löscht eine Ressource zu Projekt Zuordnung
* @param type $ressource_id
* @param type $projekt_kurzbz
* @return boolean
* @return boolean
*/
public function deleteFromProjekt($ressource_id, $projekt_kurzbz)
{
if($ressource_id == '' || !is_numeric($ressource_id))
{
$this->errormsg = 'Ressource Id ist keine gültige Zahl';
return false;
$this->errormsg = 'Ressource Id ist keine gültige Zahl';
return false;
}
$qry="DELETE FROM fue.tbl_projekt_ressource WHERE ressource_id =".$this->db_add_param($ressource_id, FHC_INTEGER, false)."
AND projekt_kurzbz=".$this->db_add_param($projekt_kurzbz, FHC_STRING, false).';';
$qry="DELETE FROM fue.tbl_projekt_ressource WHERE ressource_id =".$this->db_add_param($ressource_id, FHC_INTEGER, false)."
AND projekt_kurzbz=".$this->db_add_param($projekt_kurzbz, FHC_STRING, false).';';
if($this->db_query($qry))
{
return true;
{
return true;
}
else
{
$this->errormsg = 'Fehler beim Löschen der Daten';
return false;
$this->errormsg = 'Fehler beim Löschen der Daten';
return false;
}
}
/**
* Löscht eine Ressource zu Phase Zuordnung
* @param type $ressource_id
* @param type $projekt_kurzbz
* @return boolean
* @return boolean
*/
public function deleteFromPhase($ressource_id, $projektphase_id)
{
if($ressource_id == '' || !is_numeric($ressource_id))
{
$this->errormsg = 'Ressource Id ist keine gültige Zahl';
return false;
$this->errormsg = 'Ressource Id ist keine gültige Zahl';
return false;
}
if($projektphase_id == '' || !is_numeric($projektphase_id))
{
$this->errormsg = 'Ressource Id ist keine gültige Zahl';
return false;
}
$qry="DELETE FROM fue.tbl_projekt_ressource WHERE ressource_id =".$this->db_add_param($ressource_id, FHC_INTEGER, false)."
AND projektphase_id=".$this->db_add_param($projektphase_id, FHC_INTEGER, false).';';
$this->errormsg = 'Ressource Id ist keine gültige Zahl';
return false;
}
$qry="DELETE FROM fue.tbl_projekt_ressource WHERE ressource_id =".$this->db_add_param($ressource_id, FHC_INTEGER, false)."
AND projektphase_id=".$this->db_add_param($projektphase_id, FHC_INTEGER, false).';';
if($this->db_query($qry))
return true;
return true;
else
{
$this->errormsg = 'Fehler beim Löschen der Daten';
return false;
$this->errormsg = 'Fehler beim Löschen der Daten';
return false;
}
}
}
+1 -1
View File
@@ -283,7 +283,7 @@ class Securimage
* The character set to use for generating the captcha code
* @var string
*/
public $charset = 'ABCDEFGHKLMNPRSTUVWYZabcdefghklmnprstuvwyz23456789';
public $charset = 'ABCDEFGHKLMNPRSTUVWYZabcdefghkmnprstuvwyz23456789';
/**
* How long in seconds a captcha remains valid, after this time it will not be accepted
* @var unknown_type
+13 -22
View File
@@ -182,27 +182,18 @@ class service extends basis_db
else
$zeit = "";
$qry = " SELECT service_id,oe_kurzbz,bezeichnung,beschreibung,ext_id,content_id, sum(a.anzahl) AS anzahl FROM (
SELECT
tbl_service.*,
(SELECT COUNT (tbl_zeitaufzeichnung.service_id) FROM campus.tbl_zeitaufzeichnung
WHERE tbl_service.service_id=tbl_zeitaufzeichnung.service_id AND tbl_zeitaufzeichnung.uid=".$this->db_add_param($user)."
$zeit
) AS anzahl
FROM public.tbl_service
WHERE
(SELECT COUNT (tbl_zeitaufzeichnung.service_id) FROM campus.tbl_zeitaufzeichnung
WHERE tbl_service.service_id=tbl_zeitaufzeichnung.service_id AND tbl_zeitaufzeichnung.uid=".$this->db_add_param($user)."
$zeit
) > $anzahl_ereignisse
GROUP BY tbl_service.service_id,tbl_service.beschreibung,tbl_service.ext_id,tbl_service.oe_kurzbz,tbl_service.bezeichnung,tbl_service.content_id,anzahl
UNION
SELECT tbl_service.*, '0' AS anzahl
FROM public.tbl_service
) AS a
GROUP BY service_id,oe_kurzbz,bezeichnung,beschreibung,ext_id,content_id
ORDER BY anzahl DESC,bezeichnung,oe_kurzbz";
$qry = " SELECT tbl_service.*, count(tbl_zeitaufzeichnung.service_id)
FROM campus.tbl_zeitaufzeichnung
JOIN public.tbl_service USING (service_id)
WHERE tbl_zeitaufzeichnung.uid=".$this->db_add_param($user)."
$zeit
GROUP BY tbl_service.service_id HAVING COUNT(*) > $anzahl_ereignisse
UNION
SELECT tbl_service.*, '0' AS anzahl
FROM public.tbl_service
ORDER BY count DESC,bezeichnung,oe_kurzbz";
if($result = $this->db_query($qry))
{
@@ -215,7 +206,7 @@ class service extends basis_db
$obj->beschreibung = $row->beschreibung;
$obj->ext_id = $row->ext_id;
$obj->oe_kurzbz = $row->oe_kurzbz;
$obj->anzahl = $row->anzahl;
$obj->anzahl = $row->count;
$obj->content_id = $row->content_id;
$this->result[] = $obj;
+317 -271
View File
@@ -1,271 +1,317 @@
<?php
/* Copyright (C) 2010 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
* Karl Burkhart <burkhart@technikum-wien.at>.
*/
/**
* Klasse Sprache
*/
require_once(dirname(__FILE__).'/basis_db.class.php');
class sprache extends basis_db
{
public $result;
public static $index_arr = array();
public $sprache; // string
public $locale;
public $index; // int, id des array index
public $content; // boolean
public $bezeichnung_arr;
/**
*
* Konstruktor
* @param Sprache die geladen werden soll (Default=null)
*/
public function __construct($sprache = null)
{
parent::__construct();
if(!is_null($sprache))
$this->load($sprache);
}
/**
*
* Lädt die Sprache
* @param $sprache die geladen werden soll
* @return true bei Erfolg, false wenn ein Fehler aufgetreten ist
*/
public function load($sprache)
{
$qry = "SELECT *,".$this->getSprachQuery('bezeichnung')." FROM public.tbl_sprache WHERE sprache=".$this->db_add_param($sprache, FHC_STRING, false).";";
if($this->db_query($qry))
{
if($row = $this->db_fetch_object())
{
$this->sprache = $row->sprache;
$this->locale = $row->locale;
$this->index = $row->index;
$this->content = $this->db_parse_bool($row->content);
$this->bezeichnung_arr=$this->parseSprachResult('bezeichnung',$row);
return true;
}
else
{
$this->errormsg = 'Sprache nicht gefunden';
return false;
}
}
else
{
$this->errormsg = "Fehler bei der Abfrage.";
return false;
}
}
/**
*
* Lädt alle verfügbaren Sprachen
* @return true bei Erfolg, false wenn ein Fehler aufgetreten ist.
*/
public function getAll($content=null)
{
$qry = "SELECT *,".$this->getSprachQuery('bezeichnung')." FROM public.tbl_sprache";
if(!is_null($content))
$qry.= " WHERE content=".$this->db_add_param($content, FHC_BOOLEAN);
$qry.=" ORDER BY sprache";
if(!$this->db_query($qry))
{
$this->errormsg ="Fehler bei der Abfrage.";
return false;
}
while($row = $this->db_fetch_object())
{
$sprache = new sprache();
$sprache->sprache = $row->sprache;
$sprache->locale = $row->locale;
$sprache->index = $row->index;
$sprache->content = $this->db_parse_bool($row->content);
$sprache->bezeichnung_arr=$this->parseSprachResult('bezeichnung',$row);
$this->result[] = $sprache;
}
return true;
}
/**
*
* Lädt das Index Array
* @return true bei Erfolg, false wenn ein Fehler aufgetreten ist.
*/
public function loadIndexArray()
{
$qry = "SELECT sprache, index FROM public.tbl_sprache WHERE index is not null ORDER BY index";
if(!$this->db_query($qry))
{
$this->errormsg ="Fehler bei der Abfrage.";
return false;
}
while($row = $this->db_fetch_object())
{
self::$index_arr[$row->sprache]=$row->index;
}
return true;
}
/**
*
* Löscht die übergebene Sprache
* @param $sprache die gelöscht werden soll
*/
public function delete($sprache)
{
$qry = "DELETE FROM public.tbl_sprache WHERE sprache = ".$this->db_add_param($sprache, FHC_STRING, false).";";
if(!$this->db_query($qry))
{
$this->errormsg = "Fehler beim löschen der Sprache aufgetreten.";
return false;
}
return true;
}
/**
*
* Liefert die Anzahl aller aktiven Sprachen zurück
* @return $anzahl der Sprachen, false im Fehlerfall
*/
public function getAnzahl()
{
$anzahl = 0;
$qry = 'SELECT count(sprache) as anzahl FROM public.tbl_sprache WHERE content = true;';
if(!$this->db_query($qry))
{
$this->errormsg = 'Fehler aufgetreten';
return false;
}
if($row = $this->db_fetch_object())
{
$anzahl = $row->anzahl;
}
return $anzahl;
}
/**
*
* Liefert die Sprache eines Index zurück
* @param $index der Sprache die gesucht wird
* @return $sprache, false im Fehlerfall
*/
public function getSpracheFromIndex($index)
{
$sprache = '';
$qry = "SELECT sprache FROM public.tbl_sprache WHERE index=".$this->db_add_param($index, FHC_INTEGER, false).";";
if(!$this->db_query($qry))
{
$this->errormsg = "Fehler aufgetreten.";
return false;
}
if($row = $this->db_fetch_object())
{
$sprache = $row->sprache;
}
return $sprache;
}
/**
* Liefert einen String mit den aufgespaltenen Elementen fuer mehrsprachige Arrays
* Der Result der Query kann dann mittels parseSprachResult wieder in ein Array umgewandelt werden
*
* @param $feldname
* @return string mit den aufgeschluesselten Arrayelementen der Sprache
*/
public function getSprachQuery($feldname)
{
$result = '';
if(!isset(self::$index_arr) || count(self::$index_arr)==0)
$this->loadIndexArray();
foreach(self::$index_arr as $sprache=>$index)
{
$result .= $feldname.'['.$index.'] as '.$feldname.'_'.$index.',';
}
return mb_substr($result,0,-1);
}
/**
* Wandelt den Result von mehrsprachigen Arrays in einer SQL Query in ein PHP Array um
*
* @param $feldname name der Datenbankspalte
* @param $row row des SQL Results
* @return array mit den Sprachen der Spalte
*/
public function parseSprachResult($feldname, $row)
{
$result = array();
if(!isset(self::$index_arr) || count(self::$index_arr)==0)
$this->getAll();
foreach(self::$index_arr as $sprache=>$index)
{
$name = $feldname.'_'.$index;
if(isset($row->$name))
$result[$sprache] = $row->$name;
else
$result[$sprache] = null;
}
return $result;
}
/**
*
* Liefert die Bezeichnung einer Sprache in der angegebenen Sprache
* @param $sprache Kurzbezeichnung der Sprache dessen Bezeichnung geladen werden soll
* @param $anzeigesprache Sprache in der die bezeichnung geladen werden soll
*/
public function getBezeichnung($sprache, $anzeigesprache)
{
$qry = "SELECT bezeichnung[(SELECT index FROM public.tbl_sprache WHERE sprache=".$this->db_add_param($anzeigesprache).")]
FROM public.tbl_sprache WHERE sprache=".$this->db_add_param($sprache);
if($result = $this->db_query($qry))
{
if($row = $this->db_fetch_object($result))
{
return $row->bezeichnung;
}
}
}
}
<?php
/* Copyright (C) 2010 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
* Karl Burkhart <burkhart@technikum-wien.at>.
*/
/**
* Klasse Sprache
*/
require_once(dirname(__FILE__).'/basis_db.class.php');
class sprache extends basis_db
{
public $result;
public static $index_arr = array();
public $sprache; // string
public $locale;
public $index; // int, id des array index
public $content; // boolean
public $bezeichnung_arr;
/**
*
* Konstruktor
* @param Sprache die geladen werden soll (Default=null)
*/
public function __construct($sprache = null)
{
parent::__construct();
if(!is_null($sprache))
$this->load($sprache);
}
/**
*
* Lädt die Sprache
* @param $sprache die geladen werden soll
* @return true bei Erfolg, false wenn ein Fehler aufgetreten ist
*/
public function load($sprache)
{
$qry = "SELECT *,".$this->getSprachQuery('bezeichnung')." FROM public.tbl_sprache WHERE sprache=".$this->db_add_param($sprache, FHC_STRING, false).";";
if($this->db_query($qry))
{
if($row = $this->db_fetch_object())
{
$this->sprache = $row->sprache;
$this->locale = $row->locale;
$this->index = $row->index;
$this->content = $this->db_parse_bool($row->content);
$this->bezeichnung_arr=$this->parseSprachResult('bezeichnung',$row);
return true;
}
else
{
$this->errormsg = 'Sprache nicht gefunden';
return false;
}
}
else
{
$this->errormsg = "Fehler bei der Abfrage.";
return false;
}
}
/**
*
* Lädt alle verfügbaren Sprachen
* @return true bei Erfolg, false wenn ein Fehler aufgetreten ist.
*/
public function getAll($content=null)
{
$qry = "SELECT *,".$this->getSprachQuery('bezeichnung')." FROM public.tbl_sprache";
if(!is_null($content))
$qry.= " WHERE content=".$this->db_add_param($content, FHC_BOOLEAN);
$qry.=" ORDER BY sprache";
if(!$this->db_query($qry))
{
$this->errormsg ="Fehler bei der Abfrage.";
return false;
}
while($row = $this->db_fetch_object())
{
$sprache = new sprache();
$sprache->sprache = $row->sprache;
$sprache->locale = $row->locale;
$sprache->index = $row->index;
$sprache->content = $this->db_parse_bool($row->content);
$sprache->bezeichnung_arr=$this->parseSprachResult('bezeichnung',$row);
$this->result[] = $sprache;
}
return true;
}
/**
*
* Lädt das Index Array
* @return true bei Erfolg, false wenn ein Fehler aufgetreten ist.
*/
public function loadIndexArray()
{
$qry = "SELECT sprache, index FROM public.tbl_sprache WHERE index is not null ORDER BY index";
if(!$this->db_query($qry))
{
$this->errormsg ="Fehler bei der Abfrage.";
return false;
}
while($row = $this->db_fetch_object())
{
self::$index_arr[$row->sprache]=$row->index;
}
return true;
}
/**
*
* Löscht die übergebene Sprache
* @param $sprache die gelöscht werden soll
*/
public function delete($sprache)
{
$qry = "DELETE FROM public.tbl_sprache WHERE sprache = ".$this->db_add_param($sprache, FHC_STRING, false).";";
if(!$this->db_query($qry))
{
$this->errormsg = "Fehler beim löschen der Sprache aufgetreten.";
return false;
}
return true;
}
/**
*
* Liefert die Anzahl aller aktiven Sprachen zurück
* @return $anzahl der Sprachen, false im Fehlerfall
*/
public function getAnzahl()
{
$anzahl = 0;
$qry = 'SELECT count(sprache) as anzahl FROM public.tbl_sprache WHERE content = true;';
if(!$this->db_query($qry))
{
$this->errormsg = 'Fehler aufgetreten';
return false;
}
if($row = $this->db_fetch_object())
{
$anzahl = $row->anzahl;
}
return $anzahl;
}
/**
*
* Liefert die Sprache eines Index zurück
* @param $index der Sprache die gesucht wird
* @return $sprache, false im Fehlerfall
*/
public function getSpracheFromIndex($index)
{
$sprache = '';
$qry = "SELECT sprache FROM public.tbl_sprache WHERE index=".$this->db_add_param($index, FHC_INTEGER, false).";";
if(!$this->db_query($qry))
{
$this->errormsg = "Fehler aufgetreten.";
return false;
}
if($row = $this->db_fetch_object())
{
$sprache = $row->sprache;
}
return $sprache;
}
/**
*
* Liefert den Index einer Sprache zurück
* @param $sprache der Sprache die gesucht wird
* @return $index, false im Fehlerfall
*/
public function getIndexFromSprache($sprache)
{
$index = false;
$qry = "SELECT * FROM public.tbl_sprache WHERE sprache=".$this->db_add_param($sprache).";";
if(!$this->db_query($qry))
{
$this->errormsg = "Fehler aufgetreten.";
return false;
}
if($row = $this->db_fetch_object())
{
$index = $row->index;
}
return $index;
}
public function getAllIndexesSorted()
{
$languages = array();
if(!isset($this->result))
$this->getAll(true);
foreach($this->result as $s)
{
$languages[$s->index] = $s->sprache;
}
ksort($languages);
//lücken im sprachenarray füllen
for($i = 1; $i<=max(array_keys($languages));$i++)
{
if(!isset($languages[$i]))
$languages[$i] = false;
}
return $languages;
}
/**
* Liefert einen String mit den aufgespaltenen Elementen fuer mehrsprachige Arrays
* Der Result der Query kann dann mittels parseSprachResult wieder in ein Array umgewandelt werden
*
* @param $feldname
* @return string mit den aufgeschluesselten Arrayelementen der Sprache
*/
public function getSprachQuery($feldname)
{
$result = '';
if(!isset(self::$index_arr) || count(self::$index_arr)==0)
$this->loadIndexArray();
foreach(self::$index_arr as $sprache=>$index)
{
$result .= $feldname.'['.$index.'] as '.$feldname.'_'.$index.',';
}
return mb_substr($result,0,-1);
}
/**
* Wandelt den Result von mehrsprachigen Arrays in einer SQL Query in ein PHP Array um
*
* @param $feldname name der Datenbankspalte
* @param $row row des SQL Results
* @return array mit den Sprachen der Spalte
*/
public function parseSprachResult($feldname, $row)
{
$result = array();
if(!isset(self::$index_arr) || count(self::$index_arr)==0)
$this->getAll();
foreach(self::$index_arr as $sprache=>$index)
{
$name = $feldname.'_'.$index;
if(isset($row->$name))
$result[$sprache] = $row->$name;
else
$result[$sprache] = null;
}
return $result;
}
/**
*
* Liefert die Bezeichnung einer Sprache in der angegebenen Sprache
* @param $sprache Kurzbezeichnung der Sprache dessen Bezeichnung geladen werden soll
* @param $anzeigesprache Sprache in der die bezeichnung geladen werden soll
*/
public function getBezeichnung($sprache, $anzeigesprache)
{
$qry = "SELECT bezeichnung[(SELECT index FROM public.tbl_sprache WHERE sprache=".$this->db_add_param($anzeigesprache).")]
FROM public.tbl_sprache WHERE sprache=".$this->db_add_param($sprache);
if($result = $this->db_query($qry))
{
if($row = $this->db_fetch_object($result))
{
return $row->bezeichnung;
}
}
}
}
Regular → Executable
+5 -3
View File
@@ -152,6 +152,7 @@ class studiengang extends basis_db
$this->bezeichnung_arr['German'] = $this->bezeichnung;
$this->bezeichnung_arr['English'] = $this->english;
$this->bezeichnung_arr['Italian'] = $this->bezeichnung;
}
}
else
@@ -241,6 +242,7 @@ class studiengang extends basis_db
. 'FROM lehre.vw_studienplan '
. 'LEFT JOIN bis.tbl_lgartcode USING (lgartcode) '
. 'WHERE onlinebewerbung IS TRUE '
. 'AND aktiv IS TRUE '
. 'ORDER BY typ, studiengangbezeichnung, tbl_lgartcode.bezeichnung ASC';
if(!$result = $this->db_query($qry))
@@ -280,13 +282,13 @@ class studiengang extends basis_db
*/
public function getOrgForm($studiengang_kz)
{
$qry = 'SELECT distinct orgform_kurzbz '
$qry = 'SELECT distinct tbl_studienplan.orgform_kurzbz '
. 'FROM lehre.tbl_studienordnung '
. 'JOIN lehre.tbl_studienplan '
. 'USING (studienordnung_id) '
. 'WHERE aktiv '
. 'AND studiengang_kz = ' . $this->db_add_param($studiengang_kz, FHC_INTEGER)
. ' AND orgform_kurzbz!='. $this->db_add_param('DDP');
. ' AND tbl_studienplan.orgform_kurzbz!='. $this->db_add_param('DDP');
if($result = $this->db_query($qry))
{
@@ -891,7 +893,7 @@ class studiengang extends basis_db
$obj->bezeichnung = $row->bezeichnung;
$obj->beantragung = $this->db_parse_bool($row->beantragung);
$obj->lgart_biscode = $row->lgart_biscode;
$this->result[]= $obj;
}
return true;
+167
View File
@@ -0,0 +1,167 @@
<?php
/* Copyright (C) 2009 fhcomplete.org
*
* 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: Stefan Puraner <stefan.puraner@technikum-wien.at>,
*/
require_once('basis_db.class.php');
class studienjahr extends basis_db
{
public $new; // boolean
public $result = array(); // studienjahr Objekt
//Tabellenspalten
public $studienjahr_kurzbz;// varchar(16)
public $bezeichnung; // varchar(64)
/**
* Konstruktor - Laedt optional ein StSem
*
* @param $studienjahr_kurzbz StSem das geladen werden soll (default=null)
*/
public function __construct($studienjahr_kurzbz=null)
{
parent::__construct();
if($studienjahr_kurzbz != null)
$this->load($studienjahr_kurzbz);
}
/**
* Laedt das Studienjahr mit der uebergebenen Kurzbz
*
* @param $studienjahr_kurzbz Stsem das geladen werden soll
*/
public function load($studienjahr_kurzbz)
{
$qry = "SELECT * FROM public.tbl_studienjahr WHERE studienjahr_kurzbz=".$this->db_add_param($studienjahr_kurzbz);
if(!$this->db_query($qry))
{
$this->errormsg = 'Fehler beim Lesen des Studienjahrs';
return false;
}
if($row = $this->db_fetch_object())
{
$this->studienjahr_kurzbz = $row->studienjahr_kurzbz;
$this->bezeichnung = $row->bezeichnung;
}
else
{
$this->errormsg = "Es ist kein Studienjahr mit dieser Kurzbezeichung vorhanden";
return false;
}
return true;
}
/**
* Prueft die Variablen vor dem Speichern
* auf Gueltigkeit.
*
* @return true wenn ok, false im Fehlerfall
*/
private function validate()
{
if(mb_strlen($this->studienjahr_kurzbz)>16)
{
$this->errormsg = 'Studienjahr Kurzbezeichnung darf nicht laenger als 16 Zeichen sein';
return false;
}
if(mb_strlen($this->bezeichnung)>64)
{
$this->errormsg = 'Studienjahr Bezeichnung darf nicht laenger als 64 Zeichen sein';
return false;
}
if($this->studienjahr_kurzbz=='')
{
$this->errormsg = 'Es muss eine Kurzbezeichnung eingegeben werden';
return false;
}
return true;
}
/**
* Speichert das Studienjahr in die Datenbank
* Wenn $new auf true gesetzt ist wird ein neuer Datensatz
* angelegt, ansonsten der Datensatz upgedated
*
* @return true wenn erfolgreich, false im Fehlerfall
*/
public function save()
{
//Variablen auf Gueltigkeit pruefen
if(!$this->validate())
return false;
if($this->new)
{
$qry = "INSERT INTO public.tbl_studienjahr (studienjahr_kurzbz, bezeichnung)
VALUES(".$this->db_add_param($this->studienjahr_kurzbz).",".
$this->db_add_param($this->bezeichnung).');';
}
else
{
$qry = 'UPDATE public.tbl_studienjahr SET'.
' start='.$this->db_add_param($this->start).','.
' ende='.$this->db_add_param($this->ende).
" WHERE studienjahr_kurzbz=".$this->db_add_param($this->studienjahr_kurzbz);
}
if($this->db_query($qry))
{
//Log schreiben
return true;
}
else
{
$this->errormsg = 'Fehler beim Speichern des Studienjahrs';
return false;
}
}
/**
* Liefert alle Studienjahr
*
* @return true wenn ok, sonst false
*/
public function getAll()
{
$qry = "SELECT * FROM public.tbl_studienjahr ORDER BY studienjahr_kurzbz;";
if($this->db_query($qry))
{
while($row = $this->db_fetch_object())
{
$stsem_obj = new studienjahr();
$stsem_obj->studienjahr_kurzbz = $row->studienjahr_kurzbz;
$stsem_obj->bezeichnung = $row->bezeichnung;
$this->result[] = $stsem_obj;
}
return true;
}
else
{
$this->errormsg = 'Fehler beim Laden der Studienjahr';
return false;
}
}
}
?>
+143 -72
View File
@@ -1,24 +1,24 @@
<?php
/*
* studienordnung.class.php
*
*
* Copyright 2013 fhcomplete.org
*
*
* 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., 51 Franklin Street, Fifth Floor, Boston,
* MA 02110-1301, USA.
*
*
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>
* Andreas Österreicher <andreas.oesterreicher@technikum-wien.at>
@@ -44,6 +44,9 @@ class studienordnung extends basis_db
protected $studiengangbezeichnung_englisch; // varchar (256)
protected $studiengangkurzbzlang; // varchar (256)
protected $akadgrad_id; // integer (FK akadgrad)
protected $status_kurzbz; //varchar(32)
protected $standort_id;
protected $orgform_kurzbz;
protected $updateamum; // timestamp
protected $updatevon; // varchar
protected $insertamum; // timestamp
@@ -56,7 +59,7 @@ class studienordnung extends basis_db
{
parent::__construct();
}
public function __set($name,$value)
{
switch ($name)
@@ -75,7 +78,7 @@ class studienordnung extends basis_db
{
return $this->$name;
}
/**
* Laedt die Studienordnung mit der ID $studienordnung_id
* @param $studienordnung_id ID der zu ladenden Studienordnung
@@ -112,6 +115,8 @@ class studienordnung extends basis_db
$this->studiengangbezeichnung_englisch = $row->studiengangbezeichnung_englisch;
$this->studiengangkurzbzlang = $row->studiengangkurzbzlang;
$this->akadgrad_id = $row->akadgrad_id;
$this->status_kurzbz = $row->status_kurzbz;
$this->standort_id = $row->standort_id;
$this->updateamum = $row->updateamum;
$this->updatevon = $row->updatevon;
$this->insertamum = $row->insertamum;
@@ -144,22 +149,16 @@ class studienordnung extends basis_db
if(is_null($studiensemester_kurzbz))
{
$qry = 'SELECT
*
FROM
lehre.tbl_studienordnung
WHERE
studiengang_kz='.$this->db_add_param($studiengang_kz, FHC_INTEGER, false);
$qry = 'SELECT sto.*, s.bezeichnung as status_bezeichnung FROM lehre.tbl_studienordnung sto
JOIN lehre.tbl_studienordnungstatus s USING(status_kurzbz)
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);
$qry = 'SELECT sto.*, s.bezeichnung as status_bezeichnung, sem.* FROM lehre.tbl_studienordnung sto
JOIN lehre.tbl_studienordnungstatus s USING(status_kurzbz)
LEFT JOIN lehre.tbl_studienordnung_semester sem 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);
@@ -188,6 +187,9 @@ class studienordnung extends basis_db
$obj->studiengangbezeichnung_englisch = $row->studiengangbezeichnung_englisch;
$obj->studiengangkurzbzlang = $row->studiengangkurzbzlang;
$obj->akadgrad_id = $row->akadgrad_id;
$obj->status_kurzbz = $row->status_kurzbz;
$obj->status_bezeichnung = $row->status_bezeichnung;
$obj->standort_id = $row->standort_id;
$obj->updateamum = $row->updateamum;
$obj->updatevon = $row->updatevon;
$obj->insertamum = $row->insertamum;
@@ -269,7 +271,7 @@ class studienordnung extends basis_db
$this->errormsg = '';
return true;
}
/**
* Speichert den aktuellen Datensatz in die Datenbank
* @return true wenn ok, false im Fehlerfall
@@ -283,7 +285,7 @@ class studienordnung extends basis_db
if($this->new)
{
//Neuen Datensatz einfuegen
$qry='BEGIN;INSERT INTO lehre.tbl_studienordnung (studiengang_kz, version, bezeichnung, ects, gueltigvon, gueltigbis, studiengangbezeichnung, studiengangbezeichnung_englisch, studiengangkurzbzlang, akadgrad_id, insertamum, insertvon) VALUES ('.
$qry='BEGIN;INSERT INTO lehre.tbl_studienordnung (studiengang_kz, version, bezeichnung, ects, gueltigvon, gueltigbis, studiengangbezeichnung, studiengangbezeichnung_englisch, studiengangkurzbzlang, akadgrad_id, standort_id, status_kurzbz, insertamum, insertvon) VALUES ('.
$this->db_add_param($this->studiengang_kz, FHC_INTEGER).', '.
$this->db_add_param($this->version).', '.
$this->db_add_param($this->bezeichnung).', '.
@@ -294,6 +296,8 @@ class studienordnung extends basis_db
$this->db_add_param($this->studiengangbezeichnung_englisch).', '.
$this->db_add_param($this->studiengangkurzbzlang).', '.
$this->db_add_param($this->akadgrad_id,FHC_INTEGER).', '.
$this->db_add_param($this->standort_id,FHC_INTEGER).', '.
$this->db_add_param($this->status_kurzbz).', '.
' now(), '.
$this->db_add_param($this->insertvon).');';
}
@@ -316,11 +320,13 @@ class studienordnung extends basis_db
' studiengangbezeichnung_englisch='.$this->db_add_param($this->studiengangbezeichnung_englisch).', '.
' studiengangkurzbzlang='.$this->db_add_param($this->studiengangkurzbzlang).','.
' akadgrad_id='.$this->db_add_param($this->akadgrad_id, FHC_INTEGER).', '.
' standort_id='.$this->db_add_param($this->standort_id, FHC_INTEGER).', '.
' status_kurzbz='.$this->db_add_param($this->status_kurzbz).', '.
' updateamum= now(), '.
' updatevon='.$this->db_add_param($this->updatevon).' '.
' WHERE studienordnung_id='.$this->db_add_param($this->studienordnung_id, FHC_INTEGER, false).';';
}
if($this->db_query($qry))
{
if($this->new)
@@ -410,6 +416,8 @@ class studienordnung extends basis_db
$obj->studiengangbezeichnung_englisch = $row->studiengangbezeichnung_englisch;
$obj->studiengangkurzbzlang = $row->studiengangkurzbzlang;
$obj->akadgrad_id = $row->akadgrad_id;
$obj->standort_id = $row->standort_id;
$obj->status_kurzbz = $row->status_kurzbz;
$obj->updateamum = $row->updateamum;
$obj->updatevon = $row->updatevon;
$obj->insertamum = $row->insertamum;
@@ -433,6 +441,8 @@ class studienordnung extends basis_db
$obj->studiengangbezeichnung_englisch = $this->studiengangbezeichnung_englisch;
$obj->studiengangkurzbzlang = $this->studiengangkurzbzlang;
$obj->akadgrad_id = $this->akadgrad_id;
$obj->standort_id = $this->standort_id;
$obj->status_kurzbz = $this->status_kurzbz;
$obj->updateamum = $this->updateamum;
$obj->updatevon = $this->updatevon;
$obj->insertamum = $this->insertamum;
@@ -441,7 +451,7 @@ class studienordnung extends basis_db
}
return $data;
}
/**
* speichert die Semesterzuordnung für die Studieordnung
* @param int $studienordnung_id Die ID der Studienordnung
@@ -455,21 +465,21 @@ class studienordnung extends basis_db
$this->errormsg = 'studienordnung_id muss eine gueltige Zahl sein';
return false;
}
if(!is_string($studiensemester_kurzbz) || strlen($studiensemester_kurzbz)!=6)
{
$this->errormsg = 'studiensemester_kurzbz muss ein String mit 6 Zeichen sein';
return false;
}
if(!is_numeric($ausbildungssemester))
{
$this->errormsg = 'ausbildungssemester muss eine gueltige Zahl sein';
return false;
}
//lvar_dump($this->isZuordnungGuelitg($studiensemester_kurzbz));
//Prüfung ob Zuordnung im Gültigkeitszeitraum der Studienordnung
//if(($studiensemester_kurzbz >= $this->gueltigvon && $studiensemester_kurzbz <= $this->gueltigbis) || ($studiensemester_kurzbz >= $this->gueltigvon && $this->gueltigbis == null))
if($this->isZuordnungGuelitg($studiensemester_kurzbz))
@@ -502,7 +512,7 @@ class studienordnung extends basis_db
}
return true;
}
/**
* prüft ob die Semesterzuordnung für die Studieordnung bereits vorhanden ist
* @param int $studienordnung_id Die ID der Studienordnung
@@ -516,24 +526,24 @@ class studienordnung extends basis_db
$this->errormsg = 'studienordnung_id muss eine gueltige Zahl sein';
return false;
}
if(!is_string($studiensemester_kurzbz) || strlen($studiensemester_kurzbz)!=6)
{
$this->errormsg = 'studiensemester_kurzbz muss ein String mit 6 Zeichen sein';
return false;
}
if(!is_numeric($ausbildungssemester))
{
$this->errormsg = 'ausbildungssemester muss eine gueltige Zahl sein';
return false;
}
$qry = 'SELECT * FROM lehre.tbl_studienordnung_semester WHERE
studienordnung_id='.$this->db_add_param($studienordnung_id).' AND
studiensemester_kurzbz='.$this->db_add_param($studiensemester_kurzbz).' AND
$qry = 'SELECT * FROM lehre.tbl_studienordnung_semester WHERE
studienordnung_id='.$this->db_add_param($studienordnung_id).' AND
studiensemester_kurzbz='.$this->db_add_param($studiensemester_kurzbz).' AND
semester='.$this->db_add_param($ausbildungssemester).';';
if($this->db_query($qry))
{
if($this->db_num_rows() == 1)
@@ -548,7 +558,7 @@ class studienordnung extends basis_db
}
return false;
}
/**
* prüft ob die Studienordnung aktiv ist
* @param int $studienordnung_id Die ID der Studienordnung
@@ -563,9 +573,9 @@ class studienordnung extends basis_db
return false;
}
$qry = 'SELECT * FROM lehre.tbl_studienordnung_semester WHERE
$qry = 'SELECT * FROM lehre.tbl_studienordnung_semester WHERE
studienordnung_id='.$this->db_add_param($studienordnung_id).';';
if($this->db_query($qry))
{
if($this->db_num_rows() >= 1)
@@ -576,7 +586,7 @@ class studienordnung extends basis_db
}
return false;
}
/**
* lädt alle zugeordneten Semester einer Studienordnung
* @param int $studienordnung_id ID der Studienordnung
@@ -588,24 +598,24 @@ class studienordnung extends basis_db
$this->errormsg = 'studienordnung_id muss eine gueltige Zahl sein';
return false;
}
/* $qry = 'SELECT DISTINCT studiensemester_kurzbz, MAX(semester)
FROM lehre.tbl_studienordnung_semester
FROM lehre.tbl_studienordnung_semester
WHERE studienordnung_id='.$this->db_add_param($studienordnung_id).' GROUP BY studiensemester_kurzbz ORDER BY MAX(semester);';
*/
$qry = 'SELECT DISTINCT studiensemester_kurzbz, tbl_studiensemester.start
FROM
lehre.tbl_studienordnung_semester
FROM
lehre.tbl_studienordnung_semester
JOIN public.tbl_studiensemester USING(studiensemester_kurzbz)
WHERE studienordnung_id='.$this->db_add_param($studienordnung_id).'
ORDER BY tbl_studiensemester.start, studiensemester_kurzbz';
if(!$this->db_query($qry))
{
$this->errormsg = 'Fehler bei einer Datenbankabfrage';
return false;
}
$data = array();
while($row = $this->db_fetch_object())
{
@@ -614,20 +624,20 @@ class studienordnung extends basis_db
}
return $data;
}
public function loadAusbildungsemesterFromStudiensemester($studienordnung_id, $studiensemester_kurzbz)
{
$qry = 'SELECT semester
FROM lehre.tbl_studienordnung_semester
WHERE studienordnung_id='.$this->db_add_param($studienordnung_id).' AND
studiensemester_kurzbz='.$this->db_add_param($studiensemester_kurzbz).'
$qry = 'SELECT semester
FROM lehre.tbl_studienordnung_semester
WHERE studienordnung_id='.$this->db_add_param($studienordnung_id).' AND
studiensemester_kurzbz='.$this->db_add_param($studiensemester_kurzbz).'
ORDER BY semester;';
if(!$this->db_query($qry))
{
return false;
}
$data = array();
while($row = $this->db_fetch_object())
{
@@ -635,7 +645,7 @@ class studienordnung extends basis_db
}
return $data;
}
public function deleteSemesterZuordnung($studienordnung_id, $studiensemester_kurzbz, $studiensemester=NULL)
{
if(!is_numeric($studienordnung_id))
@@ -643,21 +653,21 @@ class studienordnung extends basis_db
$this->errormsg = 'studienordnung_id muss eine gueltige Zahl sein';
return false;
}
if(!is_string($studiensemester_kurzbz) || strlen($studiensemester_kurzbz)!=6)
{
$this->errormsg = 'studiensemester_kurzbz muss ein String mit 6 Zeichen sein';
return false;
}
$qry = 'DELETE FROM lehre.tbl_studienordnung_semester
WHERE studienordnung_id='.$this->db_add_param($studienordnung_id).' AND
$qry = 'DELETE FROM lehre.tbl_studienordnung_semester
WHERE studienordnung_id='.$this->db_add_param($studienordnung_id).' AND
studiensemester_kurzbz='.$this->db_add_param($studiensemester_kurzbz).'';
if($studiensemester !== null)
$qry.=' AND semester='.$this->db_add_param ($studiensemester).'';
$qry.=';';
if($this->db_query($qry))
{
return true;
@@ -668,7 +678,7 @@ class studienordnung extends basis_db
return false;
}
}
protected function isZuordnungGuelitg($studiensemester_kurzbz)
{
$studiensemester = new studiensemester();
@@ -676,12 +686,12 @@ class studienordnung extends basis_db
$semGueltigVon = $studiensemester->begin->start;
//$semGueltigBis = $studiensemester->ende->ende;
$studiensemester = new studiensemester();
$studiensemester->getTimestamp($this->gueltigvon);
$stoGueltigVon = $studiensemester->begin->start;
if($this->gueltigbis != null)
{
$studiensemester = new studiensemester();
@@ -698,7 +708,7 @@ class studienordnung extends basis_db
}
return false;
}
/**
* Laedt die Studienordnung zu der uebergebenen studienplan_id
* @param $studienplan_id der zu ladenden Studienordnung
@@ -735,6 +745,8 @@ class studienordnung extends basis_db
$this->studiengangbezeichnung_englisch = $row->studiengangbezeichnung_englisch;
$this->studiengangkurzbzlang = $row->studiengangkurzbzlang;
$this->akadgrad_id = $row->akadgrad_id;
$this->standort_id = $row->standort_id;
$this->status_kurzbz = $row->status_kurzbz;
$this->updateamum = $row->updateamum;
$this->updatevon = $row->updatevon;
$this->insertamum = $row->insertamum;
@@ -748,7 +760,7 @@ class studienordnung extends basis_db
$this->new=false;
return true;
}
/**
* Laedt alle Studienordnungen zu einem Studiengang der uebergeben wird, die noch nicht aktiv sind
* @param $studiengang_kz Kennzahl des Studiengangs
@@ -765,13 +777,13 @@ class studienordnung extends basis_db
return false;
}
$qry = 'SELECT
*
FROM
lehre.tbl_studienordnung
WHERE
$qry = 'SELECT
*
FROM
lehre.tbl_studienordnung
WHERE
studiengang_kz='.$this->db_add_param($studiengang_kz, FHC_INTEGER, false);
if(!$this->db_query($qry))
{
$this->errormsg = 'Fehler bei einer Datenbankabfrage';
@@ -793,6 +805,8 @@ class studienordnung extends basis_db
$obj->studiengangbezeichnung_englisch = $row->studiengangbezeichnung_englisch;
$obj->studiengangkurzbzlang = $row->studiengangkurzbzlang;
$obj->akadgrad_id = $row->akadgrad_id;
$this->standort_id = $row->standort_id;
$this->status_kurzbz = $row->status_kurzbz;
$obj->updateamum = $row->updateamum;
$obj->updatevon = $row->updatevon;
$obj->insertamum = $row->insertamum;
@@ -800,7 +814,7 @@ class studienordnung extends basis_db
$obj->new = false;
$this->result[] = $obj;
}
foreach($this->result as $key => $obj)
{
if($this->isAktiv($obj->studienordnung_id))
@@ -809,8 +823,65 @@ class studienordnung extends basis_db
}
}
array_values($this->result);
return true;
}
public function loadStudienordnungWithStatus($studiengang_kz, $status_kurzbz)
{
$qry = "SELECT sto.*, s.bezeichnung as status_bezeichnung "
. "FROM lehre.tbl_studienordnung sto "
. "JOIN lehre.tbl_studienordnungstatus s USING(status_kurzbz) "
. "WHERE status_kurzbz=" . $this->db_add_param($status_kurzbz, FHC_STRING) . ""
. " AND studiengang_kz=" . $this->db_add_param($studiengang_kz, FHC_INTEGER) . ";";
if (!$this->db_query($qry))
{
$this->errormsg = 'Fehler bei einer Datenbankabfrage';
return false;
}
while ($row = $this->db_fetch_object())
{
$obj = new studienordnung();
$obj->studienordnung_id = $row->studienordnung_id;
$obj->studiengang_kz = $row->studiengang_kz;
$obj->version = $row->version;
$obj->bezeichnung = $row->bezeichnung;
$obj->ects = $row->ects;
$obj->gueltigvon = $row->gueltigvon;
$obj->gueltigbis = $row->gueltigbis;
$obj->studiengangbezeichnung = $row->studiengangbezeichnung;
$obj->studiengangbezeichnung_englisch = $row->studiengangbezeichnung_englisch;
$obj->studiengangkurzbzlang = $row->studiengangkurzbzlang;
$obj->akadgrad_id = $row->akadgrad_id;
$obj->status_kurzbz = $row->status_kurzbz;
$obj->status_bezeichnung = $row->status_bezeichnung;
$obj->begruendung = json_decode($row->begruendung);
$obj->studiengangsart = $row->studiengangsart;
$obj->standort_id = $row->standort_id;
$obj->updateamum = $row->updateamum;
$obj->updatevon = $row->updatevon;
$obj->insertamum = $row->insertamum;
$obj->insertvon = $row->insertvon;
$obj->new = false;
$this->result[] = $obj;
}
return true;
}
public function changeState($studienordnung_id, $status_kurzbz)
{
$qry = "UPDATE lehre.tbl_studienordnung SET status_kurzbz=" . $this->db_add_param($status_kurzbz)
. " WHERE studienordnung_id=" . $this->db_add_param($studienordnung_id) . ";";
if (!$this->db_query($qry))
{
$this->errormsg = "Status konnte nicht geändert werden.";
return false;
}
return true;
}
}
?>
File diff suppressed because it is too large Load Diff
+191 -93
View File
@@ -1,24 +1,24 @@
<?php
/*
* studienplatz.class.php
*
*
* Copyright 2013 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 oferr
* 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., 51 Franklin Street, Fifth Floor, Boston,
* MA 02110-1301, USA.
*
*
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>
* Werner Masik <werner@gefi.at>
@@ -29,35 +29,39 @@ require_once(__DIR__ .'/functions.inc.php');
class studienplatz extends basis_db
{
/** @var $new boolean */
private $new = true;
private $new = true;
/** @var DB-Result */
private $result;
/** @var object */
public $studienplatz = array();
public $studienplatz = array();
//Tabellenspalten
/** @var integer */
private $studienplatz_id;
private $studienplatz_id;
/** @var integer */
private $studiengang_kz;
private $studiengang_kz;
/** @var string */
private $orgform_kurzbz;
private $orgform_kurzbz;
/** @var string */
private $studiensemester_kurzbz;
/** @var integer */
private $ausbildungssemester;
private $ausbildungssemester;
/** @var integer */
private $gpz;
private $gpz;
/** @var integer */
private $npz;
private $npz;
/** @var timestamp */
private $updateamum;
private $updateamum;
/** @var string */
private $updatevon;
private $updatevon;
/** @var timestamp */
private $insertamum;
private $insertamum;
/** @var string */
private $insertvon;
private $insertvon;
/** @var integer */
private $apz;
/** @var integer */
private $studienplan_id;
/**
* Konstruktor
@@ -66,7 +70,7 @@ class studienplatz extends basis_db
public function __construct($studienplatz_id=null)
{
parent::__construct();
if(!is_null($studienplatz_id))
$this->load($studienplatz_id);
}
@@ -76,9 +80,10 @@ class studienplatz extends basis_db
switch ($name)
{
case 'gpz':
case 'npz':
case 'ausbildungssemester':
case 'npz':
case 'ausbildungssemester':
case 'studienplatz_id':
case 'studienplan_id':
if ($value != null && !is_numeric($value))
throw new Exception("Attribute $name must be numeric! ($value)");
$this->$name=$value;
@@ -92,8 +97,8 @@ class studienplatz extends basis_db
{
return $this->$name;
}
/**
* Laedt einzelnen Studienplatz der ID $studienplatz_id
* @param integer $studienplatz_id ID des zu ladenden Studienplatzes
@@ -126,7 +131,6 @@ class studienplatz extends basis_db
$this->errormsg = 'Es ist kein Datensatz mit dieser ID vorhanden';
return false;
}
return true;
}
@@ -135,31 +139,33 @@ class studienplatz extends basis_db
* @param type $target
* @param type $row
*/
private function mapRow($target,$row) {
$target->studienplatz_id = $row->studienplatz_id;
$target->studiengang_kz = $row->studiengang_kz;
$target->orgform_kurzbz = $row->orgform_kurzbz;
$target->studiensemester_kurzbz = $row->studiensemester_kurzbz;
$target->ausbildungssemester = $row->ausbildungssemester;
$target->gpz = $row->gpz;
$target->npz = $row->npz;
$target->updateamum = $row->updateamum;
$target->updatevon = $row->updatevon;
$target->insertamum = $row->insertamum;
$target->insertvon = $row->insertvon;
$target->new = false;
private function mapRow($target,$row) {
$target->studienplatz_id = $row->studienplatz_id;
$target->studiengang_kz = $row->studiengang_kz;
$target->orgform_kurzbz = $row->orgform_kurzbz;
$target->studiensemester_kurzbz = $row->studiensemester_kurzbz;
$target->ausbildungssemester = $row->ausbildungssemester;
$target->gpz = $row->gpz;
$target->npz = $row->npz;
$target->updateamum = $row->updateamum;
$target->updatevon = $row->updatevon;
$target->insertamum = $row->insertamum;
$target->insertvon = $row->insertvon;
$target->apz = $row->apz;
$target->studienplan_id = $row->studienplan_id;
$target->new = false;
}
/**
* Laedt alle Studienplaetze zu einem Studiengang und Semester. Ergebnis
* steht in result, wobei es nur einen Datensatz geben kann, wenn
* keinAusbildungssemester = true ist.
* @param integer $studiengang_kz
* @param integer $studiengang_kz
* @param string studiensemester_kurzbz
* @param string orgform_kurzbz
* @param boolean Ausbildungssemester ist optional. Wenn true werden
* nur Datensätze geladen wo das Ausbildungssemester null ist. Wenn
* false werden alle geladen wo ein Ausbildungssemester eingetragen
* nur Datensätze geladen wo das Ausbildungssemester null ist. Wenn
* false werden alle geladen wo ein Ausbildungssemester eingetragen
* ist.
* @return true wenn ok, false im Fehlerfall
*/
@@ -179,22 +185,63 @@ class studienplatz extends basis_db
//" AND art=".$this->db_add_param($art, FHC_STRING, false).
" AND orgform_kurzbz=".$this->db_add_param($orgform, FHC_STRING, false).
" AND ausbildungssemester ".($keinAusbildungssemester ? 'is null':'is not null');
$this->result = array();
if(!$this->db_query($qry))
{
$this->result = array();
if(!$this->db_query($qry))
{
return false;
}
while($row = $this->db_fetch_object())
{
$rec = new studienplatz();
$this->mapRow($rec, $row);
$this->result[] = $rec;
}
$rec = new studienplatz();
$this->mapRow($rec, $row);
$this->result[] = $rec;
}
return true;
}
/**
* Laedt alle Studienplaetze zu einem Studiengang und Semester. Ergebnis
* steht in result, wobei es nur einen Datensatz geben kann, wenn
* keinAusbildungssemester = true ist.
* @param integer $studiengang_kz
* @param string studiensemester_kurzbz
* @param boolean Ausbildungssemester ist optional. Wenn true werden
* nur Datensätze geladen wo das Ausbildungssemester null ist. Wenn
* false werden alle geladen wo ein Ausbildungssemester eingetragen
* ist.
* @return true wenn ok, false im Fehlerfall
*/
public function load_studiengang_studiensemester($studiengang_kz, $studiensemester_kurzbz, $keinAusbildungssemester = true)
{
//Pruefen ob $studiengang_kz eine gueltige Zahl ist
if(!is_numeric($studiengang_kz) || $studiengang_kz == '')
{
$this->errormsg = 'studiengang_kz muss eine gültige Zahl sein';
return false;
}
//Lesen der Daten aus der Datenbank
$qry = "SELECT * FROM lehre.tbl_studienplatz RIGHT JOIN lehre.tbl_studienplan using(studienplan_id) WHERE studiengang_kz=".
$this->db_add_param($studiengang_kz, FHC_INTEGER, false).
" AND studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz, FHC_STRING, false).
" AND ausbildungssemester ".($keinAusbildungssemester ? 'is null':'is not null').
" AND studienplan_id IS NOT NULL;";
$this->result = array();
if(!$this->db_query($qry))
{
return false;
}
while($row = $this->db_fetch_object())
{
$this->result[] = $row;
}
return true;
}
/**
* Liefert Array mit GPZ und NPZ für die FÖBis relevanten Orgformen (BB, VZ, VBB).
* Dient als Ersatz für load_studiengang_studiensemester_orgform weil hiermit
@@ -207,10 +254,10 @@ class studienplatz extends basis_db
{
// Semesterliste für where klausel erzeugen:
$startSemester= 'WS'.substr($studienjahr,0,4);
$startSemester= 'WS'.substr($studienjahr,0,4);
$semesterList = generateSemesterList($startSemester,($zeitraum*2)-1);
$semesterList_comma_separated = "'".join("','",$semesterList)."'";
//Lesen der Daten aus der Datenbank
$qry = "SELECT studiensemester_kurzbz,studiengang_kz,
sum(case when orgform_kurzbz='VZ' then npz else 0 end) as npz_vz,
@@ -220,30 +267,69 @@ class studienplatz extends basis_db
sum(case when orgform_kurzbz='VZ' then gpz else 0 end) as gpz_vz,
sum(case when orgform_kurzbz='BB' then gpz else 0 end) as gpz_bb,
sum(case when orgform_kurzbz='VBB' then gpz else 0 end) as gpz_vbb,
sum(gpz) as gpz_gesamt
FROM lehre.tbl_studienplatz
WHERE ausbildungssemester is null and studiensemester_kurzbz IN ($semesterList_comma_separated)
group by studiensemester_kurzbz,studiengang_kz";
$this->result = array();
if(!$this->db_query($qry))
{
sum(gpz) as gpz_gesamt
FROM lehre.tbl_studienplatz
WHERE ausbildungssemester is null and studiensemester_kurzbz IN ($semesterList_comma_separated)
group by studiensemester_kurzbz,studiengang_kz";
$this->result = array();
if(!$this->db_query($qry))
{
return false;
}
$result = array();
while($row = $this->db_fetch_object())
{
$result[$row->studiensemester_kurzbz][$row->studiengang_kz]['BB']['NPZ'] = $row->npz_bb;
$result[$row->studiensemester_kurzbz][$row->studiengang_kz]['VZ']['NPZ'] = $row->npz_vz;
$result[$row->studiensemester_kurzbz][$row->studiengang_kz]['VBB']['NPZ'] = $row->npz_vbb;
$result[$row->studiensemester_kurzbz][$row->studiengang_kz]['gesamt']['NPZ'] = $row->npz_gesamt;
$result[$row->studiensemester_kurzbz][$row->studiengang_kz]['BB']['GPZ'] = $row->gpz_bb;
$result[$row->studiensemester_kurzbz][$row->studiengang_kz]['VZ']['GPZ'] = $row->gpz_vz;
$result[$row->studiensemester_kurzbz][$row->studiengang_kz]['VBB']['GPZ'] = $row->gpz_vbb;
$result[$row->studiensemester_kurzbz][$row->studiengang_kz]['gesamt']['GPZ'] = $row->gpz_gesamt;
}
$result[$row->studiensemester_kurzbz][$row->studiengang_kz]['BB']['NPZ'] = $row->npz_bb;
$result[$row->studiensemester_kurzbz][$row->studiengang_kz]['VZ']['NPZ'] = $row->npz_vz;
$result[$row->studiensemester_kurzbz][$row->studiengang_kz]['VBB']['NPZ'] = $row->npz_vbb;
$result[$row->studiensemester_kurzbz][$row->studiengang_kz]['gesamt']['NPZ'] = $row->npz_gesamt;
$result[$row->studiensemester_kurzbz][$row->studiengang_kz]['BB']['GPZ'] = $row->gpz_bb;
$result[$row->studiensemester_kurzbz][$row->studiengang_kz]['VZ']['GPZ'] = $row->gpz_vz;
$result[$row->studiensemester_kurzbz][$row->studiengang_kz]['VBB']['GPZ'] = $row->gpz_vbb;
$result[$row->studiensemester_kurzbz][$row->studiengang_kz]['gesamt']['GPZ'] = $row->gpz_gesamt;
}
return $result;
}
/**
* Liefert alle Studienplätze eines Studiengangs und Semesters
* @param string $stg_kz z.B: -16
* @param string $studiensemester_kurzbz z.B: WS2015
* @return boolean|array false bei Fehler
*/
public function getFromStgKzAndStudsem($stg_kz, $studiensemester_kurzbz)
{
if(!is_numeric($stg_kz))
{
$this->errormsg='stg_kz muss eine gueltige Zahl sein';
return false;
}
if($studiensemester_kurzbz == "")
{
$this->errormsg='Es wurde kein gueltiges studiensemester_kurzbz uerbergeben';
return false;
}
//Lesen der Daten aus der Datenbank
$qry = "SELECT * FROM lehre.tbl_studienplatz
JOIN public.tbl_studiengang using(studiengang_kz)
WHERE studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz)."
AND studiengang_kz=".$this->db_add_param($stg_kz, FHC_INTEGER);
if($this->db_query($qry))
{
$result = array();
while($row = $this->db_fetch_object())
{
$result[] = $row;
}
return $result;
}
return false;
}
/**
* Prueft die Variablen auf Gueltigkeit
@@ -260,7 +346,7 @@ class studienplatz extends basis_db
{
$this->errormsg='studiengang_kz enthaelt ungueltige Zeichen';
return false;
}
}
if(mb_strlen($this->orgform_kurzbz)>3)
{
$this->errormsg = 'orgform_kurzbz darf nicht länger als 3 Zeichen sein';
@@ -284,11 +370,19 @@ class studienplatz extends basis_db
{
$this->errormsg='npz enthaelt ungueltige Zeichen';
return false;
}if(!is_numeric($this->apz) && $this->apz!='')
{
$this->errormsg='apz enthaelt ungueltige Zeichen';
return false;
}if(!is_numeric($this->studienplan_id) && $this->studienplan_id!='')
{
$this->errormsg='studienplan_id enthaelt ungueltige Zeichen';
return false;
}
$this->errormsg = '';
return true;
}
/**
* Speichert den aktuellen Datensatz in die Datenbank
* Wenn $neu auf true gesetzt ist wird ein neuer Datensatz angelegt
@@ -305,20 +399,22 @@ class studienplatz extends basis_db
{
//Neuen Datensatz einfuegen
$qry='BEGIN;INSERT INTO lehre.tbl_studienplatz ('.
'studiengang_kz, orgform_kurzbz, studiensemester_kurzbz, '.
'ausbildungssemester, gpz, npz, insertamum, insertvon, '.
'updateamum, updatevon) VALUES('.
$this->db_add_param($this->studiengang_kz, FHC_INTEGER).', '.
$this->db_add_param($this->orgform_kurzbz).', '.
$this->db_add_param($this->studiensemester_kurzbz).', '.
$this->db_add_param($this->ausbildungssemester, FHC_INTEGER).', '.
//$this->db_add_param($this->art).', '.
$this->db_add_param($this->gpz, FHC_INTEGER).', '.
$this->db_add_param($this->npz, FHC_INTEGER).', '.
'now(), '.
$this->db_add_param($this->insertvon).', '.
'now(), '.
$this->db_add_param($this->updatevon).');';
'studiengang_kz, orgform_kurzbz, studiensemester_kurzbz, '.
'ausbildungssemester, gpz, npz, apz, studienplan_id insertamum, insertvon, '.
'updateamum, updatevon) VALUES('.
$this->db_add_param($this->studiengang_kz, FHC_INTEGER).', '.
$this->db_add_param($this->orgform_kurzbz).', '.
$this->db_add_param($this->studiensemester_kurzbz).', '.
$this->db_add_param($this->ausbildungssemester, FHC_INTEGER).', '.
//$this->db_add_param($this->art).', '.
$this->db_add_param($this->gpz, FHC_INTEGER).', '.
$this->db_add_param($this->npz, FHC_INTEGER).', '.
$this->db_add_param($this->apz, FHC_INTEGER).', '.
$this->db_add_param($this->studienplan_id, FHC_INTEGER).', '.
'now(), '.
$this->db_add_param($this->insertvon).', '.
'now(), '.
$this->db_add_param($this->updatevon).');';
}
else
{
@@ -328,19 +424,21 @@ class studienplatz extends basis_db
$this->errormsg = 'studienplatz_id muss eine gueltige Zahl sein';
return false;
}
$qry='UPDATE lehre.tbl_studienplatz SET'.
$qry='UPDATE lehre.tbl_studienplatz SET'.
' studiengang_kz='.$this->db_add_param($this->studiengang_kz).', '.
' orgform_kurzbz='.$this->db_add_param($this->orgform_kurzbz).', '.
' studiensemester_kurzbz='.$this->db_add_param($this->studiensemester_kurzbz).', '.
' ausbildungssemester='.$this->db_add_param($this->ausbildungssemester).', '.
' ausbildungssemester='.$this->db_add_param($this->ausbildungssemester).', '.
//' art='.$this->db_add_param($this->art).', '.
' gpz='.$this->db_add_param($this->gpz).', '.
' npz='.$this->db_add_param($this->npz).', '.
' updateamum= now(), '.
' updatevon='.$this->db_add_param($this->updatevon).
' WHERE studienplatz_id='.$this->db_add_param($this->studienplatz_id, FHC_INTEGER, false).';';
' gpz='.$this->db_add_param($this->gpz).', '.
' npz='.$this->db_add_param($this->npz).', '.
' apz='.$this->db_add_param($this->apz, FHC_INTEGER).', '.
' studienplan_id='.$this->db_add_param($this->studienplan_id, FHC_INTEGER).', '.
' updateamum= now(), '.
' updatevon='.$this->db_add_param($this->updatevon).
' WHERE studienplatz_id='.$this->db_add_param($this->studienplatz_id, FHC_INTEGER, false).';';
}
if($this->db_query($qry))
{
if($this->new)
@@ -371,7 +469,7 @@ class studienplatz extends basis_db
}
else
{
{
return false;
}
return $this->studienplatz_id;
@@ -399,7 +497,7 @@ class studienplatz extends basis_db
return true;
}
else
{
{
return false;
}
}
+6 -6
View File
@@ -426,7 +426,7 @@ else
$pdf->MultiCell(0,15,$stgtyp.'studiengang '.$studiengang);
$pdf->SetFont('Arial','',14);
$pdf->SetXY(30,150-$titelabzug);
$pdf->MultiCell(0,15,'Beurteilung Master Thesis - 1. BegutachterIn');
$pdf->MultiCell(0,15,'Beurteilung Masterarbeit - 1. BegutachterIn');
$qry_beu="SELECT * FROM public.tbl_person JOIN public.tbl_benutzer using(person_id) WHERE uid=".$db->db_add_param($getuid).";";
if(!$erg_beu=@$db->db_query($qry_beu))
@@ -490,7 +490,7 @@ else
$maxX +=291;
$pdf->SetFont('Arial','',9);
$pdf->SetXY($maxX,$maxY);
$pdf->MultiCell(159,18,'Datum (dd.MM.yyyy): ',1,'L',0);
$pdf->MultiCell(159,18,'Datum (dd.mm.yyyy): ',1,'L',0);
$pdf->SetXY($maxX,$maxY);
$pdf->MultiCell(159,18,date('d.m.Y',mktime(0, 0, 0, date("m") , date("d"), date("Y"))),1,'R',0);
@@ -561,7 +561,7 @@ else
$pdf->MultiCell(170,12,mb_convert_encoding("Form / Stil\n\n\n\n\n\n\n",'ISO-8859-15','UTF-8'),0,'L',0);
$pdf->SetXY($maxX,$maxY);
$pdf->SetFont('Arial','',9);
$pdf->MultiCell(170,12,mb_convert_encoding("\n - Hat die Master Thesis eine klare\n Struktur, entspricht der Vorgabe\n - Wird einwandfrei zitiert?\n - Abbildungen?\n - Sprache: benötigte Überarbeitung\n seitens seitens des Betreuers/ der\n Betreuerin",'ISO-8859-15','UTF-8'),0,'L',0);
$pdf->MultiCell(170,12,mb_convert_encoding("\n - Hat die Masterarbeit eine klare\n Struktur, entspricht der Vorgabe\n - Wird einwandfrei zitiert?\n - Abbildungen?\n - Sprache: benötigte Überarbeitung\n seitens seitens des Betreuers/ der\n Betreuerin",'ISO-8859-15','UTF-8'),0,'L',0);
$pdf->SetXY($maxX,$maxY);
$pdf->MultiCell(170,100,'',1,'L',0);
$maxX +=170;
@@ -660,7 +660,7 @@ else
$maxY=$pdf->GetY();
$maxX=160;
$pdf->SetXY($maxX,$maxY);
$pdf->MultiCell(240,12,'1 Gruppe < 50 Punkte => Master Thesis gesamt negativ','LB','L',0);
$pdf->MultiCell(240,12,'1 Gruppe < 50 Punkte => Masterarbeit gesamt negativ','LB','L',0);
$maxX +=240;
$pdf->SetXY($maxX,$maxY);
$pdf->MultiCell(80,12,'','TB','C',0);
@@ -981,7 +981,7 @@ else
if($row->projekttyp_kurzbz!='Bachelor')
{
$htmlstr .= '<td width="40%"><b>Form / Stil</b><br>
Hat die Diplomarbeit eine klare Stuktur, entspricht der Vorgabe?<br>
Hat die Masterarbeit eine klare Stuktur, entspricht der Vorgabe?<br>
Wird einwandfrei zitiert?<br>
Abbildungen<br>
Sprache: ben&ouml;tigte &Uuml;berarbeitungen seitens der Betreuerin / des Betreuers</td>
@@ -1046,7 +1046,7 @@ else
$htmlstr .= "<tr><td>Ergebnis <=50 Punkte : Note 5</td><td>50< Ergebnis <65 : Note 4</td><td>65<= Ergebnis <78 : Note 3</td><td>78<= Ergebnis <91 : Note 2</td><td>91<= Ergebnis : Note 1</td></tr>";
if($row->projekttyp_kurzbz!='Bachelor')
{
$htmlstr .= "<tr><td colspan='5'>Ein Kriterium mit weniger als 50 Punkten &rArr; Diplomarbeit gesamt negativ</td></tr>";
$htmlstr .= "<tr><td colspan='5'>Ein Kriterium mit weniger als 50 Punkten &rArr; Masterarbeit gesamt negativ</td></tr>";
}
else
{
File diff suppressed because it is too large Load Diff
+53
View File
@@ -0,0 +1,53 @@
<?php
/* Copyright (C) 2016 fhcomplete.org
*
* 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: Nikolaus Krondraf <nikolaus.krondraf@technikum-wien.at>
*/
/**
* Funktion zur Generierung der Matrikelnummer
* Default: es wird keine Matrikelnummer generiert
*/
require_once(dirname(__FILE__).'/../addon.class.php');
// die aktiven Addons werden durchsucht, ob eines davon eine eigene Matrikelnummern-Generierung vorsieht
// falls ja, wird die Version des Addons genommen, ansonsten die Default Generierung
$generateuid_addon_found=false;
$generateuid_addons = new addon();
foreach($generateuid_addons->aktive_addons as $addon)
{
$generateuid_addon_filename = dirname(__FILE__).'/../../addons/'.$addon.'/vilesci/generatematrikelnr.inc.php';
if(file_exists($generateuid_addon_filename))
{
include($generateuid_addon_filename);
$generateuid_addon_found=true;
break;
}
}
if(!$generateuid_addon_found)
{
function generateMatrikelnr($oe_kurzbz)
{
return null;
}
}
+34 -35
View File
@@ -48,21 +48,21 @@ $menu=array
'Incoming loeschen'=>array('name'=>'Incoming löschen', 'link'=>'lehre/incoming_delete.php', 'target'=>'main'),
),
'Raummitteilung'=>array('name'=>'Raummitteilung', 'link'=>'lehre/raummitteilung.php', 'target'=>'main'),
'Mitarbeiter'=>array
(
'name'=>'Mitarbeiter','permissions'=>array('admin','lv-plan','support'),
'Übersicht'=>array('name'=>'Zeitwünsche', 'link'=>'personen/lektor_uebersicht.php', 'target'=>'main'),
'Zeitsperren'=>array('name'=>'Zeitsperren', 'link'=>'personen/urlaubsverwaltung.php', 'target'=>'main'),
'Übersicht'=>array('name'=>'Zeitwünsche', 'link'=>'personen/lektor_uebersicht.php', 'target'=>'main','permissions'=>array('mitarbeiter')),
'Zeitsperren'=>array('name'=>'Zeitsperren', 'link'=>'personen/urlaubsverwaltung.php', 'target'=>'main','permissions'=>array('mitarbeiter/zeitsperre')),
),
'Vorrueckung'=> array
(
'name'=>'Vorrueckung', 'permissions'=>array('admin','lv-plan','support'),
'Lehreinheiten'=>array('name'=>'Lehreinheiten', 'link'=>'lehre/lehreinheiten_vorrueckung.php', 'target'=>'main'),
'Studenten'=>array('name'=>'Studenten', 'link'=>'personen/student_vorrueckung.php', 'target'=>'main')
'name'=>'Vorrueckung', 'permissions'=>array('lehre/vorrueckung','student/vorrueckung'),
'Lehreinheiten'=>array('name'=>'Lehreinheiten', 'link'=>'lehre/lehreinheiten_vorrueckung.php', 'target'=>'main', 'permissions'=>array('lehre/vorrueckung'),),
'Studenten'=>array('name'=>'Studenten', 'link'=>'personen/student_vorrueckung.php', 'target'=>'main','permissions'=>array('student/vorrueckung'),)
),
),
'Lehre'=> array
(
@@ -71,10 +71,10 @@ $menu=array
'Gruppenverwaltung'=>array('name'=>'Gruppen', 'permissions'=>array('admin','lv-plan','support'), 'link'=>'stammdaten/lvbgruppenverwaltung.php', 'target'=>'main'),
'Lehrveranstaltung'=>array('name'=>'Lehrveranstaltung', 'link'=>'lehre/lehrveranstaltung_frameset.html', 'target'=>'main'),
'Studienordnung'=>array('name'=>'Studienordnung', 'link'=>'lehre/studienordnung.php', 'target'=>'_blank','permissions'=>array('lehre/studienordnung')),
'Moodle'=>array
(
'name'=>'Moodle', 'permissions'=>array('admin','lv-plan','support','basis/moodle'),
'name'=>'Moodle', 'permissions'=>array('basis/moodle'),
'Account'=>array('name'=>'Accountverwaltung', 'link'=>'moodle/account_verwaltung24.php', 'target'=>'main'),
'Kursverwaltung'=>array('name'=>'Kurs entfernen', 'link'=>'moodle/kurs_verwaltung24.php', 'target'=>'main'),
'Rollenzuteilung'=>array('name'=>'Rollenzuteilung', 'link'=>'moodle/rollenzuteilung24.php', 'target'=>'main'),
@@ -106,13 +106,13 @@ $menu=array
'name'=>'Personen', 'opener'=>'true', 'hide'=>'true', 'image'=>'vilesci_personen.png', 'permissions'=>array('admin','lv-plan','support','mitarbeiter','basis/person'),
'link'=>'left.php?categorie=Personen', 'target'=>'nav',
'Suche'=>array('name'=>'Suche', 'link'=>'personen/suche.php', 'target'=>'main','permissions'=>array('admin','lv-plan','support','basis/person')),
'Zusammenlegen'=>array('name'=>'Zusammenlegen', 'link'=>'stammdaten/personen_wartung.php', 'target'=>'main', 'permissions'=>array('admin','lv-plan','support')),
'Zusammenlegen'=>array('name'=>'Zusammenlegen', 'link'=>'stammdaten/personen_wartung.php', 'target'=>'main', 'permissions'=>array('basis/person')),
'Wiederholer'=>array('name'=>'Stg-Wiederholer', 'link'=>'personen/wiederholer.php', 'target'=>'main', 'permissions'=>array('basis/person')),
'Gruppen'=>array
(
'name'=>'Gruppen', 'permissions'=>array('admin','lv-plan','support'),
'Übersicht'=>array('name'=>'Übersicht', 'link'=>'lehre/einheit_menu.php', 'target'=>'main'),
'Neu'=>array('name'=>'Neu', 'link'=>'lehre/einheit_menu.php?newFrm=true', 'target'=>'main')
'name'=>'Gruppen', 'permissions'=>array('lehre/gruppe'),
'Übersicht'=>array('name'=>'Übersicht', 'link'=>'lehre/einheit_menu.php', 'target'=>'main','permissions'=>array('lehre/gruppe')),
'Neu'=>array('name'=>'Neu', 'link'=>'lehre/einheit_menu.php?newFrm=true', 'target'=>'main','permissions'=>array('lehre/gruppe'))
),
'Benutzer'=>array
(
@@ -126,12 +126,12 @@ $menu=array
(
'name'=>'Mitarbeiter','permissions'=>array('admin','mitarbeiter','support'),
'Übersicht'=>array('name'=>'Übersicht', 'link'=>'personen/lektor_uebersicht.php', 'target'=>'main'),
'Zeitsperren'=>array('name'=>'Zeitsperren', 'link'=>'personen/urlaubsverwaltung.php', 'target'=>'main'),
'Resturlaub'=>array('name'=>'Urlaub', 'link'=>'personen/resturlaub_frameset.html', 'target'=>'main')
'Zeitsperren'=>array('name'=>'Zeitsperren', 'link'=>'personen/urlaubsverwaltung.php', 'target'=>'main','permissions'=>array('mitarbeiter/zeitsperre')),
'Resturlaub'=>array('name'=>'Urlaub', 'link'=>'personen/resturlaub_frameset.html', 'target'=>'main','permissions'=>array('mitarbeiter/zeitsperre'))
),
'Betriebsmittel'=>array('name'=>'Betriebsmittel', 'link'=>'stammdaten/betriebsmittel_frameset.php', 'target'=>'main','permissions'=>array('admin','lv-plan','support','basis/betriebsmittel')),
'AnwesenheitslistenBarcode'=>array('name'=>'Anwesenheitslisten mit Barcodes', 'link'=>'personen/anwesenheitslisten_barcode.php', 'target'=>'main','permissions'=>array('admin','lv-plan','support','preinteressent')),
'Preinteressenten'=>array('name'=>'Preinteressenten', 'link'=>'personen/preinteressent_frameset.html', 'target'=>'_blank','permissions'=>array('admin','lv-plan','support','preinteressent')),
'Betriebsmittel'=>array('name'=>'Betriebsmittel', 'link'=>'stammdaten/betriebsmittel_frameset.php', 'target'=>'main','permissions'=>array('basis/betriebsmittel')),
'AnwesenheitslistenBarcode'=>array('name'=>'Anwesenheitslisten mit Barcodes', 'link'=>'personen/anwesenheitslisten_barcode.php', 'target'=>'main','permissions'=>array('basis/person')),
'Preinteressenten'=>array('name'=>'Preinteressenten', 'link'=>'personen/preinteressent_frameset.html', 'target'=>'_blank','permissions'=>array('admin','preinteressent')),
'Incoming'=>array('name'=>'Incoming', 'link'=>'personen/incoming_frameset.php', 'target'=>'_blank','permissions'=>array('inout/incoming')),
'Outgoing'=>array('name'=>'Outgoing', 'link'=>'personen/outgoing_frameset.php', 'target'=>'_blank','permissions'=>array('inout/outgoing'))
),
@@ -141,7 +141,7 @@ $menu=array
'link'=>'left.php?categorie=Stammdaten', 'target'=>'nav',
'Betriebsmittel'=>array('name'=>'Betriebsmittel', 'link'=>'stammdaten/betriebsmittel_frameset.php', 'target'=>'main','permissions'=>array('basis/betriebsmittel')),
'Reihungstest'=>array('name'=>'Reihungstest', 'link'=>'stammdaten/reihungstestverwaltung.php', 'target'=>'main','permissions'=>array('admin','assistenz')),
'User'=>array
(
'name'=>'User', 'permissions'=>array('basis/variable','basis/berechtigung'),
@@ -154,7 +154,7 @@ $menu=array
'name'=>'Personal', 'permissions'=>array('buchung/typen','vertrag/typen'),
'Buchungstypen'=>array('name'=>'Buchungstypen', 'link'=>'stammdaten/buchung_typ.php', 'target'=>'main','permissions'=>array('buchung/typen')),
'Vertragstypen'=>array('name'=>'Vertragstypen', 'link'=>'stammdaten/vertrag_typ.php', 'target'=>'main','permissions'=>array('vertrag/typen'))
),
),
'Studiengang'=>array('name'=>'Studiengang', 'link'=>'stammdaten/studiengang_frameset.html', 'target'=>'main','permissions'=>array('basis/studiengang')),
'Ort'=>array('name'=>'Ort (Raum)', 'link'=>'stammdaten/raum_frameset.html', 'target'=>'main','permissions'=>array('basis/ort')),
'Firmen'=>array('name'=>'Firmen', 'link'=>'stammdaten/firma_frameset.html', 'target'=>'main','permissions'=>array('basis/firma')),
@@ -180,20 +180,19 @@ $menu=array
),
'Wartung'=> array
(
'name'=>'Wartung', 'opener'=>'true', 'hide'=>'true', 'image'=>'vilesci_wartung.png', 'link'=>'left.php?categorie=Wartung', 'target'=>'nav',
'name'=>'Wartung', 'opener'=>'true', 'hide'=>'true', 'image'=>'vilesci_wartung.png', 'link'=>'left.php?categorie=Wartung', 'target'=>'nav',
'DokumenteZuteilung'=>array('name'=>'Dokumente Zuteilung', 'link'=>'stammdaten/studiengang_dokumente.php', 'target'=>'main', 'permissions'=>array('basis/studiengang')),
'DokumenteZuteilung'=>array('name'=>'Dokumente Zuteilung', 'link'=>'stammdaten/studiengang_dokumente.php', 'target'=>'main', 'permissions'=>array('basis/studiengang')),
'Vorrueckung'=> array
(
'name'=>'Vorrueckung', 'permissions'=>array('admin','lv-plan','support'),
'Lehreinheiten'=>array('name'=>'Lehreinheiten', 'link'=>'lehre/lehreinheiten_vorrueckung.php', 'target'=>'main'),
'Studenten'=>array('name'=>'Studenten', 'link'=>'personen/student_vorrueckung.php', 'target'=>'main')
'name'=>'Vorrueckung', 'permissions'=>array('lehre/vorrueckung','student/vorrueckung'),
'Lehreinheiten'=>array('name'=>'Lehreinheiten', 'link'=>'lehre/lehreinheiten_vorrueckung.php', 'target'=>'main','permissions'=>array('lehre/vorrueckung'),),
'Studenten'=>array('name'=>'Studenten', 'link'=>'personen/student_vorrueckung.php', 'target'=>'main','permissions'=>array('student/vorrueckung'),)
),
'LVWartung'=>array('name'=>'LVwartung', 'link'=>'stammdaten/lv_wartung.php', 'target'=>'main'),
'Kreuzerllistekopieren'=>array('name'=>'Kreuzerllisten kopieren', 'link'=>CIS_ROOT.'cis/private/lehre/benotungstool/copy_uebung.php', 'target'=>'_blank'),
'Firmenwartung'=>array('name'=>'Firmenwartung', 'link'=>'stammdaten/firma_zusammen_uebersicht.php', 'target'=>'main'),
'Kreuzerllistekopieren'=>array('name'=>'Kreuzerllisten kopieren', 'link'=>CIS_ROOT.'cis/private/lehre/benotungstool/copy_uebung.php', 'target'=>'_blank','permissions'=>array('admin')),
'Firmenwartung'=>array('name'=>'Firmenwartung', 'link'=>'stammdaten/firma_zusammen_uebersicht.php', 'target'=>'main','permissions'=>array('basis/firma')),
'checkStudenten'=>array('name'=>'CheckStudenten', 'link'=>'../system/checkStudenten.php', 'target'=>'main'),
'StudienplanZuteilung'=>array('name'=>'Studienplan Zuteilung', 'link'=>'lehre/studienplan_zuteilung.php', 'target'=>'main'),
'StudienplanZuteilung'=>array('name'=>'Studienplan Zuteilung', 'link'=>'lehre/studienplan_zuteilung.php', 'target'=>'main','permissions'=>array('assistenz')),
),
'Auswertung'=> array
(
@@ -212,17 +211,17 @@ $menu=array
'link'=>'left.php?categorie=Inventar', 'target'=>'nav',
'Inventar'=> array
(
'name'=>'Inventar', 'permissions'=>array('admin','wawi','support','wawi/inventar'),
'name'=>'Inventar', 'permissions'=>array('admin','wawi','support','wawi/inventar'),
'Neu'=>array('name'=>'Neu', 'link'=>'inventar/inventar_pflege.php?vorlage=false', 'target'=>'main'),
'Suche'=>array('name'=>'Suche', 'link'=>'inventar/inventar.php', 'target'=>'main'),
'AfA'=>array('name'=>'AfA', 'link'=>'inventar/inventar_afa.php', 'target'=>'main'),
'Inventur'=>array('name'=>'Inventur', 'link'=>'inventar/inventar_inventur.php', 'target'=>'main'),
'Etiketten'=>array('name'=>'Etiketten', 'link'=>'inventar/etiketten.php', 'target'=>'main'),
)
),
),
'Admin'=> array
(
'name'=>'Admin', 'opener'=>'true', 'hide'=>'true', 'permissions'=>array('admin','lv-plan','support'), 'image'=>'vilesci_admin.png',
'name'=>'Admin', 'opener'=>'true', 'hide'=>'true', 'permissions'=>array('basis/cronjob'), 'image'=>'vilesci_admin.png',
'link'=>'left.php?categorie=Admin', 'target'=>'nav',
'Cronjobs'=>array('name'=>'Cronjobs', 'link'=>'stammdaten/cronjobverwaltung.php', 'target'=>'main','permissions'=>array('basis/cronjob')),
),
@@ -231,7 +230,7 @@ $menu=array
'name'=>'SD-Tools', 'opener'=>'true', 'hide'=>'true', 'permissions'=>array('sdTools'), 'image'=>'vilesci_sdtools.png',
'link'=>'https://sdtools.technikum-wien.at', 'target'=>'_blank',
)
);
require_once(dirname(__FILE__).'/../statistik.class.php');
@@ -253,7 +252,7 @@ if($addon_obj->loadAddons())
);
foreach($addon_obj->result as $row)
{
{
$menu['Addons'][$row->kurzbz]=array('name'=>$row->addon_name, 'link'=>'../addons/'.$row->kurzbz.'/vilesci/index.php', 'target'=>'main');
}
}
@@ -0,0 +1,23 @@
/* tables */
table {
background-color: #EFEFEF;
margin:10px 0pt 15px;
width: 100%;
text-align: left;
}
table thead tr th, table tfoot tr th {
border: 1px solid #FFF;
padding: 4px;
vertical-align: middle;
}
th[ts-criteria]{
background-color: #DCE4EF;
cursor: pointer;
}
th.tablesort-asc,th.tablesort-desc{
border-bottom: #000 2px solid;
}
tbody tr:nth-child(2n){
background-color: #D3D3D3;
}
@@ -42,3 +42,9 @@ TD,TH
{
font-size: 9pt;
}
table.tablesorter tbody td
{
margin: 0;
padding: 0;
vertical-align: middle;
}
+42 -33
View File
@@ -495,11 +495,13 @@ class wochenplan extends basis_db
//global $kalender_begin_ws, $kalender_ende_ws, $kalender_begin_ss, $kalender_ende_ss;
$kal_link_ws=$this->kal_link.'&begin='.$this->studiensemester_now->start.'&ende='.$this->studiensemester_now->ende;
$kal_link_ss=$this->kal_link.'&begin='.$this->studiensemester_next->start.'&ende='.$this->studiensemester_next->ende;
//echo ' &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<strong>'.$p->t('global/kalender').':&nbsp;&nbsp;&nbsp;</strong>'.$this->crlf;
echo $this->crlf;
//echo ' '.$p->t('lvplan/uebersicht').':&nbsp;<A href="'.$kal_link_ws.'&format=html" target="_blank" title="HTML">'.$this->studiensemester_now->name.'</A>&nbsp;'.$this->crlf;
echo $this->studiensemester_now->name.'<br>'.$this->crlf;
echo ' <A href="'.$kal_link_ws.'&format=html" target="_blank" title="HTML"><IMG src="../../../skin/images/html.png" height="30" alt="HTML" border="0"></A>'.$this->crlf;
echo ' <A href="'.$kal_link_ws.'&format=excel" title="excel"><IMG src="../../../skin/images/xls.png" height="30" alt="Excel" border="0"></A>'.$this->crlf;
echo ' <A href="'.$kal_link_ws.'&format=csv" title="CSV"><IMG src="../../../skin/images/csv.png" height="30" alt="CSV" border="0"></A>'.$this->crlf;
echo ' <A href="'.$kal_link_ws.'&format=csv&target=outlook" title="CSV-Outlook"><IMG src="../../../skin/images/outlook.png" height="30" alt="CSV-Outlook" border="0"></A>'.$this->crlf;
echo ' <A href="'.$kal_link_ws.'&format=ical&version=1&target=ical" title="iCal Version 1.0"><IMG src="../../../skin/images/ical1.0.png" height="30" alt="vCal Version 1.0" border="0"></A>'.$this->crlf;
@@ -508,6 +510,7 @@ class wochenplan extends basis_db
//echo ' &nbsp;&nbsp;&nbsp;&nbsp;'.$p->t('lvplan/uebersicht').':&nbsp;<A href="'.$kal_link_ss.'&format=html" target="_blank" title="HTML">'.$this->studiensemester_next->name.'</A>&nbsp;'.$this->crlf;
echo ' <span style="color:#999">'.$this->studiensemester_next->name.'</span><br>'.$this->crlf;
echo ' <A href="'.$kal_link_ss.'&format=html" target="_blank" title="HTML"><IMG src="../../../skin/images/html_light.png" height="30" alt="HTML" border="0"></A>'.$this->crlf;
echo ' <A href="'.$kal_link_ss.'&format=excel" title="excel"><IMG src="../../../skin/images/xls_light.png" height="30" alt="Excel" border="0"></A>'.$this->crlf;
echo ' <A href="'.$kal_link_ss.'&format=csv" title="CSV"><IMG src="../../../skin/images/csv_light.png" height="30" alt="CSV" border="0"></A>'.$this->crlf;
echo ' <A href="'.$kal_link_ss.'&format=csv&target=outlook" title="CSV-Outlook"><IMG src="../../../skin/images/outlook_light.png" height="30" alt="CSV-Outlook" border="0"></A>'.$this->crlf;
echo ' <A href="'.$kal_link_ss.'&format=ical&version=1&target=ical" title="iCal Version 1.0"><IMG src="../../../skin/images/ical1.0_light.png" height="30" alt="iCal Version 1.0" border="0"></A>'.$this->crlf;
@@ -2264,6 +2267,7 @@ class wochenplan extends basis_db
{
$blocked=array();
$gruppiert=array();
for ($k=0; $k<$num_rows_stunde; $k++)
{
$row = $this->db_fetch_object($this->stunde, $k);
@@ -2280,14 +2284,20 @@ class wochenplan extends basis_db
unset($lehrverband);
if (isset($lehrfach))
unset($lehrfach);
if (isset($lektor_uids))
unset($lektor_uids);
if (isset($stunden_arr))
unset($stunden_arr);
foreach ($this->std_plan[$i][$j] as $lehrstunde)
{
$unr[]=$lehrstunde->unr;
// Lektoren
$lektor[]=$lehrstunde->lektor;
$lektor_uids[]=$lehrstunde->lektor_uid;
// Lehrverband
$lvb=$lehrstunde->stg.'-'.$lehrstunde->sem;
$stunden_arr[]=$j;
if ($lehrstunde->ver!=null && $lehrstunde->ver!='0' && $lehrstunde->ver!='')
{
$lvb.=$lehrstunde->ver;
@@ -2383,49 +2393,38 @@ class wochenplan extends basis_db
if(!$blockcontinue)
{
// Blockungen ueber mehrere Stunden erkennen
if (isset($this->std_plan[$i][$j+1][$idx]) && isset($this->std_plan[$i][$j+1][$idx]->stundenplan_id)
&& ($this->std_plan[$i][$j][$idx]->unr == $this->std_plan[$i][$j+1][$idx]->unr)
&& $this->std_plan[$i][$j][$idx]!='0' && $k<($num_rows_stunde-1)
&& !($this->std_plan[$i][$j][$idx]->reservierung && $this->std_plan[$i][$j][$idx]->lektor!=$this->std_plan[$i][$j+1][$idx]->lektor))
$blockflag=false;
for($blockstunden=1;$blockstunden<=$num_rows_stunde;$blockstunden++)
{
//2er Block
if(isset($blocked[$this->std_plan[$i][$j][$idx]->unr]))
$blocked[$this->std_plan[$i][$j][$idx]->unr]++;
else
$blocked[$this->std_plan[$i][$j][$idx]->unr]=1;
$row = $this->db_fetch_object($this->stunde, ($k+1));
$end_time=$row->ende;
if (isset($this->std_plan[$i][$j+2][$idx]) && isset($this->std_plan[$i][$j+2][$idx]->stundenplan_id)
&& ($this->std_plan[$i][$j][$idx]->unr == $this->std_plan[$i][$j+2][$idx]->unr)
&& $k<($num_rows_stunde-2)
&& !($this->std_plan[$i][$j][$idx]->reservierung && $this->std_plan[$i][$j][$idx]->lektor!=$this->std_plan[$i][$j+2][$idx]->lektor))
if (isset($this->std_plan[$i][$j+$blockstunden][$idx]) && isset($this->std_plan[$i][$j+$blockstunden][$idx]->stundenplan_id)
&& ($this->std_plan[$i][$j][$idx]->unr == $this->std_plan[$i][$j+$blockstunden][$idx]->unr)
&& $this->std_plan[$i][$j][$idx]!='0' && $k<($num_rows_stunde-$blockstunden)
&& !($this->std_plan[$i][$j][$idx]->reservierung && $this->std_plan[$i][$j][$idx]->lektor!=$this->std_plan[$i][$j+$blockstunden][$idx]->lektor))
{
//3er Block
$blocked[$this->std_plan[$i][$j][$idx]->unr]++;
$row = $this->db_fetch_object($this->stunde, ($k+2));
$end_time=$row->ende;
if (isset($this->std_plan[$i][$j+3][$idx]) && isset($this->std_plan[$i][$j+3][$idx]->stundenplan_id)
&& ($this->std_plan[$i][$j][$idx]->unr == $this->std_plan[$i][$j+3][$idx]->unr)
&& $k<($num_rows_stunde-3)
&& !($this->std_plan[$i][$j][$idx]->reservierung && $this->std_plan[$i][$j][$idx]->lektor!=$this->std_plan[$i][$j+3][$idx]->lektor))
{
//4er Block
if(isset($blocked[$this->std_plan[$i][$j][$idx]->unr]))
$blocked[$this->std_plan[$i][$j][$idx]->unr]++;
$row = $this->db_fetch_object($this->stunde, ($k+3));
else
$blocked[$this->std_plan[$i][$j][$idx]->unr]=1;
$row = $this->db_fetch_object($this->stunde, ($k+$blockstunden));
$stunden_arr[]=$row->stunde;
$end_time=$row->ende;
$blockflag=true;
}
else
{
if(!$blockflag)
{
$row = $this->db_fetch_object($this->stunde, $k);
$stunden_arr[]=$row->stunde;
$end_time=$row->ende;
break;
}
}
}
else
{
$row = $this->db_fetch_object($this->stunde, $k);
$end_time=$row->ende;
}
}
//Wenn im selben Raum mehrere Lektoren sind bzw mehrere Gruppen
//dann werden diese zusammengruppiert und als ein Eintrag angezeigt
for($idx1=0;$idx1<count($this->std_plan[$i][$j]);$idx1++)
@@ -2544,9 +2543,19 @@ class wochenplan extends basis_db
$description = str_replace(',',' ',$description);
$return[]=array('UID'=>$UID,
'lehrfach_id'=>(isset($this->std_plan[$i][$j][$idx]->lehrfach_id)?$this->std_plan[$i][$j][$idx]->lehrfach_id:''),
'ort'=>$this->std_plan[$i][$j][$idx]->ort,
'lektor_uid'=>array_unique($lektor_uids),
'gruppen'=>array_unique($lehrverband),
'stunden'=>array_unique($stunden_arr),
'titel'=>$this->std_plan[$i][$j][$idx]->titel,
'unr'=>$unr,
'Summary'=>$Summary,
'Description'=>$description,
'start_date'=>$start_date,
'end_date'=>$end_date,
'start_time'=>$start_time,
'end_time'=>$end_time,
'dtstart'=>$start_date_time_ical,
'dtend'=>$end_date_time_ical,
'reservierung'=>$this->std_plan[$i][$j][$idx]->reservierung,
+16 -1
View File
@@ -133,7 +133,22 @@ class zeitaufzeichnung extends basis_db
//Variablen pruefen
if(!$this->validate())
return false;
// check ob identischer eintrag existiert
$check_qry = 'SELECT count(*) from campus.tbl_zeitaufzeichnung where uid='.$this->db_add_param($this->uid).' and start = '.$this->db_add_param($this->start).' and ende = '.$this->db_add_param($this->ende);
if($this->db_query($check_qry) && $this->new)
{
if($row = $this->db_fetch_object())
{
if ($row->count)
{
$this->errormsg = 'Identischer Eintrag existiert!';
return false;
}
}
}
if($this->new)
{
//Neuen Datensatz einfuegen