diff --git a/cis/cisdocs/index.html b/cis/cisdocs/index.html new file mode 100644 index 000000000..e2fa790fa --- /dev/null +++ b/cis/cisdocs/index.html @@ -0,0 +1,12 @@ + + +Koordinatorstunden + + + + +Sollten Sie nicht automatisch weitergeleitet werden, druecken sie bitte hier + + \ No newline at end of file diff --git a/cis/cisdocs/muster_semesterplan.doc b/cis/cisdocs/muster_semesterplan.doc new file mode 100755 index 000000000..be198bee7 Binary files /dev/null and b/cis/cisdocs/muster_semesterplan.doc differ diff --git a/cis/cisdocs/muster_semesterplan_index.html b/cis/cisdocs/muster_semesterplan_index.html new file mode 100644 index 000000000..05b903257 --- /dev/null +++ b/cis/cisdocs/muster_semesterplan_index.html @@ -0,0 +1,454 @@ + + +Fernlehre Technikum Wien + + + +
+

Muster + - Semesterplan

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
SE
+
+
Thema
+
+
Datum
+
+
LF
+
+
Unterlagen
+
+
Ergänzungen, + Korrekturen und Lösungen
+
+
1
+
Thema + 1bis + 00.00.2002 +
F
+
  
am + 00.00.2002 +
U
+
  
+
+

2

+
+
Thema + 2 bis + 00.00.2002 +
F
+
  
bis + 00.00.2002 +
U
+
  
+
3
+
Thema + 3 bis + 00.00.2002 +
F
+
  
am + 00.00.2002 +
U
+
  
+
4
+
Thema + 4 bis + 00.00.2002 +
F
+
  
bis + 00.00.2002 +
U
+
  
+
5
+
Thema + 5 bis + 00.00.2002 +
F
+
  
am + 00.00.2002 +
U
+
  
+
6
+
Thema + 6 bis + 00.00.2002 +
F
+
  
bis + 00.00.2002 +
U
+
  
+
7
+
Thema + 7 bis + 00.00.2002 +
F
+
  
am + 00.00.2002 +
U
+
  
+
8
+
Thema + 8 bis + 00.00.2002 +
F
+
  
bis + 00.00.2002 +
U
+
  
+
9
+
Thema + 9 bis + 00.00.2002 +
F
+
  
am + 00.00.2002 +
U
+
  
+
10
+
Thema + 10bis + 00.00.2002 +
F
+
  
bis + 00.00.2002 +
U
+
  
+
11
+
Thema + 11bis + 00.00.2002 +
F
+
  
am + 00.00.2002 +
U
+
  
+
12
+
Thema + 12bis + 00.00.2002 +
F
+
  
bis + 00.00.2002 +
U
+
  
+
13
+
Thema + 13bis + 00.00.2002 +
F
+
  
am + 00.00.2002 +
U
+
  
+
14
+
Thema + 14bis + 00.00.2002 +
F
+
  
bis + 00.00.2002 +
U
+
  
+
15
+
Thema + 15bis + 00.00.2002 +
F
+
  
am + 00.00.2002 +
U
+
  
+
16
+
Thema + 16bis + 00.00.2002 +
F
+
  
bis + 00.00.2002 +
U
+
  
+
17
+
Thema + 17bis + 00.00.2002 +
F
+
  
am + 00.00.2002 +
U
+
  
+
18
+
Thema + 18 bis + 00.00.2002 +
F
+
  
bis + 00.00.2002 +
U
+
  
+

Zeichenerklärung: SE=Studieneinheit, + LF=Lehrform, F=Fernlehrunterstützte Vorlesung, U=Übung

+ diff --git a/cis/cisdocs/vorlage_studienbrief.dot b/cis/cisdocs/vorlage_studienbrief.dot new file mode 100644 index 000000000..477fb3b29 Binary files /dev/null and b/cis/cisdocs/vorlage_studienbrief.dot differ diff --git a/cis/infoterminal/index.php b/cis/infoterminal/index.php new file mode 100644 index 000000000..1f0e7a465 --- /dev/null +++ b/cis/infoterminal/index.php @@ -0,0 +1,2012 @@ + + * Andreas Oesterreicher < andreas.oesterreicher@technikum-wien.at > + * Rudolf Hangl < rudolf.hangl@technikum-wien.at > + * Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at > + */ + +// ------------------------------------------------------------------------------------------ +// Session Starten - Merk Anwenderdaten +// ------------------------------------------------------------------------------------------ + $SESSIONID=trim((isset($_REQUEST['SESSIONID']) ? $_REQUEST['SESSIONID']:'')); + if (session_start($SESSIONID)) + $SESSIONID=@session_id(); + + require_once('../../config/cis.config.inc.php'); + require_once('../../include/wochenplan.class.php'); + require_once('../../include/benutzerberechtigung.class.php'); + require_once('../../include/betriebsmittel.class.php'); + require_once('../../include/betriebsmittelperson.class.php'); + require_once('../../include/betriebsmitteltyp.class.php'); + require_once('../../include/mail.class.php'); + require_once('../../include/news.class.php'); + require_once('../../include/content.class.php'); + require_once('../../include/studiensemester.class.php'); + require_once('../../include/konto.class.php'); + require_once('../../include/functions.inc.php'); + require_once('../../include/authentication.class.php'); + require_once('../../include/'.EXT_FKT_PATH.'/serviceterminal.inc.php'); + + if (!$db = new basis_db()) + $db=false; + +// Initialisieren des Fehlertextes + $error=''; + $news=''; +// ------------------------------------------------------------------------------------------ +// Konstante +// ------------------------------------------------------------------------------------------ + // Session Bereich + if (!defined('constSESSIONNAME')) define('constSESSIONNAME',"infoterminal" ); + // Datum - Format + if (!defined('constHeaderDatumZeit')) define('constHeaderDatumZeit','%A, %d %B %G %R' ); + if (!defined('constRaumDatumZeit')) define('constRaumDatumZeit','%a, %d.%m.%Y' ); + if (!defined('constHeaderStundenplan')) define('constHeaderStundenplan','KW %W, %B %G' ); + if (!defined('constHeaderStundenplanTag')) define('constHeaderStundenplanTag','%A
%d.%m.%y' ); + if (!defined('constAktuelleZeitHHMi')) define('constAktuelleZeitHHMi', date("Hi", time())); + if (!defined('constAktuelleZeitHH')) define('constAktuelleZeitHH', date("H", time())); + +// ------------------------------------------------------------------------------------------ +// Request Parameter +// ------------------------------------------------------------------------------------------ + $timer=trim((isset($_REQUEST['timer']) ? $_REQUEST['timer']:0)); + // Raumtyp + $raumtyp_kurzbz=trim((isset($_REQUEST['raumtyp_kurzbz']) ? $_REQUEST['raumtyp_kurzbz']:$ServiceTerminalDefaultRaumtyp)); + // Saal - Raum + $ort_kurzbz=trim((isset($_REQUEST['ort_kurzbz']) ? $_REQUEST['ort_kurzbz']:'')); + // Work + $work=trim((isset($_REQUEST['work']) ? $_REQUEST['work']:'raumanzeigen')); + // User + $key_input=trim((isset($_REQUEST['key_input']) ? $_REQUEST['key_input']:'')); + $uid=trim((isset($_REQUEST['uid']) ? $_REQUEST['uid']:'')); + $pwd=trim((isset($_REQUEST['pwd']) ? $_REQUEST['pwd']:'')); + $debug=trim((isset($_REQUEST['debug']) ? $_REQUEST['debug']:'')); + $sdtools=trim((isset($_REQUEST['sdtools']) ? $_REQUEST['sdtools']:false)); + $standort_id = (isset($_REQUEST['standort_id']) ? $_REQUEST['standort_id']:''); + if ($sdtools) + $work='login'; + + +// ------------------------------------------------------------------------------------------ +// Verarbeiten wenn Kennzeichen work = login oder logoff +// ------------------------------------------------------------------------------------------ + if (mb_strtolower($work)=='logoff') + { + if (isset($_SESSION[constSESSIONNAME])) + unset($_SESSION[constSESSIONNAME]); + $uid=''; + $work='raumanzeigen'; + $raumtyp_kurzbz='EDV'; + } + + + // Es gibt eine Serverauth., aber es erfolgte noch kein Login fuer Persoenliche Daten - Login erzwingen + if (isset($_SERVER['PHP_AUTH_USER']) && !empty($_SERVER['PHP_AUTH_USER']) && (!isset($_SESSION[constSESSIONNAME]["uid"]) || empty($_SESSION[constSESSIONNAME]["uid"])) ) + { + $work="login"; + $uid=trim((isset($_SERVER['PHP_AUTH_USER'])?$_SERVER['PHP_AUTH_USER']:'')); + $pwd=trim((isset($_SERVER['PHP_AUTH_PW'])?$_SERVER['PHP_AUTH_PW']:'')); + } + + // Login Prozedure wenn Anmeldung ueber einen Schluessel erfolgte + // - Lesen der Betriebsmittel um Anwender zu ermitteln ( es wird hier kein Passwort benoetigt / LDAP ) + $cardlogin=false; + if ($db && !empty($key_input)) // Login + { + // Pruefen ob es sich um eine HEX Eingabe handelt + + $betriebsmittel = new betriebsmittel(); + //$key_input = $betriebsmittel->transform_kartennummer($key_input); + + // führende nullen entfernen + $key_input = preg_replace("/^0*/", "", $key_input); + $uidStudent = getUidFromCardNumber($key_input); + if($uidStudent != false) + { + $uid = $uidStudent; + $work = "login"; + $cardlogin = true; + } + } + + if (mb_strtolower($work)=='login') + { + if (isset($_SESSION[constSESSIONNAME])) + unset($_SESSION[constSESSIONNAME]); + if (!empty($uid)) // Login + { + $ldapstatus=''; + if ($cardlogin || !$ldapstatus=ldap_uid_check($uid,$pwd) ) + { + // Lesen der Userdaten + if ($user_array=uid_read_mitarbeiter_oder_student($db,$uid)) + { + // Personendaten lesen wenn Mitarbeiter oder Student gefunden wurde + $_SESSION[constSESSIONNAME]["uid"]=$uid; + $_SESSION[constSESSIONNAME]["pwd"]=$pwd; + $_SESSION[constSESSIONNAME]["dat"]=$user_array; + } + } + + // Wenn kein ldapstatus geliefert wurde ist alles OK, sonst ist im ldapstatus die Fehlermeldung + $error.=$ldapstatus; + // Login erfolgreich - Eigenenstundenplan anzeigen + if (isset($_SESSION[constSESSIONNAME]["uid"]) && !empty($_SESSION[constSESSIONNAME]["uid"]) ) + $work='stundenplan'; + } + } +// ------------------------------------------------------------------------------------------ +// Lesen Newstickerzeilen +// ------------------------------------------------------------------------------------------ + $studiengang_kz="0"; + $semester=""; + if(isset($_SESSION[constSESSIONNAME]["dat"]) && isset($_SESSION[constSESSIONNAME]["dat"]->studiengang_kz) ) + { + $studiengang_kz=trim($_SESSION[constSESSIONNAME]["dat"]->studiengang_kz); + $semester=trim($_SESSION[constSESSIONNAME]["dat"]->semester); + } + $fachbereich_kurzbz=""; + if (strtolower($work)!=strtolower("meinedaten") || !isset($_SESSION[constSESSIONNAME])) + $news=read_create_html_news($db,$fachbereich_kurzbz,$studiengang_kz,$semester); + +// ------------------------------------------------------------------------------------------ +// Linkes Auswahlmenue fuer Raumtypen +// ------------------------------------------------------------------------------------------ + if(!is_null($ServiceTerminalRaumtypen)) + $row_ort = $ServiceTerminalRaumtypen; + else + { + $row_ort=array( + array("type"=>"EDV","beschreibung"=>" Freie 
 PC Räume ","img"=>""), + array("type"=>"HS","beschreibung"=>" Freie 
 Hörsäle ","img"=>""), + array("type"=>"SEM","beschreibung"=>" Freie 
 Seminarräume ","img"=>""), + array("type"=>"Lab","beschreibung"=>" Freie 
 Laborräume ","img"=>""), + ); + } + +$refreshtime = ($sdtools?99999:(isset($_SESSION[constSESSIONNAME]["uid"]) && !empty($_SESSION[constSESSIONNAME]["uid"])?10:(date('H')>22 || date('H')<5?12000:900))); +?> + + + +Info-Terminal + + + + + + + + + + + + + + + '; + + // Ende Linkes Menue + echo ' + +
+ + '; + if(isset($_SESSION[constSESSIONNAME]["uid"]) && !empty($_SESSION[constSESSIONNAME]["uid"]) ) + { + //Angemeldeter User - Stundenplan der Woche + echo ' + + + '; + } + else + { + echo ''; + } + + // Tabelle der Raumtypen + echo html_output_liste_raumtypen($row_ort); + + if(isset($_SESSION[constSESSIONNAME]["uid"]) && !empty($_SESSION[constSESSIONNAME]["uid"]) ) + { + //Angemeldeter User - Stundenplan der Woche + echo ' + + + + + + '; + } + else + { + // Lageplan + echo ' + + + '; + } + + echo ''; + // Login + + // Wenn keine Server Userauth. vorhanden ist + if (!isset($_SERVER['PHP_AUTH_USER']) || (isset($_SERVER['PHP_AUTH_USER']) && empty($_SERVER['PHP_AUTH_USER'])) ) + { + echo ' + + + + + + '; + } + + echo ' + +
'; + + echo ' + Logo +
+ + + Mein
LV-Plan +
+
+
+ + + Persönliche
Daten +
+
+
+ + + Lageplan
  +
+
+
 
+ + '; + if(isset($_SESSION[constSESSIONNAME]["uid"]) && !empty($_SESSION[constSESSIONNAME]["uid"])) + echo 'Logout Logoff'; + else + echo 'Login Login'; + + echo ' + + +
+ +
 
+
'; + + if (!$db || mb_strtolower($work)==mb_strtolower('lageplan')) + { + echo '

Lageplan '.CAMPUS_NAME.'

'; + $pfad_standort_lageplan = '../../skin/styles/'.DEFAULT_STYLE.'/lageplan_'.$standort_id.'.jpg'; + // Wenn fuer den ausgewaehlten Standort ein eigener Lageplan verfuegbar ist, wird dieser angezeigt + // ansonsten wird der normale Lageplan angezeigt. + if($standort_id!='' && file_exists($pfad_standort_lageplan)) + echo ''; + else + echo ''; + } + else if (mb_strtolower($work)==mb_strtolower("login")) + { + echo '

Login '.CAMPUS_NAME.'

'; + include_once('keyboard.php'); + } + else if (strtolower($work)==strtolower("meinedaten") && isset($_SESSION[constSESSIONNAME])) + { + echo meine_uid_informationen($db,$_SESSION[constSESSIONNAME]["uid"],$_SESSION[constSESSIONNAME]["dat"]); + } + else if (strtolower($work)==strtolower("verlaengerung") && isset($_SESSION[constSESSIONNAME])) + { + karten_verlaengerung($_SESSION[constSESSIONNAME]["uid"]); + } + else if (mb_strtolower($work)==mb_strtolower("stundenplan") && isset($_SESSION[constSESSIONNAME]["uid"]) && !empty($_SESSION[constSESSIONNAME]["uid"]) ) + { + echo alle_uid_stundenplan_informationen($db,$_SESSION[constSESSIONNAME]["uid"],$_SESSION[constSESSIONNAME]["dat"]); + } + else + { + echo alle_raum_informationen($db,$raumtyp_kurzbz,$ort_kurzbz, $standort_id); + } + + // Zusatzinformation wie Error,News und Warten + echo ''.(isset($error)?$error:'').'  +
Bitte warten
+
'.(isset($news)?$news:'').'  +
+ +'; + +/* +* +* @meine_uid_informationen Termine zur Auswahl Raumtype +* +* @param $db Aktuelle Datenbankverbindung +* @param $uid Userkurzzeichen +* @param $user_array Anwenderinformatinen in Tabellenform +* +* @return HTML Tablle des Anwenderkalenders +* +*/ +function meine_uid_informationen($db,$uid,$user="") +{ + global $standort_id; + $html_user_daten=''; + $html_user_daten_detail=''; + // Lesen der Gesamtinformation zu einer Person (ALle UIDs holen) + $user_array=array(); + if ($db) + $user_array=personen_id_read_mitarbeiter_oder_student($db,$user->person_id); + +#echo '
'; +##var_dump($user_array); +#var_dump($_SESSION[constSESSIONNAME]["ldap_get_entries"]); + + if (isset($user_array) && is_array($user_array) && count($user_array)>1) + { + $html_user_daten.=''; + $html_user_daten.=''; + + reset($user_array); + for ($i=0;$iuid=trim($user_array[$i]->uid); + + $html_user_daten.=''; + } + $html_user_daten.=''; + $html_user_daten.='
'; + if ($user_array[$i]->aktiv =='t' || ($user_array[$i]->aktiv !='f' && $user_array[$i]->aktiv)) + { + $html_user_daten.=''; + $html_user_daten.=' +  '.($user_array[$i]->uid==$uid?'':''). trim($user_array[$i]->uid).($user_array[$i]->uid==$uid?'':'').' '; + $html_user_daten.=''; + } + else + { + $html_user_daten.=' +  '.trim($user_array[$i]->uid).' '; + } + $html_user_daten.='
'; + + $html_user_daten_detail.='
'; + reset($user_array); + for ($i=0;$i0?'
':'').meine_uid_informationen_detail($db,$user_array[$i]->uid,$i); + } + else + { + $html_user_daten_detail.=meine_uid_informationen_detail($db,$uid,0); + } + $html_user_daten.=$html_user_daten_detail; + + $html_user_daten.='
'; + + // eMail senden nach anforderung + /* + $send_mail=(isset($_REQUEST['send_mail']) ? $_REQUEST['send_mail']:false); + if ($send_mail) + { + $to=$uid.'@'.DOMAIN; + $from=MAIL_CIS; + $subject=CAMPUS_NAME.' Informationen'; + + $mail=new mail($to, $from, $subject, $html_user_daten_detail); + if (isset($user_array) && is_array($user_array) && count($user_array)>1) + { + reset($user_array); + for ($i=0;$iuid && ($user_array[$i]->aktiv='t' || ($user_array[$i]->aktiv !='f' && $user_array[$i]->aktiv)) ) + $mail->setCCRecievers($user_array[$i]->uid.'@'.DOMAIN); + } + } + $mail->setHTMLContent($html_user_daten_detail); + if ($mail->send()) + $html_user_daten.='

email gesendet an '.$mail->to.' '.($mail->CC_recievers?$mail->CC_recievers:'').'

'; + else + $html_user_daten.='

email nicht gesendet an '.$mail->to.'

'; + } + // Send eMail Auswahl anzeigen + else + { + $farbe='gruen'; + $html_user_daten.=''; + $html_user_daten.=''; + $html_user_daten.=''; + $html_user_daten.=''; + $html_user_daten.='
'; + $html_user_daten.=''; + $html_user_daten.=' + + + '; + $html_user_daten.='Informationen per Mail senden'; + $html_user_daten.=' + + + + '; + $html_user_daten.=''; + $html_user_daten.='
'; + }*/ + return $html_user_daten; +} +#------------------------------------------------------------------------------------------- +/* +* Zeigt die Oberfläche zur Kartenverlängerung an +* @param $uid Userkurzzeichen +*/ +function karten_verlaengerung($uid) +{ + $studienbeitrag = false; + + + // Mitarbeiter brauchen die Karte nicht verlängern + + $cardPerson = new benutzer(); + if(!$cardPerson->load($uid)) + { + die('Konnte User nicht laden'); + } + + $html_user_daten=''; + $html_user_daten.='

