mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-06-01 12:19:28 +00:00
Neue Übersichtsseite für die Vorarbeiten zur Mitarbeitermeldung
Neue Prüfscripte zur automatischen Verlängerung von Verwendungen für frei Lektoren Neue Prüfscripte zur deaktivierung von freien Lektoren ohne Lehrauftrag
This commit is contained in:
+8
-22
@@ -164,10 +164,8 @@ foreach($addon_obj->result as $addon)
|
||||
<command id="menu-extras-preinteressentenuebernahme:command" oncommand="ExtrasShowPreinteressentenuebernahme();"/>
|
||||
<command id="menu-extras-projektarbeitsabgaben:command" oncommand="ExtrasShowProjektarbeitsabgaben();"/>
|
||||
<command id="menu-extras-aliquote_reduktion:command" oncommand="ExtrasShowAliquote_reduktion();"/>
|
||||
<command id="menu-bis-mitarbeiter-import:command" oncommand="BISMitarbeiterImport();"/>
|
||||
<command id="menu-bis-mitarbeiter-export:command" oncommand="BISMitarbeiterExport();"/>
|
||||
<command id="menu-bis-mitarbeiter-checkverwendung:command" oncommand="BISMitarbeiterCheckVerwendung();"/>
|
||||
<command id="menu-bis-mitarbeiter-checkfunktion:command" oncommand="BISMitarbeiterCheckFunktion();"/>
|
||||
<command id="menu-bis-mitarbeiter-uebersicht:command" oncommand="BISMitarbeiterUebersicht();"/>
|
||||
<command id="menu-bis-studenten-export:command" oncommand="BISStudentenExport();"/>
|
||||
<command id="menu-bis-studenten-checkstudent:command" oncommand="BISStudentenPlausicheck();"/>
|
||||
<command id="menu-help-about:command" oncommand="OpenAboutDialog()"/>
|
||||
@@ -272,7 +270,7 @@ foreach($addon_obj->result as $addon)
|
||||
key ="menu-prefs-number_displayed_past_studiensemester:key"
|
||||
label ="&menu-prefs-number_displayed_past_studiensemester.label;"
|
||||
command ="menu-prefs-number_displayed_past_studiensemester:command"
|
||||
accesskey ="&menu-prefs-number_displayed_past_studiensemester.accesskey;"
|
||||
accesskey ="&menu-prefs-number_displayed_past_studiensemester.accesskey;"
|
||||
value ="<?php echo (isset($variable->variable->number_displayed_past_studiensemester)?$variable->variable->number_displayed_past_studiensemester:'');?>"
|
||||
/>
|
||||
</menupopup>
|
||||
@@ -859,30 +857,18 @@ foreach($addon_obj->result as $addon)
|
||||
<menupopup id="menu-bis-popup">
|
||||
<menu id="menu-bis-mitarbeiter" label="&menu-bis-mitarbeiter.label;" accesskey="&menu-bis-mitarbeiter.accesskey;">
|
||||
<menupopup id="menu-bis-mitarbeiter-popup">
|
||||
<menuitem
|
||||
id = "menu-bis-mitarbeiter-checkverwendung"
|
||||
key = "menu-bis-mitarbeiter-checkverwendung:key"
|
||||
label = "&menu-bis-mitarbeiter-checkverwendung.label;"
|
||||
command = "menu-bis-mitarbeiter-checkverwendung:command"
|
||||
accesskey = "&menu-bis-mitarbeiter-checkverwendung.accesskey;"/>
|
||||
<menuitem
|
||||
id = "menu-bis-mitarbeiter-checkfunktion"
|
||||
key = "menu-bis-mitarbeiter-checkfunktion:key"
|
||||
label = "&menu-bis-mitarbeiter-checkfunktion.label;"
|
||||
command = "menu-bis-mitarbeiter-checkfunktion:command"
|
||||
accesskey = "&menu-bis-mitarbeiter-checkfunktion.accesskey;"/>
|
||||
<menuitem
|
||||
id = "menu-bis-mitarbeiter-uebersicht"
|
||||
key = "menu-bis-mitarbeiter-uebersicht:key"
|
||||
label = "&menu-bis-mitarbeiter-uebersicht.label;"
|
||||
command = "menu-bis-mitarbeiter-uebersicht:command"
|
||||
accesskey = "&menu-bis-mitarbeiter-uebersicht.accesskey;"/>
|
||||
<menuitem
|
||||
id = "menu-bis-mitarbeiter-export"
|
||||
key = "menu-bis-mitarbeiter-export:key"
|
||||
label = "&menu-bis-mitarbeiter-export.label;"
|
||||
command = "menu-bis-mitarbeiter-export:command"
|
||||
accesskey = "&menu-bis-mitarbeiter-export.accesskey;"/>
|
||||
<menuitem
|
||||
id = "menu-bis-mitarbeiter-import"
|
||||
key = "menu-bis-mitarbeiter-import:key"
|
||||
label = "&menu-bis-mitarbeiter-import.label;"
|
||||
command = "menu-bis-mitarbeiter-import:command"
|
||||
accesskey = "&menu-bis-mitarbeiter-import.accesskey;"/>
|
||||
</menupopup>
|
||||
</menu>
|
||||
<menu id="menu-bis-studenten" label="&menu-bis-studenten.label;" accesskey="&menu-bis-studenten.accesskey;">
|
||||
|
||||
+11
-19
@@ -1203,9 +1203,9 @@ function MessageNew()
|
||||
else
|
||||
{
|
||||
var prestudentIdArray = getMultipleTreeCellText(tree, 'student-treecol-prestudent_id');
|
||||
|
||||
|
||||
var action = '<?php echo APP_ROOT ?>index.ci.php/system/Messages/write/' + <?php echo $benutzer->person_id; ?>;
|
||||
|
||||
|
||||
openWindowPostArray(action, 'prestudent_id', prestudentIdArray);
|
||||
}
|
||||
}
|
||||
@@ -1396,19 +1396,11 @@ function BISMitarbeiterExport()
|
||||
}
|
||||
|
||||
// ****
|
||||
// * Oeffnet Script zum Checken der Verwendung
|
||||
// * oeffnet Uebersichtsseite fuer Mitarbeiter BIS Meldung
|
||||
// ****
|
||||
function BISMitarbeiterCheckVerwendung()
|
||||
function BISMitarbeiterUebersicht()
|
||||
{
|
||||
window.open('<?php echo APP_ROOT ?>vilesci/bis/checkverwendung.php','CheckVerwendung','');
|
||||
}
|
||||
|
||||
// ****
|
||||
// * oeffnet Script zum Checken der Funktion
|
||||
// ****
|
||||
function BISMitarbeiterCheckFunktion()
|
||||
{
|
||||
window.open('<?php echo APP_ROOT ?>vilesci/bis/checkfunktion.php','CheckFunktion','');
|
||||
window.open('<?php echo APP_ROOT ?>vilesci/bis/personalmeldung_uebersicht.php','Uebersicht','');
|
||||
}
|
||||
|
||||
// ****
|
||||
@@ -2054,9 +2046,9 @@ function OrganisationseinheitTreeRefresh()
|
||||
function variableChangeValue(variable)
|
||||
{
|
||||
var variablevalue = getvariable(variable);
|
||||
|
||||
|
||||
if(variablevalue = prompt('Bitte geben Sie den neuen Wert fuer '+variable+' ein', variablevalue))
|
||||
{
|
||||
{
|
||||
variableChange(variable, '', variablevalue);
|
||||
}
|
||||
}
|
||||
@@ -2068,7 +2060,7 @@ function variableChange(variable, id, wert)
|
||||
{
|
||||
if(id!=null)
|
||||
item = document.getElementById(id);
|
||||
|
||||
|
||||
if(typeof(wert)==='undefined')
|
||||
{
|
||||
if(item.getAttribute('checked')=='true')
|
||||
@@ -2078,11 +2070,11 @@ function variableChange(variable, id, wert)
|
||||
}
|
||||
else
|
||||
checked=wert;
|
||||
|
||||
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
|
||||
// Request absetzen
|
||||
|
||||
|
||||
var url = '<?php echo APP_ROOT ?>content/fasDBDML.php';
|
||||
|
||||
var req = new phpRequest(url,'','');
|
||||
@@ -2090,7 +2082,7 @@ function variableChange(variable, id, wert)
|
||||
req.add('type', 'variablechange');
|
||||
req.add('name', variable);
|
||||
req.add('wert', checked);
|
||||
|
||||
|
||||
var response = req.executePOST();
|
||||
|
||||
var val = new ParseReturnValue(response)
|
||||
|
||||
@@ -387,6 +387,10 @@
|
||||
<!ENTITY menu-bis-mitarbeiter-checkfunktion.label "checkFunktion">
|
||||
<!ENTITY menu-bis-mitarbeiter-checkfunktion.accesskey "F">
|
||||
|
||||
<!ENTITY menu-bis-mitarbeiter-uebersicht.key "B">
|
||||
<!ENTITY menu-bis-mitarbeiter-uebersicht.label "Übersicht">
|
||||
<!ENTITY menu-bis-mitarbeiter-uebersicht.accesskey "B">
|
||||
|
||||
<!ENTITY menu-bis-studenten.key "S">
|
||||
<!ENTITY menu-bis-studenten.label "Studenten">
|
||||
<!ENTITY menu-bis-studenten.accesskey "S">
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<!ENTITY window.title "FAS">
|
||||
<!ENTITY window.version "3.0">
|
||||
<!ENTITY window.title "FAS">
|
||||
<!ENTITY window.version "3.0">
|
||||
|
||||
<!-- MENUE -->
|
||||
|
||||
@@ -362,9 +362,13 @@
|
||||
<!ENTITY menu-bis-mitarbeiter-checkverwendung.label "checkVerwendung">
|
||||
<!ENTITY menu-bis-mitarbeiter-checkverwendung.accesskey "V">
|
||||
|
||||
<!ENTITY menu-bis-mitarbeiter-checkfunktion.key "F">
|
||||
<!ENTITY menu-bis-mitarbeiter-checkfunktion.label "checkFunktion">
|
||||
<!ENTITY menu-bis-mitarbeiter-checkfunktion.accesskey "F">
|
||||
<!ENTITY menu-bis-mitarbeiter-uebersicht.key "B">
|
||||
<!ENTITY menu-bis-mitarbeiter-ueberischt.label "Übersicht">
|
||||
<!ENTITY menu-bis-mitarbeiter-uebersicht.accesskey "B">
|
||||
|
||||
<!ENTITY menu-bis-mitarbeiter-uebersicht.key "U">
|
||||
<!ENTITY menu-bis-mitarbeiter-uebersicht.label "Übersicht">
|
||||
<!ENTITY menu-bis-mitarbeiter-uebersicht.accesskey "U">
|
||||
|
||||
<!ENTITY menu-bis-studenten.key "S">
|
||||
<!ENTITY menu-bis-studenten.label "Studenten">
|
||||
|
||||
+164
-136
@@ -57,6 +57,10 @@ foreach ($stg_obj->result as $stg)
|
||||
$stg_arr[$stg->studiengang_kz] = $stg->kuerzel;
|
||||
}
|
||||
|
||||
$stsem = new studiensemester();
|
||||
$stsemprev = $stsem->getPrevious();
|
||||
$stsemprevprev = $stsem->getBeforePrevious();
|
||||
|
||||
echo '<html>
|
||||
<head>
|
||||
<title>Check Funktion</title>
|
||||
@@ -64,152 +68,176 @@ echo '<html>
|
||||
<link rel="stylesheet" href="../../skin/vilesci.css" type="text/css">
|
||||
</head>
|
||||
<body class="Background_main">
|
||||
<h2>Mitarbeiter BIS-Funktion Check</h2>
|
||||
<h2>Mitarbeiter BIS-Funktion Check für '.$stsemprevprev.'/'.$stsemprev.'</h2>
|
||||
';
|
||||
|
||||
$stsem = new studiensemester();
|
||||
$stsemprev = $stsem->getPrevious();
|
||||
$stsemprevprev = $stsem->getBeforePrevious();
|
||||
|
||||
echo "Generiere Funktionen für $stsemprevprev/$stsemprev<br>";
|
||||
|
||||
$qry = "SELECT tbl_lehreinheitmitarbeiter.mitarbeiter_uid, tbl_lehrveranstaltung.studiengang_kz, sum(tbl_lehreinheitmitarbeiter.semesterstunden) as semstd
|
||||
FROM lehre.tbl_lehreinheitmitarbeiter, lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung
|
||||
WHERE
|
||||
tbl_lehreinheitmitarbeiter.lehreinheit_id=tbl_lehreinheit.lehreinheit_id AND
|
||||
tbl_lehreinheit.lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id AND
|
||||
(studiensemester_kurzbz=".$db->db_add_param($stsemprev)." OR studiensemester_kurzbz=".$db->db_add_param($stsemprevprev).") AND
|
||||
bismelden=true AND tbl_lehreinheitmitarbeiter.semesterstunden>0 GROUP BY mitarbeiter_uid, studiengang_kz";
|
||||
|
||||
if($result = $db->db_query($qry))
|
||||
if(isset($_POST['action']) && $_POST['action'] == 'delete')
|
||||
{
|
||||
$lastuid='';
|
||||
while($row = $db->db_fetch_object($result))
|
||||
$qry = "DELETE FROM bis.tbl_bisfunktion where (studiengang_kz, bisverwendung_id) in (SELECT studiengang_kz, bisverwendung_id FROM bis.tbl_bisfunktion JOIN bis.tbl_bisverwendung USING(bisverwendung_id)
|
||||
WHERE (mitarbeiter_uid, studiengang_kz) NOT IN (
|
||||
SELECT mitarbeiter_uid, studiengang_kz
|
||||
FROM lehre.tbl_lehrveranstaltung, lehre.tbl_lehreinheit, lehre.tbl_lehreinheitmitarbeiter
|
||||
WHERE tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_lehreinheit.lehrveranstaltung_id AND
|
||||
tbl_lehreinheit.lehreinheit_id=tbl_lehreinheitmitarbeiter.lehreinheit_id AND
|
||||
(tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($stsemprevprev)." OR tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($stsemprev)."))
|
||||
AND (ende>".$db->db_add_param($lastbismeldung)." OR ende is null))";
|
||||
if($db->db_query($qry))
|
||||
{
|
||||
if($lastuid!=$row->mitarbeiter_uid)
|
||||
{
|
||||
$lastuid=$row->mitarbeiter_uid;
|
||||
//Verwendung suchen
|
||||
$person_error=false;
|
||||
$qry_verw = "SELECT * FROM bis.tbl_bisverwendung
|
||||
WHERE
|
||||
(ende>now() OR ende is null OR ende>".$db->db_add_param($lastbismeldung).")
|
||||
AND (beginn<".$db->db_add_param($aktbismeldung)." OR beginn is null)
|
||||
AND mitarbeiter_uid=".$db->db_add_param($row->mitarbeiter_uid)."
|
||||
ORDER BY beginn DESC";
|
||||
if($result_verw = $db->db_query($qry_verw))
|
||||
{
|
||||
if($db->db_num_rows($result_verw)==0)
|
||||
{
|
||||
echo "<br>Es wurde keine Verwendung fuer <b>$row->mitarbeiter_uid</b> gefunden";
|
||||
$person_error = true;
|
||||
$verwendung_not_found++;
|
||||
}
|
||||
else
|
||||
{
|
||||
if($row_verw = $db->db_fetch_object($result_verw))
|
||||
$verwendung_id = $row_verw->bisverwendung_id;
|
||||
else
|
||||
{
|
||||
echo "<br>Fehler beim Holen der Verwendung von $row->mitarbeiter_uid";
|
||||
$person_error = true;
|
||||
}
|
||||
}
|
||||
|
||||
if($db->db_num_rows($result_verw)>1)
|
||||
{
|
||||
echo "<br>Es wurde mehr als eine Verwendung bei $row->mitarbeiter_uid gefunden - es wird die Verwendung $verwendung_id verwendet";
|
||||
$verwendung_multiple++;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "<br>Fehler beim Ermitteln der Verwendung ".$db->db_last_error();
|
||||
$person_error = true;
|
||||
}
|
||||
}
|
||||
|
||||
if(!$person_error)
|
||||
{
|
||||
//SWS berechnen
|
||||
$swsneu = number_format(round($row->semstd/$wochen, 2),2,'.','');
|
||||
|
||||
//Funktion fuer diesen Studiengang suchen
|
||||
$bisfunktion = new bisfunktion();
|
||||
|
||||
if($bisfunktion->load($verwendung_id, $row->studiengang_kz))
|
||||
{
|
||||
$bisfunktion->new = false;
|
||||
|
||||
if($bisfunktion->sws!=$swsneu)
|
||||
{
|
||||
echo "<br>$row->mitarbeiter_uid: Funktion bei Studiengang ".$stg_arr[$row->studiengang_kz]." ($row->studiengang_kz) wird von $bisfunktion->sws auf $swsneu geaendert";
|
||||
$bisfunktion->sws = $swsneu;
|
||||
$funktion_geaendert++;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$bisfunktion->insertamum = date('Y-m-d H:i:s');
|
||||
$bisfunktion->insertvon = $user;
|
||||
$bisfunktion->studiengang_kz = $row->studiengang_kz;
|
||||
$bisfunktion->sws = $swsneu;
|
||||
$bisfunktion->new = true;
|
||||
$bisfunktion->bisverwendung_id = $verwendung_id;
|
||||
$funktion_hinzugefuegt++;
|
||||
}
|
||||
$bisfunktion->updateamum = date('Y-m-d H:i:s');
|
||||
$bisfunktion->updatevon = $user;
|
||||
|
||||
if(!$bisfunktion->save())
|
||||
{
|
||||
echo "<br>$row->mitarbeiter_uid: Fehler beim Anlegen der Funktion ".$bisfunktion->errormsg;
|
||||
if($bisfunktion->new)
|
||||
$funktion_hinzugefuegt--;
|
||||
else
|
||||
$funktion_geaendert--;
|
||||
$funktion_error++;
|
||||
}
|
||||
}
|
||||
echo 'Falsche Funktionszuordnungen wurden entfernt';
|
||||
}
|
||||
else
|
||||
{
|
||||
echo 'Fehler beim Löschen der Zuordnungen';
|
||||
}
|
||||
}
|
||||
if(isset($_POST['action']) && $_POST['action'] == 'run')
|
||||
{
|
||||
$qry = "SELECT tbl_lehreinheitmitarbeiter.mitarbeiter_uid, tbl_lehrveranstaltung.studiengang_kz, sum(tbl_lehreinheitmitarbeiter.semesterstunden) as semstd
|
||||
FROM lehre.tbl_lehreinheitmitarbeiter, lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung
|
||||
WHERE
|
||||
tbl_lehreinheitmitarbeiter.lehreinheit_id=tbl_lehreinheit.lehreinheit_id AND
|
||||
tbl_lehreinheit.lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id AND
|
||||
(studiensemester_kurzbz=".$db->db_add_param($stsemprev)." OR studiensemester_kurzbz=".$db->db_add_param($stsemprevprev).") AND
|
||||
bismelden=true AND tbl_lehreinheitmitarbeiter.semesterstunden>0 GROUP BY mitarbeiter_uid, studiengang_kz";
|
||||
|
||||
echo '<br><br>';
|
||||
echo '<b>Check fuer nicht benoetigte Funktionen</b>';
|
||||
$qry = "SELECT * FROM bis.tbl_bisfunktion JOIN bis.tbl_bisverwendung USING(bisverwendung_id)
|
||||
WHERE (mitarbeiter_uid, studiengang_kz) NOT IN (
|
||||
SELECT mitarbeiter_uid, studiengang_kz
|
||||
FROM lehre.tbl_lehrveranstaltung, lehre.tbl_lehreinheit, lehre.tbl_lehreinheitmitarbeiter
|
||||
WHERE tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_lehreinheit.lehrveranstaltung_id AND
|
||||
tbl_lehreinheit.lehreinheit_id=tbl_lehreinheitmitarbeiter.lehreinheit_id AND
|
||||
(tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($stsemprev)." OR tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($stsemprevprev)."))
|
||||
AND (ende>".$db->db_add_param($lastbismeldung)." OR ende is null)
|
||||
ORDER BY mitarbeiter_uid, studiengang_kz";
|
||||
if($result = $db->db_query($qry))
|
||||
{
|
||||
$funktion_ohne_lehrauftrag = $db->db_num_rows($result);
|
||||
|
||||
$lastuid='';
|
||||
while($row = $db->db_fetch_object($result))
|
||||
{
|
||||
echo "<br><b>$row->mitarbeiter_uid</b> hat im Studiengang ".$stg_arr[$row->studiengang_kz]." ($row->studiengang_kz) eine Funktion ohne Lehrauftrag";
|
||||
if($lastuid!=$row->mitarbeiter_uid)
|
||||
{
|
||||
$lastuid=$row->mitarbeiter_uid;
|
||||
//Verwendung suchen
|
||||
$person_error=false;
|
||||
$qry_verw = "SELECT * FROM bis.tbl_bisverwendung
|
||||
WHERE
|
||||
(ende>now() OR ende is null OR ende>".$db->db_add_param($lastbismeldung).")
|
||||
AND (beginn<".$db->db_add_param($aktbismeldung)." OR beginn is null)
|
||||
AND mitarbeiter_uid=".$db->db_add_param($row->mitarbeiter_uid)."
|
||||
ORDER BY beginn DESC";
|
||||
if($result_verw = $db->db_query($qry_verw))
|
||||
{
|
||||
if($db->db_num_rows($result_verw)==0)
|
||||
{
|
||||
echo "<br>Es wurde keine Verwendung fuer <b>$row->mitarbeiter_uid</b> gefunden";
|
||||
$person_error = true;
|
||||
$verwendung_not_found++;
|
||||
}
|
||||
else
|
||||
{
|
||||
if($row_verw = $db->db_fetch_object($result_verw))
|
||||
$verwendung_id = $row_verw->bisverwendung_id;
|
||||
else
|
||||
{
|
||||
echo "<br>Fehler beim Holen der Verwendung von $row->mitarbeiter_uid";
|
||||
$person_error = true;
|
||||
}
|
||||
}
|
||||
|
||||
if($db->db_num_rows($result_verw)>1)
|
||||
{
|
||||
echo "<br>Es wurde mehr als eine Verwendung bei $row->mitarbeiter_uid gefunden - es wird die Verwendung $verwendung_id verwendet";
|
||||
$verwendung_multiple++;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "<br>Fehler beim Ermitteln der Verwendung ".$db->db_last_error();
|
||||
$person_error = true;
|
||||
}
|
||||
}
|
||||
|
||||
if(!$person_error)
|
||||
{
|
||||
//SWS berechnen
|
||||
$swsneu = number_format(round($row->semstd/$wochen, 2),2,'.','');
|
||||
|
||||
//Funktion fuer diesen Studiengang suchen
|
||||
$bisfunktion = new bisfunktion();
|
||||
|
||||
if($bisfunktion->load($verwendung_id, $row->studiengang_kz))
|
||||
{
|
||||
$bisfunktion->new = false;
|
||||
|
||||
if($bisfunktion->sws!=$swsneu)
|
||||
{
|
||||
echo "<br>$row->mitarbeiter_uid: Funktion bei Studiengang ".$stg_arr[$row->studiengang_kz]." ($row->studiengang_kz) wird von $bisfunktion->sws auf $swsneu geaendert";
|
||||
$bisfunktion->sws = $swsneu;
|
||||
$funktion_geaendert++;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$bisfunktion->insertamum = date('Y-m-d H:i:s');
|
||||
$bisfunktion->insertvon = $user;
|
||||
$bisfunktion->studiengang_kz = $row->studiengang_kz;
|
||||
$bisfunktion->sws = $swsneu;
|
||||
$bisfunktion->new = true;
|
||||
$bisfunktion->bisverwendung_id = $verwendung_id;
|
||||
$funktion_hinzugefuegt++;
|
||||
}
|
||||
$bisfunktion->updateamum = date('Y-m-d H:i:s');
|
||||
$bisfunktion->updatevon = $user;
|
||||
|
||||
if(!$bisfunktion->save())
|
||||
{
|
||||
echo "<br>$row->mitarbeiter_uid: Fehler beim Anlegen der Funktion ".$bisfunktion->errormsg;
|
||||
if($bisfunktion->new)
|
||||
$funktion_hinzugefuegt--;
|
||||
else
|
||||
$funktion_geaendert--;
|
||||
$funktion_error++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
echo '<br><br>';
|
||||
echo '<b>Check fuer nicht benoetigte Funktionen</b>';
|
||||
$qry = "SELECT * FROM bis.tbl_bisfunktion JOIN bis.tbl_bisverwendung USING(bisverwendung_id)
|
||||
WHERE (mitarbeiter_uid, studiengang_kz) NOT IN (
|
||||
SELECT mitarbeiter_uid, studiengang_kz
|
||||
FROM lehre.tbl_lehrveranstaltung, lehre.tbl_lehreinheit, lehre.tbl_lehreinheitmitarbeiter
|
||||
WHERE tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_lehreinheit.lehrveranstaltung_id AND
|
||||
tbl_lehreinheit.lehreinheit_id=tbl_lehreinheitmitarbeiter.lehreinheit_id AND
|
||||
(tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($stsemprev)." OR tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($stsemprevprev)."))
|
||||
AND (ende>".$db->db_add_param($lastbismeldung)." OR ende is null)
|
||||
ORDER BY mitarbeiter_uid, studiengang_kz";
|
||||
if($result = $db->db_query($qry))
|
||||
{
|
||||
$funktion_ohne_lehrauftrag = $db->db_num_rows($result);
|
||||
|
||||
while($row = $db->db_fetch_object($result))
|
||||
{
|
||||
echo "<br><b>$row->mitarbeiter_uid</b> hat im Studiengang ".$stg_arr[$row->studiengang_kz]." ($row->studiengang_kz) eine Funktion ohne Lehrauftrag";
|
||||
}
|
||||
}
|
||||
echo '<br><br>Loeschen der Funktionen:
|
||||
<form method="POST" action="checkfunktion.php">
|
||||
<input type="hidden" name="action" value="delete" />
|
||||
<input type="submit" value="Falsche Funktionen jetzt löschen" />
|
||||
</form>';
|
||||
echo '<br><br>';
|
||||
echo '<h3>Uebersicht</h3>';
|
||||
echo '<table>';
|
||||
echo "<tr><td>Nicht vorhandene Verwendungen</td><td>$verwendung_not_found</td></tr>";
|
||||
echo "<tr><td>Mehrere moegliche Verwendungen vorhanden</td><td>$verwendung_multiple</td></tr>";
|
||||
echo "<tr><td>Fehler bei Funktionen</td><td>$funktion_error</td></tr>";
|
||||
echo "<tr><td>Funktionen ohne Lehrauftrag</td><td>$funktion_ohne_lehrauftrag</td></tr>";
|
||||
echo "<tr><td> </td><td> </td></tr>";
|
||||
echo "<tr><td>Funktionen hinzugefuegt</td><td>$funktion_hinzugefuegt</td></tr>";
|
||||
echo "<tr><td>Funktionen geaendert</td><td>$funktion_geaendert</td></tr>";
|
||||
echo '</table>';
|
||||
}
|
||||
echo "<br><br>Loeschen der Funktionen mit: DELETE FROM bis.tbl_bisfunktion where (studiengang_kz, bisverwendung_id) in (SELECT studiengang_kz, bisverwendung_id FROM bis.tbl_bisfunktion JOIN bis.tbl_bisverwendung USING(bisverwendung_id)
|
||||
WHERE (mitarbeiter_uid, studiengang_kz) NOT IN (
|
||||
SELECT mitarbeiter_uid, studiengang_kz
|
||||
FROM lehre.tbl_lehrveranstaltung, lehre.tbl_lehreinheit, lehre.tbl_lehreinheitmitarbeiter
|
||||
WHERE tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_lehreinheit.lehrveranstaltung_id AND
|
||||
tbl_lehreinheit.lehreinheit_id=tbl_lehreinheitmitarbeiter.lehreinheit_id AND
|
||||
(tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($stsemprevprev)." OR tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($stsemprev)."))
|
||||
AND (ende>".$db->db_add_param($lastbismeldung)." OR ende is null))";
|
||||
echo '<br><br>';
|
||||
echo '<h3>Uebersicht</h3>';
|
||||
echo '<table>';
|
||||
echo "<tr><td>Nicht vorhandene Verwendungen</td><td>$verwendung_not_found</td></tr>";
|
||||
echo "<tr><td>Mehrere moegliche Verwendungen vorhanden</td><td>$verwendung_multiple</td></tr>";
|
||||
echo "<tr><td>Fehler bei Funktionen</td><td>$funktion_error</td></tr>";
|
||||
echo "<tr><td>Funktionen ohne Lehrauftrag</td><td>$funktion_ohne_lehrauftrag</td></tr>";
|
||||
echo "<tr><td> </td><td> </td></tr>";
|
||||
echo "<tr><td>Funktionen hinzugefuegt</td><td>$funktion_hinzugefuegt</td></tr>";
|
||||
echo "<tr><td>Funktionen geaendert</td><td>$funktion_geaendert</td></tr>";
|
||||
echo '</table>';
|
||||
}
|
||||
else
|
||||
{
|
||||
echo '
|
||||
<br>
|
||||
Diese Seite erstellt automatisch die Funktionen der Lektoren aus den Lehraufträgen.
|
||||
|
||||
<form method="POST" action="checkfunktion.php">
|
||||
<input type="hidden" name="action" value="run" />
|
||||
<input type="submit" value="Funktionen generieren" />
|
||||
</form>';
|
||||
}
|
||||
|
||||
@@ -122,16 +122,16 @@ if($resultall = $db->db_query($qryall))
|
||||
}
|
||||
}
|
||||
}
|
||||
//2 - aktive mitarbeiter mit keiner aktuellen verwendung
|
||||
//2 - aktive fixe mitarbeiter mit keiner aktuellen verwendung
|
||||
$qryall='SELECT uid,nachname,vorname, count(bisverwendung_id)
|
||||
FROM campus.vw_mitarbeiter LEFT OUTER JOIN bis.tbl_bisverwendung ON (uid=mitarbeiter_uid)
|
||||
WHERE aktiv AND NOT ende>now() AND NOT ende IS NULL
|
||||
WHERE aktiv AND fixangestellt AND NOT ende>now() AND NOT ende IS NULL
|
||||
AND uid NOT IN (SELECT uid FROM campus.vw_mitarbeiter LEFT OUTER JOIN bis.tbl_bisverwendung ON (uid=mitarbeiter_uid)
|
||||
WHERE aktiv AND (ende>now() OR ende IS NULL)) GROUP BY uid,nachname,vorname ORDER by nachname,vorname;';
|
||||
WHERE aktiv AND fixangestellt AND (ende>now() OR ende IS NULL)) GROUP BY uid,nachname,vorname ORDER by nachname,vorname;';
|
||||
if($resultall = $db->db_query($qryall))
|
||||
{
|
||||
$num_rows_all=$db->db_num_rows($resultall);
|
||||
echo "<br><br><H2>Bei $num_rows_all aktiven Mitarbeitern sind keine aktuellen Verwendungen eingetragen</H2>";
|
||||
echo "<br><br><H2>Bei $num_rows_all aktiven Fixangestellten Mitarbeitern sind keine aktuellen Verwendungen eingetragen</H2>";
|
||||
while($rowall=$db->db_fetch_object($resultall))
|
||||
{
|
||||
$i=0;
|
||||
@@ -293,10 +293,10 @@ if($resultall = $db->db_query($qryall))
|
||||
$i=0;
|
||||
$qryall="SELECT DISTINCT lehre.tbl_lehreinheitmitarbeiter.mitarbeiter_uid, nachname, vorname
|
||||
FROM lehre.tbl_lehreinheitmitarbeiter join lehre.tbl_lehreinheit USING (lehreinheit_id)
|
||||
JOIN
|
||||
JOIN
|
||||
lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id)
|
||||
JOIN campus.vw_mitarbeiter ON (tbl_lehreinheitmitarbeiter.mitarbeiter_uid=uid)
|
||||
WHERE
|
||||
WHERE
|
||||
(lehre.tbl_lehreinheit.studiensemester_kurzbz='$lastss' OR lehre.tbl_lehreinheit.studiensemester_kurzbz='$lastws')
|
||||
AND tbl_lehreinheitmitarbeiter.stundensatz!=0 AND tbl_lehreinheitmitarbeiter.semesterstunden!=0
|
||||
AND NOT EXISTS (SELECT * FROM bis.tbl_bisverwendung
|
||||
@@ -374,7 +374,7 @@ if($resultall = $db->db_query($qryall))
|
||||
{
|
||||
$i++;
|
||||
echo "<br><u>Mitarbeiter(in) ".$rowall->nachname." ".$rowall->vorname.":</u><br>";
|
||||
echo "(ba1code: $rowall->ba1code, ba2code: $rowall->ba2code)";
|
||||
echo "(ba1code: $rowall->ba1code, ba2code: $rowall->ba2code)";
|
||||
}
|
||||
}
|
||||
echo '<br>';
|
||||
|
||||
@@ -0,0 +1,308 @@
|
||||
<?php
|
||||
/* Copyright (C) 2017 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: Andreas Oesterreicher < andreas.oesterreicher@technikum-wien.at >
|
||||
*/
|
||||
require_once('../../config/vilesci.config.inc.php');
|
||||
require_once('../../include/functions.inc.php');
|
||||
require_once('../../include/benutzerberechtigung.class.php');
|
||||
require_once('../../include/studiensemester.class.php');
|
||||
require_once('../../include/bisfunktion.class.php');
|
||||
require_once('../../include/studiengang.class.php');
|
||||
require_once('../../include/datum.class.php');
|
||||
require_once('../../include/benutzerfunktion.class.php');
|
||||
require_once('../../include/funktion.class.php');
|
||||
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.');
|
||||
|
||||
$uid = get_uid();
|
||||
$datum_obj = new datum();
|
||||
|
||||
$fkt_obj = new funktion();
|
||||
$fkt_obj->getAll();
|
||||
$fkt_arr = array();
|
||||
foreach ($fkt_obj->result as $row_fkt)
|
||||
$fkt_arr[$row_fkt->funktion_kurzbz] = $row_fkt->beschreibung;
|
||||
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($uid);
|
||||
|
||||
$studiensemester = new studiensemester();
|
||||
$studiensemester->getAll();
|
||||
|
||||
$stsem_arr = array();
|
||||
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;
|
||||
}
|
||||
if (!$rechte->isBerechtigt('mitarbeiter/stammdaten', null, 'suid'))
|
||||
die ('Sie haben keine Berechtigung für diese Seite');
|
||||
|
||||
echo '<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<link href="../../skin/vilesci.css" rel="stylesheet" type="text/css">';
|
||||
include('../../include/meta/jquery.php');
|
||||
include('../../include/meta/jquery-tablesorter.php');
|
||||
echo '
|
||||
<link href="../../skin/jquery-ui-1.9.2.custom.min.css" rel="stylesheet" type="text/css">
|
||||
<script type="text/javascript" src="../../vendor/components/jqueryui/jquery-ui.min.js"></script>
|
||||
<script type="text/javascript" src="../../include/js/jquery.ui.datepicker.translation.js"></script>
|
||||
<title>Mitarbeitermeldung</title>
|
||||
<script>
|
||||
$(document).ready(function()
|
||||
{
|
||||
$( ".datepicker_datum" ).datepicker({
|
||||
changeMonth: true,
|
||||
hangeYear: true,
|
||||
dateFormat: "yy-mm-dd",
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<h2>Freie Lektoren mit Lehrauftrag ohne Verwendung</h2>
|
||||
Die folgenden freien Lektoren haben einen aktiven Lehrauftrag im Meldezeitraum,
|
||||
haben jedoch keine aktive Verwendung.<br>
|
||||
<br>
|
||||
Beim Klicken auf "Alle Verwendungen generieren/aktualisieren" werden die Verwendungen automatisch verlängert wenn
|
||||
die letzte Verwendung näher als 10 Monate liegt. Ansonsten wird eine neue Verwendung erstellt. Als neues Ende-Datum
|
||||
wird das Ende des Semesters letzten Lehrauftrages herangezogen.
|
||||
<br>
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function()
|
||||
{
|
||||
$("#t1").tablesorter(
|
||||
{
|
||||
sortList: [[0,0]],
|
||||
widgets: ["zebra"]
|
||||
});
|
||||
});
|
||||
</script>';
|
||||
$qry = "SELECT ma.* FROM
|
||||
(
|
||||
SELECT
|
||||
vorname, nachname, uid, personalnummer, insertamum,anmerkung,
|
||||
(
|
||||
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)";
|
||||
if ($result = $db->db_query($qry))
|
||||
{
|
||||
echo '<br><br>Anzahl:'.$db->db_num_rows($result);
|
||||
echo '
|
||||
<div style="float:right" >
|
||||
<form method="POST" action="personal_generateverwendung.php">
|
||||
<input type="hidden" name="action" value="generateall" />
|
||||
<input type="submit" value="Alle Verwendungen generieren / aktualisieren" />
|
||||
</form>
|
||||
</div>';
|
||||
echo '
|
||||
|
||||
<br><br>
|
||||
<table class="tablesorter" id="t1">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Nachname</th>
|
||||
<th>Vorname</th>
|
||||
<th>UID</th>
|
||||
<th>Personalnummer</th>
|
||||
<th>Anlagedatum</th>
|
||||
<th>Letzer Lehrauftrag</th>
|
||||
<th>Aktive Funktionen</th>
|
||||
<th>Letzte Verwendung</th>
|
||||
<th>Anmerkung</th>
|
||||
<th>Aktion</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
';
|
||||
while ($row = $db->db_fetch_object($result))
|
||||
{
|
||||
echo '
|
||||
<tr>
|
||||
<td>'.$db->convert_html_chars($row->nachname).'</td>
|
||||
<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($row->letzter_lehrauftrag).'</td>
|
||||
<td>
|
||||
<table>';
|
||||
$fkt = new benutzerfunktion();
|
||||
$fkt->getBenutzerFunktionByUid($row->uid, null, date('Y-m-d'));
|
||||
|
||||
foreach ($fkt->result as $row_fkt)
|
||||
{
|
||||
echo '<tr>
|
||||
<td width="100px;">'.$fkt_arr[$row_fkt->funktion_kurzbz].'</td>
|
||||
<td>'.$row_fkt->oe_kurzbz.'</td>
|
||||
</tr>';
|
||||
}
|
||||
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>'.($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)
|
||||
{
|
||||
// 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;
|
||||
if(isset($_POST['action']) && $_POST['action']=='generateall')
|
||||
{
|
||||
if ($bisverwendung->save(false))
|
||||
{
|
||||
echo '<td>Verwendung verlängert</td>';
|
||||
}
|
||||
else
|
||||
{
|
||||
echo '<td>Failed:'.$bisverwendung->errormsg.'</td>';
|
||||
}
|
||||
}
|
||||
else
|
||||
echo '<td>Verlängerung bis '.$bisverwendung->ende.'</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;
|
||||
if(isset($_POST['action']) && $_POST['action']=='generateall')
|
||||
{
|
||||
if ($bisverwendung->save(true))
|
||||
{
|
||||
echo '<td>Neue Verwendung erstellt</td>';
|
||||
}
|
||||
else
|
||||
{
|
||||
echo '<td>Failed:'.$bisverwendung->errormsg.'</td>';
|
||||
}
|
||||
}
|
||||
else
|
||||
echo '<td>Neue Verwendung wird erstellt '.$bisverwendung->beginn.' bis '.$bisverwendung->ende.'</td>';
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
echo '<td>passt eigentlich</td>';
|
||||
}
|
||||
|
||||
echo '</tr>';
|
||||
}
|
||||
echo '</tbody></table>';
|
||||
}
|
||||
|
||||
echo '
|
||||
</body>
|
||||
</html>';
|
||||
@@ -0,0 +1,284 @@
|
||||
<?php
|
||||
/* Copyright (C) 2017 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: Andreas Oesterreicher < andreas.oesterreicher@technikum-wien.at >
|
||||
*/
|
||||
require_once('../../config/vilesci.config.inc.php');
|
||||
require_once('../../include/functions.inc.php');
|
||||
require_once('../../include/benutzerberechtigung.class.php');
|
||||
require_once('../../include/studiensemester.class.php');
|
||||
require_once('../../include/bisfunktion.class.php');
|
||||
require_once('../../include/studiengang.class.php');
|
||||
require_once('../../include/datum.class.php');
|
||||
require_once('../../include/benutzerfunktion.class.php');
|
||||
require_once('../../include/funktion.class.php');
|
||||
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.');
|
||||
|
||||
$uid = get_uid();
|
||||
$datum_obj = new datum();
|
||||
|
||||
$fkt_obj = new funktion();
|
||||
$fkt_obj->getAll();
|
||||
$fkt_arr = array();
|
||||
foreach ($fkt_obj->result as $row_fkt)
|
||||
$fkt_arr[$row_fkt->funktion_kurzbz] = $row_fkt->beschreibung;
|
||||
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($uid);
|
||||
|
||||
if (!$rechte->isBerechtigt('mitarbeiter/stammdaten', null, 'suid'))
|
||||
die ('Sie haben keine Berechtigung für diese Seite');
|
||||
|
||||
if (isset($_POST['action']) && $_POST['action'] == 'deaktivieren')
|
||||
{
|
||||
$benutzer = new benutzer();
|
||||
if ($benutzer->load($_POST['uid']))
|
||||
{
|
||||
$benutzer->bnaktiv = false;
|
||||
$benutzer->updateamum = date('Y-m-d H:i:s');
|
||||
$benutzer->updatevon = $uid;
|
||||
if ($benutzer->save(false, false))
|
||||
{
|
||||
$bisverwendung = new bisverwendung();
|
||||
if ($bisverwendung->getLastVerwendung($_POST['uid']))
|
||||
{
|
||||
if ($bisverwendung->ende == '')
|
||||
{
|
||||
$bisverwendung->ende = $_POST['datum'];
|
||||
$bisverwendung->updateamum = date('Y-m-d H:i:s');
|
||||
$bisverwendung->updatevon = $uid;
|
||||
|
||||
if ($bisverwendung->save(false))
|
||||
exit ('true');
|
||||
}
|
||||
else
|
||||
{
|
||||
exit ('true');
|
||||
}
|
||||
}
|
||||
else
|
||||
exit ('Fehler beim Laden der Verwendung:'.$bisverwendung->errormsg);
|
||||
}
|
||||
else
|
||||
exit ('Fehler beim Deaktivieren:'.$benutzer->errormsg);
|
||||
}
|
||||
else
|
||||
exit ('Fehler beim Laden des Benutzers');
|
||||
}
|
||||
|
||||
echo '<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<link href="../../skin/vilesci.css" rel="stylesheet" type="text/css">';
|
||||
include('../../include/meta/jquery.php');
|
||||
include('../../include/meta/jquery-tablesorter.php');
|
||||
echo '
|
||||
<link href="../../skin/jquery-ui-1.9.2.custom.min.css" rel="stylesheet" type="text/css">
|
||||
<script type="text/javascript" src="../../vendor/components/jqueryui/jquery-ui.min.js"></script>
|
||||
<script type="text/javascript" src="../../include/js/jquery.ui.datepicker.translation.js"></script>
|
||||
<title>Mitarbeitermeldung</title>
|
||||
<script>
|
||||
$(document).ready(function()
|
||||
{
|
||||
$( ".datepicker_datum" ).datepicker({
|
||||
changeMonth: true,
|
||||
hangeYear: true,
|
||||
dateFormat: "yy-mm-dd",
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<h2>Aktive freie Lektoren ohne Lehrauftrag</h2>
|
||||
Die folgenden freien Lektoren haben seit mind. 3 Semestern keinen Lehrauftrag und sind nach wie vor aktiv.
|
||||
Wählen sie ein Datum und klicken Sie auf den Link "deaktivieren" um den Mitarbeiter zu deaktivieren und
|
||||
die Verwendung zum angegebenen Datum zu beenden.
|
||||
<br>
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function()
|
||||
{
|
||||
$("#t1").tablesorter(
|
||||
{
|
||||
sortList: [[0,0]],
|
||||
widgets: ["zebra"]
|
||||
});
|
||||
});
|
||||
function deaktiviere(uid)
|
||||
{
|
||||
var datum = $("#deaktivierungsdatum").val();
|
||||
|
||||
$.ajax({
|
||||
type:"POST",
|
||||
url:"personal_lektorenohnelehrauftrag.php",
|
||||
data:{ "action": "deaktivieren", "uid": uid, "datum": datum },
|
||||
success: function(data)
|
||||
{
|
||||
if(data=="true")
|
||||
{
|
||||
$("#deaktivierungslink_"+uid).hide();
|
||||
$("#infobox_"+uid).text("OK");
|
||||
}
|
||||
else
|
||||
{
|
||||
$("#infobox_"+uid).text("ERROR:"+data);
|
||||
}
|
||||
},
|
||||
error: function() { alert("error"); }
|
||||
});
|
||||
}
|
||||
</script>';
|
||||
$qry = "SELECT
|
||||
vorname, nachname, uid, personalnummer, insertamum,anmerkung,
|
||||
(
|
||||
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
|
||||
aktiv = true
|
||||
AND fixangestellt = false
|
||||
AND lektor = true
|
||||
AND bismelden = true
|
||||
AND personalnummer > 0
|
||||
AND insertamum <= now() - '5 months'::interval
|
||||
AND NOT 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
|
||||
LIMIT 3)
|
||||
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
|
||||
LIMIT 3)
|
||||
AND tbl_projektbetreuer.person_id=vw_mitarbeiter.person_id
|
||||
)";
|
||||
if ($result = $db->db_query($qry))
|
||||
{
|
||||
echo '<br><br>Anzahl:'.$db->db_num_rows($result);
|
||||
echo '
|
||||
<div style="float:right" >Beendingungsdatum der Verwendung:
|
||||
<input class="datepicker_datum" type="text" size="10" value="'.date('Y').'-08-31" id="deaktivierungsdatum"/>
|
||||
</div>
|
||||
<br><br>
|
||||
<table class="tablesorter" id="t1">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Nachname</th>
|
||||
<th>Vorname</th>
|
||||
<th>UID</th>
|
||||
<th>Personalnummer</th>
|
||||
<th>Anlagedatum</th>
|
||||
<th>Letzer Lehrauftrag</th>
|
||||
<th>Aktive Funktionen</th>
|
||||
<th>Letzte Verwendung</th>
|
||||
<th>Anmerkung</th>
|
||||
<th>Aktion</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
';
|
||||
while ($row = $db->db_fetch_object($result))
|
||||
{
|
||||
echo '
|
||||
<tr>
|
||||
<td>'.$db->convert_html_chars($row->nachname).'</td>
|
||||
<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($row->letzter_lehrauftrag).'</td>
|
||||
<td>
|
||||
<table>';
|
||||
$fkt = new benutzerfunktion();
|
||||
$fkt->getBenutzerFunktionByUid($row->uid, null, date('Y-m-d'));
|
||||
|
||||
foreach ($fkt->result as $row_fkt)
|
||||
{
|
||||
echo '<tr>
|
||||
<td width="100px;">'.$fkt_arr[$row_fkt->funktion_kurzbz].'</td>
|
||||
<td>'.$row_fkt->oe_kurzbz.'</td>
|
||||
</tr>';
|
||||
}
|
||||
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>'.($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>';
|
||||
}
|
||||
echo '</tbody></table>';
|
||||
}
|
||||
|
||||
echo '
|
||||
</body>
|
||||
</html>';
|
||||
@@ -0,0 +1,54 @@
|
||||
<?php
|
||||
/* Copyright (C) 2017 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: Andreas Oesterreicher < andreas.oesterreicher@technikum-wien.at >
|
||||
*/
|
||||
require_once('../../config/vilesci.config.inc.php');
|
||||
|
||||
echo '<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<link href="../../skin/vilesci.css" rel="stylesheet" type="text/css">
|
||||
<title>Mitarbeitermeldung</title>
|
||||
</head>
|
||||
<body>
|
||||
<h2>Personalmeldung Übersicht</h2>
|
||||
<ul>
|
||||
<li>
|
||||
<a href="personal_lektorenohnelehrauftrag.php">Lektoren ohne Lehraufträge</a><br>
|
||||
Deaktivieren von freien Lektoren die keinen Lehrauftrag mehr haben<br><br>
|
||||
</li>
|
||||
<li>
|
||||
<a href="personal_generateverwendung.php">Verwendungen generieren</a><br>
|
||||
Verwendungen aktualisieren für freie Lektoren die einen aktuellen Lehrauftrag
|
||||
haben, jedoch keine aktuelle Verwendung<br><br>
|
||||
</li>
|
||||
<li>
|
||||
<a href="checkverwendung.php">Plausibilitätsprüfungen Verwendungen</a><br>
|
||||
Diverse Prüfungen auf inkonsistente Daten<br><br>
|
||||
</li>
|
||||
<li>
|
||||
<a href="checkfunktion.php">Funktionen generieren</a><br>
|
||||
Funktionen zu den Verwendungen generieren (SWS pro Studiengang)<br><br>
|
||||
</li>
|
||||
<li>
|
||||
<a href="personalmeldung.php">Meldung generieren</a><br>
|
||||
Abschließende Plausibilitätsprüfungen durchführen und Meldung generieren<br><br>
|
||||
</li>
|
||||
</ul>
|
||||
';
|
||||
Reference in New Issue
Block a user