* Andreas Oesterreicher < andreas.oesterreicher@technikum-wien.at > * Rudolf Hangl < rudolf.hangl@technikum-wien.at > * Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at > * Manfred Kindl < manfred.kindl@technikum-wien.at > */ require_once('../../config/vilesci.config.inc.php'); require_once('../../config/global.config.inc.php'); require_once('../../include/functions.inc.php'); require_once('../../include/studiengang.class.php'); require_once('../../include/studiensemester.class.php'); require_once('../../include/lehreinheit.class.php'); require_once('../../include/lehreinheitmitarbeiter.class.php'); require_once('../../include/lehreinheitgruppe.class.php'); require_once('../../include/benutzerberechtigung.class.php'); require_once('../../include/mitarbeiter.class.php'); require_once('../../include/gruppe.class.php'); if (!$db = new basis_db()) die('Es konnte keine Verbindung zum Server aufgebaut werden.'); $user = get_uid(); $rechte = new benutzerberechtigung(); $rechte->getBerechtigungen($user); if (!$rechte->isBerechtigt('lehre/vorrueckung', null, 'suid')) die($rechte->errormsg); $stg_obj = new studiengang(); $stg_obj->loadArray($rechte->getStgKz('lehre/vorrueckung'),'typ, kurzbz'); $stg_arr = array(); foreach ($stg_obj->result as $stg) { $stg_arr[$stg->studiengang_kz] = $stg->kuerzel; } $studiengang_kz = (isset($_GET['studiengang_kz'])?$_GET['studiengang_kz']:''); $semester = (isset($_GET['semester'])?$_GET['semester']:''); $stsem_von = (isset($_GET['stsem_von'])?$_GET['stsem_von']:''); $stsem_nach = (isset($_GET['stsem_nach'])?$_GET['stsem_nach']:''); $text = ''; $anzahl_lehreinheiten = 0; $anzahl_lehreinheitmitarbeiter = 0; $anzahl_lehreinheitgruppe = 0; $error_lehreinheit = 0; $error_lehreinheitmitarbeiter = 0; $error_lehreinheitgruppe = 0; if ($stsem_von == '') { $stsem_obj = new studiensemester(); $stsem_von = $stsem_obj->getPrevious(); } if ($stsem_nach == '') { $stsem_obj = new studiensemester(); $stsem_obj->getNextStudiensemester(); $stsem_nach = $stsem_obj->studiensemester_kurzbz; } echo ' Lehreinheit Vorrueckung

Lehreinheiten Vorrückung

'; echo '
'; echo 'Studiengang: '; echo ' Semester: '; echo ' Von: '; echo ' Nach: '; echo '  
'; if (defined('VILESCI_STUNDENSATZ_VORRUECKUNG') && VILESCI_STUNDENSATZ_VORRUECKUNG != '' && is_numeric(VILESCI_STUNDENSATZ_VORRUECKUNG)) { echo '
Alle Lehraufträge werden mit dem Stundensatz "'.VILESCI_STUNDENSATZ_VORRUECKUNG.'" vorgerückt '; } elseif (defined('VILESCI_STUNDENSATZ_VORRUECKUNG') && VILESCI_STUNDENSATZ_VORRUECKUNG != '' && VILESCI_STUNDENSATZ_VORRUECKUNG == 'default') { echo '
Alle Lehraufträge werden mit dem aktuell hinterlegten Standard-Stundensatz der/des Lehrenden vorgerückt '; } else { echo '
Alle Lehraufträge werden mit dem Stundensatz des Vorjahres vorgerückt '; } echo '
'; if ($studiengang_kz != '' && $stsem_von != '' && $stsem_nach != '') { $stg_obj = new studiengang(); if (!$stg_obj->load($studiengang_kz)) die('Studiengang kann nicht geladen werden'); if (!$rechte->isBerechtigt('lehre/vorrueckung', $stg_obj->oe_kurzbz, 'suid')) die($rechte->errormsg); echo '
Starte Vorrückung '.$stg_arr[$studiengang_kz]." $semester von $stsem_von nach $stsem_nach ..."; $qry = "SELECT tbl_lehreinheit.lehreinheit_id FROM lehre.tbl_lehreinheit JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id) WHERE tbl_lehrveranstaltung.studiengang_kz=".$db->db_add_param($studiengang_kz)." AND tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($stsem_von); if ($semester != '') $qry .= " AND tbl_lehrveranstaltung.semester=".$db->db_add_param($semester); if ($result = $db->db_query($qry)) { $anzahl_von = $db->db_num_rows($result); } //Pruefen, ob schon eine Vorrueckung stattgefunden hat $qry_nach = "SELECT tbl_lehreinheit.lehreinheit_id FROM lehre.tbl_lehreinheit JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id) WHERE tbl_lehrveranstaltung.studiengang_kz=".$db->db_add_param($studiengang_kz)." AND tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($stsem_nach); if ($semester != '') $qry_nach .= " AND tbl_lehrveranstaltung.semester=".$db->db_add_param($semester); if ($result = $db->db_query($qry_nach)) { $anzahl_nach = $db->db_num_rows($result); $baseurl = basename($_SERVER['REQUEST_URI']); if ($anzahl_nach >= $anzahl_von && !isset($_GET['continue'])) { echo '