Verlängerung Studienausweis

'; + $html_user_daten.=' + + + + +
+ + + + + + + +
'.($cardPerson->titelpre?$cardPerson->titelpre.' ':'').$cardPerson->vorname.' '.$cardPerson->nachname.' '.($cardPerson->titelpost?$cardPerson->titelpost:'').' 
+  
+ + +
 
+  
'; + + echo $html_user_daten; + + // User zur Karte konnte nicht geladen werden + + $data = ServiceTerminalCheckVerlaengerung($uid); + + if($data[0]===true) + { + echo $data[1]; + echo '
Um Karte zu verlängern drücken Sie bitte folgenden Button:'; + + echo' + + + +
+ + +
+
+
'; + } + else + echo $data[1].'

'; + +} + +#------------------------------------------------------------------------------------------- +/* +* +* @meine_uid_informationen_detail Detailanzeige Userprofil +* +* @param $db Aktuelle Datenbankverbindung +* @param $uid Userkurzzeichen +* @param $user_array Anwenderinformatinen in Tabellenform +* +* @return HTML Tablle des Anwenderkalenders +* +*/ +function meine_uid_informationen_detail($db,$uid,$count=0) +{ + $html_user_daten=''; + + $stg = ''; + $stg_obj = new studiengang(); + $stg_obj->getAll('typ, kurzbz', false); + $stg_arr = array(); + foreach ($stg_obj->result as $row) + $stg_arr[$row->studiengang_kz]=$row->kurzbzlang; + if(!($erg=$db->db_query("SELECT * FROM campus.vw_benutzer WHERE uid=".$db->db_add_param($uid, FHC_STRING)))) + die($db->db_last_error()); + $num_rows=$db->db_num_rows($erg); + if ($num_rows==1) + { + $person_id=$db->db_result($erg,0,"person_id"); + + $anrede=$db->db_result($erg,0,"anrede"); + $vorname=$db->db_result($erg,0,"vorname"); + $vornamen=$db->db_result($erg,0,"vornamen"); + $nachname=$db->db_result($erg,0,"nachname"); + $gebdatum=$db->db_result($erg,0,"gebdatum"); + $gebort=$db->db_result($erg,0,"gebort"); + + $aktiv=$db->db_result($erg,0,"aktiv"); + + $svnr=$db->db_result($erg,0,"svnr"); + + $titelpre=$db->db_result($erg,0,"titelpre"); + $titelpost=$db->db_result($erg,0,"titelpost"); + $email=$db->db_result($erg,0,"uid").'@'.DOMAIN; + $email_alias=$db->db_result($erg,0,"alias"); + if ($email_alias) + $email_alias=$email_alias.'@'.DOMAIN; + + $hp=$db->db_result($erg,0,"homepage"); + $aktiv=$db->db_result($erg,0,"aktiv"); + $foto=$db->db_result($erg,0,"foto"); + } + + if(!($erg_stud=$db->db_query("SELECT studiengang_kz, semester, verband, gruppe, matrikelnr, typ::varchar(1) || kurzbz AS stgkz, tbl_studiengang.bezeichnung AS stgbz FROM public.tbl_student JOIN public.tbl_studiengang USING(studiengang_kz) WHERE student_uid=".$db->db_add_param($uid, FHC_STRING)))) + die($db->db_last_error()); + $stud_num_rows=$db->db_num_rows($erg_stud); + if ($stud_num_rows==1) + { + $stg=$db->db_result($erg_stud,0,"studiengang_kz"); + $stgbez=$db->db_result($erg_stud,0,"stgbz"); + $stgkz=$db->db_result($erg_stud,0,"stgkz"); + $semester=$db->db_result($erg_stud,0,"semester"); + $verband=$db->db_result($erg_stud,0,"verband"); + $gruppe=$db->db_result($erg_stud,0,"gruppe"); + $matrikelnr=$db->db_result($erg_stud,0,"matrikelnr"); + } + + $ort=''; + $kurzbz=''; + $tel=''; + $vorwahl=''; + if(!($erg_lekt=$db->db_query("SELECT * FROM public.tbl_mitarbeiter WHERE mitarbeiter_uid=".$db->db_add_param($uid, FHC_STRING)))) + die($db->db_last_error()); + $lekt_num_rows=$db->db_num_rows($erg_lekt); + if ($lekt_num_rows==1) + { + $row=$db->db_fetch_object($erg_lekt,0); + $kurzbz=$row->kurzbz; + $tel=$row->telefonklappe; + $ort=$row->ort_kurzbz; + $vorwahl = ''; + if($tel != "") + { + $vorwahl = '+43 1 333 40 77-'; + if($row->standort_id!='') + { + $qry = "SELECT kontakt FROM public.tbl_kontakt WHERE standort_id=".$db->db_add_param($row->standort_id,FHC_INTEGER)." AND kontakttyp = 'telefon'"; + if($result_tel = $db->db_query($qry)) + if($row_tel = $db->db_fetch_object($result_tel)) + $vorwahl = $row_tel->kontakt; + } + } + } + + // Mail-Groups + if(isset($semester)) + $semester_qry = " and semester =".$db->db_add_param($semester, FHC_STRING); + else + $semester_qry = ''; + + if(!($erg_mg=$db->db_query("SELECT gruppe_kurzbz, beschreibung FROM campus.vw_persongruppe WHERE mailgrp and uid=".$db->db_add_param($uid, FHC_STRING)." ".$semester_qry." ORDER BY gruppe_kurzbz"))) + die($db->db_last_error()); + $nr_mg=$db->db_num_rows($erg_mg); + + // Betriebsmittel zur Person lesen + /* + $betriebsmittelperson=array(); + $qry="SELECT nummer,betriebsmitteltyp FROM public.vw_betriebsmittelperson where uid='".addslashes(trim($uid))."' and aktiv and benutzer_aktiv and ( retouram IS NULL ) LIMIT 50 ; "; + if(!$result=$db->db_query($qry)) + die('Probleme beim Lesen der Benutzer uid '.$db->db_last_error()); + if ($result) + { + while($rows = $db->db_fetch_object($result)) + { + $rows->asco='ASCO Datensätze gefunden'; + if (is_numeric($rows->nummer) && $mssql_verbindung) + { + $card_no=$rows->nummer; + $anfrage = mssql_query('SELECT * FROM view_fh_technikum_mitarbeiterkarten_berechtigungen where card_no='.$card_no); + if (mssql_num_rows($anfrage)) + { + $rows->asco=array(); + while ($datensatz = mssql_fetch_object($anfrage)) + $rows->asco[]=$datensatz; + } + mssql_free_result($anfrage); + } + $betriebsmittelperson[]=$rows; + } + }*/ + + if ($count==0) + { + $html_user_daten.='

Persönliche Daten

'; + $html_user_daten.=' + + + +
+ + + + + + + + +

'.$anrede.' '.($titelpre?$titelpre.' ':'').$vorname.' '.$nachname.'

 
    
+
'; + } + + if ($count==0) + $html_user_daten.='
'; + +// HTML Header mit den Benutzerdaten + $html_user_daten.=''; + $html_user_daten.=''; + + if ($aktiv=='f' || !$aktiv) + { + $html_user_daten.=''; + $html_user_daten.=''; + $html_user_daten.=''; + } + else + { + $html_user_daten.=''; + $html_user_daten.=''; + $html_user_daten.=''; + } + $html_user_daten.=''; + + $html_user_daten.='
Informationen zu BenutzerIn '.$uid.'
Account nicht mehr AKTIV !
Aktiv
'; + $html_user_daten.=''; + $html_user_daten.=''; + $html_user_daten.=''; + /* + + $html_user_daten.=''; + for($i=0;$i<$nr_mg;$i++) + { + $row=$db->db_fetch_object($erg_mg,$i); + + $html_user_daten.=''; + $html_user_daten.=''; + $html_user_daten.=''; + $html_user_daten.=''; + } + + if (isset($matrikelnr)) + { + $html_user_daten.=''; + $html_user_daten.="\n"; + $html_user_daten.=''; + $html_user_daten.="\n"; + $html_user_daten.=''; + $html_user_daten.="\n"; + $html_user_daten.=''; + $html_user_daten.="\n"; + } + $html_user_daten.='
Email
Intern'.$email.'
Alias'.$email_alias.'
Mitglied in folgenden Verteilern
'.strtolower($row->gruppe_kurzbz).' '.$row->beschreibung.' 
'.strtolower($stgkz).'_std  Alle Studierdenden von $stgbez
'.strtolower($stgkz).$semester.'  Alle Studierenden von $stgkz $semester
'.strtolower($stgkz).$semester.strtolower($verband).'  Alle Studierenden von $stgkz $semester$verband
'.strtolower($stgkz).$semester.strtolower($verband).$gruppe.'  Alle Studierenden von $stgkz $semester$verband$gruppe
 
'; + if ($stud_num_rows==1) + { + $html_user_daten.=''; + $html_user_daten.="'; + } + else if ($lekt_num_rows==1) + { + $html_user_daten.=''; + $html_user_daten.=''; + }*/ + + $html_user_daten.='
StudentIn
+ Studiengang: $stgbez
+ Semester: $semester
+ Verband: $verband
+ Gruppe: $gruppe
+ Matrikelnummer: $matrikelnr"; + $html_user_daten.='
Lektor
Kurzzeichen: '.$kurzbz.'
Standort: '.$ort.'
'.($tel!=''?'Telefon TW: '.$vorwahl.' '.$tel:'').'
'; + $html_user_daten.=' 
'; + return $html_user_daten; + +} + +#------------------------------------------------------------------------------------------- +/* +* +* @alle_uid_stundenplan_informationen Termine zur Auswahl Raumtype +* +* @param $db Aktuelle Datenbankverbindung +* @param $uid Userkurzzeichen +* @param $user_array Anwenderinformatinen in Tabellenform +* +* @return HTML Tablle des Anwenderkalenders +* +*/ +function alle_uid_stundenplan_informationen($db,$uid,$user_array="") +{ + $html_liste_raum=''; + if ($db && (empty($user_array) || (!is_array($user_array) && !is_object($user_array))) ) + { + $user_array=uid_read_mitarbeiter_oder_student($db,$uid); + } + if (empty($user_array) || (!is_array($user_array) && !is_object($user_array)) ) + { + return $html_liste_raum; + } + +// ------------------------------------------------------------------------------------------ +// Kalenderwoche und Tage Initialisieren +// ------------------------------------------------------------------------------------------ +/* + $date = date('d'); + $month = date('m'); + $year = date('y'); + $weekday = date('w'); + $kalenderweek = ((int)date('W')<10?'0'.(int)date('W'):date('W')); + + // Montag ermitteln + if($weekday == 0) + { + $datum=mktime(0, 0, 0, $month, $date-$weekday -6, $year); + $ersterTagMonat=date('m', mktime(0, 0, 0, $month, $date-$weekday -6, $year)); + $ersterTag=date('d', mktime(0, 0, 0, $month, $date-$weekday -6, $year)); + } + else + { + $datum=mktime(0, 0, 0, $month, $date-$weekday +1, $year); + $ersterTagMonat=date('m', mktime(0, 0, 0, $month, $date-$weekday +1, $year)); + $ersterTag=date('d', mktime(0, 0, 0, $month, $date-$weekday +1, $year)); + } +*/ +// ------------------------------------------------------------------------------------------ +// Alle Termine zum User lesen +// ------------------------------------------------------------------------------------------ + // Authentifizierung + if (check_student($uid)) + $type='student'; + elseif (check_lektor($uid)) + $type='lektor'; + else + { + //die("Cannot set usertype!"); + //GastAccountHack + $type='student'; + } + + // Stundenplan erstellen + $stdplan=new wochenplan($type); + // Benutzergruppe + $stdplan->user=$type; + // aktueller Benutzer + $stdplan->user_uid=$uid; + // Zusaetzliche Daten laden + + if (isset($user_array->studiengang_kz)) + { + // Student + if (! $stdplan->load_data($type,$uid,NULL,trim($user_array->studiengang_kz),trim($user_array->semester),trim($user_array->verband),trim($user_array->gruppe)) ) + { + die($stdplan->errormsg); + } + } + else + { + // Mitarbeiter + if (! $stdplan->load_data($type,$uid) ) + { + die($stdplan->errormsg); + } + } + + $datum=time(); + // Stundenplan einer Woche laden + if (! $stdplan->load_week($datum)) + { + die($stdplan->errormsg); + } + $ersterTagMonat=date('m', $stdplan->datum); + $ersterTag=date('d', $stdplan->datum); + $year=date('Y', $stdplan->datum); + $weekday=date('w'); +// ------------------------------------------------------------------------------------------ +// Stunden lesen +// ------------------------------------------------------------------------------------------ + $row_stunde=array(); + $qry="SELECT stunde, beginn, ende FROM lehre.tbl_stunde ORDER BY stunde"; + if(!$result=$db->db_query($qry)) + die('Probleme beim lesen der Stundentabelle '.$db->db_last_error()); + $num_rows_stunde=$db->db_num_rows(); + while($row_stunden = $db->db_fetch_object()) + { + $row_stunden->time_beginn=mktime(mb_substr($row_stunden->beginn, 0,2),mb_substr($row_stunden->beginn, 3,2)); + $row_stunden->time_ende=mktime(mb_substr($row_stunden->ende, 0,2),mb_substr($row_stunden->ende, 3,2)); + $row_stunden->beginn_show=mb_substr($row_stunden->beginn, 0,5); + $row_stunden->ende_show=mb_substr($row_stunden->ende, 0,5); + $row_stunde[]=$row_stunden; + } + +// ------------------------------------------------------------------------------------------ +// Tabelle alle Termine zum User anzeigen +// ------------------------------------------------------------------------------------------ + $html_liste_raum.='

Persönlicher LV-Plan von '.(isset($user_array->name)?$user_array->name:$uid).' ('.$uid.') '. strftime(constHeaderStundenplan,mktime(0, 0, 0, $ersterTagMonat,$ersterTag, $year)).'

'; + $html_liste_raum.=''; + + // Datum-Header + $html_liste_raum.=''; + $html_liste_raum.=''; + $lektor_max=0; + // Datumszeile + for ($ii=0;$ii'; + } + $html_liste_raum.=''; +// ------------------------------------------------------------------------------------------ +// Stundenplanaufbau +// ------------------------------------------------------------------------------------------ + reset($row_stunde); + for ($i=0;$itime_beginn<=time() && $row_stunde[$i]->time_ende>=time()) + $html_liste_raum.=''; + else + $html_liste_raum.=''; + // ------------------------------------------------------------------------------------------------------------ + // Pausenzeiten werden zur naechsten Std. gerechnet als Aktuellezeit + // dh. Letztes Ende ist gleich Start aktueller Datensatz + if ($i && $row_stunde[$i - 1]->time_ende && $row_stunde[$i]->time_beginn!=$row_stunde[$i - 1]->time_ende) + { + $row_stunde[$i]->time_beginn=$row_stunde[$i - 1]->time_ende; + } + + // Je Tage die Stunden ausgeben + for ($ii=0;$iitime_beginn<=time() && $row_stunde[$i]->time_ende>=time()) + { + $zeit_aktuell=true; + } + + if ($zeit_aktuell) + { + $html_liste_raum.=''; + $html_liste_orte.=''; + } + return $html_liste_orte; +} +#------------------------------------------------------------------------------------------- +/* +* +* @alle_uid_stundenplan_informationen Termine zur Auswahl Raumtype +* +* @param $db Aktuelle Datenbankverbindung +* @param $uid Userkurzzeichen +* @param $pwd Password +* +* @return true wenn Fehler oder false wenn LDAP Inormationen zum User gefunden wurde +* +*/ +function ldap_uid_check($uid,$pwd="") +{ + if($pwd=='') + return "Es wurde kein Passwort eingetragen"; + + // eventuelle Daten vom Vorgaenger loeschen - sicherstellen das Initial ist + if (isset($_SESSION[constSESSIONNAME])) + unset($_SESSION[constSESSIONNAME]); + + // Check User vorhanden ist ( Password wenn Online eingabe ), ansonst zurueck + if (empty($uid)) + return "Benutzername fehlt!"; + + $auth = new authentication(); + if($auth->checkpassword($uid, $pwd)) + return false; + else + return "Login fehlgeschlagen ".$auth->errormsg; +} +#------------------------------------------------------------------------------------------- +#------------------------------------------------------------------------------------------- +/* +* +* @uid_read_mitarbeiter_oder_student Daten zum Mitarbeiter oder Studenten +* +* @param $db Aktuelle Datenbankverbindung +* @param $uid Userkurzzeichen +* +* @return Array der User Inormationen wenn User gefunden wurde ansonst false +* +*/ +function uid_read_mitarbeiter_oder_student($db,$uid) +{ + $rows=array(); + // Plausib + if (!$db) + return $rows; + + // Pruefen ob Mitarbeiter + $qry="SELECT uid,person_id,anrede,titelpre,vorname,vornamen,nachname,aktiv FROM campus.vw_mitarbeiter where uid=".$db->db_add_param(trim($uid), FHC_STRING)." LIMIT 1 ; "; + if(!$results=$db->db_query($qry)) + die('Probleme beim lesen der Mitarbeiter '.$db->db_last_error()); + + if ($num_rows_stunde=$db->db_num_rows($results)) + { + while($rows = $db->db_fetch_object($results)) + { + $rows->name=''; + $rows->name.=(isset($rows->anrede)?trim($rows->anrede).' ':''); + $rows->name.=(isset($rows->titelpre)?trim($rows->titelpre).' ':''); + $rows->name.=(isset($rows->vorname)?trim($rows->vorname).' ':''); + $rows->name.=(isset($rows->vornamen)?trim($rows->vornamen).' ':''); + $rows->name.=(isset($rows->nachname)?trim($rows->nachname).' ':''); + return $rows; + } + } + + // Wenn kein Mitarbeiter pruefen ob Student + $qry="SELECT uid,person_id,anrede,titelpre,vorname,vornamen,nachname,aktiv FROM campus.vw_student where uid=".$db->db_add_param(trim($uid), FHC_STRING)." LIMIT 1 ; "; + if(!$result=$db->db_query($qry)) + die('Probleme beim Lesen der Studierenden '.$db->db_last_error()); + if ($num_rows_stunde=$db->db_num_rows($result)) + { + while($rows = $db->db_fetch_object($result)) + { + $rows->name=''; + $rows->name.=(isset($rows->anrede)?trim($rows->anrede).' ':''); + $rows->name.=(isset($rows->titelpre)?trim($rows->titelpre).' ':''); + $rows->name.=(isset($rows->vorname)?trim($rows->vorname).' ':''); + $rows->name.=(isset($rows->vornamen)?trim($rows->vornamen).' ':''); + $rows->name.=(isset($rows->nachname)?trim($rows->nachname).' ':''); + return $rows; + } + } + // Daten gefunden wurden ist nicht mehr der Initialwert False als Returnparameter vorhanden + return $rows; +} +#------------------------------------------------------------------------------------------- +/* +* +* @personen_id_read_mitarbeiter_oder_student Daten zum Mitarbeiter oder Studenten +* +* @param $db Aktuelle Datenbankverbindung +* @param $person_id Userkurzzeichen +* +* @return Array der User Inormationen wenn User gefunden wurde ansonst false +* +*/ +function personen_id_read_mitarbeiter_oder_student($db,$person_id) +{ + $row=array(); + // Plausib + if (!$db) + return $row; + // Pruefen ob Mitarbeiter + $qry=''; + $qry.=' SELECT uid,person_id,anrede,titelpre,vorname,vornamen,nachname,aktiv FROM campus.vw_mitarbeiter where person_id='.$db->db_add_param(trim($person_id), FHC_INTEGER); + $qry.=' UNION '; + // Pruefen ob Student + $qry.='SELECT uid,person_id,anrede,titelpre,vorname,vornamen,nachname,aktiv FROM campus.vw_student where person_id='.$db->db_add_param(trim($person_id), FHC_INTEGER); + $qry.=' LIMIT 20 '; + if(!$result=$db->db_query($qry)) + die('Probleme beim lesen der MitarbeiterInnen/Studierenden '.$db->db_last_error()); + if (!$num_rows_stunde=$db->db_num_rows($result)) + return $row; + while($rows = $db->db_fetch_object($result)) + { + $rows->name=''; + $rows->name.=(isset($rows->anrede)?trim($rows->anrede).' ':''); + $rows->name.=(isset($rows->titelpre)?trim($rows->titelpre).' ':''); + $rows->name.=(isset($rows->vorname)?trim($rows->vorname).' ':''); + $rows->name.=(isset($rows->vornamen)?trim($rows->vornamen).' ':''); + $rows->name.=(isset($rows->nachname)?trim($rows->nachname).' ':''); + $row[]=$rows; + } + // Daten gefunden wurden ist nicht mehr der Initialwert False als Returnparameter vorhanden + return $row; +} + +#------------------------------------------------------------------------------------------- +/* +* +* @read_create_html_news lesen der CIS - News zum anzeigen als HTML Tabelle +* +* @param $db Aktuelle Datenbankverbindung +* @param $fachbereich_kurzbz Fachbereichskennzeichen +* @param $studiengang_kz Studiengan Kennzeichen +* @param $semester Semester +* +* @return HTML Tabelle mit Newszeilen +* +*/ +function read_create_html_news($db,$fachbereich_kurzbz,$studiengang_kz,$semester) +{ + // ------------------------------------------------------------------------------------------ + // Lesen Newstickerzeilen + // ------------------------------------------------------------------------------------------ + // Initialisieren der Newstickerzeilen + $news=''; + + $news_obj = new news(); + $news_obj->getnews(MAXNEWSALTER, $studiengang_kz, $semester, false, null, MAXNEWS); + + // Newsliste erzeugen + $news='
 Zeit
