- Mail Klasse

- neue config Konstante MAIL_DEBUG
- Import hat jetzt einen Link zu den personendetails.php
- Bewerberstatistik kann per Parameter mail an tw_sek und tw_stgl versendet werden
- Neues Zeugnis 
- In der Reihungstestadministration kann der Stg des Dummys geändert werden.
This commit is contained in:
Andreas Österreicher
2008-12-09 16:07:52 +00:00
parent e88cf06806
commit 0531b099c4
9 changed files with 614 additions and 99 deletions
+286 -87
View File
@@ -19,11 +19,27 @@
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
/*
* Erstellt eine Statistik ueber die verschiedenen Stati der Bewerber
* mit Aufteilung nach Studiengaengen und Geschlecht.
* Mischformen werden nochmals getrennt aufgelistet (VZ/BB)
* Ausserdem erfolgt noch eine Auflistung in wie vielen verschiedenen Studiengaengen
* sich die Personen Beworben haben.
*
* GET-Parameter:
* stsem ... Studiensemester fuer die Statistik
* mail ... Wenn der Parameter "mail" uebergeben wird, dann wird die Statistik
* per Mail an "tw_sek" und "tw_stgl" versandt
*
*/
require_once('../../vilesci/config.inc.php');
require_once('../../include/studiensemester.class.php');
require_once('../../include/benutzerberechtigung.class.php');
require_once('../../include/functions.inc.php');
require_once('../../include/mail.class.php');
require_once('../../include/aufmerksamdurch.class.php');
require_once('../../include/studiengang.class.php');
if(!$conn = pg_pconnect(CONN_STRING))
die('Fehler beim Connecten zur DB');
@@ -32,55 +48,103 @@ if(isset($_GET['stsem']))
$stsem = $_GET['stsem'];
else
$stsem = '';
$rechte = new benutzerberechtigung($conn);
$rechte->getBerechtigungen(get_uid());
if(isset($_GET['mail']))
{
$mail=true;
$stsem_obj = new studiensemester($conn);
$stsem_obj->getNextStudiensemester();
$stsem = $stsem_obj->studiensemester_kurzbz;
}
else
$mail=false;
echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
//wenn die Statistik per Mail versandt wird (Chronjob),
//keine Ruecksicht auf Berechtigungen nehmen
//das Mail enthaelt alle Studiengaenge
if(!$mail)
{
$rechte = new benutzerberechtigung($conn);
$rechte->getBerechtigungen(get_uid());
}
$content='';
$content.= '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15">
<link href="../../skin/vilesci.css" rel="stylesheet" type="text/css">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15">';
if($mail)
{
//Wenn die Statistik per Mail versandt wird, wird das CSS File direkt mitgeliefert
$content.='<style>';
$content.= file_get_contents('../../skin/vilesci.css');
$content.='</style>';
}
else
{
$content.=' <link href="../../skin/vilesci.css" rel="stylesheet" type="text/css">';
}
$content.='
<link rel="stylesheet" href="../../include/js/tablesort/table.css" type="text/css">
<script src="../../include/js/tablesort/table.js" type="text/javascript"></script>
</head>
<body>
<body>';
if($mail)
{
//im Kopf des Mails Links zu den anderen Statistiken anzeigen
$content.='Dies ist ein automatisches Mail!<br><br>';
$content.='<b>Links zu den Statistiken:</b><br>
- <a href="'.APP_ROOT.'content/statistik/lektorenstatistik.php" target="_blank">Lektorenstatisitk</a><br>
- <a href="'.APP_ROOT.'content/statistik/mitarbeiterstatistik.php" target="_blank">Mitarbeiterstatistik</a><br>
- <a href="'.APP_ROOT.'content/statistik/bewerberstatistik.php" target="_blank">Bewerberstatistik</a><br>
- <a href="'.APP_ROOT.'content/statistik/studentenstatistik.php" target="_blank">Studentenstatistik</a><br>
- <a href="'.APP_ROOT.'content/statistik/absolventenstatistik.php" target="_blank">Absolventenstatistik</a><br><br>
';
}
$content.='
<h2>Bewerberstatistik '.$stsem.'<span style="position:absolute; right:15px;">'.date('d.m.Y').'</span></h2><br>
';
echo '<form action="'.$_SERVER['PHP_SELF'].'" method="GET">Studiensemester: <SELECT name="stsem">';
$studsem = new studiensemester($conn);
$studsem->getAll();
foreach ($studsem->studiensemester as $stsemester)
if(!$mail)
{
if($stsemester->studiensemester_kurzbz==$stsem)
$selected='selected';
else
$selected='';
echo '<option value="'.$stsemester->studiensemester_kurzbz.'" '.$selected.'>'.$stsemester->studiensemester_kurzbz.'</option>';
$content.= '<form action="'.$_SERVER['PHP_SELF'].'" method="GET">Studiensemester: <SELECT name="stsem">';
$studsem = new studiensemester($conn);
$studsem->getAll();
foreach ($studsem->studiensemester as $stsemester)
{
if($stsemester->studiensemester_kurzbz==$stsem)
$selected='selected';
else
$selected='';
$content.= '<option value="'.$stsemester->studiensemester_kurzbz.'" '.$selected.'>'.$stsemester->studiensemester_kurzbz.'</option>';
}
$content.= '</SELECT>
<input type="submit" value="Anzeigen" /></form><br><br>';
}
echo '</SELECT>
<input type="submit" value="Anzeigen" /></form><br><br>';
if($stsem!='')
{
$stgs = $rechte->getStgKz();
if($stgs[0]=='')
$stgwhere='';
else
if(!$mail)
{
$stgwhere=' AND studiengang_kz in(';
foreach ($stgs as $stg)
$stgwhere.="'$stg',";
$stgwhere = substr($stgwhere,0, strlen($stgwhere)-1);
$stgwhere.=' )';
}
$stgs = $rechte->getStgKz();
// SELECT count(*) FROM public.tbl_prestudent WHERE studiengang_kz=stg.studiengang_kz) AS prestd,
if($stgs[0]=='')
$stgwhere='';
else
{
$stgwhere=' AND studiengang_kz in(';
foreach ($stgs as $stg)
$stgwhere.="'$stg',";
$stgwhere = substr($stgwhere,0, strlen($stgwhere)-1);
$stgwhere.=' )';
}
}
else
$stgwhere='';
//Bewerberdaten holen
$qry = "SELECT studiengang_kz, kurzbz, typ, kurzbzlang, bezeichnung, orgform_kurzbz,
(SELECT count(*) FROM public.tbl_prestudent JOIN public.tbl_prestudentrolle USING (prestudent_id)
@@ -147,25 +211,11 @@ if($stsem!='')
public.tbl_studiengang stg
WHERE
studiengang_kz>0 AND studiengang_kz<10000 AND aktiv $stgwhere
ORDER BY kurzbzlang; ";
/*
(SELECT count(*) FROM public.tbl_prestudent JOIN public.tbl_prestudentrolle USING (prestudent_id)
WHERE studiengang_kz=stg.studiengang_kz AND rolle_kurzbz='Interessent' AND studiensemester_kurzbz='$stsem'
AND reihungstest_id IS NOT NULL) AS interessentenrttermin,
(SELECT count(*) FROM public.tbl_prestudent JOIN public.tbl_prestudentrolle USING (prestudent_id) JOIN public.tbl_person USING(person_id)
WHERE studiengang_kz=stg.studiengang_kz AND rolle_kurzbz='Interessent' AND studiensemester_kurzbz='$stsem' AND geshclecht='m'
AND reihungstest_id IS NOT NULL) AS interessentenrttermin_m,
(SELECT count(*) FROM public.tbl_prestudent JOIN public.tbl_prestudentrolle USING (prestudent_id) JOIN public.tbl_person USING(person_id)
WHERE studiengang_kz=stg.studiengang_kz AND rolle_kurzbz='Interessent' AND studiensemester_kurzbz='$stsem' AND geshclecht='w'
AND reihungstest_id IS NOT NULL) AS interessentenrttermin_w,
(SELECT count(*) FROM public.tbl_prestudent JOIN public.tbl_prestudentrolle USING (prestudent_id)
WHERE studiengang_kz=stg.studiengang_kz AND rolle_kurzbz='Interessent' AND studiensemester_kurzbz='$stsem'
AND reihungstestangetreten) AS interessentenrtabsolviert,
*/
ORDER BY typ, kurzbz; ";
if($result = pg_query($conn, $qry))
{
echo "<table class='liste table-autosort:0 table-stripeclass:alternate table-autostripe'>
$content.= "\n<table class='liste table-autosort:0 table-stripeclass:alternate table-autostripe'>
<thead>
<tr>
<th class='table-sortable:default'>Studiengang</th>
@@ -179,24 +229,21 @@ if($stsem!='')
</thead>
<tbody>
";
//<th class='table-sortable:numeric'>Interessenten mit RT Termin</th>
//<th class='table-sortable:numeric'>Interessenten mit absolviertem RT</th>
while($row = pg_fetch_object($result))
{
echo '<tr>';
echo "<td>".strtoupper($row->typ.$row->kurzbz)." ($row->kurzbzlang)</td>";
echo "<td align='center'>$row->interessenten ($row->interessenten_m / $row->interessenten_w)</td>";
echo "<td align='center'>$row->interessentenzgv ($row->interessentenzgv_m / $row->interessentenzgv_w)</td>";
echo "<td align='center'>$row->interessentenrtanmeldung ($row->interessentenrtanmeldung_m / $row->interessentenrtanmeldung_w)</td>";
//echo "<td align='center'>$row->interessentenrttermin</td>";
//echo "<td align='center'>$row->interessentenrtabsolviert</td>";
echo "<td align='center'>$row->bewerber ($row->bewerber_m / $row->bewerber_w)</td>";
echo "<td align='center'>$row->aufgenommener ($row->aufgenommener_m / $row->aufgenommener_w)</td>";
echo "<td align='center'>$row->student1sem ($row->student1sem_m / $row->student1sem_w)</td>";
echo "</tr>";
$content.= "\n";
$content.= '<tr>';
$content.= "<td>".strtoupper($row->typ.$row->kurzbz)." ($row->kurzbzlang)</td>";
$content.= "<td align='center'>$row->interessenten ($row->interessenten_m / $row->interessenten_w)</td>";
$content.= "<td align='center'>$row->interessentenzgv ($row->interessentenzgv_m / $row->interessentenzgv_w)</td>";
$content.= "<td align='center'>$row->interessentenrtanmeldung ($row->interessentenrtanmeldung_m / $row->interessentenrtanmeldung_w)</td>";
$content.= "<td align='center'>$row->bewerber ($row->bewerber_m / $row->bewerber_w)</td>";
$content.= "<td align='center'>$row->aufgenommener ($row->aufgenommener_m / $row->aufgenommener_w)</td>";
$content.= "<td align='center'>$row->student1sem ($row->student1sem_m / $row->student1sem_w)</td>";
$content.= "</tr>";
}
echo '</tbody></table>';
$content.= '</tbody></table>';
}
//Aufsplittungen für Mischformen holen
@@ -263,8 +310,8 @@ if($stsem!='')
{
if(pg_num_rows($result)>0)
{
echo "<br><br><h2>Aufsplittung Mischformen</h2><br>";
echo "<table class='liste table-autosort:0 table-stripeclass:alternate table-autostripe'>
$content.= "<br><br><h2>Aufsplittung Mischformen</h2><br>";
$content.= "\n<table class='liste table-autosort:0 table-stripeclass:alternate table-autostripe'>
<thead>
<tr>
<th class='table-sortable:default'>Studiengang</th>
@@ -278,28 +325,26 @@ if($stsem!='')
</thead>
<tbody>
";
//<th class='table-sortable:numeric'>Interessenten mit RT Termin VZ / BB</th>
//<th class='table-sortable:numeric'>Interessenten mit absolviertem RT VZ / BB</th>
while($row = pg_fetch_object($result))
{
echo '<tr>';
echo "<td>".strtoupper($row->typ.$row->kurzbz)." ($row->kurzbzlang)</td>";
echo "<td align='center'>$row->interessenten_vz / $row->interessenten_bb</td>";
echo "<td align='center'>$row->interessentenzgv_vz / $row->interessentenzgv_bb</td>";
echo "<td align='center'>$row->interessentenrtanmeldung_vz / $row->interessentenrtanmeldung_bb</td>";
//echo "<td align='center'>$row->interessentenrttermin_vz / $row->interessentenrttermin_bb</td>";
//echo "<td align='center'>$row->interessentenrtabsolviert_vz / $row->interessentenrtabsolviert_bb</td>";
echo "<td align='center'>$row->bewerber_vz / $row->bewerber_bb</td>";
echo "<td align='center'>$row->aufgenommener_vz / $row->aufgenommener_bb</td>";
echo "<td align='center'>$row->student1sem_vz / $row->student1sem_bb</td>";
echo "</tr>";
$content.= "\n";
$content.= '<tr>';
$content.= "<td>".strtoupper($row->typ.$row->kurzbz)." ($row->kurzbzlang)</td>";
$content.= "<td align='center'>$row->interessenten_vz / $row->interessenten_bb</td>";
$content.= "<td align='center'>$row->interessentenzgv_vz / $row->interessentenzgv_bb</td>";
$content.= "<td align='center'>$row->interessentenrtanmeldung_vz / $row->interessentenrtanmeldung_bb</td>";
$content.= "<td align='center'>$row->bewerber_vz / $row->bewerber_bb</td>";
$content.= "<td align='center'>$row->aufgenommener_vz / $row->aufgenommener_bb</td>";
$content.= "<td align='center'>$row->student1sem_vz / $row->student1sem_bb</td>";
$content.= "</tr>";
}
echo '</tbody></table>';
$content.= '</tbody></table>';
}
}
//Verteilung
echo '<br><h2>Verteilung</h2><br>';
$content.= '<br><h2>Verteilung</h2><br>';
$qry = "SELECT
count(anzahl) AS anzahlpers,anzahl AS anzahlstg
FROM
@@ -318,7 +363,7 @@ if($stsem!='')
) AS prestd
GROUP BY anzahl; ";
echo "<table class='liste table-stripeclass:alternate table-autostripe' style='width:auto'>
$content.= "\n<table class='liste table-stripeclass:alternate table-autostripe' style='width:auto'>
<thead>
<tr>
<th>Personen</th>
@@ -333,12 +378,166 @@ if($stsem!='')
while($row = pg_fetch_object($result))
{
$summestudenten += $row->anzahlpers;
echo "<tr><td>$row->anzahlpers</td><td>$row->anzahlstg</td></tr>";
$content.= "\n<tr><td>$row->anzahlpers</td><td>$row->anzahlstg</td></tr>";
}
echo "<tr><td style='border-top: 1px solid black;'><b>$summestudenten</b></td><td></td></tr>";
$content.= "<tr><td style='border-top: 1px solid black;'><b>$summestudenten</b></td><td></td></tr>";
}
echo '</tbody></table>';
$content.= '</tbody></table>';
//Aufmerksamdurch (Prestudent)
$content.= '<br><h2>Aufmerksam durch (Prestudent)</h2><br>';
$qry = "SELECT foo.studiengang_kz, aufmerksamdurch_kurzbz, anzahl FROM
(
SELECT
studiengang_kz,
aufmerksamdurch_kurzbz,
count(*) as anzahl
FROM
public.tbl_prestudent
JOIN public.tbl_prestudentrolle USING(prestudent_id)
WHERE
studiensemester_kurzbz='$stsem'
$stgwhere
GROUP BY
studiengang_kz, aufmerksamdurch_kurzbz
) as foo
JOIN public.tbl_studiengang USING(studiengang_kz)
ORDER BY typ, kurzbz";
if($result = pg_query($conn, $qry))
{
while($row = pg_fetch_object($result))
{
$hlp[$row->studiengang_kz][$row->aufmerksamdurch_kurzbz]=$row->anzahl;
}
}
$amd = new aufmerksamdurch($conn);
$amd->getAll();
$content.= "\n<table class='liste table-stripeclass:alternate table-autostripe' style='width:auto'>
<thead>
<tr>
<th>Studiengang</th>";
foreach ($amd->result as $row)
{
$content.="<th>$row->aufmerksamdurch_kurzbz</th>";
}
$content.="</tr>
</thead>
<tbody>";
$stg_obj = new studiengang($conn);
$stg_obj->getAll(true);
foreach ($hlp as $studiengang_kz=>$row)
{
$content.='<tr>';
$content.='<td>'.$stg_obj->kuerzel_arr[$studiengang_kz].'</td>';
reset($amd->result);
foreach ($amd->result as $obj)
{
$content.='<td>';
if(isset($row[$obj->aufmerksamdurch_kurzbz]))
$content.=$row[$obj->aufmerksamdurch_kurzbz];
else
$content.='0';
$content.='</td>';
}
$content.='</tr>';
}
$content.='</tbody></table>';
//Berufstaetigkeit
$content.= '<br><h2>Berufst&auml;tigkeit</h2><br>';
$qry = "SELECT foo.studiengang_kz, berufstaetigkeit_code, anzahl FROM
(
SELECT
studiengang_kz,
berufstaetigkeit_code,
count(*) as anzahl
FROM
public.tbl_prestudent
JOIN public.tbl_prestudentrolle USING(prestudent_id)
WHERE
studiensemester_kurzbz='$stsem'
$stgwhere
GROUP BY
studiengang_kz, berufstaetigkeit_code
) as foo
JOIN public.tbl_studiengang USING(studiengang_kz)
ORDER BY typ, kurzbz";
if($result = pg_query($conn, $qry))
{
while($row = pg_fetch_object($result))
{
$hlp[$row->studiengang_kz][$row->berufstaetigkeit_code]=$row->anzahl;
}
}
$content.= "\n<table class='liste table-stripeclass:alternate table-autostripe' style='width:auto'>
<thead>
<tr>
<th>Studiengang</th>";
$qry = "SELECT berufstaetigkeit_code, berufstaetigkeit_bez FROM bis.tbl_berufstaetigkeit ORDER BY berufstaetigkeit_bez";
$berufstaetigkeit=array();
if($result = pg_query($conn, $qry))
{
while($row = pg_fetch_object($result))
{
$content.="<th>$row->berufstaetigkeit_bez</th>";
$berufstaetigkeit[]=$row->berufstaetigkeit_code;
}
}
$content.="</tr>
</thead>
<tbody>";
foreach ($hlp as $studiengang_kz=>$row)
{
$content.='<tr>';
$content.='<td>'.$stg_obj->kuerzel_arr[$studiengang_kz].'</td>';
reset($berufstaetigkeit);
foreach ($berufstaetigkeit as $bcode)
{
$content.='<td>';
if(isset($row[$bcode]))
$content.=$row[$bcode];
else
$content.='0';
$content.='</td>';
}
$content.='</tr>';
}
$content.='</tbody></table>';
}
?>
</body>
</html>
$content.= '</body>
</html>';
if(!$mail)
{
echo $content;
}
else
{
//Mail versenden
echo 'Bewerberstatistik.php - Sende Mail ...';
$to = 'tw_sek@technikum-wien.at, tw_stgl@technikum-wien.at';
$mailobj = new mail($to, 'vilesci@technikum-wien.at','Bewerberstatistik','Sie muessen diese Mail als HTML-Mail anzeigen um die Statistik zu sehen');
$mailobj->setHTMLContent($content);
if($mailobj->send())
{
echo 'Mail wurde erfolgreich versandt';
}
else
{
echo 'Fehler beim Versenden des Mails';
}
}
?>
+256
View File
@@ -0,0 +1,256 @@
<?php
/* Copyright (C) 2008 Technikum-Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at>,
* Rudolf Hangl <rudolf.hangl@technikum-wien.at> and
* Gerald Simane-Sequens <gerald.simane-sequens@technikum-wien.at>
*/
/**
* Klasse Mail
* @create 2008-11-20
*
* Versendet ein Mail als Text, Html, CC und BCC Empfaenger,
* Replyto und Attachments
*/
class mail
{
var $to;
var $CC_recievers;
var $BCC_recievers;
var $sender;
var $replyTo;
var $subject;
var $textContent;
var $htmlContent;
var $attachments;
var $errormsg;
// **********************************************************
// * MAIL - Konstruktor
// * $to Empfaenger
// * $from Absender
// * $subject Betreff
// * $text Text des Mails
// **********************************************************
function mail($to, $from, $subject, $text)
{
$this->to = $to;
$this->subject = $subject;
$this->setTextContent($text, 'ISO-8859-1', '8bit');
$this->sender = $from;
$this->CC_revievers='';
$this->BCC_recievers='';
$attachments='';
}
// ***********************************************************
// * Mail zusammenbauen und senden
// ***********************************************************
function send()
{
//wenn MAIL_DEBUG gesetzt ist dann alles an diese Adresse schicken
if(MAIL_DEBUG!='')
{
$this->to = MAIL_DEBUG;
$this->CC_recievers = ($this->CC_recievers!=''?MAIL_DEBUG:'');
$this->BCC_recievers = ($this->BCC_recievers!=''?MAIL_DEBUG:'');
$this->replyTo = ($this->replyTo!=''?MAIL_DEBUG:'');
}
$mime_boundary_alternative = 'ALT+'.md5(time());
$mime_boundary_mixed = 'MIXD+'.md5(time());
$eol="\n";
// Header
$header = '';
$header .= "From: {$this->sender}".$eol;
if (!empty($this->CC_recievers))
$header .= "CC: {$this->CC_recievers}".$eol;
if (!empty($this->BCC_recievers))
$header .= "BCC: {$this->BCC_recievers}".$eol;
if (!empty($this->replyTo))
$header .= "Reply-To: {$this->replyTo}".$eol;
if (!empty($this->replyTo))
$header .= "Return-Path: {$this->replyTo}".$eol;
$header .= 'X-Mailer: FHComplete V1'.$eol;
$header .= 'Mime-Version: 1.0'.$eol;
$header .= "Content-Type: multipart/related; boundary=\"$mime_boundary_mixed\"".$eol;
// Body
$mailbody = "";
$mailbody .= $eol;
$mailbody .= "--$mime_boundary_mixed".$eol;
$mailbody .= "Content-Type: multipart/alternative; boundary=\"$mime_boundary_alternative\"".$eol;
$mailbody .= $eol;
$mailbody .= "--$mime_boundary_alternative".$eol;
$mailbody .= "Content-Type: text/plain; charset={$this->textContent[1]}".$eol;
$mailbody .= "Content-Transfer-Encoding: {$this->textContent[2]}".$eol;
$mailbody .= $eol;
$mailbody .= $this->textContent[0];
$mailbody .= $eol;
$mailbody .= $eol;
if (!empty($this->htmlContent[0]))
{
$mailbody .= "--$mime_boundary_alternative".$eol;
$mailbody .= "Content-Type: text/html; charset={$this->htmlContent[1]}".$eol;
$mailbody .= "Content-Transfer-Encoding: {$this->htmlContent[2]}".$eol;
$mailbody .= $eol;
$mailbody .= $this->htmlContent[0];
$mailbody .= $eol;
$mailbody .= $eol;
}
$mailbody .= "--{$mime_boundary_alternative}--".$eol;
$mailbody .= $eol;
$mailbody .= "--$mime_boundary_mixed";
// Attachments
if (is_array($this->attachments) && (count($this->attachments) > 0))
{
foreach ($this->attachments as $attachment)
{
$dispo = empty($attachment[3]) ? 'attachment' : 'inline';
$mailbody .= $eol;
$mailbody .= "Content-Disposition: $dispo; filename={$attachment[2]}".$eol;
$mailbody .= "Content-Type: {$attachment[1]}; name={$attachment[2]}".$eol;
if (!empty($attachment[3]))
{
$mailbody .= "Content-ID: <{$attachment[3]}>".$eol;
}
$mailbody .= 'Content-Transfer-Encoding: base64'.$eol;
$mailbody .= $eol;
$mailbody .= $attachment[0];
$mailbody .= $eol;
$mailbody .= "--$mime_boundary_mixed";
}
}
$mailbody .= "--".$eol;
// Senden
if(mail($this->to, $this->subject, $mailbody, $header))
return true;
else
return false;
}
// **********************************************
// * Setzt den Text fuer ein Mail
// **********************************************
function setTextContent($text, $charset = 'ISO-8859-1', $encoding = '8bit')
{
$this->textContent[0] = $text;
$this->textContent[1] = $charset;
$this->textContent[2] = $encoding;
return true;
}
// **********************************************
// * Setzt den HTMLText fuer ein Mail
// **********************************************
function setHTMLContent($html, $charset = 'ISO-8859-1', $encoding = '8bit')
{
$this->htmlContent[0] = $html;
$this->htmlContent[1] = $charset;
$this->htmlContent[2] = $encoding;
if (empty($this->textContent[0]))
$this->setTextContent(strip_tags($html), $charset, $encoding);
return true;
}
// ***********************************************
// * Fuegt ein Attachment zum Mail hinzu
// * $file Dateiname des hinzuzufuegenden Files
// * $type MIME Type "application/xls"
// * $name Anzeigename des Files
// * $ContentID die ContentID der Datei falls sie als inline-image genutzt wird
// ***********************************************
function addAttachmentBinary($file, $type, $name, $ContentID = "")
{
if (!file_exists($file))
{
$this->errormsg = 'Attachment wurde nicht gefunden';
return false;
}
$handle = fopen($file,'rb');
if (!$handle)
{
$this->errormsg = 'Fehler beim Oeffnen der Datei';
return false;
}
$file_content = fread($handle,filesize($file));
@fclose($handle);
$attachment_string = chunk_split(base64_encode($file_content));
$this->attachments[] = Array($attachment_string, $type, $name, $ContentID);
return true;
}
// ********************************************
// * Setzt den ReplyTo
// ********************************************
function setReplyTo($repl)
{
$this->replyTo = $repl;
return true;
}
// ********************************************
// * Setzt die CC Empfaenger
// ********************************************
function setCCRecievers($rcvs)
{
$this->CC_recievers = '';
if (is_array($rcvs))
{
foreach ($rcvs as $rcv)
$this->CC_recievers .= ",$rcv";
$this->CC_recievers = substr($this->CC_recievers, 1);
}
else
{
$this->CC_recievers = $rcvs;
}
return true;
}
// ********************************************
// * Setzt die BCC Empfaenger
// ********************************************
function setBCCRecievers($rcvs)
{
$this->BCC_recievers = '';
if (is_array($rcvs))
{
foreach ($rcvs as $rcv)
$this->BCC_recievers .= ",$rcv";
$this->BCC_recievers = substr($this->BCC_recievers, 1);
}
else
{
$this->BCC_recievers = $rcvs;
}
return true;
}
}
?>
+2 -1
View File
@@ -108,7 +108,7 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
$xml_fussnote='';
$projektarbeit=array();
$query = "SELECT tbl_student.matrikelnr, tbl_student.studiengang_kz, tbl_studiengang.typ, tbl_studiengang.bezeichnung, tbl_studentlehrverband.semester, tbl_person.vorname, tbl_person.vornamen, tbl_person.nachname,tbl_person.gebdatum,tbl_person.titelpre, tbl_person.titelpost, tbl_studiensemester.bezeichnung as sembezeichnung, tbl_student.prestudent_id FROM tbl_person, tbl_student, tbl_studiengang, tbl_benutzer, tbl_studentlehrverband, tbl_studiensemester WHERE tbl_student.studiengang_kz = tbl_studiengang.studiengang_kz and tbl_student.student_uid = tbl_benutzer.uid and tbl_benutzer.person_id = tbl_person.person_id and tbl_student.student_uid = '".$uid_arr[$i]."' and tbl_studentlehrverband.student_uid=tbl_student.student_uid and tbl_studiensemester.studiensemester_kurzbz = tbl_studentlehrverband.studiensemester_kurzbz and tbl_studentlehrverband.studiensemester_kurzbz = '".$studiensemester_kurzbz."'";
$query = "SELECT tbl_student.matrikelnr, tbl_student.studiengang_kz, tbl_studiengang.typ, tbl_studiengang.bezeichnung, tbl_studentlehrverband.semester, tbl_person.vorname, tbl_person.vornamen, tbl_person.nachname,tbl_person.gebdatum,tbl_person.titelpre, tbl_person.titelpost, tbl_studiensemester.bezeichnung as sembezeichnung, tbl_studiensemester.studiensemester_kurzbz as stsem, tbl_student.prestudent_id FROM tbl_person, tbl_student, tbl_studiengang, tbl_benutzer, tbl_studentlehrverband, tbl_studiensemester WHERE tbl_student.studiengang_kz = tbl_studiengang.studiengang_kz and tbl_student.student_uid = tbl_benutzer.uid and tbl_benutzer.person_id = tbl_person.person_id and tbl_student.student_uid = '".$uid_arr[$i]."' and tbl_studentlehrverband.student_uid=tbl_student.student_uid and tbl_studiensemester.studiensemester_kurzbz = tbl_studentlehrverband.studiensemester_kurzbz and tbl_studentlehrverband.studiensemester_kurzbz = '".$studiensemester_kurzbz."'";
//echo $query;
if($result = pg_query($conn, $query))
{
@@ -162,6 +162,7 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
$xml .= "\n <zeugnis>";
$xml .= " <studiensemester>".$row->sembezeichnung."</studiensemester>";
$xml .= " <stsem>".$row->stsem."</stsem>";
$xml .= " <semester>".$row->semester."</semester>";
$xml .= " <semester_bezeichnung>".$bezeichnung."</semester_bezeichnung>";
$xml .= " <studiengang>".$row->bezeichnung."</studiengang>";
+11 -3
View File
@@ -21,9 +21,17 @@
<fo:block-container position="absolute" top="30mm" left="30mm" height="20mm">
<fo:block text-align="left" line-height="18pt" font-family="sans-serif" font-size="16pt">
<fo:inline font-weight="900">
<xsl:text>Zeugnis </xsl:text>
<xsl:text>\n </xsl:text><xsl:value-of select="semester_bezeichnung" />
<xsl:text> (</xsl:text><xsl:value-of select="studiensemester" /><xsl:text>)</xsl:text>
<xsl:text>Zeugnis \n </xsl:text>
<xsl:choose>
<xsl:when test="string-length(semester_bezeichnung)=0">
<xsl:value-of select="stsem" />
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="semester_bezeichnung" />
<xsl:text> (</xsl:text><xsl:value-of select="stsem" /><xsl:text>)</xsl:text>
</xsl:otherwise>
</xsl:choose>
</fo:inline>
</fo:block>
</fo:block-container>
@@ -375,6 +375,7 @@ $ueberschreiben = (isset($_REQUEST['ueberschreiben'])?$_REQUEST['ueberschreiben'
$studiensemester_kurzbz = (isset($_REQUEST['studiensemester_kurzbz'])?$_REQUEST['studiensemester_kurzbz']:'');
$ausbildungssemester = (isset($_REQUEST['ausbildungssemester'])?$_REQUEST['ausbildungssemester']:'0');
$incoming = (isset($_REQUEST['incoming'])?true:false);
$orgform_kurzbz = (isset($_REQUEST['orgform_kurzbz'])?$_REQUEST['orgform_kurzbz']:'');
//end Parameter
$geburtsdatum_error=false;
@@ -740,6 +741,7 @@ if(isset($_POST['save']))
$rolle->rolle_kurzbz = 'Incoming';
$rolle->studiensemester_kurzbz = $studiensemester_kurzbz;
$rolle->ausbildungssemester = $ausbildungssemester;
$rolle->orgform_kurzbz = $orgform_kurzbz;
$rolle->datum = date('Y-m-d');
$rolle->insertamum = date('Y-m-d H:i:s');
$rolle->insertvon = $user;
@@ -990,6 +992,12 @@ for ($i=1;$i<9;$i++)
echo '<OPTION value="'.$i.'" '.($i==$ausbildungssemester?'selected':'').'>'.$i.'. Semester</OPTION>';
echo '</SELECT>';
echo '</td></tr>';
echo '<tr><td>OrgForm</td><td><SELECT name="orgform_kurzbz">';
echo '<OPTION value="VZ" '.($orgform_kurzbz=='VZ'?'selected':'').'>Vollzeit</OPTION>';
echo '<OPTION value="BB" '.($orgform_kurzbz=='BB'?'selected':'').'>Berufsbegleitend</OPTION>';
echo '<OPTION value="FST" '.($orgform_kurzbz=='FST'?'selected':'').'>Fernstudium</OPTION>';
echo '</SELECT>';
echo '</td></tr>';
echo '<tr><td>Incoming:</td><td><input type="checkbox" id="incoming" name="incoming" '.($incoming?'checked':'').' onclick="cmdIncoming()" /></td></tr>';
echo '<tr><tr><td></td><td>';
@@ -1037,7 +1045,7 @@ if($where!='')
if($result = pg_query($conn, $qry))
{
echo '<table><tr><th></th><th>Nachname</th><th>Vorname</th><th>GebDatum</th><th>SVNR</th><th>Geschlecht</th><th>Adresse</th><th>Status</th></tr>';
echo '<table><tr><th></th><th>Nachname</th><th>Vorname</th><th>GebDatum</th><th>SVNR</th><th>Geschlecht</th><th>Adresse</th><th>Status</th><th>Details</th></tr>';
while($row = pg_fetch_object($result))
{
$status = '';
@@ -1062,6 +1070,7 @@ if($where!='')
echo "$row_adr->plz $row_adr->ort, $row_adr->strasse<br>";
echo '</td>';
echo '<td>'.$status.'</td>';
echo '<td><a href="../personendetails.php?id='.$row->person_id.'" target="_blank">Details</a></td>';
echo '</tr>';
}
echo '<tr><td><input type="radio" name="person_id" value="0" onclick="disablefields(this)"></td><td>Neue Person anlegen</td></tr>';
@@ -567,7 +567,7 @@ if($where!='')
if($result = pg_query($conn, $qry))
{
echo '<table><tr><th></th><th>Nachname</th><th>Vorname</th><th>GebDatum</th><th>SVNR</th><th>Geschlecht</th><th>Adresse</th><th>Status</th></tr>';
echo '<table><tr><th></th><th>Nachname</th><th>Vorname</th><th>GebDatum</th><th>SVNR</th><th>Geschlecht</th><th>Adresse</th><th>Status</th><th>Details</th></tr>';
while($row = pg_fetch_object($result))
{
$status = '';
@@ -591,6 +591,7 @@ if($where!='')
echo "$row_adr->plz $row_adr->ort, $row_adr->strasse<br>";
echo '</td>';
echo "<td>$status</td>";
echo '<td><a href="../personendetails.php?id='.$row->person_id.'" target="_blank">Details</a></td>';
echo '</tr>';
}
echo '<tr><td><input type="radio" name="person_id" value="0" checked onclick="disablefields(this)"></td><td>Neue Person anlegen</td></tr>';
+1
View File
@@ -76,6 +76,7 @@ echo '<h2>Person</h2>';
echo "ID: $person->person_id<br>";
echo "Name: $person->titelpre $person->nachname $person->vorname $person->titelpost<br>";
echo "Geburtsdatum: ".$datum_obj->formatDatum($person->gebdatum,'d.m.Y')."<br>";
echo "Geschlecht: ".$person->geschlecht."<br>";
$kontakt = new kontakt($conn);
$kontakt->load_pers($person->person_id);
+12 -6
View File
@@ -244,13 +244,17 @@ function loadGemeindeData()
anfrage.open("GET", url, true);
anfrage.onreadystatechange = setGemeindeData;
anfrage.send(null);
document.getElementById('adresse-gemeinde-textfeld').type='hidden';
document.getElementById('adresse-ort-textfeld').type='hidden';
document.getElementById('adresse-gemeinde-textfeld').style.display='none';
document.getElementById('adresse-ort-textfeld').style.display='none';
}
else
{
/*
document.getElementById('adresse-gemeinde-textfeld').type='text';
document.getElementById('adresse-ort-textfeld').type='text';
*/
document.getElementById('adresse-gemeinde-textfeld').style.display='block';
document.getElementById('adresse-ort-textfeld').style.display='block';
document.getElementById('gemeindediv').innerHTML='';
document.getElementById('ortdiv').innerHTML='';
}
@@ -700,7 +704,7 @@ else
if($importort!='' && $gemeinde!=$importort)
echo ' ( '.$importort.' )';
echo '</div><input type="'.($adresse_nation=='A'?'hidden':'text').'" id="adresse-gemeinde-textfeld" maxlength="256" name="gemeinde_txt" value="'.$gemeinde.'" />';
echo '</div><input type="text" style="display:'.($adresse_nation=='A'?'none':'block').';" id="adresse-gemeinde-textfeld" maxlength="256" name="gemeinde_txt" value="'.$gemeinde.'" />';
echo '</td></tr>';
echo '<tr><td>Ort</td><td><div id="ortdiv">';
@@ -708,7 +712,7 @@ if($adresse_nation=='A' && $plz!='')
{
echo getOrtDropDown($plz, $gemeinde);
}
echo '</div><input type="'.($adresse_nation=='A'?'hidden':'text').'" id="adresse-ort-textfeld" maxlength="256" name="ort_txt" value="'.$ort.'"/></td></tr>';
echo '</div><input type="text" style="display: '.($adresse_nation=='A'?'none':'block').';" id="adresse-ort-textfeld" maxlength="256" name="ort_txt" value="'.$ort.'"/></td></tr>';
echo '</table>';
echo '<div style="display: none;" id="ueb1"><input type="radio" id="ueberschreiben1" name="ueberschreiben" value="Ja" onclick="disablefields2(false)">Bestehende Adresse überschreiben</div>';
@@ -827,7 +831,7 @@ if($where!='')
$stg_obj = new studiengang($conn);
$stg_obj->getAll('typ, kurzbz', false);
echo '<table><tr><th></th><th>Nachname</th><th>Vorname</th><th>GebDatum</th><th>SVNR</th><th>Geschlecht</th><th>Adresse</th><th>Status</th></tr>';
echo '<table><tr><th></th><th>Nachname</th><th>Vorname</th><th>GebDatum</th><th>SVNR</th><th>Geschlecht</th><th>Adresse</th><th>Status</th><th>Details</th></tr>';
while($row = pg_fetch_object($result))
{
$status = '';
@@ -851,8 +855,10 @@ if($where!='')
if($result_adr = pg_query($conn, $qry_adr))
while($row_adr=pg_fetch_object($result_adr))
echo "$row_adr->plz $row_adr->ort, $row_adr->strasse<br>";
echo '</td>';
echo "<td>$status</td>";
echo "</td></tr>";
echo '<td><a href="personendetails.php?id='.$row->person_id.'" target="_blank">Details</a></td>';
echo "</tr>";
}
echo '<tr><td><input type="radio" name="person_id" value="0" checked onclick="disablefields(this)"></td><td>Neue Person anlegen</td></tr>';
echo '</table>';
@@ -27,6 +27,7 @@ require_once('../../include/functions.inc.php');
require_once('../../include/person.class.php');
require_once('../../include/prestudent.class.php');
require_once('../../include/pruefling.class.php');
require_once('../../include/studiengang.class.php');
if (!$conn = pg_pconnect(CONN_STRING))
die('Es konnte keine Verbindung zum Server aufgebaut werden.');
@@ -214,4 +215,37 @@ if(isset($_POST['testergebnisanzeigen']) && isset($_POST['prestudent_id']))
}
}
}
echo '<hr><br>';
if(isset($_POST['savedummystg']) && isset($_POST['stg']))
{
$qry = "UPDATE public.tbl_prestudent SET studiengang_kz='".addslashes($_POST['stg'])."' WHERE prestudent_id='13478';";
if(pg_query($conn, $qry))
echo '<b>Studiengang geändert!</b><br>';
else
echo '<b>Fehler beim Ändern des Studienganges!</b><br>';
}
$name='';
$dummystg='';
$qry = "SELECT studiengang_kz, vorname, nachname FROM public.tbl_prestudent JOIN public.tbl_person USING(person_id) WHERE prestudent_id='13478'";
if($result = pg_query($conn, $qry))
{
if($row = pg_fetch_object($result))
{
$name = $row->vorname.' '.$row->nachname;
$dummystg=$row->studiengang_kz;
}
}
echo "Prestudent Studiengang von $name ändern";
echo '<form action="'.$_SERVER['PHP_SELF'].'" METHOD="POST">
<SELECT name="stg">';
$stg_obj = new studiengang($conn);
$stg_obj->getAll('typ, kurzbz');
foreach ($stg_obj->result as $row)
{
echo '<option value="'.$row->studiengang_kz.'" '.($row->studiengang_kz==$dummystg?'selected':'').'>'.$row->kuerzel.'</option>';
}
echo '</SELECT>
<input type="submit" name="savedummystg" value="Speichern">
';
?>