Es sind schon Lehreinheiten fuer das '.$stsem_nach.' in '.$stg_arr[$studiengang_kz].' '.$semester.' vorhanden. Trotzdem fortsetzen?

'; die (); } } if ($result = $db->db_query($qry)) { while($row = $db->db_fetch_object($result)) { $text .= "
Lehreinheit $row->lehreinheit_id wird vorgerueckt"; $le_obj = new lehreinheit(); //Lehreinheit Neu Anlegen if ($le_obj->load($row->lehreinheit_id)) { $le_obj->new = true; $le_obj->studiensemester_kurzbz = $stsem_nach; $le_obj->insertamum = date('Y-m-d H:i:s'); $le_obj->insertvon = 'Vorrueckung_'.$user; $le_obj->ext_id = ''; $le_obj->unr = ''; if ($le_obj->save()) { $anzahl_lehreinheiten++; //LehreinheitMitarbeiter Eintrag neu Anlengen $qry_lem = "SELECT mitarbeiter_uid FROM lehre.tbl_lehreinheitmitarbeiter WHERE lehreinheit_id=".$db->db_add_param($row->lehreinheit_id); if ($result_lem = $db->db_query($qry_lem)) { while ($row_lem = $db->db_fetch_object($result_lem)) { $lem_obj = new lehreinheitmitarbeiter(); if ($lem_obj->load($row->lehreinheit_id, $row_lem->mitarbeiter_uid)) { // Pruefen ob der Lektor ueber die im Config festgelegte Stundengrenze // kommt und Meldung ausgeben $qry_stundengrenze=" SELECT mitarbeiter_uid,fixangestellt,SUM(semesterstunden) AS summe, aktiv FROM lehre.tbl_lehreinheitmitarbeiter JOIN lehre.tbl_lehreinheit USING (lehreinheit_id) JOIN public.tbl_mitarbeiter USING (mitarbeiter_uid) JOIN public.tbl_benutzer ON (uid=mitarbeiter_uid) WHERE mitarbeiter_uid=".$db->db_add_param($row_lem->mitarbeiter_uid)." AND studiensemester_kurzbz=".$db->db_add_param($stsem_von)." GROUP BY mitarbeiter_uid, fixangestellt, aktiv"; if ($result_stundengrenze = $db->db_query($qry_stundengrenze)) { if ($row_stundengrenze = $db->db_fetch_object($result_stundengrenze)) { if (!$db->db_parse_bool($row_stundengrenze->fixangestellt) && $row_stundengrenze->summe > WARN_SEMESTERSTD_FREI) { $text .= " Stundengrenze ".WARN_SEMESTERSTD_FREI." Stunden ueberschritten von $row_lem->mitarbeiter_uid"; } elseif ($db->db_parse_bool($row_stundengrenze->fixangestellt) && $row_stundengrenze->summe > WARN_SEMESTERSTD_FIX) { $text .= " Stundengrenze ".WARN_SEMESTERSTD_FIX." Stunden ueberschritten von $row_lem->mitarbeiter_uid"; } // Meldung, wenn Benutzer inaktiv if ($db->db_parse_bool($row_stundengrenze->aktiv) == false) { $text .= "; Achtung! MitarbeiterIn $row_lem->mitarbeiter_uid ist nicht aktiv"; } } } $lem_obj->lehreinheit_id = $le_obj->lehreinheit_id; $lem_obj->new = true; // Wenn VILESCI_STUNDENSATZ_VORRUECKUNG definiert ist, // wird nicht der Stundensatz des Vorjahres verwendet // Wenn VILESCI_STUNDENSATZ_VORRUECKUNG numerisch ist, // wird dieser Wert fuer den Stundensatz verwendet if (defined('VILESCI_STUNDENSATZ_VORRUECKUNG') && VILESCI_STUNDENSATZ_VORRUECKUNG != '' && is_numeric(VILESCI_STUNDENSATZ_VORRUECKUNG)) { $lem_obj->stundensatz = VILESCI_STUNDENSATZ_VORRUECKUNG; } // Wenn VILESCI_STUNDENSATZ_VORRUECKUNG default ist, //wird der Standard-Stundensatz des jeweiligen Lektors geladen und gespeichert elseif (defined('VILESCI_STUNDENSATZ_VORRUECKUNG') && VILESCI_STUNDENSATZ_VORRUECKUNG != '' && VILESCI_STUNDENSATZ_VORRUECKUNG == 'default') { $stundensatz = new mitarbeiter($row_lem->mitarbeiter_uid); $lem_obj->stundensatz = $stundensatz->stundensatz; } $lem_obj->insertamum = date('Y-m-d H:i:s'); $lem_obj->insertvon = 'Vorrueckung_'.$user; $lem_obj->ext_id = ''; $lem_obj->vertrag_id = ''; if (!$lem_obj->save()) { $error_lehreinheitmitarbeiter++; $text .= 'Fehler beim Anlegen des Lehreinheitmitarbeiter Eintrages: '.$lem_obj->errormsg; } else $anzahl_lehreinheitmitarbeiter++; } else { $text .= 'Fehler beim Laden der Mitarbeiter'; $error_lehreinheitmitarbeiter++; } } } else { $text .= 'Fehler beim Laden der Mitarbeiter '.$db->db_last_error(); $error_lehreinheitmitarbeiter++; } //LehreinheitGruppe Eintrag neu Anlegen $qry_leg = " SELECT lehreinheitgruppe_id FROM lehre.tbl_lehreinheitgruppe WHERE lehreinheit_id=".$db->db_add_param($row->lehreinheit_id)." AND NOT (tbl_lehreinheitgruppe.semester='0' AND tbl_lehreinheitgruppe.verband='I')"; if ($result_leg = $db->db_query($qry_leg)) { while($row_leg = $db->db_fetch_object($result_leg)) { $leg_obj = new lehreinheitgruppe(); if ($leg_obj->load($row_leg->lehreinheitgruppe_id)) { // Direktinskriptionsgruppen werden nicht vorgerückt if ($leg_obj->gruppe_kurzbz != '') { $grp = new gruppe(); $grp->load($leg_obj->gruppe_kurzbz); if ($grp->direktinskription) continue; } $leg_obj->lehreinheit_id = $le_obj->lehreinheit_id; $leg_obj->new = true; $leg_obj->insertamum = date('Y-m-d H:i:s'); $leg_obj->insertvon = 'Vorrueckung_'.$user; $leg_obj->ext_id = ''; if (!$leg_obj->save()) { $error_lehreinheitgruppe++; $text .= 'Fehler beim Anlegen des Lehreinheitgruppe Eintrages: '.$leg_obj->errormsg; } else $anzahl_lehreinheitgruppe++; } else { $text .= 'Fehler beim Laden der Gruppe '.$leg_obj->errormsg.' '.$db->db_last_error(); $error_lehreinheitgruppe++; } } } else { $text .= 'Fehler beim Auslesen der Gruppen'; $error_lehreinheitgruppe++; } } else { $error_lehreinheit++; $text .= 'Fehler beim Speichern der Lehreinheit '.$le_obj->errormsg; } } else { $error_lehreinheit++; $text .= 'Fehler beim Laden der Lehreinheit '.$le_obj->errormsg; } } } else { $text .= 'Fehler beim Laden der Lehreinheiten '.$db->db_last_error(); $error_lehreinheit++; } echo "

"; echo "Vorgerueckte Lehreinheiten: $anzahl_lehreinheiten
"; echo "Vorgerueckte LEMitarbeiter: $anzahl_lehreinheitmitarbeiter
"; echo "Vorgerueckte LEGruppen: $anzahl_lehreinheitgruppe
"; echo "Fehler bei Lehreinheiten: $error_lehreinheit
"; echo "Fehler bei LEMitarbeiter: $error_lehreinheitmitarbeiter
"; echo "Fehler bei LEGruppen: $error_lehreinheitmitarbeiter
"; echo '


'; echo $text; echo '







'; } ?>