Compare commits

...

4 Commits

Author SHA1 Message Date
Andreas Österreicher 9f2e97be76 Merge branch 'master' into feature-16106/FASVerlaengerungOEZuordnung 2022-01-28 15:54:32 +01:00
ma0068 8bdd9d2f8f update funktion verlaengereOeFunktion() 2021-12-21 08:10:17 +01:00
ma0068 7127045167 Verlängerung Bisverwendung einzeln und OE-Verlängerung 2021-12-20 17:20:11 +01:00
ma0068 9a92f203cd Lektoren ohne LA: gesammeltes Deaktivieren Benutzerfunktion 2021-12-20 16:21:24 +01:00
3 changed files with 549 additions and 161 deletions
+56 -8
View File
@@ -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;
}
}
}
?>
+404 -129
View File
@@ -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>';
}