'.$row_stunde[$i]->beginn_show.'-'.$row_stunde[$i]->ende_show.''.$row_stunde[$i]->beginn_show.'-'.$row_stunde[$i]->ende_show.''; + } + else + { + $html_liste_raum.=''; + } + $html_liste_raum.=''; + } + $html_liste_raum=($lektor_max>1?str_replace('{***}','
',$html_liste_raum):str_replace('{***}','',$html_liste_raum)); + $html_liste_raum.=''; + $html_liste_raum.='
'; + } + + + $gef_raum_einteilung_check=false; + $TagInd=$ii + 1; + $StdInd=$i + 1; + + $lektor=''; + $lektor_anz=0; + + if (isset($stdplan->std_plan[$TagInd]) && isset($stdplan->std_plan[$TagInd][$StdInd]) && isset($stdplan->std_plan[$TagInd][$StdInd][0]->lehrfach)) + { + foreach ($stdplan->std_plan[$TagInd][$StdInd] as $lehrstunde) + { + //if (!isset($lehrstunde->reservierung) || ($lehrstunde->reservierung && $type!='lektor') ) + // continue; + + if (!$gef_raum_einteilung_check) + $gef_raum_einteilung_check=$lehrstunde; + $lektor.=(isset($lehrstunde->lektor) && !empty($lehrstunde->lektor)?trim($lehrstunde->lektor).'
':'tw-0'); + $lektor_anz++; + if ($lektor_max<$lektor_anz) + $lektor_max=$lektor_anz; + } + } + if ($gef_raum_einteilung_check) + { + if ($gef_raum_einteilung_check->reservierung) + $lehrstunde=trim($gef_raum_einteilung_check->titel).'
'; + else + $lehrstunde=trim($gef_raum_einteilung_check->lehrfach).'-'.trim($gef_raum_einteilung_check->lehrform).'
'; + + $ort=(isset($gef_raum_einteilung_check->ort) && !empty($gef_raum_einteilung_check->ort)?trim($gef_raum_einteilung_check->ort).'
':''); + $farbe=(isset($gef_raum_einteilung_check->farbe) && !empty($gef_raum_einteilung_check->farbe)?$gef_raum_einteilung_check->farbe:''); + $html_liste_raum.=''; + } + else + { + $html_liste_raum.=''; + } + $html_liste_raum.='
'; +# $html_liste_raum.=$TagInd.'**'.$StdInd .'
'.$lehrstunde.$lektor.$ort; + $html_liste_raum.=$lehrstunde.$lektor.($lektor_anz>1?'':'{***}')."$ort"; + $html_liste_raum.='
 
 Top  
'; + return $html_liste_raum; +} +#------------------------------------------------------------------------------------------- +/* +* +* @alle_raum_informationen Rauminformation zur Auswahl Raumtype +* +* @param $db Aktuelle Datenbankverbindung +* @param $raumtyp_kurzbz Raumtyp +* @param $ort_kurzbz Detailanzeige Stundenplan eines Raums +* +* @return HTML Tablle der Raumtypen +* +*/ +function alle_raum_informationen($db,$raumtyp_kurzbz,$ort_kurzbz, $standort_id) +{ + // HTML Init - Raumliste - Tabelle + $html_liste_raum=''; + // Header - Raumliste - Tabelle + $html_liste_raum.='

'. strftime(constHeaderDatumZeit,time()).'

'; + // DB Verbindung pruefen, Plausib - ohne Verbindung Header anzeigen + if (!$db) + return $html_liste_raum; + +// ------------------------------------------------------------------------------------------ +// Alle Raum Typen zur Selektion +// ------------------------------------------------------------------------------------------ + $row_raum=array(); + $row_raum_aktiv=array(); + $row_raum_alle=array(); + + $qry=""; + $qry.=" SELECT DISTINCT "; + $qry.=" tbl_ortraumtyp.ort_kurzbz "; + $qry.=" ,tbl_ort.bezeichnung ,tbl_ort.aktiv "; + $qry.=" FROM tbl_raumtyp , tbl_ortraumtyp , tbl_ort "; + $qry.=" WHERE tbl_ortraumtyp.raumtyp_kurzbz=tbl_raumtyp.raumtyp_kurzbz "; + $qry.=" AND tbl_ort.ort_kurzbz=tbl_ortraumtyp.ort_kurzbz "; + $qry.=" AND tbl_ort.aktiv "; + $qry.=" AND lower(tbl_raumtyp.raumtyp_kurzbz) like lower('%".$db->db_escape(trim($raumtyp_kurzbz))."%') "; + if($standort_id!='') + $qry.=" AND (tbl_ort.standort_id=".$db->db_add_param($standort_id, FHC_INTEGER).' OR tbl_ort.standort_id is null)'; + $qry.=" order by tbl_ortraumtyp.ort_kurzbz "; + $qry.=" ; "; + + if(!$result=$db->db_query($qry)) + die('Probleme beim lesen der Raumtyptabelle '.$db->db_last_error()); + $num_rows_stunde=$db->db_num_rows($result); + + if($num_rows_stunde==0) + return "Derzeit sind hier keine Eintraege vorhanden"; + + while($tmp_row_raum = $db->db_fetch_object($result)) + { + // Wenn noch kein Raum gewaehlt wurde den ersten als Default nehmen + if (!trim($ort_kurzbz)) + $ort_kurzbz=$tmp_row_raum->ort_kurzbz; + + // Aktiven Raum Anzeigen + if (trim($ort_kurzbz)==trim($tmp_row_raum->ort_kurzbz)) + $row_raum_aktiv=$tmp_row_raum; + + $row_raum_alle[]=$tmp_row_raum->ort_kurzbz; + $row_raum[]=$tmp_row_raum; + } + + if (count($row_raum_aktiv)<1) + $row_raum_aktiv=$row_raum[0]; + + // -------------------------------------------------------------- + // Raumreservierungen fuer Aktive Raumauswahl + // -------------------------------------------------------------- + + + // Die aktive Stunde ermitteln - zum lesen welcher Raum jetzt besetzt ist - aktive Lehreinheit + $row_stunde=array(); + + $qry=""; + $qry.="SELECT stunde, beginn, ende "; + $qry.=" FROM lehre.tbl_stunde "; + $qry.=" WHERE ".$db->db_add_param(constAktuelleZeitHHMi,FHC_STRING)." between to_char(tbl_stunde.beginn, 'HH24MI') and to_char(tbl_stunde.ende, 'HH24MI') "; + $qry.=" ORDER BY stunde LIMIT 1 ; "; + +# $qry.=" WHERE '". constAktuelleZeitHH."' between to_char(tbl_stunde.beginn, 'HH24') and to_char(tbl_stunde.ende, 'HH24') "; +# $qry.=" ORDER BY stunde desc LIMIT 1; "; + + if(!$result=$db->db_query($qry)) + die('Probleme beim lesen der Raumtyptabelle '.$db->db_last_error()); + + // In einer Pause wird kein Datensatz gefunden, den letzten holen + if (!$num_rows_stunde=$db->db_num_rows($result)) + { + $qry=""; + $qry.="SELECT stunde, beginn, ende "; + $qry.=" FROM lehre.tbl_stunde "; + $qry.=" WHERE ".$db->db_add_param(constAktuelleZeitHH,FHC_STRING)." between to_char(tbl_stunde.beginn, 'HH24') and to_char(tbl_stunde.ende, 'HH24') "; + $qry.=" ORDER BY stunde LIMIT 1; "; + if(!$result=$db->db_query($qry)) + die('Probleme beim lesen der Raumtyptabelle '.$db->db_last_error()); + } + + while($tmp_row_stunde = $db->db_fetch_object($result)) + $row_stunde[]=$tmp_row_stunde; + + // Plausib Stunde + if(!isset($row_stunde[0])) + $row_stunde[0]=new stdClass(); + + $row_stunde[0]->stunde=(isset($row_stunde[0]) && isset($row_stunde[0]->stunde)?$row_stunde[0]->stunde:0); + + $html_liste_raum.=''; + $html_liste_raum.=''; + reset($row_raum); + for ($i=0;$iort_kurzbz; + $datum=date("Y-m-d", mktime(0,0,0,date("m"),date("d"),date("y"))); + $stunde_von=$row_stunde[0]->stunde; + $stunde_bis=$row_stunde[0]->stunde; + if ($info=stundenplan_raum($db,$ort_kurzbz,$datum,$stunde_von,$stunde_bis)) + { + $farbe="rot"; + } + + $ort_kurzbz=$row_raum[$i]->ort_kurzbz; + $datum=date("Y-m-d", mktime(0,0,0,date("m"),date("d"),date("y"))); + $stunde_von=$row_stunde[0]->stunde; + $stunde_bis=$row_stunde[0]->stunde + 1; + if (!$info=stundenplan_raum($db,$ort_kurzbz,$datum,$stunde_von,$stunde_bis)) + { + $farbe="gruen"; + } + +# if ($farbe=="orange") +# var_dump($info); + + // Nach 4 Raumanzeigen eine Neuezeile erzeugen + $html_liste_raum.=($i==0 || $i%4?"":""); + $html_liste_raum.=''; + } + $html_liste_raum.=''; + $html_liste_raum.='
'; + $html_liste_raum.=''; + $html_liste_raum.=''; + $html_liste_raum.=trim($ort_kurzbz); + $html_liste_raum.=' + '; + $html_liste_raum.=''; + + $html_liste_raum.='
'; + + // Legende + $html_liste_raum.='
'; + $html_liste_raum.=''; + $html_liste_raum.=''; + + $html_liste_raum.=''; + $html_liste_raum.=''; + $html_liste_raum.=''; + $html_liste_raum.=''; + $html_liste_raum.='
   Mindestens nächsten 2 Einheiten frei
   Derzeit frei
   Raum derzeit besetzt
'; + $html_liste_raum.='
'; + + // Aktiver Raum Haederinformation + $html_liste_raum.='

'.$row_raum_aktiv->ort_kurzbz.'  -  '.strftime(constRaumDatumZeit,time()).'  '.$row_raum_aktiv->bezeichnung.''.'

'; + + $ort_kurzbz=$row_raum_aktiv->ort_kurzbz; + $datum=date("Ymd", mktime(0,0,0,date("m"),date("d"),date("y"))); + + $stunde_von=0; + $stunde_bis=99; + if (!$row_raum_plan=stundenplan_raum($db,$ort_kurzbz,$datum,$stunde_von,$stunde_bis)) + { + $row_raum_plan=array(); + $html_liste_raum."
keine Reservierungen ".$datum; + } + + $html_liste_raum.=''; + $html_liste_raum.=''; + + // Stundentabelle lesen + $row_stunde=array(); + $qry="SELECT stunde, beginn, ende FROM lehre.tbl_stunde ORDER BY stunde"; + if(!$result=$db->db_query($qry)) + die('Probleme beim lesen der Stundentabelle '.$db->db_last_error()); + + $lastEnde=0; + $num_rows_stunde=$db->db_num_rows(); + while($row = $db->db_fetch_object()) + { + $row->time_beginn=mktime(mb_substr($row->beginn, 0,2),mb_substr($row->beginn, 3,2)); + $row->time_ende=mktime(mb_substr($row->ende, 0,2),mb_substr($row->ende, 3,2)); + + $row->beginn_kurz=mb_substr($row->beginn, 0,5); + $row->ende_kurz=mb_substr($row->ende, 0,5); + + $row->beginn_show=substr($row->beginn, 0,5); + $row->ende_show=substr($row->ende, 0,5); + + // Pausenzeiten werden zur naechsten Std. gerechnet als Aktuellezeit + // dh. Letztes Ende ist gleich Start aktueller Datensatz + if ($lastEnde && $row->time_beginn!=$lastEnde) + { +# echo "

Zeit korr. Funktion:alle_raum_informationen ".$row->beginn_show." wird zu ".$lastShowEnde."

