Merge branch 'master' into feature-20088/BIS_Studiengangsmeldung_Anpassungen

This commit is contained in:
KarpAlex
2022-09-30 18:14:33 +02:00
69 changed files with 5403 additions and 631 deletions
+187
View File
@@ -0,0 +1,187 @@
<?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: Alexei Karpenko <karpenko@technikum-wien.at>.
*/
require_once(dirname(__FILE__).'/basis_db.class.php');
class gruppemanager extends basis_db
{
public $new;
//Tabellenspalten
public $uid; // varchar(32)
public $gruppe_kurzbz; // varchar(32)
public $insertamum; // timestamp
public $insertvon; // varchar(32)
public $uids = array(); // array
/**
* Konstruktor - Laedt optional einen Gruppenmanager
* @param $uid
* @param $gruppe_kurzbz
*/
public function __construct($uid=null, $gruppe_kurzbz=null)
{
parent::__construct();
if(!is_null($gruppe_kurzbz) && !is_null($uid))
$this->load($uid, $gruppe_kurzbz);
}
/**
* Laedt die BenutzerGruppe
* @param uid, gruppe_kurzbz
* @return true wenn ok, false im Fehlerfall
*/
public function load($uid, $gruppe_kurzbz)
{
$qry = "SELECT * FROM public.tbl_gruppe_manager WHERE uid=".$this->db_add_param($uid)." AND gruppe_kurzbz=".$this->db_add_param($gruppe_kurzbz);
if($this->db_query($qry))
{
if($row = $this->db_fetch_object())
{
$this->uid = $row->uid;
$this->gruppe_kurzbz = $row->gruppe_kurzbz;
$this->insertamum = $row->insertamum;
$this->insertvon = $row->insertvon;
return true;
}
else
{
$this->errormsg = 'Es wurde kein Datensatz gefunden';
return false;
}
}
else
{
$this->errormsg = 'Fehler beim Laden des Datensatzes';
return false;
}
}
/**
* Laedt die Manager einer Benutzergruppe
* @param gruppe_kurzbz
* @return true wenn ok, false im Fehlerfall
*/
public function load_uids($gruppe_kurzbz)
{
$qry = "SELECT * FROM public.tbl_gruppe_manager
WHERE gruppe_kurzbz=".$this->db_add_param($gruppe_kurzbz);
if ($this->db_query($qry))
{
if ($this->db_num_rows() == 0)
return false;
else
{
while ($row = $this->db_fetch_object())
{
$gm_obj = new gruppemanager();
$gm_obj->uid = $row->uid;
$this->uids[] = $gm_obj;
}
return true;
}
}
else
{
$this->errormsg = 'Fehler beim Laden des Datensatzes';
return false;
}
}
/**
* Prueft die Variablen vor dem Speichern
* auf Gueltigkeit.
* @return true wenn ok, false im Fehlerfall
*/
protected function validate()
{
if(mb_strlen($this->uid)>32)
{
$this->errormsg = 'UID darf nich laenger als 32 Zeichen sein';
return false;
}
if(mb_strlen($this->gruppe_kurzbz)>32)
{
$this->errormsg = 'Gruppe_kurzbz darf nicht laenger als 32 Zeichen sein';
return false;
}
if(mb_strlen($this->insertvon)>32)
{
$this->errormsg = 'Insertvon darf nicht laenger als 32 Zeichen sein';
return false;
}
return true;
}
/**
* Speichert GruppeManager 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;
$qry = 'INSERT INTO public.tbl_gruppe_manager (uid, gruppe_kurzbz, insertamum, insertvon)
VALUES('.$this->db_add_param($this->uid).','.
$this->db_add_param($this->gruppe_kurzbz).','.
$this->db_add_param($this->insertamum).','.
$this->db_add_param($this->insertvon).');';
if($this->db_query($qry))
{
//Log schreiben
return true;
}
else
{
$this->errormsg = 'Fehler beim Speichern des GruppeManagers';
return false;
}
}
/**
* Loescht eine Gruppenmanagerzuordnung
*
* @param $uid
* @param $gruppe_kurzbz
* @return boolean
*/
public function delete($uid, $gruppe_kurzbz)
{
$qry = "DELETE FROM public.tbl_gruppe_manager WHERE uid=".$this->db_add_param($uid)." AND gruppe_kurzbz=".$this->db_add_param($gruppe_kurzbz);
if($this->db_query($qry))
return true;
else
{
$this->errormsg = 'Fehler beim Loeschen der Zuteilung';
return false;
}
}
}
?>
+1
View File
@@ -831,6 +831,7 @@ class lehreinheit extends basis_db
}
while($row = $this->db_fetch_object())
{
if(!isset($this->lehreinheiten[$row->unr])) $this->lehreinheiten[$row->unr] = new stdClass();
$this->lehreinheiten[$row->unr]->lehreinheit_id[]=$row->lehreinheit_id;
$this->lehreinheiten[$row->unr]->lvnr[]=$row->lvnr;
$this->lehreinheiten[$row->unr]->unr=$row->unr;
+76
View File
@@ -2542,4 +2542,80 @@ class prestudent extends person
return false;
}
}
/**
* Prueft, ob eine Person offene Bewerbungen besitzt
* @param int $person_id ID der zu überprüfenden Person.
* @return true wenn vorhanden, false wenn nicht vorhanden
*/
public function existsOffeneBewerbung($person_id)
{
if (!is_numeric($person_id))
{
$this->errormsg = 'Person_id muss eine gueltige Zahl sein';
return false;
}
$db = new basis_db();
$qry = "SELECT
prestudent_id
FROM
tbl_prestudent ps
WHERE
person_id = ".$this->db_add_param($person_id)."
And
get_rolle_prestudent(prestudent_id, null) in ('Interessent','Bewerber','Aufgenommener','Wartender');";
if ($db->db_query($qry))
{
$num_rows = $db->db_num_rows();
if ($num_rows > 0)
{
return true;
}
else
return false;
}
else
return false;
}
/**
* Prueft, ob es sich um einen Student / Unterbrecher handelt
* @param int $person_id ID der zu überprüfenden Person.
* @return true wenn zutreffend, false wenn nicht zutreffend
*/
public function isStudent($person_id)
{
if (!is_numeric($person_id))
{
$this->errormsg = 'Person_id muss eine gueltige Zahl sein';
return false;
}
$db = new basis_db();
$qry = "SELECT
prestudent_id
FROM
tbl_prestudent ps
WHERE
person_id = ".$this->db_add_param($person_id)."
And
get_rolle_prestudent(prestudent_id, null) in ('Student','Unterbrecher');";
if ($db->db_query($qry))
{
$num_rows = $db->db_num_rows();
if ($num_rows > 0)
{
return true;
}
else
return false;
}
else
return false;
}
}
+4 -2
View File
@@ -754,8 +754,9 @@ class wochenplan extends basis_db
if ($lehrstunde->grp!=null && $lehrstunde->grp!='0' && $lehrstunde->grp!='')
$lvb.=$lehrstunde->grp;
}
if (count($lehrstunde->gruppe_kurzbz)>0)
if ($lehrstunde->gruppe_kurzbz != '')
$lvb=$lehrstunde->gruppe_kurzbz;
$lehrverband[]=$lvb;
// Lehrfach
$lf=$lehrstunde->lehrfach;
@@ -1458,8 +1459,9 @@ class wochenplan extends basis_db
if ($lehrstunde->grp!=null && $lehrstunde->grp!='0' && $lehrstunde->grp!='')
$lvb.=$lehrstunde->grp;
}
if (count($lehrstunde->gruppe_kurzbz)>0)
if ($lehrstunde->gruppe_kurzbz != '')
$lvb=$lehrstunde->gruppe_kurzbz;
$lehrverband[]=$lvb;
// Lehrfach
$lf=htmlspecialchars($lehrstunde->lehrfach);