diff --git a/content/fas.xul.php b/content/fas.xul.php index f5c07a9f8..282a6580a 100644 --- a/content/fas.xul.php +++ b/content/fas.xul.php @@ -164,10 +164,8 @@ foreach($addon_obj->result as $addon) - - - + @@ -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 ="variable->number_displayed_past_studiensemester)?$variable->variable->number_displayed_past_studiensemester:'');?>" /> @@ -859,30 +857,18 @@ foreach($addon_obj->result as $addon) - - + - diff --git a/content/fasoverlay.js.php b/content/fasoverlay.js.php index 345ae6afe..258d6738b 100644 --- a/content/fasoverlay.js.php +++ b/content/fasoverlay.js.php @@ -1203,9 +1203,9 @@ function MessageNew() else { var prestudentIdArray = getMultipleTreeCellText(tree, 'student-treecol-prestudent_id'); - + var action = 'index.ci.php/system/Messages/write/' + 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('vilesci/bis/checkverwendung.php','CheckVerwendung',''); -} - -// **** -// * oeffnet Script zum Checken der Funktion -// **** -function BISMitarbeiterCheckFunktion() -{ - window.open('vilesci/bis/checkfunktion.php','CheckFunktion',''); + window.open('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 = '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) diff --git a/locale/de-AT/fas.dtd b/locale/de-AT/fas.dtd index 0b5b43042..03b9966f4 100644 --- a/locale/de-AT/fas.dtd +++ b/locale/de-AT/fas.dtd @@ -387,6 +387,10 @@ + + + + diff --git a/locale/de-SFU/fas.dtd b/locale/de-SFU/fas.dtd index f817e1bea..df67cfe7f 100644 --- a/locale/de-SFU/fas.dtd +++ b/locale/de-SFU/fas.dtd @@ -1,5 +1,5 @@ - - + + @@ -362,9 +362,13 @@ - - - + + + + + + + diff --git a/vilesci/bis/checkfunktion.php b/vilesci/bis/checkfunktion.php index a1fa6a960..7c75f7f0c 100644 --- a/vilesci/bis/checkfunktion.php +++ b/vilesci/bis/checkfunktion.php @@ -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 ' Check Funktion @@ -64,152 +68,176 @@ echo ' -

Mitarbeiter BIS-Funktion Check

+

Mitarbeiter BIS-Funktion Check für '.$stsemprevprev.'/'.$stsemprev.'

'; -$stsem = new studiensemester(); -$stsemprev = $stsem->getPrevious(); -$stsemprevprev = $stsem->getBeforePrevious(); - -echo "Generiere Funktionen für $stsemprevprev/$stsemprev
"; - -$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 "
Es wurde keine Verwendung fuer $row->mitarbeiter_uid 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 "
Fehler beim Holen der Verwendung von $row->mitarbeiter_uid"; - $person_error = true; - } - } - - if($db->db_num_rows($result_verw)>1) - { - echo "
Es wurde mehr als eine Verwendung bei $row->mitarbeiter_uid gefunden - es wird die Verwendung $verwendung_id verwendet"; - $verwendung_multiple++; - } - } - else - { - echo "
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 "
$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 "
$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 '

'; - echo 'Check fuer nicht benoetigte Funktionen'; - $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 "
$row->mitarbeiter_uid 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 "
Es wurde keine Verwendung fuer $row->mitarbeiter_uid 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 "
Fehler beim Holen der Verwendung von $row->mitarbeiter_uid"; + $person_error = true; + } + } + + if($db->db_num_rows($result_verw)>1) + { + echo "
Es wurde mehr als eine Verwendung bei $row->mitarbeiter_uid gefunden - es wird die Verwendung $verwendung_id verwendet"; + $verwendung_multiple++; + } + } + else + { + echo "
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 "
$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 "
$row->mitarbeiter_uid: Fehler beim Anlegen der Funktion ".$bisfunktion->errormsg; + if($bisfunktion->new) + $funktion_hinzugefuegt--; + else + $funktion_geaendert--; + $funktion_error++; + } + } } + + echo '

