diff --git a/cis/public/faq_druckinsel.html b/cis/public/faq_druckinsel.html index 59d15b128..61b6fb635 100644 --- a/cis/public/faq_druckinsel.html +++ b/cis/public/faq_druckinsel.html @@ -20,7 +20,8 @@ Anleitung Multifunktionsgerät

Schulungsunterlage zur Verwendung der Drucker an der FH Technikum Wien

- Preisprofile
+ Preisprofile

+ MoneyLoader
diff --git a/content/statistik/lehrauftragsliste_mail.xls.php b/content/statistik/lehrauftragsliste_mail.xls.php new file mode 100644 index 000000000..f081c4701 --- /dev/null +++ b/content/statistik/lehrauftragsliste_mail.xls.php @@ -0,0 +1,278 @@ +, + * Andreas Oesterreicher and + * Rudolf Hangl . + */ +/** + * Erstellt ein Excel File mit einer Uebersicht der + * Kosten fuer die Geschaeftsstelle und markiert die Zeilen die in den letzten + * 31 Tagen veraendert wurden. Dieses File wirde dann per Mail versandt + */ +require_once('../../vilesci/config.inc.php'); +require_once('../../include/functions.inc.php'); +require_once('../../include/Excel/excel.php'); +require_once('../../include/studiengang.class.php'); +require_once('../../include/studiensemester.class.php'); + +if (!$conn=pg_pconnect(CONN_STRING)) + die('Es konnte keine Verbindung zum Server aufgebaut werden!'); + +$stsem = new studiensemester($conn); +$semester_aktuell = $stsem->getaktorNext(); + +$file = '/var/www/htdocs/oesi/portal/trunk/content/statistik/lehrauftragsliste.xls'; + +// Creating a workbook +$workbook = new Spreadsheet_Excel_Writer($file); + +//Studiengaenge ermitteln bei denen sich die lektorzuordnung innerhalb der letzten 31 Tage geaendert haben +$qry_stg = "SELECT distinct studiengang_kz + FROM ( + SELECT + studiengang_kz + FROM + lehre.tbl_lehreinheit JOIN lehre.tbl_lehreinheitmitarbeiter USING(lehreinheit_id) + JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id) + WHERE + (tbl_lehreinheitmitarbeiter.updateamum>now()- interval '31 days' OR + tbl_lehreinheitmitarbeiter.insertamum>now()- interval '31 days') AND + lehre.tbl_lehreinheit.studiensemester_kurzbz='$semester_aktuell' AND + tbl_lehreinheitmitarbeiter.semesterstunden<>0 AND + tbl_lehreinheitmitarbeiter.semesterstunden is not null AND + tbl_lehreinheitmitarbeiter.stundensatz<>0 AND + tbl_lehreinheitmitarbeiter.faktor<>0 + UNION + SELECT + studiengang_kz + FROM + lehre.tbl_projektbetreuer, lehre.tbl_projektarbeit, lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung + WHERE + (tbl_projektbetreuer.updateamum>now()-interval '31 days' OR + tbl_projektbetreuer.insertamum>now()-interval '31 days') AND + lehre.tbl_lehreinheit.studiensemester_kurzbz='$semester_aktuell' AND + tbl_projektbetreuer.projektarbeit_id=tbl_projektarbeit.projektarbeit_id AND + tbl_projektarbeit.lehreinheit_id = tbl_lehreinheit.lehreinheit_id AND + tbl_lehreinheit.lehrveranstaltung_id = tbl_lehrveranstaltung.lehrveranstaltung_id + ) as foo + "; + +if($result_stg = pg_query($conn, $qry_stg)) +{ + while($row_stg = pg_fetch_object($result_stg)) + { + //Studiengang laden + $studiengang = new studiengang($conn, $row_stg->studiengang_kz); + $studiengang_kz=$row_stg->studiengang_kz; + + // Creating a worksheet + $worksheet =& $workbook->addWorksheet($studiengang->kuerzel); + //echo "Writing $studiengang->kuerzel ...".microtime()."
"; + //Formate Definieren + $format_bold =& $workbook->addFormat(); + $format_bold->setBold(); + + $workbook->setCustomColor(10, 255, 186, 179); + $format_colored =& $workbook->addFormat(); + $format_colored->setFgColor(10); + + $format_number_colored =& $workbook->addFormat(); + $format_number_colored->setNumFormat('0,0.00'); + $format_number_colored->setFgColor(10); + + $format_number =& $workbook->addFormat(); + $format_number->setNumFormat('0,0.00'); + + $format_number_bold =& $workbook->addFormat(); + $format_number_bold->setNumFormat('0,0.00'); + $format_number_bold->setBold(); + + $format_normal = & $workbook->addFormat(); + + $i=0; + $worksheet->write(0,0,'Erstellt am '.date('d.m.Y').' '.$semester_aktuell.' '.$studiengang->kuerzel, $format_bold); + //Ueberschriften + $worksheet->write(2,$i,"Studiengang", $format_bold); + $worksheet->write(2,++$i,"Personalnr", $format_bold); + $worksheet->write(2,++$i,"Titel", $format_bold); + $worksheet->write(2,++$i,"Vorname", $format_bold); + $worksheet->write(2,++$i,"Familienname", $format_bold); + $worksheet->write(2,++$i,"Stunden", $format_bold); + $worksheet->write(2,++$i,"Kosten", $format_bold); + + //Daten holen + $qry = "SELECT + tbl_lehreinheit.*, tbl_person.vorname, tbl_person.nachname, tbl_person.titelpre, + tbl_mitarbeiter.personalnummer, tbl_person.person_id, tbl_mitarbeiter.mitarbeiter_uid, + tbl_lehreinheitmitarbeiter.faktor as faktor, tbl_lehreinheitmitarbeiter.stundensatz as stundensatz, + tbl_lehreinheitmitarbeiter.semesterstunden as semesterstunden, + CASE WHEN COALESCE(tbl_lehreinheitmitarbeiter.updateamum, tbl_lehreinheitmitarbeiter.insertamum)>now()-interval '31 days' THEN 't' ELSE 'f' END as geaendert + FROM + lehre.tbl_lehreinheit, lehre.tbl_lehreinheitmitarbeiter, public.tbl_mitarbeiter, + public.tbl_benutzer, public.tbl_person, lehre.tbl_lehrveranstaltung + WHERE + tbl_person.person_id = tbl_benutzer.person_id AND + tbl_benutzer.uid=tbl_mitarbeiter.mitarbeiter_uid AND + tbl_lehreinheitmitarbeiter.mitarbeiter_uid=tbl_mitarbeiter.mitarbeiter_uid AND + tbl_lehreinheit.lehreinheit_id=tbl_lehreinheitmitarbeiter.lehreinheit_id AND + tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_lehreinheit.lehrveranstaltung_id AND + studiengang_kz='$studiengang_kz' AND studiensemester_kurzbz='$semester_aktuell' AND + tbl_lehreinheitmitarbeiter.semesterstunden<>0 AND tbl_lehreinheitmitarbeiter.semesterstunden is not null + AND tbl_lehreinheitmitarbeiter.stundensatz<>0 AND tbl_lehreinheitmitarbeiter.faktor<>0 + ORDER BY nachname, vorname, tbl_mitarbeiter.mitarbeiter_uid"; + + if($result = pg_query($conn, $qry)) + { + $zeile=3; + $gesamtkosten = 0; + $liste=array(); + + while($row=pg_fetch_object($result)) + { + //Gesamtstunden und Kosten ermitteln + if(array_key_exists($row->mitarbeiter_uid, $liste)) + { + $liste[$row->mitarbeiter_uid]['gesamtstunden'] = $liste[$row->mitarbeiter_uid]['gesamtstunden'] + $row->semesterstunden; + $liste[$row->mitarbeiter_uid]['gesamtkosten'] = $liste[$row->mitarbeiter_uid]['gesamtkosten'] + ($row->semesterstunden*$row->stundensatz*$row->faktor); + } + else + { + $liste[$row->mitarbeiter_uid]['gesamtstunden'] = $row->semesterstunden; + $liste[$row->mitarbeiter_uid]['gesamtkosten'] = $row->semesterstunden*$row->stundensatz*$row->faktor; + } + $liste[$row->mitarbeiter_uid]['personalnummer'] = $row->personalnummer; + $liste[$row->mitarbeiter_uid]['titelpre'] = $row->titelpre; + $liste[$row->mitarbeiter_uid]['vorname'] = $row->vorname; + $liste[$row->mitarbeiter_uid]['nachname'] = $row->nachname; + if($row->geaendert=='t') + $liste[$row->mitarbeiter_uid]['geaendert']=true; + } + + //Betreuungen fuer Projektarbeiten + foreach ($liste as $uid=>$arr) + { + $qry = "SELECT tbl_projektbetreuer.faktor, tbl_projektbetreuer.stunden, tbl_projektbetreuer.stundensatz, CASE WHEN COALESCE(tbl_projektbetreuer.updateamum, tbl_projektbetreuer.insertamum)>now()-interval '31 days' THEN 't' ELSE 'f' END as geaendert + FROM lehre.tbl_projektbetreuer, lehre.tbl_lehreinheit, lehre.tbl_lehrfach, lehre.tbl_lehrveranstaltung, + public.tbl_benutzer, lehre.tbl_projektarbeit, campus.vw_student + WHERE tbl_projektbetreuer.person_id=tbl_benutzer.person_id AND tbl_benutzer.uid='$uid' AND + tbl_projektarbeit.projektarbeit_id=tbl_projektbetreuer.projektarbeit_id AND student_uid=vw_student.uid + AND tbl_lehreinheit.lehreinheit_id=tbl_projektarbeit.lehreinheit_id AND tbl_lehreinheit.lehrfach_id=tbl_lehrfach.lehrfach_id AND + tbl_lehreinheit.studiensemester_kurzbz='$semester_aktuell' AND tbl_lehreinheit.lehrveranstaltung_id = tbl_lehrveranstaltung.lehrveranstaltung_id AND + tbl_lehrveranstaltung.studiengang_kz='$studiengang_kz'"; + + if($result = pg_query($conn, $qry)) + { + while($row = pg_fetch_object($result)) + { + $liste[$uid]['gesamtstunden'] = $liste[$uid]['gesamtstunden'] + $row->stunden; + $liste[$uid]['gesamtkosten'] = $liste[$uid]['gesamtkosten'] + ($row->stunden*$row->stundensatz*$row->faktor); + if($row->geaendert=='t') + { + $liste[$uid]['geaendert']=true; + } + } + } + } + + //Daten ausgeben + foreach ($liste as $row) + { + $i=0; + if(isset($row['geaendert']) && $row['geaendert']==true) + { + $format = $format_colored; + $formatnb = $format_number_colored; + } + else + { + $format = $format_normal; + $formatnb = $format_number; + } + //Studiengang + $worksheet->write($zeile,$i,$studiengang->kuerzel, $format); + //Personalnummer + $worksheet->write($zeile,++$i,$row['personalnummer'], $format); + //Titel + $worksheet->write($zeile,++$i,$row['titelpre'], $format); + //Vorname + $worksheet->write($zeile,++$i,$row['vorname'], $format); + //Nachname + $worksheet->write($zeile,++$i,$row['nachname'], $format); + //Stunden + $worksheet->write($zeile,++$i,$row['gesamtstunden'], $format); + //Kosten + $worksheet->writeNumber($zeile,++$i,$row['gesamtkosten'], $formatnb); + + //Kosten zu den Gesamtkosten hinzurechnen + $gesamtkosten = $gesamtkosten + $row['gesamtkosten']; + $zeile++; + } + + //Gesamtkosten anzeigen + $worksheet->writeNumber($zeile,6,$gesamtkosten, $format_number_bold); + } + } + + $workbook->close(); + + //Mail versenden mit Excel File im Anhang + + $to = "oesi@technikum-wien.at"; + $from = "vilesci@technikum-wien.at"; + $subject = "Lehrauftragsliste ".date('d.m.Y'); + $message = "Dies ist eine automatische eMail!\nAnbei die Lehrauftragsliste vom ".date('d.m.Y'); + $fileatttype = "application/xls"; + $fileattname = "lehrauftragsliste_".date('Y_m_d').".xls"; + + $headers = "From: $from"; + + $fileobj = fopen($file, 'rb'); + $data = fread($fileobj, filesize($file)); + fclose($fileobj); + + $semi_rand = md5(time()); + $mime_boundary = "==Multipart_Boundary_x{$semi_rand}x"; + + $headers .= "\nMIME-Version: 1.0\n" . + "Content-Type: multipart/mixed;\n" . + " boundary=\"{$mime_boundary}\""; + + $message = "This is a multi-part message in MIME format.\n\n" . + "--{$mime_boundary}\n" . + "Content-Type: text/plain; charset=\"iso-8859-1\"\n" . + "Content-Transfer-Encoding: 7bit\n\n" . + $message . "\n\n"; + + $data = chunk_split(base64_encode($data)); + + $message .= "--{$mime_boundary}\n" . + "Content-Type: {$fileatttype};\n" . + " name=\"{$fileattname}\"\n" . + "Content-Disposition: attachment;\n" . + " filename=\"{$fileattname}\"\n" . + "Content-Transfer-Encoding: base64\n\n" . + $data . "\n\n" . + "--{$mime_boundary}--\n"; + + if(mail($to, $subject, $message, $headers )) + echo "Email mit Lehrauftragsliste wurde versandt"; + else + echo "Fehler beim Versenden der Lehrauftragsliste"; +} + +?> \ No newline at end of file diff --git a/rdf/student.rdf.php b/rdf/student.rdf.php index 0e0dca0a5..617ea5ead 100644 --- a/rdf/student.rdf.php +++ b/rdf/student.rdf.php @@ -542,7 +542,7 @@ else $stsem->load($ss); - $qry = "SELECT * FROM public.tbl_prestudentrolle WHERE prestudent_id='$student->prestudent_id' AND studiensemester_kurzbz='$ss'"; + $qry = "SELECT * FROM public.tbl_prestudentrolle WHERE prestudent_id='$student->prestudent_id' AND studiensemester_kurzbz='$ss' ORDER BY datum DESC"; $semester=0; if($result = pg_query($conn, $qry)) {