From 68920395b78904e98229d09ffd09c233a49948b4 Mon Sep 17 00:00:00 2001 From: Christian Paminger Date: Thu, 18 Oct 2007 07:21:43 +0000 Subject: [PATCH] --- content/ToDo_FASo.html | 8 +- .../statistik/lehrauftragsliste_mail.xls.php | 144 +++++++++--------- 2 files changed, 77 insertions(+), 75 deletions(-) diff --git a/content/ToDo_FASo.html b/content/ToDo_FASo.html index 608995a9c..cae2feeac 100644 --- a/content/ToDo_FASo.html +++ b/content/ToDo_FASo.html @@ -72,7 +72,7 @@ - + @@ -91,7 +91,7 @@
Mitarbeiter-ModulPrioritätPriorität
Mail an Mitarbeiter senden wenn das aktiv-Feld veraendert wird
- + @@ -107,7 +107,7 @@
AllgemeinPrioritätPriorität
Beim Starten kommt manchmal folgende Fehlermeldung in der Errorconsole: Error: can't decode principals (failure code 8007000e)
- + @@ -123,7 +123,7 @@
Studenten-ModulPrioritätPriorität
Projektarbeit - nach dem ändern der LVA wird das Feld Lehreinheit nicht geleert
- + diff --git a/content/statistik/lehrauftragsliste_mail.xls.php b/content/statistik/lehrauftragsliste_mail.xls.php index f081c4701..375e122ac 100644 --- a/content/statistik/lehrauftragsliste_mail.xls.php +++ b/content/statistik/lehrauftragsliste_mail.xls.php @@ -36,34 +36,36 @@ if (!$conn=pg_pconnect(CONN_STRING)) $stsem = new studiensemester($conn); $semester_aktuell = $stsem->getaktorNext(); -$file = '/var/www/htdocs/oesi/portal/trunk/content/statistik/lehrauftragsliste.xls'; +$file = 'lehrauftragsliste.xls'; // Creating a workbook +echo 'Lehrauftragslisten werden erstellt. Bitte warten!
'; +flush(); $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 +$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 + 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<>0 AND tbl_lehreinheitmitarbeiter.semesterstunden is not null AND - tbl_lehreinheitmitarbeiter.stundensatz<>0 AND + tbl_lehreinheitmitarbeiter.stundensatz<>0 AND tbl_lehreinheitmitarbeiter.faktor<>0 UNION - SELECT + 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.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 @@ -79,31 +81,31 @@ if($result_stg = pg_query($conn, $qry_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 @@ -114,34 +116,34 @@ if($result_stg = pg_query($conn, $qry_stg)) $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, + $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, + 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 + 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 + 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 @@ -150,7 +152,7 @@ if($result_stg = pg_query($conn, $qry_stg)) $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 + else { $liste[$row->mitarbeiter_uid]['gesamtstunden'] = $row->semesterstunden; $liste[$row->mitarbeiter_uid]['gesamtkosten'] = $row->semesterstunden*$row->stundensatz*$row->faktor; @@ -162,19 +164,19 @@ if($result_stg = pg_query($conn, $qry_stg)) 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 + 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)) @@ -188,17 +190,17 @@ if($result_stg = pg_query($conn, $qry_stg)) } } } - + //Daten ausgeben foreach ($liste as $row) - { + { $i=0; if(isset($row['geaendert']) && $row['geaendert']==true) { $format = $format_colored; $formatnb = $format_number_colored; } - else + else { $format = $format_normal; $formatnb = $format_number; @@ -217,62 +219,62 @@ if($result_stg = pg_query($conn, $qry_stg)) $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"; + + $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"; + $message = "Dies ist eine automatische eMail!\n\nAnbei die Lehrauftragslisten vom ".date('d.m.Y'); + $message.= "\n\nJederzeit abrufbar unter ".APP_ROOT.'content/statistik/lehrauftragsliste_mail.xls.php'; + $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" . + $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 = "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"; + + $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(MAIL_GST, $subject, $message, $headers )) + echo 'Email mit Lehrauftragslisten wurde an '.MAIL_GST.' versandt!'; + else + echo "Fehler beim Versenden der Lehrauftragsliste"; } ?> \ No newline at end of file
Mitarbeiter-ModulPrioritätPriorität