Merge branch 'master' into signatur

This commit is contained in:
Andreas Österreicher
2018-03-15 17:47:25 +01:00
43 changed files with 1529 additions and 1282 deletions
+63 -57
View File
@@ -76,15 +76,15 @@ class ablauf extends basis_db
//laden des Datensatzes
$qry = "SELECT
tbl_ablauf.*,
tbl_ablauf_vorgaben.sprache,
tbl_ablauf_vorgaben.sprachwahl,
tbl_ablauf.*,
tbl_ablauf_vorgaben.sprache,
tbl_ablauf_vorgaben.sprachwahl,
tbl_ablauf_vorgaben.content_id
FROM
testtool.tbl_ablauf
LEFT JOIN
LEFT JOIN
testtool.tbl_ablauf_vorgaben USING (ablauf_vorgaben_id)
WHERE
WHERE
ablauf_id=".$this->db_add_param($ablauf_id, FHC_INTEGER, false).";";
if($this->db_query($qry))
@@ -92,7 +92,7 @@ class ablauf extends basis_db
if($row = $this->db_fetch_object())
{
$obj = new ablauf();
$obj->studiengang_kz = $row->studiengang_kz;
$obj->gebiet_id = $row->gebiet_id;
$obj->reihung = $row->reihung;
@@ -108,7 +108,7 @@ class ablauf extends basis_db
$obj->sprache = $row->sprache;
$obj->sprachwahl = $this->db_parse_bool($row->sprachwahl);
$obj->content_id = $row->content_id;
$this->result[] = $obj;
return true;
}
@@ -152,7 +152,7 @@ class ablauf extends basis_db
return false;
}
}
/**
* Loescht einen Ablauf-Vorgabe Datensatz
* @param $ablauf_vorgabe_id ID des zu loeschenden Datensatzes
@@ -166,10 +166,10 @@ class ablauf extends basis_db
$this->errormsg = 'ablauf_vorgabe_id muss eine gueltige Zahl sein';
return false;
}
$qry = "DELETE FROM testtool.tbl_ablauf_vorgaben
WHERE ablauf_vorgaben_id=".$this->db_add_param($ablauf_vorgabe_id, FHC_INTEGER).";";
if($this->db_query($qry))
{
return true;
@@ -300,7 +300,7 @@ class ablauf extends basis_db
return false;
}
}
/**
* Laedt die zugehoerigen Gebiete zum angegebenen Studiengang (gegebenfalls auch Studienplan)
* @param $studiengang_kz ID des Studiengang
@@ -308,30 +308,31 @@ class ablauf extends basis_db
* @param $semester
* @return boolean true wenn ok sonst false
*/
public function getAblaufGebiete($studiengang_kz, $studienplan_id=null, $semester=null)
public function getAblaufGebiete($studiengang_kz, $studienplan_id=null, $semester=null)
{
$qry = "SELECT
tbl_ablauf.*,
tbl_ablauf_vorgaben.sprache,
tbl_ablauf_vorgaben.sprachwahl,
tbl_ablauf_vorgaben.content_id
FROM
testtool.tbl_ablauf
LEFT JOIN
$qry = "SELECT
tbl_ablauf.*,
tbl_ablauf_vorgaben.sprache,
tbl_ablauf_vorgaben.sprachwahl,
tbl_ablauf_vorgaben.content_id
FROM
testtool.tbl_ablauf
LEFT JOIN
testtool.tbl_ablauf_vorgaben USING (ablauf_vorgaben_id)
WHERE
tbl_ablauf.studiengang_kz=".$studiengang_kz;
WHERE
tbl_ablauf.studiengang_kz=".$this->db_add_param($studiengang_kz, FHC_INTEGER);
if (!is_null($studienplan_id))
$qry .= " AND studienplan_id=".$studienplan_id;
$qry .= " AND studienplan_id=".$this->db_add_param($studienplan_id, FHC_INTEGER);
if (!is_null($semester))
$qry .= " AND semester=".$semester;
$qry .= " AND semester=".$this->db_add_param($semester, FHC_INTEGER);
if($result = $this->db_query($qry))
{
while($row = $this->db_fetch_object($result))
{
$obj = new stdClass();
$obj->ablauf_id = $row->ablauf_id;
$obj->gebiet_id = $row->gebiet_id;
$obj->reihung = $row->reihung;
@@ -342,7 +343,7 @@ class ablauf extends basis_db
$obj->sprache = $row->sprache;
$obj->sprachwahl = $this->db_parse_bool($row->sprachwahl);
$obj->content_id = $row->content_id;
$this->result[]= $obj;
}
return true;
@@ -353,7 +354,7 @@ class ablauf extends basis_db
return false;
}
}
/**
* Leadt die ablauf_id zu einer Kombination aus Studiengang und Gebiet
* @param $studiengang_kz Studiengang
@@ -366,8 +367,10 @@ class ablauf extends basis_db
*
FROM
testtool.tbl_ablauf
WHERE studiengang_kz=".$studiengang_kz." AND gebiet_id=".$gebiet_id.";";
WHERE
studiengang_kz=".$this->db_add_param($studiengang_kz, FHC_INTEGER)."
AND gebiet_id=".$this->db_add_param($gebiet_id, FHC_INTEGER).";";
if($this->db_query($qry))
{
if($row = $this->db_fetch_object())
@@ -382,7 +385,7 @@ class ablauf extends basis_db
}
}
}
/**
* Laedt eine Ablauf-Vorgabe
* @param $ablauf_vorgaben_id ID des zu ladenden Datensatzes
@@ -395,14 +398,14 @@ class ablauf extends basis_db
$this->errormsg = 'ablauf_vorgaben_id muss eine gueltige Zahl sein';
return false;
}
//laden des Datensatzes
$qry = "SELECT
*
FROM
testtool.tbl_ablauf_vorgaben
WHERE ablauf_vorgaben_id=".$this->db_add_param($ablauf_vorgaben_id, FHC_INTEGER, false).";";
if($this->db_query($qry))
{
if($row = $this->db_fetch_object())
@@ -430,7 +433,7 @@ class ablauf extends basis_db
return false;
}
}
/**
* Speichert eine Ablauf-Vorgabe
* Wenn $neu auf true gesetzt ist wird ein neuer Datensatz angelegt
@@ -506,27 +509,27 @@ class ablauf extends basis_db
return false;
}
}
/**
* Laedt alle Ablauf-Vorgaben Eintraege
* @return boolean true wenn ok sonst false
*/
public function getAllAblaufVorgaben()
public function getAllAblaufVorgaben()
{
$qry = "SELECT * FROM testtool.tbl_ablauf_vorgaben";
if($result = $this->db_query($qry))
{
while($row = $this->db_fetch_object($result))
{
$obj = new ablauf();
$obj->ablauf_vorgaben_id = $row->ablauf_vorgaben_id;
$obj->studiengang_kz = $row->studiengang_kz;
$obj->sprache = $row->sprache;
$obj->sprachwahl = $this->db_parse_bool($row->sprachwahl);
$obj->content_id = $row->content_id;
$this->result[]= $obj;
}
return true;
@@ -537,7 +540,7 @@ class ablauf extends basis_db
return false;
}
}
/**
* Laedt einen Ablauf-Vorgabe Eintrag anhand der uebergebenen Studiengangskennzahl
* @param $studiengang_kz ID des Studiengang
@@ -551,21 +554,22 @@ class ablauf extends basis_db
$this->errormsg = 'studiengang_kz muss eine gueltige Zahl sein';
return false;
}
$qry = "SELECT * FROM testtool.tbl_ablauf_vorgaben WHERE studiengang_kz=".$this->db_add_param($studiengang_kz, FHC_INTEGER, false);
$qry = "SELECT * FROM testtool.tbl_ablauf_vorgaben
WHERE studiengang_kz=".$this->db_add_param($studiengang_kz, FHC_INTEGER, false);
if($result = $this->db_query($qry))
{
while($row = $this->db_fetch_object($result))
{
$obj = new ablauf();
$obj->ablauf_vorgaben_id = $row->ablauf_vorgaben_id;
$obj->studiengang_kz = $row->studiengang_kz;
$obj->sprache = $row->sprache;
$obj->sprachwahl = $row->sprachwahl;
$obj->content_id = $row->content_id;
$this->result[]= $obj;
}
return true;
@@ -576,7 +580,7 @@ class ablauf extends basis_db
return false;
}
}
/**
* Zaehlt, wie of die ablauf_vorgabe_id noch in tbl_ablauf verwendet wird
* @param integer $ablauf_vorgaben_id Ablauf-Vorlage-ID
@@ -590,9 +594,10 @@ class ablauf extends basis_db
$this->errormsg = 'ablauf_vorgaben_id muss eine gueltige Zahl sein';
return false;
}
$qry = "SELECT count(*) FROM testtool.tbl_ablauf WHERE ablauf_vorgaben_id=".$this->db_add_param($ablauf_vorgaben_id, FHC_INTEGER);
$qry = "SELECT count(*) FROM testtool.tbl_ablauf
WHERE ablauf_vorgaben_id=".$this->db_add_param($ablauf_vorgaben_id, FHC_INTEGER);
if($this->db_query($qry))
{
if($row = $this->db_fetch_object())
@@ -621,24 +626,25 @@ class ablauf extends basis_db
*/
public function getDauer($studiengang_kz, $studienplan_id=null, $semester=null)
{
$qry = "SELECT
$qry = "SELECT
SUM (zeit) as dauer
FROM
testtool.tbl_ablauf
JOIN
FROM
testtool.tbl_ablauf
JOIN
testtool.tbl_gebiet USING (gebiet_id)
WHERE
studiengang_kz=".$studiengang_kz;
WHERE
studiengang_kz=".$this->db_add_param($studiengang_kz, FHC_INTEGER);
if (!is_null($studienplan_id))
$qry .= " AND studienplan_id=".$studienplan_id;
$qry .= " AND studienplan_id=".$this->db_add_param($studienplan_id, FHC_INTEGER);
if (!is_null($semester))
$qry .= " AND semester=".$semester;
$qry .= " AND semester=".$this->db_add_param($semester, FHC_INTEGER);
if($this->db_query($qry))
{
if($row = $this->db_fetch_object())
{
return $row->dauer;
}
else
+15 -9
View File
@@ -81,7 +81,13 @@ class frage extends basis_db
return false;
}
$qry = "SELECT * FROM testtool.tbl_frage LEFT OUTER JOIN testtool.tbl_frage_sprache USING (frage_id) WHERE frage_id=".$this->db_add_param($frage_id, FHC_INTEGER);
$qry = "SELECT
*
FROM
testtool.tbl_frage
LEFT OUTER JOIN testtool.tbl_frage_sprache USING (frage_id)
WHERE
frage_id=".$this->db_add_param($frage_id, FHC_INTEGER);
if($this->db_query($qry))
{
@@ -381,9 +387,9 @@ class frage extends basis_db
{
$qry = "SELECT * FROM testtool.tbl_frage_sprache JOIN testtool.tbl_frage USING(frage_id)
WHERE frage_id=".$this->db_add_param($frage_id, FHC_INTEGER)." AND sprache=".$this->db_add_param($sprache);
if (!is_null($aktiv))
$qry .= " AND aktiv=".$aktiv;
$qry .= " AND aktiv=".($aktiv?'true':'false');
if($this->db_query($qry))
{
@@ -832,10 +838,10 @@ class frage extends basis_db
return false;
}
}
/**
* Gibt die Nummer der naechsten Frage zurueck (nicht fuer den test sondern fuer die testtool-administrationsseite)
*
*
* @param $frage_nummer Nummer der aktuellen Frage
* @param $gebiet_id Gebiet der Fragen
* @param $aktiv true wenn nur aktiv, false wenn nur inaktiv, null wenn beides
@@ -846,14 +852,14 @@ class frage extends basis_db
$qry = "SELECT nummer FROM testtool.tbl_frage
WHERE gebiet_id=".$this->db_add_param($gebiet_id, FHC_INTEGER)."
AND nummer>".$this->db_add_param($frage_nummer, FHC_INTEGER);
if (!is_null($aktiv) && $aktiv)
$qry .= " AND aktiv";
if (!is_null($aktiv) && !$aktiv)
$qry .= " AND NOT aktiv";
$qry .= " ORDER BY nummer ASC LIMIT 1"; //Es wird immer nur ein Maximum geben, deswegen kein max()
if($this->db_query($qry))
{
while($row = $this->db_fetch_object())
@@ -886,7 +892,7 @@ class frage extends basis_db
}
return $number;
}
else
else
{
return false;
}
File diff suppressed because it is too large Load Diff
+11 -11
View File
@@ -49,7 +49,7 @@ class nation extends basis_db
public function __construct($code=null)
{
parent::__construct();
if($code != null)
$this->load($code);
}
@@ -64,7 +64,7 @@ class nation extends basis_db
{
//Lesen der Daten aus der Datenbank
$qry = "SELECT * FROM bis.tbl_nation WHERE nation_code=".$this->db_add_param($code).';';
if(!$this->db_query($qry))
{
$this->errormsg = 'Fehler bei einer Datenbankabfrage';
@@ -101,17 +101,17 @@ class nation extends basis_db
{
//Lesen der Daten aus der Datenbank
$qry = "SELECT * FROM bis.tbl_nation";
if ($ohnesperre)
$qry .= " WHERE sperre is null";
$qry .= " WHERE sperre is null OR sperre is false";
if ($orderEnglish == false)
$qry .= " ORDER BY kurztext";
else
else
$qry .= " ORDER BY engltext";
$qry .= ';';
if (!$this->db_query($qry))
{
$this->errormsg = 'Fehler bei einer Datenbankabfrage';
@@ -134,10 +134,10 @@ class nation extends basis_db
$this->nation[] = $nation;
}
return true;
}
/**
* Speichert die Personendaten in die Datenbank
* @return true wenn erfolgreich, false im Fehlerfall
@@ -169,4 +169,4 @@ class nation extends basis_db
}
}
}
?>
?>
+2 -2
View File
@@ -176,7 +176,7 @@ $menu=array
'Wartung'=> array
(
'name'=>'Wartung', 'opener'=>'true', 'hide'=>'true', 'image'=>'vilesci_wartung.png', 'link'=>'left.php?categorie=Wartung', 'target'=>'nav',
'permissions'=>array('basis/studiengang','lehre/vorrueckung','student/vorrueckung','admin','basis/firma','student/stammdaten','assistenz','lv-plan'),
'DokumenteZuteilung'=>array('name'=>'Dokumente Zuteilung', 'link'=>'stammdaten/studiengang_dokumente.php', 'target'=>'main', 'permissions'=>array('basis/studiengang')),
'Vorrueckung'=> array
(
@@ -186,7 +186,7 @@ $menu=array
),
'Kreuzerllistekopieren'=>array('name'=>'Kreuzerllisten kopieren', 'link'=>CIS_ROOT.'cis/private/lehre/benotungstool/copy_uebung.php', 'target'=>'_blank','permissions'=>array('admin')),
'Firmenwartung'=>array('name'=>'Firmenwartung', 'link'=>'stammdaten/firma_zusammen_uebersicht.php', 'target'=>'main','permissions'=>array('basis/firma')),
'checkStudenten'=>array('name'=>'CheckStudenten', 'link'=>'../system/checkStudenten.php', 'target'=>'main'),
'checkStudenten'=>array('name'=>'CheckStudenten', 'link'=>'../system/checkStudenten.php', 'target'=>'main', 'permissions'=>array('student/stammdaten')),
'StudienplanZuteilung'=>array('name'=>'Studienplan Zuteilung', 'link'=>'lehre/studienplan_zuteilung.php', 'target'=>'main','permissions'=>array('assistenz')),
'lv_merge'=>array('name'=>'LVs zusammenlegen', 'link'=>'lehre/lv_merge.php', 'target'=>'main','permissions'=>array('admin','lv-plan')),
'akteupdate'=>array('name'=>'Akten überschreiben', 'link'=>'personen/akteupdate.php', 'target'=>'main','permissions'=>array('admin')),
+60 -33
View File
@@ -133,7 +133,7 @@ class zeitaufzeichnung extends basis_db
//Variablen pruefen
if(!$this->validate())
return false;
// check ob identischer eintrag existiert
$check_qry = 'SELECT count(*) from campus.tbl_zeitaufzeichnung where uid='.$this->db_add_param($this->uid).' and start = '.$this->db_add_param($this->start).' and ende = '.$this->db_add_param($this->ende);
if($this->db_query($check_qry) && $this->new)
@@ -142,13 +142,13 @@ class zeitaufzeichnung extends basis_db
{
if ($row->count)
{
$this->errormsg = 'Identischer Eintrag existiert!';
$this->errormsg = 'Identischer Eintrag existiert!';
return false;
}
}
}
if($this->new)
{
//Neuen Datensatz einfuegen
@@ -339,7 +339,7 @@ class zeitaufzeichnung extends basis_db
//zusätzlicher Tag - SQL rechnet letzten Tag nicht hinein
$to = date('Y-m-d', strtotime($to. ' + 1 days'));
$where.= " AND ((start >= ".$this->db_add_param($from)."::DATE AND start <= ".$this->db_add_param($to)."::DATE)
$where.= " AND ((start >= ".$this->db_add_param($from)."::DATE AND start <= ".$this->db_add_param($to)."::DATE)
OR (ende >= ".$this->db_add_param($from)."::DATE AND ende <= ".$this->db_add_param($to)."::DATE))";
$qry = "SELECT
@@ -506,16 +506,16 @@ class zeitaufzeichnung extends basis_db
return false;
}
}
/**
* Löscht sämtliche Einträge eines Users für einen Tag
* Löscht sämtliche Einträge eines Users für einen Tag
* @param string $user
* @param string $tag Y-m-d
*/
public function deleteEntriesForUser($user, $tag)
{
$where = "uid=".$this->db_add_param($user);
{
$where = "uid=".$this->db_add_param($user);
$qry = "delete from campus.tbl_zeitaufzeichnung where $where and date_trunc('day', start) = '$tag'";
if($result = $this->db_query($qry))
{
@@ -529,28 +529,28 @@ class zeitaufzeichnung extends basis_db
}
/**
* Löscht Pauseneinträge eines Users für einen Tag, die außerhalb der Arbeitszeit liegen
* Löscht Pauseneinträge eines Users für einen Tag, die außerhalb der Arbeitszeit liegen
* Löscht Pauseneinträge an Tagen ohne Arbeitszeit
* @param string $user
* @param string $tag Y-m-d
*/
public function cleanPausenForUser($user, $tag)
{
$where = "uid=".$this->db_add_param($user);
{
$where = "uid=".$this->db_add_param($user);
$qry = "
delete from campus.tbl_zeitaufzeichnung where aktivitaet_kurzbz = 'Pause' and start::date = '$tag' and $where and
(
start::time >=
start::time >=
(SELECT max(ende::time) as endzeit from campus.tbl_zeitaufzeichnung where $where and start::date = '$tag' AND (aktivitaet_kurzbz != 'LehreExtern' or aktivitaet_kurzbz is null ) and aktivitaet_kurzbz != 'Pause')
or
ende::time<=
(SELECT min(start::time) as startzeit from campus.tbl_zeitaufzeichnung where $where and start::date = '$tag' AND (aktivitaet_kurzbz != 'LehreExtern' or aktivitaet_kurzbz is null ) and aktivitaet_kurzbz != 'Pause')
or not exists
(select 1 from campus.tbl_zeitaufzeichnung where aktivitaet_kurzbz != 'LehreExtern' and aktivitaet_kurzbz != 'Pause' and start::date = '$tag' and $where )
(select 1 from campus.tbl_zeitaufzeichnung where aktivitaet_kurzbz != 'LehreExtern' and aktivitaet_kurzbz != 'Pause' and start::date = '$tag' and $where )
)
";
if($result = $this->db_query($qry))
{
return true;
@@ -563,52 +563,79 @@ or not exists
}
/**
* Holt alle ZA-Einträge Typ LehreIntern und LehreExtern eines Users
* Holt alle ZA-Einträge Typ LehreIntern und LehreExtern eines Users
* für das laufende Studienjahr und gibt die Summen in einem Array zurück
* @param string $user
* @return Array mit Keay: LehreIntern, LehreExtern, LehreAuftraege, LehreInkludiert
*/
* @return Array mit Key: LehreIntern, LehreExtern, LehreAuftraege, LehreInkludiert
*/
public function getLehreForUser($user,$sem)
{
$where = "uid=".$this->db_add_param($user);
$where = "uid=".$this->db_add_param($user);
$where_sem = "studiensemester_kurzbz=".$this->db_add_param($sem);
$lehre_arr = array("LehreIntern"=>0, "LehreExtern"=>0, "LehreAuftraege"=>0);
$qry = "
select sum(extract(epoch from ende-start))/3600 as lehre, aktivitaet_kurzbz from campus.tbl_zeitaufzeichnung where $where and aktivitaet_kurzbz in ('LehreIntern', 'LehreExtern') and start > (select start from public.tbl_studiensemester where $where_sem) group by aktivitaet_kurzbz
";
if($result = $this->db_query($qry))
{
while($row = $this->db_fetch_object($result))
{
$lehre_arr[$row->aktivitaet_kurzbz] = round($row->lehre,2);
$lehre_arr[$row->aktivitaet_kurzbz] = round($row->lehre,2);
}
}
else
{
return false;
}
}
$where = "mitarbeiter_uid=".$this->db_add_param($user);
$where_sem = "l.studiensemester_kurzbz=".$this->db_add_param($sem);
$qry = "
select sum(m.semesterstunden) from lehre.tbl_lehreinheitmitarbeiter m, lehre.tbl_lehreinheit l where $where and $where_sem and l.lehreinheit_id = m.lehreinheit_id and m.stundensatz*m.semesterstunden > 0
$qry = "
SELECT sum(semstunden) AS stunden
FROM
(
SELECT sum(m.semesterstunden) AS semstunden
FROM
lehre.tbl_lehreinheitmitarbeiter m,
lehre.tbl_lehreinheit l
WHERE
$where AND
$where_sem AND
l.lehreinheit_id = m.lehreinheit_id AND
m.stundensatz * m.semesterstunden > 0
UNION
SELECT sum(pb.stunden) AS semstunden
FROM
lehre.tbl_projektarbeit pa,
lehre.tbl_projektbetreuer pb,
lehre.tbl_lehreinheit l,
public.tbl_benutzer b
WHERE
pa.lehreinheit_id = l.lehreinheit_id AND
pb.projektarbeit_id = pa.projektarbeit_id AND
pb.person_id = b.person_id AND
b.uid = ".$this->db_add_param($user)." AND
pb.stunden * pb.stundensatz > 0 AND
$where_sem
) AS semstunden
";
if($result = $this->db_query($qry))
{
while($row = $this->db_fetch_object($result))
{
$lehre_arr["LehreAuftraege"] = round($row->sum);
$lehre_arr["LehreAuftraege"] = round($row->stunden);
}
}
else
{
return false;
}
}
return $lehre_arr;
}
}