'; + echo 'Check fuer nicht benoetigte Funktionen'; + $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 "
$row->mitarbeiter_uid hat im Studiengang ".$stg_arr[$row->studiengang_kz]." ($row->studiengang_kz) eine Funktion ohne Lehrauftrag"; + } + } + echo '

Loeschen der Funktionen: +
+ + +
'; + echo '

'; + echo '

Uebersicht

'; + echo ''; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo '
Nicht vorhandene Verwendungen$verwendung_not_found
Mehrere moegliche Verwendungen vorhanden$verwendung_multiple
Fehler bei Funktionen$funktion_error
Funktionen ohne Lehrauftrag$funktion_ohne_lehrauftrag
  
Funktionen hinzugefuegt$funktion_hinzugefuegt
Funktionen geaendert$funktion_geaendert
'; } - echo "

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 '

'; - echo '

Uebersicht

'; - echo ''; - echo ""; - echo ""; - echo ""; - echo ""; - echo ""; - echo ""; - echo ""; - echo '
Nicht vorhandene Verwendungen$verwendung_not_found
Mehrere moegliche Verwendungen vorhanden$verwendung_multiple
Fehler bei Funktionen$funktion_error
Funktionen ohne Lehrauftrag$funktion_ohne_lehrauftrag
  
Funktionen hinzugefuegt$funktion_hinzugefuegt
Funktionen geaendert$funktion_geaendert
'; +} +else +{ + echo ' +
+ Diese Seite erstellt automatisch die Funktionen der Lektoren aus den Lehraufträgen. + +
+ + +
'; } diff --git a/vilesci/bis/checkverwendung.php b/vilesci/bis/checkverwendung.php index 70ef39fab..9bf358c82 100644 --- a/vilesci/bis/checkverwendung.php +++ b/vilesci/bis/checkverwendung.php @@ -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 "

Bei $num_rows_all aktiven Mitarbeitern sind keine aktuellen Verwendungen eingetragen

"; + echo "

Bei $num_rows_all aktiven Fixangestellten Mitarbeitern sind keine aktuellen Verwendungen eingetragen

"; 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 "
Mitarbeiter(in) ".$rowall->nachname." ".$rowall->vorname.":
"; - echo "(ba1code: $rowall->ba1code, ba2code: $rowall->ba2code)"; + echo "(ba1code: $rowall->ba1code, ba2code: $rowall->ba2code)"; } } echo '
'; diff --git a/vilesci/bis/personal_generateverwendung.php b/vilesci/bis/personal_generateverwendung.php new file mode 100644 index 000000000..17f44537d --- /dev/null +++ b/vilesci/bis/personal_generateverwendung.php @@ -0,0 +1,308 @@ + + */ +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 ' + + + + '; +include('../../include/meta/jquery.php'); +include('../../include/meta/jquery-tablesorter.php'); +echo ' + + + + Mitarbeitermeldung + + + +

Freie Lektoren mit Lehrauftrag ohne Verwendung

+Die folgenden freien Lektoren haben einen aktiven Lehrauftrag im Meldezeitraum, +haben jedoch keine aktive Verwendung.
+
+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. +
+'; +$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 '

Anzahl:'.$db->db_num_rows($result); + echo ' +
+
+ + +
+
'; + echo ' + +