"; + $row->time_beginn=$lastEnde; + } + + // Aktuelle Stunde kennzeichnen + $row->aktuell=false; + if ($row->time_beginn<=time() && $row->time_ende>=time()) + $row->aktuell=true; + else + $row->aktuell=false; + $row_stunde[]=$row; + } + + // zur Stundentabelle die Rauminformationen lesen + for ($i=0;$i"); + + $html_liste_raum.=''; + $html_liste_raum.='
'; + if ($row->aktuell) + { + $html_liste_raum.=''; + } + else + { + $html_liste_raum.=''; + } + + reset($row_raum_plan); + $gef_raum_einteilung=array(); + for ($ii=0;$iistunde!=$row_raum_plan[$ii]->stunde) + { + continue; + } + $gef_raum_einteilung=$row_raum_plan[$ii]; + // Stundenplan Detail lesen + if (isset($gef_raum_einteilung->stundenplan_id) && !empty($gef_raum_einteilung->stundenplan_id)) + { + $gef_raum_einteilung->infotext='Fehler lesen Stundenplan '.$gef_raum_einteilung->stundenplan_id; + // Details wurden bereits gelesen + if (isset($gef_stundenplan_detail) && isset($gef_stundenplan_detail->stundenplan_id) && $gef_stundenplan_detail->stundenplan_id==$gef_raum_einteilung->stundenplan_id) + { + $gef_raum_einteilung->infotext=$gef_stundenplan_detail->lehrfach.'-'.$gef_stundenplan_detail->lehrform.'
'.$gef_stundenplan_detail->lektor.'
'.mb_strtoupper(trim($gef_stundenplan_detail->stg_typ).trim($gef_stundenplan_detail->stg_kurzbz)).'-'.$gef_stundenplan_detail->semester.$gef_stundenplan_detail->verband; + } + // Detail lesen + elseif ($gef_stundenplan_detail=stundenplan_detail($db,$gef_raum_einteilung->stundenplan_id)) + { + if (isset($gef_stundenplan_detail->lehrfach)) + $gef_stundenplan_detail->lehrfach=trim(str_replace(array('
','
',"\n\r","\n"),'',$gef_stundenplan_detail->lehrfach)); + if (isset($gef_stundenplan_detail->lehrform)) + $gef_stundenplan_detail->lehrform=trim(str_replace(array('
','
',"\n\r","\n"),'',$gef_stundenplan_detail->lehrform)); + if (isset($gef_stundenplan_detail->lektor)) + $gef_stundenplan_detail->lektor=trim(str_replace(array('
','
',"\n\r","\n"),'',$gef_stundenplan_detail->lektor)); + if (isset($gef_stundenplan_detail->stg_kurzbzlang)) + $gef_stundenplan_detail->stg_kurzbzlang=trim(str_replace(array('
','
',"\n\r","\n"),'',$gef_stundenplan_detail->stg_kurzbzlang)); + + $img_sticky=''; + $gef_stundenplan_detail->titel=trim($gef_stundenplan_detail->titel); + if(!empty($gef_stundenplan_detail->titel) ) + $img_sticky=' '; + + $gef_raum_einteilung->infotext=$gef_stundenplan_detail->lehrfach.'-'.$gef_stundenplan_detail->lehrform.$img_sticky.'
'.$gef_stundenplan_detail->lektor.'
'.$gef_stundenplan_detail->stg_kurzbzlang.'-'.$gef_stundenplan_detail->semester.$gef_stundenplan_detail->verband; + } + + if (isset($gef_stundenplan_detail->farbe) && !empty($gef_stundenplan_detail->farbe) ) + { + $gef_raum_einteilung->farbe=$gef_stundenplan_detail->farbe; + } + } + // Reservierung Detail + if (isset($gef_raum_einteilung->reservierung_id) && !empty($gef_raum_einteilung->reservierung_id)) + { + $gef_raum_einteilung->infotext='Fehler lesen Reservierung '.$gef_raum_einteilung->reservierung_id; + // Details wurden bereits gelesen + if (isset($gef_stundenplan_detail) && isset($gef_stundenplan_detail->reservierung_id) && $gef_stundenplan_detail->reservierung_id==$gef_raum_einteilung->reservierung_id) + { + $gef_raum_einteilung->infotext=(!empty($gef_stundenplan_detail->titel)?$gef_stundenplan_detail->titel.'
':'').(!empty($gef_stundenplan_detail->uid)?$gef_stundenplan_detail->uid.'
':'').$gef_stundenplan_detail->beschreibung; + } + // Detail lesen + elseif ($gef_stundenplan_detail=reservierung_detail($db,$gef_raum_einteilung->reservierung_id)) + { + if (isset($gef_stundenplan_detail->titel)) + $gef_stundenplan_detail->titel=trim(str_replace(array('
','
',"\n\r","\n"),'',$gef_stundenplan_detail->titel)); + if (isset($gef_stundenplan_detail->beschreibung)) + $gef_stundenplan_detail->beschreibung=trim(str_replace(array('
','
',"\n\r","\n"),'',$gef_stundenplan_detail->beschreibung)); + if (isset($gef_stundenplan_detail->uid)) + $gef_stundenplan_detail->uid=trim(str_replace(array('
','
',"\n\r","\n"),'',$gef_stundenplan_detail->uid)); + $gef_raum_einteilung->infotext=(!empty($gef_stundenplan_detail->titel)?$gef_stundenplan_detail->titel.'
':'').'
'.(!empty($gef_stundenplan_detail->uid)?$gef_stundenplan_detail->uid.'
':'').$gef_stundenplan_detail->beschreibung; + } + if (isset($gef_stundenplan_detail->farbe) && !empty($gef_stundenplan_detail->farbe) ) + { + $gef_raum_einteilung->farbe=$gef_stundenplan_detail->farbe; + } + } + } + $html_liste_raum.='
'; + $html_liste_raum.='
'.trim($row->beginn_kurz)."
".trim($row->ende_kurz).'
'.trim($row->beginn_kurz)."
".trim($row->ende_kurz).'
aktuell?' class="raum_liste_detail_stundenplan_aktuell" ':' class="raum_liste_detail_stundenplan_normal" ') .' '. (isset($gef_raum_einteilung->farbe)?' style="background-color:#'.$gef_raum_einteilung->farbe.'" ':'').'>'.(isset($gef_raum_einteilung->infotext) && $gef_raum_einteilung->infotext? $gef_raum_einteilung->infotext :' 

').' 
'; + } + $html_liste_raum.='
'; + $html_liste_raum.='
   Aktuelle Einheit
'; + return $html_liste_raum; +} + +#------------------------------------------------------------------------------------------- +/* +* +* @alle_rauminformationen Rauminformation zur Auswahl Raumtype +* +* @param $db Aktuelle Datenbankverbindung +* @param $ort_kurzbz Detailanzeige Stundenplan eines Raums Optional +* @param $datum Datum der Raumres. in Form von JJJJMMTT Optional +* @param $row_stunde_von Stundenplan ab Optional +* @param $row_stunde_bis Stundenplan ab Optonal + +* @param $uid UserUid Optional +* @param $kalenderwoche Kalenderwoche Optional +* @param $studiengang_kz Studienkennzeichen Optional +* @param $semester Semester Optional +* @param $verband="" Verbandskennzeichen Optional +* @param $gruppe Verband-Gruppe Optional + +* +* @return array Tablle der Rauminformation +* +*/ +function stundenplan_raum($db,$ort_kurzbz="",$datum="",$stunde_von,$stunde_bis=0,$uid="",$kalenderwoche="",$studiengang_kz="",$semester="",$verband="",$gruppe="") +{ + // Plausib + if (!$db) + return array(); + + if (empty($stunde_bis)) + $stunde_bis=$stunde_von; + + //--- Raumbelegung jetzt + $qry=""; + $qry.=' SELECT studiengang_kz,0 as "stundenplan_id",tbl_reservierung.reservierung_id,tbl_reservierung.ort_kurzbz,tbl_reservierung.titel,tbl_reservierung.semester,tbl_reservierung.studiengang_kz,tbl_reservierung.verband, tbl_reservierung.gruppe , to_char(tbl_reservierung.datum, \'YYYYMMDD\') as "datum_jjjjmmtt", to_char(tbl_reservierung.datum, \'IW\') as "datum_woche" , tbl_stunde.beginn, tbl_stunde.ende , to_char(tbl_stunde.beginn, \'HH24:MI\') as "beginn_anzeige" , to_char(tbl_stunde.ende, \'HH24:MI\') as "ende_anzeige" , EXTRACT(EPOCH FROM tbl_reservierung.datum) as "datum_timestamp" ,tbl_stunde.stunde '; + $qry.=' FROM campus.tbl_reservierung , lehre.tbl_stunde '; + $qry.=" WHERE tbl_stunde.stunde=tbl_reservierung.stunde "; + $qry.=" and tbl_reservierung.stunde between ". $db->db_add_param(trim($stunde_von), FHC_STRING) ." and ". $db->db_add_param(trim($stunde_bis, FHC_STRING)) ; + + $datum_obj = new datum(); + if (!empty($datum)) + { + $qry.=" and tbl_reservierung.datum =".$db->db_add_param(trim($datum), FHC_STRING); + } + if (!empty($kalenderwoche)) + { + $qry.=" and to_char(tbl_reservierung.datum, 'IW') =".$db->db_add_param(trim($kalenderwoche), FHC_STRING); + } + if (!empty($ort_kurzbz)) + { + $qry.=" and ort_kurzbz=".$db->db_add_param(trim($ort_kurzbz), FHC_STRING); + } + if (!empty($uid) || $uid=='0') + { + $qry.=" and uid=".$db->db_add_param(trim($uid), FHC_STRING); + } + if (!empty($studiengang_kz) || $studiengang_kz=='0') + { + $qry.=" and studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_STRING); + } + if (!empty($semester) || $semester=='0') + { + $qry.=" and semester=".$db->db_add_param($semester, FHC_STRING); + } + if (!empty($verband) || $verband=='0') + { + $qry.=" and verband=".$db->db_add_param(trim($verband), FHC_STRING); + } + if (!empty($gruppe) || $gruppe=='0') + { + $qry.=" and gruppe=".$db->db_add_param($gruppe, FHC_STRING); + } + + $qry.=" UNION "; + $qry.=' SELECT studiengang_kz,tbl_stundenplan.stundenplan_id,0 as "reservierung_id", tbl_stundenplan.ort_kurzbz,tbl_stundenplan.titel,tbl_stundenplan.semester,tbl_stundenplan.studiengang_kz,tbl_stundenplan.verband ,tbl_stundenplan.gruppe , to_char(tbl_stundenplan.datum, \'YYYYMMDD\') as "datum_jjjjmmtt", to_char(tbl_stundenplan.datum, \'IW\') as "datum_woche" , tbl_stunde.beginn, tbl_stunde.ende , to_char(tbl_stunde.beginn, \'HH24:MI\') as "beginn_anzeige" , to_char(tbl_stunde.ende, \'HH24:MI\') as "ende_anzeige" , EXTRACT(EPOCH FROM tbl_stundenplan.datum) as "datum_timestamp" ,tbl_stunde.stunde '; + $qry.=' FROM lehre.tbl_stundenplan , lehre.tbl_stunde '; + $qry.=" WHERE tbl_stunde.stunde=tbl_stundenplan.stunde "; + $qry.=" and tbl_stundenplan.stunde between ".$db->db_add_param(trim($stunde_von), FHC_STRING)." and ".$db->db_add_param(trim($stunde_bis), FHC_STRING); + + if (!empty($datum)) + { + $qry.=" and tbl_stundenplan.datum =".$db->db_add_param(trim($datum), FHC_STRING); + } + if (!empty($kalenderwoche)) + { + $qry.=" and to_char(tbl_stundenplan.datum, 'IW') =".$db->db_add_param(trim($kalenderwoche), FHC_STRING); + } + if (!empty($ort_kurzbz)) + { + $qry.=" and ort_kurzbz =E".$db->db_add_param(trim($ort_kurzbz), FHC_STRING); + } + if (!empty($uid) || $uid=='0') + { + $qry.=" and mitarbeiter_uid=".$db->db_add_param(trim($uid), FHC_STRING); + } + if (!empty($studiengang_kz) || $studiengang_kz=='0') + { + $qry.=" and studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_STRING); + } + if (!empty($semester) || $semester=='0') + { + $qry.=" and semester=".$db->db_add_param($semester, FHC_STRING); + } + if (!empty($verband) || $verband=='0') + { + $qry.=" and verband=E".$db->db_add_param(trim($verband), FHC_STRING); + } + if (!empty($gruppe) || $gruppe=='0') + { + $qry.=" and gruppe=".$db->db_add_param($gruppe, FHC_STRING); + } + $qry.=" ; "; + + $row_raum_belegt=array(); + + if(!$result=$db->db_query($qry)) + die('Probleme beim lesen der Stundenplan '.$db->db_last_error()); + + if (!$num_rows_stunde=$db->db_num_rows($result)) + return $row_raum_belegt; + + while($row = $db->db_fetch_object($result)) + { + $row_raum_belegt[]=$row; + } + return $row_raum_belegt; +} + +#------------------------------------------------------------------------------------------- +/* +* +* @stundenplan_detail Stundenplan mit Lehrveranstaltungsinformationen +* +* @param $db Aktuelle Datenbankverbindung +* @param $stundenplan_id StundenplanID +* +* @return array Tablle des Stundenplan im Detail +* +*/ +function stundenplan_detail($db,$stundenplan_id) +{ + $row_stundenplan_detail=false; + if (!$db || empty($stundenplan_id)) + return $row_stundenplan_detail; + //--- Raumbelegung jetzt + $qry=' SELECT * FROM campus.vw_stundenplan '; + $qry.=" WHERE vw_stundenplan.stundenplan_id=".$db->db_add_param($stundenplan_id, FHC_INTEGER); + $qry.=" ORDER BY datum,stunde "; + if(!$result=$db->db_query($qry)) + die('Probleme beim lesen der Stundenplan '.$db->db_last_error()); + if (!$num_rows_stunde=$db->db_num_rows()) + return $row_stundenplan_detail; + while($row = $db->db_fetch_object()) + $row_stundenplan_detail=$row; + return $row_stundenplan_detail; +} +#------------------------------------------------------------------------------------------- +/* +* +* @reservierung_detail Stundenplan mit Reservierungsinformationen +* +* @param $db Aktuelle Datenbankverbindung +* @param $reservierung_id ReservierungID +* +* @return array Tablle des Reservierung im Detail +* +*/ +function reservierung_detail($db,$reservierung_id) +{ + $row_reservierung_detail=false; + if (!$db || empty($reservierung_id)) + return $row_reservierung_detail; + //--- Reservierung jetzt + $qry=' SELECT * FROM campus.vw_reservierung '; + $qry.=' WHERE vw_reservierung.reservierung_id='.$db->db_add_param($reservierung_id, FHC_INTEGER); + if(!$result=$db->db_query($qry)) + die('Probleme beim lesen der Stundenplan '.$db->db_last_error()); + if (!$num_rows_stunde=$db->db_num_rows($result)) + return $row_reservierung_detail; + while($row = $db->db_fetch_object($result)) + $row_reservierung_detail=$row; + return $row_reservierung_detail; +} +#------------------------------------------------------------------------------------------- +/* +* +* @html_output_liste_raumtypen Tabellenliste der Raumtypen +* +* @param $array Raumtyp,Beschreibung +* +* @return HTML Tablle der Raumtypen +* +*/ +function html_output_liste_raumtypen($row_ort) +{ + global $standort_id; + $html_liste_orte=''; + if (!is_array($row_ort) || count($row_ort)<1) + return $html_liste_orte; + + for ($i=0;$i'; + $html_liste_orte.=''; + $html_liste_orte.=trim($row_ort[$i]["beschreibung"]); + $html_liste_orte.=''; + $html_liste_orte.=''; + $html_liste_orte.='
'; + $i=0; + + foreach($news_obj->result as $row) + { + if($row->content_id!='') + { + $lang=DEFAULT_LANGUAGE; + $content = new content(); + $content->getContent($row->content_id, $lang, null, null, false); + + $xml_inhalt = new DOMDocument(); + if($content->content!='') + { + $xml_inhalt->loadXML($content->content); + } + + if($xml_inhalt->getElementsByTagName('verfasser')->item(0)) + $verfasser = $xml_inhalt->getElementsByTagName('verfasser')->item(0)->nodeValue; + if($xml_inhalt->getElementsByTagName('betreff')->item(0)) + $betreff = $xml_inhalt->getElementsByTagName('betreff')->item(0)->nodeValue; + if($xml_inhalt->getElementsByTagName('text')->item(0)) + $text = $xml_inhalt->getElementsByTagName('text')->item(0)->nodeValue; + + $i++; // wird zum Zeilenfarben - CSS umschalten benoetigt + $text=mb_ereg_replace("href","hrefs",trim($text)); + $text=mb_ereg_replace(array("\r\n", "\n", "\r","
")," ",$text); + //DMS Pfad korrigieren + $text=mb_ereg_replace("dms.php","../../cms/dms.php",$text); + + $news.=''; + + $news.='
'. (stristr($text,'
')?$text:(mb_strlen($text)>90?mb_substr(trim(''.$betreff.'
'.$text),0,90).'...' :trim($text))).' + + + + Detail + + + +

'.trim($betreff).'

'.trim($text).' +


+ + schliessen + +
+

 

+
+  '; + } + } + $news.=''; + $news=mb_ereg_replace('href=','',$news); + return $news; +} +?> diff --git a/cis/private/info/ersthelfer.php b/cis/private/info/ersthelfer.php new file mode 100644 index 000000000..7f2d86f59 --- /dev/null +++ b/cis/private/info/ersthelfer.php @@ -0,0 +1,272 @@ +, + * Andreas Oesterreicher and + * Rudolf Hangl < rudolf.hangl@technikum-wien.at > + * Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at > + * + */ + +require_once('../../../config/cis.config.inc.php'); +require_once('../../../include/functions.inc.php'); +require_once('../../../include/basis_db.class.php'); +require_once('../../../include/phrasen.class.php'); + +$sprache = getSprache(); +$p=new phrasen($sprache); + +if (!$db = new basis_db()) + die($p->t("global/fehlerBeimOeffnenDerDatenbankverbindung")); + +if (!$user=get_uid()) + die($p->t("global/nichtAngemeldet").'!
Zurück'); + +if(check_lektor($user)) + $is_lector=true; + else + $is_lector=false; + +?> + + + + + + + + + +<?php echo $p->t("notfallbestimmungen/ersthelferUndBrandschutzbeauftragte");?> + + + +

t("notfallbestimmungen/ersthelferUndBrandschutzbeauftragte");?>

+ + + + + + + + + + + +
+ + + + + +
+

t("notfallbestimmungen/ersthelfer");?>

+ t("notfallbestimmungen/ausbildungErfolgteDurchORK");?>
+
t("notfallbestimmungen/folgendePersonenStehenZurVerfuegung");?>:
+ + +
+ + + + ='now()' OR datum_bis IS NULL) + AND campus.vw_mitarbeiter.aktiv=TRUE + AND standort_id IS NOT NULL + ORDER BY standort_id, nachname, vorname"; + $result = $db->db_query($sql_query); + $count = 0; + + echo ' + + + + + + + + + '; + + while($row = $db->db_fetch_object($result)) + {$count++; + echo ' + + + + + + + '; + } + + echo ' +
'.$p->t("global/vorname").''.$p->t("global/nachname").''.$p->t("lvplan/raum").''.$p->t("global/telefonnummer").'
'.$count.''.$row->vorname.''.$row->nachname.''.$row->ort_kurzbz.'01/333 40 77 - '.$row->telefonklappe.'
'; + ?> +
+ +
+ + + + ='now()' OR datum_bis IS NULL) + AND campus.vw_mitarbeiter.aktiv=TRUE + AND vw_mitarbeiter.standort_id IS NOT NULL + AND kontakt LIKE '%61925%' + ORDER BY funktion_kurzbz"; + $result = $db->db_query($sql_query); + echo '

'.$p->t("notfallbestimmungen/brandschutzbeauftragte").'

'; + echo ' + + + + + + + '; + while($row = $db->db_fetch_object($result)) + { + echo ' + + + + + '; + } + echo ' +
NachnameVornameNummer
'.$row->nachname.''.$row->vorname.''.$row->kontakt.'
'; + ?> + + + + ='now()' OR datum_bis IS NULL) + AND campus.vw_mitarbeiter.aktiv=TRUE + AND vw_mitarbeiter.standort_id IS NOT NULL + AND kontakt LIKE '%61925%' + ORDER BY funktion_kurzbz"; + $result = $db->db_query($sql_query); + echo '

'.$p->t("notfallbestimmungen/rektorat").'

'; + echo ' + + + + + + + + '; + while($row = $db->db_fetch_object($result)) + { + echo ' + + + + + + '; + } + echo ' +
NachnameVornameBeschreibungNummer
'.$row->nachname.''.$row->vorname.'('.$row->beschreibung.')'.$row->kontakt.'
'; + ?> + + + + ='now()' OR datum_bis IS NULL) + AND campus.vw_mitarbeiter.aktiv=TRUE + AND standort_id IS NOT NULL + ORDER BY standort_id, nachname, vorname"; + $result = $db->db_query($sql_query); + echo '

'.$p->t("notfallbestimmungen/brandschutzwarte").'

'; + echo ' + + + + + + '; + while($row = $db->db_fetch_object($result)) + { + echo ' + + + + '; + } + echo ' +
NachnameVorname
'.$row->nachname.''.$row->vorname.'
'; + ?> + +
+
 
 
+ + + \ No newline at end of file diff --git a/cis/private/info/handbuecher/Projektarbeitsabgabe_FHTW_Anleitung_A.pdf b/cis/private/info/handbuecher/Projektarbeitsabgabe_FHTW_Anleitung_A.pdf new file mode 100644 index 000000000..089ebe376 Binary files /dev/null and b/cis/private/info/handbuecher/Projektarbeitsabgabe_FHTW_Anleitung_A.pdf differ diff --git a/cis/private/info/handbuecher/Projektarbeitsabgabe_FHTW_Anleitung_L.pdf b/cis/private/info/handbuecher/Projektarbeitsabgabe_FHTW_Anleitung_L.pdf new file mode 100644 index 000000000..7718e2755 Binary files /dev/null and b/cis/private/info/handbuecher/Projektarbeitsabgabe_FHTW_Anleitung_L.pdf differ diff --git a/cis/private/info/handbuecher/Publikationsdatenbank_FHTW_Handbuch.pdf b/cis/private/info/handbuecher/Publikationsdatenbank_FHTW_Handbuch.pdf new file mode 100644 index 000000000..d8d0a40ec Binary files /dev/null and b/cis/private/info/handbuecher/Publikationsdatenbank_FHTW_Handbuch.pdf differ diff --git a/cis/private/info/handbuecher/abgabetool_lektoren.pdf b/cis/private/info/handbuecher/abgabetool_lektoren.pdf new file mode 100644 index 000000000..af75d9c01 Binary files /dev/null and b/cis/private/info/handbuecher/abgabetool_lektoren.pdf differ diff --git a/cis/private/info/handbuecher/abgabetool_studenten.pdf b/cis/private/info/handbuecher/abgabetool_studenten.pdf new file mode 100644 index 000000000..1f2823943 Binary files /dev/null and b/cis/private/info/handbuecher/abgabetool_studenten.pdf differ diff --git a/cis/private/info/handbuecher/index.php b/cis/private/info/handbuecher/index.php new file mode 100644 index 000000000..52a421fd0 --- /dev/null +++ b/cis/private/info/handbuecher/index.php @@ -0,0 +1,88 @@ + + + + +Handbuch + + + + + + + +
  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 Handbücher
 
 Abgabe OPUS
+ Projektarbeitsabgabe Anleitung Assistenz +
+ Projektarbeitsabgabe Lektor(inn)en +
+ Publikationsdatenbank Handbuch +
 
 Benotungstool
+ Handbuch Benotungstool +
 
 Moodle
+ Handbuch Moodle +
 
