Direkte Zuordnung von Studierenden zu Lehreinheiten

* Direkte Zuordnung im FAS
* neues Boolean markiert direkte Gruppen
* Gruppen werden nicht vorgerückt
* Direkte Gruppen werden nicht bei der Lehreinheit und im
Lehrverbandsbaum angezeigt
This commit is contained in:
Andreas Österreicher
2019-01-16 08:22:43 +01:00
parent 7cfff391eb
commit 82fd967f00
14 changed files with 7594 additions and 6840 deletions
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+713 -698
View File
File diff suppressed because it is too large Load Diff
+468 -422
View File
@@ -1,422 +1,468 @@
<?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 lehreinheitgruppe extends basis_db
{
public $new; // boolean
public $lehreinheitgruppe = array(); // lehreinheitgruppe Objekt
//Tabellenspalten
public $lehreinheitgruppe_id; //integer
public $lehreinheit_id; // integer
public $studiengang_kz; // integer
public $semester; // smalint
public $verband; // char(1)
public $gruppe; // char(1)
public $gruppe_kurzbz; // varchar(16)
public $ext_id; // bigint
public $updateamum; // timestamp
public $updatevon; // varchar(16)
public $insertamum; // timestamp
public $insertvon; // varchar(16)
/**
* Konstruktor - Laedt optional eine LEGruppe
* @param $lehreinheitgruppe_id
*/
public function __construct($lehreinheitgruppe_id=null)
{
parent::__construct();
if(!is_null($lehreinheitgruppe_id))
$this->load($lehreinheitgruppe_id);
}
/**
* Laedt die LEGruppe
* @param lehreinheit_id
*/
function load($lehreinheitgruppe_id)
{
if(!is_numeric($lehreinheitgruppe_id))
{
$this->errormsg = 'Lehreinheitgruppe_id ist ungueltig';
return false;
}
$qry = "SELECT * FROM lehre.tbl_lehreinheitgruppe WHERE lehreinheitgruppe_id=".$this->db_add_param($lehreinheitgruppe_id, FHC_INTEGER).';';
if($this->db_query($qry))
{
if($row = $this->db_fetch_object())
{
$this->lehreinheitgruppe_id = $row->lehreinheitgruppe_id;
$this->lehreinheit_id = $row->lehreinheit_id;
$this->studiengang_kz = $row->studiengang_kz;
$this->semester = $row->semester;
$this->verband = $row->verband;
$this->gruppe = $row->gruppe;
$this->gruppe_kurzbz = $row->gruppe_kurzbz;
$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 = 'Es existiert kein Eintrag mit dieser ID';
return false;
}
}
else
{
$this->errormsg = 'Fehler beim Laden der Daten';
return false;
}
}
/**
* Prueft die Variablen vor dem Speichern
* auf Gueltigkeit.
* @return true wenn ok, false im Fehlerfall
*/
protected function validate()
{
if(!is_numeric($this->lehreinheit_id))
{
$this->errormsg = 'Lehreinheit_id muss eine gueltige Zahl sein';
return false;
}
if(!is_numeric($this->studiengang_kz))
{
$this->errormsg = 'Studiengang_kz muss eine gueltige Zahl sein';
return false;
}
if($this->semester!='' && !is_numeric($this->semester))
{
$this->errormsg = 'Semester muss eine gueltige Zahl sein';
return false;
}
if(mb_strlen($this->verband)>1)
{
$this->verband = 'Verband darf nicht laenger als 1 Zeichen sein';
return false;
}
if(mb_strlen($this->gruppe)>1)
{
$this->gruppe = 'Gruppe darf nicht laenger als 1 Zeichen sein';
return false;
}
if(mb_strlen($this->gruppe_kurzbz)>32)
{
$this->errormsg = 'Gruppe_kurzbz darf nicht laenger als 32 Zeichen sein';
return false;
}
return true;
}
/**
* Speichert GruppeLE 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($new=null)
{
if(is_null($new))
$new = $this->new;
//Variablen auf Gueltigkeit pruefen
if(!$this->validate())
return false;
if($new)
{
$qry = 'INSERT INTO lehre.tbl_lehreinheitgruppe (lehreinheit_id, studiengang_kz, semester, verband, gruppe, gruppe_kurzbz, insertamum, insertvon)
VALUES('.$this->db_add_param($this->lehreinheit_id, FHC_INTEGER).','.
$this->db_add_param($this->studiengang_kz, FHC_INTEGER).','.
$this->db_add_param($this->semester, FHC_INTEGER).','.
$this->db_add_param($this->verband).','.
$this->db_add_param($this->gruppe).','.
$this->db_add_param($this->gruppe_kurzbz).','.
$this->db_add_param($this->insertamum).','.
$this->db_add_param($this->insertvon).');';
}
else
{
$qry = 'UPDATE lehre.tbl_lehreinheitgruppe SET'.
' lehreinheit_id='.$this->db_add_param($this->lehreinheit_id, FHC_INTEGER).','.
' studiengang_kz='.$this->db_add_param($this->studiengang_kz, FHC_INTEGER).','.
' semester='.$this->db_add_param($this->semester, FHC_INTEGER).','.
' verband='.$this->db_add_param($this->verband).','.
' gruppe='.$this->db_add_param($this->gruppe).','.
' gruppe_kurzbz='.$this->db_add_param($this->gruppe_kurzbz).','.
' updateamum='.$this->db_add_param($this->updateamum).','.
' updatevon='.$this->db_add_param($this->updatevon).
" WHERE lehreinheitgruppe_id=".$this->db_add_param($this->lehreinheitgruppe_id, FHC_INTEGER).";";
}
if($this->db_query($qry))
{
//Log schreiben
return true;
}
else
{
$this->errormsg = 'Fehler beim Speichern der GruppeLE';
return false;
}
}
/**
* Sieht nach ob Gruppe schon zu dieser Lehreinheit
* zugeordnet ist.
* @param lehreinheit_id
* studiengang_kz
* semester
* verband
* gruppe
* gruppe_kurzbz
* @return true wenn vorhanden, false wenn nicht
*/
public function exists($lehreinheit_id, $studiengang_kz, $semester, $verband, $gruppe, $gruppe_kurzbz)
{
$qry = "SELECT * FROM lehre.tbl_lehreinheitgruppe WHERE lehreinheit_id=".$this->db_add_param($lehreinheit_id, FHC_INTEGER);
if($gruppe_kurzbz!='')
{
$qry .= " AND gruppe_kurzbz=".$this->db_add_param($gruppe_kurzbz);
}
else
{
$qry .= " AND semester=".$this->db_add_param($semester, FHC_INTEGER);
if($verband!='')
$qry .= " AND verband=".$this->db_add_param($verband);
if($gruppe!='')
$qry .= " AND gruppe=".$this->db_add_param($gruppe);
}
$qry.=';';
if($this->db_query($qry))
{
if($this->db_num_rows()>0)
return true;
else
return false;
}
else
{
$this->errormsg = 'Fehler beim Lesen der Lehreinheitgruppen';
return false;
}
}
/**
* Liefert alle Gruppenzuordnungen zu einer
* Lehreinheit.
* @param lehreinheit_id Lehreinheit zu der
* die Gruppen geladen werden sollen
* @return true wenn ok, false im fehlerfall
*/
public function getLehreinheitgruppe($lehreinheit_id)
{
if(!is_numeric($lehreinheit_id))
{
$this->errormsg = 'Lehreinheit_id ist ungueltig';
return false;
}
$qry = "SELECT * FROM lehre.tbl_lehreinheitgruppe WHERE lehreinheit_id=".$this->db_add_param($lehreinheit_id, FHC_INTEGER).';';
if($this->db_query($qry))
{
while($row = $this->db_fetch_object())
{
$leg_obj = new lehreinheitgruppe();
$leg_obj->lehreinheitgruppe_id = $row->lehreinheitgruppe_id;
$leg_obj->lehreinheit_id = $row->lehreinheit_id;
$leg_obj->studiengang_kz = $row->studiengang_kz;
$leg_obj->semester = $row->semester;
$leg_obj->verband = $row->verband;
$leg_obj->gruppe = $row->gruppe;
$leg_obj->gruppe_kurzbz = $row->gruppe_kurzbz;
$leg_obj->updateamum = $row->updateamum;
$leg_obj->updatevon = $row->updatevon;
$leg_obj->insertamum = $row->insertamum;
$leg_obj->insertvon = $row->insertvon;
$leg_obj->ext_id = $row->ext_id;
$this->lehreinheitgruppe[] = $leg_obj;
}
return true;
}
else
{
$this->errormsg = 'Fehler beim Laden der Daten';
return false;
}
}
/**
* Loescht die Zuornung Gruppe-Lehreinheit
* @param lehreinheigruppe_id ID des zu loeschenden Datensatzes
* @return true wenn ok, false im fehlerfall
*/
public function delete($lehreinheitgruppe_id)
{
if(!is_numeric($lehreinheitgruppe_id))
{
$this->errormsg = 'Lehreinheitgruppe_id muss eine gueltige Zahl sein';
return false;
}
$qry_del = "DELETE FROM lehre.tbl_lehreinheitgruppe WHERE lehreinheitgruppe_id=".$this->db_add_param($lehreinheitgruppe_id, FHC_INTEGER).';';
$qry = "SELECT * FROM lehre.tbl_lehreinheitgruppe WHERE lehreinheitgruppe_id=".$this->db_add_param($lehreinheitgruppe_id, FHC_INTEGER).';';
if($this->db_query($qry))
{
if($row = $this->db_fetch_object())
{
$sql_undo = "INSERT INTO lehre.tbl_lehreinheitgruppe ".
"(lehreinheitgruppe_id, lehreinheit_id, studiengang_kz, semester, ".
"verband, gruppe, gruppe_kurzbz, updateamum, updatevon, insertamum, insertvon) ".
"VALUES(".$this->db_add_param($row->lehreinheitgruppe_id, FHC_INTEGER).','.
$this->db_add_param($row->lehreinheit_id, FHC_INTEGER).','.
$this->db_add_param($row->studiengang_kz, FHC_INTEGER).','.
$this->db_add_param($row->semester, FHC_INTEGER).','.
$this->db_add_param($row->verband).','.
$this->db_add_param($row->gruppe).','.
$this->db_add_param($row->gruppe_kurzbz).','.
$this->db_add_param($row->updateamum).','.
$this->db_add_param($row->updatevon).','.
$this->db_add_param($row->insertamum).','.
$this->db_add_param($row->insertvon).');';
$log = new log();
$log->sql = $qry_del;
$log->sqlundo = $sql_undo;
$log->mitarbeiter_uid = get_uid();
if($row->gruppe_kurzbz!='')
$grp = $row->gruppe_kurzbz;
else
{
$qry_stg = "SELECT UPPER(typ::varchar(1) || kurzbz) as kuerzel FROM public.tbl_studiengang WHERE studiengang_kz=".$this->db_add_param($row->studiengang_kz, FHC_INTEGER).';';
$this->db_query($qry_stg);
$row_stg = $this->db_fetch_object();
$grp = $row_stg->kuerzel.$row->semester.$row->verband.$row->gruppe;
}
$log->beschreibung = "Gruppenzuteilung loeschen $grp - $row->lehreinheit_id";
$this->db_query('BEGIN;');
if($log->save(true))
{
if($this->db_query($qry_del))
{
$this->db_query('COMMIT;');
return true;
}
else
{
$this->db_query('ROLLBACK;');
$this->errormsg = 'Fehler beim Loeschen';
return false;
}
}
else
{
$this->db_query('ROLLBACK;');
$this->errormsg = 'Fehler beim Speichern des Log-Eintrages';
return false;
}
}
else
{
$this->errormsg = 'Datensatz wurde nicht gefunden';
return false;
}
}
else
{
$this->errormsg = 'Fehler beim Lesen aus der Datenbank';
return false;
}
}
/**
* Prueft ob die Gruppe schon dieser Lehreinheit zugeordnet ist
*/
public function checkVorhanden()
{
$qry = "SELECT
count(*) as anzahl
FROM
lehre.tbl_lehreinheitgruppe
WHERE
lehreinheit_id=".$this->db_add_param($this->lehreinheit_id, FHC_INTEGER)." AND
studiengang_kz=".$this->db_add_param($this->studiengang_kz, FHC_INTEGER);
if($this->semester!='')
$qry.=" AND semester=".$this->db_add_param($this->semester, FHC_INTEGER);
else
$qry.=" AND (semester='' OR semester is null)";
if($this->verband!='')
$qry.=" AND trim(verband)=".$this->db_add_param($this->verband);
else
$qry.=" AND (trim(verband)='' OR verband is null)";
if($this->gruppe!='')
$qry.=" AND trim(gruppe)=".$this->db_add_param($this->gruppe);
else
$qry.=" AND (trim(gruppe)='' OR gruppe is null)";
if($this->gruppe_kurzbz!='')
$qry.=" AND trim(gruppe_kurzbz)=".$this->db_add_param($this->gruppe_kurzbz);
else
$qry.= " AND (trim(gruppe_kurzbz)='' OR gruppe_kurzbz is null)";
$qry.=';';
if($this->db_query($qry))
{
if($row = $this->db_fetch_object())
{
if($row->anzahl>0)
return true;
else
return false;
}
else
{
$this->errormsg = 'Interner Fehler';
return false;
}
}
else
{
$this->errormsg='Fehler bei einer Abfrage';
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> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
require_once(dirname(__FILE__).'/basis_db.class.php');
class lehreinheitgruppe extends basis_db
{
public $new; // boolean
public $lehreinheitgruppe = array(); // lehreinheitgruppe Objekt
//Tabellenspalten
public $lehreinheitgruppe_id; //integer
public $lehreinheit_id; // integer
public $studiengang_kz; // integer
public $semester; // smalint
public $verband; // char(1)
public $gruppe; // char(1)
public $gruppe_kurzbz; // varchar(16)
public $ext_id; // bigint
public $updateamum; // timestamp
public $updatevon; // varchar(16)
public $insertamum; // timestamp
public $insertvon; // varchar(16)
/**
* Konstruktor - Laedt optional eine LEGruppe
* @param $lehreinheitgruppe_id
*/
public function __construct($lehreinheitgruppe_id=null)
{
parent::__construct();
if(!is_null($lehreinheitgruppe_id))
$this->load($lehreinheitgruppe_id);
}
/**
* Laedt die LEGruppe
* @param lehreinheit_id
*/
function load($lehreinheitgruppe_id)
{
if(!is_numeric($lehreinheitgruppe_id))
{
$this->errormsg = 'Lehreinheitgruppe_id ist ungueltig';
return false;
}
$qry = "SELECT * FROM lehre.tbl_lehreinheitgruppe WHERE lehreinheitgruppe_id=".$this->db_add_param($lehreinheitgruppe_id, FHC_INTEGER).';';
if($this->db_query($qry))
{
if($row = $this->db_fetch_object())
{
$this->lehreinheitgruppe_id = $row->lehreinheitgruppe_id;
$this->lehreinheit_id = $row->lehreinheit_id;
$this->studiengang_kz = $row->studiengang_kz;
$this->semester = $row->semester;
$this->verband = $row->verband;
$this->gruppe = $row->gruppe;
$this->gruppe_kurzbz = $row->gruppe_kurzbz;
$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 = 'Es existiert kein Eintrag mit dieser ID';
return false;
}
}
else
{
$this->errormsg = 'Fehler beim Laden der Daten';
return false;
}
}
/**
* Prueft die Variablen vor dem Speichern
* auf Gueltigkeit.
* @return true wenn ok, false im Fehlerfall
*/
protected function validate()
{
if(!is_numeric($this->lehreinheit_id))
{
$this->errormsg = 'Lehreinheit_id muss eine gueltige Zahl sein';
return false;
}
if(!is_numeric($this->studiengang_kz))
{
$this->errormsg = 'Studiengang_kz muss eine gueltige Zahl sein';
return false;
}
if($this->semester!='' && !is_numeric($this->semester))
{
$this->errormsg = 'Semester muss eine gueltige Zahl sein';
return false;
}
if(mb_strlen($this->verband)>1)
{
$this->verband = 'Verband darf nicht laenger als 1 Zeichen sein';
return false;
}
if(mb_strlen($this->gruppe)>1)
{
$this->gruppe = 'Gruppe darf nicht laenger als 1 Zeichen sein';
return false;
}
if(mb_strlen($this->gruppe_kurzbz)>32)
{
$this->errormsg = 'Gruppe_kurzbz darf nicht laenger als 32 Zeichen sein';
return false;
}
return true;
}
/**
* Speichert GruppeLE 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($new=null)
{
if(is_null($new))
$new = $this->new;
//Variablen auf Gueltigkeit pruefen
if(!$this->validate())
return false;
if($new)
{
$qry = 'INSERT INTO lehre.tbl_lehreinheitgruppe (lehreinheit_id, studiengang_kz, semester, verband, gruppe, gruppe_kurzbz, insertamum, insertvon)
VALUES('.$this->db_add_param($this->lehreinheit_id, FHC_INTEGER).','.
$this->db_add_param($this->studiengang_kz, FHC_INTEGER).','.
$this->db_add_param($this->semester, FHC_INTEGER).','.
$this->db_add_param($this->verband).','.
$this->db_add_param($this->gruppe).','.
$this->db_add_param($this->gruppe_kurzbz).','.
$this->db_add_param($this->insertamum).','.
$this->db_add_param($this->insertvon).');';
}
else
{
$qry = 'UPDATE lehre.tbl_lehreinheitgruppe SET'.
' lehreinheit_id='.$this->db_add_param($this->lehreinheit_id, FHC_INTEGER).','.
' studiengang_kz='.$this->db_add_param($this->studiengang_kz, FHC_INTEGER).','.
' semester='.$this->db_add_param($this->semester, FHC_INTEGER).','.
' verband='.$this->db_add_param($this->verband).','.
' gruppe='.$this->db_add_param($this->gruppe).','.
' gruppe_kurzbz='.$this->db_add_param($this->gruppe_kurzbz).','.
' updateamum='.$this->db_add_param($this->updateamum).','.
' updatevon='.$this->db_add_param($this->updatevon).
" WHERE lehreinheitgruppe_id=".$this->db_add_param($this->lehreinheitgruppe_id, FHC_INTEGER).";";
}
if($this->db_query($qry))
{
//Log schreiben
return true;
}
else
{
$this->errormsg = 'Fehler beim Speichern der GruppeLE';
return false;
}
}
/**
* Sieht nach ob Gruppe schon zu dieser Lehreinheit
* zugeordnet ist.
* @param lehreinheit_id
* studiengang_kz
* semester
* verband
* gruppe
* gruppe_kurzbz
* @return true wenn vorhanden, false wenn nicht
*/
public function exists($lehreinheit_id, $studiengang_kz, $semester, $verband, $gruppe, $gruppe_kurzbz)
{
$qry = "SELECT * FROM lehre.tbl_lehreinheitgruppe WHERE lehreinheit_id=".$this->db_add_param($lehreinheit_id, FHC_INTEGER);
if($gruppe_kurzbz!='')
{
$qry .= " AND gruppe_kurzbz=".$this->db_add_param($gruppe_kurzbz);
}
else
{
$qry .= " AND semester=".$this->db_add_param($semester, FHC_INTEGER);
if($verband!='')
$qry .= " AND verband=".$this->db_add_param($verband);
if($gruppe!='')
$qry .= " AND gruppe=".$this->db_add_param($gruppe);
}
$qry.=';';
if($this->db_query($qry))
{
if($this->db_num_rows()>0)
return true;
else
return false;
}
else
{
$this->errormsg = 'Fehler beim Lesen der Lehreinheitgruppen';
return false;
}
}
/**
* Liefert alle Gruppenzuordnungen zu einer
* Lehreinheit.
* @param lehreinheit_id Lehreinheit zu der
* die Gruppen geladen werden sollen
* @return true wenn ok, false im fehlerfall
*/
public function getLehreinheitgruppe($lehreinheit_id)
{
if(!is_numeric($lehreinheit_id))
{
$this->errormsg = 'Lehreinheit_id ist ungueltig';
return false;
}
$qry = "SELECT * FROM lehre.tbl_lehreinheitgruppe WHERE lehreinheit_id=".$this->db_add_param($lehreinheit_id, FHC_INTEGER).';';
if($this->db_query($qry))
{
while($row = $this->db_fetch_object())
{
$leg_obj = new lehreinheitgruppe();
$leg_obj->lehreinheitgruppe_id = $row->lehreinheitgruppe_id;
$leg_obj->lehreinheit_id = $row->lehreinheit_id;
$leg_obj->studiengang_kz = $row->studiengang_kz;
$leg_obj->semester = $row->semester;
$leg_obj->verband = $row->verband;
$leg_obj->gruppe = $row->gruppe;
$leg_obj->gruppe_kurzbz = $row->gruppe_kurzbz;
$leg_obj->updateamum = $row->updateamum;
$leg_obj->updatevon = $row->updatevon;
$leg_obj->insertamum = $row->insertamum;
$leg_obj->insertvon = $row->insertvon;
$leg_obj->ext_id = $row->ext_id;
$this->lehreinheitgruppe[] = $leg_obj;
}
return true;
}
else
{
$this->errormsg = 'Fehler beim Laden der Daten';
return false;
}
}
/**
* Loescht die Zuornung Gruppe-Lehreinheit
* @param lehreinheigruppe_id ID des zu loeschenden Datensatzes
* @return true wenn ok, false im fehlerfall
*/
public function delete($lehreinheitgruppe_id)
{
if(!is_numeric($lehreinheitgruppe_id))
{
$this->errormsg = 'Lehreinheitgruppe_id muss eine gueltige Zahl sein';
return false;
}
$qry_del = "DELETE FROM lehre.tbl_lehreinheitgruppe WHERE lehreinheitgruppe_id=".$this->db_add_param($lehreinheitgruppe_id, FHC_INTEGER).';';
$qry = "SELECT * FROM lehre.tbl_lehreinheitgruppe WHERE lehreinheitgruppe_id=".$this->db_add_param($lehreinheitgruppe_id, FHC_INTEGER).';';
if($this->db_query($qry))
{
if($row = $this->db_fetch_object())
{
$sql_undo = "INSERT INTO lehre.tbl_lehreinheitgruppe ".
"(lehreinheitgruppe_id, lehreinheit_id, studiengang_kz, semester, ".
"verband, gruppe, gruppe_kurzbz, updateamum, updatevon, insertamum, insertvon) ".
"VALUES(".$this->db_add_param($row->lehreinheitgruppe_id, FHC_INTEGER).','.
$this->db_add_param($row->lehreinheit_id, FHC_INTEGER).','.
$this->db_add_param($row->studiengang_kz, FHC_INTEGER).','.
$this->db_add_param($row->semester, FHC_INTEGER).','.
$this->db_add_param($row->verband).','.
$this->db_add_param($row->gruppe).','.
$this->db_add_param($row->gruppe_kurzbz).','.
$this->db_add_param($row->updateamum).','.
$this->db_add_param($row->updatevon).','.
$this->db_add_param($row->insertamum).','.
$this->db_add_param($row->insertvon).');';
$log = new log();
$log->sql = $qry_del;
$log->sqlundo = $sql_undo;
$log->mitarbeiter_uid = get_uid();
if($row->gruppe_kurzbz!='')
$grp = $row->gruppe_kurzbz;
else
{
$qry_stg = "SELECT UPPER(typ::varchar(1) || kurzbz) as kuerzel FROM public.tbl_studiengang WHERE studiengang_kz=".$this->db_add_param($row->studiengang_kz, FHC_INTEGER).';';
$this->db_query($qry_stg);
$row_stg = $this->db_fetch_object();
$grp = $row_stg->kuerzel.$row->semester.$row->verband.$row->gruppe;
}
$log->beschreibung = "Gruppenzuteilung loeschen $grp - $row->lehreinheit_id";
$this->db_query('BEGIN;');
if($log->save(true))
{
if($this->db_query($qry_del))
{
$this->db_query('COMMIT;');
return true;
}
else
{
$this->db_query('ROLLBACK;');
$this->errormsg = 'Fehler beim Loeschen';
return false;
}
}
else
{
$this->db_query('ROLLBACK;');
$this->errormsg = 'Fehler beim Speichern des Log-Eintrages';
return false;
}
}
else
{
$this->errormsg = 'Datensatz wurde nicht gefunden';
return false;
}
}
else
{
$this->errormsg = 'Fehler beim Lesen aus der Datenbank';
return false;
}
}
/**
* Prueft ob die Gruppe schon dieser Lehreinheit zugeordnet ist
*/
public function checkVorhanden()
{
$qry = "SELECT
count(*) as anzahl
FROM
lehre.tbl_lehreinheitgruppe
WHERE
lehreinheit_id=".$this->db_add_param($this->lehreinheit_id, FHC_INTEGER)." AND
studiengang_kz=".$this->db_add_param($this->studiengang_kz, FHC_INTEGER);
if($this->semester!='')
$qry.=" AND semester=".$this->db_add_param($this->semester, FHC_INTEGER);
else
$qry.=" AND (semester='' OR semester is null)";
if($this->verband!='')
$qry.=" AND trim(verband)=".$this->db_add_param($this->verband);
else
$qry.=" AND (trim(verband)='' OR verband is null)";
if($this->gruppe!='')
$qry.=" AND trim(gruppe)=".$this->db_add_param($this->gruppe);
else
$qry.=" AND (trim(gruppe)='' OR gruppe is null)";
if($this->gruppe_kurzbz!='')
$qry.=" AND trim(gruppe_kurzbz)=".$this->db_add_param($this->gruppe_kurzbz);
else
$qry.= " AND (trim(gruppe_kurzbz)='' OR gruppe_kurzbz is null)";
$qry.=';';
if($this->db_query($qry))
{
if($row = $this->db_fetch_object())
{
if($row->anzahl>0)
return true;
else
return false;
}
else
{
$this->errormsg = 'Interner Fehler';
return false;
}
}
else
{
$this->errormsg='Fehler bei einer Abfrage';
return false;
}
}
/**
* Prueft ob zu der Lehreinheit bereits eine direkte Gruppe zugeordnet ist
* @param $lehreinheit_id ID der lehreinheit
* @return true und objekt mit Gruppe falls vorhanden oder false im fehlerfall
*/
public function getDirectGroup($lehreinheit_id)
{
$qry = "
SELECT
tbl_lehreinheitgruppe.*
FROM
lehre.tbl_lehreinheitgruppe
JOIN public.tbl_gruppe USING(gruppe_kurzbz)
WHERE
tbl_gruppe.direktinskription
AND tbl_lehreinheitgruppe.lehreinheit_id=".$this->db_add_param($lehreinheit_id);
if($result = $this->db_query($qry))
{
if($row = $this->db_fetch_object($result))
{
$this->lehreinheitgruppe_id = $row->lehreinheitgruppe_id;
$this->lehreinheit_id = $row->lehreinheit_id;
$this->studiengang_kz = $row->studiengang_kz;
$this->semester = $row->semester;
$this->verband = $row->verband;
$this->gruppe = $row->gruppe;
$this->gruppe_kurzbz = $row->gruppe_kurzbz;
$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
return false;
}
else
{
$this->errormsg = 'Fehler beim Laden der Daten';
return false;
}
}
}
?>
+8 -7
View File
@@ -619,7 +619,7 @@ class student extends benutzer
nachname, vorname, vornamen, gebdatum, gebort, gebzeit, anmerkung, homepage, svnr,
ersatzkennzeichen, familienstand, geschlecht, anzahlkinder, tbl_person.aktiv, kurzbeschreibung,
tbl_benutzer.aktiv as bnaktiv, tbl_student.studiengang_kz, tbl_student.semester, tbl_student.verband,
tbl_student.gruppe, tbl_student.prestudent_id
tbl_student.gruppe, tbl_student.prestudent_id, tbl_benutzer.uid
FROM
public.tbl_person
JOIN public.tbl_benutzer USING(person_id)
@@ -671,6 +671,7 @@ class student extends benutzer
$l->verband = $row->verband;
$l->gruppe = $row->gruppe;
$l->prestudent_id = $row->prestudent_id;
$l->uid = $row->uid;
$this->result[]=$l;
}
}
@@ -823,7 +824,7 @@ class student extends benutzer
return false;
}
}
/**
* Checkt, ob ein Student schon BIS-Gemeldet wurde.
*
@@ -846,13 +847,13 @@ class student extends benutzer
$datumNovemberVorjahr = date('Y', strtotime("-1 year")).'-11-15';
$datumApril = date('Y').'-04-15';
$datumNovember = date('Y').'-11-15';
$timestampNovemberVorjahr = strtotime(date('Y', strtotime("-1 year")).'-11-15');
$timestampApril = strtotime(date('Y').'-04-15');
$timestampNovember = strtotime(date('Y').'-11-15');
$heute = time();
if ($heute - $timestampNovemberVorjahr >= $heute - $timestampApril &&
$heute - $timestampApril < 0)
$datumLetzteMeldung = $datumNovemberVorjahr;
@@ -861,7 +862,7 @@ class student extends benutzer
$datumLetzteMeldung = $datumApril;
else
$datumLetzteMeldung = $datumNovember;
if($result = $this->db_query($qry))
{
if($this->db_num_rows($result) > 0)
@@ -871,7 +872,7 @@ class student extends benutzer
// Wenn der Studentenstatus kleiner oder gleich dem Datum der letzten Meldung ist, wurde der Student gemeldet
if (strtotime($row->datum) <= strtotime($datumLetzteMeldung))
return true;
else
else
return false;
}
else
@@ -880,7 +881,7 @@ class student extends benutzer
return null;
}
}
else
else
return null;
}
else
+70
View File
@@ -0,0 +1,70 @@
<?php
/* Copyright (C) 2019 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: Andreas Oesterreicher <oesi@technikum-wien.at>
*/
require_once('../config/vilesci.config.inc.php');
require_once('../include/rdf.class.php');
require_once('../include/basis_db.class.php');
require_once('../include/functions.inc.php');
require_once('../include/benutzerberechtigung.class.php');
require_once('../include/student.class.php');
$user = get_uid();
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($user);
if(!$rechte->isBerechtigt('lehre/lehrveranstaltung'))
die($rechte->errormsg);
$datum_obj = new datum();
$oRdf = new rdf('BENUTZER','http://www.technikum-wien.at/benutzer');
$filter = filter_input(INPUT_GET,'filter');
if (mb_strlen($filter) < 3)
die('Filter muss mindestens 3 Zeichen lang sein');
$benutzer = new student();
$benutzer->getTab($filter);
$studiengang = new studiengang();
$studiengang->getAll(null, false);
$oRdf->sendHeader();
$db = new basis_db();
$i=0;
foreach($benutzer->result as $row)
{
if(isset($studiengang->kuerzel_arr[$row->studiengang_kz]))
$stg = $studiengang->kuerzel_arr[$row->studiengang_kz];
else
$stg = '';
$i=$oRdf->newObjekt($i);
$oRdf->obj[$i]->setAttribut('uid',$row->uid,true);
$oRdf->obj[$i]->setAttribut('vorname',$row->vorname,true);
$oRdf->obj[$i]->setAttribut('nachname',$row->nachname,true);
$oRdf->obj[$i]->setAttribut('studiengang',$stg,true);
$oRdf->obj[$i]->setAttribut('semester',$row->semester,true);
$oRdf->addSequence($i);
$i++;
}
$oRdf->sendRdfText();
?>
+76
View File
@@ -0,0 +1,76 @@
<?php
/* Copyright (C) 2019 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: Andreas Oesterreicher <oesi@technikum-wien.at>
*/
require_once('../config/vilesci.config.inc.php');
require_once('../include/rdf.class.php');
require_once('../include/basis_db.class.php');
require_once('../include/functions.inc.php');
require_once('../include/benutzerberechtigung.class.php');
$user = get_uid();
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($user);
if (!$rechte->isBerechtigt('lehre/lehrveranstaltung'))
die($rechte->errormsg);
$datum_obj = new datum();
$oRdf = new rdf('LEHREINHEITDIREKT','http://www.technikum-wien.at/lehreinheitdirekt');
$lehreinheit_id = filter_input(INPUT_GET,'lehreinheit_id');
if ($lehreinheit_id == '' || !is_numeric($lehreinheit_id))
{
die('LehreinheitID ungueltig');
}
$oRdf->sendHeader();
$db = new basis_db();
$qry = "
SELECT
uid, vorname, nachname, gruppe_kurzbz
FROM
lehre.tbl_lehreinheitgruppe
JOIN public.tbl_gruppe USING(gruppe_kurzbz)
JOIN public.tbl_benutzergruppe USING(gruppe_kurzbz)
JOIN public.tbl_benutzer USING(uid)
JOIN public.tbl_person USING(person_id)
WHERE
tbl_lehreinheitgruppe.lehreinheit_id=".$db->db_add_param($lehreinheit_id, FHC_INTEGER)."
AND tbl_gruppe.direktinskription
ORDER BY vorname, nachname";
if ($result = $db->db_query($qry))
{
$i = 0;
while ($row = $db->db_fetch_object($result))
{
$i = $oRdf->newObjekt($i);
$oRdf->obj[$i]->setAttribut('uid', $row->uid,true);
$oRdf->obj[$i]->setAttribut('vorname', $row->vorname,true);
$oRdf->obj[$i]->setAttribut('nachname', $row->nachname,true);
$oRdf->obj[$i]->setAttribut('gruppe_kurzbz', $row->gruppe_kurzbz,true);
$oRdf->addSequence($i);
$i++;
}
}
$oRdf->sendRdfText();
?>
+5
View File
@@ -70,6 +70,11 @@ foreach ($DAO_obj->lehreinheitgruppe as $row)
$bezeichnung = $row->gruppe_kurzbz;
$gruppe = new gruppe();
$gruppe->load($row->gruppe_kurzbz);
// Direkte Gruppen werden uebersprungen
if($gruppe->direktinskription)
continue;
$beschreibung = $gruppe->bezeichnung;
$qry_verplant = "SELECT 1 FROM lehre.tbl_stundenplandev
+26 -3
View File
@@ -355,7 +355,16 @@ $oRdf->sendHeader();
$row_lf = $db->db_fetch_object($result_lf);
//Gruppen holen
$qry = "SELECT upper(tbl_studiengang.typ::varchar(1) || tbl_studiengang.kurzbz) as kuerzel, * FROM lehre.tbl_lehreinheitgruppe LEFT JOIN public.tbl_studiengang USING(studiengang_kz) WHERE lehreinheit_id='$row_le->lehreinheit_id'";
$qry = "SELECT
upper(tbl_studiengang.typ::varchar(1) || tbl_studiengang.kurzbz) as kuerzel,
tbl_lehreinheitgruppe.*,
tbl_gruppe.direktinskription
FROM
lehre.tbl_lehreinheitgruppe
LEFT JOIN public.tbl_studiengang USING(studiengang_kz)
LEFT JOIN public.tbl_gruppe USING(gruppe_kurzbz)
WHERE lehreinheit_id=".$db->db_add_param($row_le->lehreinheit_id);
$result_grp = $db->db_query($qry);
$grp='';
while($row_grp = $db->db_fetch_object($result_grp))
@@ -363,7 +372,11 @@ $oRdf->sendHeader();
if($row_grp->gruppe_kurzbz=='')
$grp.=' '.$row_grp->kuerzel.trim($row_grp->semester).trim($row_grp->verband).trim($row_grp->gruppe);
else
$grp.=' '.$row_grp->gruppe_kurzbz;
{
// Direkte Gruppen werden nicht angezeigt
if(!$db->db_parse_bool($row_grp->direktinskription))
$grp.=' '.$row_grp->gruppe_kurzbz;
}
}
//Lektoren und Stunden holen
$qry = "SELECT kurzbz, semesterstunden, planstunden FROM lehre.tbl_lehreinheitmitarbeiter JOIN public.tbl_mitarbeiter USING(mitarbeiter_uid) WHERE lehreinheit_id='$row_le->lehreinheit_id'";
@@ -377,7 +390,17 @@ $oRdf->sendHeader();
$semesterstunden.=$row_lkt->semesterstunden.' ';
$planstunden.=$row_lkt->planstunden.' ';
}
$qry = "SELECT tbl_fachbereich.bezeichnung FROM public.tbl_fachbereich, lehre.tbl_lehrveranstaltung as lehrfach, lehre.tbl_lehreinheit WHERE tbl_fachbereich.oe_kurzbz=lehrfach.oe_kurzbz AND lehrfach.lehrveranstaltung_id=tbl_lehreinheit.lehrfach_id AND tbl_lehreinheit.lehreinheit_id=".$db->db_add_param($row_le->lehreinheit_id, FHC_INTEGER);
$qry = "SELECT
tbl_organisationseinheit.bezeichnung
FROM
public.tbl_organisationseinheit,
lehre.tbl_lehrveranstaltung as lehrfach,
lehre.tbl_lehreinheit
WHERE
tbl_organisationseinheit.oe_kurzbz = lehrfach.oe_kurzbz
AND lehrfach.lehrveranstaltung_id = tbl_lehreinheit.lehrfach_id
AND tbl_lehreinheit.lehreinheit_id = ".$db->db_add_param($row_le->lehreinheit_id, FHC_INTEGER);
$fachbereich='';
if($result_fb = $db->db_query($qry))
if($row_fb = $db->db_fetch_object($result_fb))
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -116,7 +116,7 @@ foreach ($obj->result as $row)
<NOTE:lehrveranstaltung_kurzbz><![CDATA['.$lv_obj->kurzbz.']]></NOTE:lehrveranstaltung_kurzbz>
<NOTE:student_nachname><![CDATA['.$benutzer->nachname.']]></NOTE:student_nachname>
<NOTE:student_vorname><![CDATA['.$benutzer->vorname.']]></NOTE:student_vorname>
<NOTE:studiengang><![CDATA['.$stg_arr[$benutzer->studiengang_kz].']]></NOTE:studiengang>
<NOTE:studiengang><![CDATA['.(isset($stg_arr[$benutzer->studiengang_kz])?$stg_arr[$benutzer->studiengang_kz]:'').']]></NOTE:studiengang>
<NOTE:studiengang_kz><![CDATA['.$benutzer->studiengang_kz.']]></NOTE:studiengang_kz>
<NOTE:studiengang_lv><![CDATA['.$stg_arr[$lv_obj->studiengang_kz].']]></NOTE:studiengang_lv>
<NOTE:semester_lv><![CDATA['.$lv_obj->semester.']]></NOTE:semester_lv>
+13 -1
View File
@@ -2513,6 +2513,18 @@ if($result = $db->db_query("SELECT 1 FROM system.tbl_app WHERE app='reihungstest
}
}
// Spalte direktinskription fuer public.tbl_gruppe
if(!$result = @$db->db_query("SELECT direktinskription FROM public.tbl_gruppe LIMIT 1"))
{
$qry = "ALTER TABLE public.tbl_gruppe ADD COLUMN direktinskription boolean NOT NULL DEFAULT FALSE;
COMMENT ON COLUMN public.tbl_gruppe.direktinskription IS 'Verwendung fuer direkte Zuweisung zu Lehreinheit'";
if(!$db->db_query($qry))
echo '<strong>public.tbl_gruppe: '.$db->db_last_error().'</strong><br>';
else
echo '<br>public.tbl_gruppe: Spalte direktinskription hinzugefuegt';
}
// *** Pruefung und hinzufuegen der neuen Attribute und Tabellen
echo '<H2>Pruefe Tabellen und Attribute!</H2>';
@@ -2687,7 +2699,7 @@ $tabellen=array(
"public.tbl_fotostatus" => array("fotostatus_kurzbz","beschreibung"),
"public.tbl_funktion" => array("funktion_kurzbz","beschreibung","aktiv","fachbereich","semester"),
"public.tbl_geschaeftsjahr" => array("geschaeftsjahr_kurzbz","start","ende","bezeichnung"),
"public.tbl_gruppe" => array("gruppe_kurzbz","studiengang_kz","semester","bezeichnung","beschreibung","sichtbar","lehre","aktiv","sort","mailgrp","generiert","updateamum","updatevon","insertamum","insertvon","ext_id","orgform_kurzbz","gid","content_visible","gesperrt","zutrittssystem","aufnahmegruppe"),
"public.tbl_gruppe" => array("gruppe_kurzbz","studiengang_kz","semester","bezeichnung","beschreibung","sichtbar","lehre","aktiv","sort","mailgrp","generiert","updateamum","updatevon","insertamum","insertvon","ext_id","orgform_kurzbz","gid","content_visible","gesperrt","zutrittssystem","aufnahmegruppe","direktinskription"),
"public.tbl_kontakt" => array("kontakt_id","person_id","kontakttyp","anmerkung","kontakt","zustellung","updateamum","updatevon","insertamum","insertvon","ext_id","standort_id"),
"public.tbl_kontaktmedium" => array("kontaktmedium_kurzbz","beschreibung"),
"public.tbl_kontakttyp" => array("kontakttyp","beschreibung","bezeichnung_mehrsprachig"),
+145 -91
View File
@@ -31,6 +31,7 @@ require_once('../../include/lehreinheitmitarbeiter.class.php');
require_once('../../include/lehreinheitgruppe.class.php');
require_once('../../include/benutzerberechtigung.class.php');
require_once('../../include/mitarbeiter.class.php');
require_once('../../include/gruppe.class.php');
if (!$db = new basis_db())
die('Es konnte keine Verbindung zum Server aufgebaut werden.');
@@ -39,7 +40,7 @@ $user = get_uid();
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($user);
if(!$rechte->isBerechtigt('lehre/vorrueckung', null, 'suid'))
if (!$rechte->isBerechtigt('lehre/vorrueckung', null, 'suid'))
die($rechte->errormsg);
$stg_obj = new studiengang();
@@ -56,34 +57,33 @@ $studiengang_kz = (isset($_GET['studiengang_kz'])?$_GET['studiengang_kz']:'');
$semester = (isset($_GET['semester'])?$_GET['semester']:'');
$stsem_von = (isset($_GET['stsem_von'])?$_GET['stsem_von']:'');
$stsem_nach = (isset($_GET['stsem_nach'])?$_GET['stsem_nach']:'');
$text='';
$anzahl_lehreinheiten=0;
$anzahl_lehreinheitmitarbeiter=0;
$anzahl_lehreinheitgruppe=0;
$error_lehreinheit=0;
$error_lehreinheitmitarbeiter=0;
$error_lehreinheitgruppe=0;
$text = '';
$anzahl_lehreinheiten = 0;
$anzahl_lehreinheitmitarbeiter = 0;
$anzahl_lehreinheitgruppe = 0;
$error_lehreinheit = 0;
$error_lehreinheitmitarbeiter = 0;
$error_lehreinheitgruppe = 0;
if($stsem_von=='')
if ($stsem_von == '')
{
$stsem_obj = new studiensemester();
$stsem_von = $stsem_obj->getPrevious();
}
if($stsem_nach=='')
if ($stsem_nach == '')
{
$stsem_obj = new studiensemester();
$stsem_obj->getNextStudiensemester();
$stsem_nach = $stsem_obj->studiensemester_kurzbz;
}
echo '
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
echo '<!DOCTYPE HTML>
<html>
<head>
<title>Lehreinheit Vorrueckung</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" href="../../skin/vilesci.css" type="text/css">
<title>Lehreinheit Vorrueckung</title>
<meta charset="UTF-8">
<link rel="stylesheet" href="../../skin/vilesci.css" type="text/css">
</head>
<body style="background-color:#eeeeee;">
<h2>Lehreinheiten Vorr&uuml;ckung</h2>
@@ -93,10 +93,10 @@ echo 'Studiengang: <SELECT name="studiengang_kz">';
echo '<OPTION value="">---Stg ausw&auml;hlen---</OPTION>';
foreach($stg_obj->result as $stg)
{
if($studiengang_kz==$stg->studiengang_kz)
$selected='selected';
if ($studiengang_kz == $stg->studiengang_kz)
$selected = 'selected';
else
$selected='';
$selected = '';
echo '<OPTION value="'.$stg->studiengang_kz.'" '.$selected.'>'.$stg->kuerzel.' ('.$stg->kurzbzlang.')</OPTION>';
}
@@ -104,12 +104,12 @@ echo '</SELECT>';
echo ' Semester: <SELECT name="semester">';
echo '<OPTION value="">-- Alle --</OPTION>';
for($i=1;$i<=8;$i++)
for ($i = 1;$i <= 8;$i++)
{
if($semester==$i)
$selected='selected';
if ($semester == $i)
$selected = 'selected';
else
$selected='';
$selected = '';
echo '<OPTION value="'.$i.'" '.$selected.'>'.$i.'</OPTION>';
}
@@ -121,7 +121,7 @@ $stsem_obj->getAll();
foreach ($stsem_obj->studiensemester as $stsem)
{
if($stsem_von == $stsem->studiensemester_kurzbz)
if ($stsem_von == $stsem->studiensemester_kurzbz)
$selected = 'selected';
else
$selected = '';
@@ -134,7 +134,7 @@ echo ' Nach: <SELECT name="stsem_nach">';
foreach ($stsem_obj->studiensemester as $stsem)
{
if($stsem_nach == $stsem->studiensemester_kurzbz)
if ($stsem_nach == $stsem->studiensemester_kurzbz)
$selected = 'selected';
else
$selected = '';
@@ -146,22 +146,38 @@ echo '</SELECT>';
echo '&nbsp;&nbsp;<input type="submit" value="Vorrücken"><br>';
if (defined('VILESCI_STUNDENSATZ_VORRUECKUNG') && VILESCI_STUNDENSATZ_VORRUECKUNG != '' && is_numeric(VILESCI_STUNDENSATZ_VORRUECKUNG))
echo '<br><span style="color: blue">Alle Lehraufträge werden mit dem Stundensatz "'.VILESCI_STUNDENSATZ_VORRUECKUNG.'" vorgerückt</span>';
elseif (defined('VILESCI_STUNDENSATZ_VORRUECKUNG') && VILESCI_STUNDENSATZ_VORRUECKUNG != '' && VILESCI_STUNDENSATZ_VORRUECKUNG == 'default')
echo '<br><span style="color: blue">Alle Lehraufträge werden mit dem aktuell hinterlegten Standard-Stundensatz der/des Lehrenden vorgerückt</span>';
if (defined('VILESCI_STUNDENSATZ_VORRUECKUNG')
&& VILESCI_STUNDENSATZ_VORRUECKUNG != ''
&& is_numeric(VILESCI_STUNDENSATZ_VORRUECKUNG))
{
echo '<br><span style="color: blue">
Alle Lehraufträge werden mit dem Stundensatz "'.VILESCI_STUNDENSATZ_VORRUECKUNG.'" vorgerückt
</span>';
}
elseif (defined('VILESCI_STUNDENSATZ_VORRUECKUNG')
&& VILESCI_STUNDENSATZ_VORRUECKUNG != ''
&& VILESCI_STUNDENSATZ_VORRUECKUNG == 'default')
{
echo '<br><span style="color: blue">
Alle Lehraufträge werden mit dem aktuell hinterlegten Standard-Stundensatz der/des Lehrenden vorgerückt
</span>';
}
else
echo '<br><span style="color: blue">Alle Lehraufträge werden mit dem Stundensatz des Vorjahres vorgerückt</span>';
{
echo '<br><span style="color: blue">
Alle Lehraufträge werden mit dem Stundensatz des Vorjahres vorgerückt
</span>';
}
echo '</form>';
if($studiengang_kz!='' && $stsem_von!='' && $stsem_nach!='')
if ($studiengang_kz != '' && $stsem_von != '' && $stsem_nach != '')
{
$stg_obj = new studiengang();
if(!$stg_obj->load($studiengang_kz))
if (!$stg_obj->load($studiengang_kz))
die('Studiengang kann nicht geladen werden');
if(!$rechte->isBerechtigt('lehre/vorrueckung', $stg_obj->oe_kurzbz, 'suid'))
if (!$rechte->isBerechtigt('lehre/vorrueckung', $stg_obj->oe_kurzbz, 'suid'))
die($rechte->errormsg);
echo '<br>Starte Vorrückung '.$stg_arr[$studiengang_kz]." $semester von $stsem_von nach $stsem_nach ...";
@@ -172,10 +188,10 @@ if($studiengang_kz!='' && $stsem_von!='' && $stsem_nach!='')
WHERE
tbl_lehrveranstaltung.studiengang_kz=".$db->db_add_param($studiengang_kz)." AND
tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($stsem_von);
if($semester!='')
if ($semester != '')
$qry .= " AND tbl_lehrveranstaltung.semester=".$db->db_add_param($semester);
if($result = $db->db_query($qry))
if ($result = $db->db_query($qry))
{
$anzahl_von = $db->db_num_rows($result);
}
@@ -186,92 +202,114 @@ if($studiengang_kz!='' && $stsem_von!='' && $stsem_nach!='')
WHERE
tbl_lehrveranstaltung.studiengang_kz=".$db->db_add_param($studiengang_kz)." AND
tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($stsem_nach);
if($semester!='')
if ($semester != '')
$qry_nach .= " AND tbl_lehrveranstaltung.semester=".$db->db_add_param($semester);
if($result = $db->db_query($qry_nach))
if ($result = $db->db_query($qry_nach))
{
$anzahl_nach = $db->db_num_rows($result);
$baseurl = basename($_SERVER['REQUEST_URI']);
if ($anzahl_nach >= $anzahl_von && !isset($_GET['continue']))
{
echo '<br><br><span style="color:red">Es sind schon Lehreinheiten fuer das '.$stsem_nach.' in '.$stg_arr[$studiengang_kz].' '.$semester.' vorhanden. Trotzdem fortsetzen?</span><br><br>
echo '<br><br><span style="color:red">Es sind schon Lehreinheiten fuer das
'.$stsem_nach.' in '.$stg_arr[$studiengang_kz].' '.$semester.' vorhanden.
Trotzdem fortsetzen?</span><br><br>
<form action="'.$baseurl.'&continue" method="POST"><input type="submit" value="Fortsetzen"></form>';
die ();
}
}
if($result = $db->db_query($qry))
if ($result = $db->db_query($qry))
{
while($row = $db->db_fetch_object($result))
{
$text.="<br>Lehreinheit $row->lehreinheit_id wird vorgerueckt";
$text .= "<br>Lehreinheit $row->lehreinheit_id wird vorgerueckt";
$le_obj = new lehreinheit();
//Lehreinheit Neu Anlegen
if($le_obj->load($row->lehreinheit_id))
if ($le_obj->load($row->lehreinheit_id))
{
$le_obj->new=true;
$le_obj->studiensemester_kurzbz=$stsem_nach;
$le_obj->insertamum=date('Y-m-d H:i:s');
$le_obj->insertvon='Vorrueckung_'.$user;
$le_obj->ext_id='';
$le_obj->unr='';
$le_obj->new = true;
$le_obj->studiensemester_kurzbz = $stsem_nach;
$le_obj->insertamum = date('Y-m-d H:i:s');
$le_obj->insertvon = 'Vorrueckung_'.$user;
$le_obj->ext_id = '';
$le_obj->unr = '';
if($le_obj->save())
if ($le_obj->save())
{
$anzahl_lehreinheiten++;
//LehreinheitMitarbeiter Eintrag neu Anlengen
$qry_lem="SELECT mitarbeiter_uid FROM lehre.tbl_lehreinheitmitarbeiter
$qry_lem = "SELECT mitarbeiter_uid FROM lehre.tbl_lehreinheitmitarbeiter
WHERE lehreinheit_id=".$db->db_add_param($row->lehreinheit_id);
if($result_lem = $db->db_query($qry_lem))
if ($result_lem = $db->db_query($qry_lem))
{
while($row_lem = $db->db_fetch_object($result_lem))
while ($row_lem = $db->db_fetch_object($result_lem))
{
$lem_obj = new lehreinheitmitarbeiter();
if($lem_obj->load($row->lehreinheit_id, $row_lem->mitarbeiter_uid))
if ($lem_obj->load($row->lehreinheit_id, $row_lem->mitarbeiter_uid))
{
// Pruefen ob der Lektor ueber die im Config festgelegte Stundengrenze
// kommt und Meldung ausgeben
$qry_stundengrenze="SELECT mitarbeiter_uid,fixangestellt,SUM(semesterstunden) AS summe,
aktiv FROM lehre.tbl_lehreinheitmitarbeiter
JOIN lehre.tbl_lehreinheit USING (lehreinheit_id)
JOIN public.tbl_mitarbeiter USING (mitarbeiter_uid)
JOIN public.tbl_benutzer ON (uid=mitarbeiter_uid)
WHERE mitarbeiter_uid=".$db->db_add_param($row_lem->mitarbeiter_uid)."
AND studiensemester_kurzbz=".$db->db_add_param($stsem_von)."
GROUP BY mitarbeiter_uid,fixangestellt,aktiv";
//echo '<br>UNION<br>'.$qry_stundengrenze;
if($result_stundengrenze = $db->db_query($qry_stundengrenze))
$qry_stundengrenze="
SELECT
mitarbeiter_uid,fixangestellt,SUM(semesterstunden) AS summe, aktiv
FROM
lehre.tbl_lehreinheitmitarbeiter
JOIN lehre.tbl_lehreinheit USING (lehreinheit_id)
JOIN public.tbl_mitarbeiter USING (mitarbeiter_uid)
JOIN public.tbl_benutzer ON (uid=mitarbeiter_uid)
WHERE
mitarbeiter_uid=".$db->db_add_param($row_lem->mitarbeiter_uid)."
AND studiensemester_kurzbz=".$db->db_add_param($stsem_von)."
GROUP BY
mitarbeiter_uid, fixangestellt, aktiv";
if ($result_stundengrenze = $db->db_query($qry_stundengrenze))
{
if($row_stundengrenze = $db->db_fetch_object($result_stundengrenze))
if ($row_stundengrenze = $db->db_fetch_object($result_stundengrenze))
{
if ($row_stundengrenze->fixangestellt=='f' && $row_stundengrenze->summe>WARN_SEMESTERSTD_FREI)
if (!$db->db_parse_bool($row_stundengrenze->fixangestellt)
&& $row_stundengrenze->summe > WARN_SEMESTERSTD_FREI)
{
$text.=" <span style='color:red'>Stundengrenze ".WARN_SEMESTERSTD_FREI." Stunden ueberschritten von $row_lem->mitarbeiter_uid</span>";
$text .= " <span style='color:red'>
Stundengrenze ".WARN_SEMESTERSTD_FREI." Stunden ueberschritten
von $row_lem->mitarbeiter_uid</span>";
}
elseif ($row_stundengrenze->fixangestellt=='t' && $row_stundengrenze->summe>WARN_SEMESTERSTD_FIX)
elseif ($db->db_parse_bool($row_stundengrenze->fixangestellt)
&& $row_stundengrenze->summe > WARN_SEMESTERSTD_FIX)
{
$text.=" <span style='color:red'>Stundengrenze ".WARN_SEMESTERSTD_FIX." Stunden ueberschritten von $row_lem->mitarbeiter_uid</span>";
$text .= " <span style='color:red'>
Stundengrenze ".WARN_SEMESTERSTD_FIX." Stunden ueberschritten
von $row_lem->mitarbeiter_uid</span>";
}
// Meldung, wenn Benutzer inaktiv
if ($row_stundengrenze->aktiv == 'f')
if ($db->db_parse_bool($row_stundengrenze->aktiv) == false)
{
$text.="; <span style='color:orange'>Achtung! MitarbeiterIn <b>$row_lem->mitarbeiter_uid</b> ist nicht aktiv</span>";
$text .= "; <span style='color:orange'>Achtung! MitarbeiterIn
<b>$row_lem->mitarbeiter_uid</b> ist nicht aktiv</span>";
}
}
}
$lem_obj->lehreinheit_id=$le_obj->lehreinheit_id;
$lem_obj->lehreinheit_id = $le_obj->lehreinheit_id;
$lem_obj->new = true;
// Wenn VILESCI_STUNDENSATZ_VORRUECKUNG definiert ist, wird nicht der Stundensatz des Vorjahres verwendet
// Wenn VILESCI_STUNDENSATZ_VORRUECKUNG numerisch ist, wird dieser Wert fuer den Stundensatz verwendet
if (defined('VILESCI_STUNDENSATZ_VORRUECKUNG') && VILESCI_STUNDENSATZ_VORRUECKUNG != '' && is_numeric(VILESCI_STUNDENSATZ_VORRUECKUNG))
// Wenn VILESCI_STUNDENSATZ_VORRUECKUNG definiert ist,
// wird nicht der Stundensatz des Vorjahres verwendet
// Wenn VILESCI_STUNDENSATZ_VORRUECKUNG numerisch ist,
// wird dieser Wert fuer den Stundensatz verwendet
if (defined('VILESCI_STUNDENSATZ_VORRUECKUNG')
&& VILESCI_STUNDENSATZ_VORRUECKUNG != ''
&& is_numeric(VILESCI_STUNDENSATZ_VORRUECKUNG))
{
$lem_obj->stundensatz = VILESCI_STUNDENSATZ_VORRUECKUNG;
}
// Wenn VILESCI_STUNDENSATZ_VORRUECKUNG default ist, wird der Standard-Stundensatz des jeweiligen Lektors geladen und gespeichert
elseif (defined('VILESCI_STUNDENSATZ_VORRUECKUNG') && VILESCI_STUNDENSATZ_VORRUECKUNG != '' && VILESCI_STUNDENSATZ_VORRUECKUNG == 'default')
// Wenn VILESCI_STUNDENSATZ_VORRUECKUNG default ist,
//wird der Standard-Stundensatz des jeweiligen Lektors geladen und gespeichert
elseif (defined('VILESCI_STUNDENSATZ_VORRUECKUNG')
&& VILESCI_STUNDENSATZ_VORRUECKUNG != ''
&& VILESCI_STUNDENSATZ_VORRUECKUNG == 'default')
{
$stundensatz = new mitarbeiter($row_lem->mitarbeiter_uid);
$lem_obj->stundensatz = $stundensatz->stundensatz;
@@ -279,83 +317,99 @@ if($studiengang_kz!='' && $stsem_von!='' && $stsem_nach!='')
$lem_obj->insertamum = date('Y-m-d H:i:s');
$lem_obj->insertvon = 'Vorrueckung_'.$user;
$lem_obj->ext_id = '';
$lem_obj->vertrag_id='';
$lem_obj->vertrag_id = '';
if(!$lem_obj->save())
if (!$lem_obj->save())
{
$error_lehreinheitmitarbeiter++;
$text.='Fehler beim Anlegen des Lehreinheitmitarbeiter Eintrages: '.$lem_obj->errormsg;
$text .= 'Fehler beim Anlegen des Lehreinheitmitarbeiter
Eintrages: '.$lem_obj->errormsg;
}
else
$anzahl_lehreinheitmitarbeiter++;
}
else
{
$text.='Fehler beim Laden der Mitarbeiter';
$text .= 'Fehler beim Laden der Mitarbeiter';
$error_lehreinheitmitarbeiter++;
}
}
}
else
{
$text.='Fehler beim Laden der Mitarbeiter '.$db->db_last_error();
$text .= 'Fehler beim Laden der Mitarbeiter '.$db->db_last_error();
$error_lehreinheitmitarbeiter++;
}
//LehreinheitGruppe Eintrag neu Anlegen
$qry_leg="SELECT lehreinheitgruppe_id FROM lehre.tbl_lehreinheitgruppe
WHERE lehreinheit_id=".$db->db_add_param($row->lehreinheit_id)."
$qry_leg = "
SELECT
lehreinheitgruppe_id
FROM
lehre.tbl_lehreinheitgruppe
WHERE
lehreinheit_id=".$db->db_add_param($row->lehreinheit_id)."
AND NOT (tbl_lehreinheitgruppe.semester='0' AND tbl_lehreinheitgruppe.verband='I')";
if($result_leg = $db->db_query($qry_leg))
if ($result_leg = $db->db_query($qry_leg))
{
while($row_leg = $db->db_fetch_object($result_leg))
{
$leg_obj = new lehreinheitgruppe();
if($leg_obj->load($row_leg->lehreinheitgruppe_id))
if ($leg_obj->load($row_leg->lehreinheitgruppe_id))
{
$leg_obj->lehreinheit_id=$le_obj->lehreinheit_id;
// Direktinskriptionsgruppen werden nicht vorgerückt
if ($leg_obj->gruppe_kurzbz != '')
{
$grp = new gruppe();
$grp->load($leg_obj->gruppe_kurzbz);
if ($grp->direktinskription)
continue;
}
$leg_obj->lehreinheit_id = $le_obj->lehreinheit_id;
$leg_obj->new = true;
$leg_obj->insertamum = date('Y-m-d H:i:s');
$leg_obj->insertvon = 'Vorrueckung_'.$user;
$leg_obj->ext_id = '';
if(!$leg_obj->save())
if (!$leg_obj->save())
{
$error_lehreinheitgruppe++;
$text.='Fehler beim Anlegen des Lehreinheitgruppe Eintrages: '.$leg_obj->errormsg;
$text .= 'Fehler beim Anlegen des Lehreinheitgruppe Eintrages: '.$leg_obj->errormsg;
}
else
$anzahl_lehreinheitgruppe++;
}
else
{
$text.='Fehler beim Laden der Gruppe '.$leg_obj->errormsg.' '.$db->db_last_error();
$text .= 'Fehler beim Laden der Gruppe '.$leg_obj->errormsg.' '.$db->db_last_error();
$error_lehreinheitgruppe++;
}
}
}
else
{
$text.='Fehler beim Auslesen der Gruppen';
$text .= 'Fehler beim Auslesen der Gruppen';
$error_lehreinheitgruppe++;
}
}
else
{
$error_lehreinheit++;
$text.='Fehler beim Speichern der Lehreinheit '.$le_obj->errormsg;
$text .= 'Fehler beim Speichern der Lehreinheit '.$le_obj->errormsg;
}
}
else
{
$error_lehreinheit++;
$text.='Fehler beim Laden der Lehreinheit '.$le_obj->errormsg;
$text .= 'Fehler beim Laden der Lehreinheit '.$le_obj->errormsg;
}
}
}
else
{
$text.='Fehler beim Laden der Lehreinheiten '.$db->db_last_error();
$text .= 'Fehler beim Laden der Lehreinheiten '.$db->db_last_error();
$error_lehreinheit++;
}