mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-06-01 12:19:28 +00:00
Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 9f2e97be76 | |||
| 8bdd9d2f8f | |||
| 7127045167 | |||
| 9a92f203cd |
@@ -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>.
|
||||
*/
|
||||
/**
|
||||
* Klasse benutzerfunktion (FAS-Online)
|
||||
@@ -111,7 +112,7 @@ class benutzerfunktion extends basis_db
|
||||
{
|
||||
$qry = "SELECT count(*) as anzahl FROM public.tbl_benutzerfunktion
|
||||
WHERE uid=".$this->db_add_param($uid)." AND funktion_kurzbz=".$this->db_add_param($benutzerfunktion);
|
||||
|
||||
|
||||
if ($gueltig = TRUE)
|
||||
$qry .= ' AND (datum_von IS NULL OR datum_von <= now()) AND (datum_bis IS NULL OR datum_bis >= now()) ';
|
||||
|
||||
@@ -137,13 +138,13 @@ class benutzerfunktion extends basis_db
|
||||
*/
|
||||
public function getBenutzerFunktion($uid, $funktion_kurzbz, $oe_kurzbz)
|
||||
{
|
||||
$qry = "SELECT
|
||||
$qry = "SELECT
|
||||
bfunk.*, stg.studiengang_kz
|
||||
FROM
|
||||
FROM
|
||||
public.tbl_benutzerfunktion AS bfunk
|
||||
INNER JOIN public.tbl_studiengang AS stg ON(stg.oe_kurzbz = bfunk.oe_kurzbz)
|
||||
WHERE
|
||||
bfunk.uid=".$this->db_add_param($uid)."
|
||||
WHERE
|
||||
bfunk.uid=".$this->db_add_param($uid)."
|
||||
AND bfunk.funktion_kurzbz=".$this->db_add_param($funktion_kurzbz)."
|
||||
AND bfunk.oe_kurzbz=".$this->db_add_param($oe_kurzbz);
|
||||
|
||||
@@ -534,6 +535,53 @@ class benutzerfunktion extends basis_db
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Lädt die letzte Benutzerfunktion zu einer UID
|
||||
* @param type $uid UID des Mitarbeiters.
|
||||
* @param type $funktion_kurzbz OPTIONAL Kurzbezeichnung der Funktion.
|
||||
* @return bool true wenn ok, sonst false
|
||||
*/
|
||||
public function getLastBenutzerFunktionByUid($uid, $funktion_kurzbz = null)
|
||||
{
|
||||
$qry = "SELECT * FROM public.tbl_benutzerfunktion
|
||||
WHERE uid=".$this->db_add_param($uid);
|
||||
if (!is_null($funktion_kurzbz))
|
||||
{
|
||||
$qry .= " AND funktion_kurzbz=".$this->db_add_param($funktion_kurzbz);
|
||||
}
|
||||
$qry .= "ORDER BY datum_von DESC NULLS LAST LIMIT 1";
|
||||
$qry .= ";";
|
||||
|
||||
if ($result = $this->db_query($qry))
|
||||
{
|
||||
while ($row = $this->db_fetch_object($result))
|
||||
{
|
||||
$obj = new benutzerfunktion();
|
||||
|
||||
$obj->benutzerfunktion_id = $row->benutzerfunktion_id;
|
||||
$obj->fachbereich_kurzbz = $row->fachbereich_kurzbz;
|
||||
$obj->uid = $row->uid;
|
||||
$obj->oe_kurzbz = $row->oe_kurzbz;
|
||||
$obj->funktion_kurzbz = $row->funktion_kurzbz;
|
||||
$obj->insertamum = $row->insertamum;
|
||||
$obj->insertvon = $row->insertvon;
|
||||
$obj->updateamum = $row->updateamum;
|
||||
$obj->updatevon = $row->updatevon;
|
||||
$obj->semester = $row->semester;
|
||||
$obj->datum_von = $row->datum_von;
|
||||
$obj->datum_bis = $row->datum_bis;
|
||||
$obj->bezeichnung = $row->bezeichnung;
|
||||
$obj->wochenstunden = $row->wochenstunden;
|
||||
|
||||
$this->result[] = $obj;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden der Benutzerfunktion';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Authors: Andreas Oesterreicher < andreas.oesterreicher@technikum-wien.at >
|
||||
* Manuela Thamer < manuela.thamer@technikum-wien.at >
|
||||
*/
|
||||
require_once('../../config/vilesci.config.inc.php');
|
||||
require_once('../../include/functions.inc.php');
|
||||
@@ -30,7 +31,7 @@ require_once('../../include/bisverwendung.class.php');
|
||||
require_once('../../include/benutzer.class.php');
|
||||
|
||||
if (!$db = new basis_db())
|
||||
die ('Es konnte keine Verbindung zum Server aufgebaut werden.');
|
||||
die('Es konnte keine Verbindung zum Server aufgebaut werden.');
|
||||
|
||||
$uid = get_uid();
|
||||
$datum_obj = new datum();
|
||||
@@ -48,13 +49,296 @@ $studiensemester = new studiensemester();
|
||||
$studiensemester->getAll();
|
||||
|
||||
$stsem_arr = array();
|
||||
foreach($studiensemester->studiensemester as $row_stsem)
|
||||
|
||||
foreach ($studiensemester->studiensemester as $row_stsem)
|
||||
{
|
||||
$stsem_arr[$row_stsem->studiensemester_kurzbz]['start']=$row_stsem->start;
|
||||
$stsem_arr[$row_stsem->studiensemester_kurzbz]['ende']=$row_stsem->ende;
|
||||
$stsem_arr[$row_stsem->studiensemester_kurzbz]['start'] = $row_stsem->start;
|
||||
$stsem_arr[$row_stsem->studiensemester_kurzbz]['ende'] = $row_stsem->ende;
|
||||
}
|
||||
|
||||
if (!$rechte->isBerechtigt('mitarbeiter/stammdaten', null, 'suid'))
|
||||
die ('Sie haben keine Berechtigung für diese Seite');
|
||||
die('Sie haben keine Berechtigung für diese Seite');
|
||||
|
||||
/**
|
||||
* baut die Query
|
||||
* @param string $maUid UID des Mitarbeiters.
|
||||
* @return string $qry
|
||||
*/
|
||||
function buildSQL($maUid = null)
|
||||
{
|
||||
$condition = ($maUid !== null) ? " AND ma.uid = '". $maUid. "' " : '';
|
||||
$qry = "SELECT ma.* FROM
|
||||
(
|
||||
SELECT
|
||||
vorname, nachname, uid, personalnummer, insertamum, anmerkung, aktiv,
|
||||
(
|
||||
SELECT studiensemester_kurzbz FROM (
|
||||
SELECT
|
||||
studiensemester_kurzbz, tbl_studiensemester.start
|
||||
FROM
|
||||
lehre.tbl_lehreinheitmitarbeiter
|
||||
JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
|
||||
JOIN public.tbl_studiensemester USING(studiensemester_kurzbz)
|
||||
WHERE
|
||||
tbl_lehreinheitmitarbeiter.mitarbeiter_uid = vw_mitarbeiter.uid
|
||||
UNION
|
||||
SELECT
|
||||
studiensemester_kurzbz, tbl_studiensemester.start
|
||||
FROM
|
||||
lehre.tbl_projektbetreuer
|
||||
JOIN lehre.tbl_projektarbeit USING(projektarbeit_id)
|
||||
JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
|
||||
JOIN public.tbl_studiensemester USING(studiensemester_kurzbz)
|
||||
WHERE
|
||||
tbl_projektbetreuer.person_id=vw_mitarbeiter.person_id
|
||||
) a
|
||||
ORDER BY start DESC
|
||||
LIMIT 1
|
||||
) as letzter_lehrauftrag
|
||||
FROM
|
||||
campus.vw_mitarbeiter
|
||||
WHERE
|
||||
fixangestellt = false
|
||||
AND lektor = true
|
||||
AND bismelden = true
|
||||
AND personalnummer > 0
|
||||
AND EXISTS(
|
||||
SELECT
|
||||
1
|
||||
FROM
|
||||
lehre.tbl_lehreinheitmitarbeiter
|
||||
JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
|
||||
WHERE
|
||||
tbl_lehreinheitmitarbeiter.mitarbeiter_uid = vw_mitarbeiter.uid
|
||||
AND tbl_lehreinheit.studiensemester_kurzbz IN(
|
||||
SELECT
|
||||
studiensemester_kurzbz
|
||||
FROM
|
||||
public.tbl_studiensemester
|
||||
WHERE start <= now()
|
||||
ORDER BY start DESC
|
||||
OFFSET 1
|
||||
LIMIT 2)
|
||||
UNION
|
||||
SELECT
|
||||
1
|
||||
FROM
|
||||
lehre.tbl_projektbetreuer
|
||||
JOIN lehre.tbl_projektarbeit USING(projektarbeit_id)
|
||||
JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
|
||||
WHERE
|
||||
tbl_lehreinheit.studiensemester_kurzbz IN(SELECT
|
||||
studiensemester_kurzbz
|
||||
FROM
|
||||
public.tbl_studiensemester
|
||||
WHERE start <= now()
|
||||
ORDER BY start DESC
|
||||
OFFSET 1
|
||||
LIMIT 2)
|
||||
AND tbl_projektbetreuer.person_id=vw_mitarbeiter.person_id
|
||||
)
|
||||
AND NOT EXISTS(
|
||||
SELECT 1 FROM bis.tbl_bisverwendung
|
||||
WHERE mitarbeiter_uid=vw_mitarbeiter.uid
|
||||
AND (ende is null OR ende>=now())
|
||||
)
|
||||
) ma
|
||||
LEFT JOIN public.tbl_studiensemester ON(studiensemester_kurzbz=ma.letzter_lehrauftrag)$condition
|
||||
WHERE
|
||||
tbl_studiensemester.start >= (SELECT ende FROM bis.tbl_bisverwendung
|
||||
WHERE mitarbeiter_uid=ma.uid
|
||||
ORDER BY ende DESC LIMIT 1)";
|
||||
return $qry;
|
||||
}
|
||||
|
||||
/**
|
||||
* verlängert die Benutzerfunktion für den betreffenden MA
|
||||
* @param string $maUid UID des Mitarbeiters.
|
||||
* @param string $stsem_arr Array der Studiensemester.
|
||||
* @return String $outputOeFunktion
|
||||
*/
|
||||
function verlaengereOeFunktion($maUid, $stsem_arr)
|
||||
{
|
||||
$uid = get_uid();
|
||||
$lastLA = '';
|
||||
$outputOeFunktion = 'true';
|
||||
$qry = buildSQL($maUid);
|
||||
|
||||
if (!$db = new basis_db())
|
||||
die('Es konnte keine Verbindung zum Server aufgebaut werden.');
|
||||
|
||||
if ($result = $db->db_query($qry))
|
||||
{
|
||||
while ($row = $db->db_fetch_object($result))
|
||||
{
|
||||
$lastLA = $row->letzter_lehrauftrag;
|
||||
}
|
||||
}
|
||||
|
||||
//bisverwendung
|
||||
$bisverwendung = new bisverwendung();
|
||||
$bisverwendung->getLastVerwendung($maUid);
|
||||
|
||||
if (isset($stsem_arr[$lastLA]) && $stsem_arr[$lastLA]['start'] > $bisverwendung->ende)
|
||||
{
|
||||
$dt_verwendungsendeplus10 = new DateTime($bisverwendung->ende);
|
||||
$dt_now = new DateTime();
|
||||
$dt_verwendungsendeplus10->add(new DateInterval('P10M'));
|
||||
|
||||
//letzte Benutzerfunktion
|
||||
$lastFkt = new benutzerfunktion();
|
||||
$lastFkt->getLastBenutzerFunktionByUid($maUid, 'oezuordnung');
|
||||
|
||||
|
||||
foreach ($lastFkt->result as $row2)
|
||||
{
|
||||
$vonBf = $row2->datum_von;
|
||||
$bisBf = $row2->datum_bis;
|
||||
$bisBF10 = new DateTime($bisBf);
|
||||
$bisBF10->add(new DateInterval('P10M'));
|
||||
$bfId = $row2->benutzerfunktion_id;
|
||||
$bfOe_kurzbz = $row2->oe_kurzbz;
|
||||
$bfFachbereich_kurzbz = $row2->fachbereich_kurzbz;
|
||||
$bfKurzbz = $row2->funktion_kurzbz;
|
||||
$bfInsertamum = $row2->insertamum;
|
||||
$bfInsertvon = $row2->insertvon;
|
||||
$bfUpdateamum = $row2->updateamum;
|
||||
$bfBezeichnung = $row2->bezeichnung;
|
||||
$bfSem = $row2->semester;
|
||||
$bfWochenstunden = $row2->wochenstunden;
|
||||
}
|
||||
|
||||
if ($bisBf != null && $bisBf > $dt_now)
|
||||
{
|
||||
$lastFkt->datum_bis = $stsem_arr[$lastLA]['ende'];
|
||||
$lastFkt->updateamum = date('Y-m-d H:i:s');
|
||||
$lastFkt->updatevon = $uid;
|
||||
$lastFkt->benutzerfunktion_id = $bfId;
|
||||
$lastFkt->fachbereich_kurzbz = $bfFachbereich_kurzbz;
|
||||
$lastFkt->funktion_kurzbz = $bfKurzbz;
|
||||
$lastFkt->uid = $row2->uid;
|
||||
$lastFkt->oe_kurzbz = $bfOe_kurzbz;
|
||||
$lastFkt->insertamum = $bfInsertamum;
|
||||
$lastFkt->insertvon = $bfInsertvon;
|
||||
$lastFkt->datum_von = $vonBf;
|
||||
$lastFkt->bezeichnung = $bfBezeichnung;
|
||||
$lastFkt->semester = $bfSem;
|
||||
$lastFkt->wochenstunden = $bfWochenstunden;
|
||||
|
||||
if ($bisBF10 > $dt_now)
|
||||
{
|
||||
if ($lastFkt->save(false))
|
||||
{
|
||||
$outputOeFunktion = 'Benutzerfunktion verlängert';
|
||||
}
|
||||
else
|
||||
{
|
||||
$outputOeFunktion = $lastFkt->errormsg;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$lastFkt->datum_von = $stsem_arr[$lastLA]['start'];
|
||||
$lastFkt->insertamum = date('Y-m-d H:i:s');
|
||||
$lastFkt->insertvon = $uid;
|
||||
if ($lastFkt->save(true))
|
||||
{
|
||||
$outputOeFunktion = 'Benutzerfunktion neu angelegt';
|
||||
}
|
||||
else
|
||||
{
|
||||
$outputOeFunktion = $lastFkt->errormsg;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $outputOeFunktion;
|
||||
}
|
||||
|
||||
/**
|
||||
* verlängert die Bisverwendung bzw. legt eine neue Bisverwendung an
|
||||
* @param string $maUid UID des Mitarbeiters.
|
||||
* @param string $stsem_arr Array der Studiensemester.
|
||||
* @return String Returnstring
|
||||
*/
|
||||
function verlaengereBis($maUid, $stsem_arr)
|
||||
{
|
||||
$uid = get_uid();
|
||||
|
||||
$qry = buildSQL($maUid);
|
||||
|
||||
if (!$db = new basis_db())
|
||||
die('Es konnte keine Verbindung zum Server aufgebaut werden.');
|
||||
|
||||
if ($result = $db->db_query($qry))
|
||||
{
|
||||
while ($row = $db->db_fetch_object($result))
|
||||
{
|
||||
$lastLA = $row->letzter_lehrauftrag;
|
||||
}
|
||||
}
|
||||
|
||||
$bisverwendung = new bisverwendung();
|
||||
$bisverwendung->getLastVerwendung($maUid);
|
||||
|
||||
if (isset($stsem_arr[$lastLA]) && $stsem_arr[$lastLA]['start'] > $bisverwendung->ende)
|
||||
{
|
||||
// wenn das Stsem des letzten Lehrauftrags größer ist als die Verwendung
|
||||
// Wenn die letzte Verwendung weniger als 10 Monate alt ist, wird die bestehende
|
||||
// Verwendung aktualisiert auf das neue Datum
|
||||
// Ansonsten wird eine neue Verwendung erstellt
|
||||
$dt_verwendungsendeplus10 = new DateTime($bisverwendung->ende);
|
||||
$dt_now = new DateTime();
|
||||
$dt_verwendungsendeplus10->add(new DateInterval('P10M'));
|
||||
|
||||
if ($dt_verwendungsendeplus10 > $dt_now)
|
||||
{
|
||||
$bisverwendung->ende = $stsem_arr[$lastLA]['ende'];
|
||||
$bisverwendung->updateamum = date('Y-m-d H:i:s');
|
||||
$bisverwendung->updatevon = $uid;
|
||||
|
||||
$retOe = verlaengereOeFunktion($maUid, $stsem_arr);
|
||||
|
||||
if ($bisverwendung->save(false))
|
||||
{
|
||||
return "bis verlaengert ". $retOe;
|
||||
}
|
||||
else
|
||||
{
|
||||
return ('Fehler beim Verlängern Bisverwendung:'.$bisverwendung->errormsg);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$bisverwendung->beginn = $stsem_arr[$lastLA]['start'];
|
||||
$bisverwendung->ende = $stsem_arr[$lastLA]['ende'];
|
||||
$bisverwendung->updateamum = date('Y-m-d H:i:s');
|
||||
$bisverwendung->updatevon = $uid;
|
||||
$bisverwendung->insertamum = date('Y-m-d H:i:s');
|
||||
$bisverwendung->insertvon = $uid;
|
||||
|
||||
$retOe = verlaengereOeFunktion($maUid, $stsem_arr);
|
||||
|
||||
if ($bisverwendung->save(true))
|
||||
{
|
||||
return "bis erstellt ". $retOe;
|
||||
}
|
||||
else
|
||||
{
|
||||
return ('Fehler beim Erstellen Bisverwendung:'.$bisverwendung->errormsg);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
if (isset($_POST['action']) && $_POST['action'] == 'bisverlaengern')
|
||||
{
|
||||
$retstr = verlaengereBis($_POST['uid'], $stsem_arr);
|
||||
exit($retstr);
|
||||
}
|
||||
|
||||
echo '<!doctype html>
|
||||
<html>
|
||||
@@ -73,10 +357,61 @@ echo '
|
||||
{
|
||||
$( ".datepicker_datum" ).datepicker({
|
||||
changeMonth: true,
|
||||
hangeYear: true,
|
||||
changeYear: true,
|
||||
dateFormat: "yy-mm-dd",
|
||||
});
|
||||
});
|
||||
function verlaengereBis(uid)
|
||||
{
|
||||
$.ajax({
|
||||
type:"POST",
|
||||
url:"personal_generateverwendung.php",
|
||||
data:{ "action": "bisverlaengern", "uid": uid },
|
||||
success: function(data)
|
||||
{
|
||||
if(data=="true")
|
||||
{
|
||||
$("#verlaengerungslink_"+uid).hide();
|
||||
$("#infobox_"+uid).text("OK");
|
||||
}
|
||||
else if(data=="bis verlaengert true")
|
||||
{
|
||||
$("#verlaengerungslink_"+uid).hide();
|
||||
$("#infobox_"+uid).text("OK, Bisverwendung verlängert");
|
||||
}
|
||||
else if(data=="bis erstellt true")
|
||||
{
|
||||
$("#verlaengerungslink_"+uid).hide();
|
||||
$("#infobox_"+uid).text("OK, Bisverwendung erstellt");
|
||||
}
|
||||
else if(data=="bis verlaengert Benutzerfunktion verlängert")
|
||||
{
|
||||
$("#verlaengerungslink_"+uid).hide();
|
||||
$("#infobox_"+uid).text("OK, Bisverwendung und Benutzerfunktion verlängert");
|
||||
}
|
||||
else if(data=="bis erstellt Benutzerfunktion verlängert")
|
||||
{
|
||||
$("#verlaengerungslink_"+uid).hide();
|
||||
$("#infobox_"+uid).text("OK, Bisverwendung erstellt, Benutzerfunktion verlängert");
|
||||
}
|
||||
else if(data=="bis verlaengert Benutzerfunktion neu angelegt")
|
||||
{
|
||||
$("#verlaengerungslink_"+uid).hide();
|
||||
$("#infobox_"+uid).text("OK, Bisverwendung verlängert, Benutzerfunktion neu angelegt");
|
||||
}
|
||||
else if(data=="bis erstellt Benutzerfunktion neu angelegt")
|
||||
{
|
||||
$("#verlaengerungslink_"+uid).hide();
|
||||
$("#infobox_"+uid).text("OK, Bisverwendung und Benutzerfunktion neu angelegt");
|
||||
}
|
||||
else
|
||||
{
|
||||
$("#infobox_"+uid).text("ERROR:"+data);
|
||||
}
|
||||
},
|
||||
error: function() { alert("error"); }
|
||||
});
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
@@ -98,87 +433,7 @@ wird das Ende des Semesters letzten Lehrauftrages herangezogen.
|
||||
});
|
||||
});
|
||||
</script>';
|
||||
$qry = "SELECT ma.* FROM
|
||||
(
|
||||
SELECT
|
||||
vorname, nachname, uid, personalnummer, insertamum, anmerkung, aktiv,
|
||||
(
|
||||
SELECT studiensemester_kurzbz FROM (
|
||||
SELECT
|
||||
studiensemester_kurzbz, tbl_studiensemester.start
|
||||
FROM
|
||||
lehre.tbl_lehreinheitmitarbeiter
|
||||
JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
|
||||
JOIN public.tbl_studiensemester USING(studiensemester_kurzbz)
|
||||
WHERE
|
||||
tbl_lehreinheitmitarbeiter.mitarbeiter_uid = vw_mitarbeiter.uid
|
||||
UNION
|
||||
SELECT
|
||||
studiensemester_kurzbz, tbl_studiensemester.start
|
||||
FROM
|
||||
lehre.tbl_projektbetreuer
|
||||
JOIN lehre.tbl_projektarbeit USING(projektarbeit_id)
|
||||
JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
|
||||
JOIN public.tbl_studiensemester USING(studiensemester_kurzbz)
|
||||
WHERE
|
||||
tbl_projektbetreuer.person_id=vw_mitarbeiter.person_id
|
||||
) a
|
||||
ORDER BY start DESC
|
||||
LIMIT 1
|
||||
) as letzter_lehrauftrag
|
||||
FROM
|
||||
campus.vw_mitarbeiter
|
||||
WHERE
|
||||
fixangestellt = false
|
||||
AND lektor = true
|
||||
AND bismelden = true
|
||||
AND personalnummer > 0
|
||||
AND EXISTS(
|
||||
SELECT
|
||||
1
|
||||
FROM
|
||||
lehre.tbl_lehreinheitmitarbeiter
|
||||
JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
|
||||
WHERE
|
||||
tbl_lehreinheitmitarbeiter.mitarbeiter_uid = vw_mitarbeiter.uid
|
||||
AND tbl_lehreinheit.studiensemester_kurzbz IN(
|
||||
SELECT
|
||||
studiensemester_kurzbz
|
||||
FROM
|
||||
public.tbl_studiensemester
|
||||
WHERE start <= now()
|
||||
ORDER BY start DESC
|
||||
OFFSET 1
|
||||
LIMIT 2)
|
||||
UNION
|
||||
SELECT
|
||||
1
|
||||
FROM
|
||||
lehre.tbl_projektbetreuer
|
||||
JOIN lehre.tbl_projektarbeit USING(projektarbeit_id)
|
||||
JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
|
||||
WHERE
|
||||
tbl_lehreinheit.studiensemester_kurzbz IN(SELECT
|
||||
studiensemester_kurzbz
|
||||
FROM
|
||||
public.tbl_studiensemester
|
||||
WHERE start <= now()
|
||||
ORDER BY start DESC
|
||||
OFFSET 1
|
||||
LIMIT 2)
|
||||
AND tbl_projektbetreuer.person_id=vw_mitarbeiter.person_id
|
||||
)
|
||||
AND NOT EXISTS(
|
||||
SELECT 1 FROM bis.tbl_bisverwendung
|
||||
WHERE mitarbeiter_uid=vw_mitarbeiter.uid
|
||||
AND (ende is null OR ende>=now())
|
||||
)
|
||||
) ma
|
||||
LEFT JOIN public.tbl_studiensemester ON(studiensemester_kurzbz=ma.letzter_lehrauftrag)
|
||||
WHERE
|
||||
tbl_studiensemester.start >= (SELECT ende FROM bis.tbl_bisverwendung
|
||||
WHERE mitarbeiter_uid=ma.uid
|
||||
ORDER BY ende DESC LIMIT 1)";
|
||||
$qry = buildSQL();
|
||||
if ($result = $db->db_query($qry))
|
||||
{
|
||||
echo '<br><br>Anzahl:'.$db->db_num_rows($result);
|
||||
@@ -219,7 +474,7 @@ if ($result = $db->db_query($qry))
|
||||
<td>'.$db->convert_html_chars($row->uid).'</td>
|
||||
<td>'.($db->db_parse_bool($row->aktiv)?'Ja':'<span style="color:red; font-weight:bold">Nein</span>').'</td>
|
||||
<td>'.$db->convert_html_chars($row->personalnummer).'</td>
|
||||
<td>'.$db->convert_html_chars($datum_obj->formatDatum($row->insertamum,'d.m.Y')).'</td>
|
||||
<td>'.$db->convert_html_chars($datum_obj->formatDatum($row->insertamum, 'd.m.Y')).'</td>
|
||||
<td>'.$db->convert_html_chars($row->letzter_lehrauftrag).'</td>
|
||||
<td>
|
||||
<table>';
|
||||
@@ -236,64 +491,84 @@ if ($result = $db->db_query($qry))
|
||||
echo '</table></td>';
|
||||
$bisverwendung = new bisverwendung();
|
||||
$bisverwendung->getLastVerwendung($row->uid);
|
||||
echo '<td>'.($bisverwendung->beginn != ''?$datum_obj->formatDatum($bisverwendung->beginn,'d.m.Y'):' unbekannt ');
|
||||
echo ' - '.($bisverwendung->ende != ''?$datum_obj->formatDatum($bisverwendung->ende,'d.m.Y'):' jetzt ').'</td>';
|
||||
echo '<td>'.($bisverwendung->beginn != ''?$datum_obj->formatDatum($bisverwendung->beginn, 'd.m.Y'):' unbekannt ');
|
||||
echo ' - '.($bisverwendung->ende != ''?$datum_obj->formatDatum($bisverwendung->ende, 'd.m.Y'):' jetzt ').'</td>';
|
||||
echo '<td>'.($row->anmerkung != ''?'<img src="../../skin/images/sticky.png" title="'.$db->convert_html_chars($row->anmerkung).'" />':'').'</td>';
|
||||
|
||||
if(isset($stsem_arr[$row->letzter_lehrauftrag])
|
||||
&& $stsem_arr[$row->letzter_lehrauftrag]['start'] > $bisverwendung->ende)
|
||||
|
||||
if (isset($stsem_arr[$row->letzter_lehrauftrag])
|
||||
&& $stsem_arr[$row->letzter_lehrauftrag]['start'] > $bisverwendung->ende)
|
||||
{
|
||||
// wenn das Stsem des letzten Lehrauftrags größer ist als die Verwendung
|
||||
// Wenn die letzte Verwendung weniger als 10 Monate alt ist, wird die bestehende
|
||||
// Verwendung aktualisiert auf das neue Datum
|
||||
// Ansonsten wird eine neue Verwendung erstellt
|
||||
$dt_verwendungsendeplus10 = new DateTime($bisverwendung->ende);
|
||||
$dt_now = new DateTime();
|
||||
$dt_verwendungsendeplus10->add(new DateInterval('P10M'));
|
||||
|
||||
if ($dt_verwendungsendeplus10 > $dt_now)
|
||||
{
|
||||
$bisverwendung->ende = $stsem_arr[$row->letzter_lehrauftrag]['ende'];
|
||||
$bisverwendung->updateamum = date('Y-m-d H:i:s');
|
||||
$bisverwendung->updatevon = $uid;
|
||||
$retOe = verlaengereOeFunktion($row->uid, $stsem_arr);
|
||||
|
||||
// Wenn die letzte Verwendung weniger als 10 Monate alt ist, wird die bestehende
|
||||
// Verwendung aktualisiert auf das neue Datum
|
||||
// Ansonsten wird eine neue Verwendung erstellt
|
||||
$dt_verwendungsendeplus10 = new DateTime($bisverwendung->ende);
|
||||
$dt_now = new DateTime();
|
||||
$dt_verwendungsendeplus10->add(new DateInterval('P10M'));
|
||||
|
||||
if ($dt_verwendungsendeplus10 > $dt_now)
|
||||
if (isset($_POST['action']) && $_POST['action'] == 'generateall')
|
||||
{
|
||||
$bisverwendung->ende = $stsem_arr[$row->letzter_lehrauftrag]['ende'];
|
||||
$bisverwendung->updateamum = date('Y-m-d H:i:s');
|
||||
$bisverwendung->updatevon = $uid;
|
||||
if(isset($_POST['action']) && $_POST['action']=='generateall')
|
||||
if ($bisverwendung->save(false))
|
||||
{
|
||||
if ($bisverwendung->save(false))
|
||||
{
|
||||
echo '<td>Verwendung verlängert</td>';
|
||||
}
|
||||
else
|
||||
{
|
||||
echo '<td>Failed:'.$bisverwendung->errormsg.'</td>';
|
||||
}
|
||||
$retOe == 'true' ? $retOe = '': $retOe;
|
||||
echo '<td>Bisverwendung verlängert '. $retOe. '</td>';
|
||||
}
|
||||
else
|
||||
echo '<td>Verlängerung bis '.$bisverwendung->ende.'</td>';
|
||||
{
|
||||
echo '<td>Failed:'.$bisverwendung->errormsg.'</td>';
|
||||
}
|
||||
}
|
||||
else
|
||||
echo '<td>Verlängerung bis '.$bisverwendung->ende.'<br>
|
||||
<span id="verlaengerungslink_'.$row->uid.'">
|
||||
<a href="#bisverlaengern" onclick="verlaengereBis(\''.$row->uid.'\');return false;">verlängern</a>
|
||||
</span>
|
||||
<span id="infobox_'.$row->uid.'"></span>
|
||||
<span id="outputTest_'.$row->uid.'"></span>
|
||||
</td>';
|
||||
}
|
||||
else
|
||||
{
|
||||
$bisverwendung->beginn = $stsem_arr[$row->letzter_lehrauftrag]['start'];
|
||||
$bisverwendung->ende = $stsem_arr[$row->letzter_lehrauftrag]['ende'];
|
||||
$bisverwendung->updateamum = date('Y-m-d H:i:s');
|
||||
$bisverwendung->updatevon = $uid;
|
||||
$bisverwendung->insertamum = date('Y-m-d H:i:s');
|
||||
$bisverwendung->insertvon = $uid;
|
||||
$retOe = verlaengereOeFunktion($row->uid, $stsem_arr);
|
||||
|
||||
if (isset($_POST['action']) && $_POST['action'] == 'generateall')
|
||||
{
|
||||
$bisverwendung->beginn = $stsem_arr[$row->letzter_lehrauftrag]['start'];
|
||||
$bisverwendung->ende = $stsem_arr[$row->letzter_lehrauftrag]['ende'];
|
||||
$bisverwendung->updateamum = date('Y-m-d H:i:s');
|
||||
$bisverwendung->updatevon = $uid;
|
||||
$bisverwendung->insertamum = date('Y-m-d H:i:s');
|
||||
$bisverwendung->insertvon = $uid;
|
||||
if(isset($_POST['action']) && $_POST['action']=='generateall')
|
||||
if ($bisverwendung->save(true))
|
||||
{
|
||||
if ($bisverwendung->save(true))
|
||||
{
|
||||
echo '<td>Neue Verwendung erstellt</td>';
|
||||
}
|
||||
else
|
||||
{
|
||||
echo '<td>Failed:'.$bisverwendung->errormsg.'</td>';
|
||||
}
|
||||
$retOe == 'true' ? $retOe = '': $retOe;
|
||||
echo '<td>Neue Bisverwendung erstellt '. $retOe. '</td>';
|
||||
}
|
||||
else
|
||||
echo '<td>Neue Verwendung wird erstellt '.$bisverwendung->beginn.' bis '.$bisverwendung->ende.'</td>';
|
||||
{
|
||||
echo '<td>Failed:'.$bisverwendung->errormsg.'</td>';
|
||||
}
|
||||
}
|
||||
else
|
||||
echo '<td>Neue Verwendung wird erstellt '.$bisverwendung->beginn.' bis '.$bisverwendung->ende.'<br>';
|
||||
|
||||
|
||||
echo '
|
||||
<span id="verlaengerungslink_'.$row->uid.'">
|
||||
<a href="#bisverlaengern" onclick="verlaengereBis(\''.$row->uid.'\');return false;">verlängern</a>
|
||||
</span>
|
||||
<span id="infobox_'.$row->uid.'"></span>
|
||||
<span id="outputTest_'.$row->uid.'"></span>
|
||||
</td>';
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Authors: Andreas Oesterreicher < andreas.oesterreicher@technikum-wien.at >
|
||||
* Manuela Thamer < manuela.thamer@technikum-wien.at >
|
||||
*/
|
||||
require_once('../../config/vilesci.config.inc.php');
|
||||
require_once('../../include/functions.inc.php');
|
||||
@@ -30,7 +31,7 @@ require_once('../../include/bisverwendung.class.php');
|
||||
require_once('../../include/benutzer.class.php');
|
||||
|
||||
if (!$db = new basis_db())
|
||||
die ('Es konnte keine Verbindung zum Server aufgebaut werden.');
|
||||
die('Es konnte keine Verbindung zum Server aufgebaut werden.');
|
||||
|
||||
$uid = get_uid();
|
||||
$datum_obj = new datum();
|
||||
@@ -45,12 +46,19 @@ $rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($uid);
|
||||
|
||||
if (!$rechte->isBerechtigt('mitarbeiter/stammdaten', null, 'suid'))
|
||||
die ('Sie haben keine Berechtigung für diese Seite');
|
||||
die('Sie haben keine Berechtigung für diese Seite');
|
||||
|
||||
if (isset($_POST['action']) && $_POST['action'] == 'deaktivieren')
|
||||
/**
|
||||
* Setzt die Benutzerfunktion zu einer UID zu einem bestimmten Datum inaktiv
|
||||
* @param string $maUid UID des Mitarbeiters.
|
||||
* @param Datum $datumEndeAktiv Deaktivierungsdatum.
|
||||
* @return 'true', 'OK, Bisverwendung angepasst' oder error
|
||||
*/
|
||||
function deactivateBenutzer($maUid, $datumEndeAktiv)
|
||||
{
|
||||
$benutzer = new benutzer();
|
||||
if ($benutzer->load($_POST['uid']))
|
||||
$uid = get_uid();
|
||||
if ($benutzer->load($maUid))
|
||||
{
|
||||
$benutzer->bnaktiv = false;
|
||||
$benutzer->updateamum = date('Y-m-d H:i:s');
|
||||
@@ -58,30 +66,48 @@ if (isset($_POST['action']) && $_POST['action'] == 'deaktivieren')
|
||||
if ($benutzer->save(false, false))
|
||||
{
|
||||
$bisverwendung = new bisverwendung();
|
||||
if ($bisverwendung->getLastVerwendung($_POST['uid']))
|
||||
if ($bisverwendung->getLastVerwendung($maUid))
|
||||
{
|
||||
if ($bisverwendung->ende == '')
|
||||
{
|
||||
$bisverwendung->ende = $_POST['datum'];
|
||||
$bisverwendung->ende = $datumEndeAktiv;
|
||||
$bisverwendung->updateamum = date('Y-m-d H:i:s');
|
||||
$bisverwendung->updatevon = $uid;
|
||||
|
||||
if ($bisverwendung->save(false))
|
||||
exit ('true');
|
||||
return ('OK, Bisverwendung angepasst');
|
||||
}
|
||||
else
|
||||
{
|
||||
exit ('true');
|
||||
return ('true');
|
||||
}
|
||||
}
|
||||
else
|
||||
exit ('Fehler beim Laden der Verwendung:'.$bisverwendung->errormsg);
|
||||
return ('Fehler beim Laden der Verwendung: '.$bisverwendung->errormsg);
|
||||
}
|
||||
else
|
||||
exit ('Fehler beim Deaktivieren:'.$benutzer->errormsg);
|
||||
return ('Fehler beim Deaktivieren: '.$benutzer->errormsg);
|
||||
}
|
||||
else
|
||||
exit ('Fehler beim Laden des Benutzers');
|
||||
$output1 = 'Fehler beim Laden des Benutzers';
|
||||
return ('Fehler beim Laden des Benutzers');
|
||||
}
|
||||
|
||||
/**
|
||||
* Setzt die Benutzerfunktion zu einer UID zu einem bestimmten Datum inaktiv, Einzeldeaktivierung mittels Link
|
||||
* @param string $maUid UID des Mitarbeiters.
|
||||
* @param Datum $datumEndeAktiv Deaktivierungsdatum.
|
||||
* @return exit string $retstr 'true', 'OK, Bisverwendung angepasst' oder error
|
||||
*/
|
||||
function deactivateBenutzerAJAX($maUid, $datumEndeAktiv)
|
||||
{
|
||||
$retstr = deactivateBenutzer($maUid, $datumEndeAktiv);
|
||||
exit($retstr);
|
||||
}
|
||||
|
||||
if (isset($_POST['action']) && $_POST['action'] == 'deaktivieren')
|
||||
{
|
||||
deactivateBenutzerAJAX($_POST['uid'], $_POST['datum']);
|
||||
}
|
||||
|
||||
echo '<!doctype html>
|
||||
@@ -101,7 +127,7 @@ echo '
|
||||
{
|
||||
$( ".datepicker_datum" ).datepicker({
|
||||
changeMonth: true,
|
||||
hangeYear: true,
|
||||
changeYear: true,
|
||||
dateFormat: "yy-mm-dd",
|
||||
});
|
||||
});
|
||||
@@ -122,6 +148,7 @@ die Verwendung zum angegebenen Datum zu beenden.
|
||||
widgets: ["zebra"]
|
||||
});
|
||||
});
|
||||
|
||||
function deaktiviere(uid)
|
||||
{
|
||||
var datum = $("#deaktivierungsdatum").val();
|
||||
@@ -137,6 +164,11 @@ die Verwendung zum angegebenen Datum zu beenden.
|
||||
$("#deaktivierungslink_"+uid).hide();
|
||||
$("#infobox_"+uid).text("OK");
|
||||
}
|
||||
else if(data="OK, Bisverwendung angepasst")
|
||||
{
|
||||
$("#deaktivierungslink_"+uid).hide();
|
||||
$("#infobox_"+uid).text("OK, Bisverwendung angepasst");
|
||||
}
|
||||
else
|
||||
{
|
||||
$("#infobox_"+uid).text("ERROR:"+data);
|
||||
@@ -145,6 +177,7 @@ die Verwendung zum angegebenen Datum zu beenden.
|
||||
error: function() { alert("error"); }
|
||||
});
|
||||
}
|
||||
|
||||
</script>';
|
||||
$qry = "SELECT
|
||||
vorname, nachname, uid, personalnummer, insertamum,anmerkung,
|
||||
@@ -218,9 +251,20 @@ if ($result = $db->db_query($qry))
|
||||
{
|
||||
echo '<br><br>Anzahl:'.$db->db_num_rows($result);
|
||||
echo '
|
||||
<form method="POST" action="personal_lektorenohnelehrauftrag.php">
|
||||
<div style="float:right" >Beendingungsdatum der Verwendung:
|
||||
<input class="datepicker_datum" type="text" size="10" value="'.(date('Y')-2).'-12-31" id="deaktivierungsdatum"/>
|
||||
<input class="datepicker_datum" type="text" size="10" value="'.(date('Y') - 2).'-12-31" id="deaktivierungsdatum"
|
||||
name="datumEndeAktiv"/>
|
||||
</div><br><br>
|
||||
|
||||
<div style="float:right">
|
||||
|
||||
<input type="hidden" name="action" value="deactivateAll" />
|
||||
<input type="submit" value="Alle deaktivieren" />
|
||||
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<br><br>
|
||||
<table class="tablesorter" id="t1">
|
||||
<thead>
|
||||
@@ -239,6 +283,8 @@ if ($result = $db->db_query($qry))
|
||||
</thead>
|
||||
<tbody>
|
||||
';
|
||||
|
||||
$countMa = 0;
|
||||
while ($row = $db->db_fetch_object($result))
|
||||
{
|
||||
echo '
|
||||
@@ -247,7 +293,7 @@ if ($result = $db->db_query($qry))
|
||||
<td>'.$db->convert_html_chars($row->vorname).'</td>
|
||||
<td>'.$db->convert_html_chars($row->uid).'</td>
|
||||
<td>'.$db->convert_html_chars($row->personalnummer).'</td>
|
||||
<td>'.$db->convert_html_chars($datum_obj->formatDatum($row->insertamum,'d.m.Y')).'</td>
|
||||
<td>'.$db->convert_html_chars($datum_obj->formatDatum($row->insertamum, 'd.m.Y')).'</td>
|
||||
<td>'.$db->convert_html_chars($row->letzter_lehrauftrag).'</td>
|
||||
<td>
|
||||
<table>';
|
||||
@@ -264,18 +310,37 @@ if ($result = $db->db_query($qry))
|
||||
echo '</table></td>';
|
||||
$bisverwendung = new bisverwendung();
|
||||
$bisverwendung->getLastVerwendung($row->uid);
|
||||
echo '<td>'.($bisverwendung->beginn != ''?$datum_obj->formatDatum($bisverwendung->beginn,'d.m.Y'):' jetzt ');
|
||||
echo ' - '.($bisverwendung->ende != ''?$datum_obj->formatDatum($bisverwendung->ende,'d.m.Y'):' jetzt ').'</td>';
|
||||
|
||||
echo '<td>'.($bisverwendung->beginn != ''?$datum_obj->formatDatum($bisverwendung->beginn, 'd.m.Y'):' jetzt ');
|
||||
echo ' - '.($bisverwendung->ende != ''?$datum_obj->formatDatum($bisverwendung->ende, 'd.m.Y'):' jetzt ').'</td>';
|
||||
echo '<td>'.($row->anmerkung != ''?'<img src="../../skin/images/sticky.png" title="'.$db->convert_html_chars($row->anmerkung).'" />':'').'</td>';
|
||||
echo '
|
||||
<td>
|
||||
<span id="deaktivierungslink_'.$row->uid.'">
|
||||
<a href="#deaktivieren" onclick="deaktiviere(\''.$row->uid.'\');return false;">deaktivieren</a>
|
||||
</span>
|
||||
<span id="infobox_'.$row->uid.'"></span>
|
||||
</td>
|
||||
</tr>';
|
||||
|
||||
$countMa++;
|
||||
if (isset($_POST['action']) && $_POST['action'] == 'deactivateAll')
|
||||
{
|
||||
$retstr = (($retstr = deactivateBenutzer($row->uid, $_POST['datumEndeAktiv'])) === 'true')
|
||||
? 'OK'
|
||||
: $retstr;
|
||||
echo '
|
||||
<td>
|
||||
<span>'. $retstr. '</span>
|
||||
<span id="infobox_'.$row->uid.'"></span>
|
||||
</td>';
|
||||
}
|
||||
else
|
||||
{
|
||||
echo '
|
||||
<td>
|
||||
<span id="deaktivierungslink_'.$row->uid.'">
|
||||
<a href="#deaktivieren" onclick="deaktiviere(\''.$row->uid.'\');return false;">deaktivieren</a>
|
||||
</span>
|
||||
<span id="infobox_'.$row->uid.'"></span>
|
||||
|
||||
</td>';
|
||||
}
|
||||
echo ' </tr>';
|
||||
}
|
||||
|
||||
echo '</tbody></table>';
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user