+ \ No newline at end of file diff --git a/cis/private/info/organisationseinheiten.php b/cis/private/info/organisationseinheiten.php new file mode 100644 index 000000000..409c824b7 --- /dev/null +++ b/cis/private/info/organisationseinheiten.php @@ -0,0 +1,606 @@ +, + * Andreas Oesterreicher , + * Rudolf Hangl and + * Gerald Simane-Sequens + */ + +// ------------------------------------------------------------------------------- +// Include Daten +// ------------------------------------------------------------------------------- + require_once('../../../config/cis.config.inc.php'); + require_once('../../../include/organisationseinheit.class.php'); + require_once('../../../include/mitarbeiter.class.php'); + require_once('../../../include/benutzerfunktion.class.php'); + require_once('../../../include/studiengang.class.php'); + require_once('../../../include/fachbereich.class.php'); +// ------------------------------------------------------------------------------- +// Parameterdaten +// ------------------------------------------------------------------------------- + $oe_kurzbz = (isset($_GET['oe_kurzbz'])?$_GET['oe_kurzbz']:null); + $debug = (isset($_GET['debug'])?$_GET['debug']:(isset($_POST['debug'])?$_POST['debug']:false)); + $debug = true; + #$oe_kurzbz='bif'; + +// ------------------------------------------------------------------------------- +// Html Header output +// ------------------------------------------------------------------------------- +echo ' + + + + + + + + + +'; + +echo ' + + + + +'; + +// ------------------------------------------------------------------------------- +// Html Daten output +// ------------------------------------------------------------------------------- + + + // ------------------------------------------------------------------------------- + // Detailanzeige Organisation - Ajax Container + echo ' +
+
+
+
+
+
+ + + + +
+
drucken
+ + +
+
schliessen  
+ + +
+
+
 
+
+
+
+
+ '; + echo ' + + + + + +
  + + + + '; + echo ''; + echo '
 Organisation der '.CAMPUS_NAME.' 
'; + // ----------- Anzeige Organisation + if (!$outarray=getOrganisationen($oe_kurzbz,$debug)) + echo 'Fehler beim Daten lesen'; + else if (!displayOrganisationen($oe_kurzbz,$outarray)) + echo 'Fehler bei der Ausgabe der Daten'; + echo '
+
'; +echo ''; + +// --------------------------------------------------------------------------------------------------------------- +// Zeigt das Array in einer Verschachtelten Tabelle an +// --------------------------------------------------------------------------------------------------------------- +function displayOrganisationen($oe_kurzbz=null,$outarray=array()) +{ +/* --- ALLE ARRA Varianten --- + $outarray['ersteebene']=array(); + $outarray['child']=array(); + $outarray['studienzentren']=array(); + $outarray['fachhochschule']=array(); + $outarray['uebergreifende']=array(); + $outarray['nochnichtzugeordnet']=array(); +*/ + +// --------------------------------------------------------------------------------------------------------------- +// wird nur eine Organisatzionsdatensatz gefunden die Personen anzeigen + if(!is_null($oe_kurzbz)) + { + $qry = "SELECT distinct titelpre, vorname, nachname, titelpost, funktion_kurzbz, uid FROM public.tbl_benutzerfunktion JOIN campus.vw_mitarbeiter USING(uid) WHERE + aktiv and (funktion_kurzbz='oezuordnung' OR funktion_kurzbz='Leitung') AND + oe_kurzbz IN( + WITH RECURSIVE oes(oe_kurzbz, oe_parent_kurzbz) as + ( + SELECT oe_kurzbz, oe_parent_kurzbz FROM public.tbl_organisationseinheit + WHERE oe_kurzbz='".addslashes($oe_kurzbz)."' + UNION ALL + SELECT o.oe_kurzbz, o.oe_parent_kurzbz FROM public.tbl_organisationseinheit o, oes + WHERE o.oe_parent_kurzbz=oes.oe_kurzbz + ) + SELECT oe_kurzbz + FROM oes + GROUP BY oe_kurzbz) + ORDER BY funktion_kurzbz, nachname, vorname "; + $db = new basis_db(); + if(!$result=$db->db_query($qry)) + echo '

'.$db->errormsg.'

'; + else + { + if($anz=$db->db_num_rows($result)) + { + $oe_obj = new organisationseinheit($oe_kurzbz); + $oe_obj->oe_parent_kurzbz=$oe_kurzbz; + echo ''; + echo ''; + echo ''; + echo '

 '.$oe_obj->organisationseinheittyp_kurzbz.' - '.$oe_obj->bezeichnung.' 

 Mitarbeiter '; + if ($anz>1) + echo '

 Anzahl: '.$anz.' 

'; + echo ''; + echo '
'; + } + } + return true; + + }// Ende wenn nur eine Organisation gefunden wurde + + echo ''; + echo ''; + if (is_array($outarray['fachhochschule']) && count($outarray['fachhochschule'])>0 ) + { + echo ''; + } + $i=count($outarray['studienzentren']); + + foreach ($outarray['ersteebene'] as $key=>$val) + { + echo ''; + } + echo ''; +//--- STUDIENZENTRUM + echo ''; +// --- UEBERGREIFEND + if (count($outarray['uebergreifende'])>0) + { + echo ''; + } + + echo '
FACHHOCHSCHULE
'; + echo $val->bezeichnung.'
'.$val->organisationseinheittyp_kurzbz; + echo '
\'info\'
'; + reset($outarray['studienzentren']); + + foreach ($outarray['studienzentren'] as $key=>$val) + { + if (!isset($val) || !isset($val['dat']) || !is_object($val['dat']) || !isset($val['dat']->organisationseinheittyp_kurzbz)) + continue; + + echo ''; + } + echo '
+ '; + + // Pfeil nach Unten + echo ''; + + echo '
\'info\'
'; + +// ---- STUDIENGANG + echo ''; + $first_organisationseinheittyp_kurzbz=null; + $last_organisationseinheittyp_kurzbz=null; + echo ''; +// ---- INSTITUTE + if ($last_organisationseinheittyp_kurzbz!=$first_organisationseinheittyp_kurzbz) + { + echo ''; + } + else + { + echo ''; + } + echo '
'; + echo ''.$val['dat']->organisationseinheittyp_kurzbz.''.'
'.$val['dat']->bezeichnung; + echo '
    '; + reset($val['child']); + foreach ($val['child'] as $keys=>$vals) + { + if (is_null($first_organisationseinheittyp_kurzbz)) + $first_organisationseinheittyp_kurzbz=$vals['dat']->organisationseinheittyp_kurzbz; + if (!is_null($last_organisationseinheittyp_kurzbz) && $vals['dat']->organisationseinheittyp_kurzbz!=$last_organisationseinheittyp_kurzbz) + { + $last_organisationseinheittyp_kurzbz=$vals['dat']->organisationseinheittyp_kurzbz; + break; + } + $last_organisationseinheittyp_kurzbz=$vals['dat']->organisationseinheittyp_kurzbz; + + echo '
  • '; + echo $vals['dat']->bezeichnung; + echo '
  • '; + } + echo '
'; + echo '
'.$last_organisationseinheittyp_kurzbz.'
    '; + reset($val['child']); + foreach ($val['child'] as $keys=>$vals) + { + if ($vals['dat']->organisationseinheittyp_kurzbz!=$last_organisationseinheittyp_kurzbz) + continue; + $last_organisationseinheittyp_kurzbz=$vals['dat']->organisationseinheittyp_kurzbz; + echo '
  • '; + echo $vals['dat']->bezeichnung; + echo '
  • '; + } + echo '
'; + echo '
 
+ +
Übergreifende Institute
'; + +# var_dump($outarray['studienzentren']); + return true; +} + +// --------------------------------------------------------------------------------------------------------------- +// Zeigt das Array in einer Verschachtelten Tabelle an +// --------------------------------------------------------------------------------------------------------------- +function getOrganisationen($oe_kurzbz=null,$debug=false) +{ +// ------------------------------------------------------------------------------- +// Organisationen + + //Alle obersten Organisationseinheiten holen + $oe = new organisationseinheit(); + if(!is_null($oe_kurzbz) && !empty($oe_kurzbz)) + { + //wenn eine Organisationseinheit uebergeben wurde, dann laden + $oe->load($oe_kurzbz); + $oe_obj = new organisationseinheit(); + $oe_obj->oe_parent_kurzbz=$oe->oe_kurzbz; + + #var_dump( $oe); + + $oe->result[] = $oe; + $breadcrumbs=''; + do + { + $oe_obj->load($oe_obj->oe_parent_kurzbz); + $breadcrumbs = ''.$oe_obj->organisationseinheittyp_kurzbz.' - '.$oe_obj->bezeichnung.' > '.$breadcrumbs; + } while($oe_obj->oe_parent_kurzbz!=''); + $breadcrumbs='Organisation > '.$breadcrumbs; + echo '

'.$breadcrumbs.'

'; + } + else + { + //Wenn keine Organisationseinheite uebergeben wurde, die obersten laden + $oe->getHeads(); + } + + // Initialisierung + $outarray['ersteebene']=array(); + $outarray['child']=array(); + $outarray['studienzentren']=array(); + $outarray['fachhochschule']=array(); + $outarray['uebergreifende']=array(); + $outarray['nochnichtzugeordnet']=array(); + + // Spezielle Zuordnungen zu den Anzeige-Array + $check_fachhochschule=array('abteilung','institut'); + $check_uebergreifende=array('studiengang'); + $check_noch_nicht_zugeordnet=array(); + + // Erste Ebene lesen (wenn parameter oe_kurzbz uebergeben wird ist das die erste Ebene) + $ersteebene = array(); + foreach ($oe->result as $result) + $outarray['ersteebene'][$result->oe_kurzbz]=$result; + if (!is_array($outarray['ersteebene']) || count($outarray['ersteebene'])<1) + return false; + + // Alle Eintraege zur Hauptebene suchen + reset($outarray['ersteebene']); + foreach ($outarray['ersteebene'] as $key=>$val) + $outarray['child'] = getChilds($key); + + // Aufteilen auf die verschidenen Teile + if (is_array($outarray['child'])) + reset($outarray['child']); + else + return $outarray; + foreach ($outarray['child'] as $key=>$val) + { + + if (!isset($val) + || !is_array($val) + || count($val)<1) + continue; + + if ($key=='Dummy') + continue; + if (!isset($val['child']) || is_null($val['child']) || !is_array($val['child']) || count($val['child'])<1) + { + $check=strtolower($val['dat']->organisationseinheittyp_kurzbz); + if (in_array($check,$check_fachhochschule)) + $outarray['fachhochschule'][$key]=$val['dat']; + else if (in_array($check,$check_uebergreifende)) + $outarray['uebergreifende'][$key]=$val['dat']; + else + $outarray['nochnichtzugeordnet'][$key]=$val['dat']; + continue; + } + $outarray['studienzentren'][$key]=$val; + } + #var_dump($outarray['studienzentren']); + return $outarray; +} + +// --------------------------------------------------------------------------------------------------------------- +//Liefert die Kindelemente einer Organisationseinheit in +//einem verschachteltem Array zurueck +// --------------------------------------------------------------------------------------------------------------- +function getChilds($foo) +{ + $obj = new organisationseinheit(); + $arr = array(); + $arr1 = $obj->getDirectChilds($foo); + foreach ($arr1 as $value) + { + if ($daten=getDaten($value)) + $arr[$value]['dat']=$daten; + } + if ((!is_array($arr) && !is_object($arr)) || count($arr)<1) + return null; + + reset($arr); + foreach ($arr as $key =>$val) + $arr[$key]['child'] = getChilds($key); + + return $arr; +} +// --------------------------------------------------------------------------------------------------------------- +//Liefert zur oe_kurzbz die Kpl. Daten zureuck +// -- Nur Aktive Datensaetze +// --------------------------------------------------------------------------------------------------------------- +function getDaten($oe_kurzbz='') +{ + if (is_null($oe_kurzbz) || empty($oe_kurzbz)) + return array(); + $obj = new organisationseinheit($oe_kurzbz); + $obj->load($oe_kurzbz); + if(!isset($obj->aktiv) || empty($obj->aktiv)) + return null; + + if ($stg = new studiengang()) + { + $qry = "SELECT * FROM public.tbl_studiengang WHERE aktiv and upper(trim(kurzbzlang))=upper(trim('".$oe_kurzbz."'))"; + if ($result = $stg->db_query($qry)) + { + while($row = $stg->db_fetch_object($result)) + { + foreach ($row as $key=>$val) + $obj->$key=str_replace('/',' / ',$val); + } + } + } + + return $obj; +} +?> diff --git a/cis/private/info/service_uebersicht.php b/cis/private/info/service_uebersicht.php new file mode 100644 index 000000000..6bcd51ba5 --- /dev/null +++ b/cis/private/info/service_uebersicht.php @@ -0,0 +1,130 @@ + + * Manfred Kindl < manfred.kindl@technikum-wien.at > + */ +require_once('../../../config/cis.config.inc.php'); +require_once('../../../include/service.class.php'); +require_once('../../../include/benutzerberechtigung.class.php'); +require_once('../../../include/datum.class.php'); +require_once('../../../include/phrasen.class.php'); + +$user = get_uid(); +$sprache = getSprache(); +$p=new phrasen($sprache); + +//$rechte = new benutzerberechtigung(); +//$rechte->getBerechtigungen($user); + +//if(!$rechte->isBerechtigt('basis/service')) +// die('Sie haben keine Berechtigung fuer diese Seite'); + +$datum_obj = new datum(); + +echo ' + + + '.$p->t("services/service").' + + + + + + + + +

'.$p->t("services/uebersichtUeberServicesOrganisationseinheiten").'

'; + +$oe_kurzbz = (isset($_GET['oe_kurzbz'])?$_GET['oe_kurzbz']:''); + +$service = new service(); +echo '
'; +echo $p->t("global/organisationseinheit").': '; +echo ' + +
'; + +if($oe_kurzbz!='') +{ + // Wenn der OE keine Services zugeteilt sind, dann die Services der untergeordneten OE laden + if($service->getServicesOrganisationseinheit($oe_kurzbz)) + if (empty($service->result)) + if(!$service->getSubServicesOrganisationseinheit($oe_kurzbz)) + die($service->errormsg); +} +else +{ + if(!$service->getAll()) + die($service->errormsg); +} +echo ' + + + + + + + + + '; + +foreach($service->result as $row) +{ + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; +} +echo ' +
'.$p->t("global/organisationseinheit").''.$p->t("global/bezeichnung").''.$p->t("global/beschreibung").''.$p->t("services/details").'
',$row->oe_kurzbz,'',$row->bezeichnung,'',$row->beschreibung,'',$row->content_id,'
+ +'; +?> \ No newline at end of file diff --git a/cis/private/info/telefonverzeichnis.php b/cis/private/info/telefonverzeichnis.php new file mode 100644 index 000000000..49a5ccb3b --- /dev/null +++ b/cis/private/info/telefonverzeichnis.php @@ -0,0 +1,401 @@ +, + * Andreas Oesterreicher and + * Rudolf Hangl < rudolf.hangl@technikum-wien.at > + * Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at > + * Manfred Kindl + * + */ + +require_once('../../../config/cis.config.inc.php'); +require_once('../../../include/functions.inc.php'); +require_once('../../../include/basis_db.class.php'); +require_once('../../../include/phrasen.class.php'); +require_once('../../../include/person.class.php'); + +$sprache = getSprache(); +$p=new phrasen($sprache); + +if (isset($_GET['zeilenhoehe']) && is_numeric($_GET['zeilenhoehe'])) + $zeilenhoehe = $_GET['zeilenhoehe']; +else + $zeilenhoehe = 28; + +if (isset($_GET['gruppiert']) && ($_GET['gruppiert']=='on')) + $gruppiert = true; +else + $gruppiert = false; + +if (isset($_GET['gst_extra']) && ($_GET['gst_extra']=='on')) + $gst_extra = true; +else + $gst_extra = false; + +if (!$db = new basis_db()) + die($p->t("global/fehlerBeimOeffnenDerDatenbankverbindung")); + +if (!$user=get_uid()) + die($p->t("global/nichtAngemeldet").'! Zurück'); + +if(check_lektor($user)) + $is_lector=true; + else + $is_lector=false; + +?> + + + + + + + +<?php echo $p->t("telefonverzeichnis/titelTelefonverzeichnis");?> + + + + + +

t("telefonverzeichnis/titelTelefonverzeichnis");?>

