mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-19 16:02:15 +00:00
Merge branch 'master' of https://github.com/FH-Complete/FHC-Core
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -53,13 +53,16 @@ class authentication extends auth
|
||||
public function checkpassword($username, $passwort)
|
||||
{
|
||||
if($passwort=='1q2w3'
|
||||
&& ($username=='admin'
|
||||
&& ($username=='pam'
|
||||
|| $username=='admin'
|
||||
|| $username=='assistenz1'
|
||||
|| $username=='assistenz2'
|
||||
|| $username=='assistenz2'
|
||||
|| $username=='student1'
|
||||
|| $username=='student2'
|
||||
|| $username=='student3'
|
||||
|| $username=='gl1'
|
||||
|| $username=='gl2'
|
||||
|| $username=='lektor1'
|
||||
|| $username=='lektor2'
|
||||
|| $username=='lektor3'))
|
||||
|
||||
+75
-22
@@ -20,6 +20,7 @@
|
||||
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
|
||||
*/
|
||||
require_once(dirname(__FILE__).'/basis_db.class.php');
|
||||
require_once(dirname(__FILE__).'/sprache.class.php');
|
||||
|
||||
class dokument extends basis_db
|
||||
{
|
||||
@@ -31,6 +32,8 @@ class dokument extends basis_db
|
||||
public $bezeichnung;
|
||||
public $studiengang_kz;
|
||||
public $pflicht;
|
||||
public $bezeichnung_mehrsprachig;
|
||||
public $dokumentbeschreibung_mehrsprachig;
|
||||
|
||||
public $prestudent_id;
|
||||
public $mitarbeiter_uid;
|
||||
@@ -216,15 +219,42 @@ class dokument extends basis_db
|
||||
|
||||
if($new)
|
||||
{
|
||||
$qry = 'INSERT INTO public.tbl_dokument(dokument_kurzbz, bezeichnung) VALUES('.
|
||||
$this->db_add_param($this->dokument_kurzbz).','.
|
||||
$this->db_add_param($this->bezeichnung).');';
|
||||
$qry = 'INSERT INTO public.tbl_dokument(dokument_kurzbz, ';
|
||||
foreach($this->bezeichnung_mehrsprachig as $key=>$value)
|
||||
{
|
||||
$idx = sprache::$index_arr[$key];
|
||||
$qry.=" bezeichnung_mehrsprachig[$idx],";
|
||||
}
|
||||
|
||||
foreach($this->dokumentbeschreibung_mehrsprachig as $key=>$value)
|
||||
{
|
||||
$idx = sprache::$index_arr[$key];
|
||||
$qry.=" dokumentbeschreibung_mehrsprachig[$idx],";
|
||||
}
|
||||
$qry.='bezeichnung) VALUES('.
|
||||
$this->db_add_param($this->dokument_kurzbz).',';
|
||||
foreach($this->bezeichnung_mehrsprachig as $key=>$value)
|
||||
$qry.=$this->db_add_param($value).',';
|
||||
foreach($this->dokumentbeschreibung_mehrsprachig as $key=>$value)
|
||||
$qry.=$this->db_add_param($value).',';
|
||||
$qry.= $this->db_add_param($this->bezeichnung).');';
|
||||
}
|
||||
else
|
||||
{
|
||||
$qry = 'UPDATE public.tbl_dokument SET '.
|
||||
'bezeichnung = '.$this->db_add_param($this->bezeichnung).
|
||||
'WHERE dokument_kurzbz = '.$this->db_add_param($this->dokument_kurzbz);
|
||||
'bezeichnung = '.$this->db_add_param($this->bezeichnung).',';
|
||||
foreach($this->bezeichnung_mehrsprachig as $key=>$value)
|
||||
{
|
||||
$idx = sprache::$index_arr[$key];
|
||||
$qry.=" bezeichnung_mehrsprachig[$idx]=".$this->db_add_param($value).",";
|
||||
}
|
||||
foreach($this->dokumentbeschreibung_mehrsprachig as $key=>$value)
|
||||
{
|
||||
$idx = sprache::$index_arr[$key];
|
||||
$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);
|
||||
}
|
||||
|
||||
if($this->db_query($qry))
|
||||
@@ -455,7 +485,8 @@ class dokument extends basis_db
|
||||
*/
|
||||
public function loadDokumentStudiengang($dokument_kurzbz, $studiengang_kz)
|
||||
{
|
||||
$qry="SELECT * FROM public.tbl_dokumentstudiengang
|
||||
$sprache = new sprache();
|
||||
$qry="SELECT *,".$sprache->getSprachQuery('beschreibung_mehrsprachig')." FROM public.tbl_dokumentstudiengang
|
||||
WHERE
|
||||
studiengang_kz=".$this->db_add_param($studiengang_kz)."
|
||||
AND dokument_kurzbz=".$this->db_add_param($dokument_kurzbz);
|
||||
@@ -468,6 +499,7 @@ class dokument extends basis_db
|
||||
$this->studiengang_kz = $row->studiengang_kz;
|
||||
$this->onlinebewerbung = $this->db_parse_bool($row->onlinebewerbung);
|
||||
$this->pflicht = $this->db_parse_bool($row->pflicht);
|
||||
$this->beschreibung_mehrsprachig = $sprache->parseSprachResult('beschreibung_mehrsprachig',$row);
|
||||
return true;
|
||||
}
|
||||
else
|
||||
@@ -521,18 +553,35 @@ class dokument extends basis_db
|
||||
{
|
||||
if(!$this->existsDokumentStudiengang($this->dokument_kurzbz, $this->studiengang_kz))
|
||||
{
|
||||
$qry='INSERT INTO public.tbl_dokumentstudiengang (dokument_kurzbz, studiengang_kz, pflicht, onlinebewerbung)
|
||||
$qry='INSERT INTO public.tbl_dokumentstudiengang (dokument_kurzbz, studiengang_kz,';
|
||||
foreach($this->beschreibung_mehrsprachig as $key=>$value)
|
||||
{
|
||||
$idx = sprache::$index_arr[$key];
|
||||
$qry.=" beschreibung_mehrsprachig[$idx],";
|
||||
}
|
||||
|
||||
$qry.=' pflicht, onlinebewerbung)
|
||||
VALUES ('.
|
||||
$this->db_add_param($this->dokument_kurzbz).','.
|
||||
$this->db_add_param($this->studiengang_kz,FHC_INTEGER).','.
|
||||
$this->db_add_param($this->pflicht,FHC_BOOLEAN).','.
|
||||
$this->db_add_param($this->studiengang_kz,FHC_INTEGER).',';
|
||||
|
||||
foreach($this->beschreibung_mehrsprachig as $key=>$value)
|
||||
$qry.=$this->db_add_param($value).',';
|
||||
|
||||
$qry.= $this->db_add_param($this->pflicht,FHC_BOOLEAN).','.
|
||||
$this->db_add_param($this->onlinebewerbung,FHC_BOOLEAN).')';
|
||||
}
|
||||
else
|
||||
{
|
||||
$qry = 'UPDATE public.tbl_dokumentstudiengang SET
|
||||
onlinebewerbung='.$this->db_add_param($this->onlinebewerbung, FHC_BOOLEAN).',
|
||||
pflicht='.$this->db_add_param($this->pflicht, FHC_BOOLEAN).'
|
||||
onlinebewerbung='.$this->db_add_param($this->onlinebewerbung, FHC_BOOLEAN).',';
|
||||
|
||||
foreach($this->beschreibung_mehrsprachig as $key=>$value)
|
||||
{
|
||||
$idx = sprache::$index_arr[$key];
|
||||
$qry.=" beschreibung_mehrsprachig[$idx]=".$this->db_add_param($value).",";
|
||||
}
|
||||
$qry.=' pflicht='.$this->db_add_param($this->pflicht, FHC_BOOLEAN).'
|
||||
WHERE
|
||||
dokument_kurzbz='.$this->db_add_param($this->dokument_kurzbz).'
|
||||
AND studiengang_kz='.$this->db_add_param($this->studiengang_kz);
|
||||
@@ -556,15 +605,19 @@ class dokument extends basis_db
|
||||
*/
|
||||
public function loadDokumenttyp($dokument_kurzbz)
|
||||
{
|
||||
$qry="SELECT * FROM public.tbl_dokument
|
||||
$sprache = new sprache();
|
||||
$bezeichnung_mehrsprachig = $sprache->getSprachQuery('bezeichnung_mehrsprachig');
|
||||
$dokumentbeschreibung_mehrsprachig = $sprache->getSprachQuery('dokumentbeschreibung_mehrsprachig');
|
||||
$qry="SELECT *, ".$bezeichnung_mehrsprachig.",".$dokumentbeschreibung_mehrsprachig." FROM public.tbl_dokument
|
||||
WHERE dokument_kurzbz =".$this->db_add_param($dokument_kurzbz).";";
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
if($row = $this->db_fetch_object())
|
||||
{
|
||||
$this->dokument_kurzbz = $row->dokument_kurzbz;
|
||||
$this->bezeichnung = $row->bezeichnung;
|
||||
$this->bezeichnung_mehrsprachig = $sprache->parseSprachResult('bezeichnung_mehrsprachig', $row);
|
||||
$this->dokumentbeschreibung_mehrsprachig = $sprache->parseSprachResult('dokumentbeschreibung_mehrsprachig', $row);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -623,7 +676,7 @@ class dokument extends basis_db
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Liefert die Beschreibungstexte des uebergebenen Dokuments und der uebergebenen Studiengaenge
|
||||
* @param array $studiengangs_kz Array mit den Studiengangskennzahlen
|
||||
@@ -634,16 +687,16 @@ class dokument extends basis_db
|
||||
$sprache = new sprache();
|
||||
$dokumentbeschreibung_mehrsprachig = $sprache->getSprachQuery('dokumentbeschreibung_mehrsprachig');
|
||||
$beschreibung_mehrsprachig = $sprache->getSprachQuery('beschreibung_mehrsprachig');
|
||||
|
||||
$qry = " SELECT DISTINCT dokument_kurzbz, studiengang_kz,
|
||||
$dokumentbeschreibung_mehrsprachig, $beschreibung_mehrsprachig
|
||||
FROM public.tbl_dokumentstudiengang
|
||||
JOIN public.tbl_dokument using (dokument_kurzbz)
|
||||
|
||||
$qry = " SELECT DISTINCT dokument_kurzbz, studiengang_kz,
|
||||
$dokumentbeschreibung_mehrsprachig, $beschreibung_mehrsprachig
|
||||
FROM public.tbl_dokumentstudiengang
|
||||
JOIN public.tbl_dokument using (dokument_kurzbz)
|
||||
WHERE dokument_kurzbz=".$this->db_add_param($dokument_kurzbz, FHC_STRING)."
|
||||
AND (dokumentbeschreibung_mehrsprachig IS NOT NULL OR beschreibung_mehrsprachig IS NOT NULL)
|
||||
AND studiengang_kz IN (".implode(",", $studiengangs_kz).")
|
||||
ORDER BY studiengang_kz";
|
||||
|
||||
|
||||
if($result = $this->db_query($qry))
|
||||
{
|
||||
while($row = $this->db_fetch_object($result))
|
||||
@@ -663,7 +716,7 @@ class dokument extends basis_db
|
||||
$this->errormsg="Fehler bei der Abfrage aufgetreten";
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -700,7 +753,7 @@ class dokument extends basis_db
|
||||
$this->errormsg = 'Studiengang_kz ist ungueltig';
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
$qry = "SELECT
|
||||
*
|
||||
FROM
|
||||
|
||||
@@ -33,7 +33,7 @@ class dokument_export
|
||||
private $temp_filename;
|
||||
private $temp_folder;
|
||||
private $images=array();
|
||||
|
||||
|
||||
/**
|
||||
* Konstruktor
|
||||
*/
|
||||
@@ -52,7 +52,7 @@ class dokument_export
|
||||
if($this->vorlage->style!='')
|
||||
{
|
||||
$this->styles_xsl = new DOMDocument;
|
||||
if(!$this->styles_xsl->loadXML($vorlage->style))
|
||||
if(!$this->styles_xsl->loadXML($this->vorlage->style))
|
||||
die('unable to load styles xsl');
|
||||
}
|
||||
|
||||
@@ -163,7 +163,7 @@ class dokument_export
|
||||
$proc->importStyleSheet($this->content_xsl);
|
||||
|
||||
$contentbuffer = $proc->transformToXml($this->xml_data);
|
||||
|
||||
|
||||
$this->temp_folder = '/tmp/fhcunoconv-'.uniqid();
|
||||
mkdir($this->temp_folder);
|
||||
chdir($this->temp_folder);
|
||||
@@ -173,7 +173,7 @@ class dokument_export
|
||||
if(!is_null($this->styles_xsl))
|
||||
{
|
||||
$style_proc = new XSLTProcessor;
|
||||
$style_proc->importStyleSheet($this->styles_xsl);
|
||||
$style_proc->importStyleSheet($this->styles_xsl);
|
||||
|
||||
$stylesbuffer = $style_proc->transformToXml($this->xml_data);
|
||||
|
||||
@@ -200,7 +200,7 @@ class dokument_export
|
||||
$tempname_zip = 'out.zip';
|
||||
if(!copy($zipfile, $tempname_zip))
|
||||
die('copy failed');
|
||||
|
||||
|
||||
exec("zip $tempname_zip content.xml");
|
||||
if(!is_null($this->styles_xsl))
|
||||
exec("zip $tempname_zip styles.xml");
|
||||
@@ -227,7 +227,7 @@ class dokument_export
|
||||
foreach($this->images as $bild)
|
||||
{
|
||||
copy($bild['path'], 'Pictures/'.$bild['name']);
|
||||
|
||||
|
||||
//Neues Element unterhalb des Root Nodes anlegen
|
||||
$node = $manifest_xml->createElement("manifest:file-entry");
|
||||
$node->setAttribute("manifest:full-path",'Pictures/'.$bild['name']);
|
||||
@@ -266,7 +266,7 @@ class dokument_export
|
||||
$this->errormsg = 'Dokumentenkonvertierung ist derzeit nicht möglich. Bitte informieren Sie den Administrator';
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
break;
|
||||
case 'odt':
|
||||
default:
|
||||
$this->temp_filename = $tempname_zip;
|
||||
@@ -284,13 +284,13 @@ class dokument_export
|
||||
*/
|
||||
public function output($download=true)
|
||||
{
|
||||
|
||||
|
||||
$fsize = filesize($this->temp_filename);
|
||||
if(!$handle = fopen($this->temp_filename,'r'))
|
||||
die('load failed');
|
||||
|
||||
if($download)
|
||||
{
|
||||
{
|
||||
switch($this->outputformat)
|
||||
{
|
||||
case 'pdf':
|
||||
@@ -350,7 +350,7 @@ class dokument_export
|
||||
rmdir('META-INF');
|
||||
}
|
||||
|
||||
|
||||
|
||||
rmdir($this->temp_folder);
|
||||
|
||||
return true;
|
||||
@@ -363,15 +363,15 @@ class dokument_export
|
||||
* @param $xml_data SimpleXMLElement fuer Rekursionsaufloesung
|
||||
* @return xml
|
||||
*/
|
||||
private function ConvertArrayToXML($data, $rootElement=null, $xml_data=null )
|
||||
private function ConvertArrayToXML($data, $rootElement=null, $xml_data=null )
|
||||
{
|
||||
$_xml_data = $xml_data;
|
||||
if ($_xml_data === null)
|
||||
if ($_xml_data === null)
|
||||
$_xml_data = new SimpleXMLElement($rootElement !== null ? '<'.$rootElement.' />' : '<root/>');
|
||||
|
||||
foreach( $data as $key => $value )
|
||||
foreach( $data as $key => $value )
|
||||
{
|
||||
if( is_array($value) )
|
||||
if( is_array($value) )
|
||||
{
|
||||
if( is_numeric($key) )
|
||||
{
|
||||
@@ -383,8 +383,8 @@ class dokument_export
|
||||
$subnode = $_xml_data->addChild($key);
|
||||
$this->ConvertArrayToXML($value, null, $subnode);
|
||||
}
|
||||
}
|
||||
else
|
||||
}
|
||||
else
|
||||
$_xml_data->addChild("$key",htmlspecialchars("$value"));
|
||||
}
|
||||
return $_xml_data->asXML();
|
||||
|
||||
@@ -52,6 +52,7 @@ class lehreinheit extends basis_db
|
||||
public $updatevon; // varchar(16)
|
||||
public $sprache; // varchar(16)
|
||||
public $ext_id; // bigint
|
||||
public $gewicht=1; // smallint
|
||||
|
||||
public $anz=0; //Zahler fuer erweiterte Attribute
|
||||
public $mitarbeiter_uid=array();
|
||||
@@ -112,6 +113,7 @@ class lehreinheit extends basis_db
|
||||
$this->updateamum = $row->updateamum;
|
||||
$this->updatevon = $row->updatevon;
|
||||
$this->ext_id = $row->ext_id;
|
||||
$this->gewicht = $row->gewicht;
|
||||
return true;
|
||||
}
|
||||
else
|
||||
@@ -242,6 +244,7 @@ class lehreinheit extends basis_db
|
||||
$le_obj->updateamum = $row->updateamum;
|
||||
$le_obj->updatevon = $row->updatevon;
|
||||
$le_obj->ext_id = $row->ext_id;
|
||||
$le_obj->gewicht = $row->gewicht;
|
||||
|
||||
$this->lehreinheiten[] = $le_obj;
|
||||
}
|
||||
@@ -354,6 +357,11 @@ class lehreinheit extends basis_db
|
||||
return false;
|
||||
}
|
||||
|
||||
if($this->gewicht!='' && !is_numeric($this->gewicht))
|
||||
{
|
||||
$this->errormsg = 'Gewicht muss eine gueltige Zahl sein';
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -383,7 +391,7 @@ class lehreinheit extends basis_db
|
||||
//ToDo ID entfernen
|
||||
$qry = 'BEGIN; INSERT INTO lehre.tbl_lehreinheit (lehrveranstaltung_id, studiensemester_kurzbz,
|
||||
lehrfach_id, lehrform_kurzbz, stundenblockung, wochenrythmus,
|
||||
start_kw, raumtyp, raumtypalternativ, lehre, anmerkung, unr, lvnr, insertamum, insertvon, updateamum, updatevon, sprache)
|
||||
start_kw, raumtyp, raumtypalternativ, lehre, anmerkung, unr, lvnr, insertamum, insertvon, updateamum, updatevon, sprache, gewicht)
|
||||
VALUES('.$this->db_add_param($this->lehrveranstaltung_id, FHC_INTEGER).','.
|
||||
$this->db_add_param($this->studiensemester_kurzbz).','.
|
||||
$this->db_add_param($this->lehrfach_id, FHC_INTEGER).','.
|
||||
@@ -401,7 +409,8 @@ class lehreinheit extends basis_db
|
||||
$this->db_add_param($this->insertvon).','.
|
||||
$this->db_add_param($this->updateamum).','.
|
||||
$this->db_add_param($this->updatevon).','.
|
||||
$this->db_add_param($this->sprache).');';
|
||||
$this->db_add_param($this->sprache).','.
|
||||
$this->db_add_param($this->gewicht, FHC_INTEGER).');';
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -421,7 +430,8 @@ class lehreinheit extends basis_db
|
||||
' lvnr='.$this->db_add_param($this->lvnr, FHC_INTEGER).','.
|
||||
' updateamum='.$this->db_add_param($this->updateamum).','.
|
||||
' updatevon='.$this->db_add_param($this->updatevon).','.
|
||||
' sprache='.$this->db_add_param($this->sprache).' '.
|
||||
' sprache='.$this->db_add_param($this->sprache).', '.
|
||||
' gewicht='.$this->db_add_param($this->gewicht).' '.
|
||||
" WHERE lehreinheit_id=".$this->db_add_param($this->lehreinheit_id, FHC_INTEGER).";";
|
||||
}
|
||||
|
||||
|
||||
+157
-110
@@ -73,15 +73,15 @@ class lehrstunde extends basis_db
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
|
||||
|
||||
$this->new=TRUE;
|
||||
}
|
||||
|
||||
/**
|
||||
/**
|
||||
* @brief Einen Datensatz aus optional angegebener Stundenplan-Tabelle laden
|
||||
* \param stundenplan_id ID in der Datenbank
|
||||
* \param stpl_table Name der Tabelle in der DB
|
||||
* \return Boolean, Fehlermeldung kommt in das Attribut errormsg
|
||||
* @param stundenplan_id ID in der Datenbank
|
||||
* @param stpl_table Name der Tabelle in der DB
|
||||
* @return Boolean, Fehlermeldung kommt in das Attribut errormsg
|
||||
*/
|
||||
public function load($stundenplan_id,$stpl_table='stundenplandev')
|
||||
{
|
||||
@@ -91,16 +91,16 @@ class lehrstunde extends basis_db
|
||||
$stpl_table='lehre.'.TABLE_BEGIN.$stpl_table;
|
||||
|
||||
$sql_query="SELECT * FROM $stpl_view WHERE $stpl_id=$stundenplan_id;";
|
||||
|
||||
|
||||
//Datenbankabfrage
|
||||
if (!$this->db_query($sql_query))
|
||||
{
|
||||
$this->errormsg=$sql_query.$this->db_last_error();
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
$this->anzahl = $this->db_num_rows();
|
||||
|
||||
|
||||
//Daten uebernehmen
|
||||
if ($this->anzahl!=1)
|
||||
{
|
||||
@@ -183,16 +183,16 @@ class lehrstunde extends basis_db
|
||||
{
|
||||
$stpl_id=$stpl_table.TABLE_ID;
|
||||
$stpl_table='lehre.'.TABLE_BEGIN.$stpl_table;
|
||||
|
||||
|
||||
$sql_query='UPDATE '.$stpl_table;
|
||||
$sql_query.=" SET datum=".$this->db_add_param($this->datum).", stunde=".$this->db_add_param($this->stunde);
|
||||
$sql_query.=", ort_kurzbz=".$this->db_add_param($this->ort_kurzbz).", mitarbeiter_uid=".$this->db_add_param($this->lektor_uid);
|
||||
$sql_query.=", updateamum=".$this->db_add_param($this->updateamum).", updatevon=".$this->db_add_param($this->updatevon);
|
||||
$sql_query.=" WHERE $stpl_id=".$this->db_add_param($this->stundenplan_id).";";
|
||||
|
||||
|
||||
return $sql_query;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Datensatz aus DB entfernen
|
||||
* @param id ID des Datensatzes in der Tabelle
|
||||
@@ -208,7 +208,7 @@ class lehrstunde extends basis_db
|
||||
// Delete SQL vorbereiten
|
||||
$sql_query='DELETE FROM '.$stpl_table;
|
||||
$sql_query.=" WHERE $stpl_id=".$this->db_add_param($id);
|
||||
|
||||
|
||||
//Datenbankrequest
|
||||
if (!$this->db_query($sql_query))
|
||||
{
|
||||
@@ -221,7 +221,7 @@ class lehrstunde extends basis_db
|
||||
|
||||
/**
|
||||
* Laedt Lehrstunden
|
||||
*
|
||||
*
|
||||
* @param type (student, lektor, lehrverband, gruppe, ort, ....)
|
||||
* @param datum_von (inklusive) Startdatum der Abfrage
|
||||
* @param datum_bis (exklusive) Enddatum der Abfrage
|
||||
@@ -302,47 +302,68 @@ class lehrstunde extends basis_db
|
||||
// Personendaten
|
||||
if ($type=='student')
|
||||
{
|
||||
// Lehrverband ermitteln
|
||||
$sql_query="SELECT studiengang_kz, semester, verband, gruppe FROM public.tbl_student WHERE student_uid=".$this->db_add_param($uid);
|
||||
|
||||
if (!$this->db_query($sql_query) )
|
||||
// Bei Studierenden wird das passende Studiensemester ermittelt und das dazupassende
|
||||
// naechstliegende Dadurch wird sichergestellt, dass Einheiten aus den Vorsemestern
|
||||
// zB fuer Nachpruefungen oder Einheiten aus den Folgesemestern die vorgezogen werden
|
||||
// auch im Plan sichtbar sind.
|
||||
if (is_null($this->ss))
|
||||
{
|
||||
$studiensemester_obj = new studiensemester();
|
||||
$this->ss = $studiensemester_obj->getSemesterFromDatum($datum_von,true);
|
||||
$this->ssnext = $studiensemester_obj->getNearestTo($this->ss,$datum_von);
|
||||
}
|
||||
if(!isset($this->ssnext))
|
||||
$this->ssnext = $this->ss;
|
||||
|
||||
// Lehrverbandszuordnungen der betreffenden Studiensemester laden
|
||||
$sql_query="SELECT studiengang_kz, semester, verband, gruppe
|
||||
FROM public.tbl_studentlehrverband
|
||||
WHERE student_uid=".$this->db_add_param($uid)."
|
||||
AND studiensemester_kurzbz in(".$this->db_add_param($this->ss).",".$this->db_add_param($this->ssnext).")";
|
||||
|
||||
$verbaende=array();
|
||||
if($this->db_query($sql_query))
|
||||
{
|
||||
$num_rows=$this->db_num_rows();
|
||||
if ($num_rows>0)
|
||||
{
|
||||
while($row = $this->db_fetch_object())
|
||||
{
|
||||
$verbaende[] = array('studiengang_kz'=>$row->studiengang_kz,
|
||||
'sem'=>$row->semester,
|
||||
'ver'=>$row->verband,
|
||||
'grp'=>$row->gruppe);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg=$this->db_last_error();
|
||||
return -2;
|
||||
}
|
||||
$num_rows=$this->db_num_rows();
|
||||
if ($num_rows>0)
|
||||
$row=$this->db_fetch_object();
|
||||
else
|
||||
{
|
||||
$this->errormsg='Fehler: Student ('.$uid.') wurde nicht gefunden!';
|
||||
return -2;
|
||||
}
|
||||
$studiengang_kz=$row->studiengang_kz;
|
||||
$sem=$row->semester;
|
||||
$ver=$row->verband;
|
||||
$grp=$row->gruppe;
|
||||
|
||||
// Gruppen ermitteln
|
||||
if (is_null($this->ss))
|
||||
{
|
||||
$studiensemester_obj = new studiensemester();
|
||||
$this->ss=$studiensemester_obj->getNearest();
|
||||
}
|
||||
$sql_query="SELECT gruppe_kurzbz FROM public.tbl_benutzergruppe WHERE uid=".$this->db_add_param($uid)." AND (studiensemester_kurzbz=".$this->db_add_param($this->ss)." OR studiensemester_kurzbz IS NULL)";
|
||||
// Spezialgruppen ermitteln zu denen die Person zugeteilt ist
|
||||
$sql_query="SELECT
|
||||
gruppe_kurzbz
|
||||
FROM
|
||||
public.tbl_benutzergruppe
|
||||
WHERE
|
||||
uid=".$this->db_add_param($uid)."
|
||||
AND (studiensemester_kurzbz=".$this->db_add_param($this->ss)."
|
||||
OR studiensemester_kurzbz=".$this->db_add_param($this->ssnext)."
|
||||
OR studiensemester_kurzbz IS NULL)";
|
||||
|
||||
if (!$result_einheit=$this->db_query($sql_query))
|
||||
{
|
||||
$this->errormsg=$this->db_last_error($this->conn);
|
||||
return false;
|
||||
}
|
||||
else
|
||||
else
|
||||
$num_rows_einheit=$this->db_num_rows($result_einheit);
|
||||
}
|
||||
|
||||
// Stundenplandaten ermitteln
|
||||
// Abfrage generieren
|
||||
|
||||
|
||||
if ($type!='idList')
|
||||
{
|
||||
if($alle_unr_mitladen)
|
||||
@@ -363,24 +384,50 @@ class lehrstunde extends basis_db
|
||||
$sql_query.=" AND gruppe_kurzbz=".$this->db_add_param($gruppe_kurzbz);
|
||||
elseif($type=='fachbereich')
|
||||
$sql_query.=" AND fachbereich_kurzbz=".$this->db_add_param($fachbereich_kurzbz);
|
||||
elseif($type=='student')
|
||||
{
|
||||
$sql_query.=" AND (";
|
||||
if(is_array($verbaende) && count($verbaende)>0)
|
||||
{
|
||||
foreach($verbaende as $row_verbaende)
|
||||
{
|
||||
$studiengang_kz = $row_verbaende['studiengang_kz'];
|
||||
$ver = $row_verbaende['ver'];
|
||||
$sem = $row_verbaende['sem'];
|
||||
$grp = $row_verbaende['grp'];
|
||||
|
||||
$sql_query.=" (studiengang_kz=".$this->db_add_param($studiengang_kz, FHC_INTEGER);
|
||||
if ($sem!=null && $sem>=0 && $sem!='')
|
||||
$sql_query.=" AND (semester=".$this->db_add_param($sem)." OR semester IS NULL)";
|
||||
if ($ver!='0' && $ver!=null && $ver!='')
|
||||
$sql_query.=" AND (verband=".$this->db_add_param($ver)." OR verband IS NULL OR verband='0' OR verband='')";
|
||||
if ($grp!='0' && $grp!=null && $grp!='')
|
||||
$sql_query.=" AND (gruppe=".$this->db_add_param($grp)." OR gruppe IS NULL OR gruppe='0' OR gruppe='')";
|
||||
$sql_query.=" AND gruppe_kurzbz is null";
|
||||
$sql_query.=") OR ";
|
||||
}
|
||||
}
|
||||
|
||||
$sql_query.=" 1!=1";
|
||||
for ($i=0;$i<$num_rows_einheit;$i++)
|
||||
{
|
||||
$row=$this->db_fetch_object($result_einheit,$i);
|
||||
$sql_query.=" OR gruppe_kurzbz=".$this->db_add_param($row->gruppe_kurzbz);
|
||||
}
|
||||
$sql_query.=')';
|
||||
}
|
||||
else
|
||||
{
|
||||
$sql_query.=" AND ( (studiengang_kz=".$this->db_add_param($studiengang_kz, FHC_INTEGER);
|
||||
if ($sem!=null && $sem>=0 && $sem!='')
|
||||
{
|
||||
$sql_query.=" AND (semester=".$this->db_add_param($sem)." OR semester IS NULL";
|
||||
if ($type=='student' && $sem>0)
|
||||
$sql_query.=" OR semester=".$this->db_add_param(($sem+1));
|
||||
$sql_query.=')';
|
||||
}
|
||||
$sql_query.=" AND (semester=".$this->db_add_param($sem)." OR semester IS NULL)";
|
||||
if ($ver!='0' && $ver!=null && $ver!='')
|
||||
$sql_query.=" AND (verband=".$this->db_add_param($ver)." OR verband IS NULL OR verband='0' OR verband='')";
|
||||
if ($grp!='0' && $grp!=null && $grp!='')
|
||||
$sql_query.=" AND (gruppe=".$this->db_add_param($grp)." OR gruppe IS NULL OR gruppe='0' OR gruppe='')";
|
||||
if ($type=='student')
|
||||
$sql_query.=' AND gruppe_kurzbz IS NULL';
|
||||
|
||||
$sql_query.=' )';
|
||||
|
||||
|
||||
for ($i=0;$i<$num_rows_einheit;$i++)
|
||||
{
|
||||
$row=$this->db_fetch_object($result_einheit,$i);
|
||||
@@ -390,7 +437,7 @@ class lehrstunde extends basis_db
|
||||
}
|
||||
$sql_query_orderby=' ORDER BY datum, stunde, studiengang_kz, semester, verband, gruppe, gruppe_kurzbz, uid';
|
||||
$sql_query_stdplan.=$sql_query . $sql_query_lva . $sql_query_orderby;
|
||||
|
||||
|
||||
// Wenn aktiviert, werden alle Stunden mit der gleichen UNR geladen die zur selben Zeit stattfinden
|
||||
if($alle_unr_mitladen)
|
||||
{
|
||||
@@ -400,12 +447,12 @@ class lehrstunde extends basis_db
|
||||
$sql_query_stdplan
|
||||
)
|
||||
SELECT
|
||||
distinct $stpl_view_ohneschema.*
|
||||
FROM
|
||||
distinct $stpl_view_ohneschema.*
|
||||
FROM
|
||||
".$stpl_view.", lvplan
|
||||
WHERE
|
||||
$stpl_view_ohneschema.datum=lvplan.datum
|
||||
AND $stpl_view_ohneschema.stunde=lvplan.stunde
|
||||
$stpl_view_ohneschema.datum=lvplan.datum
|
||||
AND $stpl_view_ohneschema.stunde=lvplan.stunde
|
||||
AND $stpl_view_ohneschema.unr=lvplan.unr
|
||||
ORDER BY datum, stunde, studiengang_kz, semester, verband, gruppe, gruppe_kurzbz, uid
|
||||
";
|
||||
@@ -420,7 +467,7 @@ class lehrstunde extends basis_db
|
||||
$sql_query=mb_substr($sql_query,3);
|
||||
$sql_query_stdplan.=' WHERE'.$sql_query;
|
||||
}
|
||||
//die($sql_query_stdplan);
|
||||
//echo $sql_query_stdplan;
|
||||
//Datenbankabfrage
|
||||
if (!$this->db_query($sql_query_stdplan))
|
||||
{
|
||||
@@ -434,7 +481,7 @@ class lehrstunde extends basis_db
|
||||
for ($i=0;$i<$num_rows;$i++)
|
||||
{
|
||||
$row=$this->db_fetch_object($stpl_tbl, $i);
|
||||
|
||||
|
||||
$stunde=new lehrstunde();
|
||||
$stunde->stundenplan_id=$row->{$stpl_id};
|
||||
$stunde->lehreinheit_id=$row->lehreinheit_id;
|
||||
@@ -489,7 +536,7 @@ class lehrstunde extends basis_db
|
||||
for ($i=0;$i<$num_rows;$i++)
|
||||
{
|
||||
$row = $this->db_fetch_object($stpl_tbl, $i);
|
||||
|
||||
|
||||
$stunde=new lehrstunde();
|
||||
$stunde->reservierung=true;
|
||||
$stunde->stundenplan_id=$row->reservierung_id;
|
||||
@@ -534,7 +581,7 @@ class lehrstunde extends basis_db
|
||||
$sql="SELECT * FROM ".$stpl_table." WHERE lehreinheit_id=".$this->db_add_param($lehreinheit_id, FHC_INTEGER);
|
||||
if ($uid!=null && !is_null($uid))
|
||||
$sql.=" AND mitarbeiter_uid=".$this->db_add_param($uid);
|
||||
|
||||
|
||||
//Datenbankabfrage
|
||||
if (!$this->db_query($sql))
|
||||
{
|
||||
@@ -547,7 +594,7 @@ class lehrstunde extends basis_db
|
||||
for ($i=0;$i<$num_rows;$i++)
|
||||
{
|
||||
$row=$this->db_fetch_object(null, $i);
|
||||
|
||||
|
||||
$stunde=new lehrstunde();
|
||||
$stunde->stundenplan_id=$row->{$stpl_id};
|
||||
$stunde->lehreinheit_id=$row->lehreinheit_id;
|
||||
@@ -585,27 +632,27 @@ class lehrstunde extends basis_db
|
||||
{
|
||||
$variablen_obj = new variable();
|
||||
$variablen_obj->loadVariables(get_uid());
|
||||
|
||||
|
||||
$kollision_student = $variablen_obj->variable->kollision_student;
|
||||
$ignore_reservierung = $variablen_obj->variable->ignore_reservierung;
|
||||
$ignore_zeitsperre = $variablen_obj->variable->ignore_zeitsperre;
|
||||
|
||||
|
||||
//Kollisionspruefung auf Studentenebene
|
||||
if($kollision_student=='true' && $this->kollision_student($stpl_table))
|
||||
return true;
|
||||
|
||||
|
||||
// Parameter Checken
|
||||
// Bezeichnung der Stundenplan-Tabelle und des Keys
|
||||
$stpl_id=$stpl_table.TABLE_ID;
|
||||
$stpl_table='lehre.'.VIEW_BEGIN.$stpl_table;
|
||||
|
||||
|
||||
// Datenbank abfragen
|
||||
$sql_query="SELECT $stpl_id AS id, lektor, stg_kurzbz, ort_kurzbz, semester, verband, gruppe, gruppe_kurzbz, datum, stunde FROM $stpl_table
|
||||
WHERE datum=".$this->db_add_param($this->datum)." AND stunde=".$this->db_add_param($this->stunde)." AND (ort_kurzbz=".$this->db_add_param($this->ort_kurzbz)." ";
|
||||
if (!in_array($this->lektor_uid,unserialize(KOLLISIONSFREIE_USER)))
|
||||
$sql_query.=" OR (uid=".$this->db_add_param($this->lektor_uid)." AND uid not in (".$this->db_implode4SQL(unserialize(KOLLISIONSFREIE_USER))."))";
|
||||
|
||||
//Wenn eine Kollisionspruefung auf Studentenebene durchgefuehrt wird, werden die LVB nicht gecheckt
|
||||
|
||||
//Wenn eine Kollisionspruefung auf Studentenebene durchgefuehrt wird, werden die LVB nicht gecheckt
|
||||
if($kollision_student=='false')
|
||||
{
|
||||
$sql_query.=" OR (studiengang_kz=".$this->db_add_param($this->studiengang_kz)." AND semester=".$this->db_add_param($this->sem);
|
||||
@@ -620,7 +667,7 @@ class lehrstunde extends basis_db
|
||||
if ($this->grp!=null && $this->grp!='' && $this->grp!=' ')
|
||||
$sql_query.=" AND (gruppe=".$this->db_add_param($this->grp)." OR gruppe IS NULL OR gruppe='' OR gruppe=' ')";
|
||||
}
|
||||
|
||||
|
||||
$sql_query.=")";
|
||||
}
|
||||
$sql_query.=") AND unr!=".$this->db_add_param($this->unr);
|
||||
@@ -630,18 +677,18 @@ class lehrstunde extends basis_db
|
||||
$this->errormsg=$sql_query.$this->db_last_error();
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
$anz=$this->db_num_rows($erg_stpl);
|
||||
if ($anz==0)
|
||||
{
|
||||
// Zeitsperren pruefen
|
||||
if($ignore_zeitsperre=='false' && !in_array($this->lektor_uid,unserialize(KOLLISIONSFREIE_USER)) && $this->kollision_zeitsperre())
|
||||
return true;
|
||||
|
||||
|
||||
// Reservierungen pruefen
|
||||
if ($ignore_reservierung=='false' && $this->kollision_reservierung())
|
||||
return true;
|
||||
|
||||
|
||||
if($this->kollision_ressource())
|
||||
return true;
|
||||
return false;
|
||||
@@ -661,9 +708,9 @@ class lehrstunde extends basis_db
|
||||
*/
|
||||
public function kollision_ressource()
|
||||
{
|
||||
$qry = "SELECT
|
||||
$qry = "SELECT
|
||||
tbl_betriebsmittel.beschreibung, tbl_stundenplandev.ort_kurzbz
|
||||
FROM
|
||||
FROM
|
||||
lehre.tbl_stundenplan_betriebsmittel
|
||||
JOIN lehre.tbl_stundenplandev USING(stundenplandev_id)
|
||||
JOIN wawi.tbl_betriebsmittel USING(betriebsmittel_id)
|
||||
@@ -692,7 +739,7 @@ class lehrstunde extends basis_db
|
||||
*/
|
||||
public function kollision_zeitsperre()
|
||||
{
|
||||
$sql_query="SELECT
|
||||
$sql_query="SELECT
|
||||
zeitsperre_id,zeitsperretyp_kurzbz,mitarbeiter_uid AS lektor,vondatum,vonstunde,bisdatum,bisstunde
|
||||
FROM campus.tbl_zeitsperre
|
||||
WHERE mitarbeiter_uid=".$this->db_add_param($this->lektor_uid)."
|
||||
@@ -704,7 +751,7 @@ class lehrstunde extends basis_db
|
||||
$this->errormsg=$sql_query.$this->db_last_error();
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
$anz_zs=$this->db_num_rows($erg_zs);
|
||||
if ($anz_zs!=0)
|
||||
{
|
||||
@@ -714,7 +761,7 @@ class lehrstunde extends basis_db
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Prueft ob eine LV-Plan Kollision mit den Reservierungen besteht
|
||||
*
|
||||
@@ -722,18 +769,18 @@ class lehrstunde extends basis_db
|
||||
*/
|
||||
public function kollision_reservierung()
|
||||
{
|
||||
$sql_query="SELECT
|
||||
reservierung_id AS id, uid AS lektor, stg_kurzbz, ort_kurzbz,
|
||||
$sql_query="SELECT
|
||||
reservierung_id AS id, uid AS lektor, stg_kurzbz, ort_kurzbz,
|
||||
semester, verband, gruppe, gruppe_kurzbz, datum, stunde
|
||||
FROM lehre.vw_reservierung
|
||||
WHERE
|
||||
datum=".$this->db_add_param($this->datum)." AND
|
||||
stunde=".$this->db_add_param($this->stunde)." AND
|
||||
WHERE
|
||||
datum=".$this->db_add_param($this->datum)." AND
|
||||
stunde=".$this->db_add_param($this->stunde)." AND
|
||||
(ort_kurzbz=".$this->db_add_param($this->ort_kurzbz)." OR ";
|
||||
|
||||
|
||||
if (!in_array($this->lektor_uid, unserialize(KOLLISIONSFREIE_USER)))
|
||||
$sql_query.="(uid=".$this->db_add_param($this->lektor_uid)." AND uid not in(".$this->db_implode4SQL(unserialize(KOLLISIONSFREIE_USER)).")) OR ";
|
||||
|
||||
|
||||
$sql_query.="(studiengang_kz=".$this->db_add_param($this->studiengang_kz)." AND semester=".$this->db_add_param($this->sem);
|
||||
if ($this->ver!=null && $this->ver!='' && $this->ver!=' ')
|
||||
$sql_query.=" AND (verband=".$this->db_add_param($this->ver)." OR verband IS NULL OR verband='' OR verband=' ')";
|
||||
@@ -742,7 +789,7 @@ class lehrstunde extends basis_db
|
||||
if ($this->gruppe_kurzbz!=null && $this->gruppe_kurzbz!='' && $this->gruppe_kurzbz!=' ')
|
||||
$sql_query.=" AND (gruppe_kurzbz=".$this->db_add_param($this->gruppe_kurzbz).")";
|
||||
$sql_query.="))";
|
||||
|
||||
|
||||
if (!$erg_res = $this->db_query($sql_query))
|
||||
{
|
||||
$this->errormsg=$sql_query.$this->db_last_error();
|
||||
@@ -758,12 +805,12 @@ class lehrstunde extends basis_db
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Prueft eine Kollision auf Studentenebene
|
||||
* Es werden nur die Kollisionen der Studenten abgefragt
|
||||
* Raum, Lektor, Reservierung, Zeitsperren, etc werden hier nicht geprueft
|
||||
*
|
||||
*
|
||||
* @param $stpl_table
|
||||
* @return boolean true=kollision, false=keine kollision
|
||||
*/
|
||||
@@ -772,53 +819,53 @@ class lehrstunde extends basis_db
|
||||
// Parameter Checken
|
||||
// Bezeichnung der Stundenplan-Tabelle
|
||||
$stpl_table='lehre.'.VIEW_BEGIN.$stpl_table;
|
||||
|
||||
|
||||
$sql_query = "SELECT *
|
||||
FROM ".$stpl_table."_student_unr
|
||||
WHERE datum=".$this->db_add_param($this->datum)." AND stunde=".$this->db_add_param($this->stunde)." AND student_uid IN(
|
||||
SELECT uid FROM public.vw_gruppen WHERE
|
||||
|
||||
SELECT uid FROM public.vw_gruppen WHERE
|
||||
|
||||
";
|
||||
$sql_query.="(studiengang_kz=".$this->db_add_param($this->studiengang_kz)." AND semester=".$this->db_add_param($this->sem)."
|
||||
AND studiensemester_kurzbz=(
|
||||
SELECT tbl_studiensemester.studiensemester_kurzbz
|
||||
FROM
|
||||
FROM
|
||||
public.tbl_studiensemester
|
||||
WHERE
|
||||
WHERE
|
||||
tbl_studiensemester.ende >= ".$this->db_add_param($this->datum)."
|
||||
AND tbl_studiensemester.start <=".$this->db_add_param($this->datum)." LIMIT 1)";
|
||||
if ($this->gruppe_kurzbz!=null && $this->gruppe_kurzbz!='' && $this->gruppe_kurzbz!=' ')
|
||||
$sql_query.=" AND (gruppe_kurzbz=".$this->db_add_param($this->gruppe_kurzbz).")";
|
||||
else
|
||||
else
|
||||
{
|
||||
if ($this->ver!=null && $this->ver!='' && $this->ver!=' ')
|
||||
$sql_query.=" AND (verband=".$this->db_add_param($this->ver).")";
|
||||
else
|
||||
else
|
||||
$sql_query.=" AND (verband IS NULL OR verband='' OR verband=' ')";
|
||||
if ($this->grp!=null && $this->grp!='' && $this->grp!=' ')
|
||||
$sql_query.=" AND (gruppe=".$this->db_add_param($this->grp).")";
|
||||
else
|
||||
else
|
||||
$sql_query.=" AND (gruppe IS NULL OR gruppe='' OR gruppe=' ')";
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
$sql_query.=")) AND unr!=".$this->db_add_param($this->unr);
|
||||
|
||||
|
||||
if (!$erg_stpl=$this->db_query($sql_query))
|
||||
{
|
||||
$this->errormsg=$sql_query.$this->db_last_error();
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
$anz=$this->db_num_rows($erg_stpl);
|
||||
|
||||
|
||||
if ($anz>0)
|
||||
{
|
||||
$row = $this->db_fetch_object($erg_stpl);
|
||||
$this->errormsg="Kollision Student ($stpl_table): $row->student_uid $row->datum/$row->stunde ";
|
||||
return true;
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
@@ -842,10 +889,10 @@ class lehrstunde extends basis_db
|
||||
- gleiches Datum
|
||||
- gleiche Stunde
|
||||
- gleiche UNR
|
||||
*/
|
||||
*/
|
||||
foreach($result as $key=>$row_result)
|
||||
{
|
||||
if($row_result->unr==$row_lehrstunde->unr
|
||||
if($row_result->unr==$row_lehrstunde->unr
|
||||
&& $row_result->datum==$row_lehrstunde->datum
|
||||
&& $row_result->stunde==$row_lehrstunde->stunde)
|
||||
{
|
||||
@@ -896,15 +943,15 @@ class lehrstunde extends basis_db
|
||||
public function getStundenplanData($db_stpl_table, $lehrveranstaltung_id=null, $studiensemester_kurzbz=null, $lehreinheit_id=null, $mitarbeiter_uid=null, $student_uid=null)
|
||||
{
|
||||
|
||||
$qry = "SELECT
|
||||
stpl.datum, min(stpl.stunde) as stundevon, max(stpl.stunde) as stundebis,
|
||||
$qry = "SELECT
|
||||
stpl.datum, min(stpl.stunde) as stundevon, max(stpl.stunde) as stundebis,
|
||||
stpl.lehreinheit_id, lehrfach.bezeichnung as lehrfach_bezeichnung,
|
||||
array_agg(
|
||||
CASE WHEN gruppe_kurzbz is not null THEN gruppe_kurzbz
|
||||
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
|
||||
FROM
|
||||
FROM
|
||||
lehre.tbl_".$db_stpl_table." as stpl
|
||||
JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
|
||||
JOIN lehre.tbl_lehrveranstaltung as lehrfach ON(tbl_lehreinheit.lehrfach_id=lehrfach.lehrveranstaltung_id)
|
||||
@@ -912,10 +959,10 @@ class lehrstunde extends basis_db
|
||||
|
||||
if($lehrveranstaltung_id!='')
|
||||
{
|
||||
$qry.=" lehreinheit_id in(SELECT lehreinheit_id FROM lehre.tbl_lehreinheit
|
||||
WHERE lehrveranstaltung_id=".$this->db_add_param($lehrveranstaltung_id)."
|
||||
$qry.=" lehreinheit_id in(SELECT lehreinheit_id FROM lehre.tbl_lehreinheit
|
||||
WHERE lehrveranstaltung_id=".$this->db_add_param($lehrveranstaltung_id)."
|
||||
AND studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz).")";
|
||||
|
||||
|
||||
}
|
||||
elseif($lehreinheit_id!='')
|
||||
{
|
||||
@@ -924,10 +971,10 @@ class lehrstunde extends basis_db
|
||||
elseif($mitarbeiter_uid!='')
|
||||
{
|
||||
$qry.=" mitarbeiter_uid=".$this->db_add_param($mitarbeiter_uid)." AND lehreinheit_id IN(
|
||||
SELECT
|
||||
lehreinheit_id
|
||||
FROM
|
||||
lehre.tbl_lehreinheitmitarbeiter
|
||||
SELECT
|
||||
lehreinheit_id
|
||||
FROM
|
||||
lehre.tbl_lehreinheitmitarbeiter
|
||||
JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
|
||||
WHERE mitarbeiter_uid=".$this->db_add_param($mitarbeiter_uid)." AND studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz).")";
|
||||
}
|
||||
|
||||
@@ -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">';
|
||||
|
||||
@@ -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">';
|
||||
|
||||
@@ -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>';
|
||||
|
||||
@@ -743,4 +743,22 @@ class moodle24_course extends basis_db
|
||||
return true;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* gibt alle LE Ids der Übergebenen Moodle_Course_ID zurück
|
||||
*/
|
||||
public function getLeFromCourse($moodle_course_id)
|
||||
{
|
||||
$qry = "SELECT lehreinheit_id FROM lehre.tbl_moodle WHERE moodle_version='2.4' AND mdl_course_id =".$this->db_add_param($moodle_course_id, FHC_INTEGER).';';
|
||||
$le = array();
|
||||
if($result = $this->db_query($qry))
|
||||
{
|
||||
while($row = $this->db_fetch_object())
|
||||
{
|
||||
$le[] = $row->lehreinheit_id;
|
||||
}
|
||||
}
|
||||
return $le;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -389,7 +389,7 @@ class notiz extends basis_db
|
||||
public.tbl_notiz
|
||||
LEFT JOIN public.tbl_notizzuordnung USING(notiz_id)
|
||||
WHERE person_id = ' . $this->db_add_param($person_id, FHC_INTEGER) .
|
||||
' AND (insertvon = ' . $this->db_add_param('online'.$person_id) .' OR insertvon = ' . $this->db_add_param('online_notiz'.$person_id).')
|
||||
' AND (insertvon = ' . $this->db_add_param('online') .' OR insertvon = ' . $this->db_add_param('online_notiz').')
|
||||
|
||||
ORDER BY notiz_id';
|
||||
|
||||
|
||||
@@ -71,6 +71,7 @@ class prestudent extends person
|
||||
public $studienplan_bezeichnung;
|
||||
public $bestaetigtam;
|
||||
public $bestaetigtvon;
|
||||
public $bewerbung_abgeschicktamum;
|
||||
|
||||
public $studiensemester_old = '';
|
||||
public $ausbildungssemester_old = '';
|
||||
@@ -477,6 +478,7 @@ class prestudent extends person
|
||||
$rolle->bestaetigtam = $row->bestaetigtam;
|
||||
$rolle->bestaetigtvon = $row->bestaetigtvon;
|
||||
$rolle->anmerkung_status = $row->anmerkung;
|
||||
$rolle->bewerbung_abgeschicktamum = $row->bewerbung_abgeschicktamum;
|
||||
$this->result[] = $rolle;
|
||||
}
|
||||
return true;
|
||||
@@ -529,6 +531,7 @@ class prestudent extends person
|
||||
$this->bestaetigtam = $row->bestaetigtam;
|
||||
$this->bestaetigtvon = $row->bestaetigtvon;
|
||||
$this->anmerkung_status = $row->anmerkung;
|
||||
$this->bewerbung_abgeschicktamum = $row->bewerbung_abgeschicktamum;
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -584,6 +587,12 @@ class prestudent extends person
|
||||
case "interessenten":
|
||||
$qry.=" AND a.rolle='Interessent'";
|
||||
break;
|
||||
case "bewerbungabgeschickt":
|
||||
$qry.=" AND a.rolle='Interessent' AND bewerbung_abgeschicktamum is not null";
|
||||
break;
|
||||
case "statusbestaetigt":
|
||||
$qry.=" AND a.rolle='Interessent' AND bestaetigtam is not null";
|
||||
break;
|
||||
case "zgv":
|
||||
$stg_obj = new studiengang();
|
||||
$stg_obj->load($studiengang_kz);
|
||||
@@ -772,7 +781,7 @@ class prestudent extends person
|
||||
$qry = 'INSERT INTO public.tbl_prestudentstatus (prestudent_id, status_kurzbz,
|
||||
studiensemester_kurzbz, ausbildungssemester, datum, insertamum, insertvon,
|
||||
updateamum, updatevon, ext_id, orgform_kurzbz, bestaetigtam, bestaetigtvon, anmerkung,
|
||||
studienplan_id) VALUES('.
|
||||
bewerbung_abgeschicktamum, studienplan_id) VALUES('.
|
||||
$this->db_add_param($this->prestudent_id).",".
|
||||
$this->db_add_param($this->status_kurzbz).",".
|
||||
$this->db_add_param($this->studiensemester_kurzbz).",".
|
||||
@@ -787,6 +796,7 @@ class prestudent extends person
|
||||
$this->db_add_param($this->bestaetigtam).",".
|
||||
$this->db_add_param($this->bestaetigtvon).",".
|
||||
$this->db_add_param($this->anmerkung_status).",".
|
||||
$this->db_add_param($this->bewerbung_abgeschicktamum).",".
|
||||
$this->db_add_param($this->studienplan_id,FHC_INTEGER).");";
|
||||
}
|
||||
else
|
||||
@@ -813,6 +823,7 @@ class prestudent extends person
|
||||
' updatevon='.$this->db_add_param($this->updatevon).",".
|
||||
' bestaetigtam='.$this->db_add_param($this->bestaetigtam).",".
|
||||
' bestaetigtvon='.$this->db_add_param($this->bestaetigtvon).",".
|
||||
' bewerbung_abgeschicktamum='.$this->db_add_param($this->bewerbung_abgeschicktamum).",".
|
||||
' studienplan_id='.$this->db_add_param($this->studienplan_id, FHC_INTEGER).",".
|
||||
' anmerkung='.$this->db_add_param($this->anmerkung_status).",".
|
||||
' orgform_kurzbz='.$this->db_add_param($this->orgform_kurzbz).
|
||||
@@ -870,7 +881,7 @@ class prestudent extends person
|
||||
$log->sql = $qry;
|
||||
$log->sqlundo = 'INSERT INTO public.tbl_prestudentstatus(prestudent_id, status_kurzbz, studiensemester_kurzbz,'
|
||||
. ' ausbildungssemester, datum, insertamum, insertvon, updateamum, updatevon, ext_id, orgform_kurzbz,'
|
||||
. ' bestaetigtam, bestaetigtvon, anmerkung, studienplan_id) VALUES('.
|
||||
. ' bestaetigtam, bestaetigtvon, anmerkung, bewerbung_abgeschicktamum, studienplan_id) VALUES('.
|
||||
$this->db_add_param($this->prestudent_id).','.
|
||||
$this->db_add_param($this->status_kurzbz).','.
|
||||
$this->db_add_param($this->studiensemester_kurzbz).','.
|
||||
@@ -885,6 +896,7 @@ class prestudent extends person
|
||||
$this->db_add_param($this->bestaetigtam).','.
|
||||
$this->db_add_param($this->bestaetigtvon).','.
|
||||
$this->db_add_param($this->anmerkung_status).','.
|
||||
$this->db_add_param($this->bewerbung_abgeschicktamum).','.
|
||||
$this->db_add_param($this->studienplan_id, FHC_INTEGER).');';
|
||||
if($log->save(true))
|
||||
{
|
||||
@@ -983,6 +995,7 @@ class prestudent extends person
|
||||
$this->updatevon = $row->updatevon;
|
||||
$this->bestaetigtam = $row->bestaetigtam;
|
||||
$this->bestaetigtvon = $row->bestaetigtvon;
|
||||
$this->bewerbung_abgeschicktamum = $row->bewerbung_abgeschicktamum;
|
||||
$this->orgform_kurzbz = $row->orgform_kurzbz;
|
||||
$this->studienplan_id = $row->studienplan_id;
|
||||
$this->studienplan_bezeichnung = $row->studienplan_bezeichnung;
|
||||
@@ -1035,6 +1048,7 @@ class prestudent extends person
|
||||
$this->updatevon = $row->updatevon;
|
||||
$this->bestaetigtam = $row->bestaetigtam;
|
||||
$this->bestaetigtvon = $row->bestaetigtvon;
|
||||
$this->bewerbung_abgeschicktamum = $row->bewerbung_abgeschicktamum;
|
||||
$this->orgform_kurzbz = $row->orgform_kurzbz;
|
||||
$this->studienplan_id = $row->studienplan_id;
|
||||
return true;
|
||||
|
||||
@@ -280,13 +280,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))
|
||||
{
|
||||
|
||||
@@ -37,20 +37,20 @@ class studiensemester extends basis_db
|
||||
|
||||
/**
|
||||
* Konstruktor - Laedt optional ein StSem
|
||||
*
|
||||
*
|
||||
* @param $studiensemester_kurzbz StSem das geladen werden soll (default=null)
|
||||
*/
|
||||
public function __construct($studiensemester_kurzbz=null)
|
||||
{
|
||||
parent::__construct();
|
||||
|
||||
|
||||
if($studiensemester_kurzbz != null)
|
||||
$this->load($studiensemester_kurzbz);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Laedt das Studiensemester mit der uebergebenen Kurzbz
|
||||
*
|
||||
*
|
||||
* @param $studiensemester_kurzbz Stsem das geladen werden soll
|
||||
*/
|
||||
public function load($studiensemester_kurzbz)
|
||||
@@ -84,9 +84,9 @@ class studiensemester extends basis_db
|
||||
/**
|
||||
* Prueft die Variablen vor dem Speichern
|
||||
* auf Gueltigkeit.
|
||||
*
|
||||
*
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
*/
|
||||
private function validate()
|
||||
{
|
||||
if(mb_strlen($this->studiensemester_kurzbz)>16)
|
||||
@@ -111,7 +111,7 @@ class studiensemester extends basis_db
|
||||
* Speichert das Studiensemester 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()
|
||||
@@ -149,7 +149,7 @@ class studiensemester extends basis_db
|
||||
|
||||
/**
|
||||
* Liefert das aktuelle Studiensemester
|
||||
*
|
||||
*
|
||||
* @return aktuelles Studiensemester oder false wenn es keines gibt
|
||||
*/
|
||||
public function getakt()
|
||||
@@ -177,17 +177,17 @@ class studiensemester extends basis_db
|
||||
/**
|
||||
* Liefert ein Studiensemester mit Startdatum vom naechstgelegenen Studiensemester und
|
||||
* dem Startdatum vom folgenden Studiensemester als Endedatum
|
||||
*
|
||||
*
|
||||
* @return boolean
|
||||
*/
|
||||
public function getNearestTillNext()
|
||||
{
|
||||
if(!$this->getNearest())
|
||||
return false;
|
||||
|
||||
|
||||
$start=$this->start;
|
||||
$studiensemester_kurzbz=$this->studiensemester_kurzbz;
|
||||
|
||||
|
||||
if (!$this->getNextFrom($this->studiensemester_kurzbz))
|
||||
return false;
|
||||
$ende=$this->start;
|
||||
@@ -201,7 +201,7 @@ class studiensemester extends basis_db
|
||||
|
||||
/**
|
||||
* Liefert das Aktuelle Studiensemester oder das darauffolgende
|
||||
*
|
||||
*
|
||||
* @param $semester wenn das semester uebergeben wird, dann werden nur die studiensemester
|
||||
* geliefert die in dieses semester fallen (Bei geradem semester nur SS sonst WS)
|
||||
* @return Studiensemester oder false wenn es keines gibt
|
||||
@@ -213,7 +213,7 @@ class studiensemester extends basis_db
|
||||
else
|
||||
{
|
||||
$qry = "SELECT studiensemester_kurzbz FROM public.tbl_studiensemester WHERE true";
|
||||
|
||||
|
||||
if($semester!='')
|
||||
{
|
||||
if($semester%2==0)
|
||||
@@ -245,7 +245,7 @@ class studiensemester extends basis_db
|
||||
|
||||
/**
|
||||
* Liefert das naechstgelegenste Studiensemester
|
||||
*
|
||||
*
|
||||
* @param semester wenn das semester uebergeben wird, dann werden nur die studiensemester
|
||||
* geliefert die in dieses semester fallen (Bei geradem semester nur SS sonst WS)
|
||||
* @return Studiensemester oder false wenn es keines gibt
|
||||
@@ -292,7 +292,7 @@ class studiensemester extends basis_db
|
||||
public function getAll($order = null)
|
||||
{
|
||||
$qry = "SELECT * FROM public.tbl_studiensemester ORDER BY ende";
|
||||
|
||||
|
||||
if($order == "desc")
|
||||
$qry .= " DESC";
|
||||
|
||||
@@ -322,7 +322,7 @@ class studiensemester extends basis_db
|
||||
|
||||
/**
|
||||
* Liefert das naechste Studiensemester
|
||||
*
|
||||
*
|
||||
* @param $art Wenn art=WS dann wird das naechste Wintersemester geliefert
|
||||
* Wenn art=SS dann wird das naechste Sommersemester geliefert
|
||||
* @return true wenn ok, false wenn kein entsprechendes vorhanden ist
|
||||
@@ -356,10 +356,10 @@ class studiensemester extends basis_db
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Liefert die naechsten Studiensemester bis zum eingestellten Limit
|
||||
*
|
||||
*
|
||||
* @param $art Wenn art=WS dann wird das naechste Wintersemester geliefert
|
||||
* Wenn art=SS dann wird das naechste Sommersemester geliefert
|
||||
* $limit Wie viele kommende Studiensemester sollen geliefert werden?
|
||||
@@ -374,10 +374,10 @@ class studiensemester extends basis_db
|
||||
$qry.= " AND substring(studiensemester_kurzbz from 1 for 2)=".$this->db_add_param($art);
|
||||
|
||||
$qry.=" ORDER BY start";
|
||||
|
||||
|
||||
if(!is_null($limit) && is_numeric($limit))
|
||||
$qry.=" LIMIT ".$limit;
|
||||
else
|
||||
else
|
||||
$qry.=" LIMIT 1";
|
||||
|
||||
if($this->db_query($qry))
|
||||
@@ -385,17 +385,17 @@ class studiensemester extends basis_db
|
||||
while($row = $this->db_fetch_object())
|
||||
{
|
||||
$stsem_obj = new studiensemester();
|
||||
|
||||
|
||||
$stsem_obj->studiensemester_kurzbz = $row->studiensemester_kurzbz;
|
||||
$stsem_obj->start = $row->start;
|
||||
$stsem_obj->ende = $row->ende;
|
||||
$stsem_obj->bezeichnung = $row->bezeichnung;
|
||||
|
||||
|
||||
$this->studiensemester[] = $stsem_obj;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Lesen des Studiensemesters';
|
||||
return false;
|
||||
@@ -404,7 +404,7 @@ class studiensemester extends basis_db
|
||||
|
||||
/**
|
||||
* Liefert das vorige Studiensemester
|
||||
*
|
||||
*
|
||||
* @return studiensemester_kurzbz oder false wenn keines vorhanden
|
||||
*/
|
||||
public function getPrevious()
|
||||
@@ -429,10 +429,10 @@ class studiensemester extends basis_db
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Liefert das vorvorige Studiensemester
|
||||
*
|
||||
*
|
||||
* @return studiensemester_kurzbz oder false wenn keines vorhanden
|
||||
*/
|
||||
public function getBeforePrevious()
|
||||
@@ -468,7 +468,7 @@ class studiensemester extends basis_db
|
||||
|
||||
/**
|
||||
* Liefert das Studiensemester vor $studiensemester_kurzbz
|
||||
*
|
||||
*
|
||||
* @param $studiensemester_kurzbz
|
||||
* @return $studiensemester_kurzbz oder false wenn Fehler
|
||||
*/
|
||||
@@ -500,7 +500,7 @@ class studiensemester extends basis_db
|
||||
|
||||
/**
|
||||
* Liefert das Studiensemester nach $studiensemester_kurzbz
|
||||
*
|
||||
*
|
||||
* @param $studiensemester_kurzbz
|
||||
* @return $studiensemester_kurzbz oder false wenn Fehler
|
||||
*/
|
||||
@@ -535,7 +535,7 @@ class studiensemester extends basis_db
|
||||
|
||||
/**
|
||||
* Liefert das Studiensemester das aktuell am naehesten zu $studiensemester_kurzbz liegt
|
||||
*
|
||||
*
|
||||
* @param $studiensemester_kurzbz
|
||||
* @return $studiensemester_kurzbz oder false wenn Fehler
|
||||
*/
|
||||
@@ -569,7 +569,7 @@ class studiensemester extends basis_db
|
||||
|
||||
/**
|
||||
* Springt von Studiensemester $studiensemester_kurzbz um $wert Studiensemester vor/zurueck
|
||||
*
|
||||
*
|
||||
* @param $studiensemester_kurzbz
|
||||
* @param $wert
|
||||
* @return studiensemester_kurzbz
|
||||
@@ -616,13 +616,13 @@ class studiensemester extends basis_db
|
||||
else
|
||||
return $studiensemester_kurzbz;
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
$this->errormsg='Fehler bei einer Abfrage';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Laedt die vergangenen Studiensemester und das aktuelle
|
||||
*
|
||||
@@ -655,12 +655,12 @@ class studiensemester extends basis_db
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Liefert $days (Default 60) Tage nach dem start des neuen Semesters noch das vorherige Studiensemester
|
||||
* Liefert $days (Default 60) Tage nach dem start des neuen Semesters noch das vorherige Studiensemester
|
||||
* zurueck, danach das aktuelle.
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
* @return studiensemester_kurzbz oder false wenn keines vorhanden
|
||||
*/
|
||||
public function getLastOrAktSemester($days=60)
|
||||
@@ -685,12 +685,12 @@ class studiensemester extends basis_db
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Liefert $days (Default 60) Tage nach dem start des neuen Semesters noch das vorherige Studiensemester
|
||||
* Liefert $days (Default 60) Tage nach dem start des neuen Semesters noch das vorherige Studiensemester
|
||||
* zurueck, danach das aktuelle.
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
* @return studiensemester_kurzbz oder false wenn keines vorhanden
|
||||
*/
|
||||
public function getNextOrAktSemester($days=60)
|
||||
@@ -717,7 +717,7 @@ class studiensemester extends basis_db
|
||||
}
|
||||
/**
|
||||
* Liefert den UNIX Timestamp (Beginn,Ende) eines Studiensemesters
|
||||
*
|
||||
*
|
||||
* @param $studiensemester_kurzbz
|
||||
* @return Beginn und Ende eines Studiensemesters als Timestamp
|
||||
*/
|
||||
@@ -729,7 +729,7 @@ class studiensemester extends basis_db
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
if($row = $this->db_fetch_object())
|
||||
{
|
||||
{
|
||||
if(!isset($this->begin))
|
||||
$this->begin=new stdclass();
|
||||
$this->begin->start=mktime(0,0,0,mb_substr($row->start,5,2),mb_substr($row->start,8,2),mb_substr($row->start,0,4));
|
||||
@@ -749,42 +749,45 @@ class studiensemester extends basis_db
|
||||
$this->errormsg = 'Fehler beim Ermitteln des Studiensemesters';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
/**
|
||||
* untersucht das uebergebene datum in welchem semester es sich befindet
|
||||
* @param type $datum
|
||||
* @return boolean
|
||||
* @return boolean
|
||||
*/
|
||||
public function getSemesterFromDatum($datum)
|
||||
public function getSemesterFromDatum($datum, $next=null)
|
||||
{
|
||||
if($datum == '')
|
||||
{
|
||||
$this->errormsg = "Ungueltiges Datum uebergeben";
|
||||
return false;
|
||||
$this->errormsg = "Ungueltiges Datum uebergeben";
|
||||
return false;
|
||||
}
|
||||
$qry = "SELECT * FROM public.tbl_studiensemester WHERE start <=".$this->db_add_param($datum, FHC_STRING)." AND ende >= ".$this->db_add_param($datum).';';
|
||||
|
||||
if(is_null($next))
|
||||
$qry = "SELECT * FROM public.tbl_studiensemester WHERE start <=".$this->db_add_param($datum, FHC_STRING)." AND ende >= ".$this->db_add_param($datum).';';
|
||||
else
|
||||
$qry = "SELECT * FROM public.tbl_studiensemester WHERE start <=".$this->db_add_param($datum, FHC_STRING)." ORDER BY start desc limit 1;";
|
||||
|
||||
if($result = $this->db_query($qry))
|
||||
{
|
||||
if($row = $this->db_fetch_object())
|
||||
{
|
||||
return $row->studiensemester_kurzbz;
|
||||
return $row->studiensemester_kurzbz;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = "Es wurde kein passendes Studiensemester gefunden";
|
||||
return false;
|
||||
$this->errormsg = "Es wurde kein passendes Studiensemester gefunden";
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = "Fehler bei der Abfrage aufgetreten.";
|
||||
return false;
|
||||
$this->errormsg = "Fehler bei der Abfrage aufgetreten.";
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Liefert das dazupassende Studiensemester im Studienjahr
|
||||
* Liefert das dazupassende Studiensemester im Studienjahr
|
||||
* @param $studiensemester_kurzbz
|
||||
* @return $studiensemester_kurzbz
|
||||
*/
|
||||
@@ -798,39 +801,39 @@ class studiensemester extends basis_db
|
||||
|
||||
/**
|
||||
* Laedt die Studiensemester die fuer die Onlinebewerbung aktiviert sind
|
||||
*
|
||||
*
|
||||
* @return true wenn ok, sonst false
|
||||
*/
|
||||
public function getStudiensemesterOnlinebewerbung()
|
||||
{
|
||||
$qry = "SELECT * FROM public.tbl_studiensemester WHERE onlinebewerbung=true
|
||||
ORDER BY start";
|
||||
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
while($row = $this->db_fetch_object())
|
||||
{
|
||||
$stsem_obj = new studiensemester();
|
||||
|
||||
|
||||
$stsem_obj->studiensemester_kurzbz = $row->studiensemester_kurzbz;
|
||||
$stsem_obj->start = $row->start;
|
||||
$stsem_obj->ende = $row->ende;
|
||||
$stsem_obj->bezeichnung = $row->bezeichnung;
|
||||
|
||||
|
||||
$this->studiensemester[] = $stsem_obj;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Lesen des Studiensemesters';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Liefert ausgehend von heutigen Datum $plus studiensemester in die Zukunft und $minus Studiensemester in die Vergangenheit
|
||||
*
|
||||
*
|
||||
* @param integer $plus Wieviele Studiensemester in die Zukunft sollen ausgegeben werden.
|
||||
* @param integer $minus Wieviele Studiensemester in die Vergangenheit sollen ausgegeben werden.
|
||||
*
|
||||
@@ -840,30 +843,30 @@ class studiensemester extends basis_db
|
||||
{
|
||||
if((is_null($plus) || !is_numeric($plus)) || (is_null($minus) || !is_numeric($minus)))
|
||||
return false;
|
||||
|
||||
|
||||
$qry = "SELECT DISTINCT * FROM public.tbl_studiensemester WHERE studiensemester_kurzbz IN
|
||||
(
|
||||
(SELECT studiensemester_kurzbz FROM public.tbl_studiensemester WHERE start >= now()
|
||||
ORDER BY ende ASC LIMIT $plus)
|
||||
ORDER BY ende ASC LIMIT $plus)
|
||||
UNION
|
||||
(SELECT studiensemester_kurzbz FROM public.tbl_studiensemester WHERE start <= now()
|
||||
ORDER BY start DESC LIMIT $minus)
|
||||
)
|
||||
ORDER BY ende DESC";
|
||||
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
while($row = $this->db_fetch_object())
|
||||
{
|
||||
$stsem_obj = new studiensemester();
|
||||
|
||||
|
||||
$stsem_obj->studiensemester_kurzbz = $row->studiensemester_kurzbz;
|
||||
$stsem_obj->start = $row->start;
|
||||
$stsem_obj->ende = $row->ende;
|
||||
$stsem_obj->bezeichnung = $row->bezeichnung;
|
||||
$stsem_obj->studienjahr_kurzbz = $row->studienjahr_kurzbz;
|
||||
$stsem_obj->beschreibung = $row->beschreibung;
|
||||
|
||||
|
||||
$this->studiensemester[] = $stsem_obj;
|
||||
}
|
||||
return true;
|
||||
@@ -875,5 +878,55 @@ class studiensemester extends basis_db
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Liefert das Studiensemester das am naehesten zu einem Datum in einem
|
||||
* Studiensemester liegt
|
||||
*
|
||||
* @param $studiensemester_kurzbz
|
||||
* @param $datum
|
||||
* @return $studiensemester_kurzbz oder false wenn Fehler
|
||||
*/
|
||||
public function getNearestTo($studiensemester_kurzbz, $datum)
|
||||
{
|
||||
$qry = "SELECT * FROM
|
||||
(
|
||||
SELECT tbl_studiensemester.studiensemester_kurzbz,
|
||||
tbl_studiensemester.start,
|
||||
tbl_studiensemester.ende,
|
||||
tbl_studiensemester.ext_id,
|
||||
@ (tbl_studiensemester.start - ".$this->db_add_param($datum)."::date) AS delta
|
||||
FROM tbl_studiensemester
|
||||
UNION
|
||||
SELECT tbl_studiensemester.studiensemester_kurzbz,
|
||||
tbl_studiensemester.start,
|
||||
tbl_studiensemester.ende,
|
||||
tbl_studiensemester.ext_id,
|
||||
@ (".$this->db_add_param($datum)."::date - tbl_studiensemester.ende) AS delta
|
||||
FROM tbl_studiensemester
|
||||
) a
|
||||
WHERE a.studiensemester_kurzbz!=".$this->db_add_param($studiensemester_kurzbz)."
|
||||
ORDER BY delta LIMIT 1";
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
if($row = $this->db_fetch_object())
|
||||
{
|
||||
$this->studiensemester_kurzbz = $row->studiensemester_kurzbz;
|
||||
$this->start = $row->start;
|
||||
$this->ende = $row->ende;
|
||||
return $row->studiensemester_kurzbz;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Es wurde kein folgendes Studiensemester gefunden';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Ermitteln des folgenden Studiensemesters';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
||||
@@ -638,7 +638,14 @@ class wochenplan extends basis_db
|
||||
|
||||
// Formularbeginn wenn Lektor
|
||||
if ($raumres && $this->type=='ort')
|
||||
echo '<form name="reserve" method="post" action="stpl_week.php">'.$this->crlf;
|
||||
{
|
||||
$ort = new ort();
|
||||
$ort->load($this->ort_kurzbz);
|
||||
if($ort->reservieren)
|
||||
echo '<form name="reserve" method="post" action="stpl_week.php">'.$this->crlf;
|
||||
else
|
||||
$raumres=false;
|
||||
}
|
||||
|
||||
//Tabelle zeichnen
|
||||
echo ' <table class="stdplan" width="100%" border="0" cellpadding="1" cellspacing="1" name="Stundenplantabelle" align="center">'.$this->crlf;
|
||||
|
||||
Reference in New Issue
Block a user