This commit is contained in:
Christian Paminger
2007-10-18 07:21:43 +00:00
parent 4b25efe7b8
commit 68920395b7
2 changed files with 77 additions and 75 deletions
+4 -4
View File
@@ -72,7 +72,7 @@
<table class='liste'>
<tr>
<th>Mitarbeiter-Modul</th>
<th>Priorität</th>
<th>Priorit&auml;t</th>
</tr>
<tr class='liste0'>
<td>Mail an Mitarbeiter senden wenn das <b>aktiv</b>-Feld veraendert wird</td>
@@ -91,7 +91,7 @@
<table class='liste'>
<tr>
<th>Allgemein</th>
<th>Priorität</th>
<th>Priorit&auml;t</th>
</tr>
<tr class='liste0'>
<td>Beim Starten kommt manchmal folgende Fehlermeldung in der Errorconsole: Error: can't decode principals (failure code 8007000e)</td>
@@ -107,7 +107,7 @@
<table class='liste'>
<tr>
<th>Studenten-Modul</th>
<th>Priorität</th>
<th>Priorit&auml;t</th>
</tr>
<tr class='liste0'>
<td>Projektarbeit - nach dem &auml;ndern der LVA wird das Feld Lehreinheit nicht geleert</td>
@@ -123,7 +123,7 @@
<table class='liste'>
<tr>
<th>Mitarbeiter-Modul</th>
<th>Priorität</th>
<th>Priorit&auml;t</th>
</tr>
<tr class='liste0'>
<td> </td>
@@ -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!<BR>';
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()."<br>";
//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";
}
?>