From 42414f81947e1e9b0dc20f8f93288f22d9f6e3a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Tue, 7 Aug 2007 15:33:40 +0000 Subject: [PATCH] - Mail Versenden nun an Private und Interne Adresse moeglich - Exportmoeglichkeit fuer Abschlusspruefung und projektarbeitexport - Bugfix fuer Datumseingabe beim Personenimport --- content/fas.xul.php | 14 ++ content/fasoverlay.js.php | 54 +++++++- .../statistik/abschlusspruefungexport.xls.php | 131 ++++++++++++++++++ content/statistik/projektarbeitexport.xls.php | 130 +++++++++++++++++ content/statistik/studentenexport.xls.php | 28 +++- content/student/studentenoverlay.xul.php | 13 +- content/student/studentoverlay.js.php | 42 +++++- locale/de-AT/fas.dtd | 8 ++ rdf/student.rdf.php | 13 ++ .../personen/import/interessentenimport.php | 32 ++++- vilesci/personen/import/mitarbeiterimport.php | 30 +++- 11 files changed, 485 insertions(+), 10 deletions(-) create mode 100644 content/statistik/abschlusspruefungexport.xls.php create mode 100644 content/statistik/projektarbeitexport.xls.php diff --git a/content/fas.xul.php b/content/fas.xul.php index dbd3ca7ee..4296fa245 100644 --- a/content/fas.xul.php +++ b/content/fas.xul.php @@ -80,6 +80,8 @@ echo ''; + + @@ -194,6 +196,18 @@ echo ''; label = "&menu-statistic-lehrauftragsliste.label;" command = "menu-statistic-lehrauftragsliste:command" accesskey = "&menu-statistic-lehrauftragsliste.accesskey;"/> + + diff --git a/content/fasoverlay.js.php b/content/fasoverlay.js.php index ac7edd60d..c745db2c4 100644 --- a/content/fasoverlay.js.php +++ b/content/fasoverlay.js.php @@ -369,7 +369,6 @@ function onVerbandSelect(event) StudentPrestudentDisableFields(true); StudentKontoDisableFields(true); StudentAkteDisableFields(true); - StudentBetriebsmittelDisableFields(true); StudentIODisableFields(true); StudentNoteDisableFields(true); document.getElementById('student-kontakt').setAttribute('src',''); @@ -649,6 +648,59 @@ function StatistikPrintLehrauftragsliste() window.open('content/statistik/lehrauftragsliste_gst.xls.php?studiengang_kz='+studiengang_kz,'Lehrauftragsliste'); } +// **** +// * Erstellt ein Excelfile mit den Daten der Abschlusspruefung +// **** +function StatistikPrintProjektarbeit() +{ + tree = document.getElementById('tree-verband'); + + if(tree.currentIndex==-1) + { + alert('Bitte zuerst einen Studiengang auswaehlen'); + return; + } + + //Studiengang und Semester holen + var col; + col = tree.columns ? tree.columns["stg_kz"] : "stg_kz"; + var studiengang_kz=tree.view.getCellText(tree.currentIndex,col); + col = tree.columns ? tree.columns["sem"] : "sem"; + var semester=tree.view.getCellText(tree.currentIndex,col); + + if(studiengang_kz!='') + window.open('content/statistik/projektarbeitexport.xls.php?studiengang_kz='+studiengang_kz+'&semester='+semester+'&studiensemester_kurzbz='+getStudiensemester(),'Excel'); + else + alert('Bitte zuerst Studiengang / Semester auswaehlen'); +} + +// **** +// * Liefert eine HTML Liste mit Uebersicht der Lehrauftraege. +// * Studiengang und optional Semester muss gewaehlt sein. +// **** +function StatistikPrintAbschlusspruefung() +{ + tree = document.getElementById('tree-verband'); + + if(tree.currentIndex==-1) + { + alert('Bitte zuerst einen Studiengang auswaehlen'); + return; + } + + //Studiengang und Semester holen + var col; + col = tree.columns ? tree.columns["stg_kz"] : "stg_kz"; + var studiengang_kz=tree.view.getCellText(tree.currentIndex,col); + col = tree.columns ? tree.columns["sem"] : "sem"; + var semester=tree.view.getCellText(tree.currentIndex,col); + + if(studiengang_kz!='') + window.open('content/statistik/abschlusspruefungexport.xls.php?studiengang_kz='+studiengang_kz+'&semester='+semester+'&studiensemester_kurzbz='+getStudiensemester(),'Excel'); + else + alert('Bitte zuerst Studiengang / Semester auswaehlen'); +} + // **** // * Oeffnet den About Dialog // **** diff --git a/content/statistik/abschlusspruefungexport.xls.php b/content/statistik/abschlusspruefungexport.xls.php new file mode 100644 index 000000000..d797e80e1 --- /dev/null +++ b/content/statistik/abschlusspruefungexport.xls.php @@ -0,0 +1,131 @@ +, + * Andreas Oesterreicher and + * Rudolf Hangl . + */ +/** + * Exportiert die Studentendaten in ein Excel File. + * Die zu exportierenden Spalten werden per GET uebergeben. + * Die Adressen werden immer dazugehaengt + */ +require_once('../../vilesci/config.inc.php'); +require_once('../../include/functions.inc.php'); +require_once('../../include/datum.class.php'); +require_once('../../include/studiensemester.class.php'); +require_once('../../include/Excel/excel.php'); + +// Datenbank Verbindung +if (!$conn = pg_pconnect(CONN_STRING)) + $error_msg='Es konnte keine Verbindung zum Server aufgebaut werden!'; + +$user = get_uid(); +$datum_obj = new datum(); +loadVariables($conn, $user); + + //Parameter holen + $studiengang_kz = isset($_GET['studiengang_kz'])?$_GET['studiengang_kz']:''; + $semester = isset($_GET['semester'])?$_GET['semester']:''; + $studiensemester_kurzbz = isset($_GET['studiensemester_kurzbz'])?$_GET['studiensemester_kurzbz']:''; + + $maxlength= array(); + $zeile=1; + + // Creating a workbook + $workbook = new Spreadsheet_Excel_Writer(); + + // sending HTTP headers + $workbook->send("Projektarbeit". "_" . date("d_m_Y") . ".xls"); + + // Creating a worksheet + $worksheet =& $workbook->addWorksheet("Studenten"); + + $format_bold =& $workbook->addFormat(); + $format_bold->setBold(); + + $format_title =& $workbook->addFormat(); + $format_title->setBold(); + // let's merge + $format_title->setAlign('merge'); + + $stsem = new studiensemester($conn); + $stsem->load($studiensemester_kurzbz); + + //Zeilenueberschriften ausgeben + $headline=array('Titelpre','Vorname','Nachname','Titelpost','Vorsitz','Pruefer1','Pruefer2','Pruefer3', + 'Abschlussbeurteilung','Typ','Datum','Sponsion','Anmerkung'); + + $i=0; + foreach ($headline as $title) + { + $worksheet->write(0,$i,$title, $format_bold); + $maxlength[$i]=strlen($title); + $i++; + } + + // Daten holen + $qry = "SELECT + titelpre, vorname, nachname, titelpost, + (SELECT COALESCE(titelpre,'') || ' ' || COALESCE(vorname,'') || ' ' || COALESCE(nachname,'') || ' ' || COALESCE(titelpost,'') FROM public.tbl_person JOIN public.tbl_benutzer USING(person_id) WHERE uid=vorsitz), + (SELECT COALESCE(titelpre,'') || ' ' || COALESCE(vorname,'') || ' ' || COALESCE(nachname,'') || ' ' || COALESCE(titelpost,'') FROM public.tbl_person WHERE person_id=pruefer1), + (SELECT COALESCE(titelpre,'') || ' ' || COALESCE(vorname,'') || ' ' || COALESCE(nachname,'') || ' ' || COALESCE(titelpost,'') FROM public.tbl_person WHERE person_id=pruefer2), + (SELECT COALESCE(titelpre,'') || ' ' || COALESCE(vorname,'') || ' ' || COALESCE(nachname,'') || ' ' || COALESCE(titelpost,'') FROM public.tbl_person WHERE person_id=pruefer3), + tbl_abschlussbeurteilung.bezeichnung, tbl_pruefungstyp.beschreibung, datum, sponsion, anmerkung + FROM + lehre.tbl_abschlusspruefung, public.tbl_studentlehrverband, public.tbl_benutzer, public.tbl_person, + lehre.tbl_abschlussbeurteilung, lehre.tbl_pruefungstyp + WHERE + tbl_abschlusspruefung.student_uid=public.tbl_studentlehrverband.student_uid AND + tbl_studentlehrverband.studiensemester_kurzbz='".addslashes($studiensemester_kurzbz)."' AND + tbl_studentlehrverband.studiengang_kz='".addslashes($studiengang_kz)."' AND + tbl_benutzer.uid = tbl_abschlusspruefung.student_uid AND + tbl_person.person_id = tbl_benutzer.person_id AND + tbl_abschlussbeurteilung.abschlussbeurteilung_kurzbz = tbl_abschlusspruefung.abschlussbeurteilung_kurzbz AND + tbl_abschlusspruefung.pruefungstyp_kurzbz = tbl_pruefungstyp.pruefungstyp_kurzbz AND + datum>='".$stsem->start."' AND datum<='".$stsem->ende."'"; + + if($semester!='') + $qry.= " AND tbl_studentlehrverband.semester='".addslashes($semester)."'"; + + $zeile=1; + if($result = pg_query($conn, $qry)) + { + while($row = pg_fetch_array($result)) + { + $i=0; + + foreach ($row as $idx=>$content) + { + if(is_numeric($idx)) + { + $worksheet->write($zeile, $i, $content); + if(strlen($content)>$maxlength[$i]) + $maxlength[$i]=strlen($content); + $i++; + } + } + $zeile++; + } + } + //Die Breite der Spalten setzen + foreach($maxlength as $i=>$breite) + $worksheet->setColumn($i, $i, $breite+2); + + $workbook->close(); + +?> diff --git a/content/statistik/projektarbeitexport.xls.php b/content/statistik/projektarbeitexport.xls.php new file mode 100644 index 000000000..536eb987b --- /dev/null +++ b/content/statistik/projektarbeitexport.xls.php @@ -0,0 +1,130 @@ +, + * Andreas Oesterreicher and + * Rudolf Hangl . + */ +/** + * Exportiert die Studentendaten in ein Excel File. + * Die zu exportierenden Spalten werden per GET uebergeben. + * Die Adressen werden immer dazugehaengt + */ +require_once('../../vilesci/config.inc.php'); +require_once('../../include/functions.inc.php'); +require_once('../../include/datum.class.php'); +require_once('../../include/Excel/excel.php'); + +// Datenbank Verbindung +if (!$conn = pg_pconnect(CONN_STRING)) + $error_msg='Es konnte keine Verbindung zum Server aufgebaut werden!'; + +$user = get_uid(); +$datum_obj = new datum(); +loadVariables($conn, $user); + + //Parameter holen + $studiengang_kz = isset($_GET['studiengang_kz'])?$_GET['studiengang_kz']:''; + $semester = isset($_GET['semester'])?$_GET['semester']:''; + $verband = isset($_GET['verband'])?$_GET['verband']:''; + $gruppe = isset($_GET['gruppe'])?$_GET['gruppe']:''; + $gruppe_kurzbz = isset($_GET['gruppe_kurzbz'])?$_GET['gruppe_kurzbz']:''; + $studiensemester_kurzbz = isset($_GET['studiensemester_kurzbz'])?$_GET['studiensemester_kurzbz']:''; + + $maxlength= array(); + $zeile=1; + + // Creating a workbook + $workbook = new Spreadsheet_Excel_Writer(); + + // sending HTTP headers + $workbook->send("Projektarbeit". "_" . date("d_m_Y") . ".xls"); + + // Creating a worksheet + $worksheet =& $workbook->addWorksheet("Studenten"); + + $format_bold =& $workbook->addFormat(); + $format_bold->setBold(); + + $format_title =& $workbook->addFormat(); + $format_title->setBold(); + // let's merge + $format_title->setAlign('merge'); + + //Zeilenueberschriften ausgeben + + $headline=array('Typ der Projektarbeit','Titel der Projektarbeit','Titelpre','Vorname','Nachname','Titelpost', + 'Note','Punkte','Beginn','Ende','Freigegeben','Gesperrt bis','Gesamtstunden','Themenbereich', + 'Anmerkung'); + + $i=0; + foreach ($headline as $title) + { + $worksheet->write(0,$i,$title, $format_bold); + $maxlength[$i]=strlen($title); + $i++; + } + + // Daten holen + $qry = "SELECT + tbl_projekttyp.bezeichnung, titel, titelpre, vorname, nachname, titelpost, tbl_note.anmerkung, punkte, beginn, + ende, CASE WHEN freigegeben THEN 'Ja' ELSE 'Nein' END, gesperrtbis, gesamtstunden, themenbereich, tbl_projektarbeit.anmerkung + FROM + lehre.tbl_projektarbeit, lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung, + public.tbl_benutzer, public.tbl_person, lehre.tbl_projekttyp, lehre.tbl_note + WHERE + tbl_projektarbeit.lehreinheit_id=tbl_lehreinheit.lehreinheit_id AND + tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_lehreinheit.lehrveranstaltung_id AND + tbl_projektarbeit.student_uid=tbl_benutzer.uid AND + tbl_benutzer.person_id=tbl_person.person_id AND + tbl_projektarbeit.projekttyp_kurzbz=tbl_projekttyp.projekttyp_kurzbz AND + tbl_projektarbeit.note=tbl_note.note AND + tbl_lehreinheit.studiensemester_kurzbz='".addslashes($studiensemester_kurzbz)."' AND + tbl_lehrveranstaltung.studiengang_kz='".addslashes($studiengang_kz)."' AND + tbl_projektarbeit.projekttyp_kurzbz IN ('Bachelor','Diplom','Projekt')"; + + if($semester!='') + $qry.= " AND tbl_lehrveranstaltung.semester='".addslashes($semester)."'"; + + //echo $qry; + $zeile=1; + if($result = pg_query($conn, $qry)) + { + while($row = pg_fetch_array($result)) + { + $i=0; + + foreach ($row as $idx=>$content) + { + if(is_numeric($idx)) + { + $worksheet->write($zeile, $i, $content); + if(strlen($content)>$maxlength[$i]) + $maxlength[$i]=strlen($content); + $i++; + } + } + $zeile++; + } + } + //Die Breite der Spalten setzen + foreach($maxlength as $i=>$breite) + $worksheet->setColumn($i, $i, $breite+2); + + $workbook->close(); + +?> diff --git a/content/statistik/studentenexport.xls.php b/content/statistik/studentenexport.xls.php index 91dc21e58..152eec0be 100644 --- a/content/statistik/studentenexport.xls.php +++ b/content/statistik/studentenexport.xls.php @@ -98,12 +98,17 @@ loadVariables($conn, $user); $maxlength[$i]=15; $worksheet->write(0,++$i,"STATUS", $format_bold); $maxlength[$i]=6; + $worksheet->write(0,++$i,"EMail Intern", $format_bold); + $maxlength[$i]=12; + $worksheet->write(0,++$i,"EMail Privat", $format_bold); + $maxlength[$i]=12; $worksheet->write(0,++$i,"STRASSE", $format_bold); $maxlength[$i]=7; $worksheet->write(0,++$i,"PLZ", $format_bold); $maxlength[$i]=3; $worksheet->write(0,++$i,"ORT", $format_bold); $maxlength[$i]=3; + // Student holen if($typ=='student') @@ -237,6 +242,27 @@ loadVariables($conn, $user); $worksheet->write($zeile,$i, $status); $i++; + if(isset($row->uid)) + { + if(strlen($row->uid.'@'.DOMAIN)>$maxlength[$i]) + $maxlength[$i] = strlen($row->uid.'@'.DOMAIN); + $worksheet->write($zeile,$i, $row->uid.'@'.DOMAIN); + } + $i++; + + //Zustelladresse aus der Datenbank holen und dazuhaengen + $qry_1 = "SELECT kontakt FROM public.tbl_kontakt WHERE kontakttyp='email' AND person_id='$row->person_id' AND zustellung=true ORDER BY kontakt_id DESC LIMIT 1"; + if($result_1 = pg_query($conn, $qry_1)) + { + if($row_1 = pg_fetch_object($result_1)) + { + if(strlen($row_1->kontakt)>$maxlength[$i]) + $maxlength[$i]=strlen($row_1->kontakt); + $worksheet->write($zeile,$i, $row_1->kontakt); + } + } + $i++; + //Zustelladresse aus der Datenbank holen und dazuhaengen $qry_1 = "SELECT * FROM public.tbl_adresse WHERE person_id='$row->person_id' ORDER BY zustelladresse LIMIT 1"; if($result_1 = pg_query($conn, $qry_1)) @@ -257,7 +283,7 @@ loadVariables($conn, $user); $maxlength[$i]=strlen($row_1->ort); $worksheet->write($zeile,$i, $row_1->ort); } - } + } } diff --git a/content/student/studentenoverlay.xul.php b/content/student/studentenoverlay.xul.php index 6c6ebfe0d..b47d80d1f 100644 --- a/content/student/studentenoverlay.xul.php +++ b/content/student/studentenoverlay.xul.php @@ -56,7 +56,8 @@ echo ' @@ -169,6 +170,14 @@ echo ' +