+ + + + + + + + + + + + + + + + + '; + while ($row = $db->db_fetch_object($result)) + { + echo ' + + + + + + + + '; + $bisverwendung = new bisverwendung(); + $bisverwendung->getLastVerwendung($row->uid); + echo ''; + echo ''; + + 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 ''; + } + else + { + echo ''; + } + } + else + echo ''; + } + 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 ''; + } + else + { + echo ''; + } + } + else + echo ''; + } + } + else + { + echo ''; + } + + echo ''; + } + echo '
NachnameVornameUIDPersonalnummerAnlagedatumLetzer LehrauftragAktive FunktionenLetzte VerwendungAnmerkungAktion
'.$db->convert_html_chars($row->nachname).''.$db->convert_html_chars($row->vorname).''.$db->convert_html_chars($row->uid).''.$db->convert_html_chars($row->personalnummer).''.$db->convert_html_chars($datum_obj->formatDatum($row->insertamum,'d.m.Y')).''.$db->convert_html_chars($row->letzter_lehrauftrag).' + '; + $fkt = new benutzerfunktion(); + $fkt->getBenutzerFunktionByUid($row->uid, null, date('Y-m-d')); + + foreach ($fkt->result as $row_fkt) + { + echo ' + + + '; + } + echo '
'.$fkt_arr[$row_fkt->funktion_kurzbz].''.$row_fkt->oe_kurzbz.'
'.($bisverwendung->beginn != ''?$datum_obj->formatDatum($bisverwendung->beginn,'d.m.Y'):' unbekannt '); + echo ' - '.($bisverwendung->ende != ''?$datum_obj->formatDatum($bisverwendung->ende,'d.m.Y'):' jetzt ').''.($row->anmerkung != ''?'':'').'Verwendung verlängertFailed:'.$bisverwendung->errormsg.'Verlängerung bis '.$bisverwendung->ende.'Neue Verwendung erstelltFailed:'.$bisverwendung->errormsg.'Neue Verwendung wird erstellt '.$bisverwendung->beginn.' bis '.$bisverwendung->ende.'passt eigentlich
'; +} + +echo ' + +'; diff --git a/vilesci/bis/personal_lektorenohnelehrauftrag.php b/vilesci/bis/personal_lektorenohnelehrauftrag.php new file mode 100644 index 000000000..ab75e6a90 --- /dev/null +++ b/vilesci/bis/personal_lektorenohnelehrauftrag.php @@ -0,0 +1,284 @@ + + */ +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 ' + + + + '; +include('../../include/meta/jquery.php'); +include('../../include/meta/jquery-tablesorter.php'); +echo ' + + + + Mitarbeitermeldung + + + +

Aktive freie Lektoren ohne Lehrauftrag

+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. +
+'; +$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 '

Anzahl:'.$db->db_num_rows($result); + echo ' +
Beendingungsdatum der Verwendung: + +
+

+ + + + + + + + + + + + + + + + + '; + while ($row = $db->db_fetch_object($result)) + { + echo ' + + + + + + + + '; + $bisverwendung = new bisverwendung(); + $bisverwendung->getLastVerwendung($row->uid); + echo ''; + echo ''; + echo ' + + '; + } + echo '
NachnameVornameUIDPersonalnummerAnlagedatumLetzer LehrauftragAktive FunktionenLetzte VerwendungAnmerkungAktion
'.$db->convert_html_chars($row->nachname).''.$db->convert_html_chars($row->vorname).''.$db->convert_html_chars($row->uid).''.$db->convert_html_chars($row->personalnummer).''.$db->convert_html_chars($datum_obj->formatDatum($row->insertamum,'d.m.Y')).''.$db->convert_html_chars($row->letzter_lehrauftrag).' + '; + $fkt = new benutzerfunktion(); + $fkt->getBenutzerFunktionByUid($row->uid, null, date('Y-m-d')); + + foreach ($fkt->result as $row_fkt) + { + echo ' + + + '; + } + echo '
'.$fkt_arr[$row_fkt->funktion_kurzbz].''.$row_fkt->oe_kurzbz.'
'.($bisverwendung->beginn != ''?$datum_obj->formatDatum($bisverwendung->beginn,'d.m.Y'):' jetzt '); + echo ' - '.($bisverwendung->ende != ''?$datum_obj->formatDatum($bisverwendung->ende,'d.m.Y'):' jetzt ').''.($row->anmerkung != ''?'':'').' + + deaktivieren + + +
'; +} + +echo ' + +'; diff --git a/vilesci/bis/personalmeldung_uebersicht.php b/vilesci/bis/personalmeldung_uebersicht.php new file mode 100644 index 000000000..c640d09d3 --- /dev/null +++ b/vilesci/bis/personalmeldung_uebersicht.php @@ -0,0 +1,54 @@ + + */ +require_once('../../config/vilesci.config.inc.php'); + +echo ' + + + + + Mitarbeitermeldung + + +

Personalmeldung Übersicht

+ +';