+ +
+ Zeilenhöhe: px   + Geschäftsstelle extra:>    + Gruppiert nach Standort:>    + + +
+
+ + + + + + '; + $i++; + } + $laststandort = $row->standort_id; + $qry_standort = "SELECT tbl_kontakt.kontakt as nummer, tbl_firma.name as name FROM public.tbl_standort JOIN public.tbl_firma USING(firma_id) JOIN public.tbl_kontakt USING(standort_id) + WHERE standort_id='".addslashes($row->standort_id)."' AND kontakttyp='telefon'"; + if($result_standort = $db->db_query($qry_standort)) + { + if($row_standort = $db->db_fetch_object($result_standort)) + { + echo ' + + + + + + +
+ + +db_query($sql_query); + $laststandort='0'; + $i=1; + + if ($gruppiert == false) + { + echo ' + + + + + + + '; + $i++; + } + else + { + while($row = $db->db_fetch_object($result)) + { + if($laststandort!=$row->standort_id) + { + if($laststandort!='0') + { + echo ' +

'.$p->t("telefonverzeichnis/titelTelefonverzeichnis").' '.CAMPUS_NAME.'

+ + + + + + + + + '; + + while($row = $db->db_fetch_object($result)) + { + echo ' + + + + + + + '; + } + echo ' +
'.$p->t("global/nachname").''.$p->t("global/vorname").''.$p->t("telefonverzeichnis/durchwahl").''.$p->t("lvplan/raum").'
'.$row->nachname.''.$row->vorname.''.$row->telefonklappe.''.$row->ort_kurzbz.'
+
+

'.$p->t("telefonverzeichnis/titelTelefonverzeichnis").' '.$row_standort->name.': '.$row_standort->nummer.'

+ + + + + + + + + '; + } + } + } + echo ' + + + + + + + '; + } + $i++; + } + echo ' +
'.$p->t("global/nachname").''.$p->t("global/vorname").''.$p->t("telefonverzeichnis/durchwahl").''.$p->t("lvplan/raum").'
'.$row->nachname.''.$row->vorname.''.$row->telefonklappe.''.$row->ort_kurzbz.'
+
'; + + if ($gst_extra==true || $gruppiert == true) + { + $sql_query = " SELECT vw_mitarbeiter.person_id, vw_mitarbeiter.vorname, vw_mitarbeiter.nachname, vw_mitarbeiter.telefonklappe, vw_mitarbeiter.ort_kurzbz, vw_mitarbeiter.standort_id, tbl_person.foto_sperre + FROM campus.vw_mitarbeiter JOIN public.tbl_person USING (person_id) WHERE telefonklappe!='' AND standort_id is not null AND vw_mitarbeiter.aktiv=true AND vw_mitarbeiter.standort_id='4' ORDER BY standort_id, nachname, vorname"; + $result = $db->db_query($sql_query); + $laststandort='0'; + + echo ' + +

'.$p->t("telefonverzeichnis/titelTelefonverzeichnis").' Geschäftsstelle: +43 1 588 39

+ + + + + + + + + + + + '; + + while($row = $db->db_fetch_object($result)) + { + echo ' + + + + + + + '; + } + echo ' +
'.$p->t("global/nachname").''.$p->t("global/vorname").''.$p->t("telefonverzeichnis/durchwahl").''.$p->t("lvplan/raum").'
'.$row->nachname.''.$row->vorname.''.$row->telefonklappe.''.$row->ort_kurzbz.'
+ + + '; + } +?> + + +
+ db_query($qry)) + { + while($row = $db->db_fetch_object($result)) + { + if($laststandort!=$row->standort_id) + { + if($laststandort!='') + { + echo '

'; + } + $qry_standort = "SELECT tbl_firma.name, tbl_kontakt.kontakt as telefon FROM public.tbl_standort JOIN public.tbl_firma USING(firma_id) JOIN public.tbl_kontakt USING(standort_id) WHERE standort_id='$row->standort_id' AND kontakttyp='telefon'"; + if($result_standort = $db->db_query($qry_standort)) + { + if($row_standort = $db->db_fetch_object($result_standort)) + { + echo '

'.$p->t("lvplan/raeume").' '.$row_standort->name.': '.$row_standort->telefon.'

'; + } + } + echo ' + + + + + + + + + '; + } + $laststandort = $row->standort_id; + $i++; + echo ' + + + + + + '; + } + + if($laststandort!='') + { + echo '
'.$p->t("lvplan/raeume").''.$p->t("telefonverzeichnis/durchwahl").''.$p->t("lvplan/raum").'
'.$row->bezeichnung.''.$row->telefonklappe.''.$row->planbezeichnung.' ('.$row->ort_kurzbz.')
'; + } + } + ?> + + + + + + + + \ No newline at end of file diff --git a/cis/private/lehre/abgabe_student.php b/cis/private/lehre/abgabe_student.php new file mode 100644 index 000000000..9ab0b8585 --- /dev/null +++ b/cis/private/lehre/abgabe_student.php @@ -0,0 +1,204 @@ + + * Andreas Oesterreicher < andreas.oesterreicher@technikum-wien.at > + * Rudolf Hangl < rudolf.hangl@technikum-wien.at > + * Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at > + */ + +require_once('../../../config/cis.config.inc.php'); +require_once('../../../include/functions.inc.php'); +require_once('../../../include/datum.class.php'); +require_once('../../../include/person.class.php'); +require_once('../../../include/benutzer.class.php'); +require_once('../../../include/student.class.php'); +require_once('../../../include/studiengang.class.php'); +require_once('../../../include/benutzerberechtigung.class.php'); +require_once('../../../include/phrasen.class.php'); + +$sprache = getSprache(); +$p = new phrasen($sprache); + +if (!$db = new basis_db()) + die($p->t('global/fehlerBeimOeffnenDerDatenbankverbindung')); + +$getuid=get_uid(); +$uid=$getuid; + +if(isset($_GET['uid'])) +{ + //Studentenansicht + $uid = $_GET['uid']; + //Rechte Pruefen + $allowed=false; + + $student = new student(); + if(!$student->load($uid)) + die($p->t('global/fehlerBeimErmittelnDerUID')); + + $stg_obj = new studiengang(); + if(!$stg_obj->load($student->studiengang_kz)) + die($p->t('global/fehlerBeimLesenAusDatenbank')); + + //Berechtigung ueber das Berechtigungssystem + $rechte = new benutzerberechtigung(); + $rechte->getBerechtigungen($getuid); + if($rechte->isBerechtigt('lehre/abgabetool',$stg_obj->oe_kurzbz,'s')) + $allowed=true; + + //oder Lektor mit Betreuung dieses Studenten + $qry = "SELECT 1 + FROM + lehre.tbl_projektarbeit + JOIN lehre.tbl_projektbetreuer USING(projektarbeit_id) + JOIN campus.vw_benutzer on(vw_benutzer.person_id=tbl_projektbetreuer.person_id) + WHERE + tbl_projektarbeit.student_uid=".$db->db_add_param($uid)." AND + vw_benutzer.uid=".$db->db_add_param($getuid).";"; + + if($result = $db->db_query($qry)) + { + if($db->db_num_rows($result)>0) + { + $allowed=true; + } + } + + if(!$allowed) + { + die($p->t('abgabetool/keineBerechtigungStudentenansicht')); + } +} +$htmlstr = ''; +$htmlstr1 = ''; +$vorname=''; +$nachname=''; + +$sql_query = "SELECT (SELECT nachname FROM public.tbl_person WHERE person_id=tbl_projektbetreuer.person_id) AS bnachname, + (SELECT vorname FROM public.tbl_person WHERE person_id=tbl_projektbetreuer.person_id) AS bvorname, + (SELECT titelpre FROM public.tbl_person WHERE person_id=tbl_projektbetreuer.person_id) AS btitelpre, + (SELECT titelpost FROM public.tbl_person WHERE person_id=tbl_projektbetreuer.person_id) AS btitelpost, + tbl_projektbetreuer.person_id AS betreuer_person_id, + tbl_projekttyp.bezeichnung AS prjbez, * + FROM lehre.tbl_projektarbeit + LEFT JOIN lehre.tbl_projektbetreuer USING(projektarbeit_id) + LEFT JOIN public.tbl_benutzer ON(uid=student_uid) + LEFT JOIN public.tbl_person ON(tbl_benutzer.person_id=tbl_person.person_id) + LEFT JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) + LEFT JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id) + LEFT JOIN public.tbl_studiengang USING(studiengang_kz) + LEFT JOIN lehre.tbl_projekttyp USING (projekttyp_kurzbz) + WHERE (projekttyp_kurzbz='Bachelor' OR projekttyp_kurzbz='Diplom') + AND (tbl_projektbetreuer.betreuerart_kurzbz='Betreuer' OR tbl_projektbetreuer.betreuerart_kurzbz='Begutachter' OR tbl_projektbetreuer.betreuerart_kurzbz='Erstbetreuer' OR tbl_projektbetreuer.betreuerart_kurzbz='Erstbegutachter') + AND tbl_projektarbeit.student_uid=".$db->db_add_param($uid)." + AND public.tbl_benutzer.aktiv + AND lehre.tbl_projektarbeit.note IS NULL + ORDER BY studiensemester_kurzbz desc, tbl_lehrveranstaltung.kurzbz"; + +//AND tbl_projektarbeit.student_uid='$getuid' 'ie07m102'; +if(!$erg=$db->db_query($sql_query)) +{ + $errormsg=$p->t('global/fehlerBeimLesenAusDatenbank'); +} +else +{ + $htmlstr .= "
\n"; + $htmlstr .= "\n"; + $htmlstr .= " + + + + + + + + "; + $htmlstr .= "\n"; + $i = 0; + while($row=$db->db_fetch_object($erg)) + { + $htmlstr1=''; + $vorname=$row->vorname; + $nachname=$row->nachname; + $uid=$row->uid; + ($row->btitelpre!=''?$htmlstr1 = $row->btitelpre.' ':$htmlstr1 .= ''); + $htmlstr1 .= $row->bvorname.' '.$row->bnachname; + ($row->btitelpost!=''?$htmlstr1 .= ' '.$row->btitelpost:$htmlstr1 .= ''); + $htmlstr .= " \n"; //class='liste".($i%2)."' + $htmlstr .= " \n"; + $htmlstr .= " \n"; + $htmlstr .= " \n"; + $htmlstr .= " "; + $htmlstr .= " \n"; + $htmlstr .= " \n"; + $htmlstr .= " \n"; + $htmlstr .= " \n"; + $htmlstr .= " \n"; + $i++; + } + $htmlstr .= "
".$p->t('abgabetool/details')."".$p->t('lvplan/sem')."".$p->t('lvplan/stg')."".$p->t('global/mail')."".$p->t('abgabetool/betreuer')."".$p->t('abgabetool/typ')."".$p->t('abgabetool/titel')."".$p->t('abgabetool/betreuerart')."
".$p->t('abgabetool/upload')."".$row->studiensemester_kurzbz."".strtoupper($row->typ.$row->kurzbz).""; + + $qry_betr="SELECT mitarbeiter_uid FROM public.tbl_person + JOIN public.tbl_benutzer USING(person_id) + JOIN public.tbl_mitarbeiter ON(uid=mitarbeiter_uid) + WHERE person_id=".$db->db_add_param($row->betreuer_person_id, FHC_INTEGER).";"; + if($result_betr=$db->db_query($qry_betr)) + { + if($row_betr=$db->db_fetch_object($result_betr)) + { + $htmlstr.="email"; + } + else + { + $htmlstr.="UID unknown!"; + } + } + $htmlstr .= " ".$htmlstr1." ".$db->convert_html_chars($row->prjbez)."".$db->convert_html_chars($row->titel)."".$db->convert_html_chars($row->betreuerart_kurzbz)."
\n"; +} +echo ' + + + + Abgabesystem_Studentensicht + + + + + + + +'; + + echo '

'.$p->t('abgabetool/ueberschrift'); + if(trim($uid)!='') + echo " ($uid $vorname $nachname)
"; + echo '

'; + echo $htmlstr; + echo ' +'; +?> diff --git a/cis/private/profile/dokumente.php b/cis/private/profile/dokumente.php new file mode 100755 index 000000000..1afa29172 --- /dev/null +++ b/cis/private/profile/dokumente.php @@ -0,0 +1,150 @@ +, + * Andreas Oesterreicher and + * Rudolf Hangl . + */ +require_once('../../../config/cis.config.inc.php'); +require_once('../../../include/basis_db.class.php'); +require_once('../../../include/functions.inc.php'); +require_once('../../../include/studiensemester.class.php'); +require_once('../../../include/konto.class.php'); +require_once('../../../include/phrasen.class.php'); + +$sprache = getSprache(); +$p = new phrasen($sprache); + +if (!$db = new basis_db()) + die($p->t('global/fehlerBeimOeffnenDerDatenbankverbindung')); + +if(isset($_GET['stsem'])) + $stsem = $_GET['stsem']; +else + $stsem = ''; + +$uid=get_uid(); + +$stg = ''; + +if(!($erg=$db->db_query("SELECT * FROM campus.vw_benutzer WHERE uid='".addslashes($uid)."'"))) + die($db->db_last_error()); +$num_rows=$db->db_num_rows($erg); +if ($num_rows==1) +{ + $vorname=$db->db_result($erg,0,"vorname"); + $vornamen=$db->db_result($erg,0,"vornamen"); + $nachname=$db->db_result($erg,0,"nachname"); + $gebdatum=$db->db_result($erg,0,"gebdatum"); + $gebort=$db->db_result($erg,0,"gebort"); + $titelpre=$db->db_result($erg,0,"titelpre"); + $titelpost=$db->db_result($erg,0,"titelpost"); + $email=$db->db_result($erg,0,"uid").'@'.DOMAIN; + $email_alias=$db->db_result($erg,0,"alias"); + $hp=$db->db_result($erg,0,"homepage"); +} +if(!($erg_stud=$db->db_query("SELECT studiengang_kz, semester, verband, gruppe, matrikelnr, typ::varchar(1) || kurzbz AS stgkz, tbl_studiengang.bezeichnung AS stgbz FROM public.tbl_student JOIN public.tbl_studiengang USING(studiengang_kz) WHERE student_uid='".addslashes($uid)."'"))) + die($db->db_last_error()); +$stud_num_rows=$db->db_num_rows($erg_stud); + +if ($stud_num_rows==1) +{ + $stg=$db->db_result($erg_stud,0,"studiengang_kz"); + $stgbez=$db->db_result($erg_stud,0,"stgbz"); + $stgkz=$db->db_result($erg_stud,0,"stgkz"); + $semester=$db->db_result($erg_stud,0,"semester"); + $verband=$db->db_result($erg_stud,0,"verband"); + $gruppe=$db->db_result($erg_stud,0,"gruppe"); + $matrikelnr=$db->db_result($erg_stud,0,"matrikelnr"); +} +if(!($erg_lekt=$db->db_query("SELECT * FROM public.tbl_mitarbeiter WHERE mitarbeiter_uid='".addslashes($uid)."'"))) + die($db->db_last_error()); +$lekt_num_rows=$db->db_num_rows($erg_lekt); +if ($lekt_num_rows==1) +{ + $row=$db->db_fetch_object($erg_lekt,0); + $kurzbz=$row->kurzbz; + $tel=$row->telefonklappe; +} + +// Mail-Groups +if(!($erg_mg=$db->db_query("SELECT gruppe_kurzbz, beschreibung FROM campus.vw_persongruppe WHERE mailgrp AND uid='".addslashes($uid)."' ORDER BY gruppe_kurzbz"))) + die($db->db_last_error()); +$nr_mg=$db->db_num_rows($erg_mg); + +echo ' + + + +'.$p->t('tools/dokumente').' + + + + + + +

'.$p->t('tools/dokumente').'

'; + + +//Aktuelles Studiensemester oder gewaehltes Studiensemester +$stsem_obj = new studiensemester(); + if($stsem=='') + $stsem = $stsem_obj->getaktorNext(); + +$stsem_obj->getAll(); + +echo "

"; +echo $p->t('global/studiensemester')."
"; + +$konto = new konto(); +if ($konto->checkStudienbeitrag($uid, $stsem)) +{ + echo "".$p->t('tools/inskriptionsbestaetigung').""; + echo ' - '.$p->t('tools/studienbeitragFuerSSBezahltAmDatum',array($stsem, $konto->buchungsdatum)); +} +else + echo $p->t('tools/inskriptionsbestaetigung')." - ".$p->t('tools/studienbeitragFuerSSNochNichtBezahlt',array($stsem)); + +echo "
"; + +echo "".$p->t('tools/studienerfolgsbestaetigung')." Deutsch
"; +echo "".$p->t('tools/studienerfolgsbestaetigung')." Englisch"; +echo "

"; + +echo ' + +'; +?> \ No newline at end of file diff --git a/config/system.config-default.inc.php b/config/system.config-default.inc.php new file mode 100644 index 000000000..fd244fa0b --- /dev/null +++ b/config/system.config-default.inc.php @@ -0,0 +1,65 @@ + diff --git a/config/vilesci.config-default.inc.php b/config/vilesci.config-default.inc.php new file mode 100644 index 000000000..7b45078d2 --- /dev/null +++ b/config/vilesci.config-default.inc.php @@ -0,0 +1,164 @@ + diff --git a/rdf/accountinfoblatt.xml.php b/rdf/accountinfoblatt.xml.php new file mode 100644 index 000000000..4ce8c74a0 --- /dev/null +++ b/rdf/accountinfoblatt.xml.php @@ -0,0 +1,126 @@ +, + * Andreas Oesterreicher and + * Rudolf Hangl and + * Gerald Raab . + */ +/** + * Erstellt das XML fuer das AccountInfoBlatt + */ +// content type setzen +header("Content-type: application/xhtml+xml"); +require_once('../config/vilesci.config.inc.php'); +require_once('../include/functions.inc.php'); +require_once('../include/basis_db.class.php'); +require_once('../include/benutzerberechtigung.class.php'); + +if(isset($_GET['uid'])) + $uid = $_GET['uid']; +else + die('UID muss uebergeben werden'); + +if(isset($_SERVER['REMOTE_USER'])) +{ + // Wenn das Script direkt aufgerufen wird muss es ein Admin sein + $user=get_uid(); + $berechtigung = new benutzerberechtigung(); + $berechtigung->getBerechtigungen($user); + if(!$berechtigung->isBerechtigt('admin')) + die('Sie haben keine Berechtigung fuer diese Seite'); +} + +$uid_arr = explode(";",$uid); + +echo ""; +echo ''; + +$db = new basis_db(); + +foreach ($uid_arr as $uid) +{ + if($uid=='') + continue; + + if(check_lektor($uid)) + { + //Mitarbeiter + $qry = "SELECT vorname, nachname, uid, gebdatum, aktivierungscode,alias FROM campus.vw_mitarbeiter WHERE uid=".$db->db_add_param($uid); + if($db->db_query($qry)) + { + if($row = $db->db_fetch_object()) + { + $vorname = convertProblemChars($row->vorname); + $vorname1 = $row->vorname; + $nachname = convertProblemChars($row->nachname); + $nachname1 = $row->nachname; + $uid = $row->uid; + $gebdatum = $row->gebdatum; + } + else + die("User nicht gefunden"); + } + else + die("User nicht gefunden"); + + $fileserver = 'fhe.'.DOMAIN; + $studiengang=''; + } + else + { + //Student + $qry ="SELECT vorname, nachname, matrikelnr, uid, tbl_studiengang.bezeichnung, aktivierungscode, alias + FROM campus.vw_student JOIN public.tbl_studiengang USING(studiengang_kz) WHERE uid=".$db->db_add_param($uid); + if($db->db_query($qry)) + { + if($row = $db->db_fetch_object()) + { + $vorname = convertProblemChars($row->vorname); + $vorname1 = $row->vorname; + $nachname = convertProblemChars($row->nachname); + $nachname1 = $row->nachname; + $matrikelnr = $row->matrikelnr; + $studiengang = convertProblemChars($row->bezeichnung); + $uid = $row->uid; + } + else + die("User $uid nicht gefunden"); + } + else + die("User $uid nicht gefunden"); + + $fileserver = 'stud'.substr($matrikelnr,0,2).'.'.DOMAIN; + } + + echo "\n "; + echo "\n "; + echo "\n "; + echo "\n aktivierungscode."]]>"; + if($row->alias!='') + echo "\n alias.'@'.DOMAIN."]]>"; + else + echo "\n "; + if($studiengang!='') + echo "\n "; + echo "\n "; + echo "\n "; + echo "\n ".DOC_ROOT."skin/styles/".EXT_FKT_PATH."/"; + echo "\n "; +} +echo ''; +?> diff --git a/vilesci/bis/studentenmeldung.php b/vilesci/bis/studentenmeldung.php new file mode 100644 index 000000000..d1dd17671 --- /dev/null +++ b/vilesci/bis/studentenmeldung.php @@ -0,0 +1,1213 @@ + + * Andreas Oesterreicher < andreas.oesterreicher@technikum-wien.at > + * Rudolf Hangl < rudolf.hangl@technikum-wien.at > + * Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at > + */ +/** + * Studentenmeldung + * + * Erstellt ein XML File fuer die Studentenmeldung an den FHR + * Das XML-File wird im Filesystem abgelegt. + * Zusaetzlich wird eine Uebersichtsliste ueber die im File enthaltenen Daten erstellt und + * nicht plausible Daten + * + * Parameter: stg_kz ... Kennzahl des Studienganges + */ +require_once('../../config/vilesci.config.inc.php'); +require_once('../../include/studiensemester.class.php'); +require_once('../../include/datum.class.php'); +require_once('../../include/studiengang.class.php'); +require_once('../../include/functions.inc.php'); +require_once('../../include/benutzerberechtigung.class.php'); + +if (!$db = new basis_db()) + die('Es konnte keine Verbindung zum Server aufgebaut werden.'); + +$uid = get_uid(); +$rechte = new benutzerberechtigung(); +$rechte->getBerechtigungen($uid); + +if(!$rechte->isBerechtigt('student/stammdaten',null,'suid') && !$rechte->isBerechtigt('assistenz',null,'suid') && !$rechte->isBerechtigt('admin',null,'suid')) + die('Sie haben keine Berechtigung für diese Seite'); + +$error_log=''; +$error_log1=''; +$error_log_all=""; +$stgart=''; +$fehler=''; +$maxsemester=0; +$v=''; +$studiensemester=new studiensemester(); +$ssem=$studiensemester->getaktorNext(); +$psem=$studiensemester->getPrevious(); +$anzahl_fehler=0; +$erhalter=''; +$stgart=''; +$orgform_code=''; +$status=''; +$datei=''; +$aktstatus=''; +$aktstatus_datum=''; +$mob=''; +$gast=''; +$avon=''; +$abis=''; +$zweck=''; +$bewerberM=array(); +$bewerberW=array(); +$bsem=array(); +$stsem=array(); +$usem=array(); +$asem=array(); +$absem=array(); +$iosem=array(); +$bewerbercount=array(); +$orgform_kurzbz=''; +$tabelle=''; +$stlist=''; +$bwlist=''; +$storgfor=''; +$verwendete_orgformen=array(); +$student_data=array(); + +$datum_obj = new datum(); + +//Beginn- und Endedatum des aktuellen Semesters +$qry="SELECT * FROM public.tbl_studiensemester WHERE studiensemester_kurzbz=".$db->db_add_param($ssem).";"; +if($result = $db->db_query($qry)) +{ + if($row = $db->db_fetch_object($result)) + { + $beginn=$row->start; + $ende=$row->ende; + } +} +//Ermittlung aktuelles und letztes BIS-Meldedatum +if(mb_strstr($ssem,"WS")) +{ + $bisdatum=date("Y-m-d", mktime(0, 0, 0, 11, 15, date("Y"))); + $bisprevious=date("Y-m-d", mktime(0, 0, 0, 04, 15, date("Y"))); +} +elseif(mb_strstr($ssem,"SS")) +{ + $bisdatum=date("Y-m-d", mktime(0, 0, 0, 04, 15, date("Y"))); + $bisprevious=date("Y-m-d", mktime(0, 0, 0, 11, 15, date("Y")-1)); +} +else +{ + die('Ungültiges Studiensemester!'); +} +//ausgewaehlter Studiengang +if(isset($_GET['stg_kz'])) +{ + $stg_kz=$_GET['stg_kz']; +} +else +{ + die('

Es wurde kein Studiengang ausgewählt!

'); +} + +/* + standortcode 22=Wien +derzeit fuer alle Studierende der gleiche Standort +ToDo: Standort sollte pro Student konfigurierbar sein. +*/ +$standortcode='22'; +if(in_array($stg_kz,array('265','268','761','760','266','267','764','269','400'))) + $standortcode='14'; // Pinkafeld +elseif(in_array($stg_kz,array('639','640','263','743','364','635','402','401','725','264','271'))) + $standortcode='3'; // Eisenstadt + +$datumobj=new datum(); + +$qry='SELECT * FROM bis.tbl_orgform'; + +if($result = $db->db_query($qry)) +{ + while($row = $db->db_fetch_object($result)) + { + $orgform_code_array[$row->orgform_kurzbz]=$row->code; + } +} + +//Studiengangsdaten auslesen +$qry=" + SELECT + * + FROM + public.tbl_studiengang + WHERE studiengang_kz=".$db->db_add_param($stg_kz); +$stg_obj = new studiengang(); +if($stg_obj->load($stg_kz)) +{ + $maxsemester=$stg_obj->max_semester; + if($maxsemester==0) + { + echo "Die maximale Semesteranzahl des Studienganges ist nicht angegeben!"; + exit; + } + + $erhalter = sprintf('%03s',$stg_obj->erhalter_kz); + + switch($stg_obj->typ) + { + case 'b': $stgart=1; break; + case 'm': $stgart=2; break; + case 'd': $stgart=3; break; + case 'e': $stgart=4; break; + default: die('

Dieser Studiengangstyp kann nicht gemeldet werden. Typ muss (b, m, d oder e) sein

'); break; + } + + $orgform_code = $orgform_code_array[$stg_obj->orgform_kurzbz]; + $orgform_kurzbz=$stg_obj->orgform_kurzbz; +} +else + die('Fehler:'.$stg_obj->errormsg); + + +//Ausgabe aktiver Studenten, die nicht gemeldet werden +$qry_akt=" + SELECT + DISTINCT ON(student_uid, nachname, vorname) *, public.tbl_person.person_id AS pers_id + FROM + public.tbl_student + JOIN public.tbl_benutzer ON(student_uid=uid) + JOIN public.tbl_person USING (person_id) + JOIN public.tbl_prestudent USING (prestudent_id) + JOIN public.tbl_prestudentstatus ON(tbl_prestudent.prestudent_id=tbl_prestudentstatus.prestudent_id) + WHERE + bismelden=FALSE + AND tbl_student.studiengang_kz=".$db->db_add_param($stg_kz)." + AND (tbl_prestudentstatus.studiensemester_kurzbz=".$db->db_add_param($ssem)." AND status_kurzbz IN ('Student','Diplomand','Unterbrecher','Praktikant','Outgoing')) + AND tbl_prestudent.prestudent_id NOT IN + ( + SELECT prestudent_id + FROM public.tbl_prestudentstatus + WHERE + tbl_prestudentstatus.studiensemester_kurzbz=".$db->db_add_param($ssem)." + AND (status_kurzbz='Abbrecher' OR status_kurzbz='Absolvent') + ) + ORDER BY student_uid, nachname, vorname + "; +if($result_akt = $db->db_query($qry_akt)) +{ + while($row_akt = $db->db_fetch_object($result_akt)) + { + $v.="Person (UID, Vorname, Nachname) '".$row_akt->student_uid."', '".$row_akt->nachname."', '".$row_akt->vorname."' hat Status $row_akt->status_kurzbz, wird aber nicht BIS gemeldet!!!
\n"; + $anzahl_fehler++; + } +} + +//Incoming ohne I/O Datensatz anzeigen +$qry_in=" + SELECT + DISTINCT ON(student_uid, nachname, vorname) *, public.tbl_person.person_id AS pers_id + FROM + public.tbl_student + JOIN public.tbl_benutzer ON(student_uid=uid) + JOIN public.tbl_person USING (person_id) + JOIN public.tbl_prestudent USING (prestudent_id) + JOIN public.tbl_prestudentstatus ON(tbl_prestudent.prestudent_id=tbl_prestudentstatus.prestudent_id) + WHERE + bismelden=TRUE + AND tbl_student.studiengang_kz=".$db->db_add_param($stg_kz)." + AND (status_kurzbz='Incoming' AND student_uid NOT IN (SELECT student_uid FROM bis.tbl_bisio)) + ORDER BY student_uid, nachname, vorname + "; +if($result_in = $db->db_query($qry_in)) +{ + while($row_in = $db->db_fetch_object($result_in)) + { + $v.="Bei Student (UID, Vorname, Nachname) '".$row_in->student_uid."', '".$row_in->nachname."', '".$row_in->vorname."' ($row_in->status_kurzbz): \n"; + $v.="     Es fehlt der I/O-Datensatz\n\n"; + $anzahl_fehler++; + } +} + +//Hauptselect +$qry=" + SELECT + DISTINCT ON(student_uid, nachname, vorname) *, public.tbl_person.person_id AS pers_id, to_char(gebdatum, 'ddmmyy') AS vdat + FROM + public.tbl_student + JOIN public.tbl_benutzer ON(student_uid=uid) + JOIN public.tbl_person USING (person_id) + JOIN public.tbl_prestudent USING (prestudent_id) + JOIN public.tbl_prestudentstatus ON(tbl_prestudent.prestudent_id=tbl_prestudentstatus.prestudent_id) + WHERE + bismelden=TRUE + AND tbl_student.studiengang_kz=".$db->db_add_param($stg_kz)." + AND (((tbl_prestudentstatus.studiensemester_kurzbz=".$db->db_add_param($ssem).") AND (tbl_prestudentstatus.datum<=".$db->db_add_param($bisdatum).") + AND (status_kurzbz='Student' OR status_kurzbz='Outgoing' + OR status_kurzbz='Praktikant' OR status_kurzbz='Diplomand' OR status_kurzbz='Absolvent' + OR status_kurzbz='Abbrecher' OR status_kurzbz='Unterbrecher')) + OR ((tbl_prestudentstatus.studiensemester_kurzbz=".$db->db_add_param($psem).") AND (status_kurzbz='Absolvent' + OR status_kurzbz='Abbrecher') AND tbl_prestudentstatus.datum>".$db->db_add_param($bisprevious).") + OR (status_kurzbz='Incoming' AND student_uid IN (SELECT student_uid FROM bis.tbl_bisio WHERE (tbl_bisio.bis>=".$db->db_add_param($bisprevious).") + OR (tbl_bisio.von<=".$db->db_add_param($bisdatum)." AND (tbl_bisio.bis>=".$db->db_add_param($bisdatum)." OR tbl_bisio.bis IS NULL)) + ))) + ORDER BY student_uid, nachname, vorname + "; + +if($result = $db->db_query($qry)) +{ + + $datei.=" + + ".$erhalter." + ".date("dmY", $datumobj->mktime_fromdate($bisdatum))." + + + ".$stg_kz.""; + /* + if($orgform_code==3) //Studiengang in Mischform organisiert + { + while($row = $db->db_fetch_object($result)) + { + if($row->orgform_kurzbz=='' && $row->status_kurzbz=='Incoming') + { + $row->orgform_kurzbz=$orgform_kurzbz; + } + elseif($row->orgform_kurzbz=='') + { + echo 'Fehler: Keine Organisationsform fuer '.$row->uid.' '.$row->vorname.' '.$row->nachname.' eingetragen
'; + continue; + } + if(!isset($student_data[$orgform_code_array[$row->orgform_kurzbz]])) + $student_data[$orgform_code_array[$row->orgform_kurzbz]]=''; + //Plausichecks + $student_data[$orgform_code_array[$row->orgform_kurzbz]].= GenerateXMLStudentBlock($row); + } + foreach($student_data as $key=>$value) + { + $datei.=" + + ".$key." + 1".$value; + $datei.= GenerateXMLBewerberBlock($key); + $datei.=" + "; + } + } + else + { + //orgform!='3' + //Stg mit einer Orgform + + $datei.=" + + ".$orgform_code." + 1 + ";*/ + while($row = $db->db_fetch_object($result)) + { + $datei.= GenerateXMLStudentBlock($row); + } + + //Bewerberblock bei Ausserordentlichen nicht anzeigen + if($stg_kz!=('9'.$erhalter)) + { + if($orgform_code==3) + { + $orgcodes = array_unique($orgform_code_array); + //Mischform + foreach($orgcodes as $code) + $datei.= GenerateXMLBewerberBlock($code); + } + else + $datei.= GenerateXMLBewerberBlock(); + } + //$datei.=" "; + //} +} + +$datei.=" +
+
+
"; +echo ' + + + BIS - Meldung Student - ('.$stg_kz.') + + + + '; +echo "

BIS - Studentendaten werden überprüft! Studiengang: ".$db->convert_html_chars($stg_kz)."

\n"; +echo "

Nicht plausible BIS-Daten (für Meldung ".$db->convert_html_chars($ssem)."):


"; +echo nl2br($v."\n\n"); + +//Tabelle mit Ergebnissen ausgeben +$tabelle="

BIS-Meldungsübersicht:


+ + + + + + + + + + + + + + + + + + + + + + + + + + +"; + +$semester_arr = array(1,2,3,4,5,6,7,8,50,60); + + +$orgformen = implode('/',$verwendete_orgformen); + +$aktiv=" + + "; +$unterbrecher=" + + "; +$abbrecher=" + + "; +$absolventen=" + + "; +$outgoing=" + + "; +foreach ($semester_arr as $semester) +{ + $aktiv.=''; + $unterbrecher.=''; + $abbrecher.=''; + $absolventen.=''; + $outgoing.=''; +} +$aktiv.=''; +$unterbrecher.=''; +$abbrecher.=''; +$absolventen.=''; +$outgoing.=''; + + +$tabelle.=$aktiv.$unterbrecher.$abbrecher.$absolventen.$outgoing. +" + + + + + + + + + + + + + +"; + +$tabelle.= " + + + +
Semester123456785060
aktive Studenten ($orgformen)
Unterbrecher ($orgformen)
Abbrecher ($orgformen)
Absolventen ($orgformen)
Outgoing ($orgformen) '; + $unterbrecher.=' '; + $abbrecher.=' '; + $absolventen.=' '; + $outgoing.=' '; + + $i=0; + foreach($verwendete_orgformen as $orgform) + { + if($i!=0) + { + $aktiv.=' / '; + $unterbrecher.=' / '; + $abbrecher.=' / '; + $absolventen.=' / '; + $outgoing.=' / '; + } + + $aktiv .= (isset($stsem[$orgform][$semester])?$stsem[$orgform][$semester]:''); + $unterbrecher .= (isset($usem[$orgform][$semester])?$usem[$orgform][$semester]:''); + $abbrecher .= (isset($asem[$orgform][$semester])?$asem[$orgform][$semester]:''); + $absolventen .= (isset($absem[$orgform][$semester])?$absem[$orgform][$semester]:''); + $outgoing .= (isset($iosem[$orgform][$semester])?$iosem[$orgform][$semester]:''); + + $i++; + } + $aktiv.='
Incoming".(isset($iosem[0])?$iosem[0]:'')."
Bewerber(ges.)($orgformen)".(isset($bewerbercount[0])?$bewerbercount[0]:0).""; +for($i=0;$i +
+
"; +echo $tabelle; + +$ddd='bisdaten/bismeldung_'.$ssem.'_Stg'.$stg_kz.'.xml'; + +$dateiausgabe=fopen($ddd,'w'); +fwrite($dateiausgabe,$datei); +fclose($dateiausgabe); + +$eee='bisdaten/tabelle_'.$ssem.'_Stg'.$stg_kz.'.html'; + +$dateiausgabe=fopen($eee,'w'); +fwrite($dateiausgabe,$tabelle); +fclose($dateiausgabe); + +if(file_exists($ddd)) +{ + echo 'XML-Datei für BIS-Meldung Stg '.$stg_kz.'
'; +} +if(file_exists($eee)) +{ + echo 'BIS-Meldeübersicht der BIS-Meldung Stg '.$stg_kz.'

'; +} + +echo ' + + + + + + + + + + ',$stlist,' +
UIDMatrikelnrNachnameVornameStatusSemesterOrgform
'; + +echo '
Bewerberübersicht'; +echo ' + + + + + ',$bwlist,' +
NachnameVorname
'; + +echo ''; + +/************************************************************************** + * FUNKTIONEN + **************************************************************************/ + +/** + * Generiert den Studenten Block + */ +function GenerateXMLStudentBlock($row) +{ + global $bisdatum, $db; + global $ssem, $psem; + global $v; + global $stgart, $maxsemester, $orgform_kurzbz, $bisprevious,$anzahl_fehler; + global $iosem, $stsem, $usem, $asem, $absem, $stlist; + global $verwendete_orgformen, $datum_obj,$orgform_code_array,$standortcode; + $error_log=''; + $error_log1=''; + $datei = ''; + $datumobj = new datum(); + + //Pruefen ob Ausserordnetlicher Studierender (4.Stelle in Personenkennzeichen = 9) + if(mb_substr($row->matrikelnr,3,1)=='9') + $ausserordentlich=true; + else + $ausserordentlich=false; + + $qryadr="SELECT * FROM public.tbl_adresse WHERE heimatadresse IS TRUE AND person_id=".$db->db_add_param($row->pers_id).";"; + $results=$db->db_query($qryadr); + + if($db->db_num_rows($results)!=1) + { + $error_log1="Es sind ".$db->db_num_rows($results)." Heimatadressen eingetragen\n"; + } + if($rowadr=$db->db_fetch_object($results)) + { + $plz=$rowadr->plz; + $gemeinde=$rowadr->gemeinde; + $strasse=$rowadr->strasse; + $nation=$rowadr->nation; + } + else + { + $plz=''; + $gemeinde=''; + $strasse=''; + $nation=''; + } + if($row->gebdatum<'1920-01-01' OR $row->gebdatum==null OR $row->gebdatum=='') + { + $error_log.=(!empty($error_log)?', ':'')."Geburtsdatum ('".$row->gebdatum."')"; + } + if($row->geschlecht!='m' && $row->geschlecht!='w') + { + $error_log.=(!empty($error_log)?', ':'')."Geschlecht ('".$row->geschlecht."')"; + } + if($row->vorname=='' || $row->vorname==null) + { + $error_log.=(!empty($error_log)?', ':'')."Vorname ('".$row->vorname."')"; + } + if($row->nachname=='' || $row->nachname==null) + { + $error_log.=(!empty($error_log)?', ':'')."Nachname ('".$row->nachname."')"; + } + if($row->svnr!='' && $row->svnr!=null && mb_strlen(trim($row->svnr))!=10) + { + $error_log.=(!empty($error_log)?', ':'')."SVNR ('".trim($row->svnr)."') ist nicht 10 Zeichen lang"; + } + if($row->ersatzkennzeichen!='' && $row->ersatzkennzeichen!=null && mb_strlen(trim($row->ersatzkennzeichen))!=10) + { + $error_log.=(!empty($error_log)?', ':'')."Ersatzkennzeichen ('".trim($row->ersatzkennzeichen)."') ist nicht 10 Zeichen lang"; + } + if($row->svnr!='' && $row->svnr!=null && substr($row->svnr,4,6)!=$row->vdat && substr($row->vdat,0,4)!='0101' && substr($row->vdat,0,4)!='0107') + { + $error_log.=(!empty($error_log)?', ':'')."SVNR ('".$row->svnr."') enthält Geburtsdatum (".$datum_obj->formatDatum($row->gebdatum,'d.m.Y').") nicht"; + } + if($row->ersatzkennzeichen!='' && $row->ersatzkennzeichen!=null && substr($row->ersatzkennzeichen,4,6)!=$row->vdat) + { + $error_log.=(!empty($error_log)?', ':'')."Ersatzkennzeichen ('".$row->ersatzkennzeichen."') enthält Geburtsdatum (".$datum_obj->formatDatum($row->gebdatum,'d.m.Y').") nicht"; + } + if(($row->svnr=='' || $row->svnr==null)&&($row->ersatzkennzeichen=='' || $row->ersatzkennzeichen==null)) + { + $error_log.=(!empty($error_log)?', ':'')."SVNR ('".$row->svnr."') bzw. ErsKz ('".$row->ersatzkennzeichen."') fehlt"; + } + if($row->staatsbuergerschaft=='' || $row->staatsbuergerschaft==null) + { + $error_log.=(!empty($error_log)?', ':'')."Staatsbürgerschaft ('".$row->staatsbuergerschaft."')"; + } + if($plz=='' || $plz==null) + { + $error_log.=(!empty($error_log)?', ':'')."Heimat-PLZ ('".$plz."')"; + } + if($gemeinde=='' || $gemeinde==null) + { + $error_log.=(!empty($error_log)?', ':'')."Heimat-Gemeinde ('".$gemeinde."')"; + } + if($strasse=='' || $strasse==null) + { + $error_log.=(!empty($error_log)?', ':'')."Heimat-Strasse ('".$strasse."')"; + } + if($nation=='' || $nation==null) + { + $error_log.=(!empty($error_log)?', ':'')."Heimat-Nation ('".$nation."')"; + } + if(!$ausserordentlich) + { + if($row->zgv_code=='' || $row->zgv_code==null) + { + $error_log.=(!empty($error_log)?', ':'')."ZugangCode ('".$row->zgv_code."')"; + } + if($row->zgvdatum=='' || $row->zgvdatum==null) + { + $error_log.=(!empty($error_log)?', ':'')."ZugangDatum ('".$row->zgvdatum."')"; + } + else + { + if($row->zgvdatum>date("Y-m-d")) + { + $error_log.=(!empty($error_log)?', ':'')."ZugangDatum liegt in der Zukunft ('".$row->zgvdatum."')"; + } + } + if($stgart==2) // Master-Studiengang + { + if($row->zgvmas_code=='' || $row->zgvmas_code==null) + { + $error_log.=(!empty($error_log)?', ':'')."ZugangMaStgCode ('".$row->zgvmas_code."')"; + } + if($row->zgvmadatum=='' || $row->zgvmadatum==null) + { + $error_log.=(!empty($error_log)?', ':'')."ZugangMaStgDatum ('".$row->zgvmadatum."')"; + } + else + { + if($row->zgvmadatum>date("Y-m-d")) + { + $error_log.=(!empty($error_log)?', ':'')."ZugangMaStgDatum liegt in der Zukunft ('".$row->zgvmadatum."')"; + } + if($row->zgvmadatum<$row->zgvdatum) + { + $error_log.=(!empty($error_log)?', ':'')."ZugangMaStgDatum ('".$row->zgvmadatum."') kleiner als Zugangdatum ('".$row->zgvdatum."')"; + } + if($row->zgvmadatum<$row->gebdatum) + { + $error_log.=(!empty($error_log)?', ':'')."ZugangMaStgDatum ('".$row->zgvmadatum."') kleiner als Geburtsdatum ('".$row->gebdatum."')"; + } + } + } + } + + //StudStatusCode und Semester ermitteln + $qrystatus="SELECT * FROM public.tbl_prestudentstatus + WHERE prestudent_id=".$db->db_add_param($row->prestudent_id)." AND studiensemester_kurzbz=".$db->db_add_param($ssem)." AND (tbl_prestudentstatus.datum<=".$db->db_add_param($bisdatum).") + ORDER BY datum desc, insertamum desc, ext_id desc;"; + if($resultstatus = $db->db_query($qrystatus)) + { + if($db->db_num_rows($resultstatus)>0) + { + if($rowstatus = $db->db_fetch_object($resultstatus)) + { + $qry1="SELECT count(*) AS dipl FROM public.tbl_prestudentstatus WHERE prestudent_id=".$db->db_add_param($row->prestudent_id)." AND (tbl_prestudentstatus.datum<=".$db->db_add_param($bisdatum).") AND status_kurzbz='Diplomand'"; + if($result1 = $db->db_query($qry1)) + { + if($row1 = $db->db_fetch_object($result1)) + { + $sem=$rowstatus->ausbildungssemester; + if($sem>$maxsemester) + { + $sem=$maxsemester; + } + if($row1->dipl>1) + { + $sem=50; + } + if($row1->dipl>3) + { + $sem=60; + } + } + } + if($rowstatus->status_kurzbz=="Student" || $rowstatus->status_kurzbz=="Outgoing" + || $rowstatus->status_kurzbz=="Incoming" || $rowstatus->status_kurzbz=='Praktikant' + || $rowstatus->status_kurzbz=="Diplomand") + { + $status=1; + } + else if($rowstatus->status_kurzbz=="Unterbrecher" ) + { + $status=2; + } + else if($rowstatus->status_kurzbz=="Absolvent" ) + { + $status=3; + } + else if($rowstatus->status_kurzbz=="Abbrecher" ) + { + $status=4; + } + else + { + $error_log.= "$row->vorname $row->nachname wird nicht gemeldet da kein gueltiger Status vorhanden ist!"; + return ''; + } + $aktstatus=$rowstatus->status_kurzbz; + $aktstatus_datum=$rowstatus->datum; + $storgform=$rowstatus->orgform_kurzbz; + } + } + else + { + $qrystatus="SELECT * FROM public.tbl_prestudentstatus WHERE prestudent_id=".$db->db_add_param($row->prestudent_id)." AND studiensemester_kurzbz=".$db->db_add_param($psem)." AND (tbl_prestudentstatus.datum<=".$db->db_add_param($bisdatum).") ORDER BY datum desc, insertamum desc, ext_id desc;"; + if($resultstatus = $db->db_query($qrystatus)) + { + if($rowstatus = $db->db_fetch_object($resultstatus)) + { + $qry1="SELECT count(*) AS dipl FROM public.tbl_prestudentstatus WHERE prestudent_id=".$db->db_add_param($row->prestudent_id)." AND status_kurzbz='Diplomand' AND (tbl_prestudentstatus.datum<=".$db->db_add_param($bisdatum).")"; + if($result1 = $db->db_query($qry1)) + { + if($row1 = $db->db_fetch_object($result1)) + { + $sem=$rowstatus->ausbildungssemester; + if($sem>$maxsemester) + { + $sem=$maxsemester; + } + if($row1->dipl>1) + { + $sem=50; + } + if($row1->dipl>3) + { + $sem=60; + } + } + } + + if($ausserordentlich) + { + $status=1; + } + else if($rowstatus->status_kurzbz=="Incoming") + { + $status=1; + } + else if($rowstatus->status_kurzbz=="Absolvent" ) + { + $status=3; + } + else if($rowstatus->status_kurzbz=="Abbrecher" ) + { + $status=4; + } + else + { + $error_log.= "$row->vorname $row->nachname wird nicht gemeldet da kein gueltiger Status vorhanden ist!"; + return ''; + } + $aktstatus=$rowstatus->status_kurzbz; + $aktstatus_datum=$rowstatus->datum; + $storgform=$rowstatus->orgform_kurzbz; + } + } + } + } + //Wenn im Status keine Organisationsform eingetragen ist, wird die des Studienganges uebernommen + if($storgform=='') + $storgform=$orgform_kurzbz; + + //bei Absolventen das Beendigungsdatum (Sponsion oder Abschlussprüfung) überprüfen + if($aktstatus=='Absolvent') + { + $qry_ap="SELECT * FROM lehre.tbl_abschlusspruefung WHERE student_uid=".$db->db_add_param($row->student_uid)." AND abschlussbeurteilung_kurzbz!='nicht' AND abschlussbeurteilung_kurzbz IS NOT NULL"; + if($result_ap = $db->db_query($qry_ap)) + { + $ap=0; + while($row_ap = $db->db_fetch_object($result_ap)) + { + if($row_ap->datum=='' || $row_ap->datum==null) + { + $error_log.=(!empty($error_log)?', ':'')."Datum der Abschlussprüfung ('".$row_ap->datum."')"; + } + if($row_ap->sponsion=='' || $row_ap->sponsion==null) + { + $error_log.=(!empty($error_log)?', ':'')."Datum der Sponsion ('".$row_ap->sponsion."')"; + } + $ap++; + } + if($ap!=1) + { + $error_log.=(!empty($error_log)?', ':'').$ap." bestandene Abschlußprüfungen"; + } + } + else + { + die("\nQry Failed:".$qry_ap); + } + } + if($storgform!='VZ') + { + if($row->berufstaetigkeit_code=='' || $row->berufstaetigkeit_code==null) + { + $error_log.=(!empty($error_log)?', ':'')."Berufstätigkeitscode ('".$row->berufstaetigkeit_code."')"; + } + } + if($aktstatus!='Incoming') + { + if(!$row->reihungstestangetreten) + { + $error_log.=(!empty($error_log)?', ':'')."Zum Reihungstest angetreten"; + } + if($sem==0) + { + $error_log.=(!empty($error_log)?', ':'')."Aktuelles Semester (Rolle) ('".$sem."')"; + } + } + else + { + if($nation=='A' || $nation=='a') + { + $error_log.=(!empty($error_log)?', ':'')."Heimat-Nation bei Incoming('".$nation."')"; + } + } + + $qryad="SELECT * FROM public.tbl_prestudentstatus + WHERE prestudent_id=".$db->db_add_param($row->prestudent_id)." + AND (status_kurzbz='Student' OR status_kurzbz='Unterbrecher') + AND (tbl_prestudentstatus.datum<=".$db->db_add_param($bisdatum).") ORDER BY datum asc;"; + if($resultad = $db->db_query($qryad)) + { + if($rowad = $db->db_fetch_object($resultad)) + { + $beginndatum = $rowad->datum; + } + else + $beginndatum=''; + } + if($row->ausstellungsstaat=='' && ($datumobj->mktime_fromdate($beginndatum) > $datumobj->mktime_fromdate('2011-04-15')) && !$ausserordentlich) + { + $error_log.=(!empty($error_log)?', ':'')."Ausstellungsstaat ist nicht eingetragen"; + } + + if($error_log!='' OR $error_log1!='') + { + $v.="Bei Student (UID, Vorname, Nachname) '".$row->student_uid."', '".$row->nachname."', '".$row->vorname."' ($row->status_kurzbz): \n"; + if($error_log!='') + { + $v.="     Fehler: ".$error_log."\n"; + } + if($error_log1!='') + { + $v.="     ".$error_log1; + } + $anzahl_fehler++; + $v.="\n"; + $error_log=''; + $error_log1=''; + return ''; + } + else + { + $datei.=" + + ".trim($row->matrikelnr).""; + if(!$ausserordentlich) + { + $datei.=" + ".$orgform_code_array[$storgform].""; + } + + $datei.=" + ".date("dmY", $datumobj->mktime_fromdate($row->gebdatum))." + ".strtoupper($row->geschlecht).""; + if(($row->svnr!='')&&($row->ersatzkennzeichen!='')) + { + $datei.=" + ".$row->vorname." + ".$row->nachname.""; + $datei.=" + ".$row->svnr.""; + $datei.=" + ".$row->ersatzkennzeichen.""; + } + else + { + if($row->svnr!='') + { + $datei.=" + ".$row->svnr.""; + } + if($row->ersatzkennzeichen!='') + { + $datei.=" + ".$row->vorname." + ".$row->nachname.""; + $datei.=" + ".$row->ersatzkennzeichen.""; + } + } + $datei.=" + ".$row->staatsbuergerschaft." + ".$plz." + ".$gemeinde." + + ".$nation.""; + if(!$ausserordentlich) + { + $datei.=" + ".$row->zgv_code.""; + $datei.=" + ".date("dmY", $datumobj->mktime_fromdate($row->zgvdatum)).""; + } + + if($stgart==2) // Master-Studiengang + { + $datei.=" + ".$row->zgvmas_code.""; + $datei.=" + ".date("dmY", $datumobj->mktime_fromdate($row->zgvmadatum)).""; + } + + if($aktstatus!='Incoming' && !$ausserordentlich) + { + if($row->ausstellungsstaat!='' && ($datumobj->mktime_fromdate($beginndatum) > $datumobj->mktime_fromdate('2011-04-15'))) + { + $datei.=' + '.$row->ausstellungsstaat.''; + } + } + + if($beginndatum!='' && !$ausserordentlich) + { + $datei.=" + ".date("dmY", $datumobj->mktime_fromdate($beginndatum)).""; + } + + if($aktstatus=='Absolvent' || $aktstatus=='Abbrecher') + { + $datei.=" + ".date("dmY", $datumobj->mktime_fromdate($aktstatus_datum)).""; + } + if($aktstatus!='Incoming' && !$ausserordentlich) + { + $datei.=" + ".$sem.""; + } + + $datei.=" + ".$status.""; + if($storgform!='VZ' && !$ausserordentlich) + { + $datei.=" + ".$row->berufstaetigkeit_code.""; + } + + if(!$ausserordentlich) + { + $datei.=" + ".$standortcode.""; + } + /* + * BMWFFoerderrung derzeit fuer alle Studierende auf Ja gesetzt + * Ausnahme: ausserordnetliche Studierende und Incoming + * + * ToDo: sollte pro Studierenden konfigurierbar sein + */ + if($aktstatus=='Incoming' || $ausserordentlich) + $bmwf='N'; + else + $bmwf='J'; + + $datei.=" + ".$bmwf.""; + + $qryio="SELECT * FROM bis.tbl_bisio WHERE student_uid=".$db->db_add_param($row->student_uid)." + AND (von>".$db->db_add_param($bisprevious)." OR bis IS NULL OR bis>".$db->db_add_param($bisprevious).") + AND von<=".$db->db_add_param($bisdatum).";"; + if($resultio = $db->db_query($qryio)) + { + while($rowio = $db->db_fetch_object($resultio)) + { + $mob=$rowio->mobilitaetsprogramm_code; + $gast=$rowio->nation_code; + $avon=date("dmY", $datumobj->mktime_fromdate($rowio->von)); + $abis=date("dmY", $datumobj->mktime_fromdate($rowio->bis)); + $zweck=$rowio->zweck_code; + + $datei.=" + + ".$mob." + ".$gast." + ".$avon.""; + if($datumobj->mktime_fromdate($rowio->bis)<$datumobj->mktime_fromdate($bisdatum) && $datumobj->mktime_fromdate($rowio->bis)>$datumobj->mktime_fromdate($bisprevious)) + { + $datei.=" + ".$abis.""; + } + $datei.=" + ".$zweck." + "; + if($aktstatus!='Incoming') + { + if(!isset($iosem[$storgform][$sem])) + { + $iosem[$storgform][$sem]=0; + } + $iosem[$storgform][$sem]++; + } + else + { + if(!isset($iosem[0])) + { + $iosem[0]=0; + } + $iosem[0]++; + } + } + } + + $datei.=" + "; + + if($aktstatus=='Student' || $aktstatus=='Diplomand' || $aktstatus=='Praktikant' || $aktstatus=='Outgoing') + { + if(!isset($stsem[$storgform][$sem])) + { + $stsem[$storgform][$sem]=0; + } + $stsem[$storgform][$sem]++; + } + if($aktstatus=='Unterbrecher') + { + if(!isset($usem[$storgform][$sem])) + { + $usem[$storgform][$sem]=0; + } + $usem[$storgform][$sem]++; + } + if($aktstatus=='Abbrecher') + { + if(!isset($asem[$storgform][$sem])) + { + $asem[$storgform][$sem]=0; + } + $asem[$storgform][$sem]++; + } + if($aktstatus=='Absolvent') + { + if(!isset($absem[$storgform][$sem])) + { + $absem[$storgform][$sem]=0; + } + $absem[$storgform][$sem]++; + } + } + if(!in_array($storgform, $verwendete_orgformen)) + $verwendete_orgformen[]=$storgform; + + //Studentenliste + $stlist.="".trim($row->student_uid)."".trim($row->matrikelnr)."".trim($row->nachname)."".trim($row->vorname)."".trim($aktstatus)."".trim($sem)."".trim($storgform).""; + return $datei; +} + +/** + * Erstellt die Bewerbermeldung + * + * Wenn der Parameter orgformcode uebergeben wird, werden nur die Bewerberzahlen dieser Orgform geliefert + * sonst alle + */ +function GenerateXMLBewerberBlock($orgformcode=null) +{ + global $db; + global $ssem, $stgart, $psem; + global $stg_kz, $bisdatum; + global $bwlist, $orgform_kurzbz; + global $bewerbercount,$orgform_code_array; + $datei = ''; + $bewerberM=array(); + $bewerberW=array(); + + if(mb_strstr($ssem,"WS")) + { + //Bewerber + $qrybw="SELECT * FROM public.tbl_prestudent + JOIN public.tbl_prestudentstatus ON(tbl_prestudent.prestudent_id=tbl_prestudentstatus.prestudent_id) + JOIN public.tbl_person USING(person_id) + LEFT JOIN bis.tbl_orgform USING(orgform_kurzbz) + WHERE (studiensemester_kurzbz=".$db->db_add_param($ssem)." OR studiensemester_kurzbz=".$db->db_add_param($psem).") AND tbl_prestudent.studiengang_kz=".$db->db_add_param($stg_kz)." + AND (tbl_prestudentstatus.datum<=".$db->db_add_param($bisdatum).") + AND status_kurzbz='Bewerber' AND reihungstestangetreten + "; + if(!is_null($orgformcode)) + $qrybw.=" AND tbl_orgform.code=".$db->db_add_param($orgformcode); + + if($resultbw = $db->db_query($qrybw)) + { + while($rowbw = $db->db_fetch_object($resultbw)) + { + // Bachelor / Diplom + if(($stgart==1 || $stgart==3) && $rowbw->zgv_code!=NULL) + { + if(strtoupper($rowbw->geschlecht)=='M') + { + if(!isset($bewerberM[$rowbw->zgv_code])) + { + $bewerberM[$rowbw->zgv_code]=0; + } + $bewerberM[$rowbw->zgv_code]++; + } + else + { + if(!isset($bewerberW[$rowbw->zgv_code])) + { + $bewerberW[$rowbw->zgv_code]=0; + } + $bewerberW[$rowbw->zgv_code]++; + } + } + // Master + if($stgart==2 && $rowbw->zgvmas_code!=NULL) + { + if(strtoupper($rowbw->geschlecht)=='M') + { + if(!isset($bewerberM[$rowbw->zgvmas_code])) + { + $bewerberM[$rowbw->zgvmas_code]=0; + } + $bewerberM[$rowbw->zgvmas_code]++; + } + else + { + if(!isset($bewerberW[$rowbw->zgvmas_code])) + { + $bewerberW[$rowbw->zgvmas_code]=0; + } + $bewerberW[$rowbw->zgvmas_code]++; + } + } + $bworgform = ($rowbw->orgform_kurzbz!=''?$rowbw->orgform_kurzbz:$orgform_kurzbz); + + if(isset($bewerbercount[0])) + $bewerbercount[0]++; + else + $bewerbercount[0]=1; + if(isset($bewerbercount[$bworgform])) + $bewerbercount[$bworgform]++; + else + $bewerbercount[$bworgform]=1; + + $bwlist.=''.trim($rowbw->nachname).''.trim($rowbw->vorname).''.$bworgform.''; + } + } + + foreach(array_keys($bewerberM) as $key) + if(!isset($bewerberW[$key])) + $bewerberW[$key]=0; + + foreach(array_keys($bewerberW) as $key) + { + if(!isset($bewerberM[$key])) + $bewerberM[$key]=0; + $datei.=" + + ".$orgform_code_array[$bworgform].""; + if($stgart==2) + $datei.=' + '.$key.''; + else + $datei.=' + '.$key.''; + + $datei.=' + '.$bewerberM[$key].' + '.$bewerberW[$key].' + '; + } + } + return $datei; +} +?> \ No newline at end of file diff --git a/vilesci/lehre/lehreinheiten_vorrueckung.php b/vilesci/lehre/lehreinheiten_vorrueckung.php new file mode 100644 index 000000000..0d1026c8e --- /dev/null +++ b/vilesci/lehre/lehreinheiten_vorrueckung.php @@ -0,0 +1,293 @@ + + * Andreas Oesterreicher < andreas.oesterreicher@technikum-wien.at > + * Rudolf Hangl < rudolf.hangl@technikum-wien.at > + * Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at > + */ +require_once('../../config/vilesci.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'); + +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('Sie haben keine Berechtigung fuer diese Seite'); + +$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 '  '; + +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('Sie haben keine Berechtigung fuer diesen Studiengang'); + + 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='$studiengang_kz' AND + tbl_lehreinheit.studiensemester_kurzbz='$stsem_von'"; + if($semester!='') + $qry .= " AND tbl_lehrveranstaltung.semester='$semester'"; + + 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'; + $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='$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)) + { + $lem_obj->lehreinheit_id=$le_obj->lehreinheit_id; + $lem_obj->new = true; + $lem_obj->insertamum = date('Y-m-d H:i:s'); + $lem_obj->insertvon = 'Vorrueckung'; + $lem_obj->ext_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='$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)) + { + $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'; + $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; +} + +?> + + \ No newline at end of file