mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-22 17:32:18 +00:00
Merge branch 'master' into feature-26336/Composer_Twig_Dependency_Security_Issue
This commit is contained in:
@@ -178,7 +178,7 @@ class File_CSV
|
||||
return $field;
|
||||
}
|
||||
|
||||
if ($quote && $field{0} == $quote && $field{strlen($field)-1} == $quote) {
|
||||
if ($quote && $field[0] == $quote && $field[strlen($field) - 1] == $quote) {
|
||||
return substr($field, 1, -1);
|
||||
}
|
||||
return $field;
|
||||
@@ -230,7 +230,7 @@ class File_CSV
|
||||
} elseif ($c == "\n" || $c == "\r") {
|
||||
$sub = ($prev == "\r") ? 2 : 1;
|
||||
if ((strlen($buff) >= $sub) &&
|
||||
($buff{strlen($buff) - $sub} == $quote))
|
||||
($buff[strlen($buff) - $sub] == $quote))
|
||||
{
|
||||
$in_quote = false;
|
||||
}
|
||||
@@ -312,9 +312,9 @@ class File_CSV
|
||||
$last =& $fields[count($fields) - 1];
|
||||
// Fallback to read the line with readQuoted when guess
|
||||
// that the simple explode won't work right
|
||||
if (($last{strlen($last) - 1} == "\n"
|
||||
&& $last{0} == $conf['quote']
|
||||
&& $last{strlen(rtrim($last)) - 1} != $conf['quote'])
|
||||
if (($last[strlen($last) - 1] == "\n"
|
||||
&& $last[0] == $conf['quote']
|
||||
&& $last[strlen(rtrim($last)) - 1] != $conf['quote'])
|
||||
||
|
||||
(count($fields) != $conf['fields'])
|
||||
// XXX perhaps there is a separator inside a quoted field
|
||||
@@ -511,4 +511,4 @@ class File_CSV
|
||||
return true;
|
||||
}
|
||||
}
|
||||
?>
|
||||
?>
|
||||
|
||||
@@ -96,7 +96,7 @@ class File_Util
|
||||
{
|
||||
if (File_Util::isAbsolute($path)) {
|
||||
if (FILE_WIN32) {
|
||||
return substr($path, $path{3} == '\\' ? 4 : 3);
|
||||
return substr($path, $path[3] == '\\' ? 4 : 3);
|
||||
}
|
||||
return ltrim($path, '/');
|
||||
}
|
||||
@@ -182,7 +182,7 @@ class File_Util
|
||||
if (FILE_WIN32) {
|
||||
return preg_match('/^[a-zA-Z]:(\\\|\/)/', $path);
|
||||
}
|
||||
return ($path{0} == '/') || ($path{0} == '~');
|
||||
return ($path[0] == '/') || ($path[0] == '~');
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -244,11 +244,11 @@ class File_Util
|
||||
} else {
|
||||
$cwd = getcwd();
|
||||
$drive = substr($cwd, 0, 2);
|
||||
if ($path{0} !== $separator{0}) {
|
||||
if ($path[0] !== $separator[0]) {
|
||||
$path = substr($cwd, 3) . $separator . $path;
|
||||
}
|
||||
}
|
||||
} elseif ($path{0} !== $separator) {
|
||||
} elseif ($path[0] !== $separator) {
|
||||
$path = getcwd() . $separator . $path;
|
||||
}
|
||||
|
||||
@@ -323,7 +323,7 @@ class File_Util
|
||||
|
||||
$entries = array();
|
||||
for ($dir = dir($path); false !== $entry = $dir->read(); ) {
|
||||
if ($list & FILE_LIST_DOTS || $entry{0} !== '.') {
|
||||
if ($list & FILE_LIST_DOTS || $entry[0] !== '.') {
|
||||
$isRef = ($entry === '.' || $entry === '..');
|
||||
$isDir = $isRef || is_dir($path .'/'. $entry);
|
||||
if ( ((!$isDir && $list & FILE_LIST_FILES) ||
|
||||
|
||||
@@ -575,5 +575,47 @@ class ampel extends basis_db
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Zählt die Anzahl der UIDs, welche mit einer Ampel adressiert werden
|
||||
* @param $ampel_id integer ID der Ampel, die geladen werden soll
|
||||
*/
|
||||
public function getAnzahlUserAmpel($ampel_id)
|
||||
{
|
||||
// Ampel laden
|
||||
$qry_ampel = "SELECT benutzer_select FROM public.tbl_ampel WHERE ampel_id=".$this->db_add_param($ampel_id, FHC_INTEGER);
|
||||
|
||||
if($result_ampel = $this->db_query($qry_ampel))
|
||||
{
|
||||
// Anzahl User laden
|
||||
if ($row_ampel = $this->db_fetch_object($result_ampel))
|
||||
{
|
||||
$qry_user = "SELECT count(*) AS anzahl FROM (SELECT uid FROM public.tbl_benutzer WHERE uid IN (".$row_ampel->benutzer_select."))subquery";
|
||||
}
|
||||
|
||||
if ($result = $this->db_query($qry_user))
|
||||
{
|
||||
if ($row = $this->db_fetch_object($result))
|
||||
{
|
||||
return $row->anzahl;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Anzahl UIDs konnte nicht geladen werden';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Anzahl UIDs konnte nicht geladen werden';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden der Ampel';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
||||
+170
-72
@@ -479,91 +479,182 @@ class anwesenheit extends basis_db
|
||||
*/
|
||||
public function loadAnwesenheitStudiensemester($studiensemester_kurzbz, $student_uid=null, $lehrveranstaltung_id=null)
|
||||
{
|
||||
$qry = "SELECT
|
||||
lehrveranstaltung_id, vorname, nachname, wahlname, student_uid as uid, bezeichnung,
|
||||
gesamt as gesamtstunden, anwesend, nichtanwesend, trunc(100-(nichtanwesend/gesamt)*100,2) as prozent
|
||||
FROM
|
||||
(
|
||||
SELECT
|
||||
vorname, nachname, wahlname, lehrveranstaltung_id, bezeichnung, gruppe, student_uid,
|
||||
count(stundenplan_id) as gesamt,
|
||||
case when anwesend.summe is null then 0 else anwesend.summe end as anwesend,
|
||||
case when nichtanwesend.summe is null then 0 else nichtanwesend.summe end as nichtanwesend
|
||||
$qry = "SELECT
|
||||
lehrveranstaltung_id,
|
||||
vorname,
|
||||
nachname,
|
||||
wahlname,
|
||||
student_uid AS uid,
|
||||
bezeichnung,
|
||||
gesamt AS gesamtstunden,
|
||||
anwesend,
|
||||
nichtanwesend,
|
||||
CASE WHEN gesamt = 0 THEN 100.00 ELSE trunc(100-(nichtanwesend/(gesamt))*100,2) END AS prozent
|
||||
|
||||
FROM(
|
||||
SELECT
|
||||
vorname,
|
||||
nachname,
|
||||
wahlname,
|
||||
lehrveranstaltung_id,
|
||||
bezeichnung,
|
||||
student_uid,
|
||||
--COUNT(stundenplan_id) AS gesamts,
|
||||
COALESCE(anwesend.summe, 0) + COALESCE(nichtanwesend.summe, 0) AS gesamt,
|
||||
COALESCE(anwesend.summe, 0) AS anwesend,
|
||||
COALESCE(nichtanwesend.summe, 0) AS nichtanwesend
|
||||
|
||||
FROM
|
||||
(
|
||||
SELECT
|
||||
sum(stundenplan_id) as stundenplan_id, datum, stunde, lehrveranstaltung_id,
|
||||
bezeichnung, studiensemester_kurzbz, studiengang_kz,
|
||||
TRIM(
|
||||
CASE WHEN stp.gruppe_kurzbz is not null then stp.gruppe_kurzbz
|
||||
else stp.semester||(case when verband is null then '' else stp.verband end)||(case when stp.gruppe is null then '' else stp.gruppe end) end) as gruppe
|
||||
SELECT
|
||||
SUM(stundenplan_id) AS stundenplan_id,
|
||||
datum,
|
||||
stunde,
|
||||
lehrveranstaltung_id,
|
||||
bezeichnung,
|
||||
studiensemester_kurzbz,
|
||||
studiengang_kz
|
||||
|
||||
FROM
|
||||
lehre.tbl_lehrveranstaltung lv
|
||||
JOIN lehre.tbl_lehreinheit le using (lehrveranstaltung_id)
|
||||
JOIN lehre.tbl_stundenplan stp using (lehreinheit_id,studiengang_kz)
|
||||
JOIN
|
||||
lehre.tbl_lehreinheit le USING (lehrveranstaltung_id)
|
||||
JOIN
|
||||
lehre.tbl_stundenplan stp USING (lehreinheit_id,studiengang_kz)
|
||||
|
||||
WHERE
|
||||
studiensemester_kurzbz = ".$this->db_add_param($studiensemester_kurzbz)."
|
||||
AND (titel not like '%Nebenprüfung%' OR titel is null)
|
||||
|
||||
group by datum, stunde, lehrveranstaltung_id, bezeichnung, studiensemester_kurzbz, studiengang_kz, stp.gruppe_kurzbz, stp.semester, stp.verband, stp.gruppe
|
||||
AND (titel NOT LIKE '%Nebenprüfung%' OR titel IS NULL)
|
||||
|
||||
GROUP BY
|
||||
datum,
|
||||
stunde,
|
||||
lehrveranstaltung_id,
|
||||
bezeichnung,
|
||||
studiensemester_kurzbz,
|
||||
studiengang_kz,
|
||||
stp.gruppe_kurzbz,
|
||||
stp.semester,
|
||||
stp.verband,
|
||||
stp.gruppe
|
||||
)x
|
||||
JOIN (
|
||||
SELECT semester::text as gruppe, public.tbl_studentlehrverband.studiensemester_kurzbz, student_uid, studiengang_kz
|
||||
FROM
|
||||
public.tbl_studentlehrverband
|
||||
WHERE studiensemester_kurzbz = ".$this->db_add_param($studiensemester_kurzbz)."
|
||||
|
||||
UNION
|
||||
|
||||
SELECT semester||verband as gruppe, public.tbl_studentlehrverband.studiensemester_kurzbz, student_uid, studiengang_kz
|
||||
FROM
|
||||
public.tbl_studentlehrverband
|
||||
WHERE
|
||||
studiensemester_kurzbz = ".$this->db_add_param($studiensemester_kurzbz)."
|
||||
|
||||
UNION
|
||||
|
||||
SELECT semester||verband||gruppe as gruppe, public.tbl_studentlehrverband.studiensemester_kurzbz, student_uid, studiengang_kz
|
||||
FROM
|
||||
public.tbl_studentlehrverband
|
||||
WHERE
|
||||
studiensemester_kurzbz = ".$this->db_add_param($studiensemester_kurzbz)."
|
||||
|
||||
UNION
|
||||
|
||||
SELECT gruppe_kurzbz as gruppe, public.tbl_benutzergruppe.studiensemester_kurzbz, uid as student_uid, studiengang_kz
|
||||
FROM
|
||||
public.tbl_benutzergruppe
|
||||
JOIN
|
||||
public.tbl_gruppe using (gruppe_kurzbz)
|
||||
WHERE studiensemester_kurzbz = ".$this->db_add_param($studiensemester_kurzbz)."
|
||||
|
||||
)a using (gruppe, studiensemester_kurzbz, studiengang_kz)
|
||||
JOIN public.tbl_benutzer b on b.uid = student_uid
|
||||
JOIN public.tbl_person p using(person_id)
|
||||
LEFT JOIN(
|
||||
SELECT
|
||||
lehrveranstaltung_id, studiensemester_kurzbz, uid as student_uid, sum(einheiten) as summe
|
||||
FROM
|
||||
campus.tbl_anwesenheit a
|
||||
JOIN lehre.tbl_lehreinheit le using (lehreinheit_id)
|
||||
JOIN lehre.tbl_lehrveranstaltung lv using (lehrveranstaltung_id)
|
||||
WHERE
|
||||
anwesend = true AND studiensemester_kurzbz = ".$this->db_add_param($studiensemester_kurzbz)."
|
||||
le.lehrveranstaltung_id,
|
||||
slv.student_uid,
|
||||
le.studiensemester_kurzbz,
|
||||
st.prestudent_id
|
||||
|
||||
FROM
|
||||
public.tbl_studentlehrverband slv
|
||||
JOIN
|
||||
lehre.tbl_lehreinheitgruppe leg
|
||||
ON slv.studiengang_kz = leg.studiengang_kz
|
||||
AND slv.semester = leg.semester
|
||||
AND (
|
||||
NULLIF(btrim(leg.verband::text), '') IS NULL
|
||||
OR NULLIF(btrim(slv.verband::text), '') = NULLIF(btrim(leg.verband::text), '')
|
||||
)
|
||||
AND (
|
||||
NULLIF(btrim(leg.gruppe::text), '') IS NULL
|
||||
OR NULLIF(btrim(slv.gruppe::text), '') = NULLIF(btrim(leg.gruppe::text), '')
|
||||
)
|
||||
JOIN
|
||||
lehre.tbl_lehreinheit le USING (lehreinheit_id, studiensemester_kurzbz)
|
||||
JOIN
|
||||
public.tbl_student st USING(student_uid)
|
||||
|
||||
WHERE
|
||||
leg.gruppe_kurzbz IS NULL
|
||||
AND le.studiensemester_kurzbz = ".$this->db_add_param($studiensemester_kurzbz)."
|
||||
|
||||
GROUP BY
|
||||
lehrveranstaltung_id, bezeichnung, uid, studiensemester_kurzbz
|
||||
)anwesend using(lehrveranstaltung_id, student_uid, studiensemester_kurzbz)
|
||||
le.lehrveranstaltung_id,
|
||||
slv.student_uid,
|
||||
le.studiensemester_kurzbz,
|
||||
st.prestudent_id
|
||||
|
||||
UNION
|
||||
|
||||
SELECT
|
||||
le.lehrveranstaltung_id,
|
||||
bg.uid AS student_uid,
|
||||
bg.studiensemester_kurzbz,
|
||||
st.prestudent_id
|
||||
|
||||
FROM
|
||||
public.tbl_benutzergruppe bg
|
||||
JOIN
|
||||
lehre.tbl_lehreinheitgruppe leg USING (gruppe_kurzbz)
|
||||
JOIN
|
||||
lehre.tbl_lehreinheit le USING(lehreinheit_id, studiensemester_kurzbz)
|
||||
JOIN
|
||||
public.tbl_student st ON bg.uid = st.student_uid
|
||||
|
||||
WHERE
|
||||
bg.studiensemester_kurzbz = ".$this->db_add_param($studiensemester_kurzbz)."
|
||||
|
||||
GROUP BY
|
||||
le.lehrveranstaltung_id,
|
||||
bg.uid,
|
||||
bg.studiensemester_kurzbz,
|
||||
st.prestudent_id
|
||||
|
||||
)a USING (lehrveranstaltung_id, studiensemester_kurzbz)
|
||||
JOIN
|
||||
public.tbl_benutzer b on b.uid = student_uid
|
||||
JOIN
|
||||
public.tbl_person p using(person_id)
|
||||
LEFT JOIN(
|
||||
SELECT lehrveranstaltung_id, studiensemester_kurzbz, uid as student_uid, sum(einheiten) as summe
|
||||
SELECT
|
||||
lehrveranstaltung_id,
|
||||
studiensemester_kurzbz,
|
||||
uid AS student_uid,
|
||||
SUM(einheiten) AS summe
|
||||
|
||||
FROM
|
||||
campus.tbl_anwesenheit a
|
||||
JOIN lehre.tbl_lehreinheit le using (lehreinheit_id)
|
||||
JOIN lehre.tbl_lehrveranstaltung lv using (lehrveranstaltung_id)
|
||||
JOIN
|
||||
lehre.tbl_lehreinheit le USING(lehreinheit_id)
|
||||
JOIN
|
||||
lehre.tbl_lehrveranstaltung lv USING (lehrveranstaltung_id)
|
||||
|
||||
WHERE
|
||||
anwesend = false AND studiensemester_kurzbz = ".$this->db_add_param($studiensemester_kurzbz)."
|
||||
anwesend = true
|
||||
AND studiensemester_kurzbz = ".$this->db_add_param($studiensemester_kurzbz)."
|
||||
|
||||
GROUP BY
|
||||
lehrveranstaltung_id, bezeichnung, uid, studiensemester_kurzbz
|
||||
)nichtanwesend using(lehrveranstaltung_id, student_uid, studiensemester_kurzbz)
|
||||
lehrveranstaltung_id,
|
||||
bezeichnung,
|
||||
uid,
|
||||
studiensemester_kurzbz
|
||||
|
||||
)anwesend USING(lehrveranstaltung_id, student_uid, studiensemester_kurzbz)
|
||||
LEFT JOIN(
|
||||
SELECT
|
||||
lehrveranstaltung_id,
|
||||
studiensemester_kurzbz,
|
||||
uid AS student_uid,
|
||||
SUM(einheiten) AS summe
|
||||
|
||||
FROM
|
||||
campus.tbl_anwesenheit a
|
||||
JOIN
|
||||
lehre.tbl_lehreinheit le USING (lehreinheit_id)
|
||||
JOIN
|
||||
lehre.tbl_lehrveranstaltung lv USING (lehrveranstaltung_id)
|
||||
|
||||
WHERE
|
||||
anwesend = false
|
||||
AND studiensemester_kurzbz = ".$this->db_add_param($studiensemester_kurzbz)."
|
||||
|
||||
GROUP BY
|
||||
lehrveranstaltung_id,
|
||||
bezeichnung,
|
||||
uid,
|
||||
studiensemester_kurzbz
|
||||
)nichtanwesend USING(lehrveranstaltung_id, student_uid, studiensemester_kurzbz)
|
||||
|
||||
WHERE
|
||||
lehrveranstaltung_id > 0
|
||||
";
|
||||
@@ -573,8 +664,15 @@ class anwesenheit extends basis_db
|
||||
if(!is_null($lehrveranstaltung_id))
|
||||
$qry.=" AND lehrveranstaltung_id=".$this->db_add_param($lehrveranstaltung_id);
|
||||
|
||||
$qry.="group by
|
||||
vorname, nachname, wahlname, lehrveranstaltung_id, bezeichnung, gruppe, student_uid, anwesend.summe, nichtanwesend.summe
|
||||
$qry.=" GROUP BY
|
||||
vorname,
|
||||
nachname,
|
||||
wahlname,
|
||||
lehrveranstaltung_id,
|
||||
bezeichnung,
|
||||
student_uid,
|
||||
anwesend.summe,
|
||||
nichtanwesend.summe
|
||||
)m";
|
||||
|
||||
if($lehrveranstaltung_id != '')
|
||||
|
||||
@@ -163,6 +163,44 @@ abstract class db extends basis
|
||||
return $rows;
|
||||
}
|
||||
|
||||
/**
|
||||
* Replace the password names with the related passwords in a SQL string, to decrypt data from the DB
|
||||
*/
|
||||
protected function replaceSQLDecryptionPassword($sql)
|
||||
{
|
||||
$newSQL = null;
|
||||
|
||||
// If the global constant CI_ENVIRONMENT is not defined then return a failure
|
||||
if (!defined('CI_ENVIRONMENT')) return null;
|
||||
|
||||
if(!defined('BASEPATH'))
|
||||
define('BASEPATH', 'LEGACY_WORKAROUND'); // little trick to load a CI config file
|
||||
|
||||
// Tries to include the CI config file that contains password for the database encryption
|
||||
// If the include fails then return a failure
|
||||
if (!include(dirname(__FILE__).'/../application/config/'.CI_ENVIRONMENT.'/db_crypt.php')) return null;
|
||||
|
||||
// Array that will contains all the DB decryption password
|
||||
$decryptionPasswordArray = array();
|
||||
// Array that will contains all the DB decryption password names
|
||||
$decryptionPasswordNamesArray = array();
|
||||
|
||||
// For each password found in the config array
|
||||
foreach ($config['encryption_passwords'] as $name => $password)
|
||||
{
|
||||
// Copy the password name using this template: '{$'<password name>'}'
|
||||
$decryptionPasswordArray[] = $password;
|
||||
$decryptionPasswordNamesArray[] = '${'.$name.'}';
|
||||
}
|
||||
|
||||
// Replace the password names with the password values
|
||||
$newSQL = str_replace($decryptionPasswordNamesArray, $decryptionPasswordArray, $sql);
|
||||
|
||||
// In case the replacement is a failure
|
||||
if ($newSQL == '' || $newSQL == null) return null;
|
||||
|
||||
return $newSQL; // OK
|
||||
}
|
||||
}
|
||||
require_once(dirname(__FILE__).'/'.DB_SYSTEM.'.class.php');
|
||||
|
||||
|
||||
@@ -29,6 +29,10 @@ class berechtigung extends basis_db
|
||||
public $rolle_kurzbz;
|
||||
public $beschreibung;
|
||||
public $berechtigung_kurzbz;
|
||||
public $art;
|
||||
public $anmerkung;
|
||||
public $insertamum;
|
||||
public $insertvon;
|
||||
|
||||
/**
|
||||
* Konstruktor
|
||||
@@ -79,7 +83,7 @@ class berechtigung extends basis_db
|
||||
{
|
||||
if(is_null($new))
|
||||
$new = $this->new;
|
||||
|
||||
|
||||
if($new)
|
||||
{
|
||||
$qry = "INSERT INTO system.tbl_berechtigung(berechtigung_kurzbz, beschreibung) VALUES(".
|
||||
@@ -103,14 +107,38 @@ class berechtigung extends basis_db
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Loescht ein Recht
|
||||
*
|
||||
* @param $berechtigung_kurzbz
|
||||
*/
|
||||
public function delete($berechtigung_kurzbz)
|
||||
{
|
||||
$qry = "DELETE FROM system.tbl_berechtigung WHERE berechtigung_kurzbz=".$this->db_add_param($berechtigung_kurzbz).";";
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Löschen des Rechts:'.$this->db_last_error();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Holt alle BerechtigungsRollen
|
||||
* @return true wenn erfolgreich, false im Fehlerfall
|
||||
*/
|
||||
public function getRollen()
|
||||
public function getRollen($order = null)
|
||||
{
|
||||
$qry = 'SELECT * FROM system.tbl_rolle';
|
||||
if ($order != '')
|
||||
{
|
||||
$qry .= " ORDER BY $order";
|
||||
}
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
@@ -152,6 +180,9 @@ class berechtigung extends basis_db
|
||||
$obj->rolle_kurzbz = $row->rolle_kurzbz;
|
||||
$obj->art = $row->art;
|
||||
$obj->beschreibung = $row->beschreibung;
|
||||
$obj->anmerkung = $row->anmerkung;
|
||||
$obj->insertamum = $row->insertamum;
|
||||
$obj->insertvon = $row->insertvon;
|
||||
|
||||
$this->result[] = $obj;
|
||||
}
|
||||
@@ -252,15 +283,22 @@ class berechtigung extends basis_db
|
||||
if($this->db_num_rows()>0)
|
||||
{
|
||||
//Update
|
||||
$qry = "UPDATE system.tbl_rolleberechtigung SET art=".$this->db_add_param($this->art)." WHERE rolle_kurzbz=".$this->db_add_param($this->rolle_kurzbz)." AND berechtigung_kurzbz=".$this->db_add_param($this->berechtigung_kurzbz).";";
|
||||
$qry = "UPDATE system.tbl_rolleberechtigung SET art=".$this->db_add_param($this->art).",
|
||||
anmerkung=".$this->db_add_param($this->anmerkung).",
|
||||
insertamum=".$this->db_add_param($this->insertamum).",
|
||||
insertvon=".$this->db_add_param($this->insertvon)."
|
||||
WHERE rolle_kurzbz=".$this->db_add_param($this->rolle_kurzbz)." AND berechtigung_kurzbz=".$this->db_add_param($this->berechtigung_kurzbz).";";
|
||||
}
|
||||
else
|
||||
{
|
||||
//Insert
|
||||
$qry = "INSERT INTO system.tbl_rolleberechtigung (rolle_kurzbz, berechtigung_kurzbz, art) VALUES(".
|
||||
$qry = "INSERT INTO system.tbl_rolleberechtigung (rolle_kurzbz, berechtigung_kurzbz, art, anmerkung, insertamum, insertvon) VALUES(".
|
||||
$this->db_add_param($this->rolle_kurzbz).",".
|
||||
$this->db_add_param($this->berechtigung_kurzbz).",".
|
||||
$this->db_add_param($this->art).");";
|
||||
$this->db_add_param($this->art).",".
|
||||
$this->db_add_param($this->anmerkung).",".
|
||||
$this->db_add_param($this->insertamum).",".
|
||||
$this->db_add_param($this->insertvon).");";
|
||||
}
|
||||
|
||||
if($this->db_query($qry))
|
||||
|
||||
@@ -0,0 +1,109 @@
|
||||
<?php
|
||||
/* Copyright (C) 2013 fhcomplete.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Authors: Manuela Thamer <manuela.thamer@technikum-wien.at>
|
||||
*/
|
||||
|
||||
require_once(dirname(__FILE__). '/basis_db.class.php');
|
||||
require_once(dirname(__FILE__). '/sprache.class.php');
|
||||
require_once(dirname(__FILE__). '/functions.inc.php');
|
||||
|
||||
class besqualcode extends basis_db
|
||||
{
|
||||
//Objekt besqualcode
|
||||
public $result = array();
|
||||
|
||||
//Tabellenspalten
|
||||
public $besqualcode;
|
||||
public $besqualbez;
|
||||
|
||||
/**
|
||||
* Konstruktor - Laedt optional einen besqualcode
|
||||
* @param char $besqualcode Besqualcode der geladen werden soll.
|
||||
*/
|
||||
public function __construct($besqualcode = null)
|
||||
{
|
||||
parent::__construct();
|
||||
|
||||
if($besqualcode != null)
|
||||
$this->load($besqualcode);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Liefert alle Lehrmodi aus der table tbl_besqualcode
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
public function getAll()
|
||||
{
|
||||
$qry = "SELECT * FROM bis.tbl_besqual";
|
||||
|
||||
if ($this->db_query($qry))
|
||||
{
|
||||
while ($row = $this->db_fetch_object())
|
||||
{
|
||||
$besqualcode = new besqualcode();
|
||||
|
||||
$besqualcode->besqualcode = $row->besqualcode;
|
||||
$besqualcode->besqualbez = $row->besqualbez;
|
||||
|
||||
$this->result[] = $besqualcode;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = "Fehler bei der Abfrage aufgetreten";
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt einen besqualcode
|
||||
* @param char $besqualcode ID des Datensatzes der zu laden ist.
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
public function load($besqualcode)
|
||||
{
|
||||
$qry = "SELECT
|
||||
*
|
||||
FROM
|
||||
bis.tbl_besqual
|
||||
WHERE
|
||||
besqualcode=".$this->db_add_param($besqualcode).";";
|
||||
|
||||
if (!$this->db_query($qry))
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Lesen vom besqualcode';
|
||||
return false;
|
||||
}
|
||||
|
||||
if ($row = $this->db_fetch_object())
|
||||
{
|
||||
$this->besqualcode = $row->besqualcode;
|
||||
$this->besqualbez = $row->besqualbez;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Es ist kein besqualcode mit dieser ID vorhanden';
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
@@ -0,0 +1,185 @@
|
||||
<?php
|
||||
/* Copyright (C) 2007 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');
|
||||
require_once(dirname(__FILE__).'/studiensemester.class.php');
|
||||
|
||||
class bismeldestichtag extends basis_db
|
||||
{
|
||||
//Tabellenspalten
|
||||
public $meldestichtag_id; // integer
|
||||
public $meldestichtag; // date
|
||||
public $studiensemester_kurzbz; // varchar(16)
|
||||
public $insertamum; // timestamp
|
||||
public $insertvon; // varchar(32)
|
||||
public $updateamum; // timestamp
|
||||
public $updatevon; // varchar(32)
|
||||
|
||||
// ErgebnisArray
|
||||
public $result=array();
|
||||
|
||||
/**
|
||||
* Konstruktor - Uebergibt die Connection und laedt optional einen Meldestichtag
|
||||
* @param $meldestichtag_id Stichtag der geladen werden soll (default=null)
|
||||
*/
|
||||
public function __construct($meldestichtag_id=null)
|
||||
{
|
||||
parent::__construct();
|
||||
|
||||
if(!is_null($meldestichtag_id))
|
||||
$this->load($meldestichtag_id);
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt Meldestichtag mit der uebergebenen ID
|
||||
* @param $meldestichtag_id ID des Stichtags der geladen werden soll
|
||||
*/
|
||||
public function load($meldestichtag_id)
|
||||
{
|
||||
$qry = "SELECT * FROM bis.tbl_bismeldestichtag WHERE meldestichtag_id=".$this->db_add_param($meldestichtag_id, FHC_INTEGER);
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
if($row = $this->db_fetch_object())
|
||||
{
|
||||
$this->meldestichtag_id = $row->meldestichtag_id;
|
||||
$this->meldestichtag = $row->meldestichtag;
|
||||
$this->studiensemester_kurzbz = $row->studiensemester_kurzbz;
|
||||
$this->insertamum = $row->insertamum;
|
||||
$this->insertvon = $row->insertvon;
|
||||
$this->updateamum = $row->updateamum;
|
||||
$this->updatevon = $row->updatevon;
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Kein Eintrag gefunden';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = "Fehler beim Laden des Stichtags";
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Prueft die Variablen vor dem Speichern
|
||||
* auf Gueltigkeit.
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
protected function validate()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Liefert zuletzt erreichten Meldestichtag
|
||||
*
|
||||
* @param $studiensemester_kurzbz
|
||||
* @return boolean
|
||||
*/
|
||||
public function getLastReachedMeldestichtag($studiensemester_kurzbz = null)
|
||||
{
|
||||
$qry = "SELECT
|
||||
meldestichtag_id, meldestichtag, studiensemester_kurzbz, insertamum, insertvon, updateamum, updatevon
|
||||
FROM
|
||||
bis.tbl_bismeldestichtag
|
||||
WHERE
|
||||
meldestichtag < NOW()";
|
||||
|
||||
if (isset($studiensemester_kurzbz))
|
||||
{
|
||||
$qry .= "
|
||||
AND
|
||||
studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz);
|
||||
}
|
||||
|
||||
$qry .= "
|
||||
ORDER BY
|
||||
meldestichtag DESC
|
||||
LIMIT 1;";
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
while($row = $this->db_fetch_object())
|
||||
{
|
||||
$obj = new bismeldestichtag();
|
||||
|
||||
$obj->meldestichtag_id = $row->meldestichtag_id;
|
||||
$obj->meldestichtag = $row->meldestichtag;
|
||||
$obj->studiensemester_kurzbz = $row->studiensemester_kurzbz;
|
||||
$obj->insertamum = $row->insertamum;
|
||||
$obj->insertvon = $row->insertvon;
|
||||
$obj->updateamum = $row->updateamum;
|
||||
$obj->updatevon = $row->updatevon;
|
||||
|
||||
$this->result[] = $obj;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Meldestichtag konnte nicht geladen werden';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Prüft, ob Meldestichtag für ein bestimmtes Statusdatum und Studiensemester erreicht ist.
|
||||
*
|
||||
* @param $status_datum
|
||||
* @param $studiensemester_kurzbz
|
||||
* @return boolean true wenn erreicht, oder false
|
||||
*/
|
||||
public function checkMeldestichtagErreicht($status_datum, $studiensemester_kurzbz = null)
|
||||
{
|
||||
$erreicht = false;
|
||||
|
||||
if (isset($studiensemester_kurzbz))
|
||||
{
|
||||
// Studiensemester ende holen
|
||||
$studiensemester = new studiensemester();
|
||||
if ($studiensemester->load($studiensemester_kurzbz))
|
||||
$studiensemester_ende = new DateTime($studiensemester->ende);
|
||||
}
|
||||
|
||||
// letztes erreichtes Bismeldedatum holen
|
||||
if ($this->getLastReachedMeldestichtag() && isset($this->result[0]))
|
||||
$lastReachedMeldestichtag = new DateTime($this->result[0]->meldestichtag);
|
||||
|
||||
$statusDatum = new DateTime($status_datum);
|
||||
|
||||
// Prüfen, ob Studentstatusdatum oder Studiensemester vor dem Stichtagsdatum liegen
|
||||
if (isset($statusDatum))
|
||||
{
|
||||
if (isset($lastReachedMeldestichtag))
|
||||
$erreicht = $statusDatum < $lastReachedMeldestichtag;
|
||||
|
||||
if (isset($studiensemester_ende))
|
||||
$erreicht = $erreicht || $studiensemester_ende < $lastReachedMeldestichtag;
|
||||
|
||||
}
|
||||
|
||||
return $erreicht;
|
||||
}
|
||||
}
|
||||
?>
|
||||
+372
-350
File diff suppressed because it is too large
Load Diff
@@ -888,9 +888,10 @@ class dokument extends basis_db
|
||||
* Akzeptiert ein bestimmtes Dokument
|
||||
* @param char $dokument_kurzbz Bezeichner Dokument.
|
||||
* @param int $person_id Personenkennzeichen.
|
||||
* @param array $studiengang_typen einschränken nach Studiengang Typ.
|
||||
* @return boolean true wenn akzeptiert bzw geprüft ohne Akzeptieren, false wenn Fehler
|
||||
*/
|
||||
public function akzeptiereDokument($dokument_kurzbz, $person_id)
|
||||
public function akzeptiereDokument($dokument_kurzbz, $person_id, $studiengang_typen = null)
|
||||
{
|
||||
$db = new basis_db();
|
||||
$arrayDoksZuAkzeptieren = array();
|
||||
@@ -902,7 +903,6 @@ class dokument extends basis_db
|
||||
tbl_prestudent ps, tbl_studiengang sg
|
||||
WHERE
|
||||
ps.studiengang_kz = sg.studiengang_kz
|
||||
AND sg.typ = 'm'
|
||||
AND person_id = ".$this->db_add_param($person_id)."
|
||||
AND not exists(
|
||||
SELECT *
|
||||
@@ -910,6 +910,11 @@ class dokument extends basis_db
|
||||
where dok.prestudent_id = ps.prestudent_id
|
||||
and dokument_kurzbz = ".$this->db_add_param($dokument_kurzbz).")";
|
||||
|
||||
if (isset($studiengang_typen) && is_array($studiengang_typen) && !empty($studiengang_typen))
|
||||
{
|
||||
$qry .= ' AND sg.typ IN ('. $db->db_implode4SQL($studiengang_typen).')';
|
||||
}
|
||||
|
||||
//gibt ein Array von zu akzeptierenden Dokumenten zurück
|
||||
if ($db->db_query($qry))
|
||||
{
|
||||
@@ -923,11 +928,14 @@ class dokument extends basis_db
|
||||
}
|
||||
|
||||
//für alle prestudent_ids das Dokument akzeptieren
|
||||
$qry = "INSERT INTO public.tbl_dokumentprestudent(dokument_kurzbz, prestudent_id) VALUES";
|
||||
$qry = "INSERT INTO public.tbl_dokumentprestudent(dokument_kurzbz, prestudent_id, datum, insertamum) VALUES";
|
||||
|
||||
foreach ($arrayDoksZuAkzeptieren as $prestudent_id)
|
||||
{
|
||||
$qry .= "(".$this->db_add_param($dokument_kurzbz). ",". $prestudent_id. ")";
|
||||
$qry .= "(".$this->db_add_param($dokument_kurzbz).
|
||||
",".$this->db_add_param($prestudent_id, FHC_INTEGER).
|
||||
",".$this->db_add_param(date('Y-m-d')).
|
||||
",".$this->db_add_param(strftime('%Y-%m-%d %H:%M')). ")";
|
||||
|
||||
if (next($arrayDoksZuAkzeptieren) == true)
|
||||
{
|
||||
|
||||
@@ -200,6 +200,10 @@ class dokument_export
|
||||
chdir($this->temp_folder);
|
||||
file_put_contents($this->temp_folder . '/content.xml', $contentbuffer);
|
||||
|
||||
if ($this->xml_data->firstChild->tagName == 'error') {
|
||||
$this->errormsg = $this->xml_data->firstChild->textContent;
|
||||
return false;
|
||||
}
|
||||
// styles.xml erstellen
|
||||
if(!is_null($this->styles_xsl))
|
||||
{
|
||||
|
||||
+79
-27
@@ -29,6 +29,7 @@ require_once(dirname(__FILE__).'/studiensemester.class.php');
|
||||
require_once(dirname(__FILE__).'/adresse.class.php');
|
||||
require_once(dirname(__FILE__).'/webservicelog.class.php');
|
||||
require_once(dirname(__FILE__).'/prestudent.class.php');
|
||||
require_once(dirname(__FILE__).'/kennzeichen.class.php');
|
||||
require_once(dirname(__FILE__).'/errorhandler.class.php');
|
||||
|
||||
class dvb extends basis_db
|
||||
@@ -39,9 +40,10 @@ class dvb extends basis_db
|
||||
const DVB_URL_WEBSERVICE_NACHNAME = DVB_PORTAL.'/rws/0.2/simpleStudentByNachname.xml';
|
||||
const DVB_URL_WEBSERVICE_NAME = DVB_PORTAL.'/rws/0.2/simpleStudentByName.xml';
|
||||
const DVB_URL_WEBSERVICE_MATRIKELNUMMER = DVB_PORTAL.'/rws/0.2/simpleStudentByMatrikelnummer.xml';
|
||||
const DVB_URL_WEBSERVICE_RESERVIERUNG = DVB_PORTAL.'/rws/0.5/matrikelreservierung.xml';
|
||||
const DVB_URL_WEBSERVICE_MELDUNG = DVB_PORTAL.'/rws/0.5/matrikelmeldung.xml';
|
||||
const DVB_URL_WEBSERVICE_BPK = DVB_PORTAL.'/rws/0.5/pruefebpk.xml';
|
||||
const DVB_URL_WEBSERVICE_RESERVIERUNG = DVB_PORTAL.'/rws/0.6/matrikelreservierung.xml';
|
||||
const DVB_URL_WEBSERVICE_MELDUNG = DVB_PORTAL.'/rws/0.6/matrikelmeldung.xml';
|
||||
const DVB_URL_WEBSERVICE_BPK = DVB_PORTAL.'/rws/0.6/pruefebpk.xml';
|
||||
const DVB_URL_WEBSERVICE_BPK_ALL = DVB_PORTAL.'/rws/0.8/pruefebpk.xml';
|
||||
|
||||
public $authentication;
|
||||
private $username;
|
||||
@@ -829,7 +831,8 @@ class dvb extends basis_db
|
||||
if (ErrorHandler::isError($result))
|
||||
return ErrorHandler::error();
|
||||
}
|
||||
$gebdat = str_replace("-", "", $person->geburtsdatum);
|
||||
//$gebdat = str_replace("-", "", $person->geburtsdatum);
|
||||
$gebdat = $person->geburtsdatum;
|
||||
|
||||
$data = '<?xml version="1.0" encoding="UTF-8"?>
|
||||
<matrikelnummernmeldung xmlns="http://www.brz.gv.at/datenverbund-unis">
|
||||
@@ -1038,7 +1041,7 @@ class dvb extends basis_db
|
||||
<ausstellland>'.$reisepass->ausstellland.'</ausstellland>
|
||||
<dokumentnr>'.$reisepass->dokumentnr.'</dokumentnr>
|
||||
<dokumenttyp>'.$reisepass->dokumenttyp.'</dokumenttyp>
|
||||
</ernpmeldung>
|
||||
</ernpmeldung>
|
||||
';
|
||||
$data .= '</matrikelnummernmeldung>';
|
||||
|
||||
@@ -1148,15 +1151,29 @@ class dvb extends basis_db
|
||||
*/
|
||||
public function getBPK($person_id)
|
||||
{
|
||||
$vbpkTypes = defined('VBPK_TYPES') && is_array(VBPK_TYPES) ? VBPK_TYPES : null;
|
||||
|
||||
$person = new person();
|
||||
if ($person->load($person_id))
|
||||
{
|
||||
if ($person->bpk != '')
|
||||
{
|
||||
// BPK exisitert bereits
|
||||
$retval = new stdClass();
|
||||
$retval->bpk = $person->bpk;
|
||||
return ErrorHandler::success($retval);
|
||||
|
||||
// BPK existiert bereits
|
||||
if (!isset($vbpkTypes)) return ErrorHandler::success($retval);
|
||||
|
||||
$kennzeichen = new kennzeichen();
|
||||
|
||||
if ($kennzeichen->load_pers($person_id, $vbpkTypes))
|
||||
{
|
||||
if (array_unique(array_column($kennzeichen->result, 'kennzeichentyp_kurzbz')) == array_values($vbpkTypes))
|
||||
{
|
||||
// BPKs exisiteren bereits
|
||||
return ErrorHandler::success($retval);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ($person->gebdatum == '')
|
||||
@@ -1177,7 +1194,8 @@ class dvb extends basis_db
|
||||
return ErrorHandler::error($errormsg);
|
||||
}
|
||||
|
||||
$geburtsdatum = str_replace("-", "", $person->gebdatum);
|
||||
//$geburtsdatum = str_replace("-", "", $person->gebdatum);
|
||||
$geburtsdatum = $person->gebdatum;
|
||||
$vorname = $person->vorname;
|
||||
$nachname = $person->nachname;
|
||||
$geschlecht = mb_strtoupper($person->geschlecht);
|
||||
@@ -1257,6 +1275,8 @@ class dvb extends basis_db
|
||||
*/
|
||||
public function pruefeBPK($geburtsdatum, $vorname, $nachname, $geschlecht, $plz = null, $strasse = null)
|
||||
{
|
||||
$vbpkTypes = defined('VBPK_TYPES') && is_array(VBPK_TYPES) ? VBPK_TYPES : null;
|
||||
|
||||
if ($this->tokenIsExpired())
|
||||
{
|
||||
$result = $this->authenticate();
|
||||
@@ -1270,7 +1290,7 @@ class dvb extends basis_db
|
||||
|
||||
$uuid = $this->getUUID();
|
||||
|
||||
$url = self::DVB_URL_WEBSERVICE_BPK;
|
||||
$url = self::DVB_URL_WEBSERVICE_BPK_ALL;
|
||||
$url .= '?geburtsdatum='.curl_escape($curl, $geburtsdatum);
|
||||
$url .= '&vorname='.curl_escape($curl, $vorname);
|
||||
$url .= '&nachname='.curl_escape($curl, $nachname);
|
||||
@@ -1310,24 +1330,15 @@ class dvb extends basis_db
|
||||
if ($curl_info['http_code'] == '200')
|
||||
{
|
||||
/* Example Response:
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<simpleBpkResponse xmlns="http://www.brz.gv.at/datenverbund-unis">
|
||||
<bpk>12345ABCDEFGHXXXXXXX=</bpk>
|
||||
<personInfo>
|
||||
<person>
|
||||
<vorname>Hans</vorname>
|
||||
<nachname>Huber</nachname>
|
||||
<geschlecht>M</geschlecht>
|
||||
<gebdat>1990-01-01</gebdat>
|
||||
</person>
|
||||
<adresse>
|
||||
<staat></staat>
|
||||
<plz>1100</plz>
|
||||
<ort></ort>
|
||||
<strasse></strasse>
|
||||
</adresse>
|
||||
</personInfo>
|
||||
</simpleBpkResponse>
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<bpkResponse xmlns="http://www.brz.gv.at/datenverbund-unis">
|
||||
<uuid>5cc93441-a46a-4f97-a5e3-e64891b39f10</uuid>
|
||||
<bpk>12345ABCDEFG</bpk>
|
||||
<vbpk bereich="AS" vkz="BBA-STA">12345ABCDEFG</vbpk>
|
||||
<vbpk bereich="BF" vkz="BMBWF">12345ABCDEFG</vbpk>
|
||||
<vbpk bereich="ZP-TD" vkz="BMF">12345ABCDEFG</vbpk>
|
||||
<geprueft>true</geprueft>
|
||||
</bpkResponse>
|
||||
|
||||
Example Error:
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
@@ -1368,10 +1379,30 @@ class dvb extends basis_db
|
||||
}
|
||||
|
||||
$domnodes_bpk = $dom->getElementsByTagNameNS($namespace, 'bpk');
|
||||
|
||||
if ($domnodes_bpk->length > 0)
|
||||
{
|
||||
$retval = new stdClass();
|
||||
$retval->bpk = $domnodes_bpk->item(0)->textContent;
|
||||
|
||||
// vbpks auslesen
|
||||
$domnodes_vbpks = $dom->getElementsByTagNameNS($namespace, 'vbpk');
|
||||
|
||||
$retval->vbpks = array();
|
||||
if ($domnodes_vbpks->length > 0)
|
||||
{
|
||||
foreach ($domnodes_vbpks as $domnode_vbpk)
|
||||
{
|
||||
foreach ($domnode_vbpk->attributes as $attribute)
|
||||
{
|
||||
if ($attribute->nodeName == 'bereich' && isset($vbpkTypes[$attribute->nodeValue]))
|
||||
{
|
||||
$retval->vbpks[$vbpkTypes[$attribute->nodeValue]] = $domnode_vbpk->nodeValue;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return ErrorHandler::success($retval);
|
||||
}
|
||||
else
|
||||
@@ -1384,6 +1415,27 @@ class dvb extends basis_db
|
||||
$retval->multiple = true;
|
||||
return ErrorHandler::error(null, $retval);
|
||||
}
|
||||
else
|
||||
{
|
||||
$errorTexts = array();
|
||||
$domnodes_fehler = $dom->getElementsByTagNameNS($namespace, 'fehlerliste');
|
||||
|
||||
if ($domnodes_fehler->length > 0)
|
||||
{
|
||||
foreach ($domnodes_fehler as $domnode_fehler)
|
||||
{
|
||||
if ($domnode_fehler->childNodes->length > 0)
|
||||
{
|
||||
foreach ($domnode_fehler->childNodes as $childNode)
|
||||
{
|
||||
$errorTexts[] = $childNode->nodeValue;
|
||||
}
|
||||
}
|
||||
}
|
||||
$this->errormsg = count($errorTexts) > 0 ? implode('; ', $errorTexts) : null;
|
||||
return ErrorHandler::error(null);
|
||||
}
|
||||
}
|
||||
}
|
||||
return ErrorHandler::error();
|
||||
}
|
||||
|
||||
@@ -16,8 +16,9 @@
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
|
||||
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
|
||||
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
|
||||
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at>,
|
||||
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>
|
||||
* Manuela Thamer <manuela.thamer@technikum-wien.at>
|
||||
*/
|
||||
require_once(dirname(__FILE__).'/basis_db.class.php');
|
||||
|
||||
@@ -27,7 +28,10 @@ class entwicklungsteam extends basis_db
|
||||
public $result = array();
|
||||
|
||||
//Tabellenspalten
|
||||
public $entwicklungsteam_id;
|
||||
public $mitarbeiter_uid;
|
||||
public $nachname;
|
||||
public $vorname;
|
||||
public $studiengang_kz;
|
||||
public $besqualcode;
|
||||
public $beginn;
|
||||
@@ -43,38 +47,40 @@ class entwicklungsteam extends basis_db
|
||||
|
||||
/**
|
||||
* Konstruktor
|
||||
* @param mitarbeiter_uid ID des zu ladenden Datensatzes
|
||||
* @param entwicklungsteam_id ID des zu ladenden Datensatzes
|
||||
* studiengang_kz
|
||||
*/
|
||||
public function __construct($mitarbeiter_uid=null, $studiengang_kz=null)
|
||||
public function __construct($entwicklungsteam_id = null)
|
||||
{
|
||||
parent::__construct();
|
||||
|
||||
if(!is_null($mitarbeiter_uid) && !is_null($studiengang_kz))
|
||||
$this->load($mitarbeiter_uid, $studiengang_kz);
|
||||
if(!is_null($entwicklungsteam_id))
|
||||
$this->load($entwicklungsteam_id);
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt einen Datensatz
|
||||
* @param mitarbeiter_uid ID des zu ladenden Datensatzes
|
||||
* studiengang_kz
|
||||
* @param entwicklungsteam_id ID des zu ladenden Datensatzes
|
||||
*/
|
||||
public function load($mitarbeiter_uid, $studiengang_kz)
|
||||
public function load($entwicklungsteam_id)
|
||||
{
|
||||
if(!is_numeric($studiengang_kz) || $studiengang_kz == '')
|
||||
if(!is_numeric($entwicklungsteam_id))
|
||||
{
|
||||
$this->errormsg = 'studiengang_kz muss eine gueltige Zahl sein';
|
||||
$this->errormsg = 'entwicklungsteam_id muss eine gueltige Zahl sein';
|
||||
return false;
|
||||
}
|
||||
|
||||
//laden des Datensatzes
|
||||
$qry = "SELECT * FROM bis.tbl_entwicklungsteam JOIN bis.tbl_besqual USING(besqualcode)
|
||||
WHERE mitarbeiter_uid=".$this->db_add_param($mitarbeiter_uid)." AND studiengang_kz=".$this->db_add_param($studiengang_kz, FHC_INTEGER).";";
|
||||
WHERE entwicklungsteam_id=".$this->db_add_param($entwicklungsteam_id);
|
||||
|
||||
$qry.=";";
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
if($row = $this->db_fetch_object())
|
||||
{
|
||||
$this->entwicklungsteam_id = $row->entwicklungsteam_id;
|
||||
$this->mitarbeiter_uid = $row->mitarbeiter_uid;
|
||||
$this->studiengang_kz = $row->studiengang_kz;
|
||||
$this->besqualcode = $row->besqualcode;
|
||||
@@ -103,19 +109,19 @@ class entwicklungsteam extends basis_db
|
||||
|
||||
/**
|
||||
* Loescht einen Datensatz
|
||||
* @param bisverwendung_id ID des zu loeschenden Datensatzes
|
||||
* @param entwicklungsteam_id ID des zu loeschenden Datensatzes
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
public function delete($mitarbeiter_uid, $studiengang_kz)
|
||||
public function delete($entwicklungsteam_id)
|
||||
{
|
||||
if(!is_numeric($studiengang_kz) || $studiengang_kz == '')
|
||||
if(!is_numeric($entwicklungsteam_id))
|
||||
{
|
||||
$this->errormsg = 'studiengang_kz muss eine gueltige Zahl sein';
|
||||
$this->errormsg = 'entwicklungsteam_id muss eine gueltige Zahl sein';
|
||||
return false;
|
||||
}
|
||||
|
||||
$qry = "DELETE FROM bis.tbl_entwicklungsteam
|
||||
WHERE mitarbeiter_uid = ".$this->db_add_param($mitarbeiter_uid)." AND studiengang_kz=".$this->db_add_param($studiengang_kz, FHC_INTEGER).";";
|
||||
WHERE entwicklungsteam_id = ".$this->db_add_param($entwicklungsteam_id).";";
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
@@ -148,7 +154,12 @@ class entwicklungsteam extends basis_db
|
||||
}
|
||||
if($this->besqualcode=='')
|
||||
{
|
||||
$this->errormsg = 'BesondereQualifikation muss eingetragen werden';
|
||||
$this->errormsg = 'Besondere Qualifikation muss eingetragen werden';
|
||||
return false;
|
||||
}
|
||||
if($this->ende != '' && $this->beginn > $this->ende)
|
||||
{
|
||||
$this->errormsg = 'Endedatum darf nicht vor Anfangsdatum liegen';
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
@@ -160,7 +171,7 @@ class entwicklungsteam extends basis_db
|
||||
* andernfalls wird der Datensatz mit der ID in $akte_id aktualisiert
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
public function save($new=null)
|
||||
public function save($new = null)
|
||||
{
|
||||
if(!$this->validate())
|
||||
return false;
|
||||
@@ -181,7 +192,6 @@ class entwicklungsteam extends basis_db
|
||||
$this->db_add_param($this->updatevon).', '.
|
||||
$this->db_add_param($this->insertamum).', '.
|
||||
$this->db_add_param($this->insertvon).');';
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -196,7 +206,7 @@ class entwicklungsteam extends basis_db
|
||||
" ende=".$this->db_add_param($this->ende).",".
|
||||
" updateamum=".$this->db_add_param($this->updateamum).",".
|
||||
" updatevon=".$this->db_add_param($this->updatevon).
|
||||
" WHERE mitarbeiter_uid=".$this->db_add_param($this->mitarbeiter_uid)." AND studiengang_kz=".$this->db_add_param($this->studiengang_kz_old, FHC_INTEGER).";";
|
||||
" WHERE entwicklungsteam_id=".$this->db_add_param($this->entwicklungsteam_id).";";
|
||||
}
|
||||
|
||||
if($this->db_query($qry))
|
||||
@@ -215,7 +225,7 @@ class entwicklungsteam extends basis_db
|
||||
* @param $uid UID des Mitarbeiters
|
||||
* @return true wenn ok, false wenn Fehler
|
||||
*/
|
||||
public function getEntwicklungsteam($mitarbeiter_uid, $studiengang_kz=null)
|
||||
public function getEntwicklungsteam($mitarbeiter_uid, $studiengang_kz = null)
|
||||
{
|
||||
//laden des Datensatzes
|
||||
$qry = "SELECT * FROM bis.tbl_entwicklungsteam JOIN bis.tbl_besqual USING(besqualcode)
|
||||
@@ -232,6 +242,7 @@ class entwicklungsteam extends basis_db
|
||||
{
|
||||
$obj = new entwicklungsteam();
|
||||
|
||||
$obj->entwicklungsteam_id = $row->entwicklungsteam_id;
|
||||
$obj->mitarbeiter_uid = $row->mitarbeiter_uid;
|
||||
$obj->studiengang_kz = $row->studiengang_kz;
|
||||
$obj->besqualcode = $row->besqualcode;
|
||||
@@ -256,16 +267,15 @@ class entwicklungsteam extends basis_db
|
||||
}
|
||||
|
||||
/**
|
||||
* Preuft ob der Eintrag schon existiert
|
||||
* Prueft ob der Eintrag schon existiert
|
||||
*
|
||||
* @param $mitarbeiter_uid
|
||||
* @param $studiengang_kz
|
||||
* @param entwicklungsteam_id
|
||||
* @return true wenn vorhanden, false wenn nicht
|
||||
*/
|
||||
public function exists($mitarbeiter_uid,$studiengang_kz)
|
||||
public function exists($entwicklungsteam_id)
|
||||
{
|
||||
$qry = "SELECT count(*) as anzahl FROM bis.tbl_entwicklungsteam
|
||||
WHERE mitarbeiter_uid=".$this->db_add_param($mitarbeiter_uid)." AND studiengang_kz=".$this->db_add_param($studiengang_kz, FHC_INTEGER).";";
|
||||
WHERE entwicklungsteam_id=".$this->db_add_param($entwicklungsteam_id).";";
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
@@ -288,5 +298,114 @@ class entwicklungsteam extends basis_db
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Liefert alle Entwicklungsteameinträge
|
||||
* @param int $studiengang_kz Studiengangkennzeichen.
|
||||
* @param char $sort Parameter, nach dem sortiert werden soll.
|
||||
* @return alle Entwicklungsteameinträge
|
||||
*/
|
||||
public function getAll($studiengang_kz = null, $sort = null)
|
||||
{
|
||||
$qry = "SELECT e.*, p.nachname, p.vorname FROM bis.tbl_entwicklungsteam e
|
||||
JOIN public.tbl_benutzer b ON e.mitarbeiter_uid = b.uid
|
||||
JOIN public.tbl_person p ON b.person_id = p.person_id
|
||||
";
|
||||
if ($studiengang_kz != null)
|
||||
$qry .= " WHERE e.studiengang_kz = ".$this->db_add_param($studiengang_kz);
|
||||
|
||||
if ($sort != null)
|
||||
{
|
||||
$qry .= " ORDER BY ".$sort;
|
||||
}
|
||||
|
||||
$qry .= ";";
|
||||
|
||||
if ($this->db_query($qry))
|
||||
{
|
||||
while ($row = $this->db_fetch_object())
|
||||
{
|
||||
$obj = new entwicklungsteam();
|
||||
|
||||
$obj->entwicklungsteam_id = $row->entwicklungsteam_id;
|
||||
$obj->mitarbeiter_uid = $row->mitarbeiter_uid;
|
||||
$obj->nachname = $row->nachname;
|
||||
$obj->vorname = $row->vorname;
|
||||
$obj->studiengang_kz = $row->studiengang_kz;
|
||||
$obj->besqualcode = $row->besqualcode;
|
||||
$obj->beginn = $row->beginn;
|
||||
$obj->ende = $row->ende;
|
||||
$obj->insertamum = $row->insertamum;
|
||||
$obj->insertvon = $row->insertvon;
|
||||
$obj->updateamum = $row->updateamum;
|
||||
$obj->updatevon = $row->updatevon;
|
||||
|
||||
|
||||
$this->result[] = $obj;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden der Entwicklungsteameinträge.';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Laedt alle Entwicklungsteameintraege eines Mitarbeiters für eine bestimmte Bisperiode
|
||||
* @param $uid UID des Mitarbeiters
|
||||
* @param $stichtag Stichtag im Format 'Y-m-d'
|
||||
* @return true wenn ok, false wenn Fehler
|
||||
*/
|
||||
public function getEntwicklungsteamBis($mitarbeiter_uid, $stichtag, $studiengang_kz = null)
|
||||
{
|
||||
$datetime = new DateTime($stichtag);
|
||||
$bismeldung_jahr = $datetime->format('Y');
|
||||
|
||||
//laden des Datensatzes
|
||||
$qry = "SELECT tbl_entwicklungsteam.*, tbl_besqual.*, tbl_studiengang.studiengang_kz, tbl_studiengang.melderelevant
|
||||
FROM bis.tbl_entwicklungsteam
|
||||
JOIN bis.tbl_besqual USING(besqualcode)
|
||||
JOIN public.tbl_studiengang USING(studiengang_kz)
|
||||
WHERE mitarbeiter_uid=".$this->db_add_param($mitarbeiter_uid)."
|
||||
AND (beginn is NULL OR beginn <= make_date(". $this->db_add_param($bismeldung_jahr). "::INTEGER, 12, 31))
|
||||
AND (ende is NULL OR ende >= make_date(". $this->db_add_param($bismeldung_jahr). "::INTEGER, 1, 1))";
|
||||
|
||||
if($studiengang_kz!=null)
|
||||
$qry.=" AND studiengang_kz=".$this->db_add_param($studiengang_kz);
|
||||
|
||||
$qry.=";";
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
while($row = $this->db_fetch_object())
|
||||
{
|
||||
$obj = new entwicklungsteam();
|
||||
|
||||
$obj->entwicklungsteam_id = $row->entwicklungsteam_id;
|
||||
$obj->mitarbeiter_uid = $row->mitarbeiter_uid;
|
||||
$obj->studiengang_kz = $row->studiengang_kz;
|
||||
$obj->besqualcode = $row->besqualcode;
|
||||
$obj->beginn = $row->beginn;
|
||||
$obj->ende = $row->ende;
|
||||
$obj->updateamum = $row->updateamum;
|
||||
$obj->updatevon = $row->updatevon;
|
||||
$obj->insertamum = $row->insertamum;
|
||||
$obj->insertvon = $row->insertvon;
|
||||
$obj->ext_id = $row->ext_id;
|
||||
$obj->besqual = $row->besqualbez;
|
||||
$obj->melderelevant = $this->db_parse_bool($row->melderelevant);
|
||||
|
||||
$this->result[] = $obj;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler bei der Datenbankabfrage';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
||||
@@ -0,0 +1,221 @@
|
||||
<?php
|
||||
|
||||
require_once(dirname(__FILE__).'/basis_db.class.php');
|
||||
require_once(dirname(__FILE__).'/prestudent.class.php');
|
||||
require_once(dirname(__FILE__).'/person.class.php');
|
||||
require_once(dirname(__FILE__).'/reihungstest.class.php');
|
||||
|
||||
require_once(dirname(__FILE__).'/../vendor/autoload.php');
|
||||
use Firebase\JWT\JWT;
|
||||
|
||||
class externeUeberwachung extends basis_db
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
}
|
||||
|
||||
public function getStatusByPrestudent($prestudent_id)
|
||||
{
|
||||
$session_id = $this->getSessionByPrestudent($prestudent_id);
|
||||
return $this->getSessionStatus($session_id);
|
||||
}
|
||||
public function start($prestudent_id, $reihungstest_id, $sprache)
|
||||
{
|
||||
$session_id = $this->getSessionByPrestudent($prestudent_id);
|
||||
|
||||
if (!$session_id)
|
||||
{
|
||||
$session_id = $this->createSession($prestudent_id);
|
||||
}
|
||||
else
|
||||
{
|
||||
$status = $this->getSessionStatus($session_id);
|
||||
|
||||
if (in_array($status, array('late_to_start', 'finished')))
|
||||
{
|
||||
$session_id = $this->createSession($prestudent_id);
|
||||
}
|
||||
}
|
||||
|
||||
$payload = $this->getPayload($session_id, $prestudent_id, $reihungstest_id, $sprache);
|
||||
return $this->getStartUrl($payload);
|
||||
}
|
||||
|
||||
|
||||
private function createSession($prestudent_id)
|
||||
{
|
||||
if (is_null($prestudent_id))
|
||||
{
|
||||
$this->errormsg = 'Falsche Parameterübergabe';
|
||||
return false;
|
||||
}
|
||||
|
||||
$uuid = $this->genereateUUID();
|
||||
|
||||
$qry = "INSERT INTO testtool.tbl_externe_ueberwachung (prestudent_id, session_id)
|
||||
VALUES (".
|
||||
$this->db_add_param($prestudent_id).",".
|
||||
$this->db_add_param($uuid).")";
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
return $uuid;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Speichern der Antwort';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
public function getSessionByPrestudent($prestudent_id)
|
||||
{
|
||||
if (is_null($prestudent_id))
|
||||
{
|
||||
$this->errormsg = 'Falsche Parameterübergabe';
|
||||
return false;
|
||||
}
|
||||
|
||||
$qry = "SELECT session_id
|
||||
FROM testtool.tbl_externe_ueberwachung
|
||||
WHERE prestudent_id = ".$this->db_add_param($prestudent_id, FHC_INTEGER) . "
|
||||
ORDER BY insertamum DESC
|
||||
LIMIT 1";
|
||||
|
||||
if($result = $this->db_query($qry))
|
||||
{
|
||||
if ($row = $this->db_fetch_object($result))
|
||||
{
|
||||
return $row->session_id;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Daten konnten nicht geladen werden';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler bei einer Abfrage';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public function getSessionStatus($session_id)
|
||||
{
|
||||
$payload = $this->getSessionPayload($session_id);
|
||||
$jwt = $this->createToken($payload);
|
||||
|
||||
$url = $this->getSessionUrl($session_id);
|
||||
|
||||
$ch = curl_init($url);
|
||||
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
||||
curl_setopt($ch, CURLOPT_HTTPHEADER, [
|
||||
"Authorization: JWT {$jwt}",
|
||||
"Content-Type: application/json",
|
||||
]);
|
||||
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
|
||||
|
||||
$response = curl_exec($ch);
|
||||
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
|
||||
|
||||
curl_close($ch);
|
||||
|
||||
$data = json_decode($response, true);
|
||||
return isset($data['status']) ? $data['status'] : false;
|
||||
}
|
||||
|
||||
private function getSessionPayload($session_id)
|
||||
{
|
||||
return [
|
||||
"session_id" => $session_id,
|
||||
"iat" => time(),
|
||||
"exp" => time() + 120,
|
||||
];
|
||||
}
|
||||
|
||||
private function getPayload($session_id, $prestudent_id, $reihungstest_id, $sprache)
|
||||
{
|
||||
$prestudent = new prestudent($prestudent_id);
|
||||
$person = new Person($prestudent->person_id);
|
||||
|
||||
$reihungstest = new Reihungstest($reihungstest_id);
|
||||
|
||||
$datetime = new DateTime();
|
||||
$today = $datetime->format('Y-m-d');
|
||||
|
||||
$payload = [
|
||||
"userId" => $prestudent_id,
|
||||
"lastName" => $person->nachname,
|
||||
"firstName" => $person->vorname,
|
||||
"language" => $sprache === 'German' ? 'de' : 'en',
|
||||
"accountName" => "technikum_wien",
|
||||
"accountId" => "technikum_wien",
|
||||
"examId" => $reihungstest_id . '_' . $today,
|
||||
"examName" => !is_null(trim($reihungstest->anmerkung)) ? ($reihungstest->anmerkung . '_' . $today) : ($reihungstest_id . '_' . $today),
|
||||
"duration" => 1440,
|
||||
"schedule" => false,
|
||||
"trial" => EXTERNE_UEBERWACHUNG_TRIAL_TEST,
|
||||
"proctoring" => "offline",
|
||||
"startDate" => $reihungstest->datum . 'T00:00:00Z',
|
||||
"endDate" => $reihungstest->datum . 'T23:59:59Z',
|
||||
"sessionId" => $session_id,
|
||||
"sessionUrl" => EXTERNE_UEBERWACHUNG_SESSION_URL
|
||||
];
|
||||
|
||||
if (defined('EXTERNE_UEBERWACHUNG_EXAM_PARAMS'))
|
||||
{
|
||||
$payload = array_merge($payload, EXTERNE_UEBERWACHUNG_EXAM_PARAMS);
|
||||
}
|
||||
|
||||
if (defined('EXTERNE_UEBERWACHUNG_EXAM_WARNINGS'))
|
||||
{
|
||||
$payload['visibleWarnings'] = EXTERNE_UEBERWACHUNG_EXAM_WARNINGS;
|
||||
}
|
||||
|
||||
if (defined('EXTERNE_UEBERWACHUNG_EXAM_RULES'))
|
||||
{
|
||||
$payload['rules'] = EXTERNE_UEBERWACHUNG_EXAM_RULES;
|
||||
}
|
||||
|
||||
if (defined('EXTERNE_UEBERWACHUNG_EXAM_SCORE'))
|
||||
{
|
||||
$payload['scoreConfig'] = EXTERNE_UEBERWACHUNG_EXAM_SCORE;
|
||||
}
|
||||
|
||||
return $payload;
|
||||
}
|
||||
|
||||
private function getSessionUrl($session_id)
|
||||
{
|
||||
return EXTERNE_UEBERWACHUNG_PROTOCOL_URL . "/api/v2/integration/simple/". EXTERNE_UEBERWACHUNG_INTEGRATION_NAME . "/sessions/". urlencode($session_id) ."/status/";
|
||||
}
|
||||
|
||||
private function getStartUrl($payload)
|
||||
{
|
||||
$token = $this->createToken($payload);
|
||||
$query = http_build_query(['token' => $token]);
|
||||
|
||||
return EXTERNE_UEBERWACHUNG_PROTOCOL_URL . '/integration/simple/'. EXTERNE_UEBERWACHUNG_INTEGRATION_NAME .'/start?' . $query;
|
||||
}
|
||||
|
||||
private function createToken($payload)
|
||||
{
|
||||
return JWT::encode($payload, EXTERNE_UEBERWACHUNG_SECRET_KEY, 'HS256');
|
||||
}
|
||||
|
||||
private function genereateUUID()
|
||||
{
|
||||
$data = openssl_random_pseudo_bytes(16);
|
||||
|
||||
$data[6] = chr(ord($data[6]) & 0x0f | 0x40);
|
||||
$data[8] = chr(ord($data[8]) & 0x3f | 0x80);
|
||||
|
||||
return vsprintf('%s%s-%s-%s-%s-%s%s%s', str_split(bin2hex($data), 4));
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
|
||||
|
||||
@@ -184,13 +184,30 @@ class filter extends basis_db
|
||||
}
|
||||
|
||||
/**
|
||||
* Ausgabe des HTML Widgets
|
||||
* @param kurzbz des Datensatzes, der gefunden werden soll
|
||||
* Ausgabe des HTML Widgets. Parameter, die als GET übergeben werden, werden ausgelesen und vorselektiert
|
||||
* @param $kurzbz String Kurzbz des Datensatzes, der gefunden werden soll
|
||||
* @return boolean true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
public function getHtmlWidget($kurzbz)
|
||||
{
|
||||
$html='';
|
||||
// GET-Parameter parsen und in String rausschreiben
|
||||
parse_str($this->getVars(), $getParams);
|
||||
|
||||
foreach ($getParams AS $key=>$value)
|
||||
{
|
||||
// Vordefinierte Parameter entfernen
|
||||
if ($key == 'type' ||
|
||||
$key == 'statistik_kurzbz' ||
|
||||
$key == 'report_id' ||
|
||||
$key == 'putlog' ||
|
||||
$key == 'systemfilter_id' ||
|
||||
$key == 'debug')
|
||||
{
|
||||
unset($getParams[$key]);
|
||||
}
|
||||
}
|
||||
|
||||
foreach ($this->result as $filter)
|
||||
{
|
||||
if ($filter->kurzbz==$kurzbz)
|
||||
@@ -206,15 +223,58 @@ class filter extends basis_db
|
||||
$sql = str_replace('$user', $this->db_add_param($user), $filter->sql);
|
||||
$this->loadValues($sql, $filter->valuename, $filter->showvalue);
|
||||
foreach ($this->values as $value)
|
||||
$html.="\n\t\t\t\t".'<option value="'.$value->value.'">'.$value->text.'</option>';
|
||||
{
|
||||
// Wenn ein Attribut als GET-Parameter übergeben wurde, dann vorselektieren
|
||||
if (isset($getParams[$filter->kurzbz]))
|
||||
{
|
||||
//GET-Parameter aufsplitten
|
||||
$paramsArr = explode(',',$getParams[$filter->kurzbz]);
|
||||
//echo '<pre>', var_dump($value->value), '</pre>';
|
||||
//$value->value = preg_replace('/(.*?)\s*selected.*/im', '$1', $value->value);
|
||||
$value->value = preg_replace('/"\s*.*/im', '', $value->value);
|
||||
//echo '<pre>', var_dump($value->value), '</pre>';
|
||||
|
||||
if (in_array($value->value, $paramsArr))
|
||||
$html .= "\n\t\t\t\t".'<option value="'.$value->value.'" selected="selected">'.$value->text.'</option>';
|
||||
else
|
||||
{
|
||||
//$value->value = preg_replace('/(.*?)selected=.selected./', '$1', $value->value);
|
||||
//$value->value = preg_replace('/(.*?)\s*[selected=?selected?]/', '$1', $value->value);
|
||||
//$value->value = preg_replace('/(.*?)\s*selected="selected"\s*/', '$[1]', $value->value);
|
||||
//$value->value = preg_replace('/^\s*selected=.*?selected.*?\s*/', ' ', $value->value);
|
||||
//$value->value = str_replace('selected=', '', $value->value);
|
||||
|
||||
//echo '<pre>', var_dump($value->value), '</pre>';
|
||||
$html .= "\n\t\t\t\t".'<option value="'.$value->value.'">'.$value->text.'</option>';
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
//$value->value = str_replace('selected="selected', '', $value->value);
|
||||
$html .= "\n\t\t\t\t".'<option value="'.$value->value.'">'.$value->text.'</option>';
|
||||
}
|
||||
}
|
||||
$html.="\n\t\t\t</select>";
|
||||
break;
|
||||
case 'datepicker':
|
||||
$html .= '<input type="text" id="' . $filter->kurzbz . '" name="' . $filter->kurzbz . '">';
|
||||
$html .= '<input type="text" id="'.$filter->kurzbz.'" class="form-control" name="'.$filter->kurzbz.'"';
|
||||
if (isset($getParams[$filter->kurzbz]))
|
||||
{
|
||||
$html .= ' value="'.$getParams[$filter->kurzbz].'"';
|
||||
}
|
||||
$html .= ' >';
|
||||
$html .= '<script>';
|
||||
$html .= '$("#' . $filter->kurzbz . '").datepicker({ dateFormat: \'yy-mm-dd\' });';
|
||||
$html .= '</script>';
|
||||
break;
|
||||
case 'text':
|
||||
$html .= '<input type="text" id="'.$filter->kurzbz.'" class="form-control" name="'.$filter->kurzbz.'" '.$filter->htmlattr;
|
||||
if (isset($getParams[$filter->kurzbz]))
|
||||
{
|
||||
$html .= ' value="'.$getParams[$filter->kurzbz].'"';
|
||||
}
|
||||
$html .= '>';
|
||||
break;
|
||||
}
|
||||
return $html;
|
||||
}
|
||||
@@ -230,9 +290,11 @@ class filter extends basis_db
|
||||
*/
|
||||
public function loadValues($sql, $valuename, $showvalue)
|
||||
{
|
||||
|
||||
$this->values = array();
|
||||
|
||||
// In case a decryption function is used then perform password substitution
|
||||
$sql = $this->replaceSQLDecryptionPassword($sql);
|
||||
|
||||
if($this->db_query($sql))
|
||||
{
|
||||
while($row = $this->db_fetch_row())
|
||||
|
||||
@@ -1197,6 +1197,26 @@ function anzahlTage($date1, $date2)
|
||||
return round($diff / 86400);
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if the provided SQL string contains PostgreSQL functions to decrypt data, returns a boolean
|
||||
*/
|
||||
function hasSQLDecryption($sql)
|
||||
{
|
||||
return stripos($sql, 'PGP_SYM_DECRYPT') !== false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if the provided SQL string contains PostgreSQL functions to decrypt data,
|
||||
* and if it is used a variable instead of a readable password. Returns a boolean
|
||||
*/
|
||||
function isSQLDecryptionValid($sql)
|
||||
{
|
||||
// If the SQL string contains decryption functions and there are _no_ password variables
|
||||
if (hasSQLDecryption($sql) && strpos($sql, '${') === false) return false; // then return false
|
||||
|
||||
return true; // in any other case return true
|
||||
}
|
||||
|
||||
/**
|
||||
* Gibt zurück, ob ein String ausschließlich erlaubte Zeichen enthält
|
||||
* erlaubt: Buchstaben a-z, A-Z, 0-9, -, _
|
||||
@@ -1205,10 +1225,10 @@ function anzahlTage($date1, $date2)
|
||||
*/
|
||||
function hasOnlyAllowedChars($stringToCheck)
|
||||
{
|
||||
if (!preg_match("#^[a-zA-Z0-9_-]+$#", $stringToCheck))
|
||||
return false;
|
||||
else
|
||||
return true;
|
||||
if (!preg_match("#^[a-zA-Z0-9_-]+$#", $stringToCheck))
|
||||
return false;
|
||||
else
|
||||
return true;
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
@@ -345,6 +345,7 @@ class gebiet extends basis_db
|
||||
}
|
||||
|
||||
//Pruefen ob jede Fragen mindestens 2 Vorschlaege hat
|
||||
//Angepasst am 28.01.2026 auf ein Warning.
|
||||
$qry = "SELECT frage_id, nummer FROM testtool.tbl_frage
|
||||
WHERE (SELECT count(*) as anzahl FROM testtool.tbl_vorschlag WHERE frage_id=tbl_frage.frage_id)<2
|
||||
AND gebiet_id=".$this->db_add_param($gebiet_id, FHC_INTEGER)." AND NOT demo;";
|
||||
@@ -352,7 +353,7 @@ class gebiet extends basis_db
|
||||
{
|
||||
while($row = $this->db_fetch_object())
|
||||
{
|
||||
$this->errormsg .= "Frage Nummer $row->nummer (ID: $row->frage_id) hat weniger als 2 Vorschlaege.\n";
|
||||
$this->warningmsg .= "Frage Nummer $row->nummer (ID: $row->frage_id) hat weniger als 2 Vorschlaege.\n";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -448,6 +449,52 @@ class gebiet extends basis_db
|
||||
}
|
||||
}
|
||||
|
||||
//Pruefen ob es leere Fragen (ohne Text, Bild oder Audio) gibt
|
||||
$qry = "SELECT
|
||||
fr.frage_id,
|
||||
fr.nummer,
|
||||
fs.sprache
|
||||
FROM
|
||||
testtool.tbl_frage fr
|
||||
JOIN testtool.tbl_frage_sprache fs
|
||||
USING (frage_id)
|
||||
WHERE
|
||||
(fs.text IS NULL
|
||||
OR fs.text = '')
|
||||
AND fs.bild IS NULL
|
||||
AND fs.audio IS NULL
|
||||
AND demo = false
|
||||
AND gebiet_id=".$this->db_add_param($gebiet_id, FHC_INTEGER)."
|
||||
AND EXISTS (
|
||||
SELECT
|
||||
1
|
||||
FROM
|
||||
testtool.tbl_frage fr2
|
||||
JOIN testtool.tbl_frage_sprache fs2
|
||||
USING (frage_id)
|
||||
WHERE
|
||||
fs2.sprache = fs.sprache
|
||||
AND fr2.gebiet_id = fr.gebiet_id
|
||||
AND fr2.frage_id != fr.frage_id
|
||||
AND (
|
||||
(fs2.text IS NOT NULL
|
||||
AND fs2.text != '')
|
||||
OR fs2.bild IS NOT NULL
|
||||
OR fs2.audio IS NOT NULL
|
||||
)
|
||||
AND demo = false
|
||||
)
|
||||
ORDER BY
|
||||
fs.sprache,
|
||||
fr.nummer;";
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
while($row = $this->db_fetch_object())
|
||||
{
|
||||
$this->warningmsg .= "Frage Nummer $row->nummer (ID: $row->frage_id), Sprache $row->sprache hat keinen Text, Bild oder Audio.\n";
|
||||
}
|
||||
}
|
||||
|
||||
if($this->errormsg=='')
|
||||
return true;
|
||||
else
|
||||
|
||||
@@ -0,0 +1,261 @@
|
||||
<?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>,
|
||||
*/
|
||||
/**
|
||||
* Klasse kennzeichen
|
||||
*/
|
||||
require_once(dirname(__FILE__).'/basis_db.class.php');
|
||||
|
||||
class kennzeichen extends basis_db
|
||||
{
|
||||
public $new; // boolean
|
||||
public $result = array(); // adresse Objekt
|
||||
|
||||
//Tabellenspalten
|
||||
public $kennzeichen_id; // integer
|
||||
public $person_id; // integer
|
||||
|
||||
public $kennzeichentyp_kurzbz; // string
|
||||
public $inhalt; // string
|
||||
public $aktiv; // boolean
|
||||
public $insertamum; // timestamp
|
||||
public $insertvon; // string
|
||||
public $updateamum; // timestamp
|
||||
public $updatevon; // string
|
||||
|
||||
/**
|
||||
* Konstruktor
|
||||
* @param $kennzeichen_id ID des Kennzeichens das geladen werden soll (Default=null)
|
||||
*/
|
||||
public function __construct($kennzeichen_id=null)
|
||||
{
|
||||
parent::__construct();
|
||||
$this->new = true;
|
||||
|
||||
if(!is_null($kennzeichen_id))
|
||||
$this->load($kennzeichen_id);
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt ein Kennzeichen mit der ID $kennzeichen_id
|
||||
* @param $kennzeichen_id ID des zu ladenden Kennzeichens
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
public function load($kennzeichen_id)
|
||||
{
|
||||
if (!is_numeric($kennzeichen_id))
|
||||
{
|
||||
$this->errormsg = 'Kennzeichen Id ist ungueltig';
|
||||
return false;
|
||||
}
|
||||
|
||||
$qry = "SELECT
|
||||
*
|
||||
FROM
|
||||
public.tbl_kennzeichen
|
||||
WHERE
|
||||
kennzeichen_id = " . $this->db_add_param($kennzeichen_id, FHC_INTEGER) . ";";
|
||||
|
||||
if ($this->db_query($qry))
|
||||
{
|
||||
if ($row = $this->db_fetch_object())
|
||||
{
|
||||
$this->kennzeichen_id = $row->kennzeichen_id;
|
||||
$this->person_id = $row->person_id;
|
||||
$this->kennzeichentyp_kurzbz = $row->kennzeichentyp_kurzbz;
|
||||
$this->inhalt = $row->inhalt;
|
||||
$this->aktiv = $this->db_parse_bool($row->aktiv);
|
||||
$this->updateamum = $row->updateamum;
|
||||
$this->updatevon = $row->updatevon;
|
||||
$this->insertamum = $row->insertamum;
|
||||
$this->insertvon = $row->insertvon;
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Datensatz wurde nicht gefunden';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden der Daten';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Prueft die Kennzeichen auf Gueltigkeit
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
public function validate()
|
||||
{
|
||||
//Gesamtlaenge pruefen
|
||||
if(mb_strlen($this->kennzeichentyp_kurzbz)>32)
|
||||
{
|
||||
$this->errormsg = 'Kennzeichentyp darf nicht länger als 32 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
$this->errormsg = '';
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Speichert den aktuellen Datensatz in die Datenbank
|
||||
* Wenn $neu auf true gesetzt ist wird ein neuer Datensatz angelegt
|
||||
* andernfalls wird der Datensatz mit der ID in $kennzeichen_id aktualisiert
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
public function save($new = null)
|
||||
{
|
||||
if(!is_null($new))
|
||||
$this->new = $new;
|
||||
|
||||
//Variablen pruefen
|
||||
if(!$this->validate())
|
||||
return false;
|
||||
|
||||
if($this->new)
|
||||
{
|
||||
//Neuen Datensatz einfuegen
|
||||
$qry='BEGIN;INSERT INTO public.tbl_kennzeichen (person_id, kennzeichentyp_kurzbz, inhalt, aktiv, insertamum, insertvon) VALUES('.
|
||||
$this->db_add_param($this->person_id, FHC_INTEGER).', '.
|
||||
$this->db_add_param($this->kennzeichentyp_kurzbz).', '.
|
||||
$this->db_add_param($this->inhalt).', '.
|
||||
$this->db_add_param($this->aktiv, FHC_BOOLEAN).', now(), '.
|
||||
$this->db_add_param($this->insertvon).');';
|
||||
}
|
||||
else
|
||||
{
|
||||
//Updaten des bestehenden Datensatzes
|
||||
|
||||
//Pruefen ob kennzeichen_id eine gueltige Zahl ist
|
||||
if(!is_numeric($this->kennzeichen_id))
|
||||
{
|
||||
$this->errormsg = 'kennzeichen_id muss eine gueltige Zahl sein';
|
||||
return false;
|
||||
}
|
||||
|
||||
$qry='UPDATE public.tbl_kennzeichen SET '.
|
||||
'person_id='.$this->db_add_param($this->person_id,FHC_INTEGER).', '.
|
||||
'kennzeichentyp_kurzbz='.$this->db_add_param($this->kennzeichentyp_kurzbz).', '.
|
||||
'aktiv='.$this->db_add_param($this->aktiv, FHC_BOOLEAN).', '.
|
||||
'updateamum= now(), '.
|
||||
'updatevon='.$this->db_add_param($this->updatevon).' '.
|
||||
'WHERE kennzeichen_id='.$this->db_add_param($this->kennzeichen_id, FHC_INTEGER).';';
|
||||
}
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
//Sequence auslesen um die eingefuegte ID zu ermitteln
|
||||
if($this->new)
|
||||
{
|
||||
$qry = "SELECT currval('public.tbl_kennzeichen_id_seq') as id;";
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
if($row = $this->db_fetch_object())
|
||||
{
|
||||
$this->kennzeichen_id = $row->id;
|
||||
$this->db_query('COMMIT;');
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Auslesen er Sequence';
|
||||
$this->db_query('ROLLBACK;');
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Auslesen der Sequence';
|
||||
$this->db_query('ROLLBACK;');
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Speichern der Daten';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt Kennzeichen einer Person
|
||||
* @param person_id
|
||||
* @param kennzeichentyp_kurzbz_arr filtern nach Kennzeichentyp
|
||||
* @return boolean
|
||||
*/
|
||||
public function load_pers($person_id, $kennzeichentyp_kurzbz_arr)
|
||||
{
|
||||
if(!is_numeric($person_id))
|
||||
{
|
||||
$this->errormsg = 'Person_id ist ungueltig';
|
||||
return false;
|
||||
}
|
||||
if(!is_array($kennzeichentyp_kurzbz_arr))
|
||||
{
|
||||
$this->errormsg = 'Kennzeichen sind ungueltig';
|
||||
return false;
|
||||
}
|
||||
|
||||
$qry = "
|
||||
SELECT
|
||||
kz.kennzeichen_id, kz.person_id, kz.kennzeichentyp_kurzbz, inhalt, aktiv, updateamum, updatevon, insertamum, insertvon
|
||||
FROM
|
||||
public.tbl_kennzeichen kz
|
||||
WHERE
|
||||
person_id=".$this->db_add_param($person_id, FHC_INTEGER)."
|
||||
AND aktiv = TRUE
|
||||
AND kennzeichentyp_kurzbz IN (".$this->implode4SQL($kennzeichentyp_kurzbz_arr).")
|
||||
ORDER BY
|
||||
kz.kennzeichentyp_kurzbz, kz.kennzeichen_id;";
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
while($row = $this->db_fetch_object())
|
||||
{
|
||||
$obj = new kennzeichen();
|
||||
|
||||
$obj->kennzeichen_id = $row->kennzeichen_id;
|
||||
$obj->person_id = $row->person_id;
|
||||
$obj->kennzeichentyp_kurzbz = $row->kennzeichentyp_kurzbz;
|
||||
$obj->inhalt = $row->inhalt;
|
||||
$obj->aktiv = $this->db_parse_bool($row->aktiv);
|
||||
$obj->updateamum = $row->updateamum;
|
||||
$obj->updatevon = $row->updatevon;
|
||||
$obj->insertamum = $row->insertamum;
|
||||
$obj->insertvon = $row->insertvon;
|
||||
|
||||
$this->result[] = $obj;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden der Daten';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
+51
-4
@@ -25,6 +25,7 @@
|
||||
*/
|
||||
require_once(dirname(__FILE__).'/basis_db.class.php');
|
||||
require_once(dirname(__FILE__).'/'.EXT_FKT_PATH.'/generateZahlungsreferenz.inc.php');
|
||||
require_once(dirname(__FILE__).'/variable.class.php');
|
||||
|
||||
class konto extends basis_db
|
||||
{
|
||||
@@ -432,6 +433,8 @@ class konto extends basis_db
|
||||
|
||||
$qry.=" ORDER BY beschreibung";
|
||||
|
||||
$oehBeitrag = $this->_getOEHBeitrag();
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
while($row = $this->db_fetch_object())
|
||||
@@ -440,7 +443,15 @@ class konto extends basis_db
|
||||
|
||||
$typ->buchungstyp_kurzbz = $row->buchungstyp_kurzbz;
|
||||
$typ->beschreibung = $row->beschreibung;
|
||||
$typ->standardbetrag = $row->standardbetrag;
|
||||
if (strtolower($typ->buchungstyp_kurzbz) === 'oeh' && $oehBeitrag)
|
||||
{
|
||||
$typ->standardbetrag = $oehBeitrag;
|
||||
}
|
||||
else
|
||||
{
|
||||
$typ->standardbetrag = $row->standardbetrag;
|
||||
}
|
||||
|
||||
$typ->standardtext = $row->standardtext;
|
||||
$typ->credit_points = $row->credit_points;
|
||||
$typ->aktiv = $this->db_parse_bool($row->aktiv);
|
||||
@@ -965,17 +976,16 @@ class konto extends basis_db
|
||||
}
|
||||
}
|
||||
|
||||
public function checkDoppelteBuchung($person_ids, $stsem, $typ)
|
||||
public function checkDoppelteBuchung($person_ids, $stsem, $typen)
|
||||
{
|
||||
$qry = "SELECT person.vorname, person.nachname
|
||||
FROM public.tbl_konto konto
|
||||
JOIN public.tbl_person person USING(person_id)
|
||||
WHERE konto.person_id IN (".$this->implode4SQL(array_filter($person_ids)).")
|
||||
AND studiensemester_kurzbz = ".$this->db_add_param($stsem)."
|
||||
AND buchungstyp_kurzbz = ".$this->db_add_param($typ)."
|
||||
AND buchungstyp_kurzbz IN (".$this->implode4SQL($typen) .")
|
||||
GROUP BY person.vorname, person.nachname
|
||||
ORDER BY person.nachname, person.vorname";
|
||||
|
||||
if ($result = $this->db_query($qry))
|
||||
{
|
||||
$persons = array();
|
||||
@@ -991,6 +1001,43 @@ class konto extends basis_db
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
private function _getOEHBeitrag()
|
||||
{
|
||||
if(!is_user_logged_in())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
$variablen_obj = new variable();
|
||||
$variablen_obj->loadVariables(get_uid());
|
||||
|
||||
$qry = "WITH semstart AS (
|
||||
SELECT start FROM public.tbl_studiensemester
|
||||
WHERE studiensemester_kurzbz = '". $this->db_escape($variablen_obj->variable->semester_aktuell) . "'
|
||||
)
|
||||
SELECT * FROM bis.tbl_oehbeitrag oehb
|
||||
JOIN public.tbl_studiensemester semvon ON oehb.von_studiensemester_kurzbz = semvon.studiensemester_kurzbz
|
||||
LEFT JOIN public.tbl_studiensemester sembis ON oehb.bis_studiensemester_kurzbz = sembis.studiensemester_kurzbz
|
||||
JOIN semstart ON semstart.start::date >= semvon.start::date AND (sembis.studiensemester_kurzbz IS NULL OR semstart.start::date <= sembis.start::date)
|
||||
ORDER BY semvon.start
|
||||
LIMIT 1";
|
||||
|
||||
if ($this->db_query($qry))
|
||||
{
|
||||
if($row = $this->db_fetch_object())
|
||||
{
|
||||
$summe = ($row->studierendenbeitrag + $row->versicherung) * -1;
|
||||
return number_format((float)$summe, 2, '.', '');
|
||||
}
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler bei der Abfrage aufgetreten';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
@@ -552,9 +552,41 @@ class lehreinheitmitarbeiter extends basis_db
|
||||
$beginn = new DateTime($beginn);
|
||||
$ende = new DateTime($ende);
|
||||
|
||||
// get relevant Studiensemester
|
||||
$studiensemester_kurzbz_arr = [];
|
||||
|
||||
$qry = '
|
||||
SELECT
|
||||
studiensemester_kurzbz
|
||||
FROM
|
||||
public.tbl_studiensemester
|
||||
WHERE
|
||||
start BETWEEN
|
||||
'. $this->db_add_param($beginn->format('Y-m-d')). ' AND
|
||||
'. $this->db_add_param($ende->format('Y-m-d'));
|
||||
|
||||
if ($this->db_query($qry))
|
||||
{
|
||||
while($row = $this->db_fetch_object())
|
||||
{
|
||||
$studiensemester_kurzbz_arr[] = $row->studiensemester_kurzbz;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler bei der Datenbankabfrage';
|
||||
return false;
|
||||
}
|
||||
|
||||
$lehrgaengeDistr = $this->_getLehrgaengeForDistribution($studiensemester_kurzbz_arr);
|
||||
|
||||
if (!is_array($studiensemester_kurzbz_arr) || empty($studiensemester_kurzbz_arr)) return true;
|
||||
|
||||
$qry = '
|
||||
WITH semester_sws_tbl AS (
|
||||
SELECT DISTINCT lehreinheit_id, studiensemester_kurzbz, lema.semesterstunden, stg.studiengang_kz
|
||||
SELECT
|
||||
DISTINCT lehreinheit_id, studiensemester_kurzbz, lema.semesterstunden,
|
||||
stg.studiengang_kz, stg.melde_studiengang_kz, stg.lgartcode, stg.melderelevant
|
||||
FROM lehre.tbl_lehreinheitmitarbeiter lema
|
||||
JOIN lehre.tbl_lehreinheit USING (lehreinheit_id)
|
||||
JOIN lehre.tbl_lehrveranstaltung lv USING (lehrveranstaltung_id)
|
||||
@@ -564,38 +596,104 @@ class lehreinheitmitarbeiter extends basis_db
|
||||
JOIN public.tbl_studiengang stg ON stg.studiengang_kz = sto.studiengang_kz
|
||||
JOIN public.tbl_studiensemester ss USING (studiensemester_kurzbz)
|
||||
WHERE mitarbeiter_uid = '. $this->db_add_param($uid). '
|
||||
AND (
|
||||
ss.start BETWEEN
|
||||
'. $this->db_add_param($beginn->format('Y-m-d')). ' AND
|
||||
'. $this->db_add_param($ende->format('Y-m-d')). ')
|
||||
AND ss.studiensemester_kurzbz IN ('.$this->implode4SQL($studiensemester_kurzbz_arr).')
|
||||
-- nur lehre, die bisgemeldet wird
|
||||
AND lema.bismelden
|
||||
AND stg.melderelevant
|
||||
-- keine lehreinheiten ohne semesterstunden
|
||||
AND lema.semesterstunden != 0
|
||||
AND lema.semesterstunden != 0
|
||||
)
|
||||
|
||||
SELECT
|
||||
studiengang_kz,
|
||||
studiensemester_kurzbz,
|
||||
melde_studiengang_kz,
|
||||
lgartcode,
|
||||
sum(semesterstunden) AS summe,
|
||||
round(sum(semesterstunden) / 15, 2) AS sws
|
||||
FROM
|
||||
semester_sws_tbl
|
||||
GROUP BY
|
||||
studiengang_kz,
|
||||
studiensemester_kurzbz
|
||||
studiensemester_kurzbz,
|
||||
melde_studiengang_kz,
|
||||
lgartcode
|
||||
ORDER BY
|
||||
studiengang_kz;
|
||||
';
|
||||
|
||||
if ($this->db_query($qry))
|
||||
{
|
||||
$additionalLehrgaenge = [];
|
||||
|
||||
while($row = $this->db_fetch_object())
|
||||
{
|
||||
$obj = new StdClass();
|
||||
$obj->studiengang_kz = $row->studiengang_kz;
|
||||
$obj->studiensemester_kurzbz = $row->studiensemester_kurzbz;
|
||||
$obj->melde_studiengang_kz = $row->melde_studiengang_kz;
|
||||
$obj->lgartcode = $row->lgartcode;
|
||||
$obj->sws = $row->sws;
|
||||
|
||||
if (isset($lehrgaengeDistr[$uid][$row->studiensemester_kurzbz]))
|
||||
{
|
||||
$lehrgaenge = $lehrgaengeDistr[$uid][$row->studiensemester_kurzbz];
|
||||
|
||||
foreach ($lehrgaenge as $lehreinheit_id => $lehrgangKzArr)
|
||||
{
|
||||
// wenn lehrgang gefunden, zusammenhängende Lehrgaenge holen und sws aufteilen
|
||||
if (array_key_exists($row->studiengang_kz, $lehrgangKzArr))
|
||||
{
|
||||
foreach ($lehrgangKzArr as $studiengang_kz => $lehrgang)
|
||||
{
|
||||
// check: nur eine Studiengangsverknüpfung pro Mitarbeiter, Semester, und Referenzstudiengang
|
||||
if (
|
||||
$studiengang_kz == $row->studiengang_kz
|
||||
|| isset(
|
||||
$additionalLehrgaenge[$uid][$row->studiensemester_kurzbz][$row->studiengang_kz][$studiengang_kz]
|
||||
)
|
||||
) continue;
|
||||
|
||||
// Lehrgang erstellen
|
||||
$lg = new StdClass();
|
||||
$lg->mitarbeiter_uid = $uid;
|
||||
$lg->melde_studiengang_kz = $lehrgang->melde_studiengang_kz;
|
||||
$lg->lgartcode = $lehrgang->lgartcode;
|
||||
$lg->studiengang_kz = $lehrgang->studiengang_kz;
|
||||
$lg->studiensemester_kurzbz = $lehrgang->studiensemester_kurzbz;
|
||||
$lg->summe = $row->summe;
|
||||
$lg->sws = $row->sws;
|
||||
// Lehrgang, der mit Ursprungsstudiengang aufgrund lehreinheit "verknüpft" ist, hinzufügen
|
||||
$additionalLehrgaenge[$uid][$row->studiensemester_kurzbz][$row->studiengang_kz][$studiengang_kz] = $lg;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ignorieren, wenn für den Studiengang keine verknüpften Lehrgaenge hat
|
||||
if (isset($additionalLehrgaenge[$uid][$row->studiensemester_kurzbz][$row->studiengang_kz]))
|
||||
{
|
||||
$addLehrgaenge = $additionalLehrgaenge[$uid][$row->studiensemester_kurzbz][$row->studiengang_kz];
|
||||
|
||||
// sws Durchschnitt über alle verknuepften Lehrgaenge berechnet
|
||||
$summeSws = $row->summe/(count($addLehrgaenge) + 1);
|
||||
$sws = $row->sws/(count($addLehrgaenge) + 1);
|
||||
|
||||
// neue sws zuweisen
|
||||
$obj->summe = $summeSws;
|
||||
$obj->sws = $sws;
|
||||
|
||||
foreach ($addLehrgaenge as $conn_ws_studiengang_kz => $lehrgang)
|
||||
{
|
||||
// sws fuer jeden verknuepften Lehrgang zuweisen
|
||||
$lehrgang->summe = $summeSws;
|
||||
$lehrgang->sws = $sws;
|
||||
|
||||
// neue lehrgang sws hinzufuegen
|
||||
$this->result [] = $lehrgang;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$this->result []= $obj;
|
||||
}
|
||||
return true;
|
||||
@@ -655,4 +753,63 @@ class lehreinheitmitarbeiter extends basis_db
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get "connected" Lehrgaenge for equal sws distribution.
|
||||
* @param $studiensemester_kurzbz_arr all semester for which Lehrgaenge should be retrieved
|
||||
* @return object success or error
|
||||
*/
|
||||
private function _getLehrgaengeForDistribution($studiensemester_kurzbz_arr)
|
||||
{
|
||||
if (!is_array($studiensemester_kurzbz_arr) || empty($studiensemester_kurzbz_arr)) return [];
|
||||
|
||||
$qry = "
|
||||
WITH gruppen AS (
|
||||
SELECT
|
||||
mitarbeiter_uid, lehreinheit_id, lehrveranstaltung_id, studiensemester_kurzbz, sem.start, sem.ende,
|
||||
lehreinheitgruppe_id, studiengang_kz, melde_studiengang_kz, lgartcode
|
||||
FROM
|
||||
lehre.tbl_lehreinheitmitarbeiter lema
|
||||
JOIN lehre.tbl_lehreinheit le USING (lehreinheit_id)
|
||||
JOIN lehre.tbl_lehreinheitgruppe legr USING (lehreinheit_id)
|
||||
JOIN public.tbl_studiengang stg USING (studiengang_kz)
|
||||
JOIN public.tbl_studiensemester sem USING (studiensemester_kurzbz)
|
||||
WHERE
|
||||
bismelden
|
||||
AND stg.melderelevant
|
||||
AND stg.typ = 'l'
|
||||
AND le.studiensemester_kurzbz IN (".$this->implode4SQL($studiensemester_kurzbz_arr).")
|
||||
)
|
||||
SELECT
|
||||
DISTINCT mitarbeiter_uid, studiensemester_kurzbz, lehreinheit_id, studiengang_kz, melde_studiengang_kz, lgartcode
|
||||
FROM
|
||||
gruppen gr
|
||||
GROUP BY
|
||||
mitarbeiter_uid, studiensemester_kurzbz, lehreinheit_id, studiengang_kz, melde_studiengang_kz, lgartcode
|
||||
ORDER BY
|
||||
mitarbeiter_uid, studiensemester_kurzbz, lehreinheit_id, studiengang_kz, melde_studiengang_kz, lgartcode";
|
||||
|
||||
$lehrgaengeDistributions = [];
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
while($row = $this->db_fetch_object())
|
||||
{
|
||||
// group by properties
|
||||
$lehrgaengeDistributions
|
||||
[$row->mitarbeiter_uid]
|
||||
[$row->studiensemester_kurzbz]
|
||||
[$row->lehreinheit_id]
|
||||
[$row->studiengang_kz]
|
||||
= $row;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler bei der Datenbankabfrage';
|
||||
return false;
|
||||
}
|
||||
|
||||
return $lehrgaengeDistributions;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -200,7 +200,7 @@ class LehreListHelper
|
||||
//Studierende der LV laden und in ein Array schreiben
|
||||
|
||||
$qry = 'SELECT
|
||||
distinct on(nachname, vorname, person_id) vorname, nachname, wahlname, matrikelnr, public.tbl_student.student_uid,
|
||||
distinct on(nachname, vorname, public.tbl_benutzer.person_id) vorname, nachname, wahlname, matrikelnr, public.tbl_student.student_uid,
|
||||
tbl_studentlehrverband.semester, tbl_studentlehrverband.verband, tbl_studentlehrverband.gruppe,
|
||||
(SELECT status_kurzbz FROM public.tbl_prestudentstatus
|
||||
WHERE prestudent_id=tbl_student.prestudent_id
|
||||
@@ -209,7 +209,8 @@ class LehreListHelper
|
||||
tbl_note.lkt_ueberschreibbar, tbl_note.anmerkung, tbl_mitarbeiter.mitarbeiter_uid, tbl_person.matr_nr, tbl_person.geschlecht, tbl_studiengang.kurzbzlang,
|
||||
tbl_mobilitaet.mobilitaetstyp_kurzbz, tbl_zeugnisnote.note,
|
||||
(CASE WHEN bis.tbl_mobilitaet.studiensemester_kurzbz = vw_student_lehrveranstaltung.studiensemester_kurzbz THEN 1 ELSE 0 END) as doubledegree,
|
||||
(tbl_bisio.bis::timestamp - tbl_bisio.von::timestamp) as daysout
|
||||
(tbl_bisio.bis::timestamp - tbl_bisio.von::timestamp) as daysout,
|
||||
public.tbl_prestudent.gsstudientyp_kurzbz as ddtype
|
||||
FROM
|
||||
campus.vw_student_lehrveranstaltung
|
||||
JOIN public.tbl_benutzer USING(uid)
|
||||
@@ -223,6 +224,7 @@ class LehreListHelper
|
||||
LEFT JOIN bis.tbl_bisio ON(uid=tbl_bisio.student_uid)
|
||||
LEFT JOIN public.tbl_studiengang ON(tbl_student.studiengang_kz=tbl_studiengang.studiengang_kz)
|
||||
LEFT JOIN bis.tbl_mobilitaet USING(prestudent_id)
|
||||
LEFT JOIN public.tbl_prestudent USING(prestudent_id)
|
||||
WHERE
|
||||
vw_student_lehrveranstaltung.lehrveranstaltung_id='.$this->db->db_add_param($this->lvid, FHC_INTEGER).' AND
|
||||
vw_student_lehrveranstaltung.studiensemester_kurzbz='.$this->db->db_add_param($this->studiensemester);
|
||||
@@ -231,7 +233,7 @@ class LehreListHelper
|
||||
if($this->lehreinheit!='')
|
||||
$qry.=' AND vw_student_lehrveranstaltung.lehreinheit_id='.$this->db->db_add_param($this->lehreinheit, FHC_INTEGER);
|
||||
|
||||
$qry.=' ORDER BY nachname, vorname, person_id, daysout DESC, doubledegree DESC';
|
||||
$qry.=' ORDER BY nachname, vorname, public.tbl_benutzer.person_id, daysout DESC, doubledegree DESC';
|
||||
|
||||
$stsem_obj = new studiensemester();
|
||||
$stsem_obj->load($this->studiensemester);
|
||||
@@ -263,8 +265,15 @@ class LehreListHelper
|
||||
|
||||
//Outgoing
|
||||
if($row->bisio_id != '' && $row->status != 'Incoming' && ($row->bis > $stsemdatumvon || $row->bis == '')
|
||||
&& $row->von < $stsemdatumbis && (anzahlTage($row->von, $row->bis) >= 30))
|
||||
&& $row->von < $stsemdatumbis && (anzahlTage($row->von, $row->bis) >= 30)) {
|
||||
$zusatz .= '(o)(ab '.$datum->formatDatum($row->von, 'd.m.Y').')';
|
||||
} else if ($row->bisio_id != '' && $row->status != 'Incoming' && ($row->von > $stsemdatumvon || $row->von == '')) {
|
||||
// if bis datum is not yet known but von is available already
|
||||
$zusatz .= '(o)(ab '.$datum->formatDatum($row->von, 'd.m.Y').')';
|
||||
} else if ($row->bisio_id != '' && $row->status != 'Incoming' && ($row->von <= $stsemdatumvon || $row->von == '') && ($row->bis == '' || $row->bis > date('Y-m-d'))){
|
||||
$zusatz .= '(o)(ab '.$datum->formatDatum($row->von, 'd.m.Y').')';
|
||||
}
|
||||
|
||||
|
||||
if($row->lkt_ueberschreibbar == 'f') // angerechnet / intern angerechnet / nicht zugelassen
|
||||
$zusatz.= '('. $row->anmerkung. ')';
|
||||
@@ -275,8 +284,13 @@ class LehreListHelper
|
||||
if($row->stg_kz_student==$a_o_kz) //Außerordentliche Studierende
|
||||
$zusatz.='(a.o.)';
|
||||
|
||||
if(($row->mobilitaetstyp_kurzbz != '') && ($row->doubledegree == 1)) //Double Degree Student
|
||||
$zusatz .= '(d.d.)';
|
||||
if(($row->mobilitaetstyp_kurzbz != '') && ($row->doubledegree == 1)) {
|
||||
//Double Degree Student
|
||||
$zusatz .= '(d.d.';
|
||||
if($row->ddtype == 'Intern') $zusatz .= 'i.)';
|
||||
else if ($row->ddtype == 'Extern') $zusatz .='o.)';
|
||||
else $zusatz .= ')';
|
||||
}
|
||||
|
||||
if(($row->wahlname != ''))
|
||||
{
|
||||
|
||||
@@ -41,6 +41,7 @@ class lehrstunde extends basis_db
|
||||
public $unr; // @brief Unterrichtsnummer
|
||||
public $lektor_uid; // @brief UID des Lektors
|
||||
public $lektor_kurzbz; // @brief Kurzbezeichnung des Lektors
|
||||
public $mitarbeiter_kurzbz; // @brief Kurzbezeichnung
|
||||
public $datum; // @brief Datum
|
||||
public $stunde; // @brief Unterrichts-Stunde des Tages
|
||||
public $ort_kurzbz; // @brief Ort in dem der Unterricht stattfindet
|
||||
@@ -116,6 +117,7 @@ class lehrstunde extends basis_db
|
||||
$this->unr=$row->unr;
|
||||
$this->lektor_uid=$row->uid;
|
||||
$this->lektor_kurzbz=$row->lektor;
|
||||
$this->mitarbeiter_kurzbz=$row->mitarbeiter_kurzbz;
|
||||
$this->datum=$row->datum;
|
||||
$this->stunde=$row->stunde;
|
||||
$this->ort_kurzbz=$row->ort_kurzbz;
|
||||
@@ -590,6 +592,7 @@ class lehrstunde extends basis_db
|
||||
$stunde->unr=$row->unr;
|
||||
$stunde->lektor_uid=$row->uid;
|
||||
$stunde->lektor_kurzbz=$row->lektor;
|
||||
$stunde->mitarbeiter_kurzbz=$row->mitarbeiter_kurzbz;
|
||||
$stunde->datum=$row->datum;
|
||||
$stunde->stunde=$row->stunde;
|
||||
$stunde->ort_kurzbz=$row->ort_kurzbz;
|
||||
@@ -663,6 +666,7 @@ class lehrstunde extends basis_db
|
||||
$stunde->updateamum=$row->insertamum;
|
||||
$stunde->updatevon=$row->insertvon;
|
||||
$stunde->farbe='';
|
||||
$stunde->mitarbeiter_kurzbz = $row->mitarbeiter_kurzbz;
|
||||
$this->lehrstunden[]=$stunde;
|
||||
}
|
||||
}
|
||||
@@ -1069,7 +1073,7 @@ class lehrstunde extends basis_db
|
||||
}
|
||||
|
||||
/**
|
||||
* Holt Studenplandaten.
|
||||
* Holt Stundenplandaten.
|
||||
*
|
||||
* @param $db_stpl_table
|
||||
* @param null $lehrveranstaltung_id
|
||||
|
||||
@@ -70,6 +70,7 @@ class lehrveranstaltung extends basis_db
|
||||
public $farbe;
|
||||
public $lehrauftrag=true;
|
||||
public $lehrveranstaltung_template_id; // integer
|
||||
public $evaluierung=true; // boolean
|
||||
|
||||
|
||||
public $studienplan_lehrveranstaltung_id;
|
||||
@@ -170,6 +171,7 @@ class lehrveranstaltung extends basis_db
|
||||
$this->benotung = $this->db_parse_bool($row->benotung);
|
||||
$this->lvinfo = $this->db_parse_bool($row->lvinfo);
|
||||
$this->lehrauftrag = $this->db_parse_bool($row->lehrauftrag);
|
||||
$this->evaluierung = $this->db_parse_bool($row->evaluierung);
|
||||
|
||||
// FIXME: LV-Bezeichnung richtig mehrsprachig machen
|
||||
// Zwischenzeitlich 'Italian' zum bezeichnung_arr dazugegeben
|
||||
@@ -244,6 +246,7 @@ class lehrveranstaltung extends basis_db
|
||||
$lv_obj->benotung = $this->db_parse_bool($row->benotung);
|
||||
$lv_obj->lvinfo = $this->db_parse_bool($row->lvinfo);
|
||||
$lv_obj->lehrauftrag = $this->db_parse_bool($row->lehrauftrag);
|
||||
$lv_obj->evaluierung = $this->db_parse_bool($row->evaluierung);
|
||||
|
||||
$lv_obj->bezeichnung_arr['German'] = $row->bezeichnung;
|
||||
$lv_obj->bezeichnung_arr['English'] = $row->bezeichnung_english;
|
||||
@@ -394,6 +397,7 @@ class lehrveranstaltung extends basis_db
|
||||
$lv_obj->benotung = $this->db_parse_bool($row->benotung);
|
||||
$lv_obj->lvinfo = $this->db_parse_bool($row->lvinfo);
|
||||
$lv_obj->lehrauftrag = $this->db_parse_bool($row->lehrauftrag);
|
||||
$lv_obj->evaluierung = $this->db_parse_bool($row->evaluierung);
|
||||
|
||||
$lv_obj->bezeichnung_arr['German'] = $row->bezeichnung;
|
||||
$lv_obj->bezeichnung_arr['Italian'] = $row->bezeichnung;
|
||||
@@ -524,6 +528,7 @@ class lehrveranstaltung extends basis_db
|
||||
$lv_obj->benotung = $this->db_parse_bool($row->benotung);
|
||||
$lv_obj->lvinfo = $this->db_parse_bool($row->lvinfo);
|
||||
$lv_obj->lehrauftrag = $this->db_parse_bool($row->lehrauftrag);
|
||||
$lv_obj->evaluierung = $this->db_parse_bool($row->evaluierung);
|
||||
|
||||
$lv_obj->bezeichnung_arr['German'] = $row->bezeichnung;
|
||||
$lv_obj->bezeichnung_arr['English'] = $row->bezeichnung_english;
|
||||
@@ -607,6 +612,7 @@ class lehrveranstaltung extends basis_db
|
||||
$lv_obj->benotung = $this->db_parse_bool($row->benotung);
|
||||
$lv_obj->lvinfo = $this->db_parse_bool($row->lvinfo);
|
||||
$lv_obj->lehrauftrag = $this->db_parse_bool($row->lehrauftrag);
|
||||
$lv_obj->evaluierung = $this->db_parse_bool($row->evaluierung);
|
||||
|
||||
$lv_obj->bezeichnung_arr['German'] = $row->bezeichnung;
|
||||
$lv_obj->bezeichnung_arr['English'] = $row->bezeichnung_english;
|
||||
@@ -779,7 +785,7 @@ class lehrveranstaltung extends basis_db
|
||||
insertvon, planfaktor, planlektoren, planpersonalkosten, plankostenprolektor, updateamum, updatevon, sort,
|
||||
zeugnis, projektarbeit, sprache, koordinator, bezeichnung_english, orgform_kurzbz, incoming, lehrtyp_kurzbz, oe_kurzbz,
|
||||
raumtyp_kurzbz, anzahlsemester, semesterwochen, lvnr, semester_alternativ, farbe, lehrveranstaltung_template_id,sws,lvs,alvs,lvps,las,benotung,lvinfo,
|
||||
lehrauftrag, lehrmodus_kurzbz) VALUES ('.
|
||||
lehrauftrag, lehrmodus_kurzbz, evaluierung) VALUES ('.
|
||||
$this->db_add_param($this->studiengang_kz). ', '.
|
||||
$this->db_add_param($this->bezeichnung). ', '.
|
||||
$this->db_add_param($this->kurzbz). ', '.
|
||||
@@ -824,7 +830,8 @@ class lehrveranstaltung extends basis_db
|
||||
$this->db_add_param($this->benotung, FHC_BOOLEAN).','.
|
||||
$this->db_add_param($this->lvinfo, FHC_BOOLEAN).','.
|
||||
$this->db_add_param($this->lehrauftrag, FHC_BOOLEAN).','.
|
||||
$this->db_add_param($this->lehrmodus_kurzbz)
|
||||
$this->db_add_param($this->lehrmodus_kurzbz).','.
|
||||
$this->db_add_param($this->evaluierung, FHC_BOOLEAN)
|
||||
.');';
|
||||
}
|
||||
else
|
||||
@@ -880,7 +887,8 @@ class lehrveranstaltung extends basis_db
|
||||
'las = '.$this->db_add_param($this->las).', '.
|
||||
'benotung = '.$this->db_add_param($this->benotung, FHC_BOOLEAN).', '.
|
||||
'lvinfo = '.$this->db_add_param($this->lvinfo, FHC_BOOLEAN).', '.
|
||||
'lehrauftrag = '.$this->db_add_param($this->lehrauftrag, FHC_BOOLEAN).' '.
|
||||
'lehrauftrag = '.$this->db_add_param($this->lehrauftrag, FHC_BOOLEAN).', '.
|
||||
'evaluierung = '.$this->db_add_param($this->evaluierung, FHC_BOOLEAN).' '.
|
||||
'WHERE lehrveranstaltung_id = ' . $this->db_add_param($this->lehrveranstaltung_id, FHC_INTEGER, false) . ';';
|
||||
}
|
||||
|
||||
@@ -991,6 +999,7 @@ class lehrveranstaltung extends basis_db
|
||||
$lv_obj->benotung = $this->db_parse_bool($row->benotung);
|
||||
$lv_obj->lvinfo = $this->db_parse_bool($row->lvinfo);
|
||||
$lv_obj->lehrauftrag = $this->db_parse_bool($row->lehrauftrag);
|
||||
$lv_obj->evaluierung = $this->db_parse_bool($row->evaluierung);
|
||||
|
||||
$lv_obj->bezeichnung_arr['German'] = $row->bezeichnung;
|
||||
$lv_obj->bezeichnung_arr['English'] = $row->bezeichnung_english;
|
||||
@@ -1086,6 +1095,7 @@ class lehrveranstaltung extends basis_db
|
||||
$l->benotung = $this->db_parse_bool($row->benotung);
|
||||
$l->lvinfo = $this->db_parse_bool($row->lvinfo);
|
||||
$l->lehrauftrag = $this->db_parse_bool($row->lehrauftrag);
|
||||
$l->evaluierung = $this->db_parse_bool($row->evaluierung);
|
||||
|
||||
$l->bezeichnung_arr['German'] = $row->bezeichnung;
|
||||
$l->bezeichnung_arr['English'] = $row->bezeichnung_english;
|
||||
@@ -1170,6 +1180,7 @@ class lehrveranstaltung extends basis_db
|
||||
$lv_obj->benotung = $this->db_parse_bool($row->benotung);
|
||||
$lv_obj->lvinfo = $this->db_parse_bool($row->lvinfo);
|
||||
$lv_obj->lehrauftrag = $this->db_parse_bool($row->lehrauftrag);
|
||||
$lv_obj->evaluierung = $this->db_parse_bool($row->evaluierung);
|
||||
|
||||
$lv_obj->bezeichnung_arr['German'] = $row->bezeichnung;
|
||||
$lv_obj->bezeichnung_arr['English'] = $row->bezeichnung_english;
|
||||
@@ -1271,6 +1282,7 @@ class lehrveranstaltung extends basis_db
|
||||
$obj->benotung = $this->db_parse_bool($row->benotung);
|
||||
$obj->lvinfo = $this->db_parse_bool($row->lvinfo);
|
||||
$obj->lehrauftrag = $this->db_parse_bool($row->lehrauftrag);
|
||||
$obj->evaluierung = $this->db_parse_bool($row->evaluierung);
|
||||
|
||||
$obj->bezeichnung_arr['German'] = $row->bezeichnung;
|
||||
$obj->bezeichnung_arr['English'] = $row->bezeichnung_english;
|
||||
@@ -1396,6 +1408,7 @@ class lehrveranstaltung extends basis_db
|
||||
$obj->lvinfo =$this->db_parse_bool( $lv->lvinfo);
|
||||
$obj->zeugnis = $this->db_parse_bool($lv->zeugnis);
|
||||
$obj->lehrauftrag = $this->db_parse_bool($lv->lehrauftrag);
|
||||
$obj->evaluierung = $this->db_parse_bool($lv->evaluierung);
|
||||
|
||||
$values[] = $obj;
|
||||
|
||||
@@ -1422,6 +1435,7 @@ class lehrveranstaltung extends basis_db
|
||||
$obj->lvinfo =$this->db_parse_bool( $this->lvinfo);
|
||||
$obj->zeugnis = $this->db_parse_bool($this->zeugnis);
|
||||
$obj->lehrauftrag = $this->db_parse_bool($this->lehrauftrag);
|
||||
$obj->evaluierung = $this->db_parse_bool($this->evaluierung);
|
||||
|
||||
$values[] = $obj;
|
||||
}
|
||||
@@ -1476,6 +1490,7 @@ class lehrveranstaltung extends basis_db
|
||||
$obj->export = $lv->export;
|
||||
$obj->genehmigung = $lv->genehmigung;
|
||||
$obj->lehrauftrag = $lv->lehrauftrag;
|
||||
$obj->evaluierung = $lv->evaluierung;
|
||||
$obj->lehre = $lv->lehre;
|
||||
$obj->children = array();
|
||||
if(count($lv->childs) > 0)
|
||||
@@ -1507,6 +1522,7 @@ class lehrveranstaltung extends basis_db
|
||||
$obj->zeugnis = $this->db_parse_bool($this->zeugnis);
|
||||
$obj->curriculum = $this->db_parse_bool($this->curriculum);
|
||||
$obj->lehrauftrag = $this->lehrauftrag;
|
||||
$obj->evaluierung = $this->db_parse_bool($this->evaluierung);
|
||||
|
||||
$values[] = $obj;
|
||||
}
|
||||
@@ -1613,6 +1629,7 @@ class lehrveranstaltung extends basis_db
|
||||
$lv_obj->benotung = $this->db_parse_bool($row->benotung);
|
||||
$lv_obj->lvinfo = $this->db_parse_bool($row->lvinfo);
|
||||
$lv_obj->lehrauftrag = $this->db_parse_bool($row->lehrauftrag);
|
||||
$lv_obj->evaluierung = $this->db_parse_bool($row->evaluierung);
|
||||
|
||||
$lv_obj->bezeichnung_arr['German'] = $row->bezeichnung;
|
||||
$lv_obj->bezeichnung_arr['English'] = $row->bezeichnung_english;
|
||||
@@ -1700,6 +1717,7 @@ class lehrveranstaltung extends basis_db
|
||||
$lv_obj->benotung = $this->db_parse_bool($row->benotung);
|
||||
$lv_obj->lvinfo = $this->db_parse_bool($row->lvinfo);
|
||||
$lv_obj->lehrauftrag = $this->db_parse_bool($row->lehrauftrag);
|
||||
$lv_obj->evaluierung = $this->db_parse_bool($row->evaluierung);
|
||||
|
||||
$lv_obj->bezeichnung_arr['German'] = $row->bezeichnung;
|
||||
$lv_obj->bezeichnung_arr['English'] = $row->bezeichnung_english;
|
||||
@@ -1873,6 +1891,7 @@ class lehrveranstaltung extends basis_db
|
||||
$lv_obj->benotung = $this->db_parse_bool($row->benotung);
|
||||
$lv_obj->lvinfo = $this->db_parse_bool($row->lvinfo);
|
||||
$lv_obj->lehrauftrag = $this->db_parse_bool($row->lehrauftrag);
|
||||
$lv_obj->evaluierung = $this->db_parse_bool($row->evaluierung);
|
||||
|
||||
$lv_obj->bezeichnung_arr['German'] = $row->bezeichnung;
|
||||
$lv_obj->bezeichnung_arr['English'] = $row->bezeichnung_english;
|
||||
@@ -2003,6 +2022,7 @@ class lehrveranstaltung extends basis_db
|
||||
$lv_obj->benotung = $this->db_parse_bool($row->benotung);
|
||||
$lv_obj->lvinfo = $this->db_parse_bool($row->lvinfo);
|
||||
$lv_obj->lehrauftrag = $this->db_parse_bool($row->lehrauftrag);
|
||||
$lv_obj->evaluierung = $this->db_parse_bool($row->evaluierung);
|
||||
|
||||
$lv_obj->studiengang_kurzbzlang = $row->studiengang_kurzbzlang;
|
||||
|
||||
@@ -2131,6 +2151,7 @@ class lehrveranstaltung extends basis_db
|
||||
$lv_obj->benotung = $this->db_parse_bool($row->benotung);
|
||||
$lv_obj->lvinfo = $this->db_parse_bool($row->lvinfo);
|
||||
$lv_obj->lehrauftrag = $this->db_parse_bool($row->lehrauftrag);
|
||||
$lv_obj->evaluierung = $this->db_parse_bool($row->evaluierung);
|
||||
|
||||
$lv_obj->bezeichnung_arr['German'] = $row->bezeichnung;
|
||||
$lv_obj->bezeichnung_arr['English'] = $row->bezeichnung_english;
|
||||
@@ -2402,6 +2423,7 @@ class lehrveranstaltung extends basis_db
|
||||
$obj->benotung = $this->db_parse_bool($row->benotung);
|
||||
$obj->lvinfo = $this->db_parse_bool($row->lvinfo);
|
||||
$obj->lehrauftrag = $this->db_parse_bool($row->lehrauftrag);
|
||||
$obj->evaluierung = $this->db_parse_bool($row->evaluierung);
|
||||
|
||||
$obj->bezeichnung_arr['German'] = $row->bezeichnung;
|
||||
$obj->bezeichnung_arr['English'] = $row->bezeichnung_english;
|
||||
@@ -2861,5 +2883,33 @@ class lehrveranstaltung extends basis_db
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public function getStudienplanLehrveranstaltung($lehrveranstaltung_id, $studienplan_id)
|
||||
{
|
||||
$qry = "SELECT studienplan_lehrveranstaltung_id
|
||||
FROM lehre.tbl_lehrveranstaltung
|
||||
JOIN lehre.tbl_studienplan_lehrveranstaltung USING(lehrveranstaltung_id)
|
||||
WHERE lehrveranstaltung_id = ".$this->db_add_param($lehrveranstaltung_id)."
|
||||
AND tbl_studienplan_lehrveranstaltung.studienplan_id = ".$this->db_add_param($studienplan_id);"";
|
||||
|
||||
if($result = $this->db_query($qry))
|
||||
{
|
||||
if($row = $this->db_fetch_object($result))
|
||||
{
|
||||
return $row->studienplan_lehrveranstaltung_id;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Ermitteln der studienplan_lehrveranstaltung_id';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg='Fehler bei Datenbankabfrage ' .$this->db_last_error();
|
||||
}
|
||||
return null;
|
||||
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
||||
@@ -0,0 +1,300 @@
|
||||
<?php
|
||||
|
||||
require_once(dirname(__FILE__) . '/basis_db.class.php');
|
||||
require_once(dirname(__FILE__) . '/functions.inc.php');
|
||||
|
||||
class lehrveranstaltung_faktor extends basis_db
|
||||
{
|
||||
public $lehrveranstaltung_faktor_id; // serial
|
||||
public $lehrveranstaltung_id; // integer
|
||||
public $faktor; // numeric
|
||||
public $lehrform_kurzbz; // varchar(8)
|
||||
public $studiensemester_kurzbz_von; // varchar(16)
|
||||
public $studiensemester_kurzbz_bis; // varchar(16)
|
||||
public $insertamum; // timestamp
|
||||
public $insertvon; // varchar(32)
|
||||
public $updateamum; // timestamp
|
||||
public $updatevon; // varchar(32)
|
||||
public $lv_faktoren = array(); // lehrveranstaltung Objekt
|
||||
|
||||
|
||||
/**
|
||||
* Konstruktor
|
||||
* @param $lehrveranstaltung_faktor_id
|
||||
*/
|
||||
public function __construct($lehrveranstaltung_faktor_id = null)
|
||||
{
|
||||
parent::__construct();
|
||||
|
||||
if (!is_null($lehrveranstaltung_faktor_id))
|
||||
$this->load($lehrveranstaltung_faktor_id);
|
||||
}
|
||||
|
||||
|
||||
public function load($lehrveranstaltung_faktor_id)
|
||||
{
|
||||
if (!is_numeric($lehrveranstaltung_faktor_id))
|
||||
{
|
||||
$this->errormsg = 'Lehrveranstaltung_faktor_id muss eine gueltige Zahl sein';
|
||||
return false;
|
||||
}
|
||||
|
||||
$qry = "SELECT * FROM lehre.tbl_lehrveranstaltung_faktor
|
||||
WHERE lehrveranstaltung_faktor_id=".$this->db_add_param($lehrveranstaltung_faktor_id, FHC_INTEGER);
|
||||
|
||||
if (!$this->db_query($qry)) {
|
||||
$this->errormsg = 'Datensatz konnte nicht geladen werden';
|
||||
return false;
|
||||
}
|
||||
|
||||
if ($row = $this->db_fetch_object())
|
||||
{
|
||||
$this->lehrveranstaltung_faktor_id = $row->lehrveranstaltung_faktor_id;
|
||||
$this->lehrveranstaltung_id = $row->lehrveranstaltung_id;
|
||||
$this->faktor = $row->faktor;
|
||||
$this->studiensemester_kurzbz_von = $row->studiensemester_kurzbz_von;
|
||||
$this->studiensemester_kurzbz_bis = $row->studiensemester_kurzbz_bis;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public function loadByLV($lv_id)
|
||||
{
|
||||
|
||||
if (!is_numeric($lv_id))
|
||||
{
|
||||
$this->errormsg = 'Lehrveranstaltung_faktor_id muss eine gueltige Zahl sein';
|
||||
return false;
|
||||
}
|
||||
$qry = "SELECT *
|
||||
FROM lehre.tbl_lehrveranstaltung_faktor
|
||||
LEFT JOIN public.tbl_studiensemester vonstsem
|
||||
ON tbl_lehrveranstaltung_faktor.studiensemester_kurzbz_von = vonstsem.studiensemester_kurzbz
|
||||
LEFT JOIN public.tbl_studiensemester bisstem
|
||||
ON tbl_lehrveranstaltung_faktor.studiensemester_kurzbz_bis = bisstem.studiensemester_kurzbz
|
||||
WHERE lehrveranstaltung_id = ".$this->db_add_param($lv_id, FHC_INTEGER);
|
||||
|
||||
|
||||
if (!$result = $this->db_query($qry)) {
|
||||
$this->errormsg = 'Datensatz konnte nicht geladen werden';
|
||||
return false;
|
||||
}
|
||||
|
||||
while ($row = $this->db_fetch_object($result))
|
||||
{
|
||||
$lv_faktor_objekt = new lehrveranstaltung_faktor();
|
||||
|
||||
$lv_faktor_objekt->lehrveranstaltung_faktor_id = $row->lehrveranstaltung_faktor_id;
|
||||
$lv_faktor_objekt->lehrveranstaltung_id = $row->lehrveranstaltung_id;
|
||||
$lv_faktor_objekt->faktor = $row->faktor;
|
||||
$lv_faktor_objekt->lehrform_kurzbz = $row->lehrform_kurzbz;
|
||||
$lv_faktor_objekt->studiensemester_kurzbz_von = $row->studiensemester_kurzbz_von;
|
||||
$lv_faktor_objekt->studiensemester_kurzbz_bis = $row->studiensemester_kurzbz_bis;
|
||||
$this->lv_faktoren[] = $lv_faktor_objekt;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
public function checkIfExists($lv_id, $von = null, $bis = null, $id = null, $lehrform_kurzbz = null)
|
||||
{
|
||||
|
||||
if (!is_numeric($lv_id))
|
||||
{
|
||||
$this->errormsg = 'Lehrveranstaltung_faktor_id muss eine gueltige Zahl sein';
|
||||
return false;
|
||||
}
|
||||
$qry = "SELECT *
|
||||
FROM lehre.tbl_lehrveranstaltung_faktor
|
||||
LEFT JOIN public.tbl_studiensemester vonstsem
|
||||
ON tbl_lehrveranstaltung_faktor.studiensemester_kurzbz_von = vonstsem.studiensemester_kurzbz
|
||||
LEFT JOIN public.tbl_studiensemester bisstem
|
||||
ON tbl_lehrveranstaltung_faktor.studiensemester_kurzbz_bis = bisstem.studiensemester_kurzbz
|
||||
WHERE lehrveranstaltung_id = ".$this->db_add_param($lv_id, FHC_INTEGER);
|
||||
|
||||
if(!empty($von))
|
||||
{
|
||||
$qry .= "
|
||||
AND (bisstem.ende >= (
|
||||
SELECT start
|
||||
FROM public.tbl_studiensemester
|
||||
WHERE studiensemester_kurzbz = " . $this->db_add_param($von, FHC_STRING) . "
|
||||
)
|
||||
OR bisstem.ende IS NULL
|
||||
)";
|
||||
}
|
||||
|
||||
if(!empty($bis) && $bis !== "")
|
||||
{
|
||||
$qry .= "
|
||||
AND
|
||||
(vonstsem.start <= (
|
||||
SELECT ende
|
||||
FROM public.tbl_studiensemester
|
||||
WHERE studiensemester_kurzbz = " . $this->db_add_param($bis, FHC_STRING) . "
|
||||
))
|
||||
";
|
||||
}
|
||||
|
||||
if (!empty($id) && $id !== "")
|
||||
{
|
||||
$qry .= "
|
||||
AND
|
||||
lehrveranstaltung_faktor_id != ". $this->db_add_param($id, FHC_INTEGER);
|
||||
}
|
||||
|
||||
if (!empty($lehrform_kurzbz) && $lehrform_kurzbz !== "")
|
||||
{
|
||||
$qry .= "
|
||||
AND
|
||||
lehrform_kurzbz = ". $this->db_add_param($lehrform_kurzbz);
|
||||
}
|
||||
else
|
||||
{
|
||||
$qry .= "
|
||||
AND lehrform_kurzbz IS NULL
|
||||
";
|
||||
}
|
||||
|
||||
if ($result = $this->db_query($qry))
|
||||
{
|
||||
if ($this->db_num_rows($result) > 0)
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public function save($new = false)
|
||||
{
|
||||
if ($new)
|
||||
{
|
||||
$qry = 'INSERT INTO lehre.tbl_lehrveranstaltung_faktor (lehrveranstaltung_id, faktor, studiensemester_kurzbz_von, studiensemester_kurzbz_bis, lehrform_kurzbz, insertvon)
|
||||
VALUES ('. $this->db_add_param($this->lehrveranstaltung_id, FHC_INTEGER) . ', '.
|
||||
$this->db_add_param($this->faktor, FHC_INTEGER) . ', '.
|
||||
$this->db_add_param($this->studiensemester_kurzbz_von) . ', '.
|
||||
$this->db_add_param($this->studiensemester_kurzbz_bis) . ', '.
|
||||
$this->db_add_param($this->lehrform_kurzbz) . ', '.
|
||||
$this->db_add_param($this->insertvon) . ');';
|
||||
}
|
||||
else
|
||||
{
|
||||
$qry = "UPDATE lehre.tbl_lehrveranstaltung_faktor
|
||||
SET faktor = ". $this->db_add_param($this->faktor) ." ,
|
||||
studiensemester_kurzbz_von = ". $this->db_add_param($this->studiensemester_kurzbz_von) .",
|
||||
studiensemester_kurzbz_bis = ". $this->db_add_param($this->studiensemester_kurzbz_bis) .",
|
||||
lehrform_kurzbz = ". $this->db_add_param($this->lehrform_kurzbz) .",
|
||||
updatevon = ". $this->db_add_param($this->updatevon) .",
|
||||
updateamum = ". $this->db_add_param($this->updateamum) ."
|
||||
WHERE lehrveranstaltung_faktor_id = ". $this->db_add_param($this->lehrveranstaltung_faktor_id, FHC_INTEGER);
|
||||
}
|
||||
|
||||
|
||||
if ($this->db_query($qry))
|
||||
{
|
||||
if ($new)
|
||||
{
|
||||
$qry_id = "SELECT currval('lehre.lehrveranstaltung_faktor_id_seq') as id;";
|
||||
if($this->db_query($qry_id))
|
||||
{
|
||||
if($row = $this->db_fetch_object())
|
||||
{
|
||||
$this->db_query('COMMIT');
|
||||
return [
|
||||
'id' => $row->id,
|
||||
'lv_id' => $this->lehrveranstaltung_id,
|
||||
'faktor' => $this->faktor,
|
||||
'lehrform_kurzbz' => $this->lehrform_kurzbz,
|
||||
'von' => $this->studiensemester_kurzbz_von,
|
||||
'bis' => $this->studiensemester_kurzbz_bis
|
||||
];
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->db_query('ROLLBACK');
|
||||
return [
|
||||
'status' => 'error',
|
||||
'message' => 'Fehler beim Einfügen in die Datenbank:'
|
||||
];
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->db_query('ROLLBACK');
|
||||
return [
|
||||
'status' => 'error',
|
||||
'message' => 'Fehler beim Einfügen in die Datenbank:'
|
||||
];
|
||||
}
|
||||
}
|
||||
else
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
return [
|
||||
'status' => 'error',
|
||||
'message' => 'Fehler beim Einfügen in die Datenbank:'
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
public function getAkt($lv_id)
|
||||
{
|
||||
if (!is_numeric($lv_id))
|
||||
{
|
||||
$this->errormsg = 'Lehrveranstaltung_id muss eine gueltige Zahl sein';
|
||||
return false;
|
||||
}
|
||||
|
||||
$qry = "SELECT *
|
||||
FROM lehre.tbl_lehrveranstaltung_faktor
|
||||
LEFT JOIN public.tbl_studiensemester vonstsem
|
||||
ON tbl_lehrveranstaltung_faktor.studiensemester_kurzbz_von = vonstsem.studiensemester_kurzbz
|
||||
LEFT JOIN public.tbl_studiensemester bisstem
|
||||
ON tbl_lehrveranstaltung_faktor.studiensemester_kurzbz_bis = bisstem.studiensemester_kurzbz
|
||||
WHERE lehrveranstaltung_id = ".$this->db_add_param($lv_id, FHC_INTEGER) . "
|
||||
AND (vonstsem.start <= now() OR vonstsem.start IS NULL)
|
||||
AND (bisstem.ende >= now() OR bisstem.ende IS NULL)
|
||||
AND lehrform_kurzbz IS NULL
|
||||
ORDER BY vonstsem.start DESC LIMIT 1
|
||||
";
|
||||
|
||||
|
||||
if (!$this->db_query($qry)) {
|
||||
$this->errormsg = 'Datensatz konnte nicht geladen werden';
|
||||
return false;
|
||||
}
|
||||
|
||||
if ($row = $this->db_fetch_object())
|
||||
{
|
||||
$this->lehrveranstaltung_faktor_id = $row->lehrveranstaltung_faktor_id;
|
||||
$this->lehrveranstaltung_id = $row->lehrveranstaltung_id;
|
||||
$this->faktor = $row->faktor;
|
||||
$this->studiensemester_kurzbz_von = $row->studiensemester_kurzbz_von;
|
||||
$this->studiensemester_kurzbz_bis = $row->studiensemester_kurzbz_bis;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
public function deleteFaktor($id)
|
||||
{
|
||||
$qry = "DELETE FROM lehre.tbl_lehrveranstaltung_faktor
|
||||
WHERE lehrveranstaltung_faktor_id = ". $this->db_add_param($id, FHC_INTEGER);
|
||||
|
||||
if ($this->db_query($qry))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
return [
|
||||
'status' => 'error',
|
||||
'message' => 'Fehler beim Löschen aus der Datenbank:'
|
||||
];
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
+268
-50
@@ -317,7 +317,7 @@ class mitarbeiter extends benutzer
|
||||
* gibt array mit allen Mitarbeitern zurueck
|
||||
* @return array mit Mitarbeitern
|
||||
*/
|
||||
public function getMitarbeiter($lektor=true,$fixangestellt=null,$stg_kz=null)
|
||||
public function getMitarbeiter($lektor=true,$fixangestellt=null,$stg_kz=null, $aktiv=null)
|
||||
{
|
||||
$sql_query='SELECT DISTINCT campus.vw_mitarbeiter.uid, titelpre, titelpost, vorname, vornamen, wahlname, nachname, gebdatum, gebort, gebzeit, anmerkung, aktiv,
|
||||
homepage, campus.vw_mitarbeiter.updateamum, campus.vw_mitarbeiter.updatevon, personalnummer, kurzbz, lektor, fixangestellt, standort_id, telefonklappe FROM campus.vw_mitarbeiter
|
||||
@@ -346,6 +346,14 @@ class mitarbeiter extends benutzer
|
||||
$sql_query.=" AND oe_kurzbz=".$this->db_add_param($stg->oe_kurzbz);
|
||||
}
|
||||
|
||||
if(!is_null($aktiv))
|
||||
{
|
||||
$sql_query.=' AND';
|
||||
if (!$aktiv)
|
||||
$sql_query.=' NOT';
|
||||
$sql_query.=' aktiv';
|
||||
}
|
||||
|
||||
$sql_query.=' ORDER BY nachname, vornamen, kurzbz;';
|
||||
|
||||
if(!$this->db_query($sql_query))
|
||||
@@ -1067,10 +1075,12 @@ class mitarbeiter extends benutzer
|
||||
}
|
||||
|
||||
/**
|
||||
* Gibt ein Array mit den UIDs der Vorgesetzten zurück
|
||||
* Gibt ein Array mit den UIDs der aktuellen Vorgesetzten zurück
|
||||
* @param null $uid
|
||||
* @param null $limit LIMIT = 1 liefert bei mehreren Vorgesetzten den letzten (aktuellsten) zurück.
|
||||
* @return uid
|
||||
*/
|
||||
public function getVorgesetzte($uid=null)
|
||||
public function getVorgesetzte($uid=null, $limit = null)
|
||||
{
|
||||
$return=false;
|
||||
if (is_null($uid))
|
||||
@@ -1084,14 +1094,40 @@ class mitarbeiter extends benutzer
|
||||
funktion_kurzbz='Leitung' AND
|
||||
(datum_von is null OR datum_von<=now()) AND
|
||||
(datum_bis is null OR datum_bis>=now()) AND
|
||||
oe_kurzbz in (SELECT oe_kurzbz
|
||||
FROM public.tbl_benutzerfunktion
|
||||
WHERE
|
||||
oe_kurzbz in (
|
||||
SELECT
|
||||
oe_kurzbz
|
||||
FROM
|
||||
public.tbl_benutzerfunktion
|
||||
WHERE
|
||||
funktion_kurzbz='oezuordnung' AND uid=".$this->db_add_param($uid)." AND
|
||||
(datum_von is null OR datum_von<=now()) AND
|
||||
(datum_bis is null OR datum_bis>=now())
|
||||
);";
|
||||
ORDER BY
|
||||
(
|
||||
SELECT
|
||||
1
|
||||
FROM
|
||||
hr.tbl_vertragsbestandteil_funktion
|
||||
JOIN hr.tbl_vertragsbestandteil vbsfkt USING(vertragsbestandteil_id)
|
||||
JOIN hr.tbl_vertragsbestandteil vbskarenz USING(dienstverhaeltnis_id)
|
||||
WHERE
|
||||
tbl_vertragsbestandteil_funktion.benutzerfunktion_id=tbl_benutzerfunktion.benutzerfunktion_id
|
||||
AND vbskarenz.vertragsbestandteiltyp_kurzbz='karenz'
|
||||
AND
|
||||
(
|
||||
now()::date BETWEEN COALESCE(vbskarenz.von, '1970-01-01') AND COALESCE(vbskarenz.bis, '2170-12-31')
|
||||
OR
|
||||
now()::date BETWEEN COALESCE(vbskarenz.von, '1970-01-01') AND COALESCE(vbskarenz.bis, '2170-12-31')
|
||||
)
|
||||
) NULLS FIRST LIMIT 1
|
||||
)
|
||||
ORDER BY datum_von DESC ";
|
||||
|
||||
if (is_numeric($limit))
|
||||
{
|
||||
$qry .= 'LIMIT '. $this->db_add_param($limit, FHC_INTEGER);
|
||||
}
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
@@ -1113,11 +1149,146 @@ class mitarbeiter extends benutzer
|
||||
return $return;
|
||||
}
|
||||
|
||||
/**
|
||||
* Prueft ob eine Person im angegebenen Zeitraum Vorgesetzter von einem Mitarbeiter ist
|
||||
* @param $leiter UID der zu pruefenden Leitungsposition
|
||||
* @param $mitarbeiter UID der zu pruefenden Leitungsposition
|
||||
* @param $datumvon Von Datum des zu pruefenden Zeitraums
|
||||
* @param $datumbis BIS Datum des zu pruefenden Zeitraums
|
||||
*/
|
||||
public function isVorgesetzterByDate($leiter, $mitarbeiter, $datumvon, $datumbis)
|
||||
{
|
||||
// Alle OEs der zu pruefenden Leitungsposition holen (oes_leitung)
|
||||
// Alle OEs des zu pruefenden Mitarbeiters holen (oes_mitarbeiter)
|
||||
// OE-Ueberschneidungen pruefen
|
||||
|
||||
$qry = "
|
||||
WITH RECURSIVE
|
||||
oes_leitung (oe_kurzbz, oe_parent_kurzbz, level) AS
|
||||
(
|
||||
SELECT
|
||||
oe_kurzbz,
|
||||
oe_parent_kurzbz,
|
||||
1 as level
|
||||
FROM
|
||||
public.tbl_organisationseinheit
|
||||
WHERE
|
||||
oe_kurzbz IN (
|
||||
|
||||
-- Leitung im Zeitraum X
|
||||
SELECT oe_kurzbz FROM public.tbl_benutzerfunktion
|
||||
WHERE
|
||||
funktion_kurzbz='Leitung'
|
||||
AND uid=".$this->db_add_param($leiter)."
|
||||
AND
|
||||
(
|
||||
".$this->db_add_param($datumvon)." BETWEEN COALESCE(tbl_benutzerfunktion.datum_von, '1970-01-01') AND COALESCE(tbl_benutzerfunktion.datum_bis, '2170-12-31')
|
||||
OR
|
||||
".$this->db_add_param($datumbis)." BETWEEN COALESCE(tbl_benutzerfunktion.datum_von, '1970-01-01') AND COALESCE(tbl_benutzerfunktion.datum_bis, '2170-12-31')
|
||||
)
|
||||
|
||||
)
|
||||
|
||||
UNION ALL
|
||||
|
||||
SELECT
|
||||
o.oe_kurzbz,
|
||||
o.oe_parent_kurzbz,
|
||||
oes_leitung.level + 1 as level
|
||||
FROM
|
||||
public.tbl_organisationseinheit o, oes_leitung
|
||||
WHERE
|
||||
o.oe_parent_kurzbz = oes_leitung.oe_kurzbz
|
||||
),
|
||||
oes_mitarbeiter (oe_kurzbz, oe_parent_kurzbz, level) AS
|
||||
(
|
||||
SELECT
|
||||
oe_kurzbz,
|
||||
oe_parent_kurzbz,
|
||||
1 as level
|
||||
FROM
|
||||
public.tbl_organisationseinheit
|
||||
WHERE
|
||||
oe_kurzbz IN (
|
||||
|
||||
-- OEZuordnung im Zeitraum X - bevorzugt nicht karenziert
|
||||
SELECT oe_kurzbz FROM public.tbl_benutzerfunktion
|
||||
WHERE
|
||||
funktion_kurzbz='oezuordnung'
|
||||
AND uid=".$this->db_add_param($mitarbeiter)."
|
||||
AND (
|
||||
".$this->db_add_param($datumvon)." BETWEEN COALESCE(tbl_benutzerfunktion.datum_von, '1970-01-01') AND COALESCE(tbl_benutzerfunktion.datum_bis, '2170-12-31')
|
||||
OR
|
||||
".$this->db_add_param($datumbis)." BETWEEN COALESCE(tbl_benutzerfunktion.datum_von, '1970-01-01') AND COALESCE(tbl_benutzerfunktion.datum_bis, '2170-12-31')
|
||||
)
|
||||
ORDER BY
|
||||
(
|
||||
SELECT
|
||||
1
|
||||
FROM
|
||||
hr.tbl_vertragsbestandteil_funktion
|
||||
JOIN hr.tbl_vertragsbestandteil vbsfkt USING(vertragsbestandteil_id)
|
||||
JOIN hr.tbl_vertragsbestandteil vbskarenz USING(dienstverhaeltnis_id)
|
||||
WHERE
|
||||
tbl_vertragsbestandteil_funktion.benutzerfunktion_id=tbl_benutzerfunktion.benutzerfunktion_id
|
||||
AND vbskarenz.vertragsbestandteiltyp_kurzbz='karenz'
|
||||
AND
|
||||
(
|
||||
".$this->db_add_param($datumvon)." BETWEEN COALESCE(vbskarenz.von, '1970-01-01') AND COALESCE(vbskarenz.bis, '2170-12-31')
|
||||
OR
|
||||
".$this->db_add_param($datumbis)." BETWEEN COALESCE(vbskarenz.von, '1970-01-01') AND COALESCE(vbskarenz.bis, '2170-12-31')
|
||||
) LIMIT 1
|
||||
) NULLS FIRST LIMIT 1
|
||||
|
||||
)
|
||||
|
||||
UNION ALL
|
||||
|
||||
SELECT
|
||||
o.oe_kurzbz,
|
||||
o.oe_parent_kurzbz,
|
||||
oes_mitarbeiter.level + 1 as level
|
||||
FROM
|
||||
public.tbl_organisationseinheit o, oes_mitarbeiter
|
||||
WHERE
|
||||
o.oe_kurzbz = oes_mitarbeiter.oe_parent_kurzbz
|
||||
)
|
||||
SELECT
|
||||
oe_kurzbz, level
|
||||
FROM
|
||||
oes_leitung
|
||||
WHERE
|
||||
oe_kurzbz in (SELECT oe_kurzbz FROM oes_mitarbeiter)
|
||||
ORDER BY
|
||||
oe_kurzbz, level
|
||||
";
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Gibt ein Array mit den UIDs der Vorgesetzten zum Zeitpunkt des korrespondierenden Timesheets zurück
|
||||
* @param $uid
|
||||
* @param $date
|
||||
* @param null $limit LIMIT = 1 liefert bei mehreren Vorgesetzten den letzten (aktuellsten) zurück.
|
||||
* @return uid
|
||||
*/
|
||||
public function getVorgesetzteMonatTimesheet($uid, $timesheetDate)
|
||||
public function getVorgesetzteByDate($uid, $date, $limit = null)
|
||||
{
|
||||
$return=false;
|
||||
|
||||
@@ -1127,15 +1298,38 @@ class mitarbeiter extends benutzer
|
||||
public.tbl_benutzerfunktion
|
||||
WHERE
|
||||
funktion_kurzbz='Leitung' AND
|
||||
(datum_von is null OR datum_von<=".$this->db_add_param($timesheetDate).") AND
|
||||
(datum_bis is null OR datum_bis>=".$this->db_add_param($timesheetDate).") AND
|
||||
oe_kurzbz in (SELECT oe_kurzbz
|
||||
FROM public.tbl_benutzerfunktion
|
||||
WHERE
|
||||
funktion_kurzbz='oezuordnung' AND uid=".$this->db_add_param($uid)." AND
|
||||
(datum_von is null OR (datum_von<= ".$this->db_add_param($timesheetDate).")) AND
|
||||
(datum_bis is null OR (datum_bis>=".$this->db_add_param($timesheetDate)."))
|
||||
);";
|
||||
(datum_von is null OR datum_von<=".$this->db_add_param($date).") AND
|
||||
(datum_bis is null OR datum_bis>=".$this->db_add_param($date).") AND
|
||||
oe_kurzbz in (
|
||||
SELECT
|
||||
oe_kurzbz
|
||||
FROM
|
||||
public.tbl_benutzerfunktion
|
||||
WHERE
|
||||
funktion_kurzbz='oezuordnung' AND uid=".$this->db_add_param($uid)." AND
|
||||
(datum_von is null OR (datum_von<= ".$this->db_add_param($date).")) AND
|
||||
(datum_bis is null OR (datum_bis>=".$this->db_add_param($date)."))
|
||||
ORDER BY
|
||||
(
|
||||
SELECT
|
||||
1
|
||||
FROM
|
||||
hr.tbl_vertragsbestandteil_funktion
|
||||
JOIN hr.tbl_vertragsbestandteil vbsfkt USING(vertragsbestandteil_id)
|
||||
JOIN hr.tbl_vertragsbestandteil vbskarenz USING(dienstverhaeltnis_id)
|
||||
WHERE
|
||||
tbl_vertragsbestandteil_funktion.benutzerfunktion_id=tbl_benutzerfunktion.benutzerfunktion_id
|
||||
AND vbskarenz.vertragsbestandteiltyp_kurzbz='karenz'
|
||||
AND (vbskarenz.von <= ".$this->db_add_param($date)." OR vbskarenz.von is null)
|
||||
AND (vbskarenz.bis >= ".$this->db_add_param($date)." OR vbskarenz.bis is null)
|
||||
) NULLS FIRST LIMIT 1
|
||||
)
|
||||
ORDER BY datum_von DESC ";
|
||||
|
||||
if (is_numeric($limit))
|
||||
{
|
||||
$qry .= 'LIMIT '. $this->db_add_param($limit);
|
||||
}
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
@@ -1204,16 +1398,16 @@ class mitarbeiter extends benutzer
|
||||
return $return;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Gibt ein Array mit den UIDs der aktiv beschäftigten Untergebenen zurueck
|
||||
* @param string $uid UID.
|
||||
* @param boolean $include_OE_childs Wenn true, dann werden auch alle aktiv
|
||||
* beschäftigten Untergebenen der Kind-OEs des Leiters zurückgegeben.
|
||||
* @param bool $fixangestellte_only
|
||||
* @param bool $include_ImLetztenMonatBeendete Inkludiert Mitarbeiter, deren Benutzerfunktion im letzten Monat bereits endete
|
||||
* @return boolean
|
||||
*/
|
||||
public function getUntergebene($uid=null, $include_OE_childs = false, $fixangestellte_only = true)
|
||||
public function getUntergebene($uid=null, $include_OE_childs = false, $fixangestellte_only = true, $include_ImLetztenMonatBeendete = false)
|
||||
{
|
||||
if (is_null($uid))
|
||||
$uid=$this->uid;
|
||||
@@ -1320,11 +1514,18 @@ class mitarbeiter extends benutzer
|
||||
|
||||
$qry.= ")
|
||||
AND
|
||||
(tbl_benutzerfunktion.datum_von is null OR tbl_benutzerfunktion.datum_von<=now())
|
||||
AND
|
||||
(tbl_benutzerfunktion.datum_bis is null OR tbl_benutzerfunktion.datum_bis>=now())
|
||||
AND
|
||||
tbl_benutzer.aktiv = 'true'";
|
||||
(tbl_benutzerfunktion.datum_von is null OR tbl_benutzerfunktion.datum_von<=now())";
|
||||
if ($include_ImLetztenMonatBeendete)
|
||||
{
|
||||
// hier kein check auf aktiv = 'true', da hier auch DV abgefragt werden, die im letzten Monat beendet wurden
|
||||
$qry .= " AND (tbl_benutzerfunktion.datum_bis is null OR tbl_benutzerfunktion.datum_bis >= (DATE_TRUNC('MONTH', NOW()) - INTERVAL '1 month'))";
|
||||
}
|
||||
else {
|
||||
|
||||
$qry .= " AND (tbl_benutzerfunktion.datum_bis is null OR tbl_benutzerfunktion.datum_bis >= now())";
|
||||
$qry .= " AND tbl_benutzer.aktiv = 'true'";
|
||||
}
|
||||
|
||||
if ($fixangestellte_only)
|
||||
$qry .= " AND tbl_mitarbeiter.fixangestellt";
|
||||
$qry .= ";";
|
||||
@@ -1617,28 +1818,6 @@ class mitarbeiter extends benutzer
|
||||
}
|
||||
}
|
||||
|
||||
/** Check if uid is a supervisor
|
||||
*
|
||||
* @param string $uid
|
||||
* @param string $employee_uid
|
||||
* @return boolean True if $uid is direct leader of $employee_uid.
|
||||
*/
|
||||
function check_isVorgesetzter($uid, $employee_uid)
|
||||
{
|
||||
$this->getUntergebene($uid);
|
||||
$untergebenen_arr = $this->untergebene;
|
||||
|
||||
// Check, if uid is an employee of supervisor
|
||||
if (!empty($untergebenen_arr) &&
|
||||
in_array($employee_uid, $untergebenen_arr))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
/** Check if uid is a supervisor on higher oe level
|
||||
*
|
||||
* @param string $uid
|
||||
@@ -1718,6 +1897,46 @@ class mitarbeiter extends benutzer
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Liefert alle Mitarbeiter*innen
|
||||
*
|
||||
* @param $filter
|
||||
* @return boolean
|
||||
*/
|
||||
public function getAll()
|
||||
{
|
||||
$qry = '
|
||||
SELECT
|
||||
ma.mitarbeiter_uid, p.nachname, p.vorname, b.alias
|
||||
FROM
|
||||
public.tbl_mitarbeiter ma
|
||||
JOIN public.tbl_benutzer b ON (mitarbeiter_uid=uid)
|
||||
JOIN public.tbl_person p USING(person_id)
|
||||
ORDER BY p.nachname
|
||||
';
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
while($row = $this->db_fetch_object())
|
||||
{
|
||||
$ma_obj = new mitarbeiter();
|
||||
|
||||
$ma_obj->nachname = $row->nachname;
|
||||
$ma_obj->vorname = $row->vorname;
|
||||
$ma_obj->mitarbeiter_uid = $row->mitarbeiter_uid;
|
||||
$ma_obj->alias = $row->alias;
|
||||
|
||||
$this->maData[] = $ma_obj;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden der Daten';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Generiert nächste freie Personalnummer anhand der sequence tbl_mitarbeiter_personalnummer_seq
|
||||
* @return string $personalnummer
|
||||
@@ -1753,7 +1972,7 @@ class mitarbeiter extends benutzer
|
||||
{
|
||||
if (is_null($uid))
|
||||
$uid = $this->uid;
|
||||
|
||||
|
||||
$qry = "
|
||||
SELECT o.oe_kurzbz AS standardkostenstelle, o.bezeichnung
|
||||
FROM public.tbl_benutzerfunktion bf
|
||||
@@ -1770,12 +1989,11 @@ class mitarbeiter extends benutzer
|
||||
$obj = new StdClass();
|
||||
$obj->oekurzbz = $row->standardkostenstelle;
|
||||
$obj->bezeichnung = $row->bezeichnung;
|
||||
|
||||
|
||||
$this->result []= $obj;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
|
||||
@@ -325,7 +325,7 @@ class notiz extends basis_db
|
||||
FROM
|
||||
public.tbl_notiz
|
||||
LEFT JOIN public.tbl_notizzuordnung USING(notiz_id)
|
||||
WHERE 1=1";
|
||||
WHERE 1=1 AND tbl_notiz.typ IS NULL ";
|
||||
|
||||
if(!is_null($erledigt))
|
||||
{
|
||||
@@ -523,7 +523,7 @@ class notiz extends basis_db
|
||||
FROM
|
||||
public.tbl_notiz
|
||||
LEFT JOIN public.tbl_notizzuordnung USING(notiz_id)
|
||||
WHERE 1=1";
|
||||
WHERE 1=1 AND tbl_notiz.typ IS NULL ";
|
||||
|
||||
if(!is_null($erledigt))
|
||||
{
|
||||
|
||||
@@ -650,11 +650,14 @@ class organisationseinheit extends basis_db
|
||||
LOWER(bezeichnung) LIKE LOWER(\'%'.$this->db_escape((implode(' ',$searchItem))).'%\')
|
||||
OR
|
||||
LOWER(organisationseinheittyp_kurzbz) LIKE LOWER(\'%'.$this->db_escape((implode(' ',$searchItem))).'%\')
|
||||
OR
|
||||
LOWER(organisationseinheittyp_kurzbz) LIKE LOWER(\'%'.$this->db_escape((implode(' ',$searchItem))).'%\')
|
||||
)';
|
||||
foreach($searchItem as $value)
|
||||
{
|
||||
$qry.=' OR (LOWER(oe_kurzbz)=LOWER('.$this->db_add_param($value).'))
|
||||
OR (LOWER(bezeichnung) LIKE LOWER(\'%'.$this->db_escape($value).'%\'))';
|
||||
OR (LOWER(bezeichnung) LIKE LOWER(\'%'.$this->db_escape($value).'%\'))
|
||||
OR (LOWER(organisationseinheittyp_kurzbz||bezeichnung) LIKE LOWER(\'%'.$this->db_escape($value).'%\'))';
|
||||
}
|
||||
$qry.= ' ORDER BY organisationseinheittyp_kurzbz, bezeichnung;';
|
||||
|
||||
@@ -974,6 +977,36 @@ class organisationseinheit extends basis_db
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public function getRoots()
|
||||
{
|
||||
$qry = "SELECT *
|
||||
FROM public.tbl_organisationseinheit
|
||||
WHERE oe_parent_kurzbz IS NULL AND aktiv
|
||||
ORDER BY organisationseinheittyp_kurzbz, bezeichnung";
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
while($row = $this->db_fetch_object())
|
||||
{
|
||||
$obj = new organisationseinheit();
|
||||
|
||||
$obj->oe_kurzbz = $row->oe_kurzbz;
|
||||
$obj->oe_parent_kurzbz = $row->oe_parent_kurzbz;
|
||||
$obj->bezeichnung = $row->bezeichnung;
|
||||
$obj->organisationseinheittyp_kurzbz = $row->organisationseinheittyp_kurzbz;
|
||||
$obj->aktiv = $this->db_parse_bool($row->aktiv);
|
||||
$obj->mailverteiler = $this->db_parse_bool($row->mailverteiler);
|
||||
$obj->lehre = $this->db_parse_bool($row->lehre);
|
||||
|
||||
$this->result[] = $obj;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden der Organisationseinheiten';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
||||
@@ -98,9 +98,9 @@ class person extends basis_db
|
||||
geschlecht, staatsbuergerschaft, geburtsnation, kurzbeschreibung, zugangscode, foto_sperre,
|
||||
matr_nr, bpk, wahlname";
|
||||
if ($hasUDF = $udf->personHasUDF())
|
||||
$qry .= ", udf_values ";
|
||||
$qry .= ", udf_values";
|
||||
|
||||
$qry .= "FROM public.tbl_person
|
||||
$qry .= " FROM public.tbl_person
|
||||
WHERE person_id = " . $this->db_add_param($personId, FHC_INTEGER);
|
||||
|
||||
if (!$this->db_query($qry))
|
||||
|
||||
@@ -121,7 +121,7 @@ class phrasen extends basis_db
|
||||
* Wobei x durch den Index+1 im Array zu ersetzten ist. zB "%2$s" um die Variable $value[1] auszugeben
|
||||
* naehere Infos siehe sprintf
|
||||
*
|
||||
* @param $key Key der Phrase
|
||||
* @param $key String Key der Phrase
|
||||
* @param $value Array mit Parametern fuer die Phrase
|
||||
*/
|
||||
public function t($key, $value=array())
|
||||
|
||||
@@ -705,6 +705,8 @@ class prestudent extends person
|
||||
$rolle->studienplan_bezeichnung = $row->studienplan_bezeichnung;
|
||||
$rolle->bestaetigtam = $row->bestaetigtam;
|
||||
$rolle->bestaetigtvon = $row->bestaetigtvon;
|
||||
$rolle->fgm = $row->fgm;
|
||||
$rolle->faktiv = $this->db_parse_bool($row->faktiv);
|
||||
$rolle->anmerkung_status = $row->anmerkung;
|
||||
$rolle->bewerbung_abgeschicktamum = $row->bewerbung_abgeschicktamum;
|
||||
$rolle->rt_stufe = $row->rt_stufe;
|
||||
@@ -870,6 +872,81 @@ class prestudent extends person
|
||||
AND tbl_reihungstest.studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz)."
|
||||
)";
|
||||
break;
|
||||
case "bewerberrtnichtangemeldet":
|
||||
$qry.=" AND a.rolle='Bewerber'
|
||||
AND NOT EXISTS (
|
||||
SELECT
|
||||
1
|
||||
FROM
|
||||
public.tbl_rt_person
|
||||
JOIN public.tbl_reihungstest ON (rt_id = reihungstest_id)
|
||||
WHERE
|
||||
person_id=a.person_id
|
||||
AND studienplan_id IN (
|
||||
SELECT studienplan_id FROM lehre.tbl_studienplan
|
||||
JOIN lehre.tbl_studienordnung USING(studienordnung_id)
|
||||
WHERE tbl_studienordnung.studiengang_kz=a.studiengang_kz
|
||||
)
|
||||
AND tbl_reihungstest.studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz)."
|
||||
)";
|
||||
break;
|
||||
case "bewerberrtangemeldet":
|
||||
$qry.=" AND a.rolle='Bewerber'
|
||||
AND EXISTS (
|
||||
SELECT
|
||||
1
|
||||
FROM
|
||||
public.tbl_rt_person
|
||||
JOIN public.tbl_reihungstest ON (rt_id = reihungstest_id)
|
||||
WHERE
|
||||
person_id=a.person_id
|
||||
AND studienplan_id IN (
|
||||
SELECT studienplan_id FROM lehre.tbl_studienplan
|
||||
JOIN lehre.tbl_studienordnung USING(studienordnung_id)
|
||||
WHERE tbl_studienordnung.studiengang_kz=a.studiengang_kz
|
||||
)
|
||||
AND tbl_reihungstest.studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz)."
|
||||
)";
|
||||
break;
|
||||
case "bewerberrtangemeldetteilgenommen":
|
||||
$qry.=" AND a.rolle='Bewerber'
|
||||
AND EXISTS (
|
||||
SELECT
|
||||
1
|
||||
FROM
|
||||
public.tbl_rt_person
|
||||
JOIN public.tbl_reihungstest ON (rt_id = reihungstest_id)
|
||||
WHERE
|
||||
person_id=a.person_id
|
||||
AND studienplan_id IN (
|
||||
SELECT studienplan_id FROM lehre.tbl_studienplan
|
||||
JOIN lehre.tbl_studienordnung USING(studienordnung_id)
|
||||
WHERE tbl_studienordnung.studiengang_kz=a.studiengang_kz
|
||||
)
|
||||
AND tbl_reihungstest.studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz)."
|
||||
)
|
||||
AND reihungstestangetreten = true";
|
||||
break;
|
||||
case "bewerberrtangemeldetnichtteilgenommen":
|
||||
$qry.=" AND a.rolle='Bewerber'
|
||||
AND EXISTS (
|
||||
SELECT
|
||||
1
|
||||
FROM
|
||||
public.tbl_rt_person
|
||||
JOIN public.tbl_reihungstest ON (rt_id = reihungstest_id)
|
||||
WHERE
|
||||
person_id=a.person_id
|
||||
AND studienplan_id IN (
|
||||
SELECT studienplan_id FROM lehre.tbl_studienplan
|
||||
JOIN lehre.tbl_studienordnung USING(studienordnung_id)
|
||||
WHERE tbl_studienordnung.studiengang_kz=a.studiengang_kz
|
||||
)
|
||||
AND tbl_reihungstest.studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz)."
|
||||
)
|
||||
AND reihungstestangetreten = false
|
||||
";
|
||||
break;
|
||||
case "zgv":
|
||||
$stg_obj = new studiengang();
|
||||
$stg_obj->load($studiengang_kz);
|
||||
@@ -976,7 +1053,6 @@ class prestudent extends person
|
||||
//$ps->foto = $row->foto;
|
||||
$ps->anmerkungen = $row->anmerkungen;
|
||||
$ps->homepage = $row->homepage;
|
||||
$ps->svnr = $row->svnr;
|
||||
$ps->ersatzkennzeichen = $row->ersatzkennzeichen;
|
||||
$ps->familienstand = $row->familienstand;
|
||||
$ps->geschlecht = $row->geschlecht;
|
||||
|
||||
@@ -382,7 +382,7 @@ class projekt extends basis_db
|
||||
JOIN fue.tbl_projekt_ressource USING(ressource_id)
|
||||
JOIN fue.tbl_projekt USING(projekt_kurzbz)
|
||||
WHERE (beginn<=now() or beginn is null)
|
||||
AND (ende + interval '1 month 1 day' >=now() OR ende is null)
|
||||
AND (ende + interval '2 month 1 day' >=now() OR ende is null)
|
||||
AND
|
||||
(
|
||||
mitarbeiter_uid=" . $this->db_add_param($mitarbeiter_uid) . " OR
|
||||
@@ -413,6 +413,8 @@ class projekt extends basis_db
|
||||
AND mitarbeiter_uid=" . $this->db_add_param($mitarbeiter_uid);
|
||||
}
|
||||
|
||||
$qry .= ' ORDER BY titel';
|
||||
|
||||
if ($result = $this->db_query($qry))
|
||||
{
|
||||
while ($row = $this->db_fetch_object($result))
|
||||
|
||||
+169
-86
@@ -16,8 +16,8 @@
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
|
||||
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
|
||||
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
|
||||
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
|
||||
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
|
||||
*/
|
||||
/**
|
||||
* Klasse projektarbeit
|
||||
@@ -27,7 +27,7 @@ require_once(dirname(__FILE__).'/basis_db.class.php');
|
||||
|
||||
class projektarbeit extends basis_db
|
||||
{
|
||||
public $new; // boolean
|
||||
public $new; // boolean
|
||||
public $result = array(); // adresse Objekt
|
||||
|
||||
//Tabellenspalten
|
||||
@@ -59,6 +59,37 @@ class projektarbeit extends basis_db
|
||||
|
||||
public $abgabedatum;
|
||||
|
||||
// Welche Version der Projektarbeit wird ab welchem Semester verwendet
|
||||
private $_versions = array(
|
||||
'Diplom' => array(
|
||||
'SS2025' => 3,
|
||||
'SS2023' => 2,
|
||||
'SS2022' => 1
|
||||
),
|
||||
'Others' => array(
|
||||
'SS2025' => 2,
|
||||
'SS2022' => 1
|
||||
)
|
||||
);
|
||||
|
||||
// welche Vorlagen werden ab welcher Projekarbeitsversion verwendet (0 - erste "default" Vorlage)
|
||||
private $_projektarbeitVorlageMappings = array(
|
||||
'Begutachter' => array(
|
||||
2 => 'ProjektBeurteilungBAProzent',
|
||||
0 => 'ProjektBeurteilungBA'
|
||||
),
|
||||
'Senatsvorsitz' => array(
|
||||
2 => 'ProjektBeurteilungBAProzent',
|
||||
0 => 'ProjektBeurteilungBA'
|
||||
),
|
||||
'Erstbegutachter' => array(
|
||||
3 => 'ProjektBeurteilungMAProzent',
|
||||
0 => 'ProjektBeurteilungMAErst'
|
||||
),
|
||||
'Zweitbegutachter' => array(
|
||||
0 => 'ProjektBeurteilungMAZweit'
|
||||
)
|
||||
);
|
||||
|
||||
/**
|
||||
* Konstruktor
|
||||
@@ -233,25 +264,25 @@ class projektarbeit extends basis_db
|
||||
$qry='BEGIN; INSERT INTO lehre.tbl_projektarbeit (projekttyp_kurzbz, titel, lehreinheit_id, student_uid, firma_id, note, punkte,
|
||||
beginn, ende, faktor, freigegeben, gesperrtbis, stundensatz, gesamtstunden, themenbereich, anmerkung,
|
||||
insertamum, insertvon, updateamum, updatevon, titel_english, final) VALUES('.
|
||||
$this->db_add_param($this->projekttyp_kurzbz).', '.
|
||||
$this->db_add_param($this->titel).', '.
|
||||
$this->db_add_param($this->lehreinheit_id, FHC_INTEGER).', '.
|
||||
$this->db_add_param($this->student_uid).', '.
|
||||
$this->db_add_param($this->firma_id, FHC_INTEGER).', '.
|
||||
$this->db_add_param($this->note).', '.
|
||||
$this->db_add_param($this->punkte).', '.
|
||||
$this->db_add_param($this->beginn).', '.
|
||||
$this->db_add_param($this->ende).', '.
|
||||
$this->db_add_param($this->faktor).', '.
|
||||
$this->db_add_param($this->freigegeben, FHC_BOOLEAN).', '.
|
||||
$this->db_add_param($this->gesperrtbis).', '.
|
||||
$this->db_add_param($this->stundensatz).', '.
|
||||
$this->db_add_param($this->gesamtstunden).', '.
|
||||
$this->db_add_param($this->themenbereich).', '.
|
||||
$this->db_add_param($this->anmerkung).', now(), '.
|
||||
$this->db_add_param($this->insertvon).', now(), '.
|
||||
$this->db_add_param($this->updatevon).','.
|
||||
$this->db_add_param($this->titel_english).','.
|
||||
$this->db_add_param($this->projekttyp_kurzbz).', '.
|
||||
$this->db_add_param($this->titel).', '.
|
||||
$this->db_add_param($this->lehreinheit_id, FHC_INTEGER).', '.
|
||||
$this->db_add_param($this->student_uid).', '.
|
||||
$this->db_add_param($this->firma_id, FHC_INTEGER).', '.
|
||||
$this->db_add_param($this->note).', '.
|
||||
$this->db_add_param($this->punkte).', '.
|
||||
$this->db_add_param($this->beginn).', '.
|
||||
$this->db_add_param($this->ende).', '.
|
||||
$this->db_add_param($this->faktor).', '.
|
||||
$this->db_add_param($this->freigegeben, FHC_BOOLEAN).', '.
|
||||
$this->db_add_param($this->gesperrtbis).', '.
|
||||
$this->db_add_param($this->stundensatz).', '.
|
||||
$this->db_add_param($this->gesamtstunden).', '.
|
||||
$this->db_add_param($this->themenbereich).', '.
|
||||
$this->db_add_param($this->anmerkung).', now(), '.
|
||||
$this->db_add_param($this->insertvon).', now(), '.
|
||||
$this->db_add_param($this->updatevon).','.
|
||||
$this->db_add_param($this->titel_english).','.
|
||||
$this->db_add_param($this->final, FHC_BOOLEAN).');';
|
||||
}
|
||||
else
|
||||
@@ -471,92 +502,144 @@ class projektarbeit extends basis_db
|
||||
}
|
||||
|
||||
/**
|
||||
* Prüft ob Projektarbeit aktuell ist (ab bestimmtem Semester).
|
||||
* Masterarbeiten sind ab der Änderung zur Gewichtung der Punkte aktuell,
|
||||
* Bachelorarbeiten schon ab dem Umstieg auf das Online Beurteilungsformular.
|
||||
* Prüft ob Projektarbeit aktuell ist (also zurzeit online bewertet wird).
|
||||
* @param $projektarbeit_id
|
||||
* @return int -1 wenn Fehler, 0 wenn nicht aktuell, 1 wenn aktuell
|
||||
* @return boolean
|
||||
*/
|
||||
public function projektarbeitIsCurrent($projektarbeit_id)
|
||||
{
|
||||
$version = $this->getVersion($projektarbeit_id);
|
||||
// paarbeit sollte nur ab einem Studiensemester online bewertet werden
|
||||
$qry="SELECT 1
|
||||
FROM lehre.tbl_projektarbeit
|
||||
JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
|
||||
JOIN public.tbl_studiensemester USING(studiensemester_kurzbz)
|
||||
WHERE projektarbeit_id=".$this->db_add_param($projektarbeit_id, FHC_INTEGER)."
|
||||
AND
|
||||
(
|
||||
(
|
||||
projekttyp_kurzbz = 'Diplom'
|
||||
AND tbl_studiensemester.start::date >= (
|
||||
SELECT start
|
||||
FROM public.tbl_studiensemester
|
||||
WHERE studiensemester_kurzbz = 'SS2023'
|
||||
)::date
|
||||
)
|
||||
OR
|
||||
(
|
||||
projekttyp_kurzbz <> 'Diplom'
|
||||
AND tbl_studiensemester.start::date >= (
|
||||
SELECT start
|
||||
FROM public.tbl_studiensemester
|
||||
WHERE studiensemester_kurzbz = 'SS2022'
|
||||
)::date
|
||||
)
|
||||
)
|
||||
LIMIT 1";
|
||||
|
||||
$result_sem=$this->db_query($qry);
|
||||
|
||||
if (!$result_sem)
|
||||
{
|
||||
$this->errormsg = "Fehler beim Ermitteln der Projektarbeit Aktualität";
|
||||
return -1;
|
||||
}
|
||||
|
||||
$num_rows = $this->db_num_rows($result_sem);
|
||||
|
||||
if ($num_rows < 0)
|
||||
{
|
||||
$this->errormsg = "Fehler beim Ermitteln der Anzahl der aktuellen Projektarbeiten";
|
||||
}
|
||||
|
||||
return $num_rows;
|
||||
return $version === null ? null : $version->isCurrent;
|
||||
}
|
||||
|
||||
/**
|
||||
* Prüft ob Projektarbeit aktuell ist (ab bestimmtem Semester), vor der Änderung zur Gewichtung der Punkte.
|
||||
* Holt sich Version der Projektarbeit.
|
||||
* Liefert auch mit, ob die Version die aktuellste ist.
|
||||
* z.B.: Masterarbeiten waren ab der Änderung zur Gewichtung der Punkte aktuell,
|
||||
* Bachelorarbeiten waren ab dem Umstieg auf das Online Beurteilungsformular aktuell.
|
||||
* @param $projektarbeit_id
|
||||
* @return int -1 wenn Fehler, 0 wenn nicht aktuell, 1 wenn aktuell
|
||||
* @return objekt mit Versionsinfo, null im Fehlerfall
|
||||
*/
|
||||
public function projektarbeitIsCurrentBeforeWeightening($projektarbeit_id)
|
||||
public function getVersion($projektarbeit_id)
|
||||
{
|
||||
// paarbeit sollte nur ab einem Studiensemester online bewertet werden
|
||||
$qry="SELECT 1
|
||||
FROM lehre.tbl_projektarbeit
|
||||
$qry="
|
||||
SELECT
|
||||
CASE
|
||||
WHEN semesters_diplom.studiensemester_kurzbz IS NOT NULL
|
||||
THEN semesters_diplom.studiensemester_kurzbz
|
||||
ELSE semesters.studiensemester_kurzbz
|
||||
END AS version_studiensemester_kurzbz,
|
||||
pa.projekttyp_kurzbz
|
||||
FROM
|
||||
lehre.tbl_projektarbeit pa
|
||||
JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
|
||||
JOIN public.tbl_studiensemester USING(studiensemester_kurzbz)
|
||||
WHERE projektarbeit_id=".$this->db_add_param($projektarbeit_id, FHC_INTEGER)."
|
||||
AND tbl_studiensemester.start::date >= (SELECT start FROM public.tbl_studiensemester WHERE studiensemester_kurzbz = 'SS2022')::date
|
||||
LIMIT 1";
|
||||
JOIN public.tbl_studiensemester sem USING(studiensemester_kurzbz)
|
||||
LEFT JOIN (
|
||||
SELECT
|
||||
start, studiensemester_kurzbz
|
||||
FROM
|
||||
public.tbl_studiensemester
|
||||
WHERE
|
||||
studiensemester_kurzbz IN (".$this->db_implode4SQL(array_keys($this->_versions['Others'])).")
|
||||
) semesters ON sem.start >= semesters.start AND pa.projekttyp_kurzbz <> 'Diplom'
|
||||
LEFT JOIN (
|
||||
SELECT
|
||||
start, studiensemester_kurzbz
|
||||
FROM
|
||||
public.tbl_studiensemester
|
||||
WHERE
|
||||
studiensemester_kurzbz IN (".$this->db_implode4SQL(array_keys($this->_versions['Diplom'])).")
|
||||
) semesters_diplom ON sem.start >= semesters_diplom.start AND pa.projekttyp_kurzbz = 'Diplom'
|
||||
WHERE
|
||||
projektarbeit_id=".$this->db_add_param($projektarbeit_id, FHC_INTEGER)."
|
||||
ORDER BY
|
||||
semesters.start DESC, semesters_diplom.start DESC
|
||||
LIMIT 1";
|
||||
|
||||
$result_sem=$this->db_query($qry);
|
||||
$errormsg = "Fehler beim Ermitteln der Projektarbeit Version";
|
||||
|
||||
if (!$result_sem)
|
||||
if ($this->db_query($qry))
|
||||
{
|
||||
$this->errormsg = "Fehler beim Ermitteln der Projektarbeit Aktualität";
|
||||
return -1;
|
||||
if ($row = $this->db_fetch_object())
|
||||
{
|
||||
// known project types
|
||||
if (isset($this->_versions[$row->projekttyp_kurzbz][$row->version_studiensemester_kurzbz]))
|
||||
{
|
||||
$row->versionNumber = $this->_versions[$row->projekttyp_kurzbz][$row->version_studiensemester_kurzbz];
|
||||
$row->isCurrent =
|
||||
$this->_versions[$row->projekttyp_kurzbz][$row->version_studiensemester_kurzbz]
|
||||
== max($this->_versions[$row->projekttyp_kurzbz]);
|
||||
|
||||
}
|
||||
elseif (isset($this->_versions['Others'][$row->version_studiensemester_kurzbz]))
|
||||
{
|
||||
$row->versionNumber = $this->_versions['Others'][$row->version_studiensemester_kurzbz];
|
||||
$row->isCurrent =
|
||||
$this->_versions['Others'][$row->version_studiensemester_kurzbz]
|
||||
== max($this->_versions['Others']);
|
||||
}
|
||||
else
|
||||
{
|
||||
$row->isCurrent = false;
|
||||
$row->versionNumber = 0;
|
||||
}
|
||||
return $row;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = $errormsg;
|
||||
return null;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = $errormsg;
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Holt Version einer Projektarbeit für eine Betreuerart.
|
||||
* @param $projektarbeit_id
|
||||
* @param $betreuerart_kurzbz
|
||||
* @return string Vorlagenname
|
||||
*/
|
||||
public function getVorlage($projektarbeit_id, $betreuerart_kurzbz)
|
||||
{
|
||||
$version = $this->getVersion($projektarbeit_id);
|
||||
|
||||
if ($version == null) return null;
|
||||
|
||||
$key = 0;
|
||||
if (isset($this->_projektarbeitVorlageMappings[$betreuerart_kurzbz]))
|
||||
{
|
||||
foreach ($this->_projektarbeitVorlageMappings[$betreuerart_kurzbz] as $versionNumber => $vorlage)
|
||||
{
|
||||
if ($versionNumber <= $version->versionNumber && $versionNumber > $key) $key = $versionNumber;
|
||||
}
|
||||
}
|
||||
|
||||
$num_rows = $this->db_num_rows($result_sem);
|
||||
return
|
||||
isset($this->_projektarbeitVorlageMappings[$betreuerart_kurzbz][$key])
|
||||
? $this->_projektarbeitVorlageMappings[$betreuerart_kurzbz][$key]
|
||||
: '';
|
||||
}
|
||||
|
||||
if ($num_rows < 0)
|
||||
/**
|
||||
* Holt alle möglichen, jemals verwendeten Projektarbeits-Vorlagen
|
||||
* @return array mit Vorlagennamen
|
||||
*/
|
||||
public function getAllVorlagen()
|
||||
{
|
||||
$vorlagen = array();
|
||||
foreach ($this->_projektarbeitVorlageMappings as $mappings)
|
||||
{
|
||||
$this->errormsg = "Fehler beim Ermitteln der Anzahl der aktuellen Projektarbeiten";
|
||||
$vorlagen = array_unique(array_merge($vorlagen, $mappings));
|
||||
}
|
||||
|
||||
return $num_rows;
|
||||
return $vorlagen;
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
||||
@@ -190,7 +190,7 @@ class projektphase extends basis_db
|
||||
if(!is_null($foreignkey))
|
||||
$qry .= " and projektphase_fk is NULL";
|
||||
|
||||
$qry .= " ORDER BY start, projektphase_fk DESC;";
|
||||
$qry .= " ORDER BY tbl_projektphase.start, tbl_projektphase.bezeichnung, projektphase_fk DESC;";
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
@@ -794,7 +794,8 @@ class projektphase extends basis_db
|
||||
)
|
||||
)
|
||||
AND mitarbeiter_uid = ".$this->db_add_param($mitarbeiter_uid)."
|
||||
AND tbl_projekt.projekt_kurzbz = ".$this->db_add_param($projekt_kurzbz);
|
||||
AND tbl_projekt.projekt_kurzbz = ".$this->db_add_param($projekt_kurzbz). "
|
||||
ORDER BY tbl_projektphase.start, tbl_projektphase.bezeichnung";
|
||||
|
||||
if($result = $this->db_query($qry))
|
||||
{
|
||||
|
||||
@@ -108,12 +108,13 @@ class pruefling extends basis_db
|
||||
|
||||
if($this->new) //Wenn new true ist dann ein INSERT absetzen ansonsten ein UPDATE
|
||||
{
|
||||
$qry = 'BEGIN;INSERT INTO testtool.tbl_pruefling (studiengang_kz, idnachweis, registriert, prestudent_id, semester) VALUES('.
|
||||
$qry = 'BEGIN;INSERT INTO testtool.tbl_pruefling (studiengang_kz, idnachweis, registriert, prestudent_id, semester, gesperrt) VALUES('.
|
||||
$this->db_add_param($this->studiengang_kz).",".
|
||||
$this->db_add_param($this->idnachweis).",".
|
||||
$this->db_add_param($this->registriert).",".
|
||||
$this->db_add_param($this->prestudent_id).",".
|
||||
$this->db_add_param($this->semester).");";
|
||||
$this->db_add_param($this->semester).",".
|
||||
$this->db_add_param($this->gesperrt, FHC_BOOLEAN).");";
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -122,7 +123,8 @@ class pruefling extends basis_db
|
||||
' idnachweis='.$this->db_add_param($this->idnachweis).','.
|
||||
' registriert='.$this->db_add_param($this->registriert).','.
|
||||
' semester='.$this->db_add_param($this->semester).','.
|
||||
' prestudent_id='.$this->db_add_param($this->prestudent_id, FHC_INTEGER).
|
||||
' prestudent_id='.$this->db_add_param($this->prestudent_id, FHC_INTEGER).','.
|
||||
' gesperrt='.$this->db_add_param($this->gesperrt, FHC_BOOLEAN).
|
||||
" WHERE pruefling_id=".$this->db_add_param($this->pruefling_id, FHC_INTEGER, false).";";
|
||||
}
|
||||
|
||||
@@ -557,5 +559,69 @@ class pruefling extends basis_db
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public function isGesperrt($pruefling_id = null, $prestudent_id = null)
|
||||
{
|
||||
if (is_null($pruefling_id) && is_null($prestudent_id))
|
||||
{
|
||||
$this->errormsg = 'Falsche Parameterübergabe';
|
||||
return false;
|
||||
}
|
||||
|
||||
$qry = "SELECT spruefling.gesperrt
|
||||
FROM testtool.tbl_pruefling
|
||||
RIGHT JOIN public.tbl_prestudent USING(prestudent_id)
|
||||
JOIN public.tbl_person USING (person_id)
|
||||
JOIN public.tbl_prestudent pss ON pss.person_id = tbl_person.person_id
|
||||
JOIN testtool.tbl_pruefling spruefling ON pss.prestudent_id = spruefling.prestudent_id
|
||||
WHERE spruefling.gesperrt";
|
||||
|
||||
if (!is_null($pruefling_id))
|
||||
$qry .= " AND tbl_pruefling.pruefling_id = ".$this->db_add_param($pruefling_id, FHC_INTEGER);
|
||||
|
||||
if (!is_null($prestudent_id))
|
||||
$qry .= " AND tbl_prestudent.prestudent_id = ".$this->db_add_param($prestudent_id, FHC_INTEGER);
|
||||
|
||||
$qry .= " LIMIT 1";
|
||||
|
||||
if($result = $this->db_query($qry))
|
||||
{
|
||||
if ($this->db_num_rows($result) == 0)
|
||||
return false;
|
||||
else
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler bei einer Abfrage';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
public function personAlreadyInRT($person_id, $reihungstest_id, $prestudent_id)
|
||||
{
|
||||
$qry = "SELECT tbl_prestudent.prestudent_id
|
||||
FROM public.tbl_rt_person
|
||||
JOIN public.tbl_prestudent ON tbl_prestudent.person_id = tbl_rt_person.person_id
|
||||
JOIN public.tbl_prestudentstatus ON tbl_prestudent.prestudent_id = tbl_prestudentstatus.prestudent_id AND status_kurzbz = 'Bewerber'
|
||||
AND tbl_prestudentstatus.studienplan_id = tbl_rt_person.studienplan_id
|
||||
WHERE tbl_rt_person.person_id = " . $this->db_add_param($person_id) . "
|
||||
AND tbl_rt_person.rt_id = " . $this->db_add_param($reihungstest_id) . "
|
||||
AND tbl_prestudent.prestudent_id != " . $this->db_add_param($prestudent_id) . "
|
||||
AND get_rolle_prestudent(tbl_prestudent.prestudent_id, NULL) = 'Bewerber'
|
||||
LIMIT 1";
|
||||
|
||||
if($result = $this->db_query($qry))
|
||||
{
|
||||
if ($this->db_num_rows($result) == 0)
|
||||
return false;
|
||||
else
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler bei einer Abfrage';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
||||
@@ -464,6 +464,7 @@ class pruefungCis extends basis_db
|
||||
$obj->anmeldung_von= $row->anmeldung_von;
|
||||
$obj->anmeldung_bis = $row->anmeldung_bis;
|
||||
$obj->ort_kurzbz = $row->ort_kurzbz;
|
||||
$obj->anderer_raum = $row->anderer_raum;
|
||||
$obj->sammelklausur = $row->sammelklausur;
|
||||
array_push($this->termine, $obj);
|
||||
}
|
||||
@@ -646,6 +647,37 @@ class pruefungCis extends basis_db
|
||||
return false;
|
||||
}
|
||||
|
||||
public function getPruefungByStudiensemester($studiensemester_kurzbz)
|
||||
{
|
||||
if(empty($studiensemester_kurzbz))
|
||||
{
|
||||
$this->errormsg = "Kein Studiensemester übergeben.</br>";
|
||||
return false;
|
||||
}
|
||||
|
||||
$qry = 'SELECT *
|
||||
FROM campus.tbl_lehrveranstaltung_pruefung
|
||||
JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id)
|
||||
JOIN campus.tbl_pruefung USING (pruefung_id)
|
||||
WHERE tbl_pruefung.studiensemester_kurzbz = ' . $this->db_add_param($studiensemester_kurzbz);
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
while($row = $this->db_fetch_object())
|
||||
{
|
||||
$obj = new stdClass();
|
||||
$obj->lehrveranstaltung_pruefung_id = $row->lehrveranstaltung_pruefung_id;
|
||||
$obj->lehrveranstaltung_id = $row->lehrveranstaltung_id;
|
||||
$obj->pruefung_id = $row->pruefung_id;
|
||||
$obj->storniert = $row->storniert;
|
||||
$obj->bezeichnung = $row->bezeichnung;
|
||||
array_push($this->lehrveranstaltungen, $obj);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Lädt alle Prüfung-Lehrveranstaltung Kombinationen
|
||||
* @return boolean true, wenn ok; false, im Fehlerfall
|
||||
|
||||
@@ -39,6 +39,7 @@ class pruefungsanmeldung extends basis_db {
|
||||
public $statusupdatevon; //varchar(32)
|
||||
public $statusupdateamum; //timestamp
|
||||
public $anrechnung_id; //integer
|
||||
public $ects; //integer
|
||||
public $pruefungstyp_kurzbz; //varchar(32)
|
||||
public $insertamum; // timestamp
|
||||
|
||||
@@ -94,7 +95,7 @@ class pruefungsanmeldung extends basis_db {
|
||||
|
||||
if($new)
|
||||
{
|
||||
$qry = 'INSERT INTO campus.tbl_pruefungsanmeldung (uid, pruefungstermin_id, lehrveranstaltung_id, status_kurzbz, wuensche, reihung, kommentar, anrechnung_id, pruefungstyp_kurzbz) VALUES ('
|
||||
$qry = 'INSERT INTO campus.tbl_pruefungsanmeldung (uid, pruefungstermin_id, lehrveranstaltung_id, status_kurzbz, wuensche, reihung, kommentar, anrechnung_id, pruefungstyp_kurzbz, ects) VALUES ('
|
||||
. $this->db_add_param($this->uid).', '
|
||||
. $this->db_add_param($this->pruefungstermin_id).', '
|
||||
. $this->db_add_param($this->lehrveranstaltung_id).', '
|
||||
@@ -103,7 +104,8 @@ class pruefungsanmeldung extends basis_db {
|
||||
. $this->db_add_param($this->reihung).', '
|
||||
. $this->db_add_param($this->kommentar).', '
|
||||
. $this->db_add_param($this->anrechnung_id).', '
|
||||
. $this->db_add_param($this->pruefungstyp_kurzbz).');';
|
||||
. $this->db_add_param($this->pruefungstyp_kurzbz).', '
|
||||
. $this->db_add_param($this->ects).');';
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -116,7 +118,8 @@ class pruefungsanmeldung extends basis_db {
|
||||
. 'reihung='.$this->db_add_param($this->reihung).', '
|
||||
. 'kommentar='.$this->db_add_param($this->kommentar).', '
|
||||
. 'anrechnung_id='.$this->db_add_param($this->anrechnung_id).', '
|
||||
. 'pruefungstyp_kurzbz='.$this->db_add_param($this->pruefungstyp_kurzbz)
|
||||
. 'pruefungstyp_kurzbz='.$this->db_add_param($this->pruefungstyp_kurzbz).', '
|
||||
. 'ects='.$this->db_add_param($this->ects)
|
||||
. ' WHERE pruefungsanmeldung_id='.$this->db_add_param($this->pruefungsanmeldung_id).';';
|
||||
}
|
||||
|
||||
@@ -167,6 +170,7 @@ class pruefungsanmeldung extends basis_db {
|
||||
$this->statusupdatevon = $row->statusupdatevon;
|
||||
$this->anrechnung_id = $row->anrechnung_id;
|
||||
$this->pruefungstyp_kurzbz = $row->pruefungstyp_kurzbz;
|
||||
$this->ects = $row->ects;
|
||||
$this->insertamum = $row->insertamum;
|
||||
}
|
||||
return true;
|
||||
@@ -221,6 +225,7 @@ class pruefungsanmeldung extends basis_db {
|
||||
$anmeldung->statusupdatevon = $row->statusupdatevon;
|
||||
$anmeldung->anrechnung_id = $row->anrechnung_id;
|
||||
$anmeldung->pruefungstyp_kurzbz = $row->pruefungstyp_kurzbz;
|
||||
$anmeldung->ects = $row->ects;
|
||||
array_push($anmeldungen, $anmeldung);
|
||||
}
|
||||
return $anmeldungen;
|
||||
@@ -280,6 +285,7 @@ class pruefungsanmeldung extends basis_db {
|
||||
$anmeldung->statusupdatevon = $row->statusupdatevon;
|
||||
$anmeldung->anrechnung_id = $row->anrechnung_id;
|
||||
$anmeldung->pruefungstyp_kurzbz = $row->pruefungstyp_kurzbz;
|
||||
$anmeldung->ects = $row->ects;
|
||||
$anmeldung->datum_anmeldung = $row->datum_anmeldung;
|
||||
array_push($anmeldungen, $anmeldung);
|
||||
}
|
||||
|
||||
@@ -37,6 +37,7 @@ class pruefungstermin extends basis_db{
|
||||
public $anmeldung_von; //date
|
||||
public $anmeldung_bis; //date
|
||||
public $ort_kurzbz; //varchar(16)
|
||||
public $anderer_raum; //text
|
||||
public $sammelklausur; //boolean
|
||||
|
||||
/**
|
||||
@@ -93,6 +94,7 @@ class pruefungstermin extends basis_db{
|
||||
$this->anmeldung_von= $row->anmeldung_von;
|
||||
$this->anmeldung_bis = $row->anmeldung_bis;
|
||||
$this->ort_kurzbz = $row->ort_kurzbz;
|
||||
$this->anderer_raum = $row->anderer_raum;
|
||||
$this->sammelklausur = $row->sammelklausur;
|
||||
}
|
||||
return true;
|
||||
@@ -179,7 +181,8 @@ class pruefungstermin extends basis_db{
|
||||
. 'teilnehmer_min='.$this->db_add_param($this->teilnehmer_min).', '
|
||||
. 'anmeldung_von='.$this->db_add_param($this->anmeldung_von).', '
|
||||
. 'anmeldung_bis='.$this->db_add_param($this->anmeldung_bis).', '
|
||||
. 'ort_kurzbz='.$this->db_add_param($this->ort_kurzbz).' '
|
||||
. 'ort_kurzbz='.$this->db_add_param($this->ort_kurzbz).', '
|
||||
. 'anderer_raum='.$this->db_add_param($this->anderer_raum).' '
|
||||
. 'WHERE pruefungstermin_id='.$this->db_add_param($this->pruefungstermin_id).';';
|
||||
}
|
||||
|
||||
@@ -228,6 +231,7 @@ class pruefungstermin extends basis_db{
|
||||
$obj->anmeldung_von= $row->anmeldung_von;
|
||||
$obj->anmeldung_bis = $row->anmeldung_bis;
|
||||
$obj->ort_kurzbz = $row->ort_kurzbz;
|
||||
$obj->anderer_raum = $row->anderer_raum;
|
||||
$obj->sammelklausur = $row->sammelklausur;
|
||||
array_push($this->result, $obj);
|
||||
}
|
||||
@@ -240,4 +244,20 @@ class pruefungstermin extends basis_db{
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public function delete($pruefungstermin_id)
|
||||
{
|
||||
$qry = "DELETE FROM campus.tbl_pruefungstermin WHERE pruefungstermin_id=".$this->db_add_param($pruefungstermin_id).";";
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg='Fehler beim Löschen des Eintrages';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -33,6 +33,7 @@ class raumtyp extends basis_db
|
||||
//Tabellenspalten
|
||||
public $beschreibung; // string
|
||||
public $raumtyp_kurzbz; // string
|
||||
public $aktiv; //boolean
|
||||
|
||||
|
||||
/**
|
||||
@@ -42,7 +43,7 @@ class raumtyp extends basis_db
|
||||
public function __construct($raumtyp_kurzbz=null)
|
||||
{
|
||||
parent::__construct();
|
||||
|
||||
|
||||
if($raumtyp_kurzbz != null)
|
||||
$this->load($raumtyp_kurzbz);
|
||||
}
|
||||
@@ -51,10 +52,14 @@ class raumtyp extends basis_db
|
||||
* Laedt alle verfuegbaren Raumtypen
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
public function getAll()
|
||||
public function getAll($aktiv = null)
|
||||
{
|
||||
$qry = 'SELECT * FROM public.tbl_raumtyp ORDER BY raumtyp_kurzbz;';
|
||||
$qry = 'SELECT * FROM public.tbl_raumtyp';
|
||||
|
||||
if (!is_null($aktiv))
|
||||
$qry .= ' WHERE aktiv = '.$this->db_add_param($aktiv, FHC_BOOLEAN);
|
||||
|
||||
$qry .= ' ORDER BY raumtyp_kurzbz';
|
||||
if(!$this->db_query($qry))
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden der Datensaetze';
|
||||
@@ -67,7 +72,7 @@ class raumtyp extends basis_db
|
||||
|
||||
$raumtyp_obj->beschreibung = $row->beschreibung;
|
||||
$raumtyp_obj->raumtyp_kurzbz = $row->raumtyp_kurzbz;
|
||||
|
||||
$raumtyp_obj->aktiv = $this->db_parse_bool($row->aktiv);
|
||||
|
||||
$this->result[] = $raumtyp_obj;
|
||||
}
|
||||
@@ -99,7 +104,7 @@ class raumtyp extends basis_db
|
||||
{
|
||||
$this->beschreibung = $row->beschreibung;
|
||||
$this->raumtyp_kurzbz = $row->kurzbz;
|
||||
|
||||
$this->aktiv = $this->db_parse_bool($row->aktiv);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -135,7 +140,7 @@ class raumtyp extends basis_db
|
||||
$this->errormsg = '';
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Speichert den aktuellen Datensatz
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
@@ -154,6 +159,7 @@ class raumtyp extends basis_db
|
||||
$this->errormsg = 'Keine gültige ID';
|
||||
return false;
|
||||
}
|
||||
|
||||
//Neuen Datensatz anlegen
|
||||
$qry = 'INSERT INTO public.tbl_raumtyp (beschreibung, raumtyp_kurzbz) VALUES ('.
|
||||
$this->db_add_param($this->beschreibung).', '.
|
||||
|
||||
@@ -63,6 +63,7 @@ class reihungstest extends basis_db
|
||||
|
||||
public $zugangs_ueberpruefung = false; //boolean
|
||||
public $zugangscode; //smallint
|
||||
public $externe_ueberwachung = false; //boolean
|
||||
|
||||
|
||||
/**
|
||||
@@ -119,6 +120,7 @@ class reihungstest extends basis_db
|
||||
$this->aufnahmegruppe_kurzbz = $row->aufnahmegruppe_kurzbz;
|
||||
$this->zugangs_ueberpruefung = $this->db_parse_bool($row->zugangs_ueberpruefung);
|
||||
$this->zugangscode = $row->zugangscode;
|
||||
$this->externe_ueberwachung = $this->db_parse_bool($row->externe_ueberwachung);
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -234,7 +236,7 @@ class reihungstest extends basis_db
|
||||
|
||||
$qry = 'BEGIN; INSERT INTO public.tbl_reihungstest (studiengang_kz, ort_kurzbz, anmerkung, datum, uhrzeit,
|
||||
insertamum, insertvon, updateamum, updatevon, max_teilnehmer, oeffentlich, freigeschaltet,
|
||||
studiensemester_kurzbz, stufe, anmeldefrist, aufnahmegruppe_kurzbz, zugangs_ueberpruefung, zugangscode) VALUES('.
|
||||
studiensemester_kurzbz, stufe, anmeldefrist, aufnahmegruppe_kurzbz, zugangs_ueberpruefung, zugangscode, externe_ueberwachung) VALUES('.
|
||||
$this->db_add_param($this->studiengang_kz, FHC_INTEGER).', '.
|
||||
$this->db_add_param($this->ort_kurzbz).', '.
|
||||
$this->db_add_param($this->anmerkung).', '.
|
||||
@@ -250,7 +252,8 @@ class reihungstest extends basis_db
|
||||
$this->db_add_param($this->anmeldefrist).','.
|
||||
$this->db_add_param($this->aufnahmegruppe_kurzbz). ',' .
|
||||
$this->db_add_param($this->zugangs_ueberpruefung, FHC_BOOLEAN).','.
|
||||
$this->db_add_param($this->zugangscode) . ');';
|
||||
$this->db_add_param($this->zugangscode) . ','.
|
||||
$this->db_add_param($this->externe_ueberwachung, FHC_BOOLEAN) . ');';
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -270,7 +273,8 @@ class reihungstest extends basis_db
|
||||
'anmeldefrist='.$this->db_add_param($this->anmeldefrist).', '.
|
||||
'aufnahmegruppe_kurzbz='.$this->db_add_param($this->aufnahmegruppe_kurzbz).', '.
|
||||
'zugangs_ueberpruefung='.$this->db_add_param($this->zugangs_ueberpruefung, FHC_BOOLEAN).', '.
|
||||
'zugangscode='.$this->db_add_param($this->zugangscode).' '.
|
||||
'zugangscode='.$this->db_add_param($this->zugangscode).', '.
|
||||
'externe_ueberwachung='.$this->db_add_param($this->externe_ueberwachung, FHC_BOOLEAN).' '.
|
||||
'WHERE reihungstest_id='.$this->db_add_param($this->reihungstest_id, FHC_INTEGER, false).';';
|
||||
}
|
||||
|
||||
@@ -694,11 +698,17 @@ class reihungstest extends basis_db
|
||||
tbl_reihungstest.studiensemester_kurzbz,
|
||||
tbl_reihungstest.stufe,
|
||||
tbl_reihungstest.anmeldefrist,
|
||||
tbl_reihungstest.aufnahmegruppe_kurzbz
|
||||
tbl_reihungstest.aufnahmegruppe_kurzbz,
|
||||
tbl_studiengang.typ,
|
||||
UPPER(typ::varchar(1) || kurzbz) AS stg_kuerzel,
|
||||
so.studiengangbezeichnung,
|
||||
so.studiengangbezeichnung_englisch
|
||||
FROM
|
||||
public.tbl_rt_person
|
||||
JOIN
|
||||
public.tbl_reihungstest ON (rt_id=reihungstest_id)
|
||||
JOIN public.tbl_reihungstest ON (rt_id=reihungstest_id)
|
||||
JOIN public.tbl_studiengang ON tbl_reihungstest.studiengang_kz = tbl_studiengang.studiengang_kz
|
||||
JOIN lehre.tbl_studienplan sp USING(studienplan_id)
|
||||
JOIN lehre.tbl_studienordnung so USING(studienordnung_id)
|
||||
WHERE
|
||||
tbl_rt_person.person_id=".$this->db_add_param($person_id);
|
||||
|
||||
@@ -737,6 +747,10 @@ class reihungstest extends basis_db
|
||||
$obj->stufe = $row->stufe;
|
||||
$obj->anmeldefrist = $row->anmeldefrist;
|
||||
$obj->aufnahmegruppe_kurzbz = $row->aufnahmegruppe_kurzbz;
|
||||
$obj->typ = $row->typ;
|
||||
$obj->stg_kuerzel = $row->stg_kuerzel;
|
||||
$obj->studiengangbezeichnung = $row->studiengangbezeichnung;
|
||||
$obj->studiengangbezeichnung_englisch = $row->studiengangbezeichnung_englisch;
|
||||
|
||||
$this->result[] = $obj;
|
||||
}
|
||||
|
||||
@@ -322,5 +322,37 @@ class reservierung extends basis_db
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public function getReservierungen($ort_kurzbz, $datum)
|
||||
{
|
||||
$datum_obj = new Datum();
|
||||
if(!$datum_obj->checkDatum($datum))
|
||||
{
|
||||
$this->errormsg='Datum hat ein ungueltiges Format';
|
||||
return false;
|
||||
}
|
||||
|
||||
$qry = "SELECT stunde FROM campus.tbl_reservierung
|
||||
WHERE
|
||||
ort_kurzbz=".$this->db_add_param($ort_kurzbz)." AND
|
||||
datum=".$this->db_add_param($datum);
|
||||
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
$result = array();
|
||||
while($row = $this->db_fetch_object())
|
||||
{
|
||||
$result[] = $row->stunde;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = "Prüfungstypen konnten nicht geladen werden.";
|
||||
return false;
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
||||
+65
-20
@@ -18,12 +18,13 @@
|
||||
*
|
||||
* Authors: Cristina Hainberger <hainberg@technikum-wien.at>
|
||||
*/
|
||||
|
||||
require_once(dirname(__FILE__).'/../config/global.config.inc.php');
|
||||
require_once(dirname(__FILE__).'/basis_db.class.php');
|
||||
require_once(dirname(__FILE__).'/mail.class.php');
|
||||
require_once(dirname(__FILE__).'/vorlage.class.php');
|
||||
|
||||
const DEFAULT_SANCHO_HEADER_IMG = 'sancho_header_DEFAULT.jpg';
|
||||
const DEFAULT_SANCHO_FOOTER_IMG = 'sancho_footer_DEFAULT.jpg';
|
||||
const FALLBACK_SENDER = 'noreply';
|
||||
|
||||
/**
|
||||
* Send single Mail with Sancho Design and Layout.
|
||||
@@ -32,22 +33,66 @@ const DEFAULT_SANCHO_FOOTER_IMG = 'sancho_footer_DEFAULT.jpg';
|
||||
* to be replaced in the content template.
|
||||
* @param string $to Email-adress.
|
||||
* @param string $subject Subject of mail.
|
||||
* @param string $headerImg Filename of the specific Sancho header image.
|
||||
* @param string $footerImg
|
||||
* @param string $headerImg Filename of the specific Sancho header image, false if no header image
|
||||
* @param string $footerImg - false if no footer image
|
||||
* @param string $replyTo default Email-adress for reply.
|
||||
* @param string | array $cc
|
||||
* @return boolean True, if succeeded.
|
||||
*/
|
||||
function sendSanchoMail($vorlage_kurzbz, $vorlage_data, $to, $subject, $headerImg = DEFAULT_SANCHO_HEADER_IMG, $footerImg = DEFAULT_SANCHO_FOOTER_IMG, $replyTo = '', $cc = '')
|
||||
{
|
||||
$from = 'sancho@'. DOMAIN;
|
||||
$sanchoHeader_img = dirname(__FILE__). '/../skin/images/sancho/'. $headerImg;
|
||||
$sanchoFooter_img = dirname(__FILE__). '/../skin/images/sancho/'. $footerImg;
|
||||
function sendSanchoMail($vorlage_kurzbz, $vorlage_data, $to, $subject, $headerImg = '', $footerImg = '', $replyTo = '', $cc = '')
|
||||
{
|
||||
$from = ((defined('SANCHO_MAIL_DEFAULT_SENDER') && SANCHO_MAIL_DEFAULT_SENDER != '')
|
||||
? SANCHO_MAIL_DEFAULT_SENDER
|
||||
: FALLBACK_SENDER)
|
||||
. '@' . DOMAIN;
|
||||
|
||||
$image_path_prefix = dirname(__DIR__).'/'.(defined('SANCHO_MAIL_IMG_PATH') ? SANCHO_MAIL_IMG_PATH : '');
|
||||
$sanchoHeader_img = '';
|
||||
$sanchoFooter_img = '';
|
||||
$cid_header = '';
|
||||
$cid_footer = '';
|
||||
|
||||
if (!defined('SANCHO_MAIL_USE_IMAGES') || SANCHO_MAIL_USE_IMAGES)
|
||||
{
|
||||
if (isset($headerImg) && $headerImg != '')
|
||||
{
|
||||
// use provided header image
|
||||
$sanchoHeader_img = $headerImg;
|
||||
}
|
||||
elseif (defined('SANCHO_MAIL_HEADER_IMG') && SANCHO_MAIL_HEADER_IMG != '')
|
||||
{
|
||||
// use default header image
|
||||
$sanchoHeader_img = SANCHO_MAIL_HEADER_IMG;
|
||||
}
|
||||
|
||||
if ($sanchoHeader_img != '')
|
||||
{
|
||||
// set full image path
|
||||
$sanchoHeader_img = $image_path_prefix.$sanchoHeader_img;
|
||||
}
|
||||
|
||||
if (isset($footerImg) && $footerImg != '')
|
||||
{
|
||||
// use provided footer image
|
||||
$sanchoFooter_img = $footerImg;
|
||||
}
|
||||
elseif (defined('SANCHO_MAIL_FOOTER_IMG') && SANCHO_MAIL_FOOTER_IMG != '')
|
||||
{
|
||||
// use default footer image
|
||||
$sanchoFooter_img = SANCHO_MAIL_FOOTER_IMG;
|
||||
}
|
||||
|
||||
if ($sanchoFooter_img !== '')
|
||||
{
|
||||
// set full image path
|
||||
$sanchoFooter_img = $image_path_prefix.$sanchoFooter_img;
|
||||
}
|
||||
|
||||
// Set unique content id for embedding header and footer image
|
||||
$cid_header = uniqid();
|
||||
$cid_footer = uniqid();
|
||||
}
|
||||
|
||||
// Set unique content id for embedding header and footer image
|
||||
$cid_header = uniqid();
|
||||
$cid_footer = uniqid();
|
||||
|
||||
// Set specific mail content into specific content template
|
||||
$content = parseMailContent($vorlage_kurzbz, $vorlage_data);
|
||||
|
||||
@@ -63,22 +108,22 @@ function sendSanchoMail($vorlage_kurzbz, $vorlage_data, $to, $subject, $headerIm
|
||||
|
||||
// Send mail
|
||||
$mail = new Mail($to, $from, $subject, $body);
|
||||
|
||||
// * embed the images
|
||||
$mail->addEmbeddedImage($sanchoHeader_img, 'image/jpg', '', $cid_header);
|
||||
$mail->addEmbeddedImage($sanchoFooter_img, 'image/jpg', '', $cid_footer);
|
||||
|
||||
// * embed the images if needed
|
||||
if ($sanchoHeader_img != '') $mail->addEmbeddedImage($sanchoHeader_img, 'image/jpg', '', $cid_header);
|
||||
if ($sanchoFooter_img != '') $mail->addEmbeddedImage($sanchoFooter_img, 'image/jpg', '', $cid_footer);
|
||||
|
||||
// * Set reply-to
|
||||
if (isset($replyTo) && $replyTo != '')
|
||||
$mail->setReplyTo($replyTo);
|
||||
|
||||
|
||||
// * Set cc
|
||||
if (isset($cc) && $cc != '')
|
||||
$mail->setCCRecievers($cc);
|
||||
|
||||
// * embed the html content
|
||||
$mail->setHTMLContent($body);
|
||||
|
||||
|
||||
return $mail->send();
|
||||
}
|
||||
|
||||
@@ -95,7 +140,7 @@ function parseMailContent($vorlage_kurzbz, $vorlage_data)
|
||||
{
|
||||
$vorlage = new Vorlage();
|
||||
$vorlage->getAktuelleVorlage('etw', $vorlage_kurzbz);
|
||||
|
||||
|
||||
// If the text and the subject of the template are not empty
|
||||
if (!empty($vorlage->text))
|
||||
{
|
||||
|
||||
@@ -1532,7 +1532,7 @@ class WavFile
|
||||
} else {
|
||||
// replace
|
||||
for ($i = 0; $i < $sampleBytes; ++$i) {
|
||||
$this->_samples{$offset + $i} = $sampleBinary{$i};
|
||||
$this->_samples[$offset + $i] = $sampleBinary[$i];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1435,7 +1435,7 @@ class Securimage
|
||||
$length = strlen($code['display']);
|
||||
|
||||
for($i = 0; $i < $length; ++$i) {
|
||||
$letter = $code['display']{$i};
|
||||
$letter = $code['display'][$i];
|
||||
$letters[] = $letter;
|
||||
}
|
||||
}
|
||||
|
||||
+663
-652
File diff suppressed because it is too large
Load Diff
@@ -294,7 +294,6 @@ class student extends benutzer
|
||||
$l->gebort=$row->gebort;
|
||||
$l->gebzeit=$row->gebzeit;
|
||||
$l->familienstand = $row->familienstand;
|
||||
$l->svnr=$row->svnr;
|
||||
$l->foto=$row->foto;
|
||||
$l->anmerkungen=$row->anmerkung;
|
||||
$l->aktiv=$this->db_parse_bool($row->aktiv);
|
||||
@@ -649,7 +648,7 @@ class student extends benutzer
|
||||
{
|
||||
$sql_query = "SELECT
|
||||
person_id, staatsbuergerschaft, geburtsnation, sprache, anrede, titelpost, titelpre,
|
||||
nachname, vorname, vornamen, gebdatum, gebort, gebzeit, anmerkung, homepage, svnr,
|
||||
nachname, vorname, vornamen, gebdatum, gebort, gebzeit, anmerkung, homepage,
|
||||
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_benutzer.uid
|
||||
@@ -691,7 +690,6 @@ class student extends benutzer
|
||||
$l->gebzeit = $row->gebzeit;
|
||||
$l->anmerkungen = $row->anmerkung;
|
||||
$l->homepage = $row->homepage;
|
||||
$l->svnr = $row->svnr;
|
||||
$l->ersatzkennzeichen = $row->ersatzkennzeichen;
|
||||
$l->familienstand = $row->familienstand;
|
||||
$l->geschlecht = $row->geschlecht;
|
||||
|
||||
@@ -0,0 +1,147 @@
|
||||
<?php
|
||||
/* Copyright (C) 2011 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: Christopher Gerbrich <christopher.gerbrich@technikum-wien.at> and Manuela Thamer <manuela.thamer@technikum-wien.at
|
||||
*/
|
||||
/**
|
||||
* Klasse Studierendenantrag
|
||||
*
|
||||
*/
|
||||
require_once(dirname(__FILE__).'/basis_db.class.php');
|
||||
|
||||
class studierendenantrag extends basis_db
|
||||
{
|
||||
public $new;
|
||||
public $result = array();
|
||||
|
||||
//Tabellenspalten
|
||||
public $studierendenantrag_id; // bigint
|
||||
public $prestudent_id; // bigint
|
||||
public $studiensemester_kurzbz; // varchar(32)
|
||||
public $datum; // timestamp
|
||||
public $typ; // varchar(32)
|
||||
public $insertamum; // timestamp
|
||||
public $insertvon; // varchar(32)
|
||||
public $datum_wiedereinstieg; // timestamp
|
||||
public $grund; // text
|
||||
public $dms_id; // bigint
|
||||
|
||||
/**
|
||||
* Konstruktor - Laedt optional eine Ampel
|
||||
* @param $amepl_id
|
||||
*/
|
||||
public function __construct($studierendenantrag_id=null)
|
||||
{
|
||||
parent::__construct();
|
||||
|
||||
if(!is_null($studierendenantrag_id))
|
||||
$this->load($studierendenantrag_id);
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt einen Antrag mit der uebergebenen ID
|
||||
*
|
||||
* @param $studierendenantrag_id
|
||||
* @return boolean
|
||||
*/
|
||||
public function load($studierendenantrag_id)
|
||||
{
|
||||
if(!is_numeric($studierendenantrag_id))
|
||||
{
|
||||
$this->errormsg = 'Studierendenantrag ID ist ungueltig';
|
||||
return false;
|
||||
}
|
||||
|
||||
$qry = "SELECT * FROM campus.tbl_studierendenantrag WHERE studierendenantrag_id=" . $this->db_add_param($studierendenantrag_id, FHC_INTEGER);
|
||||
|
||||
if($result = $this->db_query($qry))
|
||||
{
|
||||
if($row = $this->db_fetch_object($result))
|
||||
{
|
||||
$this->studierendenantrag_id = $row->studierendenantrag_id;
|
||||
$this->prestudent_id = $row->prestudent_id;
|
||||
$this->studiensemester_kurzbz = $row->studiensemester_kurzbz;
|
||||
$this->datum = $row->datum;
|
||||
$this->typ = $row->typ;
|
||||
$this->insertamum = $row->insertamum;
|
||||
$this->insertvon = $row->insertvon;
|
||||
$this->datum_wiedereinstieg = $row->datum_wiedereinstieg;
|
||||
$this->grund = $row->grund;
|
||||
$this->dms_id = $row->dms_id;
|
||||
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Studierendenantrag mit dieser ID exisitert nicht';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden der Studierendenantrag';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt alle aktuellen Anträge eines Users
|
||||
*
|
||||
* @param integer $prestudent_id
|
||||
* @param string $stsem
|
||||
*
|
||||
* @return boolean
|
||||
*/
|
||||
public function loadUserAntrag($prestudent_id, $stsem = null)
|
||||
{
|
||||
$qry = "SELECT * FROM campus.tbl_studierendenantrag WHERE typ IN ('Abmeldung','AbmeldungStgl','Unterbrechung') AND campus.get_status_studierendenantrag(studierendenantrag_id)='Genehmigt' AND prestudent_id=" . $this->db_add_param($prestudent_id, FHC_INTEGER);
|
||||
|
||||
if ($stsem)
|
||||
{
|
||||
$qry .= " AND studiensemester_kurzbz=" . $this->db_add_param($stsem, FHC_STRING);
|
||||
}
|
||||
|
||||
if($result = $this->db_query($qry))
|
||||
{
|
||||
while($row = $this->db_fetch_object($result))
|
||||
{
|
||||
$obj = new studierendenantrag();
|
||||
|
||||
$obj->studierendenantrag_id = $row->studierendenantrag_id;
|
||||
$obj->prestudent_id = $row->prestudent_id;
|
||||
$obj->studiensemester_kurzbz = $row->studiensemester_kurzbz;
|
||||
$obj->datum = $row->datum;
|
||||
$obj->typ = $row->typ;
|
||||
$obj->insertamum = $row->insertamum;
|
||||
$obj->insertvon = $row->insertvon;
|
||||
$obj->datum_wiedereinstieg = $row->datum_wiedereinstieg;
|
||||
$obj->grund = $row->grund;
|
||||
$obj->dms_id = $row->dms_id;
|
||||
|
||||
$this->result[] = $obj;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden der Daten';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
@@ -0,0 +1,289 @@
|
||||
<?php
|
||||
|
||||
require_once(dirname(__FILE__).'/basis_db.class.php');
|
||||
|
||||
class stundensatz extends basis_db
|
||||
{
|
||||
public $new;
|
||||
public $result = array();
|
||||
|
||||
//Tabellenspalten
|
||||
public $stundensatz_id; // serial
|
||||
public $uid; // varchar(32)
|
||||
public $stundensatztyp; // varchar(32)
|
||||
public $stundensatz; // numeric
|
||||
public $oe_kurzbz; // varchar(32)
|
||||
public $gueltig_von; // date
|
||||
public $gueltig_bis; // date
|
||||
public $insertamum; // timestamp
|
||||
public $insertvon; // varchar(16)
|
||||
public $updateamum; // timestamp
|
||||
public $updatevon; // varchar(16)
|
||||
|
||||
public $oe_bezeichnung;
|
||||
public $stundensatztyp_bezeichnung;
|
||||
|
||||
public function __construct($stundensatz_id = null)
|
||||
{
|
||||
parent::__construct();
|
||||
|
||||
if (!is_null($stundensatz_id))
|
||||
$this->load($stundensatz_id);
|
||||
}
|
||||
|
||||
public function getStundensatzDatum($uid, $beginn, $ende = null, $typ = null)
|
||||
{
|
||||
|
||||
$qry = "SELECT
|
||||
*
|
||||
FROM
|
||||
hr.tbl_stundensatz
|
||||
WHERE
|
||||
uid = ". $this->db_add_param($uid) ."
|
||||
AND (gueltig_bis >= ". $this->db_add_param($beginn) ." OR gueltig_bis is null)";
|
||||
|
||||
if (!is_null($ende))
|
||||
{
|
||||
$qry .= " AND (gueltig_von <= ". $this->db_add_param($ende) .")";
|
||||
}
|
||||
|
||||
if (!is_null($typ))
|
||||
{
|
||||
$qry .= " AND stundensatztyp = ". $this->db_add_param($typ);
|
||||
}
|
||||
|
||||
$qry .= " ORDER BY gueltig_bis DESC NULLS FIRST, gueltig_von DESC NULLS LAST LIMIT 1;";
|
||||
|
||||
if ($this->db_query($qry))
|
||||
{
|
||||
if ($row = $this->db_fetch_object())
|
||||
{
|
||||
$this->stundensatz_id = $row->stundensatz_id;
|
||||
$this->uid = $row->uid;
|
||||
$this->stundensatztyp = $row->stundensatztyp;
|
||||
$this->stundensatz = $row->stundensatz;
|
||||
$this->oe_kurzbz = $row->oe_kurzbz;
|
||||
$this->gueltig_von = $row->gueltig_von;
|
||||
$this->gueltig_bis = $row->gueltig_bis;
|
||||
$this->insertamum = $row->insertamum;
|
||||
$this->insertvon = $row->insertvon;
|
||||
$this->updateamum = $row->updateamum;
|
||||
$this->updatevon = $row->updatevon;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden der Daten';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public function getAllStundensaetze($uid)
|
||||
{
|
||||
$qry = "SELECT
|
||||
tbl_stundensatz.*,
|
||||
tbl_organisationseinheit.bezeichnung AS oe_bezeichnung,
|
||||
hr.tbl_stundensatztyp.bezeichnung AS stundensatztyp_bezeichnung,
|
||||
tbl_organisationseinheit.oe_kurzbz
|
||||
FROM
|
||||
hr.tbl_stundensatz
|
||||
LEFT JOIN
|
||||
public.tbl_organisationseinheit ON tbl_stundensatz.oe_kurzbz = tbl_organisationseinheit.oe_kurzbz
|
||||
JOIN hr.tbl_stundensatztyp USING(stundensatztyp)
|
||||
WHERE
|
||||
uid = ". $this->db_add_param($uid);
|
||||
|
||||
if ($result = $this->db_query($qry))
|
||||
{
|
||||
while ($row = $this->db_fetch_object($result))
|
||||
{
|
||||
$obj = new stundensatz();
|
||||
$obj->stundensatz_id = $row->stundensatz_id;
|
||||
$obj->uid = $row->uid;
|
||||
$obj->stundensatztyp = $row->stundensatztyp;
|
||||
$obj->stundensatz = $row->stundensatz;
|
||||
$obj->oe_kurzbz = $row->oe_kurzbz;
|
||||
$obj->gueltig_von = $row->gueltig_von;
|
||||
$obj->gueltig_bis = $row->gueltig_bis;
|
||||
$obj->insertamum = $row->insertamum;
|
||||
$obj->insertvon = $row->insertvon;
|
||||
$obj->updateamum = $row->updateamum;
|
||||
$obj->updatevon = $row->updatevon;
|
||||
$obj->oe_bezeichnung = $row->oe_bezeichnung;
|
||||
$obj->stundensatztyp_bezeichnung = $row->stundensatztyp_bezeichnung;
|
||||
|
||||
$this->result[] = $obj;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden der Daten';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public function load($stundensatz_id)
|
||||
{
|
||||
$qry = "SELECT
|
||||
tbl_stundensatz.*,
|
||||
tbl_organisationseinheit.bezeichnung AS oe_bezeichnung,
|
||||
hr.tbl_stundensatztyp.bezeichnung AS stundensatztyp_bezeichnung,
|
||||
tbl_organisationseinheit.oe_kurzbz
|
||||
FROM
|
||||
hr.tbl_stundensatz
|
||||
LEFT JOIN public.tbl_organisationseinheit ON tbl_stundensatz.oe_kurzbz = tbl_organisationseinheit.oe_kurzbz
|
||||
JOIN hr.tbl_stundensatztyp USING(stundensatztyp)
|
||||
WHERE
|
||||
stundensatz_id = ".$this->db_add_param($stundensatz_id).";";
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
if ($row = $this->db_fetch_object())
|
||||
{
|
||||
$this->stundensatz_id = $row->stundensatz_id;
|
||||
$this->uid = $row->uid;
|
||||
$this->stundensatztyp = $row->stundensatztyp;
|
||||
$this->stundensatz = $row->stundensatz;
|
||||
$this->oe_kurzbz = $row->oe_kurzbz;
|
||||
$this->gueltig_von = $row->gueltig_von;
|
||||
$this->gueltig_bis = $row->gueltig_bis;
|
||||
$this->insertamum = $row->insertamum;
|
||||
$this->insertvon = $row->insertvon;
|
||||
$this->updateamum = $row->updateamum;
|
||||
$this->updatevon = $row->updatevon;
|
||||
$this->oe_bezeichnung = $row->oe_bezeichnung;
|
||||
$this->stundensatztyp_bezeichnung = $row->stundensatztyp_bezeichnung;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden des Datensatzes';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public function save($new = null)
|
||||
{
|
||||
if (!$this->validate())
|
||||
return false;
|
||||
|
||||
if(is_null($new))
|
||||
$new = $this->new;
|
||||
|
||||
if ($new)
|
||||
{
|
||||
|
||||
$qry = "BEGIN;INSERT INTO hr.tbl_stundensatz
|
||||
(
|
||||
uid,
|
||||
stundensatz,
|
||||
gueltig_von,
|
||||
gueltig_bis,
|
||||
oe_kurzbz,
|
||||
stundensatztyp,
|
||||
insertamum,
|
||||
insertvon
|
||||
)
|
||||
VALUES
|
||||
(" .
|
||||
$this->db_add_param($this->uid) . "," .
|
||||
$this->db_add_param($this->stundensatz, FHC_INTEGER) . "," .
|
||||
$this->db_add_param($this->gueltig_von) . "," .
|
||||
$this->db_add_param($this->gueltig_bis) . "," .
|
||||
$this->db_add_param($this->oe_kurzbz) . "," .
|
||||
$this->db_add_param($this->stundensatztyp) . "," .
|
||||
$this->db_add_param($this->insertamum) . "," .
|
||||
$this->db_add_param($this->insertvon) .
|
||||
");";
|
||||
}
|
||||
else
|
||||
{
|
||||
$qry = "UPDATE hr.tbl_stundensatz SET " .
|
||||
"stundensatz = " . $this->db_add_param($this->stundensatz, FHC_INTEGER) .",".
|
||||
"oe_kurzbz = " . $this->db_add_param($this->oe_kurzbz) .",".
|
||||
"stundensatztyp = " . $this->db_add_param($this->stundensatztyp) .",".
|
||||
"gueltig_von = " . $this->db_add_param($this->gueltig_von) .",".
|
||||
"gueltig_bis = " . $this->db_add_param($this->gueltig_bis) .",".
|
||||
"updatevon = " . $this->db_add_param($this->updatevon) .",".
|
||||
"updateamum = " . $this->db_add_param($this->updateamum).
|
||||
" WHERE stundensatz_id = " . $this->db_add_param($this->stundensatz_id, FHC_INTEGER).';';
|
||||
}
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
if ($new)
|
||||
{
|
||||
$qry = "SELECT currval('hr.tbl_stundensatz_stundensatz_id_seq') as id;";
|
||||
if ($this->db_query($qry))
|
||||
{
|
||||
if ($row = $this->db_fetch_object())
|
||||
{
|
||||
$this->stundensatz_id = $row->id;
|
||||
$this->db_query('COMMIT');
|
||||
return true;
|
||||
} else
|
||||
{
|
||||
$this->db_query('ROLLBACK');
|
||||
$this->errormsg = "Fehler beim Auslesen der Sequence";
|
||||
return false;
|
||||
}
|
||||
} else
|
||||
{
|
||||
$this->db_query('ROLLBACK');
|
||||
$this->errormsg = 'Fehler beim Auslesen der Sequence';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Zuteilen des Eintrages';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public function delete($stundensatz_id)
|
||||
{
|
||||
$qry = "DELETE FROM hr.tbl_stundensatz WHERE stundensatz_id = ".$this->db_add_param($stundensatz_id, FHC_INTEGER);
|
||||
|
||||
if($this->db_query($qry))
|
||||
return true;
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Löschen des Stundensatzes';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public function validate()
|
||||
{
|
||||
if (!is_numeric($this->stundensatz))
|
||||
{
|
||||
$this->errormsg = "Stundensatz ungueltig";
|
||||
return false;
|
||||
}
|
||||
|
||||
if (is_null($this->oe_kurzbz))
|
||||
{
|
||||
$this->errormsg = "Unternehmen ungueltig";
|
||||
return false;
|
||||
}
|
||||
|
||||
if ($this->insertamum === '')
|
||||
{
|
||||
$this->errormsg = "Datum ungueltig";
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
?>
|
||||
@@ -0,0 +1,77 @@
|
||||
<?php
|
||||
|
||||
require_once(dirname(__FILE__).'/basis_db.class.php');
|
||||
|
||||
class stundensatzzyp extends basis_db
|
||||
{
|
||||
public $result = array();
|
||||
|
||||
public $stundensatztyp;
|
||||
public $bezeichnung;
|
||||
public $aktiv;
|
||||
|
||||
public function __construct($stundensatztyp=null)
|
||||
{
|
||||
parent::__construct();
|
||||
|
||||
if($stundensatztyp!=null)
|
||||
$this->load($stundensatztyp);
|
||||
}
|
||||
|
||||
public function load($stundensatzzyp)
|
||||
{
|
||||
$qry = "SELECT *
|
||||
FROM hr.tbl_stundensatztyp
|
||||
WHERE stundensatztyp=". $this->db_add_param($stundensatzzyp);
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
if($row = $this->db_fetch_object())
|
||||
{
|
||||
$this->stundensatztyp = $row->stundensatztyp;
|
||||
$this->bezeichnung = $row->bezeichnung;
|
||||
$this->aktiv = $this->db_parse_bool($row->aktiv);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg ="Fehler bei der Abfrage aufgetreten";
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public function getAll($onlyAktiv = true, $order = 'aktiv DESC, bezeichnung')
|
||||
{
|
||||
$qry = "SELECT *
|
||||
FROM hr.tbl_stundensatztyp";
|
||||
|
||||
if ($onlyAktiv)
|
||||
{
|
||||
$qry .= " WHERE aktiv";
|
||||
}
|
||||
|
||||
if($order !== '')
|
||||
$qry .= " ORDER BY ".$order;
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
while($row = $this->db_fetch_object())
|
||||
{
|
||||
$obj = new stundensatzzyp();
|
||||
|
||||
$obj->stundensatztyp = $row->stundensatztyp;
|
||||
$obj->bezeichnung = $row->bezeichnung;
|
||||
$obj->aktiv = $this->db_parse_bool($row->aktiv);
|
||||
|
||||
$this->result[] = $obj;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden der Daten';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
@@ -240,13 +240,38 @@ function checkZeilenUmbruch()
|
||||
);
|
||||
}
|
||||
|
||||
// Digitale Anwesenheiten
|
||||
if(defined('CIS_LEHRVERANSTALTUNG_ANWESENHEIT_ANZEIGEN') && CIS_LEHRVERANSTALTUNG_ANWESENHEIT_ANZEIGEN && $angemeldet
|
||||
&& (!defined('CIS_LEHRVERANSTALTUNG_ANWESENHEIT_ANZEIGEN_STG') || in_array($lv->studiengang_kz, unserialize(CIS_LEHRVERANSTALTUNG_ANWESENHEIT_ANZEIGEN_STG)))
|
||||
&& (!defined('CIS_LEHRVERANSTALTUNG_ANWESENHEIT_ANZEIGEN_LVA') || in_array($lv->lehrveranstaltung_id, unserialize(CIS_LEHRVERANSTALTUNG_ANWESENHEIT_ANZEIGEN_LVA)))
|
||||
&& ($rechte->isBerechtigt('extension/anw_r_ent_assistenz')
|
||||
|| $rechte->isBerechtigt('extension/anw_r_lektor')
|
||||
|| $rechte->isBerechtigt('extension/anw_r_student')
|
||||
|| $rechte->isBerechtigt('extension/anw_r_full_assistenz')))
|
||||
{
|
||||
$link='';
|
||||
$text='';
|
||||
|
||||
$link= APP_ROOT."index.ci.php/extensions/FHC-Core-Anwesenheiten/?stg_kz=$studiengang_kz&sem=$semester&lvid=$lvid&sem_kurzbz=$angezeigtes_stsem";
|
||||
|
||||
$menu[]=array
|
||||
(
|
||||
'id'=>'core_menu_digitale_anwesenheitslisten',
|
||||
'position'=>'50',
|
||||
'name'=> $p->t('lehre/digiAnw'),
|
||||
'icon'=>'../../../skin/images/button_kreuzerltool.png',
|
||||
'link'=>$link,
|
||||
'text'=>$text
|
||||
);
|
||||
}
|
||||
|
||||
//FEEDBACK
|
||||
if((!defined('CIS_LEHRVERANSTALTUNG_FEEDBACK_ANZEIGEN') || CIS_LEHRVERANSTALTUNG_FEEDBACK_ANZEIGEN) && $angemeldet)
|
||||
{
|
||||
$menu[]=array
|
||||
(
|
||||
'id'=>'core_menu_feedback',
|
||||
'position'=>'50',
|
||||
'position'=>'60',
|
||||
'name'=>$p->t('lehre/feedback'),
|
||||
'icon'=>'../../../skin/images/button_feedback.png',
|
||||
'link'=>'feedback.php?lvid='.$lvid,
|
||||
@@ -378,6 +403,7 @@ function checkZeilenUmbruch()
|
||||
'id'=>'core_menu_mailanstudierende',
|
||||
'position'=>'100',
|
||||
'name'=>$p->t('lehre/mail'),
|
||||
'phrase'=>'lehre/mail',
|
||||
'icon'=>'../../../skin/images/button_feedback.png',
|
||||
'link'=>$mailto,
|
||||
'link_onclick'=>$link_onclick
|
||||
@@ -453,6 +479,7 @@ function checkZeilenUmbruch()
|
||||
'id'=>'core_menu_anerkennungNachgewiesenerKenntnisse',
|
||||
'position'=>'128',
|
||||
'name'=>$p->t('lehre/anrechnung'),
|
||||
'phrase'=>'lehre/anrechnung',
|
||||
'icon'=>'../../../skin/images/button_listen.png',
|
||||
'link' => APP_ROOT. 'index.ci.php/lehre/anrechnung/RequestAnrechnung?studiensemester='.urlencode($angezeigtes_stsem).'&lv_id='.urlencode($lvid)
|
||||
);
|
||||
@@ -467,11 +494,33 @@ if((!defined('CIS_LEHRVERANSTALTUNG_ANRECHNUNG_ANZEIGEN') || CIS_LEHRVERANSTALTU
|
||||
'id'=>'core_menu_anerkennungNachgewiesenerKenntnisse_empfehlen',
|
||||
'position'=>'128',
|
||||
'name'=>$p->t('lehre/anrechnungen'),
|
||||
'phrase'=>'lehre/anrechnung',
|
||||
'icon'=>'../../../skin/images/button_listen.png',
|
||||
'link' => APP_ROOT. 'index.ci.php/lehre/anrechnung/ReviewAnrechnungUebersicht?studiensemester='.urlencode($angezeigtes_stsem)
|
||||
);
|
||||
}
|
||||
|
||||
// LV-Evaluierung NEU
|
||||
if(defined('CIS_LEHRVERANSTALTUNG_EVALUIERUNG_ANZEIGEN')
|
||||
&& CIS_LEHRVERANSTALTUNG_EVALUIERUNG_ANZEIGEN
|
||||
&& $angemeldet
|
||||
&& (!defined('CIS_EVALUIERUNG_ANZEIGEN_STG') || in_array($lv->studiengang_kz, unserialize(CIS_EVALUIERUNG_ANZEIGEN_STG)))
|
||||
&& ($rechte->isBerechtigt('extension/lvevaluierung_init')))
|
||||
{
|
||||
$text='(Pilotphase)';
|
||||
|
||||
$link= APP_ROOT. 'index.ci.php/extensions/FHC-Core-Evaluierung/Initiierung?lehrveranstaltung_id='. urlencode($lv->lehrveranstaltung_id).'&studiensemester_kurzbz='.urlencode($angezeigtes_stsem);
|
||||
|
||||
$menu[]=array
|
||||
(
|
||||
'id'=>'extension_lvevaluierung_menu_initiierung',
|
||||
'position'=>'140',
|
||||
'name'=>$p->t('lvevaluierung/lvevaluierung'). ' - '. strtoupper($p->t('global/neu')),
|
||||
'icon'=>'../../../skin/images/button_lvevaluierung.png',
|
||||
'link'=> $link,
|
||||
'text'=>$text
|
||||
);
|
||||
}
|
||||
|
||||
//************* Menuepunkte anzeigen ****************
|
||||
|
||||
|
||||
@@ -33,7 +33,7 @@ $menu=array
|
||||
'Lehrveranstaltung'=>array('name'=>'Lehrveranstaltung', 'link'=>'lehre/lehrveranstaltung_frameset.html', 'target'=>'main'),
|
||||
/* Leerzeile */'emptyrow1'=>array('name'=>'', 'link'=>'#empty', 'target'=>'main'),
|
||||
'Verplanungsuebersicht'=>array('name'=>'Verplanungsübersicht', 'link'=>'lehre/check/verplanungsuebersicht.php', 'target'=>'main'),
|
||||
'Reihungstest'=>array('name'=>'Reihungstest', 'link'=>'stammdaten/reihungstestverwaltung.php', 'target'=>'main','permissions'=>array('reihungstest')),
|
||||
'Reihungstest'=>array('name'=>'Reihungstest', 'link'=>'stammdaten/reihungstestverwaltung.php', 'target'=>'main','permissions'=>array('lehre/reihungstest')),
|
||||
'LV-Planung'=>array
|
||||
(
|
||||
'name'=>'LV-Planung', 'permissions'=>array('admin','lv-plan','support'),
|
||||
@@ -70,6 +70,7 @@ $menu=array
|
||||
'link'=>'left.php?categorie=Lehre', 'target'=>'nav',
|
||||
'Gruppenverwaltung'=>array('name'=>'Gruppen', 'permissions'=>array('admin','lv-plan','support','lehre/gruppe'), 'link'=>'stammdaten/lvbgruppenverwaltung.php', 'target'=>'main'),
|
||||
'Lehrveranstaltung'=>array('name'=>'Lehrveranstaltung', 'link'=>'lehre/lehrveranstaltung_frameset.html', 'target'=>'main'),
|
||||
'lvTemplateUebersicht'=>array('name'=>'LV-Template Übersicht', 'link'=>'../index.ci.php/lehre/lvplanung/LvTemplateUebersicht', 'target'=>'_blank'),
|
||||
'Studienordnung'=>array('name'=>'Studienordnung', 'link'=>'lehre/studienordnung.php', 'target'=>'_blank','permissions'=>array('lehre/studienordnung')),
|
||||
'StudienplanGueltigkeit'=>array('name'=>'Studienplan Gültigkeit', 'link'=>'lehre/studienplan_gueltigkeit.php', 'target'=>'main','permissions'=>array('lehre/studienordnung')),
|
||||
'StudienplanVorruecken'=>array('name'=>'Studienplan vorrücken', 'link'=>'lehre/studienplan_vorrueckung.php', 'target'=>'main','permissions'=>array('lehre/studienplan')),
|
||||
@@ -109,7 +110,7 @@ $menu=array
|
||||
),
|
||||
'Benutzer'=>array
|
||||
(
|
||||
'name'=>'Benutzer','permissions'=>array('admin','lv-plan','support'),
|
||||
'name'=>'Benutzer','permissions'=>array('admin','lv-plan','support','mitarbeiter'),
|
||||
'Funktionen'=>array('name'=>'Funktionen', 'link'=>'personen/funktion.php', 'target'=>'main', 'permissions'=>array('mitarbeiter')),
|
||||
'Berechtigungen'=>array('name'=>'Berechtigungen', 'link'=>'stammdaten/benutzerberechtigung_frameset.html', 'target'=>'main','permissions'=>array('basis/berechtigung')),
|
||||
'Rollen'=>array('name'=>'Rollen', 'link'=>'stammdaten/berechtigungrolle.php', 'target'=>'main','permissions'=>array('basis/berechtigung')),
|
||||
@@ -120,6 +121,7 @@ $menu=array
|
||||
'name'=>'Mitarbeiter','permissions'=>array('admin','mitarbeiter','support'),
|
||||
'Übersicht'=>array('name'=>'Übersicht', 'link'=>'personen/lektor_uebersicht.php', 'target'=>'main'),
|
||||
'Zeitsperren'=>array('name'=>'Zeitsperren/Urlaub', 'link'=>'personen/urlaubsverwaltung.php', 'target'=>'main','permissions'=>array('mitarbeiter/zeitsperre:begrenzt')),
|
||||
'Projektexport'=>array('name'=>'Projektexport', 'link'=>'personen/projektexport.php', 'target'=>'main','permissions'=>array('mitarbeiter/zeitsperre')),
|
||||
),
|
||||
'Betriebsmittel'=>array('name'=>'Betriebsmittel', 'link'=>'stammdaten/betriebsmittel_frameset.php', 'target'=>'main','permissions'=>array('basis/betriebsmittel')),
|
||||
'AnwesenheitslistenBarcode'=>array('name'=>'Anwesenheitslisten mit Barcodes', 'link'=>'personen/anwesenheitslisten_barcode.php', 'target'=>'main','permissions'=>array('basis/person')),
|
||||
@@ -132,14 +134,15 @@ $menu=array
|
||||
'name'=>'Stammdaten', 'opener'=>'true', 'hide'=>'true', 'permissions'=>array('admin','lv-plan','support','basis/berechtigung','basis/variable','basis/studiengang','basis/ort','basis/firma','basis/fhausweis','basis/infoscreen','basis/organisationseinheit'), 'image'=>'vilesci_stammdaten.png',
|
||||
'link'=>'left.php?categorie=Stammdaten', 'target'=>'nav',
|
||||
'Betriebsmittel'=>array('name'=>'Betriebsmittel', 'link'=>'stammdaten/betriebsmittel_frameset.php', 'target'=>'main','permissions'=>array('basis/betriebsmittel')),
|
||||
'Reihungstest'=>array('name'=>'Reihungstest', 'link'=>'stammdaten/reihungstestverwaltung.php', 'target'=>'main','permissions'=>array('admin','assistenz')),
|
||||
'Reihungstest'=>array('name'=>'Reihungstest', 'link'=>'stammdaten/reihungstestverwaltung.php', 'target'=>'main','permissions'=>array('lehre/reihungstest')),
|
||||
|
||||
'User'=>array
|
||||
'Rechtemanagement'=>array
|
||||
(
|
||||
'name'=>'User', 'permissions'=>array('basis/variable','basis/berechtigung'),
|
||||
'name'=>'Rechtemanagement', 'permissions'=>array('basis/berechtigung','mitarbeiter'),
|
||||
'Berechtigungen'=>array('name'=>'Berechtigungen', 'link'=>'stammdaten/benutzerberechtigung_frameset.html', 'target'=>'main','permissions'=>array('basis/berechtigung')),
|
||||
'Rechte'=>array('name'=>'Rechte', 'link'=>'stammdaten/berechtigungen.php', 'target'=>'main','permissions'=>array('basis/berechtigung')),
|
||||
'Rollen'=>array('name'=>'Rollen', 'link'=>'stammdaten/berechtigungrolle.php', 'target'=>'main','permissions'=>array('basis/berechtigung')),
|
||||
'Variablen'=>array('name'=>'Variablen', 'link'=>'stammdaten/variablen_frameset.html', 'target'=>'main', 'target'=>'main','permissions'=>array('basis/variable')),
|
||||
'Funktionen'=>array('name'=>'Funktionen', 'link'=>'personen/funktion.php', 'target'=>'main', 'permissions'=>array('mitarbeiter')),
|
||||
),
|
||||
'Personal'=>array
|
||||
(
|
||||
@@ -155,7 +158,7 @@ $menu=array
|
||||
'Statistik'=>array('name'=>'Statistik', 'link'=>'stammdaten/statistik_frameset.html', 'target'=>'main','permissions'=>array('basis/statistik')),
|
||||
'Ampel'=>array('name'=>'Ampel', 'link'=>'stammdaten/ampel_frameset.html', 'target'=>'main','permissions'=>array('basis/ampel')),
|
||||
'Infoscreen'=>array('name'=>'Infoscreen', 'link'=>'stammdaten/infoscreen_frameset.html', 'target'=>'main','permissions'=>array('basis/infoscreen')),
|
||||
'Ferien'=>array('name'=>'Ferien', 'link'=>'lehre/ferienverwaltung.php', 'target'=>'main','permissions'=>array('admin')),
|
||||
'Ferien'=>array('name'=>'Ferien', 'link'=>'lehre/ferienverwaltung.php', 'target'=>'main','permissions'=>array('basis/ferien')),
|
||||
'Service'=>array('name'=>'Service', 'link'=>'stammdaten/service_frameset.html', 'target'=>'main','permissions'=>array('basis/service')),
|
||||
'Dokumentvorlagen'=>array('name'=>'Dokumentvorlagen', 'link'=>'stammdaten/dokumentvorlagen_verwaltung.php', 'target'=>'main','permissions'=>array('basis/dokumente')),
|
||||
'GSProgramm'=>array('name'=>'GSProgramm', 'link'=>'stammdaten/gsprogramm.php', 'target'=>'main','permissions'=>array('inout/uebersicht')),
|
||||
|
||||
@@ -0,0 +1,577 @@
|
||||
<?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: Cristina Hainberger <cristina.hainberger@technikum-wien.at>,
|
||||
*/
|
||||
/**
|
||||
* Klasse Vertragsbestandteil
|
||||
* @create 29.03.2023
|
||||
*/
|
||||
require_once(dirname(__FILE__).'/basis_db.class.php');
|
||||
|
||||
class vertragsbestandteil extends basis_db
|
||||
{
|
||||
public $new; // boolean
|
||||
public $result = array();
|
||||
|
||||
//Tabellenspalten
|
||||
public $vertragsbestandteil_id; // serial
|
||||
public $dienstverhaeltnis_id; // integer
|
||||
public $vertragsbestandteiltyp_kurzbz; // varchar(32)
|
||||
public $von; // date
|
||||
public $bis; // date
|
||||
public $insertamum; // timestamp
|
||||
public $insertvon; // varchar(32)
|
||||
public $updateamum; // timestamp
|
||||
public $updatevon; // varchar(32)
|
||||
|
||||
/**
|
||||
* Konstruktor
|
||||
* @param $vertragsbestandteil_id ID des Vertragsbestandteils, der geladen werden soll (Default=null)
|
||||
*/
|
||||
public function __construct($vertragsbestandteil_id = null)
|
||||
{
|
||||
parent::__construct();
|
||||
|
||||
if($vertragsbestandteil_id != null)
|
||||
$this->load($vertragsbestandteil_id);
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt den Vertragsbestandteil mit der uebergebenen ID.
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
public function load($vertragsbestandteil_id)
|
||||
{
|
||||
$qry = "SELECT * FROM hr.tbl_vertragsbestandteil WHERE vertragsbestandteil_id = ". $this->db_add_param($vertragsbestandteil_id, FHC_INTEGER);
|
||||
|
||||
if (!$this->db_query($qry))
|
||||
{
|
||||
$this->errormsg = 'Fehler bei einer Datenbankabfrage';
|
||||
return false;
|
||||
}
|
||||
|
||||
if($row = $this->db_fetch_object())
|
||||
{
|
||||
$this->vertragsbestandteil_id = $row->vertragsbestandteil_id;
|
||||
$this->dienstverhaeltnis_id = $row->dienstverhaeltnis_id;
|
||||
$this->vertragsbestandteiltyp_kurzbz = $row->vertragsbestandteiltyp_kurzbz;
|
||||
$this->von = $row->von;
|
||||
$this->bis = $row->bis;
|
||||
$this->insertvon = $row->insertvon;
|
||||
$this->updateamum = $row->updateamum;
|
||||
$this->updatevon = $row->updatevon;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Es ist kein Datensatz mit dieser ID vorhanden';
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Prueft ob MitarbeiterIn im Monat des uebergebenen $datums zeitaufzeichnungspflichtig ist.
|
||||
* Wenn kein Datum übergeben wird, wird das heutige Datum gesetzt.
|
||||
*
|
||||
* @param $mitarbeiter_uid
|
||||
* @param string $timestamp DD-MM-YYYY
|
||||
* @return bool
|
||||
*/
|
||||
public function isZaPflichtig($mitarbeiter_uid, $datum = null)
|
||||
{
|
||||
|
||||
$timestamp = is_null($datum) ? 'NOW()' : '(date('. $this->db_add_param($datum).'))';
|
||||
|
||||
$qry = 'SELECT
|
||||
vbt.vertragsbestandteil_id, vbt.dienstverhaeltnis_id, vbt.vertragsbestandteiltyp_kurzbz,
|
||||
vbt.von, vbt.bis, vbt.insertamum, vbt.insertvon, vbt.updateamum, vbt.updatevon,
|
||||
vbtza.zeitaufzeichnung, vbtza.azgrelevant, vbtza.homeoffice
|
||||
FROM hr.tbl_vertragsbestandteil_zeitaufzeichnung vbtza
|
||||
JOIN hr.tbl_vertragsbestandteil vbt USING (vertragsbestandteil_id)
|
||||
JOIN hr.tbl_dienstverhaeltnis dv USING (dienstverhaeltnis_id)
|
||||
-- Dienstverhältnis(se) des Mitarbeiters
|
||||
WHERE dv.mitarbeiter_uid = '. $this->db_add_param($mitarbeiter_uid). '
|
||||
-- Zeitaufzeichnungspflichtig...
|
||||
AND zeitaufzeichnung = TRUE
|
||||
-- ...im aktuellen Monat (default) oder im Monat des übergebenen $datums
|
||||
AND ((date_trunc(\'month\', '. $timestamp. ')::date < vbt.bis AND (date_trunc(\'month\', '. $timestamp. ') + interval \'1 month - 1 day\')::date > vbt.von) OR (vbt.bis IS NULL AND (date_trunc(\'month\', '. $timestamp. ') + interval \'1 month - 1 day\')::date > vbt.von))
|
||||
-- Vorerst nur check, ob zumindest eine aufrechte Zeitaufzeichnungspflicht. Später Unterscheidung nach Dienstverhältnis.
|
||||
ORDER BY vbt.von DESC --aktuellster
|
||||
LIMIT 1';
|
||||
|
||||
if ($result = $this->db_query($qry))
|
||||
{
|
||||
if ($this->db_num_rows($result) > 0)
|
||||
{
|
||||
$this->result = array();
|
||||
|
||||
while ($row = $this->db_fetch_object())
|
||||
{
|
||||
$obj = new stdClass();
|
||||
|
||||
$obj->vertragsbestandteil_id = $row->vertragsbestandteil_id;
|
||||
$obj->dienstverhaeltnis_id = $row->dienstverhaeltnis_id;
|
||||
$obj->vertragsbestandteiltyp_kurzbz = $row->vertragsbestandteiltyp_kurzbz;
|
||||
$obj->von = $row->von;
|
||||
$obj->bis = $row->bis;
|
||||
$obj->insertamum = $row->insertamum;
|
||||
$obj->insertvon = $row->insertvon;
|
||||
$obj->updateamum = $row->updateamum;
|
||||
$obj->updatevon = $row->updatevon;
|
||||
$obj->zeitaufzeichnung = $row->zeitaufzeichnung;
|
||||
$obj->azgrelevant = $row->azgrelevant;
|
||||
$obj->homeoffice = $row->homeoffice;
|
||||
|
||||
$this->result[] = $obj;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = "Fehler bei der Abfrage aufgetreten";
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Holt alle Vertragsbestandteile, die eine Zeitaufzeichnungspflicht haben.
|
||||
*
|
||||
* Set order DESC limit 1 to retrieve only most recent Vertragsbestandteil.
|
||||
* Set order ASC limit 1 to retrieve only first Vertragsbestandteil.
|
||||
*
|
||||
* @param $mitarbeiter_uid
|
||||
* @param string $order
|
||||
* @param null $limit
|
||||
* @return bool
|
||||
*/
|
||||
public function getZaPflichtig($mitarbeiter_uid, $order = 'DESC', $limit = null)
|
||||
{
|
||||
if ($order !== 'ASC' && $order !== 'DESC')
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden der Daten';
|
||||
return false;
|
||||
}
|
||||
|
||||
$qry = 'SELECT
|
||||
vbt.vertragsbestandteil_id, vbt.dienstverhaeltnis_id, vbt.vertragsbestandteiltyp_kurzbz,
|
||||
vbt.von, vbt.bis, vbt.insertamum, vbt.insertvon, vbt.updateamum, vbt.updatevon,
|
||||
vbtza.zeitaufzeichnung, vbtza.azgrelevant, vbtza.homeoffice
|
||||
FROM hr.tbl_vertragsbestandteil_zeitaufzeichnung vbtza
|
||||
JOIN hr.tbl_vertragsbestandteil vbt USING (vertragsbestandteil_id)
|
||||
JOIN hr.tbl_dienstverhaeltnis dv USING (dienstverhaeltnis_id)
|
||||
-- Dienstverhältnis(se) des Mitarbeiters
|
||||
WHERE dv.mitarbeiter_uid = '. $this->db_add_param($mitarbeiter_uid). '
|
||||
-- Zeitaufzeichnungspflichtig
|
||||
AND zeitaufzeichnung = TRUE
|
||||
-- Vertragsbestandteile sind aktuell, liegen nach dem GoLive und starten vor dem aktuellen Monatsletzten
|
||||
AND(
|
||||
(COALESCE(vbt.bis, NOW()::date) > '. $this->db_add_param(CASETIME_TIMESHEET_GOLIVE). '::date) AND
|
||||
(vbt.von < (date_trunc(\'month\', NOW()) + interval \'1 month - 1 day\')::date)
|
||||
)
|
||||
ORDER BY vbt.von ' . $order;
|
||||
|
||||
|
||||
if (!is_null($limit))
|
||||
{
|
||||
$qry .= ' LIMIT ' . $this->db_add_param($limit, FHC_INTEGER);
|
||||
}
|
||||
|
||||
if ($result = $this->db_query($qry))
|
||||
{
|
||||
if ($this->db_num_rows($result) > 0)
|
||||
{
|
||||
$this->result = array();
|
||||
|
||||
while ($row = $this->db_fetch_object())
|
||||
{
|
||||
$obj = new stdClass();
|
||||
|
||||
$obj->vertragsbestandteil_id = $row->vertragsbestandteil_id;
|
||||
$obj->dienstverhaeltnis_id = $row->dienstverhaeltnis_id;
|
||||
$obj->vertragsbestandteiltyp_kurzbz = $row->vertragsbestandteiltyp_kurzbz;
|
||||
$obj->von = $row->von;
|
||||
$obj->bis = $row->bis;
|
||||
$obj->insertamum = $row->insertamum;
|
||||
$obj->insertvon = $row->insertvon;
|
||||
$obj->updateamum = $row->updateamum;
|
||||
$obj->updatevon = $row->updatevon;
|
||||
$obj->zeitaufzeichnung = $row->zeitaufzeichnung;
|
||||
$obj->azgrelevant = $row->azgrelevant;
|
||||
$obj->homeoffice = $row->homeoffice;
|
||||
|
||||
$this->result[] = $obj;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = "Fehler bei der Abfrage aufgetreten";
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Prueft ob MitarbeiterIn am Tag des uebergebenen $datums AZG-relevant ist.
|
||||
* Wenn kein Datum übergeben wird, wird das heutige Datum gesetzt.
|
||||
*
|
||||
* @param $mitarbeiter_uid
|
||||
* @param string $timestamp DD-MM-YYYY
|
||||
* @return bool
|
||||
*/
|
||||
public function isAzgRelevant($mitarbeiter_uid, $datum = null)
|
||||
{
|
||||
|
||||
$timestamp = is_null($datum) ? 'NOW()' : '(date('. $this->db_add_param($datum).'))';
|
||||
|
||||
$qry = 'SELECT
|
||||
vbt.vertragsbestandteil_id, vbt.dienstverhaeltnis_id, vbt.vertragsbestandteiltyp_kurzbz,
|
||||
vbt.von, vbt.bis, vbt.insertamum, vbt.insertvon, vbt.updateamum, vbt.updatevon,
|
||||
vbtza.zeitaufzeichnung, vbtza.azgrelevant, vbtza.homeoffice
|
||||
FROM hr.tbl_vertragsbestandteil_zeitaufzeichnung vbtza
|
||||
JOIN hr.tbl_vertragsbestandteil vbt USING (vertragsbestandteil_id)
|
||||
JOIN hr.tbl_dienstverhaeltnis dv USING (dienstverhaeltnis_id)
|
||||
-- Dienstverhältnis(se) des Mitarbeiters
|
||||
WHERE dv.mitarbeiter_uid = '. $this->db_add_param($mitarbeiter_uid). '
|
||||
-- AZG-relevant...
|
||||
AND azgrelevant = TRUE
|
||||
-- ...am aktuellen Tag (default) oder am Tag des übergebenen $datums
|
||||
AND (
|
||||
(' . $timestamp . '::date BETWEEN vbt.von AND vbt.bis)
|
||||
OR
|
||||
(vbt.bis IS NULL AND ' . $timestamp . '::date > vbt.von)
|
||||
)
|
||||
ORDER BY vbt.von DESC --zur Sicherheit: aktuellster
|
||||
LIMIT 1';
|
||||
|
||||
if ($result = $this->db_query($qry))
|
||||
{
|
||||
if ($this->db_num_rows($result) > 0)
|
||||
{
|
||||
$this->result = array();
|
||||
|
||||
while ($row = $this->db_fetch_object())
|
||||
{
|
||||
$obj = new stdClass();
|
||||
|
||||
$obj->vertragsbestandteil_id = $row->vertragsbestandteil_id;
|
||||
$obj->dienstverhaeltnis_id = $row->dienstverhaeltnis_id;
|
||||
$obj->vertragsbestandteiltyp_kurzbz = $row->vertragsbestandteiltyp_kurzbz;
|
||||
$obj->von = $row->von;
|
||||
$obj->bis = $row->bis;
|
||||
$obj->insertamum = $row->insertamum;
|
||||
$obj->insertvon = $row->insertvon;
|
||||
$obj->updateamum = $row->updateamum;
|
||||
$obj->updatevon = $row->updatevon;
|
||||
$obj->zeitaufzeichnung = $row->zeitaufzeichnung;
|
||||
$obj->azgrelevant = $row->azgrelevant;
|
||||
$obj->homeoffice = $row->homeoffice;
|
||||
|
||||
$this->result[] = $obj;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = "Fehler bei der Abfrage aufgetreten";
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Prueft ob MitarbeiterIn am Tag des uebergebenen $datums Homeoffice aktiv gesetzt hat.
|
||||
* Wenn kein Datum übergeben wird, wird das heutige Datum gesetzt.
|
||||
*
|
||||
* @param $mitarbeiter_uid
|
||||
* @param string $timestamp DD-MM-YYYY
|
||||
* @return bool
|
||||
*/
|
||||
public function hasHomeoffice($mitarbeiter_uid, $datum = null)
|
||||
{
|
||||
|
||||
$timestamp = is_null($datum) ? 'NOW()' : '(date('. $this->db_add_param($datum).'))';
|
||||
|
||||
$qry = 'SELECT
|
||||
vbt.vertragsbestandteil_id, vbt.dienstverhaeltnis_id, vbt.vertragsbestandteiltyp_kurzbz,
|
||||
vbt.von, vbt.bis, vbt.insertamum, vbt.insertvon, vbt.updateamum, vbt.updatevon,
|
||||
vbtza.zeitaufzeichnung, vbtza.azgrelevant, vbtza.homeoffice
|
||||
FROM hr.tbl_vertragsbestandteil_zeitaufzeichnung vbtza
|
||||
JOIN hr.tbl_vertragsbestandteil vbt USING (vertragsbestandteil_id)
|
||||
JOIN hr.tbl_dienstverhaeltnis dv USING (dienstverhaeltnis_id)
|
||||
-- Dienstverhältnis(se) des Mitarbeiters
|
||||
WHERE dv.mitarbeiter_uid = '. $this->db_add_param($mitarbeiter_uid). '
|
||||
-- Homeoffice...
|
||||
AND homeoffice = TRUE
|
||||
-- ...am aktuellen Tag (default) oder am Tag des übergebenen $datums
|
||||
AND (
|
||||
(' . $timestamp . '::date BETWEEN vbt.von AND vbt.bis)
|
||||
OR
|
||||
(vbt.bis IS NULL AND ' . $timestamp . '::date >= vbt.von)
|
||||
)
|
||||
ORDER BY vbt.von DESC -- Zur Sicherheit: aktuellster
|
||||
LIMIT 1';
|
||||
|
||||
if ($result = $this->db_query($qry))
|
||||
{
|
||||
if ($this->db_num_rows($result) > 0)
|
||||
{
|
||||
$this->result = array();
|
||||
|
||||
while ($row = $this->db_fetch_object())
|
||||
{
|
||||
$obj = new stdClass();
|
||||
|
||||
$obj->vertragsbestandteil_id = $row->vertragsbestandteil_id;
|
||||
$obj->dienstverhaeltnis_id = $row->dienstverhaeltnis_id;
|
||||
$obj->vertragsbestandteiltyp_kurzbz = $row->vertragsbestandteiltyp_kurzbz;
|
||||
$obj->von = $row->von;
|
||||
$obj->bis = $row->bis;
|
||||
$obj->insertamum = $row->insertamum;
|
||||
$obj->insertvon = $row->insertvon;
|
||||
$obj->updateamum = $row->updateamum;
|
||||
$obj->updatevon = $row->updatevon;
|
||||
$obj->zeitaufzeichnung = $row->zeitaufzeichnung;
|
||||
$obj->azgrelevant = $row->azgrelevant;
|
||||
$obj->homeoffice = $row->homeoffice;
|
||||
|
||||
$this->result[] = $obj;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = "Fehler bei der Abfrage aufgetreten";
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Prueft ob MitarbeiterIn im Monat des uebergebenen $datums einen Allin Vertragsbestandteil hat.
|
||||
* Wenn kein Datum übergeben wird, wird das heutige Datum gesetzt.
|
||||
*
|
||||
* @param $mitarbeiter_uid
|
||||
* @param string $datum
|
||||
* @return bool
|
||||
*/
|
||||
public function isAllin($mitarbeiter_uid, $datum = null)
|
||||
{
|
||||
$timestamp = is_null($datum) ? 'NOW()' : '(date('. $this->db_add_param($datum).'))';
|
||||
|
||||
$qry = 'SELECT
|
||||
vbt.vertragsbestandteil_id, vbt.dienstverhaeltnis_id, vbt.vertragsbestandteiltyp_kurzbz,
|
||||
vbt.von, vbt.bis, vbt.insertamum, vbt.insertvon, vbt.updateamum, vbt.updatevon,
|
||||
vbtft.freitexttyp_kurzbz, vbtftt.bezeichnung, vbtft.titel, vbtft.anmerkung
|
||||
FROM hr.tbl_vertragsbestandteil_freitext vbtft
|
||||
JOIN hr.tbl_vertragsbestandteil vbt USING (vertragsbestandteil_id)
|
||||
JOIN hr.tbl_dienstverhaeltnis dv USING (dienstverhaeltnis_id)
|
||||
JOIN hr.tbl_vertragsbestandteil_freitexttyp vbtftt USING (freitexttyp_kurzbz)
|
||||
-- Dienstverhältnis(se) des Mitarbeiters
|
||||
WHERE dv.mitarbeiter_uid = '. $this->db_add_param($mitarbeiter_uid). '
|
||||
-- All-In
|
||||
AND freitexttyp_kurzbz = \'allin\'
|
||||
-- Vertragsbestandteil Freitext ist im Monat des übergebenen $datums
|
||||
AND ((date_trunc(\'month\', '. $timestamp. ')::date < vbt.bis AND (date_trunc(\'month\', '. $timestamp. ') + interval \'1 month - 1 day\')::date > vbt.von) OR (vbt.bis IS NULL AND (date_trunc(\'month\', '. $timestamp. ') + interval \'1 month - 1 day\')::date > vbt.von))
|
||||
-- Vorerst nur check, ob zumindest ein aufrechter Allin Vertragsbestandteil. Später Unterscheidung nach Dienstverhältnis.
|
||||
--ORDER BY vbt.von DESC -- aktuellster
|
||||
LIMIT 1';
|
||||
|
||||
if ($result = $this->db_query($qry))
|
||||
{
|
||||
if ($this->db_num_rows($result) > 0)
|
||||
{
|
||||
$this->result = array();
|
||||
|
||||
while ($row = $this->db_fetch_object())
|
||||
{
|
||||
$obj = new stdClass();
|
||||
|
||||
$obj->vertragsbestandteil_id = $row->vertragsbestandteil_id;
|
||||
$obj->dienstverhaeltnis_id = $row->dienstverhaeltnis_id;
|
||||
$obj->vertragsbestandteiltyp_kurzbz = $row->vertragsbestandteiltyp_kurzbz;
|
||||
$obj->von = $row->von;
|
||||
$obj->bis = $row->bis;
|
||||
$obj->insertamum = $row->insertamum;
|
||||
$obj->insertvon = $row->insertvon;
|
||||
$obj->updateamum = $row->updateamum;
|
||||
$obj->updatevon = $row->updatevon;
|
||||
$obj->freitexttyp_kurzbz = $row->freitexttyp_kurzbz;
|
||||
$obj->bezeichnung = $row->bezeichnung;
|
||||
$obj->titel = $row->titel;
|
||||
$obj->anmerkung = $row->anmerkung;
|
||||
|
||||
$this->result[] = $obj;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = "Fehler bei der Abfrage aufgetreten";
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Prüft, ob MitarbeiterIn zum Abfragedatum karenziert ist.
|
||||
* Wenn kein Datum übergeben wird, wird das heutige Datum gesetzt.
|
||||
*
|
||||
* @param $mitarbeiter_uid
|
||||
* @param null $datum
|
||||
* @return bool
|
||||
*/
|
||||
public function isKarenziert($mitarbeiter_uid, $datum = null)
|
||||
{
|
||||
$timestamp = is_null($datum) ? 'NOW()' : '(date('. $this->db_add_param($datum).'))';
|
||||
|
||||
$qry = '
|
||||
SELECT
|
||||
1
|
||||
FROM
|
||||
hr.tbl_vertragsbestandteil vbt
|
||||
JOIN
|
||||
hr.tbl_dienstverhaeltnis dv USING (dienstverhaeltnis_id)
|
||||
WHERE
|
||||
dv.mitarbeiter_uid = '. $this->db_add_param($mitarbeiter_uid). '
|
||||
AND
|
||||
vbt.vertragsbestandteiltyp_kurzbz = \'karenz\'
|
||||
AND
|
||||
vbt.von::date <= '. $timestamp. '::date
|
||||
AND
|
||||
vbt.bis::date >= '. $timestamp. '::date
|
||||
';
|
||||
|
||||
|
||||
if ($result = $this->db_query($qry))
|
||||
{
|
||||
if ($this->db_num_rows($result) > 0)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = "Fehler bei der Abfrage aufgetreten";
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Arbeits-Wochenstunden eines/r MitarbeiterIn im Monat des uebergebenen $datums. Karenzierte Dienstverhältnisse
|
||||
* werden nicht zurückgegeben. Dafür aber ein eventuelles 2.DV mit geringfügiger Beschäftigung neben der Karenz.
|
||||
* Wenn kein Datum übergeben wird, wird das heutige Datum gesetzt.
|
||||
*
|
||||
* @param $mitarbeiter_uid
|
||||
* @param null $datum
|
||||
* @return bool
|
||||
*/
|
||||
public function getWochenstunden($mitarbeiter_uid, $datum = null)
|
||||
{
|
||||
$timestamp = is_null($datum) ? 'NOW()' : '(date('. $this->db_add_param($datum).'))';
|
||||
|
||||
$qry = 'SELECT
|
||||
vbtstd.vertragsbestandteil_id,
|
||||
vbtstd.wochenstunden,
|
||||
vbtstd.teilzeittyp_kurzbz
|
||||
FROM hr.tbl_vertragsbestandteil_stunden vbtstd
|
||||
JOIN hr.tbl_vertragsbestandteil vbt USING (vertragsbestandteil_id)
|
||||
JOIN hr.tbl_dienstverhaeltnis dv USING (dienstverhaeltnis_id)
|
||||
-- Dienstverhältnis(se) des Mitarbeiters
|
||||
WHERE dv.mitarbeiter_uid = '. $this->db_add_param($mitarbeiter_uid). '
|
||||
-- Vertragsbestandteil ist im Monat des übergebenen $datums
|
||||
AND ((date_trunc(\'month\', '. $timestamp. ')::date < vbt.bis AND (date_trunc(\'month\', '. $timestamp. ') + interval \'1 month - 1 day\')::date > vbt.von) OR (vbt.bis IS NULL AND (date_trunc(\'month\', '. $timestamp. ') + interval \'1 month - 1 day\')::date > vbt.von))
|
||||
-- DV mit Vertragsbestandteile Karenz herausnehmen, weil die Wochenstunden dieser DV dann ruhen
|
||||
AND (
|
||||
SELECT
|
||||
COUNT(*) AS karenzen
|
||||
FROM
|
||||
hr.tbl_vertragsbestandteil vbt
|
||||
WHERE
|
||||
vbt.dienstverhaeltnis_id = dv.dienstverhaeltnis_id
|
||||
AND
|
||||
vbt.vertragsbestandteiltyp_kurzbz = \'karenz\'
|
||||
AND
|
||||
vbt.von::date <= '. $timestamp. '::date
|
||||
AND
|
||||
vbt.bis::date >= '. $timestamp. '::date
|
||||
) = 0
|
||||
ORDER BY vbt.von DESC -- aktuellster
|
||||
LIMIT 1';
|
||||
|
||||
if ($result = $this->db_query($qry))
|
||||
{
|
||||
if ($this->db_num_rows($result) > 0)
|
||||
{
|
||||
$this->result = array();
|
||||
|
||||
while ($row = $this->db_fetch_object())
|
||||
{
|
||||
$obj = new stdClass();
|
||||
|
||||
$obj->vertragsbestandteil_id = $row->vertragsbestandteil_id;
|
||||
$obj->wochenstunden = $row->wochenstunden;
|
||||
$obj->teilzeittyp_kurzbz = $row->teilzeittyp_kurzbz;
|
||||
|
||||
$this->result[] = $obj;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = "Fehler bei der Abfrage aufgetreten";
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
@@ -123,7 +123,7 @@ class wochenplan extends basis_db
|
||||
}
|
||||
|
||||
/**
|
||||
* initialisiert den Studenplan
|
||||
* initialisiert den Stundenplan
|
||||
*
|
||||
*/
|
||||
public function init_stdplan()
|
||||
@@ -445,6 +445,7 @@ class wochenplan extends basis_db
|
||||
$this->std_plan[$tag][$stunde][$idx]->stundenplan_id=$this->wochenplan->lehrstunden[$i]->stundenplan_id;
|
||||
$this->std_plan[$tag][$stunde][$idx]->lektor_uid=$this->wochenplan->lehrstunden[$i]->lektor_uid;
|
||||
$this->std_plan[$tag][$stunde][$idx]->lektor=$this->wochenplan->lehrstunden[$i]->lektor_kurzbz;
|
||||
$this->std_plan[$tag][$stunde][$idx]->mitarbeiter_kurzbz=$this->wochenplan->lehrstunden[$i]->mitarbeiter_kurzbz;
|
||||
$this->std_plan[$tag][$stunde][$idx]->ort=$this->wochenplan->lehrstunden[$i]->ort_kurzbz;
|
||||
$this->std_plan[$tag][$stunde][$idx]->stg=$this->wochenplan->lehrstunden[$i]->studiengang;
|
||||
$this->std_plan[$tag][$stunde][$idx]->stg_kz=$this->wochenplan->lehrstunden[$i]->studiengang_kz;
|
||||
@@ -736,7 +737,10 @@ class wochenplan extends basis_db
|
||||
{
|
||||
$unr[]=$lehrstunde->unr;
|
||||
// Lektoren
|
||||
$lektor[]=$lehrstunde->lektor;
|
||||
if ($lehrstunde->mitarbeiter_kurzbz === null)
|
||||
$lektor[] = $lehrstunde->lektor;
|
||||
else
|
||||
$lektor[]=$lehrstunde->mitarbeiter_kurzbz;
|
||||
// Lehrverband
|
||||
$typ='';
|
||||
if ($lehrstunde->reservierung)
|
||||
@@ -1450,7 +1454,10 @@ class wochenplan extends basis_db
|
||||
if ($lehrstunde->unr==$unr)
|
||||
{
|
||||
// Lektoren
|
||||
$lektor[]=$lehrstunde->lektor;
|
||||
if ($lehrstunde->mitarbeiter_kurzbz === null)
|
||||
$lektor[] = $lehrstunde->lektor;
|
||||
else
|
||||
$lektor[]=$lehrstunde->mitarbeiter_kurzbz;
|
||||
// Lehrverband
|
||||
$lvb=$lehrstunde->stg.'-'.$lehrstunde->sem;
|
||||
if ($lehrstunde->ver!=null && $lehrstunde->ver!='0' && $lehrstunde->ver!='')
|
||||
@@ -2364,7 +2371,10 @@ class wochenplan extends basis_db
|
||||
|
||||
$unr[]=$lehrstunde->unr;
|
||||
// Lektoren
|
||||
$lektor[]=$lehrstunde->lektor;
|
||||
if ($lehrstunde->mitarbeiter_kurzbz === null)
|
||||
$lektor[] = $lehrstunde->lektor;
|
||||
else
|
||||
$lektor[]=$lehrstunde->mitarbeiter_kurzbz;
|
||||
$lektor_uids[]=$lehrstunde->lektor_uid;
|
||||
// Lehrverband
|
||||
$lvb=$lehrstunde->stg.'-'.$lehrstunde->sem;
|
||||
@@ -2516,6 +2526,7 @@ class wochenplan extends basis_db
|
||||
if (!mb_strstr($this->std_plan[$i][$j][$idx1]->lektor,$this->std_plan[$i][$j][$idx]->lektor))
|
||||
{
|
||||
$this->std_plan[$i][$j][$idx]->lektor.=' / '.$this->std_plan[$i][$j][$idx1]->lektor;
|
||||
$this->std_plan[$i][$j][$idx]->mitarbeiter_kurzbz.=' / '.$this->std_plan[$i][$j][$idx1]->mitarbeiter_kurzbz;
|
||||
}
|
||||
|
||||
//Ort
|
||||
@@ -2549,7 +2560,7 @@ class wochenplan extends basis_db
|
||||
//"Betreff","Beginnt am","Beginnt um","Endet am","Endet um","Ganztaegiges Ereignis","Erinnerung Ein/Aus","Erinnerung am","Erinnerung um","Besprechungsplanung","Erforderliche Teilnehmer","Optionale Teilnehmer","Besprechungsressourcen","Abrechnungsinformationen","Beschreibung",
|
||||
//"Kategorien","Ort","Prioritaet","Privat","Reisekilometer","Vertraulichkeit","Zeitspanne zeigen als"
|
||||
echo $this->crlf.'"'.$this->std_plan[$i][$j][$idx]->lehrfach.(isset($this->std_plan[$i][$j][$idx]->lehrform) && $this->std_plan[$i][$j][$idx]->lehrform!=''?'-'.$this->std_plan[$i][$j][$idx]->lehrform:'').($lvb!=''?' - '.$lvb:'').'","'.$start_date.'","'.$start_time.'","'.$end_date.'","'.$end_time.'","Aus","Aus",,,,,,,,"Stundenplan';
|
||||
echo $this->crlf.$this->std_plan[$i][$j][$idx]->lehrfach.$this->crlf.$this->std_plan[$i][$j][$idx]->lektor.$this->crlf.$lvb.$this->crlf.$this->std_plan[$i][$j][$idx]->ort.(LVPLAN_ANMERKUNG_ANZEIGEN?$this->crlf.$this->std_plan[$i][$j][$idx]->anmerkung:'').'","StundenplanFH","'.$this->std_plan[$i][$j][$idx]->ort.'","Normal","Aus",,"Normal","2"';
|
||||
echo $this->crlf.$this->std_plan[$i][$j][$idx]->lehrfach.$this->crlf.(($this->std_plan[$i][$j][$idx]->mitarbeiter_kurzbz === null) ? $this->std_plan[$i][$j][$idx]->lektor : $this->std_plan[$i][$j][$idx]->mitarbeiter_kurzbz).$this->crlf.$lvb.$this->crlf.$this->std_plan[$i][$j][$idx]->ort.(LVPLAN_ANMERKUNG_ANZEIGEN?$this->crlf.$this->std_plan[$i][$j][$idx]->anmerkung:'').'","StundenplanFH","'.$this->std_plan[$i][$j][$idx]->ort.'","Normal","Aus",,"Normal","2"';
|
||||
}
|
||||
elseif ($target=='ical')
|
||||
{
|
||||
@@ -2564,9 +2575,9 @@ class wochenplan extends basis_db
|
||||
$end_date_time_ical = $eda[2].$eda[1].$eda[0].'T'.sprintf('%02s',($eta[0])).$eta[1].$eta[2]; //neu gruppieren der Startzeit und des Startdatums
|
||||
|
||||
echo $this->crlf.'BEGIN:VEVENT'.$this->crlf
|
||||
.'UID:'.'FH'.str_replace(',',' ',$lvb.$this->std_plan[$i][$j][$idx]->ort.$this->std_plan[$i][$j][$idx]->lektor.$lehrfach[$idx].$start_date_time_ical.$end_date_time_ical.$this->crlf)
|
||||
.'UID:'.'FH'.str_replace(',',' ',$lvb.$this->std_plan[$i][$j][$idx]->ort.(($this->std_plan[$i][$j][$idx]->mitarbeiter_kurzbz === null) ? $this->std_plan[$i][$j][$idx]->lektor : $this->std_plan[$i][$j][$idx]->mitarbeiter_kurzbz).$lehrfach[$idx].$start_date_time_ical.$end_date_time_ical.$this->crlf)
|
||||
.'SUMMARY:'.str_replace(',',' ',$lehrfach[$idx].' '.$this->std_plan[$i][$j][$idx]->ort.' - '.$lvb.$this->crlf)
|
||||
.'DESCRIPTION:'.str_replace(',',' ',$lehrfach[$idx].'\n'.$this->std_plan[$i][$j][$idx]->lektor.'\n'.$lvb.'\n'.$this->std_plan[$i][$j][$idx]->ort.(LVPLAN_ANMERKUNG_ANZEIGEN?'\n'.$this->std_plan[$i][$j][$idx]->anmerkung:'').$this->crlf)
|
||||
.'DESCRIPTION:'.str_replace(',',' ',$lehrfach[$idx].'\n'.(($this->std_plan[$i][$j][$idx]->mitarbeiter_kurzbz === null) ? $this->std_plan[$i][$j][$idx]->lektor : $this->std_plan[$i][$j][$idx]->mitarbeiter_kurzbz).'\n'.$lvb.'\n'.$this->std_plan[$i][$j][$idx]->ort.(LVPLAN_ANMERKUNG_ANZEIGEN?'\n'.$this->std_plan[$i][$j][$idx]->anmerkung:'').$this->crlf)
|
||||
.'LOCATION:'.$this->std_plan[$i][$j][$idx]->ort.$this->crlf
|
||||
.'CATEGORIES:'.$lvplan_kategorie.$this->crlf
|
||||
.'DTSTART;TZID=Europe/Vienna:'.$start_date_time_ical.$this->crlf
|
||||
@@ -2606,9 +2617,9 @@ class wochenplan extends basis_db
|
||||
$start_date_time_ical = $sda[2].$sda[1].$sda[0].'T'.sprintf('%02s',($sta[0])).$sta[1].$sta[2]; //neu gruppieren der Startzeit und des Startdatums
|
||||
$end_date_time_ical = $eda[2].$eda[1].$eda[0].'T'.sprintf('%02s',($eta[0])).$eta[1].$eta[2]; //neu gruppieren der Startzeit und des Startdatums
|
||||
|
||||
$UID = 'FH'.$lvb.$this->std_plan[$i][$j][$idx]->ort.$this->std_plan[$i][$j][$idx]->lektor.$lehrfach[$idx].$start_date_time_ical.$end_date_time_ical;
|
||||
$UID = 'FH'.$lvb.$this->std_plan[$i][$j][$idx]->ort.(($this->std_plan[$i][$j][$idx]->mitarbeiter_kurzbz === null) ? $this->std_plan[$i][$j][$idx]->lektor : $this->std_plan[$i][$j][$idx]->mitarbeiter_kurzbz).$lehrfach[$idx].$start_date_time_ical.$end_date_time_ical;
|
||||
$Summary = $lehrfach[$idx].' '.$this->std_plan[$i][$j][$idx]->ort.' - '.$lvb;
|
||||
$description = $lehrfach[$idx].'\n'.$this->std_plan[$i][$j][$idx]->lektor.'\n'.$lvb.'\n'.$this->std_plan[$i][$j][$idx]->ort.(LVPLAN_ANMERKUNG_ANZEIGEN?'\n'.$this->std_plan[$i][$j][$idx]->anmerkung:'');
|
||||
$description = $lehrfach[$idx].'\n'.(($this->std_plan[$i][$j][$idx]->mitarbeiter_kurzbz === null) ? $this->std_plan[$i][$j][$idx]->lektor : $this->std_plan[$i][$j][$idx]->mitarbeiter_kurzbz).'\n'.$lvb.'\n'.$this->std_plan[$i][$j][$idx]->ort.(LVPLAN_ANMERKUNG_ANZEIGEN?'\n'.$this->std_plan[$i][$j][$idx]->anmerkung:'');
|
||||
|
||||
$UID = str_replace(',',' ',$UID);
|
||||
$Summary = str_replace(',',' ',$Summary);
|
||||
@@ -2646,7 +2657,7 @@ class wochenplan extends basis_db
|
||||
else
|
||||
{
|
||||
echo $this->crlf.'"'.$lehrfach[$idx].'","'.$lvplan_kategorie.'","'.$this->std_plan[$i][$j][$idx]->ort.'","Stundenplan'.$this->crlf.$this->std_plan[$i][$j][$idx]->lehrfach.$this->crlf;
|
||||
echo $this->std_plan[$i][$j][$idx]->lektor.$this->crlf.$lvb.$this->crlf.$this->std_plan[$i][$j][$idx]->ort.(LVPLAN_ANMERKUNG_ANZEIGEN?$this->crlf.$this->std_plan[$i][$j][$idx]->anmerkung:'').'","Stundenplan",';
|
||||
echo (($this->std_plan[$i][$j][$idx]->mitarbeiter_kurzbz === null) ? $this->std_plan[$i][$j][$idx]->lektor : $this->std_plan[$i][$j][$idx]->mitarbeiter_kurzbz).$this->crlf.$lvb.$this->crlf.$this->std_plan[$i][$j][$idx]->ort.(LVPLAN_ANMERKUNG_ANZEIGEN?$this->crlf.$this->std_plan[$i][$j][$idx]->anmerkung:'').'","Stundenplan",';
|
||||
echo '"'.$start_date.'","'.$start_time.'","'.$end_date.'","'.$end_time.'",,,,,';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
<?php
|
||||
require_once('zeitaufzeichnung_import.class.php');
|
||||
require_once('../../../include/organisationseinheit.class.php');
|
||||
require_once('../../../include/vertragsbestandteil.class.php');
|
||||
|
||||
/**
|
||||
* Description of zeitaufzeichnung_csv_import
|
||||
@@ -348,17 +349,16 @@ class zeitaufzeichnung_import_csv extends zeitaufzeichnung_import {
|
||||
if (strtolower($data[self::HOMEOFFICE]) == 'true') {
|
||||
// check, ob homeoffice gemäß Bisverwendung
|
||||
$vonCSV = $this->datum->formatDatum($data[self::STARTDT], 'Y-m-d');
|
||||
$verwendung = new bisverwendung();
|
||||
$verwendung->getVerwendungDatum($data[self::USER], $vonCSV);
|
||||
|
||||
foreach ($verwendung->result as $v) {
|
||||
if ($v->homeoffice) {
|
||||
$this->zeit->homeoffice = true;
|
||||
} else {
|
||||
$this->addWarning($this->p->t("zeitaufzeichnung/homeofficeNichtErlaubt", [$vonCSV]));
|
||||
$this->zeit->homeoffice = false;
|
||||
}
|
||||
}
|
||||
$vbt = new vertragsbestandteil();
|
||||
$homeoffice = $vbt->hasHomeoffice($data[self::USER], $vonCSV);
|
||||
|
||||
if ($homeoffice) {
|
||||
$this->zeit->homeoffice = true;
|
||||
} else {
|
||||
$this->addWarning($this->p->t("zeitaufzeichnung/homeofficeNichtErlaubt", [$vonCSV]));
|
||||
$this->zeit->homeoffice = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+163
-144
@@ -25,23 +25,23 @@ require_once(dirname(__FILE__).'/sprache.class.php');
|
||||
class zgv extends basis_db
|
||||
{
|
||||
|
||||
public $zgv_code;
|
||||
public $zgv_bez;
|
||||
public $zgv_kurzbz;
|
||||
public $zgv_code;
|
||||
public $zgv_bez;
|
||||
public $zgv_kurzbz;
|
||||
|
||||
public $zgvmas_code;
|
||||
public $zgvmas_bez;
|
||||
public $zgvmas_kurzbz;
|
||||
public $zgvmas_code;
|
||||
public $zgvmas_bez;
|
||||
public $zgvmas_kurzbz;
|
||||
|
||||
public $zgvdoktor_code;
|
||||
public $zgvdoktor_bez;
|
||||
public $zgvdoktor_kurzbz;
|
||||
public $zgvdoktor_code;
|
||||
public $zgvdoktor_bez;
|
||||
public $zgvdoktor_kurzbz;
|
||||
|
||||
public $bezeichnung;
|
||||
public $bezeichnung;
|
||||
|
||||
public $result = array();
|
||||
public $result = array();
|
||||
|
||||
public function __construct($zgv_code=null)
|
||||
public function __construct($zgv_code=null)
|
||||
{
|
||||
parent::__construct();
|
||||
|
||||
@@ -49,155 +49,174 @@ class zgv extends basis_db
|
||||
$this->load($zgv_code);
|
||||
}
|
||||
|
||||
/**
|
||||
* Lädt eine zgv von tbl_zgv
|
||||
* @param $zgv_code
|
||||
* @return boolean
|
||||
*/
|
||||
public function load($zgv_code)
|
||||
{
|
||||
$sprache = new sprache();
|
||||
$qry = 'SELECT *,'.$sprache->getSprachQuery('bezeichnung').' FROM bis.tbl_zgv WHERE zgv_code = '.$this->db_add_param($zgv_code, FHC_INTEGER).';';
|
||||
/**
|
||||
* Lädt eine zgv von tbl_zgv
|
||||
* @param $zgv_code
|
||||
* @return boolean
|
||||
*/
|
||||
public function load($zgv_code)
|
||||
{
|
||||
$sprache = new sprache();
|
||||
$qry = 'SELECT *,'.$sprache->getSprachQuery('bezeichnung').' FROM bis.tbl_zgv WHERE zgv_code = '.$this->db_add_param($zgv_code, FHC_INTEGER).';';
|
||||
|
||||
if($result = $this->db_query($qry))
|
||||
{
|
||||
if($row = $this->db_fetch_object($result))
|
||||
{
|
||||
$this->zgv_code = $row->zgv_code;
|
||||
$this->zgv_bez = $row->zgv_bez;
|
||||
$this->zgv_kurzbz = $row->zgv_kurzbz;
|
||||
$this->bezeichnung=$sprache->parseSprachResult('bezeichnung',$row);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = "Fehler bei der Abfrage aufgetreten";
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
if($result = $this->db_query($qry))
|
||||
{
|
||||
if($row = $this->db_fetch_object($result))
|
||||
{
|
||||
$this->zgv_code = $row->zgv_code;
|
||||
$this->zgv_bez = $row->zgv_bez;
|
||||
$this->zgv_kurzbz = $row->zgv_kurzbz;
|
||||
$this->bezeichnung=$sprache->parseSprachResult('bezeichnung',$row);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = "Fehler bei der Abfrage aufgetreten";
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Lädt eine Master-ZGV von tbl_zgvmaster
|
||||
* @param $zgvmas_code
|
||||
* @return boolean
|
||||
*/
|
||||
public function load_mas($zgvmas_code)
|
||||
{
|
||||
$sprache = new sprache();
|
||||
$qry = 'SELECT *,'.$sprache->getSprachQuery('bezeichnung').' FROM bis.tbl_zgvmaster WHERE zgvmas_code = '.$this->db_add_param($zgvmas_code, FHC_INTEGER).';';
|
||||
* Lädt eine Master-ZGV von tbl_zgvmaster
|
||||
* @param $zgvmas_code
|
||||
* @return boolean
|
||||
*/
|
||||
public function load_mas($zgvmas_code)
|
||||
{
|
||||
$sprache = new sprache();
|
||||
$qry = 'SELECT *,'.$sprache->getSprachQuery('bezeichnung').' FROM bis.tbl_zgvmaster WHERE zgvmas_code = '.$this->db_add_param($zgvmas_code, FHC_INTEGER).';';
|
||||
|
||||
if($result = $this->db_query($qry))
|
||||
{
|
||||
if($row = $this->db_fetch_object($result))
|
||||
{
|
||||
$this->zgvmas_code = $row->zgvmas_code;
|
||||
$this->zgvmas_bez = $row->zgvmas_bez;
|
||||
$this->zgvmas_kurzbz = $row->zgvmas_kurzbz;
|
||||
$this->bezeichnung=$sprache->parseSprachResult('bezeichnung',$row);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = "Fehler bei der Abfrage aufgetreten";
|
||||
return false;
|
||||
}
|
||||
if($result = $this->db_query($qry))
|
||||
{
|
||||
if($row = $this->db_fetch_object($result))
|
||||
{
|
||||
$this->zgvmas_code = $row->zgvmas_code;
|
||||
$this->zgvmas_bez = $row->zgvmas_bez;
|
||||
$this->zgvmas_kurzbz = $row->zgvmas_kurzbz;
|
||||
$this->bezeichnung=$sprache->parseSprachResult('bezeichnung',$row);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = "Fehler bei der Abfrage aufgetreten";
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
/**
|
||||
* lädt alle ZGVs von tbl_zgv
|
||||
* @return boolean
|
||||
*/
|
||||
public function getAll($onlyAktiv = false)
|
||||
{
|
||||
$sprache = new sprache();
|
||||
$qry ='SELECT *,'.$sprache->getSprachQuery('bezeichnung').' FROM bis.tbl_zgv';
|
||||
|
||||
/**
|
||||
* lädt alle ZGVs von tbl_zgv
|
||||
* @return boolean
|
||||
*/
|
||||
public function getAll()
|
||||
{
|
||||
$sprache = new sprache();
|
||||
$qry ='SELECT *,'.$sprache->getSprachQuery('bezeichnung').' FROM bis.tbl_zgv;';
|
||||
if ($onlyAktiv === true)
|
||||
{
|
||||
$qry .= " WHERE aktiv";
|
||||
}
|
||||
|
||||
if($result = $this->db_query($qry))
|
||||
{
|
||||
while($row = $this->db_fetch_object($result))
|
||||
{
|
||||
$zgv = new zgv();
|
||||
$zgv->zgv_code = $row->zgv_code;
|
||||
$zgv->zgv_bez = $row->zgv_bez;
|
||||
$zgv->zgv_kurzbz = $row->zgv_kurzbz;
|
||||
$zgv->bezeichnung=$sprache->parseSprachResult('bezeichnung',$row);
|
||||
$qry .= " ORDER BY zgv_bez";
|
||||
|
||||
$this->result[] = $zgv;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler bei der Abfrage aufgetreten';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if($result = $this->db_query($qry))
|
||||
{
|
||||
while($row = $this->db_fetch_object($result))
|
||||
{
|
||||
$zgv = new zgv();
|
||||
$zgv->zgv_code = $row->zgv_code;
|
||||
$zgv->zgv_bez = $row->zgv_bez;
|
||||
$zgv->zgv_kurzbz = $row->zgv_kurzbz;
|
||||
$zgv->bezeichnung=$sprache->parseSprachResult('bezeichnung',$row);
|
||||
|
||||
/**
|
||||
* Lädt alle Master ZGVs von tbl_zgvmaster
|
||||
* @return boolean
|
||||
*/
|
||||
public function getAllMaster()
|
||||
{
|
||||
$sprache = new sprache();
|
||||
$qry = 'SELECT *,'.$sprache->getSprachQuery('bezeichnung').' FROM bis.tbl_zgvmaster;';
|
||||
$this->result[] = $zgv;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler bei der Abfrage aufgetreten';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if($result = $this->db_query($qry))
|
||||
{
|
||||
while($row = $this->db_fetch_object($result))
|
||||
{
|
||||
$zgv_master = new zgv();
|
||||
/**
|
||||
* Lädt alle Master ZGVs von tbl_zgvmaster
|
||||
* @return boolean
|
||||
*/
|
||||
public function getAllMaster($onlyAktiv = false)
|
||||
{
|
||||
$sprache = new sprache();
|
||||
$qry = 'SELECT *,'.$sprache->getSprachQuery('bezeichnung').' FROM bis.tbl_zgvmaster';
|
||||
|
||||
$zgv_master->zgvmas_code = $row->zgvmas_code;
|
||||
$zgv_master->zgvmas_bez = $row->zgvmas_bez;
|
||||
$zgv_master->zgvmas_kurzbz = $row->zgvmas_kurzbz;
|
||||
$zgv_master->bezeichnung=$sprache->parseSprachResult('bezeichnung',$row);
|
||||
if ($onlyAktiv === true)
|
||||
{
|
||||
$qry .= " WHERE aktiv";
|
||||
}
|
||||
|
||||
$this->result[] = $zgv_master;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler bei der Abfrage aufgetreten';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
$qry .= " ORDER BY zgvmas_bez";
|
||||
|
||||
/**
|
||||
* Lädt alle Doktor ZGVs von tbl_zgvdoktor
|
||||
* @return boolean
|
||||
*/
|
||||
public function getAllDoktor()
|
||||
{
|
||||
$sprache = new sprache();
|
||||
$qry='SELECT *,'.$sprache->getSprachQuery('bezeichnung').' FROM bis.tbl_zgvdoktor;';
|
||||
if($result = $this->db_query($qry))
|
||||
{
|
||||
while($row = $this->db_fetch_object($result))
|
||||
{
|
||||
$zgv_master = new zgv();
|
||||
|
||||
if($result = $this->db_query($qry))
|
||||
{
|
||||
while($row= $this->db_fetch_object($result))
|
||||
{
|
||||
$zgv_doktor = new zgv();
|
||||
$zgv_master->zgvmas_code = $row->zgvmas_code;
|
||||
$zgv_master->zgvmas_bez = $row->zgvmas_bez;
|
||||
$zgv_master->zgvmas_kurzbz = $row->zgvmas_kurzbz;
|
||||
$zgv_master->bezeichnung=$sprache->parseSprachResult('bezeichnung',$row);
|
||||
|
||||
$zgv_doktor->zgvdoktor_code = $row->zgvdoktor_code;
|
||||
$zgv_doktor->zgvdoktor_bez = $row->zgvdoktor_bez;
|
||||
$zgv_doktor->zgvdoktor_kurzbz = $row->zgvdoktor_kurzbz;
|
||||
$zgv_doktor->bezeichnung=$sprache->parseSprachResult('bezeichnung',$row);
|
||||
$this->result[] = $zgv_master;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler bei der Abfrage aufgetreten';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
$this->result[] = $zgv_doktor;
|
||||
}
|
||||
/**
|
||||
* Lädt alle Doktor ZGVs von tbl_zgvdoktor
|
||||
* @return boolean
|
||||
*/
|
||||
public function getAllDoktor($onlyAktiv = false)
|
||||
{
|
||||
$sprache = new sprache();
|
||||
$qry='SELECT *,'.$sprache->getSprachQuery('bezeichnung').' FROM bis.tbl_zgvdoktor';
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->erromsg = "Fehler bei der Abfrage aufgetreten";
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if ($onlyAktiv === true)
|
||||
{
|
||||
$qry .= " WHERE aktiv";
|
||||
}
|
||||
|
||||
$qry .= " ORDER BY zgvdoktor_bez";
|
||||
|
||||
|
||||
if($result = $this->db_query($qry))
|
||||
{
|
||||
while($row= $this->db_fetch_object($result))
|
||||
{
|
||||
$zgv_doktor = new zgv();
|
||||
|
||||
$zgv_doktor->zgvdoktor_code = $row->zgvdoktor_code;
|
||||
$zgv_doktor->zgvdoktor_bez = $row->zgvdoktor_bez;
|
||||
$zgv_doktor->zgvdoktor_kurzbz = $row->zgvdoktor_kurzbz;
|
||||
$zgv_doktor->bezeichnung=$sprache->parseSprachResult('bezeichnung',$row);
|
||||
|
||||
$this->result[] = $zgv_doktor;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->erromsg = "Fehler bei der Abfrage aufgetreten";
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
|
||||
Reference in New Issue
Block a user